
// to do add event cancelling
if(!window.EventManager) window.EventManager = {};

EventManager.addEventListener = function(eventType, observer){
	
	if(!EventManager.events) EventManager.events = new Array();
	
	// prevent duplicate event/observer combos from being added to array
    for(var i in EventManager.events){
        var e = EventManager.events[i].eventType;
		var o = EventManager.events[i].observer;
		if(e == eventType && o == observer) return false;
		
    }
	// trace("adding: "+eventType+" to "+observer.toString())
    EventManager.events.push({observer:observer, eventType:eventType});
	return true;
};


// look up event, if it exists call method in observer
EventManager.dispatchEvent = function(eventObject){

    var eventType = eventObject.type;
    for(var i in EventManager.events){
        var e = EventManager.events[i].eventType;
        var observer =  EventManager.events[i].observer;
		if(e == eventType) observer[e](eventObject);
    }
};

// remove event not fully tested
EventManager.removeEventListener = function(eventType, observer){
	
    for(var i in EventManager.events){
        var e = EventManager.events[i].eventType;
        var o =  EventManager.events[i].observer;
		if(o==observer && e==eventType){
			EventManager.events.splice(i, 1);
			observer[eventType](eventObject);
		}
    }
	
};
