User:The Evil Spartan/monobook.js

//

// gadgets prefs

wpUserName = 'The Evil Spartan'; // User name to display in signatures

wpShowImages = true; // Enable downloading and displaying of images

popupOnEditSelection=false;

popupSubpopups=true;

popupRevertSummaryPrompt=true;

popupImages=false;

popupPreviewFirstParOnly=false;

if (navigator.appName != "Microsoft Internet Explorer")

{

importScript("User:AzaToth/twinkle.js")

importScript("User:Ioeth/friendly.js");

}

importScript('User:The Evil Spartan/Personaltoolbox.js'); // Personal toolbox

//importScript('User:Cactus.man/Scripts/ChangeTitles.js'); // New personal menu & tab titles

importScript('User:Betacommand/Moretabs.js'); // Additional tabs for user & project pages

importScript('User:Betacommand/Scripts/ExtraEditButtons.js'); // Additional edit buttons

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

//Helper tools

importScript('User:Voice_of_All/Addtabs/monobook.js');

//History tools

importScript('User:Voice_of_All/History/monobook.js');

// Live Preview (User:Pilaf/Live Preview, )

importScript("User:Pilaf/livepreview.js");

// User:Henrik/afc-helper

if (wgTitle.indexOf("Articles for creation")>-1)

importScript('User:Henrik/js/afc-helper.js');

//admin only commented out

//importScript('User:GeorgeMoney/csd.js'); // CSD tools

//////////////////////////////////////////////////////////////////////////////////////

//MediaWiki:Gadget-modrollback.js

$(function() {

var ds = document.getElementsByTagName('td');

for(var i=0; i

var a = ds[i];

if(a.className == 'diff-ntitle') {

var fs = a.getElementsByTagName('a');

for(var j=0; j

var b = fs[j];

if(b.firstChild.data == 'rollback') {

var oldhref = ''+b.href;

var usr = unescape(b.href.split('from=')[1].split('&')[0]);

var cont = wgServer + '/wiki/' +

'Special:Contributions/'+usr;

b.href = 'javascript:void(0)';

b.onclick = function() {

var http = new XMLHttpRequest();

http.open('GET', oldhref, true);

http.setRequestHeader("Connection", "close");

http.send(null);

http.onreadystatechange= function() {

window.location.href = (cont);

}

}

}

}

}

}

});

///////////////////////////////////////////////////////////////////////////////////////

//MediaWiki:Gadget-UTCLiveClock.js

function liveClock()

{

liveClock.node = mw.util.addPortletLink( 'p-personal', mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/index.php?title=' + encodeURIComponent(mw.config.get('wgPageName')) + '&action=purge', '', 'utcdate' );

liveClock.node.style.fontSize = 'larger';

liveClock.node.style.fontWeight = 'bolder';

showTime();

}

$(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);

}

/////////////////////////////////////////////////////////////////////////////////

// Imported from User:Alex Smotrov/edittop.js, version as of: 2007-06-19T04:28:52

if ((wgAction == 'view' || wgAction == 'purge') && wgNamespaceNumber >=0)

addOnloadHook(function edittop_hook(){

var localtitles = {

en: 'Edit lead section',

fr: 'Modifier le résumé introductif',

it: 'Modifica della sezione iniziale',

ja: '導入部を編集'

};

var h2s = document.getElementsByTagName('H2');

var h2 = h2s[0];

if (!h2) return;

if (h2.parentNode.id == 'toctitle') h2 = h2s[1];

if (!h2) return;

var span = h2.firstChild;

if (!span || span.className != 'editsection') return;

var zero = span.cloneNode(true);

if (document.getElementById('featured-star')) zero.style.marginRight = '25px';

if (document.getElementById('spoken-icon')) zero.style.marginRight = '45px';

if (document.getElementById('protected-icon') && zero.style.marginRight) zero.style.marginRight = '70px';

var parent = document.getElementsByTagName('H1')[0];

parent.insertBefore(zero, parent.firstChild);

var a = zero.getElementsByTagName('A')[0];

if(localtitles[wgUserLanguage]) a.title = localtitles[wgUserLanguage];

// TODO check for content of header, to get a more precise replacement

else a.title = a.title.replace(/:.*$/,': 0');

a.setAttribute('href', a.href.replace(/§ion=1/,'§ion=0'));

})

////////////////////////////////////////////////////////////////////

//MediaWiki:Gadget-edittop.js

$(function() {

var tab = document.getElementById('ca-addsection');

if(!tab) return;

var tablink = tab.getElementsByTagName('a')[0];

if(!tablink) return;

tablink.firstChild.nodeValue = '+';

tablink.style.paddingLeft = ".4em";

tablink.style.paddingRight = ".4em";

});

// {{commons ok}} tagger

function commonsOK() {

document.editform.wpTextbox1.value += "\n{{commons ok}}";

document.editform.wpSummary.value = "{{commons ok}}";

document.editform.submit();

}

function addCommonsOK(){

if (document.editform && wgCanonicalNamespace == "Image") {

mw.util.addPortletLink("p-cactions", "javascript:commonsOK()", "{{commons ok}}", "");

}

}

$(addCommonsOK);

//Auto AFD script

//Please include the two following lines

//Modified version of AutoVFD script to work with AFD

//Script Modified by User:Jtkiefer

//Further modified to work with WP:AFDC by User:ais523

// This needs to change depending on skin used.

function add_link(url, name)

{

var na = document.createElement('a');

na.setAttribute('href', url);

na.appendChild(document.createTextNode(name));

var li = document.createElement('li');

li.appendChild(na);

var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];

tabs.appendChild(li);

}

function strip_namespace(target)

