User:Kbh3rd/whackamole.js

/*

Put some functions in the toolbox for the anti-vandal whack-a-mole game.

Documented at http://en.wikipedia.org/wiki/User:Kbh3rd/Vandal_warning_toolbox

*/

//

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

// Google Lookup

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

function whackGoogleLookup () {

var q = "" + (window.getSelection ? window.getSelection()

: document.getSelection ? document.getSelection()

: document.selection.createRange().text);

if (!q)

q = prompt("You didn't select any text. Enter a search phrase:", "");

if (q!=null)

// location="http://www.google.com/search?q=" + escape(q).replace(/ /g, "+");

window.open("http://www.google.com/search?q=" + escape(q).replace(/ /g, "+") ,'new-tab') ;

}

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

// Month section

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

function whackMonth () {

var d=new Date()

var f = document.editform ;

var month=new Array(12)

month[0]="January"; month[1]="February"; month[2]="March"; month[3]="April"; month[4]="May"; month[5]="June";

month[6]="July"; month[7]="August"; month[8]="September"; month[9]="October";

month[10]="November"; month[11]="December";

f.wpTextbox1.value += "\n== "+month[d.getMonth()]+" "+d.getFullYear()+" ==\n\n" ;

f.wpSummary.value = month[d.getMonth()] ;

f.wpMinoredit.checked=true;

f.wpWatchthis.checked=false;

if (f.wpTextbox1.scrollTop || true)

f.wpTextbox1.scrollTop = f.wpTextbox1.scrollHeight ;

}

// **

// Check for month when making an edit

// **

function whackCheckMonth () {

var d=new Date()

var f = document.editform ;

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

var myregexstr = new String ('== *' + month[d.getMonth()] + " " + d.getFullYear() + ' *==') ;

var myregex = new RegExp(myregexstr);

if (myregex.test(f.wpTextbox1.value) != true) {

f.wpTextbox1.value += "\n== "+month[d.getMonth()]+" "+d.getFullYear()+" ==\n" ;

f.wpSummary.value = month[d.getMonth()] ;

if (f.wpTextbox1.scrollTop || true)

f.wpTextbox1.scrollTop = f.wpTextbox1.scrollHeight ;

}

}

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

// Warnings

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

function whackEdit (message, msg2, summary, level) {

var f = document.editform ;

var tbox = document.editform.wpTextbox1 ;

var a = "" + (window.getSelection ? window.getSelection()

: document.getSelection ? document.getSelection()

: document.selection.createRange().text);

if (msg2 != "") {

a = prompt ("Article name?\n(Empty+OK for a generic message; Cancel aborts.)", a) ;

if (a == null) return ;

a = a.replace(/^\s+/, '') ;

a = a.replace(/\.?\s*$/, '');

if (a != null && a != "") {

message = message.replace(/\|/,"|"+a) ;

summary += " in " + a + "" ;

} else {

message = msg2 ;

}

}

whackCheckMonth () ;

f.wpTextbox1.value += "\n\n" + message + "
\n" ;

f.wpSummary.value = summary ;

if (level > 0) { f.wpSummary.value += " /"+level+"/" ; }

if (document.getElementById('wpMinoredit')) f.wpMinoredit.checked=false;

f.wpWatchthis.checked=false ;

f.wpTextbox1.focus();

if (f.wpTextbox1.scrollTop || true) f.wpTextbox1.scrollTop = f.wpTextbox1.scrollHeight ;

}

function whackSelf (x) { whackEdit ("{{subst:uw-selfrevert|}} ~~~~", "{{subst:uw-selfrevert}} ~~~~","Self-reverted test", 0); }

function whackWarn (x) { whackEdit ("{{subst:uw-test"+x+"|}} ~~~~", "{{subst:uw-test"+x+"}} ~~~~", "Experimenting", x); }

function whackVandal (x) { whackEdit ("{{subst:uw-vand"+x+"|}} ~~~~", "{{subst:uw-vand"+x+"}} ~~~~", "Vandalizing", x); }

function whackBlank (x) { whackEdit ("{{subst:uw-delete"+x+"|}} ~~~~", "{{subst:uw-delete"+x+"}} ~~~~", "Blanking", x); }

function whackErrors (x) { whackEdit ("{{subst:uw-error"+x+"|}} ~~~~", "{{subst:uw-error"+x+"}} ~~~~", "Introducing errors", x); }

function whackNPOV (x) { whackEdit ("{{subst:uw-npov"+x+"|}} ~~~~", "{{subst:uw-npov"+x+"}} ~~~~", "NPOV", x); }

function whackNOR (x) { whackEdit ("{{subst:uw-nor"+x+"|}} ~~~~", "{{subst:uw-nor"+x+"}} ~~~~", "Original research issues", x); }

