User:Here/monobook.js

From Wikipedia, the free encyclopedia

Note: After saving, you have to bypass your browser's cache to see the changes. Firefox/Mozilla/Safari: hold down Shift while clicking Reload (or press Ctrl-Shift-R), Internet Explorer: press Ctrl-F5, Opera/Konqueror: press F5.

If a message on your talk page led you here, please be wary of who left it. The code below could contain malicious content capable of compromising your account; if your account appears to be compromised, it will be blocked. If you are unsure whether the code is safe, you can ask at the appropriate village pump.
/*******************************
 * 
 * See [[Wikipedia:WikiProject_User_scripts]] and [[m:Help:User_style]] 
 * for more info on User script customization.
 * 
 * Included, in order:
 * 1. Auto AFD script [[Wikipedia:WikiProject_User_scripts/Scripts/AutoAFD.js]]
 * 2. godmode-light.js ( http://sam.zoy.org/wikipedia/ )
 *   godmode-light.js 21.06.2006 [[User:Olliminatore/godmode-light.js]]
 *   see aso, [[User:Sam Hocevar]]
 * 3. nav tabs at bottom of page
 *   requires css compliment (see [[m:User_Styles/bottom_tabs]] )
 * 4. (broken/removed) Revert tools by Lorian [[Wikipedia:WikiProject_User_scripts/Scripts/Revert_tools]]
 * 5. Google search tool. [[User:Henrik/sandbox/google-search]]
 * 6. Recent revisions, [[nl:Gebruiker:JePe/recentrevisionsbox.js]]
 **********************************/
//<nowiki>
//
// -----------------------------------------------------------------------------
// Auto AFD script
// [[Wikipedia:WikiProject_User_scripts/Scripts/AutoAFD.js]]
// adds tab to nominate page for deletion on AfD
// -----------------------------------------------------------------------------
//Please include the two following lines
//Modified version of AutoVFD script to work with AFD
//Script Modified by User:Jtkiefer
//Further modified to work with [[WP:AFDC]] by [[User:ais523]]

// This needs to change depending on skin used.
function add_link(url, name)
{
  var na = document.createElement('a');
  na.setAttribute('href', url);
  na.appendChild(document.createTextNode(name));

  var li = document.createElement('li');
  li.appendChild(na);

  var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
  tabs.appendChild(li);
}

function strip_namespace(target)
{
  var colon = target.indexOf(':');
  if (colon != -1)
    {
      var spaces = new Array('User', 'Wikipedia', 'Image', 'MediaWiki', 'Template', 'Help', 'Category');
      var ns = target.substring(0, colon);
      if (ns == '' || ns == 'Talk')
        return target.substring(colon + 1);
      else
        for (var i = 0; i < spaces.length; ++i)
          {
            if (ns == spaces[i]
                || ns == spaces[i] + '_talk')
              return target.substring(colon + 1);
          }
    }

  return target;
}

function afd()
{
  document.editform.wpTextbox1.value = '{{' + 'subst:afd}}\n' + document.editform.wpTextbox1.value;
  document.editform.wpSummary.value = 'afd';

  var target = document.editform.action;
  target = target.substring(target.indexOf('title=') + 6,
                            target.lastIndexOf('&action=submit'));

  var months = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
  var date = new Date();
  date = date.getUTCFullYear() + '_' + months[date.getUTCMonth()] + '_' + date.getUTCDate();

  var pagename = strip_namespace(target);

  window.open('/w/index.php?title=Wikipedia:Articles_for_deletion/' + pagename + '&action=edit&fakeaction=afdsub&faketarget=' + target,
              'Afd ' + unescape(target),
              'status,toolbar,location,menubar,directories,resizeable,scrollbars');
  window.open('/w/index.php?title=Wikipedia:Articles_for_deletion/Log/' + date + '&action=edit&fakeaction=afdlist&faketarget=' + pagename,
              'AfdLog ' + unescape(target),
              'status,toolbar,location,menubar,directories,resizeable,scrollbars');
}

function autoafd()
{
  if (document.title.indexOf('Editing ') == 0)
    {
      var action = '';
      var target = '';
      if (location.search)
        {
          var l = location.search.substring(1).split('&');
          for (var i = 0; i < l.length; ++i)
            {
              var eq = l[i].indexOf('=');
              var name = l[i].substring(0, eq);
              if (name == 'fakeaction')
                action = l[i].substring(eq + 1);
              else if (name == 'faketarget')
                target = unescape(l[i].substring(eq + 1)).replace(/_/g, ' ');
            }
        }

      if (action == 'afdlist')
        {
          document.editform.wpTextbox1.value += '{{' + 'Wikipedia:Articles for deletion/' + target + '}}\n';
          document.editform.wpSummary.value = '[[Wikipedia:Articles for deletion/' + target + ']]';
        }
      else if (action == 'afdsub')
        {
          if (document.editform.wpTextbox1.value.length > 0)
            {
              target = document.editform.action;
              target = unescape(target.substring(target.indexOf('title=') + 6, target.lastIndexOf('&action=submit'))).replace(/_/g, ' ');
              window.alert("There's an old afd at the default location already.\n\n" +
                           'Please either move it out of the way (and update existing links to it), or file the Afd by hand in another location (such as [[' + target + ' (2)]]).');
            }
          else
            document.editform.wpTextbox1.value += '===[[' + target + ']]===\n' +
              '{{REMOVE THIS TEMPLATE WHEN CLOSING THIS AfD|>>add cat here<<}}\n'+
              'Reason for nomination. ~~' + '~~\n*\n*\n*\n';
        }
      else
        add_link('javascript:afd()', 'Afd');
    }
}

addOnloadHook(autoafd);

//////////////////////////////////
//////////////////////////////////
/*
-----------------------------------------------------------------------------
God-like Monobook skin
(c) 2005 Sam Hocevar <sam@zoy.org>
$Id: godmode-light.js 1106 2006-04-03 20:25:37Z sam $
-----------------------------------------------------------------------------

17.02.2006  fixes by Littl  (2 bugs)
18.03.2006  fixes by NK  (fix for new MediaWiki version)
08.04.2006  fixes by PDD  (another fix for new MediaWiki version)
30.04.2006  (D, PDD, Olliminatore)  (another fix for new MediaWiki version, &)
02.05.2006  (Kohl - another fix for new MediaWiki version, link fix, german error msg added)
03.05.2006  (Olliminatore - fix for IE)
21.06.2006  (Voice of All - fix "X, not X is the last editor" bug and reduce history limit (faster))
-----------------------------------------------------------------------------
Language support, taken from phase3/languages
-----------------------------------------------------------------------------

*///

 
var rollbacklink = 'rollback';
var cantrollback = 'Cannot revert edit; last contributor is only author of this page.';
var alreadyrolled = 'Cannot rollback last edit of [[$1]] by [[User:$2|$2]] ([[User talk:$2|Talk]]); someone else has edited or rolled back the page already. Last edit was by [[User:$3|$3]] ([[User talk:$3|Talk]]). ';
var revertpage = 'Reverted edits by [[Special:Contributions/$2|$2]] to last version by $1';

 // error messages  language support (en:, de:)
