function getXmlHttpRequestObject() {
  var xmlHttp;
  // this should work for all browsers except IE6 and older
  try {
    // try to create XMLHttpRequest object
    xmlHttp = new XMLHttpRequest();
  }
  catch(e) {
    // assume IE7 or older
    var XmlHttpVersions = new Array(
			"MSXML2.XMLHTTP.7.0",
			"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;
}

//Our XmlHttpRequest object to get the auto suggest
var searchReq = getXmlHttpRequestObject();

//Called from keyup on the search textbox.
function autoSearch() {
	if (searchReq.readyState == 4 || searchReq.readyState == 0) {
		var str = escape(document.getElementById('search').value);
		searchReq.open("GET", '/res/autosearch.php?search=' + str, true);
		searchReq.onreadystatechange = handleAutoSearch; 
		searchReq.send(null);
	}		
}

//Called when the AJAX response is returned.
function handleAutoSearch() {
	if (searchReq.readyState == 4) {
		var ss = document.getElementById('autosearch');
		ss.className='autosearchvisible';
		ss.innerHTML = '';
		var str = searchReq.responseText.split("\n");
		for(i=0; i < str.length - 1; i++) {
			var suggest = '<div onmouseover="javascript:autoSearchOver(this);" ';
			suggest += 'onmouseout="javascript:autoSearchOut(this);" ';
			suggest += 'onclick="javascript:setAutoSearch(this.innerHTML);" ';
			suggest += 'class="autosearch_link">' + str[i] + '</div>';
			ss.innerHTML += suggest;
		}
	}
}

//Mouse over function
function autoSearchOver(div_value) {
	div_value.className = 'autosearch_link_over';
}
//Mouse out function
function autoSearchOut(div_value) {
	div_value.className = 'autosearch_link';
}
//Click function
function setAutoSearch(value) {
	document.getElementById('search').value = value;
	document.getElementById('autosearch').innerHTML = '';
	document.getElementById('autosearch').className = 'autosearchhidden';
}
