function formCheckByArr(targetObj,targetArr,warnType,bFocus){
	if(!targetObj)
		return false;
	var checkObj = null; 
	var checkType = null;
	
	if (targetObj.nodeName.toUpperCase()=="FORM")
	{
		checkObj = targetObj.getElementsByTagName("*");
		checkType = "FORM";
	}else{
		checkObj = new Array(targetObj);
		checkType = "OBJ";
	}
	var bErrorALL = false;
	for (var i=0;i<checkObj.length;i++){
		var itemType = checkObj[i].nodeName.toUpperCase();
		if (itemType!="INPUT"&&itemType!="SELECT")
			continue;
		var itemCType = checkObj[i].type.toUpperCase();
		
		if(itemCType!='CHECKBOX'){
			var itemValue = checkObj[i].value;
		}else{
			if(checkObj[i].checked){
				var itemValue = checkObj[i].value;
			}else{
				var itemValue ='';
			}
		}
		var checkflag = null;
		for(var j=0;j<targetArr.length;j++){
			if (targetArr[j][0]==checkObj[i].name)
			{
				checkflag = targetArr[j];
				break;
			}
		}
		if (checkflag == null||!targetArr[j][1])
		{
			continue;
		}
		//验证控件
		var bError = false;
		for (var x=9;x<checkflag.length;x++)
		{	
			switch(checkflag[x][1].toUpperCase()){
				//-------------------- 我是分隔线 --------------------
				case "EMPTY":
					if (itemCType == "RADIO"){
						var objArray = document.getElementsByName(checkObj[i].name);
						var check_flag = false;
						if (objArray != null && objArray.length != null) {
				        	for(var xx = 0; xx < objArray.length; xx++){
				        		if(objArray[xx].checked){
									check_flag = true;
									break;
								}
				        	}
				        	if (check_flag==false){
				        		checkAlert(warnType,checkflag[x][0],targetArr[j][2],targetArr[j][5]);
								if (bFocus){
									checkObj[i].focus();
									return false;
								}else{
									bError = true;
								}
				        	}
				       	}
					}else{
						if (isEmpty(itemValue)){
							checkAlert(warnType,checkflag[x][0],targetArr[j][2],targetArr[j][5]);
							if (bFocus){
								checkObj[i].focus();
								return false;
							}else{
								bError = true;
							}
						}
					}

					break;
				//-------------------- 我是分隔线 --------------------
				case "EMPTY2":
					if (isEmpty(itemValue)&&isEmpty(document.getElementById(checkflag[x][2]).value)){
						checkAlert(warnType,checkflag[x][0],targetArr[j][2],targetArr[j][5]);
						if (bFocus){
							checkObj[i].focus();
							return false;
						}else{
							bError = true;
						}
					}
					break;
				//-------------------- 我是分隔线 --------------------
				case "LENGTH":
					if (!isEmpty(itemValue)&&(getByteCount(itemValue)<checkflag[x][2]||getByteCount(itemValue)>checkflag[x][3])){
						checkAlert(warnType,checkflag[x][0],targetArr[j][2],targetArr[j][5]);
						if (bFocus){
							checkObj[i].focus();
							return false;
						}else{
							bError = true;
						}
					}
					break;
				//-------------------- 我是分隔线 --------------------
				case "SMAX":
					if (!isEmpty(itemValue)&&getByteCount(itemValue)>checkflag[x][2]){
						checkAlert(warnType,checkflag[x][0],targetArr[j][2],targetArr[j][5]);
						if (bFocus){
							checkObj[i].focus();
							return false;
						}else{
							bError = true;
						}
					}
					break;
				//-------------------- 我是分隔线 --------------------
				case "SMIN":
					if (!isEmpty(itemValue)&&getByteCount(itemValue)<checkflag[x][2]){
						checkAlert(warnType,checkflag[x][0],targetArr[j][2],targetArr[j][5]);
						if (bFocus){
							checkObj[i].focus();
							return false;
						}else{
							bError = true;
						}
					}
					break;
				//-------------------- 我是分隔线 --------------------
				case "INT":
					if (!isEmpty(itemValue)&&!isInteger(itemValue)){
						checkAlert(warnType,checkflag[x][0],targetArr[j][2],targetArr[j][5]);
						if (bFocus){
							checkObj[i].focus();
							return false;
						}else{
							bError = true;
						}
					}
					break;
				//-------------------- 我是分隔线 --------------------
				case "NUM":
					if (!isEmpty(itemValue)&&!isNumber(itemValue)){
						checkAlert(warnType,checkflag[x][0],targetArr[j][2],targetArr[j][5]);
						if (bFocus){
							checkObj[i].focus();
							return false;
						}else{
							bError = true;
						}
					}
					break;	
				//-------------------- 我是分隔线 --------------------
				case "IMAX":
					if (!isEmpty(itemValue)&&!isNumber(itemValue)){
						checkAlert(warnType,checkflag[x][0],targetArr[j][2],targetArr[j][5]);
						if (bFocus){
							checkObj[i].focus();
							return false;
						}else{
							bError = true;
						}
					}
					if(parseFloat(itemValue)>checkflag[x][2])
					{	
						checkAlert(warnType,checkflag[x][0],targetArr[j][2],targetArr[j][5]);
						if (bFocus){
							checkObj[i].focus();
							return false;
						}else{
							bError = true;
						}
					}
					break;	
				//-------------------- 我是分隔线 --------------------
				case "IMIN":
					if (!isEmpty(itemValue)&&!isNumber(itemValue)){
						checkAlert(warnType,checkflag[x][0],targetArr[j][2],targetArr[j][5]);
						if (bFocus){
							checkObj[i].focus();
							return false;
						}else{
							bError = true;
						}
					}
					if(parseFloat(itemValue)<checkflag[x][2])
					{	
						checkAlert(warnType,checkflag[x][0],targetArr[j][2],targetArr[j][5]);
						if (bFocus){
							checkObj[i].focus();
							return false;
						}else{
							bError = true;
						}
					}
					break;	
				//-------------------- 我是分隔线 --------------------
				case "EMAIL":
					if (!isEmpty(itemValue)&&!checkEmail(itemValue)){
						checkAlert(warnType,checkflag[x][0],targetArr[j][2],targetArr[j][5]);
						if (bFocus){
							checkObj[i].focus();
							return false;
						}else{
							bError = true;
						}
					}
					break;				
				//-------------------- 我是分隔线 --------------------
				case "PASSWORD":
					if (!isEmpty(itemValue)&&checkPassword(itemValue)){
						checkAlert(warnType,checkflag[x][0],targetArr[j][2],targetArr[j][5]);
						if (bFocus){
							checkObj[i].focus();
							return false;
						}else{
							bError = true;
						}
					}
					break;
				//-------------------- 我是分隔线 --------------------
				case "TEL":
					if (!isEmpty(itemValue)&&!checkTel(itemValue)){
						checkAlert(warnType,checkflag[x][0],targetArr[j][2],targetArr[j][5]);
						if (bFocus){
							checkObj[i].focus();
							return false;
						}else{
							bError = true;
						}
					}
					break;
				//-------------------- 我是分隔线 --------------------
				case "MOBILE":
					if (!isEmpty(itemValue)&&!checkMobile(itemValue)){
						checkAlert(warnType,checkflag[x][0],targetArr[j][2],targetArr[j][5]);
						if (bFocus){
							checkObj[i].focus();
							return false;
						}else{
							bError = true;
						}
					}
					break;				
				//-------------------- 我是分隔线 --------------------
				case "QQ":
					if (!isEmpty(itemValue)&&!checkQQ(itemValue)){
						checkAlert(warnType,checkflag[x][0],targetArr[j][2],targetArr[j][5]);
						if (bFocus){
							checkObj[i].focus();
							return false;
						}else{
							bError = true;
						}
					}
					break;
				//-------------------- 我是分隔线 --------------------
				case "POSTCODE":
					if (!isEmpty(itemValue)&&!checkPostcode(itemValue)){
						checkAlert(warnType,checkflag[x][0],targetArr[j][2],targetArr[j][5]);
						if (bFocus){
							checkObj[i].focus();
							return false;
						}else{
							bError = true;
						}
					}
					break;
				//-------------------- 我是分隔线 --------------------
				case "SAME":
					if (!isEmpty(itemValue)&&itemValue!=document.getElementById(checkflag[x][2]).value){
						checkAlert(warnType,checkflag[x][0],targetArr[j][2],targetArr[j][5]);
						if (bFocus){
							checkObj[i].focus();
							return false;
						}else{
							bError = true;
						}
					}
					break;
				//-------------------- 我是分隔线 --------------------
				case "NOTSAME":
					if (!isEmpty(itemValue)&&itemValue==document.getElementById(checkflag[x][2]).value){
						checkAlert(warnType,checkflag[x][0],targetArr[j][2],targetArr[j][5]);
						if (bFocus){
							checkObj[i].focus();
							return false;
						}else{
							bError = true;
						}
					}
					break;
				//-------------------- 我是分隔线 --------------------
				case "NICKNAME":
					if (!isEmpty(itemValue)&&!checkNickname(itemValue)){
						checkAlert(warnType,checkflag[x][0],targetArr[j][2],targetArr[j][5]);
						if (bFocus){
							checkObj[i].focus();
							return false;
						}else{
							bError = true;
						}
					}
					break;
				//-------------------- 我是分隔线 --------------------				
				case "USERNAME":
					if (!isEmpty(itemValue)&&!checkUsername(itemValue)){
						checkAlert(warnType,checkflag[x][0],targetArr[j][2],targetArr[j][5]);
						if (bFocus){
							checkObj[i].focus();
							return false;
						}else{
							bError = true;
						}
					}
					break;
				//-------------------- 我是分隔线 --------------------
				case "CATE":
					if (!isEmpty(itemValue)&&checkObj[i].options[checkObj[i].selectedIndex].text==".."){
						checkAlert(warnType,checkflag[x][0],targetArr[j][2],targetArr[j][5]);
						if (bFocus){
							checkObj[i].focus();
							return false;
						}else{
							bError = true;
						}
					}
					break;
				//-------------------- 我是分隔线 --------------------
				default:
					alert("不可识别的校验信息,请联系系统管理员!ErrorCode:"+checkflag[x][1].toUpperCase());
					if (bFocus){
						checkObj[i].focus();
						return false;
					}else{
						bError = true;
					}
					break;
			}
			if (bError)
			{
				bErrorALL = true;
				break;
			}
		}
		if (!bError){
			if (warnType=="div")
			{
				if (itemValue==null||itemValue=="")
				{
					var warnDiv = document.getElementById(targetArr[j][2]);
					warnDiv.innerHTML = targetArr[j][6];
					warnDiv.className = targetArr[j][3];
					//document.getElementById(targetArr[j][0]).focus();
				}else{
					var warnDiv = document.getElementById(targetArr[j][2]);
					warnDiv.innerHTML = targetArr[j][7];
					warnDiv.className = targetArr[j][4];
				}
			}
			if(checkType=="OBJ"&&checkflag[8]!=null){
				eval(checkflag[8]+"();");
			}
		}
	}
	return !bErrorALL;
}

