1 var $removeHandler = Sys.UI.DomEvent.removeHandler = function Sys$UI$DomEvent$removeHandler(element, eventName, handler) {
6 var e = Function._validateParams(arguments, [
7 {name: "element"},
8 {name: "eventName", type: String},
9 {name: "handler", type: Function}
10 ]);
11 if (e) throw e;
12 Sys.UI.DomEvent._ensureDomNode(element);
13 var browserHandler = null;
14 if ((typeof(element._events) !== 'object') || (element._events == null)) throw Error.invalidOperation(Sys.Res.eventHandlerInvalid);
15 var cache = element._events[eventName];
16 if (!(cache instanceof Array)) throw Error.invalidOperation(Sys.Res.eventHandlerInvalid);
17 for (var i = 0, l = cache.length; i < l; i++) {
18 if (cache[i].handler === handler) {
19 browserHandler = cache[i].browserHandler;
20 break;
21 }
22 }
23 if (typeof(browserHandler) !== 'function') throw Error.invalidOperation(Sys.Res.eventHandlerInvalid);
24 if (element.removeEventListener) {
25 element.removeEventListener(eventName, browserHandler, false);
26 }
27 else if (element.detachEvent) {
28 element.detachEvent('on' + eventName, browserHandler);
29 }
30 cache.splice(i, 1);
31 }