﻿function callpage(htmlurl) {
    var newwin = window.open(htmlurl, "", "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=650,height=400");
    newwin.focus();
    return false;
}

function callpage_menubar(htmlurl) {
    var newwin = window.open(htmlurl, "", "toolbar=no,location=no,directories=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,width=800,height=600");
    newwin.focus();
    return false;
}

function callpage970(htmlurl) {
    var newwin = window.open(htmlurl, "", "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=818,height=700");
    newwin.focus();
    return false;
} 

function PopUpPrint(URLStr, left, top, width, height) {

    if (typeof (left) == "undefined")
        left = 0;
    if (typeof (top) == "undefined")
        top = 0;

    if (typeof (width) == "undefined")
        width = screen.availWidth * 0.99;

    if (typeof (height) == "undefined")
        height = screen.availHeight * 0.89;

    open(URLStr, "", "toolbar=no,location=no,directories=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,copyhistory=yes,width=" + width + ",height=" + height + ",left=" + left + ",top=" + top + "");
}

function isnumber(c) {
    if ((c >= '0') && (c <= '9'))
        return true;
    else
        return false;
}

function lench(ch) {
    var ture_len = 0
    var lench = 0
    for (var i = 0; i <= ch.length - 1; i++) {
        if (ch.charCodeAt(i) > 127)
            ture_len = ture_len + 2;
        else
            ture_len = ture_len + 1;

    }
    lench = ture_len;
    return lench;
}

function checknumber(s) {
    for (i = 0; i < s.length; i++) {
        n = s.substr(i, 1)
        if (!(isnumber(n))) {
            return false;
        }
    }
    return true;
}

//验证日期
function validateDay(str) {
    var r = str.split("-");
    if (r == null) return false;
    var d = new Date(r[0], r[1] - 1, r[2]);
    return (d.getFullYear() == r[0] && (d.getMonth() + 1) == r[1] && d.getDate() == r[2]);
}

//表单验证
function Trim(sVal) {
    while ((sVal.length > 0) && (sVal.charAt(0) == ' '))
        sVal = sVal.substring(1, sVal.length);
    while ((sVal.length > 0) && (sVal.charAt(sVal.length - 1) == ' '))
        sVal = sVal.substring(0, sVal.length - 1);
    return sVal;
}

//获取document.body
function getBodyObj() {
    return (document.documentElement) ? document.documentElement : document.body;
}

//////////////
/*
*只允许输入数字值(整数）

*调用方法:  OnKeyPress="javascript:return OnlyInt();" 
**/
function OnlyInt() {
    if (event.keyCode == 13)
        return true
    if (event.keyCode < 48 || event.keyCode > 57) {
        alert("只能输入数字！");
        return false;

    } else
        return true;
}

/**
*检查一个文本域的值是否为空且全是数字
*@param string name 要检查的文本域的name属性

*@param string emptyMessage 当文本域为空时显示的信息
*@param string notNumMessage 当文本域值不全是数字时显示的信息
*return boolean
*/
function CheckIfNumber(name, emptyMessage, notNumMessage) {
    var canEmpty = false;
    var _notNumMessage = "";

    if (typeof (notNumMessage) == "undefined") {
        canEmpty = true;
        _notNumMessage = emptyMessage;
    } else {
        _notNumMessage = notNumMessage;
    }

    var obj = document.form1.item(name);
    if (!obj) {
        alert("checkIfNumber函数调用错误！！！！！！(属性为" + name + "的对象不存在）");
        return true;
    }

    if (canEmpty == false && obj.value == "") {
        alert(emptyMessage);
        obj.focus();
        return false;
    }

    if (!IsNumber(obj.value)) {
        alert(_notNumMessage);
        obj.focus();
        return false;
    }

    return true;

}

/**
*检查一个文本域的值是否为空

*@param string name 要检查的文本域的name属性

*@param string message 当文本域为空时显示的信息
*return boolean
*/
function CheckIfEmpty(name, message) {
    var obj = document.form1.item(name);

    if (!obj) {
        alert("checkIfEmpty函数调用错误！！！！！！(属性为" + name + "的对象不存在）");
        return true;
    }

    if (obj.value == "") {
        alert(message);
        obj.style.backgroundColor = "#cccccc";

        if (obj.type == "text" || obj.type == "textarea" || obj.type == "file") {
            if (obj.readOnly) return false;
            obj.focus();
            obj.onblur = clearColor;
        }
        return false;
    }
    return true;
}

/**
*检查一个文本域的值是否为空且全是数字
*@param string name 要检查的文本域的name属性

*@param string emptyMessage 当文本域为空时显示的信息
*@param string notNumMessage 当文本域值不全是数字时显示的信息
*return boolean
*/
function CheckIfDecimal(name, emptyMessage, notNumMessage) {

    var obj = document.form1.item(name);
    if (!obj) {
        alert("checkIfNumber函数调用错误！！！！！！(属性为" + name + "的对象不存在）");
        return true;
    }

    if (obj.value == "") {
        alert(emptyMessage);
        obj.focus();
        return false;
    }

    if (!IsDecimal(obj.value)) {
        alert(notNumMessage);
        obj.focus();
        return false;
    }

    return true;

}

