function addEvent ( obj, evType, fn, useCapture ) { //alert ( "setting event type " + evType + " function: " + fn.name ); if ( obj.addEventListener ) { // stop gap measure to prevent Firefox from ignoring 'on' events when returning false if ( evType == 'submit' ) { obj['on' + evType] = fn; } obj.addEventListener ( evType, fn, useCapture ); } else if ( obj.attachEvent ) { return obj.attachEvent ( 'on' + evType, fn ); } else { obj['on' + evType] = fn; } return false; } function removeEvent(obj, evType, fn, useCapture ) { if ( obj.removeEventListener ) { // stop gap measure to prevent Firefox from ignoring 'on' events when returning false if ( evType == 'submit' ) { obj['on' + evType] = null; } obj.removeEventListener(evType,fn,useCapture); return false; } else if ( obj.detachEvent ) { obj.detachEvent( 'on' + evType, fn ); } else { obj['on' + evType] = null; } } function stopEvent (e) { if (!e) { var e = window.event; } e.cancelBubble = true; if (e.stopPropagation) {e.stopPropagation();} if (e.preventDefault) {e.preventDefault();} else {window.event.returnValue=false;} return false; } function addClass ( object, classname ) { if ( object != null ) { var myClass = object.className; if ( myClass.indexOf ( classname ) == -1 ) { myClass += ' ' + classname; } object.className = myClass; } } function removeClass ( object, classname ) { if ( object != null ) { var myClass = ""; var tmpClass = object.className; if ( tmpClass != null ) { var myNames = tmpClass.split ( " " ); var j = 0; for ( var i = 0; i < myNames.length; i++ ) { if ( myNames[i] != classname ) { if ( j++ == 0 ) { myClass += myNames[i]; } else { myClass += " " + myNames[i]; } } } } object.className = myClass; } }