/*! jq-element-revealer - v1.0.6 - 2015-02-20 * https://github.com/cleargif/jq-element-revealer * Copyright (c) 2015 @ClearGif; Licensed http://cleargifltd.mit-license.org/ */ !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a){"use strict";function b(b){this.settings=a.extend({},e,b),this.init()}var c=a({});a.subscribe=function(){c.on.apply(c,arguments)},a.unsubscribe=function(){c.off.apply(c,arguments)},a.publish=function(){c.trigger.apply(c,arguments)};var d="jqReveal",e={arraySeparator:"|",publishDelegateSelector:".jqr-delegate-hook",publisherSelector:".jqr-publisher",publisherEvents:"data-jqr-publish-events",publisherEventValue:"data-jqr-publish-value",subscriberSelector:".jqr-subscriber",subscriberEvents:"data-jqr-subscribe-events",subscriberEventValues:"data-jqr-subscribe-values",triggerPubsAfterBind:!0},f=!1;a.extend(b.prototype,{init:function(){this.bindPublishers(),this.bindSubscribers(),this.settings.triggerPubsAfterBind&&this.triggerPublishers()},bindPublishers:function(){var b=a(this.settings.publishDelegateSelector),c=this;b.on("click pseudo-click",c.settings.publisherSelector,{},function(b){var d=a(this),e=c.extractEventNamesList(d,this),f=d.prop("tagName");("A"===f||"BUTTON"===f)&&b.preventDefault(),a.each(e,function(a,d){c.publish(d,b)})})},publish:function(b,c){var d=a(c.target)[0],e=d.getAttribute("value")||d.getAttribute(this.settings.publisherEventValue);a.publish(b,{e:c,eventValue:e})},bindSubscribers:function(){var b=a(this.settings.subscriberSelector),c=this;b.is(function(b,d){a.subscribe(d.getAttribute(c.settings.subscriberEvents),function(a,b){c.subscriberStateManager(d,a,b)})})},subscriberStateManager:function(b,c,d){var e,f=b.getAttribute(this.settings.subscriberEventValues),g=a(b);return f?(e=!!~a.inArray(d.eventValue,f.split(this.settings.arraySeparator)))?void g.show():void g.hide():void g.toggle()},extractEventNamesList:function(b,c){var d=b.prop("tagName"),e="SELECT"===d?a("option:selected",c)[0]:b[0],f=e.getAttribute(this.settings.publisherEvents).split(this.settings.arraySeparator);return f},triggerPublishers:function(){a(this.settings.publisherSelector).is(function(){var b=a(this);b.is(":checked")&&b.trigger("pseudo-click")})}}),"undefined"==typeof a[d]&&(a[d]=function(a){return f||(new b(a),f=!0),this})});