Benutzer:Zenit/monobook.js

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.

  • Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
  • Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
  • Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
/*
   Mentors Monobook.js – Version 1.6
   (kompatibel mit Mentors Monobook.css – Version 1.3 oder höher)
   von Zacke
   mit fachlicher Unterstützung von (und herzlichem Dank an) Stefan, MichaelFrey und ganz besonders ParaDox.
 
   Features: Zusatzliche Mentoren-Box in der sidebar, darin Links auf MP-relevante Seiten und Kategorien 
             (MP, MP/D, MP/D neuer Abschnitt, MP/N, eigene Mentorenseite [optional], MP-Kat, MP-IL, MP-NB [zum
             sofort bearbeiten], externe DB).
             Halbautomatisches Einfügen der eigenen Mentorenvorlage auf der Menteeseite und Eintragung in die NB.
 
   Der Quelltext kann bis auf die eventuelle Anpassung der eigenen Mentorenvorlage und -seite (var MenVorl und
   var MenSeit – gleich ganz oben) änderungslos ins persönliche monobook.js übernommen werden. Es kann parallel
   zu PDDs Script verwendet werden (einfach drunter kopieren). In diesem Fall muss die Variable PDD (auch ganz oben)
   auf = 'ja' gesetzt werden. Standardmäßig ist die Anpassung an PDDs natürlich deaktiviert. Mein Script funktioniert
   zwar auch so, sieht aber wesentlich besser aus, wenn man auch Mentors Monobook.css übernimmt (zu finden unter 
   ([[Benutzer:Zacke/monobook.css]]). Fragen und Anregungen auf meiner Diskussionsseite.
*/
 
var MenVorl = 'Mentor';      // Unterseitenname der eigenen Mentorenvorlage //
var MenSeit = 'Mentoring';      // Unterseitenname der eigenen Mentorenseite (wenn nicht vorhanden, dann = '')  //
 
var PDD = 'ja';            // = 'ja', wenn PDD-Script verwendet wird,  = 'nein', wenn nicht //
 
// gibt das aktuelle Datum in der Form dd/mm/yy aus //
function datum() {
    var date = new Date();
    var jahr = date.getYear() - 100;
    if ( jahr < 10 ) {
        jahr = '0' + jahr;
    }
    var monat = date.getMonth() + 1;
    if ( monat < 10 ) {
        monat = '0' + monat;
    }
    var tag = date.getDate();
    if ( tag < 10 ) {
        tag = '0' + tag;
    }
    var datum = tag + '.' + monat + '.' + jahr;
    return datum;
}
 
// spart nur Schreibaufwand //
function $(id) {
    return document.getElementById(id);
}
 
// erschafft eine horizontale Linie in angegebener Breite //
function linie(width) {
    var h = document.createElement('hr');
    h.width = width + 'px'
    return h;
}
 
// fügt am Ende des aktuellen Bearbeitungsfeldes die eigene Mentorenvorlage ein, markiert die Seite als beobachtet //
// und gibt als Zusammenfassung 'Ich bin jetzt Dein Mentor' an                                                     //
function uebernehmen() {
    document.editform.wpTextbox1.value += '\{\{Benutzer:' + wgUserName + '/' + MenVorl + '\}\}';
    document.editform.wpWatchthis.checked = true;
    document.editform.wpMinoredit.checked = false;
    document.editform.wpSummary.value = 'Ich bin jetzt Dein Mentor';
    document.editform.wpSummary.focus();
}
 
// fügt an der Cursorposition im aktuellen Bearbeitungsfeld die Vorlage:WP-NB ein, Datum und Mentor werden //
// automatisch ermittelt, Menteename muss in ein aufpoppendes Eingabefeld eingegeben werden                //
function eintragen() {
    var mentee = prompt('Benutzername des Mentees:', '');
    if ( mentee != '' ) {
        insertTags('{{MP-NB | Eintritt=' + datum() + ' | Austritt= | Mentee=' + mentee + ' | Mentor=' + wgUserName + ' | Status=grün}}', '', '');
        return false;
    }
}
 
// erschafft einen einfachen Link für die mpBox //
function mpBoxLink(url, name) {
    var a = document.createElement('a');
    a.href = url;
    a.appendChild(document.createTextNode(name));
    return a;
}
 
// erschafft einen Link mit einem Aufzählungszeichen für die mpBox //
function mpBoxLiLink(url, name, click) {
    var a = document.createElement('a');
    a.href = url;
    a.appendChild(document.createTextNode(name));
 
    var l = document.createElement('li');
    l.appendChild(a);
    if ( click != null ) {
        var html = l.innerHTML.replace(/<a href="#">/, '<a href="#" onclick="' + click + '">');
        l.innerHTML = html;
    }
    return l;
}
 
// Zusammenbau und Einfügen der mpBox; wird verwendet wenn var PDD = false //
function mpBox() {
    var mpBoxTitle = document.createElement('p');
    mpBoxTitle.id = 'p-mpBoxTitle';
    mpBoxTitle.appendChild(mpBoxLink('/wiki/Wikipedia:Mentorenprogramm', 'Mentorenprogramm:'));
 
    var u1 = document.createElement('ul');
    var l = document.createElement('li');
    l.appendChild(mpBoxLink('/wiki/Wikipedia_Diskussion:Mentorenprogramm', 'Diskussion'));
    l.appendChild(mpBoxLink('/w/index.php?title=Wikipedia_Diskussion:Mentorenprogramm&action=edit&section=new', ' +'));
    l.appendChild(document.createTextNode(' / '));
    l.appendChild(mpBoxLink('/wiki/Wikipedia:Mentorenprogramm/News', 'News'));
    u1.appendChild(l);
    if ( MenSeit != '') {
        u1.appendChild(mpBoxLiLink('/wiki/Benutzer:' + wgUserName + '/' + MenSeit, 'Meine Mentorenseite'));
    }
    u1.appendChild(mpBoxLiLink('#', '+ {{Menteeseite}}', 'uebernehmen()'));
    u1.appendChild(mpBoxLiLink('#', '+ {{Neulingsbörse}}', 'eintragen()'));
 
    var u2 = document.createElement('ul');
    u2.appendChild(mpBoxLiLink('/wiki/Kategorie:Mentor_gesucht','MP-Kategorie'));
    u2.appendChild(mpBoxLiLink('/wiki/Wikipedia:Mentorenprogramm/Interessentenliste', 'MP-Interessenten'));
    u2.appendChild(mpBoxLiLink('/w/index.php?title=Wikipedia:Mentorenprogramm/Projektorganisation&action=edit&section=1', 'MP-NB (edit)'));
    u2.appendChild(mpBoxLiLink('http://purwin.de/wiki-test/MP/MP.CFM', 'MP-DB (extern)'));
 
    var mpBox = document.createElement('p');
    mpBox.id = 'p-mpBox';
    mpBox.appendChild(u1);
    mpBox.appendChild(linie('135'));
    mpBox.appendChild(u2);
 
    $('column-one').insertBefore(mpBoxTitle, $('p-navigation')); 
    $('column-one').insertBefore(mpBox, $('p-navigation'));
}
 
// erschafft einen Link für die mit PDDs kompatible Version //
function PDDLink(url, name, click) {
    var a = document.createElement('a');
    a.href = url;
    a.appendChild(document.createTextNode(name));
 
    var p = document.createElement('p');
    p.appendChild(a);
    if ( click != null ) {
        var html = p.innerHTML.replace(/<a href="#">/, '<a href="#" onclick="' + click + '">');
        p.innerHTML = html;
    }
    return p;
}
 
// Mit PDDs kompatible Version; wird verwendet, wenn var PDD = true //
function mpPDD() {
    var p1 = document.createElement('p');
    p1.appendChild(mpBoxLink('/wiki/Wikipedia:Mentorenprogramm', 'MP: '));
    p1.appendChild(document.createTextNode(' '));
    p1.appendChild(mpBoxLink('/wiki/Wikipedia_Diskussion:Mentorenprogramm', 'Disk '));
    p1.appendChild(mpBoxLink('/w/index.php?title=Wikipedia_Diskussion:Mentorenprogramm&action=edit&section=new', '+ '));
    p1.appendChild(mpBoxLink('/wiki/Wikipedia:Mentorenprogramm/News', 'News '));
    if ( MenSeit != '') {
        p1.appendChild(mpBoxLink('/wiki/Benutzer:' + wgUserName + '/' + MenSeit, 'Meins '));
    }
 
    p1.appendChild(mpBoxLink('/wiki/Kategorie:Mentor_gesucht','Kat '));
    p1.appendChild(mpBoxLink('/wiki/Wikipedia:Mentorenprogramm/Interessentenliste', 'IL '));
    p1.appendChild(mpBoxLink('/w/index.php?title=Wikipedia:Mentorenprogramm/Projektorganisation&action=edit&section=1', 'NB (edit) '));
    p1.appendChild(mpBoxLink('http://purwin.de/wiki-test/MP/MP.CFM', 'DB (extern) '));
 
    var p2 = document.createElement('p');
    p2.appendChild((PDDLink('#', 'MENTOR+ ', 'uebernehmen()')).firstChild);
    p2.appendChild((PDDLink('#', 'NB+ ', 'eintragen()')).firstChild);
 
    $('p-quickbar').appendChild(linie('135'));
    $('p-quickbar').appendChild(p1);
    $('p-quickbar').appendChild(p2);
}
 
// entscheidet anhand der var PDD, was verwendet wird //
if ( PDD == 'nein' ) {
         if (window.addEventListener) window.addEventListener("load", mpBox, false);
    else if (window.attachEvent)      window.attachEvent(   "onload", mpBox);
}
if ( PDD == 'ja' ) {
         if (window.addEventListener) window.addEventListener("load", mpPDD, false);
    else if (window.attachEvent)      window.attachEvent(   "onload", mpPDD);
}

 document.addEventListener("DOMContentLoaded", function() {
   //Bilder after Logout
   var vl_logout = document.getElementById("pt-logout");
   if (vl_logout) 
   {
     var ins_li = document.createElement("LI");
     ins_li.innerHTML=/* */'<a href="http://de.wikipedia.org/wiki/Benutzer:RedSolution/Mentoring">Mentoring</a>';/* */
     vl_logout.parentNode.insertBefore(ins_li, vl_logout);
   }
 }, false);

 document.addEventListener("DOMContentLoaded", function() {
   //Bilder after Logout
   var vl_logout = document.getElementById("pt-logout");
   if (vl_logout) 
   {
     var ins_li = document.createElement("LI");
     ins_li.innerHTML=/* */'<a href="http://de.wikipedia.org/wiki/Benutzer:RedSolution/Hauptseite">Isch</a>';/* */
     vl_logout.parentNode.insertBefore(ins_li, vl_logout);
   }
 }, false);


/********************************/
/* Wahre Benutzernamen anzeigen */
/********************************/

// Fügt Benutzernamen in Links auf Benutzerseiten ein
//
// Einbinden mit includeJS aus meiner standard.js:
// includeJS('[[Benutzer:Ce2/JavaScript/showusers.js]]');
//
// Beim Einbinden mittels anderer Methoden bitte obigen Wikilink
// explizit angeben (z.B. in einem Kommentar)

/* Hilfsfunktion: Dekodieren von UTF8 */

function decode_utf8(text)
{
  decoded = '';
  var tail = 0;
  var codepoint;
  for (var i = 0; i < text.length; ++i)
  {
    var charcode = text.charCodeAt(i);
    if (tail != 0)
    {
      codepoint = (codepoint << 6) + (charcode & 0x3f);
      --tail;
      if (tail == 0)
        decoded += String.fromCharCode(codepoint);
    }
    else
    {
      if (charcode < 0x80)
        decoded += String.fromCharCode(charcode);
      else
      {
        var tail = 1; // number of following 10xxxxxx values
        while ((charcode & (0x40 >> tail)) != 0)
          ++tail;
        codepoint = charcode & ((0x80 >> tail) - 1)
      }
    }
  }
  return decoded
}

