var isMozilla = (navigator.userAgent.toLowerCase().indexOf('gecko')!=-1) ? true : false;
var regexp = new RegExp("[\r]","gi");

function storeCaret(selec)
{
	if (isMozilla) 
	{
	// Si on est sur Mozilla

		oField = document.forms['formu'].elements['texte'];

		objectValue = oField.value;

		deb = oField.selectionStart;
		fin = oField.selectionEnd;

		objectValueDeb = objectValue.substring( 0 , oField.selectionStart );
		objectValueFin = objectValue.substring( oField.selectionEnd , oField.textLength );
		objectSelected = objectValue.substring( oField.selectionStart ,oField.selectionEnd );

	//	alert("Debut:'"+objectValueDeb+"' ("+deb+")\nFin:'"+objectValueFin+"' ("+fin+")\n\nSelectionné:'"+objectSelected+"'("+(fin-deb)+")");
			
		oField.value = objectValueDeb + "[" + selec + "]" + objectSelected + "[/" + selec + "]" + objectValueFin;
		oField.selectionStart = strlen(objectValueDeb);
		oField.selectionEnd = strlen(objectValueDeb + "[" + selec + "]" + objectSelected + "[/" + selec + "]");
		oField.focus();
		oField.setSelectionRange(
			objectValueDeb.length + selec.length + 2,
			objectValueDeb.length + selec.length + 2);
	}
	else
	{
	// Si on est sur IE
		
		oField = document.forms['formu'].elements['texte'];
		var str = document.selection.createRange().text;

		if (str.length>0)
		{
		// Si on a selectionné du texte
			var sel = document.selection.createRange();
			sel.text = "[" + selec + "]" + str + "[/" + selec + "]";
			sel.collapse();
			sel.select();
		}
		else
		{
			oField.focus(oField.caretPos);
		//	alert(oField.caretPos+"\n"+oField.value.length+"\n")
			oField.focus(oField.value.length);
			oField.caretPos = document.selection.createRange().duplicate();
			
			var bidon = "%~%";
			var orig = oField.value;
			oField.caretPos.text = bidon;
			var i = oField.value.search(bidon);
			oField.value = orig.substr(0,i) + "[" + selec + "][/" + selec + "]" + orig.substr(i, oField.value.length);
			var r = 0;
			for(n = 0; n < i; n++)
			{if(regexp.test(oField.value.substr(n,2)) == true){r++;}};
			pos = i + 2 + selec.length - r;
			//placer(document.forms['news'].elements['newst'], pos);
			var r = oField.createTextRange();
			r.moveStart('character', pos);
			r.collapse();
			r.select();

		}
	}
}


// Helpline messages
b_help = "Texte gras : [b]texte[/b]";
i_help = "Texte italique : [i]texte[/i]";
u_help = "Texte souligné : [u]texte[/u]";
w_help = "Insérer un lien : [url]http://url/[/url] ou [url=http://url/]Nom[/url]";
img_help = "Insérer une image: [img]http://image_url/[/img]";
d_help = "Permet d'entourer une image par du texte. (Faire un flottant)";
g_help = "Permet d'entourer une image par du texte. (Faire un flottant)";
c_help = "Permet de centrer : [centrer]Texte à centrer[/centrer]";
jeu_help = "Faire un lien vers la fiche du jeu : [jeu]jeu[/jeu]";
// Shows the help messages in the helpline window
function helpline(help) {
	document.forms['formu'].helpbox.value = eval(help + "_help");
}
  function countInstances(open,closed) 
  { 
     var opening = document.hop.contenu.value.split(open); 
     var closing = document.hop.contenu.value.split(closed); 
     return opening.length + closing.length - 2; 
  } 

  function TAinsert(text1,text2,contenu) 
  { 

     var ta = document.getElementById(contenu); 

     if (document.selection) { 
	
        var str = document.selection.createRange().text; 
        ta.focus(); 
		  
        var sel = document.selection.createRange(); 
        if (text2!="") 
        { 
		 sel.text = text1 + sel.text + text2; 
        } 
        else 
        { 
           sel.text = sel.text + text1; 
        } 
        
     } 
     else if (ta.selectionStart | ta.selectionStart == 0) 
     { 
        if (ta.selectionEnd > ta.value.length) { ta.selectionEnd = ta.value.length; } 
       
        var firstPos = ta.selectionStart; 
        var secondPos = ta.selectionEnd+text1.length; 
       
        ta.value=ta.value.slice(0,firstPos)+text1+ta.value.slice(firstPos); 
        ta.value=ta.value.slice(0,secondPos)+text2+ta.value.slice(secondPos); 
         
        ta.selectionStart = firstPos+text1.length; 
        ta.selectionEnd = secondPos; 
        ta.focus(); 
     } 
     else 
     { // Opera 
        var sel = document.hop.contenu; 
       
        var instances = countInstances(text1,text2); 
        if (instances%2 != 0 && text2 != ""){ sel.value = sel.value + text2; } 
        else{ sel.value = sel.value + text1; } 
     }  
  }
function insereTxt(txt)
{
ajtTexte(txt, "message");
} 
function ajtTexte(txt,id)
{

var obj = document.forms['formu'].elements['texte'];
 obj.focus();
 if(document.selection && document.selection.createRange){
 sel = document.selection.createRange();
 if (sel.parentElement()==obj)//si sel est dans obj
sel.text = sel.text+txt;
 }

else if(String(typeof obj.selectionStart)!="undefined"){
sel = obj.selectionStart;
obj.value = (obj.value).substring(0,sel) +
          txt +
(obj.value).substring(sel,obj.value.length);
}
else obj.value+=txt;
 obj.focus();
}