/***************************************************************************
Copyright (c) 2005 2005 西安交通大学通用软件公司
创建人: 
日  期: 
修改人:	
日  期: 
描  述: 页面数据验证类工具集
版  本: 1.0
***************************************************************************/

var ObjToolKit = new Object()

var ErrorColor = "#ffff00"; //错误颜色(黄)
var CurrColor = "#ffffff"; //正常颜色(白)

//创建XMLHttpRequest对象
ObjToolKit.newXMLHttpRequest = function() {
    var XmlRequest = false;

    if (!XmlRequest) {
        if (window.XMLHttpRequest) {
            XmlRequest = new XMLHttpRequest();
        }
        else if (window.ActiveXObject) {
            try {
                XmlRequest = new ActiveXObject("Msxml2.XMLHTTP");
            }
            catch (e1) {
                try {
                    XmlRequest = new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch (e2) {
                    alert("创建XMLHttpRequest对象失败！" + e2);
                }
            }
        }
    }
    //
    return XmlRequest;
}
//异步校验ekey
ObjToolKit.DoVidateEkey = function(rybh) {
    var ekeysn = ObjToolKit.ReadKeySN();

    if (ekeysn == null || ekeysn == "") {
        alert("Ekey信息获取失败，请与技术人员联系！")
        return false;
    }
    if (ObjToolKit.Trim(rybh) == "NoVidate") {
        //初次签订合同时校验
        return true;
    }
    var ReturnValue = "";
    var vUrl = ObjToolKit.GetAbsoluteUrl("public/ValidateEkey.aspx");
    //********************************************			
    try {
        //sXMSBBH
        vXmlHTTP = new ActiveXObject("Microsoft.XMLHTTP");
        vXmlHTTP.open("POST", vUrl, false);
        vXmlHTTP.setrequestheader("content-type", "application/x-www-form-urlencoded");
        vXmlHTTP.send("RYBH=" + rybh + "&EKEYSN=" + encodeURI(ekeysn));

        ReturnValue = vXmlHTTP.responseText;
        //alert(ReturnValue);
        if (ReturnValue == "2") //返回假是不当前登陆人
        {
            alert("该合同签订人与当前登录用户不匹配！");
            return false;
        }
        else if (ReturnValue == "3") //无效的sn
        {
            alert("您使用的Ekey已被禁用！");
            return false;
        }
    } catch (e) {
        alert("Ekey信息获取失败，请与技术人员联系！")
        return false;
    }
    //return false;
    return true;
}
//读取ekey
ObjToolKit.ReadKeySN = function() {
    try {
        var vCDogX = document.getElementById('oCDogX');
        return vCDogX.GetKeySN();
    }
    catch (ex) {
        return "";
    }
}
ObjToolKit.DoPopRegNumberWindow = function(vHTDJH) {
    var vUrlPath;
    var vObj;
    var vHTDJH;
    vUrlPath = "../rpt/RegisterNumberPrint.htm";

    if (vHTDJH != null && vHTDJH != "") {
        vObj = new Object();
        vObj.HTDJH = vHTDJH

        ObjToolKit.PopDialog(vUrlPath, vObj, "160pt", "120pt");
    }
}


ObjToolKit.DoPrintRegisterNumber = function() {
    var vHTDJH;

    vHTDJH = window.dialogArguments.HTDJH;
    try {
        document.getElementById("factory").printing.header = "&b" + vHTDJH;
        document.getElementById("factory").printing.footer = "";
        document.getElementById("factory").printing.portrait = true;
        document.getElementById("factory").printing.Print(true);

        window.close();
    }
    catch (e) { }
}
//获取文本对象中值的Float版本 转换错误返回 0
//Edit by hua 2008-03-12
ObjToolKit.ConvertToFloat = function(vobj) {
    try {
        return parseFloat(vobj);
    } catch (e) {
        return 0;
    }
}

//获取文本对象中值的Int版本 转换错误返回 0
//Edit by hua 2008-03-12
ObjToolKit.ConvertToInt = function(vobj) {
    try {
        return parseInt(vobj);
    } catch (e) {
        return 0;
    }
}

//ObjToolKit.IsPassword = function (_value)
ObjToolKit.CheckEmpty = function(vobj, vCaption) {
    try {
        if (ObjToolKit.IsEmpty(vobj.value)) {
            ObjToolKit.CheckErrorColor(vobj);
            vobj.focus();
            alert(vCaption + "必须输入!");

            return false;
        }
        return true;
    } catch (e) {
        return false;
    }
}

ObjToolKit.CheckEmpty2 = function(vobj, vCaption) {
    try {
        if (ObjToolKit.IsEmpty(vobj.value)) {
            ObjToolKit.CheckErrorColor(vobj);
            vobj.focus();
            alert(vCaption);

            return false;
        }
        return true;
    } catch (e) {
        return false;
    }
}

ObjToolKit.CheckEmptyTX = function(vobj, vobzk, vCaption) {

    try {
        if (vobzk.value != '1') {
            if (ObjToolKit.IsEmpty(vobj.value)) {
                alert(vCaption + "必须输入!");
                vobj.focus();
                return false;
            }
        }

        return true;
    } catch (e) {
        return false;
    }
}
ObjToolKit.CheckDate = function(vobj, vCaption, vCanbeblank) {
    var vDate;
    var vValid;

    vobj.value = ObjToolKit.Trim(vobj.value);
    vDate = vobj.value;

    var reg = /^(\d{4})(-)(\d{2})\2(\d{2})$/;
    var r = vDate.match(reg);

    vValid = false;

    if (vDate == "" && vCanbeblank) {
        vValid = true;
    } else if (r == null) {
        vValid = false;
    } else {

        var d = new Date(r[1], r[3] - 1, r[4]);
        var newStr = d.getFullYear() + r[2] + (d.getMonth() + 1) + r[2] + d.getDate();

        vDate = r[1] + r[2] + ((r[3] - 1) + 1) + r[2] + ((r[4] - 1) + 1);

        vValid = (newStr == vDate);
    }

    if (!vValid) {
        ObjToolKit.CheckErrorColor(vobj);
        vobj.focus();
        alert(vCaption + "必须按yyyy-mm-dd的格式输入合法的日期!" + "例如：2001-12-01。");

    }

    return vValid
}
//SOEI 2007-11-16 add by zhangdong
isdate = function(AValue) {
    var reg = /^(\d{4})(-)(\d{2})(-)(\d{2})$/;
    var r = AValue.match(reg);
    if (r == null) {
        return false;
    }
    else {
        var d = new Date(r[1], r[3] - 1, r[5]);
        return (parseInt(r[1]) == d.getFullYear() && parseInt(r[3]) == d.getMonth() + 1
			&& parseInt(r[5]) == d.getDate());
    }
}

ObjToolKit.CheckDate_NY = function(vobj, vCaption, vCanbeblank) {
    vobj.value = ObjToolKit.Trim(vobj.value);
    if (isdate(vobj.value + "-01") || (vobj.value == "" && vCanbeblank)) {
        return true;
    } else {
        alert(vCaption + "必须按yyyy-mm的格式输入合法的日期!" + "例如：2001-12。");
        vobj.focus();
        return false;
    }
}

ObjToolKit.IsNumeric = function(vObj) {
    if (vObj.value.length <= 0) return true;
    if (vObj.value == 0) return true;
    f = vObj.value.replace(/[$,]/, "");

    v = parseFloat(vObj.value);

    if (isNaN(v) || v != vObj.value || v == 0 || f.match(/\s/)) {
        return false;
    }
    else return true;
}

ObjToolKit.CheckNumber = function(vObj, vCaption, vMinnum, vMaxnum) {
    vObj.value = ObjToolKit.Trim(vObj.value);
    if (!ObjToolKit.IsNumeric(vObj)) {
        vObj.focus();
        alert(vCaption + "必须输入合法的数值!");
        return false;
    } else if (parseInt(vObj.value) < parseInt(vMinnum) || parseInt(vObj.value) > parseInt(vMaxnum)) {
        vObj.focus();
        alert(vCaption + "必须输入" + vMinnum + "到" + vMaxnum + "之间的数值");
        return false;
    }
    //vObj.value = parseInt(vObj.value);
    return true;
}

//edit by hua 2008-03-21
ObjToolKit.CheckNumberFloat = function(vObj, vCaption, vMinnum, vMaxnum) {
    vObj.value = ObjToolKit.Trim(vObj.value);
    if (!ObjToolKit.IsNumeric(vObj)) {
        vObj.focus();
        alert(vCaption + "必须输入合法的数值!");
        return false;
    } else if (parseFloat(vObj.value) < parseFloat(vMinnum) || parseFloat(vObj.value) > parseFloat(vMaxnum)) {
        vObj.focus();
        alert(vCaption + "必须输入" + vMinnum + "到" + vMaxnum + "之间的数值");
        return false;
    }
    //vObj.value = parseInt(vObj.value);
    return true;
}


ObjToolKit.CheckInteger = function(vObj) {
    vObj.value = ObjToolKit.Trim(vObj.value);

    if (!/^(-|\+)?\d+$/.test(vObj.value)) {
        return false;
    }

    return true;
}

ObjToolKit.CheckPositiveInteger = function(vObj, vCaption, vMinnum, vMaxnum) {
    vObj.value = ObjToolKit.Trim(vObj.value);

    if (!/(^\d+$)|(^\+?\d+$)/.test(vObj.value)) {
        alert(vCaption + "必须输入大于零的整数数值!");
        vObj.focus();
        return false;
    } else if (parseInt(vObj.value) < parseInt(vMinnum) || parseInt(vObj.value) > parseInt(vMaxnum)) {
        alert(vCaption + "必须输入" + vMinnum + "到" + vMaxnum + "之间的数值");
        vObj.focus();
        return false;
    }

    return true;
}

ObjToolKit.CheckPositiveInteger1 = function(vObj, vCaption, vMinnum, vMaxnum) {
    vObj.value = ObjToolKit.Trim(vObj.value);

    if (!/(^\d+$)|(^\+?\d+$)/.test(vObj.value)) {
        alert(vCaption);
        vObj.focus();
        return false;
    } else if (parseInt(vObj.value) < parseInt(vMinnum) || parseInt(vObj.value) > parseInt(vMaxnum)) {
        alert(vCaption);
        vObj.focus();
        return false;
    }

    return true;
}

ObjToolKit.CheckLength = function(vobj, vCaption, vLength) {
    var i, ll, ch;

    ll = 0;
    vobj.value = ObjToolKit.Trim(vobj.value);

    for (i = 0; i < vobj.value.length; i++) {
        if (vobj.value.charCodeAt(i) < 255 && vobj.value.charCodeAt(i) > 0) {
            ll = ll + 1;
        } else {
            ll = ll + 2
        }
    }

    if (ll > vLength) {
        alert(vCaption + "只能输入" + vLength + "个字符!");
        vobj.focus();
        return false;
    }

    return true;
}

ObjToolKit.RestrictLength = function(vobj, vCaption, vLength) {
    var i, ll, ch;

    ll = 0;
    vobj.value = ObjToolKit.Trim(vobj.value);

    for (i = 0; i < vobj.value.length; i++) {
        if (vobj.value.charCodeAt(i) < 255 && vobj.value.charCodeAt(i) > 0) {
            ll = ll + 1;
        } else {
            ll = ll + 2
        }
    }

    if (ll != vLength) {
        alert(vCaption + "应该输入" + vLength + "个字符!");
        vobj.focus();
        return false;
    }
    return true;
}



ObjToolKit.IsEmpty = function(vValue) {
    var whitespace = " \t\n\r";
    var i;

    if ((vValue == null) || (vValue.length == 0)) {
        return true;
    }

    for (i = 0; i < vValue.length; i++) {
        var c = vValue.charAt(i);
        if (whitespace.indexOf(c) == -1) {
            return false;
        }
    }
    return true;
}

ObjToolKit.Trim = function(vValue) {
    var str = "";
    var sChar;

    if (vValue == null) {
        return null;
    } else {
        for (var i = 0; i < vValue.length; i++) {
            sChar = vValue.substring(i, i + 1)
            if (sChar != " ") {
                str += sChar;
            }
        }
    }
    return str;
}

ObjToolKit.OpenWindow = function(vUrlPath, vName, vWidth, vHeight, vTop, vLeft) {
    var objWin;
    var vParams;

    if (vWidth == "") vWidth = "790";
    if (vHeight == "") vHeight = "480";

    if (vTop == "") {
        var vParams = new Array();
        vParams = vHeight.split("pt");
        vTop = window.screen.availHeight / 2 - vParams[0] / 2;
    }
    if (vLeft == "") {
        var vParams = new Array();
        vParams = vWidth.split("pt");
        vLeft = window.screen.availWidth / 2 - vParams[0] / 2;
    }

    vParams = "fullscreen=0,toolbar=0,location=0,directories=0,status=0,menubar=0,";
    vParams += "scrollbars=1,resizable=1,width=" + vWidth + ",height=" + vHeight;
    vParams += ",top=" + vTop + ",left=" + vLeft;

    objWin = window.open(vUrlPath, vName, vParams, '');

    objWin.focus();

    return objWin;
}

ObjToolKit.PopDialog = function(vUrlPath, vObj, vWidth, vHeight) {


    var vReturnValue;
    var vParams;

    if (vWidth == "") vWidth = "280";
    if (vHeight == "") vHeight = "180";


    vParams = "scrollbar:no;status:no;resizable:no;unadorne:yes;";

    vParams += "dialogHeight:" + vHeight + ";dialogWidth:" + vWidth;

    vReturnValue = showModalDialog(vUrlPath, vObj, vParams);

    return vReturnValue;

}

ObjToolKit.PopModelLessDialog = function(vUrlPath, vObj, vWidth, vHeight) {


    var vReturnValue;
    var vParams;

    if (vWidth == "") vWidth = "280";
    if (vHeight == "") vHeight = "180";


    vParams = "scrollbar:no;status:no;resizable:yes;unadorne:yes;";

    vParams += "dialogHeight:" + vHeight + ";dialogWidth:" + vWidth;

    vReturnValue = showModelessDialog(vUrlPath, vObj, vParams);

    return vReturnValue;
}

//得到当前日期字符串
ObjToolKit.GetCurrentDate = function() {
    var vReturnValue;

    var today;
    var s_day;

    today = new Date();

    if (today.getDay() == 0) s_day = "星期日";
    if (today.getDay() == 1) s_day = "星期一";
    if (today.getDay() == 2) s_day = "星期二";
    if (today.getDay() == 3) s_day = "星期三";
    if (today.getDay() == 4) s_day = "星期四";
    if (today.getDay() == 5) s_day = "星期五";
    if (today.getDay() == 6) s_day = "星期六";

    vReturnValue = (today.getYear()) + "年" + (today.getMonth() + 1) + "月" + today.getDate() + "日 " + s_day;

    return vReturnValue;
}

//获取页面的绝对路径
//参数：vPath，相对于WEB应用程序的相对路径，如“public/Login.aspx”
//返回：页面的绝对路径，如“/public/login.aspx”
ObjToolKit.GetAbsoluteUrl = function(vPath) {
    var vUrl;
    var vPathName;

    vPathName = window.location.pathname;

    if (vPathName.indexOf("/") > 0) {
        vPathName = "/".concat(vPathName);
    }

    if (vPathName.split("/").length > 2) {
        vUrl = "/".concat(vPathName.split("/")[1]).concat("/").concat(vPath);
    } else {
        vUrl = "/".concat(vPath);
    }

    return vUrl;
}

//展开或收缩树型节点
ObjToolKit.DoClickImageNode = function(vImageElement) {
    var vElement;
    //soft99
    var objGl2000 = document.getElementById("uclEmployeeOnceSubsidyControl_txt_GL2000");

    vElement = vImageElement.parentNode;

    if (vElement.nodeName == "TD") {
        if (vElement.nextSibling != null && vElement.nextSibling.firstChild != null) {
            vElement = vElement.nextSibling.firstChild;
        } else {
            vElement = vElement.parentNode.nextSibling;
        }
    }

    if (vElement != null) { // && vElement.nodeName == "TR"
        if (vElement.style.display != "none") {
            vElement.style.display = "none";

            vImageElement.alt = "展开";
            vImageElement.src = ObjToolKit.GetAbsoluteUrl("/images/node_close.gif");
        } else {
            vElement.style.display = "block";

            vImageElement.alt = "收缩";
            vImageElement.src = ObjToolKit.GetAbsoluteUrl("/images/node_open.gif");
        }
    }

}
//验证年月
ObjToolKit.CheckDateNY = function(vobj, vCaption, vCanbeblank) {
    var vDate;
    var vValid;

    vobj.value = ObjToolKit.Trim(vobj.value);
    vDate = vobj.value;

    var reg = /^(\d{4})(-)(\d{2})$/;
    var r = vDate.match(reg);

    vValid = false;

    if (vDate == "" && vCanbeblank) {
        vValid = true;
    } else if (r == null) {
        vValid = false;
    } else {
        var d = new Date(r[1], r[3] - 1); //,r[4]);
        var newStr = d.getFullYear() + r[2] + (d.getMonth() + 1);

        vDate = r[1] + r[2] + ((r[3] - 1) + 1); //+r[2]+((r[4]-1)+1);

        vValid = (newStr == vDate);
    }
    //alert(vDate+"**"+vValid+"**"+newStr);
    if (!vValid) {
        vobj.focus();
        alert(vCaption + "必须按yyyy-mm的格式输入合法的日期!" + "例如：2001-12。");

    }

    return vValid
}

//数字小写转汉字大写
ObjToolKit.NumberToChineseB = function(num) {

    if (!/^\d*(\.\d*)?$/.test(num)) {

        return "";
    }

    if (num == 0) {

        return "零";
    }

    var AA = new Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖");
    var BB = new Array("", "拾", "佰", "仟", "萬", "億", "点", "");

    var a = ("" + num).replace(/(^0*)/g, "").split(".");
    var k = 0;
    var re = "";

    for (var i = a[0].length - 1; i >= 0; i--) {

        switch (k) {
            case 0: re = BB[7] + re;
                break;
            case 4: if (!new RegExp("0{4}\\d{" + (a[0].length - i - 1) + "}$").test(a[0]))
                    re = BB[4] + re;
                break;
            case 8: re = BB[5] + re; BB[7] = BB[5]; k = 0;
                break;
        }
        if (k % 4 == 2 && a[0].charAt(i + 2) != 0 && a[0].charAt(i + 1) == 0) {

            re = AA[0] + re;
        }
        if (a[0].charAt(i) != 0) {

            re = AA[a[0].charAt(i)] + BB[k % 4] + re;
            k++;
        }
    }

    if (a.length > 1)   //加上小数部分(如果有小数部分)
    {
        if (num < 1) {

            re += AA[0] + BB[6];

        } else {

            re += BB[6];
        }
        for (var i = 0; i < a[1].length; i++) re += AA[a[1].charAt(i)];
    }

    return re;
}

//小写金额转大写金额
ObjToolKit.NumberToChinese = function(p_money) {
    if (ObjToolKit.Trim(p_money) == "" || isNaN(Math.floor(p_money)))
        return "";

    var aUpperNumber = new Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖");
    var aUnit1 = new Array("拾", "佰", "仟");
    var aUnit2 = new Array("元", "万", "亿", "兆");
    var aUnit3 = new Array("角", "分");

    var r = "";
    var sMoney = Math.abs(p_money).toString();
    var sIntPart = "";
    var sOddment = "";

    if (Math.abs(p_money) < 0.000001) {

        r = "零角";
        if (p_money < 0) {

            r = "负" + r;
        }
        return r;
    }

    var iPos = sMoney.indexOf(".");
    if (iPos >= 0 && sMoney.substr(iPos + 1, sMoney.length - iPos - 1) != "") {
        sIntPart = sMoney.substr(0, iPos);
        sOddment = sMoney.substr(iPos + 1, sMoney.length - iPos - 1);
        if (sOddment.length > 2) {
            sOddment = sOddment.substr(0, 2);
        }
        if (sOddment.length > 1 && sOddment.substr(1, 1) != "0") {
            r = r + aUpperNumber[sOddment.substr(1, 1)] + aUnit3[1];
            if (sOddment.substr(0, 1) != "0")
                r = aUpperNumber[sOddment.substr(0, 1)] + aUnit3[0] + r;
            else
                r = "零" + r;
        }
        else {
            r = aUpperNumber[sOddment.substr(0, 1)] + aUnit3[0] + r;
        }
    }
    else {

        if (iPos >= 0)
            sIntPart = sMoney.substr(0, iPos);
        else
            sIntPart = sMoney;
        r = "整";
    }

    for (var i = 0; i < sIntPart.length; i++) {
        var iUnit1;
        switch ((i + 1) % 4) {
            case 0:
                iUnit1 = 2;
                break;
            case 2:
                iUnit1 = 0;
                break;
            case 3:
                iUnit1 = 1;
                break;
            default:
                iUnit1 = -1;
                break;
        }
        var iUnit2;
        switch ((i + 1) % 4) {
            case 1:
                switch (Math.floor((i + 1) / 4)) {
                    case 0:
                        iUnit2 = 0;
                        break;
                    case 1:
                        iUnit2 = 1;
                        break;
                    case 2:
                        iUnit2 = 2;
                        break;
                    default:
                        iUnit2 = 3;
                        break;
                }
                break;
            default:
                iUnit2 = -1;
                break;
        }

        var iNum = sIntPart.substr(sIntPart.length - i - 1, 1);
        if (iNum != 0) {
            if (iUnit1 != -1) {
                if (iUnit2 != -1) {
                    if (r.substr(0, 1) == aUnit1[0] || r.substr(0, 1) == aUnit1[1]
						|| r.substr(0, 1) == aUnit1[2] || r.substr(0, 1) == aUnit2[1]
						|| r.substr(0, 1) == aUnit2[2] || r.substr(0, 1) == aUnit2[3])
                        r = r.substr(1, r.length - 1);
                    r = aUpperNumber[iNum] + aUnit1[iUnit1] + aUnit2[iUnit2] + r;
                }
                else
                    r = aUpperNumber[iNum] + aUnit1[iUnit1] + r;
            }
            else
                if (iUnit2 != -1) {
                if (r.substr(0, 1) == aUnit1[0] || r.substr(0, 1) == aUnit1[1]
					|| r.substr(0, 1) == aUnit1[2] || r.substr(0, 1) == aUnit2[1]
					|| r.substr(0, 1) == aUnit2[2] || r.substr(0, 1) == aUnit2[3])
                    r = r.substr(1, r.length - 1);
                r = aUpperNumber[iNum] + aUnit2[iUnit2] + r;
            }
        }
        else {
            if (iUnit2 >= 0 && iUnit2 <= 3 && sIntPart.length > 1) {

                if (r.substr(0, 1) == aUnit1[0] || r.substr(0, 1) == aUnit1[1]
					|| r.substr(0, 1) == aUnit1[2] || r.substr(0, 1) == aUnit2[1]
					|| r.substr(0, 1) == aUnit2[2] || r.substr(0, 1) == aUnit2[3])
                    r = r.substr(1, r.length - 1);
                r = aUnit2[iUnit2] + r;
            }
            else if (i != sIntPart.length - 1 && r.substr(0, 1) != aUpperNumber[iNum]
				&& r.substr(0, 1) != aUnit2[0] && r.substr(0, 1) != aUnit2[1]
				&& r.substr(0, 1) != aUnit2[2] && r.substr(0, 1) != aUnit2[3]) {
                r = aUpperNumber[iNum] + r;
            }
            else {
                if (r == "整")
                    r = aUpperNumber[iNum] + aUnit2[0] + r;
            }
        }
    }
    if (p_money < 0)
        r = "负" + r;
    return r;
}
/***************************************************************
Input对象输入限制 Begin Edit by hua
2008-04-11 更新
****************************************************************/
ObjToolKit.CheckOnlyNum = function(obj, value) {

    var arrList = new Array(); //此处添加可输入的按键编码初始化数组
    var point = 46; //小数点编码
    var Enter = 13; //回车键编码
    //获取当前选中的字符串
    var SelectionString = document.selection.createRange().duplicate().text; //选择文本域
    var afterpoint = value; //小数点后的位数
    var IsArgee = false; //是否输入
    var CurrKeyCode = event.keyCode;

    //判断当前输入是否为数字
    if (event.keyCode >= 48 && event.keyCode <= 57) {
        //满足输入数字条件处理
        IsArgee = true;
    } else {	//非数字条件处理
        switch (CurrKeyCode) {
            case point: //输入的是小数点
                if (obj.value.indexOf('.') == -1 && (afterpoint != 0)) {
                    if (obj.value.length == 0) {
                        obj.value = 0;
                        IsArgee = true;
                    } else {
                        IsArgee = true;
                    }
                } else {
                    IsArgee = false;
                }
                break;
            case Enter: //回车
                break;
            default: 	//默认
                for (i in arrList) {
                    if (CurrKeyCode == arrList[i]) {
                        //此处可添加非数字但允许输入代码
                        IsArgee = true;
                        break;
                    } else {
                        IsArgee = false;
                    }
                }
                break;
        }
    }
    //控制输入位数
    if (IsArgee) {
        //存在小数点并且保留小数位数不是0
        if ((obj.value.indexOf('.') != -1) && (afterpoint != 0)) {
            //判断光标在小数点前还是后
            if (obj.value.indexOf('.') < ObjToolKit.getCursorPos(obj)) {
                if ((obj.value.length - 1) - obj.value.indexOf('.') == afterpoint) {
                    //如果当前文本框存在被选中的字符
                    if (SelectionString.length > 0) {
                        IsArgee = true;
                    } else {
                        IsArgee = false;
                    }
                }
            } else {
                if (obj.maxLength < obj.value.length) {
                    IsArgee = true;
                }
            }
        } else {
            //不存在小数位
            if ((obj.maxLength - obj.value.length) <= (afterpoint + 1) && afterpoint != 0) {
                //最后一位可补小数点
                if (CurrKeyCode == point) {
                    IsArgee = true;
                } else {
                    //如果当前文本框存在被选中的字符
                    if (SelectionString.length > 0) {
                        IsArgee = true;
                    } else {
                        IsArgee = false;
                    }
                }
            }
        }
    }
    if (IsArgee)//判断输入是否满足条件
    {
        window.event.returnValue = 1;
        return;
    } else {

        window.event.returnValue = 0;
        return;
    }
}

//Edit By hua 2008-01-31
//验证文本对象只能输入数字
//参数obj文本对象
//value 保留小数位数
//方法放入CertifGrid的OnKeyDownEvent事件
ObjToolKit.MoonListInputCheck = function(obj, value) {

    var point = new Array(110, 190); //小数点
    var Arrow = new Array(37, 38, 39, 40);
    var backspace = 8; 			//退格键
    var SelectionString = document.selection.createRange().duplicate().text;
    var afterpoint = value; 			//保留小数位数
    var IsArgee = false; //是否输入
    var CurrKeyCode = event.keyCode;
    var arrList = new Array(33, 34, 35, 36, 46); //此处添加可输入的按键编码初始化数组
    var Enter = 13; //回车键编码
    //alert(CurrKeyCode);return;
    //判断当前输入是否为数字
    if ((CurrKeyCode >= 48 && CurrKeyCode <= 57) || (CurrKeyCode >= 96 && CurrKeyCode <= 105)) {
        //满足输入数字条件处理
        if (event.shiftKey) {
            IsArgee = false;
        }
        else {
            IsArgee = true;
        }
    } else {	//非数字条件处理
        switch (CurrKeyCode) {
            case point[0]: //输入的是小数点
            case point[1]:
                if (obj.value.indexOf('.') == -1 && (afterpoint != 0)) {
                    if (obj.value.length == 0) {
                        obj.value = 0;
                        IsArgee = true;
                    } else {
                        IsArgee = true;
                    }
                } else {
                    IsArgee = false;
                }
                break;
            case backspace: //退格
            case Arrow[0]:
            case Arrow[1]:
            case Arrow[2]:
            case Arrow[3]:
            case Enter:
                window.event.returnValue = 1;
                return;
            default: 	//默认
                for (i in arrList) {
                    //alert("开始执行默认");
                    if (CurrKeyCode == arrList[i]) {
                        //此处可添加非数字但允许输入代码
                        window.event.returnValue = 1;
                        return;
                    } else {
                        IsArgee = false;
                    }
                }
                break;
        }
    }
    //控制输入位数
    if (IsArgee) {
        //存在小数点并且保留小数位数不是0
        if ((obj.value.indexOf('.') != -1) && (afterpoint != 0)) {
            //判断光标在小数点前还是后
            if (obj.value.indexOf('.') < ObjToolKit.getCursorPos(obj)) {
                if ((obj.value.length - 1) - obj.value.indexOf('.') == afterpoint) {
                    //如果当前文本框存在被选中的字符
                    if (SelectionString.length > 0) {
                        IsArgee = true;
                    } else {
                        IsArgee = false;
                    }
                }
            } else {
                if (obj.maxLength < obj.value.length) {
                    IsArgee = true;
                }
            }
        } else {
            //不存在小数位
            if ((obj.maxLength - obj.value.length) <= (afterpoint + 1) && afterpoint != 0) {
                //最后一位可补小数点
                if (CurrKeyCode == point[0] || CurrKeyCode == point[1]) {
                    IsArgee = true;
                } else {
                    //如果当前文本框存在被选中的字符
                    if (SelectionString.length > 0) {
                        IsArgee = true;
                    } else {
                        IsArgee = false;
                    }
                }
            }
        }
    }
    if (IsArgee)//判断输入是否满足条件
    {
        window.event.returnValue = 1;
        return;
    } else {
        window.event.returnValue = 0;
        return;
    }
}

//获取当前光标在文本中的位置
ObjToolKit.getCursorPos = function(obj) {
    var rngSel = document.selection.createRange(); //建立选择域
    var rngTxt = obj.createTextRange(); //建立文本域
    var flag = rngSel.getBookmark(); //用选择域建立书签
    rngTxt.collapse(); //瓦解文本域到开始位,以便使标志位移动
    rngTxt.moveToBookmark(flag); //使文本域移动到书签位
    rngTxt.moveStart('character', -obj.value.length); //获得文本域左侧文本
    str = rngTxt.text.replace(/\r\n/g, ''); //替换回车换行符
    return (str.length); //返回文本域文本长度
}
ObjToolKit.CheckOnlyMoney = function(obj, value) {
    var arrList = new Array(); //此处添加可输入的按键编码初始化数组
    var point = 46; //小数点编码
    var subtr = 45; //"-"编码
    var Enter = 13; //回车键编码
    //获取当前选中的字符串
    var SelectionString = document.selection.createRange().duplicate().text; //选择文本域
    var afterpoint = value; //小数点后的位数
    var IsArgee = false; //是否输入
    var CurrKeyCode = event.keyCode;

    //判断当前输入是否为数字
    if (event.keyCode >= 48 && event.keyCode <= 57) {
        //满足输入数字条件处理
        IsArgee = true;
    } else {	//非数字条件处理
        switch (CurrKeyCode) {
            case point: //输入的是小数点
                if (obj.value.indexOf('.') == -1 && (afterpoint != 0)) {
                    if (obj.value.length == 0) {
                        obj.value = 0;
                        IsArgee = true;
                    } else {
                        IsArgee = true;
                    }
                } else {
                    IsArgee = false;
                }
                break;
            case subtr: //输入的是"-"
                if (obj.value.indexOf('-') == -1) {
                    if (obj.value.length == 0) {
                        IsArgee = true;
                    } else {
                        //IsArgee = true;
                        //判断光标的位置
                        if (ObjToolKit.getCursorPos(obj) == 0) {
                            //如果所在位置为第一位
                            IsArgee = true;
                        }
                        else {
                            IsArgee = false;
                        }
                    }
                } else {
                    if (obj.value.indexOf('-') > 1) {
                        IsArgee = false;
                    }
                    else {
                        IsArgee = false;
                    }
                }
                break;
            case Enter: //回车
                break;
            default: 	//默认
                for (i in arrList) {
                    if (CurrKeyCode == arrList[i]) {
                        //此处可添加非数字但允许输入代码
                        IsArgee = true;
                        break;
                    } else {
                        IsArgee = false;
                    }
                }
                break;
        }
    }
    //控制输入位数
    if (IsArgee) {
        //存在小数点并且保留小数位数不是0
        if ((obj.value.indexOf('.') != -1) && (afterpoint != 0)) {
            //判断光标在小数点前还是后
            if (obj.value.indexOf('.') < ObjToolKit.getCursorPos(obj)) {
                if ((obj.value.length - 1) - obj.value.indexOf('.') == afterpoint) {
                    //如果当前文本框存在被选中的字符
                    if (SelectionString.length > 0) {
                        IsArgee = true;
                    } else {
                        IsArgee = false;
                    }
                }
            } else {
                if (obj.maxLength < obj.value.length) {
                    IsArgee = true;
                }
            }
        } else {
            //不存在小数位
            if ((obj.maxLength - obj.value.length) <= (afterpoint + 1) && afterpoint != 0) {
                //最后一位可补小数点
                if (CurrKeyCode == point) {
                    IsArgee = true;
                } else {
                    //如果当前文本框存在被选中的字符
                    if (SelectionString.length > 0) {
                        IsArgee = true;
                    } else {
                        IsArgee = false;
                    }
                }
            }
        }
    }
    if (IsArgee)//判断输入是否满足条件
    {
        window.event.returnValue = 1;
        return;
    } else {

        window.event.returnValue = 0;
        return;
    }
}
//限制文本框输入为日期格式
//方法放入obj的onkeypress事件
ObjToolKit.CheckOnlyDate = function(obj) {
    var point = 46;
    var backspace = 13;
    var CurrKeyCode = event.keyCode;
    var IsArgee = false; //是否输入
    var SelectionString = document.selection.createRange().duplicate().text;
    var FormatArray = new Array('-', '-', ' ', ':', ':');
    if (CurrKeyCode >= 48 && CurrKeyCode <= 57) {
        IsArgee = true;
    }
    var InsertLength = obj.value.length;
    if (SelectionString != "") {
        switch (obj.value.indexOf(SelectionString)) {
            case 4:
            case 7:
            case 10:
            case 13:
            case 16:
                window.event.returnValue = 0;
                return;
                break;
        }
    }
    switch (obj.value.length) {
        case 4:
            obj.value += FormatArray[0];
            break;
        case 7:
            obj.value += FormatArray[1];
            break;
        case 10:
            obj.value += FormatArray[2];
            break;
        case 13:
            obj.value += FormatArray[3];
            break;
        case 16:
            obj.value += FormatArray[4];
            break;
        default:
            if (obj.value.length >= 19) {
                //如果当前文本框存在被选中的字符
                if (SelectionString.length > 0) {
                    IsArgee = true;
                } else {
                    IsArgee = false;
                }
            }
            break;
    }

    if (IsArgee)//判断输入是否满足条件
    {
        window.event.returnValue = 1;
        return;
    } else {
        window.event.returnValue = 0;
        return;
    }

}
//限制文本框输入为日期格式
//方法放入CertifGrid的OnKeyDownEvent事件
ObjToolKit.MoonListCheckDate = function(obj) {
    var backspace = 8;
    var IsArgee = false; //是否输入
    var CurrKeyCode = event.keyCode;
    var arrList = new Array(33, 34, 35, 36, 46); //此处添加可输入的按键编码初始化数组
    var Enter = 13; //回车键编码
    var Arrow = new Array(37, 38, 39, 40);
    var SelectionString = document.selection.createRange().duplicate().text;
    var FormatArray = new Array('-', '-', ' ', ':', ':');
    //var FormatArray = new Array('年','月','日','时','分');
    if ((CurrKeyCode >= 48 && CurrKeyCode <= 57) || (CurrKeyCode >= 96 && CurrKeyCode <= 105)) {
        //满足输入数字条件处理
        if (event.shiftKey) {
            IsArgee = false;
        }
        else {
            IsArgee = true;
        }
    } else {
        //非数字按键处理
        switch (CurrKeyCode) {
            case backspace: //退格
            case Arrow[0]:
            case Arrow[1]:
            case Arrow[2]:
            case Arrow[3]:
            case Enter:
                window.event.returnValue = 1;
                return;
            default: 	//默认
                for (i in arrList) {
                    //alert("开始执行默认");
                    if (CurrKeyCode == arrList[i]) {
                        //此处可添加非数字但允许输入代码
                        window.event.returnValue = 1;
                        return;
                    } else {
                        IsArgee = false;
                    }
                }
                break;
        }
    }

    var InsertLength = obj.value.length;
    if (SelectionString != "") {
        switch (obj.value.indexOf(SelectionString)) {
            case 4:
            case 7:
            case 10:
            case 13:
            case 16:
                window.event.returnValue = 0;
                return;
                break;
        }
    }

    switch (InsertLength) {
        case 4:
            obj.value += FormatArray[0];
            break;
        case 7:
            obj.value += FormatArray[1];
            break;
        case 10:
            obj.value += FormatArray[2];
            break;
        case 13:
            obj.value += FormatArray[3];
            break;
        case 16:
            obj.value += FormatArray[4];
            break;
        default:
            if (obj.value.length >= 19) {
                //如果当前文本框存在被选中的字符
                if (SelectionString.length > 0) {
                    IsArgee = true;
                } else {
                    IsArgee = false;
                }
            }
            break;
    }

    if (IsArgee)//判断输入是否满足条件
    {
        window.event.returnValue = 1;
        return;
    } else {
        window.event.returnValue = 0;
        return;
    }
}
//方法给输入框的onpaste事件
//功能屏蔽非数字的粘贴
ObjToolKit.OnlyNumPaste = function(obj, ipoint) {

    var PasteString = window.clipboardData.getData("Text");
    var reg = /^\d+?.?\d+?$/; //正则表达式;
    var r = PasteString.match(reg);
    if (PasteString.indexOf('-') > -1) {
        window.event.returnValue = 0;
        return;
    }
    if (r == null) {
        //没有通过
        window.event.returnValue = 0;
        return;
    }
    else {
        if (PasteString.length > obj.maxLength) {
            window.event.returnValue = 0;
            return;
        }
        if ((PasteString.length - 1) - PasteString.indexOf('.') > ipoint) {

            window.event.returnValue = 0;
            return;
        }
        obj.value = "";
        window.event.returnValue = 1;
        return;
    }

}
//只能粘贴非中文
ObjToolKit.OnlyNotChease = function(_value) {
    var PasteString = window.clipboardData.getData("Text");
    var patrn = /^([\u4e00-\u9fa5]+)$/;
    if (!patrn.exec(_value)) {
        //非法
        return false;
    }
    return true;

}
//方法给输入框的onpaste事件
//功能屏蔽密码输入框的粘贴
ObjToolKit.OnlyPwdPaste = function(obj) {
    var PasteString = window.clipboardData.getData("Text");
    if (!ObjToolKit.IsPassword(PasteString)) {
        //密码格式不正确
        return false;
    }
    return true;
}

//初始化控件验证属性
//输入对象只能输入数字
//参数1 :文本对象
//参数2 :可保留的小数位数
ObjToolKit.InitInputCheckNum = function(obj, ipoint) {
    obj.attachEvent("onkeypress", function() { ObjToolKit.CheckOnlyNum(obj, ipoint); });
}
//初始化控件验证属性
//输入对象只能输入日期
//参数1:文本对象
ObjToolKit.InitInputCheckDate = function(obj) {
    obj.attachEvent("onkeypress", function() { ObjToolKit.CheckOnlyDate(obj); });
}

//如果对象错误 对象获取焦点并在修改前处于提示颜色
ObjToolKit.CheckErrorColor = function(obj) {
    var evt;
    obj.focus();
    if (obj.onchange != null) {
        evt = obj.onchange;
    }
    obj.style.backgroundColor = ErrorColor;
    if (obj.TimeSelect) {
        //如果存在此属性认为是日期选择框
        obj.attachEvent("onpropertychange", function() {
            obj.style.backgroundColor = CurrColor;
        }
				   );

    } else {
        obj.attachEvent("onchange", function() {
            obj.style.backgroundColor = CurrColor;
            /*if(evt != null)
            {
            obj.onchange = evt;
            obj.onchange();
            }else
            {
            obj = null;
            }*/
        }
				   );
    }
}

//校验密码：只能输入1-6个字母、数字、下划线
ObjToolKit.IsPassword = function(_value) {
    var patrn = /^(\w){1,6}$/;
    if (!patrn.exec(_value)) {
        //非法
        return false;
    }
    return true;
}
//日期输入的对象不能flag于当前时间
ObjToolKit.CheckDataWithNow = function(vobj, msg, flag) {
    var vdata = new Date();
    var vnowdata = vdata.getFullYear() + "-" + (parseInt(vdata.getMonth()) + 1).toString() + "-" + vdata.getDate();
    var v1Ary = vnowdata.split('-');
    var v2Ary = vobj.value.split('-');
    var d1 = new Date(v1Ary[1] + '/' + v1Ary[2] + '/' + v1Ary[0]);
    var d2 = new Date(v2Ary[1] + '/' + v2Ary[2] + '/' + v2Ary[0]);
    if (flag == ">") {
        if (d2 - d1 > 0) {
            ObjToolKit.CheckErrorColor(vobj);
            alert(msg);
            vobj.focus();
            return false;
        }
        return true;
    } else {
        if (d1 - d2 > 0) {
            ObjToolKit.CheckErrorColor(vobj);
            alert(msg);
            vobj.focus();
            return false;
        }
        return true;
    }
}
//Leeya add code at 2009-11-16//校验是否正整数 
ObjToolKit.IsPositiveInteger = function(vObj) {
    var regTest = /^\d+$/;
    return regTest.test(vObj);
}

/***************************************************************
Input对象输入限制 End
****************************************************************/

ObjToolKit.SelectData = function(vControlName) {
    var vWin;
    var vPath;
    if (vControlName == null || vControlName == "") {
        return;
    } else if (window.document.getElementById(vControlName) == null) {
        return;
    } else {
        if (window.document.getElementById(vControlName).readOnly)//edit by songpeng 2007-04-24 日期录入框禁用时 不弹出日期选择框
        {
            return;
        }
        vPath = ObjToolKit.GetAbsoluteUrl("public/SelectDate.htm");
        vWin = window.showModalDialog(vPath, window.document.getElementById(vControlName).value, "dialogWidth:450px;status:no;dialogHeight:370px")

        if (vWin != null && vWin != "") {
            window.document.getElementById(vControlName).value = vWin;
        }
    }
}

ObjToolKit.LimitInputKeyPress = function(vObj, vLength) {
    if (vObj.value.length >= vLength) {
        window.event.returnValue = 0;
        return;
    }
    window.event.returnValue = 1;
    return;
}

ObjToolKit.LimitInputKeyUp = function(vObj, vLength) {
    var vStart = "";
    var vEnd = "";
    var vCursor = 0;
    var vCut = 0;
    //alert(vObj.value.length);
    if (vObj.value.length == vLength) {
        window.event.returnValue = 0;
        return;
    }
    else if (vObj.value.length > vLength) {
        vCursor = ObjToolKit.getCursorPos(vObj);
        vCut = vLength - (vObj.value.length - vCursor);

        vStart = vObj.value.substr(0, vCut);

        vEnd = vObj.value.substr(vCursor, vObj.value.length);

        vObj.value = vStart + vEnd;
    }

    window.event.returnValue = 1;
    return;
}

ObjToolKit.LimitInputOnPaste = function(vObj, vLength) {
    var PasteString = window.clipboardData.getData("Text");
    var vStart = "";
    var vEnd = "";
    var vPaste = "";
    var vCursor = 0;
    var vCut = 0;
    if (vObj.value.length + PasteString.length > vLength) {
        if (vObj.value.length >= vLength) {
            window.event.returnValue = 0;
            return;
        }
        else {
            vCursor = ObjToolKit.getCursorPos(vObj);
            if (vCursor > 0) {
                vStart = vObj.value.substr(0, vCursor);
            }
            vEnd = vObj.value.substr(vCursor, vObj.value.length);
            vCut = PasteString.length - (vObj.value.length + PasteString.length - vLength);

            vPaste = PasteString.substr(0, vCut);
            window.clipboardData.setData("Text", vPaste);
            //vObj.value = vStart + vPaste + vEnd;
            //alert(vObj.value);
        }
        /**/
        //window.event.returnValue = 0;
        //return;
    }
    window.event.returnValue = 1;
    return;
}