function formCheck(cform) {
    if (!cform) {
        alert("验证表格是空的!");
        return false;
    }

    var errors = 0;
    var message = "输入非法:\n";
    var controlmessages = Array();

    if (cform.formmessage) {
        message = cform.formmessage + "\n";
    }

    for (i = 0; i < cform.elements.length; i++) {
        // Get manual message for this input
        if (cform.elements[i].getAttribute('chkmsg')) checkmessage = cform.elements[i].getAttribute('chkmsg') + "  ";
        else checkmessage = "";
        // Get message
        // 1. 检查是否允许为空
        if (cform.elements[i].getAttribute('chknonull') && cform.elements[i].getAttribute('chknonull') == 'yes') {
            if ((cform.elements[i].value == '') || (cform.elements[i].value == ' ')) {
                return chkerr(cform.elements[i], checkmessage + "不能为空");
            }
        }

        //客户确认询问
        if (cform.elements[i].getAttribute('chkconfirm') && cform.elements[i].getAttribute('chkconfirm') == 'yes') {
            if (window.confirm(checkmessage) == false) return false;
        }

        //检查必须包含的字符
        if (cform.elements[i].getAttribute('mustcontain') && cform.elements[i].getAttribute('mustcontain') != '') {
            if (cform.elements[i].value.indexOf(cform.elements[i].getAttribute('mustcontain')) < 0) {
                if (cform.elements[i].getAttribute('mustcontain') == " ") return chkerr(cform.elements[i], checkmessage + "必须包含空格");
                else return chkerr(cform.elements[i], checkmessage + "必须包含字符[" + cform.elements[i].getAttribute('mustcontain') + "]");
            }
        }

        //检查同意协议
        if (cform.elements[i].getAttribute('chkagree') && cform.elements[i].getAttribute('chkagree') == 'yes') {
            if (!cform.elements[i].checked) {
                return chkerr(cform.elements[i], checkmessage);
            }

        }

        // 2. 输入类型检查
        if ((cform.elements[i].getAttribute('chktype')) && (cform.elements[i].value)) {
            if (inputCheck(cform.elements[i]) == false) {
                return false;
            }
        }

        // END OF TYPE CONTROL
        // 3. 输入长度检查
        if ((cform.elements[i].getAttribute('chkminlen')) && (cform.elements[i].value)) {
            if (cform.elements[i].value.length < cform.elements[i].getAttribute('chkminlen')) {
                return chkerr(cform.elements[i], checkmessage + "不能小于[" + cform.elements[i].getAttribute('chkminlen') + "]个字符");
            }
        }
        if ((cform.elements[i].getAttribute('chkmaxlen')) && (cform.elements[i].value)) {
            if (cform.elements[i].value.length > cform.elements[i].getAttribute('chkmaxlen')) {
                return chkerr(cform.elements[i], checkmessage + "不能大于[" + cform.elements[i].getAttribute('chkmaxlen') + "]个字符");
            }
        }
        // END OF LENGTH CONTROL
        // 3. 输入最大值,最小值检查
        if ((cform.elements[i].getAttribute('chkminvalue')) && (cform.elements[i].value)) {
            if (cform.elements[i].value < cform.elements[i].getAttribute('chkminvalue')) {
                return chkerr(cform.elements[i], checkmessage + "不能小于[" + cform.elements[i].getAttribute('chkminvalue') + "]");
            }
        }
        if ((cform.elements[i].getAttribute('chkmaxvalue')) && (cform.elements[i].value)) {
            if (cform.elements[i].value > cform.elements[i].getAttribute('chkmaxvalue')) {
                return chkerr(cform.elements[i], checkmessage + "不能大于[" + cform.elements[i].getAttribute('chkmaxvalue') + "]");
            }
        }

        //两次输入密码是否相同
        if (cform.elements[i].getAttribute('chkrepass') && cform.elements[i].getAttribute('chkrepass') != '') {
            for (j = 0; j < cform.elements.length; j++) if (cform.elements[j].name == cform.elements[i].getAttribute('chkrepass')) if (cform.elements[j].value != cform.elements[i].value) return chkerr(cform.elements[i], "两次输入密码不一致");

        }

        // END OF MIN/MAX VALUE CONTROL
    } // END OF THE FOR LOOP
    return true;
}

