/*
 * XMLHttpRequest Constructor
 */
function ceateXMLHttp(){
 if (typeof XMLHttpRequest!="undefined"){
  //Mozilla
  return new XMLHttpRequest();
 }else{
  //IE
  var aVersions=[
   "MSXML2.XMLHttp.7.0", //Does not exist 05/2006
   "MSXML2.XMLHttp.6.0", //Does not exist 05/2006
   "MSXML2.XMLHttp.5.0",
   "MSXML2.XMLHttp.4.0",
   "MSXML2.XMLHttp.3.0",
   "MSXML2.XMLHttp",
   "Microsoft.XMLHttp"
  ];
  for(var i=0;i<aVersions.length;i++) {
   try{
	var oXmlHttp=new ActiveXObject(aVersions[i]);
	return oXmlHttp;
   }catch(oError){
	//alert(oError);
   }
  }
 }
 throw new Error("MSXML is not installed.");
}

/*
 * Post - Page Body
 * Gets the page body data.
 * @param oForm HTML form object.
 */
function getRequestBody(oForm){
  var sParams=new Array();
  for (var i=0;i<oForm.elements.length;i++){
    var sParam=encodeURIComponent(oForm.elements[i].name);
    sParam+="=";
    sParam+=encodeURIComponent(oForm.elements[i].value);
    sParams.push(sParam);
  }
  return sParams.join("&");
}

/*
 * Post - Send Request
 * Sends request to remote page to retrieve data
 * @param targetPage url of page containing data to be retrieved.
 * @param oID ID of HTML control where data is to be output.
 */
function sendRequest(targetPage,oID){
  var oForm=document.forms[0];
  var sBody=getRequestBody(oForm);
  var oXmlHttp=ceateXMLHttp();
  oXmlHttp.open("POST",targetPage,true);
  oXmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoder");
  oXmlHttp.onreadystatechange=function(){
    if(oXmlHttp.readyState==4){
      if(oXmlHttp.status==200){
        displayDivText(oXmlHttp.responseText,oID);
      }else{
        displayDivText("Error: " + oXmlHttp.statusText,oID);
      }
    }
  };
  oXmlHttp.send(sBody);
}

/*
 * Sets innerHTML text of HTML control which has the given ID
 * @param sText text to be output.
 * @param oID ID of HTML control where text is to be placed. 
*/
function displayDivText(sText,oID) {
  var divText=document.getElementById(oID);
  divText.innerHTML = sText;
}