User:Sanbeg/vfd NavBar.js

/**

BEGIN Dynamic Navigation Bars (experimantal)
Modified from the NavBars in Mediawiki:Monobook.js to work with vfd divs. This will hide closed discussions in AFD/AFC pages, but allow you to toggle them, and will show them by default in the AFD subpages.

**/ // set up the words in your language //var NavigationBarHide = '[ Hide ]'; //var NavigationBarShow = '[ Show ]'; // set up max count of Navigation Bars on page, // if there are more, all will be hidden // NavigationBarShowDefault = 0; // all bars will be hidden // NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden var vfd_NavigationBarShowDefault = 1; /**

toggle
**/ // shows and hides content and picture (if available) of navigation bars // Parameters: //    indexNavigationBar: the index of navigation bar to be toggled function vfd_toggleNavigationBar(indexNavigationBar) {   var NavToggle = document.getElementById("vfd_NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("vfd_NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; }

// if shown now if (NavToggle.firstChild.data == NavigationBarHide) { for (               var NavChild = NavFrame.firstChild;                NavChild != null;                NavChild = NavChild.nextSibling            ) { if (NavChild.style && (NavChild.className != 'vfd_NavToggle')) { // } else { NavChild.style.display = 'none'; }       }    NavToggle.firstChild.data = NavigationBarShow;

// if hidden now } else if (NavToggle.firstChild.data == NavigationBarShow) { for (               var NavChild = NavFrame.firstChild;                NavChild != null;                NavChild = NavChild.nextSibling            ) {

if (NavChild.style) { NavChild.style.display = 'block'; }       }    NavToggle.firstChild.data = NavigationBarHide; } }

/**

create
**/ // adds show/hide-button to navigation bars function vfd_createNavigationBarToggleButton {   var indexNavigationBar = 0; // iterate over all -elements for(           var i=0;             NavFrame = document.getElementsByTagName("div")[i];             i++        ) { // if found a navigation bar if (NavFrame.className == "boilerplate metadata vfd") { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'vfd_NavToggle'; NavToggle.setAttribute('id', 'vfd_NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:vfd_toggleNavigationBar(' + indexNavigationBar + ');'); var NavToggleText = document.createTextNode(NavigationBarHide); NavToggle.appendChild(NavToggleText); // attach the toggle link

NavFrame.appendChild(NavToggle); NavFrame.setAttribute('id', 'vfd_NavFrame' + indexNavigationBar); }   }    // if more Navigation Bars found than Default: hide all if (vfd_NavigationBarShowDefault < indexNavigationBar) { for(               var i=1;                 i<=indexNavigationBar;                 i++        ) { vfd_toggleNavigationBar(i); }   } } addOnloadHook(vfd_createNavigationBarToggleButton); // END Dynamic Navigation Bars // ===============================================