var isMozilla = (navigator.userAgent.toLowerCase().indexOf('gecko')!=-1) ? true : false;
var regexp = new RegExp("[\r]","gi");

function BBcode(selec)
{
	if (isMozilla) 
	{
	// Si on est sur Mozilla

		oField = document.forms['repondre_form'].elements['contenu'];

		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['repondre_form'].elements['contenu'];
		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();

		}
	}
}
function BBcode2(selec,value)
{
	if (isMozilla) 
	{
	// Si on est sur Mozilla

		oField = document.forms['repondre_form'].elements['contenu'];

		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 + "=" + value + "]" + objectSelected + "[/" + selec + "]" + objectValueFin;
		oField.selectionStart = strlen(objectValueDeb);
		oField.selectionEnd = strlen(objectValueDeb + "[" + selec + "=" + value + "]" + 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['repondre_form'].elements['contenu'];
		var str = document.selection.createRange().text;

		if (str.length>0)
		{
		// Si on a selectionné du texte
			var sel = document.selection.createRange();
			sel.text = "[" + selec + "=" + value + "]" + 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 + "=" + value + "][/" + 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();

		}
	}
}
var timer=0;
var ptag=String.fromCharCode(5,6,7);
function  visualisation() {
	oField = document.forms['repondre_form'].elements['contenu'];
	t = oField.value;
	t=code_to_html(t);
	if (document.getElementById) document.getElementById("previsualisation").innerHTML=t;
	timer=setTimeout(visualisation,1000);
}
function code_to_html(t) {
	t=nl2br(t);
// balise Gras
	t=remplace_tag(/\[b\]/g,'<strong>',t) ; 
	t=remplace_tag(/\[\/b\]/g,'</strong>',t) ; 
// balise Italique
	t=remplace_tag(/\[i\]/g,'<em>',t);  
	t=remplace_tag(/\[\/i\]/g,'</em>',t);  
// balise Underline
	t=remplace_tag(/\[u\]/g,'<u>',t);  
	t=remplace_tag(/\[\/u\]/g,'</u>',t);
// balise quote
	t=remplace_tag(/\[quote=([^\]]+)\]/g,'<p class="auteur">$1 a &eacute;crit</p><blockquote class="quote">',t);
	t=remplace_tag(/\[\/quote\]/g,'</blockquote>',t);
// balise Img
	t=remplace_tag(/\[img\](.*)\[\/img\]/g,'<img src="$1"/>',t);
// balise URL
	t=remplace_tag(/\[url=([^\]\s<>]+)\]([^\]]+)\[\/url\]/g,'<a href="$1" target="_blank">$2</a>',t);
	t=remplace_tag(/\[url\]([^\]]+)\[\/url\]/g,'<a href="$1" target="_blank">$1</a>',t);
	t=remplace_tag(/\[mail\]([^\]]+)@([^\]]+)\.([^\]]+)\[\/mail\]/g,'<a href="mailto:$1@$2.$3">$1@$2.$3</a>',t);
// balise Color	
	t=remplace_tag(/\[color=(#[a-fA-F0-9]{6})\]/g,'<span style="color:$1">',t);
	t=remplace_tag(/\[\/color\]/g,'</span>',t);  
// balise size	
	t=remplace_tag(/\[size=([0-9]*)\]/g,'<span style=" font-size: $1px;">',t);
	t=remplace_tag(/\[\/size\]/g,'</span>',t);  
	return t;
}
function remplace_tag(reg,rep,t) {
	texte=new String(t);
	return texte.replace(reg,rep);
}
function nl2br(t) {
	texte=new String(t);
	return texte.replace(/\n/g,'<br/>');
}
