﻿/************************************************************************/
/* 验证表单的js                                                                     */
/************************************************************************/
function auto_check_form(input_arry){
 for(var num in input_arry){
	var alert_flag=false;
	 switch(input_arry[num][2]){
	 		//验证是否有填入
       case "check":
           if(!check(getFieldElement(input_arry[num][0])))
		   alert_flag=true;
            break;
		  case "choose":
           if(!js_choose(getFieldElement(input_arry[num][0])))
		   alert_flag=true;
            break;
			 case "choose1":
           if(!js_choose1(getFieldElement(input_arry[num][0])))
		   alert_flag=true;
            break;	
		  case "maxnum"://最大字符数
           if(!js_checkNum(getFieldElement(input_arry[num][0]),input_arry[num][3]))
		   alert_flag=true;
            break;
		  case "between"://在二者之间的字符数
             if(!js_checkNumBetween(getFieldElement(input_arry[num][0]),input_arry[num][3],input_arry[num][4]))
		     alert_flag=true;
            break;
		  case "radio": //验证radiobox
          if(!js_radio(getFieldElement(input_arry[num][0])))
		   alert_flag=true;
            break;
	    case "test": //验证名称是否重复
         if(!IsSameName(getFieldElement(input_arry[num][0]),getFieldElement(input_arry[num][3])))
		   alert_flag=true;
	       break;
		  case "year":  //验证四位年份
         if(!js_IsYear(getFieldElement(input_arry[num][0])))
		   alert_flag=true;
	       break;
		   case "year2":  //验证二位年份
         if(!js_IsYear2(getFieldElement(input_arry[num][0])))
		   alert_flag=true;
	       break;
		    case "month":  //验证月份
         if(!js_IsMonth(getFieldElement(input_arry[num][0])))
		   alert_flag=true;
	       break;
		   case "partdate":  //验证年月
         if(!js_IsYMonth(getFieldElement(input_arry[num][0])))
		   alert_flag=true;
	       break;
		    case "email":  //验证Email
         if(!js_IsEmail(getFieldElement(input_arry[num][0])))
		   alert_flag=true;
	       break;
		    case "phone":  //验证电话
         if(!js_IsPhone(getFieldElement(input_arry[num][0])))
		   alert_flag=true;
	       break;
		  case "zip":  //验证邮编
		if(!js_IsZip(getFieldElement(input_arry[num][0])))
		   alert_flag=true;
	       break;
		   case "int":  //验证开头不是0的整数
		if(!js_IsInt(getFieldElement(input_arry[num][0])))
		   alert_flag=true;
	       break;
	    case "into":  //验证开头可以是0的整数
		if(!js_IsInto(getFieldElement(input_arry[num][0])))
		   alert_flag=true;
	       break;
		  case "num":  //验证整数
		if(!js_IsNum(getFieldElement(input_arry[num][0])))
		   alert_flag=true;
	       break;
	       case "valueNotNullIsNum":  //valueNotNull 时验证整数
		if(!js_valueNotNull_IsNum(getFieldElement(input_arry[num][0])))
		   alert_flag=true;
	       break;
		   case "float":  //验证浮点数
		if(!js_IsFloat(getFieldElement(input_arry[num][0])))
		   alert_flag=true;
	       break;
		 case "diff": //验证校庆日
         if(!diffdate(getFieldElement(input_arry[num][0]),getFieldElement(input_arry[num][3])))
		   alert_flag=true;
	       break;
		   case "d_f": //比较日期
         if(!date_f(getFieldElement(input_arry[num][0]),getFieldElement(input_arry[num][3])))
		   alert_flag=true;
	       break;
		  case "diffdate": //比较日期
         if(!diffdate(getFieldElement(input_arry[num][0]),getFieldElement(input_arry[num][3])))
		   alert_flag=true;
	       break;
		   case "fulldate": //验证日期
        if(!js_IsDate(getFieldElement(input_arry[num][0])))
		   alert_flag=true;
	       break;
		 case "http": //验证URL
         if(!js_IsHttp(getFieldElement(input_arry[num][0])))
		   alert_flag=true;
	       break;
		   case "mobile": //验证手机号
         if(!js_IsMobile(getFieldElement(input_arry[num][0])))
		   alert_flag=true;
	       break;
		  	case "pwd": //验证二次密码
         if(!js_IsSamePwd(getFieldElement(input_arry[num][0]),getFieldElement(input_arry[num][3])))
		   alert_flag=true;
	       break;
		 case "cday": //
         if(!check_date(getFieldElement(input_arry[num][0]),getFieldElement(input_arry[num][3]),getFieldElement(input_arry[num][4])))
		   alert_flag=true;
	       break;
		  case "cdate": //
         if(!isDate(getFieldElement(input_arry[num][0]),getFieldElement(input_arry[num][3])))
		   alert_flag=true;
	       break;
       case "reg": 
           if(!RegExption(getFieldElement(input_arry[num][0]),getFieldElement(input_arry[num][3])))
		   alert_flag=true;
	       break;
		case "china": 
           if(js_IsChinese(getFieldElement(input_arry[num][0])))
		   alert_flag=true;
	       break;
		case "matchPicFileName"://是否符合图片文件名的后缀
           if(!matchPicFileName(getFieldElement(input_arry[num][0])))
		   		alert_flag=true;
            break;
		case "matchMovieFileName"://是否符合视频文件名的后缀
		   if(!matchMovieFileName(getFieldElement(input_arry[num][0])))
				alert_flag=true;
			break;
		 case "http": //验证URL
         if(!js_IsHttp(getFieldElement(input_arry[num][0])))
		   alert_flag=true;
	       break;
		  case "idcard": //验证身份证号码
		 if(!isIdCardNo(getFieldElement(input_arry[num][0])))
		   alert_flag=true;
	       break;
		  case "phoneOrMoblie": //验证手机或固话
		  if(!js_IsMobile(getFieldElement(input_arry[num][0])) && !js_IsPhone(getFieldElement(input_arry[num][0]))) 
		   	alert_flag=true;
	       break;
	 }
	if( alert_flag){//验证提示处理
	   alert(input_arry[num][1]);
	   if(input_arry[num][3] == "hi" || getFieldElement(input_arry[num][3])=="hi"){ //如果是隐藏的就不要获得焦点
	   return false;
	   }
	   else{
		getFieldElement(input_arry[num][0]).focus();
		return false;
		}
		} 
 }
	 return true;//验证通过返回真；
}

