// from http://www.ilfilosofo.com/blog/2008/04/14/addevent-preserving-this/
function addEvent(obj, type, fn) {
	if (obj.addEventListener) { // W3C standard
		obj.addEventListener(type, fn, false);
	}
	else if (obj.attachEvent) { // IE
		obj.attachEvent('on' + type, function() {return fn.call(obj, window.event);});
	}
}