var closeTagArray = new Array();

/** Insert Tags **************************************************** **/
function insertTags(openTag,closeTag) {
	
	var txtarea = document.post.message;
	var sel = false;

	txtarea.focus();
	
	// Selection - IE
	if (document.selection) {
		sel = document.selection.createRange().text;
		if (sel) {
			document.selection.createRange().text = openTag + sel + closeTag;
			sel = null;
			
			txtarea.focus();
			return;
		}
	}
	
	// Selection - Gecko
	if (txtarea.selectionStart && (txtarea.selectionEnd - txtarea.selectionStart > 0)) {
		var selectionStart = txtarea.selectionStart;
		var selectionEnd = txtarea.selectionEnd;
		var s1 = (txtarea.value).substring(0,selectionStart);
		var s2 = (txtarea.value).substring(selectionStart, selectionEnd)
		var s3 = (txtarea.value).substring(selectionEnd);
		
		txtarea.value = s1 + openTag + s2 + closeTag + s3;
		
		// Set Caret Position - Gecko
		if (txtarea.selectionStart) txtarea.selectionEnd = selectionEnd + openTag.length + closeTag.length;
		
		txtarea.focus();
		return;
	}

	// Open Tag
	if (!closeTagArray[openTag]) {
		
		// Get Caret Position - IE
		if (document.selection) {
			sel = document.selection.createRange().text;
			document.selection.createRange().text = '~!@#$%^&*()_+~' + sel;
			var selectionStart = (txtarea.value).indexOf('~!@#$%^&*()_+~');
			txtarea.value = (txtarea.value).replace('~!@#$%^&*()_+~', '');
			sel = null;
		}
		
		// Get Caret Position - Gecko
		else if (txtarea.selectionStart) var selectionStart = txtarea.selectionStart;
		
		// Write Tag
		var s1 = (txtarea.value).substring(0,selectionStart);
		var s2 = (txtarea.value).substring(selectionStart);
		txtarea.value = s1 + openTag + s2;
														 
		// Set Caret Position - Gecko
		if (txtarea.selectionStart) txtarea.selectionEnd = selectionStart + openTag.length;
		
		closeTagArray[openTag] = true;
		
		txtarea.focus();
		return;
	}
	
	// Close Tag
	else {
		
		// Get Caret Position - IE
		if (document.selection) {
			sel = document.selection.createRange().text;
			document.selection.createRange().text = sel + '~+_)(*&^%$#@!~';
			var selectionStart = (txtarea.value).indexOf('~+_)(*&^%$#@!~');
			txtarea.value = (txtarea.value).replace('~+_)(*&^%$#@!~', '');
			sel = null;
		}
			
		// Get Caret Position - Gecko
		else if (txtarea.selectionStart) var selectionStart = txtarea.selectionStart;
			
		// Write Tag
		var s1 = (txtarea.value).substring(0,selectionStart);
		var s2 = (txtarea.value).substring(selectionStart);
		txtarea.value = s1 + closeTag + s2;
															 
		// Set Caret Position - Gecko
		if (txtarea.selectionStart) txtarea.selectionEnd = selectionStart + closeTag.length;
		
		closeTagArray[openTag] = false;
		
		txtarea.focus();
		return;
	}
}

/** Insert Emoticon ************************************************ **/
function insertEmoticon(emoticon) {
	
	var txtarea = document.post.message;
	var sel = false;

	txtarea.focus();
	
	// Get Caret Position - IE
	if (document.selection) {
		sel = document.selection.createRange().text;
		document.selection.createRange().text = '~!@#$%^&*()_+~' + sel;
		var selectionStart = (txtarea.value).indexOf('~!@#$%^&*()_+~');
		txtarea.value = (txtarea.value).replace('~!@#$%^&*()_+~', '');
		sel = null;
	}
		
	// Get Caret Position - Gecko
	else if (txtarea.selectionStart) var selectionStart = txtarea.selectionStart;
		
	// Write Emoticon
	var s1 = (txtarea.value).substring(0,selectionStart);
	var s2 = (txtarea.value).substring(selectionStart);
	txtarea.value = s1 + emoticon + s2;
													 
	// Set Caret Position - Gecko
	if (txtarea.selectionStart) txtarea.selectionEnd = selectionStart + emoticon.length;
	
	txtarea.focus();
	return;
		
}