User:Neo of ZW/monobook.js

// // Rights // Sets a variable "rights" which will return "false" if the // currently logged in user is a bureaucrat, administrator, or autoconfirmed user. It will return true otherwise. // it also defines variables which may be used elsewhere in scripts. //

var rights_isAdmin = (wgUserGroups.toString.indexOf('sysop') != -1); var rights_isAuto = (wgUserGroups.toString.indexOf('autoconfirmed') != -1); var rights_isCrat = (wgUserGroups.toString.indexOf('bureaucrat') != -1); var rights = true; if (rights_isCrat || rights_isAdmin || rights_isAuto) {rights=false} //

// // addLogs // adds a 'page logs' link to the toolbox bar (if the page is a special page, then no link is displayed) // addOnloadHook(function {    if ( wgCanonicalNamespace == "Special" )        return;  // don't display link for special pages

url = wgServer + "/index.php?title=Special:Log&page=" + encodeURIComponent(wgPageName);

addPortletLink("p-tb", url, "Page logs", "pt-logs"); }); //

// // addScript // adds a 'user scripts' link to the personal links, which links to the user's personal monobook.js page // importScript('User:Matt/ModifySidebar.js'); function CustomizeModificationsOfSidebar { ModifySidebar("add", "personal", "my scripts", "/User:" + encodeURIComponent(wgUserName) + "/monobook.js", "My personal user scripts"); } addOnloadHook(CustomizeModificationsOfSidebar); //

// // redirects // adds a tab to the top of pages, when clicked it highlights all links on the page that are redirects. // if (wgAction != 'edit' && wgCanonicalNamespace != 'Special' && wgAction != 'history' && wgAction != 'delete' && wgAction != 'watch' && wgAction != 'unwatch' && wgAction != 'protect' && wgAction != 'markpatrolled' && wgAction != 'rollback' && document.URL.indexOf('diff=') <= 0) { var highlightRedirects = { tab_redirects : null, addStylesheetRule : function(tag, style) { var ss = document.styleSheets[0]; if (ss.insertRule) { ss.insertRule(tag + '{' + style + '}', ss.cssRules.length); } else if (ss.addRule) { ss.addRule(tag, style); } }, run : function { highlightRedirects.addStylesheetRule('a.mw-redirect', 'color:green'); highlightRedirects.addStylesheetRule('a.mw-redirect:visited', 'color:darkgreen'); }, install : function { with(highlightRedirects) {  addPortletLink ('p-cactions', 'javascript:highlightRedirects.run;', 'redirects', 'ca-redirects', 'Highlights all links which are redirects', 'r') || addPortletLink ('views', 'javascript:highlightRedirects.run;', 'redirects', 'ca-redirects', 'Highlights all links which are redirects', 'r'); } } }; addOnloadHook(highlightRedirects.install); } //

// // user rights // adds a link in the tool box while on user pages to a user's rights management page. // addOnloadHook(function {     if (!rights_isAdmin)        return; //Restrict this feature to admins.    if (wgNamespaceNumber != "2" && wgNamespaceNumber != "3")        return;  // restrict to User and User talk    var title = wgTitle;    addPortletLink('p-tb', '/Special:Userrights/'+title, 'User rights', 't-userrights', 'User rights for "'+title+'"'); }); //

// // adminrights.js         (adapted from http://en.wikipedia.org/wiki/User:Ais523/adminrights.js) // This script changes the color of links to admins' userpages in the bodyContent of Special, History pages, diff pages, // and old page revisions. // ("bodyContent" being everything but the tabs,personal links at the top of the screen and sidebar). //

var adminrights=new Array; importScript('MediaWiki:Adminlist.js'); //Highlighting script. Based on User:ais523/highlightmyname.js. function highlightadmins(n,p) //node, parent node { while(n!=null) {   if(n.nodeType==1&&n.tagName.toLowerCase=="a") //anchor {     if(n.href.indexOf("/User:")!=-1) {       var u=n.href.split("/User:")[1]; if(adminrights[u.split("_").join("%20")]==1) {         n.style.color="#00CC00"; if(n.className==null||n.className=="") n.className="ais523_adminrights_admin"; else n.className+="ais523_adminrights_admin"; }       n=n.nextSibling; }     else if(n.href.indexOf("/index.php?title=User:")!=-1) {       var u=n.href.split("/index.php?title=User:")[1]; if(adminrights[u.split("_").join("%20")]==1) {         n.style.color="#00CC00"; if(n.className==null||n.className=="") n.className="ais523_adminrights_admin"; else n.className+=" ais523_adminrights_admin"; }       n=n.nextSibling; }     else {       if(n.firstChild!=null) highlightadmins(n.firstChild,n); n=n.nextSibling; }   }    else {     if(n.firstChild!=null) highlightadmins(n.firstChild,n); n=n.nextSibling; } } }

if (wgCanonicalNamespace == 'Special' || wgAction == 'history' || document.URL.indexOf('diff=') > 0 || document.URL.indexOf('oldid=') > 0) { addOnloadHook(function {   highlightadmins(document.getElementById('bodyContent').firstChild, document.getElementById('bodyContent')); }); } //

