// Suggest class for IE / Mozilla / Konqueror / Opera
// Version 1.0
// copyright(c) 2005 by Enrique Dominguez Miguel & Daniel Gimenez Sanchez

//CONSTRUCTOR
function SuggestEngineClass()
{
	//ATRIBUTES
	SuggestEngineClass.prototype.inputText 		= new Array() ;			// Input text
	SuggestEngineClass.prototype.suggestLayer	= new Array() ;			// Layer for suggest info
	SuggestEngineClass.prototype.suggestIframe	= new Array() ;			// Iframe for suggest info
	SuggestEngineClass.prototype.nav 			= SuggestEngineClass.prototype.getBrowser() ;
	SuggestEngineClass.prototype.phpUrl 		= "" ;
	SuggestEngineClass.prototype.phpFunction 	= new Array() ;
	SuggestEngineClass.prototype.phpParams 		= new Array() ;
	SuggestEngineClass.prototype.debug 			= false ;
	SuggestEngineClass.prototype.enableSuggest	= new Array() ;
	SuggestEngineClass.prototype.autoRellenar	= new Array() ;
	SuggestEngineClass.prototype.autoRellenarActivado = new Array();
	SuggestEngineClass.prototype.soloComienzoActivado = true;
	SuggestEngineClass.prototype.autoNegritaActivado = new Array();
	SuggestEngineClass.prototype.language		= "es_ES";
  SuggestEngineClass.prototype.tipo_zona		= "0";
  SuggestEngineClass.prototype.id_pais		= "";
  SuggestEngineClass.prototype.id_pais_busqueda = "";
	SuggestEngineClass.prototype.staticText		= new Array() ;
	SuggestEngineClass.prototype.posicion_actual = 0;



	SuggestEngineClass.prototype.engine			= new suggest_engine() ; // XOAD ENABLED OBJECT

	//el valor de lo escrito cuando hay algo seleccionado se guarda en este atributo
	SuggestEngineClass.prototype.valor_de_lo_escrito	= new Array() ;

	//movimiento de las flechas...
	SuggestEngineClass.prototype.opcionActiva	= new Array() ;
	SuggestEngineClass.prototype.maxOpciones	= new Array() ;

	//array de informaci�n (que nos llega de PHP)
	SuggestEngineClass.prototype.aInfo			= new Array() ;
	
	//control de tiempos de ejecuci�n PHP
	SuggestEngineClass.prototype.intervalo = 0 ;
	SuggestEngineClass.prototype.callDelay = 100 ;
	
	SuggestEngineClass.prototype.hiddenInputText = new Array() ;			// Hidden Input text for return values
	SuggestEngineClass.prototype.hiddenInputValues = new Array() ;			// Hidden Input value for default values
	//URL destino
	SuggestEngineClass.prototype.destinationURL = new Array() ;
	
	SuggestEngineClass.prototype.iActiva = -1 ;
};


//METHODS

/////////////////
// SET METHODS //
/////////////////

//Set static text (in the current language)
SuggestEngineClass.prototype.set_staticText = function() {
	for(var i = 0 ; i < arguments.length ; i++) 
	{
		SuggestEngineClass.prototype.staticText[i] = arguments[i];
	}
}

//Set the language	 
SuggestEngineClass.prototype.set_language = function(val) {
	SuggestEngineClass.prototype.language = val ;	
}

//Set the zone
SuggestEngineClass.prototype.set_tipo_zona = function(val) {
	SuggestEngineClass.prototype.tipo_zona = val ;	
}


//Set the pais
SuggestEngineClass.prototype.set_id_pais = function(val) {
	SuggestEngineClass.prototype.id_pais = val ;	
}


//SET PAIS BUSQUEDA : ESTE ES DE SALIDA, NO DE ENTRADA PARA BUSCAR
//SINO PARA VER DE QUE PAIS ES LA FILA SELECCIONADA
SuggestEngineClass.prototype.set_id_pais_busqueda = function(val) {
	
  SuggestEngineClass.prototype.id_pais_busqueda = val ;  
}


SuggestEngineClass.prototype.set_posicion_actual = function(val) {
  
  SuggestEngineClass.prototype.posicion_actual = val ;  
}





