/* 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 (! dojo.isIE) {
			element.addEventListener(type, func, false);
			}
		else {
			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)
		};
		return false;
	},


	unregister : function(element, type, func) {
		if (! dojo.isIE) {
			element.removeEventListener(type, func, false)
			}
		else {
			if (element._listeners && element._listeners[type] && element._listeners[type][func]) {
				element.detachEvent('on' + type, element._listeners[type][func])
				};
			};
	}
}

