User:Korath/standard.js

From Wikipedia, the free encyclopedia

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.

function addlink(url, name)
{
  var na = document.createElement('a');
  na.setAttribute('href', '/wiki/' + url);
 
  var txt = document.createTextNode(name);
  na.appendChild(txt);
  return na;
}
 
function addexplicitlink(url, name)
{
  var na = document.createElement('a');
  na.setAttribute('href', url);
 
  var txt = document.createTextNode(name);
  na.appendChild(txt);
  return na;
}
 
function closevfd(bold, notbold, discuss)
{
  var txt = document.editform.wpTextbox1;
  txt.value = "{{" + "subst:vt}} '''" + bold + "'''" + notbold + discuss + ".  ~~" + "~~\n" + txt.value + "\n{{" + "subst:vb}}\n";
  txt = document.editform.wpSummary;
  txt.value = "close discussion: " + bold + notbold;
}
 
function replace()
{
  var s = prompt("Search regexp?");
  if (s)
    {
      var r = prompt("Replace regexp?");
      var txt = document.editform.wpTextbox1;
      txt.value = txt.value.replace(new RegExp(s, "g"), r);
    }
}
 
function vfdresult()
{
  var txt = document.editform.wpSummary;
  txt.value = "Vfd result";
  txt = document.editform.wpTextbox1;
  if (txt.value.length > 0)
    txt.value += '\n';
  txt.value += "==Vfd==\nOn [[April ]], [[2005]], this article was nominated for deletion.  The result was .  See [[Wikipedia:Votes for deletion/{{" +
               "subst:PAGENAME}}]] for a record of the discussion. ~~" + "~~";
  txt.focus();
}
 
function header_vfd()
{
  var start = document.title.indexOf('/'), end = document.title.indexOf(' - Edit this page - Wikipedia, the free encyclopedia');
  document.editform.wpTextbox1.value = '===[[' + document.title.substring(start + 1, end) + ']]===\n' + document.editform.wpTextbox1.value;
  document.editform.wpSummary.value = 'header';
}
 
function complete_vfd()
{
  header_vfd();
  document.editform.wpTextbox1.value += "[[User:|]] marked this vfd on , but never made a subpage or listed it on vfd.  I'm just bringing it here for resolution; do not consider this a vote. ~~" + "~~";
  document.editform.wpSummary.value = 'complete nom';
  document.editform.wpTextbox1.focus();
}
 
function relist_vfd()
{
  document.editform.wpTextbox1.value += "*'''Comment''': This was apparently either never listed on vfd or removed out of process, so I'm bringing it to today's page for resolution. ~~" + "~~";
  document.editform.wpSummary.value = 'relist';
  document.editform.wpTextbox1.focus();
}
 
function morelinks()
{
  var table = document.getElementById('topbar').getElementsByTagName('table')[0];
  var tds = table.getElementsByTagName('td');
  var td = tds[1];
  var lks = td.getElementsByTagName('a');
  var a;
  var txt;
  var lk;
 
  // Add comment link to top
  for (a = 0; a < lks.length; ++a)
    {
      txt = lks[a].childNodes[0].data;
      if (txt == "Edit this page")
        {
          txt = lks[a].getAttribute('href') + "&section=new";
          a = lks[a + 1];
          td.insertBefore(addexplicitlink(txt, "Comment"), a);
          td.insertBefore(document.createTextNode(' | '), a);
          break;
        }
    }
 
  // Remove second line, preserving "Current revision" (on the first line) and
  // "You have new messages" (replacing (Talk) in upper right) if present
  td = td.getElementsByTagName('p')[0];
  while (td.hasChildNodes())
    {
      lk = td.firstChild;
      if (lk.nodeName == 'A' && lk.firstChild.data == 'Current revision')
        {
          a = tds[1].getElementsByTagName('p')[0];
          tds[1].insertBefore(document.createTextNode(' | '), a);
          tds[1].insertBefore(lk, a);
        }
      else if (lk.nodeName == 'STRONG' && lk.firstChild.data == 'You have ')
        {
          lks = tds[2].getElementsByTagName('a');
          for (a = 0; a < lks.length; ++a)
            if (lks[a].firstChild.data == 'Talk')
              {
                lks[a].firstChild.data = 'New Messages';
                lks[a].setAttribute('style', 'font-style: italic;');
                lks[a].setAttribute('href', '/w/index.php?title=User_talk:Korath&action=history');
              }
        }
      td.removeChild(td.firstChild);
    }
 
  // Replace them
  if (document.title.indexOf("Editing Wikipedia:Votes for deletion") != -1)
    {
      td.appendChild(addexplicitlink('javascript:closevfd("keep", "", "")', 'KEEP'));
      td.appendChild(document.createTextNode(' | '));
      td.appendChild(addexplicitlink('javascript:closevfd("merge and redirect", " to [[" + prompt("Merge and redirect to?") + "]]", "")', 'MERGE'));
      td.appendChild(document.createTextNode(' | '));
      td.appendChild(addexplicitlink('javascript:closevfd("redirect", " to [[" + prompt("Redirect to?") + "]]", "")', 'REDIR'));
      td.appendChild(document.createTextNode(' | '));
      td.appendChild(addexplicitlink('javascript:closevfd("transwiki", " to " + prompt("Transwiki to?"), "")', 'TRANS'));
      td.appendChild(document.createTextNode('/'));
      td.appendChild(addexplicitlink('javascript:closevfd("transwiki", " to Wiktionary", "")', 'WIKI'));
      td.appendChild(document.createTextNode(' | '));
      td.appendChild(addexplicitlink('javascript:closevfd("speedy delete", "", "")', 'SPEEDY'));
      td.appendChild(document.createTextNode(' | '));
      td.appendChild(addexplicitlink('javascript:closevfd("no consensus", "", "; thus, the article is kept")', 'NO/C'));
      td.appendChild(document.createTextNode(' | '));
      td.appendChild(addexplicitlink('javascript:closevfd(prompt("Result?"), "", "")', 'MISC'));
      td.appendChild(document.createTextNode(' | '));
      td.appendChild(addexplicitlink('javascript:header_vfd()', 'Header'));
      td.appendChild(document.createTextNode(' | '));
      td.appendChild(addexplicitlink('javascript:complete_vfd()', 'Complete'));
      td.appendChild(document.createTextNode(' | '));
      td.appendChild(addexplicitlink('javascript:relist_vfd()', 'Relist'));
    }
  else if (document.title.indexOf("Editing ") != -1)
    {
      td.appendChild(addexplicitlink('javascript:replace()', 'Replace'));
      td.appendChild(document.createTextNode(' | '));
      td.appendChild(addexplicitlink('javascript:vfdresult()', 'VfDRslt'));
    }
  else
    {
      td.appendChild(addlink('Special:Watchlist', 'Watchlist'));
      td.appendChild(document.createTextNode(' | '));
      td.appendChild(addlink('Special:Randompage', 'Random'));
      td.appendChild(document.createTextNode(' | '));
      td.appendChild(addexplicitlink('/w/index.php?title=Special:Contributions&hideminor=0&namespace=&target=Korath&limit=500&offset=0', 'Contribs'));
      td.appendChild(document.createTextNode(' | '));
      td.appendChild(addlink('Special:Specialpages', 'Special'));
      td.appendChild(document.createTextNode(' | '));
      td.appendChild(addlink('Wikipedia:Featured picture candidates', 'FPC'));
      td.appendChild(document.createTextNode(' | '));
      td.appendChild(addlink('Wikipedia:Votes_for_deletion', 'VfD'));
      td.appendChild(document.createTextNode('/'));
      td.appendChild(addlink('Wikipedia:Votes_for_deletion/Log/Today', 'Today'));
    }
}
 
