Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
//<pre><nowiki>
//GeorgeMoney's monobook.js
//Copy this to [[User:Eagle 101/monobook.js]]
//----------------------------DEVELOPMENTAL-------------------------------

//MAIN VARS
var myname="Eagle 101"
var mypage="User:Eagle 101"
var mytalk="User talk:Eagle 101"
var mytalkurl="User_talk:Eagle 101"
var mycontribs="Special:Contributions/Eagle 101"
var serverurl="http://en.wikipedia.org"
var wikiurl=serverurl+"/wiki/"
var pathurl=serverurl+"/w/"
var phpurl=pathurl+"index.php?title="
var editcounturl="http://tools.wikimedia.de/~essjay/edit_count/Count.php"
var editcount=editcounturl+"?username="

//READONLY
if (window.location.href.indexOf('read=1') != -1) {
  loadCSS('User:GeorgeMoney/ReadOnly.css');
}
//

if (window.location.href.indexOf('css=1') != -1) {
loadCSSext('http://wikipedia.georgemoney.com/rc.css');
}
//

//COMMANDS FROM URL

$(function () {
  var fontsize=getParamValue('fontsize');
  if (fontsize) document.write('<style type="text/css">#content {font-size:'+fontsize+';}</style>');

  var fontsizenc=getParamValue('fontsizenc');
  if (fontsizenc) document.write('<style type="text/css">* {font-size:'+fontsizenc+';}</style>');
  
  var welcome=getParamValue('welcome');
   if (welcome) {
  document.getElementById('wpTextbox1').value = "{{subst:User:GeorgeMoney/Welcome}}";
  document.getElementById('wpSummary').value = "Welcome to wikipedia!";
  document.getElementById('editform').submit();
   }

 /*
  var minor=getParamValue('autominor');
  if (minor) {
    switch (minor) {
    case '1':
    case 'yes':
    case 'true':
      document.editform.wpMinoredit.checked=true;
      break;
    case '0':
    case 'no':
    case 'false':
      document.editform.wpMinoredit.checked=false;
    }
  }
  */
});


// ARCHIVING - DOESN'T WORK YET
if (location.href.indexOf('&action=edit&archive=1') != -1) {
$(function (){
  document.getElementById('wpTextbox1').value = "{{subst:User talk:GeorgeMoney}}";
  document.getElementById('wpSummary').value = "JS: Archiving talk page";
  document.getElementById('editform').submit();
});
}
if (location.href.indexOf('&action=edit&archive=2') != -1) {
$(function (){
  document.getElementById('wpTextbox1').value = "{{subst:User:GeorgeMoney/Archives/Subst}}";
  document.getElementById('wpSummary').value = "JS: Archiving talk page";
  document.getElementById('editform').submit();
});
}

//Modified version of user:Where/usertabs
$(function() {
  if (document.title.search("/") != -1 || document.title.search("- History -") != -1) { //no subpages or history
     return;
  }
  if (document.title.indexOf("User:") == 0 || document.title.indexOf("User talk:") == 0) {
     username_a = document.URL.match(/:.*:(.*)/);
     username=username_a[1];
     addTab(phpurl+"User_talk:"+username+"&action=edit&section=new&welcome=1", "welcome!", "ca-contrib", "contribs", "");
  }
});

//POPUPS
popupFixDabs=true;

//------------------------NON-DEV; REC--------------------------------------------------

//-------------------------SEARCHBOX
function customsearch() {
    document.getElementById('searchform').action = "http://wikipedia.georgemoney.com/search.php";
    document.getElementById('searchInput').name = "title";
};
window.addEventListener("load", customsearch, false);

//------------ADD EDIT COUNT LINK FOR USERS
$(function () {
        if (document.getElementById('t-contributions')) {
                z=document.getElementById("content").childNodes;
                for (var n=0;n<z.length;n++) { 
                        if (z[n].className=="firstHeading") var username = z[n].textContent.replace(new RegExp('User(?:[ _]talk)?:([^/]*)', 'g'), '$1');
                };
                var toolbox = document.getElementById('p-tb').getElementsByTagName('ul')[0];
                var link = document.createElement('a');
                link.href = editcount+username;
                link.appendChild(document.createTextNode('Edit count'));
                var li = document.createElement('li');
                li.appendChild(link);
                toolbox.appendChild(li);
        }
});

