﻿TRAILS.utils.EventManager = function TRAILS_utils_EventManager() {
	this._events = new Object();
};
TRAILS.utils.EventManager.prototype.trigger = function TRAILS_utils_EventManager_prototype_trigger(eventName) {
	var eventListeners = this._events[eventName];
	
	if (!eventListeners)
		return this;

	for (var i = 0, l = eventListeners.length, args = Array.prototype.slice.call(arguments, 1); i < l; ++i)
		eventListeners[i].apply(this, args);
	
	return this;
};
TRAILS.utils.EventManager.prototype.bind = function TRAILS_utils_EventManager_prototype_bind(eventName, fn) {
	if (typeof fn !== Function.type)
		return this;
	
	(this._events[eventName] || (this._events[eventName] = new Array())).push(fn);
	
	return this;
};
