var cListenersCollection = {    
    addListener: function(listener) 
    {               
        if (this._getListenerIndex(listener) < 0) {            
            this.listeners.push(listener);
        }
    },
    
    removeListener: function(listener) 
    {
        var idx = this._getListenerIndex(listener);
        if (idx >= 0) {
            _this.listeners[idx] = null;
        }
    },
    
    notify: function(event, params) 
    {
        for (var i = 0; i < this.listeners.length; i++) {            
            if (this.listeners[i] && this.listeners[i][event]) {
                this.listeners[i][event](params);
            }
        }
    },
    
    _getListenerIndex: function(listener) 
    {        
        for (var i = 0; i < this.listeners.length; i++) {
            if (this.listeners[i] == listener) {
                return i;
            }
        }
        return -1;
    }
}; 

function ListenersCollection()
{                  
    for (var f in cListenersCollection) {
        this[f] = cListenersCollection[f];        
    }
    
    this.listeners = [];               
}