//Set the destination URL
SuggestEngineClass.prototype.set_destinationURL = function() {
	for(var i=0; i<arguments.length; i++) 
	{
		SuggestEngineClass.prototype.destinationURL[i] = arguments[i];
	}
};

//Set the auto fill feature
SuggestEngineClass.prototype.set_autoFill = function() {
	for(var i=0; i<arguments.length; i++) 
	{
		SuggestEngineClass.prototype.autoRellenarActivado[i] = arguments[i];
	}
};

//Set the justStarting feature
SuggestEngineClass.prototype.set_justStarting = function(val) {
	SuggestEngineClass.prototype.soloComienzoActivado = val ;	
};

//Set the autoBold feature
SuggestEngineClass.prototype.set_autoBold = function() {
	for(var i=0; i<arguments.length; i++) 
	{
		SuggestEngineClass.prototype.autoNegritaActivado[i] = arguments[i];
	}
};


//Set the suggest input text
SuggestEngineClass.prototype.set_inputText = function() {
	for(var i=0; i<arguments.length; i++) 
	{
		SuggestEngineClass.prototype.inputText[i] = arguments[i];
	}
};


//Set the suggest hidden input default values
SuggestEngineClass.prototype.set_hiddenInputValues = function() {
	for(var i=0; i<arguments.length; i++) 
	{
		SuggestEngineClass.prototype.hiddenInputValues[i] = arguments[i];
	}
}

// Set the suggest div
SuggestEngineClass.prototype.set_suggestLayer = function() {
	for(var i=0; i<arguments.length; i++)
	{
		SuggestEngineClass.prototype.suggestLayer[i] = arguments[i];
	}
};


// Set the suggest Iframe
SuggestEngineClass.prototype.set_suggestIframe = function() {
	for(var i=0; i<arguments.length; i++) 
	{
		SuggestEngineClass.prototype.suggestIframe[i] = arguments[i];
	}
};


// Set the php url
SuggestEngineClass.prototype.set_phpUrl = function(val) {
	SuggestEngineClass.prototype.phpUrl = val ;
};

// Set the name of the php function
SuggestEngineClass.prototype.set_phpFunction = function() {
	for(var i=0; i<arguments.length; i++) 
	{
		SuggestEngineClass.prototype.phpFunction[i] = arguments[i];
	}
};

// Set the debug parameter
SuggestEngineClass.prototype.set_debug = function(val) {
	SuggestEngineClass.prototype.debug = val ;
};

// Set the debug parameter
SuggestEngineClass.prototype.set_opcionActiva = function(val, i) {
	SuggestEngineClass.prototype.opcionActiva[i] = val ;
};


/////////////////////
// END SET METHODS //
/////////////////////




//Set the event handler functions
SuggestEngineClass.prototype.initEventHandler = function() {

	for(var i=0; i<SuggestEngineClass.prototype.inputText.length; i++)
	{
		SuggestEngineClass.prototype.enableSuggest[i]	= false ;
		SuggestEngineClass.prototype.autoRellenar[i]	= true ;

		// creacion de los hidden input para devolver valores
		the_input = document.createElement('input');
		the_input.type = "hidden";
		the_input.name = "id_"+SuggestEngineClass.prototype.inputText[i].name;
		the_input.value = SuggestEngineClass.prototype.hiddenInputValues[i];
		SuggestEngineClass.prototype.inputText[i].form.appendChild(the_input);
		SuggestEngineClass.prototype.hiddenInputText[i] = the_input;
		
		
		SuggestEngineClass.prototype.inputText[i].onblur = function()
		{
			SuggestEngineClass.prototype.onSuggestBlur(SuggestEngineClass.prototype.iActiva) ;
		}
		SuggestEngineClass.prototype.inputText[i].onfocus = function()
		{
			for(var j=0; j<SuggestEngineClass.prototype.inputText.length; j++)
			{
				if (SuggestEngineClass.prototype.inputText[j].name == this.name)
				{
					i = j;
				}
			}
			SuggestEngineClass.prototype.iActiva = i ;
			SuggestEngineClass.prototype.onSuggestFocus(i) ;
		}
	}


};