//function inputCheck(input,type) {
function inputCheck(obj) {
    /*
	  InputCheck Function
	*/
    var errors = 0;
    var expression = '';
    var input = '';
    var type = '';
    var checkmessage = '';

    input = obj.value;
    type = obj.getAttribute('chktype');

    if (obj.getAttribute('chkmsg')) checkmessage = obj.getAttribute('chkmsg') + "  ";
    else checkmessage = "";

    switch (type) {
    case 'email':
        expression = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
        checkmessage = checkmessage + "邮箱格式错";
        break;
    case 'text':
        expression = "";
        break;
    case 'num':
        expression = /^[0-9]+$/;
        checkmessage = checkmessage + "请输入数字";
        break;
    case 'date':
        expression = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/;
        checkmessage = checkmessage + "请输入合法的日期";
        break;
    case 'datedb':
        expression = /^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})$/;
        checkmessage = checkmessage + "请输入合法的日期";
        break;
    case 'datemysql':
        expression = /^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})$/;
        checkmessage = checkmessage + "请输入合法的日期";
        break;
    case 'ip':
        expression = /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;
        checkmessage = checkmessage + "请输入合法的IP";
    case 'IP':
        expression = /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;
        checkmessage = checkmessage + "请输入合法的IP";
        break;
    case 'dbname':
        expression = /^[a-zA-Z0-9]{1,}$/;
        checkmessage = checkmessage + "请输入合法的数据库名";
        break;
    case 'ftpname':
        expression = /^[a-zA-Z0-9]{1,}$/;
        checkmessage = checkmessage + "请输入合法的FTP名称";
        break;
    case 'postcode':
        expression = /^[0-9][0-9]{5}$/;
        checkmessage = checkmessage + "请输入合法的邮政编码";
        break;
    case 'tel':
        expression = /^[0-9]{7,13}$/;
        checkmessage = checkmessage + "请输入合法的电话号码";
        break;
    case 'username':
        expression = /^[a-zA-Z0-9_]{1,}$/;
        checkmessage = checkmessage + "请输入合法的用户名";
        break;
    case 'domain':
        expression = /^[a-zA-Z0-9.-]{1,}[.][a-zA-Z0-9.-]{1,}$/;
        checkmessage = checkmessage + "请输入合法的域名";
        break;
    case 'domainchar':
        expression = /^[a-zA-Z0-9.-]{1,}$/;
        checkmessage = checkmessage + "请输入合法的域名字符";
        break;
    case 'chinese':
        expression = /[\u4E00-\u9FA5]/;
        checkmessage = checkmessage + "必须包含中文";
        break;
    case 'nochinese':
        //expression	= /[\u4E00-\u9FA5]/ ; 
        //checkmessage = checkmessage +"不能包含中文";
        expression = "";
        break;
    case 'qq':
        expression = /[1-9][0-9]{4,}/;
        checkmessage = checkmessage + "请输入合法的QQ";
        break;
    case 'cert':
        expression = /^[0-9]{17}([0-9]|x)$/;
        checkmessage = checkmessage + "请输入合法的身份证号码";
    case '':
        expression = "";
        break;
    }

    if ((errors == 0) && (expression != '')) {
        if (!expression.exec(input)) errors++;
    }

    if (errors == 0) return true;
    else return chkerr(obj, checkmessage)
    //return false;
}

function chkerr(obj, msg) {
    alert(msg);
    if (obj) {
        obj.focus();
    }
    return false;
}