// Change section links in vfd log pages to edit the entire subpage, instead of its section
function vfdsectionlinks()
{
  var divs = document.getElementsByTagName("div");
  var a;
  var url;
  var pos;
  for (var x = 0; x < divs.length; ++x)
    if (divs[x].className == "editsection")
      {
        a = divs[x].getElementsByTagName('a')[0];
        url = a.getAttribute('href');
        pos = url.indexOf("action=edit&section=");
        if (pos != -1)
          {
            url = url.substring(0, pos + 11);
            a.setAttribute('href', url);
          }
      }
}
 
function do_onload()
{
  morelinks();
  if (document.title.indexOf("Wikipedia:Votes for deletion/Log/2") != -1)
    vfdsectionlinks();
}
 
if (window.addEventListener) 
  window.addEventListener("load", do_onload, false);
else if (window.attachEvent) 
  window.attachEvent("onload", do_onload);
 
function hide_spoilerbox(num)
{
  document.getElementById("spoilercontents_" + num).style.display="none";
  var lk = document.getElementById("spoilerlk_" + num);
  lk.replaceChild(document.createTextNode("show"), lk.firstChild);
  lk.setAttribute("href", "javascript:show_spoilerbox(" + num + ")");
}
 
function show_spoilerbox(num)
{
  document.getElementById("spoilercontents_" + num).style.display="";
  var lk = document.getElementById("spoilerlk_" + num);
  lk.replaceChild(document.createTextNode("hide"), lk.firstChild);
  lk.setAttribute("href", "javascript:hide_spoilerbox(" + num + ")");
}
 
function setup_spoilerbox(initial)
{
  var divs = document.getElementsByTagName("div");
  var box;
  var contents;
  var lk;
  var txt;
  if (divs && document.getElementById)
    for (var x = 0; x < divs.length; ++x)
      if (divs[x].className.indexOf("spoilerbox") != -1)
        {
          box = divs[x].getElementsByTagName("table")[0].getElementsByTagName("tr");
          contents = box[1];
          contents.id = "spoilercontents_" + x;
          box = box[0].getElementsByTagName("td")[0].getElementsByTagName("div")[0];
          var lk = document.createElement('a');
          if (initial)
            {
              lk.setAttribute("href", "javascript:hide_spoilerbox(" + x + ")");
              lk.appendChild(document.createTextNode("hide"));
            }
          else
            {
              lk.setAttribute("href", "javascript:show_spoilerbox(" + x + ")");
              lk.appendChild(document.createTextNode("show"));
              contents.style.display="none";
            }
          lk.id = "spoilerlk_" + x;
          box.appendChild(document.createTextNode(" ["));
          box.appendChild(lk);
          box.appendChild(document.createTextNode("]"));
        }
}
 
function load_spoilerbox()
{
  // use setup_spoilerbox(false) instead to hide spoiler boxes by default
  setup_spoilerbox(true);
}
 
if (window.addEventListener) 
  window.addEventListener("load", load_spoilerbox, false);
else if (window.attachEvent) 
  window.attachEvent("onload", load_spoilerbox);