﻿//验证checkboxlist
function  validatecbl(obj, minlength, maxlength)  //obj:cbl的ID
{
    var count=0;  
    var  inarr=document.getElementById(obj).getElementsByTagName("input");
    
    for (var i=0; i<inarr.length; i++)
    {
        if(inarr[i].type=="checkbox")
         {
            if(inarr[i].checked==true)    
             {
                 count++;
             }
          }
    }
    if(count<minlength||count>maxlength)
        return false;
    return true;
}
        


// 验证纯字母(只能是字母)
function validatestring(obj, minlength, maxlength)
{
   if(obj.length<minlength||obj.length>maxlength)
        return false;
    else
    {
        var reg=/[^a-zA-Z]/;
        if(reg.test(obj))
        {
            return false;
        } 
        else
            return true;
    }
}
// 验证数字和字母（必须只能是数字与字母的组合）
function validatenumstring(obj, minlength, maxlength)
{
    if(obj.length<minlength||obj.length>maxlength)
        return false;
    else
    {
         var reg=/[^0-9a-zA-Z]/;
        if(reg.test(obj))
        {
            return false;
        } 
        else
            return true;
    }
}

// 验证数字可以带小鼠点
function validatenumd(obj, minlength, maxlength)
{
   if(obj.length<minlength||obj.length>maxlength)
        return false;
    else
    {
        //^[-+]?\d+(\.\d+)?$";
        var reg= /^\d+\.?\d*$/; 
        if(!reg.test(obj))
            return false;
        else
            return true;
    }
}

//验证价格带小数点或小逗号
function validatenumdprice(obj, minlength, maxlength)
{
   if(obj.length<minlength||obj.length>maxlength)
        return false;
    else
    {  
        //var reg= /^(?!0\d)(?!\.)[0-9]+(\,?.[0-9]{1,3})?$/; 
        var reg=/^(?!0\d)(?!\.)[0-9]+(\,?.[0-9]{0,4})?$/;
        //var reg= /^\d+\.?\d*$/; 
        if(!reg.test(obj))
            return false;
        else
            return true;
    }
}

/*验证税率*/
function validaterate(obj, minlength, maxlength)
{
   if(obj.length<minlength||obj.length>maxlength)
        return false;
    else
    {
        //^[-+]?\d+(\.\d+)?$";
       // var reg= /^\d+\,?.\d*$/; 
       //  var reg= /^\d+\.?,\d*$/;
        var reg=/^(?!0\d)(?!\.)[0-9]+(\,?.[0-9]{0,4})?$/;
        if(!reg.test(obj))
            return false;
        else
            return true;
    }
}

//限制最大输入
function MaxLength(field,maxlimit)
{
    var j = field.value.replace(/[^\x00-\xff]/g,"**").length; 
    var tempString=field.value; 
    var tt=""; 
    if(j > maxlimit)
    { 
        for(var i=0;i<maxlimit;i++)
        { 
           if(tt.replace(/[^\x00-\xff]/g,"**").length < maxlimit) 
           tt = tempString.substr(0,i+1); 
           else 
           break; 
        } 
        if(tt.replace(/[^\x00-\xff]/g,"**").length > maxlimit) 
           tt=tt.substr(0,tt.length-1); 
        field.value = tt; 
    }
}



// 验证纯数字(只能是数字)
function validatenum(obj, minlength, maxlength)
{
   if(obj.length<minlength||obj.length>maxlength)
        return false;
    else
    {
        var reg=/[^0-9]/;
         
        if(reg.test(obj))
        { 
            return false;
        } 
        else
            return true;
    }
}