function checkemail(name, data, allowednull) {
    var datastr = data;
    var lefttrim = datastr.search(/\S/gi);

    if (lefttrim == -1) {
        if (allowednull) {
            return (true);
        } else {
            alert("请输入一个正确的E-mail地址！");
            return (false);
        }
    }
    var myRegExp = /[a-z0-9](([a-z0-9]|[_\-\.][a-z0-9]|[_\-\.][_\-\.][a-z0-9])*)@([a-z0-9]([a-z0-9]|[_\-][a-z0-9])*)((\.[a-z0-9]([a-z0-9]|[_\-][a-z0-9])*)*)/gi;
    var answerind = datastr.search(myRegExp);
    var answerarr = datastr.match(myRegExp);

    if (answerind == 0 && answerarr[0].length == datastr.length) {
        return (true);
    }

    alert("请输入一个正确的E-mail地址22！");
    return (false);
}

function IsTel(str, strname) {
    var l = str.length;
    var i, s;

    if (str == '') {
        alert(strname + "不能为空");
        return (false);
    }

    if (isNaN(str)) {
        alert(strname + '只能为数字');
        return false;
    }

    s = str.charAt(0);
    if (s == '0') {
        //alert(strname+'第一位不能为0');
        //return false;
    }

    if (str.length < 7 || str.length > 12) {
        alert(strname + '只能为7至12位的数字');
        return false;
    }
    return (true);

}

function IsCh(str, strname) {
    var len;
    var i;
    if (str == '') {
        alert(strname + "不能为空");
        return (false);
    }

    for (i = 0; i < str.length; i++) {
        if (str.charCodeAt(i) > 255) return (true);
    }
    alert(strname + "必须含有汉字");
    return (false);
}

function IsNotCh(str, strname) {
    var len;
    var i;
    if (str == '') {
        alert(strname + "不能为空");
        return (false);
    }
    for (i = 0; i < str.length; i++) {
        if (str.charCodeAt(i) > 255) {
            alert(strname + "不能含有汉字");
            return (false);
        }
    }
    return (true);
}

function IsPost(str, strname) {
    var len;
    var i;
    if (str == '') {
        alert(strname + "不能为空");
        return (false);
    }

    if (isNaN(str)) {
        alert('邮政编码只能为数字');
        return false;
    }

    if (str.length != 6) {
        alert('邮政编码只能为6位数字');
        return false;
    }
    return true;
}

function checkDomain(str, strname) {
    if (str == '') {
        alert(strname + '不能为空！');
        return false;
    }
    ii = 0;
    bString = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-.";
    while (ii < str.length) {

        if (bString.indexOf(str.substring(ii, ii + 1)) == -1) {
            alert(strname + "必须是a-z A-Z 0-9 之间的字母和数字组合。");
            return false;
        }
        ii = ii + 1;
    }

    if (str.indexOf(".") == -1) {
        //alert(strname+"必须是包含域名后缀,如.com,.net,.cn等。");
        //return false;
    }
    return true;
}

function checkUser(str, strname) {
    if (str == '') {
        alert(strname + '不能为空！');
        return false;
    }
    ii = 0;
    bString = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._";
    while (ii < str.length) {

        if (bString.indexOf(str.substring(ii, ii + 1)) == -1) {
            alert(strname + "必须是a-z A-Z 0-9 之间的字母和数字组合。");
            return false;
        }
        ii = ii + 1;
    }

    if (str.indexOf(".") == -1) {
        //alert(strname+"必须是包含域名后缀,如.com,.net,.cn等。");
        //return false;
    }
    return true;
}

function checkDbName(str, strname) {
    if (str == '') {
        alert(strname + '不能为空！');
        return false;
    }
    ii = 0;
    bString = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    while (ii < str.length) {

        if (bString.indexOf(str.substring(ii, ii + 1)) == -1) {
            alert(strname + "必须是a-z A-Z 0-9 之间的字母和数字组合。");
            return false;
        }
        ii = ii + 1;
    }

    if (!isNaN(str.substring(0, 1))) {
        alert(strname + "第一个字符不能为数字。");
        return false;
    }

    if (!isNaN(str.substring(str.length - 1, str.length))) {
        alert(strname + "最后一个字符不能为数字。");
        return false;
    }

    if (str.substring(0, 1) == "_") {
        alert(strname + "第一个字符不能为下划线。");
        return false;
    }

    if (str.substring(str.length - 1, str.length) == "_") {
        alert(strname + "最后一个字符不能为下划线。");
        return false;
    }
    return true;
}