SuggestEngineClass.prototype.onSuggestBlur = function(i) {
	SuggestEngineClass.prototype.hideLayer(i) ;
	SuggestEngineClass.prototype.enableSuggest[i] = false ;
	SuggestEngineClass.prototype.iActiva = -1 ;
};

SuggestEngineClass.prototype.onSuggestFocus = function(i) {
   
	SuggestEngineClass.prototype.enableSuggest[i] = true ;

};

SuggestEngineClass.prototype.onSuggestKeyUp = function(codigoTecla)
{

	var caracterActual = String.fromCharCode(codigoTecla);
	for(var i=0 ; i < SuggestEngineClass.prototype.enableSuggest.length ; i++)
	{

		if (SuggestEngineClass.prototype.enableSuggest[i])
		{
			switch (codigoTecla)
			{
				case (123):	//F12 para debug si debug está activado
							if (SuggestEngineClass.prototype.debug) {
								jsrsDebugInfo() ;
							}
				break;
				case (38):	// UP para seleccion del elemento activo
				      
				      SuggestEngineClass.prototype.moveUp(i);
				      SuggestEngineClass.prototype.set_posicion_actual(SuggestEngineClass.prototype.opcionActiva[i]);
							
				break;
				case (40):	// DOWN para seleccion del elemento activo
				
               
              
              SuggestEngineClass.prototype.moveDown(i);
              SuggestEngineClass.prototype.set_posicion_actual(SuggestEngineClass.prototype.opcionActiva[i]);
							
				break;
				case (13):	// ENTER

              try{

               var n_pos = SuggestEngineClass.prototype.posicion_actual;
               var s_pais = SuggestEngineClass.prototype.aInfo[SuggestEngineClass.prototype.posicion_actual].id_pais_busqueda;
              
               document.getElementById("id_pais_busqueda").value = s_pais;
               sub_form_suggest(document.getElementById("form_suggest"));
              	
              }
              catch(err)
              {
              
                $("#buscar").val("");
                return(false);	
              }
				break;
				//definir lo que queremos que haga...
				case (27):	//ESC
				break;
				//no hacer nada
				case (16):	//PageUp
				case (17):	//PageUp
				case (18):	//PageUp
				case (33):	//PageUp
				case (34):	//PageDown
				case (35):	//End
				case (36):	//Home
				case (37):	//LeftArrow
				case (39):	//RightArrow
				case (45):	//Insert
				break;
				default:	//cualquier tecla
							SuggestEngineClass.prototype.valor_de_lo_escrito[i] = SuggestEngineClass.prototype.inputText[i].value ;

							// BACKSPACE (tenemos que quitar 1 caracter en el value del campo)
							if (codigoTecla == 8 || codigoTecla == 46) {
								if (SuggestEngineClass.prototype.inputText[i].value == "") SuggestEngineClass.prototype.hideLayer(i) ;
								SuggestEngineClass.prototype.autoRellenar[i] = false ;
							}
							else {
								SuggestEngineClass.prototype.autoRellenar[i] = true ;
							}
							
							//borramos lo que está seleccionado si es que hay algo...
							SuggestEngineClass.prototype.phpParams[0] = new String(SuggestEngineClass.prototype.inputText[i].value) ;
							SuggestEngineClass.prototype.phpParams[1] = new String(SuggestEngineClass.prototype.id_pais) ;
							SuggestEngineClass.prototype.phpParams[2] = new String(SuggestEngineClass.prototype.language) ;
							SuggestEngineClass.prototype.phpParams[3] = new String(SuggestEngineClass.prototype.soloComienzoActivado) ;
							SuggestEngineClass.prototype.phpParams[4] = new String(SuggestEngineClass.prototype.staticText[0]) ;
              SuggestEngineClass.prototype.phpParams[5] = new String(SuggestEngineClass.prototype.tipo_zona) ;
              
							
							if (SuggestEngineClass.prototype.intervalo != 0) {
								clearTimeout(SuggestEngineClass.prototype.intervalo) ;
							}
							SuggestEngineClass.prototype.intervalo = setTimeout("SuggestEngineClass.prototype.consultaPHP("+i+")", SuggestEngineClass.prototype.callDelay) ;
			}
		}
	}
};