function RegExption(txt,reg) {
  var pattern = new RegExp(reg,"gi")
  if(pattern.test(JHshTrim(txt.value))) return true;
   return false;
}

function check_date(txt1,txt2,txt3) {//验证日
 var array1=txt2.value.replace(/[\-\/\.]/gi,"-").split("-");
  var month1=array1[1];
  var day1=array1[2];
  var month2=txt1.value;
  var day2=txt3.value;
  if((parseInt(month1)+ parseInt(day1))!=(parseInt(month2) +parseInt(day2))) return false;
   return true;
}

function date_f(txt1,txt2) {//比较日期

 var array1=txt1.value.replace(/[\-\/\.]/gi,"-").split("-");
  var array2=txt2.value.replace(/[\-\/\.]/gi,"-").split("-");
    var year1=array1[0];
  var month1=array1[1];
  var day1=array1[2];
   var year2=array2[0];
  var month2=array2[1];
  var day2=array2[2];
  if((parseInt(year1)+parseInt(month1)+ parseInt(day1))>=(parseInt(year2)+parseInt(month2)+parseInt(day2))) return false;
   return true;
}

function check(txt){
	var pattern = new RegExp("[^\b|  ]","gi");
     if ( !pattern.test(JHshTrim(txt.value))) return false;
    return true;
}

//最大字符数
function js_checkNum(txt1,txt2){//maxnum
  if ( parseInt(txt1.value.length)>parseInt(txt2)) return false;
return true;
}

//在二者之间，去除前后空字符
function js_checkNumBetween(txt1,txt2,txt3){//between
    var v = JHshTrim(txt1.value);
    if( parseInt(v.length)>=parseInt(txt2)&&parseInt(v.length)<=parseInt(txt3))return true;
    return false;
}

function js_choose(txt){
  if ( parseInt(txt.value)==0) return false;
return true;
}

function js_choose1(txt){
  if ( txt.value=="") return false;
return true;
}

