/*
======================================================================

JSBroadcaster.js


author:		Timothy Groves
			desk [at] brandspankingnew.net
version:	1.0

tested on:	Safari 2.0 Mac / FF 1.5 Mac

history:	01.01.2006	-	created

======================================================================
*/

var JSBroadcaster = {};
	
JSBroadcaster.initialize = function (obj)
{
	obj._listeners = new Array();
	
	obj.addListener = function (obj)
	{
		for (var i=0;i<this._listeners.length; i++) {
			if ( this._listeners[i] == obj)
				return false;
		}
		this._listeners.push( obj );
		return true;
	}
	
	obj.removeListener = function ( obj )
	{
		// remove obj from _listeners array
		for (var i=0;i<this._listeners.length; i++) {
			if ( this._listeners[i] == obj) {
				this._listeners.splice(i,1);
				return true;
			}
		}
		return false;
	}
	
	obj.broadcastMessage = function (func, str)
	{
		// loop through listeners calling function
		for (var i=0;i<this._listeners.length; i++) {
			if ( typeof this._listeners[i][func] == "function" )
				this._listeners[i][func]( str );
		}
	}
}

