//var address = "_address\"]";
var address = "_direccion\"]";
//var textoEnlace = "_text[/";
var textoEnlace = "_texto[/";



function guardarCursor(oControl)
{
	if (oControl.createTextRange) 
		oControl.caretPos = document.selection.createRange().duplicate()
}

function insertarEn (sAccion, oControl, actionType)
{
   	if(actionType == "tool")
	{
		oControl = document.getElementById(oControl)
		oControl.focus()
		guardarCursor(oControl)
		if (oControl.createTextRange && oControl.caretPos)
		{
			var posCursor  = oControl.caretPos;
			posCursor.text = posCursor.text.charAt(posCursor.text.length - 1) == ' ' ? "[" + sAccion + "]" + posCursor.text +"[/" + sAccion + "]" + ' ' : "[" + sAccion + "]" + posCursor.text + "[/" + sAccion + "]"
		}
		else
		{
			if (oControl.selectionEnd && (oControl.selectionStart || oControl.selectionStart == 0))
				insertaFireFox(oControl, "[" + sAccion +"]", "[/" + sAccion + "]")
			else		
				oControl.value  += "[" + sAccion +"][/" + sAccion + "]"
		}
		
		oControl.focus()
		guardarCursor(oControl)
	}
	else
	{
	  
		oControl = document.getElementById(oControl)
		oControl.focus()
		guardarCursor(oControl)	   
		if (oControl.createTextRange && oControl.caretPos)
		{
			var posCursor  = oControl.caretPos;
			posCursor.text = sAccion + " ";
		}
		else
		{
			if (oControl.selectionEnd && (oControl.selectionStart || oControl.selectionStart == 0))
				insertaFireFox(oControl, sAccion, "")
			else		
				oControl.value  += sAccion
		}
		
		oControl.focus()
		guardarCursor(oControl)
		
	}
}

function insertaFireFox(oControlFireFox, abreTag, cierraTag) 
{ 
	if (oControlFireFox.selectionEnd > oControlFireFox.value.length)
		oControlFireFox.selectionEnd = oControlFireFox.value.length
	
    
	var iPosIni   = oControlFireFox.selectionStart
	var iPosFinal = oControlFireFox.selectionEnd + abreTag.length
    
	oControlFireFox.value = oControlFireFox.value.slice(0,iPosIni) + abreTag + oControlFireFox.value.slice(iPosIni)
	oControlFireFox.value = oControlFireFox.value.slice(0,iPosFinal) + cierraTag + oControlFireFox.value.slice(iPosFinal)
        
	oControlFireFox.selectionStart = iPosIni + abreTag.length
	oControlFireFox.selectionEnd   = iPosFinal
	oControlFireFox.focus()
}


function insertAdvancedTag (sControlId, tag)
{ 
     
	oControl = document.getElementById(sControlId)
	oControl.focus()
	guardarCursor(oControl)
	
	if (oControl.createTextRange && oControl.caretPos && oControl.caretPos.text.length > 0)
	{	
		var posCursor  = oControl.caretPos;
		var url = window.prompt(tag + " text","Enter the url for the " + tag);
		posCursor.text = "[" + tag + " href=\"" + url +"\"]" + posCursor.text + "[/" + tag + "] "
	}
	else
	{	
	    
		if (oControl.selectionEnd && (oControl.selectionStart || oControl.selectionStart == 0))
		{				    
			if (oControl.selectionEnd > oControl.value.length)
			{
				oControl.selectionEnd = oControl.value.length
			}
				
			var abreTag = "[" + tag  + " href=\""
			var cierraTag = "[/" + tag +"]"
    
			var iPosIni   = oControl.selectionStart
			var iPosFinal = oControl.selectionEnd
			var iTagLen   = abreTag.length
			
			if(oControl.value.slice(iPosIni,iPosFinal).length > 0)
			{
				var url = window.prompt(tag + " text","Enter the text for the " + tag);
				oControl.value = oControl.value.slice(0,iPosIni) + abreTag + url + "\"]" + oControl.value.slice(iPosIni,iPosFinal) + cierraTag + oControl.value.slice(iPosFinal)
				oControl.selectionStart = iPosIni + abreTag.length
				oControl.selectionEnd   = iPosFinal
			}
			else
			{
				oControl.value = oControl.value.slice(0,iPosIni) + "[" + tag + " href=\"" + tag + address + tag + textoEnlace + tag + "]" + oControl.value.slice(iPosFinal)
				
			}
			oControl.focus()
		}
		else 
		{		    	 
		    if(oControl.caretPos)
		    {				    
			    oControl.caretPos.text  = "[" + tag + " href=\"" + tag + address + tag + textoEnlace + tag + "] "
		    }
		    else
		    {
                oControl.value = oControl.value.slice(0,iPosIni) + "[" + tag + " href=\"" + tag + address + tag + textoEnlace + tag + "] " + oControl.value.slice(iPosFinal)
		    }
	    }
	}
	
	oControl.focus()
	guardarCursor(oControl)
}

