﻿function gethttp1(url, getcs) {
    url = javascript_jm(url);
    var re_value = "";
    url = url.substr(url.indexOf("?") + 1, url.length);
    var cs = url.split("&");
    var csm, csz;
    for (var i = 0; i < cs.length; i++) {
        csm = cs[i].substr(0, cs[i].indexOf("="));
        csz = cs[i].substr(cs[i].indexOf("=") + 1, cs[i].length);
        if (getcs.toLowerCase() != csm.toLowerCase()) continue;
        re_value = csz;
        break;

    }
    return re_value;
}
function setCookie(name, value, expires) {

    document.cookie = name + "=" + escape(value) + "; expires=" + expires.toGMTString()
}
function GetCookie(name) {
    var cookieArray = document.cookie.split(";");
    var cookieName;
    var cookieValue = "";
    for (var i = 0; i < cookieArray.length; i++) {
        if (cookieArray[i] == "") continue; //空的,无意义
        if (cookieArray[i].indexOf("=") == 0) continue; //无变量名,无意义
        if (cookieArray[i].indexOf("=") > 0) cookieName = trim(cookieArray[i].substr(0, cookieArray[i].indexOf("=")));
        else cookieName = trim(cookieArray[i]); //只存入了变量名,无值时
        if (cookieName != name) continue;
        if (cookieArray[i].indexOf("=") > 0) cookieValue = cookieArray[i].substr(cookieArray[i].indexOf("=") + 1, cookieArray[i].length - cookieArray[i].indexOf("=") - 1);
        else cookieValue = "";
        break;
    }
    cookieValue = unescape(trim(cookieValue));
    return cookieValue
}
function SendHttp1(sAspFile, sSend) {
    var datestart = new Date();

    if (navigator.onLine == false) {
        //return "你现在处于脱机状态,请联机后再试!";
        return "You are not inline";
    }
    var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    xmlhttp.Open("POST", sAspFile, false);
    var len = sSend.length;
    //jznAlert(len);
    xmlhttp.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
    xmlhttp.SetRequestHeader("Content-Type", "text/xml;charset=utf-8");
    xmlhttp.SetRequestHeader("Content-Length", len);
    
    try {

        xmlhttp.Send(sSend);
        //jznAlert(sSend);

    }
    catch (exception) {
        //jznAlert("服务器忙!");
        jznAlert("Server is busy!");
    }

    try {
        var str11 = xmlhttp.responseText //系统错误: -1072896748。
        var status = xmlhttp.status;

    }
    catch (exception) {
        if (exception.description == '系统错误: -1072896748。') {
            str11 = "";
        }

    }

    //xzj add
    //处理webservice抛出异常
    if (status != 200) {
        throw str11;
        //jznAlert(str11);
        return;
    }
    if (str11 == "") {
        return "";
    }
    var dateend = new Date();
    var time0 = dateend.getTime() - datestart.getTime();
    //jznAlert(time0);
    var xmlDoc1 = new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc1.async = "false";
    var returndoc;
    try {
        var bSuccess = xmlDoc1.loadXML(str11);
        if (bSuccess == false) {
            //jznAlert(str11);
            return str11;
        }

        switch (xmlDoc1.documentElement.nodeName) {
            case "NewDataSet":
                returndoc = xmlDoc1.documentElement;
                //return xmlDoc1.documentElement;
                break;
            case "DataSet":
                if (xmlDoc1.childNodes(1).childNodes(1).childNodes.length == 0) {
                    returndoc = xmlDoc1.childNodes(1).childNodes(1);
                    //	return xmlDoc1.childNodes(1).childNodes(1);			    				
                }
                else {
                    returndoc = xmlDoc1.childNodes(1).childNodes(1).childNodes(0);
                    //return xmlDoc1.childNodes(1).childNodes(1).childNodes(0);			    
                }
                break;
            default:
                returndoc = xmlDoc1.documentElement;
                //return xmlDoc1.documentElement;
                break;
        }
        return returndoc;
    }
    catch (exception) {
        var a = "Data is Error";
        jznAlert(a);
        return null;
    }
}
function javascript_bm(str) {
    //对客户端带tag符的内容进行编码处理,返回编码后的值
    var aa = encodeURIComponent(str)
    return aa;
}
function javascript_jm(str_c) {
    //对客户端编码后的字符串进行解码处理,返回解码后的字符串
    var aa = str_c;
    try {
        var aa = decodeURIComponent(str_c);
    } catch (e) { }
    return aa;
}
function GetServerPath(path, tagname) {
    if (tagname == null || tagname == "" || tagname.toUpperCase() == "PATH") {
        if (ts_pathlen == "") ts_pathlen = path;
    }
    try {
        var newpath = "XMLInit.xml";
        if (path != "" && path.substr(path.length - 1, 1) == "/") {
            newpath = path + newpath;
        }
        else if (path != "" && path.substr(path.length - 1, 1) != "/") {
            newpath = path + "/" + newpath;
        }
        var Doc0_ = new ActiveXObject("Microsoft.XMLDOM");
        Doc0_.async = "false";
        var ok = Doc0_.load(newpath);
        if (!ok) {
            ok = Doc0_.load("../" + newpath);
            if (!ok) {
                Doc0_.load(newpath.substr(3, newpath.length - 3));
            }
        }
        var docaa = Doc0_.documentElement;
        var jltagName = "PATH";
        if (tagname != undefined && tagname != null) jltagName = tagname.toUpperCase();
        var serverpath1 = "";
        if (docaa.childNodes.item(0).getElementsByTagName(jltagName).item(0) != null) serverpath1 = docaa.childNodes.item(0).getElementsByTagName(jltagName).item(0).text;
        return serverpath1;

    }
    catch (e) {
        //        var str1 = GetServerPath("../../../", tagname);
        return "";
    }
}
function trim(str) {
    if (typeof (str) != "string") return str;
    var xstr = str;
    var len = xstr.length;
    if (str == null || str == "") {
        xstr = "";
    }
    else {
        for (var i = 0; i < len; i++) {
            if (xstr.substr(0, 1) != " ") break;
            xstr = xstr.substr(1, xstr.length - 1);
        }
        for (var i = 0; i < len; i++) {
            if (xstr.substr(xstr.length - 1, 1) != " ") break;
            xstr = xstr.substr(0, xstr.length - 1);
        }
    }
    return xstr;
}
function jznAlert(str) {

    var Doc0_ = new ActiveXObject("Microsoft.XMLDOM");
    Doc0_.async = "false";
    Doc0_.load("XMLInit.xml");
    try {
        var docaa = Doc0_.documentElement;
        var node = docaa.selectNodes("//ROOT/WEBSERVICE/CHECKALERT");
        if (node.length != 0) {
            var v = node[0].text;
            if (v == "0")
                alert(str);
            else
                newAlert(str);
        }
        else {
            newAlert(str);
        }
    }
    catch (e) { newAlert(str); }

}
function logIn(serverpath) {
    var intime = getDateTime(); //长格式
    //var intime=getDateTime_short;//短日期格式
    try {
        var re = SendHttp1(serverpath + "/Jzn_System/Jzn_Log.asmx/LogIn", "sessionid=" + sessionid + "&logintime=" + intime)//吴鸽军
    }
    catch (e) { if (e.message == undefined) { jznAlert(e); return; } else { jznAlert(e.message); return; } }
    var logid = re.text;
    //var =reDoc.childNodes.item(1).text;
    return logid;
}
function getDateTime() {
    var jldate = new Date();
    var month = (parseInt(jldate.getMonth()) + 1);
    if (month.toString().length == 1) month = "0" + month.toString();
    var day = jldate.getDate();
    if (day.toString().length == 1) day = "0" + day.toString();
    var jlrq = jldate.getFullYear() + "-" + month + "-" + day;
    var jltime = jldate.getHours() + ":" + jldate.getMinutes() + ":" + jldate.getSeconds();
    var jld = jlrq + " " + jltime;
    return jld;
}
function newAlert(str) {
    try {
        var firsti = str.indexOf(':');
        var lasti = str.indexOf(" at ");
        var last1 = str.indexOf(" 在 ");
        if (firsti > 0 && lasti > 0 && firsti < lasti) {
            var alstr = str.substr(firsti + 1, lasti - firsti);
            alert(alstr);
        }
        else if (firsti > 0 && last1 > 0 && firsti < last1) {
            var alstr = str.substr(firsti + 1, last1 - firsti);
            alert(alstr);
        }
        else
            alert(str);
    }
    catch (e) {
        alert(str);
    }
}
function addfild(doc, zdm, zdlx, operate, zdz, caption, captionvalue, controlid, ismx) {
    if (doc == null || doc == undefined) {
        doc = new ActiveXObject("Microsoft.XMLDOM");
        doc.async = "false";
        doc.loadXML("<ROOT></ROOT>");
    }
    try {

        root = doc.selectNodes("ROOT")[0];
        nodefilt = doc.createNode(1, "FILT", "");
        nodezdm = doc.createElement("ZDM");
        nodezdm.text = zdm;
        nodezdlx = doc.createElement("ZDLX");
        nodezdlx.text = zdlx;
        nodeoperate = doc.createElement("OPERATE");
        cdataS = doc.createCDATASection(operate);
        nodeoperate.appendChild(cdataS);
        nodezdz = doc.createElement("ZDZ");
        nodezdz.text = zdz;
        nodecp = doc.createElement("CAPTION");
        nodecp.text = caption;
        nodecpvalue = doc.createElement("CAPTIONVALUE");
        nodecpvalue.text = captionvalue;

        nodefilt.appendChild(nodezdm);
        nodefilt.appendChild(nodezdlx);
        nodefilt.appendChild(nodeoperate);
        nodefilt.appendChild(nodezdz);
        nodefilt.appendChild(nodecp);
        nodefilt.appendChild(nodecpvalue);

        if (controlid) {
            nodeconid = doc.createElement("CONTROLID");
            nodeconid.text = controlid;
            nodefilt.appendChild(nodeconid);
        }
        if (ismx == 1) {
            nodemx = doc.createElement("ISMX");
            nodemx.text = ismx;
            nodefilt.appendChild(nodemx);
        }
        root.appendChild(nodefilt);
    }
    catch (e)
     { }
    return doc;
}
function GetField(xmlDoc, row, colname, new_zdlx) {
    var retvalue = "";
    if (xmlDoc == null || xmlDoc == undefined) return retvalue;
    colname = colname.toUpperCase();
    new_zdlx = parseInt(new_zdlx);

    //by xzj 增加处理用selectNodes方法返回的记录集
    if (xmlDoc.childNodes == undefined || xmlDoc.childNodes == null) {
        return getNodeValue(xmlDoc, row, colname, new_zdlx);
    }

    if (xmlDoc.childNodes.length == 0) {
        throw "Program is Error";
        //jznAlert("没有数据行");
        return;
    }

    if (xmlDoc.childNodes(row) == null) {
        //alter("程序出错，行号超出范围");
        //throw "程序出错，行号超出范围";
        throw "Program is Error";
        //return null;
    }
    if (xmlDoc.childNodes(row).getElementsByTagName(colname)(0) == null || colname == "") {
        if (new_zdlx == null) {
            //throw "程序出错";
            throw "Program is Error";
            //return null;
        }
        switch (new_zdlx) {
            case 0:   //日期型
            case 5: //日期(带时间)
                retvalue = "";
                break;
            case 1:  //字符型
                retvalue = "";
                break;
            case 2:  //数值型
                retvalue = 0;
                break;
            case 3: //逻辑型
                retvalue = 0;
                break;
            case 4: //逻辑转换成字符串形
                retvalue = "";
                break;
            case 6:
                //retvalue="状态未知";
                retvalue = "State is Unknown";
                break;
            default:
                retvalue = null;
                break;
        }
        return retvalue;


    }
    else {
        retvalue = xmlDoc.childNodes(row).getElementsByTagName(colname)(0).text;
        switch (new_zdlx) {
            case 0:   //日期型
                retvalue = retvalue.substr(0, 10);
                break;
            case 5: //日期(带时间)
                retvalue = retvalue.substr(0, 10) + " " + retvalue.substr(11, 8);
                break;
            case 1:  //字符型
                if (retvalue == null) {
                    retvalue = "";
                }
                break;
            case 2:  //数值型
                if (retvalue == null) {
                    retvalue = 0;
                }
                break;
            case 3: //逻辑型
                if (retvalue == "1") {
                    retvalue = 1;
                }
                else {
                    retvalue = 0;
                }
                break;
            case 4: //逻辑型转换成字符型
                if (retvalue == "1") {
                    retvalue = "√";
                }
                else if (retvalue.toLowerCase() == "null") {
                    retvalue = "";
                }
                else {
                    retvalue = "";
                }
                break;
            case 6: //特定的离线状态;
                switch (parseInt(retvalue)) {
                    case 1:
                        retvalue = "Inline";
                        //retvalue="在线";
                        break;
                    case 2:
                        retvalue = "Natural Exit";
                        //retvalue="正常退出";
                        break;
                    case 3:
                        retvalue = "Unnatural Exit";
                        //retvalue="非正常退出";
                        break;
                    default:
                        retvalue = "State id Unknown";
                        //retvalue="状态未知";
                }
                break;
            case 7:
                if (parseInt(retvalue) == 1) retvalue = "记名";
                else retvalue = "匿名";
                break;
            case 8:
                if (parseInt(retvalue) == 1) retvalue = "进行中";
                else retvalue = "已结束";
                break;
            case 9:
                if (retvalue != "完成") retvalue = "未完成";

                break;
            default:
                jznAlert("Field Type is Error");
                //jznAlert("字段类型不对");
                break;
        }

    }
    return retvalue;

}
function getNodeValue(xmlDoc, row, colname, new_zdlx) {
    var retvalue = "";
    colname = colname.toUpperCase();
    new_zdlx = parseInt(new_zdlx);


    if (xmlDoc.length == 0) {
        //throw "程序出错，记录数为零";
        throw "Program is Error";
        //return;
    }

    if (xmlDoc[row] == null) {
        //alter("程序出错，行号超出范围");
        //throw "程序出错，行号超出范围";
        throw "Program is Error";
        //return null;
    }
    if (xmlDoc[row].getElementsByTagName(colname)(0) == null || colname == "") {
        if (new_zdlx == null) {
            //throw "程序出错";
            throw "Program is Error";
            //return null;
        }
        switch (new_zdlx) {
            case 0:   //日期型
            case 5: //日期(带时间)
                retvalue = "";
                break;
            case 1:  //字符型
                retvalue = "";
                break;
            case 2:  //数值型
                retvalue = 0;
                break;
            case 3: //逻辑型
                retvalue = 0;
                break;
            case 4: //逻辑转换成字符串形
                retvalue = "";
                break;
            case 6:
                //retvalue="状态未知";
                retvalue = "State is Unknown";
                break;
            default:
                retvalue = null;
                break;
        }
        return retvalue;


    }
    else {
        retvalue = xmlDoc[row].getElementsByTagName(colname)(0).text;
        switch (new_zdlx) {
            case 0:   //日期型
                retvalue = retvalue.substr(0, 10);
                break;
            case 5: //日期(带时间)
                retvalue = retvalue.substr(0, 10) + " " + retvalue.substr(11, 8);
                break;
            case 1:  //字符型
                if (retvalue == null) {
                    retvalue = "";
                }
                break;
            case 2:  //数值型
                if (retvalue == null) {
                    retvalue = 0;
                }
                break;
            case 3: //逻辑型
                if (retvalue == "1") {
                    retvalue = 1;
                }
                else {
                    retvalue = 0;
                }
                break;
            case 4: //逻辑型转换成字符型
                if (retvalue == "1") {
                    retvalue = "√";
                }
                else if (retvalue.toLowerCase() == "null") {
                    retvalue = "";
                }
                else {
                    retvalue = "";
                }
                break;
            case 6: //特定的离线状态;
                switch (parseInt(retvalue)) {
                    case 1:
                        retvalue = "Inline";
                        //retvalue="在线";
                        break;
                    case 2:
                        retvalue = "Natural Exit";
                        //retvalue="正常退出";
                        break;
                    case 3:
                        retvalue = "Unnatural Exit";
                        //retvalue="非正常退出";
                        break;
                    default:
                        retvalue = "State id Unknown";
                        //retvalue="状态未知";
                }
                break;
            case 7:
                if (parseInt(retvalue) == 1) retvalue = "记名";
                else retvalue = "匿名";
                break;
            case 8:
                if (parseInt(retvalue) == 1) retvalue = "进行中";
                else retvalue = "已结束";
                break;
            case 8:
                if (retvalue != "完成") retvalue = "未完成";

                break;
            default:
                jznAlert("Field Type is Error");
                //jznAlert("字段类型不对");
                break;
        }

    }
    return retvalue;

}