//Código que checa qué tipo de browser es... las variables están disponibles para todas las funciones
var bV=parseInt(navigator.appVersion);
NS4=(document.layers) ? true : false;
IE4=((document.all)&&(bV>=4)) ? true : false;
DOM=(!document.layers && !document.all && bV>=4) ? true : false; // A hack to guess if the browser supports the DOM
capable = (NS4 || IE4 || DOM) ? true : false;

var openTagHandler;
var openTagHandlerTitle;

var tagOpener = "[^";
var tagCloser = "^]";
	
function tagHandlerFor_HR (textObjStr) {
	retStr = '<tr style="display: none" id="tagHandler_HR"><td class="commandLine">';

	retStr+= '<p><b>Agregar un divisor horizontal</b></p>';
	retStr+= '<p>Ancho: <input type="text" size="10" style="width: auto" id="hr_handler_width">';
	retStr+= '<input type="submit" value="Agregar divisor" style="width: auto" ></p>';


	retStr += "</td></tr>";
	return retStr;
}

function addTag_IMG (textObjStr) {
	textObj = document.getElementById(textObjStr);
	textSrc = document.getElementById('img_handler_src');
	textTitle = document.getElementById('img_handler_alt');
	//textSrc.value = "";
	//textTitle.value = "";
	if (textSrc.value == ""){
		alert("Debes especificar el archivo fuente que contiene la imágen a agregar");
		return;
	}
	textObj.value += tagOpener + 'img src="' + textSrc.value + '" ';
	if (textTitle.value != "") {
		textObj.value += ' alt="' + textTitle.value + '" ';
	}
	textObj.value += tagCloser;
	textObj.focus();
}
function showTagHandler_IMG () {
	strElement = "IMG";
	oShow = document.getElementById("tagHandler_"+strElement);
	oShowTitle = document.getElementById("tagHandler_title_"+strElement);
	
	if (oShow.style.display == "none") {
		textSrc = document.getElementById('img_handler_src');
		textTitle = document.getElementById('img_handler_alt');
		textSrc.value = "";
		textTitle.value = "";

		if (openTagHandler != null) {
			openTagHandler.style.display = "none";
		}
		if (openTagHandlerTitle != null){
			openTagHandlerTitle.style.display = "none";
		}

		openTagHandler = oShow;
		openTagHandlerTitle = oShowTitle;

		oShow.style.display = "";
		oShowTitle.style.display = "";
	
		oShow.parentNode.scrollIntoView(false);
	}
}

function showTagHandler(strElement) {
	if (strElement.indexOf("/") >= 0) {
		strElement = strElement.substr (1);
	}
	
	oShow = document.getElementById("tagHandler_"+strElement);
	
	if (openTagHandler != null) {
		openTagHandler.style.display = "none";
	}

	openTagHandler = oShow;
	oShow.style.display = "";
}

function addEmoticon(textObjStr, emotTxt) {
	textObj = document.getElementById(textObjStr);
	
	textObj.value += emotTxt;
	textObj.focus();
}

//Funciones para manejar A
function showTagHandler_A () {
	strElement = "A";
	oShow = document.getElementById("tagHandler_"+strElement);
	oShowTitle = document.getElementById("tagHandler_title_"+strElement);
	
	if (oShow.style.display == "none") {
		textAddr = document.getElementById('a_handler_href');
		textText = document.getElementById('a_handler_content');
		textTitle = document.getElementById('a_handler_title');
		textAddr.value = "";
		textText.value = "";
		textTitle.value = "";

		if (openTagHandler != null) {
			openTagHandler.style.display = "none";
		}
		if (openTagHandlerTitle != null){
			openTagHandlerTitle.style.display = "none";
		}

		openTagHandler = oShow;
		openTagHandlerTitle = oShowTitle;
		oShow.style.display = "";
		oShowTitle.style.display = "";
		
		oShow.parentNode.scrollIntoView(false);
	}
}
function addTag_A (textObjStr) {
	textObj = document.getElementById(textObjStr);
	textAddr = document.getElementById('a_handler_href');
	textText = document.getElementById('a_handler_content');
	textTitle = document.getElementById('a_handler_title');

	//textAddr.value = 1;
	if ( (textAddr.value == "") || (textText.value == "") ){
		alert("La dirección y el texto a mostrar son requisitos, porfavor llena ambos campos");
		return;
	}

	textObj.value += tagOpener + 'A href="' + textAddr.value + '" ';
	if (textTitle.value != "") {
		textObj.value += ' title="' + textTitle.value + '" ';
	}
	textObj.value += tagCloser + textText.value + tagOpener + "/A" + tagCloser;
}

function InsertText(objDestination, strInsertText) {
	if (strInsertText <= 0) return /*false*/;
	var objTextArea = document.getElementById(objDestination);	//document.MessageForm.ContentText;
	if (objTextArea) {
		if (document.selection && document.selection.createRange) {
			objTextArea.focus();
			var objSelectedTextRange = document.selection.createRange();
			var strSelectedText = objSelectedTextRange.text;
			objSelectedTextRange.text = strInsertText + strSelectedText;
		} else {
			objTextArea.value += strInsertText;
			objTextArea.focus();
		}
	}
	return /*false*/;
}

/*function ToggleWrapSelection(objDestination, strTag) {
	alert("2");
	//ToggleWrapSelection(objDestination, strTag, true);
}*/
function ToggleWrapSelection(objDestination, strTag, avoidCloseTag) {
	if (strTag.length <= 0) return /*false*/;
	
	//var StartTag = "<" + strTag + ">";
	//var EndTag   = "</" + strTag + ">";
	var StartTag = tagOpener + strTag + tagCloser;
	var EndTag   = avoidCloseTag ? '' : (tagOpener + "/" + strTag + tagCloser);
	
	var objTextArea = document.getElementById(objDestination);	//document.MessageForm.ContentText;
	if (objTextArea) {
		if (document.selection && document.selection.createRange) {
			objTextArea.focus();
			var objSelectedTextRange = document.selection.createRange();
			var strSelectedText = objSelectedTextRange.text;
			var nStrtLen = StartTag.length;
			var nEndLen  = EndTag.length;
			var nSelLen  = strSelectedText.length;
			
			if (strSelectedText.substr(0, nStrtLen) == StartTag &&
				strSelectedText.substr(nSelLen-nEndLen) == EndTag)
			{
				objSelectedTextRange.text = strSelectedText.substr(nStrtLen, nSelLen-nStrtLen-nEndLen);
			}
			else
				objSelectedTextRange.text = StartTag + strSelectedText + EndTag;
				
			if (strSelectedText.length == 0)
			{
				objSelectedTextRange.move("character", -(strTag.length + 5));
				objSelectedTextRange.select();
			}
			objTextArea.focus();
		}
		else
		{
			var strAppendText = StartTag + EndTag;
			objTextArea.value += strAppendText;
			objTextArea.focus();
		}
	}
	return /*false*/;
}