﻿// Define ready state constants.
var XMLHTTPREQUEST_READY_STATE_UNINITIALIZED = 0;
var XMLHTTPREQUEST_READY_STATE_LOADING       = 1;
var XMLHTTPREQUEST_READY_STATE_LOADED        = 2;
var XMLHTTPREQUEST_READY_STATE_INTERACTIVE   = 3;
var XMLHTTPREQUEST_READY_STATE_COMPLETED     = 4;

var XMLHTTPREQUEST_STATUS_SUCCESSFUL         = 200;
var XMLHTTPREQUEST_STATUS_PAGENOTFOUND       = 404;

//
//  url = name of page to call to process data
//  dataToSend = data to send to 'url' for processing
//  rooutine =  customer handler to call
//  objectID = data passed along to 'routine'
//
function fetchData (url, dataToSend, routine, objectID)
{

   var pageRequest;

   // branch for native XMLHttpRequest object
   if (window.XMLHttpRequest)
   {
      try
      {
         pageRequest = new XMLHttpRequest();
      }
      catch(e)
      {
         pageRequest = null;
      }
   }
   // branch for IE/Windows ActiveX version
   else if (window.ActiveXObject)
   {
      try
      {
         pageRequest = new ActiveXObject("Msxml2.XMLHTTP");
      }
      catch(e)
      {
         try
         {
            pageRequest = new ActiveXObject("Microsoft.XMLHTTP");
         }
         catch(e)
         {
            pageRequest = null;
         }
      }
   }

   if (pageRequest)
   {
      var funct =  
         function ()
         {
            ajaxCheckState (routine, pageRequest, objectID);
         }

      if (dataToSend)
      {
         var sendData ='sendData=' + dataToSend;
   
         pageRequest.open('POST', url, true);
         pageRequest.onreadystatechange = funct;
         pageRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
         pageRequest.send(sendData);
      }
      else
      {
         pageRequest.open('GET', url, true);
         pageRequest.onreadystatechange = funct;
         pageRequest.send(null);
      }
   }

}  // end fetchDATA


function ajaxCheckState (routine, pageRequest, objectID)
{
 //  var object = document.getElementById(objectID);
 
   if (pageRequest.readyState == XMLHTTPREQUEST_READY_STATE_COMPLETED)
   {
       if (pageRequest.status == XMLHTTPREQUEST_STATUS_SUCCESSFUL)
       {
            routine(pageRequest, objectID);
//          object.innerHTML = pageRequest.responseText;
       }
 //      else if (pageRequest.status == XMLHTTPREQUEST_STATUS_PAGENOTFOUND)
 //         object.innerHTML = 'Sorry, that information is not currently available.';
 //      else
 //         object.innerHTML = 'Sorry there seems to be some kind of problem.';
   }
   else
     return;
}


