/* Compiled from X 4.17 by XC 1.06 on 10Jul07 */
xLibrary = {
    version: '4.17',
    license: 'GNU LGPL',
    url: 'http://cross-browser.com/'
};

function xShow(e) {
  if(!(e=xGetElementById(e))) return;
  if(e.style && xDef(e.style.visibility)) e.style.visibility='visible';
}
function xHide(e) {
  if(!(e=xGetElementById(e))) return;
  if(e.style && xDef(e.style.visibility)) e.style.visibility='hidden';
}

function xCamelize(cssPropStr){
    var i, c, a = cssPropStr.split('-');
    var s = a[0];
    for (i = 1; i < a.length; ++i) {
        c = a[i].charAt(0);
        s += a[i].replace(c, c.toUpperCase());
    }
    return s;
}

function xClientHeight(){
    var v = 0, d = document, w = window;
    if ((!d.compatMode || d.compatMode == 'CSS1Compat') && !w.opera && d.documentElement && d.documentElement.clientHeight) {
        v = d.documentElement.clientHeight;
    }
    else 
        if (d.body && d.body.clientHeight) {
            v = d.body.clientHeight;
        }
        else 
            if (xDef(w.innerWidth, w.innerHeight, d.width)) {
                v = w.innerHeight;
                if (d.width > w.innerWidth) 
                    v -= 16;
            }
    return v;
}

function xClientWidth(){
    var v = 0, d = document, w = window;
    if ((!d.compatMode || d.compatMode == 'CSS1Compat') && !w.opera && d.documentElement && d.documentElement.clientWidth) {
        v = d.documentElement.clientWidth;
    }
    else 
        if (d.body && d.body.clientWidth) {
            v = d.body.clientWidth;
        }
        else 
            if (xDef(w.innerWidth, w.innerHeight, d.height)) {
                v = w.innerWidth;
                if (d.height > w.innerHeight) 
                    v -= 16;
            }
    return v;
}

function xDef(){
    for (var i = 0; i < arguments.length; ++i) {
        if (typeof(arguments[i]) == 'undefined') 
            return false;
    }
    return true;
}

function xGetComputedStyle(e, p, i){
    if (!(e = xGetElementById(e))) 
        return null;
    var s, v = 'undefined', dv = document.defaultView;
    if (dv && dv.getComputedStyle) {
        s = dv.getComputedStyle(e, '');
        if (s) 
            v = s.getPropertyValue(p);
    }
    else 
        if (e.currentStyle) {
            v = e.currentStyle[xCamelize(p)];
        }
        else 
            return null;
    return i ? (parseInt(v) || 0) : v;
}

function xGetElementById(e){
    if (typeof(e) == 'string') {
        if (document.getElementById) 
            e = document.getElementById(e);
        else 
            if (document.all) 
                e = document.all[e];
            else 
                e = null;
    }
    return e;
}

function xGetElementsByClassName(c, p, t, f){
    var r = new Array();
    var re = new RegExp("(^|\\s)" + c + "(\\s|$)");
    var e = xGetElementsByTagName(t, p);
    for (var i = 0; i < e.length; ++i) {
        if (re.test(e[i].className)) {
            r[r.length] = e[i];
            if (f) 
                f(e[i]);
        }
    }
    return r;
}

function xGetElementsByTagName(t, p){
    var list = null;
    t = t || '*';
    p = p || document;
    if (typeof p.getElementsByTagName != 'undefined') {
        list = p.getElementsByTagName(t);
        if (t == '*' && (!list || !list.length)) 
            list = p.all;
    }
    else {
        if (t == '*') 
            list = p.all;
        else 
            if (p.all && p.all.tags) 
                list = p.all.tags(t);
    }
    return list || new Array();
}

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;
}
1
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 = xGetComputedStyle(e, 'left', 1);
            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 xOpacity(e, o){
    var set = xDef(o);
    if (!(e = xGetElementById(e))) 
        return 2;
    if (xStr(e.style.opacity)) {
        if (set) 
            e.style.opacity = o + '';
        else 
            o = parseFloat(e.style.opacity);
    }
    else 
        if (xStr(e.style.filter)) {
            if (set) 
                e.style.filter = 'alpha(opacity=' + (100 * o) + ')';
            else 
                if (e.filters && e.filters.alpha) {
                    o = e.filters.alpha.opacity / 100;
                }
        }
        else 
            if (xStr(e.style.MozOpacity)) {
                if (set) 
                    e.style.MozOpacity = o + '';
                else 
                    o = parseFloat(e.style.MozOpacity);
            }
            else 
                if (xStr(e.style.KhtmlOpacity)) {
                    if (set) 
                        e.style.KhtmlOpacity = o + '';
                    else 
                        o = parseFloat(e.style.KhtmlOpacity);
                }
    return isNaN(o) ? 1 : o;
}

function xPageX(e){
    var x = 0;
    e = xGetElementById(e);
    while (e) {
        if (xDef(e.offsetLeft)) 
            x += e.offsetLeft;
        e = xDef(e.offsetParent) ? e.offsetParent : null;
    }
    return x;
}

function xPageY(e){
    var y = 0;
    e = xGetElementById(e);
    while (e) {
        if (xDef(e.offsetTop)) 
            y += e.offsetTop;
        e = xDef(e.offsetParent) ? e.offsetParent : null;
    }
    return y;
}

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 xStr(s){
    for (var i = 0; i < arguments.length; ++i) {
        if (typeof(arguments[i]) != 'string') 
            return false;
    }
    return true;
}

function xStyle(sProp, sVal){
    var i, e;
    for (i = 2; i < arguments.length; ++i) {
        e = xGetElementById(arguments[i]);
        if (e.style) {
            try {
                e.style[sProp] = sVal;
            } 
            catch (err) {
                e.style[sProp] = '';
            }
        }
    }
}

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 = xGetComputedStyle(e, 'top', 1);
            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 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;
}

