var eventClass={ eventRegistry : {}, addEventListener : function(element, eventName, eventHandler, scope) { var scopedEventHandler = scope ? function(e) { eventHandler.apply(scope, [e]); } : eventHandler; if (typeof eventRegistry == "undefined") eventRegistry = {}; if (typeof eventRegistry[eventName] == "undefined") eventRegistry[eventName] = {}; eventRegistry[eventName][eventHandler] = scopedEventHandler; element.addEventListener(eventName, scopedEventHandler, false); }, removeEventListener : function(element, eventName, eventHandler, scope) { var scopedEventHandler = eventRegistry[eventName][eventHandler]; element.removeEventListener(eventName, scopedEventHandler, false); } }