var oAjax = (typeof XMLHttpRequest != 'undefined') ? new XMLHttpRequest() : null;

//-------------------------------------------------------------------
// ajaxGetXMLHTTPObject()
//-------------------------------------------------------------------
function ajaxGetXMLHTTPObject()
  {
  if (oAjax)
    return true;

  var i     = 0;
  var types = new Array("MSXML2.XMLHTTP.3.0", "Msxml2.XMLHTTP", "Microsoft.XMLHTTP");
  while (!oAjax && i<types.length)
    {
    oAjax = new ActiveXObject(types[i]);
    i++;
    }

  if (!oAjax)
    return false;
    
  return true;
  }
  
//-------------------------------------------------------------------
// ajaxSendRequest()
//-------------------------------------------------------------------
function ajaxSendRequest(obj, url, data, method, mode, header)
  {
  if (!ajaxGetXMLHTTPObject() || !url)
    return null;

  if (!method) method = "post";
  if (!mode)   mode   = true;
  if (!header) header = "Content-Type:application/x-www-form-urlencoded; charset=UTF-8";

  oAjax.open(method, url, mode);   // Make sure this comes BEFORE onreadstatechange, or else it won't work in IE

  oAjax.onreadystatechange = function()
    {
    if (oAjax.readyState == 4 && oAjax.status == 200)
      {
			var response  = oAjax.responseXML.documentElement;
			obj.OnXML(response);
      }
    else
      {
      //alert("There was a problem retrieving the XML data:\n" + req.statusText);
      }
    }

  oAjax.setRequestHeader(header.split(':')[0], header.split(':')[1]);
  oAjax.send(data);
  }
