//Gets the browser specific XmlHttpRequest Object
function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		alert("Seu navegador não suporta Ajax.");
	}
}

//Our XmlHttpRequest object to get the auto suggest
var searchReq = getXmlHttpRequestObject();

//Called from keyup on the search textbox.
//Starts the AJAX request.
function searchSuggest(ajax_script, query, input) {
	if (searchReq.readyState == 4 || searchReq.readyState == 0) {
		var str = escape(document.getElementById(input).value);
			searchReq.open("GET", ajax_script+'?' + query + '=' + str, true);
			searchReq.onreadystatechange = function() { handleSearchSuggest('suggest', input); }
			searchReq.send(null);
	}		
}

//Called when the AJAX response is returned.
function handleSearchSuggest(layer, input) {
	if (searchReq.readyState == 4) {
		var ss = document.getElementById(layer);
		ss.innerHTML = '';
		var str = searchReq.responseText.split("\n");
		var limite = 20;
		if(str.length >= limite){
			ss.innerHTML = '<font color="red">Exibindo somente '+ limite +' itens de ' + str[0] + ' retornados.</font>';
		}
		for(i=1; i < str.length - 1; i++) {
			//Build our element string.  This is cleaner using the DOM, but
			//IE doesn't support dynamically added attributes.
			var input_value = document.getElementById(input).value;
			var str_value = str[i];
			var input_bold = new RegExp( input_value, "gi" );
			var aspas = new RegExp( "'", "g" );
			var suggest = '<div onmouseover="javascript:suggestOver(this);" ';
			suggest += 'onmouseout="javascript:suggestOut(this);" ';
			suggest += 'onclick="javascript:setSearch(\''+layer+'\',\''+input+'\',\''+str_value.replace(aspas,"")+'\');" ';
			suggest += 'class="suggest_link">' + str_value.replace(input_bold,"<b>"+input_value+"</b>") + '</div>';
			ss.innerHTML += suggest;
		}
	}
}

//Mouse over function
function suggestOver(div_value) {
	div_value.className = 'suggest_link_over';
}
//Mouse out function
function suggestOut(div_value) {
	div_value.className = 'suggest_link';
}
//Click function
function setSearch(layer, input, value) {
	document.getElementById(input).value = value;
	document.getElementById(layer).innerHTML = '';
}
//Out Search function
function outSearch(layer) {
	document.getElementById(layer).innerHTML = '';
}