// 验证电子邮件
function validateemail(obj, minlength, maxlength)
{
  if(obj.length<minlength||obj.length>maxlength)
        return false;
    else
    {
           var reg= /[_a-zA-Z\d\-\.]+@[_a-zA-Z\d\-]+(\.[_a-zA-Z\d\-]+)+$/;
        if(!reg.test(obj))
        {
            return false;
        } 
        else
            return true;
    }
}
// 验证网址
function validatewebsite(obj, minlength, maxlength)
{
   var j = obj.replace(/[^\x00-\xff]/g,"**").length;

   if(j<minlength||j>maxlength)
        return false;
    else
    {
    var strRegex = "^[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&amp;%\$#\=~])*[^\.\,\)\(\s]$"; 
      var reg= new RegExp(strRegex); 
   if(!reg.test(obj))
        {
            return false;
        } 
        else
            return true;
    }
}
// 验证法国的商业代码，14位，只允许数字
function validatefrenchcode(obj, minlength, maxlength)
{
   if(obj.length<minlength||obj.length>maxlength)
        return false;
    else
    {
        var reg=/[^0-9]/;

        if(reg.test(obj))
        {
            return false;
        } 
        else
            return true;
    }
}
// 验证任何一段字符串,过滤特殊字符（<,>）
function validateany(obj, minlength, maxlength)
{
    var j = obj.replace(/[^\x00-\xff]/g,"**").length;
    if(j<minlength||j>maxlength)
        return false;
    else
    {
        //var reg=/(&)|(\|)|(\/>)/g;
        var reg=/(\/>)|(\|)/g; 

        if(reg.test(obj)==true)
        {
            return false;
        } 
        else
        {
            return true;
        }
    }
}

// FF验证任何一段字符串,过滤特殊字符（<,>）正则表达式去掉g防止二次验证错误
function validateanyff(obj, minlength, maxlength)
{
    var j = obj.replace(/[^\x00-\xff]/g,"**").length;
    if(j<minlength||j>maxlength)
        return false;
    else
    {
        //var reg=/(&)|(\|)|(\/>)/g;
        var reg=/(\/>)|(\|)/; 

        if(reg.test(obj)==true)
        {
            return false;
        } 
        else
        {
            return true;
        }
    }
}
//验证法国商业号是否符合法国商业号的组成规则
function validatebusinessnum(obj,isnice)
{
str=obj.split("");
var sum=0;
var objArray=new Array();
if(isnice)
   objArray=new Array(1,2,1,2,1,2,1,2,1); 
else
   objArray=new Array(2,1,2,1,2,1,2,1,2,1,2,1,2,1);
   
var objArray1=new Array();

for(var i=0;i<str.length;i++)
 {
 var temp1=parseInt(str[i]);
 var temp2=parseInt(objArray[i]);
 objArray1[i]=temp1*temp2;
 }
 for(var j=0;j<objArray1.length;j++)
 {
 sum+=Math.floor(objArray1[j]/10)+objArray1[j]%10;
 }
//objArray1[i]=parseInt(str[i])*parseInt(objArray1[]);
//document.write(sum);
if(sum%10==0)
{
return true;
}
else
{
return false;
}
}

// 验证法国商业号码其中调用了上面的validatebusinessnum()函数
function validatebusiness(obj, minlength, maxlength)
{

   if(obj.length<minlength||obj.length>maxlength)
        return false;
   else{
  //  var strRegex = "[A-Z]{2}\d{2}\s\d{2}\s\d{2}\s\d{2}";
        var reg=/[^0-9]/;
        if(reg.test(obj))  //验证是否全部由数字组成
            return false;
        else{
            var isnice = false;
            if(minlength==9)
                isnice = true;
            if(validatebusinessnum(obj,isnice))    //验证是否符合商业号的组成规则
                return true;
            else
                return false;
        }
    }
  }