function js_radio(txt){
	  if(!txt.checked==false) return false;
	  return true;
}

function IsSameName(txt,test){

	var array=test.split(",");
	for(var i=0;i<array.length;i++){
     if (array[i]==txt.value){ 
	 return false;
	 break;
	 }
	}
return true;
}

function testdelete()
  {
   if (confirm("您确定要删除!")) return true;    
    return false;
  }
  
   // -----------------------------------------------------------------------------------
//本函数用于对两个日期作比较
// -----------------------------------------------------------------------------------
  function diffdate(one,two){
	function x(s){ 
	return s.replace(/\-\/\./g,"-");
	}
	if( x(one.value)>x(two.value)) {
		
		return false;
	}
	return true;
}

 // -----------------------------------------------------------------------------------
//本函数用于对sString字符串进行前后空格截除
// -----------------------------------------------------------------------------------
 function JHshTrim(sString)
{
var strTmp ;
strTmp = JHshRTrim(JHshLTrim(sString)) ;
return strTmp ;
}

 // -----------------------------------------------------------------------------------
//本函数用于对sString字符串进行前空格截除
// -----------------------------------------------------------------------------------
function JHshLTrim(sString)
{ 
var sStr,i,iStart,sResult = "";

sStr = sString.split("");
iStart = -1 ;
for (i = 0 ; i < sStr.length ; i++)
{
if (sStr[i] != " ") 
{
iStart = i;
break;
}
}
if (iStart == -1) return "" ;  //表示sString中的所有字符均是空格,则返回空串
else  
return sString.substring(iStart) ;
}

// -----------------------------------------------------------------------------------
//4.2 本函数用于对sString字符串进行后空格截除
// -----------------------------------------------------------------------------------
function JHshRTrim(sString)
{ 
var sStr,i,sResult = "",sTemp = "" ;

// if (sString.length == 0) { return "" ;} // 参数sString是空串

sStr = sString.split("");
for (i = sStr.length - 1 ; i >= 0 ; i --)  // 将字符串进行倒序
{ 
sResult = sResult + sStr[i]; 
}
sTemp = JHshLTrim(sResult) ; // 进行字符串前空格截除

if (sTemp == "") { return "" ; }

sStr = sTemp.split("");
sResult = "" ;
for (i = sStr.length - 1 ; i >= 0 ; i--) // 将经处理后的字符串再进行倒序
{
sResult = sResult + sStr[i];
}
return sResult ;
}

function  selectAll()  //全选
       {  
       var  arrObj  =  document.all;  
       for(var  i  =  0;  i  <  arrObj.length;i++)  
       {  
 if(typeof  arrObj[i].type  !=  "undefined"  &&  arrObj[i].type=='checkbox')  arrObj[i].checked  =true;  
       }  
       }  


function  unSelectAll()  //全不选
       {  
         var  arrObj  =  document.all;  
       for(var  i  =  0;  i  <  arrObj.length;i++)  
       {  
      if(typeof  arrObj[i].type  !=  "undefined"  &&  arrObj[i].type=='checkbox')  
	  arrObj[i].checked  =false;  
       }  
	}
	
	//------------------------- By danaus 10-21
function  js_IsYear(txt)  //验证年份,case "year"
      {  
	  var str=JHshTrim(txt.value);
    var reg =/^([1-9]{1})\d{3}$/;
   if( reg.test(str)) return true;
     return false;
	}
	
function  js_IsYear2(txt)  //验证二位年份,case "year2"
      {  
	  var str=JHshTrim(txt.value);
    var reg =/^\d{2}$/;
   if( reg.test(str)) return true;
     return false;
	}
	
function js_IsYMonth(txt)//验证年月,case "partdate"
{   var str=JHshTrim(txt.value);
    var reg = /^([1-9]{1}\d{3})([\-\/\.])(0?[1-9]|1?[0-2])$/;
     if( reg.test(str)) return true;
     return false;
}

function js_IsMonth(txt)//验证月,case "month"
{   var str=JHshTrim(txt.value);
    var reg = /^(0?[1-9]|1?[0-2])$/;
     if( reg.test(str)) return true;
     return false;
}

function js_IsDay(txt)//验证日,case "day"
{   var str=JHshTrim(txt.value);
    var reg = /^(0?[1-9]|[1-2]?[0-9]|3?[0-1])$/;
     if( reg.test(str)) return true;
     return false;
}

