<!--
// bbCode control by
// subBlue design
// www.subBlue.com

// Startup variables
var theSelection = false;

// Check for Browser & Platform for PC & IE specific bits
// More details from: http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
var clientPC = navigator.userAgent.toLowerCase(); // Get client info
var clientVer = parseInt(navigator.appVersion); // Get browser version

var is_ie = ((clientPC.indexOf("msie") != -1) && (clientPC.indexOf("opera") == -1));
var is_nav = ((clientPC.indexOf('mozilla')!=-1) && (clientPC.indexOf('spoofer')==-1)
                && (clientPC.indexOf('compatible') == -1) && (clientPC.indexOf('opera')==-1)
                && (clientPC.indexOf('webtv')==-1) && (clientPC.indexOf('hotjava')==-1));
var is_moz = 0;
var is_win = ((clientPC.indexOf("win")!=-1) || (clientPC.indexOf("16bit") != -1));
var is_mac = (clientPC.indexOf("mac")!=-1);

// Define the bbCode tags
bbcode = new Array();
bbtags = new Array('[g]','[/g]','[i]','[/i]','[s]','[/s]');

// Replacement for arrayname.length property
function getarraysize(thearray){
	for(i=0;i<thearray.length;i++){
		if((thearray[i] == "undefined") || (thearray[i] == "") || (thearray[i] == null)) return i;
	}
	return thearray.length;
}

// Replacement for arrayname.push(value) not implemented in IE until version 5.5
// Appends element to the array
function arraypush(thearray,value){
	thearray[getarraysize(thearray)] = value;
}

// Replacement for arrayname.pop() not implemented in IE until version 5.5
// Removes and returns the last element of an array
function arraypop(thearray){
	thearraysize = getarraysize(thearray);
	retval = thearray[thearraysize - 1];
	delete thearray[thearraysize - 1];
	return retval;
}

/*function checkForm() {
	formErrors = false;
	if(document.textform.message.value=='') formErrors = "Veuillez remplir tous les champs SVP";
	if(document.textform.object.value=='') formErrors = "Veuillez remplir tous les champs SVP";
	if(document.textform.dest.value=='') formErrors = "Veuillez remplir tous les champs SVP";
	if(formErrors){
		alert(formErrors);
		return false;
	}else{
		bbstyle(-1);
		//formObj.preview.disabled = true;
		//formObj.submit.disabled = true;
		return true;
	}
}*/

function emoticon(text) {
	var txtarea = document.textform.message;
	text = ' ' + text + ' ';
	if(txtarea.createTextRange && txtarea.caretPos){
		var caretPos = txtarea.caretPos;
		caretPos.text += caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
		txtarea.focus();
	}
	// kd add: fix the problem with firefox ================
	else if (typeof(txtarea.selectionStart) != "undefined")
	{
	//	alert('Hello');
		var begin = txtarea.value.substr(0, txtarea.selectionStart);
		var selection = txtarea.value.substr(txtarea.selectionStart, txtarea.selectionEnd - txtarea.selectionStart);
		var end = txtarea.value.substr(txtarea.selectionEnd);
		var newCursorPos = txtarea.selectionStart;
		var scrollPos = txtarea.scrollTop;
		
		txtarea.value = begin + text + selection + end;
	
		if (txtarea.setSelectionRange)
		{
			if (selection.length == 0)
				txtarea.setSelectionRange(newCursorPos + text.length, newCursorPos + text.length);
			else
				txtarea.setSelectionRange(newCursorPos, newCursorPos + text.length + selection.length);
			 txtarea.focus();
		}
	}
	// end kd-add ==================
	else{
		txtarea.value  += text;
		txtarea.focus();
	}
}
function specialbbstyle(formid,color){
	if(color!="") colorize(color);
	document.getElementById(formid).selectedIndex = 0;
}
function colorize(value) {
	var txtarea = document.textform.message;
	theSelection = false;
	if((clientVer >= 4) && is_ie && is_win){
		theSelection = document.selection.createRange().text; // Get text selection
		if(theSelection){
			// Add tags around selection
			document.selection.createRange().text = "[color=" + value + "]" + theSelection + "[/color]";
			txtarea.focus();
			theSelection = '';
			return;
		}
	}else if (txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0)){
		mozWrap(txtarea, "[color=" + value + "]", "[/color]");
		return;
	}
}

function bbstyle(bbnumber){
	var txtarea = document.textform.message;
	donotinsert = false;
	theSelection = false;
	bblast = 0;
	if(bbnumber == -1){ // Close all open tags & default button names
		while(bbcode[0]){
			butnumber = arraypop(bbcode) - 1;
			txtarea.value += bbtags[butnumber + 1];
			buttext = eval('document.textform.addbbcode' + butnumber + '.value');
			eval('document.textform.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"');
		}
		txtarea.focus();
		return;
	}
	if((clientVer >= 4) && is_ie && is_win){
		theSelection = document.selection.createRange().text; // Get text selection
		if(theSelection){
			// Add tags around selection
			document.selection.createRange().text = bbtags[bbnumber] + theSelection + bbtags[bbnumber+1];
			txtarea.focus();
			theSelection = '';
			return;
		}
	}else if (txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0)){
		mozWrap(txtarea, bbtags[bbnumber], bbtags[bbnumber+1]);
		return;
	}
	// Find last occurance of an open tag the same as the one just clicked
	for(i=0;i<bbcode.length;i++){
		if(bbcode[i] == bbnumber+1){
			bblast = i;
			donotinsert = true;
		}
	}
	if(donotinsert){		// Close all open tags up to the one just clicked & default button names
		while(bbcode[bblast]){
				butnumber = arraypop(bbcode) - 1;
				txtarea.value += bbtags[butnumber + 1];
				buttext = eval('document.textform.addbbcode' + butnumber + '.value');
				eval('document.textform.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"');
			}
			txtarea.focus();
			return;
	}else{ // Open tags
		txtarea.value += bbtags[bbnumber];
		arraypush(bbcode,bbnumber+1);
		eval('document.textform.addbbcode'+bbnumber+'.value += "*"');
		txtarea.focus();
		return;
	}
	storeCaret(txtarea);
}

// From http://www.massless.org/mozedit/
function mozWrap(txtarea,open,close){
	var selLength = txtarea.textLength;
	var selStart = txtarea.selectionStart;
	var selEnd = txtarea.selectionEnd;
	if (selEnd == 1 || selEnd == 2) selEnd = selLength;
	var s1 = (txtarea.value).substring(0,selStart);
	var s2 = (txtarea.value).substring(selStart, selEnd)
	var s3 = (txtarea.value).substring(selEnd, selLength);
	txtarea.value = s1 + open + s2 + close + s3;
	return;
}

// Insert at Claret position. Code from
// http://www.faqts.com/knowledge_base/view.phtml/aid/1052/fid/130
function storeCaret(textEl){
	if(textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate();
}