1 var EventUtil = {
2
3 addHandler: function (element, type, handler) {
4 if (element.addEventListener) {
5 element.addEventListener(type, handler, false);
6 } else if (element.attachEvent) {
7 element.attachEvent("on" + type, handler);
8 } else {
9 element["on" + type] = handler;
10 }
11 },
12
13 removeHandler: function (element, type, handler) {
14 if (element.removeEventListener) {
15 element.removeEventListener(type, handler, false);
16 } else if (element.detachEvent) {
17 element.detachEvent("on" + type, handler);
18 } else {
19 element["on" + type] = null;
20 }
21 },
22
23 getEvent: function (event) {
24 return event ? event : window.event;
25 },
26
27 getTarget: function (event) {
28 return event.target || event.srcElement;
29 },
30
31 preventDefault: function (event) {
32 if (event.preventDefault) {
33 event.preventDefault();
34 } else {
35 event.returnValue = false;
36 }
37 },
38
39 stopPropagation: function (event) {
40 if (event.stopPropagation) {
41 event.stopPropagation();
42 } else {
43 event.cancelBubble = true;
44 }
45 },
46
47 getRelatedTarget: function (event) {
48 if (event.relatedTarget) {
49 return event.relatedTarget;
50 } else if (event.toElement) {
51 return event.toElement;
52 } else if (event.fromElement) {
53 return event.fromElement;
54 } else {
55 return null;
56 }
57 },
58
59 getButton: function (event) {
60 if (document.implementation.hasFeature("MouseEvents", "2.0")) {
61 return event.button;
62 } else {
63 switch (event.button) {
64 case 0:
65 case 1:
66 case 3:
67 case 5:
68 case 7:
69 return 0;
70 case 2:
71 case 6:
72 return 2;
73 case 4:
74 return 1;
75 }
76 }
77 },
78
79 getCharCode: function (event) {
80 if (typeof event.charCode == "number") {
81 return event.charCode;
82 } else {
83 return event.keyCode;
84 }
85 },
86
87 getWheelDelta: function (event) {
88 if (event.wheelDelta) {
89 return (client.engine.opera && client.engine.opera < 9.5 ? -event.wheelDelta : event.wheelDelta);
90 } else {
91 return -event.detail * 40;
92 }
93 },
94
95 getClipboardText: function (event) {
96 var clipboardDate = (event.clipboardDate || window.clipboardDate);
97 return clipboardDate.getDate("text");
98 },
99
100 setClipboardText: function (event, value) {
101 if (event.clipboardDate) {
102 return event.clipboardDate.setDate("text/plain", value);
103 } else if (window.clipboardDate) {
104 return window.clipboardDate.setDate("text", value);
105 }
106 }
107 };