/* 
	inspired by tim morgan's post on bypassing the onload event
	http://static.timmorgan.org/jude/archives/2002/06/07_bypassing_the_onload_event.html
	Tested and works with Mac IE 5.2, Safari 1.0, Win IE 5+, Mozilla 1.5, Opera 7.11 
*/

loadEvents = {
	useReadyState: navigator.userAgent.match(/mac/i) && (typeof document.onreadystatechange != 'undefined'),
	el: new Array(),
	add: function(f){
		this.el[this.el.length] = f; //like Array.push() but Mac IE5 doesn't even implement that!
	},
	fire: function(){
		with(loadEvents){
			if(el.length){
				if( useReadyState && document.readyState != 'interactive') return;
				for( var i = 0; i < el.length; el[i++]() );
			}
		}
		delete(loadEvents);
	}
};

if( window.addEventListener ){ //DOM
	window.addEventListener( 'load', loadEvents.fire, false );
}else if( window.attachEvent ){ // mircrosoft’s
	window.attachEvent( 'onload', loadEvents.fire );
}else if( loadEvents.useReadyState ){ // microsoft’s for mac ie5
	document.onreadystatechange = loadEvents.fire;
}