//Gets the browser specific XmlHttpRequest Object
var nivel = -1;
function getXmlHttpRequestObject() {
	var xmlHttp=null;
	if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
	  xmlHttp=new XMLHttpRequest();
	}
	else {// code for IE6, IE5
	  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
	return xmlHttp;
}

var searchReq = getXmlHttpRequestObject();
var suggestSelected = 0;
//Called from keyup on the search textbox.
//Starts the AJAX request.
function searchSuggest() {
	nivel = -1;
	if (searchReq.readyState == 4 || searchReq.readyState == 0) {
		var str = escape(document.getElementById('keyw').value);
		searchReq.open("GET", 'searchSuggest.php?search=' + str, true);
		searchReq.onreadystatechange = handleSearchSuggest; 
		searchReq.send(null);
	}		
}
//Called when the AJAX response is returned.
function handleSearchSuggest() {
	if (searchReq.readyState == 4) {
		document.getElementById('search_suggest').innerHTML = '';
		var str = searchReq.responseText.split("\n");
		for(i=0; i < str.length - 1; i++) {
			document.getElementById('search_suggest').innerHTML += '<div onmouseover="javascript:suggestOver(this);" onmouseout="javascript:suggestOut(this);" onclick="javascript:setSearch(this.innerHTML);" onkeydown="if(event.keycode==40){this.nextSibling.focus();}"  class="suggest_link">' + str[i] + '</div>';;	
		}
	}
}
function moveDown(obj,event) {
  if (event.keyCode != 40 && event.keyCode != 38) {
    searchSuggest();
  } else{
    suggestDown3(event);
  }
}

function suggestOver(div_value) {
	div_value.className = 'suggest_link_over';
}
function suggestOut(div_value) {
	div_value.className = 'suggest_link';
}
var activeRow;
function suggestDown3(e){

    if(e.keyCode == 40) {//Down
		if (nivel+1 < document.getElementById('search_suggest').childNodes.length){
			nivel++;
		}		
		activeRow = document.getElementById('search_suggest').childNodes[nivel];
		activeRow.className = "suggest_link_over";
		document.getElementById('keyw').value = activeRow.innerHTML;
		if(nivel != 0){
			document.getElementById('search_suggest').childNodes[nivel-1].className = "suggest_link"
		}
		if(nivel+1 != document.getElementById('search_suggest').childNodes.length){
			document.getElementById('search_suggest').childNodes[nivel+1].className = "suggest_link"
		}

		
	} else if(e.keyCode == 38) {
		if (nivel > 0){
			nivel--;
		}		
		activeRow = document.getElementById('search_suggest').childNodes[nivel];
		activeRow.className = "suggest_link_over";
		document.getElementById('keyw').value = activeRow.innerHTML;
		if(nivel+1 < document.getElementById('search_suggest').childNodes.length){
			document.getElementById('search_suggest').childNodes[nivel+1].className = "suggest_link"
		}
		if(nivel != 0){
			document.getElementById('search_suggest').childNodes[nivel-1].className = "suggest_link"
		}
		if(nivel+1 != document.getElementById('search_suggest').childNodes.length){
			document.getElementById('search_suggest').childNodes[nivel+1].className = "suggest_link"
		}				
	}
}

function setSearch(value) {
	document.getElementById('keyw').value = value;
	document.getElementById('search_suggest').innerHTML = '';
	nivel = -1;
}
