﻿function AJAX()
{
    this._objPool = new Array();
    this.sendSOAPXML = '<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><GetTFData xmlns="http://tempuri.org/">';  
    
    this._getInstance = function()
    {
        for (var i = 0; i < this._objPool.length; i ++)
        {
            if (this._objPool[i].readyState == 0 || this._objPool[i].readyState == 4)
            {
                return this._objPool[i];
            }
        }

        this._objPool[this._objPool.length] = this._createObj();

        return this._objPool[this._objPool.length - 1];
    }
    
    this._createObj = function ()
    {
        if (window.XMLHttpRequest)
        {
            var objXMLHttp = new XMLHttpRequest();
        }
        else
        {
            var MSXML = ['MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];
            for(var n = 0; n < MSXML.length; n ++)
            {
                try
                {
                    var objXMLHttp = new ActiveXObject(MSXML[n]);
                    break;
                }
                catch(e)
                {
                }
            }
        }         
        
        if (objXMLHttp.readyState == null)
        {
            objXMLHttp.readyState = 0;

            objXMLHttp.addEventListener("load", function ()
                {
                    objXMLHttp.readyState = 4;

                    if (typeof objXMLHttp.onreadystatechange == "function")
                    {
                        objXMLHttp.onreadystatechange();
                    }
                },  false);
        }
        return objXMLHttp;
    }
    
    this.sendReq = function (tmpurl,callback,data1,data2,data3)
    {
        var objXMLHttp = this._getInstance();
        try
        {
            var data = this.sendSOAPXML;
            tmpurl = url+"Service.asmx";
            objXMLHttp.open("POST",tmpurl, false);
            if(data1 == null)
                data += "<type></type>";
            else
                data += "<type>"+data1+"</type>";
            if(data2 == null)
                data += "<para1></para1>";
            else
                data += "<para1>"+data2+"</para1>";
            if(data3 == null)
                data += "<para2></para2>";
            else
                data += "<para2>"+data3+"</para2>";
            
            data += '</GetTFData></soap:Body></soap:Envelope>';
            objXMLHttp.setRequestHeader("content-type","text/xml;charset=utf-8");   
            objXMLHttp.setRequestHeader("soapaction","http://tempuri.org/GetTFData"); 
            
            objXMLHttp.send(data);
            
            if (objXMLHttp.readyState == 4 && (objXMLHttp.status == 200 || objXMLHttp.status == 304))
            {
                if(objXMLHttp.responseText.indexOf("error:") == -1)
                {
                    callback(objXMLHttp.responseXML.childNodes[1].childNodes[0].childNodes[0].childNodes[0].text);
                }
                else
                {
                    alert("读取数据失败!!!WEB服务读取数据库时出现问题!!!");
                }

            }
        }
        catch(e)
        {
            alert(e.message);
        }
    }
}

function createXMLDOM() 
{
    var arrSignatures = ["MSXML2.DOMDocument.5.0", "MSXML2.DOMDocument.4.0",
    "MSXML2.DOMDocument.3.0", "MSXML2.DOMDocument",
    "Microsoft.XmlDom"];

    for (var i=0; i < arrSignatures.length; i++) 
    {
        try 
        {
            var oXmlDom = new ActiveXObject(arrSignatures[i]);
            return oXmlDom;
        } 
        catch (oError){}
    }
    throw new Error("你的系统没有安装MSXML");
}
var xmlhttpreq = new AJAX();