function checkAlert(warn_Type,msg_Info,objID,style_ERROR)  
{	
	if (msg_Info==null||msg_Info=="")
	{
		msg_Info = "<span style='margin-left:20px;'>您输入的数据不符合要求，请核实！</span>";
	}

	if (warn_Type=="alert")
	{
		alert(msg_Info);
	}else{
		var warnDiv = document.getElementById(objID);
		if (warnDiv)
		{
			warnDiv.innerHTML = msg_Info;
			warnDiv.className = style_ERROR;
		}
	}
	return;
}

function isEmpty(temp)  
{//是否为空
	return ((temp==null)||(strim(temp).length==0))
}

function isNumber(str) 
{//是否是数字
	if(strim(str)=="")
		return false;

	var i; 
	for(i=0;i<str.length;i++) 
	{ 
		var ch=str.charAt(i); 
		if((ch<'0'||ch>'9')&&ch!='.') return false; 
	}
	if(str==".")
		return false;

	return true; 
} 

function isInteger(str) 
{//是否是整型数
	if(strim(str)=="")
		return false;

	var i; 
	for(i=0;i<str.length;i++) 
	{ 
		var ch=str.charAt(i); 
		if(ch<'0'||ch>'9') return false; 
	}
	return true; 
}

function checkEmail(check_obj)
{//检查Email格式是否正确
    if(check_obj.search(/^[\w-\.]+@[\w-\.]+(\.[A-Za-z]{2,3})+$/)>=0){
        return true;
      }else{
        return false;
      }
}
function checkPassword(check_obj){
	//检查密码格式是否正确
	if(check_obj.search(/^[\u0391-\uFFE5]+$/)>=0){
		return true;
	}
	else{
		return false;
	}
}
function checkNickname(check_obj)
{//检查昵称是否合法
	var pattern_cn = /^[^0-9]{1}([\u4E00-\u9FA5]|[a-zA-Z0-9_])*$/;
	if(pattern_cn.test(check_obj)){
//		if((check_obj.slice(check_obj.length-1)=="_"||check_obj.slice(0,1)=="_")){
//			return false;
//		}
		return true;
	}else{
		return false;
	}
}
function checkUsername(check_obj)
{//检查用户名是否合法
	var pattern_cn = /^[a-z0-9-_]*$/;
	if(pattern_cn.test(check_obj)){
		//if((check_obj.slice(check_obj.length-1)=="_"||check_obj.slice(0,1)=="_")){
		//	return false;
		//}
		return true;
	}else{
		return false;
	}
}

