function storeCaret(ao_txtfield,as_mf){
	var isIE = (document.all);
	if(!isIE){
	//mozilla
	//recuperation du txt selectionné
	oField = ao_txtfield;
	oFieldValue = oField.value;
	deb = oField.selectionStart;
	fin = oField.selectionEnd;
	Deb = oFieldValue.substring( 0 , oField.selectionStart );
	Fin = oFieldValue.substring( oField.selectionEnd , oField.textLength );
	Sel = oFieldValue.substring( oField.selectionStart ,oField.selectionEnd );
	oField.value = Deb + '[' + as_mf + "]" + Sel + "[/" + as_mf + ']' + Fin;
	oField.selectionStart = Deb.length;
	tmps =Deb + '[' + as_mf+']' + Sel +"[/" + as_mf + ']'
	oField.selectionEnd = tmps.length+2;
	oField.setSelectionRange(Deb.length+as_mf.length+2,tmps.length-as_mf.length-3);
	oField.focus();
	}else{
	//IE
	var str = document.selection.createRange().text;
	if (str.length>0){
	//recuperation du txt selectionné
	var select = document.selection.createRange();
	select.text = '[' + as_mf + ']' + str + "[/" + as_mf + ']';
	select.collapse();
	select.select();
	}else{
	ao_txtfield.focus(ao_txtfield.caretPos);
	ao_txtfield.focus(ao_txtfield.value.length);
	ao_txtfield.caretPos = document.selection.createRange().duplicate();
	var bidon = "%~%";
	var original = ao_txtfield.value;
	ao_txtfield.caretPos.text = bidon;
	var i = ao_txtfield.value.search(bidon);
	ao_txtfield.value = original.substr(0,i) + '[' + as_mf + "][/" + as_mf + ']' + original.substr(i, ao_txtfield.value.length);
	var temp = original.substr(0,i);
	var nbretour =0;
	for (var cpt=0;cpt<temp.length;cpt=cpt+1){
	if(temp.charAt(cpt)=="\n"){
	nbretour=nbretour+1;
	}
	}
	pos = i + 2 + as_mef.length - nbretour;
	var r = oField.createTextRange();
	var r = ao_txtfield.createTextRange();
	r.moveStart('character', pos);
	r.collapse();
	r.select();
	}
	}
	}


	function storeCaretValue(ao_txtfield,as_mf,as_url){
	var isIE = (document.all);
	if(!isIE){
	//mozilla
	//recuperation du txt selectionné
	oField = ao_txtfield;
	oFieldValue = oField.value;
	deb = oField.selectionStart;
	fin = oField.selectionEnd;
	Deb = oFieldValue.substring( 0 , oField.selectionStart );
	Fin = oFieldValue.substring( oField.selectionEnd , oField.textLength );
	Sel = oFieldValue.substring( oField.selectionStart ,oField.selectionEnd );
	oField.value = Deb + '[' + as_mf+'='+as_url+ '*'+as_mf+']' + Sel + '[/' + as_mf + ']' + Fin;
	oField.selectionStart = Deb.length;
	tmps =Deb + '[' + as_mf+'=' +as_url+ '*'+as_mf+']' + Sel +'[/' + as_mf + ']';
	oField.selectionEnd = tmps.length+3;
	oField.setSelectionRange(Deb.length+(as_mf.length*2)+as_url.length+4,tmps.length-as_mf.length-3);
	oField.focus();
	}else{
	//IE
	var str = document.selection.createRange().text;
	if (str.length>0){
	//recuperation du txt selectionné
	var select = document.selection.createRange();
	select.text = '[' + as_mf +'='+as_url+ '*'+as_mf+']' + str + '[/' + as_mf + ']';
	select.collapse();
	select.select();
	}else{
	ao_txtfield.focus(ao_txtfield.caretPos);
	ao_txtfield.focus(ao_txtfield.value.length);
	ao_txtfield.caretPos = document.selection.createRange().duplicate();
	var bidon = "%~%";
	var original = ao_txtfield.value;
	ao_txtfield.caretPos.text = bidon;
	var i = ao_txtfield.value.search(bidon);
	ao_txtfield.value = original.substr(0,i) + '[' + as_mf +'='+as_url+ '*'+as_mf+'][/' + as_mf + ']' + original.substr(i, ao_txtfield.value.length);
	var temp = original.substr(0,i);
	var nbretour =0;
	for (var cpt=0;cpt<temp.length;cpt=cpt+1){
	if(temp.charAt(cpt)=="\n"){
	nbretour=nbretour+1;
	}
	}
	pos = i + 2 + as_mef.length - nbretour;
	var r = oField.createTextRange();
	var r = ao_txtfield.createTextRange();
	r.moveStart('character', pos);
	r.collapse();
	r.select();
	var r = ao_txtfield.createTextRange();
	r.moveStart('character', pos);
	r.collapse();
	r.select();
	}
	}
}


