Jump to content

User:Cryptic/cologneblue.js

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Cryptic (talk | contribs) at 06:36, 16 June 2005. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)
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.
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 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 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 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
  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=Cryptic&limit=500&offset=0', 'Contribs'));
  td.appendChild(document.createTextNode(' | '));
  td.appendChild(addlink('Special:Specialpages', 'Special'));

  if (document.title.indexOf("Editing ") != -1)
    {
      td.appendChild(document.createTextNode(' | '));
      td.appendChild(addexplicitlink('javascript:replace()', 'Replace'));
      if (document.title.indexOf("Editing Wikipedia:Votes for deletion") != -1)
        {
          td.appendChild(document.createTextNode(' | '));
          td.appendChild(addexplicitlink('javascript:header_vfd()', 'Header'));
        }
    }
}

function do_onload()
{
  morelinks();
}

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