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);

if(document.getElementById) {
  var getRefById = function(id) {
    return document.getElementById(id);
  };
} else if(document.all) {
  var getRefById = function(id) {
    return document.all[id];
  };
} else {
  var getRefById = function() {
return null;
};
}

function mozWrap(txtarea, lft, rgt) {
	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 + lft + s2 + rgt + s3;
}

function insertText(str) {
	// ID of textarea = mess         ex: <textarea id="mess" cols="25" rows="5"></textarea> 
	var e = getRefById('mess'), s = null, r = null;
	
	if (e)
	{
		str = str.split ('][');
		str [0] += ']';
		str [1] = '[' + str [1];
		if ((clientVer >= 4) && is_ie && is_win)
		{
			if((s = document.selection) && s.createRange)
			{
				var repos = false;
		
				/* Element must have focus otherwise text
				* will be written into other elements. */
				e.focus();
				if ((r = s.createRange()))
				{
					if (r.text.length)
						repos = true;
					
					r.text = str [0] + r.text + str [1];
				/* Clear the selection to stop continuous
				* overwriting of inserted text. */
					if (repos && s.empty)
						s.empty();
				}
			} else {
				 e.value += str [0] + str [1];
			}
		}
		else 
		{
			mozWrap(e, str [0], str [1]);
		}
	}
}