// // Patrol tab // adds a "marked as patrolled" tab to pages that have that link already on it. // Once patrolled, the button turns into a button to go to the recent changes // with patrolled edits hidden. Further speeding up patrolling. // The second function of the button has the same access key. // function patroltab { if (document.URL.indexOf('&rcid=') > 0 && wgAction != 'markpatrolled') { addPortletLink ('p-cactions', "/index.php?title=" + encodeURIComponent(wgPageName) + "&action=markpatrolled&rcid=" + document.location.toString.split('&rcid=')[1].split('&'), 'patrol', 'ca-patrol', 'Mark as patrolled', '1'); } else if (document.URL.indexOf('&rcid=') > 0 && wgAction == 'markpatrolled') { addPortletLink ('p-cactions', "/index.php?title=Special:RecentChanges&hidepatrolled=1", 'return', 'ca-return', 'Return to unpatrolled recent changes', '1'); } } addOnloadHook(patroltab); //

// // last diff // Adds a tab which gives the latest diff for a page. // function lastdiff { addPortletLink("p-cactions", wgServer + "/index.php?title=" + encodeURIComponent(wgPageName) + "&diff=cur&oldid=prev",         "last", "ca-last", "Show most recent diff", '2'); } if (wgCanonicalNamespace != 'Special' && wgAction != 'edit' && wgAction != 'delete' && wgAction != 'watch' && wgAction != 'unwatch' && wgAction != 'protect'){ addOnloadHook(lastdiff); } //

// // Recent Changes Edit Colors // Colors the page size changes on the recent changes // importStylesheetURI(wgServer +"/User:Matt/RC_Colors.css" + "&ctype=text/css&action=raw"); // // // Rights // Sets a variable "rights" which will return "false" if the // currently logged in user is a bureaucrat, administrator, or autoconfirmed user. It will return true otherwise. //

var rights_isAdmin = (wgUserGroups.toString.indexOf('sysop') != -1); var rights_isAuto = (wgUserGroups.toString.indexOf('autoconfirmed') != -1); var rights_isCrat = (wgUserGroups.toString.indexOf('bureaucrat') != -1); var rights = true; if (rights_isCrat || rights_isAdmin || rights_isAuto) {rights=false}

// // Perma-link to wikistuff page // addOnloadHook(function {    {addPortletLink('p-personal', '/User:Neo/Wikistuff', "Real Userpage", 'Wiki-link', 'My TRUE userpage.');} });

// // Perma-link to disambiguation links page // addOnloadHook(function {    {addPortletLink('p-community', '/Special:Disambiguations', "Disambiguation Links", 't-test', 'This page shows links to disambiguation pages. These need to be tackled.');} });

// // Perma-link to ZELDA //

addOnloadHook(function {    {addPortletLink('p-community', '/Zelda Wiki.org:ZELDA', "ZELDA", 'ZELDA Link', 'The homepage of the ZELDA project.');} });

// // Perma-link to SaRIA //

addOnloadHook(function {    {addPortletLink('p-community', '/Zelda Wiki.org:SaRIA', "SaRIA", 'SaRIA Link', 'The homepage of the SaRIA project.');} });

// // Upload Multiple Files link in the toolbox // This will create a permanent "upload multiple files" link in the toolbox. //

addOnloadHook(function {    {addPortletLink('p-tb', '/Special:MultipleUpload', "Upload Multiple Files", 't-test', 'Upload up to five files at once.');} }); //

// // Personal links // Just some personal links for myself to make things easier for myself. //

importScript('User:Matt/ModifySidebar.js'); function CustomizeModificationsOfSidebar { //Matt stuff if (wgCanonicalNamespace == 'User' || wgCanonicalNamespace == 'User talk'){ if (wgTitle == wgUserName){ ModifySidebar("add", "personal", "wikistuff", "/User:" + encodeURIComponent(wgUserName) + "/Wikistuff", "My real user page"); }   ModifySidebar("add", "personal", "my edit count", "/Special:EditCount/" + encodeURIComponent(wgUserName), "My personal edit count, broken down by namespace"); } } addOnloadHook(CustomizeModificationsOfSidebar); //

// // UTC Clock // Adds a live UTC clock to the personal links. //

function liveClock{ liveClock.node = addPortletLink( 'p-personal', wgServer + '/index.php?title=' + encodeURIComponent(wgPageName) + '&action=view', '', 'utcdate' ); liveClock.node.style.fontSize = 'larger'; liveClock.node.style.fontWeight = 'bolder'; showTime; } addOnloadHook(liveClock); function showTime{ var dateNode = liveClock.node; if( !dateNode ) { return; }	var now = new Date; var hh = now.getUTCHours; var mm = now.getUTCMinutes; var ss = now.getUTCSeconds; var time = ( hh < 10 ? '0' + hh : hh ) + ':' + ( mm < 10 ? '0' + mm : mm ) + ':' + ( ss < 10 ? '0' + ss : ss ); dateNode.firstChild.replaceChild( document.createTextNode( time ), dateNode.firstChild.firstChild ); window.setTimeout(showTime, 1000); } //

// // load css // Loads the user's personal css page despite any // errors preventing it normally or user CSS being disabled // importStylesheetURI(wgServer +"/User:" + encodeURIComponent(wgUserName) + "/monobook.css&ctype=text/css&action=raw"); //