﻿//相当于C#的request.querystring
function GetQueryValue(panStr, nullEmpty) {
    var svalue = location.search.match(new RegExp("[\?\&]" + panStr + "=([^\&]*)(\&?)", "i"));
    var oval = svalue ? svalue[1] : svalue;

    if (oval == null && nullEmpty)
        return '';
    else
        return oval;
}

/*根据Url获取其Title即淘宝宝贝名*/
function taobaoPageTitle(url) {
    var xmlHttp = window.Event ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP")
    xmlHttp.open("GET", url, true)
    if (window.Event)
        xmlHttp.overrideMimeType("text/xml;charset=utf-8")
    xmlHttp.onreadystatechange = function() {
        if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
            var v
            v = window.Event ? xh.responseText : window.gb2utf8(xmlHttp.responseBody)
            var is = v.indexOf('<title>');
            var ie = v.indexOf('</title>');
            var stitle = v.substring(is + 7 + 16, ie);
            return stitle;
        }
    }
    window.gb2utf8 = function(data) {
        var glbEncode = [], t, i, j, len
        gb2utf8_data = data
        execScript("gb2utf8_data = MidB(gb2utf8_data, 1)+' '", "vbscript")
        t = escape(gb2utf8_data).replace(/%u/g, "").replace(/(.{2})(.{2})/g, "%$2%$1").replace(/%([A-Z].)%(.{2})/g, "@$1$2")
        t = t.split("@")
        i = 0
        len = t.length
        while (++i < len) {
            j = t[i].substring(0, 4)
            if (!glbEncode[j]) {
                gb2utf8_char = eval("0x" + j)
                execScript("gb2utf8_char=Chr(gb2utf8_char)", "vbscript")
                glbEncode[j] = escape(gb2utf8_char).substring(1, 6)
            }
            t[i] = glbEncode[j] + t[i].substring(4)
        }
        gb2utf8_data = gb2utf8_char = null
        return unescape(t.join("%")).slice(0, -1)
    }
    xmlHttp.send(null)
}

//给指定ID的组件赋值(value)
function setVal(objID, objVal) {
    document.getElementById(objID).value = objVal;
}

//给指定ID的组件赋值(innerHTML)
function setHTML(objID, objVal) {
    document.getElementById(objID).innerHTML = objVal;
}

//给指定ID的checkbox赋值
function setCheck(objID, objVal) {
    if (objVal != null && String(objVal).toLowerCase() == 'true')
        document.getElementById('chk_shrq').checked = 'on';
    else
        document.getElementById('chk_shrq').checked = '';
}

//获取指定ID的组件值(value)
function getVal(objID) {
    return document.getElementById(objID).value;
}

//获取指定ID的组件值(innerHTML)
function getHTML(objID) {
    return document.getElementById(objID).innerHTML;
}

//获取指定ID的checkbox值
function getCheck(objID) {
    return document.getElementById(objID).checked;
}

//获取指定ID的select的值
function getSelectVal(objID) {
    var _select = document.getElementById(objID);
    return _select.options[_select.selectedIndex].value;
}

//获取cookies的值
function getCookie(name) {
    var cookieValue = "";
    var search = name + "=";
    if (document.cookie.length > 0) {
        offset = document.cookie.indexOf(search);
        if (offset != -1) {
            offset += search.length;
            end = document.cookie.indexOf(";", offset);
            if (end == -1)
                end = document.cookie.length;
            cookieValue = unescape(document.cookie.substring(offset, end))
        }
    }
    return cookieValue;
}

//写cookies
function writeCookie(name, value, hours) {
    var expire = "";
    if (hours != null) {
        expire = new Date((new Date()).getTime() + hours * 3600000);
        expire = "; expires=" + expire.toGMTString();
    }
    document.cookie = name + "=" + escape(value) + expire;
}

function newLink(url) {
    document.location = url;
}

//返回一组单选radio被选中的ID
function radioChecked(radioName) {
    var rval = null;
    var radios = document.getElementsByName(radioName);
    for (var i = 0; i < radios.length; i++) {
        if (radios[i].checked) {
            rval = radios[i].id;
            break;
        }
    }
    return rval;
}

//根据value找select组件的index
function selIndexofVal(select, value) {
    var _sel;
    _sel = document.getElementById(select);
    for (var i = 0; i < _sel.options.length; i++) {
        if (_sel.options[i].value == value) {
            return i;
        }
    }
}

//通用的ajax回调函数
function com_submit_CallBack(response) {
    if (response.value != null)
        alert(response.value);
    else alert('服务器无响应或您的输入错误！');
}

function checkNull(obj, inf) {
    if (document.getElementById(obj).value == '' || document.getElementById(obj).value == null) {
        alert(inf + '不能为空，请输入！');
        return true;
    }
    else
        return false;
}

//是否整数
function isInteger(strInteger) {
    var newPar = /^(-|\+)?\d+$/;
    return newPar.test(strInteger);
}

