﻿// JScript 文件

var Ajax =  function()
{
    
}
Ajax.prototype = 
{
    Url : null,
    Method : "GET",
    XmlHttp : null, //xmlhttprequest object
    OnComplete : null,//function(responseText or responseXML)
    OnLoad : null,//function
    OnError : null,//function
    Async : true,
    QueryString : "",
    RequestHeadKey : "x-stoneajax",
    RequestHeadValue : "nothing",
    ReturnType : "text",
    
    DoRequest : function()
    {
        if(this.XmlHttp == null)
        {
            this.XmlHttp = Function.CreateXMLHttpRequest();
        }
        else
        {
            if(this.XmlHttp.readyState != 4 && this.XmlHttp.readyState != 0)
			{
				alert("abort");
				this.XmlHttp.abort();
			}
        }
        
        var url = "";
        var parameter = "";
        if(this.Method == "GET")
        {
            url = this.Url + (this.Url.indexOf("?")>0 ? ("&" + this.QueryString) : ("?" + this.QueryString));
//            alert(url);
        }
        else
        {
            url = this.Url;
            parameter = this.QueryString;
//            alert(url);
        }
        this.XmlHttp.open(this.Method, url, this.Async);
		
        this.XmlHttp.onreadystatechange = Function.CreateDelegate(this,this.OnReadyStateChange);
		
        this.XmlHttp.setRequestHeader(this.RequestHeadKey, this.RequestHeadValue);
        this.XmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;"); 
        this.XmlHttp.setRequestHeader("If-Modified-Since","0"); 
        this.XmlHttp.send(parameter);

		if(this.OnLoad)
        {
            this.OnLoad(this);
        }
        
    },
    OnReadyStateChange : function()
    {
        if (this.XmlHttp.readyState == 4)
        {
            if (this.XmlHttp.status == 200)
            {
                if(this.ReturnType=="text")
                {
                    this.OnComplete(this.XmlHttp.responseText);
                }
                else
                {
                    this.OnComplete(this.XmlHttp.responseXML);
                }
            }
            else
            {
                this.OnError(this);
            }
        }
    }
    
}

