EventBroadcaster = new Object();

EventBroadcaster.addListener = function(listener){
    this.removeListener(listener); 
    this._listeners.push(listener);
    
    return true;
}

EventBroadcaster.removeListener = function(listener){
    var i = this._listeners.length;
    
    while (--i >= 0) {
        if (this._listeners[i] == listener) {
            this._listeners.splice(i, 1);
            
            return true;
        }
    }
    
    return false;
}

EventBroadcaster.broadcastMessage = function(theEvent, params){
    var i = this._listeners.length;
    
    while (--i >= 0)
        this._listeners[i][theEvent](params);

}

EventBroadcaster.initialize = function(obj){
    obj.addListener = this.addListener; 
    obj.removeListener = this.removeListener; 
    obj.broadcastMessage = this.broadcastMessage;
    
    obj._listeners = [];
} 
