/************************************************************************************************/
/*	Duch  [www.icilalune.com]	gregory@icilalune.com 					*/
/*	Nabab [ITSys] 	                nabab@gmx.fr						*/
/*  Modified by Joce (joce@mesdiscussions.net)                              */
/************************************************************************************************/

var style=new Array('g','/g','i','/i','s','/s','email','/email','lien=','/lien','img','/img','quote','/quote','fixed','/fixed','cpp','/cpp','url','/url');
var stockage=new Array('0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0');
lien="http://";

function MM_findObj(n, d) { //v3.0
	var p,i,x;
	if(!d) d=document;
	if((p=n.indexOf("?"))>0&&parent.frames.length) d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);
	if(!(x=d[n])&&d.all) x=d.all[n];
	for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	for(i=0;!x&&d.layers&&i>d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}

function storeCaret (textEl) {
	if (textEl.createTextRange) textEl.caretPos=document.selection.createRange().duplicate();
}

function insertAtCaret (textEl, text) {
	if (textEl.createTextRange && textEl.caretPos) {
		var caretPos=textEl.caretPos;
		caretPos.text=caretPos.text.charAt(caretPos.text.length - 1)==' ' ? text + ' ' : text;
	}
}

function insertInCaret (textEl, text, text2) {
	if (textEl.createTextRange && textEl.caretPos) {
		var caretPos=textEl.caretPos;
		selectedtext=caretPos.text;
		caretPos.text=	caretPos.text.charAt(caretPos.text.length - 1)=='' ? text + '' : text;
		caretPos.text=caretPos.text + selectedtext + text2;
	}
}

function palette(id,vernav) {
	if (vernav>=4) {
		MM_findObj('Message').focus();
		if (MM_findObj('Message').createTextRange && MM_findObj('Message').caretPos) {
			var caretPos=MM_findObj('Message').caretPos;
			if (caretPos.text.length>0) {
				if (id !=8)insertInCaret(MM_findObj('Message'),"["+style[id]+"]","["+style[id+1]+"]");
				else {
					geturl=prompt("veuillez entrer l'url",'http://');
					insertInCaret(MM_findObj('Message'),"["+style[id]+geturl+"]","["+style[id+1]+"]");
				}
			} else {
				if ( (countbalise('['+style[id],'Message')+countbalise('['+style[id+1],'Message'))%2 ==0) {
					if (id !=8) insertAtCaret(MM_findObj('Message'),"["+style[id]+"]");
					else {	
						geturl=prompt("veuillez entrer l'url",'http://');
						insertAtCaret(MM_findObj('Message'),"["+style[id]+geturl+"]");
					}
				} else {
					insertAtCaret(MM_findObj('Message'),"["+style[id+1]+"]");
				}
				MM_findObj('Message').focus()
			}
		}
	} else {
		if (stockage[id]=='0') {
			var temp=document.InputForm.Message.value;
			document.InputForm.Message.value=temp+' '+'['+style[id]+']';
			stockage[id]='1';
		} else {
			var temp=document.InputForm.Message.value;
			document.InputForm.Message.value=temp+'['+style[id+1]+']'+' ';
			stockage[id]='0';
		}
	}
}

function countbalise(b,ch) {
	count=0;
	pos=MM_findObj(ch).value.indexOf(b);
	while ( pos !=-1 ){
		count++;
		pos=MM_findObj(ch).value.indexOf(b,pos+1);
	}
	return count;
}

function insertElt(MyString,vernav) {
	if (vernav>=4) {
		MM_findObj('Message').focus();
		if ((MM_findObj('Message').createTextRange) && (MM_findObj('Message').caretPos)) {
			var caretPos=MM_findObj('Message').caretPos;
			if (caretPos.text.length>0) insertInCaret(MM_findObj('Message'),MyString,"");
			else insertAtCaret(MM_findObj('Message'),MyString);
		}
	} else {
		var temp=document.InputForm.Message.value;
		document.InputForm.Message.value=temp+MyString;
	}
}

function insertTag(MyString,vernav) {
	if (vernav>=4) {
		MM_findObj('Message').focus();
		if (MM_findObj('Message').createTextRange && MM_findObj('Message').caretPos) {
			var caretPos=MM_findObj('Message').caretPos;
			if (caretPos.text.length>0) insertInCaret(MM_findObj('Message'),"["+MyString+"]","[/"+MyString+"]");
			else {
				if ( (countbalise('['+MyString,'Message')+countbalise('[/'+MyString,'Message'))%2 ==0) insertAtCaret(MM_findObj('Message'),"["+MyString+"]");
				else insertAtCaret(MM_findObj('Message'),"[/"+MyString+"]");
				MM_findObj('Message').focus();
			}
		}
	} else {
		if (stockage[12]=='0') {
			var temp=document.InputForm.Message.value;
			document.InputForm.Message.value=temp+' '+'['+MyString+']';
			stockage[12]='1';
		} else {
			var temp=document.InputForm.Message.value;
			document.InputForm.Message.value=temp+'[/'+MyString+']'+' ';
			stockage[12]='0';
		}
	}  
}

function putSmiley(tt,src) {
	TAinsert(" "+tt+" ","");
}

/************************************************************/
/*	freekill (freekill.free.fr) 					*/
/************************************************************/

function countInstances(open,closed) {
	var opening=document.InputForm.Message.value.split(open);
	var closing=document.InputForm.Message.value.split(closed);
	return opening.length + closing.length - 2;
}

function TAinsert(text1,text2) {
	var ta=document.getElementById('Message');
	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.InputForm.Message;
		var instances=countInstances(text1,text2);
		if (instances%2 !=0 && text2 !="") sel.value=sel.value + text2;
		else sel.value=sel.value + text1;
	}
}



