// JavaScript Document
//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("Your Browser Sucks!\nIt's about time to upgrade don't you think?");
    }
}
//Our XmlHttpRequest object to get the auto suggest
var searchReq = getXmlHttpRequestObject();

//Called from keyup on the search textbox.
//Starts the AJAX request.
function hideResult(){
		document.getElementById("search_suggest").style.visibility = "hidden";
	}
function searchSuggest() {
    if (searchReq.readyState == 4 || searchReq.readyState == 0) {
        var str = escape(document.getElementById('search').value);
		if (str!="")
		{
			//alert("hi");
        	searchReq.open("GET", 'includes/search.php?search=' + str, true);
			document.getElementById("search_suggest").style.visibility ="visible";
        	searchReq.onreadystatechange = handleSearchSuggest; 
        	searchReq.send(null);
		}
		else
		{
		document.getElementById("search_suggest").style.visibility = "hidden";	
		}
    }        
}

//Called when the AJAX response is returned.
function handleSearchSuggest() {
    if (searchReq.readyState == 4) {
        var ss = document.getElementById('search_suggest')
        ss.innerHTML = '';
		ss.className='suggest2';
		var str = searchReq.responseText.split("\n");
		 for(i=0; i < str.length - 1; i++) {
            //Build our element string.  This is cleaner using the DOM, but
            //IE doesn't support dynamically added attributes.
           var suggest = '<div onmouseover="javascript:suggestOver(this);" ';
suggest += 'onmouseout="javascript:suggestOut(this);" ';
suggest += 'onkeydown="if(event.keyCode==40) "javascript:suggestOut(this);" '; 
suggest += 'onclick="javascript:setSearch(this.innerHTML);submit()" ';
suggest += 'class="suggest2_link">' + str[i] + '</div>';
ss.innerHTML += suggest;
		
        }
		document.getElementById("search").onkeydown=fn_keyAct;
	  }
	  
}
function suggestOver(div_value) {
    div_value.className = 'suggest2_link_over';
}
 
//Mouse out function
function suggestOut(div_value) {
    div_value.className = 'suggest2_link';
}
//Click function
function setSearch(value) {
    document.getElementById('search').value = value;
    document.getElementById('search_suggest').style.display ="none";
	document.getElementById('search_suggest').className="";
}
function fn_keyAct(oEvent){
		var cSuggestionNodes = search_suggest.childNodes;
		oEvent=oEvent ? oEvent : event;
		iKeyCode =  oEvent.keyCode;
		if (iKeyCode==38){	
			if (cSuggestionNodes.length > 0 && cur > 0) {
				var oNodenext = cSuggestionNodes[cur];
				window.suggestResultOut(oNodenext);
				
				var oNodecur = cSuggestionNodes[--cur];
				window.suggestResultOver(oNodecur);
				document.getElementById("search").value = oNodecur.firstChild.nodeValue;   
			}
			else
			{
			 var oNodecur = cSuggestionNodes[0];
			 window.suggestResultOut(oNodecur);
			 cur = cSuggestionNodes.length-1;
			}
		} else if (iKeyCode==40){
			if (cSuggestionNodes.length > 0 && cur < cSuggestionNodes.length-1) {
				if(cur > -1) {
					var oNodeprev = cSuggestionNodes[cur];
					window.suggestResultOut(oNodeprev);
				}
				var oNodecur = cSuggestionNodes[++cur];
				window.suggestResultOver(oNodecur);
				document.getElementById("search").value = oNodecur.firstChild.nodeValue; 
			}
			else
			{
			 cur = -1;
			}
		} else if (iKeyCode==13){
			hideResult();
		}else{
			cur = -1;
			searchSuggest();
		}
	}
