User:Korath/monobook.js

//

// NO GUARANTEE THAT THIS WORKS

// NO GUARANTEE THAT THIS DOESN'T CAUSE HARM

//

// Based directly on User:Korath/autovfd.js on English Wikipedia

// by User:msh210 on English Wikipedia

// This needs to be changed depending on the skin used.

// Current version is for the monobook skin, with the links at the top.

function add_link(url, name)

{

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

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

na.setAttribute('href', url);

var txt = document.createTextNode(name);

li.appendChild(na);

na.appendChild(txt);

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

if (ul.hasChildNodes())

ul.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:vfd}}\n' + document.editform.wpTextbox1.value;

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

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('http://en.wikipedia.org/w/index.php?title=Wikipedia:Votes_for_deletion/' + pagename + '&action=edit&fakeaction=vfdsub&faketarget=' + target,

'Vfd_' + unescape(target),

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

window.open('http://en.wikipedia.org/w/index.php?title=Wikipedia:Votes_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 += '{{' + 'Wikipedia:Votes for deletion/' + target + '}}\n';

document.editform.wpSummary.value = 'Wikipedia:Votes 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 += '===' + target + '===\n' +

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

}

else

add_link('javascript:vfd()', 'VFD');

}

}

if (window.addEventListener)

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

else if (window.attachEvent)

window.attachEvent('onload', autovfd);

//