﻿var EventDispatcher=Class.create();Object.extend(EventDispatcher.prototype,{buildListenerChain:function(){if(!this.listenerChain)this.listenerChain={}},addEventListener:function(a,b){this.buildListenerChain();if(!this.listenerChain[a])this.listenerChain[a]=[b];else this.listenerChain[a].push(b)},hasEventListener:function(a){return typeof this.listenerChain[a]!="undefined"},removeEventListener:function(a,c){if(!this.hasEventListener(a))return false;for(var b=0;b<this.listenerChain[a].length;b++)if(this.listenerChain[a][b]==c)this.listenerChain[a].splice(b,1)},dispatchEvent:function(a,b){this.buildListenerChain();if(!this.hasEventListener(a))return false;this.listenerChain[a].any(function(a){return a(b)==false?true:false})},on:function(b,a){this.addEventListener(b,a)},fire:function(b,a){this.dispatchEvent(b,a)}})
