/* -- helper functions -- */

function attachEventListener(target, eventType, functionRef, capture)
{
  if (typeof target.addEventListener != "undefined")
  {
    target.addEventListener(eventType, functionRef, capture);
  }
  else if (typeof target.attachEvent != "undefined")
  {
    target.attachEvent("on" + eventType, functionRef);
  }
  else
  {
    eventType = "on" + eventType;
    
    if (typeof target[eventType] == "funtion")
    {
      var oldListener = target[eventType];
      
      target[eventType] = function()
      {
        oldListener();
        
        return functionRef();
      };
    }
    else
    {
      target[eventType] = functionRef;
    }
  }
}

function getEventTarget(event)
{
  var targetElement = null;
  
  if (typeof event.target != "undefined")
  {
    targetElement = event.target;
  }
  else
  {
    targetElement = event.srcElement;
  }
  
  while (targetElement.nodeType == 3 && targetElement.parentNode != null)
  {
    targetElement = targetElement.parentNode;
  }
  
  return targetElement;
}

