// attach a handler to a particular event on an element // in a browser-independent way function registerEventHandler (element, event, handler) { if (element.attachEvent) { // MS registration model element.attachEvent('on' + event, handler); } else if (element.addEventListener) { // NN (W4C) regisration model element.addEventListener(event, handler, false); } else { // old regisration model as fall-back element[event] = handler; } } // get a delegate that refers to an instance method function getInstanceDelegate (obj, methodName) { return( function(e) { e = e || window.event; return obj[methodName](e); } ); }