﻿//创建CallBack对象
function CallBackObject()
{
	this.XmlHttp = this.GetHttpObject();
}
//创建XMLHttpRequest对象
CallBackObject.prototype.GetHttpObject = function()
{
	var xmlhttp;
	
	/*@cc_on
	@if (@_jscript_version>=5)
		try
		{
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e)
		{
			try
			{
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(E)
				{
					xmlhttp = false;
				}
		}
	@else
	xmlhttp = false;
	@end @*/
		    if(!xmlhttp && typeof(XMLHttpRequest) !='undefined'){
		        try{
			        xmlhttp = new XMLHttpRequest();
		        }
		        catch(e){
			        xmlhttp = false;
		        }
	}
    return xmlhttp;
}
//回调函数
CallBackObject.prototype.DoCallBack = function(Url){
	if(this.XmlHttp){
		if(this.XmlHttp.readyState==4 || this.XmlHttp.readyState==0){
			var oThis = this;
			this.XmlHttp.open('GET',Url,true);
			this.XmlHttp.onreadystatechange = function()
			{
			    oThis.ReadyStateChange();
			}
			this.XmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			this.XmlHttp.send(null);
		}
	}
}

//终止调用
CallBackObject.prototype.AbortCallBack = function(){
	if(this.XmlHttp){
		this.XmlHttp.abort();
	}
}
CallBackObject.prototype.OnLoading = function(){
	//Loading
}
CallBackObject.prototype.OnLoaded = function(){
	//Loaded
}
CallBackObject.prototype.OnInteractive = function(){
	//Interactive
}
CallBackObject.prototype.OnComplete = function(responseText,responseXml){
	//Complete
}
CallBackObject.prototype.OnAbort = function(){
	//Abort
}
CallBackObject.prototype.OnError = function(status,statusText){
	//Error
}
//ready
CallBackObject.prototype.ReadyStateChange = function(){
	if(this.XmlHttp.readyState == 1){
		this.OnLoading();
	}
	else if(this.XmlHttp.readyState == 2){
		this.OnLoaded();
	}
	else if(this.XmlHttp.readyState == 3){
		this.OnInteractive();
	}
	else if(this.XmlHttp.readyState == 4){
		if(this.XmlHttp.status == 0){
			this.OnAbort();
		}
		else if(this.XmlHttp.status == 200 && this.XmlHttp.statusText=="OK"){
			this.OnComplete(this.XmlHttp.responseText,this.XmlHttp.responseXML);
		}
		else
			this.OnError(this.XmlHttp.status,this.XmlHttp.statusText,this.XmlHttp.responseText);
	}
}