


function  addLoadListener(fn)
{
  if  (typeof window.addEventListener != 'undefined')
  {
    window.addEventListener('load', fn, false);
  }
  else  if  (typeof document.addEventListener != 'undefined')
  {
    document.addEventListener('load', fn, false);
  }
  else  if  (typeof window.attachEvent != 'undefined')
  {
    window.attachEvent('onload', fn);
  }
  else
  {
    var oldfn = window.onload;
    if  (typeof window.onload != 'function')
    {
      window.onload = fn;
    }
    else
    {
      window.onload = function()
      {
        oldfn();
        fn();
      };

    }

  }
}


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] == "function")
    {

      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;



}



function stopDefaultAction(event)
{
  event.returnValue = false;

  if (typeof event.preventDefault != "undefined")
  {
    event.preventDefault();
  }

  return true;
}

function  engage(event)
{
  if  (typeof event == "undefined")
  {
    event = window.event;
  }

  alert("Engage!");

  stopDefaultAction(event);

  return false;

}


