function ajaxEngine(){
	this.name='ajaxEngine';
	this.processRequest=function(req,fnc){
		with(req){ 
      if(readyState == 4){ 
        if(status == 200){ 
          if(fnc){ 
            fnc(responseText); 
          } 
        } 
      } 
    }
	};
}

ajaxEngine.prototype.makeRequest=function(mth,url,dat,fnc,asc){
	var req=false;
	var self=this;
  if(asc === undefined){ asc = true; }
  
	if(window.XMLHttpRequest){
		req = new XMLHttpRequest();
		if(req.overrideMimeType)
			req.overrideMimeType('text/xml');
	}else if(window.ActiveXObject){
		try{
			req = new ActiveXObject('Msxml2.XMLHTTP');
		}catch (e) {
			try{
				req = new ActiveXObject('Microsoft.XMLHTTP');
			}catch (e) {}
		}
	}

	if(!req){
		alert('Cannot create an XMLHTTP Instance');
		return false;
	}

	with(req){
		onreadystatechange=function(){
      // [ajaxEngine.js][processRequest] 3 
      self.processRequest(req,fnc);
    };
		open(mth,url,asc);
		if(mth == "POST" || mth == "post"){
		  setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		  setRequestHeader('Content-length',dat.length);
		  setRequestHeader('Connection','close');
		}
		send(dat);
	}
}
