/**
 * 
 */
var regexDate = /(\d{4})-(\d{2})-(\d{2})/;
var regexTime = /(\d{2}):(\d{2}):(\d{2})/;
var regexNumber= /^[0-9]*$/;
var regexNumberWithoutZero= /^[1-9][0-9]*$/;
var regexNumberWithPlus= /^([+])+[0-9]*$/;
var regexNumberWithDot= /^\s*(?=.*[0-9])\d*(?:\.\d{1,8})?\s*$/;
var regexNumberWithPrefix= /^[0-9+#*]*$/;
var regexNumberwithHash=/^[0-9#]*$/;
var regexNumberWithCustom= /^[A-B0-9#]*$/;
var regexNumberDotWithColon= /^[0-9.:]*$/;
var regexAlphaNumeric= /^[a-zA-Z0-9_]*$/;
var regexAlphaNumericWithDot= /^[a-zA-Z0-9-]*$/;
var regexAlphaNumericWithSpace= /^[a-zA-Z0-9_ ]*$/;
var regexAlphaNumericWithHypen= /^[a-zA-Z0-9- ]*$/;
var regexAlphaNumericWithSign= /^[a-zA-Z0-9+-=#* ]*$/;
var regexNumberWithNeg= /^[0-9-1]*$/;
var regexNumberWithNegWithoutZero= /^[1-9-]*$/;
var regexNumberWithNegComma = /^[0-9,-]*$/;
var regexNumberWithNegDot= /^-?(?:[0-9]+(?:\.[0-9]+)?|\.[0-9]+)$/;
var regexEmail="/^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/";
var regexNumberWithComma = /^[0-9,]*$/;
var regexNumberWithDotAndComma = /^[0-9.,]*$/;
var regexNumber1To100=/^[1-9][0-9]?$|^100$/;
var regexNumber1To255=/^(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))$/;
var strValidChars = "`~!@#$%^&*()_-=+{}[]><,./\?|0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; 
function validString(str){	
    for (var i = 0; i < str.length; i++){
      if (strValidChars.indexOf(str.charAt(i)) == -1)
         return false;         
	  }
	return true;
}
function isNumber(n) {
	  return !isNaN(parseFloat(n)) && isFinite(n);
}
function isNumberZero(n) {
	 return !isNaN(parseFloat(n)) && isFinite(n);
}
function isValidEmail(str){
	 var regex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;	    		  
	 return  regex.test(str);
	
}
function validPulse(value) {
    var strCheck = "/0123456789";
    var pul = [];
    for (var i = 0; i < value.length; i++) {
        if (strCheck.indexOf(value.charAt(i)) == -1) return false;
    }
    var str = value.indexOf('/');
    if (str == -1) return false;
    else {
        pul = value.split("/");
        if (pul.length == 2) {
            if (parseInt(pul[0]) < 3600 && !parseInt(pul[0]) == 0 && parseInt(pul[1]) < 3600 && !parseInt(pul[1]) == 0) return true;
            else return false;
        } else return false;
    }
}
function validBillingcycleName(value){
	 if(String(value.charAt(0)).search(regexNumber)==-1 && String(value).search(regexAlphaNumeric) != -1 && String(value).length <=30 ){
		 return true;
	 }else{
		 return false;
	 }
}
function numericOrAlphaNumericOnly(value) {
	
	 if(String(value).search(regexAlphaNumeric) != -1)
		 return true;
	 else
		 return false;
}
function validRange(value,from,to){
	if(value >= from && value <=to){
		return true;
	}else{
		return false;
	}
}
function validation(formId,container){
	if(container==null || container==undefined){
		container=$(".msgcontainer");
	}
	var error=validForm(formId);
	if(error!=null){
		$(container).msgShow({type:'msgerror',msg:error});
		return false;
	}else{
		return true;
	}
	
}
function mvalid(formId){
	var error=validForm(formId);
	if(error!=null){
		showmsg('',error);
		return false;
	}else{
		return true;
	}
	
}
function startsWithPlus(name){
	 return name.startsWith("+");
}
function validForm(formId){	   
	var error=null;
	   try{
	    var reqFieldArr=new Array();	
	    var ruleFieldArr=new Array();	
	    
	    $(formId+' *').filter("select.select2required").each(function(){
		     if($(this).val() == null ||$(this).val()=='' ){
			    reqFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text()); 
			 }
	      });
	    
	      $(formId+' *').filter("input.required,select.required,textarea.required").each(function(){
		     if($(this).val() == null || $(this).val().trim()==''){
			    reqFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text()); 
			 }
	      });
		  
	      
	      $(formId+' *').filter("input.time").each(function(){
			  if( $(this).val().trim()!=''){
				 var objArr= regexTime.exec($(this).val()); 
				 if($(this).val().length!=8 || objArr==null || objArr.length!=4){
					ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());	 
				 }
			  }
		  });
		  
	      $(formId+' *').filter("input.date").each(function(){
			  if( $(this).val().trim()!=''){
				 var objArr= regexDate.exec($(this).val()); 
				 if($(this).val().length!=10 ||objArr==null || objArr.length!=4){
					 ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());	 
				 }
			  }
		  });
		  
	      $(formId+' *').filter("input.numberOnly").each(function(){
			  if( $(this).val().trim()!=''){
				 if(String($(this).val()).search(regexNumber)==-1){
					 ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				 }				
			  }
		  });
	      
	      $(formId+' *').filter("input.numberWithPlus").each(function() {
	    	  if($(this).val().trim()!='') {
	    		  if(String($(this).val()).search(regexNumberWithPlus) == -1)
	    			  ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
	    	  }
	      });
	      $(formId+' *').filter("input.numberWith1to100").each(function(){
			  if( $(this).val().trim()!=''){
				 if(String($(this).val()).search(regexNumber1To100)==-1){
					 ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				 }				
			  }
		  });
	      
	      $(formId+' *').filter("input.numberWith1to255").each(function(){
			  if( $(this).val().trim()!=''){
				 if(String($(this).val()).search(regexNumber1To255)==-1){
					 ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				 }				
			  }
		  });
	      
	      $(formId+' *').filter("input.numberWith1to28").each(function(){
	    	  
			  if( $(this).val().trim()!=''){
				 if(!validRange($(this).val(),1,28)){
					 ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				 }				
			  }
		  });
	      $(formId+' *').filter("input.numberWith1to13").each(function(){
			  if( $(this).val().trim()!=''){
				 if(!validRange($(this).val(),1,13)){
					 ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				 }				
			  }
		  });
	      $(formId+' *').filter("input.numberWith1to14").each(function(){
			  if( $(this).val().trim()!=''){
				 if(!validRange($(this).val(),1,14)){
					 ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				 }				
			  }
		  });
	      $(formId+' *').filter("input.numberWith1to7").each(function(){
	    	  
			  if( $(this).val().trim()!=''){
				 if(!validRange($(this).val(),1,7)){
					 ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				 }				
			  }
		  });
	      $(formId+' *').filter("input.numberWith1to9999").each(function(){
	    	  
			  if( $(this).val().trim()!=''){
				 if(!validRange($(this).val(),1,9999)){
					 ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				 }				
			  }
		  });
	      $(formId+' *').filter("input.numberWith0to9").each(function(){
	    	  
			  if( $(this).val().trim()!=''){
				 if(!validRange($(this).val(),0,9)){
					 ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				 }				
			  }
		  });
	      
	      $(formId+' *').filter("input.alphaNumericWithSpace").each(function(){
			  if( $(this).val().trim()!=''){
				 if(String($(this).val()).search(regexAlphaNumericWithSpace)==-1){
					 ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				 }				
			  }
		  });
	      
	    /*  $(formId+' *').filter("input.alphaNumericWithSplChar").each(function(){
			  if( $(this).val()!=''){
				 if(!validString($(this).val())){
					 ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				 }				
			  }
		  });
		  */
	      
	      $(formId+' *').filter("input.alphaNumericWithHypen").each(function(){
			  if( $(this).val().trim()!=''){
				 if(String($(this).val()).search(regexAlphaNumericWithHypen)==-1){
					 ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				 }				
			  }
		  });
	      $(formId+' *').filter("input.alphaNumericWithSign").each(function(){
			  if( $(this).val().trim()!=''){
				 if(String($(this).val()).search(regexAlphaNumericWithSign)==-1){
					 ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				 }				
			  }
		  });
	      $(formId+' *').filter("input.regexNumberWithPlusHash").each(function(){
			  if( $(this).val().trim()!=''){
				 if(String($(this).val()).search(regexNumberWithPrefix)==-1){
					 ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				 }				
			  }
		  });
	      
	      
	      
	       
	      $(formId+' *').filter("input.numberWithDotOnly").each(function(){
			  if( $(this).val().trim()!=''){
				 if(String($(this).val()).search(regexNumberWithDot)==-1){
					 ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				 }				
			  }
		  });
	      
	      $(formId+' *').filter("input.numberDotWithColonOnly").each(function(){
			  if( $(this).val().trim()!=''){
				 if(String($(this).val()).search(regexNumberDotWithColon)==-1){
					 ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				 }				
			  }
		  });
	      
	      $(formId+' *').filter("input.alphaNumericWithDot").each(function(){
			  if( $(this).val().trim()!=''){
				 if(String($(this).val()).search(regexNumberDotWithColon)==-1){
					 ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				 }				
			  }
		  });
		  
	      
	      $(formId+' *').filter("input.alphaNumericOnly,textarea.alphaNumericOnly").each(function(){
			  if( $(this).val().trim()!=''){
				 if(!validString($(this).val())){
					 ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				 }				
			  }
		  });
		  
	      $(formId+' *').filter("input.notZero").each(function(){
			  if( $(this).val().trim()!=''){
				 if( $(this).val()=='0' || (String($(this).val()).search(regexNumber)!=-1 && eval($(this).val())==0)){
					 ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				 }				
			  }
		  });
	      
	      $(formId+' *').filter("input.custom").each(function(){	    	  
	    	  if( $(this).val().trim()!=''){
					 if(String($(this).val()).search($(this).attr("regex"))==-1){
						 ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
					 }				
				  }
		  });
	      
	      $(formId+' *').filter("input.customwithNumeric").each(function(){	    	  
	    	  if($(this).val().trim()!=''){
					 if((String($(this).val()).search($(this).attr("regex"))==-1) && (String($(this).val()).search(regexNumberWithCustom)==-1)){
						 ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
					 }				
				  }
		  });
	      
	      $(formId+' *').filter("input.numberWithNegative").each(function(){
			  if( $(this).val().trim()!=''){
				  if(String($(this).val()).search(regexNumberWithNeg)==-1){
					  ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				 }				
			  }
		  });
	      $(formId+' *').filter("input.numberWithNegWithoutZero").each(function(){
			  if( $(this).val().trim()!=''){
				  if(String($(this).val()).search(regexNumberWithNegWithoutZero)==-1){
					  ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				 }				
			  }
		  });
	      
	      $(formId+' *').filter("input.nonZero").each(function(){
			  if($(this).val().trim() == '0'){
				  ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
			  }
		  });
	      
	      $(formId+' *').filter("input.numberWithNegativeComma").each(function(){
			  if( $(this).val().trim()!=''){
				  if(String($(this).val()).search(regexNumberWithNegComma)==-1){
					  ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				 }				
			  }
		  });
	      
	      $(formId+' *').filter("input.numberWithComma").each(function(){
			  if( $(this).val().trim()!=''){
				  if(String($(this).val()).search(regexNumberWithNegComma)==-1){
					  ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				 }				
			  }
		  });
	      
	      $(formId+' *').filter("input.numberWithNegativeAndDot").each(function(){
	    	  if( $(this).val().trim()!=''){
				  if(String($(this).val()).search(regexNumberWithNegDot)==-1){
					  ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				 }				
			  }
		  });
	      $(formId+' *').filter("input.numberWithDotAndComma").each(function(){
	    	  if( $(this).val().trim()!=''){
				  if(String($(this).val()).search(regexNumberWithDotAndComma)==-1){
					  ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				 }				
			  }
		  });
	      $(formId+' *').filter("input.numberOnlyWithoutZero").each(function(){
			  if( $(this).val().trim()!=''){
				 if(String($(this).val()).search(regexNumberWithoutZero)==-1){
					 ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				 }				
			  }
		  });
	      
	     		  
	      $(formId+' *').filter("input.validPulse").each(function(){
			  if( $(this).val().trim()!=''){
				  if(!validPulse($(this).val())){
					  ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				 }				
			  }
		  });
	      
	      $(formId+' *').filter("input.validBillingcycleName").each(function(){
			  if( $(this).val().trim()!=''){
				  if(!validBillingcycleName($(this).val())){
					  ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				 }				
			  }
		  });
	      $(formId+' *').filter("input.numericOrAlphaNumericOnly").each(function(){
			  if( $(this).val().trim()!=''){
				  if(!numericOrAlphaNumericOnly($(this).val())){
					  ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				 }				
			  }
		  });
	      $(formId+' *').filter("input.email").each(function(){
	    	  if( $(this).val().trim()!=''){
	    		  var regex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;	    		  
				  if(!regex.test($(this).val())){
					  ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				 }				
			  }
		  });
	      
	      $(formId+' *').filter("input.multipleEmail").each(function(){
	    	  if( $(this).val().trim()!=''){
	    		  var regex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;	
	    		  list_mail=$(this).val().split(',');
	    		  for(j = 0; j< list_mail.length; j++){
	    			  if(!regex.test(list_mail[j])){
	    				  ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
	    				  return;
				  	}		
	    		  }
			  }
		  });
	      
	      $(formId+' *').filter("input.ipAddress").each(function(){
	    	  if( $(this).val().trim()!=''){
	    		  var regex = /^(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))$/;	    		  
				  if(!regex.test($(this).val())){
					  ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				 }				
			  }
		  });
	      
	     
	      
	      $(formId+' *').filter("input.ipAddressdomain").each(function(){
	    	  if( $(this).val().trim()!=''){
	    		  var regexIP = /^(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))$/;
	    		 
	    		  var regexDomain = /^[^.][a-zA-Z0-9-_.]*$/;
	    		  
	    		  // var regexDomain =  /^[a-zA-Z0-9_]*[^[a-zA-Z0-9-]*][^[a-zA-Z0-9_ ]*][^[a-zA-Z0-9- ]*]$/;
	    		  var val=$(this).val();
				  if(val.split('.').length==4 && (!regexIP.test($(this).val()))){
					  ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				  }
				  else if(!regexDomain.test($(this).val())){
					 // out.println("domain error");
					  ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				 }				
			  }
		  });
	      
	      
	      $(formId+' *').filter("input.multiIpAddressDomain").each(function(){
	    	  if( $(this).val().trim()!=''){
	    		 var regexIP = /^(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))$/;
	    		 
	    		 var regexDomain = /^(?!\-)(?:[a-zA-Z\d\-]{0,62}[a-zA-Z\d]\.){1,126}(?!\d+)[a-zA-Z\d]{1,63}$/;
	    		 list_ip =  $(this).val().split(',');
		    		  for(j = 0; j< list_ip.length; j++){
		    		  	  if(list_ip[j].split('.').length==4 && !regexIP.test(list_ip[j])){
							  ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
							  return;
						 }
		    		  	  else if((list_ip[j].split('.').length != 4 && !regexDomain.test(list_ip[j]) )|| list_ip[j].split('.').length > 4){
		    		  		 ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
		    		  		 return;
		    		  	  }
		    		   }
			  }
		  });
	      
	      $(formId+' *').filter("input.multiIpAddress").each(function(){
	    	  if( $(this).val().trim()!=''){
	    		 var regex = /^(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))$/;
	    		 
	    			  list_ip =  $(this).val().split(',');
		    		  for(j = 0; j< list_ip.length; j++){		    		       
		    		  	  if(!regex.test(list_ip[j])){
							  ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
							  return;
						 }	
		    		   }
			  }
		  });
	     
	      $(formId+' *').filter("input.numberOnlyDenied").each(function(){
			  if( $(this).val().trim()!=''){
				 if(String($(this).val()).search(regexNumber)==-1){
					 
				 }else{
					 ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				 }				
			  }
		  });
	      
          $(formId+' *').filter("input.matchExp").each(function(){
          if( $(this).val().trim()!=''){
                  var regex = /^IN\w[0-9]*$/;      
                  var regex1 = /^[0-9]*$/;
                  var regexSIPTOSIP = "SIPTOSIP";
                  var regexIN = "IN";
                          if(!regex.test($(this).val()) && !regex1.test($(this).val()) && !(regexSIPTOSIP == $(this).val()) && !(regexIN == $(this).val())){
                                  ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
                         }                              
                  }
          });
          
          $(formId+' *').filter("input.matchExpDest").each(function(){
          if( $(this).val().trim()!=''){
                  var regex = /^IN\w[0-9]*$/;      
                  var regex1 = /^[0-9]*$/;
                  var regexIN = "IN";
                          if(!regex.test($(this).val()) && !regex1.test($(this).val()) && !(regexIN == $(this).val())){
                                  ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
                         }                              
                  }
          });
	     
	      var splMsg=[];
	      $(formId+' *').filter("input.zeroDenied").each(function(){
	    	  if(isNumber($(this).val())){
			    if( eval($(this).val())==0){
				  
				  splMsg.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text() +' should not be zero ');
			 
			   }
	    	  }
		  });
	     
	      $(formId+' *').filter("input.belowNegativeOneDenied").each(function(){
	    	  if(isNumber($(this).val())){
	    		  if( eval($(this).val())<-1){
					  
					  splMsg.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text() +' should be greater than or equal to -1 ');
				
				  }
	    		  
	    	  }
			 
		  });
		   $(formId+' *').filter("input.simultaneousCall").each(function(){
			  if( $(this).val().trim()!=''){
				 if(!isNumber($(this).val()) || $(this).val() == "0" || ( eval($(this).val()) < -1 )){
					ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				 }				
			  }
		  });
	     
	      $(formId+' *').filter("input.length10").each(function(){
	    	  if(isNumber($(this).val())){
			    if( eval($(this).val())==0){
				  
				  splMsg.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text() +' should not be zero ');
			 
			   }
	    	  }
		  });
		  $(formId+' *').filter("input.numberWith1to28orMinus1").each(function(){
	    	  
			  if( $(this).val()!=''){
				 if($(this).val() != '-1' && !validRange($(this).val(),1,28)){
					 ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				 }				
			  }
		  });
	      $(formId+' *').filter("input.numberWith1to13orMinus1").each(function(){
			  if( $(this).val()!=''){
				 if($(this).val() != '-1' && !validRange($(this).val(),1,13)){
					 ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				 }				
			  }
		  });
	      $(formId+' *').filter("input.numberWith1to7orMinus1").each(function(){
	    	  
			  if($(this).val() != '-1' &&  $(this).val()!=''){
				 if(!validRange($(this).val(),1,7)){
					 ruleFieldArr.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text());
				 }				
			  }
		  });
		 $(formId+' *').each(function(){
    	 	classvalue = $(this).attr('class');
    	 	elementvalue = $(this).val();
    	 	elementid = $(this).attr('id');
    	 	localresult = false;
    	 	if(classvalue != undefined && elementvalue != undefined){
    	 		classvalue.split(' ').map(function(clssName){ 
    	  			if(clssName.startsWith("customlengthchecking")){
    	  				localresult= false;
    	  				customlengthvalue = clssName.replace("customlengthchecking","");
    	  				orValues = customlengthvalue.split("or");
    	  				for(var indexval in orValues){
	    	  				if((elementvalue.length == (orValues[indexval]))){
	    	  					localresult = true;
	    	  					break;
	    	  				}
	    	  			}
	    	  			if(!localresult){
	    	  				ruleFieldArr.push($(formId+' *').filter('[for='+elementid+']').text());
	    	  			}
    	  			}else if(clssName.startsWith("customrangechecking")){
    	  				customlengthfromvalue = eval(clssName.split("to")[1].replace("mrangechecking",""));
		    	  		customlengthtovalue = eval(clssName.split("to")[2]);
    	  				localresult = (!isNaN(elementvalue)  && eval(elementvalue) >= customlengthfromvalue && eval(elementvalue) <= customlengthtovalue);
    	  				if(!localresult){
    	  					ruleFieldArr.push($(formId+' *').filter('[for='+elementid+']').text());
    	  				}
    	  			}else if(clssName.startsWith("customstartswithchecking")){
    	  				localresult= false;
    	  				customlengthvalue = clssName.replace("customstartswithchecking","");
    	  				orValues = customlengthvalue.split("or");
    	  				for(var indexval in orValues){
	    	  				if((elementvalue.startsWith(orValues[indexval]))){
	    	  					localresult = true;
	    	  					break;
	    	  				}
	    	  			}
	    	  			if(!localresult){
	    	  				ruleFieldArr.push($(formId+' *').filter('[for='+elementid+']').text());
	    	  			}
    	  			}
    	  		});
    	 	}
		  });
	      reqFieldArr = reqFieldArr.filter( function( item, index, inputArray ) {
	           return inputArray.indexOf(item) == index;
	    });
	      ruleFieldArr = ruleFieldArr.filter( function( item, index, inputArray ) {
	           return inputArray.indexOf(item) == index;
	    });
	      splMsg = splMsg.filter( function( item, index, inputArray ) {
	           return inputArray.indexOf(item) == index;
	    });
	      if(reqFieldArr.length>0 || ruleFieldArr.length >0 || splMsg.length >0){	
			  	var error="";
			     if(reqFieldArr.length>0){		    	 
		    	  error='['+reqFieldArr.join(', ')+"] is required \n";
			     }
		    	 if(ruleFieldArr.length>0){
		    		 if(error)
		    			 error+=", "+'['+ruleFieldArr.join(', ')+"] is invalid value or format";		    		 
		    		 else
		    			 error+='['+ruleFieldArr.join(', ')+"] is invalid value or format";		    		 
		    	 }	
		    	 if((reqFieldArr.length>0 || ruleFieldArr.length >0 ) && splMsg.length >0)
			    	 error=error+" , "+splMsg.join(', ');
		    	 else
		    	 error=error+splMsg.join(', ');		    	
				return error;
			  }
		  
		  $(formId+' *').filter("input.length10").each(function(){
	    	  if(isNumber($(this).val())){
			    if( eval($(this).val())==0){
				  
				  splMsg.push($(formId+' *').filter('[for='+$(this).attr('id')+']').text() +' should not be zero ');
			 
			   }
	    	  }
		  });
		  
	      }catch(e){
	    	  console.log('Error '+e);
	      }
		 return error;
}
function isNumberWithComma(number){
	
 	  var strCheck = ",0123456789";
 	    for(var i = 0; i < number.length; i++) {
 	        if(strCheck.indexOf(number.charAt(i)) == -1) {
 	        	return false;
 	        }
 	    }
 	    return true;
		 
	 
}
var lang=[];
 lang['Active']="Active";