SuggestEngineClass.prototype.onPHPExecuted = function(str) {

	i = SuggestEngineClass.prototype.iActiva ;
	SuggestEngineClass.prototype.fillSuggestLayer(str, i) ;
	if (str != "") {
		
		if (SuggestEngineClass.prototype.autoRellenar[i]) {
			SuggestEngineClass.prototype.set_opcionActiva(0, i) ;
			if (SuggestEngineClass.prototype.suggestIframe[i]) {
								
                if (document.all) doc = eval("document." + SuggestEngineClass.prototype.suggestIframe[i].id + ".document") ;
				else doc = SuggestEngineClass.prototype.suggestIframe[i].contentDocument ;				
			} else {
				doc = document ;
			}
			
			//alert (document.capaSuggestIframe.document.getElementById("SuggestEngineClassLayerId"+i+SuggestEngineClass.prototype.opcionActiva[i]));
			
			SuggestEngineClass.prototype.turnOn(doc.getElementById("SuggestEngineClassLayerId"+i+SuggestEngineClass.prototype.opcionActiva[i]), SuggestEngineClass.prototype.opcionActiva[i]);
			if (SuggestEngineClass.prototype.autoRellenarActivado[i])
			{
				SuggestEngineClass.prototype.escribeTextoConSeleccion(i) ;
			}
		}
		
		SuggestEngineClass.prototype.showLayer(i) ;
	} else {
		SuggestEngineClass.prototype.hideLayer(i) ;
	}
}


