﻿
    var errorList=null;

	function isValid(currentForm,validationTypes){
    errorList = [];
    var result=true;
    var formid=$(currentForm).attr("id");
    for(var i=0;i<validationTypes.length;i++){
        $("form#"+formid+" input").filter("."+validationTypes[i]).each( function(k){
            var elm=$(this);
         //   alert('filter loop'+$(elm).attr('id'));
            if(validationTypes[i] =="requiredField"){
                if( $.trim($(this).val()).length <=0){
           //         alert('push '+$(elm).attr('id')+" and type"+validationTypes[i]);
                     errorList.push({
						    validationType: validationTypes[i],
						    element: elm
					    });
                        
                     result=false;
                }
            } 
            if(validationTypes[i] =="email") {
                
                if( $.trim($(this).val()).length >0){
                   var emailOk=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test($.trim($(this).val()));
                   if(!(emailOk)) {
                       errorList.push({
						    validationType: validationTypes[i],
						    element: elm
					    });
                       result=false;
                       
                   }
                }
             }
             //digits
              if(validationTypes[i] =="digits") {
                var added=false;
                if( $.trim($(this).val()).length >0){
                   var digitsOk=/^\d+$/.test($.trim($(this).val()));
                   if(!(digitsOk)) {
                   		added=true;
                       errorList.push({
						    validationType: validationTypes[i],
						    element: elm
					    });
                       result=false;
                       
                   }
                   // all zeros?
                   if($.trim($(this).val().replace(/0/g, "")).length==0 ){
                   		if(!(added)) {
		                   	errorList.push({
								    validationType: validationTypes[i],
								    element: elm
							    });
		                       result=false;
					 	}	
                   }
                }//LEN
             }//digits
			//Currency
		  if(validationTypes[i] =="currency") {
                var amount=$.trim($(this).val().replace(/\$/g, ""));
                if( amount!=null && $.trim(amount).length >0){
                	//strip out currency signs
                   var priceOk=/^(\d{1,3})(\.\d{1,2})?$/i.test(amount);
                   if(!(priceOk)) {
                       errorList.push({
						    validationType: validationTypes[i],
						    element: elm
					    });
                       result=false;
                       
                   }
                }
           }


             
        });
    }
    return result;
}

function showErrorFor(elem, erule, errors){
    var id=$(elem).attr("name");
   // alert('showErrorFor'+id+ "erule"+erule]);
    //input 
    $(elem).addClass("redBorder"); 
	$(elem).removeClass("yellowBorder"); 
    
    //label
    $("#label"+id).addClass("error-bold");
    $("#label"+id).css("display","block");
    //message
    $("#error"+id).css("display","block");
    $("#error"+id).html(errors[id+"."+erule]);
    
}

function clearErrors(currentForm,validationTypes){
    var formid=$(currentForm).attr("id");
    for(var i=0;i<validationTypes.length;i++){
        $("form#"+formid+" input").filter("."+validationTypes[i]).each( function(k){
          var id=$(this).attr("name");
       // alert('showErrorFor'+id+ "erule"+erule]);
        //input 
        $(this).removeClass("redBorder"); 
	    $(this).addClass("yellowBorder"); 
        
        //label
        $("#label"+id).removeClass("error-bold");
        //message
        $("#error"+id).css("display","none");
        $("#error"+id).html("");
                
        });
    }        
}
 
	