var ERROR_MESSAGE = 'No ['+rollbacklink+'] Button can be produced. This can happen by new MediaWiki version or other changes at the software. Inform please one of the authors of the Godmode script.';
var UNABLE_TO_DETERMINE_VANDAL = 'The vandale cannot be determined.';
var NOT_TOP_VERSION = 'Cannot revert edit; That is not the last version difference.';
var ERROR_XML = 'Giving up! :( Cannot create an XMLHTTP instance.';
var PARAMETER_MISSING = 'Cannot display revert button; A parameter is missing.';

switch (wgUserLanguage){
 case 'fr':
  rollbacklink = 'révoquer';
  cantrollback = 'Impossible de révoquer: dernier auteur est le seul à avoir modifié cet article';
  alreadyrolled = 'Impossible de révoquer la dernière modification de [[$1]] par [[User:$2|$2]] ([[User talk:$2|Talk]]); quelqu\'un d\'autre à déjà modifer ou révoquer l\'article. La dernière modificaion était de [[User:$3|$3]] ([[User talk:$3|Talk]]). '; // lol @ pathetic grammar
  revertpage = "Révocation des modifications de [[Special:Contributions/$2|$2]] et restauration d'une précédente version de $1";
  break;
 case 'de':
  rollbacklink = 'Zurücksetzen';
  cantrollback = 'Die Änderung kann nicht zurückgenommen werden; der letzte Autor ist der einzige.';
  alreadyrolled = 'Die Zurücknahme des Artikels [[$1]] von [[Benutzer:$2|$2]] ([[Benutzer Diskussion:$2|Diskussion]]) ist nicht möglich, da eine andere Änderung oder Rücknahme erfolgt ist. Die letzte Änderung ist von [[Benutzer:$3|$3]] ([[Benutzer Diskussion:$3|Diskussion]])';
        revertpage = 'Änderungen von [[Benutzer:$2|$2]] ([[Spezial:Contributions/$2|Beiträge]]) rückgängig gemacht und letzte Version von $1 wiederhergestellt';
        // Fehlermeldungen 
        ERROR_MESSAGE = 'Es kann kein ['+rollbacklink+']-Button erzeugt werden. Dies kann durch eine neue MediaWiki-Version oder andere Änderungen an der Software verursacht sein. Bitte einen der Autoren des Godmode-Skripts benachrichtigen.';
        UNABLE_TO_DETERMINE_VANDAL= 'Der Vandale kann nicht bestimmt werden.';
        NOT_TOP_VERSION = 'Zurücksetzen nicht möglich: Das ist nicht der letzte Versionsunterschied';
        PARAMETER_MISSING = 'Für diese Seite fehlt ein Parameter.';
  break;
 case 'es':
  rollbacklink = 'Revertir';
  cantrollback = 'No se pueden revertir las ediciones; el último colaborador es el único autor de este artículo.';
  alreadyrolled = 'No se puede revertir la última edición de [[$1]] por [[Colaborador:$2|$2]] ([[Colaborador Discusión:$2|Discusión]]); alguien más ya ha editado o revertido esa página. La última edición fue hecha por [[Colaborador:$3|$3]] ([[Colaborador Discusión:$3|Discusión]]). ';
  revertpage = 'Revertida a la última edición de $1';
  break;
 case 'it':
  rollbacklink = 'rollback';
  cantrollback = 'Impossibile tornare ad una versione precedente: l\'ultima modifica è stata apportata dall\'unico utente che abbia lavorato a questo articolo.';
  //alreadyrolled = '';
  revertpage = 'Riportata alla revisione precedente da $1';
  break;
 case 'pt':
  rollbacklink = 'voltar';
  cantrollback = 'Não foi possível reverter a edição; o último contribuidor é o único autor deste artigo.';
  alreadyrolled = 'Não foi possível reverter as edições de [[$1]] por [[User:$2|$2]] ([[User talk:$2|Talk]]); alguém o editou ou já o reverteu. A última edição foi de [[User:$3|$3]] ([[User talk:$3|Conversar com ele]]). ';
  revertpage = 'Revertidas edições por [[Special:Contributions/$2|$2]], para a última versão por $1';
  break
};

// -----------------------------------------------------------------------------
// XMLHttpRequest support
// -----------------------------------------------------------------------------
if (document.implementation.createDocument) var gml_xmlparser = new DOMParser();
var gml_xmlhttp;

function gml_XMLParse(string){
        if (document.implementation.createDocument)
                return gml_xmlparser.parseFromString(string, "text/xml");
        else if (IE){
                var gml_xmldoc = new ActiveXObject("Microsoft.XMLDOM");
                //var gml_xmldoc = new ActiveXObject("Msxml2.DOMDocument.3.0");
                gml_xmldoc.async = false;
                //gml_xmldoc.validateOnParse = true;
                ret = gml_xmldoc.loadXML(string);
                myErr = gml_xmldoc.parseError;
                if (myErr.errorCode || !ret){
                        showError("Error: " + ERROR_XML + myErr.reason);
                        return null;
                }
                return gml_xmldoc.documentElement
        }
        return null
}

function HTTPClient(){
  var http = false;
  if(window.XMLHttpRequest) http = new XMLHttpRequest();
  else if (IE){
    try{
      http = new ActiveXObject("Msxml2.XMLHTTP")
    } catch(e){
      try{
        http = new ActiveXObject("Microsoft.XMLHTTP")
      } catch(e){}
    }
  }
  return http
};

// -----------------------------------------------------------------------------
// MD5 hash calculator
// -----------------------------------------------------------------------------
// Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.
// Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
// Distributed under the BSD License
// See http://pajhome.org.uk/crypt/md5 for more info.
// -----------------------------------------------------------------------------
var hexcase = 0;
var b64pad = "";
var chrsz = 8;

function hex_md5(s){return binl2hex(core_md5(str2binl(s), s.length * chrsz))};