function validatenumstringdk(obj, country,minlength, maxlength)
{ 
   var reg;
   switch (country)
   {
 
      case "1":reg=/^[A-Z]{2}\w{2}\d{9}$/i;    //Frecch           
                break
      case "94":reg=/^[A-Z]{2}\w{2}\d{9}$/i;    //Frecch           
                break
      case "96":reg=/^[A-Z]{2}\w{2}\d{9}$/i;    //Frecch           
                break
      case "130":reg=/^[A-Z]{2}\w{2}\d{9}$/i;    //Frecch           
                break
      case "139":reg=/^[A-Z]{2}\w{2}\d{9}$/i;    //Frecch           
                break
      case "2":reg=/^[A-Z]{2}\d{9}$/i;    //German
                break 
      case "3":reg=/^[A-Z]{2}\d{11}$/i;    // Italy     
                break  
      case "4":reg=/^[A-Z]{2}\w{12}$/i;    // Holand         
                break          
      case "5":reg=/^BE\d{10}$/i;     // Belgium      
                break  
      case "6": reg=/^[A-Z]{2}\d{8}$/i;  // Luxemburg
                  break 
        case "7":reg=/^GB(\d{9}|[a-zA-Z]{2}\d{3})$/i;  //United Kingdom
                break       
       case "8": reg=/^DK\d{8}$/i;//Danmark 
                 break                      
       case "9":reg=/^IE\d{1}\w{1}\d{5}[a-zA-Z]$/i;//Ireland
                 break
       case "10":reg=/^[A-Z]{2}\d{9}$/i;//Greece
                break
       case "11":reg=/^[A-Z]{2}\d{9}$/i;//Portugal 
                break 
       case "12":reg=/^ES\w{9}$/i;//Spain
                break  
        case "13": reg=/^[A-Z]{2}U\d{8}$/i; // Austria           
                break    
        case "14":reg=/^SE\d{12}$/i;    //    Sweden         
                break                               
       case "15":reg=/^[A-Z]{2}\d{8}$/i;//Finland
                 break
       case "16":reg=/^[A-Z]{2}\d{8}$/i;//Malta
                break
       case "17":reg=/^CY\d{8}[a-zA-Z]{1}$/i;//Cyprus
                break     
       case "18":reg=/^[A-Z]{2}\d{10}$/i;      // poland      
                break   
       case "19":reg=/^[A-Z]{2}\d{8}$/i;//Hungary
                break      
       case "20":reg=/^CZ\d{8,10}$/i;//Czech Duchy
                break
       case "21":reg=/^[A-Z]{2}\d{10}$/i;//oviet Republic of Slovakia
                break                 
       case "22":reg=/^[A-Z]{2}\d{8}$/i;//Slovenia
                break
       case "23":reg=/^[A-Z]{2}\d{9}$/i;//Esthonia
                break
     case "24":reg=/^[A-Z]{2}\d{11}$/i;    //   Latvia         
                break
      case "25":reg=/^LT(\d{9}|\d{12})$/i;//lithuania
                break
     case "26":reg=/^[A-Z]{2}\d{2,10}$/i;//Rumania
                break
     case "27":reg=/^[A-Z]{2}\d{9}$/i;//Bulgaria
                break
       default:reg=/^[A-Z]{2}\d{9}$/i;
                break
    }
   if(reg.test(obj))
   {
       return true;
   } 
   else
       return false;
}


function settav(obj,reg, countryvalue)
{
    if(obj.value =="")
    {
        obj.value = countryvalue;
    }
    else
    {
        obj.value = obj.value.replace(reg,countryvalue);
    }
}


