//
// (c) 2007 webActive
//

var Broadcaster = new Class(
{
	initialize: function()
	{
		this.listeners = new Array();
	},
	
	addListener: function(oListener)
	{
		for (var i = 0; i < this.listeners.length; i++)
		{
			if (this.listeners[i] == oListener)
				return;
		}
		
		this.listeners.push(oListener);			
	},
	
	removeListener: function(oListener)
	{
		var newListeners = new Array();
		
		for (var i = this.listeners.length - 1; i >= 0; i--)
		{
			if (this.listeners[i] != oListener)
				newListeners.push(oListener);
		}
	},
	
	broadcastMessage: function(sMessage)
	{
		for (var i = 0; i < this.listeners.length; i++)
		{
			if (this.listeners[i][sMessage])
				this.listeners[i][sMessage].apply(this.listeners[i]);
		}
	}
});
