var xmlHttp;

function showHint(str)
{
  if (str.length==0)
  { 
    document.getElementById("firstNameHint").innerHTML = "";
    return;
  }
  
  xmlHttp = GetXmlHttpObject();
  
  if (xmlHttp == null)
  {
    alert ("Browser does not support HTTP Request");
    return;
  }
  
  var url = "gethint.php";
  url = url + "?entered=" + str;
  url = url + "&sid=" + Math.random();	// prevent server from using cached file
  xmlHttp.onreadystatechange = stateChanged;
  xmlHttp.open("GET", url, true);	// set up a request to a web server
  xmlHttp.send(null);			// send a request to a web server
} 

// stateChanged() - Only state 4 is of interest in AJAX
//
// State 0.  Request is not initialized - before open() called
// State 1.  Request is set up - before send() called
// State 2.  Request has been sent - after send() called
// State 3.  Request is in process - browser and server are in communication
// State 4.  Request is complete -request complete, response data received 
//           from server in "responseText" field

function stateChanged() 
{ 
  if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete")
  { 
    document.getElementById("firstNameHint").innerHTML=xmlHttp.responseText;
  } 
} 

// Create an XMLHttpRequest object
// The XMLHttpRequest object is the key to AJAX
// Available since Internet Explorer 5.5 was released in 2000
// Not fully appreciated until Web 2.0 (AJAX) buzz in February 2005

function GetXmlHttpObject()
{ 
  var objXMLHttp = null;
  
  if (window.XMLHttpRequest)		// Firefox, Opera 8.0+, Safari
  {
    objXMLHttp = new XMLHttpRequest();
  }
  else if (window.ActiveXObject)	// Internet Explorer
  {
    objXMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
  }
  
  return objXMLHttp;
} 
