diff options
Diffstat (limited to 'comiccontrol/draganddrop/events.js')
-rw-r--r-- | comiccontrol/draganddrop/events.js | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/comiccontrol/draganddrop/events.js b/comiccontrol/draganddrop/events.js new file mode 100644 index 0000000..90b2058 --- /dev/null +++ b/comiccontrol/draganddrop/events.js @@ -0,0 +1,43 @@ +/* Copyright (c) 2005 Tim Taylor Consulting (see LICENSE.txt) */ + +ToolMan._eventsFactory = { + fix : function(event) { + if (!event) event = window.event + + if (event.target) { + if (event.target.nodeType == 3) event.target = event.target.parentNode + } else if (event.srcElement) { + event.target = event.srcElement + } + + return event + }, + + register : function(element, type, func) { + if (element.addEventListener) { + element.addEventListener(type, func, false) + } else if (element.attachEvent) { + if (!element._listeners) element._listeners = new Array() + if (!element._listeners[type]) element._listeners[type] = new Array() + var workaroundFunc = function() { + func.apply(element, new Array()) + } + element._listeners[type][func] = workaroundFunc + element.attachEvent('on' + type, workaroundFunc) + } + }, + + unregister : function(element, type, func) { + if (element.removeEventListener) { + element.removeEventListener(type, func, false) + } else if (element.detachEvent) { + if (element._listeners + && element._listeners[type] + && element._listeners[type][func]) { + + element.detachEvent('on' + type, + element._listeners[type][func]) + } + } + } +} |