CPAN-Testers-WWW-Admin

 view release on metacpan or  search on metacpan

vhost/html/js/fixedmenu.js  view on Meta::CPAN


    //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']++;
};

fixedMenu.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;
};

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

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

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

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

/* additional code to show/hide popup */

function showMenu() { $(fixedMenuId).style.display = 'block'; initPosition(); }
function hideMenu() { $(fixedMenuId).style.display = 'none';  }
function initPosition() {
    iebody = (document.compatMode=="CSS1Compat") ? document.documentElement : document.body;

    var scroll_top = (isIE) ? iebody.scrollTop   : 0;
    var docwidth   = (isIE) ? iebody.clientWidth : window.innerWidth;
    var docheight  = (isIE) ? iebody.clientHeight: window.innerHeight;

    var objwidth   = $(fixedMenuId).offsetWidth;
    var objheight  = $(fixedMenuId).offsetHeight;

    //alert("scroll_top="+scroll_top+", objwidth="+objwidth+", docwidth="+docwidth+", half="+(docwidth/2 - objwidth/2));

    fixedMenu.currentX = (docwidth/2 - objwidth/2);
    fixedMenu.currentY = scroll_top + 260;

    //alert("currentX="+fixedMenu.currentX+", currentY="+fixedMenu.currentY);

    $(fixedMenuId).style.left = fixedMenu.currentX + "px";
    $(fixedMenuId).style.top  = fixedMenu.currentY + "px";
}



( run in 1.647 second using v1.01-cache-2.11-cpan-364913b4093 )