/* x_core.js compiled from X 4.0 with XC 0.27b. Distributed by GNU LGPL. For copyrights, license, documentation and more visit Cross-Browser.com */
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 xBackground(e,c,i){
	if(!(e=xGetElementById(e))) 
		return '';
		var bg='';
		if(e.style) {
			if(xStr(c)) {
				if(!xOp6Dn) 
					e.style.backgroundColor = c;
				else 
					e.style.background = c;
			}
			if(xStr(i)) 
				e.style.backgroundImage = (i!='')? 'url('+i+')' : null;
				if(!xOp6Dn) 
					bg=e.style.backgroundColor;
				else 
					bg=e.style.background;
		}
		return bg;
}
function xClientHeight(){
	var h=0;
	if(xOp6Dn) 
		h = window.innerHeight;
	else if(document.compatMode == 'CSS1Compat' && !window.opera && document.documentElement && document.documentElement.clientHeight)
		h = document.documentElement.clientHeight;
	else if(document.body && document.body.clientHeight)
		h = document.body.clientHeight;
	else if(xDef(window.innerWidth,window.innerHeight,document.width)) {
		h = window.innerHeight;
		if(document.width>window.innerWidth) h-=16;
	}
	return h;
}
function xClientWidth(){
	var w=0;
	if(xOp6Dn) 
		w = window.innerWidth;
	else if(document.compatMode == 'CSS1Compat' && !window.opera && document.documentElement && document.documentElement.clientWidth)
		w = document.documentElement.clientWidth;
	else if(document.body && document.body.clientWidth)
		w = document.body.clientWidth;
	else if(xDef(window.innerWidth,window.innerHeight,document.height)) {
		w = window.innerWidth;
		if(document.height > window.innerHeight) 
			w -= 16;
	}
	return w;
}
function xClip(e, t, r, b, l){
	if(!(e=xGetElementById(e))) 
		return;
	if(e.style) {
		if (xNum(l)) 
			e.style.clip = 'rect('+t+'px '+r+'px '+b+'px '+l+'px)';
		else e.style.clip = 'rect(0 '+parseInt(e.style.width)+'px '+parseInt(e.style.height)+'px 0)';
	}
}
function xColor(e,s){
	if(!(e = xGetElementById(e))) 
		return '';
	var c = '';
	if(e.style && xDef(e.style.color)) {
		if(xStr(s)) 
			e.style.color = s;
		c = e.style.color;
	} 
	return c;
}
function xDef(){
	for(var i=0; i<arguments.length; ++i){
		if(typeof(arguments[i]) == 'undefined') 
		return false;
	}
	return true;
}
function xDisplay(e,s){
	if(!(e = xGetElementById(e))) 
		return null; 
	if(e.style && xDef(e.style.display)) {
		if (xStr(s)) 
			e.style.display = s;
		return e.style.display;
	}
	return null;
}
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 xHasPoint(e, x, y, t, r, b, l){
	if (!xNum(t)){
		t = r = b = l = 0;
	}
	else if (!xNum(r)){
		r = b = l = t;
	}
	else if (!xNum(b)){
		l = r; 
		b = t;
	}
	var eX = xPageX(e), eY = xPageY(e);
	return (x >= eX + l && x <= eX + xWidth(e) - r && y >= eY + t && y <= eY + xHeight(e) - b );
}
function xHeight(e, h){
	if(!(e=xGetElementById(e))) 
		return 0;
	if (xNum(h)) {
		if (h < 0) 
			h = 0;
		else 
			h = Math.round(h);
	}
	else 
		h = -1;
	var css = xDef(e.style);
	if (e == document || e.tagName.toLowerCase() == 'html' || e.tagName.toLowerCase() == 'body') {
		h = xClientHeight();
	}
	else if(css && xDef(e.offsetHeight) && xStr(e.style.height)) {
		if(h >= 0) {
			var pt = 0, pb = 0, bt = 0, bb = 0;
			if (document.compatMode=='CSS1Compat') {
				var gcs = xGetComputedStyle;pt=gcs(e,'padding-top',1);
				if (pt !== null) { 
					pb = gcs(e,'padding-bottom',1);
					bt = gcs(e,'border-top-width',1);
					bb = gcs(e,'border-bottom-width',1);
				}
				else if(xDef(e.offsetHeight,e.style.height)){
					e.style.height = h+'px';
					pt = e.offsetHeight-h;
				}
			}
			h -= (pt + pb + bt + bb);
			if(isNaN(h) || h < 0) 
				return;
			else 
				e.style.height = h+'px';
			}
			h = e.offsetHeight;
	}
	else if(css && xDef(e.style.pixelHeight)) {
		if(h >= 0) 
			e.style.pixelHeight=h;
		h=e.style.pixelHeight;
	}
	return h;
}
function xHide(e){ 
	return xVisibility(e,0);
}
function xLeft(e, iX){
	if(!(e = xGetElementById(e))) 
		return 0;
	var css = xDef(e.style);
	if (css && xStr(e.style.left)) {
		if(xNum(iX)) 
			e.style.left = iX+'px';
		else {
			iX = parseInt(e.style.left);
			if(isNaN(iX)) 
				iX = 0;
		}
	}
	else if(css && xDef(e.style.pixelLeft)) {
		if(xNum(iX)) 
			e.style.pixelLeft = iX;
		else 
			iX = e.style.pixelLeft;
	}
	return iX;
}
function xMoveTo(e, x, y){
	xLeft(e, x);
	xTop(e, y);
}
function xNum(){
	for(var i = 0; i < arguments.length; ++i){
		if(isNaN(arguments[i]) || typeof(arguments[i])!='number') 
			return false;
	}
	return true;
}
function xOffsetLeft(e){
	if (!(e=xGetElementById(e))) 
		return 0;
	if (xDef(e.offsetLeft)) 
		return e.offsetLeft;
	else 
		return 0;
}
function xOffsetTop(e){
	if (!(e=xGetElementById(e))) 
		return 0;
	if (xDef(e.offsetTop)) 
		return e.offsetTop;
		else 
			return 0;
}
function xPageX(e) {
	if (!(e=xGetElementById(e))) 
		return 0;
	var x = 0;
	while (e) {
		if (xDef(e.offsetLeft)) 
			x += e.offsetLeft;
		e = xDef(e.offsetParent) ? e.offsetParent : null;
	}
	return x;
}
function xPageY(e){
	if (!(e=xGetElementById(e))) 
		return 0;
	var y = 0;
	while (e) {
		if (xDef(e.offsetTop)) 
			y += e.offsetTop;
		e = xDef(e.offsetParent) ? e.offsetParent : null;
	}
	return y;
}
function xParent(e, bNode){
	if (!(e=xGetElementById(e))) 
		return null;
	var p = null;
	if (!bNode && xDef(e.offsetParent)) 
		p = e.offsetParent;
	else if (xDef(e.parentNode)) 
		p = e.parentNode;
	else if (xDef(e.parentElement)) 
		p = e.parentElement;
	return p;
}
function xResizeTo(e,w,h){
	xWidth(e,w);
	xHeight(e,h);
}
function xScrollLeft(e, bWin){
	var offset=0;
	if (!xDef(e) || bWin || e == document || e.tagName.toLowerCase() == 'html' || e.tagName.toLowerCase() == 'body') {
		var w = window;
		if (bWin && e) 
			w = e;
		if (w.document.documentElement && w.document.documentElement.scrollLeft) 
			offset = w.document.documentElement.scrollLeft;
		else if(w.document.body && xDef(w.document.body.scrollLeft)) 
			offset=w.document.body.scrollLeft;
	}
	else {
		e = xGetElementById(e);
		if (e && xNum(e.scrollLeft)) 
			offset = e.scrollLeft;
	}
	return offset;
}
function xScrollTop(e, bWin){ 
	var offset = 0;
	if (!xDef(e) || bWin || e == document || e.tagName.toLowerCase() == 'html' || e.tagName.toLowerCase() == 'body') {
		var w = window;
		if (bWin && e) 
			w = e;
		if(w.document.documentElement && w.document.documentElement.scrollTop) 
			offset = w.document.documentElement.scrollTop;
		else if(w.document.body && xDef(w.document.body.scrollTop)) 
			offset = w.document.body.scrollTop;
	}
	else {
		e = xGetElementById(e);
		if (e && xNum(e.scrollTop)) 
			offset = e.scrollTop;
	}
	return offset;
}
function xShow(e) {
	return xVisibility(e,1);
}
function xStr(s){
	for(var i = 0; i < arguments.length; ++i){
		if(typeof(arguments[i])!='string') 
			return false;
	}
	return true;
}
function xTop(e, iY){
	if(!(e=xGetElementById(e))) 
		return 0;
	var css = xDef(e.style);
	if(css && xStr(e.style.top)) {
		if(xNum(iY)) 
			e.style.top = iY+'px';
		else {
			iY = parseInt(e.style.top);
			if(isNaN(iY))
				iY=0;
		}
	}
	else if(css && xDef(e.style.pixelTop)) {
		if(xNum(iY)) 
			e.style.pixelTop = iY;
		else 
			iY = e.style.pixelTop;
	}
	return iY;
}
function xVisibility(e, bShow){
	if(!(e=xGetElementById(e))) 
		return null;
	if(e.style && xDef(e.style.visibility)) {
		if (xDef(bShow)) 
			e.style.visibility = bShow ? 'visible' : 'hidden';
		return e.style.visibility;
	}
	return null;
}
function xWidth(e,w){
	if(!(e=xGetElementById(e))) 
		return 0;
	if (xNum(w)) {
		if (w < 0) 
			w = 0;
		else 
			w=Math.round(w);
	}
	else w = -1;
	var css = xDef(e.style);
	if (e == document || e.tagName.toLowerCase() == 'html' || e.tagName.toLowerCase() == 'body') {
		w = xClientWidth();
	}
	else if(css && xDef(e.offsetWidth) && xStr(e.style.width)) {
		if(w >= 0) {
			var pl = 0,pr = 0,bl = 0,br = 0;
			if (document.compatMode=='CSS1Compat') {
				var gcs = xGetComputedStyle;
				pl = gcs(e,'padding-left',1);
				if (pl !== null) {
					pr = gcs(e,'padding-right',1);
					bl = gcs(e,'border-left-width',1);
					br = gcs(e,'border-right-width',1);
				}
				else if(xDef(e.offsetWidth,e.style.width)){
					e.style.width = w+'px';
					pl = e.offsetWidth-w;
				}
			}
			w -= (pl + pr + bl + br);
			if(isNaN(w) || w < 0) 
				return;
			else 
				e.style.width = w+'px';
		}
		w = e.offsetWidth;
	}
	else if(css && xDef(e.style.pixelWidth)) {
		if(w >= 0) 
			e.style.pixelWidth = w;
			w = e.style.pixelWidth;
	}
	return w;
}
function xZIndex(e,uZ){
	if(!(e=xGetElementById(e))) 
		return 0;
	if(e.style && xDef(e.style.zIndex)) {
		if(xNum(uZ)) 
			e.style.zIndex = uZ;
		uZ = parseInt(e.style.zIndex);
	}
	return uZ;
}

