function GetEventSrc(Evt)
{
	if (!Evt) return;
	if (Evt.srcElement) return Evt.srcElement;
	else if (Evt.currentTarget) return Evt.currentTarget;
	return false;
}

function GetEventKey(Evt)
{
	if (!Evt) return;
	if (Evt.which) return Evt.which;
	else if (Evt.keyCode) return Evt.keyCode;
	return false;
}

function EventEx(evt)
{
	if (window.event && !evt)
	{
		evt = window.event;
	}

	this.Event = evt;
	this.Source = GetEventSrc(evt);
	this.Key = GetEventKey(evt);

	this.X = 0;
	this.Y = 0;

	if (evt.pageX || evt.pageY)
	{
		this.X = evt.pageX;
		this.Y = evt.pageY;
	}
	else if (evt.clientX || evt.clientY)
	{
		this.X = evt.clientX + document.body.scrollLeft;
		this.Y = evt.clientY + document.body.scrollTop;
	}
}
