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

function ppcode_encode(selec, type, form, elem)
{
	if (isMozilla) 
	{
	// Si on est sur Mozilla

		oField = document.forms[form].elements[elem];

		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)+")");
		if (type==0)
		{	
			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
		{

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

		if (str.length>0)
		{
		// Si on a selectionné du texte
			var sel = document.selection.createRange();
			if (type==0)
			{ sel.text = "[" + selec + "]" + str + "[/" + selec + "]"; }
			else
			{ sel.text = selec + str + selec; }
			sel.collapse();
			sel.select();
			
		}
		else
		{
			oField.focus(oField.caretPos);
			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);
			if (type==0)
			{ oField.value = orig.substr(0,i) + "[" + selec + "][/" + selec + "]" + orig.substr(i, oField.value.length); }
			else
			{ oField.value = orig.substr(0,i) + 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 ppcode_afficher ( form, elem, div )
{

var texte =
"<input type=\"button\" value=\"b\" style=\"width:50px;font-weight:bold\" onclick=\"ppcode_encode('b', 0, '" + form + "', '" + elem + "')\">"+
"<input type=\"button\" value=\"i\" style=\"width:50px;font-style:italic\" onclick=\"ppcode_encode('i', 0, '" + form + "', '" + elem + "')\">"+
"<input type=\"button\" value=\"u\" style=\"width:50px;text-decoration:underline\" onclick=\"ppcode_encode('u', 0, '" + form + "', '" + elem + "')\">"+
"<input type=\"button\" value=\"quote\"style=\"width:50px\" onclick=\"ppcode_encode('quote', 0, '" + form + "', '" + elem + "')\">"+
"<input type=\"button\" value=\"code\"style=\"width:50px\" onclick=\"ppcode_encode('code', 0, '" + form + "', '" + elem + "')\">"+
"<input type=\"button\" value=\"url\"style=\"width:50px\" onclick=\"ppcode_encode('url', 0, '" + form + "', '" + elem + "')\">"+
"<input type=\"button\" value=\"img\"style=\"width:50px\" onclick=\"ppcode_encode('img', 0, '" + form + "', '" + elem + "')\"><br>";
document.getElementById(div).innerHTML = texte;
}