function storeCaretValue(ao_txtfield,as_mf,as_url){
	var isIE = (document.all);
	if(!isIE){
	//mozilla
	//recuperation du txt selectionné
	oField = ao_txtfield;
	oFieldValue = oField.value;
	deb = oField.selectionStart;
	fin = oField.selectionEnd;
	Deb = oFieldValue.substring( 0 , oField.selectionStart );
	Fin = oFieldValue.substring( oField.selectionEnd , oField.textLength );
	Sel = oFieldValue.substring( oField.selectionStart ,oField.selectionEnd );
	oField.value = Deb + '[' + as_mf+'='+as_url+ '*'+as_mf+']' + Sel + '[/' + as_mf + ']' + Fin;
	oField.selectionStart = Deb.length;
	tmps =Deb + '[' + as_mf+'=' +as_url+ '*'+as_mf+']' + Sel +'[/' + as_mf + ']';
	oField.selectionEnd = tmps.length+3;
	oField.setSelectionRange(Deb.length+(as_mf.length*2)+as_url.length+4,tmps.length-as_mf.length-3);
	oField.focus();
	}else{
	//IE
	var str = document.selection.createRange().text;
	if (str.length>0){
	//recuperation du txt selectionné
	var select = document.selection.createRange();
	select.text = '[' + as_mf +'='+as_url+ '*'+as_mf+']' + str + '[/' + as_mf + ']';
	select.collapse();
	select.select();
	}else{
	ao_txtfield.focus(ao_txtfield.caretPos);
	ao_txtfield.focus(ao_txtfield.value.length);
	ao_txtfield.caretPos = document.selection.createRange().duplicate();
	var bidon = "%~%";
	var original = ao_txtfield.value;
	ao_txtfield.caretPos.text = bidon;
	var i = ao_txtfield.value.search(bidon);
	ao_txtfield.value = original.substr(0,i) + '[' + as_mf +'='+as_url+ '*'+as_mf+'][/' + as_mf + ']' + original.substr(i, ao_txtfield.value.length);
	var temp = original.substr(0,i);
	var nbretour =0;
	for (var cpt=0;cpt<temp.length;cpt=cpt+1){
	if(temp.charAt(cpt)=="\n"){
	nbretour=nbretour+1;
	}
	}
	pos = i + 2 + as_mef.length - nbretour;
	var r = oField.createTextRange();
	var r = ao_txtfield.createTextRange();
	r.moveStart('character', pos);
	r.collapse();
	r.select();
	var r = ao_txtfield.createTextRange();
	r.moveStart('character', pos);
	r.collapse();
	r.select();
	}
	}
}

function storeCaretIMG(ao_txtfield,as_mf,as_url,ab_img){
	var isIE = (document.all);
	if(!isIE){
	//mozilla
	//recuperation du txt selectionné
	oField = ao_txtfield;
	oFieldValue = oField.value;
	deb = oField.selectionStart;
	fin = oField.selectionEnd;
	Deb = oFieldValue.substring( 0 , oField.selectionStart );
	Fin = oFieldValue.substring( oField.selectionEnd , oField.textLength );
	Sel = oFieldValue.substring( oField.selectionStart ,oField.selectionEnd );
	oField.value = Deb + '[' + as_mf +'='+as_url+ '*]' + Sel + Fin;
	tmps =Deb + '[' + as_mf +'='+as_url+ '*]';
	oField.selectionStart = tmps.length;
	tmps =Deb +'['+ as_mf+'='+as_url+'*]'+Sel;
	oField.selectionEnd = tmps.length;
	oField.setSelectionRange(Deb.length+as_mf.length+4,tmps.length);
	oField.focus();
	}else{
	//IE
	var str = document.selection.createRange().text;
	if (str.length>0){
	//recuperation du txt selectionné
	var select = document.selection.createRange();
	select.text = '[' + as_mf +'='+as_url+ '*]' + str;
	select.collapse();
	select.select();
	}else{
	ao_txtfield.focus(ao_txtfield.caretPos);
	ao_txtfield.focus(ao_txtfield.value.length);
	ao_txtfield.caretPos = document.selection.createRange().duplicate();
	var bidon = "%~%";
	var original = ao_txtfield.value;
	ao_txtfield.caretPos.text = bidon;
	var i = ao_txtfield.value.search(bidon);
	ao_txtfield.value = original.substr(0,i) + '[' + as_mf +'='+as_url+ '*]' + original.substr(i, ao_txtfield.value.length);
	var temp = original.substr(0,i);
	var nbretour =0;
	for (var cpt=0;cpt<temp.length;cpt=cpt+1){
	if(temp.charAt(cpt)=="\n"){
	nbretour=nbretour+1;
	}
	}
	pos = i + 2 + as_mef.length - nbretour;
	var r = oField.createTextRange();
	var r = ao_txtfield.createTextRange();
	r.moveStart('character', pos);
	r.collapse();
	r.select();
	var r = ao_txtfield.createTextRange();
	r.moveStart('character', pos);
	r.collapse();
	r.select();
	}
	}
}

