User:Gracenotes/monobook.js

From Wikipedia, the free encyclopedia

If a message on your talk page led you here, please be wary of who left it. Code that you insert on this page could contain malicious content capable of compromising your account. If you are unsure whether code you are adding to this page is safe, you can ask at the appropriate village pump. If this is a .js page, the code will be executed when previewing the page.
Note: After saving, you have to bypass your browser's cache to see the changes. In Internet Explorer and Firefox, hold down the Ctrl key and click the Refresh or Reload button. Opera users have to clear their caches through Tools→Preferences, see the instructions for Opera. Konqueror and Safari users can just click the Reload button.
//if (wgNamespaceNumber == 6)
//  importScript('User:Gracenotes/wpPicmark.js');
//importScript('User:Gracenotes/fixStuff.js');
//importScript('User:Gracenotes/changesSince.js');
importScript('User:Gracenotes/amelvand.js');
importScript('User:Gracenotes/rollback.js');
importScript('User:Gracenotes/console.js');
 
//add (cur) link on contribution pages
if (wgPageName == 'Special:Contributions' && (((lim = document.location.href.match(/[&?]limit=([^&]*)/)) && parseInt(lim[1]) < 250) || !lim)) {
    addOnloadHook(function() {
        var contribs = document.getElementById('bodyContent').getElementsByTagName('li');
        var mainNode;
        var aNode;
        var links;
        for (var i = 0, leng = contribs.length; i < leng; i++) {
            links = contribs[i].getElementsByTagName('a');
            mainNode = document.createElement('span');
               mainNode.appendChild(document.createTextNode('('));
            aNode = document.createElement('a');
            aNode.href = links[1].href.replace('prev', 'cur');
            aNode.appendChild(document.createTextNode('cur'));
            mainNode.appendChild(aNode);
            mainNode.appendChild(document.createTextNode(') '));
            contribs[i].insertBefore(mainNode, links[2]);
        }
    });
}
 
//utility function: box() gets edit textarea value, box(text) sets it
function box(text) {
    if (text) {
        document.getElementById("wpTextbox1").value = text;
    } else {
        return document.getElementById("wpTextbox1").value;
    }
}
 
//adds "contibs" tab to user and user talk pages
if (wgNamespaceNumber == 2 || wgNamespaceNumber == 3) {
    var uname = wgPageName.match(/[^:]*:([^\/]*)/);
    if (uname.length > 1)
        addOnloadHook(function() {
            addPortletLink("p-cactions",
                           "http://en.wikipedia.org/wiki/Special:Contributions/" + uname[1],                        
                           "contribs",
                           "ca-contribs",
                           "Contributions",
                           undefined,
                           document.getElementById("ca-move") || document.getElementById("ca-watch"));
        });
}
 
function replaceWithPoem(textbox) {
  var textbox = document.getElementById('wpTextbox1');
  var substr = textbox.value.substring(textbox.selectionStart, textbox.selectionEnd);
  if (substr.length == 0) return false;
  var substr2 = '<poem style="margin-left: 2em">\n' + substr.replace(/^:/gm, '').replace(/\<br.*?\>/g, '') + '\n</poem>';
  document.getElementById('wpTextbox1').value = textbox.value.replace(substr, substr2);
}
 
addOnloadHook(function() {
  var wform = document.forms["editform"];
  if (!wform) return false;
  addPortletLink("p-tb", "javascript:replaceWithPoem()", "Replace with poem", "t-summary", "Replace selected text with poem");
  if (wgNamespaceNumber == 0)
    document.getElementById("wpMinoredit").checked = true;
  document.getElementById("wpSummary").setAttribute("maxlength", "250");
  addPortletLink("p-tb", "javascript:prettifySummary()", "Unicodify summary", "t-summary", "Converts character entity references into the character, among other unpredictable behavior");
  document.getElementById("wpSummary").spellcheck = true;
});
 
addOnloadHook(function() {
    addPortletLink("p-tb", "javascript:displayWgVars()", "Display page vars", "t-wgvars");
});
 
function displayWgVars() {
    var wgVars = document.getElementsByTagName('script')[0].firstChild.cloneNode(true);
    var wgVarsPre = document.createElement('pre');
    wgVarsPre.appendChild(wgVars);
    document.getElementById('siteSub').appendChild(wgVarsPre);
}
 
function prettifySummary() {
  //hack to unicodify summary
  var tempnode=document.createElement('span');
  var sumbox = document.getElementById('wpSummary');
  tempnode.innerHTML = sumbox.value;
  sumbox.value = tempnode.innerHTML;
}
 
if (document.location.href.indexOf("speedydiff") != -1)
addOnloadHook(function() {
    var k = getElementsByClassName(document.getElementById("wikiDiff"), "td", "diff-ntitle")[0];
    k.style.backgroundColor = "blue";
    k.onclick = function() {
        document.forms['editform'].submit();
    }
});
 