function whackBLP (x) { whackEdit ("{{subst:uw-biog"+x+"|}} ~~~~", "{{subst:uw-biog"+x+"}} ~~~~", "Living persons issues", x); }

function whackSpam (x) { whackEdit ("{{subst:uw-spam"+x+"|}} ~~~~", "{{subst:uw-spam"+x+"}} ~~~~", "Spamming", x); }

function whackAds (x) { whackEdit ("{{subst:uw-ad"+x+"|}} ~~~~", "{{subst:uw-ad"+x+"}} ~~~~", "Advertising", x); }

function whackCopyvio(x) { whackEdit ("{{subst:uw-copyright|}} ~~~~", "{{subst:uw-copyright}} ~~~~","Copyright violation", 0); }

function whackHoax (x) { whackEdit ("{{subst:uw-hoax|}} ~~~~", "{{subst:uw-hoax}} ~~~~","Hoax", 0); }

function whackBlatant(x) { whackEdit ("{{subst:uw-bv|}} ~~~~", "{{subst:uw-bv}} ~~~~","Blatant vandalism", 0); }

function whackBlocked(x) { whackEdit ("{{subst:uw-block"+x+"|sig=~~~~}}", "", "** BLOCKED **", x); }

function whackBlocked2(){whackEdit ("Image:Modern_clock_chris_kemps_01.png"

+ "You have been temporarily blocked from editing because of your disruptive edits."

+ " You are invited to contribute"

+ " in a constructive manner as soon as the block expires.", "", "Blocked"); }

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

// Installation

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

window.whack_addlilink=function(tabs, n, url, name, id, title, key){

var ix ;

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

if (n > 0) {

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

for (ix = 1 ; ix <= n ; ix++) {

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

na.href = url.replace(/XX/g, ix) ;

na.appendChild(document.createTextNode(" "+ix));

li.appendChild(na);

}

} else {

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

na.href = url;

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

li.appendChild(na);

}

if(id) li.id = id;

tabs.appendChild(li);

if(id) {

if(key && title) ta[id] = [key, title];

else if(key) ta[id] = [key, ''];

else if(title) ta[id] = ['', title];

}

// re-render the title and accesskeys from existing code in wikibits.js

// ?? akeytt();

return li;

}

window.whack_addToolboxLink=function(n, url, name, id){

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

if ( tb ) whack_addlilink(tb, n, url, name, id);

}

window.playWhackMoles=function() {

if (document.title.match("Editing User talk:") || document.title.match("Creating User talk:") ) {

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

if ( tb ) whack_addlilink (tb,

0, "http://en.wikipedia.org/wiki/Wikipedia:Template_messages/User_talk_namespace#Multi_level_templates",

"Warning Templates:", "uTemplates") ;

whack_addToolboxLink(3, 'javascript:{whackWarn(XX);};void(0);', 'Test', 'toolbox_test');

whack_addToolboxLink(1, 'javascript:{whackSelf(XX);};void(0);', 'Self Test', 'toolbox_selftest');

whack_addToolboxLink(4, 'javascript:{whackVandal(XX);};void(0);', 'Vandal', 'toolbox_vandal');

whack_addToolboxLink(4, 'javascript:{whackBlank(XX);};void(0);', 'Blank', 'toolbox_dele');

whack_addToolboxLink(3, 'javascript:{whackErrors(XX);};void(0);', 'Errors', 'toolbox_errors');

whack_addToolboxLink(4, 'javascript:{whackNPOV(XX);};void(0);', 'NPOV', 'toolbox_npov');

whack_addToolboxLink(4, 'javascript:{whackNOR(XX);};void(0);', 'O.R.', 'toolbox_nor');

whack_addToolboxLink(4, 'javascript:{whackBLP(XX);};void(0);', 'BLP', 'toolbox_blp');

whack_addToolboxLink(4, 'javascript:{whackSpam(XX);};void(0);', 'Spam', 'toolbox_spam');

whack_addToolboxLink(4, 'javascript:{whackAds(XX);};void(0);', 'Ads', 'toolbox_ads');

whack_addToolboxLink(1, 'javascript:{whackCopyvio(XX);};void(0);', 'Copyright', 'toolbox_copyvio');

whack_addToolboxLink(1, 'javascript:{whackBlatant(XX);};void(0);', 'Blatant', 'toolbox_blatant');

whack_addToolboxLink(3, 'javascript:{whackBlocked(XX);};void(0);', 'BLOCK', 'toolbox_block');

} else {

whack_addToolboxLink(0, 'javascript:{whackGoogleLookup();};void(0);', 'Google', 'toolbox_googlelookup');

}

}

// onload

window.simpleAddOnload=function(f) {

if (window.addEventListener) window.addEventListener("load", f, false);

else if (window.attachEvent) window.attachEvent("onload",f);

}

simpleAddOnload(playWhackMoles);

//