/* Compiled from X 4.14 with XC 1.04 on 21May07 */
function xEvent(evt){
	var e=evt||window.event;
	if(!e)return;
	if(e.type)this.type=e.type;
	if(e.target)this.target=e.target;
	else if(e.srcElement)this.target=e.srcElement;
	if(e.relatedTarget)this.relatedTarget=e.relatedTarget;
	else if(e.type=='mouseover'&&e.fromElement)this.relatedTarget=e.fromElement;
	else if(e.type=='mouseout')this.relatedTarget=e.toElement;
	if(xDef(e.pageX,e.pageY)){
		this.pageX=e.pageX;
		this.pageY=e.pageY;
	}else if(xDef(e.clientX,e.clientY)){
		this.pageX=e.clientX+xScrollLeft();
		this.pageY=e.clientY+xScrollTop();
	}
	if(xDef(e.offsetX,e.offsetY)){
		this.offsetX=e.offsetX;
		this.offsetY=e.offsetY;
	}else if(xDef(e.layerX,e.layerY)){
		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;
	this.button=null;
	if(e.type.indexOf('click')!=-1)this.button=0;
	else if(e.type.indexOf('mouse')!=-1){
		var ie=0,v=navigator.vendor;
		/*@cc_on ie=1;@*/
		if(ie||(v&&v.indexOf('Apple')!=-1)){
			if(e.button&1)this.button=0;
			else if(e.button&2)this.button=2;
			else if(e.button&4)this.button=1;
		}else this.button=e.button;
	}
}

xLibrary={version:'4.14',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;
}