User:Versageek/modern.js

/*

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('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.isHidden == false) { 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.childNodes[1].firstChild.nodeValue = NavigationBarShow; NavToggle.isHidden = true; // if hidden now } else if (NavToggle.isHidden == true) { 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.childNodes[1].firstChild.nodeValue = NavigationBarHide; NavToggle.isHidden = false; } } /*

createNavigationBarToggleButton
*/

// adds show/hide-button to navigation bars function createNavigationBarToggleButton {   // Are we previewing an translation section? var preview = document.getElementById('wikiPreview');

if (preview != null) { var p = preview.getElementsByTagName('p'); if (p != null && p.length >= 2 && p[1].firstChild.id == 'Translations') { NavigationBarShowDefault = 999; }   }

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("span"); NavToggle.className = 'NavToggle editsection'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.appendChild(document.createTextNode('[')); NavToggle.appendChild(document.createElement("a")); var NavToggleText = document.createTextNode(NavigationBarHide); NavToggle.childNodes[1].setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');'); NavToggle.childNodes[1].appendChild(NavToggleText); NavToggle.appendChild(document.createTextNode(']')); NavToggle.isHidden = false; // 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); }   } } addOnloadHook(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 += " Cherokee "; menu += " Cyrillic "; menu += " Devanāgarī "; menu += " Esperanto "; menu += " Estonian "; menu += " French "; menu += " Georgian "; menu += " German "; menu += " Gothic "; menu += " Greek (Modern) "; menu += " Greek (Ancient) "; menu += " Hawaiian "; menu += " Hebrew "; menu += " Icelandic "; menu += " Indo-European "; 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); }

/*

Statistics
*/

// Hook to use LeonWP's toolserver statistics generator

// ============================================================ // BEGIN pageview counter // 	Please talk to de:User:LeonWeber before changing anything or // 	if there are any issues with that. // this should be adjusted to a good value. // BE CAREFULL, you will break zedler if it's too low! // And then DaB. will kill Leon :-( var disable_counter = 0; // 0 = collect stats from anons, 1 = turn off entirely var counter_factor = 40; //Wikipedias are ~600. Use Alexa for a WAG function pgcounter_setup { 	if( (disable_counter == 0) && (wgUserName == null) ) 	{ 		var url = window.location.href; 		if(Math.floor(Math.random*counter_factor)==4)  // the probability thing  		{  			if(wgIsArticle==true) // do not count history pages etc. 			{ 				var pgcountNs = wgCanonicalNamespace; 				if(wgCanonicalNamespace=="") 				{ 					pgcountNs = "0"; 				}  				var cnt_url = "http://pgcount.wikimedia.de/index.png?ns=" + pgcountNs + "&title=" + encodeURI(wgTitle) + "&factor=" + counter_factor + "&wiki=enwiktionary"; 				var img = new Image;  				img.src = cnt_url; 			} 		} 	} } // Do not use aOnloadFunctions[aOnloadFunctions.length] = pgcounter_setup;, some browsers don't like that. pgcounter_setup; // END pageview counter // ============================================================

/*

customizeWiktionary
*/

/* do any Wiktionary-specific customizations */

function customizeWiktionary { addCharSubsetMenu; }

$(customizeWiktionary);

/*

Interproject links
*/

/* function Projectlinks { var elements = new Array; var spans = document.getElementsByTagName('span'); // filter for projectlinks for (var i=0, j=0; i]*>(.*)<\/a>.*$/i,'$1'); b = b.innerHTML.replace(/^.*]*>(.*)<\/a>.*$/i,'$1');
 * 1) ProjectLinks
 * 2)  by user:Pathoschild (idea from an older, uncredited script)
 * 3)    * generates a sidebar list of links to other projects from
 * 1)    * generates a sidebar list of links to other projects from

// return sort order if (a < b) return -1; if (a > b) return 1; return 0; }       elements.sort(sortbylabel); if (j) { // create navbox var plheader = document.createElement('h5'); plheader.appendChild(document.createTextNode('In other projects')); var plbox = document.createElement('div'); plbox.setAttribute('class','pBody'); plbox.setAttribute('style','margin-top:0.7em;'); var pllist = document.createElement('ul');

// append for (var i=0; i<elements.length; i++) { var plitem = document.createElement('li'); plitem.appendChild(elements[i]); pllist.appendChild(plitem); }               plbox.appendChild(plheader); plbox.appendChild(pllist); document.getElementById("p-tb").appendChild(plbox); } }

$(Projectlinks);

/*

Alt shortcuts for namespaces
*/

//Added back in until they are otherwise resolved var ta={}; ta['ca-nstab-project'] = new Array('c','View the project page'); ta['ca-nstab-main'] = new Array('c','View the content page'); ta['ca-nstab-user'] = new Array('c','View the user page'); ta['ca-nstab-media'] = new Array('c','View the media page'); ta['ca-nstab-special'] = new Array('','This is a special page, you can\'t edit the page itself.'); ta['ca-nstab-wp'] = new Array('a','View the project page'); ta['ca-nstab-image'] = new Array('c','View the image page'); ta['ca-nstab-mediawiki'] = new Array('c','View the system message'); ta['ca-nstab-template'] = new Array('c','View the template'); ta['ca-nstab-help'] = new Array('c','View the help page'); ta['ca-nstab-category'] = new Array('c','View the category page'); ta['ca-nstab-appendix'] = new Array('c','View the appendix page'); ta['ca-nstab-concordance'] = new Array('c','View the concordance page'); ta['ca-nstab-index'] = new Array('c','View the index page'); ta['ca-nstab-rhymes'] = new Array('c','View the rhymes page'); ta['ca-nstab-transwiki'] = new Array('c','View the imported page'); ta['ca-nstab-wikisaurus'] = new Array('c','View the thesaurus page'); ta['ca-nstab-wt'] = new Array('c','View the shortcut target page'); ta['ca-nstab-citations'] = new Array('c','View the citations page'); ta['ca-nstab-quotations'] = new Array('c','View the quotations page'); /* bs:MediaWiki:Monobook.js he:MediaWiki:Monobook.js fr:MediaWiki:Monobook.js de:MediaWiki:Monobook.js ja:MediaWiki:Monobook.js vi:MediaWiki:Monobook.js zh:MediaWiki:Monobook.js