/* <pre><nowiki> */
/**
* Monobook scripts by Alphax and others
* Original location: [[User:Alphax/monobook.js]]
* Forked from [[User:ABCD/monobook.js]] around April 2005
* Some material from [[User:JesseW/monobook.js]]
* Other scripts from [[WP:US]]
* Dual licensed under the GFDL and GPL
*/
/**** Add Godmode-lite ****/
// this one breaks popups
// document.write('<SCRIPT SRC="http://sam.zoy.org/wikipedia/godmode-light.js"><\/SCRIPT>');
// and this one is dead as well...
// document.write('<SCRIPT SRC="http://share.zopatista.com/WikiPedia/godmode-light.js"><\/SCRIPT>');
/**** Add navigation popups ****/
// [[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&action=raw&ctype=text/javascript&dontcountme=s"><\/script>');
// customisations = see [[Wikipedia:Tools/Navigation popups]] for more
popupFixRedirs = true;
popupRedirAutoClick = 'wpPreview';
popupFixDabs = true;
popupStructure = 'menus';
/**** Live RC filter ****/
// [[User:Lupin/recent2.js]] - please include this line
document.write('<script type="text/javascript" src="http://en.wikipedia.org/w/index.php?title=User:Lupin/recent2.js&action=raw&ctype=text/javascript&dontcountme=s"><\/script>');
/**** afd helper ****/
// From [[User:Jnothman/afd_helper/script.js]]
document.write('<script type="text/javascript" src="http://en.wikipedia.org/w/index.php?title=User:Jnothman/afd_helper/script.js&action=raw&ctype=text/javascript&dontcountme=s"><\/script>');
/**** Interiot's javascript edit counter ****/
if (document.title.indexOf('User:Interiot/Tool2/code.js') != -1) {
document.write('<script type="text/javascript" src="http://en.wikipedia.org/w/index.php?title=User:Interiot/Tool2/code.js&action=raw&ctype=text/javascript&dontcountme=s"><\/script>'); }
/**** Initialise on window load and load custom functions ****/
addOnloadHook( myLoadFuncs );
function myLoadFuncs()
{
// &action=purge
addPurge();
// §ion=0
addEditSection0();
// cause the personal menu looks bad
changeLinks();
// because edit summaries are good
// Now done automatically
// addForceSummary();
// now add a million extra tabs
morelinks();
// and some stuff for the sidebar
addToolBoxLinks();
// make red talk page links start new sections
//talkpageplus();
// for admins only...
// if(document.title.indexOf("Confirm delete - Delete") == 0) addVfdLink();
// change the title of the edit link
ta['ca-edit'] = ['e', 'Edit page'];
// remove the logout access key
//ta['pt-logout'] = new Array(null, null);
// re-render the title and accesskeys for stuff
akeytt();
// add history link to new messages box
newmessagehistory();
}
/**** Edit section 0 ****/
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').getElementsByTagName("ul")[0].insertBefore(y,x.nextSibling);
}
}
/**** 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');
if(id) li.id = id;
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];
var pf = document.createElement('form');
pf.action = '?action=purge';
pf.method = 'POST';
pf.id = 'pf';
x.appendChild(pf);
addlilink(tabs, 'javascript:document.getElementById("pf").submit();', 'purge', 'ca-purge');
}
/**** Add afd header, footer and comment ****/
function closeafd(bold, notbold)
{
var txt = document.editform.wpTextbox1;
txt.value = "{{subst:vt}} '''" + bold + "'''" + notbold + ". – ~~~~\n" + txt.value
+ "\n{{subst:vb}}\n";
txt = document.editform.wpSummary;
txt.value = "close discussion: " + bold + notbold;
// I don't mind still watching them
// document.editform.wpWatchthis.checked = false;
}
/**** Generic custom talk message ****/
function autoMessage(msgtext, summary, saveopt)
{
var txt = document.editform.wpTextbox1;
document.editform.wpSummary.value = summary;
if(txt.value.length > 0) txt.value += '\n';
txt.value += msgtext;
if(saveopt == 'save')
{
document.editform.submit();
}
else if(saveopt == 'preview')
{
document.editform.wpPreview.click();
}
else if(saveopt == 'diff')
{
document.editform.wpDiff.click();
}
}
/**** Get the pagename for a specified thread ****/
function startThread()
{
var which = prompt("Thread number?");
var now = new Date();
if(which < 10) which = '0' + which;
var timestamp = now.getUTCFullYear() + '';
now.getUTCMonth() < 9 ? timestamp += '0' + (now.getUTCMonth() + 1) : timestamp += (now.getUTCMonth() + 1);
now.getUTCDate() < 10 ? timestamp += '0' + now.getUTCDate() : timestamp += now.getUTCDate();
return '{{User talk:Alphax/' + timestamp + '-' + which + '}}';
}
/**** Get the text for a specified test number ****/
function test(x)
{
var s = (x == '1' ? '' : x);
return ['{{subst:test' + s + '}} – ~~~~', '{{test' + s + '}}'];
}
/**** Get the text for a specified blanking number ****/
function blank(x)
{
var s = (x == '1' ? '' : x);
return ['{{subst:blank' + s + '}} – ~~~~', '{{blank' + s + '}}'];
}
/**** String replacement popup ****/
function replace()
{
var s = prompt("Search regexp?");
if(s){
var r = prompt("Replace regexp?");
var txt = document.editform.wpTextbox1;
txt.value = txt.value.replace(new RegExp(s, "g"), r);
}
}
/**** Talk page AFD result ****/
function afdresult()
{
var res = prompt("Result?");
if(!res) return;
var afddate = prompt("Nomination date?");
document.editform.wpSummary.value = 'AFD result - ' + res.replace(/'/g, '');
var txt = document.editform.wpTextbox1;
if(txt.value.length > 0) txt.value += '\n';
txt.value += '{{oldafdfull|date=[[' + afddate + ']] [[{{subst:CURRENTYEAR}}]]|result=' + res + '|votepage={{subst:PAGENAME}}}}';
txt.focus();
}
/**** 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 = '';
}
/**** Make the top links look better ****/
function changeLinks()
{
if(!document.getElementById) return;
// remove the "my" bits
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';
// Get the top toolbar
var toplinks = document.getElementById('p-personal').getElementsByTagName('ul')[0];
// remove the logout button entirely
toplinks.removeChild(document.getElementById('pt-logout'));
// add a clock
addlilink(toplinks, '#', '', 'utcdate');
showtime();
}
/**** Now using the version I developed on commons ****/
function addForceSummary()
{
if(!/&action=edit/.test(window.location.href) && !/&action=submit/.test(window.location.href)) return;
if(/§ion=new/.test(window.location.href)) return;
if(!document.forms.editform) return;
document.forms.editform.wpSave.onclick = forceSummary;
document.forms.editform.wpSave.onfocus = forceSummary;
}
function forceSummary()
{
// Section names be damned
if (!document.forms.editform.wpSummary.value.replace(/^(?:\/\\*.*\\*\/)? *(.*) *$/,'$1'))
{
var r = prompt('Are you sure you want to submit without adding a summary?\nTo add a summary, type it in the box below:',document.forms.editform.wpSummary.value);
if(r == null) { return false; }
document.forms.editform.wpSummary.value = r;
}
return true;
}
/**** Not sure how this works ****/
function afddelete(){
var form = document.forms.deleteconfirm;
form.wpReason.value = '[[Wikipedia:Articles for deletion/' + unescape(window.location.href.replace(/^.*\?title=([^&]+)&action=delete.*$/, '$1').replace(/_/g, ' ')) + ']]';
form.wpConfirm.checked = true;
}
/**** Mega Tab Adding ****
*
* I'm making this comment block REALLY REALLY BIG so I can find it
*
* Possibly the most useful bit of this entire file, it adds various tabs depending on
* what page we are on
*
*/
function morelinks()
{
var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
if(document.title.indexOf("Editing Wikipedia:Articles for deletion") == 0)
{
/**** AFD closing ****/
addlimenu(tabs, 'afd actions', 'afda');
var afda = document.getElementById('afda').getElementsByTagName('ul')[0];
addlilink(afda, 'javascript:closeafd("keep", "")', 'keep', '');
addlilink(afda, 'javascript:closeafd("merge and redirect", " to [[" + prompt("Merge and redirect to?") + "]]")', 'merge', '');
addlilink(afda, 'javascript:closeafd("redirect", " to [[" + prompt("Redirect to?") + "]]")', 'redir', '');
addlilink(afda, 'javascript:closeafd("transwiki", " to " + prompt("Transwiki to?"))', 'trans', '');
addlilink(afda, 'javascript:closeafd("transwiki", " to Wiktionary")', 'wikt', '');
addlilink(afda, 'javascript:closeafd("speedy delete", "")', 'speedy', '');
addlilink(afda, 'javascript:closeafd("delete", "")', 'del', '');
addlilink(afda, 'javascript:closeafd(prompt("Result?"), "")', 'other', '');
addlilink(tabs, 'javascript:replace()', 'replace', '');
/**** The "Make it Awesome!" button ****
document.editform.wpSummary.value = 'This vote brought to you by the "Make it Awesome!" button';
var txt = document.editform.wpTextbox1;
if(txt.value.length > 0) txt.value += '\n';
txt.value += "*'''Make it awesome!''' ~~~~";
document.editform.submit();
**** Finish making it awesome ****/
}
else if(document.title.indexOf("Confirm delete - Delete") == 0)
{
addlilink(tabs, 'javascript:afddelete()', 'afd', '');
}
else if(document.title.indexOf("Editing User talk:") == 0)
{
addlilink(tabs, 'javascript:replace()', 'replace', '');
addlimenu(tabs, 'talk messages', 'talkm');
var talkm = document.getElementById('talkm').getElementsByTagName('ul')[0];
/**** Set up Welcome messages ****/
addlimenu(talkm, 'welcome', 'welcmess');
var welcmess = document.getElementById('welcmess').getElementsByTagName('ul')[0];
addlilink(welcmess, 'javascript:autoMessage("{{subst:User:Alphax/Welcome}} ~~~~", "Welcome to Wikipedia!", "save")', 'personal', '');
addlilink(welcmess, 'javascript:autoMessage("{{subst:anon}} Thanks, ~~~~", "Create an account!", "save")', 'anon', '');
addlilink(welcmess, 'javascript:autoMessage("{{subst:oldwelcome}} ~~~~", "Welcome to Wikipedia!", "save")', 'oldwelcome', '');
/**** Set up Test series ****/
addlimenu(talkm, 'test[x]', 'testx');
var testx = document.getElementById('testx').getElementsByTagName('ul')[0];
addlilink(testx, 'javascript:autoMessage("{{subst:selftest}} ~~~~", "{{selftest}}", "save")', 'selftest', '');
addlilink(testx, 'javascript:autoMessage(test(1)[0], test(1)[1], "save")', 'test', '');
addlilink(testx, 'javascript:autoMessage(test(2)[0], test(2)[1], "save")', 'test2', '');
addlilink(testx, 'javascript:autoMessage(test(3)[0], test(3)[1], "save")', 'test3', '');
addlilink(testx, 'javascript:autoMessage(test(4)[0], test(4)[1], "save")', 'test4', '');
addlilink(testx, 'javascript:autoMessage(test(5)[0], test(5)[1], "save")', 'test5', '');
/**** Set up Blanking series ****/
addlimenu(talkm, 'blanking', 'blankmess');
var blankmess = document.getElementById('blankmess').getElementsByTagName('ul')[0];
addlilink(blankmess, 'javascript:autoMessage(blank(1)[0], blank(1)[1], "save")', 'blank', '');
addlilink(blankmess, 'javascript:autoMessage(blank(2)[0], blank(2)[1], "save")', 'blank2', '');
addlilink(blankmess, 'javascript:autoMessage(test("2a")[0], test("2a")[1], "save")', 'test2a', '');
addlilink(blankmess, 'javascript:autoMessage(blank(3)[0], blank(3)[1], "save")', 'blank3', '');
addlilink(blankmess, 'javascript:autoMessage(blank(4)[0], blank(4)[1], "save")', 'blank4', '');
addlilink(blankmess, 'javascript:autoMessage(blank(5)[0], blank(5)[1], "save")', 'blank5', '');
/**** Generic talk messages ****/
addlilink(talkm, 'javascript:autoMessage(startThread(), "new thread", "save")', 'thread', '');
addlilink(talkm, 'javascript:autoMessage("{{subst:summary}} ~~~~", "Edit summary", "save")', 'summary', '');
addlilink(talkm, 'javascript:autoMessage("{{subst:bv}} ~~~~", "{{bv}}", "save")', 'bv', '');
}
else if(document.title.indexOf("Editing ") == 0)
{
addlilink(tabs, 'javascript:replace()', 'replace', '');
addlilink(tabs, 'javascript:afdresult()', 'afd result', '');
}
else if(document.title.indexOf("Wikipedia:Articles for deletion") == 0)
{
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'];
}
else if((document.title.indexOf("User:") == 0) || (document.title.indexOf("User talk:") == 0))
{
addlimenu(tabs, 'User functions', 'userf');
var userf = document.getElementById('userf').getElementsByTagName('ul')[0];
var username = getUserName();
// add "block" tab
addlilink(userf, '/wiki/Special:Blockip/' + username, 'block user');
// add "blocklog" tab
addlilink(userf, '/wiki/Special:Log/block?page=User:' + username, 'block log', '');
// add "unblock" tab
addlilink(userf, '/w/index.php?title=Special:Ipblocklist&action=unblock&ip=' + username, 'unblock user', '');
// add "contributions" tab
addlilink(userf, '/wiki/Special:Contributions/' + username, 'contributions', '');
// add "edit count" tab
addlilink(userf, 'http://tools.wikimedia.de/~interiot/cgi-bin/count_edits?user=' + username + '&dbname=enwiki_p', 'interiot\'s tool', '');
// add "whois" tab
addlilink(userf, 'http://www.samspade.org/t/lookat?a=' + username, 'whois user', '');
// add another "whois" tab
addlilink(userf, 'http://www.dnsstuff.com/tools/whois.ch?ip=' + username, 'whois (2)', '');
// add "proxycheck" tab
addlilink(userf, 'http://wikipedia.quyme.com/proxycheck.php?ip=' + username, 'open proxy check', '');
}
}
/**** get the username for a page ****/
function getUserName()
{
switch (wgCanonicalNamespace)
{
case 'User':
case 'User_talk':
return wgPageName.split('/')[0].split(":")[1];
default:
return null;
}
}
/**** Add links to the toolbox ****/
function addToolBoxLinks()
{
var tb = document.getElementById('p-tb').getElementsByTagName('ul')[0];
var afdtime = new Date();
var months = ['January', 'February', 'March', 'April', 'May', 'June',
'July', 'August', 'September', 'October', 'November', 'December'];
afdtime.setUTCDate(afdtime.getUTCDate() - 7);
addlilink(tb, '/wiki/Special:Newpages', 'New pages', '');
addlilink(tb, '/wiki/Special:Shortpages', 'Short pages', '');
addlilink(tb, '/wiki/Special:Log', 'Logs', '');
// addlilink(tb, '/wiki/Template:Deletiontools', 'Deletion tools', '');
addlilink(tb, '/wiki/Wikipedia:Articles_for_deletion/Log/' + afdtime.getUTCFullYear()
+ '_' + months[afdtime.getUTCMonth()] + '_' + afdtime.getUTCDate(), 'Week old AfD', '');
addlilink(tb, '/wiki/Wikipedia:Disambiguation_pages_with_links', 'Dab list', '');
addlilink(tb, '/wiki/Wikipedia:Template_messages/User_talk_namespace', 'Talk messages', '');
addlilink(tb, '/wiki/User:Alphax/special', 'Special characters', '');
addlilink(tb, '/wiki/User:Alphax/monobook.js', 'Monobook.js', '');
addlilink(tb, '/wiki/User:Alphax/monobook.css', 'Monobook.css', '');
addlilink(tb, '/wiki/User:Alphax/Sandbox', 'My sandbox', '');
addlilink(tb, '/wiki/WP:ICT', 'Image Copyright tags', '');
}
/**** Get a clock that autoupdates! ****/
function showtime()
{
var timerID;
var now = new Date();
var timeValue = now.toUTCString().replace(/GMT/, "UTC");
document.getElementById('utcdate').firstChild.innerHTML = timeValue;
timerID = setTimeout('showtime()', 100);
}
/**** Auto start new topics when hitting empty talk pages from the content page ****/
function talkpageplus()
{
var talkpagelink = document.getElementById('ca-talk');
if (talkpagelink.className == 'new')
{
talkpagelink.firstChild.href += '§ion=new';
}
}
/**** Add history link to the "You have new messages" box ****/
function newmessagehistory()
{
var divs = document.getElementsByTagName('div');
var talkmessagebox;
for(var x = 0; x < divs.length; ++x)
{
if(divs[x].className.indexOf('usermessage') != -1)
{
talkmessagebox = divs[x];
x = divs.length; // force break
}
}
divs = ''; // release divs?
if(!talkmessagebox) return false;
var newmessagelink = talkmessagebox.getElementsByTagName('a')[0];
var historylink = document.createElement('a');
historylink.href = newmessagelink.href.replace(/\/wiki\//, '/w/index.php?title=') + '&action=history';
historylink.className = 'extiw';
historylink.appendChild(document.createTextNode('changes'));
// var talkmessagetext = 'You have ';
// talkmessagebox.innerHTML = talkmessagetext;
// talkmessagebox.appendChild(newmessagelink);
talkmessagebox.appendChild(document.createTextNode(' ('));
talkmessagebox.appendChild(historylink);
talkmessagebox.appendChild(document.createTextNode(')'));
}
/* </nowiki></pre> */