var MessageMax  = "1024000";
var Override    = "";
		
function CheckLength() {
    MessageLength  = document.REPLIER.Post.value.length;
    message  = "";
    if (MessageMax !=0) {
	message = "Message: La longueur maximale permise est " + MessageMax + " caractères.";
    } else {
	message = "";
    }
    alert(message + "	Jusqu'ici, vous avez utilisé " + MessageLength + " caractères.");
}

function ValidateForm(isMsg) {
    MessageLength  = document.REPLIER.Post.value.length;
    errors = "";
    
    if (isMsg == 1) {
	if (document.REPLIER.msg_title.value.length < 2) {
	    errors = "Vous devez entrer un titre de message";
	}
    }
    
    if (MessageLength < 2) {
	errors = "Le Formulaire est vide!";
    }
    if (MessageMax !=0) {
	if (MessageLength > MessageMax) {
	    errors = "La longueur maximale permise est " + MessageMax + " caractères. Caractères Actuels: " + MessageLength;
	}
    }
    if (errors != "" && Override == "") {
	alert(errors);
	return false;
    } else {
	document.REPLIER.submit.disabled = true;
	return true;
    }
}



// IBC Code stuff
var text_enter_url      = "Entrez l'URL complète pour le lien";
var text_enter_url_name = "Entrez le titre de la page web";
var text_enter_image    = "Entrez l'URL complète de l'image";
var text_enter_email    = "Entrez l'adresse email";
var text_enter_flash    = "Entrer l'URL de l'Animation Flash.";
var text_code           = "Usage: [CODE] Votre Code Ici.. [/CODE]";
var text_quote          = "Usage: [QUOTE] Votre Citation Ici.. [/QUOTE]";
var error_no_url        = "Vous devez entrer une URL";
var error_no_title      = "Vous devez entrer un titre";
var error_no_email      = "Vous devez entrer une adresse email";
var error_no_width      = "Vous devez entrer une largeur";
var error_no_height     = "Vous devez entrer une hauteur";
var prompt_start        = "Entrez le texte devant être formaté";

var help_t1             = "Insérer Titre 1";
var help_t2             = "Insérer Titre 2";
var help_t3             = "Insérer Titre 3";
var help_bold           = "Insérer Texte Gras (alt + b)";
var help_italic         = "Insérer Texte Italique (alt + i)";
var help_under          = "Insérer Texte Souligné (alt + u)";
var help_font           = "Insérer tags Police";
var help_size           = "Insérer tags Taille Police";
var help_color          = "Insérer tags Couleur Police";
var help_close          = "Fermer tous les tags ouverts";
var help_url            = "Insérer Hyperlien (alt+ h)";
var help_img            = "Image (alt + g) [img]http://www.dom.com/img.gif[/img]";
var help_email          = "Insérer Adresse Email (alt + e)";
var help_quote          = "Insérer Citation (alt + q)";
var help_list           = "Créer une liste (alt + l)";
var help_code           = "Insérer Texte Monotype (alt + p)";
var help_click_close    = "Cliquer à nouveau sur le bouton pour fermer";
var list_prompt         = "Entrez un objet de liste. Cliquez sur 'annuler' ou laissez à blanc pour terminer la liste";

//--------------------------------------------
// Set up our simple tag open values
//--------------------------------------------
//
// Modified by Volker Puttrich to allow IE 4+
// on windows to use cursor position for inserting
// tags / smilies

var T1_open = 0;
var T2_open = 0;
var T3_open = 0;
var B_open = 0;
var I_open = 0;
var U_open = 0;
var QUOTE_open = 0;
var CODE_open = 0;
var SQL_open = 0;
var HTML_open = 0;

var bbtags   = new Array();

// Determine browser type and stuff.
// Borrowed from http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html

var myAgent   = navigator.userAgent.toLowerCase();
var myVersion = parseInt(navigator.appVersion);

var is_ie   = ((myAgent.indexOf("msie") != -1)  && (myAgent.indexOf("opera") == -1));
var is_nav  = ((myAgent.indexOf('mozilla')!=-1) && (myAgent.indexOf('spoofer')==-1)
                && (myAgent.indexOf('compatible') == -1) && (myAgent.indexOf('opera')==-1)
                && (myAgent.indexOf('webtv') ==-1)       && (myAgent.indexOf('hotjava')==-1));

