var Ajax = {
  url:false,
  action:false,
	currentRequest:false,
  results:null,
  post_string:'',
  keys:new Array(),
  vals:new Array(),
  getXMLHTTP:function() {
    var transport = false;
    try{
      transport = new ActiveXObject('Msxml2.XMLHTTP');
    }
    catch(er){
      transport = false;
    }
    if(!transport) {
      try{
        transport = new ActiveXObject('Microsoft.XMLHTTP');
      }
      catch(er){
        transport = false;
      }
    }
    if(!transport) {
      try{
        transport = new XMLHttpRequest();
      }
      catch(er){
        transport = false;
      }
    }
    this.currentRequest = transport;
    return transport;
  },
  sendRequest:function(fnDone) {
		var action = this.action;
		var complete = false;
		var url = this.url;	
		var kl = this.keys.length;
		var vl = this.vals.length;
		if(kl == 0) return false;
		if(kl != vl) return false;
		for(var i = 0;i < kl;i++) {
			this.post_string += Ajax.keys[i] + '=' + Ajax.vals[i];
			if(i != kl-1) this.post_string += '&';
		}
		var params = this.post_string;
		var xml_http = Ajax.getXMLHTTP();
    if(xml_http) {
      try{
        xml_http.open(action, url, true);				
        xml_http.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
        xml_http.onreadystatechange = function() {
				  if(xml_http.readyState == 4 && !complete) {
						complete = true;
   					fnDone(xml_http);
					}
				};
				xml_http.send(params);
      }
      catch(e) {return false;}
			return true;
    }
  }
};


