/*
 * ia_events.js
 * InformAction DHTML events utility routines
 * Copyright (c) 2003 Giorgio Maone - g.maone@informaction.com
*/
function ia_registerEvent(target,name,handler) {
  if(typeof(target.addEventListener)!="undefined") {
    target.addEventListener(name,handler,true);
    return handler;
  } else if(typeof(window.attachEvent)!="undefined") {
    var fixedHandler=function() { handler(fixEv(target)) };
    if(target.attachEvent("on"+name,fixedHandler)) {
      return fixedHandler;
    }
  }
  return false;
  function fixEv(t) {
    var ev=window.event;
    ev.currentTarget=t;
    ev.target=ev.srcElement;
    ev.which=ev.button;
    return ev;
  }
}
function ia_removeEvent(target,name,handler) {
  if(typeof(target.removeEventListener)!="undefined") {
    target.removeEventListener(name,handler,true);
    return true;
  } else if(typeof(window.detachEvent)!="undefined") {
    return target.detachEvent("on"+name,handler);
  }
  return false;
}
function ia_abortEvent(ev) {
   if(typeof(ev.stopPropagation)!="undefined") ev.stopPropagation();
   else ev.cancelBubble=true;
}