function checkFtp(str, strname) {
    if (str == '') {
        alert(strname + '不能为空！');
        return false;
    }
    ii = 0;
    bString = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    while (ii < str.length) {

        if (bString.indexOf(str.substring(ii, ii + 1)) == -1) {
            alert(strname + "必须是a-z A-Z 0-9 之间的字母和数字组合。");
            return false;
        }
        ii = ii + 1;
    }

    if (str.length > 20) {
        alert(strname + "不能大于20位");
        return (false);
    }
    return true;
}

function checkPass(str, strname) {
    var len;
    var i;
    if (str == '') {
        alert(strname + "不能为空");
        return (false);
    }

    if (str.length < 6) {
        alert(strname + "不能小于6位");
        return (false);
    }

    bString = "0123456789";
    ii = 0;
    while (ii < str.length) {

        if (bString.indexOf(str.substring(ii, ii + 1)) == -1) {
            return true;
        }
        ii = ii + 1;
    }
    return true;
}

function autoprice(objname, numname, formname, strpre) {
    var tmpa, tmpb, tmpn;
    var objnamelist = objname.split(",");
    tmpn = eval(formname + "." + numname + "");
    //alert("tmpn="+tmpn.value);  
    for (var j = 0; j < objnamelist.length; j++) {
        var tmpname = objnamelist[j];
        //alert("tmpa="+objnamelist[j]); 
        tmpa = eval(formname + "." + strpre + tmpname + "_1");
        if (typeof(tmpa) != "undefined") if (tmpa.value != "") {
            for (var i = 2; i <= tmpn.value; i = i + 1) {
                tmpb = eval(formname + "." + strpre + tmpname + "_" + i);
                if (typeof(tmpb) != "undefined") tmpb.value = tmpa.value * i;
            }
        }
    }
}

function contobuyprice(objname, num, formname, strpre, strpreC) {
    var tmpa, tmpb, tmpn;
    var objnamelist = objname.split(",");
    for (var j = 0; j < objnamelist.length; j++) {
        var tmpname = objnamelist[j];
        for (var i = 1; i <= num; i = i + 1) {
            tmpa = eval(formname + "." + strpre + tmpname + "_" + i);
            tmpb = eval(formname + "." + strpreC + tmpname + "_" + i);
            if (typeof(tmpa) != "undefined") if (typeof(tmpb) != "undefined") tmpb.value = tmpa.value;
        }
    }
}

function clearprice(objname, num, formname, strpre) {
    var tmpa, tmpb, tmpn;
    var objnamelist = objname.split(",");
    for (var j = 0; j < objnamelist.length; j++) {
        var tmpname = objnamelist[j];
        for (var i = 1; i <= num; i = i + 1) {
            tmpb = eval(formname + "." + strpre + tmpname + "_" + i);
            if (typeof(tmpb) != "undefined") tmpb.value = "";
        }
    }
}

function UrlDecode(str) {
    var ret = "";
    for (var i = 0; i < str.length; i++) {
        var chr = str.charAt(i);
        if (chr == "+") {
            ret += " ";
        } else if (chr == "%") {
            var asc = str.substring(i + 1, i + 3);
            if (parseInt("0x" + asc) > 0x7f) {
                ret += asc2str(parseInt("0x" + asc + str.substring(i + 4, i + 6)));
                i += 5;
            } else {
                ret += asc2str(parseInt("0x" + asc));
                i += 2;
            }
        } else {
            ret += chr;
        }
    }
    return ret;
}

function createxmlhttp() {
    var xmlhttp = null

    try {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
        try {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        } catch(e) {
            try {
                xmlhttp = new XMLHttpRequest();
            } catch(e) {}
        }
    }
    return (xmlhttp);
}

function winiisxmlhttp(sendurl, DataToSend) {
    var xmlhttp = createxmlhttp();
    xmlhttp.open("POST", sendurl, false);
    xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xmlhttp.send(DataToSend);
    var strR = unescape(xmlhttp.responseText);
    return (strR);
}
