Object.extend(Event, { OnLoad : function (fn) { // opera onload is in document, not window var w = document.addEventListener && !window.addEventListener ? document : window; Event.__observe(w,'load',fn); }, observe: function(elements, name, observer, useCapture) { if(!isList(elements)) return this.__observe(elements, name, observer, useCapture); for(var i=0; i 0) || element.attachEvent)) name = 'keydown'; this._observeAndCache(element, name, observer, useCapture); }, keyCode : function(e) { return e.keyCode != null ? e.keyCode : e.charCode }, fireEvent : function(element,type) { if(document.createEvent) { var event = document.createEvent('HTMLEvents'); event.initEvent(type, true, true); element.dispatchEvent(event); } else if(element.fireEvent) { element.fireEvent('on'+type); element[type](); } else element[type](); } });