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.
//


importScript('User:AzaToth/twinkle.js');

importScript('User:AzaToth/morebits.js');
importScript('User:Ioeth/friendlywelcome.js');
importScript('User:Ioeth/friendlyshared.js');
importScript('User:Ioeth/friendlytag.js');

importScript('User:Lupin/recent2.js');

importScript('User:TheDJ/Gadget-HotCat.js');

importscript('User:Ais523 non-admin/adminrights.js');

importscript('User:Bag²/easyvote.js');

importscript('User:MarkS/extraeditbuttons.js');

importscript('User:Ais523/stubtagtab.js');

<!--NEW FUNCTIONS-->
//COOKIE FUNCTIONS
function readCookie(name) {
        var nameEQ = name + "=";
        var ca = document.cookie.split(';');
        for(var i=0;i < ca.length;i++) {
                var c = ca[i];
                while (c.charAt(0)==' ') c = c.substring(1,c.length);
                if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
        }
        return null;
}

function createCookie(name,value,days) {
        if (days) {
                var date = new Date();
                date.setTime(date.getTime()+(days*24*60*60*1000));
                var expires = "; expires="+date.toGMTString();
        }
        else var expires = "";
        document.cookie = name+"="+value+expires+"; path=/";
}


function eraseCookie(name) {
        createCookie(name,"",-1);
}

//END

//    --- ADD VARIOUS LINKS ----
if(!addToolBoxLink) {
function addToolboxLink(url, name, id){
    var tb = document.getElementById('p-tb').getElementsByTagName('ul')[0];
    addlilink(tb, url, name, id);
}}
// 
if(!addTopLink) {
function addTopLink(url, name, id){
    var personal = document.getElementById('p-personal').getElementsByTagName('ul')[0];
    addlilink(personal, url, name, id);
}}
// 
if(!addNavLink) {
function addNavLink(url, name, id){
    var navigation = document.getElementById('p-navigation').getElementsByTagName('ul')[0];
    addlilink(navigation, url, name, id);
}}
// 
if(!addTab) {
function addTab(url, name, id, title, key){
    var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
    return addlilink(tabs, url, name, id, title, key);
}}

