function Validator(str)
{
  	var flag;
   	flag = false;
   	if(IsPhone("Tel",str) != null) 
   	{       
       		flag = true;
   	}
   	else
   	{
       		if(IsMobile("Mobile",str) != null)
       		{
          		flag = true;
      		}
   	}
   	return flag;
}
//检查字符是否有空格
String.prototype.Trim = function()
{
	return this.replace(/^\s*|\s*$/g,"");
}
//是否是日期
function isDateString(sDate)
{
	var iaMonthDays = [31,28,31,30,31,30,31,31,30,31,30,31]
	var iaDate = new Array(3)
	var year, month, day
	if (arguments.length != 1) return false
	iaDate = sDate.toString().split("-")
	if (iaDate.length != 3) return false
	if (!isnumber(iaDate[0]) || !isnumber(iaDate[1]) || !isnumber(iaDate[2])) return false
	if (iaDate[1].length > 2 || iaDate[2].length > 2) return false
	year = parseFloat(iaDate[0])
	month = parseFloat(iaDate[1])
	day = parseFloat(iaDate[2])
	if (year < 1900 || year > 2100) return false
	if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) iaMonthDays[1]=29;
	if (month < 1 || month > 12) return false
	if (day < 1 || day > iaMonthDays[month - 1]) return false
	return true
}
//是否是数字
function isnumber(n)
{
	num="0123456789";
	len=n.length;
	for(ii=0;ii<len;ii++)
	{
		chr_position=n.charAt(ii);
		if(num.indexOf(chr_position)==-1)
			return false;
	}
	return true;
}

function checkdata(dataType,dataValue){
	var Reg;	

	switch(dataType){
		//身份证
		case "IdCard":Reg = new RegExp(/^\d{15}(\d{2}[A-Za-z0-9])?$/);break;
		//座机电话
		case "Tel":Reg = new RegExp(/^(0?([1-9]\d{1,2}-))?[1-9]\d{6,7}$/);break;
		//移动电话
		case "Mobile":Reg = new RegExp(/^0?13\d{9}$/);break;
		//座机加移动电话
		case "Tel&Mobile":Reg = new RegExp(/^(0?((13\d{9})|(15\d{9})))$|(0?([1-9]\d{1,2}-))([1-9]\d{6,7})(\-\d{3,4})?$/);break;
		//邮政编码
		case "PostCode":Reg = Reg = new RegExp(/^[1-9]\d{5}$/);break;
		//Email
		case "Email":Reg = new RegExp(/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/);break;
		//金额
		case "Money":Reg = new RegExp(/^\d{1,7}(\.\d{1,6})?$/);break;
		//密码
		case "Password":Reg = new RegExp(/^([0-9A-Za-z]){6,20}?$/);break;
		//用户名
		case "UserCode":Reg = new RegExp(/^([0-9A-Za-z]){6,20}?$/);break;
		//抽取人数 专业年限
		case "shortInt":Reg = new RegExp(/^[1-9](\d{1})?$/);break;		
		//整数
		case "Int":Reg = new RegExp(/^[1-9](\d{20})?$/);break;
		default:Reg = dataValue;break;
	}
	
	return dataValue.match(Reg);	
}

/*************************************************************************************************************
*    FUNCTION:        inputCheck,通用文本域校验，识别各种类型，包括非空

*					         input元素属性：cType-> 域类型(email;date;int;loginUser;pwd;telphone;mobile;postCode)；?

*									 cTitle -> 域标识，用于出错提示；

*									 allowEmpty -> 非空（"true"/"false";default:"true"）

*									 allowFocus -> 缺省为允许聚焦，false 为不允许
*    PARAMETERS:      formName-> Form Name?
*    CALLS:           
*    RETURNS:         true/false
**************************************************************************************************************/
function inputCheck(formName)
{
	var oName;
	var str;
	var err;
	oName = eval("document.all." + formName);
	//获取表单元素长度
	for(k=0;k<oName.length;k++)
	{   
		if(typeof(oName[k].cTitle)!="undefined"&&oName[k].cTitle!="")
			str=oName[k].cTitle;
		else
			str="";
			
		if(typeof(oName[k].cErrMsg)!="undefined"&&oName[k].cErrMsg!="")
			err=oName[k].cErrMsg;
		else
			err="";
					
		//判断当前表单项是否必填
		if(typeof(oName[k].allowEmpty)!="undefined"&&oName[k].allowEmpty=="false")
		{
			if(oName[k].value.Trim() == "")
			{				
				alert(str + "不能为空!");
				if(oName[k].allowFocus != "false")
					oName[k].focus();
				return false;
			}
		}		
							
		if(typeof(oName[k].cType)!="undefined"&&oName[k].cType!=""&&oName[k].value.Trim()!="")
		{
			//alert("cType:"+oName[k].cType+"\r\nvalue:"+oName[k].value);
			switch(oName[k].cType){
				case "date":
					if(isDateString(oName[k].value)==false){
						alert(str + "格式错误!\r\n"+err);
						if(oName[k].allowFocus != "false")
							oName[k].focus();
						return false;
					}
					else{
						break;
					}
				case "Text":
				    break;
				default:					
					if(checkdata(oName[k].cType,oName[k].value) == null){
						alert(str + "格式错误!\r\n"+err);
						if(oName[k].allowFocus != "false")
							oName[k].focus();
						return false;
					}
					else{
						break;
					}
			}									
		}		
	}
	return true;
}