window.fxapplication = {
__listeners : [],

addEventListener : function(eventname, callbackfunction, functionscope)
{
	var listener = {name:eventname, callback: callbackfunction, scope: functionscope};
	for(var i = 0; i < this.__listeners.length; i++){
//		console.debug('Add Scope: ' + this.__listeners[i].scope);
//		if (this.__listeners[i].name == eventname && this.__listeners[i].callback == callbackfunction){
//			return;
//		}
	}
	this.__listeners.push(listener);
},

createEvent : function(eventname, eventdata){
	var evt = {name:eventname, data:eventdata};
	return evt;
},

dispatchEvent : function(event)
{
	//console.log('Dispatch event ' + event.name);
	for(var e in this.__listeners){
		if (this.__listeners[e].name == event.name){
			//console.log(this.__listeners[e].callback + ' Dispatch ' + this.__listeners[e].scope);
			this.__listeners[e].scope.tmpfunc = this.__listeners[e].callback;
			this.__listeners[e].scope.tmpfunc(event);
		}
	}
},
createDispatchEvent : function(eventname, eventdata){
	var e = {name:eventname, data:eventdata};
	this.dispatchEvent(e);
},
settings : {}
};