if(!addLink) {
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;
}}
if(!addlilink) {
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;
}}
function loadJS(s) {
    s = s.replace(/^\[\[/, '').replace(/\]\]$/, '').replace(" ", "_");
    document.write('<script type="text/javascript" src="'
             + 'http://en.wikipedia.org/w/index.php?title=' + s
             + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
}

function loadJSext(s) {
    document.write('<script type="text/javascript" src="'+ s + '"></script>');
}

function loadCSS(page){
  page=page.replace(" ", "_");
  document.write('<style type="text/css">@import "'+mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/index.php?title='+page+'&action=raw&ctype=text/css";</style>');
}
function loadCSSext(page){
  document.write('<style type="text/css">@import "'+page+'";</style>');
}


<!--Highlight Sysops in Watchlist/RC-->
if (wgPageName=="Special:Watchlist" || wgPageName == "Special:Recentchanges" || wgPageName=="Wikipedia" || wgPageName=="User_talk" || wgPageName="Talk") {
loadCSSext('http://wikipedia.georgemoney.com/index.php/adminlist.css');
}
//

//Check User:GeorgeMoney/UserScripts to see what helper functions this needs
$(function(){
var theuser = wgUserName.replace(' ', '_');
var divs = document.getElementsByTagName('div');
for (i=0; i<divs.length; i++) {
  if (divs[i].className == 'usermessage' && divs[i].innerHTML.indexOf(theuser) != -1) {
    if(readCookie('nmsalerted')  != 'yes') {
          divs[i].innerHTML = 
          '<input type="button" value="kill this bar" onclick="this.parentNode.style.display = \'none\';"> New Messages. <a href="/wiki/User_talk:'+theuser+'?diff=cur"><b>last change</b></a> → <a href="/wiki/User_talk:'+theuser+'">talk page</a>';
          document.title = wgPageName.replace(/\_/g, ' ')+' - NEW MESSAGES - wikipedia';
          alert('NEW MESSAGES');
          createCookie('nmsalerted', 'yes', 365);
     } else {
        divs[i].innerHTML = "";
        divs[i].style.display = "none";
        addTab('/wiki/User_talk:'+theuser+'?diff=cur', 'view new message', 'ca-nms', 'view msg', 'n');
     }
  } else if((divs[i].className == 'usermessage' && divs[i].innerHTML.indexOf(theuser) == -1)) {
     divs[i].style.display = "none";
  }
}

if(document.getElementById('bodyContent').innerHTML.indexOf('class=\"usermessage\"') == -1 && readCookie('nmsalerted') == 'yes') {
createCookie('nmsalerted', 'no', 365);
}

});

//END
//

if (window.location.href.indexOf('action=edit') != -1 && window.location.href.indexOf('remexamplejpg=1') != -1) {
  function RemoveExampleJpg() {
    document.getElementById('wpSummary').value = "Removing [[Image:Example.jpg]], '''bold text''', etc...";
        var contents = document.getElementById('wpTextbox1').value;
        var newcontents = contents.replace(/(\[http:\/\/www\.example\.com link title\]|== Headline text ==|<math>Insert formula here<\/math>|<nowiki>Insert non-formatted text here<\/nowiki>|#REDIRECT \[\[Insert text\]\]|'''Bold text'''|''Italic text''|\[\[(Media:Example\.ogg|Image:Example\.jpg|Link title)\]\]|#REDIRECT \[\[Insert text\]\]|<s>Strike-through text<\/s>|<sup>Superscript text<\/sup>|<sub>Subscript text<\/sub>|<small>Small Text<\/small>|<!-- Comment -->|<gallery>\s+Image:Example.jpg\|Caption1\s+Image:Example.jpg\|Caption2\s+<\/gallery>|<blockquote>\s+Block quote\s+<\/blockquote>|\{\| class="wikitable"\s+\|-\s+! header 1\s+! header 2\s+! header 3\s+\|-\s+\| row 1, cell 1\s+\| row 1, cell 2\s+\| row 1, cell 3\s+\|-\s+\| row 2, cell 1\s+\| row 2, cell 2\s+\| row 2, cell 3\s+\|\})/g, "");
        document.getElementById('wpTextbox1').value = newcontents;
        document.getElementById('wpWatchthis').checked = "";
    document.getElementById('wpDiff').click();
}
    addOnloadHook(function(){ RemoveExampleJpg(); });
}

if(wgCanonicalNamespace != "Special") {
  addOnloadHook(function(){ 
   var taburl = "http://en.wikipedia.org/w/index.php?title="+wgPageName+"&action=edit&remexamplejpg=1";
   addTab(taburl, "example.jpg", "ca-examplejpgfix", "This is to remove Image:Example.jpg from stuff"); 
  });
}

function openmypages() {
   window.open('http://en.wikipedia.org/wiki/Image:Example.jpg?action=purge#filelinks');
   window.open('http://en.wikipedia.org/wiki/Image:Example.ogg?action=purge#filelinks');
   window.open('http://en.wikipedia.org/w/index.php?action=purge&title=Special:Whatlinkshere&target=Link_title');
   window.open('http://en.wikipedia.org/w/index.php?action=purge&title=Special:Whatlinkshere&target=Insert_text');
}

if (window.location.href.indexOf('Special:Whatlinkshere&target=Link_title') != -1 || window.location.href.indexOf('Special:Whatlinkshere&target=Insert_text') != -1 || window.location.href.indexOf('Image:Example.jpg') != -1 || window.location.href.indexOf('Image:Example.ogg') != -1 || window.location.href.indexOf('Media:Example.ogg') != -1) {
   addOnloadHook(function(){ 
    var len=document.links.length;
    for(var i=0; i<len; ++i) {
        var l=document.links[i];
        if (l.className != 'new') {
            l.href=l.href+"?action=edit&remexamplejpg=1";
        }
    }
        });
}
//
//Load IP info. Written by GeorgeMoney using Wizardry Dragon's API
var data_ipinfo = new Object();
function ip_callback(data) {
        data_ipinfo = data;
}
try { 
        var ip_regex = /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/;
        if(ip_regex.test(wgTitle)
                ||ip_regex.test(location.href.split('/')[location.href.split('/').length - 1].split('?')[0])
                ||ip_regex.test(location.href.split('target=')[1].split('&')[0])
        ) {
                var ip_use = ip_regex.test(wgTitle)?wgTitle:location.href.replace(/^.*?(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}).*?$/, '$1');
                document.write('<script src="http://hemlock.knams.wikimedia.org/~wizardrydragon/lookup_hostmask.php?ip='+ip_use+'&format=json&lang='+wgContentLanguage+'&callback=ip_callback"></script>');
                document.write(
                '<style type="text/css">'+
                '.ip-info {'+
                'border: 3px solid red;'+
                'padding: 5px;'+
                'background: honeydew'+
                '}'+
                '.ip-info li {'+
                'margin-left: 2em;'+
                '}'+
                '</style>');
                addOnloadHook(function() {
                        var tbs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
                        addlilink(tbs, "javascript:/*void(load_ipinfo()); */void(get_ipinfo());", "ip info", 'ca-ipinfo', 'Get ip info');
                });
                function iterate_data(newdiv, dat) {
                        for(var x in dat) {
                                if(typeof dat[x] == 'object') {
                                        iterate_data(newdiv, dat[x]);
                                } else {
                                        newdiv.innerHTML += '<li><b>'+x+'</b>: '+dat[x]+'</li>\n';
                                }
                        }
                }
                function load_ipinfo() {
                        var script = document.createElement('script');
                        script.src = 'http://hemlock.knams.wikimedia.org/~wizardrydragon/lookup_hostmask.php?ip='+ip_use+'&format=json&lang='+wgContentLanguage+'&callback=ip_callback';
                        document.getElementsByTagName('head')[0].appendChild(script);
                }
                function get_ipinfo() {
                        var newdiv = document.createElement('div');
                        newdiv.className = 'ip-info';
                        newdiv.id = 'ip-info';
                        newdiv.innerHTML = 'IP info for '+ip_use+' <small>(retrieved from <a href="http://hemlock.knams.wikimedia.org/~wizardrydragon/lookup_hostmask.php?ip='+ip_use+'&lang='+wgContentLanguage+'">http://hemlock.knams.wikimedia.org/~wizardrydragon/lookup_hostmask.php?ip='+ip_use+'&lang='+wgContentLanguage+'</a></small>)<br>';
                        newdiv.innerHTML += '<ul>';
                        iterate_data(newdiv, data_ipinfo);
                        newdiv.innerHTML += '</ul>';
                        document.getElementById('content').insertBefore(newdiv, document.getElementById('content').getElementsByTagName('h1')[0].nextSibling);
                        document.getElementById('ca-ipinfo').firstChild.innerHTML = 'Collapse IP info';
                        document.getElementById('ca-ipinfo').firstChild.href = 'javascript:void(hide_ipinfo())';
                }
                function hide_ipinfo() {
                        document.getElementById('ca-ipinfo').firstChild.innerHTML = 'ip info';
                        document.getElementById('ca-ipinfo').firstChild.href = 'javascript:void(show_ipinfo())';
                        document.getElementById('ip-info').style.display = 'none';
                }
                function show_ipinfo() {
                        document.getElementById('ca-ipinfo').firstChild.innerHTML = 'Collapse IP info';
                        document.getElementById('ca-ipinfo').firstChild.href = 'javascript:void(hide_ipinfo())';
                        document.getElementById('ip-info').style.display = 'block';
                }
        }
} catch(e) {  }
//