var ajaxObj = getAjaxObject();

var targetID = new Array() ;
var searchID = new Array() ;
var registroID = new Array();
var inputID = new Array() ;



function autoSuggest(id, targetid, searchid, registroid, inputid, e, archivo_consulta)
{
   
   var keyCode = getKeyCode(e, 'keyup');
   if (keyCode == 40 || keyCode == 38)
   {
	   return false;   
   }  
  
   autoSugPointer[id] = 0;

   targetID[id] = targetid;
   searchID[id] = searchid;
   registroID[id] = registroid;
   inputID[id] = inputid;
   countSuggestions[id] = 0;
   
   var searchInput = getElemId(id).value;
   
   var searchInput = htmlentities(searchInput, 'ENT_QUOTES');
   
   var url = "/componentes/autosuggest/"+archivo_consulta+".php";/*ubicacion del archivo consulta */
   searchInput = searchInput.replace('&','--');
   
   var params = "input=" + searchInput;    
   
   caracteres_cadena = searchInput.length;
  
   if (trim(searchInput) !== "" && caracteres_cadena>=2)
   {
	  sendRequest(ajaxObj, url, params, handleSuggestResponse, id);
   }
   else
   {
	  hideSuggestions();   
   }
}

var idsuggestions = new Array();

function handleSuggestResponse(id)
{
   if (ajaxObj.readyState == 4)
   {
      if (ajaxObj.status == 200)
      {
		  try
		  {
			  var XMLResponse = ajaxObj.responseXML.documentElement;
			  // work with the xml response
			  
			  var idkeywordsTag = XMLResponse.getElementsByTagName('idkeywords');
			  var keywordsTag = XMLResponse.getElementsByTagName('keywords');
			  
			
			  var suggestions = new Array();
			  
			  for (var i = 0; i < keywordsTag.length; i++)
			  {
				 var idkeywords = idkeywordsTag.item(i).firstChild.nodeValue;				  
				 var keywords = keywordsTag.item(i).firstChild.data.toString();
				 
				 keywords = keywords.replace(/---/g,"&apos;");
								
				 idsuggestions[i]=idkeywords;
				 suggestions.push(keywords);
			  }
			  showSuggestions(idsuggestions, suggestions, id);
		  }
		  catch(e)
		  {
			  hideSuggestions(id);
			  //if (trim(ajaxObj.responseText) !== "")//comentado 26-11-2010 GC
			  
			   
		  }
	  }
   }
}


var countSuggestions = new Array();

function showSuggestions(idsuggestions, suggestions, id)
{
   var listWrapID = getElemId(targetID[id]);
   listWrapID.style.visibility = "visible";
   
   var listID = getElemId(searchID[id]);
   listID.innerHTML = "";
   
   for(var i = 0; i < suggestions.length; i++)
   {
     listID.innerHTML += "<li><a id='"+id + "-" +(i+1)+"' href=\"javascript:void(0);\" onclick=\"insertKeyword(this.innerHTML, '"+id+"', '"+idsuggestions[i]+"');\">" + suggestions[i]+"</a></li>";      
   }  
   
   countSuggestions[id] = i;
   
}

var autoSugPointer = new Array();

function keyBoardNav(e, id)
{

   var keyCode = getKeyCode(e, 'keydown');
   
   
   if (keyCode == 8 || keyCode == 46){//tecla BORRAR o SUPR
	   getElemId(registroID[id]).value = "";
	   getElemId(inputID[id]).value = "";
	   var listID = getElemId(searchID[id]);
	   listID.innerHTML = "";
	   
  	  // hideSuggestions(id);
   }
  

   if (keyCode == 40)
   {
      if (autoSugPointer[id] >= 0 && autoSugPointer[id] < countSuggestions[id])
	  {
		 if (autoSugPointer[id] != 0 && autoSugPointer[id] != countSuggestions[id])
		 {
		    revertAutoSuggestKeyNav(autoSugPointer[id], id);
		 }
		 autoSugPointer[id] ++;
		 changeAutoSuggestKeyNav(autoSugPointer[id], id);
		 if (autoSugPointer[id] > 6)
		 {
			getElemId(searchID[id]).scrollTop = 30;
		 }
	  }
   }
   else if (keyCode == 38)
   {
	  if (autoSugPointer[id] > 1)
	  {
		 revertAutoSuggestKeyNav(autoSugPointer[id], id);
		 autoSugPointer[id] --;
		 changeAutoSuggestKeyNav(autoSugPointer[id], id);
		 if (autoSugPointer[id] <= 2)
		 {
			getElemId(searchID[id]).scrollTop = 0;
		 }
	  }
   }
   else if (keyCode == 13 && autoSugPointer[id])
   {
	   

	  var str = getElemId(id + "-" + autoSugPointer[id]).innerHTML;
	  insertKeyword(str, id, idsuggestions[autoSugPointer[id]-1]);
   }

}

function changeAutoSuggestKeyNav(id, ID)
{
   getElemId(ID + "-" + id).style.backgroundColor = "#555";
   getElemId(ID + "-" + id).style.color = "#FFF";   	
}

function revertAutoSuggestKeyNav(id, ID)
{

   getElemId(ID + "-" + id).style.backgroundColor = "#F9F9F9";
   getElemId(ID + "-" + id).style.color = "#006";   	
}


function hideSuggestions(id)
{
   try
   {
   var listWrapID = getElemId(targetID[id]);
   listWrapID.style.visibility = "hidden";	
   }catch(e){}
}

function insertKeyword(str, id, idsuggestions)
{
	hideSuggestions(id);

 	getElemId(registroID[id]).value = idsuggestions;
	getElemId(inputID[id]).value = str;//id=input y str lo q selecciono
	/*getElemId(inputID[id]).focus();*/
	document.getElementById('buscador_gral').action = "/resultados_busqueda.php?tipo_busqueda=palabras";
	document.getElementById('buscador_gral').submit();
	
	
	
	
	
}