function insertLinkDialog(oControl)
{
	oControl = document.getElementById(oControl)
	oControl.focus()
	guardarCursor(oControl)
    var tag = "link";
    var url
    var textoEnlace
    
    var abreTag = "[" + tag  + " href=\""
	var cierraTag = "[/" + tag +"]"
    
	if (oControl.createTextRange && oControl.caretPos)
	{		    		    
		var posCursor  = oControl.caretPos;	 
		url = window.prompt("Introduzca el enlace","http://");
		textoEnlace = '';
		
		if (url!=null)
		{				
		    if(posCursor.text=='')
	        {
    	        textoEnlace = window.prompt("Introduzca un texto para el enlace","");			      
	        }
		
		    if (textoEnlace!=null)
		    {
		        posCursor.text = "[" + tag + " href=\"" + url +"\"]" +  textoEnlace  + posCursor.text + "[/" + tag + "] "				        
		    }
		}
	} 
	else //entra por aqui en el navegador firefox
	{	   
	
	        //Si ha seleccionado algún bloque de texto
		if (oControl.selectionEnd && (oControl.selectionStart || oControl.selectionStart == 0))
		{				    
			if (oControl.selectionEnd > oControl.value.length)
			{
				oControl.selectionEnd = oControl.value.length
			} 		
    
			var iPosIni   = oControl.selectionStart
			var iPosFinal = oControl.selectionEnd
			var iTagLen   = abreTag.length
			
			url = window.prompt("Introduzca el enlace","http://");
			
			if (url!=null)
		    {				
			    if(oControl.value.slice(iPosIni,iPosFinal).length > 0)
			    {				 	 
				    oControl.value = oControl.value.slice(0,iPosIni) + abreTag + url + "\"]" + oControl.value.slice(iPosIni,iPosFinal) + cierraTag + oControl.value.slice(iPosFinal)
				    oControl.selectionStart = iPosIni + abreTag.length
				    oControl.selectionEnd   = iPosFinal
			    }
			    else
			    {			  
		            textoEnlace = window.prompt("Introduzca un texto para el enlace","");  
		            if (textoEnlace!=null)
		            {
    				    oControl.value = oControl.value.slice(0,iPosIni) + abreTag +  url + "\"]" +  textoEnlace + cierraTag + oControl.value.slice(iPosFinal)    				
				    }
	    		}
	    	}
			oControl.focus()
		}
		else 		
		{	
		    url = window.prompt("Introduzca el enlace","http://");	
		    if (url!=null)
		    {				 			    			
			    textoEnlace = window.prompt("Introduzca un texto para el enlace","");   
		  	 
		  	    if (textoEnlace!=null)
		  	    {
		            if(oControl.caretPos)
		            {						               
			            oControl.caretPos.text  = abreTag +  url  + "]"  + textoEnlace + cierraTag		 
		            }
		            else
		            {
                        oControl.value = oControl.value.slice(0,iPosIni) + abreTag +  url + "\"]"  + textoEnlace + cierraTag + oControl.value.slice(iPosFinal)
		            }
		        }
		    }
	    }
	}
	
	
	oControl.focus()
	guardarCursor(oControl)	
}