/**
*检查一个字符串是否全是数字
*@param string v 要检查的字符串
*return boolean
*/
function IsNumber(v) {
    var re = /^-?[\d]+$/;
    return re.test(v);
}

/**
*检查一个字符串是否是小数格式
*@param string v 要检查的字符串
*return boolean
*/
function IsDecimal(v) {
    var re = /^-?[\d]+\.?[\d]*$/;
    return re.test(v);
}

function clearColor() {
    var obj = event.srcElement;
    //alert( typeof(obj) ==  );
    if (typeof (obj) == "undefined") return;
    obj.style.backgroundColor = "";
}

function CheckIDCard(strID) {
    //验证各位字符是否合法的正则表达式   
    ReDigital15 = /\d{15}/;
    ReDigital18 = /\d{17}[0-9xX]{1}/;
    //提取日期和校验的正则表达式   
    ReDate15 = /\d{6}(\d{6})\d{3}/;
    ReDate18 = /\d{6}(\d{8})\d{3}/;
    switch (strID.length) {
        case 15:
            if (ReDigital15.test(strID) == false)
                return "非法字符";
            Arr = ReDate15.exec(strID);
            strDate = "19" + Arr[1];
            if (CheckDate(strDate, new Date(1900, 0, 1), new Date(1999, 11, 31)) == false)
                return "日期无效";
            break;
        case 18:
            if (ReDigital18.test(strID) == false)
                return "非法字符";
            Arr = ReDate18.exec(strID);
            strDate = Arr[1];
            if (CheckDate(strDate, new Date(1900, 0, 1), new Date()) == false)
                return "日期无效";
            if (CheckSum(strID) == false)
                return "校验错误";
            break;
        default:
            return "位数不对";
            break;
    }
    return "";
}

//对身份证的校验位进行验证   
function CheckSum(strID) {
    //debugger;   
    //18位数字提取正则表达式   
    Re18Digital = /(\d{1})(\d{1})(\d{1})(\d{1})(\d{1})(\d{1})(\d{1})(\d{1})(\d{1})(\d{1})(\d{1})(\d{1})(\d{1})(\d{1})(\d{1})(\d{1})(\d{1})([0-9xX]{1})/;
    Arr = Re18Digital.exec(strID);
    var Wi = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
    Sum = 0;
    for (i = 0; i <= 16; i++)
        Sum += Arr[i + 1] * Wi[i];
    ArrCheckSum = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
    strCheckSum = ArrCheckSum[Sum % 11];
    if (strCheckSum == Arr[18].toUpperCase())
        return true;
    else
        return false;
}

//检查在指定范围之内的日期，支持选择框自动生成格式和手动连打格式。返回bool，true表示日期有效，false表示日期无效。   
function CheckDate(strDate, DateFrom, DateTo) {
    //手动日期验证正则表达式   
    ReDigital8 = /\d{8}/;
    //自动日期验证正则表达式   
    ReAutoDate = /\d{4}-{1}\d{1,2}-\d{1,2}/;
    //自动日期提取正则表达式   
    //ReGetDate   =   /(\d{4})-{1}(\d{1,2})-(\d{1,2})/;   
    //debugger;   
    if (strDate.indexOf("-") > -1) {
        if (ReAutoDate.test(strDate) == false)
            return false;
        // Arr   =   ReGetDate.exec(   strDate   );   
        Arr = strDate.split("-");
        strDate = (Arr[0]) + "" + (Arr[1].length < 2 ? "0" : "") + Arr[1] + (Arr[2].length < 2 ? "0" : "") + (Arr[2]);
    }

    if (strDate.length != 8)
        return false;
    if (ReDigital8.test(strDate) == false)
        return false;
    MyDate = eval(strDate.replace(/^(\d{4})(\d{2})(\d{2})$/, "new   Date($1,$2-1,$3)"));
    strMyDate = MyDate.getFullYear() + (MyDate.getMonth() < 9 ? "0" : "") + (MyDate.getMonth() + 1) + "" + (MyDate.getDate() <= 9 ? "0" : "") + MyDate.getDate();
    //日期有效性验证   
    if (strMyDate != strDate)
        return false;
    //日期范围验证   
    if (MyDate >= DateFrom && MyDate <= DateTo)
        return true;
    else
        return false;
}

//设置页面所有复选框选中状态
//@b bool 是否选中
function SetAllCheckboxStatus(b) {
    for (i = 0; i < document.form1.elements.length; i++) {
        curObj = document.form1.elements(i);
        if (curObj.type == "checkbox")
            curObj.checked = b;
    }
}

function checkYMvalidateDay(tbYear,byMonth) {
    var y = tbYear.value
    var m = byMonth.value
    if (y != '' && m != '') {
        var d = new Date(y, m - 1, 1);
        return (d.getFullYear() == y && (d.getMonth() + 1) == m && d.getDate() == 1);
    }
}

function verifyEmailAddress(emailaddress) {
    var pattern = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;
    var flag = pattern.test(emailaddress);
    if (flag)
        return true;
    else
        return false;
}
