/* 
 * centralized interface events
 * 
 */

(function() {
	
var _events = {
	FOCUS_SET:		'blFocusSet',
	FOCUS_RELEASED:	'blFocusReleased',
	ELEMENT_LOADED:	'blElementLoaded'
};

// centralized event manager
var _eventManager = new Events;

this.blInterfaceEvents = new Class({

	eventsInitialized : false,

	initializeEvents : function() {

		this.eventsInitialized = true;
		
		if (this.events)
			_events = Object.merge(_events, this.events);

		// TODO: nice & cross-browser solution

		/* --- NOT SUPPORTED BY IE
		// eventManager: getter / setter
		this.__defineSetter__("events", this.setEvents);
		this.__defineGetter__("events", this.getEvents);
		
		// eventManager: read only
		this.__defineGetter__("eventManager", this.getEventManager);
		*/
	},

	setEvents : function(e) {

		if (!this.eventsInitialized)
			this.initializeEvents();

		_events = Object.merge(_events, e);

	},

	getEvents : function() {

		return _events;

	},

	getEventManager : function() {

		return _eventManager;

	}

});

})();
