
function CallBackObject()
{	
    this.XmlHttp = this.GetHttpObject();
}

CallBackObject.prototype.GetHttpObject = function()
{	
    var xmlhttp;
    /*@cc_on
    @if (@_jscript_version >= 5)
    {
        try
        {
            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");            
        }
        catch (e1)
        {
            try
            {
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e2)
            {
                xmlhttp = false;
            }
        }
    }
    @else
    xmlhttp = false;   
    @end @*/
           
    if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
    {
        try
        {
            xmlhttp = new XMLHttpRequest();
        }
        catch (e)
        {
            xmlhttp = false;
        }
    }
    return xmlhttp;   
}

CallBackObject.prototype.DoCallBack0 = function(URL)
{   
    if (this.XmlHttp)
    {
        if (this.XmlHttp.readyState == 4 || this.XmlHttp.readyState == 0)
        {
            var oThis = this;
            this.XmlHttp.open('GET',URL);
            this.XmlHttp.onreadystatechange = function()
                {
                    oThis.ReadyStateChange();
                }
            //this.XmlHttp.setRequestHeader('Content-Type','application/x-www-form-this.XmlHttp.send(null);            
            this.XmlHttp.send(null);
        }
    }
}
CallBackObject.prototype.DoCallBack1 = function(eventTarget,eventArgument)
{
    var theData = '';
    var theForm = document.forms[0];
    var thePage = window.location.pathname + window.location.search;
    var eName = '';
    
    theData = '__EVENTTARGET=' + escape(eventTarget.split("$").join(":")) + '&';
    theData += '__EVENTARGUMENT=' + eventArgument + '&';
    theData += '__VIEWSTATE=' + escape(theForm.__VIEWSTATE.value).replace(new RegExp('\\+','g'),'%2b') + '&';
    theData += 'IsCallBack=true&';
    for (var i = 0; i < theForm.elements.length; i++)
    {
        eName = theForm.elements[i].name;
        if (eName && eName != '')
        {
            if (eName == '__EVENTTARGET' || eName == '__EVENTARGUMENT' || eName == '__VIEWSTATE')
            {
                //do nothing
            }
            else
            {
                theData = theData + escape(eName.split("$").join(":")) + '=' + theForm.elements[i].value;
                if (i != theForm.elements.length - 1)
                    theData += '&';
            }
        }
        if (this.XmlHttp)
        {
            if (this.XmlHttp.readyState == 4 || this.XmlHttp.readyState == 0)
            {
                var oThis = this;
                this.XmlHttp.open('post',thePage,true);
                this.XmlHttp.onreadystatechange = function()
                    {
                        oThis.ReadyStateChange();
                    }
                this.XmlHttp.setRequestHeader('Content-Type','applicatoin/x-www-form-urlencoded');
                this.XmlHttp.send(theData);
            }   
        }
    }
}

CallBackObject.prototype.AbortCallBack = function()
{
    if (this.XmlHttp)
        this.XmlHttp.abort();
}

CallBackObject.prototype.ReadyStateChange = function()
{
    if (this.XmlHttp.readyState == 1)
    {
        //this.OnLoading();
    }
    else if (this.XmlHttp.readhState == 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);
        }
    }
}

CallBackObject.prototype.OnLoanding = function()
{}

CallBackObject.prototype.OnLoanded = function()
{}

CallBackObject.prototype.OnInteractive = function()
{}

CallBackObject.prototype.OnComplete = function(responseText,responseXml)
{}

CallBackObject.prototype.OnAbort = function()
{	
}

CallBackObject.prototype.OnError = function(status,statusText)
{}