function linkChange(func) {
    var alinks = document.getElementsByTagName("a");
    var alink;
    for (var i = 0, leng = alinks.length; i < leng; i++)
        func(alinks[i]);
}
 
function linkAppend(str) {
    linkChange(function(link) {
        link.href += str;
    });
}
 
//following script based off of [[User:Ais523/votesymbols.js]]; mostly string functions modified
function lowerNoPunct(s)
{
  return s.toLowerCase().replace(/\.|,|:|;|\+/g, '');
}
 
addOnloadHook(function() {
  if(wgNamespaceNumber==0 || wgPageName == "Wikipedia:Requests_for_adminship") return; //RFA is often rather long; may also add wgPageName.indexOf("Wikipedia:Articles_for_deletion/Log/") == 0
  var vt=
 ["http://upload.wikimedia.org/wikipedia/commons/thumb/9/94/Symbol_support_vote.svg/15px-Symbol_support_vote.svg.png",
  "http://upload.wikimedia.org/wikipedia/commons/thumb/d/d0/Symbol_keep_vote.svg/15px-Symbol_keep_vote.svg.png",
  "http://upload.wikimedia.org/wikipedia/commons/thumb/7/7f/Symbol_oppose_vote.svg/15px-Symbol_oppose_vote.svg.png",
  "http://upload.wikimedia.org/wikipedia/commons/thumb/8/89/Symbol_delete_vote.svg/15px-Symbol_delete_vote.svg.png",
  "http://upload.wikimedia.org/wikipedia/commons/thumb/8/89/Symbol_neutral_vote.svg/15px-Symbol_neutral_vote.svg.png",
  "http://upload.wikimedia.org/wikipedia/commons/thumb/b/b0/Symbol_merge_vote.svg/15px-Symbol_merge_vote.svg.png",
  "http://upload.wikimedia.org/wikipedia/commons/thumb/5/50/Symbol_move_vote.svg/15px-Symbol_move_vote.svg.png",
  "http://upload.wikimedia.org/wikipedia/commons/thumb/0/0c/Symbol_redirect_vote.svg/15px-Symbol_redirect_vote.svg.png",
  "http://upload.wikimedia.org/wikipedia/commons/thumb/b/ba/Symbol_opinion_vote.svg/15px-Symbol_opinion_vote.svg.png",
  "http://upload.wikimedia.org/wikipedia/commons/thumb/e/e0/Symbol_comment_vote.svg/15px-Symbol_comment_vote.svg.png",
  "http://upload.wikimedia.org/wikipedia/commons/thumb/f/f6/Symbol_unsupport_vote.svg/15px-Symbol_unsupport_vote.svg.png",
  "http://upload.wikimedia.org/wikipedia/commons/thumb/e/e0/Symbol_question.svg/15px-Symbol_question.svg.png",
  "http://upload.wikimedia.org/wikipedia/commons/thumb/a/aa/Symbol_divide_vote.svg/15px-Symbol_divide_vote.svg.png",
  "http://upload.wikimedia.org/wikipedia/commons/thumb/5/54/Symbol_wait.svg/15px-Symbol_wait.svg.png",
  "http://upload.wikimedia.org/wikipedia/commons/thumb/b/bc/Face-grin.svg/15px-Face-grin.svg.png"];
  var la=[];
  la['support']=0; la['endorse']=0;
  la['keep']=1;
  la['oppose']=2; la['overturn']=2; la['object']=2;
  la['delete']=3;
  la['neutral']=4;
  la['merge']=5; la['upmerge']=5;
  la['move']=6; la['rename']=6; la['userfy']=6; la['transwiki']=6;
  la['redirect']=7;
  la['opinion']=8; la['relist']=8; la['subst']=8; la['salt']=8; la['change']=8;
  // Note that icon 8 on the list is often used for debate-specific !votes
  la['comment']=9; la['update']=9; la['note']=9;
  la['delist']=10;
  la['question']=11;
  la['split']=12;
  la['wait']=13;
  la['bjaodn']=14;
 
  var btc=document.body.getElementsByTagName("b");
  i=btc.length;
  while(i--)
  {
    var j,k;
    j=btc[i].innerHTML.replace(/<|>|\//g, " ").split(" ");
    k=0;
    var x="";
    while(k<j.length)
    {
      if(lowerNoPunct(j[k])=="don't"||lowerNoPunct(j[k])=='not'
       ||lowerNoPunct(j[k])=='no'||lowerNoPunct(j[k])=='without') break;
      var l=la[lowerNoPunct(j[k])];
      if(l!=undefined)
      {
        x+="<img src='"+vt[l]+"' alt='*' /> ";
      }
      k++;
    }
    if(x!="") btc[i].innerHTML=x+btc[i].innerHTML;
  }
});