/*■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
 * 代码编写者：康小军 刘吉涛
 * 编写时间：2005年5月12日
 * 版权单位：三峡大学信息技术中心 三峡大学人事处
 * 统一表单验证方法:
 * 使用方法：将需要验证的表单内容后面加隐藏域；隐藏域命名规则[需要验证的元素名]_[验证形式标志]；
 * 隐藏域的值为出错后的提示信息；
 * 验证标志：b为必填，s为数字类型，e为email格式，f为验证身份证号是否合法；
 * 调用方式：(1)将本文件在插入表单的文件中调用；
 *           (2)将 onSubmit="return cheakform(this.name);" 复制到<form>标签中；
 *■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/

function cheakform(formname)
{
var arrlength=eval(formname+".elements.length;");
for(n=0;n<arrlength;n++)
 {
    textname=eval(formname+".elements[n].name;");
    if(textname.substr(textname.length-2,1)=="_")
	{
	hname=textname.substring(2,textname.length-2);
	hvalue=eval(formname+".elements[n].value;");
	hou=textname.substr(textname.length-2,2);
	tvalue=eval(formname+"."+hname+".value;");			
	   switch (hou)
	   {
	   case "_b":
	     if(tvalue.length<1){
	     alert(hvalue);eval("document." +formname+ "." +hname+ ".focus();"); return false;}
             break;
	   case "_s":
	     re_s=new RegExp("[^0-9]");
	     if(re_s.test(tvalue) && tvalue!=""){
	     alert(hvalue);eval("document." +formname+ "." +hname+ ".focus();");return false;}
	     break;
	   case "_e":
	     re_e=new RegExp("^([a-zA-Z0-9_-])+(\@)+([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+","i");
	     if(!re_e.test(tvalue) && tvalue!=""){
	     alert(hvalue);eval("document." +formname+ "." +hname+ ".focus();");return false;}
	     break;
	   case "_r":
	     re_c0=new RegExp("^([0-9]{4,4})+([-])+([0])+([1-9]{1,1})+([-])+([0])+([1-9]{1,1})");
	   	 re_c1=new RegExp("^([0-9]{4,4})+([-])+([0])+([1-9]{1,1})+([-])+([1-2]{1,1})+([0-9]{1,1})");
	     re_c2=new RegExp("^([0-9]{4,4})+([-])+([0])+([1-9]{1,1})+([-])+([3])+([0-1]{1,1})");
	     re_c3=new RegExp("^([0-9]{4,4})+([-])+([1])+([0-2]{1,1})+([-])+([0])+([1-9]{1,1})");
	     re_c4=new RegExp("^([0-9]{4,4})+([-])+([1])+([0-2]{1,1})+([-])+([1-2]{1,1})+([0-9]{1,1})");
	     re_c5=new RegExp("^([0-9]{4,4})+([-])+([1])+([0-2]{1,1})+([-])+([3])+([0-1]{1,1})");

	     if(!re_c0.test(tvalue) &&!re_c1.test(tvalue)&&!re_c2.test(tvalue)&!re_c3.test(tvalue)&&!re_c4.test(tvalue)&&!re_c5.test(tvalue)){
	     alert(hvalue);eval("document." +formname+ "." +hname+ ".focus();");return false;}
	     break;
	   case "_y":
             re_c=new RegExp("^([0-9]{4,4})+([-])+([0])+([1-9]{1,1})");
            if(tvalue.length!==0){
	     re_c1=new RegExp("^([0-9]{4,4})+([-])+([1])+([0-2]{1,1})");
	     if(!re_c.test(tvalue) &&!re_c1.test(tvalue) ){
	     alert(hvalue);eval("document." +formname+ "." +hname+ ".focus();");return false;}}
	     break;
      
	   case "_n":
	     re_n=new RegExp("^([0-9]{4,4})+([-])+([0-9]{4,4})");
		 if(tvalue.length!==0){
	     if(!re_n.test(tvalue) && tvalue.length!=9){
	     alert(hvalue);eval("document." +formname+ "." +hname+ ".focus();");return false;}}
	     break;
	  case "_c":
	     re_c=new RegExp("^([0-9]{2,2})+([-])+([0-9]{4,4})");
		 if(tvalue.length!==0){
	     if(!re_c.test(tvalue) && tvalue.length!=7){
	     alert(hvalue);eval("document." +formname+ "." +hname+ ".focus();");return false;}}
	     break;
	  case "_I":
	     re_I=new RegExp("[^a-zA-Z0-9-]");
		 if(tvalue.length!==0){
	     if(!re_I.test(tvalue) && tvalue.length!=13){
	     alert(hvalue);eval("document." +formname+ "." +hname+ ".focus();");return false;}}
	     break;
       case "_i":
	     if(tvalue.length>10){
	     alert(tvalue);
         eval("document." +formname+ "." +hname+ ".focus();"); return false;}
         break; 
		case "_t":
		 if(!tvalue)
		   {
		     alert(hvalue);		 
		     eval("document." +formname+ "." +hname+ ".focus();");
			  return false;           
		   }
		 else 
		   {
		    if(tvalue.length<10 || tvalue.length>10 || !isdate(tvalue)){
		     alert("日期格式不正确，请按找标准格式输入。例如：2006-06-01");		 
		     eval("document." +formname+ "." +hname+ ".focus();"); return false;}
            }
		 break; 
		case "_u":
		 if(tvalue && tvalue!="0000-00-00")
		   {
		    if(tvalue.length<10 || tvalue.length>10 || !isdate(tvalue)){
		     alert("日期格式不正确，请按找标准格式输入。例如：2006-06-01");		 
		     eval("document." +formname+ "." +hname+ ".focus();"); return false;}
            }
		 break; 	
		case "_f":
	     if(!validIdCard(tvalue)){
	     alert("请输入合法的身份证号");
         eval("document." +formname+ "." +hname+ ".focus();"); return false;}
         break;		
	   }	   
	}
 }
 return true;
}



/*■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
 * 日期输入验证 add by gaozhang
 *■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/
function isdate(strDate){ 
var strSeparator = "-"; //日期分隔符 
var strDateArray; 
var intYear; 
var intMonth; 
var intDay; 
var boolLeapYear; 

if(strDate==null)
return true ;
else
{ 
strDateArray = strDate.split(strSeparator); 
 
if(strDateArray.length!=3) return false; 
 
intYear = parseInt(strDateArray[0],10); 
intMonth = parseInt(strDateArray[1],10); 
intDay = parseInt(strDateArray[2],10); 
 
if(isNaN(intYear)||isNaN(intMonth)||isNaN(intDay)) return false; 
 
if(intMonth>12||intMonth<1) return false; 
 
if((intMonth==1||intMonth==3||intMonth==5||intMonth==7||intMonth==8||intMonth==10||intMonth==12)&&(intDay>31||intDay<1)) return false; 
 
if((intMonth==4||intMonth==6||intMonth==9||intMonth==11)&&(intDay>30||intDay<1)) return false; 
 
if(intMonth==2){ 
if(intDay<1) return false; 
 
boolLeapYear = false; 
if((intYear%100)==0){ 
if((intYear%400)==0) boolLeapYear = true; 
} 
else{ 
if((intYear%4)==0) boolLeapYear = true; 
} 
 
if(boolLeapYear){ 
if(intDay>29) return false; 
} 
else{ 
if(intDay>28) return false; 
} 
} 
return true; 
}
} 

/*■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
 * 身份证号码输入验证 add by gaozhang
 *■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/

function validIdCard(x)
{
	var isRight=true;
	var xLength=x.length;
	if (xLength==15)
	{
		for (var i=0;i<xLength-1;i++)
		{
			var k = x.charAt(i);
			if ((k<'0' && k!='.') || (k>'9' && k!='.' ))
			{
				isRight=false;
				break;
			}
		}
            var m=x.charAt(14);   
            if (m!='x' && m!='X'&&((m<'0' && m!='.') || (m>'9' && m!='.' )))
		{
                                isRight=false;
		}
	}
	else if (xLength==18)
	{
		for (var i=0;i<xLength-1;i++)
		{
			var k = x.charAt(i);
			if (i!=xLength-1)
			{
				if (k<'0' || k>'9')
				{
					isRight=false;
					break;
				}
			}
			else
			{
				if ((k<'0' || k>'9') && (k<'a' || k>'z') && (k<'A' || k >'Z'))
				{
					isRight=false;
					break;
				}
			}
		}
               var n=x.charAt(17);   
             if (n!='x' && n!='X'&&((n<'0' && n!='.') || (n>'9' && n!='.' )))
		{
					isRight=false;
               	}

	}
	else
	{
		                        isRight=false;
	}	
	return isRight;
}




/*■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
 * 修改表单信息的统一处理：
 * 使用方法：在新表单中附加建一隐藏域或文本域储存新的数据；
 * 输入参数：formname（需要修改的表单），hname（储存新数据的文本域）,
 * tabname（需要修改的数据库表名）
 * 无返回值
 *■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/

function update(formname,hname,tabname)
{ 
  var tname,dvalue,nvalue,thestr,tmp="",issh="";
  var arrlength=eval(formname+".elements.length;");
  var obj=eval("document." + formname +"." + hname + ";");
       obj.value="";
  thestr="update " + tabname + " set ";  
  
  re_s=new RegExp("[.]");
  for (n=0;n<arrlength;n++)
  { 
  tname=eval(formname+".elements[n].name;");
  dvalue=eval(formname+".elements[n].defaultValue;");
  nvalue=eval(formname+".elements[n].value;");
  
 if(nvalue!=dvalue  && (nvalue!="" || (nvalue=="" && (tname.substr(2,5)=="spqsj" || tname.substr(2,5)=="spzsj" || tname.substr(2,6)=="zcqdsj" || tname.substr(2,8)=="jsdjqdsj" || tname.substr(2,8)=="zhxlqdsj" || tname.substr(2,8)=="zhxwqdsj"))) && tname.substr(0,2)!="t_")
	{
	if(!isNaN(nvalue) && !re_s.test(nvalue) && nvalue.substr(0,1)!=0){tmp=tmp + tname +"=" + nvalue + ",";}
	else{tmp=tmp + tname +"='" + nvalue + "',";}
	}
  }
  thestr=thestr + " " + tmp;
  //if(tmp==""){alert("你没有输入任何新资料！");return false;} 
  if(tmp=="") thestr="";
  thestr=thestr.substring(0,thestr.length-1); 
  obj.value=thestr;
}
/*■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
 * 统一插入的处理
 * 使用方法：在新表单中附加建一隐藏域或文本域储存新的数据；
 * 输入参数：formname（需要修改的表单），hname（储存新数据的文本域）,
 * tabname（需要修改的数据库表名）
 +■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/
function tonginsert(formname,hname,tabname)
{ 
  var tname,dvalue,nvalue,thestr,tmp="",tmp1="";
  var arrlength=eval(formname +".elements.length;");
  var obj=eval("document." + formname +"." + hname + ";");
       obj.value="";
  thestr="insert into " + tabname;
  re_s=new RegExp("[.]");
  for (n=0;n<arrlength;n++)
  { 
  tname=eval(formname +".elements[n].name;");
  nvalue=eval(formname +".elements[n].value;");
    if(nvalue!="" && tname.substr(0,2)!="t_")
	{
	if(!isNaN(nvalue) && !re_s.test(nvalue) && nvalue.substr(0,1)!=0){tmp=tmp +  nvalue + ",";}
	else{tmp=tmp + "'" + nvalue + "',";}
	tmp1=tmp1 + tname +",";
	}
  }
  tmp=tmp.substr(0,tmp.length-1);
  tmp1=tmp1.substr(0,tmp1.length-1);
  thestr=thestr + " (" + tmp1 +")values(" + tmp + ")";
  //if(tmp==""){alert("你没有输入任何新资料！");return false;}
  obj.value=thestr;
}

/*■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
 * 表单重置函数：
 * 输入参数：formname（表单名）
 * 无返回值
 *■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/

function reclear(formname)
{
  var arrlength=eval(formname+".elements.length;");
  for(i=0;i<arrlength;i++)
  {
  obj=eval(formname+".elements[i];");
  obj.value=obj.defaultValue;
  }
}

/*■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
 * 本函数用于限制文本输入框中只能输入数字"0"到"9"

 * 无返回值
 *■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/
function JHshNumberText()
{
if ( !(((window.event.keyCode >= 48) && (window.event.keyCode <= 57)) 
|| (window.event.keyCode == 13) 
))
{
window.event.keyCode = 0 ;
}
} 

/*■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
 * 本函数用于限制文本输入框中输入内容

 * 无返回值
 *■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/
function JHshNumberText1()
{
  window.event.keyCode = 0 ;
} 
