!function(e){var t=function(t,n){this.selector=t,this.$dependencyObj=e(t),this.qualifiers=n};t.prototype.enabled=function(t){if(e(this.selector+"[disabled]").length>0){if(t)return!1}else if(!t)return!1;return!0},t.prototype.checked=function(e){return"checkbox"!==this.$dependencyObj.attr("type")&&"radio"!==this.$dependencyObj.attr("type")||!(!this.$dependencyObj.is(":checked")&&e||this.$dependencyObj.is(":checked")&&!e)},t.prototype.values=function(t){var n=this.$dependencyObj.val(),i=t.length,r=0,s=!1,d=[];if("radio"===this.$dependencyObj.attr("type")&&(n=this.$dependencyObj.filter(":checked").val()),!("array"!=typeof n&&"object"!=typeof n||"array"!=typeof t&&"object"!=typeof t))return e.grep(t,(function(t){-1==e.inArray(t,n)&&d.push(t)})),0==d.length&&(s=!0),s;for(;r<i;r+=1)if("array"==typeof n||"object"==typeof n){if(0===e(this.$dependencyObj.val()).not(e(t[r])).length&&0===e(t[r]).not(e(this.$dependencyObj.val())).length){s=!0;break}}else if(t[r]===n){s=!0;break}return s},t.prototype.not=function(e){for(var t=this.$dependencyObj.val(),n=e.length,i=0;i<n;i+=1)if(e[i]===t)return!1;return!0},t.prototype.match=function(e){var t=e;return this.$dependencyObj.val().match(t)},t.prototype.notmatch=function(e){var t=e;return!this.$dependencyObj.val().match(t)},t.prototype.contains=function(t){var n=this.$dependencyObj.val(),i=0;if("array"!=typeof n&&"object"!=typeof n)return this.values(t);for(i in t)if(-1!==e.inArray(t[i],n))return!0;return!1},t.prototype.doesQualify=function(){var e=0;for(e in this.qualifiers){if(!t.prototype.hasOwnProperty(e)||"function"!=typeof t.prototype[e])return this.qualifiers[e],this.qualifiers[e](this.$dependencyObj.val());if(!this[e](this.qualifiers[e]))return!1}return!0};var n=function(e){var n=0;for(n in this.dependencies=[],e)this.dependencies.push(new t(n,e[n]))};n.prototype.doesQualify=function(){for(var e=this.dependencies.length,t=0,n=!0;t<e;t+=1)if(!this.dependencies[t].doesQualify()){n=!1;break}return n};var i=function(t,n,i){this.dependencySets=[],this.$subject=t,this.settings=e.extend({disable:!0,hide:!0,duration:200,onEnable:function(){},onDisable:function(){}},i),this.enableCallback=function(){},this.disableCallback=function(){},this.init(n)};i.prototype.init=function(e){this.addSet(e),this.check(!0)},i.prototype.addSet=function(e){var t,i,r,s=this,d=0;for(this.dependencySets.push(new n(e)),t=this.dependencySets.length-1,i=this.dependencySets[t].dependencies.length;d<i;d+=1)(r=this.dependencySets[t].dependencies[d]).$dependencyObj.on("change",(function(e){s.triggeredEvent=e,s.triggeredDependency=this,s.check()})),"radio"===r.$dependencyObj.attr("type")&&r.$dependencyObj.on("deselect",(function(e){s.triggeredEvent=e,s.triggeredDependency=this,s.check()})),"text"!==r.$dependencyObj.attr("type")&&"email"!==r.$dependencyObj.attr("type")&&"url"!==r.$dependencyObj.attr("type")&&"password"!==r.$dependencyObj.attr("type")&&"number"!==r.$dependencyObj.attr("type")&&"tel"!==r.$dependencyObj.attr("type")||r.$dependencyObj.on("keydown, keyup",(function(e){e.which&&r.$dependencyObj.is(":focus")&&s.check()&&(s.triggeredEvent=e,s.triggeredDependency=this,s.check())}))},i.prototype.or=function(e){return this.addSet(e),this.check(!1),this},i.prototype.enable=function(t){this.$subject,this.$subject.attr("id");this.settings.hasOwnProperty("valueTarget")&&void 0!==this.settings.valueTarget?e(this.settings.valueTarget):"input"!==this.$subject[0].nodeName.toLowerCase()&&"textarea"!==this.$subject[0].nodeName.toLowerCase()&&"select"!==this.$subject[0].nodeName.toLowerCase()&&this.$subject.find("input, textarea, select"),this.settings.onEnable.call(this.triggeredDependency,this.triggeredEvent,e(this.triggeredDependency).attr("id"))},i.prototype.disable=function(t){this.$subject,this.$subject.attr("id");this.settings.hasOwnProperty("valueTarget")&&void 0!==this.settings.valueTarget?e(this.settings.valueTarget):"input"!==this.$subject[0].nodeName.toLowerCase()&&"textarea"!==this.$subject[0].nodeName.toLowerCase()&&"select"!==this.$subject[0].nodeName.toLowerCase()&&this.$subject.find("input, textarea, select"),this.settings.onDisable.call(this.triggeredDependency,this.triggeredEvent,e(this.triggeredDependency).attr("id"))},i.prototype.check=function(e){for(var t=this.dependencySets.length,n=0,i=!1;n<t;n+=1)if(this.dependencySets[n].doesQualify()){i=!0;break}return i?(this.enable(e),!0):(this.disable(e),!1)},e.fn.dependsOn=function(e,t){return new i(this,e,t)}}(jQuery);