//----------------------------LIST REDLINKS
function listRedLinks() {
        var len=document.links.length;
        var output=document.createElement('div');
        output.innerHTML='<h2>Red links</h2>';
        var gotSome=false;
        for (var i=0; i<len; ++i) {
                if (document.links[i].className=='new') {
                        gotSome=true;
                        var l=document.links[i].cloneNode(true);
                        output.appendChild(l);
                        output.appendChild(document.createElement('br'));
                }
        }
        if (gotSome){
                output.appendChild(document.createElement('hr'));
                var h1=document.getElementsByTagName('h1')[0];
                h1.parentNode.insertBefore(output, h1.nextSibling);
        }
}
$(function(){addToolboxLink('javascript:listRedLinks()', 'List red links');});



//---------------------------------------------------------------------------------IGNORE--------------------------------------------------------------------------------------------------------


//LINKS
$(function(){addTopLink(editcount+myname, 'edit count');});
$(function(){addNavLink(phpurl+'Special%3ALog&type=newusers&user=&page=', 'New user log');});
$(function(){addNavLink('http://wiki.xyrael.net/mediawiki/index.php?title=Special:Recentchanges', 'Test Wiki');});
$(function(){addNavLink('http://wikipedia.georgemoney.com/search2.php', 'Special Query');});

//---------------------------------------------------------------------------------------------------------------FUNCTS------------------------------------------------------------------------------------------------
function redir(url) {
document.write('<meta http-equiv="refresh" content="0; url='+url+'">');
}
function loadJS(page){
  page=page.replace(" ", "_");
  document.write('<script type="text/javascript" src="'+phpurl+page+'&action=raw&ctype=text/javascript&dontcountme=s"></script>');
}
function loadCSS(page){
  page=page.replace(" ", "_");
  document.write('<style type="text/css">@import "'+phpurl+page+'&action=raw&ctype=text/css";</style>');
}
function loadCSSext(page){
  document.write('<style type="text/css">@import "'+page+'";</style>');
}
function loadchrome(page){
  page=page.replace(" ", "_");
  document.write('<script type="text/javascript" src="chrome://wikipedia/content/'+page+'"></script>');
}

//PAGENAME FOR CSS
document.write('<body namespace="'+wgCanonicalNamespace+'" id="wikipage-'+wgPageName+'">');

// ----------------------------------------------HELPERS----------------------------------------------
//    --- ADD VARIOUS LINKS ----
function addToolboxLink(url, name, id){
    var tb = document.getElementById('p-tb').getElementsByTagName('ul')[0];
    addlilink(tb, url, name, id);
}
// 
function addTopLink(url, name, id){
    var personal = document.getElementById('p-personal').getElementsByTagName('ul')[0];
    addlilink(personal, url, name, id);
}
// 
function addNavLink(url, name, id){
    var navigation = document.getElementById('p-navigation').getElementsByTagName('ul')[0];
    addlilink(navigation, url, name, id);
}
// 

function addTab(url, name, id, title, key){
    var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
    return addlilink(tabs, url, name, id, title, key);
}

//

//      ------ MORE MAJOR LINKAGE -----
function addLink(where, url, name, id, title, key, after){
    //* where is the id of the toolbar where the button should be added;
    //   i.e. one of "p-cactions", "p-personal", "p-navigation", or "p-tb".
    //
    //* url is the URL which will be called when the button is clicked.
    //   javascript: urls can be used to do more complex things.
    //
    //* name is what will appear as the name of the button.
    //
    //* id is the id of the button; it's best to define one.  
    //   Use a prefix to make sure its unique. Optional.
    //
    //* title is the tooltip title that gives a longer description 
    //   of the button; if you define a accesskey, mention it here. Optional.
    //
    //* key is the char you want for the accesskey. Optional.
    //
    //* after is the id of the button you want to follow this one. Optional.
    //
    var na = document.createElement('a');
    na.href = url;
    na.appendChild(document.createTextNode(name));
    var li = document.createElement('li');
    if(id) li.id = id;
    li.appendChild(na);
    var tabs = document.getElementById(where).getElementsByTagName('ul')[0];
    if(after) {
        tabs.insertBefore(li,document.getElementById(after));
    } else {
        tabs.appendChild(li);
    }
    if(id) {
        if(key && title) { ta[id] = [key, title]; }
        else if(key) { ta[id] = [key, '']; }
        else if(title) { ta[id] = ['', title];} 
    }
    // re-render the title and accesskeys from existing code in wikibits.js
    akeytt();
    return li;
}
    
