function FormValidator(formNode){this.errorMessage="";this.formNode=formNode;}FormValidator.prototype={addRule:function(fieldName,message,validatorType,args){validatorType=validatorType.toLowerCase(validatorType);var element=this.formNode[fieldName];if(element!=null){switch(validatorType){case"required":this.required(element,message);break;case"rangelength":this.rangelength(element,message,args[0],args[1]);break;case"rangevalues":this.rangevalues(element,message,args[0],args[1]);break;case"numeric":this.numeric(element,message);break;case"positivenumber":this.positivenumber(element,message);break;case"integer":this.integer(element,message);break;case"positiveinteger":this.positiveinteger(element,message);break;case"lettersonly":this.lettersonly(element,message);break;case"zipcode":this.zipcode(element,message);break;case"email":this.email(element,message);break;case"ischecked":this.ischecked(element,message,args);break;case"compare":var elementPivot=this.formNode[args];if(elementPivot!=null)this.compare(element,message,elementPivot);break;case"creditcard":this.creditcard(element,message);break;case"expression":this.expression(element,message,args);break;default:}}},markField:function(element,bg_color,border_color){if(element.length){for(var j=0;jmaxLength)){this.invalidField(element,message);}},rangevalues:function(element,message,minValue,maxValue){var val=this.getValue(element);if((minValue!=null&&valmaxValue)){this.invalidField(element,message);}},numeric:function(element,message){var val=this.getValue(element);if(val.length>0&&!/^(\-?(\d+\.?\d+)|(-?\d+)){1}$/.test(val)){this.invalidField(element,message);}},positivenumber:function(element,message){var val=this.getValue(element);if(val.length>0&&!/^((\d+\.?\d+)|(\d+)){1}$/.test(val)){this.invalidField(element,message);}},integer:function(element,message){var val=this.getValue(element);if(val.length>0&&!/^-?\d+$/.test(val)){this.invalidField(element,message);}},positiveinteger:function(element,message){var val=this.getValue(element);if(val.length>0&&!/^\d+$/.test(val)){this.invalidField(element,message);}},lettersonly:function(element,message){var val=this.getValue(element);if(val.length>0&&!/^[a-zA-Z\s]+$/.test(val)){this.invalidField(element,message);}},zipcode:function(element,message){var val=this.getValue(element);if(val.length>0&&!/^\d{5}$/.test(val)){this.invalidField(element,message);}},email:function(element,message){var val=this.getValue(element);if(val.length>0&&!/^\S+@\S+(\.\S+)*\.(\S{2,3}|info)$/i.test(val)||/[\(\)\<\>\,\;\:\\\"\[\]]/.test(val)){this.invalidField(element,message);}},ischecked:function(element,message,args){var me=this;var operator="or";function verifyGroup(element){var i=0;var flag=(operator=='and')?true:false;if(element.length){while(i1){var tmpArr=new Array();tmpArr=tmpArr.concat(element);for(var i=1;i8||j==7){this.invalidField(element,message);return;}k=Math.floor(j);m=Math.ceil(j)-k;c=0;for(i=0;i9?Math.floor(a/10+a%10):a;}for(i=0;i