function storeCaret(text) {
    if (typeof text.createTextRange != "undefined") {
        text.caretPos = document.selection.createRange().duplicate();
    }
}

function replaceText(text, textarea) {
    if (typeof textarea.caretPos != "undefined" && textarea.createTextRange) {
        var caretPos = textarea.caretPos;
        caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == " " ? text + " " : text;
        caretPos.select();
    } else if (typeof textarea.selectionStart != "undefined") {
        var begin = textarea.value.substr(0, textarea.selectionStart);
        var end = textarea.value.substr(textarea.selectionEnd);
        var scrollPos = textarea.scrollTop;
        textarea.value = begin + text + end;
        if (textarea.setSelectionRange) {
            textarea.focus();
            textarea.setSelectionRange(begin.length + text.length, begin.length + text.length);
        }
        textarea.scrollTop = scrollPos;
    } else {
        textarea.value += text;
        textarea.focus(textarea.value.length - 1);
    }
}


function surroundText(text1, text2, textarea){
	// Can a text range be created?
	if (typeof(textarea.caretPos) != "undefined" && textarea.createTextRange){
		var caretPos = textarea.caretPos, temp_length = caretPos.text.length;
		caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text1 + caretPos.text + text2 + ' ' : text1 + caretPos.text + text2;
		if (temp_length == 0){
			caretPos.moveStart("character", -text2.length);
			caretPos.moveEnd("character", -text2.length);
			caretPos.select();
		}
		else{
			textarea.focus(caretPos);
		}
	}
	// Mozilla text range wrap.
	else if (typeof(textarea.selectionStart) != "undefined"){
		var begin = textarea.value.substr(0, textarea.selectionStart);
		var selection = textarea.value.substr(textarea.selectionStart, textarea.selectionEnd - textarea.selectionStart);
		var end = textarea.value.substr(textarea.selectionEnd);
		var newCursorPos = textarea.selectionStart;
		var scrollPos = textarea.scrollTop;
		textarea.value = begin + text1 + selection + text2 + end;
	
		if (textarea.setSelectionRange){
			if (selection.length == 0){
				textarea.setSelectionRange(newCursorPos + text1.length, newCursorPos + text1.length);
			}
			else{
			textarea.setSelectionRange(newCursorPos, newCursorPos + text1.length + selection.length + text2.length);
			textarea.focus();
			}
			textarea.scrollTop = scrollPos;
		}
		// Just put them on the end, then.
		else{
			 textarea.value += text1 + text2;
			 textarea.focus(textarea.value.length - 1);
		}
	}
}

function isEmptyText(theField) {
    var theValue = theField.value;
    while (theValue.length > 0 &&
        (theValue.charAt(0) == " " || theValue.charAt(0) == "	")) {
        theValue = theValue.substring(1, theValue.length);
    }
    while (theValue.length > 0 &&
        (theValue.charAt(theValue.length - 1) == " " ||
        theValue.charAt(theValue.length - 1) == "	")) {
        theValue = theValue.substring(0, theValue.length - 1);
    }
    if (theValue == "") {
        return true;
    } else {
        return false;
    }
}

function editeur(form,area){
	document.write("<div id=\"editeur\" style=\"width:416px;\" >"); 

		document.write("<a href=\"javascript:void(0);\" onclick=\"surroundText('[b]','[/b]',document.forms."+form+"."+area+"); return false;\"><img src=\"views/images/bold.gif\" style=\"border:1px solid black;\" alt=\"mettre en gras\" title=\"mettre en gras\" /></a>&#160;");
		document.write("<a href=\"javascript:void(0);\" onclick=\"surroundText('[i]','[/i]', document.forms."+form+"."+area+"); return false;\"><img src=\"views/images/italicize.gif\" style=\"border:1px solid black;\" alt=\"mettre en italique\" title=\"mettre en italique\" /></a>&#160;");
		document.write("<a href=\"javascript:void(0);\" onclick=\"surroundText('[u]','[/u]', document.forms."+form+"."+area+"); return false;\"><img src=\"views/images/underline.gif\" style=\"border:1px solid black;\" alt=\"souligner\" title=\"souligner\" /></a>&#160;");
		document.write("<a href=\"javascript:void(0);\" onclick=\"surroundText('[s]','[/s]', document.forms."+form+"."+area+"); return false;\"><img src=\"views/images/strike.gif\" style=\"border:1px solid black;\" alt=\"barrer\" title=\"barrer\" /></a>&#160;");
							
		document.write("<a href=\"javascript:void(0);\" onclick=\"surroundText('[center]','[/center]', document.forms."+form+"."+area+"); return false;\"><img src=\"views/images/center.gif\" style=\"border:1px solid black;\" alt=\"centrer\" title=\"centrer\" /></a>&#160;");
		document.write("<a href=\"javascript:void(0);\" onclick=\"surroundText('[right]','[/right]', document.forms."+form+"."+area+"); return false;\"><img src=\"views/images/right.gif\" style=\"border:1px solid black;\" alt=\"aligner à droite\" title=\"aligner à droite\"/></a>&#160;");
		document.write("<a href=\"javascript:void(0);\" onclick=\"surroundText('[justify]','[/justify]', document.forms."+form+"."+area+"); return false;\"><img src=\"views/images/justify.gif\" style=\"border:1px solid black;\" alt=\"justifier\" title=\"justifier\"/></a>&#160;");
							
		document.write("<a href=\"javascript:void(0);\" onclick=\"surroundText('[img]','[/img]', document.forms."+form+"."+area+"); return false;\"><img src=\"views/images/img.gif\" style=\"border:1px solid black;\" alt=\"insérer le lien vers une image\" title=\"insérer le lien vers une image\" /></a>&#160;");
		document.write("<a href=\"javascript:void(0);\" onclick=\"surroundText('[url]','[/url]', document.forms."+form+"."+area+"); return false;\"><img src=\"views/images/url.gif\" style=\"border:1px solid black;\" alt=\"insérer une url\" title=\"insérer une url\" /></a>&#160;");
		document.write("<a href=\"javascript:void(0);\" onclick=\"surroundText('[quote]','[/quote]', document.forms."+form+"."+area+"); return false;\"><img src=\"views/images/quote.gif\" style=\"border:1px solid black;\" alt=\"citer\" title=\"citer\" /></a>&#160;");
							
		document.write("<a href=\"javascript:palette();\"><img id=\"boutoncolor\" src=\"views/images/cpolice.gif\" style=\"border:1px solid black;\" alt=\"changer la couleur de la police\" title=\"changer la couleur de la police\" /></a>&#160;");

		document.write("<div id=\"palette\" style=\"display:none; width:100px; height:77px; overflow:auto; border:1px solid #000; position:absolute; top:0px; right:0px;\">"); 
		document.write("<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"400px\" ><tr>");
		var h=new Array('00','33','66','99','CC','FF'); 
		var col=""; 
		for(var i=0;i<6;i++){ 
			for(var j=0;j<6;j++){ 
				for(var k=0;k<6;k++){ 
					col="#"+h[i]+h[j]+h[k]; 
					document.write("<td width='10px' height='10px' bgcolor='"+col+"' onClick=\"surroundText('[color="+col+"]','[/color]',document.forms."+form+"."+area+"); return false;\"></td>"); 
				} 
			} 
			document.write("</tr>"); 
		} 
		document.write("</table></div><p style=\"font-size:10px; margin:0px;\">Surlignez le texte à mettre en forme</p></div>"); 
}

function palette(){
	if(document.getElementById('palette').style.display == 'none'){
		open('palette');
	}
	else{
		close('palette');
	}
}