SuggestEngineClass.prototype.fillSuggestLayer = function(str, i) {
	
	var aStr = String(str).split('|') ;
	var cadena = new String("") ;
	
  var i_v_position = 0;
  $("#capaSuggestIframe").css("display", "none");
  $("#capaSugerencia").css("display", "none");
  
  i_v_position = 1;
  
  	
	//creamos un array
	SuggestEngineClass.prototype.opcionActiva[i] = -1 ;
	delete SuggestEngineClass.prototype.aInfo ;
	SuggestEngineClass.prototype.aInfo = new Array() ;
	
	if (str)
	{
		//establecemos el máximo de íneas que tendrá el listado...
		SuggestEngineClass.prototype.maxOpciones[i] = parseInt(aStr.length)-1 ;
		
		for( var j = 0 ; j < aStr.length ; j++ )
		{
			var aPar = String(aStr[j]).split('~') ;
			
			SuggestEngineClass.prototype.aInfo[j] = new Object() ;
			
			SuggestEngineClass.prototype.aInfo[j].id = new Array();
			SuggestEngineClass.prototype.aInfo[j].texto = new Array();
			SuggestEngineClass.prototype.aInfo[j].num_ocurrencias = new Array();
			SuggestEngineClass.prototype.aInfo[j].id_pais_busqueda = new Array();
			
			
			SuggestEngineClass.prototype.aInfo[j].id[i] = aPar[0] ;
			SuggestEngineClass.prototype.aInfo[j].texto[i] = SuggestEngineClass.prototype.checkBold(aPar[1], i) ;
			SuggestEngineClass.prototype.aInfo[j].num_ocurrencias[i] = aPar[2] ;
			SuggestEngineClass.prototype.aInfo[j].id_pais_busqueda[i] = aPar[3] ;
			
			if (SuggestEngineClass.prototype.suggestIframe[i]) {
				identif = SuggestEngineClass.prototype.suggestIframe[i].id ;
				
				if (document.all) doc = "document.getElementById(\'"+identif+"\').document" ;
				else doc = "document.getElementById(\'"+identif+"\').contentDocument" ;
				
				pathSugEngClass = "top" ;
			} else {
				doc = "document" ;
				pathSugEngClass = "" ;
			}
			
			/*
			//cadena = cadena.concat('<div name="SuggestEngineClassLayerId'+i+''+j+'" id="SuggestEngineClassLayerId'+i+''+j+'" class="item" onmouseover="javascript:if('+pathSugEngClass+'.SuggestEngineClass.prototype.opcionActiva['+pathSugEngClass+'.i] != -1){'+pathSugEngClass+'.SuggestEngineClass.prototype.turnOff('+doc+'.getElementById(\'SuggestEngineClassLayerId\'+i+'+pathSugEngClass+'.SuggestEngineClass.prototype.opcionActiva['+pathSugEngClass+'.i]));}'+pathSugEngClass+'.SuggestEngineClass.prototype.set_opcionActiva('+j+','+i+');'+pathSugEngClass+'.SuggestEngineClass.prototype.turnOn(this);" onmouseout="javascript:'+pathSugEngClass+'.SuggestEngineClass.prototype.set_opcionActiva(-1,'+i+');'+pathSugEngClass+'.SuggestEngineClass.prototype.turnOff(this);" onMouseDown="javascript:'+pathSugEngClass+'.SuggestEngineClass.prototype.clickInLayer('+i+');">') ;
			cadena = cadena.concat('<div name="SuggestEngineClassLayerId'+i+''+j+'" id="SuggestEngineClassLayerId'+i+''+j+'" class="item" onmouseover="javascript:'+pathSugEngClass+'.SuggestEngineClass.prototype.set_opcionActiva('+j+','+i+');'+pathSugEngClass+'.SuggestEngineClass.prototype.turnOn(this);" onmouseout="javascript:'+pathSugEngClass+'.SuggestEngineClass.prototype.set_opcionActiva(-1,'+i+');'+pathSugEngClass+'.SuggestEngineClass.prototype.turnOff(this);" onMouseDown="javascript:'+pathSugEngClass+'.SuggestEngineClass.prototype.clickInLayer('+i+');">') ;
			cadena = cadena.concat('	\n<div>'+SuggestEngineClass.prototype.aInfo[j].num_ocurrencias[i]+'</div>') ;
			cadena = cadena.concat('	\n<span>'+SuggestEngineClass.prototype.aInfo[j].texto[i]+'</span>') ;
			cadena = cadena.concat('</div>') ;
			*/
			
      s_element = "";
      s_element +=  '<div name="SuggestEngineClassLayerId'+i+''+j+'" id="SuggestEngineClassLayerId'+i+''+j+'" class="item" onmouseover="javascript:'+pathSugEngClass+'.SuggestEngineClass.prototype.set_opcionActiva('+j+','+i+');'+pathSugEngClass+'.SuggestEngineClass.prototype.turnOn(this);" onmouseout="javascript:'+pathSugEngClass+'.SuggestEngineClass.prototype.set_opcionActiva(-1,'+i+');'+pathSugEngClass+'.SuggestEngineClass.prototype.turnOff(this);" onMouseDown="javascript:'+pathSugEngClass+'.SuggestEngineClass.prototype.clickInLayer('+i+');">';
      s_element += '  \n<div>'+SuggestEngineClass.prototype.aInfo[j].num_ocurrencias[i]+'</div>';
      s_element += '  \n<span>'+SuggestEngineClass.prototype.aInfo[j].texto[i]+'</span>';
      s_element += '</div>';


      i_v_position = i_v_position +1;  

      cadena = cadena +s_element;			
			
			
			
	    }
		
		if (aStr.length == 15) 
	    {
	    	cadena = cadena.concat('<span class="baseCapaSugerencia">('+SuggestEngineClass.prototype.staticText[1]+')</span>') ;
	    }
	    
	    SuggestEngineClass.prototype.suggestLayer[i].innerHTML = cadena ;
	    
    	$("#capaSuggestIframe").css("top", "260px");;
    	$("#capaSuggestIframe").css("height", i_v_position*17+ "px");
    	$("#capaSuggestIframe").css("display", "block");
      
           
      
	}
};

SuggestEngineClass.prototype.checkBold = function(cadena, i) {
	var retorno;
	if (SuggestEngineClass.prototype.autoNegritaActivado[i])
	{
 		retorno = SuggestEngineClass.prototype.searchAndReplaceBolding(cadena, SuggestEngineClass.prototype.inputText[i].value);
	}
	else
	{
		retorno = cadena;
	}
	return retorno;
};



