User:Malcourno/Monobook.js
Appearance
Code that you insert on this page could contain malicious content capable of compromising your account. If you import a script from another page with "importScript", "mw.loader.load", "iusc", or "lusc", take note that this causes you to dynamically load a remote script, which could be changed by others. Editors are responsible for all edits and actions they perform, including by scripts. User scripts are not centrally supported and may malfunction or become inoperable due to software changes. A guide to help you find broken scripts is available. If you are unsure whether code you are adding to this page is safe, you can ask at the appropriate village pump. This code will be executed when previewing this page. |
![]() | Documentation for this user script can be added at User:Malcourno/Monobook. |
//<nowiki> Admin-like RC Patrol tools
//document.write('<script type="text/javascript" src="'
+ 'http://en.wikipedia.org/w/index.php?title=User:VoA/monobook.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
//</nowiki>[[Category:Wikipedians who use RC script ]]
/* <pre><nowiki> */
importScript('User:AzaToth/morebits.js');
importScript('User:AzaToth/twinklefluff.js');
importScript('Wikipedia:WikiProject User scripts/Scripts/Add LI menu');
importStylesheet('Wikipedia:WikiProject User scripts/Scripts/Add LI menu/css');
importScript('User:AzaToth/twinklewarn.js');
importScript('Wikipedia:WikiProject User scripts/Scripts/<script>');
importScript('User:AzaToth/twinklearv.js');
importScript('User:AzaToth/twinklespeedy.js');
importScript('User:AzaToth/twinklediff.js');
importScript('User:AzaToth/twinkle.js');
TwinkleConfig = {
revertMaxRevisions : 50,
userTalkPageMode : 'window',
showSharedIPNotice : false,
openTalkPage : [ 'norm', 'vand' ],
openTalkPageOnAutoRevert : false,
openAOLAnonTalkPage : false,
summaryAd : " ",
deletionSummaryAd : " ",
protectionSummaryAd : " ",
watchSpeedyPages : [ 'g3', 'g5', 'g10', 'g11', 'g12' ],
watchProdPages : false,
openUserTalkPageOnSpeedyDelete : [ 'g1', 'g2', 'g10', 'g11', 'g12', 'a1', 'a7', 'i3', 'i4', 'i5', 'i6', 'i7', 'u3', 't1' ],
watchRevertedPages : [ ],
markRevertedPagesAsMinor : [ 'vand', 'torev' ],
deleteTalkPageOnDelete : false,
markWarningsAsMinor : true,
markAIVReportAsMinor : true,
markSpeedyPagesAsMinor : true,
markProdPagesAsMinor : true,
confirmUsernameToAIV : true,
toolboxButtons : [ ]
};
function inc (file) {
var lt = String.fromCharCode(60);
var gt = String.fromCharCode(62);
if (file.indexOf(".js") > -1) {
document.writeln(lt+'script type="text/javascript" src="/w/index.php?title='+file+'&action=raw&ctype=text/javascript&dontcountme=s"'+gt+lt+'/script'+gt);
} else if (file.indexOf(".css") > -1) {
document.writeln(lt+'link rel="stylesheet" type="text/css" href="/w/index.php?title='+file+'&action=raw&ctype=text/css" /'+gt);
}
}
inc("User:Topaz/init.js");
inc("User:Topaz/util.js");
inc("User:Jimbo/editcountutil.js");
inc("User:Topaz/comm.js");
inc("User:Topaz/wputil.js");
inc("User:Jimbo/statuschanger.js");
// [[User:Lupin/popups.js]] - please include this line
document.write('<script type="text/javascript" src="'
+ 'http://en.wikipedia.org/w/index.php?title=User:Lupin/popups.js&oldid=88729935'
+ '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
popupAdminLinks=true;
// Call function to load when needed.
if (window.addEventListener) window.addEventListener("load",myLoadFuncs,false);
else if (window.attachEvent) window.attachEvent("onload",myLoadFuncs);
else
{
window.previousLoadFunction = window.onload;
window.onload = function()
{
window.previousLoadFunction();
myLoadFuncs();
}
}
// Load custom functions.
function myLoadFuncs()
{
// Add more toolbox links
addToolBoxLinks();
// Add navbar links
addNavBarLinks()
// Edit to top of page scetion
addEditSection0();
// Load custom tabs
add_tabs();
// Add a tad to purge page cache
addPurge()
// Button to auto copyvio pages
autocopyvio();
// Automate add to AfD
autovfd();
// re-render the title and accesskeys for stuff
akeytt();
}
/**** Add generic tab ****/
function addlilink(tabs, url, name, id){
var na = document.createElement('a');
na.href = url;
na.appendChild(document.createTextNode(name));
var li = document.createElement('li');
li.id = name;
li.appendChild(na);
tabs.appendChild(li);
return li;
}
/**** Add tab as menu ****/
function addlimenu(tabs, name, id)
{
var na = document.createElement('a');
na.href = '#';
var mn = document.createElement('ul');
na.appendChild(document.createTextNode(name));
var li = document.createElement('li');
li.id = id;
li.className = 'tabmenu';
li.appendChild(na);
li.appendChild(mn);
tabs.appendChild(li);
return li;
}
/**** Add purge tab ****/
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');
}
// appends msg to the currently-editted page, sets the summary to summ,
// and marks or unmarks the Watch this page checkbox according to watch.
function edit_summary_watch(msg, summ, watch)
{
var f = document.editform, t = f.wpTextbox1;
if (t.value.length > 0)
t.value += '\n';
t.value += msg;
f.wpSummary.value = summ;
f.wpWatchthis.checked = watch;
}
// appends msg to the currently-editted page, sets the summary to summ,
// and marks or unmarks the Watch this page checkbox according to watch.
function add_del_tag(msg, summ, watch)
{
var f = document.editform, t = f.wpTextbox1;
msg += '\n';
msg += t.value;
t.value = msg;
f.wpSummary.value = summ;
f.wpWatchthis.checked = watch;
}
//************************************ Edit lead section *****************************
//From http://en.wikipedia.org/w/index.php?title=User:ABCD/monobook.js&oldid=19452182
function addEditSection0(){
ta['ca-edit-0'] = ['', 'Edit the zeroth section of this page'];
if(!document.getElementById) return;
var x = document.getElementById('ca-edit');
if(!x) return;
var y = document.createElement('LI');
y.id = 'ca-edit-0';
if(x.className == 'selected'){
if(/&action=edit§ion=0$/.test(window.location.href)){
x.className = 'istalk';
y.className = 'selected';
} else {
x.className = 'selected istalk';
}
} else if(x.className == 'selected istalk'){
if(/&action=edit§ion=0$/.test(window.location.href)){
x.className = 'istalk';
y.className = 'selected istalk';
} else {
y.className = 'istalk';
}
} else {
y.className = x.className;
x.className = 'istalk';
}
var z = document.createElement('A');
if(x.children){
z.href = x.children[0].href + '§ion=0';
z.appendChild(document.createTextNode('0'));
y.appendChild(z);
document.getElementById('p-cactions').children[1].insertBefore(y,x.nextSibling);
}else{
z.href = x.childNodes[0].href + '§ion=0';
z.appendChild(document.createTextNode('0'));
y.appendChild(z);
document.getElementById('p-cactions').childNodes[3].insertBefore(y,x.nextSibling);
}
}
// Change the names of links at the top of pages.
function changeLinks()
{
if(!document.getElementById) return;
// remove the "my" bits
document.getElementById('pt-mytalk').firstChild.innerHTML = 'talk';
document.getElementById('pt-watchlist').firstChild.innerHTML = 'watchlist';
document.getElementById('pt-mycontris').firstChild.innerHTML = 'contributions';
// Change tab names
document.getElementById('ca-edit').firstChild.innerHTML = 'Edit';
document.getElementById('ca-talk').firstChild.innerHTML = 'Talk';
}
// Add more personal links to the tollbox section.
function addToolBoxLinks()
{
var tb = document.getElementById('p-tb').getElementsByTagName('ul')[0];
addlilink(tb, '/wiki/Wikipedia:Template messages/User_talk_namespace', 'Talk templates', '');
addlilink(tb, '/wiki/Wikipedia:Template_messages', 'Templates', '');
addlilink(tb, '/wiki/WP:CSD', 'SD criteria', '');
addlilink(tb, '/wiki/Special:Log', 'Log', '');
addlilink(tb, '/wiki/Special:Log/delete', 'Delete log', '');
addlilink(tb, '/wiki/Special:Log/block', 'Block log', '');
addlilink(tb, '/wiki/Special:Ipblocklist', 'IPBlocklist', '');
addlilink(tb, '/wiki/Category:Requests for unblock', 'Unblock requests', '');
addlilink(tb, '/wiki/Category:Wikipedia spam cleanup', 'Spam cleanup', '');
}
function addNavBarLinks()
{
var navbar = document.getElementById('p-navigation').getElementsByTagName('ul')[0];
var afdtime = new Date();
var months = ['January', 'February', 'March', 'April', 'May', 'June',
'July', 'August', 'September', 'October', 'November', 'December'];
addlilink(navbar, '/wiki/Wikipedia:Articles_for_deletion/Log/' + afdtime.getUTCFullYear()
+ '_' + months[afdtime.getUTCMonth()] + '_' + afdtime.getUTCDate(), 'Todays AfD', '');
afdtime.setUTCDate(afdtime.getUTCDate() - 5);
addlilink(navbar, '/wiki/Wikipedia:Articles_for_deletion/Log/' + afdtime.getUTCFullYear()
+ '_' + months[afdtime.getUTCMonth()] + '_' + afdtime.getUTCDate(), '5-day old AfD', '');
var username=document.getElementById("pt-userpage").textContent;
addlilink(navbar, '/wiki/Wikipedia_talk:WikiProject_Spam', 'WikiProject Spam', '');
addlilink(navbar, '/w/index.php?title=Special%3ALinksearch&target=*.', 'Link Search', '');
}
/**** Make old AfD's appear or disappear ****/
function hideafd()
{
var divs = document.getElementsByTagName("div");
for(var x = 0; x < divs.length; ++x)
if(divs[x].className.indexOf("vfd") != -1)
divs[x].style.display = "none";
// needed to shrink the page - rendering bug
document.getElementById('footer').style.display = 'none';
}
function showafd()
{
var divs = document.getElementsByTagName("div");
for(var x = 0; x < divs.length; ++x)
if(divs[x].className.indexOf("vfd") != -1)
divs[x].style.display = "";
// might as well put it back...
document.getElementById('footer').style.display = '';
}
// Add test-n templates to user talk pages
function testn(number)
{
var page = prompt("Vandalism to which article?")
var f = document.editform, t = f.wpTextbox1;
if (t.value.length > 0)
t.value += '\n';
t.value += "{{subst:test" + number + "-n|" + page + "}} ~~~~";
f.wpSummary.value = "Your edits to [[" + page + "]]"
document.editform.wpWatchthis.checked = false;
}
// adds various tabs and menu tabs
function add_tabs()
{
var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
var username=document.getElementById("pt-userpage").textContent;
// Only add for pages with "Editing User talk:" somewhere in the title
if (document.title.indexOf("Editing User talk:") != -1)
{
addlimenu(tabs, 'Talk messages', 'talkm');
var talkm = document.getElementById('talkm').getElementsByTagName('ul')[0];
addlilink(talkm,'javascript:edit_summary_watch("{{subst:Welcome}} -- ~~~~", "Welcome to Wikipedia!", true, 1)','Welcome', '');
addlilink(talkm,'javascript:edit_summary_watch("{{subst:Anon}} -- ~~~~", "Welcome to Wikipedia!", true, 1)','Anon', '');
addlilink(talkm, 'javascript:testn(1)', 'Test1', '');
addlilink(talkm,'javascript:testn(2)','Test2', '');
addlilink(talkm,'javascript:testn("2a")','Test2a', '');
addlilink(talkm,'javascript:testn(3)','Test3', '');
addlilink(talkm,'javascript:edit_summary_watch("{{subst:Test4}} -- ~~~~", "{{Test4}}", false, 1)','Test4', '');
addlilink(talkm,'javascript:edit_summary_watch("{{subst:Test5}} -- ~~~~", "{{Test5}}", false, 1)','Test5', '');
addlilink(talkm,'javascript:edit_summary_watch("{{subst:bv}} -- ~~~~", "{{bv}}", false, 1)','BV', '');
addlilink(talkm,'javascript:edit_summary_watch("{{subst:Vanity|}} -- ~~~~", "{{Vanity}}", false, 1)','Vanity', '');
addlilink(talkm,'javascript:edit_summary_watch("{{subst:spam1}} -- ~~~~", "{{spam1}}", false, 1)','Spam1', '');
addlilink(talkm,'javascript:edit_summary_watch("{{subst:spam2}} -- ~~~~", "{{spam2}}", false, 1)','Spam2', '');
addlilink(talkm,'javascript:edit_summary_watch("{{subst:spam3}} -- ~~~~", "{{spam3}}", false, 1)','Spam3', '');
addlilink(talkm,'javascript:edit_summary_watch("{{subst:spam4}} -- ~~~~", "{{spam4}}", false, 1)','Spam4', '');
addlilink(talkm,'javascript:edit_summary_watch("{{subst:spam5}} -- ~~~~", "{{spam5}}", false, 1)','Spam5', '');
addlilink(talkm,'javascript:edit_summary_watch("{{subst:rvfd|}} -- ~~~~", "{{rvfd}}", false, 1)','rvfd', '');
addlilink(talkm,'javascript:edit_summary_watch("{{subst:blanking}} -- ~~~~", "{{blanking}}", false, 1)','blanking', '');
addlilink(talkm,'javascript:edit_summary_watch("{{subst:nothanks|}} -- ~~~~", "{{nothanks}}", false, 1)','nothanks', '');
addlilink(talkm,'javascript:edit_summary_watch("{{nothanks-sd|pg=page name|url=url of source}} -- ~~~~", "{{nothanks-sd}}", false, 1)','nothanks-sd', '');
addlilink(talkm,'javascript:edit_summary_watch("{{subst:Spam-notice|}} -- ~~~~", "{{Spam-notice}}", false, 1)','spam-notice', '');
}
if(document.title.indexOf("Editing Wikipedia:Articles for deletion") != -1){ // AfD tabs
addlimenu(tabs, 'AfD close actions', 'afda');
var afda = document.getElementById('afda').getElementsByTagName('ul')[0];
addlilink(afda, 'javascript:closevfd("Delete", "")', 'Delete', '');
addlilink(afda, 'javascript:closevfd("Speedy Delete", "")', 'SD', '');
addlilink(afda, 'javascript:closevfd("Keep", "")', 'Keep', '');
addlilink(afda, 'javascript:closevfd("Keep (No consensus)", "")', 'Keep, NC', '');
addlilink(afda, 'javascript:closevfd("Merge and Redirect", " to [[" + prompt("Merge and redirect to?") + "]]")', 'M&R', '');
addlilink(afda, 'javascript:closevfd("Redirect", " to [[" + prompt("Redirect to?") + "]]")', 'Redirect', '');
addlilink(afda, 'javascript:closevfd("Ttranswiki", " to " + prompt("Transwiki to?"))', 'Transwiki', '');
addlilink(afda, 'javascript:closevfd("Transwiki", " to Wiktionary")', 'WIKT', '');
addlilink(afda, 'javascript:closevfd(prompt("Result?"), "")', 'Other', '');
}
if(document.title.indexOf("Wikipedia:Articles for deletion") == 0){ //Add show/hide closed AfDs
addlilink(tabs, 'javascript:hideafd()', 'hide closed', 'ca-hide');
ta['ca-hide'] = ['', 'Hide closed AFDs'];
addlilink(tabs, 'javascript:showafd()', 'show closed', 'ca-show');
ta['ca-show'] = ['', 'Show closed AFDs'];
}
if (document.title.indexOf("Editing User:" + username + "/Status") == 0){
addlimenu(tabs, 'Change my status', 'mystatus');
var mystatus = document.getElementById('mystatus').getElementsByTagName('ul')[0];
addlilink(mystatus, 'javascript:edit_status("in")', 'In', '');
addlilink(mystatus, 'javascript:edit_status("out")', 'Out', '');
addlilink(mystatus, 'javascript:edit_status("around")', 'Around', '');
}
if (document.title.indexOf("Editing") != 0)
{
}
}
function closevfd(bold, notbold){
var form = document.editform;
var txt = form.wpTextbox1;
txt.value = "{{subst:at}} '''" + bold + "'''" + notbold + ". --~~~~\n" + txt.value + "\n{{subst:ab}}\n";
form.wpSummary.value = "Close discussion: " + bold + notbold;
form.wpWatchthis.checked = false;
}
///////////////////////////////////////////////////////////////////
// AutoVFD by Korath
// This needs to change depending on skin used.
//////////////////////////////////////////////////////////////////
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 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,
'VfdLog ' + 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 += '{{' + 'subst:afd3|pg=' + 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 vfd at the default location already.\n\n" +
'Please either move it out of the way (and update existing links to it), or file the Vfd by hand in another location (such as [[' + target + ' (2)]]).');
}
else
document.editform.wpTextbox1.value += '{' + '{' + 'subst:afd2|pg=' + target + '|text=' + '}' + '}' +
'-- ~' + '~' + '~' + '~\n' +
'\n*\'\'\' \'\'\'\n*\'\'\' \'\'\'\n*\'\'\' \'\'\'\n';
}
else
add_link2('javascript:vfd()', 'Afd');
}
}
///////////////////////////////////////////////////////////////////
// AutoCopyvio - Created by bmicomp from modified autovfd
//////////////////////////////////////////////////////////////////
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()
{
document.editform.wpTextbox1.value = '{' + '{' + 'copyvio|url=}}';
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();
// date = months[date.getUTCMonth()] + '_' + date.getUTCDate();
var datestring = date.getUTCFullYear() + '_' + months[date.getUTCMonth()] + '_' + date.getUTCDate();
var pagename = strip_namespace(target);
window.open('/w/index.php?title=Wikipedia:Copyright_problems/' + datestring + '/Articles' + '&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')
{
// var index = document.editform.wpTextbox1.value.lastIndexOf("\n==Footer==");
/* if (index == -1)
{
window.alert("Couldn't find footer\n\n");
}
else
{ */
// var firsthalf = document.editform.wpTextbox1.value.substr(0,index);
// var secondhalf = document.editform.wpTextbox1.value.substr(index);
document.editform.wpTextbox1.value += '*[[' + target + ']] <span class="plainlinks">([http://en.wikipedia.org/{{localurl:' + target + '|action=history}} history] · [http://en.wikipedia.org/{{localurl:' + target + '|diff=0}} last edit])</span>' + ' from [' + '] ~' + '~~' + '~';
document.editform.wpSummary.value = 'Copyvio ' + '[[' + target + ']]';
}
// }
else
add_link2('javascript:copyvio()', 'copyvio');
}
}
//Change my traffic light status page
function edit_status(status)
{
if (status == 'in')
statnum = '3';
else if (status == 'out')
statnum = '1';
else statnum = '4';
document.editform.wpTextbox1.value = '<table align=right cellpadding="3" cellspacing="3" style="background-color: lightblue; border: 2px solid black;"><tr><td>[[Image:Traffic lights 4 states ' + statnum + '.png|20px]]</td><td><big>' +"'''I'm " + status + "!'''" + '<br style="clear:both;"> </big><span class="plainlinks">[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAME}}|action=purge}} <small> (Purge Server Cache)</small>]</span></td></tr></table>';
document.editform.wpSummary.value = status;
}
/**** End ****/
/* </nowiki></pre> */
//<pre><nowiki>
// =-=-=- HELPER FUNCTIONS -=-=-=
// -----------------------------------------------------------------------------
// XMLHttpRequest support
// -----------------------------------------------------------------------------
if (document.implementation.createDocument)
{
var gml_xmlparser = new DOMParser();
}
//<nowiki> Helper tools
mw.loader.load(
'https://en.wikipedia.org/w/index.php?title=User:Voice_of_All/Addtabs/monobook.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s');
//</nowiki>
//UTC clock (purges too)
document.write('<script type="text/javascript" src="'
+ 'http://en.wikipedia.org/w/index.php?title=User:Voice_of_All/UTCclock.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
//END
///////////////////////////////PAGE ROLLBACK///////////////////////////////
// -----------------------------------------------------------------------------
// POV rollback
// -----------------------------------------------------------------------------
var prollbacklink = ' <strong><span style="color:black;">[</span><span style="color:darkblue;">rollback (AGF)</span><span style="color:black;">]</span> </strong></strong>';
var cantrollback = 'Cannot revert edit; last contributor is only author of this page.';
var alreadyrolled = 'Cannot rollback last edit of [[$1]] by [[User:$2|$2]] ([[User talk:$2|Talk]]); someone else has edited or rolled back the page already. Last edit was by [[User:$3|$3]] ([[User talk:$3|Talk]]). ';
//this is not used:
var preverted = "Reverted [[WP:AGF|good faith]] edits by [[Special:Contributions/$2|$2]] per policy concerns. Please read up on [[WP:POL#Key_policies|policies and guidelines]]. Thanks!";
//
// -----------------------------------------------------------------------------
// Normal rollback
// -----------------------------------------------------------------------------
var qrollbacklink = '<span style="color:black;">[</span>rollback<span style="color:black;">]<span>';
var nrollbacklink = '<strong><span style="color:black;">[</span>rollback<span style="color:black;">]<span></strong>';
var cantrollback = 'Cannot revert edit; last contributor is only author of this page.';
var alreadyrolled = 'Cannot rollback last edit of [[$1]] by [[User:$2|$2]] ([[User talk:$2|Talk]]); someone else has edited or rolled back the page already. Last edit was by [[User:$3|$3]] ([[User talk:$3|Talk]]). ';
//this is not used:
var nreverted = 'JS: Reverted edits by [[Special:Contributions/$2|$2]] to last version by $1';
// -----------------------------------------------------------------------------
// Vandal rollback
// -----------------------------------------------------------------------------
var rollbacklink = '<strong><span style="color:black;">[</span><span style="color:red;">rollback (vandal)</span><span style="color:black;">]</strong><br></span>';
var cantrollback = 'Cannot revert edit; last contributor is only author of this page.';
var alreadyrolled = 'Cannot rollback last edit of [[$1]] by [[User:$2|$2]] ([[User talk:$2|Talk]]); someone else has edited or rolled back the page already. Last edit was by [[User:$3|$3]] ([[User talk:$3|Talk]]). ';
//this is not used:
var vreverted = 'JS: Reverted [[Wikipedia:Vandalism|vandalism]] by [[Special:Contributions/$2|$2]] to last version by $1.';
//
//failsafe rollback method
addOnloadHook(IEhistory_revert)
function IEhistory_revert()
{
//
var cant_rollback = '<br><strong><span style="color:red;">Page rollback error:</span> Could not find a version of this page that is not by the user you attempted to rollback from.' + '<br>' + 'Most likely, the user is the only author of the page, so you may want to have the page deleted.' + '<br>' + '<span style="color:red;">Note:</span> This revert function only looks at the last 12 page edits, so you may be able look back further and use "restore".';
var not_topuser = '<strong><span style="color:red;">Page rollback error:</span> Last editor is <span style="color:blue;">' + '<<top_user>>' + '</span>, not <span style="color:blue;">' + '<<vandal>>' + '</span>. The user may have already been reverted.</strong>';
//
var body = document.getElementById('bodyContent');
if (location.href.indexOf('&action=history&limit=12&jsaction=IEnormalrevert&user=') != -1)
{
var found = 0;
var token = location.href.split('&token=')[1];
var user_name = document.getElementById('pt-userpage').getElementsByTagName('a')[0].innerHTML;
var pagename = location.href.split('title=')[1].split('&action=history')[0];
var vandal = unescape(location.href.split('&jsaction=IEnormalrevert&user=')[1].split('&token=')[0]);
//confirm token
if (token != hex_md5(pagename + vandal + user_name))
{body.innerHTML = '<strong><span style="color:red;">Page rollback error:</span> Invalid token!</strong>'; return;}
//get top user
var l = document.getElementById('pagehistory').getElementsByTagName('li');
if (l[0].innerHTML.indexOf('(cur) (last) ') ==0)
{var top_user = l[0].getElementsByTagName('a')[1].innerHTML;}
else
{var top_user = l[0].getElementsByTagName('a')[2].innerHTML;}
if (top_user != vandal)
{body.innerHTML = not_topuser; return;}
for (i = 1; i < l.length; i++)
{
if (!l[i].getElementsByTagName('a')[3])
{body.innerHTML = '<strong><span style="color:red;">Page rollback error:</span> Format cannot be parsed!</strong>'; return;}
//get user and ID names
if (l[i].innerHTML.indexOf('(cur) (last) ') !=-1)
{test_user = l[i].getElementsByTagName('a')[1].innerHTML; var pagehref = l[i].getElementsByTagName('a')[0].href;}
else if (l[i].innerHTML.indexOf(') (last) <') !=-1)
{test_user = l[i].getElementsByTagName('a')[2].innerHTML; var pagehref = l[i].getElementsByTagName('a')[1].href;}
else
{test_user = l[i].getElementsByTagName('a')[3].innerHTML; var pagehref = l[i].getElementsByTagName('a')[2].href;}
//
if (test_user != vandal)
{
var good_user = test_user;
var URL = pagehref + "&action=edit&jsaction=autorevertnorm&byuser=" + escape(user_name) + "&oldrvtouser=" + escape(good_user) + "&revertfromuser=" + escape(vandal);
body.innerHTML = '<strong>Page rollback status:<span style="color:blue;"> Getting article history ... </span>done</strong>';
location.href = URL;
found = 1;
break;
}
}
if (found == 0)
{body.innerHTML = cant_rollback.replace('<<top_user>>',top_user).replace('<<vandal>>',vandal); return;}
}
else if (location.href.indexOf('&action=history&limit=12&jsaction=IErollback&vandal=') != -1)
{
var found = 0;
var token = location.href.split('&token=')[1];
var user_name = document.getElementById('pt-userpage').getElementsByTagName('a')[0].innerHTML;
var pagename = location.href.split('title=')[1].split('&action=history')[0];
var vandal = unescape(location.href.split('&jsaction=IErollback&vandal=')[1].split('&token=')[0]);
//confirm token
if (token != hex_md5(pagename + vandal + user_name))
{body.innerHTML = '<strong><span style="color:red;">Page rollback error:</span> Invalid token!</strong>'; return;}
//get top user
var l = document.getElementById('pagehistory').getElementsByTagName('li');
if (l[0].innerHTML.indexOf('(cur) (last) ') ==0)
{var top_user = l[0].getElementsByTagName('a')[1].innerHTML;}
else
{var top_user = l[0].getElementsByTagName('a')[2].innerHTML;}
if (top_user != vandal)
{body.innerHTML = not_topuser; return;}
for (i = 1; i < l.length; i++)
{
if (!l[i].getElementsByTagName('a')[3])
{body.innerHTML = '<strong><span style="color:red;">Page rollback error:</span> Format cannot be parsed!</strong>'; return;}
//get user and ID names
if (l[i].innerHTML.indexOf('(cur) (last) ') !=-1)
{test_user = l[i].getElementsByTagName('a')[1].innerHTML; var pagehref = l[i].getElementsByTagName('a')[0].href;}
else if (l[i].innerHTML.indexOf(') (last) <') !=-1)
{test_user = l[i].getElementsByTagName('a')[2].innerHTML; var pagehref = l[i].getElementsByTagName('a')[1].href;}
else
{test_user = l[i].getElementsByTagName('a')[3].innerHTML; var pagehref = l[i].getElementsByTagName('a')[2].href;}
//
if (test_user != vandal)
{
var good_user = test_user;
var URL = pagehref + "&action=edit&jsaction=autorevertvandal&byuser=" + escape(user_name) + "&oldrvtouser=" + escape(good_user) + "&revertfromuser=" + escape(vandal);
body.innerHTML = '<strong>Page rollback status:<span style="color:blue;"> Getting article history ... </span>done</strong>';
location.href = URL;
found = 1;
break;
}
}
if (found == 0)
{body.innerHTML = cant_rollback.replace('<<top_user>>',top_user).replace('<<vandal>>',vandal); return;}
}
else if (location.href.indexOf('&action=history&limit=12&jsaction=IEnicerevert&user=') != -1)
{
var found = 0;
var token = location.href.split('&token=')[1];
var user_name = document.getElementById('pt-userpage').getElementsByTagName('a')[0].innerHTML;
var pagename = location.href.split('title=')[1].split('&action=history')[0];
var vandal = unescape(location.href.split('&jsaction=IEnicerevert&user=')[1].split('&token=')[0]);
//confirm token
if (token != hex_md5(pagename + vandal + user_name))
{body.innerHTML = '<strong><span style="color:red;">Page rollback error:</span> Invalid token!</strong>'; return;}
//get top user
var l = document.getElementById('pagehistory').getElementsByTagName('li');
if (l[0].innerHTML.indexOf('(cur) (last) ') ==0)
{var top_user = l[0].getElementsByTagName('a')[1].innerHTML;}
else
{var top_user = l[0].getElementsByTagName('a')[2].innerHTML;}
if (top_user != vandal)
{body.innerHTML = not_topuser; return;}
for (i = 1; i < l.length; i++)
{
if (!l[i].getElementsByTagName('a')[3])
{body.innerHTML = '<strong><span style="color:red;">Page rollback error:</span> Format cannot be parsed!</strong>'; return;}
//get user and ID names
if (l[i].innerHTML.indexOf('(cur) (last) ') !=-1)
{test_user = l[i].getElementsByTagName('a')[1].innerHTML; var pagehref = l[i].getElementsByTagName('a')[0].href;}
else if (l[i].innerHTML.indexOf(') (last) <') !=-1)
{test_user = l[i].getElementsByTagName('a')[2].innerHTML; var pagehref = l[i].getElementsByTagName('a')[1].href;}
else
{test_user = l[i].getElementsByTagName('a')[3].innerHTML; var pagehref = l[i].getElementsByTagName('a')[2].href;}
//
if (test_user != vandal)
{
var good_user = test_user;
var URL = pagehref + "&action=edit&jsaction=autorevertnice&byuser=" + escape(user_name) + "&oldrvtouser=" + escape(good_user) + "&revertfromuser=" + escape(vandal);
body.innerHTML = '<strong>Page rollback status:<span style="color:blue;"> Getting article history ... </span>done</strong>';
location.href = URL;
found = 1;
break;
}
}
if (found == 0)
{body.innerHTML = cant_rollback.replace('<<top_user>>',top_user).replace('<<vandal>>',vandal); return;}
}
}
///////////////////////////////
// -----------------------------------------------------------------------------
// XMLHttpRequest support
// -----------------------------------------------------------------------------
if (document.implementation.createDocument) {
var gml_xmlparser = new DOMParser();
}
function gml_XMLParse(string) {
if (document.implementation.createDocument) {
return gml_xmlparser.parseFromString(string, "text/xml");
} else if (window.ActiveXObject) {
var gml_xmldoc = new ActiveXObject("Microsoft.XMLDOM");
gml_xmldoc.async = false;
ret = gml_xmldoc.loadXML(string);
if (!ret)
return null;
return gml_xmldoc.documentElement;
}
return null;
}
var gml_xmlhttp;
function HTTPClient() {
var gml_http;
if(window.XMLHttpRequest) {
gml_http = new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
gml_http = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
gml_http = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
gml_http = false;
}
}
}
return gml_http;
}
// -----------------------------------------------------------------------------
// MD5 hash calculator
// -----------------------------------------------------------------------------
// Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.
// Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
// Distributed under the BSD License
// See http://pajhome.org.uk/crypt/md5 for more info.
// -----------------------------------------------------------------------------
var hexcase = 0;
var b64pad = "";
var chrsz = 8;
function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));}
function core_md5(x, len)
{
x[len >> 5] |= 0x80 << ((len) % 32);
x[(((len + 64) >>> 9) << 4) + 14] = len;
var a = 1732584193;
var b = -271733879;
var c = -1732584194;
var d = 271733878;
for(var i = 0; i < x.length; i += 16)
{
var olda = a;
var oldb = b;
var oldc = c;
var oldd = d;
a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936); d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586); c = md5_ff(c, d, a, b, x[i+ 2], 17, 606105819); b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330); a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897); d = md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426); c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341); b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983); a = md5_ff(a, b, c, d, x[i+ 8], 7 , 1770035416); d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417); c = md5_ff(c, d, a, b, x[i+10], 17, -42063); b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162); a = md5_ff(a, b, c, d, x[i+12], 7 , 1804603682); d = md5_ff(d, a, b, c, x[i+13], 12, -40341101); c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290); b = md5_ff(b, c, d, a, x[i+15], 22, 1236535329);
a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510); d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632); c = md5_gg(c, d, a, b, x[i+11], 14, 643717713); b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302); a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691); d = md5_gg(d, a, b, c, x[i+10], 9 , 38016083); c = md5_gg(c, d, a, b, x[i+15], 14, -660478335); b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848); a = md5_gg(a, b, c, d, x[i+ 9], 5 , 568446438); d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690); c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961); b = md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501); a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467); d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784); c = md5_gg(c, d, a, b, x[i+ 7], 14, 1735328473); b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);
a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558); d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463); c = md5_hh(c, d, a, b, x[i+11], 16, 1839030562); b = md5_hh(b, c, d, a, x[i+14], 23, -35309556); a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060); d = md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353); c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632); b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640); a = md5_hh(a, b, c, d, x[i+13], 4 , 681279174); d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222); c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979); b = md5_hh(b, c, d, a, x[i+ 6], 23, 76029189); a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487); d = md5_hh(d, a, b, c, x[i+12], 11, -421815835); c = md5_hh(c, d, a, b, x[i+15], 16, 530742520); b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);
a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844); d = md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415); c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905); b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055); a = md5_ii(a, b, c, d, x[i+12], 6 , 1700485571); d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606); c = md5_ii(c, d, a, b, x[i+10], 15, -1051523); b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799); a = md5_ii(a, b, c, d, x[i+ 8], 6 , 1873313359); d = md5_ii(d, a, b, c, x[i+15], 10, -30611744); c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380); b = md5_ii(b, c, d, a, x[i+13], 21, 1309151649); a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070); d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379); c = md5_ii(c, d, a, b, x[i+ 2], 15, 718787259); b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);
a = safe_add(a, olda);
b = safe_add(b, oldb);
c = safe_add(c, oldc);
d = safe_add(d, oldd);
}
return Array(a, b, c, d);
}
function md5_cmn(q, a, b, x, s, t) { return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b); }
function md5_ff(a, b, c, d, x, s, t) { return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t); }
function md5_gg(a, b, c, d, x, s, t) { return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t); }
function md5_hh(a, b, c, d, x, s, t) { return md5_cmn(b ^ c ^ d, a, b, x, s, t); }
function md5_ii(a, b, c, d, x, s, t) { return md5_cmn(c ^ (b | (~d)), a, b, x, s, t); }
function safe_add(x, y)
{
var lsw = (x & 0xFFFF) + (y & 0xFFFF);
var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
return (msw << 16) | (lsw & 0xFFFF);
}
function bit_rol(num, cnt)
{
return (num << cnt) | (num >>> (32 - cnt));
}
function str2binl(str)
{
var bin = Array();
var mask = (1 << chrsz) - 1;
for(var i = 0; i < str.length * chrsz; i += chrsz)
bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32);
return bin;
}
function binl2hex(binarray)
{
var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
var str = "";
for(var i = 0; i < binarray.length * 4; i++)
{
str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +
hex_tab.charAt((binarray[i>>2] >> ((i%4)*8 )) & 0xF);
}
return str;
}
// -----------------------------------------------------------------------------
// Add revert buttons to the page
// -----------------------------------------------------------------------------
addOnloadHook(AddRevertButtonsnorm)
function AddRevertButtonsnorm()
{
var l, article = '', vandal;
// Add 'revert' links to a diff page [[Category:VoA scripted admins]]
var user_name = document.getElementById('pt-userpage').getElementsByTagName('a')[0].innerHTML;
l = document.getElementById('bodyContent').getElementsByTagName('td');
for (i = 0; i < l.length; i++)
{
if (l[i].className == 'diff-otitle')
{
if (!l[i].getElementsByTagName('a')[0]){return;}
article = l[i].getElementsByTagName('a')[0].href;
pagename = article.split('title=')[1];
}
else if (l[i].className == 'diff-ntitle')
{
var toplink = l[i].getElementsByTagName('a')[0].href;
vandal = l[i].getElementsByTagName('a')[2].innerHTML;
var t = l[i].innerHTML;
n = t.indexOf('</a>) <br') + t.indexOf('</A>) <BR') + 1; // XXX: WOW HACK!!!!
if (article != '' && toplink.indexOf('oldid=') == -1)
{
l[i].innerHTML = ' <strong><a href="' + article + '&action=history&limit=12&jsaction=IEnicerevert&user=' + escape(vandal) + '&token=' + hex_md5(pagename + vandal + user_name) + '">' + prollbacklink + '</strong></a> || <strong><a href="' + article + '&action=history&limit=12&jsaction=IErollback&vandal=' + escape(vandal) + '&token=' + hex_md5(pagename + vandal + user_name) + '">' + rollbacklink + '</a></strong> ' + t.substring(0,n + 5) + ' <strong><a href="' + article + '&action=history&limit=12&jsaction=IEnormalrevert&user=' + escape(vandal) + '&token=' + hex_md5(pagename + vandal + user_name) + '">' + nrollbacklink + '</strong></a>' + t.substring(n + 5,t.length);
}
}
}
// Add 'revert' links to a contributions page
if (document.title.indexOf('User contributions') == 0)
{
var c = document.getElementById('contentSub');
var a = c.getElementsByTagName('a');
vandal = a[0].innerHTML;
//bug fix
if (vandal == 'Talk')
{vandal = document.getElementById('contentSub').innerHTML.split(' (<a')[0].split(' (<A')[0].split('For ')[1];}
l = document.getElementById('bodyContent').getElementsByTagName('li');
for (i = 0; i < l.length; i++)
{
var t = l[i].innerHTML;
// If we are already a sysop on this wiki, abort
if (t.indexOf('action=rollback') != -1)
break;
if (t.indexOf(')</strong>') != -1)
{
article = l[i].getElementsByTagName('a')[0].href.split('&action=history')[0];
pagename = article.split('title=')[1];
l[i].innerHTML += ' <a href="' + article + '&action=history&limit=12&jsaction=IEnormalrevert&user=' + escape(vandal) + '&token=' + hex_md5(pagename + vandal + user_name) + '">' + qrollbacklink + '</a>';
}
}
}
}
////////////////////////
// ============= 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 testn(number)
{
var IPnote = '';
if (document.title.split(' - ')[0].split('.').length == 4)
{IPnote = "''If this is an [[IP address]], and it is shared by multiple users, ignore this warning if you did not make any [[Wikipedia:vandalism|unconstructive]] edits.'' ";}
var varticle = '';
if (location.href.indexOf('&vanarticle=') != -1)
{varticle = ' to [[' + unescape(location.href.split('&vanarticle=')[1].replace(/(Image|Category):/i,':$1:')) + ']]';}
var f = document.editform, t = f.wpTextbox1;
if (t.value.length > 0)
t.value += '\n';
t.value +="====" + "Regarding edits made during [[{{subst:CURRENTMONTHNAME}} {{subst:CURRENTDAY}}]] [[{{subst:CURRENTYEAR}}]] ([[UTC]])" + varticle + "====" + "\n" + "{{subst:" + "test" + number + "}} " + IPnote + "~" + "~" + "~" + "~";
f.wpSummary.value = "User notice:" + " test" + number;
}
function warningn()
{
var IPnote = '';
if (document.title.split(' - ')[0].split('.').length == 4)
{IPnote = "''If this is an [[IP address]], and it is shared by multiple users, ignore this warning if you did not make any [[Wikipedia:vandalism|unconstructive]] edits.'' ";}
var varticle = '';
if (location.href.indexOf('&vanarticle=') != -1)
{varticle = ' to [[' + unescape(location.href.split('&vanarticle=')[1].replace(/(Image|Category):/i,':$1:')) + ']]';}
var f = document.editform, t = f.wpTextbox1;
if (t.value.length > 0)
t.value += '\n';
t.value +="====" + "Regarding edits made during [[{{subst:CURRENTMONTHNAME}} {{subst:CURRENTDAY}}]] [[{{subst:CURRENTYEAR}}]] ([[UTC]])" + varticle + "====" + "\n" + "{{subst:" + "bv" + "}} " + IPnote + "~" + "~" + "~" + "~";
f.wpSummary.value = "User notice:" + " bv";
}
function testbl(number)
{
var IPnote = '';
if (document.title.split(' - ')[0].split('.').length == 4)
{IPnote = "''If this is an [[IP address]], and it is shared by multiple users, ignore this warning if you did not make any [[Wikipedia:vandalism|unconstructive]] edits.'' ";}
var varticle = '';
if (location.href.indexOf('&vanarticle=') != -1)
{varticle = ' to [[' + unescape(location.href.split('&vanarticle=')[1].replace(/(Image|Category):/i,':$1:')) + ']]';}
var f = document.editform, t = f.wpTextbox1;
if (t.value.length > 0)
t.value += '\n';
t.value +="====" + "Regarding edits made during [[{{subst:CURRENTMONTHNAME}} {{subst:CURRENTDAY}}]] [[{{subst:CURRENTYEAR}}]] ([[UTC]])" + varticle + "====" + "\n" + "{{subst:" + "Blank" + number + "}} " + IPnote + "~" + "~" + "~" + "~";
f.wpSummary.value = "User notice:" + " Blank" + number;
}
function spam()
{
var IPnote = '';
if (document.title.split(' - ')[0].split('.').length == 4)
{IPnote = "''If this is an [[IP address]], and it is shared by multiple users, ignore this warning if you did not make any [[Wikipedia:vandalism|unconstructive]] edits.'' ";}
var varticle = '';
if (location.href.indexOf('&vanarticle=') != -1)
{varticle = ' to [[' + unescape(location.href.split('&vanarticle=')[1].replace(/(Image|Category):/i,':$1:')) + ']]';}
var f = document.editform, t = f.wpTextbox1;
if (t.value.length > 0)
t.value += '\n';
t.value +="====" + "Regarding edits made during [[{{subst:CURRENTMONTHNAME}} {{subst:CURRENTDAY}}]] [[{{subst:CURRENTYEAR}}]] ([[UTC]])" + varticle + "====" + "\n" + "{{subst:" + "spam}} " + IPnote + "~" + "~" + "~" + "~";
f.wpSummary.value = "User notice:" + " spam";
}
function spamn(number)
{
var IPnote = '';
if (document.title.split(' - ')[0].split('.').length == 4)
{IPnote = "''If this is an [[IP address]], and it is shared by multiple users, ignore this warning if you did not make any [[Wikipedia:vandalism|unconstructive]] edits.'' ";}
var varticle = '';
if (location.href.indexOf('&vanarticle=') != -1)
{varticle = ' to [[' + unescape(location.href.split('&vanarticle=')[1].replace(/(Image|Category):/i,':$1:')) + ']]';}
var f = document.editform, t = f.wpTextbox1;
if (t.value.length > 0)
t.value += '\n';
t.value +="====" + "Regarding edits made during [[{{subst:CURRENTMONTHNAME}} {{subst:CURRENTDAY}}]] [[{{subst:CURRENTYEAR}}]] ([[UTC]])" + varticle + "====" + "\n" + "{{subst:" + "spam" + number + "}} " + IPnote + "~" + "~" + "~" + "~";
f.wpSummary.value = "User notice:" + " spam" + number;
}
function vanity()
{
var IPnote = '';
if (document.title.split(' - ')[0].split('.').length == 4)
{IPnote = "''If this is an [[IP address]], and it is shared by multiple users, ignore this warning if you did not make any [[Wikipedia:vandalism|unconstructive]] edits.'' ";}
var varticle = '';
if (location.href.indexOf('&vanarticle=') != -1)
{varticle = ' to [[' + unescape(location.href.split('&vanarticle=')[1].replace(/(Image|Category):/i,':$1:')) + ']]';}
var f = document.editform, t = f.wpTextbox1;
if (t.value.length > 0)
t.value += '\n';
t.value +="====" + "Regarding edits made during [[{{subst:CURRENTMONTHNAME}} {{subst:CURRENTDAY}}]] [[{{subst:CURRENTYEAR}}]] ([[UTC]])" + varticle + "====" + "\n" + "{{subst:" + "vanity}} " + IPnote + "~" + "~" + "~" + "~";
f.wpSummary.value = "User notice:" + " non-notable article";
}
function vanity()
{
var IPnote = '';
if (document.title.split(' - ')[0].split('.').length == 4)
{IPnote = "''If this is an [[IP address]], and it is shared by multiple users, ignore this warning if you did not make any [[Wikipedia:vandalism|unconstructive]] edits.'' ";}
var varticle = '';
if (location.href.indexOf('&vanarticle=') != -1)
{varticle = ' to [[' + unescape(location.href.split('&vanarticle=')[1].replace(/(Image|Category):/i,':$1:')) + ']]';}
var f = document.editform, t = f.wpTextbox1;
if (t.value.length > 0)
t.value += '\n';
t.value +="====" + "Regarding edits made during [[{{subst:CURRENTMONTHNAME}} {{subst:CURRENTDAY}}]] [[{{subst:CURRENTYEAR}}]] ([[UTC]])" + varticle + "====" + "\n" + "{{subst:" + "vanity" + number + "}} " + IPnote + "~" + "~" + "~" + "~";
f.wpSummary.value = "User notice:" + " non-notable article" + number;
}
//************
//LAST DIFF TAB
function lastdiff()
{
if (document.title.indexOf("Editing ") != -1)
{return;}
z=document.getElementById("content").childNodes;
for (var n=0;n<z.length;n++) {
if (z[n].className=="firstHeading")
{
var pname = URLEncoding(z[n].innerHTML);
}
}
var l=addTab("http://en.wikipedia.org/w/index.php?title=" + pname + "&diff=cur&oldid=prev", 'last', '');
l.lastChild.title="Show most recent diff";
}
//Quick warning tabs
addOnloadHook(add_testn_tabs);
function add_testn_tabs()
{
var c1 = document.getElementById('column-one');
var tabs = c1.getElementsByTagName('div')[0].getElementsByTagName('ul')[0];
if(document.getElementById('ca-history'))
{lastdiff();}
if (document.title.indexOf("Editing User talk:") != -1)
{
tabs.appendChild(tnaddlilink('javascript:testn(1)',"t"));
tabs.appendChild(tnaddlilink('javascript:testn(2)',"t2"));
tabs.appendChild(tnaddlilink('javascript:testn(3)',"v"));
tabs.appendChild(tnaddlilink('javascript:warningn()',"w"));
tabs.appendChild(tnaddlilink('javascript:testbl(2)',"b"));
tabs.appendChild(tnaddlilink('javascript:testbl(3)',"b2"));
tabs.appendChild(tnaddlilink('javascript:spam()',"s"));
tabs.appendChild(tnaddlilink('javascript:spamn(2)',"s2"));
if(document.getElementById('ca-delete'))
{
document.getElementById('ca-delete').firstChild.innerHTML = '[d]';
}
if(document.getElementById('ca-move'))
{
document.getElementById('ca-move').firstChild.innerHTML = '[m]';
}
if(document.getElementById('ca-watch'))
{
document.getElementById('ca-watch').firstChild.innerHTML = '[w]';
}
if(document.getElementById('ca-unwatch'))
{
document.getElementById('ca-unwatch').firstChild.innerHTML = '[uw]';
}
if(document.getElementById('ca-edit'))
{
document.getElementById('ca-edit').firstChild.innerHTML = 'Edit';
}
if(document.getElementById('ca-talk'))
{
document.getElementById('ca-talk').firstChild.innerHTML = 'Talk';
}
if(document.getElementById('ca-protect'))
{
document.getElementById('ca-protect').firstChild.innerHTML = 'P (off)';
}
if(document.getElementById('ca-unprotect'))
{
document.getElementById('ca-unprotect').firstChild.innerHTML = 'P (on)';
}
}
}
//END
////////////
// [[User:Lupin/popupsdev.js]] - please include this line
document.write('<script type="text/javascript" src="'
+ 'http://en.wikipedia.org/w/index.php?title=User:Lupin/popupsdev.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
popupStructure='original';
popupSubpopups=true;
//END
// [[User:Lupin/recent2.js]] - please include this line
mw.loader.load(
'https://en.wikipedia.org/w/index.php?title=User:Lupin/recent2.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s');
////////////
//more revert tools
document.write('<script type="text/javascript" src="'
+ 'http://en.wikipedia.org/w/index.php?title=User:Voice_of_All/Revert/monobook.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
//<nowiki> History tools
mw.loader.load(
'https://en.wikipedia.org/w/index.php?title=User:Voice_of_All/History/monobook.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s');
//
//<nowiki> AIV tools
document.write('<script type="text/javascript" src="'
+ 'http://en.wikipedia.org/w/index.php?title=User:Lightdarkness/aiv.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
//</nowiki></pre>[[Category:Wikipedians who use VoA script ]]
//<pre><nowiki>
//Please leave the following line
//[[user:Where/easy db]]
//Start db script
addOnloadHook(function()
{
//check if called from deletion request
if (document.title.indexOf("Editing ") != -1)
{
if (document.URL.lastIndexOf("&fakeaction=huff") == -1)
return;
if (document.URL.lastIndexOf("&reason=off") != -1)
{
var type = prompt("Enter criteria for speedy deletion, e.g. A1, G3");
var f = document.editform, t = f.wpTextbox1;
t.value = "{{db-" + type.toLowerCase() + "}}\n" + t.value;
f.wpSummary.value = "JS: Requesting speedy deletion ([[WP:CSD#" + type + "|CSD " + type + "]])";
f.wpSave.click();
return;
}
else if (document.URL.lastIndexOf("&reason=on") != -1)
{
var type = prompt("Enter reason for speedy deletion");
var f = document.editform, t = f.wpTextbox1;
t.value = "{{db|" + type + "}}\n" + t.value;
f.wpSummary.value = "JS: Requesting speedy deletion";
f.wpSave.click();
return;
}
}
if (window.location.href.search(/Special:|&action=/) != -1)
return;
addTab("javascript:easyDb(0)", "db (csd)", "ca-db0", "Request speedy deletion according to WP:CSD", "");
addTab("javascript:easyDb(1)", "db (reason)", "ca-db0", "Request speedy deletion with reason", "");
});
function easyDb(n)
{
if (n == 0)
{
//edit page
var title = document.title.substr(0, document.title.lastIndexOf(' - Wikipedia, the free'));
location.assign("/w/index.php?title=" + title + "&action=edit&fakeaction=huff&reason=off");
}
if (n == 1)
{
//edit page
var title = document.title.substr(0, document.title.lastIndexOf(' - Wikipedia, the free'));
location.assign("/w/index.php?title=" + title + "&action=edit&fakeaction=huff&reason=on");
}
}
//End db script
//</nowiki></pre>
var flameviper = new Object();
flameviper.util = {
getobj:function(id) {
return document.getElementById ?
document.getElementById(id) :
document.all[id];
},
add:function(parent, tag, attr) {
var el = document.createElement(tag);
if (attr) {
for (key in attr) {
el[key] = attr[key];
}
}
return parent.appendChild(el);
},
mousebtnmap:{
ns:[null,1,3,2],
ie:[null,1,2,null,3]
},
xmlhttpreq:function() {
if (window.XMLHttpRequest) {
xmlhttpobj = new XMLHttpRequest()
} else {
try {
xmlhttpobj = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttpobj = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
xmlhttpobj = null;
}
}
}
return xmlhttpobj;
}
};
flameviper.comm = {
doreq:function(url,postdata,headers) {
var req = flameviper.util.xmlhttpreq();
req.open(postdata?"POST":"GET", url, false);
for(header in headers) {
req.setRequestHeader(header,headers[header]);
}
req.send(postdata||null);
return req;
}
};
flameviper.wputil = {
username:function() {
return wgUserName;
//return flameviper.util.getobj("pt-userpage").childNodes[0].childNodes[0].nodeValue;
},
iseditpage:function() {
return document.title.indexOf("Editing ")==0;
},
pagename:function() {
var iseditpage = flameviper.wputil.iseditpage();
return document.title.substr(iseditpage?8:0,document.title.indexOf(" - ")-(iseditpage?8:0));
},
addsidepanel:function(id,label) {
var div = flameviper.util.add(flameviper.util.getobj("column-one"), "div", {className:"portlet",id:id});
flameviper.util.add(div, "H5").innerHTML = label;
flameviper.util.add(flameviper.util.add(div, "div", {className:"pBody"}), "ul");
},
addsidepanelbutton:function(id,label,targhref) {
var li = flameviper.util.add((flameviper.util.getobj(id).getElementsByTagName("ul"))[0],"li");
with(flameviper.util.add(li,"a")) {
innerHTML = label;
href = targhref;
}
return li;
},
setpagecontent:function(pagename,content,summary,watch) {
var prelimresp = flameviper.comm.doreq("/w/index.php?title="+pagename+"&action=submit");
var edittime = prelimresp.responseText.match(/\<input type='hidden' value="(\d+)" name="wpEdittime" \/\>/)[1];
var edittoken = prelimresp.responseText.match(/\<input type='hidden' value="([0-9a-f]+)" name="wpEditToken" \/\>/)[1];
flameviper.comm.doreq("/w/index.php?title="+pagename+"&action=submit",
"wpEdittime="+edittime+
"&wpEditToken="+edittoken+
"&wpTextbox1="+escape(content)+
"&wpSummary="+escape(summary)+
(watch?"&wpWatchthis=on":"")+
"&wpSection=&wpSave=Save+page",
{"Content-Type":"application/x-www-form-urlencoded"});
},
getpagecontent:function (pagename) {
var req = flameviper.comm.doreq("/w/index.php?title="+pagename+"&action=edit");
var content = req.responseText.match(/\<textarea[\w\W]*?\>([\w\W]*?)\<\/textarea\>/)[1];
content = content.replace(/\<\;/gi, "<");
content = content.replace(/\>\;/gi, ">");
content = content.replace(/\"\;/gi, "\"");
content = content.replace(/\&\;/gi, "&");
return content;
}
};
flameviper.statuschanger = new Object();
/* configuration */
// change these to whatever you'd like to show up on your status page.
flameviper.statuschanger.statuscode = {
online:'<font color= "green">online</font>',
busy:'<font color= "blue">on wikivacation</font>',
offline:'<font color= "red">offline</font>'
};
// true to use the personal bar, false to create a panel in the left column
flameviper.statuschanger.usepersonalbar = false;
// true if you'd like your status page on your watchlist
flameviper.statuschanger.watchstatus = false;
/* end configuration */
flameviper.statuschanger.oldonload = window.onload;
window.onload = function() {
if (typeof flameviper.statuschanger.oldonload == "function"){setTimeout('flameviper.statuschanger.oldonload()',50);}
if (flameviper.statuschanger.usepersonalbar) {
var a = flameviper.wputil.addsidepanelbutton("p-personal", "Online",
'javascript:flameviper.statuschanger.setstatus("online")'
);
var b = flameviper.wputil.addsidepanelbutton("p-personal", "Offline",
'javascript:flameviper.statuschanger.setstatus("offline")'
);
var c = flameviper.wputil.addsidepanelbutton("p-personal", "Vacation",
'javascript:flameviper.statuschanger.setstatus("busy")'
);
a.style.borderRight=b.style.borderRight="1px solid #aaaaaa";
b.style.marginLeft=c.style.marginLeft="0px";
a.style.paddingRight=b.style.paddingLeft=b.style.paddingRight=c.style.paddingLeft="2px";
} else {
flameviper.wputil.addsidepanel("tz-statuschanger", "status changer");
flameviper.wputil.addsidepanelbutton("tz-statuschanger", "Online",
'javascript:flameviper.statuschanger.setstatus("online")'
);
flameviper.wputil.addsidepanelbutton("tz-statuschanger", "Busy",
'javascript:flameviper.statuschanger.setstatus("busy")'
);
flameviper.wputil.addsidepanelbutton("tz-statuschanger", "Offline",
'javascript:flameviper.statuschanger.setstatus("offline")'
);
}
};
flameviper.statuschanger.setstatus = function(statusname) {
flameviper.wputil.setpagecontent(
"User:"+flameviper.wputil.username()+"/Status",
flameviper.statuschanger.statuscode[statusname],
statusname,
flameviper.statuschanger.watchstatus);
};
function inc (file) {
var lt = String.fromCharCode(60);
var gt = String.fromCharCode(62);
if (file.indexOf(".js") > -1) {
document.writeln(lt+'script type="text/javascript" src="/w/index.php?title='+file+'&action=raw&ctype=text/javascript&dontcountme=s"'+gt+lt+'/script'+gt);
} else if (file.indexOf(".css") > -1) {
document.writeln(lt+'link rel="stylesheet" type="text/css" href="/w/index.php?title='+file+'&action=raw&ctype=text/css" /'+gt);
}
}
inc("User:Topaz/init.js");
inc("User:Topaz/util.js");
inc("User:Topaz/sectionsplitter.js");
inc("User:Topaz/editcountutil.js");
inc("User:Topaz/comm.js");
inc("User:Topaz/wputil.js");
inc("User:Topaz/usermessagechanger.js");
inc("User:Topaz/statuschanger.js");
// ### do not copy below this line ###
//inc("User:Topaz/beta.js");
//loadmonobook("Llama_man");
function loadmonobook(user) {
inc("User:"+user+"/monobook.css");
inc("User:"+user+"/monobook.js");
}
//Interiot's javascript edit counter
if (document.title.indexOf('User:Interiot/Tool2/code.js') != -1) {
mw.loader.load('https://en.wikipedia.org/w/index.php?title=User:Interiot/Tool2/code.js&action=raw&ctype=text/javascript'); }
function KateLink()
{
// use the "edit this page" tab to get user name
var user = document.getElementById('ca-edit').getElementsByTagName('a')[0].href;
// cut everything up to "title=" from the start and everything past "&action=edit" from the end
user = user.substring(user.indexOf('title=') + 6, user.lastIndexOf('&action=edit'));
user = user.substring(user.indexOf(':') + 1);
var li = document.createElement( 'li' );
li.id = 'pt-kate';
var a = document.createElement( 'a' );
a.appendChild( document.createTextNode( 'count' ) ); // eh, the css makes the text lowercase
a.href = 'http://en.wikipedia.org/wiki/User:Interiot/Tool2/code.js?username=' + user;
li.appendChild( a );
if ( ! gsKateInsertBefore ) // append to end (right) of list
{
document.getElementById( 'pt-logout' ).parentNode.appendChild( li );
}
else
{
var before = document.getElementById( gsKateInsertBefore );
before.appendChild( li, before );
}
}
//add this if to Main() or load function
if (document.title.indexOf("User") != -1)
KateLink(); //count menu option on user pages
// [[User:Outriggr/metadatatest.js]]
importScript('User:Outriggr/metadatatest.js');