/* Compiled from X 4.17 by XC 1.06 on 10Jul07 */

function xEvent(evt)
{
	var e = evt||window.event;
	if(!e) return;
	this.type = e.type;
	this.target = e.target||e.srcElement;
	this.relatedTarget = e.relatedTarget; /*@cc_on if(e.type=='mouseover')this.relatedTarget=e.fromElement;else if(e.type=='mouseout')this.relatedTarget=e.toElement;@*/
	if(xDef(e.pageX))
	{
		this.pageX = e.pageX;
		this.pageY = e.pageY;
	}
	else if(xDef(e.clientX))
		{
			this.pageX = e.clientX + xScrollLeft();
			this.pageY = e.clientY + xScrollTop();
		}
	if(xDef(e.offsetX))
	{
		this.offsetX = e.offsetX;
		this.offsetY = e.offsetY;
	}
	else if(xDef(e.layerX))
		{
			this.offsetX = e.layerX;
			this.offsetY = e.layerY;
		}
		else
		{
			this.offsetX = this.pageX-xPageX(this.target);
			this.offsetY = this.pageY-xPageY(this.target);
		}
	this.keyCode = e.keyCode||e.which||0;
	this.shiftKey = e.shiftKey;
	this.ctrlKey = e.ctrlKey;
	this.altKey = e.altKey;
	if(typeof e.type == 'string')
	{
		if(e.type.indexOf('click') != -1) { this.button = 0; }
		else if(e.type.indexOf('mouse') != -1) { this.button = e.button; /*@cc_on if(e.button&1)this.button=0;else if(e.button&4)this.button=1;else if(e.button&2)this.button=2;@*/ }
	}
}

xLibrary = { version:'4.17', license:'GNU LGPL', url:'http://cross-browser.com/' };

function xAddEventListener(e, eT, eL, cap)
{
	if(!(e = xGetElementById(e))) return;
	eT = eT.toLowerCase();
	if(e.addEventListener) e.addEventListener(eT,eL,cap||false);
	else if(e.attachEvent) e.attachEvent('on'+eT,eL);
		else 
		{
			var o = e['on'+eT];
			e['on'+eT] = typeof o == 'function'? function(v) { o(v); eL(v); } : eL;
		}
}

function xPreventDefault(e) 
{
	if(e&&e.preventDefault) e.preventDefault();
	else if(window.event) window.event.returnValue = false;
}

function xRemoveEventListener(e, eT, eL, cap)
{
	if(!(e=xGetElementById(e))) return;
	eT = eT.toLowerCase();
	if(e.removeEventListener) e.removeEventListener(eT, eL, cap||false);
	else if(e.detachEvent) e.detachEvent('on'+eT,eL);
	else e['on'+eT] = null;
}

function xStopPropagation(evt)
{
	if(evt&&evt.stopPropagation) evt.stopPropagation();
	else if(window.event) window.event.cancelBubble = true;
}