function js_IsMDay(txt)//验证月日,case "m_day"
{   var str=JHshTrim(txt.value);
    var reg = /^(0?[1-9]|1?[0-2])[\.\-\/](0?[1-9]|[1-2]?[0-9]|3?[0-1])$/;
     if( reg.test(str)) return true;
     return false;
}

function js_IsDate(txt)//验证日期,case "fulldate"
{   var str=JHshTrim(txt.value);  
//var r = str.match(/^([1-9]{1}\d{3})(-|\/|.)(\d{1,2})\2(\d{1,2})$/);
 var r = str.match(/^([1-9]{1}\d{3})(-)(\d{1,2})\2(\d{1,2})$/);
      if(r==null)return false; 
	  var d = new Date(r[1], r[3]-1, r[4]); 
   return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
}

function js_IsEmail(txt)//验证Email,case "email"
{   var str=JHshTrim(txt.value);
    var reg =/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
   if( reg.test(str)) return true;
     return false;
}

function js_IsPhone(txt)//验证电话,case "phone"
{   var str=JHshTrim(txt.value);
    var reg =/^(\d{3,4}\-)*([1-9]{1})(\d{6,7})$/;
   if( reg.test(str)) return true;
     return false;
}

function js_IsZip(txt)//验证邮编,case "zip"
{   var str=JHshTrim(txt.value);
    var reg =/^([1-9]{1})(\d{5})$/;
   if( reg.test(str)) return true;
     return false;
}

function js_IsInt(txt)//验证不为0的整数,case "int"
{   var str=JHshTrim(txt.value);
    var reg =/^([1-9]{1})\d*$/;
   if( reg.test(str)) return true;
     return false;
}

function js_IsInto(txt)//验证整数,case "into"/^\d+$/
{   var str=JHshTrim(txt.value);
    var reg =/^([0-9]{1})\d*$/;
   if( reg.test(str)) return true;
     return false;
}

function js_IsNum(txt)//验证数字,case "num"
{ 
//alert("num..........");
  var str=JHshTrim(txt.value);
    var reg =/^\d+$/;
   if( reg.test(str)) return true;
     return false;
}

function js_valueNotNull_IsNum(txt)//验证数字,case "num" txt值不为空时判断
{ 
//alert("num..........");
var pattern = new RegExp("[^\b|  ]","gi");
  if (pattern.test(JHshTrim(txt.value))){
  var str=JHshTrim(txt.value);
  		var reg =/^\d+$/;
   		if( reg.test(str)){
   			return true;
   			}else{
   			 return false;	
   			}
   		return true;
  	}
   
    return true;
}

function js_IsFloat(txt)//验证浮点数,case "float"
{   var str=JHshTrim(txt.value);
    var reg =/^\d{1,10}\.*/;
   if( reg.test(str)) return true;
     return false;
}

function MyTrim(Str){//去前后空格
	re=/^\s+/gi;
	newStr = Str.replace(re,"");
	return newStr;
}

function js_IsMobile(txt)//验证手机号,case "mobile"
{   var str=JHshTrim(txt.value);
    var reg1 =/^0?(13[0-9]{1})\d{8}$/;
    var reg2 = /^0?(15[0-9]{1})\d{8}$/;
    var reg3 = /^0?(18[0-9]{1})\d{8}$/;
    if (reg1.test(str) || reg2.test(str) || reg3.test(str)) return true;
     return false;
}

function js_IsHttp(txt)//验证URL,case "http"
{   var str=JHshTrim(txt.value);
   // var reg =/http:\/\/([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?/
	var reg=/^(http:\/\/)?[w]{3}\.[\w]+\.[\w]{2,3}$/;
   if( reg.test(str)) return true;
     return false;
}

