var xmlHttp = createXmlHttpRequestObject();

// variables that establish how often to access the server 
var errorRetryInterval = 5; // seconds to wait after server error

var response_id='';
var error_msg ='';
// 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.");
  	return false;
	}
	else 
  {
	  return xmlHttp;
	}
}


// function that handles the HTTP response
function handleRequestStateChange() 
{
 // when readyState is 4, we read the server response
	if (xmlHttp.readyState == 4)
  {
    // continue only if HTTP status is "OK"
		if (xmlHttp.status == 200) 
    {	
      try
      {
       // read the response from the server
        showResponse();
     	}
      catch(e)
      {
        // display error message
        //displayError(e.toString());
    	}
    }
    else
    {
      // display error message
      displayError(xmlHttp.statusText);
    }
	}
}


// function that displays a new message on the page
function displayResult(message, fieldId)
{
	// obtain a reference to the <div> element on the page
  var myDiv = document.getElementById(fieldId);
	if (myDiv)
	{
	 // display message
	myDiv.innerHTML = message;
	}
}



// read server's response 
function showResponse()
{
  // retrieve the server's response 
  var response = xmlHttp.responseText;
  // display the message
  displayResult(response, response_id);
}

function displayError()
{
	// display error message, with more technical details if debugMode is true
  alert(error_msg);
 }
