
/////////////////////
// Event Functions //
/////////////////////

function addEvent(obj, type, fn) {
	if (obj.addEventListener)
		obj.addEventListener( type, fn, false );
	else if (obj.attachEvent)
	{
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
	}
}
function removeEvent(obj, type, fn) {
	if (obj.removeEventListener)
		obj.removeEventListener( type, fn, false );
	else if (obj.detachEvent)
	{
		obj.detachEvent( "on"+type, obj[type+fn] );
		obj[type+fn] = null;
		obj["e"+type+fn] = null;
	}
}
function cancelClick(e) {
	if (window.event){
		window.event.cancelBubble = true;
		window.event.returnValue = false;
	}
	if (e && e.stopPropagation && e.preventDefault){
		e.stopPropagation();
		e.preventDefault();
	}
}
function getTarget(e) {
	var target = window.event ? window.event.srcElement : e ? e.target : null;
	if (!target) {return false;}
	while (target.nodeType != 1 && target.nodeName.toLowerCase() != 'body') {
		target = target.parentNode;
	} 
	return target;
}
