if (!Element.prototype.eventListenerList) {
Element.prototype.eventListenerList = {}; Element.prototype.__eventListenerListAdded = false; Element.prototype.__addEventListener = Element.prototype.addEventListener; Element.prototype.addEventListener = function() { if (!this.__eventListenerListAdded) { this.eventListenerList = {}; this.__eventListenerListAdded = true; } if (!this.eventListenerList[arguments[0]]) { this.eventListenerList[arguments[0]] = []; } this.eventListenerList[arguments[0]].push(arguments[1]); return (this.__addEventListener.apply(this, arguments)); }; Element.prototype.__removeEventListener = Element.prototype.removeEventListener; Element.prototype.removeEventListener = function() { var found = false; if (!this.eventListenerList[arguments[0]]) { this.eventListenerList[arguments[0]] = []; } var key; for (key in this.eventListenerList[arguments[0]]) { found = this.eventListenerList[arguments[0]][key] === arguments[1]; if (found) { break; } } if (found) { this.eventListenerList[arguments[0]].splice(key, 1); } return (this.__removeEventListener.apply(this, arguments)); };
}