EventDispatcher=function(){};EventDispatcher.prototype.version="1.0";var c=EventDispatcher;var p=EventDispatcher.prototype;c.initialize=function(target){if(target==undefined)return null;var attributes=["addEventListener","dispatchEvent","eventListenerExists","removeAllEventListeners","removeEventListener","updateEvent"];var i=new EventDispatcher;var l=attributes.length;while(--l>-1){var prop=attributes[l];target[prop]=i[prop];}};c.toString=function(){return"[EventDispatcher]";};p._listeners=null;p.addEventListener=function(eventName,obj,func){if(typeof(eventName)=="string"){if(this._listeners==null)this._listeners={};var a=this._listeners[eventName];if(a==undefined)this._listeners[eventName]=a=[];if(EventDispatcher.indexOf(a,obj,func)==-1){a.push({o:obj,f:func});}}};p.dispatchEvent=function(ev){try{if(typeof(ev.type)=="string"){if(ev.type=="ALL")return;var a;if(ev.target==undefined)ev.target=this;var f=this[ev.type+"_handler"];if(f!=undefined)f(ev);if(this._listeners)a=this._listeners[ev.type];if(a!=undefined)EventDispatcher.dispatch(ev.target,a,ev);if(this._listeners)a=this._listeners["ALL"];if(a!=undefined)EventDispatcher.dispatch(ev.target,a,ev);}}catch(err){for(var i in err){trace(i+":"+err[i]);}}};p.eventListenerExists=function(eventName,obj,func){var a=_listeners[eventName];if(a==undefined)return false;return(EventDispatcher.indexOf(a,obj,func)>-1);};p.removeAllEventListeners=function(eventName){if(eventName)delete this._listeners[eventName];else delete this._listeners;};p.removeEventListener=function(eventName,obj,func){var a=this._listeners[eventName];if(a==undefined)return;var id=EventDispatcher.indexOf(a,obj,func);if(id>-1)a.splice(id,1);};p.updateEvent=function(eventName,oInit){var ev={};ev.dynamic=true;ev.type=eventName;ev.target=this;if(oInit!=undefined)for(var each in oInit)ev[each]=oInit[each];this.dispatchEvent(ev);};c.dispatch=function(target,a,ev){for(var each in a){var item=a[each];var o=item.o;var f=item.f;var tof=typeof(o);if(tof=="object"){if(f instanceof Function){var f=Proxy.create(o,f);if(f!=undefined)f(ev);}else if(o["handleEvent"]!=undefined&&f==undefined){o["handleEvent"](ev);}else{if(f==undefined)f=ev.type;if(typeof(f)=="string"&&o[f]!=undefined){o[f].apply(o,[ev]);}}}else{if(o)o.apply(target,[ev]);}}};c.indexOf=function(a,o,f){var l=a.length;while(--l>-1){var item=a[l];if(item.o==o&&item.f==f)return l;}return-1;};delete c;delete p;
