document.onkeyup = KeyCheck;

function KeyCheck()

{
   var KeyID = event.keyCode;
   switch(KeyID)
   {
      
      case 38: //up arrow
      
      if (document.getElementById('txtSearch').value != '')
      {
		var i;
		var selected;
		var ListItems = document.getElementById('search_suggest').childNodes.length
		
		for(i=0; i < ListItems; i++) 
		
		{
		
		if (document.getElementById('search_suggest').childNodes[i].className == 'suggest_link_over')
				{
				//finds selected item		
				selected = i
				break;
				}	
			else
				//nothing selected
				{
				selected = 9999
				}
						
		} //end for loop
		
		if (selected != 9999)
			{
			
				if (selected == 0)
					{
					document.getElementById('search_suggest').childNodes[0].className = 'suggest_link';
					}
				else
					{
					document.getElementById('search_suggest').childNodes[selected].className = 'suggest_link';
					document.getElementById('search_suggest').childNodes[selected - 1].className = 'suggest_link_over';
					document.getElementById('txtSearch').value = "";
					document.getElementById('txtSearch').value = document.getElementById('search_suggest').childNodes[selected-1].firstChild.nodeValue;
					}
			
			}
		
      }
      break;      
     
      case 40: //down arrow
     
     
      //alert(document.getElementById('search_suggest').childNodes.length);
	   
      //alert(document.getElementById('search_suggest').childNodes[0].firstChild.nodeValue);
      if (document.getElementById('txtSearch').value != '')
      {
      var i;
      var selected;
      var ListItems = document.getElementById('search_suggest').childNodes.length
      		      
      for(i=0; i < ListItems; i++) {
		
			if (document.getElementById('search_suggest').childNodes[i].className == 'suggest_link_over')
				{
				
				selected = i
				break;
				}	
			else
			
				{
				selected = 9999
				}
										
			}
			
		    
			//nothing seleced, highlight first row
			if (selected == 9999)
				{
				document.getElementById('search_suggest').childNodes[0].className = 'suggest_link_over';
				document.getElementById('txtSearch').value = document.getElementById('search_suggest').childNodes[0].firstChild.nodeValue;
				}
			
			//last item in list selected
			else if (selected == ListItems - 1)
				{
				document.getElementById('search_suggest').childNodes[ListItems - 1].className = 'suggest_link';
				document.getElementById('search_suggest').childNodes[0].className = 'suggest_link_over';
				document.getElementById('txtSearch').value = document.getElementById('search_suggest').childNodes[0].firstChild.nodeValue;
				}
			
			else
				{
				
				document.getElementById('search_suggest').childNodes[selected].className = 'suggest_link';
				document.getElementById('search_suggest').childNodes[selected+1].className = 'suggest_link_over';
				document.getElementById('txtSearch').value = "";
				document.getElementById('txtSearch').value = document.getElementById('search_suggest').childNodes[selected+1].firstChild.nodeValue;
				}
      }
      break;
      
      
			
	  case 27: //esc key
			document.getElementById('search_suggest').style.visibility = 'hidden';
			document.getElementById('search_suggest').innerHTML = '';
			document.getElementById('txtSearch').value = '';
      
      default :
		//alert(KeyID);   
}

}


//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 does not support Javascript.");
	}
}

//Our XmlHttpRequest object to get the auto suggest
var searchReq = getXmlHttpRequestObject();

//Call AJAX when keyup on the search textbox.
function searchSuggest(txtcont) {
var KeyID = event.keyCode;
//alert(KeyID);

if ((KeyID != 40) && (KeyID != 38) && (KeyID != 13) && (KeyID != 37) && (KeyID != 39))
{
      
    
//alert("arrow not pushed");				
	if (txtcont.length == 0)
	{
	    document.getElementById('search_suggest').innerHTML="";
	    document.getElementById('search_suggest').style.visibility = 'hidden';
return;
	}
	if (searchReq.readyState == 4 || searchReq.readyState == 0) {
		var str = escape(document.getElementById('txtSearch').value);
		//alert("data run");
		searchReq.open("GET", 'ShowHint.aspx?txt=' + str, true);
		searchReq.onreadystatechange = handleSearchSuggest; 
		searchReq.send(null);
	}		
}

}

//AJAX response
function handleSearchSuggest() {
	if (searchReq.readyState == 4) {
				
		var ss = document.getElementById('search_suggest')
		ss.innerHTML = '';
		var str = searchReq.responseText.split("--");
		
		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 += 'onclick="javascript:setSearch(this.innerHTML);" ';
			suggest += 'class="suggest_link" id="Row"' + i + ' index=' + i + ' >' + str[i] + '</div>';
			
			
			
			ss.innerHTML += suggest;
			ss.style.cursor = "pointer"
			
		}
			
	if (str.length==1)
		{
		document.getElementById('search_suggest').style.visibility = 'hidden';
		}
	else
		{
		document.getElementById('search_suggest').style.visibility = 'visible';
		document.getElementById('search_suggest').style.backgroundColor="#ffffff";
		document.getElementById('search_suggest').style.border="1px solid black";

		}	
	}
	
}

//Mouse over function
function suggestOver(div_value) {

var ListItems = document.getElementById('search_suggest').childNodes.length
	
	for(i=0; i < ListItems; i++) 
	{
		if (document.getElementById('search_suggest').childNodes[i].className == 'suggest_link_over')
				{
					document.getElementById('search_suggest').childNodes[i].className = 'suggest_link'			
				}	
	}
	
	div_value.className = 'suggest_link_over';
	
}
//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').innerHTML = '';
	document.getElementById('search_suggest').style.visibility = 'hidden';
}