SuggestEngineClass.prototype.searchAndReplaceBolding = function(originalText, searchText)
{
	highlightStartTag = "<strong>";
	highlightEndTag = "</strong>";

	newText = originalText;

	if (searchText.length > 0)
	{
		searchArray = searchText.split(" ");


		for (var i = 0; i < searchArray.length; i++) {
		newText = SuggestEngineClass.prototype.doHighlight(originalText, searchArray[i], highlightStartTag, highlightEndTag);
		originalText = newText;
		}
	}

  	return newText;
}


SuggestEngineClass.prototype.doHighlight = function(bodyText, searchTerm, highlightStartTag, highlightEndTag)
{
  var newText = "";
  var i = -1;
  var lcSearchTerm = searchTerm.toLowerCase();
  var lcBodyText = bodyText.toLowerCase();
    
  while (bodyText.length > 0) {
    i = lcBodyText.indexOf(lcSearchTerm, i+1);
    if (i < 0) {
      newText += bodyText;
      bodyText = "";
    } else {
      // skip anything inside an HTML tag
      //if (bodyText.lastIndexOf(">", i) >= bodyText.lastIndexOf("<", i)) {
        // skip anything inside a <script> block
        //if (lcBodyText.lastIndexOf("/script>", i) >= lcBodyText.lastIndexOf("<script", i)) {
          newText += bodyText.substring(0, i) + highlightStartTag + bodyText.substr(i, searchTerm.length) + highlightEndTag;
          bodyText = bodyText.substr(i + searchTerm.length);
          lcBodyText = bodyText.toLowerCase();
          i = -1;
        //}
      //}
    }
  }
  
  return newText;
}








SuggestEngineClass.prototype.consultaPHP = function(i) {

	if (SuggestEngineClass.prototype.phpParams[0] != "") {
		// LLamada XOAD
		var call = "SuggestEngineClass.prototype.engine." + SuggestEngineClass.prototype.phpFunction[i] + "(";
		for (pcount = 0; pcount < SuggestEngineClass.prototype.phpParams.length; pcount++) {
			call+= "'" + SuggestEngineClass.prototype.phpParams[pcount] + "'," ;
			}
		call += "SuggestEngineClass.prototype.onPHPExecuted" ;
		call += ")" ;
		eval(call) ;
//		jsrsExecute(SuggestEngineClass.prototype.phpUrl, SuggestEngineClass.prototype.onPHPExecuted, SuggestEngineClass.prototype.phpFunction[i], SuggestEngineClass.prototype.phpParams, 0) ;
		SuggestEngineClass.prototype.hiddenInputText[i].value = "";
	}
};

	
//hide layer
SuggestEngineClass.prototype.hideLayer = function(i) 
{
	if (SuggestEngineClass.prototype.suggestIframe[i]) {
		SuggestEngineClass.prototype.suggestIframe[i].style.display = "none" ;
	}

	if (SuggestEngineClass.prototype.suggestLayer[i]) {
		switch(SuggestEngineClass.prototype.nav)
		{
			case ("IE"):	SuggestEngineClass.prototype.suggestLayer[i].style.visibility = "hidden" ;
			break;
			case ("MOZ"):	SuggestEngineClass.prototype.suggestLayer[i].style.visibility = "hidden" ;
			break;
			default:		SuggestEngineClass.prototype.suggestLayer[i].style.visibility = "hidden" ;
		}
	}
};


//show layer
SuggestEngineClass.prototype.showLayer = function(i)
{
	//por el tema del IFRAME
	if (SuggestEngineClass.prototype.suggestIframe[i]) {
		SuggestEngineClass.prototype.suggestIframe[i].style.display = "block" ;
	}

   	if (SuggestEngineClass.prototype.suggestLayer[i]) {
		switch(SuggestEngineClass.prototype.nav)
		{
			case ("IE"):	SuggestEngineClass.prototype.suggestLayer[i].style.visibility = "visible" ;
			break;
			case ("MOZ"):	SuggestEngineClass.prototype.suggestLayer[i].style.visibility = "visible" ;
			break;
			default:		SuggestEngineClass.prototype.suggestLayer[i].style.visibility = "visible" ;
		}
	}
};

