/* x_event.js compiled from X 4.0 with XC 0.27b. Distributed by 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;}