﻿// JScript File
        var floatingMenuId = 'floatdiv';
        var floatingMenu =
        {
        targetX: -220,
        targetY: 135,

        hasInner: typeof(window.innerWidth) == 'number',
        hasElement: document.documentElement
        && document.documentElement.clientWidth,

        menu:
        document.getElementById
        ? document.getElementById(floatingMenuId)
        : document.all
        ? document.all[floatingMenuId]
        : document.layers[floatingMenuId]
        };

        floatingMenu.move = function ()
        {
        if (document.layers)
        {
        floatingMenu.menu.left = floatingMenu.nextX;
        floatingMenu.menu.top = floatingMenu.nextY;
        }
        else
        {
        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)
        {
        if (floatingMenu.hasElement && floatingMenu.hasInner)
        {
        // Handle Opera 8 problems
        floatingMenu.shiftX +=
        de.clientWidth > window.innerWidth
        ? window.innerWidth
        : de.clientWidth
        }
        else
        {
        floatingMenu.shiftX +=
        floatingMenu.hasElement
        ? de.clientWidth
        : floatingMenu.hasInner
        ? window.innerWidth
        : document.body.clientWidth;
        }
        }

        floatingMenu.shiftY =
        floatingMenu.hasInner
        ? pageYOffset
        : floatingMenu.hasElement
        ? de.scrollTop
        : document.body.scrollTop;
        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
        ? document.documentElement.clientHeight
        : floatingMenu.hasInner
        ? window.innerHeight
        : document.body.clientHeight;
        }
        }
        }

        floatingMenu.doFloat = function()
        {
        var stepX, stepY;

        floatingMenu.computeShifts();

        stepX = (floatingMenu.shiftX +
        floatingMenu.targetX - floatingMenu.nextX) * .07;
        if (Math.abs(stepX) < .5)
        {
        stepX = floatingMenu.shiftX +
        floatingMenu.targetX - floatingMenu.nextX;
        }

        stepY = (floatingMenu.shiftY +
        floatingMenu.targetY - floatingMenu.nextY) * .07;
        if (Math.abs(stepY) < .5)
        {
        stepY = floatingMenu.shiftY +
        floatingMenu.targetY - floatingMenu.nextY;
        }

        if (Math.abs(stepX) > 0 ||
        Math.abs(stepY) > 0)
        {
        floatingMenu.nextX += stepX;
        floatingMenu.nextY += stepY;
        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.shiftX +
        floatingMenu.targetX;
        floatingMenu.nextY = floatingMenu.shiftY +
        floatingMenu.targetY;
        floatingMenu.move();
        }

        if (document.layers)
        floatingMenu.addEvent(window, 'onload', floatingMenu.init);
        else
        {
        floatingMenu.init();
        floatingMenu.addEvent(window, 'onload',
        floatingMenu.initSecondary);
        }

