All pastes #122017 Raw Edit

Jostein

public javascript v1 · immutable
#122017 ·published 2006-08-08 10:57 UTC
rendered paste body
function browserCheck(){    // check if browser is MSIE and do the necessary dirt if it is    var browserName = navigator.appName;    if (browserName == "Microsoft Internet Explorer")    {    }     // menus initially visible for browsers not supporting JS    // collapse menus in JS supporting browsers    hideMenu(1);    hideMenu(2);    hideMenu(3);    hideMenu(4);    // do not align divs until active screen estate usage is minimized    // (ie menus collapsed)    alignDivs();}function alignDivs(){    // make sidebars as big as the contentpane, if the contentpane is bigger    var mbLeft = document.getElementById("menuLeft");    var mbRight = document.getElementById("menuRight");    var contentPane = document.getElementById("content");        var height = parseInt(mbLeft.offsetHeight);    if (parseInt(contentPane.offsetHeight) > height)    {        height = contentPane.offsetHeight;        mbLeft.style.height = (height) + "px";        mbRight.style.height = (height) + "px";    }}function toggleNavLink(navLink){    var old_i = findActive();    var new_i = findIndex(navLink);    // do nothing if its the same menu.    if (old_i == new_i)    {        return;    }    //    if (old_i == false)//    {//        // we have a problem//        return;//    }    // 1. deactivate current listItem    deactivateMenuItem(old_i);    // 2. get heights, set height = 0 on new, display = true    var oldMenu = document.getElementById(subMenuIDs[old_i]);    var newMenu = document.getElementById(subMenuIDs[new_i]);    var width = oldMenu.style.width;    var oldH = parseInt(oldMenu.offsetHeight);    newMenu.style.display = "";    var newH = parseInt(newMenu.offsetHeight);        //oldMenu.style.display = "block";    //newMenu.style.clip = "rect(0,"+width+",0,0)");    newMenu.style.top = newH;    newMenu.style.display = "block";    debug("oldH: " + oldH);    debug("newH: " + newH);        doSlide(old_i, new_i, oldH, newH, 1);            return false;}function doSlide(old_i, new_i, oldH, newH, i){    // 3. slide    var oldMenu = document.getElementById(subMenuIDs[old_i]);    var newMenu = document.getElementById(subMenuIDs[new_i]);    var width = oldMenu.style.width;    var oldTH = Math.round(oldH * (slidingTransitions - i) / slidingTransitions);    var newTH = Math.round(newH * i / slidingTransitions);        //oldMenu.style.clip = "rect(0,"+oldTH+","+width+",0)"; //oldTH + "px";    //newMenu.style.clip = "rect(0,"+newTH+","+width+",0)": //newTH + "px";    oldMenu.style.top = oldTH;    newMenu.style.top = newTH;    debug("i: " + i);    debug("oldTH: " + oldTH);    debug("newTH: " + newTH);            if (i != slidingTransitions)    {        // 3.1 keep sliding        i++;        timerID = setTimeout("doSlide("+old_i+","+new_i+","+oldH+","+newH+","+i+")", slidingDelay);    }    else    {        // 4. display = false on old, height = full height        oldMenu.style.display = "none";        oldMenu.style.top = 0;                // 5. activate new listItem        activateMenuItem(new_i);                timerID="";    }}function findActive(){    for (i = 0; i < navLinkIDs.length; i++)    {        var obj = document.getElementById(navLinkIDs[i]);        var parentNode = obj.parentNode;                if (parentNode.className == "active")            return i;    }    return false;}function findIndex(navLink){    for (i = 0; i < navLinkIDs.length; i++)    {        var obj = document.getElementById(navLinkIDs[i]);                if (obj == navLink)            return i;    }    return false;}function activateMenuItem(i){    var navLink = document.getElementById(navLinkIDs[i]);    var listItem = navLink.parentNode;    listItem.className = "active";}function deactivateMenuItem(i){    var navLink = document.getElementById(navLinkIDs[i]);    var listItem = navLink.parentNode;    listItem.className = "deactive";}function hideMenu(i){    var subMenu = document.getElementById(subMenuIDs[i]);    subMenu.style.display = "none";}// variables & arrays used to identify related DOM itemsvar navLinkIDs = new Array(5);navLinkIDs[0] = "navlink1";navLinkIDs[1] = "navlink2";navLinkIDs[2] = "navlink3";navLinkIDs[3] = "navlink4";navLinkIDs[4] = "navlink5";var subMenuIDs = new Array(5);subMenuIDs[0] = "subMenu1";subMenuIDs[1] = "subMenu2";subMenuIDs[2] = "subMenu3";subMenuIDs[3] = "subMenu4";subMenuIDs[4] = "subMenu5";var slidingTransitions = 10;var slidingDelay = 50; // in millisecondsfunction debug(text){    var debug = document.getElementById("debug");        debug.innerHTML = debug.innerHTML + text + "<br />";}