function core_md5(x,len){
 x[len>>5]|=0x80<<((len)% 32);
 x[(((len+64)>>>9)<<4)+14]=len;
 var a=1732584193, b=-271733879, c=-1732584194, d=271733878;
 for(var i=0;i<x.length;i+=16){
  var olda=a, oldb=b, oldc=c, oldd=d;
  a=md5_ff(a,b,c,d,x[i+0],7,-680876936);d=md5_ff(d,a,b,c,x[i+1],12,-389564586);c=md5_ff(c,d,a,b,x[i+2],17,606105819);b=md5_ff(b,c,d,a,x[i+3],22,-1044525330);a=md5_ff(a,b,c,d,x[i+4],7,-176418897);d=md5_ff(d,a,b,c,x[i+5],12,1200080426);c=md5_ff(c,d,a,b,x[i+6],17,-1473231341);b=md5_ff(b,c,d,a,x[i+7],22,-45705983);a=md5_ff(a,b,c,d,x[i+8],7,1770035416);d=md5_ff(d,a,b,c,x[i+9],12,-1958414417);c=md5_ff(c,d,a,b,x[i+10],17,-42063);b=md5_ff(b,c,d,a,x[i+11],22,-1990404162);a=md5_ff(a,b,c,d,x[i+12],7,1804603682);d=md5_ff(d,a,b,c,x[i+13],12,-40341101);c=md5_ff(c,d,a,b,x[i+14],17,-1502002290);b=md5_ff(b,c,d,a,x[i+15],22,1236535329);
  a=md5_gg(a,b,c,d,x[i+1],5,-165796510);d=md5_gg(d,a,b,c,x[i+6],9,-1069501632);c=md5_gg(c,d,a,b,x[i+11],14,643717713);b=md5_gg(b,c,d,a,x[i+0],20,-373897302);a=md5_gg(a,b,c,d,x[i+5],5,-701558691);d=md5_gg(d,a,b,c,x[i+10],9,38016083);c=md5_gg(c,d,a,b,x[i+15],14,-660478335);b=md5_gg(b,c,d,a,x[i+4],20,-405537848);a=md5_gg(a,b,c,d,x[i+9],5,568446438);d=md5_gg(d,a,b,c,x[i+14],9,-1019803690);c=md5_gg(c,d,a,b,x[i+3],14,-187363961);b=md5_gg(b,c,d,a,x[i+8],20,1163531501);a=md5_gg(a,b,c,d,x[i+13],5,-1444681467);d=md5_gg(d,a,b,c,x[i+2],9,-51403784);c=md5_gg(c,d,a,b,x[i+7],14,1735328473);b=md5_gg(b,c,d,a,x[i+12],20,-1926607734);
  a=md5_hh(a,b,c,d,x[i+5],4,-378558);d=md5_hh(d,a,b,c,x[i+8],11,-2022574463);c=md5_hh(c,d,a,b,x[i+11],16,1839030562);b=md5_hh(b,c,d,a,x[i+14],23,-35309556);a=md5_hh(a,b,c,d,x[i+1],4,-1530992060);d=md5_hh(d,a,b,c,x[i+4],11,1272893353);c=md5_hh(c,d,a,b,x[i+7],16,-155497632);b=md5_hh(b,c,d,a,x[i+10],23,-1094730640);a=md5_hh(a,b,c,d,x[i+13],4,681279174);d=md5_hh(d,a,b,c,x[i+0],11,-358537222);c=md5_hh(c,d,a,b,x[i+3],16,-722521979);b=md5_hh(b,c,d,a,x[i+6],23,76029189);a=md5_hh(a,b,c,d,x[i+9],4,-640364487);d=md5_hh(d,a,b,c,x[i+12],11,-421815835);c=md5_hh(c,d,a,b,x[i+15],16,530742520);b=md5_hh(b,c,d,a,x[i+2],23,-995338651);
  a=md5_ii(a,b,c,d,x[i+0],6,-198630844);d=md5_ii(d,a,b,c,x[i+7],10,1126891415);c=md5_ii(c,d,a,b,x[i+14],15,-1416354905);b=md5_ii(b,c,d,a,x[i+5],21,-57434055);a=md5_ii(a,b,c,d,x[i+12],6,1700485571);d=md5_ii(d,a,b,c,x[i+3],10,-1894986606);c=md5_ii(c,d,a,b,x[i+10],15,-1051523);b=md5_ii(b,c,d,a,x[i+1],21,-2054922799);a=md5_ii(a,b,c,d,x[i+8],6,1873313359);d=md5_ii(d,a,b,c,x[i+15],10,-30611744);c=md5_ii(c,d,a,b,x[i+6],15,-1560198380);b=md5_ii(b,c,d,a,x[i+13],21,1309151649);a=md5_ii(a,b,c,d,x[i+4],6,-145523070);d=md5_ii(d,a,b,c,x[i+11],10,-1120210379);c=md5_ii(c,d,a,b,x[i+2],15,718787259);b=md5_ii(b,c,d,a,x[i+9],21,-343485551);
  a=safe_add(a,olda);
  b=safe_add(b,oldb);
  c=safe_add(c,oldc);
  d=safe_add(d,oldd)
 }
 return Array(a,b,c,d)
};

function md5_cmn(q,a,b,x,s,t){return safe_add(bit_rol(safe_add(safe_add(a,q),safe_add(x,t)),s),b)};
function md5_ff(a,b,c,d,x,s,t){return md5_cmn((b&c)|((~b)&d),a,b,x,s,t)};
function md5_gg(a,b,c,d,x,s,t){return md5_cmn((b&d)|(c&(~d)),a,b,x,s,t)};
function md5_hh(a,b,c,d,x,s,t){return md5_cmn(b^c^d,a,b,x,s,t)};
function md5_ii(a,b,c,d,x,s,t){return md5_cmn(c^(b|(~d)),a,b,x,s,t)};

function safe_add(x, y){
  var lsw = (x & 0xFFFF) + (y & 0xFFFF), msw = (x >> 16) + (y >> 16) + (lsw >> 16);
  return (msw << 16) | (lsw & 0xFFFF)
};

function bit_rol(num, cnt){return (num << cnt) | (num >>> (32 - cnt))};

function str2binl(str){
  var bin = Array();
  var mask = (1 << chrsz) - 1;
  for(var i = 0; i < str.length * chrsz; i += chrsz)
    bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32);
  return bin
};

function binl2hex(binarray){
  var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
  var str = "";
  for(var i = 0; i < binarray.length * 4; i++)
    str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +
           hex_tab.charAt((binarray[i>>2] >> ((i%4)*8  )) & 0xF);
  return str
};

