User:Tsunaminoai/monobook.js

Source: 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.
// [[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>');
//
//popupFixDabs=true;
//popupFixRedirs=true;
//
//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>');

// Vandalism detection tools

// Filter changes live
// [[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');

// Show diffs on recent changes, history pages and so on
// [[User:Lupin/recentdiffs.js]] - please include this line
document.write('<script type="text/javascript" src="' 
             + 'http://en.wikipedia.org/w/index.php?title=User:Lupin/recentdiffs.js' 
             + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');



// [[User:Zocky/PicturePopups.js]] - please include this line 
document.write('<script type="text/javascript" src="' 
            + 'http://en.wikipedia.org/w/index.php?title=User:Zocky/PicturePopups.js' 
            + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');




// setInterval(function () { alert('Stop.'); }, 5000);


// [[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/popupsdev.js' 
             + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');



//popupLiveOptions=true;
popupAdminLinks=true;
popupShortcutKeys=true;
popupFixDabs=true;
popupLastModified=true;
popupActionsMenu=true;
//popupStructure='menus'
//popupNavLinkStyle='cryptic';

function removeAccessKeys(keylist) {
  var t=document.getElementsByTagName('A'), u=document.getElementsByTagName('input');
  for (var i=0; i<t.length+u.length; ++i) {
    var s=((i<t.length) ? t[i] : u[i-t.length]);
    for (var j=0; j<keylist.length; ++j) if (s.accessKey==keylist[j]) s.accessKey='';
  }
};

function removeDeleteKey() {removeAccessKeys(['d']);}

if (window.addEventListener) window.addEventListener("load",removeDeleteKey,false);
else if (window.attachEvent) window.attachEvent("onload",removeDeleteKey);


function addOnloadFunction (f) {
  if (window.addEventListener) window.addEventListener("load",f,false);
  else if (window.attachEvent) window.attachEvent("onload",f);
};


function fixWatchlistLink () {
  for (var i=0; i<document.links.length; ++i) {
    if (document.links[i].href.indexOf('Special:Watchlist')>0) {
      document.links[i].href+='?hideOwn=1';
      break;
    }
  }
};

addOnloadFunction(fixWatchlistLink);

// summary nag

function perhapsSave(ev)
{
   var sum = document.getElementsByName('wpSummary');
   var submit = true;
   if (sum.length > 0) {
      sum = sum[0];
      if (isBadSummary(sum.value)) {
         if (!document.getElementById('jn-fillIn')) {
            var div = document.createElement('p');
            div.appendChild(document.createTextNode('Fill in the summary!'));
            div.setAttribute('style', 'color: #f00; font-size: 150%;');
            div.id = 'jn-fillIn';
            sum.parentNode.insertBefore(div, sum.nextSibling);
         }
         sum.focus();
         submit = false;
      }
   }
   if (submit) {
      var btn = document.getElementById('wpSave');
      btn.onclick = null;
      btn.setAttribute('type', 'submit');
      btn.click();
   }
}

function isBadSummary(str) {
  var sumRe=RegExp('^ *$|^/[*].*?[*]/ *$');
  return (sumRe.test(str));
}

function modifySaveButton()
{
   // action=edit for edit pages, action=submit for previews
   var loc=window.location.href;
   if ((loc.indexOf('&action=edit') != -1 || 
        loc.indexOf('&action=submit') != -1
       ) && loc.indexOf(':Lupin') == -1 ) {
      var btn = document.getElementById('wpSave');
      btn.setAttribute('type', 'button');
      btn.onclick = perhapsSave;
   }
}

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



////////////////////////////////////////////////////////////////
// Evaluator
// Source: http://krolik.net/js-eval.shtml

var evaluatorHTML='<FORM ID="Tester" NAME="Tester" onsubmit="return TesterExecute();" >' +
  '<TEXTAREA NAME="MyCommand" COLS=60 ROWS=25 WRAP="off"></TEXTAREA>' +
  '<TEXTAREA NAME="MyResult" COLS=40 ROWS=25 WRAP="off"></TEXTAREA>' + 
  '<BR>' + 
  '<INPUT TYPE=BUTTON value="Show Object" onclick="ObjectDumpClicked();" >' + 
  '<INPUT TYPE=BUTTON value="Execute" onclick="TesterExecute();">' + 
  '</FORM>';

function ObjectDump(strObject) 
{
  var strOutput; 
  var vTemp; 
  var vAnotherTemp; 
  var vElement;
  vElement = eval(strObject); 
  strOutput = "typeof = " + typeof(vElement) + "\n\n";
  AppendOutput(strOutput);
  for (var x in vElement )  
  { 
   vTemp = strObject + "." + x.toString() ; 
   vAnotherTemp = strObject + "[" + x + "]" ; 
   strOutput = strOutput + vTemp + " = " + eval(vTemp) + "\n";
   AppendOutput(vTemp + " = " + eval(vTemp) + "\n");
  } 
  return strOutput ;  
 } 
 function AppendOutput(strText)
 {
  document.Tester.MyResult.value = document.Tester.MyResult.value + strText;
 }
 function Output(strText)
 {
  document.Tester.MyResult.value = strText;
 }
 function ObjectDumpClicked() 
 {
  document.Tester.MyResult.value="";
  ObjectDump(document.Tester.MyCommand.value); 
  return false;
 }
 function TesterExecute() 
 {       
  document.Tester.MyResult.value="";
  document.Tester.MyResult.value=eval(document.Tester.MyCommand.value); 
  return false;
 }

function addEvaluator() {
  var evalNode=document.createElement('div');
  evalNode.id='evalNode';
  evalNode.innerHTML=evaluatorHTML;
  document.body.appendChild(evalNode);
  document.Tester=document.getElementById('Tester');
}

addOnloadFunction(addEvaluator);

//
// end evaluator
////////////////////////////////////////////////////////////////


// testing 
// Useful stuff from [[Wikipedia:WikiProject_User_scripts]]

function addToolboxLink(url, name, id){
  var tb = document.getElementById('p-tb').getElementsByTagName('ul')[0];
  addlilink(tb, url, name, id);
}

function addlilink(tabs, url, name, id, title, key){
  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);
  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;
}

function addTab(url, name, id, title, key){
    var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
    addlilink(tabs, url, name, id, title, key);
}

function addPurge(){
    ta['ca-purge'] = ['g', 'Purge the internal cache for this page'];
    var x = document.getElementById('ca-history');
    if(!x) return;
    if(x.children) x = x.children[0].href;
    else x = x.childNodes[0].href;
    addTab(x.replace(/=history/, "=purge"), 'purge', 'ca-purge');
    akeytt();
}

// culled from [[User:Lupin/popups.js]]

function nichalp_articleFromURL(h) {
  if (typeof h != 'String') h=String(h);
  h=decodeURI(h);
  var m=RegExp('[^:]*://en\\.wikipedia\\.org/(wiki/|w/index\\.php\\?title=)([^&?]*)').exec(h);
  if(m===null) return null;
  return m[2];
}

function nichalp_isIpUser(user) {
  return RegExp('(User:)?' + 
                '((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}' + 
                '(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])')
    .test(user);
}

function nichalp_removeAnchor(article) {
  // is there a #? if not, we're done
  var i=article.indexOf('#');
  if (i == -1) return article;
  return article.substring(0,i);
}

function nichalp_userName(article) {
  var i=article.indexOf('User');
  var j=article.indexOf(':');
  if  (i != 0 || j == -1) return null;
  var k=article.indexOf('/');
  if (k==-1) return article.substring(j+1);
  else return article.substring(j+1,k);
}

// do it

function nichalp_customLinks() {
  addPurge();
  var article=nichalp_articleFromURL(document.location.href);
  if (!article) return;
  var user=nichalp_userName(article);
  if(!user) return;
  user=nichalp_removeAnchor(user);
  if (!nichalp_isIpUser(user)) {
    addToolboxLink('http://kohl.wikimedia.org/~kate/cgi-bin/count_edits?dbname=enwiki&user='+user, user+"'s edit count", 'toolbox_katestool');
  }
  var special='http://en.wikipedia.org/w/index.php?title=Special:';
  addToolboxLink(special + 'Log&user='+user, user+"'s log", 'toolbox_userlog');
  addToolboxLink(special + 'Blockip&ip='+user, 'Block '+user, 'toolbox_blockuser'); 
  addToolboxLink(special + 'Special:Ipblocklist&action=unblock&ip='+user, 'Unblock '+user, 'toolbox_unblockuser'); 
}

// make it all happen on page load

if (window.addEventListener) window.addEventListener("load",nichalp_customLinks,false);
else if (window.attachEvent) window.attachEvent("onload",nichalp_customLinks);
else {
  window._old_nichalp_onload = window.onload;
  window.onload = function() { window._old_nichalp_onload();  nichalp_customLinks(); }
}

//