function valueIsEmpty(n){return angular.isUndefined(n)||n===""||n===null||n!==n}function ngMin(){return{restrict:"A",require:"ngModel",link:function(n,t,i,r){n.$watch(i.ngMin,function(){r.$setViewValue(r.$viewValue)});var u=function(n){var t=i.ngMin||0;return!valueIsEmpty(n)&&n<t?(r.$setViewValue(t),r.$render(),t):(r.$setValidity("ngMin",!0),n)};r.$parsers.push(u);r.$formatters.push(u)}}}function ngMax(){return{restrict:"A",require:"ngModel",link:function(n,t,i,r){n.$watch(i.ngMax,function(){r.$setViewValue(r.$viewValue)});var u=function(n){var t=i.ngMax||Infinity;return!valueIsEmpty(n)&&n>t?(r.$setViewValue(t),r.$render(),t):(r.$setValidity("ngMax",!0),n)};r.$parsers.push(u);r.$formatters.push(u)}}}var MMP=MMP||{};(function(n){n.validator.addMethod("money",function(n,t){var i=/^\d*([\,\.]{1}\d{0,2})?$/.test(n);return this.optional(t)||i},"Please specify a valid money value");n.validator.addMethod("percentage",function(n,t){var i=n>=0&&n<=100;return this.optional(t)||i},"Please specify a valid percentage value");window.scanCustomValidationAttributes=function(t){n(":input",t).each(function(t,i){n(i).is("[validation-money]")&&n(i).rules("add",{money:!0});n(i).is("[validation-date]")&&n(i).rules("add",{date:!0});n(i).is("[validation-decimal]")&&n(i).rules("add",{number:!0});n(i).is("[validation-integer]")&&n(i).rules("add",{digits:!0});n(i).is("[validation-percentage]")&&n(i).rules("add",{percentage:!0});n(i).is("[validation-email]")&&n(i).rules("add",{email:!0})})};window.resetForm=function(){Validator.resetForm()};window.validate=function(t){var i=n(t).validate();return scanCustomValidationAttributes(t),i.form()}})(MMP.jQuery?MMP.jQuery:jQuery)