{

var colon = target.indexOf(':');

if (colon != -1)

{

var spaces = new Array('User', 'Wikipedia', 'Image', 'MediaWiki', 'Template', 'Help', 'Category');

var ns = target.substring(0, colon);

if (ns == '' || ns == 'Talk')

return target.substring(colon + 1);

else

for (var i = 0; i < spaces.length; ++i)

{

if (ns == spaces[i]

|| ns == spaces[i] + '_talk')

return target.substring(colon + 1);

}

}

return target;

}

//this helps automate AfD closing by adding a 'close' tab to AfD debates

//written by User:Johnleemk based on Wikipedia:WikiProject User scripts/Scripts/test-n.js by User:Celestianpower

function autoafd_result()

{

var close = prompt("Result of debate?")

var f = document.editform, t = f.wpTextbox1;

t.value = t.value.split('{{REMOVE THIS TEMPLATE WHEN CLOSING THIS AfD').join('{{ns:0');

t.value = "{{subst:" + "at" + "}} " + close + ". " + "~" + "~" + "~" + "~" + '\n' + '\n' + t.value;

if (t.value.length > 0)

t.value += '\n';

t.value += "{{subst:" + "ab" + "}}";

f.wpSummary.value = "Closing debate; result was " + close;

}

function autoafd_relist()

{

var f = document.editform, t = f.wpTextbox1;

if (t.value.length > 0)

t.value += '\n';

t.value += "{{subst:" + "relist" + "|~" + "~" + "~" + "~}}";

f.wpSummary.value = "Relisting debate";

}

function autoafd_keep()

{

var date = prompt("Nomination was made when?")

var votepage = prompt("Vote page is? (Enter 'd' for default.)")

var f = document.editform, t = f.wpTextbox1;

// If default votepage...

if (votepage=="d")

{

var temp = document.editform.action.split("/w/index.php?title=");

var temp = temp[1].split("&action=submit");

var temp = temp[0].substring(5);

var votepage = temp;

}

t.value = "{{" + "oldafdfull" + "|date=" + date + "|votepage=" + votepage + "}}" + '\n' + '\n' + t.value;

f.wpSummary.value = "Article survived AfD";

}

function autoafd_no_consensus()

{

var date = prompt("Nomination was made when?")

var votepage = prompt("Vote page is? (Enter 'd' for default.)")

var f = document.editform, t = f.wpTextbox1;

// If default votepage...

if (votepage=="d")

{

var temp = document.editform.action.split("/w/index.php?title=");

var temp = temp[1].split("&action=submit");

var temp = temp[0].substring(5);

var votepage = temp;

}

t.value = "{{" + "oldafdfull" + "|date=" + date + "|result=no consensus|votepage=" + votepage + "}}" + '\n' + '\n' + t.value;

f.wpSummary.value = "Article survived AfD with no consensus";

}

function autoafd_redirect()

{

var date = prompt("Nomination was made when?")

var redirect = prompt("Redirect to?")

var votepage = prompt("Vote page is? (Enter 'd' for default.)")

var f = document.editform, t = f.wpTextbox1;

// If default votepage...

if (votepage=="d")

{

var temp = document.editform.action.split("/w/index.php?title=");

var temp = temp[1].split("&action=submit");

var temp = temp[0].substring(5);

var votepage = temp;

}

t.value = "{{" + "oldafdfull" + "|date=" + date + "|result=redirect to " + redirect + "|votepage=" + votepage + "}}" + '\n' + '\n' + t.value;

f.wpSummary.value = "Article redirected to " + redirect + " as per AfD";

}

function autoafd_merge()

{

var date = prompt("Nomination was made when?")

var redirect = prompt("Merge and redirect to?")

var votepage = prompt("Vote page is? (Enter 'd' for default.)")

var f = document.editform, t = f.wpTextbox1;

// If default votepage...

if (votepage=="d")

{

var temp = document.editform.action.split("/w/index.php?title=");

var temp = temp[1].split("&action=submit");

var temp = temp[0].substring(5);

var votepage = temp;

}

t.value = "{{" + "oldafdfull" + "|date=" + date + "|result=merge and redirect to " + redirect + "|votepage=" + votepage + "}}" + '\n' + '\n' + t.value;

f.wpSummary.value = "Article merged and redirected to " + redirect + " as per AfD";

}

function autoafd_other()

{

var date = prompt("Nomination was made when?")

var result = prompt("Result was?")

var votepage = prompt("Vote page is? (Enter 'd' for default.)")

var f = document.editform, t = f.wpTextbox1;

// If default votepage...

if (votepage=="d")

{

var temp = document.editform.action.split("/w/index.php?title=");

var temp = temp[1].split("&action=submit");

var temp = temp[0].substring(5);

var votepage = temp;

}

t.value = "{{" + "oldafdfull" + "|date=" + date + "|result=" + result + "|votepage=" + votepage + "}}" + '\n' + '\n' + t.value;

f.wpSummary.value = "AfDed; result was " + result;

}

function autoafd_add_afd_tabs()

{

// Only add for pages with the right string somewhere in the title

if (document.title.indexOf("Editing Wikipedia:Articles for deletion/") != -1)

{

mw.util.addPortletLink('p-cactions', 'javascript:autoafd_result()', "close");

mw.util.addPortletLink('p-cactions', 'javascript:autoafd_relist()', "relist");

}

if (document.title.indexOf("Editing Talk:") != -1)

{

mw.util.addPortletLink('p-cactions', 'javascript:autoafd_keep()', "keep");

mw.util.addPortletLink('p-cactions', 'javascript:autoafd_no_consensus()', "no consensus");

mw.util.addPortletLink('p-cactions', 'javascript:autoafd_redirect()', "redirect");

mw.util.addPortletLink('p-cactions', 'javascript:autoafd_merge()', "merge");

mw.util.addPortletLink('p-cactions', 'javascript:autoafd_other()', "other");

}

}

$(autoafd_add_afd_tabs);

//end AfD closing script

//////////////////////////////////////////