var is_win   =  ((myAgent.indexOf("win")!=-1) || (myAgent.indexOf("16bit")!=-1));
var is_mac    = (myAgent.indexOf("mac")!=-1);

// Set the initial radio button status based on cookies

var allcookies = document.cookie;
var pos = allcookies.indexOf("bbmode=");

//prep_mode();

function prep_mode() {
    if (pos != 1) {
	var cstart = pos + 7;
	var cend   = allcookies.indexOf(";", cstart);
	if (cend == -1) { cend = allcookies.length; }
	cvalue = allcookies.substring(cstart, cend);
	
	if (cvalue == 'ezmode') {
	    document.REPLIER.bbmode[0].checked = true;
	} else {
	    document.REPLIER.bbmode[1].checked = true;
	}
    } else {
	// default to normal mode.
	document.REPLIER.bbmode[1].checked = true;
    }
}

function setmode(mVal) {
    document.cookie = "bbmode="+mVal+"; path=/; expires=Wed, 1 Jan 2020 00:00:00 GMT;";
}

function get_easy_mode_state() {
    // Returns true if we've chosen easy mode
    
    if (document.REPLIER.bbmode[0].checked) {
	return true;
    } else {
	return false;
    }
}

//--------------------------------------------
// Set the help bar status
//--------------------------------------------

function hstat(msg) {
    document.REPLIER.helpbox.value = eval( "help_" + msg );
}

// Set the number of tags open box

function cstat(){
    var c = stacksize(bbtags);
    
    if ( (c < 1) || (c == null) ) {
	c = 0;
    }
    
    if ( ! bbtags[0] ) {
	c = 0;
    }
    
    document.REPLIER.tagcount.value = c;
}

//--------------------------------------------
// Get stack size
//--------------------------------------------

function stacksize(thearray) {
    for (i = 0 ; i < thearray.length; i++ ) {
	if ( (thearray[i] == "") || (thearray[i] == null) || (thearray == 'undefined') ) {
	    return i;
	}
    }
    
    return thearray.length;
}

//--------------------------------------------
// Push stack
//--------------------------------------------

function pushstack(thearray, newval) {
    arraysize = stacksize(thearray);
    thearray[arraysize] = newval;
}

//--------------------------------------------
// Pop stack
//--------------------------------------------

function popstack(thearray) {
    arraysize = stacksize(thearray);
    theval = thearray[arraysize - 1];
    delete thearray[arraysize - 1];
    return theval;
}


//--------------------------------------------
// Close all tags
//--------------------------------------------

function closeall() {
    if (bbtags[0]) {
	while (bbtags[0]) {
	    tagRemove = popstack(bbtags)
		document.REPLIER.Post.value += "[/" + tagRemove + "]";
	    
	    // Change the button status
	    // Ensure we're not looking for FONT, SIZE or COLOR as these
	    // buttons don't exist, they are select lists instead.
	    
	    if ( (tagRemove != 'FONT') && (tagRemove != 'SIZE') && (tagRemove != 'COLOR') ) {
		eval("document.REPLIER." + tagRemove + ".value = ' " + tagRemove + " '");
		eval(tagRemove + "_open = 0");
	    }
	}
    }
    
    // Ensure we got them all
    document.REPLIER.tagcount.value = 0;
    bbtags = new Array();
    document.REPLIER.Post.focus();
}


//--------------------------------------------
// ADD CODE
//--------------------------------------------

function add_code(NewCode) {
    document.REPLIER.Post.value += NewCode;
    document.REPLIER.Post.focus();
}


