/*
	This is the JavaScript file for the AJAX Suggest Tutorial

	You may use this code in your own projects as long as this 
	copyright is left	in place.  All code is provided AS-IS.
	This code is distributed in the hope that it will be useful,
 	but WITHOUT ANY WARRANTY; without even the implied warranty of
 	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
	
	For the rest of the code visit http://www.DynamicAJAX.com
	
	Copyright 2006 Ryan Smith / 345 Technical / 345 Group.	

*/
//Gets the browser specific XmlHttpRequest Object

// Controla la posicion dentro del cuadro de dialogo donde se presenta la lista de busqueda.
var elementoSeleccionado = 0;
var numeroElementos;

function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		alert("Su navegador no soporta la opcion de busqueda avanzada");
	}
}

//Our XmlHttpRequest object to get the auto suggest
var searchReq = getXmlHttpRequestObject();

//Called from keyup on the search textbox.
//Starts the AJAX request.
function sendRequest(div, request, parameters)
{

	if (searchReq.readyState == 4 || searchReq.readyState == 0) {
		// Codifica la cadena con la funcion escape lo que permite pasarla en la URL
		
		var str = escape(document.getElementById(div).value);

		searchReq.open(request, parameters + str, true);
		// Asigna el Manejador
		searchReq.onreadystatechange = handleRequest; 
		// Se hace el envio al servidor
		searchReq.send(null);
				//alert (request + parameters);
	}		
}



//Called when the AJAX response is returned.
var numeroElemento;
var ultimoElementoSeleccionado;
var elementoSeleccionado;

function handleRequest() {
	//alert (searchReq.readyState);
	// Estamos seguros de que recibimos una respuesta
	//alert (searchReq.responseText.split("\n"));

	//searchReq.abort();

	if (searchReq.readyState == 4) {
		// Obtiene una referencia de el div serach_suggest
		var ss = document.getElementById('proveedor');
		//ss.style.visibility = 'visible';

		
		ss.value = '';
		// Obtiene la cadena de respuesta y la guarda en un arreglo
		var str = searchReq.responseText.split("\n");
		//alert (str);
		
	
		numeroElementos  = str.length - 1;
		if (numeroElementos == 0) {
				ss.value += str;
		}
		else {
			for(i = 0; i < numeroElementos; i ++) {
				//Build our element string.  This is cleaner using the DOM, but
				//IE doesn't support dynamically added attributes.
				var suggest;				
				suggest =  str[i] ;
				//suggest += '>' + str[i] + '</div>';
				ss.value += suggest;
			}
		}
		
		//alert (str);
		//ss.innerHTML += NADA;
		// Si la consulta no devuelve resultados desactivamos la visibilidad del div
		if (str == '') {
			// ss.style.visibility = 'hidden';
			// ss.innerHTML += NADA;
		}
	}
}

//Mouse over function
function suggestOver(div_value) {
		//alert (numeroElementos);
	// Limpia todos los elementos
	for (i=0;i<=numeroElementos-1;i++) {
		document.getElementById(i).className = "suggest_link";
	}

	div_value.className = 'suggest_link_over';
	elementoSeleccionado = div_value.id;

}
//Mouse out function
function suggestOut(div_value) {
	div_value.className = 'suggest_link';
}
//Click function
function setSearch(value) {
	document.getElementById('txtSearch').value = value;
	document.getElementById('search_suggest').value = '';
}