/******************************************************/
/* 文件名：univerify.js                               */
/* 功  能：基于自定义属性的统一检测用Javascript函数库 */
/* 作  者：黄国涛(gdhgt@163.net)  */
/******************************************************/
/* 取得字符串的字节长度 */
function strlen(str)
{var i;
var len;
len = 0;
for (i=0;i<str.length;i++)
{
if (str.charCodeAt(i)>255) len+=2; else len++;
}
return len;
}
/* 检测字符串是否为空 */
function isnull(str)
{
var i;
 for (i=0;i<str.length;i++)
{
  if (str.charAt(i)!=' ') return false;
}
 return true;
}
/* 检测字符串是否全为数字 */
function isnumber(str)
{
var number_chars = "1234567890";
var i;
if(isnull(str)) return false;
for (i=0;i<str.length;i++)
{
if (number_chars.indexOf(str.charAt(i))==-1) return false;
}
return true;
}
function ismail(email)
   {
     var pattern = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;
     var emailarray = email.split(";");
     var i =0;
  	 if(isnull(email)) return false;
     for(i=0;i<emailarray.length;i++){
       if((emailarray[i]=="")&&(i>0)) break;
	   if(!pattern.test(emailarray[i])) {return false;}	 
	 }  
     return true;	 
} 
function isphone(tel)
{
  if (tel.length<=4){
    return false;
  }else{
    var Letters = "0123456789()+-";
    for (i=0; i< tel.length; i++){
     var CheckChar = tel.charAt(i);
     if (Letters.indexOf(CheckChar) == -1){
       return false;
      }
    }
  }
  return true;
}
/* 检测指定文本框输入是否合法 */
function verifyInput(input)
{
var image;
var i;
var error = false;
/* 长度校验 
if (strlen(input.value)>parseInt(input.maxsize)){
	alert(input.chname+"超出最大长度"+input.maxsize);
	error = true;
}
*/
/* 非空校验 */
/* 数据类型校验 */
/*
0.  不校验
1、 邮件校验,可以不填
2、 电话校验,可以不填
3、 年龄校验,可以不填
4、 邮件校验,必填
5、 电话校验,必填 
6、 年龄校验,必填
7、 必填校验
*/
switch(parseInt(input.datatype)){
	case 0: 
			return(true);		
	break;
	case 1: 
			if(isnull(input.value))				
				return(true);
			else{				
				if(!ismail(input.value)){
					alert("请填写"+input.chname);
					input.focus();
					return(false);		
				};
				else
					return(true);
			}
	break;
	
	case 2: 
			if(isnull(input.value))				
				return(true);
			else{				
				if(!isphone(input.value)){					
					alert("请填写"+input.chname);
					input.focus();
					return(false);		
				}else
					return(true);				
			}
	break;

	case 3: 
			if(isnull(input.value))				
				return(true);				
			else{				
				if(!isnumber(input.value)){					
					alert("请填写"+input.chname);
					input.focus();
					return(false);		
				}else 
					return(true);				
			}
	break;
	
	case 4: 
			if(!ismail(input.value)){
				alert("请填写"+input.chname);
				input.focus();
				return(false);		
			}else 
				return(true);				
		
	break;
	
	case 5: 
			if(!isphone(input.value)){				
				alert("请填写"+input.chname);
				input.focus();
				return(false);		
			}else 
				return(true);		
	break;

	case 6: 
			if(!isnumber(input.value)){
				alert("请填写"+input.chname);
				input.focus();
				return(false);		
			}else
				return(true);				
	break;
	
	case 7: 
			if(isnull(input.value)){
				alert("请填写"+input.chname);
				input.focus();
				return(false);		
			}else 
				return(true);					
	break;

	/* 在这里可以添加多个自定义数据类型的校验判断 */
	/*  case datatype1: ... ; break;        */
	/*  case datatype2: ... ; break;        */
	/*  ....................................*/
	default		: break;
}
				return(true);				
}

/* 检测指定FORM表单所有应被检测的元素
（那些具有自定义属性的元素）是否合法，此函数用于表单的onsubmit事件 */
function verifyAll(myform)
{
	var i;
	for (i=0;i<myform.elements.length;i++){
	 /* 非自定义属性的元素不予理睬 */
		if (myform.elements[i].chname+""=="undefined") continue;
		/* 校验当前元素 */
		if (verifyInput(myform.elements[i])==false){
			myform.elements[i].focus();
			return false;
		}
	}
		return true;
}