/* Script by: www.jtricks.com
 * Version: 20071017
 * Latest version:
 * www.jtricks.com/javascript/navigation/floating.html
 */
var floatingMenuId = 'floatdiv';
var floatingMenu = {
    scrollStop: 350,
    targetX: 0,
    targetY: 20,
    hasInner: typeof(window.innerWidth) == 'number',
    hasElement: typeof(document.documentElement) == 'object' && typeof(document.documentElement.clientWidth) == 'number',
    menu: document.getElementById ? document.getElementById(floatingMenuId) : document.all ? document.all[floatingMenuId] : document.layers[floatingMenuId]
};
//jcustom
getScroll = function () {
    var scrollAmount = window.pageYOffset ? window.pageYOffset : document[(document.compatMode == 'CSS1Compat') ? 'documentElement' : 'body'].scrollTop;
    return scrollAmount
}
function getY(oElement) {
    var iReturnValue = 0;
    while (oElement != null) {
        iReturnValue += oElement.offsetTop;
        oElement = oElement.offsetParent;
    }
    return iReturnValue;
}
var floatOn = "1";
var defaultY = getY(floatingMenu.menu);
floatingMenu.move = function () {
    floatingMenu.menu.style.left = floatingMenu.nextX + 'px';
    floatingMenu.menu.style.top = floatingMenu.nextY + 'px';
}
floatingMenu.computeShifts = function () {
    var de = document.documentElement;
    floatingMenu.shiftX = floatingMenu.hasInner ? pageXOffset : floatingMenu.hasElement ? de.scrollLeft : document.body.scrollLeft;
    if (floatingMenu.targetX < 0) {
        floatingMenu.shiftX += floatingMenu.hasElement ? de.clientWidth : document.body.clientWidth;
    }
    floatingMenu.shiftY = floatingMenu.hasInner ? pageYOffset : floatingMenu.hasElement ? de.scrollTop : document.body.scrollTop;
    floatingMenu.shiftY -= defaultY;
    if (floatingMenu.targetY < 0) {
        if (floatingMenu.hasElement && floatingMenu.hasInner) {
            // Handle Opera 8 problems
            floatingMenu.shiftY += de.clientHeight > window.innerHeight ? window.innerHeight : de.clientHeight
        }
        else {
            floatingMenu.shiftY += floatingMenu.hasElement ? de.clientHeight : document.body.clientHeight;
        }
    }
}
floatingMenu.calculateCornerX = function () {
    if (floatingMenu.targetX != 'center') return floatingMenu.shiftX + floatingMenu.targetX;
    var width = parseInt(floatingMenu.menu.offsetWidth);
    var cornerX = floatingMenu.hasElement ? (floatingMenu.hasInner ? pageXOffset : document.documentElement.scrollLeft) + (document.documentElement.clientWidth - width) / 2 : document.body.scrollLeft + (document.body.clientWidth - width) / 2;
    return cornerX;
};
floatingMenu.calculateCornerY = function () {
    if (floatingMenu.targetY != 'center') return floatingMenu.shiftY + floatingMenu.targetY;
    var height = parseInt(floatingMenu.menu.offsetHeight);
    // Handle Opera 8 problems
    var clientHeight = floatingMenu.hasElement && floatingMenu.hasInner && document.documentElement.clientHeight > window.innerHeight ? window.innerHeight : document.documentElement.clientHeight
    var cornerY = floatingMenu.hasElement ? (floatingMenu.hasInner ? pageYOffset : document.documentElement.scrollTop) + (clientHeight - height) / 2 : document.body.scrollTop + (document.body.clientHeight - height) / 2;
    return cornerY;
};
floatingMenu.doFloat = function () {
    if ((floatOn == '1') && (getScroll() > floatingMenu.scrollStop)) {
        var stepX, stepY;
        floatingMenu.computeShifts();
        var cornerX = floatingMenu.calculateCornerX();
        var stepX = (cornerX - floatingMenu.nextX) * .07;
        if (Math.abs(stepX) < .5) {
            stepX = cornerX - floatingMenu.nextX;
        }
        var cornerY = floatingMenu.calculateCornerY();
        var stepY = (cornerY - floatingMenu.nextY) * .07;
        if (Math.abs(stepY) < .5) {
            stepY = cornerY - floatingMenu.nextY;
        }
        if (Math.abs(stepX) > 0 || Math.abs(stepY) > 0) {
            floatingMenu.nextX += stepX;
            floatingMenu.nextY += stepY;
            floatingMenu.move();
        }
        setTimeout('floatingMenu.doFloat()', 20);
    }
    else {
        floatingMenu.nextY = 0;
        floatingMenu.move();
        setTimeout('floatingMenu.doFloat()', 20);
    }
};
// addEvent designed by Aaron Moore
floatingMenu.addEvent = function (element, listener, handler) {
    if (typeof element[listener] != 'function' || typeof element[listener + '_num'] == 'undefined') {
        element[listener + '_num'] = 0;
        if (typeof element[listener] == 'function') {
            element[listener + 0] = element[listener];
            element[listener + '_num']++;
        }
        element[listener] = function (e) {
            var r = true;
            e = (e) ? e : window.event;
            for (var i = element[listener + '_num'] - 1; i >= 0; i--) {
                if (element[listener + i](e) == false) r = false;
            }
            return r;
        }
    }
    //if handler is not already stored, assign it
    for (var i = 0; i < element[listener + '_num']; i++)
    if (element[listener + i] == handler) return;
    element[listener + element[listener + '_num']] = handler;
    element[listener + '_num']++;
};
floatingMenu.init = function () {
    floatingMenu.initSecondary();
    floatingMenu.doFloat();
};
// Some browsers init scrollbars only after
// full document load.
floatingMenu.initSecondary = function () {
    floatingMenu.computeShifts();
    floatingMenu.nextX = floatingMenu.calculateCornerX();
    floatingMenu.nextY = floatingMenu.calculateCornerY();
    floatingMenu.move();
}
if (document.layers) floatingMenu.addEvent(window, 'onload', floatingMenu.init);
else {
    floatingMenu.init();
    floatingMenu.addEvent(window, 'onload', floatingMenu.initSecondary);
}
//jcustom
turnFloatOff = function () {
    floatOn = "0";
    floatingMenu.nextY = 0;
    floatingMenu.move();
}
turnFloatOn = function () {
    floatOn = "1";
}
