| /* 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]) |
| } |
| } |
| } |
| } |