
function addEvent( elm, evType, fn, useCapture )
{
	if( elm.addEventListener )
	{
		elm.addEventListener( evType, fn, useCapture );
		return true;
	}
	else if ( elm.attachEvent )
	{
		var r = elm.attachEvent( 'on' + evType, fn );
		return r;
	}
	else
	{
		elm[ 'on' + evType] = fn;
		return true;
	}
}

function findTarget(e)
{
	var target;
	
	if( window.event && window.event.srcElement )
	{
		target = window.event.srcElement;
	}
	else if ( e && e.target )
	{
		target = e.target;
	}
	
	if( !target )
	{
		return null;
	}
	
	return target;
}


function findPosition( oElement ) {
  if( typeof( oElement.offsetParent ) != 'undefined' ) {
    for( var posX = 0, posY = 0; oElement; oElement = oElement.offsetParent ) {
      posX += oElement.offsetLeft;
      posY += oElement.offsetTop;
    }
    return [ posX, posY ];
  } else {
    return [ oElement.x, oElement.y ];
  }
}
