// $Id: bbcode.js 891 2010-02-10 14:53:13Z mike007.devpwsphp $

function format(f)
{
	if(f!='')
	{
		var ObjTA = document.getElementById('postzone');
		var CurScroll = ObjTA.scrollTop;

		var f1 = f2 = f;
		var f3 = f4 = '';
		if (f == 'list')	{f3 = '\n[*]'; f4 = '\n';}
		if (f.match("="))	var f2 = f.substring(0,f.indexOf("=",0));
		var DecalDeb = f1.length+f3.length+2;

		//IE
		if (document.selection)
		{
			var str = document.selection.createRange().text;
			ObjTA.focus();
			var sel = document.selection.createRange();
			if (f1.toLowerCase()!="hr")
			{
				sel.text = "[" + f1 + "]" + f3 + str + f4 +"[/" + f2 + "]";
				sel = document.selection.createRange();
				Recup_Cursor(ObjTA,sel,sel,DecalDeb,str,CurScroll);
			}
			else
			{
				sel.text = str + "[" + f1 + "]";
				Recup_Cursor(ObjTA,sel,sel,0,'',CurScroll);
			}
			return;
		}
		//MOZILLA/NETSCAPE
		else if (navigator.appName=="Netscape" || navigator.appName=="Konqueror" || ObjTA.textLength >= 0)
		{
			var startPos = ObjTA.selectionStart;
			var endPos = ObjTA.selectionEnd;
			var chaine = ObjTA.value;
			if (f1.toLowerCase()!="hr")
			{
				ObjTA.value = chaine.substring(0, startPos) + "[" + f1 + "]" + f3 + chaine.substring(startPos, endPos) + f4 +"[/" + f2 + "]" + chaine.substring(endPos, chaine.length);
				Recup_Cursor(ObjTA,startPos,endPos,DecalDeb,DecalDeb,CurScroll);
			}
			else
			{
				ObjTA.value = chaine.substring(0, startPos) + chaine.substring(startPos, endPos) + "[" + f1 + "]" + chaine.substring(endPos, chaine.length);
				Recup_Cursor(ObjTA,endPos,endPos,DecalDeb,DecalDeb,CurScroll);
			}
			return;
		}
	}
}

function sm(f)
{
	f = f + " ";

	var ObjTA = document.getElementById('postzone');
	var CurScroll = ObjTA.scrollTop;
	var DecalDeb = f.length;

	//IE
	if (document.selection)
	{
		var str = document.selection.createRange().text;
		ObjTA.focus();
		var sel = document.selection.createRange();
		sel.text = str + f;
		Recup_Cursor(ObjTA,sel,sel,0,'',CurScroll);
		return;
	}
	//MOZILLA/NETSCAPE
	else if (navigator.appName=="Netscape" || navigator.appName=="Konqueror" || ObjTA.textLength>=0)
	{
		var startPos = ObjTA.selectionStart;
		var endPos = ObjTA.selectionEnd;
		var chaine = ObjTA.value;
		var smileylenght = f.value;
		ObjTA.value = chaine.substring(0, startPos) + chaine.substring(startPos, endPos) + f + chaine.substring(endPos, chaine.length);
		Recup_Cursor(ObjTA,endPos,endPos,DecalDeb,DecalDeb,CurScroll);
		return;
	}
}

function showimage(c)
{
	if(c!='')
	{
		//IE
		if (document.selection)
		{
			document.getElementById('postzone').focus();
			var sel = document.selection.createRange();
			sel.text = "[img].\/modules\/page\/images\/" + c + "[/img]";
			return;
		}
		//MOZILLA/NETSCAPE
		else if (navigator.appName=="Netscape" || navigator.appName=="Konqueror" || document.getElementById('postzone').textLength>=0)
		{
			var startPos = document.getElementById('postzone').selectionStart;
			var endPos = document.getElementById('postzone').selectionEnd;
			var chaine = document.getElementById('postzone').value;
			document.getElementById('postzone').value = chaine.substring(0, startPos) + "[img]./modules\/page\/images\/" + c + "[/img]" + chaine.substring(endPos, chaine.length);
			return;
		}
	}
} 

function bb_chg(id)
{
	var el= document.getElementById(id);
	if(el.style.display=="block")
	{
		el.style.display="none";
	}
	else
	{
		el.style.display="block";
	}
}

function Recup_Cursor(ObjTA,startPos,endPos,DecalDeb,DecalFin,CurScroll)
{
	if(typeof ObjTA.selectionStart != 'undefined')
	{
		startPos += DecalDeb;
		endPos += DecalDeb;
		ObjTA.setSelectionRange(startPos, endPos);
		ObjTA.focus();
		ObjTA.scrollTop = CurScroll;
	}
	else
	{
		var DecalFinDiff = Get_NbrCR(DecalFin);
		DecalFin = DecalFin.length - DecalFinDiff;
		//-- Deplace le curseur
		startPos.collapse(true);
		startPos.moveStart('character', DecalDeb);
		startPos.moveEnd('character', DecalFin);
		startPos.select();
	}
	if (document.getElementById('apercu'))
	{
		document.getElementById('apercu').scrollTop = CurScroll;
		bjs(ObjTA.value,'apercu');
	}
}

function Get_NbrCR(txt_){
	var NbrCR = 0;
	var Pos = txt_.indexOf("\r\n");
	while( Pos > -1)
	{
		Pos = txt_.indexOf("\r\n", Pos+2);
		NbrCR ++;
	}
	return( NbrCR);
}


