
// Event Handling

if (document.addEventListener) {
  AddEvent = function(target,name,fn) {
    //var fname = GetFunctionName(fn);
    //alert('AddEvent[Listener]('+target.id+','+name+','+fname+') called');
    target.addEventListener(name,fn,false)
  }
  RemoveEvent = function(target,name,fn) {
    //var fname = GetFunctionName(fn);
    //alert('RemoveEvent[Listener]('+target.id+','+name+','+fname+') called');
    target.removeEventListener(name,fn,false)
  }
} else if (document.attachEvent) {
  AddEvent = function(target,name,fn) {
    var fname = GetFunctionName(fn);
    //alert('AddEvent('+target.id+','+name+','+fname+')');
    var anon  = function(){ target['fn'+name+fname](window.event); }
    target['fn'+name+fname] = fn;
    target['eh'+name+fname] = anon;
    target.attachEvent('on'+name,target['eh'+name+fname]);
  }
  RemoveEvent = function(target,name,fn) {
    var fname = GetFunctionName(fn);
    //alert('RemoveEvent('+target.id+','+name+','+fname+')');
    target.detachEvent('on'+name,target['eh'+name+fname]);
    target['eh'+name+fname] = null;
    target['fn'+name+fname] = null;
  }
} else {
  AddEvent = function(target,name,fn) {
    //var fname = GetFunctionName(fn);
    //alert('default AddEvent('+target.id+','+name+','+fname+') called');
    target['on'+name] = fn;
  }
  RemoveEvent = function(target,name,fn) {
    //var fname = GetFunctionName(fn);
    //alert('default AddEvent('+target.id+','+name+','+fname+') called');
    target['on'+name] = null;
    delete target['on'+name];
  }
}


