﻿/**
//############################
//User:先用数组check_idArray赋值，再调用onClick='idArray()'
//Create Date：05-9-24
//Athor: Ray/kawaycheng
//       v 1.0
//############################

//0  id
//1  文本长度 为 0 时，不受控制
//2  出错信息
//3  检验模式 -> 
//		1:空值(包括不可见字符),

		2:空值(包括不可见字符)及危险字符,
		
		3:邮件格式,
		
		4:国内固话格式,
		
		5:移动电话格式
		
		6:仅数字
		
//    方便扩展通过改checkThisValue( )
例子
check_idArray[0] = new Array("user" , 50 , "请填上格式合法的用户名." , 2 );
check_idArray[1] = new Array("pass" , 50 , "请填上格式合法的密码." , 2 );
check_idArray[2] = new Array("chk" , 6 , "请填上格式合法的验证码." , 6 );

**/
var err1 = "不能为空.";
var err2 = "有非法字符.";
var check_idArray = new Array();//保存一系列验证数据
function check(str)
{
	var x = true;
	var strArray = new Array( "[" , "]","{","}",";","&","<",">" );
	for( i in strArray )
	{
		if ( str.indexOf( strArray[ i ] ) > -1 )
		{
			x = false;
			break;
		}

	}
	return x;
}

function CheckNull( id , txtlen  , info )
{
//id

//txtlen 限制文本长度

//info 出错信息

 var tmp = document.getElementById(id);
 var reg = /\s/g;
 var tempStr = "";
 
 if ( txtlen > 0 && tmp.value.length > txtlen )
 {
  alert( info );
  //document.getElementById( id ).style.borderwidth = 1;
  //document.getElementById( id ).style.borderColor = '#EFEFEF';
  document.getElementById( id ).value = tmp.value;
  document.getElementById( id ).focus();
  return false;
 }
 tempStr = tmp.value.replace( reg , "" );
 if ( tempStr == "" )
 {
	  alert( info );
	  //document.getElementById( id ).style.borderwidth = 1;
	  //document.getElementById( id ).style.borderColor = '#EFEFEF';
	  document.getElementById( id ).value = tmp.value;
	  document.getElementById( id ).focus();
	  return false;
 }
 else
 {
  if ( txtlen > 0 )
  {
	   if ( tmp.value.length > txtlen )
	   {
		alert( info );
	   // document.getElementById( id ).style.borderwidth = 1;
	   // document.getElementById( id ).style.borderColor = '#EFEFEF';
		document.getElementById( id ).value = tmp.value;
		document.getElementById( id ).focus();
		return false;
	   }
	   else
	   {
	   // document.getElementById( id ).style.borderwidth = 1;
	   // document.getElementById( id ).style.borderColor = '';
	   }
  }
 // document.getElementById( id ).style.borderwidth = 1;
 // document.getElementById( id ).style.borderColor = '';
  return true;
 }
}

function regExpSub( id , pattern )
{
	return pattern.test( document.getElementById( id ).value );		
}


function checkThisValue( id , len , info , type )
{
	var regExp = new Array()
	regExp[ 0 ] = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/; //邮件
	regExp[ 1 ] = /^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/; //固话
	regExp[ 2 ] = /^((\(\d{3}\))|(\d{3}\-))?13\d{9}$/; //移动电话
	regExp[ 3 ] = /^\d+$/;//数字
	regExp[ 4 ] = /^[\u0391-\uFFE5]+$/; //中文
	regExp[ 5 ] = /^[A-Za-z]+$/;//英文
	regExp[ 6 ] = /^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/;//不安全字符
	switch( type )
	{
		case 1 :
			if ( CheckNull( id , len , info ) )
			{
			
			}
			else
			{
				return false;
			}
		break;
		
		case 2 :
			if ( CheckNull( id , len , info ) )
			{
				if ( check( document.getElementById(id).value ) )
				{
					return true;
				}
				else
				{
					alert( info );
					document.getElementById(id).focus();
					return false;
				}
			}
			else
			{
				return false;
			}
		break;
		
		case 3 :
			if ( ! CheckNull( id , len , info ) )
			{
				return false;
			}		
			if ( ! regExpSub( id , regExp[ 0 ] ) )
			{
				alert( info );
				document.getElementById(id).focus();
				return false;
			}
		break;
		
		case 4 :
			if ( ! CheckNull( id , len , info ) )
			{
				return false;
			}		
			if (  ! regExpSub( id , regExp[ 1 ] ) )
			{
				alert( info );
				document.getElementById(id).focus();
				return false;
			}
		break;
		
		case 5 :
			if ( ! CheckNull( id , len , info ) )
			{
				return false;
			}		
			if (  ! regExpSub( id , regExp[ 2 ] ) )
			{
				alert( info );
				document.getElementById(id).focus();
				return false;
			}
		break;
		
		case 6 :
			if ( ! CheckNull( id , len , info ) )
			{
				return false;
			}		
			if ( ! regExpSub( id , regExp[ 3 ] ) )
			{
				alert( info );
				document.getElementById(id).focus();
				return false;
			}
		break;
		
	}
	return true;
	
}

function idArray()
{
	var x = true;
	for ( var i in check_idArray )
	{
		if ( ! checkThisValue( check_idArray[ i ][ 0 ],check_idArray[ i ][ 1 ],check_idArray[ i ][ 2 ],check_idArray[ i ][ 3 ] ) )
		{
			x = false;
			break;
		}
	}
	return x;
}

function DO()
{
	return idArray();
}
