<!--
/*
'' ============================================================================================
'' 项目名称：风越项目范例ASPX普通三层结构
'' 项目版本：V1.0
'' 项目描述：风越项目范例，用于建立ASPX普通三层结构
'' 文件名称：js/js_web.js
'' 文件描述：[JavaScript] Ajax处理函数库
'' 公司名称：中极网盛
'' 开发人员：刘怒
'' 创建日期：2008-12-25 20:23:50
'' 修订日期：2009-03-10 06:05:09
'' 版权信息：Copyright (C) 2008

'' 项目升级时需读取以下生成工具的版权信息
'' 生成工具：风越代码生成器 [FireCode Creator]
'' 当前版本：通用版 V1.8
'' 官方网站：http://www.sino8848.com
'' ============================================================================================
*/

//生成XMLHttpRequest对象
function Ajax_CreateXMLHttpRequest()
{
    var xmlHttpRequest = null;
    if(window.XMLHttpRequest)
    {
        //IE7 Mozilla Firefox 等浏览器，内置XMLHttpRequest对象
        xmlHttpRequest = new XMLHttpRequest();
    }
    else if(window.ActiveXObject)
    {
        //IE6 IE5
        try
        {
            xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
            if (xmlHttpRequest.overrideMimeType)
            {
                //设置MiME类别 
                xmlHttpRequest.overrideMimeType('text/xml');
            }            
        }
        catch(e)
        {
            try
            {
                xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch(e)
            {}
        }
    }
    return xmlHttpRequest;
}

//strUrl：需获取数据的路径
//strMsg：获取数据时，弹出进度窗口的提示文字
//strMethod：POST/GET
//strJsFunction：获取数据后，执行的函数名，并传入获取的数据
//strParam：POST方式传送数据时的参数内容
function Ajax_GetXMLHttpRequestTxt(strUrl, strMsg, strMethod, strJsFunction, strParam)
{
    var strData = "";
    var xmlHttpReq = Ajax_CreateXMLHttpRequest();
    if(xmlHttpReq == null)
    {
        alert("当前浏览器不支持XMLHTTP对象");
    }
    else
    {
        strMethod = strMethod.toUpperCase();

        xmlHttpReq.onreadystatechange = ExecRequestData;
        //true为异步执行，false为同步执行，如需为strData赋值，则应使用同步处理
        xmlHttpReq.open(strMethod, strUrl, true);
        xmlHttpReq.setRequestHeader("If-Modified-Since", "0");

        if (strMethod == "GET")
        {
            //Get方法：
            //在URL的参数中指定要发送的参数字符串（url?参数的大小限制为2048B），send的参数指定为null或空值""，
            //如指定了非空值，则即使open中参数为GET，也将自动使用POST方式发送数据
            xmlHttpReq.send(null);
        }
        else if(strMethod == "POST")
        {
            //Post方法：
            //传送文本数据，strParam参数格式为：a=value1&b=value2
            xmlHttpReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            //传送二进制数据
            //xmlHttpReq.setRequestHeader("Content-type", "multipart/form-data");

            //在.send(string)中指定要发送的参数字符串、或二进制数据
            xmlHttpReq.send(strParam);
        }

        function ExecRequestData()
        {
            Ajax_ShowSysMsg(strMsg, true);
            //readyState：准备状态，4：Loaded
            if (xmlHttpReq.readyState == 4)
            {
                //status：服务器返回的 HTTP 状态代码，200：OK，404：文件未找到
                //当 readyState 小于 3 的时候读取这一属性会导致一个异常。
                if (xmlHttpReq.status == 200)
                {
                    //alert(xmlHttpReq.getAllResponseHeaders());
                    //如需赋值，则设置为同步处理 false
                    strData = xmlHttpReq.responseText;
                    //strData = xmlHttpReq.responseBody
                    //strData = xmlHttpReq.responseXML.getElementsByTagName('name')[0].firstChild.data;

                    //通过调用函数方式，返回获取的值
                    if (strJsFunction != null && strJsFunction.length > 0)
                    {
                        strData = strData.replace(/\\/gi, "\\\\");
                        strData = strData.replace(/"/gi, "\\\"");
                        //strData = strData.replace(/'/gi, "\\'");
                        strData = strData.replace(/\r/gi, "\\r");
                        strData = strData.replace(/\n/gi, "\\n");
                        strData = strData.replace(/\t/gi, "\\t");

                        var strCode = strJsFunction + "(\"" + strData + "\");";
                        eval(strCode);
                    }

                    Ajax_ShowSysMsg("", false);
                    xmlHttpReq = null;
                    return strData;
                }
            }
        }
    }
    return strData;
}

//以get方式，读取指定路径返回的数据
//strUrl：获取数据访问路径
//strMsg：获取数据时的显示信息
//strJsFunction：获取数据后执行的函数，同时将获取的数据传入此函数
function Ajax_ReturnGetDataTxt(strUrl, strMsg, strJsFunction)
{
    return Ajax_GetXMLHttpRequestTxt(strUrl, strMsg, "GET", strJsFunction, null);
}

//以post方式，读取指定路径返回的数据
function Ajax_ReturnPostDataTxt(strUrl, strParam, strMsg, strJsFunction)
{
    return Ajax_GetXMLHttpRequestTxt(strUrl, strMsg, "POST", strJsFunction, strParam);
}

//显示提示框，并指定文本信息
function Ajax_ShowSysMsg(strMsg, bShow)
{
    if(bShow)
    {
        if (document.getElementById("Ajax_MsgBoxBackGround") != null)
        {
            //因生成背景时未读取全部body信息，在此获取body的真实高度
            document.getElementById("Ajax_MsgBoxBackGround").style.width = document.documentElement.clientWidth;
            document.getElementById("Ajax_MsgBoxBackGround").style.height = document.documentElement.clientHeight;
            
            document.getElementById("Ajax_MsgBox").style.left = (document.documentElement.clientWidth - document.getElementById("Ajax_MsgBox").clientWidth) / 2;
            document.getElementById("Ajax_MsgBox").style.top = document.documentElement.scrollTop + (window.screen.availHeight - window.screenTop - document.getElementById("Ajax_MsgBox").clientHeight) / 2;

            document.getElementById("Ajax_MsgBox").style.display = "";
            document.getElementById("Ajax_MsgBoxBackGround").style.display = "";
            if (strMsg != null)
                document.getElementById("Ajax_MsgInfo").innerHTML = strMsg;
        }
    }
    else
    {
        document.getElementById("Ajax_MsgBox").style.display = "none";
        document.getElementById("Ajax_MsgBoxBackGround").style.display = "none";
        document.getElementById("Ajax_MsgInfo").innerHTML = "";
    }
}

Ajax_CreateMsgBox();
//生成执行代码时显示的提示框
function Ajax_CreateMsgBox()
{
    var iWidth = document.documentElement.clientWidth;
    var iHeight = document.documentElement.clientHeight;
    var strMsgBox = "";
    strMsgBox += "<div id=\"Ajax_MsgBoxBackGround\" style=\"filter: alpha(opacity=10);position:absolute;width:" + iWidth + "px;height:" + iHeight + "px;left:0px;top:0px;background-color:#555555;z-index:99999;display:none;\">";
    strMsgBox += "</div>";

    strMsgBox += "  <div id=\"Ajax_MsgBox\" style=\"filter: alpha(opacity=100);position:absolute;width:260px;left:" + (iWidth - 260) / 2 + "px;top:280px;background-color:#FEFEFE;z-index:100000;display:none;\">";
    strMsgBox += "    <table style=\"border-width:5px; border-style:solid; border-color:#BBBBBB;\" width=\"260px\" cellspacing=\"2\" cellpadding=\"4\">";
    strMsgBox += "        <tr>";
    strMsgBox += "            <td style=\"width:100%;\" >";
    strMsgBox += "                <table border=\"0\" width=\"100%\" cellspacing=\"0\" cellpadding=\"8\">";
    strMsgBox += "                    <tr>";
    strMsgBox += "                        <td style=\"width:100%;\" align=\"center\">";
    strMsgBox += "                            <span id=\"Ajax_MsgInfo\" style=\"font-size:12px; color:#000000\"><\/span>";
    strMsgBox += "                        <\/td>";
    strMsgBox += "                    <\/tr>";
    strMsgBox += "                    <tr>";
    strMsgBox += "                        <td style=\"width:100%;height:25px;vertical-align:bottom;\" align=\"center\">";
    strMsgBox += "                            <img alt=\"\" src=\"images\/loading.gif\" \/><\/td>";
    strMsgBox += "                    <\/tr>";
    strMsgBox += "                <\/table>";
    strMsgBox += "             <\/td>";
    strMsgBox += "        <\/tr>";
    strMsgBox += "    <\/table>";
    strMsgBox += "  </div>";

    document.write(strMsgBox);
}
-->