// In The Name of Allah, The Most Gracious, The Most Merciful
/* 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;
}

