﻿//检查页面空间内容合法性公用方法
// add wasp 2008-10-15
var jserror;
//检查是否数字
function IsNum(value)
{
    var chkNum = new RegExp("^[0-9]?[0-9]*$");
    if (value.match(chkNum) == null)
    {
        return false;
    }
    return true;
}

//检查是否正整数
function IsInt(value)
{
    var chkNum = new RegExp("^[0-9]{1}[0-9]*$");
    if (value.match(chkNum) == null)
    {
        return false;
    }
    if (value == 0)
    {
        return false;
    }
    return true;
}

//检查字符串长度
function checkStrLength(value,minLen,maxLen)
{  
    var strlen = getStrLength(value);
    if( strlen > maxLen || strlen < minLen ){
        return false;
    }else{
        return true;
    }
}

//去除字符串中的空格
function trim(objvalue)
{
    return objvalue.replace( /(^\s*)|(\s*$)/g , '' ); 
}

//检查身份证
function CheckIDCard(value)
{
    var chkIDCard = new RegExp("(^\\d{17}[\\d|X|x]$)|(^\\d{15}$)");
    if (trim(strIDCard).match(chkIDCard) == null)
    {
        return false;
    }
    return true;
}

//检查Email格式
function CheckEmail(value)
{
    objvalue = value.toLowerCase()
    var regu = "^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*))@([a-zA-Z0-9-]+[.])+([a-zA-Z]{2,4})$";
    var re = new RegExp( regu );
    if( objvalue.search( re ) != -1 ){
        return true;
    }else{
        return false;
    }
}

//检查Email的@后格式
function CheckEmailDomain(value)
{
    objvalue = value.toLowerCase()
    var regu = "^([a-zA-Z0-9-]+[.])+([a-zA-Z]{2,4})$";
    var re = new RegExp( regu );
    if( objvalue.search( re ) != -1 ){
        return true;
    }else{
        return false;
    }
}

//检查url地址
 function checkurl(url)
{
    url = url.toLowerCase()
    var chkUrl = new RegExp(/^https?:\/\/(([a-zA-Z0-9_-])+(\.)?)*(:\d+)?(\/((\.)?(\?)?=?&?[a-zA-Z0-9_-](\?)?)*)*$/i);
    if (url.match(chkUrl) == null)
    {
        return false;
    }
    return true;
}
        
//考虑中文字符获取长度
function getStrLength( objvalue ){
    var len = 0;
    for (var i=0; i<objvalue.length; i++) {
        if (objvalue.charCodeAt(i) > 127){
            len += 2;
        }else{
            len++;
        }
   }
   return len;
}

function getFirstString( objvalue,maxLen ){
    var len = 0;
    var i = 0;
    for (i; i<objvalue.length; i++) {
        if (objvalue.charCodeAt(i) > 127){
            len += 2;
        }else{
            len++;
        }
        if (len == maxLen)                                              
        {
            break;
        }
        if (len > maxLen)
        {
            i--;
            break;
        }
   }
   return objvalue.substring(0,i+1);
}

//获取ID对应的对象
function getObject(id)
{
    return document.getElementById(id);
}

function getName(name)
{
    return document.getElementsByName(name);
}

//检查是否电话国际号
function IsPhoneCountry(value)
{
    var chkNum = new RegExp("^[0-9\+]?[0-9]*$");
    if (value.match(chkNum) == null)
    {
        return false;
    }
    return true;
}

//检查密码
function CheckPassword(str)
{
    var chkNum = new RegExp("^[A-Za-z0-9\._!@#\$%\^&\*]{6,20}$");
    if (str.match(chkNum) == null)
    {
        return false;
    }
    return true;
}

function CheckAlias(str)
{   
    var chkNum = new RegExp("[\\s`~!@#%\^\$&\*\(\);:,\.\<\>\'\"/\[\?\|\+\-]{1,}|[\]\}\\\\\{\=]{1,}");

    if (str.match(chkNum) != null)
    {
        return false;
    }
    return true;
}

function CheckMobilePhone(str)
{
    var chkNum = new RegExp("^[0-9]{11}$|^([0-9]{2,4}(\-)?)?[0-9]{7,8}$");

    if (str.match(chkNum) == null)
    {
        return false;
    }
    return true;
}  

function checklength(ctl,strName,maxLen)
{
    if (!checkStrLength(trim(ctl.value),0,maxLen))
    {
        alert(" - " + strName + "长度不能超过" + maxLen + "个字符");
				ctl.value = trim(ctl.value);
        ctl.value=getFirstString(ctl.value,maxLen);
        ctl.focus();
    }
}

function checkcontrols(objCtl)
{
    var strerr="";
    for (var i = 0; i < objCtl.length; i++)
    {
        if (objCtl.item(i).getAttribute("IsEmpty"))
        {
            var isempty = objCtl.item(i).getAttribute("IsEmpty");
            var datatype = objCtl.item(i).getAttribute("DataType");
            var validerror = objCtl.item(i).getAttribute("ValidError");
            var strvalue = objCtl.item(i).value = trim(objCtl.item(i).value);
            if (strvalue == "")
            {
				if (isempty == "1")
				{
					strerr += " - 请填写" + validerror + "\n";
				}
            }else
            {
                switch (datatype)
                {
                    case "1":                                     // 是数字    
                        if (!IsNum(strvalue))
                        {
                            strerr += " - " + validerror + "只能输入数字\n";
                        }
                        break;
                    case "2":                                    // Email
                        if (!CheckEmail(strvalue))
                        {
                            strerr += " - " + validerror + "填写有误\n";
                        }
                        break;
                    case "3":                                     // URL
                        if (!checkurl(strvalue))
                        {
                            strerr += " - " + validerror + "填写有误\n";
                        }
                        break;
                    case "4":                                // 用户名
                        if (!CheckAlias(strvalue))
                        {
                            strerr += " - " + validerror + "填写有误\n";
                        }
                        break;
                    case "5":                                // 密码
                        if (!CheckPassword(strvalue))
                        {
                            strerr += " - " + validerror + "不能包含非法字符，且长度必须在6-20位之间\n";
                        }
                        break;
                    case "6":                              // 邮编
                        if (!IsNum(strvalue))
                        {
                            strerr += " - " + validerror + "只能输入数字\n";
                        }
                        break;
                    case "7":                            // 身份证号码
                        if (!CheckIDCard(strvalue))
                        {
                            strerr += " - " + validerror + "填写有误\n";
                        }
                        break;
                }
            }
        }
    }
    return strerr;
}

function checkdata()
{
    jserror="";
    jserror += checkcontrols(document.getElementsByTagName("input"));
    jserror += checkcontrols(document.getElementsByTagName("textarea"));
    if (jserror != "")
    {
        return false;
    }
    return true;
}