
YAHOO.namespace("ea.sp");YAHOO.ea.sp.EventProvider=new function(){};YAHOO.ea.sp.EventProvider.prototype={createEvent:function(type)
{this._ea_sp_events=this._ea_sp_events||new Object();this._ea_sp_events[type]=this._ea_sp_events[type]||new Array();},fireEvent:function(type,arg1,arg2,etc)
{var subscribers=this._ea_sp_events[type];if(subscribers)
{var args=new Array();var l=arguments.length;for(var i=1;i<l;i++)
args.push(arguments[i]);for(var i=0,subscriber;subscriber=subscribers[i];i++)
subscriber.apply(this,args);}},hasEvent:function(type)
{this._ea_sp_events=this._ea_sp_events||new Object();return(this._ea_sp_events[type]!=null);},subscribe:function(type,callback)
{this._ea_sp_events=this._ea_sp_events||new Object();this._ea_sp_events[type]=this._ea_sp_events[type]||new Array();this._ea_sp_events[type].push(callback);},unsubscribe:function(type,callback)
{this._ea_sp_events=this._ea_sp_events||new Object();if(callback==null)
this._ea_sp_events[type]=new Array();var subscribers=this._ea_sp_events[type];for(var i=0,subscriber;subscriber=events[i];i++)
{if(subscriber==callback)
{subscribers.splice(i,1);return;}}},unsubscribeAll:function(type)
{this.unsubscribe(type,null);},repeatEvent:function(provider,event)
{this.createEvent(event);var self=this;provider.subscribe(event,function()
{var args=new Array();args.push(event);for(var i=0;i<arguments.length;i++)
args.push(arguments[i]);self.fireEvent.apply(self,args);});return event;}};