//--------------------------------------------
// SIMPLE TAGS (such as B, I U, etc)
//--------------------------------------------
function simpletag(thetag) {
    var tagOpen = eval(thetag + "_open");
    
    if ( get_easy_mode_state() ) {
	inserttext = prompt(prompt_start + "\n[" + thetag + "]xxx[/" + thetag + "]");
	if ( (inserttext != null) && (inserttext != "") ) {
	    doInsert("[" + thetag + "]" + inserttext + "[/" + thetag + "] ", "", false);
	}
    } else {
	if (tagOpen == 0) {
	    if(doInsert("[" + thetag + "]", "[/" + thetag + "]", true)){
		eval(thetag + "_open = 1");
		// Change the button status
		eval("document.REPLIER." + thetag + ".value += '*'");
		
		pushstack(bbtags, thetag);
		cstat();
		hstat('click_close');
	    }
	} else {
	    // Find the last occurance of the opened tag
	    lastindex = 0;
	    
	    for (i = 0 ; i < bbtags.length; i++ ) {
		if ( bbtags[i] == thetag ) {
		    lastindex = i;
		}
	    }
	    
	    // Close all tags opened up to that tag was opened
	    while (bbtags[lastindex]) {
		tagRemove = popstack(bbtags);
		doInsert("[/" + tagRemove + "]", "", false)
		    
		    // Change the button status
		    eval("document.REPLIER." + tagRemove + ".value = ' " + tagRemove + " '");
		eval(tagRemove + "_open = 0");
	    }
	    
	    cstat();
	}
    }
}

//--------------------------------------------
// LIST
//--------------------------------------------
function tag_list() {
    var listvalue = "init";
    var thelist = "[LIST]\n";
    
    while ( (listvalue != "") && (listvalue != null) ) {
	listvalue = prompt(list_prompt, "");
	if ( (listvalue != "") && (listvalue != null) ) {
	    thelist = thelist+"[*]"+listvalue+"\n";
	}
    }
    
    doInsert(thelist + "[/LIST]\n", "", false);
}

//--------------------------------------------
// URL
//--------------------------------------------
function tag_url() {
    var FoundErrors = '';
    var enterURL   = prompt(text_enter_url, "http://");
    var enterTITLE = prompt(text_enter_url_name, "My Webpage");
    
    if (!enterURL) {
        FoundErrors += " " + error_no_url;
    }
    if (!enterTITLE) {
        FoundErrors += " " + error_no_title;
    }
    
    if (FoundErrors) {
        alert("Error!"+FoundErrors);
        return;
    }
    
    doInsert("[URL="+enterURL+"]"+enterTITLE+"[/URL]", "", false);
}

//--------------------------------------------
// IMAGE
//--------------------------------------------
function tag_image() {
    var FoundErrors = '';
    var enterURL   = prompt(text_enter_image, "http://");
    
    if (!enterURL) {
        FoundErrors += " " + error_no_url;
    }
    
    if (FoundErrors) {
        alert("Error!"+FoundErrors);
        return;
    }
    
    doInsert("[IMG]"+enterURL+"[/IMG]", "", false);
}

//--------------------------------------------
// EMAIL
//--------------------------------------------
function tag_email() {
    var emailAddress = prompt(text_enter_email, "");
    
    if (!emailAddress) { 
	alert(error_no_email); 
	return; 
    }
    
    doInsert("[EMAIL]"+emailAddress+"[/EMAIL]", "", false);
}

//--------------------------------------------
// GENERAL INSERT FUNCTION
//--------------------------------------------
// ibTag: opening tag
// ibClsTag: closing tag, used if we have selected text
// isSingle: true if we do not close the tag right now
// return value: true if the tag needs to be closed later

//

function doInsert(ibTag, ibClsTag, isSingle)
{
    var isClose = false;
    var obj_ta = document.REPLIER.Post;
    
    if ( (myVersion >= 4) && is_ie && is_win) // Ensure it works for IE4up / Win only
	{
	    if(obj_ta.isTextEdit){ // this doesn't work for NS, but it works for IE 4+ and compatible browsers
		obj_ta.focus();
		var sel = document.selection;
		var rng = sel.createRange();
		rng.colapse;
		if((sel.type == "Text" || sel.type == "None") && rng != null){
		    if(ibClsTag != "" && rng.text.length > 0)
			ibTag += rng.text + ibClsTag;
		    else if(isSingle)
			isClose = true;
		    
		    rng.text = ibTag;
		}
	    } else{
		if(isSingle)
		    isClose = true;
		
		obj_ta.value += ibTag;
	    }
	} else {
	    if(isSingle)
		isClose = true;
	    
	    obj_ta.value += ibTag;
	}
    
    obj_ta.focus();
    
    // clear multiple blanks
    //	obj_ta.value = obj_ta.value.replace(/  /, " ");
    
    return isClose;
}	