function gettav(obj, country,isclearfr)
{ 
   if(obj)  
   {
   var reg = new RegExp( "^[A-Z]{2}","i");
   switch (country)
   {
   
      case "1":
      if(isclearfr){
        if(obj.value.replace(/(^\s*)|(\s*$)/g, "")=="FR" || obj.value.replace(/(^\s*)|(\s*$)/g, "")=="fr")
            obj.value = "";
      }
      else
        settav(obj,reg,"FR");    //Frecch           
                break
      case "94":
      if(isclearfr){
        if(obj.value.replace(/(^\s*)|(\s*$)/g, "")=="FR" || obj.value.replace(/(^\s*)|(\s*$)/g, "")=="fr")
            obj.value = "";
      }
      else
        settav(obj,reg,"FR");    //Frecch           
                break
      case "96":
      if(isclearfr){
        if(obj.value.replace(/(^\s*)|(\s*$)/g, "")=="FR" || obj.value.replace(/(^\s*)|(\s*$)/g, "")=="fr")
            obj.value = "";
      }
      else
        settav(obj,reg,"FR");    //Frecch           
                break
      case "130":
      if(isclearfr){
        if(obj.value.replace(/(^\s*)|(\s*$)/g, "")=="FR" || obj.value.replace(/(^\s*)|(\s*$)/g, "")=="fr")
            obj.value = "";
      }
      else
        settav(obj,reg,"FR");    //Frecch           
                break
      case "139":
      if(isclearfr){
        if(obj.value.replace(/(^\s*)|(\s*$)/g, "")=="FR" || obj.value.replace(/(^\s*)|(\s*$)/g, "")=="fr")
            obj.value = "";
      }
      else
        settav(obj,reg,"FR");    //Frecch           
                break
      case "2":settav(obj,reg,"DE");    //German
                break 
      case "3":settav(obj,reg,"IT");    // Italy     
                break  
      case "4":settav(obj,reg,"NL");    // Holand,THE Netherlands     
                break          
      case "5":settav(obj,reg,"BE");     // Belgium      
                break  
      case "6":settav(obj,reg,"LU");  // Luxemburg
                  break 
      case "7":settav(obj,reg,"GB");  //United Kingdom
                break       
      case "8": settav(obj,reg,"DK");//Denmark 
                 break                      
      case "9":settav(obj,reg,"IE");//Ireland
                 break
      case "10":settav(obj,reg,"EL");//Greece
                break
       case "11":settav(obj,reg,"PT");//Portugal 
                break 
       case "12":settav(obj,reg,"ES");//Spain
                break  
        case "13": settav(obj,reg,"AT"); // Austria           
                break    
        case "14":settav(obj,reg,"SE");    //    Sweden         
                break                               
       case "15":settav(obj,reg,"FI");//Finland
                 break
       case "16":settav(obj,reg,"MT");//Malta
                break
       case "17":settav(obj,reg,"CY");//Cyprus
                break     
       case "18":settav(obj,reg,"PL")      // poland      
                break   
       case "19":settav(obj,reg,"HU")//Hungary
                break      
       case "20":settav(obj,reg,"CZ");//Czech Duchy
                break
       case "21":settav(obj,reg,"SK");//Slovakia
                break                 
       case "22":settav(obj,reg,"SI");//Slovenia
                break
       case "23":settav(obj,reg,"EE");//Esthonia
                break
     case "24":settav(obj,reg,"LV");    //   Latvia         
                break
      case "25":settav(obj,reg,"LT");//lithuania
                break
     case "26":settav(obj,reg,"RO");//Romania
                break
     case "27":settav(obj,reg,"BG");//Bulgaria
                break
       default:break
    }
    }
}

//过滤各国家税号
function validatevat(obj,country)
{
var co=country;
if(validatenumstringdk(obj,co)) return true;else return false;             
}



//验证法国商业注册号
function validatevatEnterpriseCode(obj,country)
{

var co=country;
switch (co)
   {
   case "1":if(validatebusiness(obj,14,14) || validatebusiness(obj,9,9)) return true;else return false;             
            break
   case "94":if(validatebusiness(obj,14,14) || validatebusiness(obj,9,9)) return true;else return false;             
            break
   case "96":if(validatebusiness(obj,14,14) || validatebusiness(obj,9,9)) return true;else return false;             
            break
   case "130":if(validatebusiness(obj,14,14) || validatebusiness(obj,9,9)) return true;else return false;             
            break
   case "139":if(validatebusiness(obj,14,14) || validatebusiness(obj,9,9)) return true;else return false;             
            break
   default:  return true;
    }
}
