MediaWiki:Monobook.js

/* Deprecated; use MediaWiki:common.js */ /* ==addLoadEvent== */ function addLoadEvent(func) {  if (window.addEventListener) window.addEventListener("load", func, false); else if (window.attachEvent) window.attachEvent("onload", func); } /* ===addOnloadHook=== */ //use both names for it, for Wikipedia compatability (just in case) function addOnloadHook(f) { addLoadEvent(f); } /* ==Dynamic Navigation Bars (experimental)== */ // ============================================================  // BEGIN Dynamic Navigation Bars (experimental) // FIXME: currently only works for one nav bar on a page at a time // 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 NavigationBarShowDefault = 1; //Honor the User Preferences if ( ( getCookie('WiktionaryUseJSPreferences') != 'true' ) || ( getCookie('WiktionaryPreferencesShowNav') != 'true' ) ) {         NavigationBarShowDefault = 0; } else { if ( wgNamespaceNumber == 0 ) NavigationBarShowDefault = 999 ; } /* ===toggleNavigationBar=== */ // 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;                 NavChild = NavChild.nextSibling             ) { if (NavChild.className == 'NavPic') { NavChild.style.display = 'none'; }            if (NavChild.className == 'NavContent') { NavChild.style.display = 'none'; }        }     NavToggle.firstChild.data = NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == NavigationBarShow) { for (                var NavChild = NavFrame.firstChild;                 NavChild;                 NavChild = NavChild.nextSibling             ) { if (NavChild.className == 'NavPic') { NavChild.style.display = 'block'; }             if (NavChild.className == 'NavContent') { NavChild.style.display = 'block'; }        }     NavToggle.firstChild.data = NavigationBarHide; } } /*  ===createNavigationBarToggleButton=== */ // adds show/hide-button to navigation bars function 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 == "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); // END Dynamic Navigation Bars // ============================================================ /* ==addCharSubsetMenu== */ /* add menu for selecting subsets of secial characters */ /***** must match MediaWiki:Edittools *****/ function addCharSubsetMenu { var edittools = document.getElementById('editpage-specialchars'); if (edittools) { var menu = ""; menu += " Templates "; menu += " Latin/Roman "; menu += " IPA "; menu += " enPR "; menu += " Misc. "; menu += " Arabic "; menu += " Armenian "; menu += " Catalan "; menu += " Cyrillic "; menu += " Devanāgarī "; menu += " Esperanto "; menu += " Estonian "; menu += " French "; menu += " German "; menu += " Gothic "; menu += " Greek (Modern) "; menu += " Greek (Ancient) "; menu += " Hawaiian "; menu += " Hebrew "; menu += " Icelandic "; menu += " Italian "; menu += " Latvian/Lithuanian "; menu += " Maltese "; menu += " Old English "; menu += " Pinyin "; menu += " Portuguese "; menu += " Romaji "; menu += " Romanian "; menu += " Scandinavian "; menu += " Slavic Roman "; menu += " Sorani Kurdish "; menu += " Spanish "; menu += " Turkish "; menu += " Vietnamese "; menu += " Welsh "; menu += " Yoruba "; menu += " "; edittools.innerHTML = menu + edittools.innerHTML; /* default subset from cookie */ var s = parseInt( getCookie('edittoolscharsubset') ); if ( isNaN(s) ) s = 0; /* update dropdown control to value of cookie */ document.getElementById('charSubsetControl').selectedIndex = s;     /* display the subset indicated by the cookie */ chooseCharSubset( s ); } } /* ===chooseCharSubsetMenu=== */ /* select subsection of special characters */ function chooseCharSubset(s) { var l = document.getElementById('editpage-specialchars').getElementsByTagName('p'); for (var i = 0; i < l.length ; i++) { l[i].style.display = i == s ? 'inline' : 'none'; l[i].style.visibility = i == s ? 'visible' : 'hidden'; }  setCookie('edittoolscharsubset', s); }