//检查是否为正数，包含0
function isUnsignedNumeric(strNumber) {
    var newPar = /^\d+(\.\d+)?$/;
    return newPar.test(strNumber);
}

//是否有效的Email地址
function isValidEMail(strEMail) {
    var newPar = /(\S)+[@]{1}(\S)+[.]{1}(\w)+/;
    return newPar.test(strEMail);
}

function ExistsWithAttr(erObj, attr, val) {
    var bVal = false;
    erObj.each(function(i) {
        if ($(this).attr(attr) == val) {
            bVal = true;
            return false; //跳出each循环
        }
    })
    return bVal;
}

function ExistInvalidChar(naStrs, Strs) {
    var bVal = false;
    $.each(naStrs, function(a, b) {
        if (Strs.indexOf(b) >= 0) {
            bVal = true;
            return false; //只是跳出each，并非返回值
        }
    });
    return bVal;
}

//使用jquery做ajax请求
function JQuery_Ajax(url, data, evnts, dataType) {
    if (data == null)
        data = {};
    else {
        var bError = false;

        for (var iVal in data) {
            if (typeof (data[iVal]) == 'string') {
                if (ExistInvalidChar(['\''], data[iVal])) {
                    bError = true;
                    return false; //只是跳出each，并非返回值
                }
            }
        }
        if (bError) {
            alert('出现了非法字符！');
            return;
        }
    }

    var bEvnt = false;
    if (evnts != null)
        bEvnt = true;

    var evnt_beforeSend = null;
    var evnt_success = null;
    var evnt_error = null;
    var evnt_complete = null;
    if (bEvnt) {
        if (evnts.beforeSend != null && $.isFunction(evnts.beforeSend))
            evnt_beforeSend = evnts.beforeSend;
        if (evnts.success != null && $.isFunction(evnts.success))
            evnt_success = evnts.success;
        if (evnts.error != null && $.isFunction(evnts.error))
            evnt_error = evnts.error;
        if (evnts.complete != null && $.isFunction(evnts.complete))
            evnt_complete = evnts.complete;
    }

    if (evnt_success == null)
        evnt_success = com_submit_CallBack;
    if (evnt_error == null) {
        evnt_error = function(xml, status) {
            if (status == 'error') {
                try {
                    var json = eval('(' + xml.responseText + ')');
                    alert(json.Message + '\n' + json.StackTrace);
                } catch (e) { alert(e.message) }
            } else {
                alert(status);
            }
        }
    }

    if (dataType == undefined)
        dataType = 'json';

    var ajax_data = JSON.stringify(data);
    $.ajax({
        type: 'POST',
        contentType: 'application/json',
        dataType: dataType,
        url: url,
        data: ajax_data,
        beforeSend: evnt_beforeSend,
        success: evnt_success,
        error: evnt_error,
        complete: evnt_complete
    });
}

function JQuery_Dialog(_div, _width, _open, _buttons) {
    var objDialog = $('#' + _div);
    objDialog.dialog({
        bgiframe: true,
        modal: true,
        width: _width,
        autoOpen: true,
        open: _open,
        buttons: _buttons,
        close: function() { $(this).dialog('destroy') }
    });
}

function LoadingHtml(LoadingID) {
    $('#' + LoadingID).html('<div style="margin:20px 0px 0px 50px; font-size:1.6em"><img src="../images/extanim32.gif" alt="loading..." />正在载入，请稍候……</div>');
}

//table中tr的ID值，这里不要trim，因为有些值本身就是有空格的，trim掉后反而不对
function trID(tr) {
    var sID = $(tr).attr("id");
    var iIndex = sID.indexOf("_");
    sID = sID.slice(iIndex + 1);
    return sID;
}

//整个table中选中的行的ID值，返回Array
function SelectedIDs(tabID, checkboxName) {
    var selIDs = new Array();
    var sID = '';
    $('#' + tabID + ' input[name=' + checkboxName + ']:checked').each(function() {
        sID = trID($(this).parents("tr"));
        selIDs.push(sID);
    });
    return selIDs;
}

function batchDelete(tabID, wsDIR, tabIndex, button, id) {
    var selIDs = new Array();

    if (id != "") {
        selIDs.push(id);
    }
    else {
        var sID = "";
        $("#" + tabID + " input[name=checkTR]:checked").each(function() {
            sID = $(this).parents("tr").attr("id");
            sID = sID.slice(3);
            selIDs.push(sID);
        });
    }

    if (selIDs.length <= 0) {
        return false;
    }

    if (!confirm("确实要删除吗？"))
        return false;

    var oBtn = $("#" + button);

    JQuery_Ajax(wsDIR + "wss/prjWS.asmx/batchDelete", { ids: selIDs, tabIndex: tabIndex },
        { beforeSend: function() { oBtn.attr("disabled", "disabled"); },
            success: function(result) {
                if (result == "ok") {
                    window.location = window.location;
                }
                else alert(result);
            },
            complete: function() { oBtn.attr("disabled", ""); }
        });
}
