var xmlHttp = createXmlHttpRequestObject(); 

//creates an XMLHttpRequest instance
function createXmlHttpRequestObject() 
{
  // will store the reference to the XMLHttpRequest object
  var xmlHttp;
  // this should work for all browsers except IE6 and older
  try
  {
    // try to create XMLHttpRequest object
    xmlHttp = new XMLHttpRequest();
  }
  catch(e)
  {
    // assume IE6 or older
    var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
                                    "MSXML2.XMLHTTP.5.0",
                                    "MSXML2.XMLHTTP.4.0",
                                    "MSXML2.XMLHTTP.3.0",
                                    "MSXML2.XMLHTTP",
                                    "Microsoft.XMLHTTP");
    // try every prog id until one works
    for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++) 
    {
      try 
 
      { 
        // try to create XMLHttpRequest object
        xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
      } 
      catch (e) {}
    }
  }
  // return the created object or display an error message
  if (!xmlHttp)
    alert("Error creating the XMLHttpRequest object.");
  else 
    return xmlHttp;
}
 


function get_matches(str, event){
	var keyCode = event.keyCode ? event.keyCode : event.charCode;
	if(keyCode == 38 || keyCode == 40 || keyCode == 13){
		
/*		
		if( keyCode == 13){
			var search_results = document.getElementById('ajax_search_results');			
			var lis = search_results.getElementsByTagName('li');			
			for (var i = 0; i < lis.length; i++) {
				if(lis[i].className == 'selected'){
					alert(document.getElementById(lis[i].id+'_link').href);						
				}		
			}
		}
*/		
		
		//document.getElementById('srch_str').autocomplete = "off";
		var search_results = document.getElementById('ajax_search_results')
		if(search_results){
			var lis = search_results.getElementsByTagName('li');			
			var selected;
			for (var i = 0; i < lis.length; i++) {
				if(lis[i].className == 'selected'){
					if(keyCode == 13){
						document.location.href = document.getElementById(lis[i].id+'_link').href;
						document.getElementById('asearch').style.display = 'none';
						break;
					}
					else if(keyCode == 38){
						if(document.getElementById(lis[i-1].id)){
							selected =  lis[i-1].id;
							lis[i].className = "notSelected";
							document.getElementById(selected).className = 'selected';
							break;
						}						
					}
					else if(keyCode == 40){
						if(document.getElementById(lis[i+1].id)){
							selected =  lis[i+1].id;
							lis[i].className = "notSelected";							
							document.getElementById(selected).className = 'selected';
							break;
						}	
					}
				}
			}
			
			if(!selected){
				selected = 'search_res_1';
				document.getElementById(selected).className = 'selected';
			}
			
		}
	}
	else{
	
	  if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0) 
	  { 
	    	xmlHttp.open("GET", "../site_parts/search/ajax.php?search=" + str, true);
	    	xmlHttp.onreadystatechange = setMatches; 
	    	xmlHttp.send(null); 
	  } 
	  else {
		  setTimeout('get_matches('+str+')', 1000);
	  }
	}
} 	

function setMatches()  
{ 
  if (xmlHttp.readyState == 4)  
  { 
    if (xmlHttp.status == 200)  
    { 
      xmlResponse = xmlHttp.responseXML; 
      xmlDocumentElement = xmlResponse.documentElement; 
      try{
    	  helloMessage = xmlDocumentElement.firstChild.data;
    	  document.getElementById("asearch").style.display = 'block';
    	  document.getElementById("dyn_content").innerHTML =  helloMessage;
      }
      catch (e) {
    	  document.getElementById("asearch").style.display = 'none';
	  }
    }  
    else  
    { 
      alert("There was a problem accessing the server: " + xmlHttp.statusText); 
    } 
  } 
}
