var ajaxUtil=new RBTAjax();
function RBTAjax(){
this.isAsynch=true;
this.timeout=5000;
this.responseBody=null;
this.responseStream=null;
this.responseText=null;
this.responseXML=null;
this.isExec=false;
this.onError=function(){};
this.onSuccess=function(){};
this.onRequesting=function(){};
this.onStatusHandle=function(status){
document.write(this.responseText);
};
this.isRequest=true;
var self=this;
var heads={};
var msxmlhttp=["Microsoft.XMLHTTP",
"Msxml2.XMLHTTP.5.0",
"Msxml2.XMLHTTP.4.0",
"Msxml2.XMLHTTP.3.0",
"Msxml2.XMLHTTP",
"Msxml4.XMLHTTP",
"Msxml3.XMLHTTP"];
var xmlHttpRequest=null
var timeID=0;
var dyncVariable=null;
var strVariable="dyncVariable=";
createXMLHttpRequest();
function createXMLHttpRequest(){
for(i=0;i<msxmlhttp.length;i++){
try{
if(xmlHttpRequest=new ActiveXObject(msxmlhttp[i]))break;
}catch(e){
xmlHttpRequest=null;
}
}
if(!xmlHttpRequest&&typeof XMLHttpRequest!="undefined"){
xmlHttpRequest=new XMLHttpRequest();
}
}
this.doGet=function(url){
if(!this.isRequest){
this.onRequesting();
return;
}
xmlHttpRequest.open("GET",url,this.isAsynch);
xmlHttpRequest.onreadystatechange=process;
if(typeof xmlHttpRequest.setRequestHeader!="undefined"){
for(key in heads){
xmlHttpRequest.setRequestHeader(key,heads[key]);
}
}
if(this.isAsynch){
timeID=setTimeout(timeOut,this.timeout);
this.isRequest=false;
}
xmlHttpRequest.send(null);
}
this.doPost=function(url,queryString){
if(!this.isRequest){
this.onRequesting();
return;
}
xmlHttpRequest.open("POST",url,this.isAsynch);
xmlHttpRequest.onreadystatechange=process;
var content="application/x-www-form-urlencoded;";
if(typeof xmlHttpRequest.setRequestHeader!="undefined"){
for(key in heads){
xmlHttpRequest.setRequestHeader(key,heads[key]);
}
xmlHttpRequest.setRequestHeader("Content-Type",content);
}
if(this.isAsynch){
timeID=setTimeout(timeOut,this.timeout);
this.isRequest=false;
}
xmlHttpRequest.send(queryString);
};
this.setRequestHeader=function(key,value)
{
heads[key]=value;
};
this.getResponseHeader=function(key)
{
return xmlHttpRequest.getResponseHeader(key);
};
this.getAllResponseHeaders=function()
{
return xmlHttpRequest.getAllResponseHeaders();
};
this.setStringVariable=function(variable)
{
strVariable=variable+"=";
};
this.getDyncVariable=function(){
return dyncVariable;
};
this.setDyncVariable=function(v){
dyncVariable=v;
};
function process(){
if(xmlHttpRequest.readyState==4){
if(self.isAsynch)self.isRequest=true;
clearTimeout(timeID);
self.responseBody=xmlHttpRequest.responseBody;
self.responseStream=xmlHttpRequest.responseStream;
self.responseText=xmlHttpRequest.responseText;
self.responseXML=xmlHttpRequest.responseXML;
if(xmlHttpRequest.status==200){
if(self.isExec){
try{
eval(strVariable+self.responseText);
}catch(e){}
}
self.onSuccess();
}else{
self.onStatusHandle(xmlHttpRequest.status);
}
ajaxClose();
}
}
function ajaxClose(){
self.onSuccess=function(){};
self.dyncVariable=null;
}
function timeOut(){
if(!(xmlHttpRequest.readyState==4&&xmlHttpRequest.status==200))
{
xmlHttpRequest.abort();
self.isRequest=true;
self.onError();
}
}
this.toString=function(){
return"isAsynch: "+this.isAsynch+"  timeout: "+this.timeout+"  responseBody: "+
this.responseBody+"  responseStream: "+this.responseStream+"  responseText: "+
this.responseText+"  responseXML: "+this.responseXML+"  isExec: "+
this.isExec+"  requestStatus: "+this.requestStatus;
}
}