SuggestEngineClass.prototype.moveUp = function(i) 
{	

	if (SuggestEngineClass.prototype.suggestIframe[i]) 
	{
        if (document.all) doc = eval("document." + SuggestEngineClass.prototype.suggestIframe[i].id + ".document") ;
        else doc = SuggestEngineClass.prototype.suggestIframe[i].contentDocument ;
				
	} else {
		doc = document ;
	}
	
	if (SuggestEngineClass.prototype.opcionActiva[i] > 0) {
		SuggestEngineClass.prototype.turnOff(doc.getElementById("SuggestEngineClassLayerId"+i+SuggestEngineClass.prototype.opcionActiva[i]), SuggestEngineClass.prototype.opcionActiva[i]);
		SuggestEngineClass.prototype.opcionActiva[i]-- ;
		
		//escribimos el texto en el input
		SuggestEngineClass.prototype.escribeTexto(i) ;
		
		SuggestEngineClass.prototype.turnOn(doc.getElementById("SuggestEngineClassLayerId"+i+SuggestEngineClass.prototype.opcionActiva[i]), SuggestEngineClass.prototype.opcionActiva[i]);
	} else {
		if (SuggestEngineClass.prototype.opcionActiva[i] == 0) 
		{
			SuggestEngineClass.prototype.turnOff(doc.getElementById("SuggestEngineClassLayerId"+i+SuggestEngineClass.prototype.opcionActiva[i]), SuggestEngineClass.prototype.opcionActiva[i]);
			SuggestEngineClass.prototype.inputText[i].value = SuggestEngineClass.prototype.valor_de_lo_escrito[i] ;
			SuggestEngineClass.prototype.seleccionaTexto(SuggestEngineClass.prototype.inputText[i].value.length, SuggestEngineClass.prototype.inputText[i].value.length, i) ;
			SuggestEngineClass.prototype.opcionActiva[i]-- ;
		}
	}
}

SuggestEngineClass.prototype.moveDown = function(i)
{
	if (SuggestEngineClass.prototype.suggestIframe[i]) {
		
        if (document.all) doc = eval("document." + SuggestEngineClass.prototype.suggestIframe[i].id + ".document") ;
		else doc = SuggestEngineClass.prototype.suggestIframe[i].contentDocument ;
		
		
	} else {
		doc = document ;
	}
	
	if (SuggestEngineClass.prototype.opcionActiva[i] < SuggestEngineClass.prototype.maxOpciones[i]) 
	{
		if (SuggestEngineClass.prototype.opcionActiva[i] != -1) {
			SuggestEngineClass.prototype.turnOff(doc.getElementById("SuggestEngineClassLayerId"+i+SuggestEngineClass.prototype.opcionActiva[i]), SuggestEngineClass.prototype.opcionActiva[i]);
		}
		SuggestEngineClass.prototype.opcionActiva[i]++ ;
		
		//escribimos el texto en el input
		SuggestEngineClass.prototype.escribeTexto(i) ;
		
		SuggestEngineClass.prototype.turnOn(doc.getElementById("SuggestEngineClassLayerId"+i+SuggestEngineClass.prototype.opcionActiva[i]), SuggestEngineClass.prototype.opcionActiva[i]);	
	}
}

SuggestEngineClass.prototype.escribeTextoConSeleccion = function(i)
{
	//para hacer el marcado en azul...
	SuggestEngineClass.prototype.valor_de_lo_escrito[i] = SuggestEngineClass.prototype.inputText[i].value ;
	var largo_de_lo_escrito = SuggestEngineClass.prototype.valor_de_lo_escrito[i].length ;

	SuggestEngineClass.prototype.inputText[i].value = SuggestEngineClass.prototype.cleanTags(SuggestEngineClass.prototype.aInfo[SuggestEngineClass.prototype.opcionActiva[i]].texto[i]) ;
	SuggestEngineClass.prototype.hiddenInputText[i].value = SuggestEngineClass.prototype.aInfo[SuggestEngineClass.prototype.opcionActiva[i]].id[i];
	SuggestEngineClass.prototype.seleccionaTexto(largo_de_lo_escrito, SuggestEngineClass.prototype.aInfo[SuggestEngineClass.prototype.opcionActiva[i]].texto[i].length, i) ;

}

