From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.

 /*

 

 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

 

 */

 // <pre><nowiki>

 

 

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

 //  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)

    month0="January"; month1="February"; month2="March"; month3="April"; month4="May"; month5="June";

    month6="July"; month7="August"; month8="September"; month9="October";

    month10="November"; month11="December";

 

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

    f.wpSummary.value = monthd.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 ('== *' + monthd.getMonth()] + " " + d.getFullYear() + ' *==') ;

    var myregex = new RegExp(myregexstr);

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

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

        f.wpSummary.value = monthd.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 + " <br clear=\"both\" />\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+"}} ~~~~", "[[WP:NPOV|NPOV]]", x); }

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

 function whackBLP    (x) { whackEdit ("{{subst:uw-biog"+x+"|}} ~~~~",    "{{subst:uw-biog"+x+"}} ~~~~", "[[WP:BLP|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|left|32px]]"

      + "You have been temporarily [[Wikipedia:Blocking policy|blocked from editing]] because of your disruptive edits."

      + " You are [[Wikipedia:Contributing to Wikipedia|invited to contribute]]"

      + " in a [[Wikipedia:Five pillars|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) taid = key, title];

      else if(key)     taid = key, ''];

      else if(title)   taid = '', 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];

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

 }

 

 window.playWhackMoles=function() {

 

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

 

    whack_addlilink (document.getElementById('p-tb').getElementsByTagName('ul')[0],

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

 

 // </nowiki></pre>