/*Copyright 2001-2005 Michael Foster (Cross-Browser.com)
Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL*/
var xOp7Up,xOp6Dn,xIE4Up,xIE4,xIE5,xNN4,xUA=navigator.userAgent.toLowerCase(); if(window.opera){ var i=xUA.indexOf('opera'); if(i!=-1){ var v=parseInt(xUA.charAt(i+6)); xOp7Up=v>=7; xOp6Dn=v<7;}
}else if(navigator.vendor!='KDE' && document.all && xUA.indexOf('msie')!=-1){ xIE4Up=parseFloat(navigator.appVersion)>=4;xIE4=xUA.indexOf('msie 4')!=-1; xIE5=xUA.indexOf('msie 5')!=-1;}else if(document.layers){ xNN4=true;}
xMac=xUA.indexOf('mac')!=-1; function xDef()
{ for(var i=0; i<arguments.length; ++i){if(typeof(arguments[i])=='undefined') return false;}
return true;}
function xStr(s)
{ for(var i=0; i<arguments.length; ++i){if(typeof(arguments[i])!='string') return false;}
return true;}
function xNum()
{ for(var i=0; i<arguments.length; ++i){if(isNaN(arguments[i]) || typeof(arguments[i])!='number') return false;}
return true;}
function xGetComputedStyle(oEle, sProp, bInt)
{ var s, p = 'undefined'; var dv = document.defaultView; if(dv && dv.getComputedStyle){ s = dv.getComputedStyle(oEle,''); if (s) p = s.getPropertyValue(sProp);}
else if(oEle.currentStyle) { var a = sProp.split('-'); sProp = a[0]; for (var i=1; i<a.length; ++i) { c = a[i].charAt(0); sProp += a[i].replace(c, c.toUpperCase());}
p = oEle.currentStyle[sProp];}
else return null; return bInt ? (parseInt(p) || 0) : p;}
function xGetElementById(e)
{ if(typeof(e)!='string') return e; if(document.getElementById) e=document.getElementById(e); else if(document.all) e=document.all[e]; else e=null; return e;}
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 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);
}