// tnx to http://www.quirksmode.org/blog/archives/2005/10/_and_the_winner_1.html
// slightly tweaked to improve performance
var addEvent;
var removeEvent;
if(document.attachEvent)
{
	addEvent = function(obj, type, fn)
	{
		obj['e'+type+fn] = fn;
		obj[type+fn] = function()
		{
			obj['e'+type+fn](window.event);
		}
		obj.attachEvent('on'+type, obj[type+fn]);
	}
}
else if(document.addEventListener)
{
	addEvent = function(obj, type, fn)
	{
		obj.addEventListener(type, fn, false);
	}
}
else
{
	addEvent = new Function;
}

if(document.detachEvent)
{
    removeEvent = function(obj, type, fn)
    {
        obj.detachEvent('on'+type, obj[type+fn]);
        obj[type+fn] = null;
    }
}
else if(document.removeEventListener)
{
    removeEvent = function(obj, type, fn)
    {
        obj.removeEventListener(type, fn, false);
    }
}