if (!window.Event) {
	var Event = new Object();
}

Object.extend(Event, {
	element: function(e) {
		return e.target || e.srcElement;
	},

	pointerX: function(e) {
		return e.pageX || (e.clientX +
						   (document.documentElement.scrollLeft || document.body.scrollLeft));
	},

	pointerY: function(e) {
		return e.pageY || (e.clientY +
						   (document.documentElement.scrollTop || document.body.scrollTop));
	},

	stop: function(e) {
		if (e.preventDefault) {
			e.preventDefault();
			e.stopPropagation();
		}
		else {
			e.returnValue = false;
			e.cancelBubble = true;
		}
	},

	observe: function(el, name, observer, useCapture) {
		var wrappedEl = $(el) || el;
		if(wrappedEl) {
			var el = wrappedEl;
		}
		useCapture = useCapture || false;
		if (name == 'keypress' &&
			(navigator.appVersion.match(/Konqueror|Safari|KHTML/) || el.attachEvent))
			name = 'keydown';

		if (el.addEventListener)
			el.addEventListener(name, observer, useCapture);
		else
			el.attachEvent('on' + name, observer);
	},

	stopObserving: function(el, name, observer, useCapture) {
		var wrappedEl = $(el) || el;
		if(wrappedEl) {
			var el = wrappedEl;
		}
		useCapture = useCapture || false;

		if (name == 'keypress' &&
			(navigator.appVersion.match(/Konqueror|Safari|KHTML/) || el.detachEvent))
			name = 'keydown';

		if (el.removeEventListener) {
			el.removeEventListener(name, observer, useCapture);
		} else if (el.detachEvent) {
			el.detachEvent('on' + name, observer);
		}
	}

});