var Events = {

    // Normalize an event between IE and others...
	FixEvent : 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 a callback to be triggered when an event occurs
	RegisterEvent : function(element, type, callback) {
		if (element.addEventListener) {
			element.addEventListener(type, callback, false)
		} else if (element.attachEvent) {
			if (!element._listeners) element._listeners = new Array()
			if (!element._listeners[type]) element._listeners[type] = new Array()
			var workaroundFunc = function() {
				callback.apply(element, new Array())
			}
			element._listeners[type][callback] = workaroundFunc
			element.attachEvent('on' + type, workaroundFunc)
		}
	},

    // stop listening for a given event
	UnregisterEvent : function(element, type, callback) {
		if (element.removeEventListener) {
			element.removeEventListener(type, callback, false)
		} else if (element.detachEvent) {
			if (element._listeners 
					&& element._listeners[type] 
					&& element._listeners[type][callback]) {

				element.detachEvent('on' + type, 
						element._listeners[type][callback])
			}
		}
	}

}