Changes

Jump to navigation Jump to search
5,788 bytes added ,  20:54, November 7, 2007
why isn't this working?
Line 77: Line 77:  
   
 
   
 
  addOnloadHook( createCollapseButtons );
 
  addOnloadHook( createCollapseButtons );
 +
 +
/** Dynamic Navigation Bars (experimental) *************************************
 +
  *
 +
  *  Description: See [[Wikipedia:NavFrame]].
 +
  *  Maintainers: UNMAINTAINED
 +
  */
 +
 +
  // set up the words in your language
 +
  var NavigationBarHide = '[' + collapseCaption + ']';
 +
  var NavigationBarShow = '[' + expandCaption + ']';
 +
 +
  // shows and hides content and picture (if available) of navigation bars
 +
  // Parameters:
 +
  //    indexNavigationBar: the index of navigation bar to be toggled
 +
  function toggleNavigationBar(indexNavigationBar)
 +
  {
 +
    var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
 +
    var NavFrame = document.getElementById("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 ( hasClass( NavChild, 'NavPic' ) ) {
 +
                NavChild.style.display = 'none';
 +
            }
 +
            if ( hasClass( NavChild, 'NavContent') ) {
 +
                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 (hasClass(NavChild, 'NavPic')) {
 +
                NavChild.style.display = 'block';
 +
            }
 +
            if (hasClass(NavChild, 'NavContent')) {
 +
                NavChild.style.display = 'block';
 +
            }
 +
        }
 +
    NavToggle.firstChild.data = NavigationBarHide;
 +
    }
 +
  }
 +
 +
  // adds show/hide-button to navigation bars
 +
  function createNavigationBarToggleButton()
 +
  {
 +
    var indexNavigationBar = 0;
 +
    // iterate over all < div >-elements
 +
    var divs = document.getElementsByTagName("div");
 +
    for(
 +
            var i=0;
 +
            NavFrame = divs[i];
 +
            i++
 +
        ) {
 +
        // if found a navigation bar
 +
        if (hasClass(NavFrame, "NavFrame")) {
 +
 +
            indexNavigationBar++;
 +
            var NavToggle = document.createElement("a");
 +
            NavToggle.className = 'NavToggle';
 +
            NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
 +
            NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
 +
 +
            var NavToggleText = document.createTextNode(NavigationBarHide);
 +
            for (
 +
                  var NavChild = NavFrame.firstChild;
 +
                  NavChild != null;
 +
                  NavChild = NavChild.nextSibling
 +
                ) {
 +
                if ( hasClass( NavChild, 'NavPic' ) || hasClass( NavChild, 'NavContent' ) ) {
 +
                    if (NavChild.style.display == 'none') {
 +
                        NavToggleText = document.createTextNode(NavigationBarShow);
 +
                        break;
 +
                    }
 +
                }
 +
            }
 +
 +
            NavToggle.appendChild(NavToggleText);
 +
            // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked)
 +
            for(
 +
              var j=0;
 +
              j < NavFrame.childNodes.length;
 +
              j++
 +
            ) {
 +
              if (hasClass(NavFrame.childNodes[j], "NavHead")) {
 +
                NavFrame.childNodes[j].appendChild(NavToggle);
 +
              }
 +
            }
 +
            NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
 +
        }
 +
    }
 +
  }
 +
 +
  addOnloadHook( createNavigationBarToggleButton );
 +
 +
/** Main Page layout fixes *********************************************************
 +
  *
 +
  *  Description:        Various layout fixes for the main page, including an
 +
  *                      additional link to the complete list of languages available
 +
  *                      and the renaming of the 'Article' to to 'Main Page'.
 +
  *  Maintainers:        [[User:AzaToth]], [[User:R. Koot]]
 +
  */
 +
 +
function mainPageRenameNamespaceTab() {
 +
    try {
 +
        var Node = document.getElementById( 'ca-nstab-main' ).firstChild;
 +
        if ( Node.textContent ) {      // Per DOM Level 3
 +
            Node.textContent = 'Main Page';
 +
        } else if ( Node.innerText ) { // IE doesn't handle .textContent
 +
            Node.innerText = 'Main Page';
 +
        } else {                      // Fallback
 +
            Node.replaceChild( Node.firstChild, document.createTextNode( 'Main Page' ) );
 +
        }
 +
    } catch(e) {
 +
        // bailing out!
 +
    }
 +
}
 +
 +
function mainPageAppendCompleteListLink() {
 +
    try {
 +
        var node = document.getElementById( "p-lang" )
 +
                            .getElementsByTagName('div')[0]
 +
                            .getElementsByTagName('ul')[0];
 +
 +
        var aNode = document.createElement( 'a' );
 +
        var liNode = document.createElement( 'li' );
 +
 +
        aNode.appendChild( document.createTextNode( 'Complete list' ) );
 +
        aNode.setAttribute( 'href' , 'http://meta.wikimedia.org/wiki/List_of_Wikipedias' );
 +
        liNode.appendChild( aNode );
 +
        liNode.className = 'interwiki-completelist';
 +
        node.appendChild( liNode );
 +
      } catch(e) {
 +
        // lets just ignore what's happened
 +
        return;
 +
    }
 +
}
 +
 +
if ( wgTitle == 'Main Page' && ( wgNamespaceNumber == 0 || wgNamespaceNumber == 1 ) ) {
 +
        addOnloadHook( mainPageRenameNamespaceTab );
 +
}
 +
 +
if ( wgTitle == 'Main Page' && wgNamespaceNumber == 0 ) {
 +
        addOnloadHook( mainPageAppendCompleteListLink );
 +
}
SkipCaptcha, nsSupply_SidersR, nsSupply_Siders_
8,436

edits

Navigation menu