// -----------------------------------------------------------------------------
// Our nice Revert functions
// -----------------------------------------------------------------------------
var gml_vandal, gml_editor, gml_url;
var IE=(window.ActiveXObject)?true:false;

function PerformRevert(){
  var l, token = '', revert = false;

        if (!(window.bodyContent = document.getElementById('bodyContent')))      
                window.bodyContent = document.getElementById('article');

  // Look for '&fakeaction=rollback' in URL
  gml_url = location.pathname;
  l = location.search.substring(1).split('&');
  for (i = 0; i < l.length; i++){
    var n = l[i].indexOf('=');
    var name = l[i].substring(0, n);
    if (name == 'fakeaction'){
      if (l[i].substring(n + 1) == 'rollback') revert = true
    }
    else if (name == 'vandal') gml_vandal = decodeURI(l[i].substring(n + 1));
    else if (name == 'token') token = decodeURI(l[i].substring(n + 1));
    else if (name == 'title') gml_url += '?' + l[i];
  }
  if (!revert) return;
  bodyContent.innerHTML = 'Please wait, reverting edits by ' + gml_vandal + '...';
  // Avoid XSS kiddies by using a special token
  if (token == '' || token != hex_md5(gml_url + gml_vandal + document.cookie))
    return bodyContent.innerHTML += '<br />Bad authentication token!';
  gml_xmlhttp = HTTPClient();
  if (!gml_xmlhttp) return showError(ERROR_XML);
  history_url = gml_url + '&action=history&limit=25';  //
  bodyContent.innerHTML += '<br />Getting article history (' + history_url + ')...';
  gml_xmlhttp.open("GET", history_url, true);
  gml_xmlhttp.onreadystatechange = RevertStepTwo;
  gml_xmlhttp.send(null)
};

