/*
 * davidsuzuki.org site-wide javascript
 */

var Signals = new function() {
	var handlers = {};
	
	this.register = function(signalName) {
		if (! handlers[signalName]) {
			handlers[signalName] = [];
		}
	}
	
	this.fire = function(signalName, data) {
		if (handlers[signalName]) {
			$.each(handlers[signalName], function(index, callback) {
				callback(data);
			});
		}
	}
	
	this.watch = function(signalName, handler) {
		var signalId = 0;
		if (handlers[signalName]) {
			signalId = handlers[signalName].push(handler);
		}
		return signalId;
	}
	
	this.unwatch = function(signalName, handlerID) {
		if (handlers[signalName]) {
			handlers[signalName].splice(handlerID - 1, 1);
		}
	}
}


