﻿// JScript 文件
/**
 * @fileoverview  基础函数库
 * @author nj | nj_better@sina.com.cn
 */
 
/**
 * 在当前节点的父节点的子级节点列表末尾添加提示框
 * @param {String} cId：当前节点id
 * @param {String} msg：提示信息
 */
var showError = function(cId, msg) {
    var pNode = $(cId).parentNode;
    var newId = cId + '_error1';
    var InfoNode = $(newId);
    if (InfoNode == null) {
        InfoNode = $C('span');
        InfoNode.id = newId
        InfoNode.className = "errspan";
        pNode.appendChild(InfoNode);
    }
    /*$addClassName(cId, 'redborder');*/
    InfoNode.innerHTML = '<div class="errimg"></div><div class="errfont">' + msg + '</div>';
}

/**
 * 在当前节点的父节点的子级节点列表中移除提示框
 * @param {String} cId：当前节点id
 */
var hideError = function(cId)
			{
			  var InfoNode=$(cId+'_error1');
			  if(InfoNode!=null)
			  {
			    $(cId).parentNode.removeChild(InfoNode);
			    /*$removeClassName(cId,'redborder');*/
			  }
			}	
			
/**
 * 初始化需要进行验证信息
 * @param {Array} arrObj：一个Object类型的数组
 * @param {String} suId ：提交按钮id
 */
function Validator(arrObj,suId)
{
  for(var j=0;j<arrObj.length;j++)
  {
     var curNode=$(arrObj[j].cId);
	 if(curNode !=null)
	 {
	   curNode.setAttribute("arrVtype",arrObj[j].arrVtype)
	   curNode.onblur = function()
	   {
	      var arrVtype =this.arrVtype;
	      for(var i=0;i<arrVtype.length;i++)
		  {
	         var Restr=Validate(arrVtype[i],this.id);
	         if(Restr!=null)
		     {
		         showError(this.id, Restr);
		         $removeClassName(this.id, 'Yeborder');
		         break;
		     }
		     else
		     {
		         hideError(this.id);
		         $removeClassName(this.id, 'Yeborder');

		    }
	      }
	   }
	   curNode.onfocus = function()
	   {
                 hideError(this.id);
	       $addClassName(this.id,'Yeborder');
	   }
	  }   
  }
    $(suId).onclick=function()
	{
	   var Result=true;
	   for(var j=0;j<arrObj.length;j++)
       {
         var curNode=$(arrObj[j].cId);
         if(curNode !=null)
         {
            var arrVtype =arrObj[j].arrVtype;
            for(var i=0;i<arrVtype.length;i++)
	        {
	           var Restr=Validate(arrVtype[i],curNode.id);
	             if(Restr!=null)
	             {
	                 showError(curNode.id,Restr);
				     Result=false;
	                 break;
	             }
	             else
	             {
	                hideError(curNode.id);
	             }
	        } 
         }
       }
	   return Result;
	 }
  }
  
function Testor(cId,arrVtype)
{
   this.cId=cId;
   this.arrVtype=arrVtype;
}

/**
 * 根据条件对控件值进行验证
 * @param {int} vType：验证条件
 * @param {String} cId ：节点id
 */
function Validate(vType,cId)
{
   var curNode=$(cId);
   var Restr = null;
   switch(vType)
   {
      case 1: 
	   if(curNode.value=="")
	   {
	     Restr="不能为空！";
	   }
	  break;
	  case 2:
	   var result=/[A-Z]/.test(curNode.value); 
	   if(result)
	   {
	     Restr="不能大写！";
	   }
	  break;
	  case 3:
	   var result=/^[0-9a-z][_.0-9a-z-]{0,31}@([0-9a-z][0-9a-z-]{0,30}\.){1,4}[a-z]{2,4}$/.test(curNode.value); 
	   if(!result)
	   {
	     Restr="邮件地址格式不正确！";
	   }
	  break;
	  case 4:
	   var result= /^1(3\d{1}|5[389])\d{8}$/.test(curNode.value); 
	   if(!result)
	   {
	     Restr="手机号码格式不正确！";
	   }
	  break;
	 
   }
   return Restr;
}

