MediaWiki:Common.js
From Wikibooks
Note - After saving, you may have to bypass your browser's cache to see the changes. Mozilla / Firefox / Safari: hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (Command-R on a Macintosh); Konqueror: click Reload or press F5; Opera: clear the cache in Tools → Preferences; Internet Explorer: hold Ctrl while clicking Refresh, or press Ctrl-F5.
/* Any JavaScript here will be loaded for all users on every page load. */ import_script('MediaWiki:Common.js/RandomBook.js'); // ============================================================ // BEGIN Dynamic Navigation Bars (experimental) // set up the words in your language var NavigationBarHide = '▲'; var NavigationBarShow = '▼'; // 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 NavigationBarShowDefault = 0; // 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; var divs = document.getElementsByTagName("div"); // iterate over all < div >-elements 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); 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 (NavFrame.childNodes[j].className == "NavHead") { NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } // if more Navigation Bars found than Default: hide all if (NavigationBarShowDefault < indexNavigationBar) { for (var i=1; i<=indexNavigationBar; i++) { toggleNavigationBar(i); } } } addLoadEvent(createNavigationBarToggleButton); if (wgNamespaceNumber >= 1 && (wgTitle == "Main Page" || wgTitle.indexOf("Main Page ") == 0)) { document.write('<style type="text/css">/*<![CDATA[*/ #siteSub, #contentSub, h1.firstHeading { display: none !important; } /*]]>*/</style>'); 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 if (Node.innerHTML) { // Fallbacks Node.innerHTML = 'Main Page'; } else { Node.replaceChild(Node.firstChild, document.createTextNode('Main Page')); } } catch(e) { // bailing out! } } // Main page tab no longer says article addOnloadHook(mainPageRenameNamespaceTab); } // adds buttons to the edit toolbar if (mwCustomEditButtons) { import_script("MediaWiki:EditToolbar.js"); }