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;    }  }  return true;}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;}