User:Hillgentleman1/monobook.js

From Wikiversity

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
// [[:en:User:Lupin/popups.js]]

mw.loader.load(
             'https://en.wikipedia.org/w/index.php?title=User:Lupin/popups.js'
             + '&action=raw&ctype=text/javascript&dontcountme=s');

//[[:zh-yue:User:Hillgentleman/monobook.js]], [[:zh-yue:User:Sl/monobook.js]]

document.write('<script type="text/javascript" src="'
 + 'http://beta.wikiversity.org/w/index.php?title=User:Hillgentleman/sim2trad.js'
 + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
 document.write('<script type="text/javascript" src="'
 + 'http://beta.wikiversity.org/w/index.php?title=User:hillgentleman/trad2sim.js'
 + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
 
 origStr = "";
 function supplane(num) {
 	if(num >= 65536) num -= 65536;
 	var num1 = Math.floor(num / 1024) + 55296;
 	var num2 = num % 1024 + 56320;
 	return String.fromCharCode(num1) + String.fromCharCode(num2);
 }
 function converts2t() {
 	var content = document.getElementById("bodyContent").innerHTML;
 	var newStr = "";
 	if(origStr.length > 0)
 		content = origStr;
 	if(content.length == 0) {
 		newStr = default_text;
 	}
 	else for(var i = 0; i < content.length; i++) {
 		var unicode = content.charCodeAt(i);
 		if(unicode >= 55296 && unicode <= 56319) {
 			var unicode1 = content.charCodeAt(++i);
 			if(unicode1 >= 56320 && unicode1 <= 57343) {
 				unicode = 1024 * unicode - 56557568 + unicode1 - 56320;
 			}
 		}
 		var unicode2 = table2t[unicode];
 		if(unicode2 > 65535) {
 			newStr += supplane(unicode2);
 		}
 		else if(unicode > 65535 && !unicode2) {
 			newStr += supplane(unicode);
 		}
 		else {
 			newStr += ( unicode2 ) ? String.fromCharCode(unicode2) : String.fromCharCode(unicode);
 		}
 	}
 	origStr = content;
 	document.getElementById("bodyContent").innerHTML = newStr;
 }
 function convertt2s() {
 	var content = document.getElementById("bodyContent").innerHTML;
 	var newStr = "";
 	if(origStr.length > 0)
 		content = origStr;
 	if(content.length == 0) {
 		newStr = default_text;
 	}
 	else for(var i = 0; i < content.length; i++) {
 		var unicode = content.charCodeAt(i);
 		if(unicode >= 55296 && unicode <= 56319) {
 			var unicode1 = content.charCodeAt(++i);
 			if(unicode1 >= 56320 && unicode1 <= 57343) {
 				unicode = 1024 * unicode - 56557568 + unicode1 - 56320;
 			}
 		}
 		var unicode2 = table2s[unicode];
 		if(unicode2 > 65535) {
 			newStr += supplane(unicode2);
 		}
 		else if(unicode > 65535 && !unicode2) {
 			newStr += supplane(unicode);
 		}
 		else {
 			newStr += ( unicode2 ) ? String.fromCharCode(unicode2) : String.fromCharCode(unicode);
 		}
 	}
 	origStr = content;
 	document.getElementById("bodyContent").innerHTML = newStr;
 }
 function convertorig() {
 	if(origStr.length > 0)
 		document.getElementById("bodyContent").innerHTML = origStr;
 }
 if(location.href.indexOf("action=edit") == -1)
 	document.write('<div style=\"position:relative;top:3.7em;text-align:right;margin-right:1em;white-space:nowrap;\"><a href=\"javascript:convertorig();\" style=\"font-size:133%;\">不轉<\/a> <a href=\"javascript:converts2t();\" style=\"font-size:133%;\">轉繁<\/a> <a href=\"javascript:convertt2s();\" style=\"font-size:133%;\">转简体<\/a><\/div>');

 // <pre><nowiki>
 /* tooltips and access keys */
 var ta = new Object();
 ta['pt-userpage'] = new Array('.','My user page');
 ta['pt-anonuserpage'] = new Array('.','The user page for the ip you\'re editing as');
 ta['pt-mytalk'] = new Array('n','My talk page');
 ta['pt-anontalk'] = new Array('n','Discussion about edits from this ip address');
 ta['pt-preferences'] = new Array('','My preferences');
 ta['pt-watchlist'] = new Array('l','The list of pages you\'re monitoring for changes.');
 ta['pt-mycontris'] = new Array('y','List of my contributions');
 ta['pt-login'] = new Array('o','You are encouraged to log in, it is not mandatory however.');
 ta['pt-anonlogin'] = new Array('o','You are encouraged to log in, it is not mandatory however.');
 ta['pt-logout'] = new Array('o','Log out');
 ta['ca-talk'] = new Array('t','Discussion about the content page');
 ta['ca-edit'] = new Array('e','You can edit this page. Please use the preview button before saving.');
 ta['ca-addsection'] = new Array('+','Add a comment to this discussion.');
 ta['ca-viewsource'] = new Array('e','This page is protected. You can view its source.');
 ta['ca-history'] = new Array('h','Past versions of this page.');
 ta['ca-protect'] = new Array('=','Protect this page');
 ta['ca-delete'] = new Array('d','Delete this page');
 ta['ca-undelete'] = new Array('d','Restore the edits done to this page before it was deleted');
 ta['ca-move'] = new Array('m','Move this page');
 ta['ca-watch'] = new Array('w','Add this page to your watchlist');
 ta['ca-unwatch'] = new Array('w','Remove this page from your watchlist');
 ta['search'] = new Array('f','Search this wiki');
 ta['p-logo'] = new Array('','Main Page');
 ta['n-mainpage'] = new Array('z','Visit the Main Page');
 ta['n-portal'] = new Array('','About the project, what you can do, where to find things');
 ta['n-currentevents'] = new Array('','Find background information on current events');
 ta['n-recentchanges'] = new Array('r','The list of recent changes in the wiki.');
 ta['n-randompage'] = new Array('x','Load a random page');
 ta['n-help'] = new Array('','The place to find out.');
 ta['n-sitesupport'] = new Array('','Support us');
 ta['t-whatlinkshere'] = new Array('j','List of all wiki pages that link here');
 ta['t-recentchangeslinked'] = new Array('k','Recent changes in pages linked from this page');
 ta['feed-rss'] = new Array('','RSS feed for this page');
 ta['feed-atom'] = new Array('','Atom feed for this page');
 ta['t-contributions'] = new Array('','View the list of contributions of this user');
 ta['t-emailuser'] = new Array('','Send a mail to this user');
 ta['t-upload'] = new Array('u','Upload images or media files');
 ta['t-specialpages'] = new Array('q','List of all special pages');
 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-project'] = 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');

 // ============================================================
 // BEGIN Enable multiple onload functions
 
 // setup onload functions this way:
 // aOnloadFunctions[aOnloadFunctions.length] = function_name; // without brackets!
 
 if (!window.aOnloadFunctions) {
   var aOnloadFunctions = new Array();
 }
 
 window.onload = function() {
   if (window.aOnloadFunctions) {
     for (var _i=0; _i<aOnloadFunctions.length; _i++) {
       aOnloadFunctions[_i]();
     }
   }
 }
 
 // ============================================================
 // BEGIN Dynamic Navigation Bars
 // NEEDS Enable multiple onload functions 
 
 // set up the words in your language
 var NavigationBarHide = 'Collapse';
 var NavigationBarShow = 'Expand';
 
 // 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;
 
 
 // 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 (NavChild.className == 'NavPic') {
                NavChild.style.display = 'none';
            }
            if (NavChild.className == 'NavContent') {
                NavChild.style.display = 'none';
            }
            if (NavChild.className == 'NavToggle') {
                NavChild.firstChild.data = NavigationBarShow;
            }
        }
 
    // if hidden now
    } else if (NavToggle.firstChild.data == NavigationBarShow) {
        for (
                var NavChild = NavFrame.firstChild;
                NavChild != null;
                NavChild = NavChild.nextSibling
            ) {
            if (NavChild.className == 'NavPic') {
                NavChild.style.display = 'block';
            }
            if (NavChild.className == 'NavContent') {
                NavChild.style.display = 'block';
            }
            if (NavChild.className == 'NavToggle') {
                NavChild.firstChild.data = NavigationBarHide;
            }
        }
    }
 }
 
 // adds show/hide-button to navigation bars
 function createNavigationBarToggleButton()
 {
    var indexNavigationBar = 0;
    // iterate over all < div >-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);
 
            // add NavToggle-Button as first div-element 
            // in < div class="NavFrame" >
            NavFrame.insertBefore(
                NavToggle,
                NavFrame.firstChild
            );
            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);
        }
    }
 
 }
 
 aOnloadFunctions[aOnloadFunctions.length] = createNavigationBarToggleButton;
 
 // END Dynamic Navigation Bars
 // ============================================================

 // ============================================================
 // BEGIN Moving of the editsection links
 /*
 * moveEditsection
 * This script moves the section edit links from the right edge of the page
 * to the right edge of the heading. (Imported from German Wikipedia)
 *
 * This functionality can be disabled by adding the following line without the
 * asteriks to your custom monobook.js (located under [[User:Username/monobook.js]]):
 * var oldEditsectionLinks = true;
 */
 function moveEditsection() {
    if (typeof oldEditsectionLinks == 'undefined' || oldEditsectionLinks == false) {
        var spans = document.getElementsByTagName("span");
        for(var i = 0; i < spans.length; i++) {
            if(spans[i].className == "editsection") {
                spans[i].style.fontSize = "x-small";
                spans[i].style.fontWeight = "normal";
                spans[i].style.cssFloat = "none";
                spans[i].style.marginLeft = "0px";
                spans[i].parentNode.appendChild(document.createTextNode(" "));
                spans[i].parentNode.appendChild(spans[i]);
            }
        }
    }
 } // onload
 
 addOnloadHook(moveEditsection);

 // END Moving of the editsection links
 // ============================================================

 // ============================================================
 // BEGIN import Onlyifediting-functions
 // SEE ALSO [[MediaWiki:Onlyifediting.js]]
 
 if (document.URL.indexOf("action=edit") > 0 || document.URL.indexOf("action=submit") > 0) {
  document.write('<script type="text/javascript" src="/w/index.php?title=MediaWiki:Onlyifediting.js&action=raw&ctype=text/javascript&dontcountme=s"></script>');
 }
 
 // END import Onlyifediting-functions
 // ============================================================

 if (mwCustomEditButtons) {
  mwCustomEditButtons[mwCustomEditButtons.length] = {
    "imageFile": "http://upload.wikimedia.org/wikipedia/en/c/c8/Button_redirect.png",
    "speedTip": "Redirect",
    "tagOpen": "#REDIRECT [[",
    "tagClose": "]]",
    "sampleText": "Insert text"};

 //Reference link button
 mwCustomEditButtons[mwCustomEditButtons.length] = {
    "imageFile": "http://upload.wikimedia.org/wikipedia/commons/7/79/Button_reflink.png",
    "speedTip": "<ref>",
    "tagOpen": "<ref>",
    "tagClose": "</ref>",
    "sampleText": "Insert reference material"}
 //Reference button
 mwCustomEditButtons[mwCustomEditButtons.length] = {
    "imageFile":  "http://upload.wikimedia.org/wikipedia/commons/a/a0/Button_references_alt.png",
    "speedTip": "Reference footer",
    "tagOpen": "<references/>",
    "tagClose": "",
    "sampleText": ""}
 };

 // Simplify import of additional js files
 function importPage(seite,lang){ // all languages support
    name='User:'; // international name
    if(!lang) {
       lang='en';
       name='User:';
    }
    document.write('<SCRIPT TYPE="text/javascript" SRC="http://' + lang
    + '.wikiversity.org/w/index.php?title=' + name + seite
    + '&action=raw&ctype=text/javascript&smaxage=2678400&dontcountme=s"><\/SCRIPT>');
 }


 // ============================================================
 // 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;
 var counter_factor = 3; // let's see if we can decrease it
 
 function pgcounter_setup()
 {
 	if(disable_counter == 0)
 	{
 		var url = window.location.href;
 		if(Math.floor(Math.random()*counter_factor)==2)  // 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=enwikiversity";
 				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 
 // ============================================================
 // </nowiki></pre>