function checkTel(check_obj)
{//检查电话格式是否正确
	var pattern_cn = /^([-0-9])*$/;
	if(pattern_cn.test(check_obj)){
		return true;
	}else{
		return false;
	}
}

function checkMobile(check_obj)
{//检查手机格式是否正确
	var pattern_cn = /1[3,5]\d{9}$/;
	if(pattern_cn.test(check_obj)){
		return true;
	}else{
		return false;
	}
}
function checkQQ(check_obj)
{//检查QQ号码是否正确
	var pattern_cn = /^\d{5,10}$/;
	if(pattern_cn.test(check_obj)){
		return true;
	}else{
		return false;
	}
}

function checkPostcode(check_obj)
{//检查邮政编码格式是否正确
	var pattern_cn = /\d{6}/;
	if(pattern_cn.test(check_obj)){
		return true;
	}else{
		return false;
	}
}


//密码强度;
function PasswordStrength(showed){	
	this.showed = (typeof(showed) == "boolean")?showed:true;
	this.styles = new Array();	
	this.styles[0] = {backgroundColor:"#ffffff"};	
	this.styles[1] = {backgroundColor:"#cccccc"};
	this.styles[2] = {backgroundColor:"#FFCC00"};
	this.styles[3] = {backgroundColor:"#33CC00"};
	
	this.labels= ["弱","中","强"];

	this.divName = "pwd_div_"+Math.ceil(Math.random()*100000);
	this.minLen = 6;
	
	this.content = "";
	
	this.selectedIndex = 0;
	
	this.init();	
}
PasswordStrength.prototype.init = function(){

	var s = '<table width="110" border="0" cellspacing="1" cellpadding="0" id="'+this.divName+'_table">';
	s += '<tr>';
	for(var i=0;i<3;i++){
		s +='<td align="center" bgcolor="#CCCCCC" id="'+this.divName+'_td_'+i+'">'+this.labels[i]+"</td>";
	}	
	s += '</tr>';
	s += '</table>';
	this.content = s;
	if(this.showed){
		document.write(s);
		this.copyToStyle(this.selectedIndex);
	}	
}
PasswordStrength.prototype.copyToObject = function(o1,o2){
	for(var i in o1){
		o2[i] = o1[i];
	}
}
PasswordStrength.prototype.copyToStyle = function(id){
	if(id>3){
		id=3;
	}
	this.selectedIndex = id;
	for(var i=0;i<id;i++){
		this.copyToObject(this.styles[id],this.$(this.divName+"_td_"+i).style);			
	}
	for(;i<3;i++){
		this.copyToObject(this.styles[0],this.$(this.divName+"_td_"+i).style);
	}
	
}
PasswordStrength.prototype.$ = function(s){
	return document.getElementById(s);
}
PasswordStrength.prototype.setSize = function(w,h){
	this.width = w;
	this.height = h;
}
PasswordStrength.prototype.setMinLength = function(n){
	if(isNaN(n)){
		return ;
	}
	n = Number(n);
	if(n>1){
		this.minLength = n;
	}
}
PasswordStrength.prototype.setStyles = function(){
	if(arguments.length == 0){
		return ;
	}
	for(var i=0;i<arguments.length && i < 4;i++){
		this.styles[i] = arguments[i];
	}
	this.copyToStyle(this.selectedIndex);
}
PasswordStrength.prototype.write = function(s){
	if(this.showed){
		return ;
	}
	var n = (s == 'string') ? this.$(s) : s;
	if(typeof(n) != "object"){
		return ;
	}
	n.innerHTML = this.content;
	this.copyToStyle(this.selectedIndex);
}
PasswordStrength.prototype.update = function(s){
	if(s.length < this.minLen){
		this.copyToStyle(0);
		return;
	}
	var ls = -1;
	if (s.match(/[a-z]/g)){
		ls++;
	}
	if (s.match(/[0-9]/g)){
		ls++;
	}
 	if (s.match(/[A-Z]/g)){
		ls++;
	}
	if (s.match(/([^A-Za-z0-9])/)){
		ls++;
	}
	if (s.length < 6 && ls > 0){
		ls--;
	}
	if(ls>2)
		ls=2;
	 switch(ls) { 
		 case 0:
			 this.copyToStyle(1);
			 break;
		 case 1:
			 this.copyToStyle(2);
			 break;
		 case 2:
			 this.copyToStyle(3);
			 break;
		 default:
			 this.copyToStyle(0);
	 }
}
