/************************************************************************************************/
/*	Duch  [www.icilalune.com]	gregory@icilalune.com 					*/
/*	Nabab [ITSys] 	                nabab@gmx.fr						*/
/*  Modified by Joce (joc@presence-pc.com)                              */
/************************************************************************************************/

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.hop.message.value;
			document.hop.message.value=temp+' '+'['+style[id]+']';
			stockage[id] = '1';
		} else {
			var temp = document.hop.message.value;
			document.hop.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.hop.message.value;
		document.hop.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.hop.message.value;
			document.hop.message.value=temp+' '+'['+MyString+']';
			stockage[12] = '1';
		} else {
			var temp = document.hop.message.value;
			document.hop.message.value=temp+'[/'+MyString+']'+' ';
			stockage[12] = '0';
		}
	}  
}


///Color
col0 = new Array(255,255,0,255,0,0);
col1 = new Array(255,0,255,255,0,0);
col2 = new Array(0,0,255,0,0,255);
col3 = new Array(0,255,0,0,255,0);

var base_hexa = "0123456789ABCDEF";
function dec2Hexa(number) {
	return base_hexa.charAt(Math.floor(number / 16)) + base_hexa.charAt(number % 16);
}

function RGB2Hexa(TR,TG,TB) {
	return "#" + dec2Hexa(TR) + dec2Hexa(TG) + dec2Hexa(TB);
}

function lightCase(MyObject) {
	document.getElementById('ColorUsed').bgColor = document.getElementById(MyObject).bgColor;
}

function rgb(dm,ta,index) {
	fm = dm + 18;
	for (i=dm;i<fm+1;i++) {
		r = Math.floor(ta[0] + (i-dm)*(ta[1]-ta[0])/(fm-dm));
		g = Math.floor(ta[2] + (i-dm)*(ta[3]-ta[2])/(fm-dm));
		b = Math.floor(ta[4] + (i-dm)*(ta[5]-ta[4])/(fm-dm));
		codehex = dec2Hexa(r) + '' + dec2Hexa(g) + '' + dec2Hexa(b);
		document.write('		<td id=\"tableId'+index+'\" bgcolor=\"' + RGB2Hexa(r,g,b) + '\" title=\"Mettre en couleur. Syntaxe : [#' + codehex + ']texte[/#' + codehex +' ]\" width=\"3\" height=\"17\"><img src=\"/icones/trans.gif\" width=\"3\" height=\"17\" onclick=\"TAinsert(\'[\'+document.getElementById(\'tableId'+index+'\').bgColor+\']\',\'[/\'+document.getElementById(\'tableId'+index+'\').bgColor+\']\');lightCase(\'tableId'+index+'\');\" /></td>\n');
		index++;
	}
}

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

function countInstances(open,closed) {
	var opening = document.hop.message.value.split(open);
	var closing = document.hop.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 messageScrollTop = 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 = messageScrollTop;
	} else { // Opera
		var sel = document.hop.message;
		var instances = countInstances(text1,text2);
		if (instances%2 != 0 && text2 != "") sel.value = sel.value + text2;
		else sel.value = sel.value + text1;
	}
}
