EventBroadcaster = new (Object)();

EventBroadcaster.initialize = function(obj) {
	obj._listeners = new (Array)();
	obj.broadcastMessage = this._broadcastMessage;
	obj.addListener = this._addListener;
	obj.removeListener = this._removeListener;
}

EventBroadcaster._broadcastMessage = function() {
	var args = [];
	for(var i=0;i<arguments.length;i++)  _proxy_jslib_assign('', args, (i), '=', ( _proxy_jslib_handle(arguments, (i), 0, 0)));
	var eventName = args.shift();
	var list = this._listeners;
	var max = list.length;
	for(var i=0;i<max;(i= _proxy_jslib_assign_rval('++', 'i', '', '', i))){
		 _proxy_jslib_handle( _proxy_jslib_handle(list, (i), 0, 0), (eventName), 0, 0).apply( _proxy_jslib_handle(list, (i), 0, 0),args)

 }
}

EventBroadcaster._addListener = function(obj) {
	this.removeListener(obj);
	this._listeners.push(obj);
	return true;
}

EventBroadcaster._removeListener = function(obj) {
	var list = this._listeners;
	var i = list.length;
	while(i--){
		if( _proxy_jslib_handle(list, (i), 0, 0)==obj){
			list.splice(i,1);
			return true;
		}
	}
	return false;
} ;
_proxy_jslib_flush_write_buffers() ;