function addEvent(obj, eventType, fn){
  /* adds an eventListener for browsers which support it
     Written by Scott Andrew: nice one, Scott */
     
  if( eventType === "load" ) {
  	//hack me
  	loadEventList.addLoadEvent(fn);
  	return true;
  }     
     
  if (obj.addEventListener){
    obj.addEventListener(eventType, fn, false);
    return true;
  } else if (obj.attachEvent){
	var r = obj.attachEvent("on"+eventType, fn);
    return r;
  } else {
	return false;
  }
}

var loadEventList = [];
loadEventList.addLoadEvent = function( fn ) {
	loadEventList[ loadEventList.length ] = fn;
}

loadEventList.fireLoadEvents = function() {
	for(var i=0; i<loadEventList.length; i++) {
		loadEventList[i]();
	}
}

/* the following is a hack to replicate DOMContentLoaded in browsers
   other than Firefox.  It is basically copied from
   http://dean.edwards.name/weblog/2006/06/again/
*/
if(/WebKit/i.test(navigator.userAgent)) { // Safari
	var _timer = setInterval(function() {
		if (/loaded|complete/.test(document.readyState)) {
			clearInterval(_timer);
			loadEventList.fireLoadEvents(); // call the onload handler
		}
	}, 100);
} else if (document.addEventListener) {
	document.addEventListener("DOMContentLoaded", loadEventList.fireLoadEvents, false);
} else {
  // IE HACK
/*@cc_on @*/
/*@if (@_win32)
document.write("<script id='__ie_onload' defer='defer' src='javascript:void(0)'><\/script>");
var script = document.getElementById("__ie_onload");
script.onreadystatechange = function() {
	if (this.readyState == "complete") {
		loadEventList.fireLoadEvents(); // call the onload handler
	}
};
/*@end @*/
}