function js_IsSamePwd(txt1,txt2)//验证二次密码,case "pwd"
{   var str1=JHshTrim(txt1.value);
   var str2=JHshTrim(txt2.value);
	return(str1==str2);
}
 function js_IsChinese(txt)//验证是否为汉字,case "china"
{   var str=JHshTrim(txt.value);
	var reg=/[^\x00-\xff]/;
   if( reg.test(str)) return true;
     return false;
}
function KeyIsNumber(KeyCode)  //
{

    //如果输入的字符是在0-9之间，或者是backspace、DEL键,小数点
    if(((KeyCode>47)&&(KeyCode<58))||(KeyCode==8)||(KeyCode==46)||(KeyCode==190)||((KeyCode>95)&&(KeyCode<106))||(KeyCode==110)||(KeyCode==9))
    {
          return true;
    }
    else
    {
          return false;
     }
}

/**
 * 是否符合图片文件名的后缀
 */
function matchPicFileName(txt1){
	var imgpostfix = new Array('.gif','.png','.jpg','.jpeg','.bmp');
	if( JHshTrim(txt1.value) != ''){
		for(var i = 0; i < imgpostfix.length; i++){
			if(txt1.value.toLowerCase().lastIndexOf(imgpostfix[i])  > 0){
				return true;	
			}
		}
		return false;
	}
	
	return true;
}

/**
* 是否符合视频文件的后缀
*/
function matchMovieFileName(txt1) {
	var moviepostfix = new Array('.rm','.rmvb','.wma','.wmv','.mpg', '.mpeg', '.avi');
	var filename = JHshTrim(txt1.value);
	if( filename != ''){
		for(var i = 0; i < moviepostfix.length; i++){
			if(filename.toLowerCase().lastIndexOf(moviepostfix[i])  > 0){
				return true;	
			}
		}
	    return false;
	}
	return false;
}

function js_IsHttp(txt)//验证URL,case "http"
{   var str=JHshTrim(txt.value);
   // var reg =/http:\/\/([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?/
	//var reg=/^(http:\/\/)?[w]{3}\.[\w]+\.[\w]{2,3}$/;
	var reg = /(http[s]?|ftp):\/\/[^\/\.]+?\..+\w$/i;
   if( reg.test(str)) return true;
     return false;
}

//验证身份证号码
function isIdCardNo(txt) 
{
    var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
    var error;
    var varArray = new Array();
    var intValue;
    var lngProduct = 0;
    var intCheckDigit;
    var intStrLen = txt.value.length;
    var idNumber = txt.value;    
    if ((intStrLen != 15) && (intStrLen != 18)) {
        return false;
    }    
    // check and set value
    for(i=0;i<intStrLen;i++) {
        varArray[i] = idNumber.charAt(i);
        if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {
            return false;
        } else if (i < 17) {
            varArray[i] = varArray[i]*factorArr[i];
        }
    }
    if (intStrLen == 18) {
        //check date
        var date8 = idNumber.substring(6,14);
        if (checkDate(date8) == false) {
            return false;
        }        
        for(i=0;i<17;i++) {
            lngProduct = lngProduct + varArray[i];
        }        
        intCheckDigit = 12 - lngProduct % 11;
        switch (intCheckDigit) {
            case 10:
                intCheckDigit = 'X';
                break;
            case 11:
                intCheckDigit = 0;
                break;
            case 12:
                intCheckDigit = 1;
                break;
        }        
        if (varArray[17].toUpperCase() != intCheckDigit) {
            return false;
        }
    } 
    else{        //length is 15
        var date6 = idNumber.substring(6,12);
        if (checkDate(date6) == false) {
            return false;
        }
    }
    return true;
}

function checkDate(value)//判断日期格式是不是符合
{
	return true;
	var strDate=value;
	re=/\d{4}\d{2}\d{2}/g;
	//判断日期格式符合YYYY/MM/DD标准
	if(re.test(strDate)){
		var DateArray = new Array();
		DateArray[0] = strDate.substring(0, 4);
		DateArray[1] = strDate.substring(4, 6);
		DateArray[2] = strDate.substring(6, 8);
		
		var dateElement=new Date(DateArray[0],parseInt(DateArray[1])-1,DateArray[2]);
		//判断日期逻辑
		if(!((dateElement.getFullYear()==parseInt(DateArray[0]))&&((dateElement.getMonth()+1)==parseInt(DateArray[1]))&&(dateElement.getDate()==parseInt(DateArray[2])))){
			return false;
		} 
	} else{
		return false;
	}
	
	return true;

}

function getFieldElement(elementId)
{
    return document.getElementById(elementId);
}