function addSinceTab() {

if (window.location.href.indexOf("&action=history&gotosince=true")!=-1) {

do_since_I_last_edited()

}

else if (!/wiki\/Special:|w\/index.php?title=Special:/.test(window.location.href)) {

var thetitle=document.title.slice(0, String(document.title).indexOf(" - "));

var l=addLink('p-cactions', "/w/index.php?title="+thetitle+"&action=history&gotosince=true", 'since', 'ca-since', 'View diff from last edit by me', '', 'ca-history');

l.lastChild.title="Changes since I last edited";

}

}

function do_since_I_last_edited() {

var csub=document.getElementById("contentSub");

var msg=document.createElement("p");

msg.appendChild(document.createTextNode

("Parsing history... please wait..."));

msg.className="error";

csub.insertBefore(msg, csub.firstChild)

var username=document.getElementById("pt-userpage").textContent;

var hists=document.getElementById("pagehistory").childNodes;

for (n=0;n

if (hists[n].getElementsByTagName("span")[0].textContent==username) {

document.location=hists[n].childNodes[1].href;

return;

}

}

msg.replaceChild(document.createTextNode

("You have not edited this page! (recently)"),

msg.firstChild);

}

$(addSinceTab);

//////////////////////////////////////////

//

function JSlauncher()

{

if (location.href.indexOf('&JScript=') != -1)

{

var target = location.href.split('&JScript=')[1];

location.href = "javascript:" + target;

}

}

//

//////////////////////////////

//Autosumbits

function jssubmit()

{

var form = document.getElementById('bodyContent');

l = form.getElementsByTagName('input');

for (var i = 0; i < l.length; i++)

{

if (l[i].name == 'wpMinoredit')

{l[i].value = '1'; l[i].checked=true;}

}

var form = document.getElementById('bodyContent');

l = form.getElementsByTagName('input');

for (var i = 0; i < l.length; i++)

{

if (l[i].name == 'wpMinoredit')

{l[i].value = '1'; l[i].checked=true;}

}

var form = document.getElementById('editform');

form.submit();

}

//////////////////////////////

// include comfortable javascript editor by cacycle

// levels of undo (each level holds the whole text)

var undoBufferMax = 20;

// text and popup title of summary buttons

var summaryButtons = [

['Copyedit', 'Copyedit'],

['Linkfix', 'Linkfix'],

['Vandal', 'Reverting vandalism'],

['Format', 'Formatting source text'],

['NFCC','remove Non-free images, reverting these is considered copyright violation and you will be blocked'],

['Cap lists', 'Capitalizing (link) lists as per Wikipedia:List and Wikipedia:Manual_of_Style']

];

// background color of preview box

var previewBackground = '#ffffdd';

// loads the editor

importScript("User:Cacycle/editor.js");

// installs the editor and other tools after loading the page

window.onload = Main;

function Main() {

SetupEditor();

// othertools();

}

//

function tnbaddlilinkc(url, name)

{

var na = document.createElement('a');

na.setAttribute('href', url);

var txt = document.createTextNode(name);

na.appendChild(txt);

var li = document.createElement('li');

li.appendChild(na);

return li;

}

