/**
  * x_event.js compiled from X 4.0 with XC 0.28b. Distributed under GNU LGPL. 
  * For copyrights, license, documentation and more visit Cross-Browser.com 
  *
  */
function xAddEventListener(e,eT,eL,cap){
	if(!(e=xGetElementById(e))) 
		return;
	eT=eT.toLowerCase();
	if((!xIE4Up && !xOp7Up) && e==window) {
		if(eT=='resize') { 
			window.xPCW=xClientWidth(); 
			window.xPCH=xClientHeight(); 
			window.xREL=eL; 
			xResizeEvent(); 
			return; 
		}
		if(eT=='scroll') { 
			window.xPSL=xScrollLeft(); 
			window.xPST=xScrollTop(); 
			window.xSEL=eL; 
			xScrollEvent(); 
			return; 
		}
	}
	var eh='e.on'+eT+'=eL';
	if(e.addEventListener) 
		e.addEventListener(eT,eL,cap);
	else if(e.attachEvent) 
		e.attachEvent('on'+eT,eL);
	else eval(eh);
}
function xResizeEvent(){
	if (window.xREL) 
		setTimeout('xResizeEvent()', 250);
	var cw = xClientWidth(), ch = xClientHeight();
	if (window.xPCW != cw || window.xPCH != ch) { 
		window.xPCW = cw; 
		window.xPCH = ch; 
		if (window.xREL) 
			window.xREL(); 
	}
}
function xScrollEvent(){
	if (window.xSEL) 
		setTimeout('xScrollEvent()', 250);
	var sl = xScrollLeft(), st = xScrollTop();
	if (window.xPSL != sl || window.xPST != st) { 
		window.xPSL = sl; 
		window.xPST = st; 
		if (window.xSEL) 
			window.xSEL();
	}
}
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(xOp6Dn) { 
		this.pageX = e.clientX; 
		this.pageY = e.clientY; 
	}
	else 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);
	}
	if (e.keyCode) { 
		this.keyCode = e.keyCode; 
	}
	else if (xDef(e.which) && e.type.indexOf('key')!=-1) { 
		this.keyCode = e.which; 
	}
	this.shiftKey = e.shiftKey;
	this.ctrlKey = e.ctrlKey;
	this.altKey = e.altKey;
}
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((!xIE4Up && !xOp7Up) && e==window) {
		if(eT=='resize') { 
			window.xREL=null; 
			return; 
		}
		if(eT=='scroll') { 
			window.xSEL=null; return; 
		}
	}
	var eh='e.on'+eT+'=null';
	if(e.removeEventListener) 
		e.removeEventListener(eT,eL,cap);
	else if(e.detachEvent) 
		e.detachEvent('on'+eT,eL);
	else 
		eval(eh);
}
function xStopPropagation(evt){
	if (evt && evt.stopPropagation) 
		evt.stopPropagation();
	else if (window.event) 
		window.event.cancelBubble = true;
}