function insertQuotation(oControl)
{
	oControl = document.getElementById(oControl)
	oControl.focus()
	guardarCursor(oControl)
	if (oControl.createTextRange && oControl.caretPos)
	{
		var posCursor  = oControl.caretPos;
		//who are you quoting to?
		var name = window.prompt("Nombre","¿A quién vas a citar?");
		posCursor.text = "[quote name=\"" + name +"\"][/quote] ";
	}
	else
	{
		if (oControl.selectionEnd > oControl.value.length)
				oControl.selectionEnd = oControl.value.length
				
		var abreTag = "[quote name=\""
		var cierraTag = "[/quote]"

		var iPosIni   = oControl.selectionStart
		var iPosFinal = oControl.selectionEnd + abreTag.length
		var name = window.prompt("Nombre","¿A quién vas a citar?");

		oControl.value = oControl.value.slice(0,iPosIni) + abreTag + name + "\"]" + cierraTag + oControl.value.slice(iPosIni,iPosFinal)+ oControl.value.slice(iPosFinal)
				    
		oControl.selectionStart = iPosIni + abreTag.length
		oControl.selectionEnd   = iPosFinal
		oControl.focus()
	}
	
	oControl.focus()
	guardarCursor(oControl)	
}



function insertImage(oControl)
{
	oControl = document.getElementById(oControl)
	oControl.focus()
	guardarCursor(oControl)
	if (oControl.createTextRange && oControl.caretPos)
	{
		var posCursor  = oControl.caretPos;
		if(oControl.caretPos.text.length == 0)
		{
			var name = window.prompt("Image URL","Enter image url");
			posCursor.text = "[img src=\"" + name +"\"/] ";
		}
		else
			posCursor.text = "[img src=\"" + oControl.caretPos.text +"\"/] ";
	}
	else
	{
		if (oControl.selectionEnd > oControl.value.length)
				oControl.selectionEnd = oControl.value.length
				
		var abreTag = "[img src=\""
		var cierraTag = "/]"

		var iPosIni   = oControl.selectionStart
		var iPosFinal = oControl.selectionEnd
		var iTagLen   = abreTag.length

		if(oControl.value.slice(iPosIni,iPosFinal).length == 0)
		{
			var name = window.prompt("Image URL","Enter image url");			
			oControl.value = oControl.value.slice(0,iPosIni) + abreTag + name + "\"" + cierraTag + oControl.value.slice(iPosFinal)
		}
		else
		{		
			oControl.value = oControl.value.slice(0,iPosIni) 
							+ abreTag + oControl.value.slice(iPosIni,iPosFinal) 
							+ "\"" + cierraTag + oControl.value.slice(iPosFinal)
		}
		
		
		    
		oControl.selectionStart = iPosIni + abreTag.length
		oControl.selectionEnd   = iPosFinal
		oControl.focus()
	}
	
	oControl.focus()
	guardarCursor(oControl)
	
}

function controlaTeclado(oControl,evt)
{
	evt = (evt) ? evt : (window.event) ? event : null;
	if (evt)
	{
		var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : ((evt.which) ? evt.which : 0));
		 //alert(charCode);
		if(document.all)
		{
			//Explorer
			if(charCode==11) insertarEn("i",oControl, "tool");   // Ctrl + Shift + k
			if(charCode==19) insertarEn("u",oControl, "tool");   // Ctrl + Shift + s
			if(charCode==2)  insertarEn("b",oControl, "tool");   // Ctrl + Shift + b
			return false
		}
		else
		{
			if(charCode==75) insertarEn("i",oControl, "tool");   // Ctrl + Shift + k
			if(charCode==83) insertarEn("u",oControl, "tool");   // Ctrl + Shift + s
			if(charCode==66) insertarEn("b",oControl, "tool");   // Ctrl + Shift + b
			return false
		}
	}	
}

function pulsaEnter (field, evt,control) 
{
            try
            {
			var keyCode = evt.which ? evt.which : evt.keyCode;
			if (keyCode == 13) 
			{		   
			    
				document.getElementById(control).click();				
				return false;
			}
			else
			{
			
				return true;
			}
			}
			catch(e){}
		}