// Returns

  • name
  • function addlilinkt(url, name)

    {

    var na = document.createElement('a');

    na.setAttribute('href', url);

    var txt = document.createTextNode(name);

    na.appendChild(txt);

    var li = document.createElement('li');

    li.appendChild(na);

    return li;

    }

    // Adds a "blocklog" tab and fills in the username field on Special:Blockip, if a "&faketarget=username" is present.

    function do_blockip_stuff()

    {

    // Look for a &faketarget= for the username/ip

    var l = location.search.substring(1).split('&');

    var target = '';

    for (var i = 0; i < l.length; ++i)

    {

    var n = l[i].indexOf('=');

    if (l[i].substring(0, n) == 'faketarget')

    {

    target = l[i].substring(n + 1);

    break;

    }

    }

    if (target == '')

    return;

    // put account name in "IP Address/username" field

    var addr = document.getElementsByName('wpBlockAddress')[0];

    addr.value = unescape(target);

    // add "blocklog" tab

    var c1 = document.getElementById('column-one');

    var tabs = c1.getElementsByTagName('div')[0].getElementsByTagName('ul')[0];

    tabs.appendChild(addlilinkt('/w/index.php?title=Special%3ALog&type=block&user=&page=User%3A' + target, 'blocklog'));

    }

    // ==========logs link on toolbox =========

    $(function () {

    // get page title

    var pagetitleRe=/[^:]*:\/\/en\.wikipedia\.org\/(wiki\/|w\/index\.php\?title=)([^&?#]*)/;

    ptitle = pagetitleRe.exec(decodeURI(location.href))[2].split('_').join(' ');

    // if this is a user, show the logs for the user rather than the page

    if( (window.location.href.indexOf("User:") != -1) || (window.location.href.indexOf("User_talk:") != -1) ) {

    regDropSubpages = /[User|User_talk]:([^&?\/]*)[\/]?.*/;

    user = regDropSubpages.exec(ptitle)[1];

    url = "http://en.wikipedia.org/w/index.php?title=Special%3ALog&user=" + user;

    } else if(window.location.href.indexOf("Special:") != -1) {

    // don't display link for special pages

    return;

    } else {

    url = "http://en.wikipedia.org/w/index.php?title=Special%3ALog&page=" + ptitle;

    }

    tabs = document.getElementById('p-tb').getElementsByTagName('ul')[0];

    l = addlilink(tabs, url, "Logs", "pt-logs");

    });

    // ============ replace within edit dialog ==============

    function replace() {

    var s = prompt("Search regexp?");

    if(s) {

    var r = prompt("Replace regexp?");

    if(!r && r != '') return;

    var txt = document.editform.wpTextbox1;

    txt.value = txt.value.replace(new RegExp(s, "g"), r);

    }

    }

    /**/

    // AutoCopyvio - Adds copyright violation notice to article and adds entry to Copyright Problems page

    // Created by Bmicomp from modified AutoVFD(by Korath)

    function add_link2(url, name)

    {

    var na = document.createElement('a');

    na.setAttribute('href', url);

    na.appendChild(document.createTextNode(name));

    var li = document.createElement('li');

    li.appendChild(na);

    var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];

    tabs.appendChild(li);

    }

    function strip_namespace(target)

    {

    var colon = target.indexOf(':');

    if (colon != -1)

    {

    var spaces = new Array('User', 'Wikipedia', 'Image', 'MediaWiki', 'Template', 'Help', 'Category');

    var ns = target.substring(0, colon);

    if (ns == '' || ns == 'Talk')

    return target.substring(colon + 1);

    else

    for (var i = 0; i < spaces.length; ++i)

    {

    if (ns == spaces[i]

    || ns == spaces[i] + '_talk')

    return target.substring(colon + 1);

    }

    }

    return target;

    }

    function copyvio()

    {

    var website= prompt("What is the Website?");

    document.editform.wpTextbox1.value = '{' + '{' + 'copyvio|url= +website+ }}';

    document.editform.wpSummary.value = 'copyvio';

    var target = document.editform.action;

    target = target.substring(target.indexOf('title=') + 6,

    target.lastIndexOf('&action=submit'));

    var months = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');

    var date = new Date();

    var datestring = date.getUTCFullYear() + '_' + months[date.getUTCMonth()] + '_' + date.getUTCDate();

    var pagename = strip_namespace(target);

    window.open('/w/index.php?title=Wikipedia:Copyright_problems/' + datestring + '&action=edit&fakeaction=copyviolist&faketarget=' + pagename, 'status,toolbar,location,menubar,directories,resizeable,scrollbars');

    }

    function autocopyvio()

    {

    if (document.title.indexOf('Editing ') == 0)

    {

    var action = '';

    var target = '';

    if (location.search)

    {

    var l = location.search.substring(1).split('&');

    for (var i = 0; i < l.length; ++i)

    {

    var eq = l[i].indexOf('=');

    var name = l[i].substring(0, eq);

    if (name == 'fakeaction')

    action = l[i].substring(eq + 1);

    else if (name == 'faketarget')

    target = unescape(l[i].substring(eq + 1)).replace(/_/g, ' ');

    }

    }

    if (action == 'copyviolist')

    {

    document.editform.wpTextbox1.value += '*' + target + ' ([http://en.wikipedia.org/{{localurl:' + target + '|action=history}} history] · [http://en.wikipedia.org/{{localurl:' + target + '|diff=0}} last edit])' + ' from [' +website+ '] ~' + '~~' + '~';

    document.editform.wpSummary.value = 'Copyvio ' + '' + target + '';

    }

    else

    add_link2('javascript:copyvio()', 'copyvio');

    }

    }

    addOnloadHook(autocopyvio);

    /**/

    //Please leave the following line

    //user:Where/easy db

    //Start db script

    $(function() {

    if (document.title.indexOf("Editing ") != 0 && document.URL.search(/\?/) == -1) {

    addTab("javascript:easyDb(1)", "db|", "ca-db0", "db|", "");

    }

    });

    function easyDb(n) {

    var db;

    if (n == 0) {db="db-";}

    if (n == 1) {db="db|";}

    var type = prompt("What is X in Template:" + db + "X ?");

    document.location = document.URL + "?action=edit&autoedit=s/^/\n{{" + db + type + "}}\n/&autosummary=Tagged for speedy deletion&autoclick=wpSave";

    }

    //End db script

    //

    function inc (file) {

    var lt = String.fromCharCode(60);

    var gt = String.fromCharCode(62);

    document.writeln(lt+'script type="text/javascript" src="/w/index.php?title='+file+'&action=raw&ctype=text/javascript&dontcountme=s"'+gt+lt+'/script'+gt);

    }

    //

    //---------------------------------------------------------------

    //Google tools

    importScript('User:Voice_of_All/Google/monobook.js');

    //END

    //---------------------------------------------------------------

    //END

    //---------------------------------------------------------------

    // ============= test-n.js ==============

    function tnaddlilink(url, name)

    {

    var na = document.createElement('a');

    na.setAttribute('href', url);

    var txt = document.createTextNode(name);

    na.appendChild(txt);

    var li = document.createElement('li');

    li.appendChild(na);

    return li;

    }

    //

    //

    function add_link2(url, name)

    {

    var na = document.createElement('a');

    na.setAttribute('href', url);

    na.appendChild(document.createTextNode(name));

    var li = document.createElement('li');

    li.appendChild(na);

    var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];

    tabs.appendChild(li);

    }

    //END

    //---------------------------------------------------------------

    //Monobooks

    function monobkpg()

    {

    if (location.href.split("monobook.js")[1] != undefined)

    {

    if(document.getElementById('ca-nstab-main'))

    {

    document.getElementById('ca-nstab-main').firstChild.innerHTML = 'monobook';

    }

    else if(document.getElementById('ca-nstab-user'))

    {

    document.getElementById('ca-nstab-user').firstChild.innerHTML = 'monobook';

    }

    else if(document.getElementById('ca-nstab-mediawiki'))

    {

    document.getElementById('ca-nstab-mediawiki').firstChild.innerHTML = 'monobook';

    }

    }

    }

    //---------------------------------------------------------------

    //---------------------------------------------------------------

    //Toolbox links

    function changelinks() {

    if(!document.getElementById) return;

    document.getElementById('pt-mytalk').firstChild.innerHTML = 'Talk';

    document.getElementById('pt-preferences').firstChild.innerHTML = 'Preferences';

    document.getElementById('pt-watchlist').firstChild.innerHTML = 'Watchlist';

    document.getElementById('pt-mycontris').firstChild.innerHTML = 'Contributions';

    document.getElementById('pt-logout').firstChild.innerHTML = 'Log out';

    }

    function addtoolboxlinks() {

    var tb = document.getElementById('p-tb').getElementsByTagName('ul')[0];

    addlilink(tb, '/wiki/Special:Newpages', 'New pages', '');

    addlilink(tb, '/wiki/Category:Candidates_for_speedy_deletion', 'Speedy deletions', '');

    addlilink(tb, '/wiki/Wikipedia:Bots/Requests for approval', 'WP:B/RFA', '');

    addlilink(tb, '/wiki/Wikipedia:Bot_requests', 'Bot Request', '');

    addlilink(tb, '/wiki/WP:ABL', 'Admin backlog', '');

    addlilink(tb, '/wiki/WP:BACK', 'Backlog', '');

    }

    //END

    //Auto AFD Lister--------------

    // This needs to change depending on skin used.

    function add_link(url, name)

    {

    var na = document.createElement('a');

    na.setAttribute('href', url);

    na.appendChild(document.createTextNode(name));

    var li = document.createElement('li');

    li.appendChild(na);

    var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];

    tabs.appendChild(li);

    }

    function strip_namespace(target)

    {

    var colon = target.indexOf(':');

    if (colon != -1)

    {

    var spaces = new Array('User', 'Wikipedia', 'Image', 'MediaWiki', 'Template', 'Help', 'Category');

    var ns = target.substring(0, colon);

    if (ns == '' || ns == 'Talk')

    return target.substring(colon + 1);

    else

    for (var i = 0; i < spaces.length; ++i)

    {

    if (ns == spaces[i]

    || ns == spaces[i] + '_talk')

    return target.substring(colon + 1);

    }

    }

    return target;

    }

    function vfd()

    {

    document.editform.wpTextbox1.value = '{{' + 'subst:afd}}\n' + document.editform.wpTextbox1.value;

    document.editform.wpSummary.value = 'afd';

    var target = document.editform.action;

    target = target.substring(target.indexOf('title=') + 6,

    target.lastIndexOf('&action=submit'));

    var months = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');

    var date = new Date();

    date = date.getUTCFullYear() + '_' + months[date.getUTCMonth()] + '_' + date.getUTCDate();

    var pagename = strip_namespace(target);

    window.open('/w/index.php?title=Wikipedia:Articles_for_deletion/' + pagename + '&action=edit&fakeaction=vfdsub&faketarget=' + target,

    'Afd ' + unescape(target),

    'status,toolbar,location,menubar,directories,resizeable,scrollbars');

    window.open('/w/index.php?title=Wikipedia:Articles_for_deletion/Log/' + date + '&action=edit&fakeaction=vfdlist&faketarget=' + pagename,

    'AfdLog ' + unescape(target),

    'status,toolbar,location,menubar,directories,resizeable,scrollbars');

    }

    function autovfd()

    {

    if (document.title.indexOf('Editing ') == 0)

    {

    var action = '';

    var target = '';

    if (location.search)

    {

    var l = location.search.substring(1).split('&');

    for (var i = 0; i < l.length; ++i)

    {

    var eq = l[i].indexOf('=');

    var name = l[i].substring(0, eq);

    if (name == 'fakeaction')

    action = l[i].substring(eq + 1);

    else if (name == 'faketarget')

    target = unescape(l[i].substring(eq + 1)).replace(/_/g, ' ');

    }

    }

    if (action == 'vfdlist')

    {

    document.editform.wpTextbox1.value += '{{' + 'Wikipedia:Articles for deletion/' + target + '}}\n';

    document.editform.wpSummary.value = 'Wikipedia:Articles for deletion/' + target + '';

    }

    else if (action == 'vfdsub')

    {

    if (document.editform.wpTextbox1.value.length > 0)

    {

    target = document.editform.action;

    target = unescape(target.substring(target.indexOf('title=') + 6, target.lastIndexOf('&action=submit'))).replace(/_/g, ' ');

    window.alert("There's an old afd at the default location already.\n\n" +

    'Please either move it out of the way (and update existing links to it), or file the afd by hand in another location (such as ' + target + ' (2)).');

    }

    else

    document.editform.wpTextbox1.value += '===' + target + '===\n' +

    'Reason for nomination. ~~' + '~~\n*\n*\n*\n';

    }

    else

    ;

    }

    }

    if (window.addEventListener)

    window.addEventListener('load', autovfd, false);

    else if (window.attachEvent)

    window.attachEvent('onload', autovfd);

    //AFD Closer----------------

    //this helps automate AfD closing by adding a 'close' tab to AfD debates

    //written by User:Johnleemk based on Wikipedia:WikiProject User scripts/Scripts/test-n.js by User:Celestianpower

    function afdaddlilink(url, name)

    {

    var na = document.createElement('a');

    na.setAttribute('href', url);

    var txt = document.createTextNode(name);

    na.appendChild(txt);

    var li = document.createElement('li');

    li.appendChild(na);

    return li;

    }

    function result()

    {

    var close = prompt("Result of debate?")

    var f = document.editform, t = f.wpTextbox1;

    t.value = "{{subst:" + "at" + "}} " + close + ". " + "~" + "~" + "~" + "~" + '\n' + '\n' + t.value;

    if (t.value.length > 0)

    t.value += '\n';

    t.value += "{{subst:" + "ab" + "}}";

    f.wpSummary.value = "Closing debate; result was " + close;

    }

    function relist()

    {

    var f = document.editform, t = f.wpTextbox1;

    if (t.value.length > 0)

    t.value += '\n';

    t.value += "{{subst:" + "relist" + "|~" + "~" + "~" + "~}}";

    f.wpSummary.value = "Relisting debate";

    }

    function keep()

    {

    var date = prompt("Nomination was made when?")

    var votepage = prompt("Vote page is? (Enter 'd' for default.)")

    var f = document.editform, t = f.wpTextbox1;

    // If default votepage...

    if (votepage=="d")

    {

    var temp = document.editform.action.split("/w/index.php?title=");

    var temp = temp[1].split("&action=submit");

    var temp = temp[0].substring(5);

    var votepage = temp;

    }

    t.value = "{{subst:" + "oldafdfull" + "|date=" + date + "|votepage=" + votepage + "}}" + '\n' + '\n' + t.value;

    f.wpSummary.value = "Article survived AfD";

    }

    function no_consensus()

    {

    var date = prompt("Nomination was made when?")

    var votepage = prompt("Vote page is? (Enter 'd' for default.)")

    var f = document.editform, t = f.wpTextbox1;

    // If default votepage...

    if (votepage=="d")

    {

    var temp = document.editform.action.split("/w/index.php?title=");

    var temp = temp[1].split("&action=submit");

    var temp = temp[0].substring(5);

    var votepage = temp;

    }

    t.value = "{{subst:" + "oldafdfull" + "|date=" + date + "|result=no consensus|votepage=" + votepage + "}}" + '\n' + '\n' + t.value;

    f.wpSummary.value = "Article survived AfD with no consensus";

    }

    function redirect()

    {

    var date = prompt("Nomination was made when?")

    var redirect = prompt("Redirect to?")

    var votepage = prompt("Vote page is? (Enter 'd' for default.)")

    var f = document.editform, t = f.wpTextbox1;

    // If default votepage...

    if (votepage=="d")

    {

    var temp = document.editform.action.split("/w/index.php?title=");

    var temp = temp[1].split("&action=submit");

    var temp = temp[0].substring(5);

    var votepage = temp;

    }

    t.value = "{{subst:" + "oldafdfull" + "|date=" + date + "|result=redirect to " + redirect + "|votepage=" + votepage + "}}" + '\n' + '\n' + t.value;

    f.wpSummary.value = "Article redirected to " + redirect + " as per AfD";

    }

    function merge()

    {

    var date = prompt("Nomination was made when?")

    var redirect = prompt("Merge and redirect to?")

    var votepage = prompt("Vote page is? (Enter 'd' for default.)")

    var f = document.editform, t = f.wpTextbox1;

    // If default votepage...

    if (votepage=="d")

    {

    var temp = document.editform.action.split("/w/index.php?title=");

    var temp = temp[1].split("&action=submit");

    var temp = temp[0].substring(5);

    var votepage = temp;

    }

    t.value = "{{subst:" + "oldafdfull" + "|date=" + date + "|result=merge and redirect to " + redirect + "|votepage=" + votepage + "}}" + '\n' + '\n' + t.value;

    f.wpSummary.value = "Article merged and redirected to " + redirect + " as per AfD";

    }

    function other()

    {

    var date = prompt("Nomination was made when?")

    var result = prompt("Result was?")

    var votepage = prompt("Vote page is? (Enter 'd' for default.)")

    var f = document.editform, t = f.wpTextbox1;

    // If default votepage...

    if (votepage=="d")

    {

    var temp = document.editform.action.split("/w/index.php?title=");

    var temp = temp[1].split("&action=submit");

    var temp = temp[0].substring(5);

    var votepage = temp;

    }

    t.value = "{{subst:" + "oldafdfull" + "|date=" + date + "|result=" + result + "|votepage=" + votepage + "}}" + '\n' + '\n' + t.value;

    f.wpSummary.value = "AfDed; result was " + result;

    }

    function add_afd_tabs()

    {

    var c1 = document.getElementById('column-one');

    var tabs = c1.getElementsByTagName('div')[0].getElementsByTagName('ul')[0];

    // Only add for pages with the right string somewhere in the title

    if (document.title.indexOf("Editing Wikipedia:Articles for deletion/") != -1)

    {

    tabs.appendChild(afdaddlilink('javascript:result()',"close"));

    tabs.appendChild(afdaddlilink('javascript:relist()',"relist"));

    }

    if (document.title.indexOf("Editing Talk:") != -1)

    {

    tabs.appendChild(afdaddlilink('javascript:keep()',"Keep"));

    tabs.appendChild(afdaddlilink('javascript:no_consensus()',"No Consensus"));

    tabs.appendChild(afdaddlilink('javascript:redirect()',"Redirect"));

    tabs.appendChild(afdaddlilink('javascript:merge()',"Merge"));

    if(document.getElementById('ca-delete'))

    {

    document.getElementById('ca-delete').firstChild.innerHTML = 'Delete';

    }

    if(document.getElementById('ca-move'))

    {

    document.getElementById('ca-move').firstChild.innerHTML = 'Move';

    }

    if(document.getElementById('ca-watch'))

    {

    document.getElementById('ca-watch').firstChild.innerHTML = 'Watch';

    }

    if(document.getElementById('ca-unwatch'))

    {

    document.getElementById('ca-unwatch').firstChild.innerHTML = 'UnWatch';

    }

    }

    }

    //end AfD closing script

    // ======== USER TABS =======

    addOnloadHook(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("http://en.wikipedia.org/w/index.php?title=Special%3ALog&type=block&user=&page=User:" + username, "log", "ca-blog", "block log", "");

    addTab("http://tools.wikimedia.de/~interiot/cgi-bin/count_edits?dbname=enwiki_p&user=" + username, "info", "ca-kate", "user info", "");

    }

    });

    // ============= Purge ==============

    function addPurge()

    {

    ta['ca-purge'] = ['g', 'Purge the internal cache for this page'];

    if(!document.getElementById) return;

    var x = document.getElementById('ca-history');

    var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];

    if(!x) return;

    if(x.children) x = x.children[0];

    else x = x.childNodes[0];

    addlilink(tabs, x.href.replace(/=history/, "=purge"), 'purge', 'ca-purge');

    }

    // ============= tnaddlilink ==============

    function tnaddlilink(url, name)

    {

    var na = document.createElement('a');

    na.setAttribute('href', url);

    var txt = document.createTextNode(name);

    na.appendChild(txt);

    var li = document.createElement('li');

    li.appendChild(na);

    return li;

    }

    function add_testn_tabsb()

    {

    var c1 = document.getElementById('column-one');

    var tabs = c1.getElementsByTagName('div')[0].getElementsByTagName('ul')[0];

    }

    //************

    //LAST DIFF TAB

    function lastdiff()

    {

    z=document.getElementById("content").childNodes;

    for (var n=0;n

    if (z[n].className=="firstHeading") {

    var pname=z[n].textContent;

    }

    }

    var l=addTab("http://en.wikipedia.org/w/index.php?title=" + pname + "&diff=cur&oldid=prev", 'last', '');

    l.lastChild.title="Show most recent diff";

    }

    //************

    //Editing options

    //************

    //Toolbar links

    function InsertButtonsToToolBar()

    {

    tooly = document.getElementById('toolbar');

    if (tooly != null)

    {

    StrikeTextButton = "','','Insert text here');\">\"Strike\"";

    LeftTexttButton = "\\n','\\n

    ','Left-aligned text');\">\"Left-align\"";

    CenterTextButton = "','

    ','Centered text');\">\"Centered\"";

    TableButton = "border="1" \\n\\n| 12\\n\\n| 34','\\n\\n','');\">\"Table\"";

    EenterButton = "',,);\">\"Break\"";

    UpperTextButton = "','','Superscript');\">\"Superscript\"";

    LowerTextlButton = "','','Subscript');\">\"Subscript\"";

    SmallTextButton = "','','Small text');\">\"Small\"";

    CommentButton = "','Comment here');\">";

    GalleryButton = "\\n','\\n','Image:FileName.jpg|Caption1\\Image:FileName2.jpg|Caption2');\">\"Gallery\"";

    SecondaryHeadlineButton = "\"2nd";

    ShiftingButton = "\"Tab\"";

    BlockQuoteButton = "\\n','\\n','Block quote');\">\"Block";

    FontColorButton = "','','Span of text');\">\"Color\"";

    CodeButton = "','','Code');\">\"Code\"";

    SubLinkButton = "Page#','','Sub_page');\">\"sub-page";

    DefinitionListCodeButton = "\"Definition\"";

    tooly.innerHTML = tooly.innerHTML + StrikeTextButton + LeftTexttButton + CenterTextButton + TableButton + EenterButton + UpperTextButton + LowerTextlButton + SmallTextButton + CommentButton + GalleryButton + SecondaryHeadlineButton + ShiftingButton + BlockQuoteButton + FontColorButton + CodeButton + SubLinkButton + DefinitionListCodeButton;

    }

    }

    //END

    //************

    //************

    //************

    //Lupin's tools

    //************

    // Filter changes live Category:VoA scripted admins

    // User:Lupin/recent2.js - please include this line

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

    //END

    //************

    //Purge tab

    function addpurgel()

    {

    if (document.title.indexOf("Editing ") != -1)

    {

    return;

    }

    else

    {

    if (document.title.indexOf("Wikipedia:") != -1)

    {

    if (location.href.indexOf("&action=history") == -1)

    {addPurge();}

    }

    if (document.title.indexOf("User:") != -1)

    {

    addPurge();

    }

    if (document.title.indexOf("Category:") != -1)

    {

    addPurge();

    }

    }

    }

    //END

    //Category:Wikipedians who use VoA script

    //VoA Revert functions

    //

    ////////////////////////////////////////////////////////////////

    //Edit and "revert to" JS

    //addOnloadHook(adddifflinks)

    function adddifflinks()

    {

    var editlink = '[edit this version] ';

    var rvname = ' [restore this revision]
    ';

    var user_name = document.getElementById('pt-userpage').getElementsByTagName('a')[0].innerHTML;

    if (location.href.indexOf('diff=') != -1 && location.href.indexOf('&oldid=') != -1)

    {

    var doctd = document.getElementById('bodyContent').getElementsByTagName('td');

    var good_user = doctd[0].getElementsByTagName('a')[2].innerHTML;

    var link = doctd[0].getElementsByTagName('a')[0].href.replace('&','&') + "&action=edit";

    var rvlink = doctd[0].getElementsByTagName('a')[0].href.replace('&','&') + "&action=edit&fakeaction=autorevert&byuser=" + escape(user_name) + "&oldrvtouser=" + escape(good_user);

    document.getElementById('bodyContent').getElementsByTagName('td')[0].innerHTML = '' + rvname + '' + document.getElementById('bodyContent').getElementsByTagName('td')[0].innerHTML;

    }

    }

    //END

    $(IEhistory_revert)

    function IEhistory_revert()

    {

    if (location.href.indexOf('&action=history&limit=8&fakeaction=IEnormalrevert&user=') != -1)

    {

    var found = 0;

    var user_name = document.getElementById('pt-userpage').getElementsByTagName('a')[0].innerHTML;

    if (unescape(location.href.split('&byuser=')[1]) != user_name){alert('Invalid user match'); return;}

    var vandal = unescape(location.href.split('&fakeaction=IEnormalrevert&user=')[1].split('&byuser=')[0]);

    var l = document.getElementsByTagName('li');

    if (l[0].getElementsByTagName('a')[2].innerHTML != vandal)

    {alert('Could not rollback. Last contributor has changed.'); return;}

    for (i = 1; i < l.length; i++)

    {

    if (!l[i].getElementsByTagName('a')[3]){alert('Could not find a version of this page that is not by the user you attempted to rollback from.' + '\n' + 'Most likely, the user is the only author of the page.' + '\n' + 'This revert function only looks at the last 6 page edits, so you may want to look back further and use "restore".'); history.go(-1); return;}

    if (l[i].getElementsByTagName('a')[3].innerHTML != vandal)

    {

    var good_user = l[i].getElementsByTagName('a')[3].innerHTML;

    var URL = l[i].getElementsByTagName('a')[2].href + "&action=edit&fakeaction=autorevert&byuser=" + escape(user_name) + "&oldrvtouser=" + escape(good_user) + "&revertfromuser=" + escape(vandal);

    location.href = URL;

    found = 1;

    break;

    }

    }

    if (found == 0)

    {alert('Could not find a version of this page that is not by the user you attempted to rollback from.' + '\n' + 'Most likely, the user is the only author of the page.' + '\n' + 'This revert function only looks at the last 6 page edits, so you may want to look back further and use "restore".'); history.go(-1);}

    }

    if (location.href.indexOf('&action=history&limit=8&fakeaction=IErollback&vandal=') != -1)

    {

    var found = 0;

    var user_name = document.getElementById('pt-userpage').getElementsByTagName('a')[0].innerHTML;

    if (unescape(location.href.split('&byuser=')[1]) != user_name){alert('Invalid user match'); return;}

    var vandal = unescape(location.href.split('&fakeaction=IErollback&vandal=')[1].split('&byuser=')[0]);

    var l = document.getElementsByTagName('li');

    if (l[0].getElementsByTagName('a')[2].innerHTML != vandal)

    {alert('Could not rollback vandal. Last contributor has changed.'); return;}

    for (i = 1; i < l.length; i++)

    {

    if (!l[i].getElementsByTagName('a')[3]){alert('Could not find a version of this page that is not by the user you attempted to rollback from.' + '\n' + 'Most likely, the user is the only author of the page.' + '\n' + 'This revert function only looks at the last 6 page edits, so you may want to look back further and use "restore".'); history.go(-1); return;}

    if (l[i].getElementsByTagName('a')[3].innerHTML != vandal)

    {

    var good_user = l[i].getElementsByTagName('a')[3].innerHTML;

    var URL = l[i].getElementsByTagName('a')[2].href + "&action=edit&fakeaction=autorevertvandal&byuser=" + escape(user_name) + "&oldrvtouser=" + escape(good_user) + "&revertfromuser=" + escape(vandal);

    location.href = URL;

    found = 1;

    break;

    }

    }

    if (found == 0)

    {alert('Could not find a version of this page that is not by the user you attempted to rollback from.' + '\n' + 'Most likely, the user is the only author of the page.' + '\n' + 'This revert function only looks at the last 6 page edits, so you may want to look back further and use "restore".'); history.go(-1);}

    }

    }

    //END

    function autosave()

    {

    user_name = escape(document.getElementById('pt-userpage').getElementsByTagName('a')[0].innerHTML);

    if (location.href.indexOf("&fakeaction=autorevert&byuser=" + user_name) != -1 || location.href.indexOf("&fakeaction=autorevertvandal&byuser=" + user_name) != -1)

    {

    if (location.href.indexOf('&revertfromuser') == -1 && location.href.indexOf('&fakeaction=autorevertvandal') == -1)

    {

    var return_value = true;

    if (return_value != true){history.go(-1); return;}

    }

    var good_user = unescape(location.href.split("&oldrvtouser=")[1].split('&revertfromuser=')[0]);

    var ID = location.href.split("&oldid=")[1].split("&action=edit")[0];

    form = document.getElementById('bodyContent');

    l = form.getElementsByTagName('input');

    for (i = 0; i < l.length; i++)

    {

    if (l[i].name == 'wpMinoredit')

    {l[i].value = '1'; l[i].checked=true;}

    }

    if (location.href.indexOf('&fakeaction=autorevertvandal') != -1)

    {

    var artname = document.title.split('Editing ')[1].split(' - ')[0];

    var vandal = unescape(location.href.split('&revertfromuser=')[1]);

    document.editform.wpSummary.value += 'Reverted vandalism by ' + vandal + ' to last version by ' + good_user + '.';

    var form = document.getElementById('editform');

    window.open('http://en.wikipedia.org/w/index.php?title=User talk:' + vandal + '&action=edit' + '&action=edit&vanarticle=' + artname,

    'targetname',

    'location=no,toolbar=no,status=no,directories=no,scrollbars=yes,width=1024,height=768');

    form.submit();

    }

    else if (location.href.indexOf('&revertfromuser=') != -1)

    {

    var vandal = unescape(location.href.split('&revertfromuser=')[1]);

    document.editform.wpSummary.value += 'Reverted edits by ' + vandal + ' to last version by ' + good_user + '.';

    var form = document.getElementById('editform');

    form.submit();

    }

    else

    {

    document.editform.wpSummary.value += 'Revert to revision ' + ID + ' by ' + good_user + '.';

    var form = document.getElementById('editform');

    form.submit();

    }

    }

    }

    //END

    //Revert options

    $(NArevertfunctions)

    function NArevertfunctions()

    {

    adddifflinks();

    autosave();

    }

    $(function (){

    if(queryString("submitdelete")=="true") document.forms[0].wpConfirmB.click();

    });

    function queryString(p) {

    var re = RegExp('[&?]' + p + '=([^&]*)');

    var matches;

    if (matches = re.exec(document.location)) {

    try {

    return decodeURI(matches[1]);

    } catch (e) {

    }

    }

    return null;

    };

    // Admin rollback tools {{PAGENAME}}

    importScript("User:Voice_of_All/Specialadmin/monobook.js");

    //

    $(Dfn_js_con)

    function Dfn_js_con()

    {

    //moves

    Mvaluejs_class = 'yes';

    //edits

    Rvaluejs_class = 'yes';

    //uploads

    Uvaluejs_class = 'yes';

    }

    //

    /////