
//EVENTS
EventUtil =
{
	
	//method handles setting a listener function for a system event
	fAddEvent : function(pmElement, pmEvent, pmFunction, pmUseCapture)
	{
		if(pmElement.addEventListener) //DOM2 compatible
		{
			pmElement.addEventListener(pmEvent, pmFunction, pmUseCapture);
			return(true);
		}
		else if(pmElement.attachEvent) //IE6
		{
			var myReturn = pmElement.attachEvent('on' + pmEvent, pmFunction);
			return(myReturn);
		}else //other
		{
			pmElement['on' + pmEvent] = pmFunction;
		};//end if
		
	}//end function
	,
	//method handles both stopping propogation and preventing default action across browsers
	fTrapEvent: function(eventObj)
	{
		if (window.event){ window.event.cancelBubble = true; window.event.returnValue = false; };
		if (eventObj && eventObj.stopPropagation && eventObj.preventDefault){ eventObj.stopPropagation(); eventObj.preventDefault(); };
	}//end function
	,
	//method handles returning correct target for different browser interpretations
	fGetTarget : function(eventObj)
	{
		var target = window.event ? window.event.srcElement : eventObj ? eventObj.target : null;
		if (!target){ return(false); };
		//safari fix, text node sent rather than link
		while(target.nodeType!=1 && target.nodeName.toLowerCase()!='body'){ target=target.parentNode; };
		return(target);
	}//end function
	,
	//method handles Safari bug of not enacting the preventDefault() method
	safariClickFix : function()
	{
		return(false);
    }//end function
	
};//end EventUtil object literal