( function( ) { function config( pObj, pEvent, pHandler ) { if ( typeof pObj == 'object' ) { if ( pEvent.substring(0, 2) == 'on' ) pEvent = pEvent.substring(2, pEvent.length ); if ( arguments.length == 3 ) { if ( pObj.addEventListener ) pObj.addEventListener(pEvent, pHandler, false ); else if ( pObj.attachEvent ) pObj.attachEvent( 'on' + pEvent, pHandler ); ( arguments[0].preventDefault ) ? arguments[0].preventDefault( ) : arguments[0].returnValue = false; } else if ( arguments.length == 4 ) { if ( pObj.removeEventListener ) pObj.removeEventListener( pEvent, pHandler, false ); else if ( pObj.detachEvent ) pObj.detachEvent( 'on' + pEvent, pHandler ); } } } function add( pObj, pEvent, pHandler ) { config( pObj, pEvent, pHandler ); } function remove( pObj, pEvent, pHandler ) { config( pObj, pEvent, pHandler, true ); } function Events( ) { } Events.prototype.add = add; Events.prototype.remove = remove; window.XEvents = new Events; } )( );