/**
 * fuMan - developped by fugu GmbH, Bern, Switzerland, www.fugu.ch
 * Please see licence.txt in the root directory for further information.
 *
 * $Id: event.js,v 1.3 2007-06-22 15:51:07 higi Exp $
 * $Date: 2007-06-22 15:51:07 $
 * $Revision: 1.3 $
 */
if (!window.Event) { var Event = new Object(); }
Event.register = function (element, name, observer, useCapture) {
	if (name == 'keypress' && (navigator.appVersion.match (/Konqueror|Safari|KHTML/) || element.detachEvent)) {
		name = 'keydown';
	}
	useCapture = useCapture || false;
	if (element.addEventListener) {
		element.addEventListener (name, observer, useCapture);
	}
	else if (element.attachEvent) {
		element.attachEvent ('on' + name, observer);
	}
}
Event.unregister = function (element, name, observer, useCapture) {
	if (name == 'keypress' && (navigator.appVersion.match (/Konqueror|Safari|KHTML/) || element.detachEvent)) {
		name = 'keydown';
	}
	useCapture = useCapture || false;
	if (element.removeEventListener) {
		element.removeEventListener (name, observer, useCapture);
	}
	else if (element.detachEvent) {
		element.detachEvent ('on' + name, observer);
	}
}
Event.bind = function (observer, observerThis) {
	return function (evt) { return observer.call (observerThis, Event.extend (evt)); }
}
Event.extend = function (evt) {
	var evt = evt || event;
	if (evt == null) {
		return null;
	}
	evt.element = evt.target || evt.srcElement;
	evt.posX = evt.pageX || (evt.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft));
	evt.posY = evt.pageY || (evt.clientY + (document.documentElement.scrollTop || document.body.scrollTop));
	return evt;
}

