/*
20071024:1300:DDG -- This function returns an ajaxObject that can be used to retrieve information from the server without reloading the page.
The callbackFunction stores another function that is run when ajaxObject is called.  In most situations this is an empty function and the work
is actually done after ajaxObject is called.  Like so:
function fin(responseTxt,responseStat) {
  //This function won't be called.  obj.callback replaces it.
}

var osm = new ajaxObject('http://someurl.com/somepage.asp', fin);
osm.callback = function (responseTxt, responseStat) {
   //We process the data here.
   document.getElementById('someDiv').innerHTML=responseTxt; //Fill a div with the content of this page
}
osm.update('RecordKey=8824679-2462-2462-4269879'); //Actually sends the object back to the server for information.
//the update function can take a second parameter of either 'POST' or 'GET'
*/
function ajaxObject(url, callbackFunction) {
  var that=this;
  this.updating = false;
  this.abort = function() {
    if (that.updating) {
      that.updating=false;
      that.AJAX.abort();
      that.AJAX=null;
    }
  }
  this.update = function(passData,postMethod) { 
    if (that.updating) { return false; }
    that.AJAX = null;
    if (window.XMLHttpRequest) {
      that.AJAX=new XMLHttpRequest();
    } else {
      that.AJAX=new ActiveXObject("Microsoft.XMLHTTP");
    }
    
    if (that.AJAX==null) {
      return false;
    } else {
      that.AJAX.onreadystatechange = function() {
        if (that.AJAX.readyState==4) {
          that.updating=false;
          that.callback(that.AJAX.responseText,that.AJAX.status,that.AJAX.responseXML);
          that.AJAX=null;
        }
      }
      that.updating = new Date();
      if (/post/i.test(postMethod)) {
        var uri=urlCall+'?'+that.updating.getTime();
        that.AJAX.open("POST", uri, true);
        that.AJAX.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        that.AJAX.send(passData);
      } else {
        var uri=urlCall+'?'+passData+'&timestamp='+(that.updating.getTime()); 
        that.AJAX.open("GET", uri, true);
        that.AJAX.send(null);
      }
      return true;
    }
  }
  var urlCall = url;
  this.callback = callbackFunction || function () { };
}