<!--
// 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();
imageTag = false;

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