function resetTxtField(ao_input){
	var ls_texte = ao_input.value;
	var la_ar = ls_texte.split("[u]");
	var tamp="";
	for(var i=0;i<la_ar.length;i++){
	tamp+=la_ar;
	}
	ls_texte = tamp;
	tamp="";
	la_ar = ls_texte.split("[/u]");
	for(var i=0;i<la_ar.length;i++){
	tamp+=la_ar[i];
	}
	ls_texte = tamp;
	tamp="";
	la_ar = ls_texte.split("[i]");
	for(var i=0;i<la_ar.length;i++){
	tamp+=la_ar[i];
	}
	ls_texte = tamp;
	tamp="";
	la_ar = ls_texte.split("");
	for(var i=0;i<la_ar.length;i++){
	tamp+=la_ar[i];
	}
	ls_texte = tamp;
	tamp="";
	la_ar = ls_texte.split("");
	for(var i=0;i<la_ar.length;i++){
	tamp+=la_ar[i];
	}
	ls_texte = tamp;
	tamp="";
	la_ar = ls_texte.split("");
	for(var i=0;i<la_ar.length;i++){
	tamp+=la_ar[i];
	}
	ls_texte = tamp;
	tamp="";
	la_ar = ls_texte.split("[tab]");
	for(var i=0;i<la_ar.length;i++){
	tamp+=la_ar[i];
	}
	ls_texte = tamp;
	tamp="";
	la_ar = ls_texte.split("[/url]");
	for(var i=0;i<la_ar.length;i++){
	tamp+=la_ar[i];
	}
	ls_texte = tamp;
	var tamp="";
	la_ar = ls_texte.split("[/color]");
	for(var i=0;i<la_ar.length;i++){
	tamp+=la_ar[i];
	}
	ls_texte = tamp;
	var tamp="";
	var bfind=false;
	for(var i=0;i<ls_texte.length;i++){
	if(ls_texte.charAt(i)=="["&&ls_texte.charAt(i+1)=="u"&&ls_texte.charAt(i+2)=="r"&&ls_texte.charAt(i+3)=="l"){
	bfind=true;
	}
	if(bfind){
	if(ls_texte.charAt(i)=="]"){
	bfind=false;
	}
	}else{
	tamp+=ls_texte.charAt(i);
	}
	}
	ls_texte = tamp;
	var tamp="";
	var bfind=false;
	for(var i=0;i<ls_texte.length;i++){
	if(ls_texte.charAt(i)=="["&&ls_texte.charAt(i+1)=="i"&&ls_texte.charAt(i+2)=="m"&&ls_texte.charAt(i+3)=="g"){
	bfind=true;
	}
	if(bfind){
	if(ls_texte.charAt(i)=="]"){
	bfind=false;
	}
	}else{
	tamp+=ls_texte.charAt(i);
	}
	}
	ls_texte = tamp;
	tamp="";
	var bfind=false;
	for(var i=0;i<ls_texte.length;i++){
	if(ls_texte.charAt(i)=="["&&ls_texte.charAt(i+1)=="c"&&ls_texte.charAt(i+2)=="o"&&ls_texte.charAt(i+3)=="l"&&ls_texte.charAt(i+4)=="o"&&ls_texte.charAt(i+5)=="r"){
	bfind=true;
	}
	if(bfind){
	if(ls_texte.charAt(i)=="]"){
	bfind=false;
	}
	}else{
	tamp+=ls_texte.charAt(i);
	}
	}
	ls_texte = tamp;
	ao_input.value=ls_texte;
}


function countInstances(open,closed) 
  { 
     var opening = document.principal.contenu.value.split(open); 
     var closing = document.principal.contenu.value.split(closed); 
     return opening.length + closing.length - 2; 
  } 

function InsertBbcode(text1,text2) 
  { 
     var ta = document.getElementById('newst'); 
       
     if (document.selection) { 
        var str = document.selection.createRange().text; 
        ta.focus(); 
        var sel = document.selection.createRange(); 
        if (text2!="") 
        { 
           if (str=="") 
           { 
              var instances = countInstances(text1,text2); 
              if (instances%2 != 0){ sel.text = sel.text + text2;} 
              else{ sel.text = sel.text + text1;} 
           } 
           else 
           { 
              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;
		var contenuScrollTop = ta.scrollTop;
       
        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();
		ta.scrollTop = contenuScrollTop;
     } 
     else 
     { // Opera 
        var sel = document.principal.contenu; 
       
        var instances = countInstances(text1,text2); 
        if (instances%2 != 0 && text2 != ""){ sel.value = sel.value + text2; } 
        else{ sel.value = sel.value + text1; } 
     }  
  } 