<!--
// bbCode control by subBlue design -- www.subBlue.com
// Startup variables
var imageTag = false;
var theSelection = false;

// Check for Browser & Platform for PC & IE specific bits
// Details at 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_win = ((clientPC.indexOf("win")!=-1) || (clientPC.indexOf("16bit")!=-1)); // Get platform
var is_mac = (clientPC.indexOf("mac")!=-1);

// Define the bbCode tags
bbcode = new Array();

// Shows the help messages in the helpline window
function helpline(help) {
	document.message.helpbox.value = eval(help + "_help");
}

// 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 IE5.5
// Appends element to the array
function arraypush(thearray,value) {
	thearray[ getarraysize(thearray) ] = value;
}

// Replacement for arrayname.pop() not implemented in IE until IE5.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() {
	bbstyle(-1);
	//formObj.preview.disabled = true;
	//formObj.submit.disabled = true;
	return true;
}

function emoticon(text) {
	text = ' ' + text + ' ';
	if (document.message.body.createTextRange && document.message.body.caretPos) {
		// Insert at Caret position code from 
		// http://www.faqts.com/knowledge_base/view.phtml/aid/1052/fid/130
		var caretPos = document.message.body.caretPos;
		caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
		document.message.body.focus();
	} 
	else {
		document.message.body.value += text;
		document.message.body.focus();
	}
}

function bbfontstyle(bbopen, bbclose) {
	if ((clientVer >= 4) && is_ie && is_win) {
		theSelection = document.selection.createRange().text;
		if (!theSelection) {
			document.message.body.value += bbopen + bbclose;
			document.message.body.focus();
			return;
		}
		document.selection.createRange().text = bbopen + theSelection + bbclose;
		document.message.body.focus();
		return;
	} else {
		document.message.body.value += bbopen + bbclose;
		document.message.body.focus();
		return;
	}
	storeCaret(document.message.body);
}

function bbstyle(bbnumber) {
	donotinsert = false;
	theSelection = false;
	bblast = 0;
	if (bbnumber == -1) {
		// Close all open tags & default button names
		while (bbcode[0]) {
			butnumber = arraypop(bbcode) - 1;
			document.message.body.value += bbtags[butnumber + 1];
			buttext = eval('document.message.addbbcode' + butnumber + '.value');
			eval('document.message.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"');
		}
		imageTag = false; // All tags are closed including image tags :D
		document.message.body.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];
		document.message.body.focus();
		theSelection = '';
		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;
			document.message.body.value += bbtags[butnumber + 1];
			buttext = eval('document.message.addbbcode' + butnumber + '.value');
			eval('document.message.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"');
			imageTag = false;
		}
		document.message.body.focus();
		return;
	} else { // Open tags
		if (imageTag && (bbnumber != 42)) {
			// Close image tag before adding another
			document.message.body.value += bbtags[43];
			lastValue = arraypop(bbcode) - 1;	// Remove the close image tag from the list
			document.message.addbbcode42.value = "Img";	// Return button back to normal state
			imageTag = false;
		}

		// Open tag
		document.message.body.value += bbtags[bbnumber];
		if ((bbnumber == 42) && (imageTag == false))
			imageTag = 1; // Check to stop additional tags after an unclosed image tag
			arraypush(bbcode,bbnumber+1);
			eval('document.message.addbbcode'+bbnumber+'.value += "*"');
			document.message.body.focus();
			return;
	}
	storeCaret(document.message.body);
}

// Store Caret 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();
}

function IBCimage() {
	theSelection = false;
	if ((clientVer >= 4) && is_ie && is_win)
		theSelection = document.selection.createRange().text; // Get text selection
	if (theSelection) {
		var isURL = (theSelection.substring(0,7) == "http://");
	}

	var FoundErrors = '';
	if (isURL) { 
		var code = "[img]" + theSelection + "[/img]"; 
	} else { 
		var code = prompt("\nEnter the image URL (eg, http://www.yoursite.com/pic.gif)", "http://");
		if (!code) {
			return;
		} else {
			var isURL = (code.substring(0,7) == "http://"); 
			if (!isURL) {
				FoundErrors += "\nEntered value is not a URL.\nURL begins with \"http://\"";
			}
		}
	        if (FoundErrors) {
			alert(FoundErrors);
			return;
	        }
	        var code = "[img]" + code + "[/img]";
	}

	if ((clientVer >= 4) && is_ie && is_win) {
		theSelection = document.selection.createRange().text;
		if (!theSelection) {
			document.message.body.value += code;
			document.message.body.focus();
			return;
		}
		document.selection.createRange().text = "[img]" + theSelection + "[/img]";
		document.message.body.focus();
		return;
	} else {
		document.message.body.value += code;
		document.message.body.focus();
		return;
	}
	storeCaret(document.message.body);
} 

function IBCram() {
	theSelection = false;
	if ((clientVer >= 4) && is_ie && is_win)
		theSelection = document.selection.createRange().text; // Get text selection
	if (theSelection) {
		var isURL = (theSelection.substring(0,7) == "http://");
	}

	var FoundErrors = '';
	if (isURL) { 
		var code = "[audio]" + theSelection + "[/audio]"; 
	} else { 
		var code = prompt("\nEnter the audio URL (eg, http://www.yoursite.com/audio.ram)", "http://");
		if (!code) {
			return;
		} else {
			var isURL = (code.substring(0,7) == "http://"); 
			if (!isURL) {
				FoundErrors += "\nEntered value is not a URL.\nURL begins with \"http://\"";
			}
		}
	        if (FoundErrors) {
			alert(FoundErrors);
			return;
	        }
	        var code = "[audio]" + code + "[/audio]";
	}

	if ((clientVer >= 4) && is_ie && is_win) {
		theSelection = document.selection.createRange().text;
		if (!theSelection) {
			document.message.body.value += code;
			document.message.body.focus();
			return;
		}
		document.selection.createRange().text = "[audio]" + theSelection + "[/audio]";
		document.message.body.focus();
		return;
	} else {
		document.message.body.value += code;
		document.message.body.focus();
		return;
	}
	storeCaret(document.message.body);
} 

function ibItem(e) { 
	code = bbtags[e] 
	if ((clientVer >= 4) && is_ie && is_win) {
		theSelection = document.selection.createRange().text;
		if (!theSelection) {
			document.message.body.value += code;
			document.message.body.focus();
			return;
		}
		document.selection.createRange().text = code + theSelection;
		document.message.body.focus();
		return;
	} else {
		document.message.body.value += code;
		document.message.body.focus();
		return;
	}
	storeCaret(document.message.body);
}
//-->

