AWPCP.define("awpcp/settings-validator",["jquery","awpcp/jquery-validate-methods"],function(a){var b=function(){};return a.extend(b.prototype,{setup:function(b){var c=this,d={rules:{},messages:{}};b.find("[awpcp-setting]").each(function(){var b=a(this),e=b.attr("name"),f=a.parseJSON(b.attr("awpcp-setting"));f&&f.validation&&f.validation.messages&&(d.messages[e]=f.validation.messages),f&&f.validation&&f.validation.rules&&(d.rules[e]=c.getSettingRules(f)),c.setupSettingBehavior(b,f)}),b.validate(a.extend(d,{errorClass:"invalid",errorPlacement:function(a,b){a.addClass("awpcp-message error").css("display","block"),b.closest("td").append(a)}}))},getSettingRules:function(a){var b=this,c={};for(var d in a.validation.rules)a.validation.rules.hasOwnProperty(d)&&(c[d]=b.getRuleForValidator(d,a));return c},getRuleForValidator:function(b,c){var d=c.validation.rules[b],e=this.getEscapedSelector(d.depends);return 0===a(e).length?d:a.extend({},d,{depends:function(){return a(e).is(":checked")}})},getEscapedSelector:function(b){if("undefined"==typeof b)return!1;var c=a.map(b.split(","),function(a){return"#"+a.trim().replace(/(:|\.|\[|\]|,)/g,"\\$1")});return c.join(",")},setupSettingBehavior:function(b,c){var d=this;for(var e in c.behavior)c.behavior.hasOwnProperty(e)&&a.isFunction(d[e])&&d[e].apply(d,[b,c.behavior[e]])},enabledIf:function(b,c){var d=a(this.getEscapedSelector(c));d.change(function(){d.is(":checked")?a.fn.prop?b.prop("disabled",!1):b.removeAttr("disabled"):a.fn.prop?b.prop("disabled",!0):b.attr("disabled","disabled")}),d.change()},shownUnless:function(b,c){var d=a(this.getEscapedSelector(c));d.change(function(){d.is(":checked")?b.closest("tr").fadeOut(400):b.closest("tr").fadeIn(400)}),d.change()}}),new b});