define("event-custom",["event-base","util"],function(t){var e,r,n,i,s,a,u=t("event-base"),o=t("util");return e=function(t){function e(){e.superclass.constructor.apply(this,arguments)}var r=u,n=o;return n.extend(e,r.Observer,{keys:["fn","context","groups"]}),t=e}(),r=function(t){function e(t){e.superclass.constructor.call(this),n.mix(this,t)}var r=u,n=o;return n.extend(e,r.Object),t=e}(),n=function(t){function n(){var t=this;n.superclass.constructor.apply(t,arguments),t.defaultFn=null,t.defaultTargetOnly=!1,t.bubbles=!0}var i=u,s=e,a=r,c=i.Utils,f=o;return f.extend(n,i.Observable,{on:function(t){var e=new s(t);-1===this.findObserver(e)&&this.observers.push(e)},fire:function(t){t=t||{};var e,r,n,i,s,u=this,o=u.bubbles,c=u.currentTarget,f=u.type,v=u.defaultFn,g=t;if(t.type=f,g.isEventObject||(g=new a(g)),g.target=g.target||c,g.currentTarget=c,s=u.notify(g),i!==!1&&void 0!==s&&(i=s),o&&!g.isPropagationStopped())for(e=c.getTargets(),r=e&&e.length||0,n=0;r>n&&!g.isPropagationStopped();n++)s=e[n].fire(f,g),i!==!1&&void 0!==s&&(i=s);if(v&&!g.isDefaultPrevented()){var l=g.target,h=l.getEventListeners(g.type);(u.defaultTargetOnly||h&&h.defaultTargetOnly)&&c!==l||(i=v.call(c,g))}return i},notify:function(t){var e,r,n,i=[].concat(this.observers),s=i.length;for(n=0;s>n&&!t.isImmediatePropagationStopped();n++)e=i[n].notify(t,this),r!==!1&&void 0!==e&&(r=e);return r},detach:function(t){var e,r=this,n=t.fn,i=t.context,s=r.currentTarget,a=r.observers,u=t.groups;if(a.length){u&&(e=c.getGroupsRe(u));var o,f,v,g,l,h=a.length;if(n||e){for(i=i||s,o=0,f=0,v=[];h>o;++o){g=a[o];var p=g.config;l=p.context||s,(i!==l||n&&n!==p.fn||e&&!p.groups.match(e))&&(v[f++]=g)}r.observers=v}else r.reset()}}}),t=n}(),i=function(t){function e(t,e){var r=t.getEventListeners(e);return r||(r=t.getEventListeners()[e]=new i({currentTarget:t,type:e})),r}var r=u,i=n,s=o,a=r.Utils,c=a.splitAndRun,f="__~ks_bubble_targets",v="__~ks_custom_events";return t={isTarget:1,fire:function(t,e){var r,n=this,s=n.getTargets(),u=s&&s.length;return t.isEventObject&&(e=t,t=t.type),e=e||{},c(t,function(t){var s,o;if(a.fillGroupsForEvent(t,e),t=e.type,o=n.getEventListeners(t),o||u){if(o){if(!o.hasObserver()&&!o.defaultFn&&(o.bubbles&&!u||!o.bubbles))return}else o=new i({currentTarget:n,type:t});s=o.fire(e),r!==!1&&void 0!==s&&(r=s)}}),r},publish:function(t,r){var n,i=this;return c(t,function(t){n=e(i,t),s.mix(n,r)}),i},addTarget:function(t){var e=this,r=e.getTargets();return s.inArray(t,r)||r.push(t),e},removeTarget:function(t){var e=this,r=e.getTargets(),n=s.indexOf(t,r);return-1!==n&&r.splice(n,1),e},getTargets:function(){return this[f]||(this[f]=[])},getEventListeners:function(t){var e=this[v]||(this[v]={});return t?e[t]:e},on:function(t,r,n){var i=this;return a.batchForType(function(t,r,n){var s=a.normalizeParam(t,r,n);t=s.type;var u=e(i,t);u.on(s)},0,t,r,n),i},detach:function(t,e,r){var n=this;return a.batchForType(function(t,e,r){var i=a.normalizeParam(t,e,r);if(t=i.type){var u=n.getEventListeners(t);u&&u.detach(i)}else s.each(n.getEventListeners(),function(t){t.detach(i)})},0,t,e,r),n}}}(),s=function(t){var e=i,n=o;return t={Target:e,Object:r,global:n.mix({},e)}}(),a=function(t){return t=s}()});