/*  iSite Technologies Corporation copyright, 2007 */

function EventUtils()
{
	throw 'RuntimeException: EventUtils is a static utility class and may not be instantiated';
}

///////////////////////////////////////////////////////////////////////////
//                                                                      ///
///////////////////////////////////////////////////////////////////////////
EventUtils.addEventListener=function(target, type, callback, captures)
{
	var result=true;
	if (target.addEventListener)
	{
		target.addEventListener(type, callback, captures);
	}
	else if (target.attachEvent)
	{
		result=target.attachEvent('on'+type, callback, captures);
	}
	else
	{
		// IE 5 Mac and some others
		target['on'+type]=callback;
	}
	return result;
}

///////////////////////////////////////////////////////////////////////////
//                                                                      ///
///////////////////////////////////////////////////////////////////////////
EventUtils.findTarget=function(e, allowTextNodes)
{
	var target;
	if (window.event)
	{
		target=window.event.srcElement;
	}
	else if (e)
	{
		target=e.target;
	}
	else
	{
		// we can't find it, just use window
		target=window;
	}
	if (!allowTextNodes&&target.nodeType==3)
	{
		target=target.parentNode;
	}
	return target;
}
/**
 * @return {x, y}
 */
EventUtils.getMousePosition=function(e)
{
	var posx=0;
	var posy=0;
	if (!e)
	{
		e=window.event;
	}
	if (e.pageX||e.pageY)
	{
		posx=e.pageX;
		posy=e.pageY;
	}
	else if (e.clientX||e.clientY)
	{
		posx=e.clientX+document.body.scrollLeft;
		posy=e.clientY+document.body.scrollTop;
	}
	return {x: posx, y: posy};
}

///////////////////////////////////////////////////////////////////////////
//                                                                      ///
///////////////////////////////////////////////////////////////////////////
function TextSelectionEvent(selectedText, mousePosition)
{
	this.selectedText=selectedText;
	this.x=mousePosition.x;
	this.y=mousePosition.y;
}