// 

// ------------- LINKAGE ----------------

function addlilink(tabs, url, name, id, title, key){
    var na = document.createElement('a');
    na.href = url;
    na.appendChild(document.createTextNode(name));
    var li = document.createElement('li');
    if(id) li.id = id;
    li.appendChild(na);
    tabs.appendChild(li);
    if(id)
    {
        if(key && title)
        {
            ta[id] = [key, title];
        }
        else if(key)
        {
            ta[id] = [key, ''];
        }
        else if(title)
        {
            ta[id] = ['', title];
        }
    }
    // re-render the title and accesskeys from existing code in wikibits.js
    akeytt();
    return li;
}

// 

// 

// ---------- END HELPER FUNCTIONS ---------

//</nowiki></pre>

//---------- TEST

function NUPatrol()
{
 if ( ( window.location.href.indexOf( 'Special%3ALog&type=newusers' ) == -1 ) &&
 ( window.location.href.indexOf( 'Special:Log/newusers'        ) == -1 )  )
 return; // make more robust???

 var items, item, i, links, user, name, talk, contribs, insertLoc, link;

 items = document.getElementById( 'bodyContent' ).getElementsByTagName( 'ul' )[ 0 ].getElementsByTagName( 'li' );

 function NewLink( txt, url, plainlinks, linkColor )
 { var a = document.createElement( 'a' );
 a.appendChild( document.createTextNode( txt ) );
 a.href = url;
 if ( plainlinks ) a.className = 'plainlinks';
 if ( linkColor )
 { if ( typeof linkColor == "string" )
 a.style.color = linkColor;
 }
 return a;
 }

 for ( i = 0; i < items.length; i++ )
 {
 item = items[ i ];
 
 links = item.getElementsByTagName( 'a' );

 user = links[ 0 ]; name = user.firstChild.nodeValue;
 talk = links[ 1 ]; talk.firstChild.nodeValue = '&#9608;&#9608;&#9608;&#9608;'; // lowercase 'Talk' for consistency

 insertLoc = user.nextSibling; // ' newusers '

 item.insertBefore( document.createTextNode( ' ( ' ), insertLoc );

 item.insertBefore( talk, insertLoc );
 item.insertBefore( document.createTextNode( ', ' ), insertLoc );

 item.insertBefore( NewLink( 'blocks', '/w/index.php?title=Special%3ALog&type=block&page=User%3A' + name, true, '#002bb8' ), insertLoc );
 item.insertBefore( document.createTextNode( ', ' ), insertLoc );

 item.insertBefore( NewLink( '[report]', 'javascript:AIVandal("' + name + '")', true, 'red' ), insertLoc );
 item.insertBefore( document.createTextNode( ', ' ), insertLoc );

 item.insertBefore( NewLink( '[welcome]', '/w/index.php?title=User_talk:' + name + '&action=edit&section=new&welcome=1', true, 'green' ), insertLoc );

 item.insertBefore( document.createTextNode( ' )' ), insertLoc );

 item.removeChild( insertLoc.nextSibling ); // should remove the span
 item.removeChild( insertLoc ); // should remove ' newusers ' text
 }
}
if ( window.addEventListener ) window.addEventListener( 'load', NUPatrol, false );
else if ( window.attachEvent ) window.attachEvent( 'onload', NUPatrol );

//<nowiki> AIV tools
mw.loader.load('https://en.wikipedia.org/w/index.php?title=User:Lightdarkness/aiv.js' 
             + '&action=raw&ctype=text/javascript');

loadJS('User:Voice_of_All/Sleeper/monobook.js');