var xWinScrollWin = null;
function xWinScrollTo(win,x,y,uTime) {
  var e = win;
  if (!e.timeout) e.timeout = 25;
  var st = xScrollTop(e, 1);
  var sl = xScrollLeft(e, 1);
  e.xTarget = x; 
  e.yTarget = y; 
  e.slideTime = uTime; 
  e.stop = false;
  e.yA = e.yTarget - st;
  e.xA = e.xTarget - sl; // A = distance
  e.B = Math.PI / (2 * e.slideTime); // B = period
  e.yD = st;
  e.xD = sl; // D = initial position
  var d = new Date(); 
  e.C = d.getTime();
  if (!e.moving) {
    xWinScrollWin = e;
    _xWinScrollTo();
  }
}
function _xWinScrollTo() {
  var e = xWinScrollWin || window;
  var now, s, t, newY, newX;
  now = new Date();
  t = now.getTime() - e.C;
  if (e.stop) { e.moving = false; }
  else if (t < e.slideTime) {
    setTimeout("_xWinScrollTo()", e.timeout);
    s = Math.sin(e.B * t);
    newX = Math.round(e.xA * s + e.xD);
    newY = Math.round(e.yA * s + e.yD);
    e.scrollTo(newX, newY);
    e.moving = true;
  }  
  else {
    e.scrollTo(e.xTarget, e.yTarget);
    xWinScrollWin = null;
    e.moving = false;
  }  
}