lang['Inactive']="Inactive";
lang['Origination']="Origination";
lang['Termination']="Termination";
lang['Prepaid']="Prepaid";
lang['Postpaid']="Postpaid";
lang['private']="Private";
lang['public']="Public";
lang['User']="User";
lang['Reseller']="Reseller";
lang['GatewayClient']="Gateway Client";
lang['Not Applied']="Not Applied";
lang['Applied']="Applied";
lang['Yes']="Yes";
lang['BLOCKED']="BLOCKED";
lang['ALLOWED']="ALLOWED";
lang['day']="day";
lang['ALL']="ALL";
lang['Default']="Default";
lang['Recording']="Recording";
lang['Both']="Both";
lang['Safe Custody']="Safe Custody";
lang['Disconnected']="Disconnected";
lang['true']="Enable";
lang['false']="Disable";
lang['Processing']="Processing";
lang['Completed']="Completed";
lang['Cancelled']="Cancelled";
lang['Stopped']="Stopped";
lang['Resumed']="Resumed";
lang['Restarted']="Restarted";
lang['Unprocessed']="Unprocessed";
lang['Failed']="Failed";
lang['payment']="Payment";
lang['return']="Return";
lang['CLOSED']="CLOSED";
lang['Open']="OPEN";
lang['Bounced']="BOUNCED";
lang['Closed']="Closed";
lang['Weekly']="Weekly";
lang['Bi-Monthly']="Bi-Monthly";
lang['Monthly']="Monthly";
lang['WEEKLY']="WEEKLY";
lang['MONTHLYTWICE']="MONTHLYTWICE";
lang['MONTHLYONCE']="MONTHLYONCE";
lang['Administrators']="Administrators";
lang['Tech Support']="Tech Support";
lang['Customer Care']="Customer Care";
lang['Finance']="Finance";
lang['Management Information System']="Management Information system";
lang['Network Operation Centre']="Network Operation Centre";
lang['Agent']="Agent";
lang['Country']="Country";
lang['Day']="Day";
lang['Hour']="Hour";
lang['All']="All";
lang['CREDIT']="CREDIT";
lang['DEBIT']="DEBIT";
lang['Package.Pin']="PackagePin";
lang['Recharge']="Recharge";
lang['Top.Up']="TopUp";
lang['CASH']="CASH";
lang['All']="All";
lang['Specific']="Specific";
lang['Blocked']="Blocked";
lang['Allowed']="Allowed";
lang['CREDITCARD']="CreditCard";
lang['CASH']="Cash";
lang['CHEQUE']="Cheque";
lang['Channels']="Channels";
lang['E1']="E1";
lang['T1']="T1";
lang['startswith']="starts with"; 
lang['SafeCustody']="Safe Custody";
lang['Sunday']="Sunday";
lang['Monday']="Monday";
lang['Tuesday']="Tuesday";
lang['Wednesday']="Wednesday";
lang['Thursday']="Thursday";
lang['Friday']="Friday";
lang['Saturday']="Saturday"; 
lang['Gateway']="Gateway"; 
lang['prepaidrenewable']="prepaid"; 
lang['postpaid']="postpaid"; 
lang['Enable']="Enable";
lang['Disable']="Disable";
lang['Resellers are not allowed in administrator login']="Resellers are not allowed in administrator login"
lang['Admin is not allowed in reseller login']="Admin is not allowed in reseller login"
lang['PBX accounts are not allowed in administrator login']="PBX accounts are not allowed in administrator login"
lang['Admin is not allowed in PBX accounts login']="Admin is not allowed in PBX accounts login"
lang['Admin is not allowed in SIPTRUNK accounts login']="Admin is not allowed in SIPTRUNK accounts login"
lang['SIPTRUNK account is not allowed in PBX accounts login']="SIPTRUNK account is not allowed in PBX accounts login"
lang['PBX account is not allowed in SIPTRUNK accounts login']="PBX account is not allowed in SIPTRUNK accounts login"
lang['Reseller is not allowed in PBX accounts login']="Reseller is not allowed in PBX accounts login"
lang['Reseller is not allowed in SIPTRUNK accounts login']="Reseller is not allowed in SIPTRUNK accounts login"
lang['PBX accounts are not allowed in reseller login']="PBX accounts are not allowed in reseller login"
lang['SIPTRUNK accounts are not allowed in reseller login']="SIPTRUNK accounts are not allowed in reseller login"
lang['Invalid User']="Invalid User"
lang['New password sent to mail-id']="New password sent to mail-id"
lang['Failed to Parse Uploaded Sheet, Label Row Number may be Invalid']="Failed to Parse Uploaded Sheet, Label Row Number may be Invalid"
lang['session Expired']="session Expired"
lang['File Attachment Missing']="File Attachment Missing"
lang['Call Not allowed in Customer Rate Sheet']="Call Not allowed in Customer Rate Sheet"
lang['Not Available in Customer Rate Sheet']="Not Available in Customer Rate Sheet"
lang['Destination Blocked in Customer Rate Sheet']="Destination Blocked in Customer Rate Sheet"
lang['national']="National"
lang['international']="International"
lang['Bank Identification']="Bank Identification"
lang['Bank Header']="Bank Header"
lang['Bank Name']="Bank Name"
lang['Name of Account']="Name of Account"
lang['Account Number']="Account Number"
lang['Branch Name']="Branch Name"
lang['IFSC Code']="IFSC Code"
lang['SWIFT Code']="SWIFT Code"
lang['Address']="Address"
lang['Payment Details']="Payment Details"
lang['Account Holder']="Account Holder"
lang['IBAN']="IBAN"
	var returnText;
	function getText(engText){
		returnText=lang[engText];
		if(returnText!=undefined)
			return returnText;
		else
			return engText;
	}
	
lang['dtlang'] = {
	"sProcessing": "Please wait...",
	"sLengthMenu": "Show _MENU_ entries",
	"sZeroRecords": "No entries available.",
	"sInfo": "Showing _START_ to _END_ of _TOTAL_ records",
	"sInfoEmpty": "Showing 0 to 0 of 0 records",
	"sInfoFiltered": "(filtered from _MAX_ total records)",
	"sInfoPostFix": "",
	"sSearch": "Search",
	"oPaginate": {
		"sFirst":    "First",
		"sPrevious": "Previous",
		"sNext":     "Next",
		"sLast":     "Last"
	}
};
lang['timepicker'] = {
  "currentText": "Now",
  "closeText": "Done",
  "amNames": [
    "AM",
    "A"
  ],
  "pmNames": [
    "PM",
    "P"
  ],
  "timeFormat": "HH:mm",
  "timeSuffix": "",
  "timeOnlyTitle": "Choose Time",
  "timeText":"Time",
  "hourText":"Hour" ,
  "minuteText": "Minute",
  "secondText": "Second",
  "millisecText": "Millisecond",
  "microsecText": "Microsecond",
  "timezoneText":"Time Zone" ,
  "isRTL": "false"
};