function parseXMLhack(xml){  // fixed: Hack for a MediaWiki bugs
        xml = xml.replace(/<body .*\"ns-(.*)\">/, '<body class="ns-$1">');
        rer = xml.match(/<h1 .*<\/h1>/)[0].replace(/&/g, '&');
        if (rer) xml = xml.replace(/<h1 .*<\/h1>/, rer);
        return xml
};

function RevertStepTwo(){
        if (gml_xmlhttp.readyState != 4) return;
        var l, oldid = false;
         // Get the vandal and new editor names
        gml_vandal = gml_vandal.replace(/_/g, ' ');
        gml_editor = '',
        ERROR_MESSAGE = 'failure';
        xml = parseXMLhack(gml_xmlhttp.responseText);
        xmlDoc = gml_XMLParse(xml);
        if (!xmlDoc || !xmlDoc.hasChildNodes())
                return bodyContent.innerHTML +=
                '<br />Failed to parse XML data returned by the server.' +
                '<br /><b>Hint: try to disable both "Enable section editing by right-clicking on section titles (JavaScript)" and "Edit pages on double click (JavaScript)" in your editing preferences until a proper fix is found<\/b>.'+ 
                '<br />Dump of the unparseable page : <br />' + xml.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
                // IE: added by Olliminatore 03.05.2006
        l = (IE)?xmlDoc.selectSingleNode('//*[@id="pagehistory"]').childNodes:
                xmlDoc.getElementById('pagehistory').getElementsByTagName('li');
        name = l[0].getElementsByTagName('span')[0].getElementsByTagName('a')[0].firstChild.nodeValue.replace(/_/g, ' ');
        if (name == gml_vandal){
                for (i = 1; i < l.length; i++){
                        name = l[i].getElementsByTagName('span')[0].getElementsByTagName('a')[0].firstChild.nodeValue.replace(/_/g, ' ');
                        if (name != gml_vandal){
                                oldid = l[i].getElementsByTagName('input')[0].getAttribute('value');
                                gml_editor = name;
                                break
                        }
                }
        }
        else {//if (!oldid)
          return showError('Last editor is ' + name + ', not ' + gml_vandal + '!');
        }
        if (gml_editor == '') {// FIXME: if over 25 edits, than next page?action=history
                return showError(gml_vandal + ' is the only editor!');
        }
        gml_xmlhttp = HTTPClient();
        if (!gml_xmlhttp) return showError(ERROR_XML);
        bodyContent.innerHTML += '<br />Getting article edit form (GET' + gml_url + '&action=edit&oldid=' + oldid + ')...';
        gml_xmlhttp.open('GET', gml_url + '&action=edit&oldid=' + oldid, true);
        gml_xmlhttp.onreadystatechange = RevertStepThree;
        gml_xmlhttp.send(null)
};

function RevertStepThree(){
  if (gml_xmlhttp.readyState != 4) return;
  var form, newform, l;
  // Insert the downloaded form in our current page, using
  // only hidden form inputs.
        // IE: added by Olliminatore 03.05.2006
        xmlDoc = gml_XMLParse(parseXMLhack(gml_xmlhttp.responseText));
        form = (IE)? xmlDoc.selectSingleNode('//*[@id="editform"]') :
                xmlDoc.getElementById('editform');
        l = form.getElementsByTagName('textarea');
        newform = document.createElement('form');
        for (i = l.length; i--;){
                var t = document.createElement('input');
                t.type = 'hidden',
                t.name = l[i].getAttribute('name');
                t.value = (IE)?l[i].nodeTypedValue:l[i].value;  //nodeValue don't work for FF
                newform.appendChild(t)
        }
        l = form.getElementsByTagName('input');
        for (i = l.length; i--;){
        liname = l[i].getAttribute('name');
                if (liname == 'wpSummary')
                        l[i].setAttribute('value', revertpage.replace(/\$1/g, gml_editor).replace(/\$2/g, gml_vandal));
                else if (liname == 'wpMinoredit') l[i].setAttribute('value', '1');
                else if (liname == 'wpWatchthis'){
                        if (!l[i].getAttribute('checked')) continue; // Don’t touch the "watch" status
                        l[i].setAttribute('value', "on")
    }
    else if (liname == 'wpPreview' || liname == 'wpDiff') continue;
                l[i].setAttribute('type', 'hidden');
                if (IE) newform.insertAdjacentHTML('beforeEnd', l[i].xml);
                else newform.appendChild(l[i]);
        }
        newform.style.visibility='hidden'; // not really needed
        newform.name = form.getAttribute('name');
        newform.method = form.getAttribute('method');
        newform.id = form.getAttribute('id');
        newform.action = form.getAttribute('action');
        bodyContent.innerHTML += '<br />Submitting form...';
        bodyContent.appendChild(newform);
        // Submit the form
        newform.submit()
};

// -----------------------------------------------------------------------------
// Add revert buttons to the page
// -----------------------------------------------------------------------------
function AddRevertButtons(){
        var l, article = '', vandal;
        this._appendLink = function (node,article,vandal){
                // node = strong element
                link = document.createElement('a')
                link.setAttribute('href', article + '&fakeaction=rollback&vandal=' + encodeURI(vandal) + '&token=' + hex_md5(article + vandal + document.cookie));
                link.appendChild(document.createTextNode(rollbacklink));
                node.appendChild(document.createTextNode(' ['));
                node.appendChild(link);
                node.appendChild(document.createTextNode(']'));         
        }
        // Add 'revert' links to a contributions page
                var contribution_pos = location.href.indexOf(':Contributions') + 14;
                if (contribution_pos != 13){
                        var a, c;
                        if (location.href.indexOf('target=',contribution_pos) == -1){ // after /wiki/Spezial:Contributions/?
                                c = location.href.substr(contribution_pos); // content user
                                if (c.length < 2)
                                        return bodyContent.innerHTML += '<p style="color: RosyBrown;"><small>Godmode Info: ' + PARAMETER_MISSING + '<\/small><\/p>';
                        }
                c = document.getElementById('contentSub');
                a = c.getElementsByTagName('a');
                // (1. Version, von Sam Hocevar)
                //if (a.length >= 2) vandal = a[0].innerHTML; (clasht leider mit dem Mark-Admin-Skript)
                //else vandal = c.innerHTML.replace(/ \(.*/, '').replace(/.* /, '');
                // (2. Version, von Littl)
                // if (a.length == 2) vandal = c.innerHTML.replace(/ \(.*/,'').replace(/.* /,'');
                // else vandal = c.innerHTML.replace(/ \(.*/, '').replace(/.*">/,'').replace(/<.*/,'');
                // (3. Version, von PDD)
                if (a.length == 4) // four anchors in contentSub -> registered  User
                        vandal = a[0].innerHTML;
                else if (a.length == 3) // three  anchors in contentSub -> IP
                        vandal = c.innerHTML.replace(/ \(.*/, '').replace(/^[\D]*/,''); //FIXME: need optimizing
                else // sonstige Fälle (sollte es aber eigentlich nicht geben)
                        vandal = c.innerHTML.replace(/ \(.*/, '').replace(/.*>/,'').replace(/<.*/,'');
                if (!vandal) return showError(UNABLE_TO_DETERMINE_VANDAL);
                l = bodyContent.getElementsByTagName('li');
                for (i = 0; i < l.length; i++){
                        var t = l[i].innerHTML;
                        // If we are already a sysop on this wiki, abort
                        if (t.indexOf('>' + rollbacklink + '<\/a>]') != -1) return;
                        if (t.indexOf('<strong>(') != -1 || t.indexOf('<strong> (') != -1) {
                         article = l[i].getElementsByTagName('a')[0].href.split('&')[0].replace(/[^\/]*\/\/[^\/]*/, '');
                         this._appendLink(l[i].lastChild, article, vandal);
                        }
                }
        }
        // Add 'revert' links to a diff page
        else if (location.href.indexOf('&diff=') != -1){
                l = bodyContent.getElementsByTagName('td');
                for (i = 0; i < l.length; i++){
                        if (l[i].className == 'diff-otitle')
                                article = l[i].getElementsByTagName('a')[0].href.split('&')[0].replace(/[^\/]*\/\/[^\/]*/, '');
                        else if (l[i].className == 'diff-ntitle'){
                                var toplink = l[i].getElementsByTagName('a')[0].href;
                                // (href-innerHTML Version by  Olliminatore)
                                vandal = l[i].getElementsByTagName('a')[2].innerHTML // fixed: [1]-[2] 31.05.2006 
                                if (article != '' && toplink.indexOf('oldid=') == -1){
                                        this._appendLink(l[i].firstChild, article, vandal);
                                        if (!vandal) return showError(UNABLE_TO_DETERMINE_VANDAL);
                                }
                                else
                                        bodyContent.innerHTML += '<p style="color: RosyBrown;"><small>Godmode Info: ' + NOT_TOP_VERSION + '<\/small><\/p>';
                                break;
                        }
                }
        }
};
 
function showError(msg){ // show error message with red border
        msg = '<p style="background-color: Maroon; color: White; border: solid Red; padding: 1ex; font: bold 90% system">Godmode Warning: ' + msg + ' (' + ERROR_MESSAGE + ')<\/p>';
        bodyContent.innerHTML = msg + bodyContent.innerHTML;
}

// -----------------------------------------------------------------------------
// Modify the page once it is loaded
// -----------------------------------------------------------------------------
addOnloadHook(PerformRevert); // limited load possible?
addOnloadHook(AddRevertButtons);

// END godmode-light.js

/////////////////////////////////
// tabs at the bottom of the page
// requires css compliment (see [[m:User_Styles/bottom_tabs]] )

function morelinks() {
  var tabs = document.getElementById('p-cactions').cloneNode(true);
  tabs.id = 'mytabs';
  var listitems = tabs.getElementsByTagName('LI');
  for (i=0;i<listitems.length;i++) {
    if(listitems[i].id) listitems[i].id = 'mytabs-' + listitems[i].id;
  }
  document.getElementById('column-content').appendChild(tabs);
}
if (window.addEventListener) window.addEventListener("load",morelinks,false);
else if (window.attachEvent) window.attachEvent("onload",morelinks);

// END Nav Tabs at bottom of page


//////////////////////////////////////////////
// Revert tools by Lorian
////////////////////////////////////////////////
//On diff pages this script replaces ''(Difference between revisions)''with
//different tools for reverting the edit and warning the user that made the edit.
//For instructions see talk page.
// Revert tools by Lorian
/*
function getElementsByClass(searchClass,node,tag) {
  // Function from http://www.dustindiaz.com/getelementsbyclass/
  var classElements = new Array();
  if ( node == null )
    node = document;
  if ( tag == null )
    tag = '*';
  var els = node.getElementsByTagName(tag);
  var elsLen = els.length;
  var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
  for (i = 0, j = 0; i < elsLen; i++) {
    if ( pattern.test(els[i].className) ) {
      classElements[j] = els[i];
      j++;
    }
  }
  return classElements;
}

// _GET code from NoGray JS Library http://www.nogray.com/new_site/
var _GET = new Array();
var _uri = location.href;

var _temp_get_arr = _uri.substring(_uri.indexOf('?')+1, _uri.length).split("&");

var _temp_get_arr_1 = new Array();

for(_get_arr_i=0; _get_arr_i<_temp_get_arr.length; _get_arr_i++){
  _temp_get_arr_1 = _temp_get_arr[_get_arr_i].split("=");
  _GET[decodeURI(_temp_get_arr_1[0])] = decodeURI(_temp_get_arr_1[1]);
}

delete _uri; delete _temp_get_arr; delete _temp_get_arr_1;

function getMessage (where, user1, user2) {
  var message = prompt ('What message would you like to leave?', '');
  window.location = 'http://en.wikipedia.org/w/index.php?title=' + _GET['title'] + '&action=edit&oldid=' + _GET['oldid'] + '&'+where+'=2&user1='+user1+'&user2='+user2+'&message='+message;
}

addOnloadHook(function (){
  if (location.href.match(/diff=/)) {
    // Get username of submitter
    var user1 = getElementsByClass('diff-otitle',null,'td'); user1 = user1[0].getElementsByTagName('a')[2].innerHTML;
    var user2 = getElementsByClass('diff-ntitle',null,'td'); 
    if (user2[0].getElementsByTagName('a')[2].innerHTML == 'undo')
        user2 = user2[0].getElementsByTagName('a')[3].innerHTML;
    else
        user2 = user2[0].getElementsByTagName('a')[2].innerHTML;
    document.getElementById('contentSub').innerHTML = '(<a href="http://en.wikipedia.org/w/index.php?title=' + _GET['title'] + '&action=edit&oldid=' + _GET['oldid'] + '&revert=1&user1='+user1+'&user2='+user2+'">Revert</a> / <a href="javascript:var message = getMessage(\'revert\', \''+user1+'\', \''+user2+'\');">Message</a>) (<a href="http://en.wikipedia.org/w/index.php?title=' + _GET['title'] + '&action=edit&oldid=' + _GET['oldid'] + '&vandalism=1&user1='+user1+'&user2='+user2+'">Vandalism</a> / <a href="javascript:var message = getMessage(\'vandalism\', \''+user1+'\', \''+user2+'\');">Message</a>) (Warn: <a href="http://en.wikipedia.org/w/index.php?title=User_talk:'+user2+'&action=edit&section=new&warn=1">Test</a> / <a href="http://en.wikipedia.org/w/index.php?title=User_talk:'+user2+'&action=edit&section=new&warn=2">Blatant</a> / <a href="http://en.wikipedia.org/w/index.php?title=User_talk:'+user2+'&action=edit&section=new&warn=3">Nonsense</a> / <a href="http://en.wikipedia.org/w/index.php?title=User_talk:'+user2+'&action=edit&section=new&warn=4">Blanking</a>)';
  } else if (location.href.match(/revert=1/)) {
    document.getElementById('wpSummary').value = 'Reverted edits by [[Special:Contributions/'+_GET['user2']+'|'+_GET['user2']+']] to version ' + _GET['oldid']+' by [[Special:Contributions/'+_GET['user1']+'|'+_GET['user1']+']]';
    document.getElementById('editform').submit();
  } else if (location.href.match(/revert=2/)) {
    document.getElementById('wpSummary').value = 'Reverted edits by [[Special:Contributions/'+_GET['user2']+'|'+_GET['user2']+']] to version ' + _GET['oldid']+' by [[Special:Contributions/'+_GET['user1']+'|'+_GET['user1']+']] ('+_GET['message']+')';
    document.getElementById('editform').submit();
  } else if (location.href.match(/vandalism=1/)) {
    document.getElementById('wpSummary').value = 'Reverted vandalism by [[Special:Contributions/'+_GET['user2']+'|'+_GET['user2']+']] to version ' + _GET['oldid']+' by [[Special:Contributions/'+_GET['user1']+'|'+_GET['user1']+']]';
    document.getElementById('editform').submit();
  } else if (location.href.match(/vandalism=2/)) {
    document.getElementById('wpSummary').value = 'Reverted vandalism by [[Special:Contributions/'+_GET['user2']+'|'+_GET['user2']+']] to version ' + _GET['oldid']+' by [[Special:Contributions/'+_GET['user1']+'|'+_GET['user1']+']] ('+_GET['message']+')';
    document.getElementById('editform').submit();
  } else if (location.href.match(/warn=1/)) {
    document.getElementById('wpSummary').value = 'testing...';
    document.getElementById('wpTextbox1').value = '{{sub'+'st:test}} ~~'+'~~';
    document.getElementById('editform').submit();
  } else if (location.href.match(/warn=2/)) {
    document.getElementById('wpSummary').value = 'Vandalism warning';
    document.getElementById('wpTextbox1').value = '{{sub'+'st:blatantvandal}} ~~'+'~~';
    document.getElementById('editform').submit();
  } else if (location.href.match(/warn=3/)) {
    document.getElementById('wpSummary').value = 'Vandalism warning';
    document.getElementById('wpTextbox1').value = '{{sub'+'st:test2}} ~~'+'~~';
    document.getElementById('editform').submit();
  } else if (location.href.match(/warn=4/)) {
    document.getElementById('wpSummary').value = 'Vandalism warning';
    document.getElementById('wpTextbox1').value = '{{sub'+'st:test2a}} ~~'+'~~';
    document.getElementById('editform').submit();
  }
});
*/
// END Revert tools

////////////////////////////////
//  Allow google search of en.wikipedia in search bar.
////////////////////////////////
 // [[User:Henrik/sandbox/google-search]] (please include this line)
 function install_search()
 {
 document.getElementById('searchBody').innerHTML+='<div>'+
 '<FORM method=get action="http://www.google.com/search">'+
 '<input type=hidden name="ie" value="UTF-8" /><input type=hidden name="oe" value="UTF-8" />'+
 '<INPUT id="searchInput" name="q" type="text" accesskey="f" value="" />'+
 '<input type="hidden" name="domains" value="en.wikipedia.org" />'+
 '<input type=radio name=sitesearch value="">Web'+
 '<input type=radio name=sitesearch value="en.wikipedia.org" checked />WP'+
 '<INPUT type="submit" name="btnG" VALUE="Google Search"  /></FORM></div>';
 }
 addOnloadHook(install_search);

// END Google search tool

// BEGIN Recent revisions

// (nl) Dit script leest de meest recente bewerkingen van een pagina
// uit de MediaWiki API en plaatst die in een box in de zijbalk
// boven de navigatie na het indrukken van een knop. In de box staan de
// gebruikersnamen met een link naar de betreffende paragraaf. 
// Voor de naam staat het tijdstip van de bewerking met een
// link die een diff met het verschil tussen de vorige bewerking
// boven de pagina plaatst. In de tooltip staat de bewerkingssamenvatting.
//
// (en) This script reads the most recent versions off a page
// from the MediaWiki API and places them in a box in the sidebar
// above the navigation after the press of a button. In the box are the
// usernames listed with a link to the corresponding paragraph.
// Before the name you can find the time of the edit with a
// link what places a diff with the differences with the previous version
// on top of the page. The tooltip contains the edit summary.
//
// Auteur/author: nl:User:JePe


function removeDiff()
{
   var diffFrame = document.getElementById("revisionsBoxDiff");
   if (diffFrame) diffFrame.parentNode.removeChild(diffFrame);
}

function makeCloseButton(position)
{
    var closeButton = document.createElement("img");  
    with (closeButton) {
       style.cssFloat = position; 
       style.styleFloat = position;
       style.verticalAlign = "auto";
       title = closeButtonTitle; 
       src = "http://upload.wikimedia.org/wikipedia/commons/thumb/8/8d/No-Symbol.svg/9px-No-Symbol.svg.png";    
       height = "9";                                                                                            
       width = "9"; }                                                                                          
    return closeButton;
}

function processDiff()
{
    if (diffReq.readyState != 4) return;
    if (diffReq.status != 200) return;
    var bodyContent = document.getElementById("bodyContent");                  
    var diffFrame = document.createElement("div");                              
    diffFrame.id = "revisionsBoxDiff";                                           
    diffFrame.innerHTML = diffReq.responseText;                                 
    diffTable = diffFrame.getElementsByTagName("table")[0];   
    if (!diffTable) return;
    if (diffTable.className != "diff") return;                  
    diffTable.style.border = "1px solid #ccc";                                  
    diffTable.style.width = "100%";                                             
    diffTable.style.paddingBottom = ".5em";                                     
    diffTable.style.marginBottom = "1em";                                       
    diffTable.style.marginTop = ".5em";                                         
    var closeButton = makeCloseButton("left"); 
    closeButton.onclick = removeDiff;
    var otitle = diffTable.getElementsByTagName("td");    
    for (i=0; i < otitle.length; i++) {
       if (otitle[i].className == "diff-otitle") {
          otitle[i].insertBefore(closeButton, otitle[i].firstChild); }
    }                                        
    var diffFrameOld = document.getElementById("revisionsBoxDiff");              
    if (diffFrameOld) diffFrameOld.parentNode.removeChild(diffFrameOld);        
    bodyContent.parentNode.insertBefore(diffFrame,bodyContent);                 
    window.location.hash = "revisionsBoxDiff";
    var prevLink = document.getElementById("differences-prevlink");  
    if (prevLink) {      
       var oldid = prevLink.href.replace(/[\s\S]+&oldid=(\d+)[\s\S]*/,"$1");    
       prevLink.href = "javascript:loadDiff("+oldid+",'prev')"; }                                                      
    var nextLink = document.getElementById("differences-nextlink");  
    if (nextLink) {           
       var oldid = nextLink.href.replace(/[\s\S]+&oldid=(\d+)[\s\S]*/,"$1");   
       nextLink.href = "javascript:loadDiff("+oldid+",'next')"; }                                                   
}    

function loadDiff(oldid,diffDir)
{
    var url = "/w/index.php?title=" + wgPageName;
    url += "&diff=" + diffDir;
    url += "&oldid=" + oldid;
    url += "&diffonly=1&action=render";
    if (window.XMLHttpRequest) { // native XMLHttpRequest
        diffReq = new XMLHttpRequest();
        diffReq.onreadystatechange = processDiff;
        diffReq.open("GET", url, true);
        diffReq.send(null);
    } else if (window.ActiveXObject) { // activeX version
        diffReq = new ActiveXObject("Microsoft.XMLHTTP");
        if (diffReq) {
            diffReq.onreadystatechange = processDiff;
            diffReq.open("GET", url, true);
            diffReq.send("");
        }
    }
}

function nextRevisions()
{
   var revContent = document.getElementById("recRevContent");
   var divNode = revContent.appendChild(document.createElement("div"));
   divNode.id = "nextButton";
   divNode.style.textAlign = "center";   
   var button = divNode.appendChild(document.createElement("button"));
   button.innerHTML = buttonNextText;
   button.title = buttonNextTitle;
   button.onclick = loadXMLDoc;            
   button.style.fontSize = "90%";
   button.style.marginTop = ".3em";
   button.style.padding = "0";
} 

function writeResults(rev)
{
   var showButton = document.getElementById('showButton');
   var nextButton = document.getElementById('nextButton');
   var revContent = document.getElementById("recRevContent");
   if (showButton) { 
      showButton.parentNode.removeChild(showButton);
      var closeButton = makeCloseButton("right");
      closeButton.onclick = recentRevisions;
      closeButton.style.marginTop = ".3em"; 
      revContent.appendChild(closeButton); }
   if (nextButton) nextButton.parentNode.removeChild(nextButton);   
   var date = new Date();
   var dateNow = (date.getFullYear()*10000) + ((date.getMonth()+1)*100) + date.getDate();
   for (i = 0; i < rev.length; i++) { 
      var time = rev[i].getAttribute("timestamp");
      var year = time.replace(/^(\d\d\d\d)[\s\S]+/,"$1");
      var month = time.replace(/^\d\d\d\d-(\d\d)[\s\S]+/,"$1");
      var day = time.replace(/^\d\d\d\d-\d\d-(\d\d)[\s\S]+/,"$1");
      var hours = time.replace(/[\s\S]+T(\d\d)[\s\S]+/,"$1");
      var minutes = time.replace(/[\s\S]+T\d\d:(\d\d)[\s\S]+/,"$1");
      date.setUTCFullYear(year,month-1,day);
      date.setUTCHours(hours,minutes);
      var dateRevision = (date.getFullYear()*10000) + ((date.getMonth()+1)*100) + date.getDate();
      if (dateRevision < dateControl) {
         var divNodeDate = revContent.appendChild(document.createElement("div"));
         divNodeDate.style.fontSize = "95%";
         divNodeDate.style.marginTop = ".3em";
         divNodeDate.style.fontWeight = "bold";
         divNodeDate.style.paddingLeft = ".5em";
         divNodeDate.innerHTML = date.getDate() + " " + monthName[date.getMonth()]; 
         if (dateNow - dateRevision > 10000) divNodeDate.innerHTML += " " + date.getFullYear();
         dateControl = dateRevision;   
      }   
      var divNode = revContent.appendChild(document.createElement("div"));
      divNode.style.marginLeft = "1em";
      divNode.style.textIndent = "-1em";
      divNode.style.fontSize = "95%";
      divNode.style.marginTop = ".3em";
      var aNodeTime = divNode.appendChild(document.createElement("a"));
      aNodeTime.innerHTML = (date.getHours() < 10) ? "0" + date.getHours() : date.getHours();
      aNodeTime.innerHTML += ":";
      aNodeTime.innerHTML += (date.getMinutes() < 10) ? "0" + date.getMinutes() : date.getMinutes();
      aNodeTime.style.fontSize = "90%";
      var revid = rev[i].getAttribute("revid");
      aNodeTime.href = "javascript:loadDiff("+revid+",'prev')";
      aNodeTime.title = timeTitle;
      divNode.appendChild(document.createTextNode(" "));
      var aNodeUser = divNode.appendChild(document.createElement("a"));
      aNodeUser.innerHTML = rev[i].getAttribute("user");
      var anchorURL = rev[i].getAttribute("comment");
      if (anchorURL == null) anchorURL = "";
      aNodeUser.title = anchorURL; 
      // convert comment into a usable anchor link
      if (anchorURL.search(/\/\*\s([\s\S]+)\s\*\/[\s\S]*/) != -1) {
         var reg = [ [/\/\*\s([\s\S]+)\s\*\/[\s\S]*/,"$1"], [/\[\[[\s\S]*\|([\s\S]+)\]\]/g,"$1"],
                   [/\[\[\:?([\s\S]+)\]\]/g,"$1"], [/\s/g,"_"] ];
         for (x = 0; x < reg.length; x++) {
            anchorURL = anchorURL.replace(reg[x][0],reg[x][1]); }
         anchorURL = encodeURIComponent(anchorURL); 
         var reg = [ [/%/g,"."], [/\(/g,".28"], [/\)/g,".29"], [/\!/g,".21"], 
                   [/\'/g,".27"], [/\*/g,".2A"], [/.3A/g,":"] ];
         for (x = 0; x < reg.length; x++) {
            anchorURL = anchorURL.replace(reg[x][0],reg[x][1]); }
      } else {
         anchorURL = ""; }   
      aNodeUser.href = document.location.href + "#" + anchorURL;
      aNodeUser.href = aNodeUser.href.replace(/##/,"#");
   } 
}

function processReq()
{
    if (apiReq.readyState != 4) return;
    if (apiReq.status != 200) return;                              
    var xmlFile = apiReq.responseXML.documentElement;
    var rev = xmlFile.getElementsByTagName("rev");  
    if (rev.length > 0) writeResults(rev);  
    queryContinue = xmlFile.getElementsByTagName("query-continue")[0];
    if (queryContinue) {
       rvStartId = queryContinue.getElementsByTagName("revisions")[0].getAttribute("rvstartid");
       nextRevisions();
    }   
}    

function loadXMLDoc()
{
    var url = "/w/api.php?action=query&prop=revisions&format=xml";             
    url += "&titles=" + wgPageName + "&rvprop=timestamp|user|comment";      
    url += "&rvlimit=" + revCount;                           
    if (rvStartId != 0) url += "&rvstartid=" + rvStartId; 
    if (window.XMLHttpRequest) { // native XMLHttpRequest 
        apiReq = new XMLHttpRequest();
        apiReq.onreadystatechange = processReq;
        apiReq.open("GET", url, true);
        apiReq.send(null);
    } else if (window.ActiveXObject) { // activeX version
        apiReq = new ActiveXObject("Microsoft.XMLHTTP");
        if (apiReq) {
            apiReq.onreadystatechange = processReq;
            apiReq.open("GET", url, true);
            apiReq.send("");
        }
    }
}

function recentRevisions()
{
   var revContent = document.getElementById("recRevContent");
   if (revContent) { // when pressed the close button
      revContent.innerHTML = "";
      rvStartId = 0;
      dateControl = 99999999;
   } else {   
      var navigationBox = document.getElementById('p-navigation');                                      
      var revBox = document.createElement("div");                                                
      var revBox = navigationBox.parentNode.insertBefore(document.createElement("div"),navigationBox); 
      revBox.id = "p-rev";                                                                       
      revBox.className = "portlet";                                                              
      var h5Node = revBox.appendChild(document.createElement("h5"));                             
      h5Node.innerHTML = revBoxTitle;                                                            
      revContent = revBox.appendChild(document.createElement("div"));                           
      revContent.id = "recRevContent";                                                              
      revContent.className = "pBody";                                                               
      revContent.style.padding = "0 .3em .3em .3em";                                                
      revContent.style.lineHeight = "1.2em";                                                        
      revContent.style.fontFamily = "Verdana, sans-serif"; 
   }                                            
   var divNode = revContent.appendChild(document.createElement("div"));
   divNode.id = "showButton";
   divNode.style.textAlign = "center";   
   var button = divNode.appendChild(document.createElement("button"));
   button.innerHTML = buttonBeginText;
   button.onclick = loadXMLDoc;            
   button.style.fontSize = "90%";
   button.style.marginTop = ".3em";
   button.style.padding = "0";
}

var diffReq;
var apiReq;
var rvStartId = 0;
var revCount = 20; // max 50, higher numbers not possible, they give an error
var dateControl = 99999999; // must only be higher than today (yyyymmdd)
if (wgUserLanguage == "nl") {
   var timeTitle = "Verschillen met de vorige bewerking";
   var closeButtonTitle = "Sluiten";
   var revBoxTitle = "recente bewerkingen"; 
   var buttonBeginText = "Toon bewerkingen";
   var buttonNextText = "Volgende " + revCount;
   var buttonNextTitle = "Toon de volgende "+revCount+" bewerkingen";
   var monthName = ["januari", "februari", "maart", "april", "mei", "juni", "juli",
                    "augustus", "september", "oktober", "november", "december"];
} else {
   var timeTitle = "Differences with the previous revision";
   var closeButtonTitle = "Close";
   var revBoxTitle = "recent revisions"; 
   var buttonBeginText = "Show revisions";
   var buttonNextText = "Next " + revCount;
   var buttonNextTitle = "Show the next "+revCount+" revisions";
   var monthName = ["January", "February", "March", "April", "May", "June", "July",
                    "August", "September", "October", "November", "December"];
}  
document.write('<style type="text/css">/*<![CDATA[*/ table.diff td {vertical-align:top;} /*]]>*/</style>');
if (wgNamespaceNumber != -1)
   addOnloadHook(recentRevisions);

// END  Recent revisions

//</nowiki>