/* Script by: www.jtricks.com
 * Version: 20071127
 * Latest version:
 * www.jtricks.com/javascript/navigation/fixed_menu.html
 */
fixedMenu2Id = 'fixeddiv2';

var fixedMenu2 = 
{
    hasInner: typeof(window.innerWidth) == 'number',
    hasElement: document.documentElement != null
       && document.documentElement.clientWidth,

    menu: document.getElementById
        ? document.getElementById(fixedMenu2Id)
        : document.all
          ? document.all[fixedMenu2Id]
          : document.layers[fixedMenu2Id]
};

fixedMenu2.computeShifts = function()
{
    fixedMenu2.shiftX = fixedMenu2.hasInner
        ? pageXOffset
        : fixedMenu2.hasElement
          ? document.documentElement.scrollLeft
          : document.body.scrollLeft;
    if (fixedMenu2.targetLeft > 0)
        fixedMenu2.shiftX += fixedMenu2.targetLeft;
    else
    {
        fixedMenu2.shiftX += 
            (fixedMenu2.hasElement
              ? document.documentElement.clientWidth
              : fixedMenu2.hasInner
                ? window.innerWidth - 20
                : document.body.clientWidth)
            - fixedMenu2.targetRight
            - fixedMenu2.menu.offsetWidth;
    }

    fixedMenu2.shiftY = fixedMenu2.hasInner
        ? pageYOffset
        : fixedMenu2.hasElement
          ? document.documentElement.scrollTop
          : document.body.scrollTop;
    if (fixedMenu2.targetTop > 0)
        fixedMenu2.shiftY += fixedMenu2.targetTop;
    else
    {
        fixedMenu2.shiftY += 
            (fixedMenu2.hasElement
            ? document.documentElement.clientHeight
            : fixedMenu2.hasInner
              ? window.innerHeight - 20
              : document.body.clientHeight)
            - fixedMenu2.targetBottom
            - fixedMenu2.menu.offsetHeight;
    }
};

fixedMenu2.moveMenu = function()
{
    fixedMenu2.computeShifts();

    if (fixedMenu2.currentX != fixedMenu2.shiftX
        || fixedMenu2.currentY != fixedMenu2.shiftY)
    {
        fixedMenu2.currentX = fixedMenu2.shiftX;
        fixedMenu2.currentY = fixedMenu2.shiftY;

        if (document.layers)
        {
            fixedMenu2.menu.left = fixedMenu2.currentX;
            fixedMenu2.menu.top = fixedMenu2.currentY;
        }
        else
        {
            fixedMenu2.menu.style.left = fixedMenu2.currentX + 'px';
            fixedMenu2.menu.style.top = fixedMenu2.currentY + 'px';
        }
    }

    fixedMenu2.menu.style.right = '';
    fixedMenu2.menu.style.bottom = '';
};

fixedMenu2.floatMenu = function()
{
    fixedMenu2.moveMenu();
    setTimeout('fixedMenu2.floatMenu()', 20);
};

// addEvent designed by Aaron Moore
fixedMenu2.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 = 0; i < element[listener + '_num']; 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']++;
};

fixedMenu2.supportsFixed = function()
{
    var testDiv = document.createElement("div");
    testDiv.id = "testingPositionFixed";
    testDiv.style.position = "fixed";
    testDiv.style.top = "0px";
    testDiv.style.right = "0px";
    document.body.appendChild(testDiv);
    var offset = 1;
    if (typeof testDiv.offsetTop == "number"
        && testDiv.offsetTop != null 
        && testDiv.offsetTop != "undefined")
    {
        offset = parseInt(testDiv.offsetTop);
    }
    if (offset == 0)
    {
        return true;
    }

    return false;
};

fixedMenu2.init = function()
{
    if (fixedMenu2.supportsFixed())
        fixedMenu2.menu.style.position = "fixed";
    else
    {
        var ob = 
            document.layers 
            ? fixedMenu2.menu 
            : fixedMenu2.menu.style;

        fixedMenu2.targetLeft = parseInt(ob.left);
        fixedMenu2.targetTop = parseInt(ob.top);
        fixedMenu2.targetRight = parseInt(ob.right);
        fixedMenu2.targetBottom = parseInt(ob.bottom);

        if (document.layers)
        {
            menu.left = 0;
            menu.top = 0;
        }
        fixedMenu2.addEvent(window, 'onscroll', fixedMenu2.moveMenu);
        fixedMenu2.floatMenu();
    }
};

fixedMenu2.addEvent(window, 'onload', fixedMenu2.init);
