Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
119 ghuddy 1
/* Copyright (c) 2005 Tim Taylor Consulting (see LICENSE.txt) */
2
 
3
ToolMan._eventsFactory = {
4
	fix : function(event) {
5
		if (!event) event = window.event
6
 
7
		if (event.target) {
8
			if (event.target.nodeType == 3) event.target = event.target.parentNode
9
		} else if (event.srcElement) {
10
			event.target = event.srcElement
11
		}
12
 
13
		return event
14
	},
15
 
16
	register : function(element, type, func) {
17
		if (element.addEventListener) {
18
			element.addEventListener(type, func, false)
19
		} else if (element.attachEvent) {
20
			if (!element._listeners) element._listeners = new Array()
21
			if (!element._listeners[type]) element._listeners[type] = new Array()
22
			var workaroundFunc = function() {
23
				func.apply(element, new Array())
24
			}
25
			element._listeners[type][func] = workaroundFunc
26
			element.attachEvent('on' + type, workaroundFunc)
27
		}
28
	},
29
 
30
	unregister : function(element, type, func) {
31
		if (element.removeEventListener) {
32
			element.removeEventListener(type, func, false)
33
		} else if (element.detachEvent) {
34
			if (element._listeners 
35
					&& element._listeners[type] 
36
					&& element._listeners[type][func]) {
37
 
38
				element.detachEvent('on' + type, 
39
						element._listeners[type][func])
40
			}
41
		}
42
	}
43
}