/********************************************************************************************/
/* Aresta Ascent Framework v2.3																*/
/* ----------------------------																*/
/* Copyright ©2004-2006 Aresta Enterprise LLC. All Rights Reserved.							*/
/* This file may not be redistributed in whole or significant part.							*/
/********************************************************************************************/

var closeTagArray = new Array();

/************************************* Insert Tags ***********************************/
function insertTags(openTag,closeTag) {
	
	var txtarea = document.writing.FCKeditor1;
	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]!=true) {
		
		// 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;
	
	}
}