﻿//// 主要处理数据的验证
//// Add by Ivan on 2007/01/16

// JScript 文件
var allid;     // 所有要被验证控件的 id ;
var allType;   // 所有要被验证控件的 要被验证的类型 数字,邮件等 ;
var allName;   // 所有要被验证控件对应名称 ;
var allBol;    // 所有要被验证控件 对应的是否验证必须输入 ;
var allaltMsg = ""; // 所有要被验证控件失败后alert的所有信息 ;

/// 功能：   进行数据的验证
/// ids :    要验证的控件的 id 的集合 （以";"分开） 
/// strType:  要验证类型（以";"分开）
/// bolNull：是否必须输入 false 为必须输入
/// altName：验证失败后要输出的信息；
/// add by Ivan On 2006/11/10

function checkdata(ids,strType,bolNull,altName)
{
    allid="";
    allType ="";
    allName = "";
    allBol="";
    allaltMsg = "";
    
    allid=ids.split(";");
    allType = strType.split(";");
    allName = altName.split(";");
    allBol=bolNull.split(";");
    if(allid.length!=allType.length||allid.length!=allName.length||allid.length!=allBol.length)
    {//         传入参数有误
        return true;
    }
    for(index=0;index<allid.length;index++)
    {
       chkType(index);
    }
    if(allaltMsg!="")
    {
        window.alert(allaltMsg);
        return false;
    }
    else
    {
        return true;
    }
}

/// 根据类型验证资料是否正确
function chkType(index)
{
    switch(allType[index].toLowerCase())
    {
        case "dbl":
            chkNum(index);
            break;
        case "mail":
            CheckEMail(index);
            break;
        case "string":
            chkIsNothing(index);
            break;
        case "date":
            chkDate(index);
            break;
    }
}

/// 验证是否允许空
function chkIsNothing(index)
{
    if(allBol[index].toLowerCase()=="false")
    {
        var strValue = document.getElementById(allid[index]).value;
        if(strValue=="")
        {
            allaltMsg+= allName[index] + "不能为空!!\r\n";
            return false;
        }
    }
    return true;
}
/// 检查是否是数字
function chkNum(index)
{    
    var strValue = document.getElementById(allid[index]).value;
    if(chkIsNothing(index))
    {
        if(strValue=="")
        return true;
        if(isNaN(strValue))
        {
            allaltMsg+= allName[index] + "请输入数字!!\r\n";
            return false;
        }
    }
}

/// 检查 Mail 格式是否正确
function CheckEMail(index)
{
    if(chkIsNothing(index))
        {  
            if(strValue=="")
            return true;
            var psValue = document.getElementById(allid[index]).value;
            
            if(psValue=="")
            {
                /// 为空则不需要验证　退出
               　return;
            }
	        var sRegularExp = /^[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9]+[.]{1}[a-zA-Z0-9_\-\.]*$/;	        
	        if (sRegularExp.test(psValue)==false)
	        {
	            //验证失败
		        allaltMsg+= allName[index] + " Mail 格式错误!!\r\n";
                return false;
	        }
	        else
	        {
	            //验证成功后 再进一步验证
	            var arrEnd = psValue.split("@");
	            var arrDoc= arrEnd[1].split(".");
				for(i=0;i<arrDoc.length;i++)
				{
					if(arrDoc[i]=="")
					{
						allaltMsg+= allName[index] + " Mail 格式错误!!\r\n";
                        return false;
					}
				}
	        }
	     }
	     return true;	     
}
			
/// 检查是否是日期类型
function chkDate(index)
{    
    var strValue = document.getElementById(allid[index]).value;
    if(chkIsNothing(index))
    {
        if(strValue=="")
        return true;
        //判断是否为日期类型
        var r = strValue.split("-");//match(/^(\d{1,4})(-|\/)(\d{2,2})\2(\d{2,2})$/);
        if(r==null)
        {
            //日期格式不是以 - 分割
             r = strValue.split("\\");
        }
        if(r!=null)
        {
            var d = new Date(r[0], r[1]-1, r[2]);
            var isok = (d.getFullYear()==r[0]&&(d.getMonth()+1)==r[1]&&d.getDate()==r[2]);
            if(!isok)
            {
                allaltMsg+= allName[index] + "格式错误，如（2008-8-8）!!\r\n";
                return false;
            }
        }
    }
}