rem: var defn = fn; var nativeEvent = Element.$Event.natives[realType] || 0; if (nativeEvent){ if (nativeEvent == 2){ var self = this; defn = function(event){ event = new Event(event); if (map.call(self, event) === false) event.stop(); }; } this.addListener(realType, defn); 
add: if (custom.type) realType = custom.type; } var defn = fn; var nativeEvent = Element.$events[realType] || 0; if (nativeEvent){ if (nativeEvent == 2){ var self = this; defn = function(event){ event = new Event(event); if (map.call(self, event) === false) event.stop(); }; 
context: 		addEvent: function(type, fn){			this.$events = this.$events || {};			if (!this.$events[type]) this.$events[type] = {'keys': [], 'values': []};			if (this.$events[type].keys.contains(fn)) return this;			this.$events[type].keys.push(fn);			var realType = type;			var custom = Element.Events[type];			var map = fn;			if (custom){				if (custom.add) custom.add.call(this, fn);				if (custom.map){					map = function(event){						if (custom.map.call(this, event)) return fn.call(this, event);						return false;					};				}				if (custom.type) realType = custom.type;			}			var defn = fn;			var nativeEvent = Element.$Event.natives[realType] || 0;			if (nativeEvent){				if (nativeEvent == 2){					var self = this;					defn = function(event){						event = new Event(event);						if (map.call(self, event) === false) event.stop();					};				}				this.addListener(realType, defn);			}			this.$events[type].values.push(defn);			return this;		},
meta: 9980	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/9980/efb4f770b56fdc035f18061222f0527b9b36ca5f/Element.Event.js/buggy/Element/Element.Event.js