function showusers()
{
  /* Benutzernamen aus Hyperlink extrahieren */
  function getusername(a)
  {
    if (!a.href)
      return null;

    if (a.host != "de.wikipedia.org")
      return null;

    var parts = /\/Benutzer:([^\/]*)(#.*)?$/.exec(a.href)
    if (!parts)
      return null;

    return decode_utf8(unescape(parts[1])).replace(/_/g,' ');
  }

  var links = document.links
  for (i = 0; i < links.length; ++i)
  {
    var username =getusername(links[i]);
    var text = links[i].text
    text = text.substr(0,1).toUpperCase()+text.substr(1)
      
    if (username && username != text && "Benutzer:"+username != text)
    {
      var newtext = document.createTextNode(" (" + username + ")")
      var span = document.createElement("span")
      span.setAttribute("class", "loginname")
      span.appendChild(newtext)
      links[i].appendChild(span)
    }
  }
}

$(showusers)

/* monobook.js */
function searchToTop() {
    function $(id) { return document.getElementById(id); }
    var search = $('p-search');
    search.parentNode.removeChild(search);
    $('column-one').insertBefore(search, $('p-navigation'));
}
     if (window.addEventListener) window.addEventListener("load", searchToTop, false);
else if (window.attachEvent)      window.attachEvent(   "onload", searchToTop);

 // FAQ: 
 //
 // Frage:   Wie übernehme ich dieses Skript?
 //
 // Antwort: Einfach "Quelltext betrachten", alles markieren und kopieren, und dann in deine eigene
 //          monobook.js (also hierhinein: [[Spezial:Mypage/monobook.js|Benutzer:<DeinName>/monobook.js]]) kopieren.
 //          Am sinnvollsten ist es dabei, wenn du die Originalversion von [[Benutzer:PDD/monobook.js]]
 //          übernimmst, da diese immer auf dem neuesten Stand ist.
 //
 // Frage:   Kann ich dieses Skript einfach so übernehmen, oder muss ich da tausend Sachen ändern?
 //
 // Antwort: Du kannst natürlich alles ändern, aber du musst nicht. Einfach erstmal kopieren, ausprobieren,
 //          und dann so anpassen, dass es deinem Bedarf gerecht wird.
 //
 // Weitere Fragen und Antworten findest du hier: [[Benutzer:PDD/monobook FAQ]]
 
 // <nowiki> {{subst:Benutzer:PDD/monobook.js.DLWS}} </nowiki> <--- diese Zeile bitte nicht löschen
 
 //
 // Hier bitte eine Signaturvariante aussuchen!
 //
 
 // <nowiki>
 // (Signaturvariante 1: sinnvoll bei unter "Einstellungen" typografisch angepassten Signaturen)
 var usersignature = '\~\~\~\~';
 // (Signaturvariante 2: Datum kleiner, kein Zeilenumbruch nach dem Leerzeichen)
 // var usersignature = '<span style=\"white-space:nowrap;\">-- \~\~\~ <small>\~\~\~\~\~<\/small><\/span>';
 // (Wiki-Standard-Signatur, bitte das Leerzeichen nach den zwei Strichen beachten)
 // var usersignature = '-- \~\~\~\~';
 // </nowiki>
 
 // Originalskript ursprünglich gefunden bei [[:en:User:Angela]]
 // bearbeitet von [[Benutzer:Maximus Rex]]
 // bearbeitet von [[Benutzer:SirJective]]
 // bearbeitet von [[Benutzer:BLueFiSH.as]]
 // bearbeitet von [[Benutzer:Littl]] (2005-09-07)
 // bearbeitet von [[Benutzer:Schwalbe]] (2006-02-03)
 // bearbeitet wieder von [[Benutzer:Littl]] (2006-02-21)
 // bearbeitet von [[Benutzer:PDD]] (ab 2006-04-22)
 
 // *************** SETUP Teil 1 **********************************
 // Parameter für Gadgets
 // Gadgets müssen über [[Spezial:Einstellungen]] -> Gadgets freigeschaltet werden
 
 // Gadget: Extra-Editbuttons, siehe[[Wikipedia:Helferlein/Extra-Editbuttons]]
 
 // Anzahl und Reihenfolge wählbar (siehe: [[Wikipedia:Helferlein/Extra-Editbuttons#Die Buttons]])
 var customEditButtons = "A,A3,B,C,E,F,G,H,I,I1,I2,J1,K,M,O,P,PO,Q,R,R3,S,T,T1,U,V,W,X,Y1,Y2,VP,VC,VN,SM";
 // zu entfernende Standard-Edit buttons (0...10)
 var rmEditButtons = [6,7,10]; // Standardbutton entfernen
 var myButtons = {}            // eigene Buttons?
 
 // *************** SETUP Teil 2 **********************************
 // Parameter für diese monobook.js (Quickbar, Module etc.)
 
 var zeigeversion = true;        // monobook-Version anzeigen?
 var zeigehilfe = true;          // kurze Hilfetexte beim überfahren mit der Maus anzeigen?
 var qbnewpage = true;           // sollen Seiten aus dem QuickBar im neuen Fenster aufgerufen werden?
 var rclimit = 500;              // angezeigte Anzahl auf "Letzte Änderungen"
 var nplimit = 500;              // angezeigte Anzahl auf "Neue Artikel"
 var nulimit = 1000;             // angezeigte Anzahl auf "Neuanmeldungs-Logbuch"
 var usedropdown = false;        // Wenn keine Dropdowns gewünscht sind, hier false eintragen!
 var timeout = 50000;            // 50 Sekunden auf das Neuladen der Seite warten
 var timezoneshift = 0;          // Unterschied lokale Zeit zur Systemzeit (bleibt für Mitteleuropäer 0)
 var debugme = false;            // Debug-Modus?
 var qbfontsize = 100;            // Schriftgröße im QuickBar (relativ in Prozent)
 
 // systemweite Default-Optionen aus [[MediaWiki:Monobook.js]]
 NavigationBarShowDefault = 0;     // Navi-Leisten: alle einklappen == 0; alle ausklappen == 15 (z.B.)
 var oldEditsectionLinks = false;  // "Bearbeiten"-Links bei Abschnitten ganz nach rechts?
 var enable_linkFA = true;         // "Featured Articles" in fremdsprachigen Wikipedias markieren?
 
 // <nowiki>
 // Modul: changeBeschriftungen.js
 var beschriftungen = true;      // kosmetische Änderungen an der MediaWiki-Oberfläche?
 var markhandsoff = true;        // fremde Benutzerseiten grafisch markieren?
 // Beschriftungen: personal toolbar
 var cbmytalk = "Meine Diskussion";
 var cbprefs = "Einstellungen";
 var cbwatchlist = "Beobachtungsliste";
 var cbmyconts = "Meine Beiträge";
 var cblogout = "X";
 // Beschriftungen: current article
 var cbedit = "Bearbeiten";
 var cbhistory = "Versionen";
 var cbmove = "Verschieben";
 var cbwatch = "Beobachten";
 var cbunwatch = "Ignorieren";
 // Beschriftungen: tools
 var cbwhatlinkshere = "What links here";
 var cblinked = "Verlinkte Änderungen";
 var cbmail = "E-Mail senden";
 var cbupload = "Bild hochladen";
 var cbprint = "Druckversion";
 var cbblock = "User sperren";
 // Beschriftungen: portlets
 var cblang = "Interwiki";
 
 // Modul: Sperrstatus.js
 var sperrstatus = true;         // Sperrstatus einer Seite farblich anzeigen?
 
 // Modul: changeSZtoSS.js
 var changeszlig = false;        // "ß" in "ss" ändern (nach Schweizer Rechtschreibung)?
 
 // Modul: eintragen.js
 var autosave = true;            // automatisches Speichern von QS/LA/SLA/Vandal-Einträgen?
 var signogrundparam = false;           // auf true setzen, wenn Signatur das SLA-Eintragen behindert
 var emptylinesafterhr = 1;             // Leerzeilen zwischen LA-Baustein und Artikeltext
 var defaultSLA = "Kein Artikel";       // Standard-SLA-Grund
 var defaultVandal = "vandaliert in [[]]";  // Standardgrund für Vandalismusmeldung (Benutzer)
 var defaultAVandal = "Edit-War";           // Standardgrund für Vandalismusmeldung (Artikel)
 
 // Modul: hinweise.js
 var hinweis = true;             // Portal- und Redaktionshinweis verwenden?
 
 // Modul: godmode-light.js
 var godmodelight = true;        // "Zurücksetzen" einblenden?
 var godmodenewstyle = true;            // neuer Rollback-Kommentartext?
 
 // Modul: addEditAndRevertLinks.js
 var editlinkoldversion = true;  // Bearbeiten-Link für ältere Versionen anzeigen?
 var editlinktxt = "edit";       // Text des Edit-Links
 var revertwithreason = true;    // Revert-Link mit Grund-Eingabe anzeigen?
 var revlinktxt = "rev";         // Text des Revert-Links
 var revlinkshowuser = true;     // beim Revertieren über (Rev)-Link letzten Benutzer angeben?
 var rvisminor = true;           // sind Reverts mit "(rev)"-Link Minor-Changes?
 var aearldefault = "Grund: keine Verbesserung des Artikels";      // Defaultgrund beim Revertieren
 var aerhistory = true;                       // Links auch in der Versionsgeschichte?
 var aearlhere = true;                        // Revertaktion im selben Browserfenster?
 
 // Modul: addLogsLink.js
 var addlogslink = true;         // Zusatzlinks zu Spezial:Log einfügen?
 var pagelogtext = "Page:Log";                // Text des Seitenlogbuch-Links
 var userlogtext1 = "User:Log:1";             // Texte der beiden Benutzerlog-Links
 var userlogtext2 = "User:Log:2";
 
 var addusercontriblink = true;  // auf Benutzerseiten auch noch Link auf Contributions?
 var usercontribtext = "User:Contribs";       // Text des Contributions-Links ("Benutzerbeiträge")
 var userdeledittext = "User:DelEdits";       // Text des Links auf Deleted Edits
 var userstatstext = "User:Stats";            // Text des Links auf Benutzerstatistik
 var userstatstype = "interiot";                      // Art der Benutzerstatistik
                                                      // (interiot/dab/yaec/kate/wannabe_kate/misza)
 var usergallerytext = "User:Gallery";        // Text des Links auf Bildergalerie des Benutzers
 var userstimmrechttext = "User:Stimmrecht";  // Text des Links auf Stimmrechtcheck
 
 var adduserarticlelink = true;  // auf Benutzerseiten Link auf erstellte Artikel?
 var userarticletext = "User:Articles";       // Text des Links auf erstellte Artikel
 
 var addbrowselink = true;       // auf allen Seiten Link zum alphabetischen Browsen?
 var browseuserprefix = true;                 // bei Nutzerseiten stattdessen alle Unterseiten des Nutzers zeigen?
 var browsetext = "Browse";                   // Text des Links auf Browsing-Seite
 
 var addiusagelink = true;       // bei Bildern Link zur Bildnutzung (Commons)?
 var imgusagetext = "IMG:C-Usage";            // Text des Links auf Bildnutzung
 
 // Modul: modifyCA.js
 var addeditintro = true;        // TAB zum Editieren des Nullabschnitts (Intros) einer Seite hinzufügen?
 var editintrotext = "IntroBearbeiten";  // Beschriftung des TABs
 var addpurge = true;            // TAB zum Purgen (Servercache-Updaten) einer Seite hinzufügen?
 var purgetext = "Purge";                // Beschriftung des TABs
 
 // Modul: markAdmins.js
 var markadmins = true;          // Admins u.ä. besonders hervorheben?
 var marksubpages = true;              // auch Links auf Admin-Unterseiten markieren?
 var mawatchlist = true;               // auch auf der Beobachtungsliste?
 var macontribs = true;                // auch auf den Benutzerbeiträgen?
 var markatxt = "A";              // Markierung für Admins
 var markrenatxt = "A-Ren";       // Markierung für umbenannte Admins
 var markbureautxt = "B";         // Markierung für Bürokraten
 var markstewtxt = "S";           // Markierung für Stewards
 
 var markcomadmins = true;      // zusätzlich: Commons-Admins besonders hervorheben?
 var markcomatxt = "Com-A";       // Markierung für Commons-Admins
 
 var markexadmins = true;       // zusätzlich: Ex-Admins besonders hervorheben?
 var markexatxt = "Ex-A";         // Markierung für Ex-Admins
 var markexbureautxt = "Ex-B";    // Markierung für Ex-Bürokraten
 
 var markarbcom = true;         // zusätzlich: Schiedsgericht besonders hervorheben?
 var markarbcomtxt = "SG";        // Markierung für Schiedsgerichtler
 
 var markcheckuser = true;      // zusätzlich: CheckUser besonders hervorheben?
 var markcheckusertxt = "CU";     // Markierung für Checkuser-Berechtigte
 var markombudsmantxt = "O";      // Markierung für Ombudspersonen
 
 // Modul: markUTF8.js
 var markutf8 = true;            // Sonderzeichenbenutzernamen besonders hervorheben?
 var muwatchlist = true;              // auch auf der Beobachtungsliste?
 var mucontribs = true;               // auch auf den Benutzerbeiträgen?
 var markutf8txt = "UTF8!";      // Markierung für UTF8-kodierte Nutzernamen etc.
 var markltrtxt = "UTF8:LTR!";   // Markierung für Lemmata mit LTR-Mark
 
 // Modul: markErledigt.js
 var markerledigt = true;        // Erledigt-Button auf Seiten mit [[Vorlage:Autoarchiv-Erledigt]]
 
 // Modul: reftoggle.js
 var reftoggle = false;          // "Quellen verstecken"/"Quellen anzeigen"-Schalter für Fußnoten?
 
 // Modul: newgallery.js
 var newgallery = false;         // Anzahl Bilder/Zeile in Galerien verändern?
 var gallery_len = 6;            // Breite der Galerien
 var bCategory = true;                 // nur in Kategorien?
 var bArticle = true;                  // (oder/und) nur in Artikeln?
 
 // Modul: quickedit.js
 var qeEnabled = true;          // QuickEdit aktivieren?
 var qeEnableSection0 = true;   // QuickEdit-Link für Abschnitt 0 (Einleitung)?
 var qeEnableAccessKeys = true;  // Tastaturbefehle aktivieren?
 var qeShowErrors = true;        // Fehlermeldungen anzeigen
 var qeTextboxHeight = 20;       // Höhe des Textfelds
 
 // Modul: APPERs RP
 var rechtschreibpruefung = false;  // Rechtschreibprüfung aktivieren?
 var AutorunRP = false;                // false = RP durch Anklicken; true = automatische RP
 
 // Modul: APPERs IP-Patrol Vandalenmarkierer
 var ippvandalmark = false;      // IP-Patrol-Vandalenmarkierung aktivieren?
 
 // Modul: osm.js
 var openstreetmap = false; // OpenStreetMap-Link anschalten?
 
 // Modul: coordinates.js
 // (für dieses Modul im CSS #editpage-copywarn nicht ausblenden!)
 var coordinates = false;        // Koordinate_Artikel in Editfenster generierbar?
 
 // Modul: unsigned.js
 var unsigning = true;           // Einfügen von Unsigned bei unsignierten Beiträgen auf Diskussionsseiten?
 var ssubst =  true;                  // unsigniert-Baustein mit subst einfügen?
 
 // Modul: signing.js
 var signing = false;            // automatische Unterschrift auf Diskussionsseiten?
 // Liste der Nicht-Diskussionsseiten, die ebenfalls unterschrieben werden sollen:
 var regpages = new Array(':Verbesserungsvorschläge', ':Löschkandidaten', ':Löschprüfung', ':Entsperrwünsche', ':Adminkandidaturen', ':Qualitätssicherung', ':Fragen_zur_Wikipedia', ':Meinungsbilder', ':Review', ':Bilderwünsche', ':Kandidaten');
 
 // Modul: SearchBox.js
 var searchbox = false;          // erweitertes suchen/ersetzen
 
 // </nowiki>
 
 // Modul: popups.js (Lupin, Navpop)
 var lupinpopups = false;        // Popup-Modul einbinden?
 // Optionen für Lupin-Popups
 // (ausführliche Liste siehe [[Wikipedia:Helferlein/Navigation-Popups#Optionen]] bzw.
 // aktueller und auf englisch [[:en:Wikipedia:Tools/Navigation popups#Options]])
 popupDelay = 1;                // Popupverzögerung in s (DEFAULT: 0.5)
 simplePopups = false;          // auf true setzen, wenn Laden im Hintergrund unerwünscht (DEFAULT: false)
 popupStructure = 'menus';      // Aussehen der Popups (DEFAULT: 'shortmenus')
 popupActionsMenu = false;      // separates "actions"-Menu (DEFAULT: true)
 popupImages = true;            // Bilder im Popup erwünscht? (DEFAULT: true)
 popupSubpopups = true;         // Popups für Links innerhalb von Popups generieren? (DEFAULT: true)
 popupAdminLinks = false;       // Funktionen, die nur Admins nutzen können (DEFAULT: false)
 // nächste Option sollte bei Verwendung von showRedundantLinks.js *nicht* auf true gesetzt werden
 removeTitles = false;          // Originaltitel der Links nach popups verschieben? (DEFAULT: true)
 popupFixRedirs = true;                  // Links auf Redirects korrigieren? (DEFAULT: false)
 popupWatchRedirredPages = false;        // korrigierte Seite beobachten? (DEFAULT: null)
 popupRedirAutoClick = 'wpSave';         // ausgeführte Aktion beim Korrigieren von Redirects (DEFAULT: 'wpDiff')
 popupRedlinkRemoval = true;             // Rote Links entfernen? (DEFAULT: false)
 popupFixDabs = true;                    // Links auf BKLs korrigieren? (DEFAULT: false)
 popupWatchDisambiggedPages = false;     // korrigierte Seite beobachten? (DEFAULT: null)
 popupLastModified = true;      // Zeit seit letzter Änderung anzeigen? (DEFAULT: true)
 popupDiffDates = true;         // Änderungsdaten bei Diffs anzeigen? (DEFAULT: true)
 popupOnlyArticleLinks = true;  // Popups nur für Artikel-Links (DEFAULT: true)
 imagePopupsForImages = false;  // Bildvorschau laden, wenn Mausposition über Bild? (DEFAULT: true)
 popupMaxWidth = 400;           // Maximalbreite des Popup-Fensters (DEFAULT: 350)
 popupRevertSummaryPrompt = true;        // Prompt zum Ändern des Revert-Kommentars? (DEFAULT: false)
 popupMaxPreviewSentences = 2;  // Anzahl der angezeigten Sätze in der Vorschau (DEFAULT: 4)
 // <nowiki>
 // Link auf Popups zu Messages hinzufügen?
 addpopuplink = true;
 // deutsche Texte für Lupin
 popupFixDabsSummary = "Ersetze BKL-Seite [[%s]] durch [[%s]]" + (addpopuplink ? " mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]]" : "");
 popupExtendedRevertSummary = "Revert auf Version vom %s von Benutzer %s, oldid %s" + (addpopuplink ? " mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]]" : "");
 popupRevertSummary = "Revert auf Version %s" + (addpopuplink ? " mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]]" : "");
 popupRevertToPreviousSummary = "Revert auf Vorgängerversion der Version %s" + (addpopuplink ? " mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]]" : "");
 popupQueriedRevertSummary = "Revert auf Version $1 vom $2 von $3" + (addpopuplink ? " mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]]" : "");
 popupQueriedRevertToPreviousSummary = "Revert auf Vorgängerversion der Version $1 vom $2 von $3" + (addpopuplink ? " mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]]" : "");
 popupFixRedirsSummary = "Ersetze Redirect [[%s]] durch [[%s]]" + (addpopuplink ? " mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]]" : "");
 popupRedlinkSummary = "Entferne Link auf leere Seite [[%s]]" + (addpopuplink ? " mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]]" : "");
 popupRmDabLinkSummary = "Entferne Link auf BKL-Seite [[%s]]" + (addpopuplink ? " mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]]" : "");
 
 // weitere Module
 var showredundantlinks = false; // zeigt doppelte Links an
 var ripe = false;               // Ripe - Tooltips?
 var irrenhaus = false;          // Script für mehr Abwechslung im "neue Nachrichten"-Balken
 var js_highlight = false;       // javascript-code farbig hervorheben  (.js and pre-tags)
 var imgdupecheck = true;        // Bilder-Duplikate anzeigen
 
 // special rights options
 var dellinknowcommons = true;   // Löschlink bei NowCommons-Bildern (von Revvar/Codeispoetry)
 var loescheimer = true;         // erleichtertes LK-Abarbeiten (von mnh)
 
 // **************** SETUP Ende ***********************************
 
 // (PDD: note to self: version auch in alert-Funktion ändern!)
 var version  = 'P098u';
 
 var user  = wgUserName;         // username wird automatisch übernommen
 
 // aktuelle Zeit ermitteln
 var jetzt = new Date();
 // recalculate 4 furriners
 var jetztfixed = jetzt.getTime();
 jetztfixed += (timezoneshift * 3600 * 1000);
 jetzt.setTime(jetztfixed);
 // fill date variables
 var Monate = new Array("", "Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
 var Monatekurz = new Array("", "Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez");
 var Jahr = jetzt.getYear();
 if (Jahr < 999)  Jahr += 1900;
 var Monat = jetzt.getMonth() + 1;
 var Tag = jetzt.getDate();
 // fill WP date variables
 var WPDatum = Tag + '._' + Monate[Monat] + '_' + Jahr;
 var WPDatum2 = Jahr + '/' + Monate[Monat] + '/' + Tag;
 var WPDatum3 = Monate[Monat] + ' ' + Jahr;
 var WPDatum4 = Jahr + '-' + LeadingZero(Monat);
 var WPDatum5 = Jahr + LeadingZero(Monat) + '/';
 var refDatum = Tag + '. ' + Monatekurz[Monat] + '. ' + Jahr;
 var refDatumlang = Tag + '. ' + Monate[Monat] + ' ' + Jahr;
 
 // Lemma-Varianten (work in progress) + redundant zu addLogsLink etc.
 // get page title
 var pagetitle = wgPageName;
 var spagetitle = wgTitle;
 // do real spaces; fix for lemmas with '&'
 var ptitle = pagetitle.replace(/_/g, " ").split('&').join('%26');
 var sptitle = spagetitle.replace(/_/g, " ").split('&').join('%26');
 // do + escaped (" " to "+")
 var pesctitle = spaceEscape(ptitle);
 var spesctitle = spaceEscape(sptitle);
 // lemmatitle for external lookup
 var spesctitlelookup = spesctitle.split('+(')[0];
 // Komma-Lemma für Personen (Klammerzusätze weg etc.)
 var personlemma = spagetitle.split(' (')[0];
 var titlesplit = personlemma.split(' ');
 if (titlesplit.length > 1) {
    personlemma = titlesplit[titlesplit.length-1] + ',';
    for (i=0; i<(titlesplit.length-1); i++)
        personlemma=personlemma + " "+titlesplit[i];
 }
 
 // get URL parameters (used for page type variables)
 var UrlParameters = new Array ();
 readparams();
 
 function readparams() {
  var asReadInUrlParameters;
  var asReadInUrlParameter;
 
  // Get URL parameters
  asReadInUrlParameters = location.search.substring(1, location.search.length).split("&");
  for (i = 0; i < asReadInUrlParameters.length; i++) {
    asReadInUrlParameter = asReadInUrlParameters[i].split("=");
    UrlParameters[decodeURIComponent(asReadInUrlParameter[0])] = decodeURIComponent(asReadInUrlParameter[1]);
  }
 }
 
 // page type variables: namespaces
 var isArticle       = (mw.config.get('wgNamespaceNumber') == 0);
 var isArticleTalk   = (mw.config.get('wgNamespaceNumber') == 1);
 var isBild          = (wgCanonicalNamespace == "Image");
 var isCategory      = (wgCanonicalNamespace == "Category");
 var isTemplate      = (wgCanonicalNamespace == "Template");
 var isGeneric       = false;
 if ((!isBild) && (!isCategory) && (!isTemplate))
     isGeneric  = true;
 var isProject       = (wgCanonicalNamespace == "Project"); /* NR Wikipedia: */
 var isHelp          = (wgCanonicalNamespace == "Help");    /* NR Hilfe */
 
 // page type variables: namespace == -1
 var isSpecial  = (wgCanonicalNamespace == "Special");
 var isRestore = (isSpecial && (wgCanonicalSpecialPageName == "Undelete"));
 var isContrib = (isSpecial && (wgCanonicalSpecialPageName == "Contributions"));
 var isDelContrib = (isSpecial && (wgCanonicalSpecialPageName == "DeletedContributions"));
 var isWatchlist = (isSpecial && (wgCanonicalSpecialPageName == "Watchlist"));
 
 // page type variables: namespace == -1
 var isTalk = (!isSpecial && isOdd(mw.config.get('wgNamespaceNumber')));
 
 // page type variables: other stuff
 var isPHP     = (document.URL.indexOf('index.php') > 0);
 var isDiff    = UrlParameters["diff"];
 var isEdit    = ( (UrlParameters['action']=='edit')
                || (UrlParameters['action']=='submit') );
 var isHistory = (UrlParameters['action']=='history');
 
 // userpage/name stuff, vor allem für IPs
 var userPageOwner = "";
 if (isContrib || isDelContrib)  {
   if (UrlParameters['target']) userPageOwner = UrlParameters['target'].split('+').join('_');
   else {
        userPageOwner = decodeURIComponent(location.href.substring(location.href.indexOf("/wiki/") + 6)).split('#')[0];
        userPageOwner = userPageOwner.substring(userPageOwner.indexOf("Beiträge/") + 9);
   }
 }
 
 // page type variables: user & user discussion lumped together
 var isUserpage = ( (wgCanonicalNamespace == "User") || (wgCanonicalNamespace == "User_talk") );
 var isUserMainpage = false;
 if (isUserpage)
    if (wgTitle == wgTitle.split("/")[0]) {
        isUserMainpage = true;
        userPageOwner = wgTitle;
    }
 
 // handelt es sich um eine IP?
 var isIPUser = false;
 if (userPageOwner != "")
    if (userPageOwner.match(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/) != null)
       if ((userPageOwner.split(".")[0] > 1) && (userPageOwner.split(".")[0] < 255))
          isIPUser = true;
 
 // Admin functions
 var adminflag = false;
 if (isAdmin()) adminflag = true;
 
 // Browserkram
 var userbrowser = "Standard";
 if (navigator.userAgent.indexOf("Opera") > -1)
     userbrowser = "Opera";
 if (navigator.userAgent.indexOf("Safari") > -1)
     userbrowser = "Standard";
 if (navigator.userAgent.indexOf("MSIE") > -1) {
     userbrowser = "IE";
     if (navigator.userAgent.indexOf("MSIE 7") > -1)
         userbrowser = "IE7";
 }
 
 // force Browserswitches
 if ((userbrowser == "IE") || (userbrowser == "IE7")) {
     godmodelight = false;
     showredundantlinks = false;
 }
 if (userbrowser == "Opera") {
     godmodelight = false;
 }
 
 /*
  * ab hier wird der Quickbar (der Kasten oben links) zusammengebaut
  *
  * zuerst die allgemeinen Variablen (hier bitte nix ändern!)
  */
 
 var Quickbar = '<div class="pBody noprint" id="p-quickbar" style="position:absolute; top:5px; left:0px; width:14.1em; z-index:10;">';
 // optional:  opacity:0.9;
 var xxx      = '';
 
 var trenner='<hr />';
 var br     ='<br />';
 
 var qbtarget = '_self';
 if (qbnewpage) qbtarget = '_blank';
 
 var dropdown = usedropdown;
 var scrpt    = '';
 var scrptn   = 0;
 var indropdown;
 var ind;
 
 /*
  * Quickbar-Zusammenbau, Teil 1:
  *
  * zuerst die Reihenfolge der einzelnen Abschnitte:
  */
 
 function buildQuickbar() {
    qbWPIntern();
    qbPatrol();
    qbWartung();
    qbToolserver();
    qbCategoryTools();
    qbImageTools();
    qbExternTools();
 
    // ab hier keine Dropdowns mehr
    closedropdown();
    dropdown=false;
 
    // die folgenden werden nur im Edit-Modus eingeblendet
    qbEditTags();
    qbArticleTemps();
    qbMarkupTools();
    qbImageTemps();
    qbUsertalkTemps();
 
    // der folgende Abschnitt wird nur bei Admins eingeblendet
    qbAdminTools();
 
    // Automatisches Bausteinsetzen
    qbAutoTemps();
 }
 
 
 /*
  * Quickbar-Zusammenbau, Teil 2:
  *
  * die Belegung der einzelnen Abschnitte
  */
 
 function qbWPIntern() {
    w (0,trenner,'Wikipedia','');
 
    // w (1,'/wiki/Hilfe:MediaWiki','MW',qbtarget,'MediaWiki-Hilfe');
    // w (1,'/wiki/Wikipedia:Hilfe','RTFM',qbtarget,'Wikipedia-Hilfe');
    // w (1,'/wiki/Hilfe:Textgestaltung','TG',qbtarget,'Hilfe zur Textgestaltung');
    // w (1,'/wiki/Hilfe:Farben','FT',qbtarget,'Hilfe zur Farbgestaltung');
    w (1,'/wiki/Wikipedia:Kurier','K',qbtarget,'Wikikurier - Das Wikipedia-Nachrichtenblatt');
    w (1,'/wiki/Wikipedia:Fragen zur Wikipedia','FZW',qbtarget,'Fragen zur Wikipedia');
    w (1,'/wiki/Wikipedia:Auskunft','A',qbtarget,'Auskunft');
    // w (1,'/wiki/Wikipedia:Autorenportal','P',qbtarget,'Autorenportal');
    w (1,'/wiki/Wikipedia:Projektneuheiten','NEU',qbtarget,'Projektneuheiten');
    w (1,'/wiki/Wikipedia:Verbesserungsvorschläge','VV',qbtarget,'Verbesserungsvorschläge');
    w (1,'/wiki/Wikipedia:Tellerrand','TE',qbtarget,'Tellerrand');
    w (1,'/wiki/Wikipedia:Administratoren/Anfragen','AAF',qbtarget,'Administratoren/Anfragen');
    w (1,'/wiki/Wikipedia:Administratoren/Notizen','AN',qbtarget,'Administratoren/Notizen');
    w (1,'/wiki/Wikipedia:Dritte_Meinung','3M',qbtarget,'Dritte Meinung');
    // w (1,'/wiki/Wikipedia:Projektdiskussionen','PRD',qbtarget,'Projektdiskussionen');
    w (1,'/wiki/Wikipedia:Adminkandidaturen','AK',qbtarget,'Adminkandidaturen');
    w (1,'/wiki/Wikipedia:Schiedsgericht/Anfragen','SG/A',qbtarget,'Schiedsgericht/Anfragen');
    w (1,'/wiki/Wikipedia:Checkuser/Anfragen','CU/A',qbtarget,'Checkuser/Anfragen');
    // w (1,'/wiki/Wikipedia:Abkürzungen','ABK',qbtarget,'Abkürzungen');
 }
 
 function qbPatrol() {
    w (0,trenner,'Überwachung','');
 
    w (1,'/w/index.php?title=Special:Recentchanges&hideminor=0&hideliu=1&hidebots=1&hidepatrolled=0&days=7&limit='+rclimit,'RCs',qbtarget,'Letzte Änderungen');
    w (1,'/wiki/Special:Contributions/newbies','RCNs',qbtarget,'Beiträge neuer Benutzer');
    w (1,'/w/index.php?title=Special:Newpages&namespace=0&limit='+nplimit+'&offset=0','NeuA',qbtarget,'Neue Artikel');
    // w (1,'/wiki/Special:Newimages','NeuD',qbtarget,'Neue Dateien (Bilder)');
    w (1,'/w/index.php?title=Special:Log&limit='+nulimit+'&type=newusers','NeuB',qbtarget,'Neue Benutzer');
    w (1,'/wiki/Special:Log','Log',qbtarget,'Logfiles');
    w (1,'/wiki/Wikipedia:Vandalismusmeldung','VM',qbtarget,'Vandalismusmeldung');
    w (1,'/wiki/Wikipedia:Sperrprüfung','SPP',qbtarget,'Sperrprüfung');
    w (1,'/wiki/Wikipedia:Löschprüfung','LP',qbtarget,'Löschprüfung');
    w (1,'/wiki/Wikipedia:Entsperrwünsche','EW',qbtarget,'Entsperrwünsche');
    w (1,'/wiki/Wikipedia:Administratoren/Probleme','AP',qbtarget,'Admin-Probleme');
    // w (1,'irc://irc.freenode.net/wikipedia-de','IRC',qbtarget,'IRC-Chat #wikipedia-de');
 }
 
 function qbWartung() {
    w (0,trenner,'Wartung','');
 
    // w (1,'/wiki/Wikipedia:Löschregeln','WP:LR',qbtarget,'Löschregeln');
    w (1,'/wiki/Kategorie:Wikipedia:Schnelllöschen','SLK',qbtarget,'Schnelllöschkandidaten');
    w (1,'/wiki/Wikipedia:Löschkandidaten','LK',qbtarget,'Löschkandidaten');
    w (1,'/wiki/Wikipedia:Löschkandidaten/'+WPDatum,'LKH',qbtarget,'Löschkandidaten (heute)');
    // w (1,'/wiki/Wikipedia:Löschkandidaten/Bilder/'+WPDatum,'BildLK',qbtarget,'Löschkandidaten (Bilder)');
    // w (1,'/wiki/Wikipedia:WikiProjekt_Kategorien/Diskussionen/'+WPDatum2,'KatLK',qbtarget,'Löschkandidaten (Kategorien)');
    w (1,'/wiki/Wikipedia:Versionslöschungen','LKV',qbtarget,'Versionslöschungen');
    w (1,'/wiki/Wikipedia:Löschkandidaten/Urheberrechtsverletzungen','URV',qbtarget,'Löschkandidaten (URVs)');
 
    w (1,'/wiki/Wikipedia:Qualitätssicherung/'+WPDatum,'QS',qbtarget,'Qualitätssicherung');
    w (1,'/wiki/Wikipedia:Redundanz/'+WPDatum3,'RED',qbtarget,'Redundanz');
    w (1,'/wiki/Kategorie:Wikipedia:Unverständlich','Wirr',qbtarget,'Unverständlich');
 
    w (1,'/wiki/Wikipedia:Kandidaten für exzellente Artikel','KEA',qbtarget,'Kandidaten für exzellente Artikel');
    w (1,'/wiki/Wikipedia:Kandidaten für lesenswerte Artikel','KLA',qbtarget,'Kandidaten für lesenswerte Artikel');
    w (1,'/wiki/Wikipedia:Review','RV',qbtarget,'Review');
    w (1,'/wiki/Wikipedia:Kandidaten für exzellente Bilder','KEB',qbtarget,'Kandidaten für exzellente Bilder');
    w (1,'/wiki/Wikipedia:Kandidaten für informative Listen und Portale','KILP',qbtarget,'Kandidaten für informative Listen und Portale');
    // w (1,'/wiki/Wikipedia:Kandidaten für exzellente Aufnahmen','KEAU',qbtarget,'Kandidaten für exzellente Aufnahmen');
 }
 
 function qbToolserver() {
    w (0,trenner,'Toolserver','');
 
    qbUserTools();
 
    w (1,"http://tools.wikimedia.de/~leon/stats/wikicharts/index.php?lang=de&wiki=dewiki&ns=Artikel&limit=200&month=" + LeadingZero(Monat) + "%2F" + Jahr + "&mode=view",'WCh',qbtarget,'WikiCharts');
    w (1,"http://tools.wikimedia.de/~vvv/adminstats.php?wiki=dewiki_p&tlimit=2419200",'AdmA',qbtarget,'Adminaktivität (letzte 4 Wochen)');
    w (1,"http://tools.wikimedia.de/~aka/cgi-bin/revstat.cgi?period=168",'RStat',qbtarget,'Revert-Statistik (letzte Woche)');
    w (1,"http://tools.wikimedia.de/~luxo/Geburtstag.php",'GK',qbtarget,'Wikipedia Geburtstagskalender');
    w (1,"http://tools.wikimedia.de/~magnus/wikitodo.php?language=de",'2Do',qbtarget,'Wikipedia ToDo');
 
    if (isArticle) {
        w (1,"http://stats.grok.se/de/"+WPDatum5+ptitle,'AStat',qbtarget,'Wikipedia article traffic statistics');
        w (1,"http://tools.wikimedia.de/~daniel/WikiSense/Contributors.php?wikilang=de&wikifam=.wikipedia.org&page="+pesctitle+"&since=&until=&grouped=on&order=-rev_timestamp&max=100&order=-rev_timestamp&format=html",'Conts',qbtarget,'Beiträge zu diesem Artikel');
    }
 }
 
 function qbUserTools() {
    if (userPageOwner == "") return;
 
    if (isIPUser) {
        // w (1,"http://www.ripe.net/whois?form_type=simple&full_query_string=&searchtext="+userPageOwner+"&do_search=Search",'IPripe',qbtarget);
        w (1,"http://www.dnsstuff.com/tools/ipall.ch?domain="+userPageOwner,'IPinfo',qbtarget,'IPInfo/Whois');
        w (1,"http://www.dnsstuff.com/tools/tracert.ch?ip="+userPageOwner,'IPtrcrt',qbtarget,'Traceroute');
        w (1,"http://www.as3344.net/is-tor/?args="+userPageOwner,'TOR',qbtarget,'TOR-Node-Check');
        w (1,"http://tools.wikimedia.de/~luxo/contributions/contributions.php?user="+userPageOwner+"&blocks=true&lang=de",'IP-GUC',qbtarget,'Global user contributions');
        // w (1,"http://tools.wikimedia.de/~vvv/rangecontribs.php?wiki=dewiki_p&user="+userPageOwner.substring(0, userPageOwner.lastIndexOf('.')),'IP-RaC',qbtarget,'IP range contributions');
        w (1,"http://de.wikipedia.org/w/api.php?action=query&list=usercontribs&uclimit=200&format=xmlfm&ucuserprefix="+userPageOwner.substring(0, userPageOwner.lastIndexOf('.'))+".",'IP-RaC',qbtarget,'IP range contributions via API');
        w (1,"http://jodies.de/ipcalc?host="+userPageOwner+"&mask1=18&mask2=",'IPrange',qbtarget,'Range/Subnet Rechner');
    } else {
        // w (1,"http://www.ripe.net/whois",'ripe',qbtarget);
        // w (1,"http://www.dnsstuff.com/",'whois',qbtarget,'Whois');
        // w (1,"http://www.denic.de/de/",'denic',qbtarget,'Domain-Lookup');
        // w (1,"http://www.iks-jena.de/cgi-bin/whois",'iks-whois',qbtarget,'IKS-Whois-Lookup');
 
        w (1,"http://tools.wikimedia.de/~vvv/sulutil.php?user="+userPageOwner,'GUA',qbtarget,'Global user accounts');
        w (1,"http://tools.wikimedia.de/~purodha/sample/dbswithuser.php?usr="+userPageOwner+"&go=Go%21&uselang=de",'GUA+',qbtarget,'Global user accounts (ausführlich)');
        w (1,"http://tools.wikimedia.de/~luxo/contributions/contributions.php?user="+userPageOwner+"&lang=de",'GUC',qbtarget,'Global user contributions');
 
        if (user != userPageOwner)
           w (1,"http://tools.wikimedia.de/~cyroxx/familiar/familiar.php?user1="+spaceEscape(user)+"&user2="+spaceEscape(userPageOwner),'UFam',qbtarget,'Are U familiar?');
    }

    // w (1,"http://tools.wikimedia.de/~interiot/cgi-bin/count_edits?user="+user+"&dbname=dewiki_p",'EC+',qbtarget,'Mein Editcount');
    w (1,"http://tools.wikimedia.de/~chm/blockcalc.php",'BCalc',qbtarget,'Rangeblock-Calculator');
 
 }
 
 function qbCategoryTools() {
    if (!isCategory) return;
 
    w (0,trenner,'Kategorie-Tools','');
 
    w (1,"http://tools.wikimedia.de/~daniel/WikiSense/CategoryIntersect.php?wikilang=de&wikifam=.wikipedia.org&basecat="+spesctitle+"&userlang=de",'K:Scan',qbtarget,'Kategorie: CatScan');
    w (1,"http://tools.wikimedia.de/~daniel/WikiSense/CategoryIntersect.php?wikilang=de&wikifam=.wikipedia.org&basecat="+spesctitle+"&basedeep=5&mode=rc&hours=168&onlynew=on&userlang=de&go=Scannen",'K:Neu',qbtarget,'Kategorie: Neue Artikel');
    w (1,"http://tools.wikimedia.de/~daniel/WikiSense/CategoryIntersect.php?wikilang=de&wikifam=.wikipedia.org&basecat="+spesctitle+"&basedeep=5&mode=cs&tagcat=Wikipedia%3AL%C3%B6schkandidat&tagdeep=1&userlang=de&go=Scannen",'K:LA',qbtarget,'Kategorie: Artikel mit Löschantrag');
    w (1,"http://tools.wikimedia.de/~magnus/missingtopics.php?project=wikipedia&language=de&category="+spesctitle+"&depth=5&wikimode=0&doit=Run",'K:Miss',qbtarget,'Kategorie: Fehlende Artikel');
 }
 
 function qbImageTools() {
    if (!isBild) return;
 
    w (0,trenner,'Bild-Tools','');
 
    w (1,"http://tools.wikimedia.de/~magnus/commonshelper.php?interface=de&lang=de&project=wikipedia&image="+spesctitle+"&doit='Text generieren'",'B:M2C',qbtarget,'Bild: Move-to-commons-Assistent');
    w (1,"http://tools.wikimedia.de/~luxo/reworkhelper/index.php?image="+pesctitle,'B:RWH',qbtarget,'Bild: Reworkhelper');
 
    w (1,'http://commons.wikimedia.org/wiki/Special:Upload','C-Up',qbtarget,'Commons-Upload');
    w (1,'http://tools.wikimedia.de/~daniel/WikiSense/CommonsClash.php?wikilang=de&wikifam=.wikipedia.org&order=img_name&max=200&format=html','C-C',qbtarget,'CommonsClash');
    w (1,"http://tools.wikimedia.de/~magnus/commonshelper.php?interface=de&lang=de&project=wikipedia",'M2C',qbtarget,'Move-to-commons-Assistent');
 }
 
 function qbExternTools() {
    w (0,trenner,'Externe Tools','');
 
    // w (1,"http://www.copyscape.com",'CopySc',qbtarget);
    w (1,"http://www.affenkrieger.de/wiki/wikicc.php",'AffenKr',qbtarget,'Affenkrieger');
    w (1,'http://vs.aka-online.de/cgi-bin/globalwpsearch.pl?search='+pesctitle+'&timeout=300&minor=1','GWS',qbtarget,'GlobalWikiSearch');
    w (1,'http://wikipedia.ramselehof.de/wikiblame.php?article='+pesctitle+'&user_lang=de&skipversions=2&ignorefirst=3&limit=250','WBlame',qbtarget,'Wikiblame');
    w (1,'http://vs.aka-online.de/cgi-bin/wppagehiststat.pl?lang=de&page='+pesctitle,'WPHS',qbtarget,'Seitenstatistik');
    // w (1,"http://www.itp.uni-hannover.de/~krohn/wscan.html.utf8",'Krohn',qbtarget);
    w (1,'http://tools.wikimedia.de/~arnomane/cgi-bin/WP-autoreview.pl?l=de&do_typo_check=ON&Go%21=Go%21&lemma='+pesctitle,'AR',qbtarget,'AutoReview');
 
    // w (1,"http://www.canoo.net",'Canoo',qbtarget); 
    w (1,"http://www.cia.gov/cia/publications/factbook/index.html",'FactB',qbtarget,'CIA World Factbook');
    w (1,"http://de.encarta.msn.com/artcenter_/browse.html",'Enc',qbtarget,'MSN Encarta');
    w (1,"http://lexikon.meyers.de/meyers/Meyers:Meyers_Lexikon_online",'Meyers',qbtarget,'Meyers Lexikon online');
    w (1,"http://www.retrobibliothek.de/retrobib/suche.html",'rbib',qbtarget,'retro-bib (u. a. Meyers Konversationslexikon 1888)');
 
    if (isArticle) {
        // w (1,"http://www.zeno.org/Zeno/0/Suche?&q=%22" + spesctitlelookup + "%22&h=1",'Zeno',qbtarget,'Verschiedene Lexika bei zeno.org');
        w (1,"http://www.zeno.org/Zeno/0/Suche?&q=" + spesctitlelookup + "&h=1",'Zeno',qbtarget,'Verschiedene Lexika bei zeno.org');
    } else {
        w (1,"http://www.zeno.org/Bibliothek",'Zeno',qbtarget,'Verschiedene Lexika bei zeno.org');
    }
 
    w (1,"http://www.ddb.de",'DNB',qbtarget,'Deutsche Nationalbibliothek');
 
    if (isArticle) {
        w (1,"http://dispatch.opac.ddb.de/DB=4.1/CMD?ACT=SRCHA&IKT=8514&SRT=YOP&TRM="+quickEscape(personlemma,1),'DNB-PND',qbtarget,'DNB (PND-Suche)');
    } else {
        w (1,"http://dnb.ddb.de/",'DNB-PND',qbtarget,'DNB (PND-Suche)');
    }
 
    w (1,"http://www.ubka.uni-karlsruhe.de/kvk.html",'KVK',qbtarget,'Karlsruher Virtueller Katalog');
    w (1,"http://tools.wikimedia.de/gradzeichen/IsbnCheckAndFormat?Language=Deutsch&FormatOnlyRaw=no&Test=http%3A%2F%2Fswb.bsz-bw.de%2FDB%3D2.1%2FCMD%3FACT%3DSRCHA%26IKT%3D1007%26TRM%3DMAGIC",'ISBN',qbtarget,'ISBN Checker/Formatter');
    w (1,"http://mdz1.bib-bvb.de/~ndb/ndbmaske.html",'A/NDB',qbtarget,'Allgemeine/Neue Deutsche Biographie');
    // w (1,"http://bse.sci-lib.com/",'Бсэ',qbtarget,'Большая советская энциклопедия');
    w (1,"http://encycl.yandex.ru/dict/bse",'Бсэ',qbtarget,'Большая советская энциклопедия');
 }
 
 function qbEditTags() {
    if (isBild) return;
    if (!isEdit) return;
 
    w (0,trenner,'Editierhilfen','');
 
    w (3,"br,'',''",'br','','Zeilenumbruch');
    w (3,"'&','nbsp;',''",'nbsp','','Geschütztes Leerzeichen');
    w (3,"'†','',''",'†','','Kreuz');
    // w (3,"'—','',''",'—','','Geviertstrich (Spiegelstrich)');
    w (3,"'–','',''",'–','','Halbgeviertstrich (Gedankenstrich)');
    // w (3,"'-','',''",'-','','Viertelgeviertstrich (Bindestrich)');
    // w (3,"'−','',''",'−','','Minuszeichen');
    w (3,"'→','',''",'→','','Pfeil nach rechts');
    w (3,"'←','',''",'←','','Pfeil nach links');
    w (3,"'<!-- ',' -->',''",'// comment','','<!--Kommentar-->');
    w (3,"'„','“',''",'„“','','Anführungszeichen');
 // </nowiki>
    w (3,"'<nowiki>','</nowiki>',''",'Nowiki','','<nowiki>');
    w (3,"'<code><nowiki>','</nowiki></code>',''",'Code','','<code+nowiki>');
 // <nowiki>
    w (3,"'<span class=\\u0022plainlinks\\u0022>','</span>',''",'Plain','','Plain Link');
    w (3,"'<small>','</small>',''",'<small>small</small>','','Klein');
    w (3,"'<s>','</s>',''",'<s>strike</s>','','Durchstreichen');
    w (3,"'<u>','</u>',''",'<u>under</u>','','Unterstreichen');
    w (3,"'<ref>','</ref>',''",'<small>[ref]</small>','','Referenz');
    w (3,"'<ref name=\\u0022name\\u0022>','</ref>',''",'<small>[refN]</small>','','Referenz-Name');
    w (3,"'<ref name=\\u0022name\\u0022 />','',''",'<small>[refR]</small>','','Referenz-Name-Wiederholung');
    w (3,"'<math>','</math>',''",'Math'); 
    w (3,"':<math>\\u005Cmathrm{','}</math>',''",'ChemForm');
 }
 
 function qbArticleTemps() {
    if (isBild) return;
    if (!isEdit) return;
 
    w (0,trenner,'Artikelbausteine','');
 
    w (3,"'== Weblinks ==\\n','',''",'Weblinks','','== Weblinks ==');
    w (3,"'== Einzelnachweise ==\\n<references />\\n','',''",'Refs','','== Einzelnachweise ==');
 
    w (3,"'[[Kategorie:',']]\\n',''","Kat:",'','[[Kategorie:]]');
    w (3,"'{{DEFAULTSORT:" + tagEscape(quickEscape(personlemma,2)) + "}}\\n','',''","DefSrt",'','{{DEFAULTSORT:');
    w (3,"'[[Benutzer:',']]',''","User:",'','[[Benutzer:]]');
    w (3,"'[[Wikipedia:',']]',''","WP:",'','[[Wikipedia:]]');
 
    w (0,br,'','');
 
    w (3,"'{{Personendaten\\n|NAME=" + tagEscape(personlemma) + "\\n|ALTERNATIVNAMEN=\\n|KURZBESCHREIBUNG=\\n|GEBURTSDATUM=\\n|GEBURTSORT=\\n|STERBEDATUM=\\n|STERBEORT=\\n}}\\n','',''",'PD','','{{Personendaten...');
    w (3,"'* {{PND|','}}\\n',''","PND",'','PND (individualisiert)');
    w (3,"'* {{PND|','|Keine Treffer im DNB-OPAC, " + refDatumlang + "}}\\n',''","PNDx",'','PND (individualisiert, ohne Treffer)');
    w (3,"'* {{PNDfehlt|" + refDatumlang + "|','}}\\n',''","PNDF",'','PNDfehlt (nicht individualisiert, aber mit Treffern)');
    w (3,"'* {{ADB|1|2|3|" + tagEscape(personlemma) + "|4}}\\n<!-- bitte Ausfüllen nicht vergessen! 1=Band, 2=erste Seite, 3=letzte Seite, 4=Autor des ADB-Artikels -->\\n','',''","ADB",'','{{ADB...');
    w (3,"'* {{NDB|1|2|3|" + tagEscape(personlemma) + "|4}}\\n<!-- bitte Ausfüllen nicht vergessen! 1=Band, 2=erste Seite, 3=letzte Seite, 4=Autor des NDB-Artikels -->\\n','',''","NDB",'','{{NDB...');
    w (3,"'* {{IMDb Name|','|" + tagEscape(wgTitle) + "}}\\n',''","IMDb-n",'','{{IMDb Name...');
    w (3,"'* {{IMDb Titel|tt','|" + tagEscape(wgTitle) + "}}\\n',''","IMDb-t",'','{{IMDb Titel...');
    w (3,"'* {{IMDb Firma|','|" + tagEscape(wgTitle) + "}}\\n',''","IMDb-f",'','{{IMDb Firma...');
    w (3,"'* {{OFDb|','|" + tagEscape(wgTitle) + "}}\\n',''","OFDb",'','{{OFDb...');
 
    w (0,br,'','');
 
    w (2,"'','#REDIRECT [[]]',1","Redir",'','#REDIRECT [[]]');
    w (2,"'+Überarbeiten','{{Überarbeiten}}\\n\\n',3","Überarb",'','{{Überarbeiten}}');
    w (2,"'+Quelle','{{Quelle}}\\n\\n',3","Quelle?",'','{{Quelle}}');
    // w (2,"'+Stub','{{Stub}}\\n\\n',2","Stub");
    w (2,"'+Lückenhaft','{{Lückenhaft|Es fehlen...}}\\n\\n',2","Lücke","","Lückenhaft");
    // w (2,"'+Rechtshinweis','{{Rechtshinweis}}',2","Recht");
    // w (2,"'+Gesundheitshinweis','{{Gesundheitshinweis}}',2","Gesundh.");
 }
 
 function qbMarkupTools() {
    if (isBild) return;
    if (!isEdit) return;
 
    w (0,trenner,'Markup-Tools','');
 
    w (4,"addPersData();","AutoPD",'','Automatische Kategorien und Personendaten'); // extern
    w (4,"wpTextReplace();","Replace",'','Suchen und Ersetzen');
    if (rechtschreibpruefung && !AutorunRP && !isSpecial)
        w (4,"spellcheck();","SpellChk",'','Rechtschreibprüfung');
    w (4,"ReplaceQuoteSigns();","FixQuote",'','Anführungszeichen korrigieren');  // extern
    w (4,"convertEntities();","FixEnt",'','HTML-Entities entfernen');  // extern
    w (4,"fixDash();","FixDash",'','Striche auf Halbgeviert vereinheitlichen');  // extern
    w (4,"ReplaceMarkup();","FixMark",'','Verschiedene Markup-Korrekturen');  // extern
    w (4,"undate();","UnDate",'','Daten entlinken');
 } 
 
 function qbImageTemps() {
    if (!isBild) return;
    if (!isEdit) return;
 
    w (0,trenner,'Bildbausteine','');
    w (4,"nowcomm();","NowCommons",'','NowCommons-Baustein setzen');
 
    w (2,"'+DÜP','{{Dateiüberprüfung|Quelle|Urheber|Lizenz|Freigabe}}\\n\\n',3","DÜP",'','Dateiüberprüfung (bitte überflüssige Parameter entfernen)'); 
 }
 
 function qbUsertalkTemps() {
    if (!isUserpage) return;
    if (!isTalk) return;
    if (!isEdit) return;
 
    w (0,trenner,'Benutzerbausteine','');
 
    // w (3,"'{{subst:Benutzer:PDD/Greetings/Hallo|1=" + tagEscape(user) + "}} " + tagEscape(usersignature) + "\\n','','','Willkommen!'","Hallo",'','Baustein PDD:Hallo');
    w (3,"'{{subst:Benutzer:PDD/Greetings/HalloG|1=" + tagEscape(user) + "|2=" + tagEscape(usersignature) + "}}\\n','','','Willkommen!'","Hallo",'','Baustein PDD:HalloG');
    w (3,"'{{subst:Benutzer:PDD/Greetings/HalloColor|1=" + tagEscape(user) + "}}\\n','','','Willkommen!'","HalloC",'','Baustein PDD:HalloColor');
    w (3,"'{{subst:Benutzer:PDD/Greetings/Danke}} " + tagEscape(usersignature) + "\\n','',''",'Danke','','Baustein PDD:Danke');
    w (3,"'{{subst:Benutzer:Complex/Greetings/TestMitStopschild}} " + tagEscape(usersignature) + "\\n','',''",'Stop','','Baustein Complex:TestMitStopschild'); // Abwandlung von [[Benutzer:LKD/V/VHinweis]]
    // w (3,"'{{subst:Benutzer:Blah/Vorlage:Vandale}}\\n','',''",'Vand','','Baustein Blah:Vandale');
    // w (3,"'{{subst:Benutzer:Tobi B./Vorlage:Löschvandale}} " + tagEscape(usersignature) + "\\n','',''",'LöschV','','Baustein Tobi B.:Löschvandale');
    w (3,"'{{subst:Benutzer:PDD/Greetings/KinderKinder!}}\\n','',''",'Kind','','Baustein PDD:Kind');
    w (3,"'{{subst:Benutzer:Chaddy/Vorlage:Signaturhinweis}} " + tagEscape(usersignature) + "\\n','',''",'Sign!','','Signieren nicht vergessen');
    w (3,"'{{subst:Vorschau}}\\n','',''",'Vorschau','','{{subst:Vorschau}}');
    // w (3,"'{{subst:Benutzer:PDD/Greetings/Linkspam}} " + tagEscape(usersignature) + "\\n','',''",'Linkspam','','Baustein PDD:Linkspam');
    w (3,"'{{subst:Benutzer:LKD/V/LHinweis}} " + tagEscape(usersignature) + "\\n','',''",'Linkspam','','Baustein LKD:Linkspam');
    // w (3,"'{{subst:Benutzer:Complex/Greetings/WP-WEB}} " + tagEscape(usersignature) + "\\n','',''",'LinkspamC','','Baustein Complex:WP-WEB'); // Abwandlung von [[Benutzer:LKD/V/LHinweis]]
    if (adminflag)
       w (3,"'{{subst:Benutzer:LKD/V/ALoesch}} " + tagEscape(usersignature) + "\\n','',''",'SLA-ex','','Autorenbenachrichtigung nach Schnelllöschung');
 }
 
 function qbAdminTools() {
    if (!adminflag) return;
 
    //if (isArticle || isCategory || isTemplate) {
    //    w (0,trenner,'','');
    //    w (4,"eintragen(12);","LemmaSp+","","+Lemmasperrung");
    //}
 
    if (isArticleTalk && isEdit) {
        w (0,trenner,'','');
        w (2,"'+Halbsperrung','{{Halbsperrung}}\\n',3","HSp","","Zugehöriger Artikel halbgesperrt");
        w (2,"'+Vollsperrung','{{Vollsperrung}}\\n',3","VSp","","Zugehöriger Artikel vollgesperrt");
    }
 
    if (isUserMainpage && isEdit) {
        w (0,trenner,'','');
        w (2,"'+Gesperrter Benutzer','{{Gesperrter Benutzer}}',1","BSp",'','Benutzer gesperrt');
        w (2,"'+Vorübergehend gesperrter Benutzer','{{Vorübergehend gesperrter Benutzer}}',1","vBSp",'','Benutzer vorübergehend gesperrt');
        w (2,"'+Offener Proxy','{{Offener Proxy}}',2","OP",'','Offener Proxy');
        w (2,"'+Gesperrte IP','{{IP-Sperrung}}',2","IP-S",'','IP gesperrt');
    }
 
    if (isRestore) {
        w (0,trenner,'','');
        w (4,"revAllDeletedVersions();","Auswahl umkehren?","","Versionsauswahl umkehren?");
    }
 }
 
 function qbAutoTemps() {
    if (isSpecial && !isContrib) return;
 
    w (0,trenner,'Auto-Bausteine','');
 
    if (( isGeneric)  && (!isSpecial))  w (4,"eintragen(1);","QS+","","+Qualitätssicherung");
    if (( isGeneric)  && (!isSpecial))  w (4,"eintragen(5);","URV+","","+URV");
    if (( isGeneric)  && (!isSpecial))  w (4,"eintragen(2);","LA+","","+Löschantrag");
    if (( isCategory) && (!isSpecial))  w (4,"eintragen(7);","KatLA+","","+Löschantrag Kategorie");
    if (( isTemplate) && (!isSpecial))  w (4,"eintragen(8);","VorLA+","","+Löschantrag Vorlage");
    if (                 (!isSpecial))  w (4,"eintragen(3);","SLA+","","+Schnelllöschantrag");
 
    if (hinweis) {
       if (( isGeneric)  && (!isSpecial))  w (4,"hinweis(1);","PH+","","+Portalhinweis");
       if (( isGeneric)  && (!isSpecial))  w (4,"hinweis(2);","RH+","","+Redaktionshinweis");
    }
    if (wgPageName == "Wikipedia:Spielwiese") w (4,"eintragen(10);","SP-Reset","","Spielwiese zurücksetzen");
 
    if (( isContrib)  || ( isUserpage)) {
        w (4,"eintragen(6);","VANDAL+","","+Vandalismusmeldung (Benutzer)");
    }
    if ((  isArticle) || ( isCategory)) {
        w (4,"eintragen(9);","VANDAL+","","+Vandalismusmeldung (Artikel)");
    }
 }
 
 
 /*
  * hier wird der Quickbar in die Seite geschrieben
  * (ab hier bitte nichts ändern)
  */
 
 buildQuickbar();
 document.write(Quickbar);
 
 if (typeof(version) == 'undefined') var version = "?";
 if (!isEdit || zeigeversion || isPHP) {
  document.write(
      '<div align=right>',
 
    (zeigeversion) ?
      ('<a href="#" onclick="amIuptodate()" title="Versionscheck">' + (adminflag ? 'A/' : '') + version + '</a>&nbsp;&nbsp;')
         : '',
 
    (!isEdit) ?
      ('<input type="checkbox" id="reloadme" name="reloadme" onchange="setReload()" title="Seite alle ' + (timeout/1000) + ' s neu laden?"></input>&nbsp;&nbsp;')
         : '&nbsp;',
 
      '<a href="/w/index.php?title=Spezial%3APrefixindex&from=',user,
          '&namespace=2" target="', qbtarget, '" title="Meine Seiten im Benutzernamensraum">',
          (user.split(' ')[0].length < 10) ? user.split(' ')[0] : 'MyPages',
      '</a>',
 
    (userbrowser != "Standard") ?
      ('&nbsp;&nbsp;<a href="#" onclick="badBrowser()" title="Browser nicht unterstützt">'
              + userbrowser.charAt(0) + userbrowser.charAt(1) + '!</a>')
         : '',
 
      '</div>');
 }
 document.write('<div style="font-size:',qbfontsize,'%;">',xxx,'</div></div>');
 
 if (scrpt > '') {
    document.write('<script> function _doopt (was) { switch (was) {', scrpt, '}}<\/script>');
    scrpt='';
 }
 
 //
 // ab hier functions
 //
 
 function w (was,lurl,linktext,targt,title) {
  if (!title) title=linktext;
  if (!zeigehilfe) title='';
  if (!dropdown) {
   switch (was) {
    case 0 : xxx=xxx+lurl;break;
    case 1 : xxx=xxx+'<a href="'+lurl+'" target="'+targt+'" title="'+title+'">'+linktext+'</a>&nbsp; ';break;
    case 2 : xxx=xxx+'<a href="#" onclick="newtext('+ lurl +')" title="'+title+'">'+linktext+'</a>&nbsp; ';break;
    case 3 : xxx=xxx+'<a href="#" onclick="insertTagsWrapper('+ lurl +')" title="'+title+'">'+linktext+'</a>&nbsp; ';break;
    case 4 : xxx=xxx+'<a href="#" onclick="'+ lurl +'" title="'+title+'">'+linktext+'</a>&nbsp; ';break;   
   }
  } //if
  else //todo: Hilfe bei Dropdowns. Benutzt die überhaupt jemand????
  {
   var ltext='__________'.substr(1,ind)+linktext;
   switch (was) {
    case 0 : if (lurl==br) { xxx = xxx+'<option>'+linktext+'</option>';ind=2; }
             else
             if (lurl==trenner) newdropdown(linktext);
             break;
    case 1 : xxx=xxx+'<option value="1|'+lurl+'">'+ltext+'</option>';break;
    case 2 : xxx=xxx+'<option value="2|'+scrptn+'">'+ltext+'</option>';
             scrpt=scrpt+'case '+scrptn+':newtext('+lurl+');break;';scrptn++;break;
    case 3 : xxx=xxx+'<option value="3|'+scrptn+'">'+ltext+'</option>';
             scrpt=scrpt+'case '+scrptn+':insertTagsWrapper('+lurl+');break;';scrptn++;break;          
    case 4 : xxx=xxx+'<option value="4|'+scrptn+'">'+ltext+'</option>';
             scrpt=scrpt+'case '+scrptn+':'+lurl+';break;';scrptn++;break;
   } //switch
  } //else
 } //w
 
 function dodropdown (aktion) {
  var zutun = aktion.split('|');
  var was = Number(zutun[0]);
  var wie = zutun[1];
 
  switch (was) {
   case 1 : window.open (wie); break;
   case 2 : _doopt (Number(wie)); break;
   case 3 : _doopt (Number(wie)); break;
   case 4 : _doopt (Number(wie)); break;
  } //switch
 } //dodropdown
 
 function newdropdown (oname) {
   closedropdown();
   xxx = xxx+'<select size=1 onchange="dodropdown(this.value);" style="width:135px;font-size:9px;">';
   if (oname > '') { xxx = xxx+'<option>'+oname+'</option>'; }
   indropdown = true;
   ind=2;
 }
 
 function closedropdown () {
  if (indropdown) xxx=xxx+'</select>';
  indropdown = false;
 }
 
 function newtext (subj,text,wo)
  {  //wo=1 : Text austauschen
     //wo=2 : Text am Ende anhängen
     //wo=3 : Text vorne Einfügen
 
   if (subj > "") {
      if (document.editform.wpSummary.value > "") document.editform.wpSummary.value += ", ";
      document.editform.wpSummary.value = document.editform.wpSummary.value + subj;
   }
 
   switch (wo) {
       case 1 : document.editform.wpTextbox1.value=text+'\n'; break;
       case 2 : document.editform.wpTextbox1.value=document.editform.wpTextbox1.value+'\n'+text;break;
       case 3 : document.editform.wpTextbox1.value=text+'\n'+document.editform.wpTextbox1.value;break;
   }
   document.editform.wpTextbox1.focus();
  }
 
 function insertTagsWrapper(tagOpen, tagClose, sampleText, subj) {
   if (subj > "") {
      if (document.editform.wpSummary.value > "") document.editform.wpSummary.value += ", ";
      document.editform.wpSummary.value = document.editform.wpSummary.value + subj;
   }
   insertTags(untagEscape(tagOpen), untagEscape(tagClose), untagEscape(sampleText))
 }
 
 // Krimskrams
 function isEven(myNumber) {
    return (myNumber % 2 == 0);
 }
 function isOdd(myNumber) {
    return (! isEven(myNumber));
 }
 function LeadingZero(x) {
    return (x >= 10 || x < 0 ? "" : "0") + x;
 }
 function isAdmin() {
   var specialrights = false;
   if (typeof wgUserGroups != 'object') return(specialrights);
   if (typeof wgUserGroups[0] != 'string') return(specialrights); 
   for (i=0;i<wgUserGroups.length;i++) {
       if (wgUserGroups[i] == "sysop") specialrights = true;
   }
   return(specialrights); 
 }
 function quickEscape(text, esctype)
 {
   // esctype = 1 -> normal umlaut escapes
   // esctype = 2 -> wikisort umlaut escapes
 
   text = text.replace(/ß/g, "ss");
 
   text = text.replace(/Á/g,"A").replace(/á/g,"a")
              .replace(/À/g,"A").replace(/à/g,"a")
              .replace(/Ă/g,"A").replace(/ă/g,"a")
              .replace(/Â/g,"A").replace(/â/g,"a")
              .replace(/Å/g,"A").replace(/å/g,"a")
              .replace(/Ā/g,"A").replace(/ā/g,"a")
              .replace(/Ć/g,"C").replace(/ć/g,"c")
              .replace(/Č/g,"C").replace(/č/g,"c")
              .replace(/Ç/g,"C").replace(/ç/g,"c")
              .replace(/Đ/g,"Dj").replace(/đ/g,"dj")
              .replace(/É/g,"E").replace(/é/g,"e")
              .replace(/È/g,"e").replace(/è/g,"e")
              .replace(/Ë/g,"e").replace(/ë/g,"e")
              .replace(/Ě/g,"e").replace(/ě/g,"e")
              .replace(/Ğ/g,"G").replace(/ğ/g,"g")
              .replace(/Í/g,"I").replace(/í/g,"i")
              .replace(/Ì/g,"I").replace(/ì/g,"i")
              .replace(/İ/g,"I").replace(/ı/g,"i")
              .replace(/Î/g,"I").replace(/î/g,"i")
              .replace(/Ł/g,"L").replace(/ł/g,"l")
              .replace(/Ļ/g,"L").replace(/ļ/g,"l")
              .replace(/Ń/g,"N").replace(/ń/g,"n")
              .replace(/Ñ/g,"N").replace(/ñ/g,"n")
              .replace(/Ň/g,"N").replace(/ň/g,"n")
              .replace(/Ņ/g,"N").replace(/ņ/g,"n")
              .replace(/Ó/g,"O").replace(/ó/g,"o")
              .replace(/Ò/g,"O").replace(/ò/g,"o")
              .replace(/Ø/g,"O").replace(/ø/g,"o")
              .replace(/Õ/g,"O").replace(/õ/g,"o")
              .replace(/Ő/g,"O").replace(/ő/g,"o")
              .replace(/Ř/g,"R").replace(/ř/g,"r")
              .replace(/Ś/g,"S").replace(/ś/g,"s")
              .replace(/Š/g,"S").replace(/š/g,"s")
              .replace(/Ş/g,"S").replace(/ş/g,"s")
              .replace(/Ţ/g,"T").replace(/ţ/g,"t")
              .replace(/Ú/g,"U").replace(/ú/g,"u")
              .replace(/Ù/g,"U").replace(/ù/g,"u")
              .replace(/Ű/g,"U").replace(/ű/g,"u")
              .replace(/Ů/g,"U").replace(/ů/g,"u")
              .replace(/Ý/g,"Y").replace(/ý/g,"y")
              .replace(/Ź/g,"Z").replace(/ź/g,"z")
              .replace(/Ž/g,"Z").replace(/ž/g,"z")
              .replace(/Ż/g,"Z").replace(/ż/g,"z");
 
   if (esctype == 1) {
      text = text.replace(/Ä/g,"Ae").replace(/ä/g,"ae")
                 .replace(/Ö/g,"Oe").replace(/ö/g,"oe")
                 .replace(/Ü/g,"Ue").replace(/ü/g,"ue")
                 .replace(/Ə/g,"Ae").replace(/ə/g,"ae");
   } else {
      text = text.replace(/Ä/g,"A").replace(/ä/g,"a")
                 .replace(/Ö/g,"O").replace(/ö/g,"o")
                 .replace(/Ü/g,"U").replace(/ü/g,"u")
                 .replace(/Ə/g,"A").replace(/ə/g,"a");
   }
   return(text);
 }
 function tagEscape(text)
 {
   text = text.replace(/'/g, "%27");
   text = text.replace(/"/g, "%22");
   return(text);
 }
 function untagEscape(text)
 {
   text = text.replace(/%27/g, "'");
   text = text.replace(/%22/g, "\"");
   return(text);
 }
 function spaceEscape(text)
 {
   text = text.replace(/ /g, "+");
   text = text.replace(/_/g, "+");
   return(text);
 }
 
 // Funktion: importPage()
 // zum Einbinden der Module
 function importPage(seite, lang) { // all languages support
    name='User:'; // international name, works in all wikipedias
    if(!lang) lang = wgContentLanguage;
 
    // new version
    seite = 'http://' + lang + '.wikipedia.org' + wgScriptPath + '/index.php?title=' + name + seite +
           '&action=raw&ctype=text/javascript&smaxage=0';
 
    var head = document.getElementsByTagName('head').item(0);
    var js = document.createElement('script');
    js.setAttribute('type', 'text/javascript');
    js.setAttribute('src', seite);
    js.setAttribute('charset', 'utf-8');
    head.appendChild(js);
 
    return false;
    // old version
    // document.write('<SCRIPT TYPE="text/javascript" SRC="http://' + lang
    // + '.wikipedia.org/w/index.php?title=' + name + seite
    // + '&action=raw&ctype=text/javascript&smaxage=0"><\/SCRIPT>');
 }
 
 /*
  * 3xImport von [[Benutzer:Revvar]]
  * aus [[Benutzer:Revvar/wikibits.js]] und [[Benutzer:Revvar/monobook.js]]
  */
 
 /**
 Imports a user javascript page from any wikipedia project into the actual document.
 
 @version 0.1
 @date 2007/03/22
 @author: based on function importPage from [[de:User:PDD]]s monobook.js, extended by [[de:User:Revvar]]
 @param page Name of the user page without the "user:" prefix and the ".js" appendix
 @param lang (optional) Language code of the corresponding wikipedia project. Default is the callers project.
 @return "true" on success, "false" otherwise
 */
 
 function importJavascriptL(page, lang)
 {
    try {
        /* check the parameters and set defaults */
        if(!page) throw("importJavascriptL: Missing parameter page.");
        if(!lang) lang = wgContentLanguage;
 
        /* create import url */
        var import_url = 'http://' + lang + '.wikipedia.org' + wgScriptPath + '/index.php?title=User:' + page +
           '.js&action=raw&ctype=text/javascript&smaxage=0';
 
        /* import page */
        var Head = document.getElementsByTagName('head').item(0);
        var Script = document.createElement('script');
        Script.setAttribute('type', 'text/javascript');
        Script.setAttribute('src', import_url);
        Script.setAttribute('charset', 'utf-8');
        Head.appendChild(Script);
 
        return true;
    } catch(e) {
        alert(e.message);
        return false;
    }
 }
 
 /**
 Imports a user css page from any wikipedia project into the actual document.
 
 @version 0.1.1
 @date 2007/03/26
 @author: based on function importPage from [[de:User:PDD]]s monobook.js, rewritten by [[de:User:Revvar]]
 @param page Name of the user page without the "user:" prefix and the ".css" appendix
 @param lang (optional) Language code of the corresponding wikipedia project. Default is the callers project.
 @return "true" on success, "false" otherwise
 */
 
 function importCSSL(page, lang)
 {
    try {
        /* check the parameters and set defaults */
        if(!page) throw("importCSSL: Missing parameter page.");
        if(!lang) lang = wgContentLanguage;
 
        /* create import url */
        var import_url = 'http://' + lang + '.wikipedia.org' + wgScriptPath + '/index.php?title=User:' + page +
           '.css&action=raw&ctype=text/css&smaxage=0';
 
        /* import page */
        var Head = document.getElementsByTagName('head').item(0);
        var CSS = document.createElement('style');
        CSS.setAttribute('type', 'text/css');
        CSS.setAttribute('charset', 'utf-8');
        CSS.appendChild(document.createTextNode("@import url(" + import_url + ");"));
        Head.appendChild(CSS);
 
        return true;
    } catch(e) {
        alert(e.message);
        return false;
    }
 }
 
 /**
 Asynchron import of a Javascript file from the toolserver.
 
 @version 0.1
 @date 2007/04/24
 @author based on function importPage from [[de:User:PDD]]s monobook.js, rewritten by [[de:User:Revvar]]
 @param path Path to the toolserver script without the ".js" appendix
 */
 
 function import_JS_from_TS(path)
 {
    try {
        /* check the parameter */
        if(!path) throw("import_JS_from_TS: Missing parameter path.");
 
        /* create import url */
        var import_url = 'http://tools.wikimedia.de/' + path + '.js';
 
        /* import */
        setTimeout(function(e) {
          var Head = document.getElementsByTagName('head').item(0);
          var Script = document.createElement('script');
          Script.setAttribute('type', 'text/javascript');
          Script.setAttribute('src', import_url);
          Script.setAttribute('charset', 'utf-8');
          Head.appendChild(Script);
        }, 1000);
 
    } catch(e) {
        alert(e.message);
        return;
    }
 }
 
 
 // ***** FOOT-Block *****
 // </nowiki> <- nicht löschen!!!
 
 // ausgelagerte obligatorische Funktionen
 importJavascriptL('PDD/helperFunctions','de'); // [[Benutzer:PDD/helperFunctions.js]]
 importJavascriptL('PDD/eintragen','de'); // [[Benutzer:PDD/eintragen.js]]
 importJavascriptL('PDD/alertOnChanges','de'); // [[Benutzer:PDD/alertOnChanges.js]]
 
 // obligatorisch nur für editpages
 if (isEdit) {
    importJavascriptL('PDD/wpTextReplace','de'); // [[Benutzer:PDD/wpTextReplace.js]]
    importJavascriptL('BLueFiSH.as/JS/replaceQuoteSigns','de'); // [[Benutzer:BLueFiSH.as/JS/replaceQuoteSigns.js]]
    importJavascriptL('BLueFiSH.as/JS/markup','de'); // [[Benutzer:BLueFiSH.as/JS/markup.js]]
    importJavascriptL('PDD/convertEntities','de'); // [[Benutzer:PDD/convertEntities.js]]
    importJavascriptL('Euku/persDaten','de'); // [[Benutzer:Euku/persDaten.js]]
 }
 
 // ausgelagerte optionale Funktionen (Autoload)
 
 // revert/loglink-Funktionen: möglichst früh einbinden
 // Revert godmode-light
 if (godmodelight && !adminflag && !isEdit && !(isSpecial && !isContrib)) {
     importJavascriptL('PDD/godmode-light','de'); // [[Benutzer:PDD/godmode-light.js]]
     // importJavascriptL('Olliminatore/godmode-light','en');  // [[:en:User:Olliminatore/godmode-light.js]]
 }
 // Revert addEditAndRevertLinks
 if (!(!aerhistory && isHistory) && !isEdit) {
    if (editlinkoldversion || revertwithreason)
       importJavascriptL('PDD/addEditAndRevertLinks','de'); // [[Benutzer:PDD/addEditAndRevertLinks.js]]
 }
 // LogLinks addLogsLink
 if (addlogslink && !isSpecial) importJavascriptL('PDD/addLogsLink','de'); // [[Benutzer:PDD/addLogsLink.js]]
 
 // jetzt alles andere, was optional ist
 if (!isSpecial)
    if (addeditintro || addpurge) importJavascriptL('PDD/modifyCA','de'); // [[Benutzer:PDD/modifyCA.js]]
 // changeBeschriftungen *nach* modifyCA.js (!)
 if (beschriftungen) importJavascriptL('PDD/changeBeschriftungen','de'); // [[Benutzer:PDD/changeBeschriftungen.js]]
 if (sperrstatus) importJavascriptL('Stefan/Sperrstatus','de'); // [[Benutzer:Stefan/Sperrstatus.js]]
 if (changeszlig) importJavascriptL('PDD/changeSZtoSS','de'); // [[Benutzer:PDD/changeSZtoSS.js]]
 if (rechtschreibpruefung && !isSpecial) {
    DontAutorunRP = !AutorunRP;
    importPage('APPER/RP/js'); // [[Benutzer:APPER/RP/js]]
 }
 if (ippvandalmark && !isEdit) importPage('APPER/IP-Patrol/js'); // [[Benutzer:APPER/IP-Patrol/js]]
 if (showredundantlinks && !isSpecial)
    importJavascriptL('PDD/showRedundantLinks','de'); // [[Benutzer:PDD/showRedundantLinks.js]]
 // Signierfunktionen
 if (isEdit && !isArticle) {
    if (signing) importJavascriptL('Olliminatore/signing','de'); // [[Benutzer:Olliminatore/signing.js]]
    if (unsigning) importJavascriptL('Olliminatore/unsigned','de');  // [[Benutzer:Olliminatore/unsigned.js]]
 }
 
 // extended search & replace feature
 if (isEdit && searchbox) importJavascriptL('Zocky/SearchBox','en');  // [[:en:User:Zocky/SearchBox.js]]
 
 // Portal- und Redaktionshinweis
 if (hinweis) importJavascriptL('DerHexer/hinweise','de'); // [[Benutzer:DerHexer/hinweise.js]]
 
 // Kackbalken-Script
 if (irrenhaus) importJavascriptL('Revvar/irrenhaus','de');  // [[Benutzer:Revvar/irrenhaus.js]]
 
 // Syntax highlighter
 if (js_highlight) importJavascriptL('Olliminatore/shCore','en');  // [[:en:User:Olliminatore/shCore.js]]
 
 // openstreetmap: OpenStreetMap bei Georeferenzen
 if (openstreetmap && !isSpecial)
    importJavascriptL('Magnus_Manske/osm','de'); // [[Benutzer:Magnus Manske/osm.js]]
 
 // coordinates: Generierung der Koordinaten-Vorlage
 if (coordinates && isEdit) importJavascriptL('Dschwen/coordinates','de');  // [[Benutzer:Dschwen/coordinates.js]]
 
 // showreftoggle
 if (reftoggle && !isSpecial)
    importJavascriptL('Malte_Schierholz/reftoggle','de');  // [[Benutzer:Malte Schierholz/reftoggle.js]]
 
 // setGallery
 if (newgallery && !isSpecial)
    importJavascriptL('Olliminatore/newgallery','de'); // [[Benutzer:Olliminatore/newgallery.js]]
 
 // quickedit
 if (qeEnabled) importJavascriptL('ASM/quickedit','de'); // [[Benutzer:ASM/quickedit.js]]
 
 // RIPE tooltips
 if (ripe && !isEdit) importJavascriptL('PDD/tooltips','de'); // [[Benutzer:PDD/tooltips.js]]
 
 // dellinknowcommons
 if (dellinknowcommons && adminflag && isBild)
    importJavascriptL('PDD/dellink-nc','de'); // [[Benutzer:PDD/dellink-nc.js]]
 
 // loescheimer
 if (loescheimer && adminflag && isProject)
    importJavascriptL('PDD/modifyLKs','de'); // [[Benutzer:PDD/modifyLKs.js]]
 
 // Lupin's popups
 if (lupinpopups) importJavascriptL('Lupin/popups','en');   // [[:en:User:Lupin/popups.js]]
 
 // Codeispoetrys DupeCheck
 if (imgdupecheck && isBild)
    importJavascriptL('PDD/checkDupes','de');   // [[Benutzer:PDD/checkDupes.js]]
 
 // Markierskripte ganz zum Schluss einbinden, da sie innerHTML verändern
 if (markerledigt) importJavascriptL('Euku/markErledigt','de');   // [[Benutzer:Euku/markErledigt.js]]
 
 if (!(!mawatchlist && isWatchlist) && !(!macontribs && isContrib)) {
    if (markadmins)
       importJavascriptL('PDD/markAdmins','de'); // [[Benutzer:PDD/markAdmins.js]]
 }
 if (!(!muwatchlist && isWatchlist) && !(!mucontribs && isContrib)) {
    if (markutf8)
       importJavascriptL('PDD/markUTF8','de'); // [[Benutzer:PDD/markUTF8.js]]
 }
 // Und hier ist die monobook.js zu Ende.

// WARTENDE NEULINGE
importScript('Benutzer:Euku/Mentorenprogramm.js'); // [[Benutzer:Euku/Mentorenprogramm.js]]