SuggestEngineClass.prototype.escribeTexto = function(i)
{

	if (SuggestEngineClass.prototype.opcionActiva[i] != -1)
	{
		SuggestEngineClass.prototype.inputText[i].value = SuggestEngineClass.prototype.cleanTags(SuggestEngineClass.prototype.aInfo[SuggestEngineClass.prototype.opcionActiva[i]].texto[i]) ;
		SuggestEngineClass.prototype.hiddenInputText[i].value = SuggestEngineClass.prototype.aInfo[SuggestEngineClass.prototype.opcionActiva[i]].id[i];
		
		//SuggestEngineClass.prototype.set_id_pais_busqueda(SuggestEngineClass.prototype.aInfo[SuggestEngineClass.prototype.opcionActiva[i]].id_pais_busqueda[i]);
	}
	SuggestEngineClass.prototype.seleccionaTexto(SuggestEngineClass.prototype.inputText[i].value.length, SuggestEngineClass.prototype.inputText[i].value.length, i) ;
	SuggestEngineClass.prototype.set_id_pais_busqueda(SuggestEngineClass.prototype.aInfo[SuggestEngineClass.prototype.opcionActiva[i]].id_pais_busqueda[i]);
}

SuggestEngineClass.prototype.seleccionaTexto = function(primer_caracter, ultimo_caracter, i)
{
	if (SuggestEngineClass.prototype.inputText[i].createTextRange)
	{
		//marcamos el rango que nos interesa
		var rango = SuggestEngineClass.prototype.inputText[i].createTextRange() ;
		rango.moveStart("character", primer_caracter);
		rango.moveEnd("character", ultimo_caracter);
		rango.select();
	} else {
		SuggestEngineClass.prototype.inputText[i].setSelectionRange(primer_caracter, ultimo_caracter);
	}
	
	//cogemos el foco
	SuggestEngineClass.prototype.inputText[i].focus();
}





SuggestEngineClass.prototype.turnOn = function(capa)
{
	capa.className = "itemOn" ;
}


SuggestEngineClass.prototype.turnOff = function(capa)
{
	capa.className = "item" ;
}

SuggestEngineClass.prototype.clickInLayer = function(i)
{
    
	SuggestEngineClass.prototype.escribeTexto(i) ;

  //SuggestEngineClass.prototype.inputText[i].form.submit() ;
	//sub_form_suggest(SuggestEngineClass.prototype.inputText[i].form,i,SuggestEngineClass.prototype.tipo_zona);
	$("#id_pais_suggest").val(SuggestEngineClass.prototype.id_pais_busqueda);
  coger_suggest(SuggestEngineClass.prototype.inputText[i].form,i,SuggestEngineClass.prototype.tipo_zona, SuggestEngineClass.prototype.id_pais_busqueda);
}

SuggestEngineClass.prototype.getSel = function()
{
	var txt = '';
	//var foundIn = '';
	if (window.getSelection)
	{
		txt = window.getSelection();
		//foundIn = 'window.getSelection()';
	}
	else if (document.getSelection)
	{
		txt = document.getSelection();
		//foundIn = 'document.getSelection()';
	}
	else if (document.selection)
	{
		txt = document.selection.createRange().text;
		//foundIn = 'document.selection.createRange()';
	}
	else return("");
	return(txt);
}


// Browser Sniffer
SuggestEngineClass.prototype.getBrowser = function()
{
	if (document.layers) return "NS";
	if (document.all) {
		// But is it really IE?
		// convert all characters to lowercase to simplify testing
		var agt = navigator.userAgent.toLowerCase();
		var is_opera = (agt.indexOf("opera") != -1);
		var is_konq = (agt.indexOf("konqueror") != -1);
		if(is_opera) {
			return "OPR";
		} else {
			if(is_konq) {
				return "KONQ";
			} else {
				// Really is IE
				return "IE";
			}
		}
	}
	if (document.getElementById) return "MOZ";
	return "OTHER";
}

SuggestEngineClass.prototype.cleanTags = function(str) 
{
	do {
		myRegExp = new RegExp("<[^>]*>");
		str = str.replace(myRegExp, "")
	} while (myRegExp.exec(str));
	
	return str;
}
