/**
 * an event handler
 *
 * @copyright	Daniel Lehmann, DreamMedia, Berlin, Germany (www.dreammedia-bny.com)
 * @author		Daniel Lehmann <code@dreammedia-bny.com>
 * @version		1.0
 * @date        03.10.2011
 */

/**
 * The constructor.
 *
 */
function EventHandler() {
	
	this.events = new Array();
	
}

/**
 * Adds an event listener to the event handler.
 *
 * @param	event		the name of the event
 * @param	callback	the callback function for the event
 */
EventHandler.prototype.addEventListener = function(event, callback, scope) {
	
	for (var i=0; i<this.events.length; i++) {
		if (this.events[i]["event"] == event && this.events[i]["callback"] == callback) return;
	}
	
	this.events.push({event:event, callback:callback});
}

/**
 * Removes an event listener from the event handler.
 *
 * @param	event		the name of the event
 * @param	callback	the callback function for the event
 */
EventHandler.prototype.removeEventListener = function(event, callback, scope) {
	
	for (var i=0; i<this.events.length; i++) {
		if (this.events[i]["event"] == event && this.events[i]["callback"] == callback) {
			this.events.splice(i,1);
			i--;
		}
	}
}

/**
 * Fires an event.
 * Calls the callback functions of the registered event listeners for that event.
 */
EventHandler.prototype.fireEvent = function(event) {
	
	for (var i=0; i<this.events.length; i++) {
		if (this.events[i]["event"] == event) this.events[i]["callback"]();
	}
	
}
