Zum Inhalt springen

„Benutzer:PDD/monobook.js“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
Inhalt gelöscht Inhalt hinzugefügt
fix
Zeile 1: Zeile 1:
/**
// FAQ:
FAQ:
//
// Frage: Wie übernehme ich dieses Skript?
Frage: Wie übernehme ich dieses Skript?
Antwort: Einfach "Quelltext betrachten", alles markieren und kopieren, dann in deine eigene
//
monobook.js (also in [[Special:Mypage/monobook.js|Benutzer:<DeinName>/monobook.js]])
// Antwort: Einfach "Quelltext betrachten", alles markieren und kopieren, und dann in deine eigene
oder ander Skinseite /common.js, /vector.js kopieren).
// 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]]
Am sinnvollsten ist es dabei, wenn du die Originalversion von [[Benutzer:PDD/monobook.js]]
// übernimmst, da diese immer auf dem neuesten Stand ist.
ü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,
// Frage: Kann ich dieses Skript einfach so übernehmen, oder muss ich da tausend Sachen ändern?
und dann so anpassen, dass es deinem Bedarf gerecht wird.
//
// 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]]


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


<nowiki> {{subst:Benutzer:PDD/monobook.js.DLWS}} </nowiki> <--- diese Zeile bitte nicht löschen
//
// Hier bitte eine Signaturvariante aussuchen!
//


Originalskript ursprünglich gefunden bei [[:en:User:Angela]]
// <nowiki>
bearbeitet von [[Benutzer:Maximus Rex]]
// (Signaturvariante 1: sinnvoll bei unter "Einstellungen" typografisch angepassten Signaturen)
"" [[Benutzer:SirJective]]
var usersignature = '\~\~\~\~';
"" [[Benutzer:BLueFiSH.as]]
// (Signaturvariante 2: Datum kleiner, kein Zeilenumbruch nach dem Leerzeichen)
"" [[Benutzer:Littl]] (2005-09-07 und 2006-02-21)
// var usersignature = '<span style=\"white-space:nowrap;\">-- \~\~\~ <small>\~\~\~\~\~<\/small><\/span>';
"" [[Benutzer:Schwalbe]] (2006-02-03)
// (Wiki-Standard-Signatur, bitte das Leerzeichen nach den zwei Strichen beachten)
"" [[Benutzer:PDD]] (ab 2006-04-22)
// var usersignature = '-- \~\~\~\~';
"" [[User: Perhelion]] (2015-08-30)
// </nowiki>
@Dependencies: mediawiki.util
**/
/* global $, mw, importScript */
/* eslint no-implicit-globals:0, one-var:0, vars-on-top:0,camelcase:0, no-underscore-dangle:0, no-unused-vars:0, no-use-before-define:0 */
/* jshint curly:false, eqeqeq:true, latedef:false, strict:false, undef:false, unused:false, scripturl:true */
// (PDD: note to self: version auch in alert-Funktion ändern!)
var version = '0.99q';
// 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>


// *************** SETUP Teil 1a **********************************
// Originalskript ursprünglich gefunden bei [[:en:User:Angela]]
// systemweite Default-Optionen aus [[MediaWiki:Common.js]]
// bearbeitet von [[Benutzer:Maximus Rex]]
window.NavigationBarShowDefault = 0; // Navi-Leisten: alle einklappen = 0; alle ausklappen = 15 (z.B.)
// bearbeitet von [[Benutzer:SirJective]]
var linkFA_enabled = true; // „Featured Articles“ in fremdsprachigen Wikipedias markieren?
// 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)


// systemweite Default-Optionen aus [[MediaWiki:Monobook.js]]
// *************** SETUP Teil 1a **********************************
var oldEditsectionLinks = false; // [Bearbeiten]-Links bei Abschnitten ganz nach rechts?
// systemweite Default-Optionen aus [[MediaWiki:Common.js]]
NavigationBarShowDefault = 0; // Navi-Leisten: alle einklappen == 0; alle ausklappen == 15 (z.B.)
var linkFA_enabled = true; // "Featured Articles" in fremdsprachigen Wikipedias markieren?


// *************** SETUP Teil 1b **********************************
// systemweite Default-Optionen aus [[MediaWiki:Monobook.js]]
// Parameter für Gadgets
var oldEditsectionLinks = false; // "Bearbeiten"-Links bei Abschnitten ganz nach rechts?
// Gadgets müssen über [[Spezial:Einstellungen]] → Gadgets mit Ausnahme der Rechtschreibpruefung und markAdmins freigeschaltet werden


// Gadget: [[Wikipedia:Helferlein/markAdmins]] sollte deaktiviert werden-
// *************** SETUP Teil 1b **********************************
var markadmins = true; // Admins u.ä. besonders hervorheben?
// Parameter für Gadgets
if (markadmins) {
// Gadgets müssen über [[Spezial:Einstellungen]] -> Gadgets freigeschaltet werden
window.marksubpages = true; // auch Links auf Admin-Unterseiten markieren?
window.mawatchlist = true; // auch auf der Beobachtungsliste?
window.macontribs = true; // auch auf den Benutzerbeiträgen?


window.markatxt = 'A'; // Markierung für Admins
// Gadget: Extra-Editbuttons, siehe: [[Wikipedia:Helferlein/Extra-Editbuttons]]
window.markrenatxt = 'A-Ren'; // Markierung für umbenannte Admins
window.markbureautxt = 'B'; // Markierung für Bürokraten
window.markstewtxt = 'S'; // Markierung für Stewards
window.markombudsmantxt = 'Omb'; // Markierung für Ombudspersonen


window.markexadmins = true; // zusätzlich: Ex-Admins besonders hervorheben?
// Anzahl und Reihenfolge wählbar (siehe: [[Wikipedia:Helferlein/Extra-Editbuttons#Die Buttons]])
window.markexatxt = 'Ex-A'; // Markierung für Ex-Admins
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?


window.markexbureaucrats = true; // zusätzlich: Ex-Bürokraten besonders hervorheben?
// *************** SETUP Teil 2 **********************************
window.markexbureautxt = 'Ex-B'; // Markierung für Ex-Bürokraten
// Parameter für diese monobook.js (Quickbar, Module etc.)


window.markarbcom = true; // zusätzlich: Schiedsgericht besonders hervorheben?
var zeigeversion = true; // monobook-Version anzeigen?
window.markarbcomtxt = 'SG'; // Markierung für Schiedsgerichtler
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 nvlimit = 500; // angezeigte Anzahl auf "Alte, gesichtete Seiten"
var ndlimit = 250; // angezeigte Anzahl auf "Neue Dateien"
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)


window.markcheckuser = true; // zusätzlich: CheckUser besonders hervorheben?
// <nowiki>
window.markcheckusertxt = 'CU'; // Markierung für Checkuser-Berechtigte
// 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 = "Links a. d. Seite";
var cblinked = "Verlinkte Änderungen";
var cbmail = "E-Mail senden";
var cbupload = "Datei hochladen";
var cbprint = "Druckversion";
var cbblock = "User sperren";
// Beschriftungen: portlets
var cblang = "Interwiki";


window.markoversight = true; // zusätzlich: Oversighter besonders hervorheben?
// Modul: bkl-check.js
window.markoversighttxt = 'OS'; // Markierung für Oversight-Berechtigte
var bklcheck = true; // BKL-Links hervorheben?


window.markcomadmins = true; // zusätzlich: Commons-Admins besonders hervorheben?
// Modul: Sperrstatus.js
window.markcomatxt = 'Com-A'; // Markierung für Commons-Admins
var sperrstatus = true; // Sperrstatus einer Seite farblich anzeigen?


window.markwdadmins = true; // zusätzlich: Wikidata-Admins besonders hervorheben?
// Modul: eintragen.js
window.markwdatxt = 'WD-A'; // Markierung für Wikidata-Admins
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)


// Gadget: popups.js (Lupin, Navpop) // mw.user.options.get('gadget-navigation-popups')
// Modul: hinweise.js
var lupinpopups = false; // Popup-Modul einbinden?
var hinweis = true; // Portal- und Redaktionshinweis verwenden?
if (lupinpopups) {
// 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]])
var addpopupLink = true; // Link auf Popups in Messages hinzufügen?
addpopupLink = addpopupLink ? ' (mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]])' : '';
window.popupDelay = 1; // Popupverzögerung in s (DEFAULT: 0.5)
window.simplePopups = false; // auf true setzen, wenn Laden im Hintergrund unerwünscht (DEFAULT: false)
window.popupStructure = 'menus'; // Aussehen der Popups (DEFAULT: 'shortmenus')
window.popupActionsMenu = false; // separates "actions"-Menu (DEFAULT: true)
window.popupImages = true; // Bilder im Popup erwünscht? (DEFAULT: true)
window.popupSubpopups = true; // Popups für Links innerhalb von Popups generieren? (DEFAULT: true)
window.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
window.removeTitles = false; // Originaltitel der Links nach popups verschieben? (DEFAULT: true)
window.popupFixRedirs = true; // Links auf Redirects korrigieren? (DEFAULT: false)
window.popupWatchRedirredPages = false; // korrigierte Seite beobachten? (DEFAULT: null)
window.popupRedirAutoClick = 'wpSave'; // ausgeführte Aktion beim Korrigieren von Redirects (DEFAULT: 'wpDiff')
window.popupRedlinkRemoval = true; // Rote Links entfernen? (DEFAULT: false)
window.popupFixDabs = true; // Links auf BKLs korrigieren? (DEFAULT: false)
window.popupWatchDisambiggedPages = false; // korrigierte Seite beobachten? (DEFAULT: null)
window.popupLastModified = true; // Zeit seit letzter Änderung anzeigen? (DEFAULT: true)
window.popupDiffDates = true; // Änderungsdaten bei Diffs anzeigen? (DEFAULT: true)
window.popupOnlyArticleLinks = true; // Popups nur für Artikel-Links (DEFAULT: true)
window.imagePopupsForImages = false; // Bildvorschau laden, wenn Mausposition über Bild? (DEFAULT: true)
window.popupMaxWidth = 400; // Maximalbreite des Popup-Fensters (DEFAULT: 350)
window.popupRevertSummaryPrompt = true; // Prompt zum Ändern des Revert-Kommentars? (DEFAULT: false)
window.popupMaxPreviewSentences = 2; // Anzahl der angezeigten Sätze in der Vorschau (DEFAULT: 4)
// <nowiki>
// deutsche Texte für Lupin
window.popupFixDabsSummary = 'Ersetze BKL-Seite [[%s]] durch [[%s]]' + addpopupLink;
window.popupExtendedRevertSummary = 'Revert auf Version vom %s von Benutzer %s, oldid %s' + addpopupLink;
window.popupRevertSummary = 'Revert auf Version %s' + addpopupLink;
window.popupRevertToPreviousSummary = 'Revert auf Vorgängerversion der Version %s' + addpopupLink;
window.popupQueriedRevertSummary = 'Revert auf Version $1 vom $2 von $3' + addpopupLink;
window.popupQueriedRevertToPreviousSummary = 'Revert auf Vorgängerversion der Version $1 vom $2 von $3' + addpopupLink;
window.popupFixRedirsSummary = 'Ersetze Redirect [[%s]] durch [[%s]]' + addpopupLink;
window.popupRedlinkSummary = 'Entferne Link auf leere Seite [[%s]]' + addpopupLink;
window.popupRmDabLinkSummary = 'Entferne Link auf BKL-Seite [[%s]]' + addpopupLink;
}
// </nowiki>
// Gadget: APPERs RP [[Wikipedia:Helferlein/Rechtschreibprüfung]] // alt [[Benutzer:APPER/RP/js]]
// Das Gadget sollte hiefür deaktiviert sein!
var rechtschreibpruefung = true; // Rechtschreibprüfung?
window.DontAutorunRP = true; // true = manuell = RP durch Anklicken; false = automatische RP
window.RPonAllPages = true; // nicht nur auf Artikelseiten?


// Gadget: Extra-Editbuttons, siehe: [[Wikipedia:Helferlein/Extra-Editbuttons]]
// Modul: godmode-light.js
// Anzahl und Reihenfolge wählbar (siehe: [[Wikipedia:Helferlein/Extra-Editbuttons#Die Buttons]])
var godmodelight = true; // "Zurücksetzen" einblenden?
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';
var godmodenewstyle = true; // neuer Rollback-Kommentartext?
var rmEditButtons = [6, 7, 10]; // zu entfernende Standard-Editbuttons (0…10)
var myButtons = {}; // eigene Buttons?


// *************** SETUP Teil 2 **********************************
// Modul: addEditAndRevertLinks.js
// Parameter für diese monobook.js (Quickbar, Module etc.)
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?


var zeigeversion = true; // monobook-Version anzeigen?
// Modul: addLogsLink.js
var zeigehilfe = true; // kurze Hilfetexte beim überfahren mit der Maus anzeigen?
var addlogslink = true; // Zusatzlinks zu Spezial:Log einfügen?
var qbnewpage = true; // sollen Seiten aus dem QuickBar im neuen Fenster aufgerufen werden?
var pagelogtext = "Page:Log"; // Text des Seitenlogbuch-Links
var rclimit = 500; // angezeigte Anzahl auf "Letzte Änderungen"
var userlogtext1 = "User:Log:1"; // Texte der beiden Benutzerlog-Links
var nplimit = 500; // angezeigte Anzahl auf "Neue Artikel"
var userlogtext2 = "User:Log:2";
var nulimit = 1000; // angezeigte Anzahl auf "Neuanmeldungs-Logbuch"
var nvlimit = 500; // angezeigte Anzahl auf "Alte, gesichtete Seiten"
var ndlimit = 250; // angezeigte Anzahl auf "Neue Dateien"
var usedropdown = false; // keine Dropdowns gewünscht?
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 = mw.config.set('debug', false); // Debug-Modus?
var qbfontsize = 100; // Schriftgröße im QuickBar (relativ in %)


// <nowiki>
var addusercontriblink = true; // auf Benutzerseiten auch noch Link auf Contributions?
// Modul: changeBeschriftungen.js
var usercontribtext = "User:Contribs"; // Text des Contributions-Links ("Benutzerbeiträge")
var beschriftungen = true; // kosmetische Änderungen an der MediaWiki-Oberfläche?
var userdeledittext = "User:DelEdits"; // Text des Links auf Deleted Edits
if (beschriftungen)
var userstatstext = "User:Stats"; // Text des Links auf Benutzerstatistik
var markhandsoff = true, // fremde Benutzerseiten grafisch markieren?
var userstatstype = "xt"; // Art der Benutzerstatistik (Auswahl: xt/x/super/quick)
// Beschriftungen: personal toolbar
var usergallerytext = "User:Gallery"; // Text des Links auf Bildergalerie des Benutzers
cbmytalk = 'Meine Diskussion',
var userstimmrechttext = "User:Stimmrecht"; // Text des Links auf Stimmrechtcheck
cbprefs = 'Einstellungen',
cbwatchlist = 'Beobachtungsliste',
cbmyconts = 'Meine Beiträge',
cblogout = 'X',
// Beschriftungen: current article
cbedit = 'Bearbeiten',
cbhistory = 'Versionen',
cbmove = 'Verschieben',
cbwatch = 'Beobachten',
cbunwatch = 'Ignorieren',
// Beschriftungen: tools
cbwhatlinkshere = 'Links a. d. Seite',
cblinked = 'Verlinkte Änderungen',
cbmail = 'E-Mail senden',
cbupload = 'Datei hochladen',
cbprint = 'Druckversion',
cbblock = 'User sperren',
// Beschriftungen: portlets
cblang = 'Interwiki';


// Modul: bkl-check.js
var adduserarticlelink = true; // auf Benutzerseiten Link auf erstellte Artikel?
var userarticletext = "User:Articles"; // Text des Links auf erstellte Artikel
var bklcheck = true; // BKL-Links hervorheben?
var userarticletype = "x"; // verwendeter Artikelcounter (Auswahl: x)


// Modul: Sperrstatus.js
var addbrowselink = true; // auf allen Seiten Link zum alphabetischen Browsen?
var sperrstatus = true; // Sperrstatus einer Seite farblich anzeigen?
var browseuserprefix = true; // bei Nutzerseiten stattdessen alle Unterseiten des Nutzers zeigen?
var browsetext = "Browse"; // Text des Links auf Browsing-Seite


// Modul: eintragen.js
var addbrowsedellink = true; // auf allen Seiten Link zum Browsen in gelöschten Seiten?
var autosave = true; // automatisches Speichern von QS/LA/SLA/Vandal-Einträgen?
var browsedeltext = "BrowseDel"; // Text des Links auf BrowseDel-Seite
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 addiusagelink = true; // bei Bildern Link zur Bildnutzung (Commons)?
var hinweis = true; // Portal- und Redaktionshinweis verwenden?
var imgusagetext = "IMG:C-Usage"; // Text des Links auf Bildnutzung


// Modul: mwArticleStatistics.js
// Modul: godmode-light.js
var addstatslink = true; // Zusatzlinks zu Statistiktool einfügen?
var godmodelight = true; // "Zurücksetzen" einblenden?
var godmodenewstyle = true; // neuer Rollback-Kommentartext?


// Modul: modifyCA.js
// Modul: addEditAndRevertLinks.js
var editlinkoldversion = true; // Bearbeiten-Link für ältere Versionen anzeigen?
var addeditintro = true; // Tab zum Editieren des Nullabschnitts (Intros) einer Seite hinzufügen?
if (editlinkoldversion)
var editintrotext = "IntroBearbeiten"; // Beschriftung des Tabs
var addpageinfo = true; // Tab für Seiteninfo hinzufügen?
var editlinktxt = 'edit', // Text des Edit-Links
revertwithreason = true, // Revert-Link mit Grund-Eingabe anzeigen?
var pageinfotext = "Info"; // Beschriftung des Tabs
revlinktxt = 'rev', // Text des Revert-Links
var addpurge = true; // Tab zum Purgen (Servercache-Updaten) einer Seite hinzufügen?
revlinkshowuser = true, // beim Revertieren über (Rev)-Link letzten Benutzer angeben?
var purgetext = "Purge"; // Beschriftung des Tabs
rvisminor = true, // sind Reverts mit "(rev)"-Link Minor-Changes?
var addwatchers = false; // Tab mit Link zum Watchers-Tool hinzufügen?
aearldefault = 'Grund: keine Verbesserung des Artikels', // Defaultgrund beim Revertieren
var watcherstext = "ºº"; // Beschriftung des Tabs
aerhistory = true, // Links auch in der Versionsgeschichte?
aearlhere = true; // Revertaktion im selben Browserfenster?


// Modul: markAdmins.js
// Modul: addLogsLink.js
var markadmins = true; // Admins u.ä. besonders hervorheben?
var addlogslink = true; // Zusatzlinks zu Spezial:Log einfügen?
if (addlogslink)
var marksubpages = true; // auch Links auf Admin-Unterseiten markieren?
var pagelogtext = 'Page:Log', // Text des Seitenlogbuch-Links
var mawatchlist = true; // auch auf der Beobachtungsliste?
userlogtext1 = 'User:Log:1', // Texte der beiden Benutzerlog-Links
var macontribs = true; // auch auf den Benutzerbeiträgen?
userlogtext2 = 'User:Log:2',


addusercontriblink = true, // auf Benutzerseiten auch noch Link auf Contributions?
var markatxt = "A"; // Markierung für Admins
usercontribtext = 'User:Contribs', // Text des Contributions-Links ("Benutzerbeiträge")
var markrenatxt = "A-Ren"; // Markierung für umbenannte Admins
userdeledittext = 'User:DelEdits', // Text des Links auf Deleted Edits
var markbureautxt = "B"; // Markierung für Bürokraten
userstatstext = 'User:Stats', // Text des Links auf Benutzerstatistik
var markstewtxt = "S"; // Markierung für Stewards
userstatstype = 'xt', // Art der Benutzerstatistik (Auswahl: xt/x/super/quick)
var markombudsmantxt = "Omb"; // Markierung für Ombudspersonen
usergallerytext = 'User:Gallery', // Text des Links auf Bildergalerie des Benutzers
userstimmrechttext = 'User:Stimmrecht', // Text des Links auf Stimmrechtcheck


adduserarticlelink = true, // auf Benutzerseiten Link auf erstellte Artikel?
var markexadmins = true; // zusätzlich: Ex-Admins besonders hervorheben?
userarticletext = 'User:Articles', // Text des Links auf erstellte Artikel
var markexatxt = "Ex-A"; // Markierung für Ex-Admins
userarticletype = 'x', // verwendeter Artikelcounter (Auswahl: x)


addbrowselink = true, // auf allen Seiten Link zum alphabetischen Browsen?
var markexbureaucrats = true; // zusätzlich: Ex-Bürokraten besonders hervorheben?
browseuserprefix = true, // bei Nutzerseiten stattdessen alle Unterseiten des Nutzers zeigen?
var markexbureautxt = "Ex-B"; // Markierung für Ex-Bürokraten
browsetext = 'Browse', // Text des Links auf Browsing-Seite


addbrowsedellink = true, // auf allen Seiten Link zum Browsen in gelöschten Seiten?
var markarbcom = true; // zusätzlich: Schiedsgericht besonders hervorheben?
browsedeltext = 'BrowseDel', // Text des Links auf BrowseDel-Seite
var markarbcomtxt = "SG"; // Markierung für Schiedsgerichtler


addiusagelink = true, // bei Bildern Link zur Bildnutzung (Commons)?
var markcheckuser = true; // zusätzlich: CheckUser besonders hervorheben?
imgusagetext = 'IMG:C-Usage'; // Text des Links auf Bildnutzung
var markcheckusertxt = "CU"; // Markierung für Checkuser-Berechtigte


// Modul: mwArticleStatistics.js
var markoversight = true; // zusätzlich: Oversighter besonders hervorheben?
var addstatslink = true; // Zusatzlinks zu Statistiktool einfügen?
var markoversighttxt = "OS"; // Markierung für Oversight-Berechtigte


// Modul: modifyCA.js
var markcomadmins = true; // zusätzlich: Commons-Admins besonders hervorheben?
var addeditintro = true; // Tab zum Editieren des Nullabschnitts (Intros) einer Seite hinzufügen?
var markcomatxt = "Com-A"; // Markierung für Commons-Admins
var editintrotext = 'IntroBearbeiten'; // Beschriftung des Tabs
var addpageinfo = true; // Tab für Seiteninfo hinzufügen?
var pageinfotext = 'Info'; // Beschriftung des Tabs
var addpurge = true; // Tab zum Purgen (Servercache-Updaten) einer Seite hinzufügen?
var purgetext = 'Purge'; // Beschriftung des Tabs
var addwatchers = false; // Tab mit Link zum Watchers-Tool hinzufügen?
var watcherstext = 'ºº'; // Beschriftung des Tabs


// Modul: markUTF8.js
var markwdadmins = true; // zusätzlich: Wikidata-Admins besonders hervorheben?
var markutf8 = true; // Sonderzeichenbenutzernamen besonders hervorheben?
var markwdatxt = "WD-A"; // Markierung für Wikidata-Admins
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: markUTF8.js
// Modul: markErledigt.js
var markerledigt = true; // Erledigt-Button auf Seiten mit [[Vorlage:Autoarchiv-Erledigt]]
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
// Modul: reftoggle.js
var reftoggle = false; // "Quellen verstecken"/"Quellen anzeigen"-Schalter für Fußnoten?
var markerledigt = true; // Erledigt-Button auf Seiten mit [[Vorlage:Autoarchiv-Erledigt]]


// Modul: reftoggle.js
// Modul: quickedit.js
var qeEnabled = false; // QuickEdit aktivieren?
var reftoggle = false; // "Quellen verstecken"/"Quellen anzeigen"-Schalter für Fußnoten?
var qeEnableSection0 = false; // 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: newgallery.js
// Modul: APPERs IP-Patrol Vandalenmarkierer
var newgallery = false; // Anzahl Bilder/Zeile in Galerien verändern?
var ippvandalmark = false; // IP-Patrol-Vandalenmarkierung aktivieren?
var gallery_len = 6; // Breite der Galerien
var bCategory = true; // nur in Kategorien?
var bArticle = true; // (oder/und) nur in Artikeln?


// Modul: quickedit.js
// Modul: coordinates.js
// (für dieses Modul im CSS #editpage-copywarn nicht ausblenden!)
var qeEnabled = false; // QuickEdit aktivieren?
var qeEnableSection0 = false; // QuickEdit-Link für Abschnitt 0 (Einleitung)?
var coordinates = false; // Koordinate_Artikel in Editfenster generierbar?
var qeEnableAccessKeys = true; // Tastaturbefehle aktivieren?
var qeShowErrors = true; // Fehlermeldungen anzeigen
var qeTextboxHeight = 20; // Höhe des Textfelds


// Modul: APPERs RP
// Modul: unsigned.js
var unsigning = true; // Einfügen von Unsigned bei unsignierten Beiträgen auf Diskussionsseiten?
var rechtschreibpruefung = false; // Rechtschreibprüfung aktivieren?
var ssubst = true; // unsigniert-Baustein mit subst einfügen?
var AutorunRP = false; // false = RP durch Anklicken; true = automatische RP
var max_history_entries = 36; // Anzahl der angezeigten Edits (max. 36)


// Modul: APPERs IP-Patrol Vandalenmarkierer
// Modul: signing.js
var signing = false; // automatische Unterschrift auf Diskussionsseiten?
var ippvandalmark = false; // IP-Patrol-Vandalenmarkierung aktivieren?


// Modul: osm.js
// Modul: SearchBox.js
var openstreetmap = false; // OpenStreetMap-Link anschalten?
var searchbox = false; // erweitertes suchen/ersetzen


// </nowiki>
// Modul: coordinates.js
/** Fliegelflagel (von Schnark)
// (für dieses Modul im CSS #editpage-copywarn nicht ausblenden!)
@Meta-Script: weitere Skriptsammlung, einfach zu verwenden [[Benutzer:Schnark/js/fliegelflagel]]
var coordinates = false; // Koordinate_Artikel in Editfenster generierbar?
standardmäßig u.a. aktiv [[Benutzer:Schnark/js/letzteredit.js]] und [[Benutzer:Schnark/js/diff.js]]
**/// <nowiki>
var fliegelflagel = mw.libs.fliegelflagel ? 0 : true; // empfehlenswert


// Modul: unsigned.js
// Modul: wikEdDiff.js (Cacycle)
var cacyclediff = false, // verbesserte Diff-Ansicht (Cacycle) einbinden? Redundant mit Schnark's Diff
var unsigning = true; // Einfügen von Unsigned bei unsignierten Beiträgen auf Diskussionsseiten?
wikEdFullDiff = !cacyclediff ? 0 : false;
var ssubst = true; // unsigniert-Baustein mit subst einfügen?
var max_history_entries = 36; // Anzahl der angezeigten Edits (max. 36)


// weitere Module
// Modul: signing.js
var signing = false; // automatische Unterschrift auf Diskussionsseiten?
var showredundantlinks = false; // zeigt doppelte Links an
var ripe = false; // Ripe-Tooltips?
var imgdupecheck = true; // Bilder-Duplikate anzeigen
var diffhistory = true; // bei Nachsichtungen Übersicht der ungesichteten Versionen zeigen (von P.Copp)
var hideduplicatecontribs = true; // bei Benutzerbeiträgen Checkboxen zum Filtern einblenden (von P.Copp)
var hidenslinksearch = true; // bei Weblink-Suche unnötiges Zeugs ausblenden (nach P.Copp)


// special rights options
// Modul: SearchBox.js
var adddelreason = true; // Löschgrund einfügen (von P.Copp)
var searchbox = false; // erweitertes suchen/ersetzen
var dellinknowcommons = true; // Löschlink bei NowCommons-Bildern (von Revvar/Codeispoetry)
var loescheimer = true; // erleichtertes LK-Abarbeiten (von mnh)
var filter_rfdtoc_by_default = true; // Löscheimer: TOC der LK-Seite filtern?


// **************** SETUP Ende ***********************************
// </nowiki>


var user = mw.config.get('wgUserName'); // username wird automatisch übernommen
// 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]]" : "");


// aktuelle Zeit ermitteln
// Modul: wikEdDiff.js (Cacycle)
var jetzt = new Date();
var cacyclediff = false; // verbesserte Diff-Ansicht (Cacycle) einbinden?
// recalculate 4 furriners
var wikEdFullDiff = false;
var jetztfixed = jetzt.getTime();
jetztfixed += (timezoneshift * 3600 * 1000);
jetzt.setTime(jetztfixed);
// fill date variables
var Monate = mw.config.get('wgMonthNames');
var Monatekurz = mw.config.get('wgMonthNamesShort');
var Jahr = jetzt.getYear();
if (Jahr < 999)
Jahr += 1900;


var Monat = jetzt.getMonth() + 1;
// Modul: diff.js (Schnark)
var Tag = jetzt.getDate();
var schnarkdiff = true; // verbesserte Diff-Ansicht (Schnark) einbinden?
var Stunde = jetzt.getHours();
var Minute = jetzt.getMinutes();
// 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;
var ndDatum = Jahr + '-' + LeadingZero(Monat) + '-' + LeadingZero(Tag);


// Lemma-Varianten (work in progress) + redundant zu addLogsLink etc.
// Modul: letzteredit.js (Schnark)
// get page title
var letzteredit = true; // Anzeigen, wann Benutzer zuletzt aktiv?
var pagetitle = mw.config.get('wgPageName');
var spagetitle = mw.config.get('wgTitle');
var cpn = mw.config.get('wgCanonicalSpecialPageName');
// var cns = mw.config.get('wgCanonicalNamespace');
var ns = mw.config.get('wgNamespaceNumber');
var cLang = mw.config.get('wgContentLanguage');
var sPath = mw.config.get('wgScriptPath');
var action = mw.config.get('wgAction');
var server = mw.config.get('wgServer');


// do real spaces; fix for lemmas with '&'
// weitere Module
var ptitle = pagetitle.replace(/_/g, ' ').split('&').join('%26');
var showredundantlinks = false; // zeigt doppelte Links an
var sptitle = spagetitle.replace(/_/g, ' ').split('&').join('%26');
var ripe = false; // Ripe-Tooltips?
// do + escaped (" " to "+")
var irrenhaus = false; // Script für mehr Abwechslung im "neue Nachrichten"-Balken
var pesctitle = spaceEscape(ptitle);
var js_highlight = false; // javascript-code farbig hervorheben (.js and pre-tags)
var spesctitle = spaceEscape(sptitle);
var imgdupecheck = true; // Bilder-Duplikate anzeigen
// lemmatitle for external lookup
var diffhistory = true; // bei Nachsichtungen Übersicht der ungesichteten Versionen zeigen (von P.Copp)
var spesctitlelookup = spesctitle.split('+(')[0];
var hideduplicatecontribs = true; // bei Benutzerbeiträgen Checkboxen zum Filtern einblenden (von P.Copp)
// Komma-Lemma für Personen (Klammerzusätze weg etc.)
var hidenslinksearch = true; // bei Weblink-Suche unnötiges Zeugs ausblenden (nach P.Copp)
var personlemma = spagetitle.split(' (')[0];
var titlesplit = personlemma.split(' ');
var i;
if (titlesplit.length > 1) {
personlemma = titlesplit[titlesplit.length - 1] + ',';
for (i = 0; i < (titlesplit.length - 1); i++)
personlemma += ' ' + titlesplit[i];
}


var import_url;
// special rights options
// stub for internal links
var adddelreason = true; // Löschgrund einfügen (von P.Copp)
// now all links are https (secure.wikimedia.org is also deprecated since 2012)
var dellinknowcommons = true; // Löschlink bei NowCommons-Bildern (von Revvar/Codeispoetry)
var intlinkstub = '//' + cLang + '.wikipedia.org/wiki/';
var loescheimer = true; // erleichtertes LK-Abarbeiten (von mnh)
var intfuncstub = '//' + cLang + '.wikipedia.org' + sPath + '/index.php?';
var filter_rfdtoc_by_default = true; // Löscheimer: TOC der LK-Seite filtern?
var summary = document.getElementById('wpSummary');
var textbox = document.getElementById('wpTextbox1');


/* Vector Modifications: font must be smaller */
// **************** SETUP Ende ***********************************
var isVector = '';
if (mw.config.get('skin') === 'vector') {
isVector = 'font-size:78%;'; // scaled proportional with width
qbfontsize *= 0.84; // scale factor
}


// page type variables: namespaces
// (PDD: note to self: version auch in alert-Funktion ändern!)
var isArticle, isUserpage, isArticleTalk, isProject, isFile, isTemplate, isHelp, isCategory, isSpecial, isUserMainpage;
var version = '0.99h';
switch (ns) {
case 0:
isArticle = true;
break;
case 1:
isArticleTalk = true;
break;
case 2: // user & user_talk lumped together
case 3:
isUserpage = true;
break;
case 4:
isProject = true;
break; // Wikipedia:
case 6:
isFile = true;
break;
case 10:
isTemplate = true;
break;
case 12:
isHelp = true;
break; // Hilfe:
case 14:
isCategory = true;
break;
case -1:
isSpecial = true;
break;
}
var isGeneric = (!isFile && !isCategory && !isTemplate);


// page type variables: namespace == -1
var user = mw.config.get('wgUserName'); // username wird automatisch übernommen
var isRestore, isContrib, isDelContrib, isWatchlist, isCompare;
if (isSpecial)
switch (cpn) {
case 'Undelete':
isRestore = true;
break;
case 'Contributions':
isContrib = true;
break;
case 'ComparePages':
isCompare = true;
break;
case 'Watchlist':
isWatchlist = true;
break;
case 'DeletedContributions':
isDelContrib = true;
break;
}


// talk page namespace
// aktuelle Zeit ermitteln
var jetzt = new Date();
var isTalk = (!isSpecial && isOdd(ns));
// recalculate 4 furriners
var jetztfixed = jetzt.getTime();
jetztfixed += (timezoneshift * 3600 * 1000);
jetzt.setTime(jetztfixed);
// fill date variables
var Monate = mw.config.get('wgMonthNames');
var Monatekurz = mw.config.get('wgMonthNamesShort');
var Jahr = jetzt.getYear();
if (Jahr < 999) Jahr += 1900;
var Monat = jetzt.getMonth() + 1;
var Tag = jetzt.getDate();
var Stunde = jetzt.getHours();
var Minute = jetzt.getMinutes();
// 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;
var ndDatum = Jahr + '-' + LeadingZero(Monat) + '-' + LeadingZero(Tag);


// individual page specials
// Lemma-Varianten (work in progress) + redundant zu addLogsLink etc.
var isLKpage = (isProject && (spagetitle.indexOf('Löschkandidaten') !== -1));
// get page title
var pagetitle = mw.config.get('wgPageName');
var spagetitle = mw.config.get('wgTitle');
var cpn = mw.config.get('wgCanonicalSpecialPageName');


// userpage/name stuff, vor allem für IPs
var ns = mw.config.get('wgNamespaceNumber');
var userPageOwner = '';
var cns = mw.config.get('wgCanonicalNamespace');
var isIPUser = false; // handelt es sich um eine IP?
var cLang = mw.config.get('wgContentLanguage');
// get URL parameters (used for page type variables)
var sPath = mw.config.get('wgScriptPath');
var UrlParameters = {}; // FIXME deprecated in helperFunctions.js, use mw.util.getParamValue( instead


(function () { // returns UrlParameters
// do real spaces; fix for lemmas with '&'
var para,
var ptitle = pagetitle.replace(/_/g, " ").split('&').join('%26');
var sptitle = spagetitle.replace(/_/g, " ").split('&').join('%26');
readUrlParameters = location.search.substring(1, location.search.length).split('&');
for (i = 0; i < readUrlParameters.length; i++) {
// do + escaped (" " to "+")
para = readUrlParameters[i].split('=');
var pesctitle = spaceEscape(ptitle);
UrlParameters[decodeURIComponent(para[0])] = decodeURIComponent(para[1]);
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];
}
var import_url;
var summary = $('#wpSummary')[0];
var textbox = $('#wpTextbox1')[0];
// stub for internal links
if ( mw.config.get( 'wgServer' ).indexOf('https://') === 0 ) {
// this is now only for secure.wikimedia.org (while the normal https: uses normal relative URLs)
var intlinkstub = 'https://secure.wikimedia.org/wikipedia/' + cLang + '/wiki/' ;
var intfuncstub = 'https://secure.wikimedia.org/wikipedia/' + cLang + sPath + '/index.php?' ;
} else {
var intlinkstub = '//' + cLang + '.wikipedia.org/wiki/' ;
var intfuncstub = '//' + cLang + '.wikipedia.org' + sPath + '/index.php?' ;
}


// Helper-Function
// get URL parameters (used for page type variables)
function _getUser() { // returns isIPUser, userPageOwner
var UrlParameters = [];
var target = mw.util.getParamValue('target');
readparams();
if (isContrib || isDelContrib) {
if (target) {
userPageOwner = target.split('+').join('_');
} else {
target = decodeURIComponent(location.href.substring(location.href.indexOf('/wiki/') + 6)).split('#')[0];
userPageOwner = target.substring(target.indexOf('Beiträge/') + 9);
}
} else if (isUserpage && spagetitle === user) {
isUserMainpage = true;
userPageOwner = spagetitle;
}
if (userPageOwner > '' && mw.util.isIPAddress(userPageOwner))
isIPUser = true;
}


// page type variables: other stuff
function readparams() {
var isPHP = document.URL.indexOf('index.php') > 0;
var asReadInUrlParameters;
var isDiff = UrlParameters.diff;
var asReadInUrlParameter;
var isEdit = /^(edit|submit)$/.test(action);
var isHistory = (action === 'history');


// Admin & editor functions
// Get URL parameters
var adminflag = hasRight('sysop');
asReadInUrlParameters = location.search.substring(1, location.search.length).split("&");
var editorflag = hasRight('editor');
for (i = 0; i < asReadInUrlParameters.length; i++) {
var dev = 'РDD3';
asReadInUrlParameter = asReadInUrlParameters[i].split("=");
// Browserkram
UrlParameters[decodeURIComponent(asReadInUrlParameter[0])] = decodeURIComponent(asReadInUrlParameter[1]);
var userbrowser = 'Standard';
}
if (navigator.userAgent.indexOf('Opera') > -1)
}
userbrowser = 'Opera';


if (navigator.userAgent.indexOf('Safari') > -1)
// page type variables: namespaces
userbrowser = 'Standard';
var isArticle = ns === 0;
var isArticleTalk = ns === 1;
var isFile = cns === "File";
var isCategory = cns === "Category";
var isTemplate = cns === "Template";
var isGeneric = false;
if ((!isFile) && (!isCategory) && (!isTemplate))
isGeneric = true;
var isProject = (cns === "Project"); /* NR Wikipedia: */
var isHelp = (cns === "Help"); /* NR Hilfe */


if (navigator.userAgent.indexOf('MSIE') > -1) {
// page type variables: namespace === -1
userbrowser = 'IE';
var isSpecial = cns === "Special";
if (navigator.userAgent.indexOf('MSIE 7') > -1)
var isRestore = (isSpecial && (cpn === "Undelete"));
userbrowser = 'IE7';
var isContrib = (isSpecial && (cpn === "Contributions"));
}
var isDelContrib = (isSpecial && (cpn === "DeletedContributions"));
var isWatchlist = (isSpecial && (cpn === "Watchlist"));
var isCompare = (isSpecial && (cpn === "ComparePages"));


// force Browserswitches
// page type variables: namespace === -1
if (userbrowser === 'IE' || userbrowser === 'IE7') {
var isTalk = (!isSpecial && isOdd(ns));
godmodelight = false;
showredundantlinks = false;
}
if (userbrowser === 'Opera')
godmodelight = false;


/*
// page type variables: other stuff
* ab hier wird der Quickbar (der Kasten oben links) zusammengebaut
var isPHP = (document.URL.indexOf('index.php') > 0);
*
* zuerst die allgemeinen Variablen (hier bitte nix ändern!)
*/
var Quickbar = '<div class="pBody noprint" id="p-quickbar" style="position:absolute; top:0; left:0; width:14.1em; z-index:10;' +
isVector + '">',
// optional: opacity:0.9,
xxx = '',
trenner = '<hr>',
br = '<br>',
qbtarget = qbnewpage ? '_blank' : '_self',
dropdown = usedropdown,
scrpt = '',
scrptn = 0,
indropdown,
ind;


/*
var isDiff = mw.util.getParamValue('diff') !== null;
* Quickbar-Zusammenbau, Teil 1:
var isEdit = ( ( mw.config.get('wgAction') === 'edit' ) || ( mw.config.get('wgAction') === 'submit' ) );
*
var isHistory = mw.config.get('wgAction') === 'history';
* die Belegung der einzelnen Abschnitte
*/


function qbWPIntern() {
// individual page specials
w(0, trenner, 'Wikipedia', '');
var isLKpage = false;
if ((isProject) && (spagetitle.indexOf('Löschkandidaten') !== -1))
isLKpage = true;


// w (1,intlinkstub+'Hilfe:MediaWiki','MW',qbtarget,'MediaWiki-Hilfe');
// userpage/name stuff, vor allem für IPs
// w (1,intlinkstub+'Wikipedia:Hilfe','RTFM',qbtarget,'Wikipedia-Hilfe');
var userPageOwner = "";
// w (1,intlinkstub+'Hilfe:Textgestaltung','TG',qbtarget,'Hilfe zur Textgestaltung');
if (isContrib || isDelContrib) {
// w (1,intlinkstub+'Hilfe:Farben','FT',qbtarget,'Hilfe zur Farbgestaltung');
if (UrlParameters.target) userPageOwner = UrlParameters.target.split('+').join('_');
w(1, intlinkstub + 'Wikipedia:Kurier', 'K', qbtarget, 'Kurier – Das Wikipedia-Nachrichtenblatt');
else {
w(1, intlinkstub + 'Wikipedia:Fragen zur Wikipedia', 'FZW', qbtarget, 'Fragen zur Wikipedia');
userPageOwner = decodeURIComponent(location.href.substring(location.href.indexOf("/wiki/") + 6)).split('#')[0];
w(1, intlinkstub + 'Wikipedia:Auskunft', 'AU', qbtarget, 'Auskunft');
userPageOwner = userPageOwner.substring(userPageOwner.indexOf("Beiträge/") + 9);
// w (1,intlinkstub+'Wikipedia:Autorenportal','P',qbtarget,'Autorenportal');
}
w(1, intlinkstub + 'Wikipedia:Projektneuheiten', 'NEU', qbtarget, 'Projektneuheiten');
}
w(1, intlinkstub + 'Wikipedia:Verbesserungsvorschläge', 'VV', qbtarget, 'Verbesserungsvorschläge');
// w (1,intlinkstub+'Wikipedia:Tellerrand','TE',qbtarget,'Tellerrand');
w(1, intlinkstub + 'Wikipedia:Administratoren/Anfragen', 'AAF', qbtarget, 'Administratoren/Anfragen');
w(1, intlinkstub + 'Wikipedia:Administratoren/Notizen', 'AN', qbtarget, 'Administratoren/Notizen');
w(1, intlinkstub + 'Wikipedia:Kandidaturen', 'AK', qbtarget, 'Kandidaturen');
w(1, intlinkstub + 'Wikipedia:Adminwiederwahl', 'A/W', qbtarget, 'Adminwiederwahl');
w(1, intlinkstub + 'Wikipedia:Dritte_Meinung', '3M', qbtarget, 'Dritte Meinung');
w(1, intlinkstub + 'Wikipedia:Vermittlungsausschuss', 'VA', qbtarget, 'Vermittlungsausschuss');
w(1, intlinkstub + 'Wikipedia:Schiedsgericht/Anfragen', 'SG/A', qbtarget, 'Schiedsgericht/Anfragen');
// w (1,intlinkstub+'Wikipedia:Projektdiskussionen','PRD',qbtarget,'Projektdiskussionen');
w(1, intlinkstub + 'Wikipedia:Checkuser/Anfragen', 'CU/A', qbtarget, 'Checkuser/Anfragen');
// w (1,intlinkstub+'Wikipedia:Abkürzungen','ABK',qbtarget,'Abkürzungen');
}


function qbPatrol() {
// page type variables: user & user discussion lumped together
w(0, trenner, 'Überwachung', '');
var isUserpage = cns === "User" || cns === "User_talk";
var isUserMainpage = false;
if (isUserpage)
if (spagetitle === spagetitle.split("/")[0]) {
isUserMainpage = true;
userPageOwner = spagetitle;
}


w(1, intfuncstub + 'title=Special:Recentchanges&hideminor=0&hideliu=1&hidebots=1&hidepatrolled=0&days=7&limit=' + rclimit, 'RCs', qbtarget, 'Letzte Änderungen');
// handelt es sich um eine IP?
w(1, intlinkstub + 'Special:Contributions/newbies', 'RCNs', qbtarget, 'Beiträge neuer Benutzer');
var isIPUser = false;
w(1, intfuncstub + 'title=Special:Newpages&namespace=0&limit=' + nplimit, 'NeuA', qbtarget, 'Neue Artikel');
if (userPageOwner !== "")
// w (1,intlinkstub+'Special:Newimages','NeuD',qbtarget,'Neue Dateien (Bilder)');
if (userPageOwner.match(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/) !== null)
w(1, intfuncstub + 'title=Special:Log&limit=' + nulimit + '&type=newusers', 'NeuB', qbtarget, 'Neue Benutzer');
if ((userPageOwner.split(".")[0] > 1) && (userPageOwner.split(".")[0] < 255))
w(1, intfuncstub + 'title=Special:Listfiles&limit=' + ndlimit, 'NeuD', qbtarget, 'Neue Dateien');
isIPUser = true;
w(1, intfuncstub + 'title=Special:OldReviewedPages&limit=' + nvlimit, 'NeuE', qbtarget, 'Neue Edits in gesichteten Artikeln');
// w (1,intfuncstub+'title=Special:ArticleFeedbackv5','NeuF',qbtarget,'Neues Feedback');
w(1, intlinkstub + 'Wikipedia:Vandalismusmeldung', 'VM', qbtarget, 'Vandalismusmeldung');
w(1, intlinkstub + 'Wikipedia:Oversight/Kontakt', 'OSA', qbtarget, 'Oversight-Kontakt');
w(1, intlinkstub + 'Wikipedia:Sperrprüfung', 'SP', qbtarget, 'Sperrprüfung');
w(1, intlinkstub + 'Wikipedia:Löschprüfung', 'LP', qbtarget, 'Löschprüfung');
w(1, intlinkstub + 'Wikipedia:Entsperrwünsche', 'EW', qbtarget, 'Entsperrwünsche');
w(1, intlinkstub + 'Wikipedia:Administratoren/Probleme', 'AP', qbtarget, 'Admin-Probleme');
w(1, intlinkstub + 'Special:Log', 'Log', qbtarget, 'Logbücher');


if (adminflag) {
// Admin & editor functions
w(1, intlinkstub + 'Special:AbuseLog', 'ELog', qbtarget, 'Bearbeitungsfilter-Logbuch');
var adminflag = false;
w(1, intlinkstub + 'Wikipedia:Erkennung_offener_Proxys', 'EOP', qbtarget, 'Erkennung offener Proxys');
if (hasRight("sysop")) adminflag = true;
}
// w (1,'irc://irc.freenode.net/wikipedia-de','IRC',qbtarget,'IRC-Chat #wikipedia-de');
}


function qbWartung() {
var editorflag = false;
w(0, trenner, 'Wartung', '');
if (hasRight("editor")) editorflag = true;


// w (1,intlinkstub+'Wikipedia:Löschregeln','WP:LR',qbtarget,'Löschregeln');
// Browserkram
w(1, intlinkstub + 'Kategorie:Wikipedia:Schnelllöschen', 'SLK', qbtarget, 'Schnelllöschkandidaten');
var userbrowser = "Standard";
w(1, intlinkstub + 'Wikipedia:Löschkandidaten', 'LK', qbtarget, 'Löschkandidaten');
if (navigator.userAgent.indexOf("Opera") > -1)
w(1, intlinkstub + 'Wikipedia:Löschkandidaten/' + WPDatum, 'LKH', qbtarget, 'Löschkandidaten (heute)');
userbrowser = "Opera";
// w (1,intlinkstub+'Wikipedia:Löschkandidaten/Bilder/'+WPDatum,'BildLK',qbtarget,'Löschkandidaten (Bilder)');
if (navigator.userAgent.indexOf("Safari") > -1)
// w (1,intlinkstub+'Wikipedia:WikiProjekt_Kategorien/Diskussionen/'+WPDatum2,'KatLK',qbtarget,'Löschkandidaten (Kategorien)');
userbrowser = "Standard";
w(1, intlinkstub + 'Wikipedia:Löschkandidaten/Urheberrechtsverletzungen', 'URV', qbtarget, 'Löschkandidaten (URVs)');
if (navigator.userAgent.indexOf("MSIE") > -1) {
userbrowser = "IE";
if (navigator.userAgent.indexOf("MSIE 7") > -1)
userbrowser = "IE7";
}


w(1, intlinkstub + 'Wikipedia:Qualitätssicherung/' + WPDatum, 'QS', qbtarget, 'Qualitätssicherung');
// force Browserswitches
w(1, intlinkstub + 'Wikipedia:Redundanz/' + WPDatum3, 'RED', qbtarget, 'Redundanz');
if ((userbrowser === "IE") || (userbrowser === "IE7")) {
w(1, intlinkstub + 'Kategorie:Wikipedia:Unverständlich', 'Wirr', qbtarget, 'Unverständlich');
godmodelight = false;
showredundantlinks = false;
}
if (userbrowser === "Opera") {
godmodelight = false;
}


w(1, intlinkstub + 'Wikipedia:Kandidaturen von Artikeln, Listen und Portalen', 'KALP', qbtarget, 'Kandidaturen von Artikeln, Listen und Portalen');
/*
w(1, intlinkstub + 'Wikipedia:Kandidaten für lesenswerte Artikel', 'KLA', qbtarget, 'Kandidaten für lesenswerte Artikel');
* ab hier wird der Quickbar (der Kasten oben links) zusammengebaut
*
* zuerst die allgemeinen Variablen (hier bitte nix ändern!)
*/


w(1, intlinkstub + 'Wikipedia:Review', 'RV', qbtarget, 'Review');
var Quickbar = '<div class="pBody noprint" id="p-quickbar" style="position:absolute; top:5px; left:0px; width:14.1em; z-index:10;">';
w(1, intlinkstub + 'Wikipedia:Kandidaten für exzellente Bilder', 'KEB', qbtarget, 'Kandidaten für exzellente Bilder');
// optional: opacity:0.9;
// w (1,intlinkstub+'Wikipedia:Kandidaten für exzellente Aufnahmen','KEAU',qbtarget,'Kandidaten für exzellente Aufnahmen');
var xxx = '';
}


function qbUserTools() {
var trenner = '<hr />';
if (userPageOwner === '')
var br = '<br />';
return;


if (isIPUser) {
var qbtarget = '_self';
// w (1,"http://www.ripe.net/whois?form_type=simple&full_query_string=&searchtext="+userPageOwner+"&do_search=Search",'IPripe',qbtarget,'IPripe');
if (qbnewpage) qbtarget = '_blank';
w(1, 'http://www.mxtoolbox.com/SuperTool.aspx?action=scan%3a' + userPageOwner, 'PScan', qbtarget, 'Portscan');
// w (1,"http://network-tools.com/default.asp?prog=lookup&host="+userPageOwner,'IPinfo',qbtarget,'IPInfo');
// w (1,"http://toolserver.org/~chm/whois.php?ip="+userPageOwner,'IPinfo',qbtarget,'IPInfo');
w(1, '//tools.wmflabs.org/whois/' + userPageOwner + '/lookup', 'IPinfo', qbtarget, 'IPInfo');
// w (1,"http://www.dnsstuff.com/tools/tracert.ch?ip="+userPageOwner,'IPtrcrt',qbtarget,'Traceroute');
// w (1,"https://www.dan.me.uk/torcheck?ip="+userPageOwner,'TOR',qbtarget,'TOR-Node-Check');
// w (1,"http://toolserver.org/~krimpet/torcheck.php?ip="+userPageOwner,'K-TOR',qbtarget,'Krimpets TOR-Node-Check');
w(1, '//tools.wmflabs.org/guc/?user=' + userPageOwner + '&blocks=true&lang=de', 'IP-GUC', qbtarget, 'Global user contributions');
// w (1,"http://toolserver.org/~vvv/rangecontribs.php?wiki=dewiki_p&user="+userPageOwner.substring(0, userPageOwner.lastIndexOf('.')),'IP-RaC',qbtarget,'IP range contributions');
w(1, '//de.wikipedia.org' + sPath + '/api.php?action=query&list=usercontribs&format=xml&uclimit=500&ucstart=' + getFutureDate() + '&ucend=' + getPastDate() + '&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=', 'Rng', qbtarget, 'Range/Subnet Rechner');
// w (1,"http://toolserver.org/~krimpet/rbhelper.php?db=dewiki_p&ip="+userPageOwner,'RngB?',qbtarget,'Range Block Finder');
// w (1,"//tools.wmflabs.org/erwin85/blockfinder.php?lang=de&family=wikipedia&ip="+userPageOwner,'RngB?',qbtarget,'Range Block Finder');
w(1, '//tools.wmflabs.org/blockcalc/index.php?lang=de', 'BCalc', qbtarget, 'Rangeblock Calculator');
w(1, 'http://nativeforeigner.com/calc/', 'BCalcNF', qbtarget, 'Another Rangeblock Calculator');
w(1, 'http://www.mikero.com/misc/ipcalc/?start=' + userPageOwner + '&end=' + userPageOwner, 'BCalcM', qbtarget, 'Yet another Rangeblock Calculator');
} else {
// w (1,"http://www.ripe.net/whois",'ripe',qbtarget,'Ripe-Lookup');
// 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, '//tools.wmflabs.org/quentinv57-tools/tools/sulinfo.php?username=' + userPageOwner + '&showblocks=1&showlocked=1', 'GUA', qbtarget, 'Global user accounts');
var dropdown = usedropdown;
// w (1,"http://toolserver.org/~purodha/sample/dbswithuser.php?usr="+userPageOwner+"&go=Go%21&uselang=de",'GUA+',qbtarget,'Global user accounts (ausführlich)');
var scrpt = '';
w(1, '//tools.wmflabs.org/guc/?user=' + userPageOwner + '&blocks=true&lang=de', 'GUC', qbtarget, 'Global user contributions');
var scrptn = 0;
var indropdown;
var ind;


if (user !== userPageOwner)
/*
// w (1,"http://toolserver.org/~cyroxx/familiar/familiar.php?user1="+spaceEscape(user)+"&user2="+spaceEscape(userPageOwner),'UFam',qbtarget,'Are U familiar? (cyroxx)');
* Quickbar-Zusammenbau, Teil 1:
// w (1,"http://toolserver.org/~merl/familiar.php?user1="+spaceEscape(user)+"&user2="+spaceEscape(userPageOwner),'UFam',qbtarget,'Are U familiar? (Merlissimo-Backup)');
*
w(1, '//tools.wmflabs.org/intersect-contribs/?project=dewiki&user1=' + spaceEscape(user) + '&user2=' + spaceEscape(userPageOwner), 'IntC', qbtarget, 'Intersect Contribs (pietrodn)');
* zuerst die Reihenfolge der einzelnen Abschnitte:
// w (1,"//tools.wmflabs.org/erwin85/contribs.php?lang=de&family=wikipedia&users="+spaceEscape(user)+"|"+spaceEscape(userPageOwner)+"&limit=500&submit=Submit",'ErwC',qbtarget,'Multiple Contribs (erwin85)');
*/


}
function buildQuickbar() {
}
qbWPIntern();
qbPatrol();
qbWartung();
qbToolserver();
qbCategoryTools();
qbImageTools();
qbExternTools();


function qbToolserver() {
// ab hier keine Dropdowns mehr
w(0, trenner, 'Toolserver', '');
closedropdown();
dropdown=false;


qbUserTools();
// die folgenden werden nur im Edit-Modus eingeblendet
qbEditTags();
qbArticleTemps();
qbMarkupTools();
qbImageTemps();
qbUsertalkTemps();


// w (1,"http://toolserver.org/~leon/stats/wikicharts/index.php?lang=de&wiki=dewiki&ns=Artikel&limit=200&month=" + LeadingZero(Monat) + "%2F" + Jahr + "&mode=view",'WCh',qbtarget,'WikiCharts');
// der folgende Abschnitt wird nur bei Admins eingeblendet
w(1, '//tools.wmflabs.org/xtools/adminstats/?project=de.wikipedia.org', 'AdmA', qbtarget, 'Adminaktivität (letzte 100 Tage)');
qbAdminTools();
// w (1,"http://toolserver.org/~aka/cgi-bin/revstat.cgi?period=168",'RStat',qbtarget,'Revert-Statistik (letzte Woche)');
// w (1,"http://toolserver.org/~luxo/Geburtstag.php",'GK',qbtarget,'Wikipedia Geburtstagskalender');
w(1, '//tools.wmflabs.org/wiki-todo/?language=de', '2Do', qbtarget, 'Wikipedia ToDo');
// w (1,"http://toolserver.org/~aka/cgi-bin/reviewcnt.cgi",'RCt',qbtarget,'Sichtungsstatistik');


if (isArticle) {
// Automatisches Bausteinsetzen
// w (1,"http://stats.grok.se/de/"+WPDatum5+ptitle,'ASt',qbtarget,'Wikipedia article traffic statistics');
qbAutoTemps();
w(1, 'http://stats.grok.se/de/latest90/' + ptitle, 'ASt', qbtarget, 'Wikipedia article traffic statistics');
}
// w (1,"http://toolserver.org/~mzmcbride/cgi-bin/watcher.py?db=dewiki_p&titles="+pesctitle,'AWa',qbtarget,'Watcher');
// w (1,"http://toolserver.org/~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",'ACnt',qbtarget,'Beiträge zu diesem Artikel');
w(1, '//tools.wmflabs.org/wikihistory/wh.php?page_title=' + pesctitle + '&lang=de', 'AHst', qbtarget, 'WikiHistory (APPER)');
}
if (rechtschreibpruefung && !isSpecial && (isArticle || window.RPonAllPages))
w(4, 'javascript:window.spellcheck();', 'SpellChk', '', 'Rechtschreibprüfung');


}


function qbCategoryTools() {
/*
if (!isCategory)
* Quickbar-Zusammenbau, Teil 2:
return;
*
* die Belegung der einzelnen Abschnitte
*/


w(0, trenner, 'Kategorie-Tools', '');
function qbWPIntern() {
w (0,trenner,'Wikipedia','');


// w (1,"http://toolserver.org/~daniel/WikiSense/CategoryIntersect.php?wikilang=de&wikifam=.wikipedia.org&basecat="+spesctitle+"&userlang=de",'K:Scan',qbtarget,'Kategorie: CatScan');
// w (1,intlinkstub+'Hilfe:MediaWiki','MW',qbtarget,'MediaWiki-Hilfe');
// w (1,intlinkstub+'Wikipedia:Hilfe','RTFM',qbtarget,'Wikipedia-Hilfe');
// w (1,intlinkstub+'Hilfe:Textgestaltung','TG',qbtarget,'Hilfe zur Textgestaltung');
// w (1,intlinkstub+'Hilfe:Farben','FT',qbtarget,'Hilfe zur Farbgestaltung');
w (1,intlinkstub+'Wikipedia:Kurier','K',qbtarget,'Kurier – Das Wikipedia-Nachrichtenblatt');
w (1,intlinkstub+'Wikipedia:Fragen zur Wikipedia','FZW',qbtarget,'Fragen zur Wikipedia');
w (1,intlinkstub+'Wikipedia:Auskunft','AU',qbtarget,'Auskunft');
// w (1,intlinkstub+'Wikipedia:Autorenportal','P',qbtarget,'Autorenportal');
w (1,intlinkstub+'Wikipedia:Projektneuheiten','NEU',qbtarget,'Projektneuheiten');
w (1,intlinkstub+'Wikipedia:Verbesserungsvorschläge','VV',qbtarget,'Verbesserungsvorschläge');
// w (1,intlinkstub+'Wikipedia:Tellerrand','TE',qbtarget,'Tellerrand');
w (1,intlinkstub+'Wikipedia:Administratoren/Anfragen','AAF',qbtarget,'Administratoren/Anfragen');
w (1,intlinkstub+'Wikipedia:Administratoren/Notizen','AN',qbtarget,'Administratoren/Notizen');
w (1,intlinkstub+'Wikipedia:Kandidaturen','AK',qbtarget,'Kandidaturen');
w (1,intlinkstub+'Wikipedia:Adminwiederwahl','A/W',qbtarget,'Adminwiederwahl');
w (1,intlinkstub+'Wikipedia:Dritte_Meinung','3M',qbtarget,'Dritte Meinung');
w (1,intlinkstub+'Wikipedia:Vermittlungsausschuss','VA',qbtarget,'Vermittlungsausschuss');
w (1,intlinkstub+'Wikipedia:Schiedsgericht/Anfragen','SG/A',qbtarget,'Schiedsgericht/Anfragen');
// w (1,intlinkstub+'Wikipedia:Projektdiskussionen','PRD',qbtarget,'Projektdiskussionen');
w (1,intlinkstub+'Wikipedia:Checkuser/Anfragen','CU/A',qbtarget,'Checkuser/Anfragen');
// w (1,intlinkstub+'Wikipedia:Abkürzungen','ABK',qbtarget,'Abkürzungen');
}


w(1, '//tools.wmflabs.org/catscan2/quick_intersection.php?lang=de&project=wikipedia&cats=' + spesctitle + '&ns=0&depth=12&max=30000&start=0&format=html&redirects=&callback=', 'K:Scan', qbtarget, 'Kategorie: CatScan');
function qbPatrol() {
w(1, '//tools.wmflabs.org/catscan2/catscan2.php?depth=3&categories=' + spesctitle + '&interface_language=de&doit=1', 'K:Scan2', qbtarget, 'Kategorie: CatScan 2.0');
w (0,trenner,'Überwachung','');
// w (1,"//tools.wmflabs.org/erwin85/categorycount.php?lang=de&family=wikipedia&namespaces=0&category="+spesctitle+"&subcats=1&d=100&submit=Submit",'K:Count',qbtarget,'Kategorie: Anzahl der Artikel');
// w (1,"http://toolserver.org/~daniel/WikiSense/CategoryIntersect.php?wikilang=de&wikifam=.wikipedia.org&basecat="+spesctitle+"&basedeep=5&mode=rc&hours=168&onlynew=on&userlang=de&go=Scannen",'K:NeuA',qbtarget,'Kategorie: Neue Artikel');
// w (1,"http://toolserver.org/~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.wmflabs.org/catscan2/catscan2.php?language=de&project=wikipedia&depth=5&categories=' + spesctitle + '&max_age=168&only_new=1&interface_language=de&doit=1', 'K:NeuA', qbtarget, 'Kategorie: Neue Artikel');
w(1, '//tools.wmflabs.org/missingtopics/?language=de&project=wikipedia&article=&category=' + spesctitle + '&depth=5&wikimode=0&limitnum=1&doit=Run', 'K:Miss', qbtarget, 'Kategorie: Fehlende Artikel');
w(1, '//tools.wmflabs.org/sighting/deep_out_of_sight.php?category=' + spesctitle + '&depth=9', 'K:NeuE', qbtarget, 'Kategorie: Nachzusichtende Artikel');
w(1, '//tools.wmflabs.org/sighting/deep_insight.php?category=' + spesctitle + '&depth=9', 'K:UsP', qbtarget, 'Kategorie: Erstzusichtende Artikel');
}


function qbImageTools() {
w (1,intfuncstub+'title=Special:Recentchanges&hideminor=0&hideliu=1&hidebots=1&hidepatrolled=0&days=7&limit='+rclimit,'RCs',qbtarget,'Letzte Änderungen');
if (!isFile)
w (1,intlinkstub+'Special:Contributions/newbies','RCNs',qbtarget,'Beiträge neuer Benutzer');
return;
w (1,intfuncstub+'title=Special:Newpages&namespace=0&limit='+nplimit,'NeuA',qbtarget,'Neue Artikel');
// w (1,intlinkstub+'Special:Newimages','NeuD',qbtarget,'Neue Dateien (Bilder)');
w (1,intfuncstub+'title=Special:Log&limit='+nulimit+'&type=newusers','NeuB',qbtarget,'Neue Benutzer');
w (1,intfuncstub+'title=Special:Listfiles&limit='+ndlimit,'NeuD',qbtarget,'Neue Dateien');
w (1,intfuncstub+'title=Special:OldReviewedPages&limit='+nvlimit,'NeuE',qbtarget,'Neue Edits in gesichteten Artikeln');
// w (1,intfuncstub+'title=Special:ArticleFeedbackv5','NeuF',qbtarget,'Neues Feedback');
w (1,intlinkstub+'Wikipedia:Vandalismusmeldung','VM',qbtarget,'Vandalismusmeldung');
w (1,intlinkstub+'Wikipedia:Oversight/Kontakt','OSA',qbtarget,'Oversight-Kontakt');
w (1,intlinkstub+'Wikipedia:Sperrprüfung','SP',qbtarget,'Sperrprüfung');
w (1,intlinkstub+'Wikipedia:Löschprüfung','LP',qbtarget,'Löschprüfung');
w (1,intlinkstub+'Wikipedia:Entsperrwünsche','EW',qbtarget,'Entsperrwünsche');
w (1,intlinkstub+'Wikipedia:Administratoren/Probleme','AP',qbtarget,'Admin-Probleme');
w (1,intlinkstub+'Special:Log','Log',qbtarget,'Logbücher');


w(0, trenner, 'Bild-Tools', '');
if (adminflag) {
w (1,intlinkstub+'Special:AbuseLog','ELog',qbtarget,'Bearbeitungsfilter-Logbuch');
w (1,intlinkstub+'Wikipedia:Erkennung_offener_Proxys','EOP',qbtarget,'Erkennung offener Proxys');
}
// w (1,'irc://irc.freenode.net/wikipedia-de','IRC',qbtarget,'IRC-Chat #wikipedia-de');
}


w(1, '//tools.wmflabs.org/commonshelper/?interface=de&lang=de&project=wikipedia&image=' + spesctitle + '&doit=\'Text generieren\'', 'D:M2C', qbtarget, 'Datei: Move-to-commons-Assistent');
function qbWartung() {
// w (1,"http://toolserver.org/~luxo/reworkhelper/index.php?image="+pesctitle,'D:RWH',qbtarget,'Datei: Reworkhelper');
w (0,trenner,'Wartung','');


// w (1,intlinkstub+'Wikipedia:Löschregeln','WP:LR',qbtarget,'Löschregeln');
w(1, 'http://commons.wikimedia.org/wiki/Special:Upload', 'C-Up', qbtarget, 'Commons-Upload');
// w (1,"http://toolserver.org/~daniel/WikiSense/CommonsClash.php?wikilang=de&wikifam=.wikipedia.org&order=img_name&max=200&format=html",'C-C',qbtarget,'CommonsClash');
w (1,intlinkstub+'Kategorie:Wikipedia:Schnelllöschen','SLK',qbtarget,'Schnelllöschkandidaten');
w(1, '//tools.wmflabs.org/commonshelper/?interface=de&lang=de&project=wikipedia', 'M2C', qbtarget, 'Move-to-commons-Assistent');
w (1,intlinkstub+'Wikipedia:Löschkandidaten','LK',qbtarget,'Löschkandidaten');
}
w (1,intlinkstub+'Wikipedia:Löschkandidaten/'+WPDatum,'LKH',qbtarget,'Löschkandidaten (heute)');
// w (1,intlinkstub+'Wikipedia:Löschkandidaten/Bilder/'+WPDatum,'BildLK',qbtarget,'Löschkandidaten (Bilder)');
// w (1,intlinkstub+'Wikipedia:WikiProjekt_Kategorien/Diskussionen/'+WPDatum2,'KatLK',qbtarget,'Löschkandidaten (Kategorien)');
w (1,intlinkstub+'Wikipedia:Löschkandidaten/Urheberrechtsverletzungen','URV',qbtarget,'Löschkandidaten (URVs)');


function qbExternTools() {
w (1,intlinkstub+'Wikipedia:Qualitätssicherung/'+WPDatum,'QS',qbtarget,'Qualitätssicherung');
w(0, trenner, 'Externe Tools', '');
w (1,intlinkstub+'Wikipedia:Redundanz/'+WPDatum3,'RED',qbtarget,'Redundanz');
w (1,intlinkstub+'Kategorie:Wikipedia:Unverständlich','Wirr',qbtarget,'Unverständlich');


// w (1,"http://www.copyscape.com",'CopySc',qbtarget,'CopyScape');
w (1,intlinkstub+'Wikipedia:Kandidaturen von Artikeln, Listen und Portalen','KALP',qbtarget,'Kandidaturen von Artikeln, Listen und Portalen');
// w (1,"http://toolserver.org/~revvar/urv.php",'URV?',qbtarget,'URV-Suche');
w (1,intlinkstub+'Wikipedia:Kandidaten für lesenswerte Artikel','KLA',qbtarget,'Kandidaten für lesenswerte Artikel');
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&searchmethod=lin', '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,'Krohn');


// w (1,"http://toolserver.org/~arnomane/cgi-bin/WP-autoreview.pl?l=de&do_typo_check=ON&Go%21=Go%21&lemma="+pesctitle,'AR',qbtarget,'AutoReview');
w (1,intlinkstub+'Wikipedia:Review','RV',qbtarget,'Review');
// w (1,"http://toolserver.org/~timl/cgi-bin/wikilint?l=de&do_typo_check=ON&remove_century=ON&url=http://de.wikipedia.org/wiki/"+pesctitle,'WL',qbtarget,'WikiLint (Autoreviewer)');
w (1,intlinkstub+'Wikipedia:Kandidaten für exzellente Bilder','KEB',qbtarget,'Kandidaten für exzellente Bilder');
// w (1,intlinkstub+'Wikipedia:Kandidaten für exzellente Aufnahmen','KEAU',qbtarget,'Kandidaten für exzellente Aufnahmen');
}


// w (1,"http://www.canoo.net",'Canoo',qbtarget,'Canoo');
function qbToolserver() {
w(1, 'http://www.cia.gov/cia/publications/factbook/index.html', 'FactB', qbtarget, 'CIA World Factbook');
w (0,trenner,'Toolserver','');
w(1, 'http://www.retrobibliothek.de/retrobib/suche.html', 'rbib', qbtarget, 'retro-bib (u. a. Meyers Konversationslexikon 1888)');


if (isArticle)
qbUserTools();
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');
// w (1,"http://toolserver.org/~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,"//tools.wmflabs.org/xtools/adminstats/?project=de.wikipedia.org",'AdmA',qbtarget,'Adminaktivität (letzte 100 Tage)');
// w (1,"http://toolserver.org/~aka/cgi-bin/revstat.cgi?period=168",'RStat',qbtarget,'Revert-Statistik (letzte Woche)');
// w (1,"http://toolserver.org/~luxo/Geburtstag.php",'GK',qbtarget,'Wikipedia Geburtstagskalender');
w (1,"//tools.wmflabs.org/wiki-todo/?language=de",'2Do',qbtarget,'Wikipedia ToDo');
// w (1,"http://toolserver.org/~aka/cgi-bin/reviewcnt.cgi",'RCt',qbtarget,'Sichtungsstatistik');


if (isArticle) {
if (isArticle) {
var personlemma = quickEscape(this.personlemma, 1);
// w (1,"http://stats.grok.se/de/"+WPDatum5+ptitle,'ASt',qbtarget,'Wikipedia article traffic statistics');
w (1,"http://stats.grok.se/de/latest90/"+ptitle,'ASt',qbtarget,'Wikipedia article traffic statistics');
w(1, 'http://dispatch.opac.d-nb.de/DB=4.1/CMD?ACT=SRCHA&IKT=8514&SRT=YOP&TRM=' + personlemma, 'DNB-GND', qbtarget, 'DNB (GND-Suche)');
// w (1,"http://toolserver.org/~mzmcbride/cgi-bin/watcher.py?db=dewiki_p&titles="+pesctitle,'AWa',qbtarget,'Watcher');
w(1, 'http://swb2.bsz-bw.de/DB=2.104/SET=2/TTL=2/CMD?ACT=SRCHA&IKT=1&TRM=' + personlemma, 'OGND-GND', qbtarget, 'OGND (GND-Suche)');
} else {
// w (1,"http://toolserver.org/~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",'ACnt',qbtarget,'Beiträge zu diesem Artikel');
w (1,"//tools.wmflabs.org/wikihistory/wh.php?page_title="+pesctitle+"&lang=de",'AHst',qbtarget,'WikiHistory (APPER)');
w(1, 'http://dnb.ddb.de/', 'DNB-GND', qbtarget, 'DNB (GND-Suche)');
w(1, 'http://swb2.bsz-bw.de/DB=2.104/SET=2/TTL=2/LNG=DU/START_WELCOME', 'OGND-GND', qbtarget, 'OGND (GND-Suche)');
}
}
}


w(1, 'https://kvk.bibliothek.kit.edu/', 'KVK', qbtarget, 'Karlsruher Virtueller Katalog');
function qbUserTools() {
w(1, '//tools.wmflabs.org/isbn/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');
if (userPageOwner === "") return;
// w (1,"http://mdz10.bib-bvb.de/~ndb/ndbmaske.html",'A/NDB',qbtarget,'Allgemeine/Neue Deutsche Biographie');
w(1, 'http://www.deutsche-biographie.de/', 'A/NDB', qbtarget, 'Allgemeine/Neue Deutsche Biographie');
// w (1,"http://bse.sci-lib.com/",'Бсэ',qbtarget,'Большая советская энциклопедия');
w(1, 'http://encycl.yandex.ru/dict/bse', 'Бсэ', qbtarget, 'Большая советская энциклопедия');
w(1, 'http://wikyrillom.at', 'Вик', qbtarget, 'Wikyrilliza');
// w (1,"http://www.mcaviglia.ch/gmap/get_coor_ext.asp?l=de",'Coord',qbtarget,'Get Coordinates');
w(1, 'http://tools.freeside.sk/geolocator/geolocator.html', 'Coord', qbtarget, 'GeoLocator');
w(1, 'http://hbz-da.de/wikipedia/lifo.php', 'U2W', qbtarget, 'URL-in-Wiki-Konverter');
}


function qbEditTags() {
if (isIPUser) {
if (isFile || !isEdit)
// w (1,"http://www.ripe.net/whois?form_type=simple&full_query_string=&searchtext="+userPageOwner+"&do_search=Search",'IPripe',qbtarget,'IPripe');
return;
w (1,"http://www.mxtoolbox.com/SuperTool.aspx?action=scan%3a"+userPageOwner,'PScan',qbtarget,'Portscan');
// w (1,"http://network-tools.com/default.asp?prog=lookup&host="+userPageOwner,'IPinfo',qbtarget,'IPInfo');
// w (1,"http://toolserver.org/~chm/whois.php?ip="+userPageOwner,'IPinfo',qbtarget,'IPInfo');
w (1,"//tools.wmflabs.org/whois/"+userPageOwner+"/lookup",'IPinfo',qbtarget,'IPInfo');
// w (1,"http://www.dnsstuff.com/tools/tracert.ch?ip="+userPageOwner,'IPtrcrt',qbtarget,'Traceroute');
// w (1,"https://www.dan.me.uk/torcheck?ip="+userPageOwner,'TOR',qbtarget,'TOR-Node-Check');
// w (1,"http://toolserver.org/~krimpet/torcheck.php?ip="+userPageOwner,'K-TOR',qbtarget,'Krimpets TOR-Node-Check');
w (1,"//tools.wmflabs.org/guc/?user="+userPageOwner+"&blocks=true&lang=de",'IP-GUC',qbtarget,'Global user contributions');
// w (1,"http://toolserver.org/~vvv/rangecontribs.php?wiki=dewiki_p&user="+userPageOwner.substring(0, userPageOwner.lastIndexOf('.')),'IP-RaC',qbtarget,'IP range contributions');
w (1,"//de.wikipedia.org" + sPath + "/api.php?action=query&list=usercontribs&format=xml&uclimit=500&ucstart=" + getFutureDate() + "&ucend=" + getPastDate() + "&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=",'Rng',qbtarget,'Range/Subnet Rechner');
// w (1,"http://toolserver.org/~krimpet/rbhelper.php?db=dewiki_p&ip="+userPageOwner,'RngB?',qbtarget,'Range Block Finder');
// w (1,"//tools.wmflabs.org/erwin85/blockfinder.php?lang=de&family=wikipedia&ip="+userPageOwner,'RngB?',qbtarget,'Range Block Finder');
w (1,"//tools.wmflabs.org/blockcalc/index.php?lang=de",'BCalc',qbtarget,'Rangeblock Calculator');
w (1,"http://nativeforeigner.com/calc/",'BCalcNF',qbtarget,'Another Rangeblock Calculator');
w (1,"http://www.mikero.com/misc/ipcalc/?start="+userPageOwner+"&end="+userPageOwner,'BCalcM',qbtarget,'Yet another Rangeblock Calculator');
} else {
// w (1,"http://www.ripe.net/whois",'ripe',qbtarget,'Ripe-Lookup');
// 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(0, trenner, 'Editierhilfen', '');
w (1,"//tools.wmflabs.org/quentinv57-tools/tools/sulinfo.php?username="+userPageOwner+"&showblocks=1&showlocked=1",'GUA',qbtarget,'Global user accounts');
// w (1,"http://toolserver.org/~purodha/sample/dbswithuser.php?usr="+userPageOwner+"&go=Go%21&uselang=de",'GUA+',qbtarget,'Global user accounts (ausführlich)');
w (1,"//tools.wmflabs.org/guc/?user="+userPageOwner+"&blocks=true&lang=de",'GUC',qbtarget,'Global user contributions');


w(3, 'br,\'\',\'\'', 'br', '', 'Zeilenumbruch');
if (user !== userPageOwner) {
w(3, '\'&\',\'nbsp;\',\'\'', 'nbsp', '', 'Geschütztes Leerzeichen');
// w (1,"http://toolserver.org/~cyroxx/familiar/familiar.php?user1="+spaceEscape(user)+"&user2="+spaceEscape(userPageOwner),'UFam',qbtarget,'Are U familiar? (cyroxx)');
w(3, '\'†\',\'\',\'\'', '†', '', 'Kreuz');
// w (1,"http://toolserver.org/~merl/familiar.php?user1="+spaceEscape(user)+"&user2="+spaceEscape(userPageOwner),'UFam',qbtarget,'Are U familiar? (Merlissimo-Backup)');
// w (3,"'—','',''",'—','','Geviertstrich (Spiegelstrich)');
w (1,"//tools.wmflabs.org/intersect-contribs/?project=dewiki&user1="+spaceEscape(user)+"&user2="+spaceEscape(userPageOwner),'IntC',qbtarget,'Intersect Contribs (pietrodn)');
w(3, '\'–\',\'\',\'\'', '–', '', 'Halbgeviertstrich (Gedankenstrich)');
// w (1,"//tools.wmflabs.org/erwin85/contribs.php?lang=de&family=wikipedia&users="+spaceEscape(user)+"|"+spaceEscape(userPageOwner)+"&limit=500&submit=Submit",'ErwC',qbtarget,'Multiple Contribs (erwin85)');
// 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>');
w(3, '\'<onlyinclude>\',\'</onlyinclude>\',\'\'', 'OIncl', '', '<onlyinclude>');
// <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');
function qbCategoryTools() {
w(3, '\'<ref name=\\u0022name\\u0022>\',\'</ref>\',\'\'', '<small>[refN]</small>', '', 'Referenz-Name');
if (!isCategory) return;
w(3, '\'<ref name=\\u0022name\\u0022 \\u002F>\',\'\',\'\'', '<small>[refR]</small>', '', 'Referenz-Name-Wiederholung');
// w (3,"'<ref group=\\u0022name\\u0022>','</ref>',''",'<small>[refG]</small>','','Referenz-Gruppe');
// w (3,"'<ref group=\\u0022name\\u0022 name=\\u0022name\\u0022>','</ref>',''",'<small>[refGN]</small>','','Referenz-Gruppe-Name');


w(3, '\'{{lang|ru|\',\'}}\',\'\'', 'ru', '', 'Russisch');
w (0,trenner,'Kategorie-Tools','');
w(3, '\'{{HeS|\',\'}}<!--x-->\',\'\'', 'HeS', '', 'Hebräisch (mit Bidi-Stopper)');


w(3, '\'<math>\',\'</math>\',\'\'', 'Math');
// w (1,"http://toolserver.org/~daniel/WikiSense/CategoryIntersect.php?wikilang=de&wikifam=.wikipedia.org&basecat="+spesctitle+"&userlang=de",'K:Scan',qbtarget,'Kategorie: CatScan');
w(3, '\':<math>\\u005Cmathrm{\',\'}</math>\',\'\'', 'ChemForm');


w(3, '\'\\n{{Kasten|1=\',\' ' + usersignature + '}}\\n\',\'\'', 'Kast', '', 'Kasten');
w (1,"//tools.wmflabs.org/catscan2/quick_intersection.php?lang=de&project=wikipedia&cats="+spesctitle+"&ns=0&depth=12&max=30000&start=0&format=html&redirects=&callback=",'K:Scan',qbtarget,'Kategorie: CatScan');
w (1,"//tools.wmflabs.org/catscan2/catscan2.php?depth=3&categories="+spesctitle+"&interface_language=de&doit=1",'K:Scan2',qbtarget,'Kategorie: CatScan 2.0');
// w (1,"//tools.wmflabs.org/erwin85/categorycount.php?lang=de&family=wikipedia&namespaces=0&category="+spesctitle+"&subcats=1&d=100&submit=Submit",'K:Count',qbtarget,'Kategorie: Anzahl der Artikel');
// w (1,"http://toolserver.org/~daniel/WikiSense/CategoryIntersect.php?wikilang=de&wikifam=.wikipedia.org&basecat="+spesctitle+"&basedeep=5&mode=rc&hours=168&onlynew=on&userlang=de&go=Scannen",'K:NeuA',qbtarget,'Kategorie: Neue Artikel');
w (1,"http://tools.wmflabs.org/catscan2/catscan2.php?language=de&project=wikipedia&depth=5&categories="+spesctitle+"&max_age=168&only_new=1&interface_language=de&doit=1",'K:NeuA',qbtarget,'Kategorie: Neue Artikel');
// w (1,"http://toolserver.org/~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,"//tools.wmflabs.org/missingtopics/?language=de&project=wikipedia&article=&category="+spesctitle+"&depth=5&wikimode=0&limitnum=1&doit=Run",'K:Miss',qbtarget,'Kategorie: Fehlende Artikel');
w (1,"//tools.wmflabs.org/sighting/deep_out_of_sight.php?category="+spesctitle+"&depth=9",'K:NeuE',qbtarget,'Kategorie: Nachzusichtende Artikel');
w (1,"//tools.wmflabs.org/sighting/deep_insight.php?category="+spesctitle+"&depth=9",'K:UsP',qbtarget,'Kategorie: Erstzusichtende Artikel');
}


// temporary
function qbImageTools() {
w(3, '\'{{SortKeyName|\',\'|nl=1}}\',\'\'', 'SKN', '', 'SortKeyName');
if (!isFile) return;


}
w (0,trenner,'Bild-Tools','');


function qbArticleTemps() {
w (1,"//tools.wmflabs.org/commonshelper/?interface=de&lang=de&project=wikipedia&image="+spesctitle+"&doit='Text generieren'",'D:M2C',qbtarget,'Datei: Move-to-commons-Assistent');
if (isFile || !isEdit)
// w (1,"http://toolserver.org/~luxo/reworkhelper/index.php?image="+pesctitle,'D:RWH',qbtarget,'Datei: Reworkhelper');
return;


var personlemma = tagEscape(this.personlemma);
w (1,"http://commons.wikimedia.org/wiki/Special:Upload",'C-Up',qbtarget,'Commons-Upload');
var spagetitle = tagEscape(this.spagetitle);
// w (1,"http://toolserver.org/~daniel/WikiSense/CommonsClash.php?wikilang=de&wikifam=.wikipedia.org&order=img_name&max=200&format=html",'C-C',qbtarget,'CommonsClash');
w (1,"//tools.wmflabs.org/commonshelper/?interface=de&lang=de&project=wikipedia",'M2C',qbtarget,'Move-to-commons-Assistent');
}


w(0, trenner, 'Artikelbausteine', '');
function qbExternTools() {
w (0,trenner,'Externe Tools','');


w(3, '\'== Einzelnachweise ==\\n<references />\\n\',\'\',\'\'', 'Refs', '', '== Einzelnachweise ==');
// w (1,"http://www.copyscape.com",'CopySc',qbtarget,'CopyScape');
w(3, '\'== Literatur ==\\n\',\'\',\'\'', 'Lit', '', '== Literatur ==');
// w (1,"http://toolserver.org/~revvar/urv.php",'URV?',qbtarget,'URV-Suche');
w(3, '\'== Weblinks ==\\n\',\'\',\'\'', 'Web', '', '== Weblinks ==');
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&searchmethod=lin",'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,'Krohn');


w(3, '\'{{Commonscat}}\\n\',\'\',\'\'', 'ComC', '', 'Commonscat');
// w (1,"http://toolserver.org/~arnomane/cgi-bin/WP-autoreview.pl?l=de&do_typo_check=ON&Go%21=Go%21&lemma="+pesctitle,'AR',qbtarget,'AutoReview');
// w (1,"http://toolserver.org/~timl/cgi-bin/wikilint?l=de&do_typo_check=ON&remove_century=ON&url=http://de.wikipedia.org/wiki/"+pesctitle,'WL',qbtarget,'WikiLint (Autoreviewer)');


w(3, '\'[[Kategorie:\',\']]\\n\',\'\'', 'Kat:', '', '[[Kategorie:]]');
// w (1,"http://www.canoo.net",'Canoo',qbtarget,'Canoo');
w(3, '\'{{DEFAULTSORT:' + quickEscape(personlemma, 2) + '}}\\n\',\'\',\'\'', 'DefSrt', '', '{{DEFAULTSORT:');
w (1,"http://www.cia.gov/cia/publications/factbook/index.html",'FactB',qbtarget,'CIA World Factbook');
w(3, '\'[[Benutzer:\',\']]\',\'\'', 'User:', '', '[[Benutzer:]]');
w (1,"http://www.retrobibliothek.de/retrobib/suche.html",'rbib',qbtarget,'retro-bib (u. a. Meyers Konversationslexikon 1888)');
w(3, '\'[[Wikipedia:\',\']]\',\'\'', 'WP:', '', '[[Wikipedia:]]');


w(0, br, '', '');
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(3, '\'* {{DNB-Portal|\',\'}}\\n\',\'\'', 'DNB-P', '', 'PND (individualisiert mit Treffern)');
w (1,"http://www.ddb.de",'DNB',qbtarget,'Deutsche Nationalbibliothek');
w(3, '\'{{Normdaten|TYP=p|GND=\',\'|LCCN=|NDL=|VIAF=}}\\n\',\'\'', 'ND', '', 'Normdaten (GND individualisiert)');
// w (3,"'* {{PNDfehlt|" + refDatumlang + "|','}}\\n',''","PNDF",'','PNDfehlt (nicht individualisiert, aber mit Treffern)');
w(3, '\'{{Normdaten|TYP=p|GND=|LCCN=|NDL=|VIAF=|GNDName=\',\'|GNDfehlt=ja|GNDCheck=' + ndDatum + '|REMARK=}}\\n\',\'\'', 'PNDF', '', 'PNDfehlt (nicht individualisiert, aber mit Treffern)');


w(3, '\'{{Personendaten\\n|NAME=' + personlemma + '\\n|ALTERNATIVNAMEN=\\n|KURZBESCHREIBUNG=\\n|GEBURTSDATUM=\\n|GEBURTSORT=\\n|STERBEDATUM=\\n|STERBEORT=\\n}}\\n\',\'\',\'\'', 'PD', '', '{{Personendaten...');
if (isArticle) {
w (1,"http://dispatch.opac.d-nb.de/DB=4.1/CMD?ACT=SRCHA&IKT=8514&SRT=YOP&TRM="+quickEscape(personlemma,1),'DNB-GND',qbtarget,'DNB (GND-Suche)');
w (1,"http://swb2.bsz-bw.de/DB=2.104/SET=2/TTL=2/CMD?ACT=SRCHA&IKT=1&TRM="+quickEscape(personlemma,1),'OGND-GND',qbtarget,'OGND (GND-Suche)');
} else {
w (1,"http://dnb.ddb.de/",'DNB-GND',qbtarget,'DNB (GND-Suche)');
w (1,"http://swb2.bsz-bw.de/DB=2.104/SET=2/TTL=2/LNG=DU/START_WELCOME",'OGND-GND',qbtarget,'OGND (GND-Suche)');
}


w(3, '\'* {{ADB|Band|SeiteStart|SeiteEnde|' + personlemma + '|Artikelautor}}\\n\',\'\',\'\'', 'ADB', '', '{{ADB...');
w (1,"https://kvk.bibliothek.kit.edu/",'KVK',qbtarget,'Karlsruher Virtueller Katalog');
w(3, '\'* {{NDB|Band|SeiteStart|SeiteEnde|' + personlemma + '|Artikelautor}}\\n\',\'\',\'\'', 'NDB', '', '{{NDB...');
w (1,"//tools.wmflabs.org/isbn/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(3, '\'* {{ÖBL|Band|SeiteStart|SeiteEnde|' + personlemma + '|Artikelautor}}\\n\',\'\',\'\'', 'ÖBL', '', '{{ÖBL...');
w (1,"http://mdz10.bib-bvb.de/~ndb/ndbmaske.html",'A/NDB',qbtarget,'Allgemeine/Neue Deutsche Biographie');
w(3, '\'* {{HLS|Artikelnummer|' + personlemma + '|Autor=Artikelautor}}\\n\',\'\',\'\'', 'HLS', '', '{{HLS...');
// w (1,"http://www.deutsche-biographie.de/suche.html",'A/NDB',qbtarget,'Allgemeine/Neue Deutsche Biographie');
w(3, '\'* {{WWW-DDR|Artikelnummer|' + personlemma + '|Artikelautor}}\\n\',\'\',\'\'', 'DDR', '', '{{WWW-DDR...');
// w (1,"http://bse.sci-lib.com/",'Бсэ',qbtarget,'Большая советская энциклопедия');
w(3, '\'* {{BBKL|x/name_x_y|autor=|artikel=' + personlemma + '|band=|spalten=–}}\\n<!-- bitte vollständig ausfüllen -->\\n\',\'\',\'\'', 'BBKL', '', '{{BBKL...');
w (1,"http://encycl.yandex.ru/dict/bse",'Бсэ',qbtarget,'Большая советская энциклопедия');
// w (3,"'* {{RE|Band|SpalteStart|SpalteEnde|" + personlemma + "|Artikelautor|Wikisource-Lemma}}\\n','',''","RE",'','{{RE...');
w (1,"http://wikyrilliza.visuelya.de/index.php",'Вик',qbtarget,'Wikyrilliza');
// w (3,"'* {{DNP|Band|SpalteStart|SpalteEnde|" + personlemma + "|Artikelautor}}\\n','',''","DNP",'','{{DNP...');
// w (1,"http://www.mcaviglia.ch/gmap/get_coor_ext.asp?l=de",'Coord',qbtarget,'Get Coordinates');
w (1,"http://tools.freeside.sk/geolocator/geolocator.html",'Coord',qbtarget,'GeoLocator');
w (1,"http://hbz-da.de/wikipedia/lifo.php",'U2W',qbtarget,'URL-in-Wiki-Konverter');
}


w(3, '\'* {{IMDb|nm\',\'|' + spagetitle + '}}\\n\',\'\'', 'IMDb-n', '', '{{IMDb Name...');
function qbEditTags() {
w(3, '\'* {{IMDb|tt\',\'|' + spagetitle + '}}\\n\',\'\'', 'IMDb-t', '', '{{IMDb Titel...');
if (isFile) return;
w(3, '\'* {{IMDb|co\',\'|' + spagetitle + '}}\\n\',\'\'', 'IMDb-u', '', '{{IMDb Unternehmen...');
if (!isEdit) return;
w(3, '\'* {{OFDb|\',\'|' + spagetitle + '}}\\n\',\'\'', 'OFDb', '', '{{OFDb...');


w (0,trenner,'Editierhilfen','');
w(0, br, '', '');


w (3,"br,'',''",'br','','Zeilenumbruch');
w(2, '\'\',\'#REDIRECT [[]]\',1', 'Redir', '', '#REDIRECT [[]]');
w(2, '\'+Überarbeiten\',\'{{Überarbeiten}}\\n\',3', 'Überarb', '', '{{Überarbeiten}}');
w (3,"'&','nbsp;',''",'nbsp','','Geschütztes Leerzeichen');
w (3,"'','',''",'','','Kreuz');
w(2, '\'+Quelle\',\'{{Quelle}}\\n\',3', 'Quelle?', '', '{{Quelle}}');
w(2, '\'+Lückenhaft\',\'{{Lückenhaft|Es fehlen...}}\\n\',3', 'Lücke', '', 'Lückenhaft');
// w (3,"'—','',''",'—','','Geviertstrich (Spiegelstrich)');
// w (2,"'+Rechtshinweis','{{Rechtshinweis}}',2","Recht");
w (3,"'–','',''",'–','','Halbgeviertstrich (Gedankenstrich)');
// w (2,"'+Gesundheitshinweis','{{Gesundheitshinweis}}',2","Gesundh.");
// 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>');
w (3,"'<onlyinclude>','</onlyinclude>',''",'OIncl','','<onlyinclude>');
// <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');


function qbMarkupTools() {
w (3,"'<ref>','</ref>',''",'<small>[ref]</small>','','Referenz');
if (isFile || !isEdit)
w (3,"'<ref name=\\u0022name\\u0022>','</ref>',''",'<small>[refN]</small>','','Referenz-Name');
return;
w (3,"'<ref name=\\u0022name\\u0022 \\u002F>','',''",'<small>[refR]</small>','','Referenz-Name-Wiederholung');
// w (3,"'<ref group=\\u0022name\\u0022>','</ref>',''",'<small>[refG]</small>','','Referenz-Gruppe');
// w (3,"'<ref group=\\u0022name\\u0022 name=\\u0022name\\u0022>','</ref>',''",'<small>[refGN]</small>','','Referenz-Gruppe-Name');


w(0, trenner, 'Markup-Tools', '');
w (3,"'{{lang|ru|','}}',''",'ru','','Russisch');
w (3,"'{{HeS|','}}<!--x-->',''",'HeS','','Hebräisch (mit Bidi-Stopper)');


w(4, 'addPersData();', 'AutoPD', '', 'Automatische Kategorien und Personendaten'); // extern
w (3,"'<math>','</math>',''",'Math');
w (3,"':<math>\\u005Cmathrm{','}</math>',''",'ChemForm');
w(4, 'wpTextReplace();', 'Replace', '', 'Suchen und Ersetzen');


w(4, 'ReplaceQuoteSigns();', 'FixQuote', '', 'Anführungszeichen korrigieren'); // extern
w (3,"'\\n{{Kasten|1=',' " + usersignature + "}}\\n',''","Kast",'','Kasten');
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() {
// temporary
if (!isFile || !isEdit)
w (3,"'{{SortKeyName|','|nl=1}}',''",'SKN','','SortKeyName');
return;


w(0, trenner, 'Bildbausteine', '');
}
w(4, 'nowcomm();', 'NowCommons', '', 'NowCommons-Baustein setzen');


w(2, '\'+DÜP\',\'{{Dateiüberprüfung|Quelle|Urheber|Lizenz|Freigabe|Gezeigtes Werk|1923|Besonderer Fall}}\\n\\n\',3', 'DÜP', '', 'Dateiüberprüfung (bitte überflüssige Parameter entfernen)');
function qbArticleTemps() {
}
if (isFile) return;
if (!isEdit) return;


function qbUsertalkTemps() {
w (0,trenner,'Artikelbausteine','');
if (!isUserpage || !isTalk || !isEdit)
return;


var usersignature = tagEscape(this.usersignature);
w (3,"'== Einzelnachweise ==\\n<references></references>\\n','',''",'Refs','','== Einzelnachweise ==');
w (3,"'== Literatur ==\\n','',''",'Lit','','== Literatur ==');
w (3,"'== Weblinks ==\\n','',''",'Web','','== Weblinks ==');


w(0, trenner, 'Benutzerbausteine', '');
w (3,"'{{commonscat}}\\n','',''",'ComC','','commonscat');


// w (3,"'{{subst:Benutzer:PDD/Greetings/Hallo|1=" + tagEscape(user) + "}} " + usersignature + "\\n','','','Willkommen!'","Hallo",'','Baustein PDD:Hallo');
w (3,"'[[Kategorie:',']]\\n',''","Kat:",'','[[Kategorie:]]');
w (3,"'{{DEFAULTSORT:" + tagEscape(quickEscape(personlemma,2)) + "}}\\n','',''","DefSrt",'','{{DEFAULTSORT:');
w(3, '\'{{subst:Benutzer:PDD/Greetings/HalloG|1=' + tagEscape(user) + '|2=' + usersignature + '}}\\n\',\'\',\'\',\'Willkommen!\'', 'Hallo', '', 'Baustein PDD:HalloG');
w (3,"'[[Benutzer:',']]',''","User:",'','[[Benutzer:]]');
// w (3,"'{{subst:Begrüßungsbox|1=" + tagEscape(user) + "|2=a}}\\n','','','Willkommen!'","HalloC",'','Baustein Begrüßungsbox');
w(3, '\'{{subst:Benutzer:PDD/Greetings/Danke}} ' + usersignature + '\\n\',\'\',\'\',\'Probier doch mal die Spielwiese!\'', 'Danke', '', 'Baustein PDD:Danke');
w (3,"'[[Wikipedia:',']]',''","WP:",'','[[Wikipedia:]]');
w(3, '\'{{subst:Benutzer:LKD/V/VHinweis}}\\n\',\'\',\'\',\'Bitte damit aufhören.\'', 'Stop', '', 'Baustein LKD/V/VHinweis');
// w (3,"'{{subst:Benutzer:Blah/Vorlage:Vandale}}\\n','',''",'Vand','','Baustein Blah:Vandale');
// w (3,"'{{subst:Benutzer:Tobi B./Vorlage:Löschvandale}} " + 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}} ' + usersignature + '\\n\',\'\',\'\',\'Bitte Diskussionsbeiträge unterschreiben!\'', 'Sign!', '', 'Signieren nicht vergessen');
w(3, '\'{{subst:Vorschau}}\\n\',\'\',\'\'', 'Vorschau', '', '{{subst:Vorschau}}');
// w (3,"'{{subst:Benutzer:PDD/Greetings/Linkspam}} " + usersignature + "\\n','',''",'Linkspam','','Baustein PDD:Linkspam');
w(3, '\'{{subst:Benutzer:LKD/V/LHinweis}} ' + usersignature + '\\n\',\'\',\'\'', 'Linkspam', '', 'Baustein LKD:Linkspam');
// w (3,"'{{subst:Benutzer:Complex/Greetings/WP-WEB}} " + usersignature + "\\n','',''",'LinkspamC','','Baustein Complex:WP-WEB'); // Abwandlung von [[Benutzer:LKD/V/LHinweis]]
if (adminflag)
w(3, '\'{{subst:Gelöscht|wwni|ka|wer|rel|pov|que|urv|g=ja|art=}} ' + usersignature + '\\n\',\'\',\'\',\'Dein Artikel wurde gelöscht. Was nun?\'', 'SLA-ex', '', 'Autorenbenachrichtigung nach Schnelllöschung');


}
w (0,br,'','');


function qbAdminTools() {
w (3,"'* {{DNB-Portal|','}}\\n',''","DNB-P",'','PND (individualisiert mit Treffern)');
if (!adminflag)
w (3,"'{{Normdaten|TYP=p|GND=','|LCCN=|NDL=|VIAF=}}\\n',''","ND",'','Normdaten (GND individualisiert)');
return;
// w (3,"'* {{PNDfehlt|" + refDatumlang + "|','}}\\n',''","PNDF",'','PNDfehlt (nicht individualisiert, aber mit Treffern)');
w (3,"'{{Normdaten|TYP=p|GND=|LCCN=|NDL=|VIAF=|GNDName=','|GNDfehlt=ja|GNDCheck=" + ndDatum + "|REMARK=}}\\n',''","PNDF",'','PNDfehlt (nicht individualisiert, aber mit Treffern)');


if (isUserMainpage && isEdit) {
w (3,"'{{Personendaten\\n|NAME=" + tagEscape(personlemma) + "\\n|ALTERNATIVNAMEN=\\n|KURZBESCHREIBUNG=\\n|GEBURTSDATUM=\\n|GEBURTSORT=\\n|STERBEDATUM=\\n|STERBEORT=\\n}}\\n','',''",'PD','','{{Personendaten...');
w(0, trenner, '', '');
w(2, '\'+Gesperrter Benutzer\',\'{{Gesperrter Benutzer}}\',1', 'BSp', '', 'Benutzer 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 (3,"'* {{ADB|Band|SeiteStart|SeiteEnde|" + tagEscape(personlemma) + "|Artikelautor}}\\n','',''","ADB",'','{{ADB...');
w(0, trenner, '', '');
w (3,"'* {{NDB|Band|SeiteStart|SeiteEnde|" + tagEscape(personlemma) + "|Artikelautor}}\\n','',''","NDB",'','{{NDB...');
w(4, 'revAllDeletedVersions();', 'Auswahl umkehren?', '', 'Versionsauswahl umkehren?');
w (3,"'* {{ÖBL|Band|SeiteStart|SeiteEnde|" + tagEscape(personlemma) + "|Artikelautor}}\\n','',''","ÖBL",'','{{ÖBL...');
}
w (3,"'* {{HLS|Artikelnummer|" + tagEscape(personlemma) + "|Autor=Artikelautor}}\\n','',''","HLS",'','{{HLS...');
}
w (3,"'* {{WWW-DDR|Artikelnummer|" + tagEscape(personlemma) + "|Artikelautor}}\\n','',''","DDR",'','{{WWW-DDR...');
w (3,"'* {{BBKL|x/name_x_y|autor=|artikel=" + tagEscape(personlemma) + "|band=|spalten=–}}\\n<!-- bitte vollständig ausfüllen -->\\n','',''","BBKL",'','{{BBKL...');
// w (3,"'* {{RE|Band|SpalteStart|SpalteEnde|" + tagEscape(personlemma) + "|Artikelautor|Wikisource-Lemma}}\\n','',''","RE",'','{{RE...');
// w (3,"'* {{DNP|Band|SpalteStart|SpalteEnde|" + tagEscape(personlemma) + "|Artikelautor}}\\n','',''","DNP",'','{{DNP...');


function qbAutoTemps() {
w (3,"'* {{IMDb|nm','|" + tagEscape(spagetitle) + "}}\\n',''","IMDb-n",'','{{IMDb Name...');
if (isSpecial && !isContrib)
w (3,"'* {{IMDb|tt','|" + tagEscape(spagetitle) + "}}\\n',''","IMDb-t",'','{{IMDb Titel...');
return;
w (3,"'* {{IMDb|co','|" + tagEscape(spagetitle) + "}}\\n',''","IMDb-u",'','{{IMDb Unternehmen...');
w (3,"'* {{OFDb|','|" + tagEscape(spagetitle) + "}}\\n',''","OFDb",'','{{OFDb...');


w (0,br,'','');
w(0, trenner, 'Auto-Bausteine', '');


if (isGeneric && !isSpecial) {
w (2,"'','#REDIRECT [[]]',1","Redir",'','#REDIRECT [[]]');
w(4, 'eintragen(1);', 'QS+', '', '+Qualitätssicherung');
w (2,"'+Überarbeiten','{{Überarbeiten}}\\n',3","Überarb",'','{{Überarbeiten}}');
w (2,"'+Quelle','{{Quelle}}\\n',3","Quelle?",'','{{Quelle}}');
w(4, 'eintragen(5);', 'URV+', '', '+URV');
w(4, 'eintragen(2);', 'LA+', '', '+Löschantrag');
w (2,"'+Lückenhaft','{{Lückenhaft|Es fehlen...}}\\n',3","Lücke","","Lückenhaft");
}
// w (2,"'+Rechtshinweis','{{Rechtshinweis}}',2","Recht");
if ((isCategory) && !isSpecial) {
// w (2,"'+Gesundheitshinweis','{{Gesundheitshinweis}}',2","Gesundh.");
w(4, 'eintragen(7);', 'KatLA+', '', '+Löschantrag (Kategorie)');
}
w(4, 'eintragen(14);', 'KatMove+', '', '+Verschiebeantrag (Kategorie)');
}
if (isTemplate)
w(4, 'eintragen(8);', 'VorLA+', '', '+Löschantrag (Vorlage)');


if (!isSpecial)
function qbMarkupTools() {
w(4, 'eintragen(3);', 'SLA+', '', '+Schnelllöschantrag');
if (isFile) return;
if (!isEdit) return;


// if (hinweis) {
w (0,trenner,'Markup-Tools','');
// if (isGeneric && !isSpecial) w (4,"hinweis(1);","PH+","","+Portalhinweis");
// if (isGeneric && !isSpecial) w (4,"hinweis(2);","RH+","","+Redaktionshinweis");
// }
if (pagetitle === 'Wikipedia:Spielwiese')
w(4, 'eintragen(10);', 'SPW-Reset', '', 'Spielwiese zurücksetzen');


if (isContrib || isUserpage)
w (4,"addPersData();","AutoPD",'','Automatische Kategorien und Personendaten'); // extern
w (4,"wpTextReplace();","Replace",'','Suchen und Ersetzen');
w(4, 'eintragen(6);', 'VANDAL+', '', '+Vandalismusmeldung (Benutzer)');
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');
}


if (isArticle || isCategory)
function qbImageTemps() {
w(4, 'eintragen(9);', 'VANDAL+', '', '+Vandalismusmeldung (Artikel)');
if (!isFile) 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|Gezeigtes Werk|1923|Besonderer Fall}}\\n\\n',3","DÜP",'','Dateiüberprüfung (bitte überflüssige Parameter entfernen)');
* Quickbar-Zusammenbau, Teil 2:
}
* zuerst die Reihenfolge der einzelnen Abschnitte:
*/


mw.loader.using(['mediawiki.util'], // load modules first
function qbUsertalkTemps() {
function () {
if (!isUserpage) return;
_getUser();
if (!isTalk) return;
qbWPIntern();
if (!isEdit) return;
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();


/*
w (0,trenner,'Benutzerbausteine','');
* hier wird der Quickbar in die Seite geschrieben
* (ab hier bitte nichts ändern)
*/
var version = window.version || '?';
if (!isEdit || zeigeversion || isPHP)
Quickbar += '<div style="text-align:right;font-size:' + qbfontsize + '%;">' +
(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?" style="vertical-align:middle;"/>&nbsp;&nbsp;') :
'&nbsp;') +
'<a href="' + mw.config.get('wgScript') + '?title=Special%3APrefixindex&prefix=' + 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>';


Quickbar += '<div style="font-size:' + qbfontsize + '%;margin:0;padding:0 0 2px 2px;"' + ((isVector > '') ? ' class="mw-body"' : '') + '>' + xxx + '</div></div>';
// w (3,"'{{subst:Benutzer:PDD/Greetings/Hallo|1=" + tagEscape(user) + "}} " + tagEscape(usersignature) + "\\n','','','Willkommen!'","Hallo",'','Baustein PDD:Hallo');
Quickbar = $($.parseHTML(Quickbar)); // FIXME: in initQuickbar() save as jQuery for later manipulation
w (3,"'{{subst:Benutzer:PDD/Greetings/HalloG|1=" + tagEscape(user) + "|2=" + tagEscape(usersignature) + "}}\\n','','','Willkommen!'","Hallo",'','Baustein PDD:HalloG');
if (scrpt > '') {
// w (3,"'{{subst:Begrüßungsbox|1=" + tagEscape(user) + "|2=a}}\\n','','','Willkommen!'","HalloC",'','Baustein Begrüßungsbox');
Quickbar.append('<script>function _doopt(was){switch(was){' + scrpt + '};}</script>');
w (3,"'{{subst:Benutzer:PDD/Greetings/Danke}} " + tagEscape(usersignature) + "\\n','','','Probier doch mal die Spielwiese!'",'Danke','','Baustein PDD:Danke');
scrpt = '';
w (3,"'{{subst:Benutzer:LKD/V/VHinweis}}\\n','','','Bitte damit aufhören.'",'Stop','','Baustein 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','','','Bitte Diskussionsbeiträge unterschreiben!'",'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:Gelöscht|wwni|ka|wer|rel|pov|que|urv|g=ja|art=}} " + tagEscape(usersignature) + "\\n','','','Dein Artikel wurde gelöscht. Was nun?'",'SLA-ex','','Autorenbenachrichtigung nach Schnelllöschung');
}


$('body').append(Quickbar);
function qbAdminTools() {
// FIXME: Hack for Vector! Need fix in initQuickbar(), .paddingTop is not same!?
if (!adminflag) return;
if (isVector > '')
Quickbar.height(Quickbar.outerHeight() - 170);


});
if (isUserMainpage && isEdit) {
w (0,trenner,'','');
w (2,"'+Gesperrter Benutzer','{{Gesperrter Benutzer}}',1","BSp",'','Benutzer gesperrt');
w (2,"'+Offener Proxy','{{Offener Proxy}}',2","OP",'','Offener Proxy');
w (2,"'+Gesperrte IP','{{IP-Sperrung}}',2","IP-S",'','IP gesperrt');
}


//
if (isRestore) {
// ab hier functions
w (0,trenner,'','');
//
w (4,"revAllDeletedVersions();","Auswahl umkehren?","","Versionsauswahl umkehren?");
}
}


function qbAutoTemps() {
function w(was, lurl, linktext, targt, title) {
title = title || linktext;
if (isSpecial && !isContrib) return;
if (!zeigehilfe)
title = '';


if (!dropdown) {
w (0,trenner,'Auto-Bausteine','');
switch (was) {
case 0:
xxx += lurl;
break;
case 1:
xxx += '<a href="' + lurl + '" target="' + targt + '" title="' + title + '">' + linktext + '</a>&nbsp; ';
break;
case 2:
xxx += '<a href="#" onclick="newtext(' + lurl + ')" title="' + title + '">' + linktext + '</a>&nbsp; ';
break;
case 3:
xxx += '<a href="#" onclick="insertTagsWrapper(' + lurl + ')" title="' + title + '">' + linktext + '</a>&nbsp; ';
break;
case 4:
xxx += '<a href="#" onclick="' + lurl + '" title="' + title + '">' + linktext + '</a>&nbsp; ';
break;
}
} else { // todo: Hilfe bei Dropdowns. Benutzt die überhaupt jemand???
var ltext = '__________'.substr(1, ind) + linktext;
switch (was) {
case 0:
if (lurl === br) {
xxx += '<option>' + linktext + '</option>';
ind = 2;
} else if (lurl === trenner) {
newdropdown(linktext);
}
break;
case 1:
xxx += '<option value="1|' + lurl + '">' + ltext + '</option>';
break;
case 2:
xxx += '<option value="2|' + scrptn + '">' + ltext + '</option>';
scrpt += 'case ' + scrptn + ':newtext(' + lurl + ');break;';
scrptn++;
break;
case 3:
xxx += '<option value="3|' + scrptn + '">' + ltext + '</option>';
scrpt += 'case ' + scrptn + ':insertTagsWrapper(' + lurl + ');break;';
scrptn++;
break;
case 4:
xxx += '<option value="4|' + scrptn + '">' + ltext + '</option>';
scrpt += 'case ' + scrptn + ':' + lurl + ';break;';
scrptn++;
break;
} // switch
} // else
} // w


function dodropdown(aktion) {
if (( isGeneric) && (!isSpecial)) w (4,"eintragen(1);","QS+","","+Qualitätssicherung");
var zutun = aktion.split('|');
if (( isGeneric) && (!isSpecial)) w (4,"eintragen(5);","URV+","","+URV");
var was = Number(zutun[0]);
if (( isGeneric) && (!isSpecial)) w (4,"eintragen(2);","LA+","","+Löschantrag");
var wie = zutun[1];
if (( isCategory) && (!isSpecial)) {
switch (was) {
w (4,"eintragen(7);","KatLA+","","+Löschantrag (Kategorie)");
case 1:
w (4,"eintragen(14);","KatMove+","","+Verschiebeantrag (Kategorie)");
window.open(wie);
}
break;
if (( isTemplate) && (!isSpecial)) w (4,"eintragen(8);","VorLA+","","+Löschantrag (Vorlage)");
default:
if ( (!isSpecial)) {
_doopt(Number(wie));
w (4,"eintragen(3);","SLA+","","+Schnelllöschantrag");
} // switch
// w (4,"eintragen(3, 'Kein Artikel.');","SLA+/KA","","+Schnelllöschantrag (Kein Artikel)");
} // dodropdown
}


function newdropdown(oname) {
if (hinweis) {
closedropdown();
// if (( isGeneric) && (!isSpecial)) w (4,"hinweis(1);","PH+","","+Portalhinweis");
xxx += '<select size="1" onchange="dodropdown(this.value);" style="width:135px;font-size:9px;">';
// if (( isGeneric) && (!isSpecial)) w (4,"hinweis(2);","RH+","","+Redaktionshinweis");
if (oname > '')
}
xxx += '<option>' + oname + '</option>';
if (pagetitle === "Wikipedia:Spielwiese") w (4,"eintragen(10);","SPW-Reset","","Spielwiese zurücksetzen");


indropdown = true;
if (( isContrib) || ( isUserpage)) {
ind = 2;
w (4,"eintragen(6);","VANDAL+","","+Vandalismusmeldung (Benutzer)");
}
}
if (( isArticle) || ( isCategory)) {
w (4,"eintragen(9);","VANDAL+","","+Vandalismusmeldung (Artikel)");
}
}


function closedropdown() {
if (indropdown)
xxx += '</select>';


indropdown = false;
/*
}
* hier wird der Quickbar in die Seite geschrieben
* (ab hier bitte nichts ändern)
*/


function newtext(subj, text, wo) {
buildQuickbar();
// wo=1 : Text austauschen
// wo=2 : Text am Ende anhängen
// wo=3 : Text vorne Einfügen
if (subj > '') {
if (summary.value > '')
summary.value += ', ';


summary.value += subj;
if (typeof(version) === 'undefined') var version = "?";
}
if (!isEdit || zeigeversion || isPHP) {
Quickbar +=
'<div align=right>' +


switch (wo) {
(zeigeversion ?
case 1:
('<a href="#" onclick="amIuptodate()" title="Versionscheck">' + (adminflag ? 'A/' : '') + version + '</a>&nbsp;&nbsp;')
textbox.value = text + '\n';
: '') +
break;
case 2:
textbox.value += '\n' + text;
break;
case 3:
textbox.value = text + '\n' + textbox.value;
break;
}
textbox.focus();
}


function insertTagsWrapper(tagOpen, tagClose, sampleText, subj) {
(!isEdit ?
if (subj > '') {
('<input type="checkbox" id="reloadme" name="reloadme" onchange="setReload()" title="Seite alle ' + (timeout/1000) + ' s neu laden?"></input>&nbsp;&nbsp;')
if (summary.value > '')
: '&nbsp;') +
summary.value += ', ';


summary.value += subj;
'<a href="' + intfuncstub + '?title=Special%3APrefixindex&prefix=' + user +
}
'&namespace=2" target="' + qbtarget + '" title="Meine Seiten im Benutzernamensraum">' +
mw.toolbar.insertTags(untagEscape(tagOpen), untagEscape(tagClose), untagEscape(sampleText));
(user.split(' ')[0].length < 10) ? user.split(' ')[0] : 'MyPages' +
}
'</a>' +


// Krimskrams
(userbrowser !== "Standard" ?
function isEven(myNumber) {
('&nbsp;&nbsp;<a href="#" onclick="badBrowser()" title="Browser nicht unterstützt">' +
return (myNumber % 2 === 0);
userbrowser.charAt(0) + userbrowser.charAt(1) + '!</a>')
}
: '') + '</div>';
function isOdd(myNumber) {
}
return (!isEven(myNumber));
Quickbar += '<div style="font-size:' + qbfontsize + '%;">' + xxx + '</div></div>';
}
function LeadingZero(x) {
return (x >= 10 || x < 0 ? '' : '0') + x;
}
function hasRight(right) {
var specialrights = false;
var userrights = mw.config.get('wgUserGroups');
if (typeof userrights !== 'object')
return specialrights;


if (scrpt > '') {
if (typeof userrights[0] !== 'string')
return specialrights;
Quickbar += '<script> function _doopt (was) { switch (was) {' + scrpt + '};}<\/script>';
scrpt='';
}
// $( 'body' ).append( $.parseHTML( Quickbar ), keepScripts = true );
$( 'body' ).append( Quickbar );


for (i = 0; i < userrights.length; i++)
//
if (userrights[i] === right)
// ab hier functions
specialrights = true;
//


return specialrights;
function w (was,lurl,linktext,targt,title) {
}
if (!title) title=linktext;
function quickEscape(text, esctype) {
if (!zeigehilfe) title='';
// esctype = 1 -> normal umlaut escapes
if (!dropdown) {
// esctype = 2 -> wikisort umlaut escapes
switch (was) {
text = text.replace(/[ÀÁÂÃÅĀĂĄǍǞǠǺȀȂȦȺḀẠẢẤẦẨẪẬẮẰẲẴẶ]/g, 'A').replace(/[àáâãåāăąǎǟǡǻȁȃȧⱥḁạảấầẩẫậắằẳẵặẚ]/g, 'a')
case 0 : xxx += lurl;break;
.replace(/[ÆǢǼ]/g, 'Ae').replace(/[æǣǽ]/g, 'ae')
case 1 : xxx += '<a href="'+lurl+'" target="'+targt+'" title="'+title+'">'+linktext+'</a>&nbsp; ';break;
.replace(/[ƁƂɃḂḄḆ]/g, 'B').replace(/[ƀƃḃḅḇ]/g, 'b')
case 2 : xxx += '<a href="#" onclick="newtext('+ lurl +')" title="'+title+'">'+linktext+'</a>&nbsp; ';break;
.replace(/[ÇĆĈĊČƇȻḈ]/g, 'C').replace(/[çćĉċčƈȼḉ]/g, 'c')
case 3 : xxx += '<a href="#" onclick="insertTagsWrapper('+ lurl +')" title="'+title+'">'+linktext+'</a>&nbsp; ';break;
.replace(/[ÐĎĐƉƊƋḊḌḎḐḒ]/g, 'D').replace(/[ðďđƌȡḋḍḏḑḓ]/g, 'd')
case 4 : xxx += '<a href="#" onclick="'+ lurl +'" title="'+title+'">'+linktext+'</a>&nbsp; ';break;
.replace(/ȸ/g, 'db')
}
.replace(/[DŽDžDZDz]/g, 'Dz').replace(/[dždz]/g, 'dz')
} //if
.replace(/[ÈÉÊËĒĔĖĘĚƎƐȄȆȨɆḔḖḘḚḜẸẺẼẾỀỂỄỆ]/g, 'E').replace(/[èéêëēĕėęěǝȅȇȩɇḕḗḙḛḝẹẻẽếềểễệ]/g, 'e')
else //todo: Hilfe bei Dropdowns. Benutzt die überhaupt jemand????
.replace(/[ƑḞ]/g, 'F').replace(/[ƒḟ]/g, 'f')
{
.replace(/[ĜĞĠĢƓƔǤǦǴḠ]/g, 'G').replace(/[ĝğġģǥǧǵḡ]/g, 'g')
var ltext='__________'.substr(1,ind)+linktext;
.replace(/[ĤĦȞⱧⱵḢḤḦḨḪ]/g, 'H').replace(/[ĥħȟⱨⱶḣḥḧḩḫẖ]/g, 'h')
switch (was) {
.replace(/Ƕ/g, 'Hv').replace(/ƕ/g, 'hv')
case 0 : if (lurl==br) { xxx = xxx+'<option>'+linktext+'</option>';ind=2; }
.replace(/[ÌÍÎÏĨĪĬĮİƖƗǏȈȊḬḮỈỊ]/g, 'I').replace(/[ìíîïĩīĭįıǐȉȋḭḯỉị]/g, 'i')
else
.replace(/IJ/g, 'Ij').replace(/ij/g, 'ij')
if (lurl==trenner) newdropdown(linktext);
.replace(/[ĴǰɈ]/g, 'J').replace(/[ĵȷɉ]/g, 'j')
break;
.replace(/[ĶƘǨⱩḰḲḴ]/g, 'K').replace(/[ķĸƙǩⱪḱḳḵ]/g, 'k')
case 1 : xxx += '<option value="1|'+lurl+'">'+ltext+'</option>';break;
.replace(/[ĹĻĽĿŁȽⱠⱢḶḸḺḼ]/g, 'L').replace(/[ĺļľŀłƚƛȴⱡḷḹḻḽ]/g, 'l')
case 2 : xxx += '<option value="2|'+scrptn+'">'+ltext+'</option>';
.replace(/[LJLj]/g, 'Lj').replace(/lj/g, 'lg')
scrpt=scrpt+'case '+scrptn+':newtext('+lurl+');break;';scrptn++;break;
.replace(/[ḾṀṂ]/g, 'M').replace(/[ḿṁṃ]/g, 'm')
case 3 : xxx += '<option value="3|'+scrptn+'">'+ltext+'</option>';
.replace(/[ÑŃŅŇŊƝǸȠṄṆṈṊ]/g, 'N').replace(/[ñńņňʼnŋƞǹȵṅṇṉṋ]/g, 'n')
scrpt=scrpt+'case '+scrptn+':insertTagsWrapper('+lurl+');break;';scrptn++;break;
.replace(/[NJNj]/g, 'Nj').replace(/nj/g, 'nj')
case 4 : xxx += '<option value="4|'+scrptn+'">'+ltext+'</option>';
.replace(/[ÒÓÔÕØŌŎŐƆƟƠǑǪǬǾȌȎȪȬȮȰṌṎṐṒỌỎỐỒỔỖỘỚỜỞỠỢ]/g, 'O').replace(/[òóôõøōŏőơǒǫǭǿȍȏȫȭȯȱṍṏṑṓọỏốồổỗộớờởỡợ]/g, 'o')
scrpt=scrpt+'case '+scrptn+':'+lurl+';break;';scrptn++;break;
.replace(/Œ/g, 'Oe').replace(/œ/g, 'oe')
} //switch
.replace(/Ƣ/g, 'Oi').replace(/ƣ/g, 'oi')
} //else
.replace(/[ƤⱣṔṖ]/g, 'P').replace(/[ƥṕṗ]/g, 'p')
} //w
.replace(/Ɋ/g, 'Q').replace(/ɋ/g, 'q')
.replace(/ȹ/g, 'qp')
.replace(/[ŔŖŘȐȒɌⱤṘṚṜṞ]/g, 'R').replace(/[ŕŗřȑȓɍṙṛṝṟ]/g, 'r')
.replace(/[ŚŜŞŠƩȘṠṢṤṦṨ]/g, 'S').replace(/[śŝşšſșȿṡṣṥṧṩẛ]/g, 's')
.replace(/ß/g, 'ss')
.replace(/[ŢŤŦƬƮȚȾṪṬṮṰ]/g, 'T').replace(/[ţťŧƫƭțȶⱦṫṭṯṱẗ]/g, 't')
.replace(/Þ/g, 'Th').replace(/þ/g, 'th')
.replace(/[ÙÚÛŨŪŬŮŰŲƯǓǕǗǙǛȔȖɄṲṴṶṸṺỤỦỨỪỬỮỰ]/g, 'U').replace(/[ùúûũūŭůűųưǔǖǘǚǜȕȗṳṵṷṹṻụủứừửữự]/g, 'u')
.replace(/[ƲṼṾ]/g, 'V').replace(/[ⱴṽṿ]/g, 'v')
.replace(/[ŴǷẀẂẄẆẈ]/g, 'W').replace(/[ŵƿẁẃẅẇẉẘ]/g, 'w')
.replace(/[ẊẌ]/g, 'X').replace(/[ẋẍ]/g, 'x')
.replace(/[ÝŸŶƳȲɎẎỲỴỶỸ]/g, 'Y').replace(/[ýÿŷƴȳɏẏỳỵỷỹẙ]/g, 'y')
.replace(/[ŹŻŽƵȤⱫẐẒẔ]/g, 'Z').replace(/[źżžƶȥɀⱬẑẓẕ]/g, 'z');


if (esctype === 1)
function dodropdown (aktion) {
text = text.replace(/Ä/g, 'Ae').replace(/ä/g, 'ae')
var zutun = aktion.split('|');
.replace(/Ö/g, 'Oe').replace(/ö/g, 'oe')
var was = Number(zutun[0]);
.replace(/Ü/g, 'Ue').replace(/ü/g, 'ue')
var wie = zutun[1];
.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;
switch (was) {
}
case 1 : window.open (wie); break;
function tagEscape(text) {
case 2 : _doopt (Number(wie)); break;
return text.replace(/'/g, '%27')
case 3 : _doopt (Number(wie)); break;
.replace(/"/g, '%22');
case 4 : _doopt (Number(wie)); break;
}
} //switch
function untagEscape(text) {
} //dodropdown
return text.replace(/%27/g, '\'')

.replace(/%22/g, '"');
function newdropdown (oname) {
}
closedropdown();
function spaceEscape(text) {
xxx += '<select size=1 onchange="dodropdown(this.value);" style="width:135px;font-size:9px;">';
return text.replace(/ /g, '+')
if (oname > '') { xxx += '<option>'+oname+'</option>'; }
.replace(/_/g, '+');
indropdown = true;
}
ind=2;
// helper functions for getting API timestamp
}
function getAPItimestamp(dateobject) {

return (dateobject.getFullYear() * 10000000000) + ((dateobject.getMonth() + 1) * 100000000) + (dateobject.getDate() * 1000000) + (dateobject.getHours() * 10000) + (dateobject.getMinutes() * 100);
function closedropdown () {
}
if (indropdown) xxx += '</select>';
function getFutureDate() {
indropdown = false;
var dateobject = new Date();
}
// adding 3 hours to dateobject

dateobject.setTime(dateobject.getTime() + (3 * 3600 * 1000));
function newtext (subj,text,wo)
return (getAPItimestamp(dateobject));
{ //wo=1 : Text austauschen
}
//wo=2 : Text am Ende anhängen
function getPastDate() {
//wo=3 : Text vorne Einfügen
var dateobject = new Date();

// subtracting 3 days from dateobject
if (subj > "") {
dateobject.setTime(dateobject.getTime() - (3 * 24 * 3600 * 1000));
if (summary.value > "") summary.value += ", ";
return (getAPItimestamp(dateobject));
summary.value += subj;
}
}
// </nowiki>

/*
switch (wo) {
* 3xImport von [[Benutzer:Revvar]]
case 1 : textbox.value = text + '\n'; break;
* aus [[Benutzer:Revvar/wikibits.js]] und [[Benutzer:Revvar/monobook.js]]
case 2 : textbox.value += '\n' + text; break;
case 3 : textbox.value = text + '\n' +textbox.value; break;
}
textbox.focus();
}

function insertTagsWrapper(tagOpen, tagClose, sampleText, subj) {
if (subj > "") {
if (summary.value > "") summary.value += ", ";
summary.value += subj;
}
mw.toolbar.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 hasRight(right) {
var specialrights = false;
var userrights = mw.config.get('wgUserGroups');
if (typeof userrights !== 'object') return(specialrights);
if (typeof userrights[0] !== 'string') return(specialrights);
for (i=0;i<userrights.length;i++) {
if (userrights[i] === right) specialrights = true;
}
return(specialrights);
}
function quickEscape(text, esctype)
{
// esctype = 1 -> normal umlaut escapes
// esctype = 2 -> wikisort umlaut escapes

text = text.replace(/[ÀÁÂÃÅĀĂĄǍǞǠǺȀȂȦȺḀẠẢẤẦẨẪẬẮẰẲẴẶ]/g, 'A').replace(/[àáâãåāăąǎǟǡǻȁȃȧⱥḁạảấầẩẫậắằẳẵặẚ]/g, 'a')
.replace(/[ÆǢǼ]/g, 'Ae').replace(/[æǣǽ]/g, 'ae')
.replace(/[ƁƂɃḂḄḆ]/g, 'B').replace(/[ƀƃḃḅḇ]/g, 'b')
.replace(/[ÇĆĈĊČƇȻḈ]/g, 'C').replace(/[çćĉċčƈȼḉ]/g, 'c')
.replace(/[ÐĎĐƉƊƋḊḌḎḐḒ]/g, 'D').replace(/[ðďđƌȡḋḍḏḑḓ]/g, 'd')
.replace(/ȸ/g, 'db')
.replace(/[DŽDžDZDz]/g, 'Dz').replace(/[dždz]/g, 'dz')
.replace(/[ÈÉÊËĒĔĖĘĚƎƐȄȆȨɆḔḖḘḚḜẸẺẼẾỀỂỄỆ]/g, 'E').replace(/[èéêëēĕėęěǝȅȇȩɇḕḗḙḛḝẹẻẽếềểễệ]/g, 'e')
.replace(/[ƑḞ]/g, 'F').replace(/[ƒḟ]/g, 'f')
.replace(/[ĜĞĠĢƓƔǤǦǴḠ]/g, 'G').replace(/[ĝğġģǥǧǵḡ]/g, 'g')
.replace(/[ĤĦȞⱧⱵḢḤḦḨḪ]/g, 'H').replace(/[ĥħȟⱨⱶḣḥḧḩḫẖ]/g, 'h')
.replace(/Ƕ/g, 'Hv').replace(/ƕ/g, 'hv')
.replace(/[ÌÍÎÏĨĪĬĮİƖƗǏȈȊḬḮỈỊ]/g, 'I').replace(/[ìíîïĩīĭįıǐȉȋḭḯỉị]/g, 'i')
.replace(/IJ/g, 'Ij').replace(/ij/g, 'ij')
.replace(/[ĴǰɈ]/g, 'J').replace(/[ĵȷɉ]/g, 'j')
.replace(/[ĶƘǨⱩḰḲḴ]/g, 'K').replace(/[ķĸƙǩⱪḱḳḵ]/g, 'k')
.replace(/[ĹĻĽĿŁȽⱠⱢḶḸḺḼ]/g, 'L').replace(/[ĺļľŀłƚƛȴⱡḷḹḻḽ]/g, 'l')
.replace(/[LJLj]/g, 'Lj').replace(/lj/g, 'lg')
.replace(/[ḾṀṂ]/g, 'M').replace(/[ḿṁṃ]/g, 'm')
.replace(/[ÑŃŅŇŊƝǸȠṄṆṈṊ]/g, 'N').replace(/[ñńņňʼnŋƞǹȵṅṇṉṋ]/g, 'n')
.replace(/[NJNj]/g, 'Nj').replace(/nj/g, 'nj')
.replace(/[ÒÓÔÕØŌŎŐƆƟƠǑǪǬǾȌȎȪȬȮȰṌṎṐṒỌỎỐỒỔỖỘỚỜỞỠỢ]/g, 'O').replace(/[òóôõøōŏőơǒǫǭǿȍȏȫȭȯȱṍṏṑṓọỏốồổỗộớờởỡợ]/g, 'o')
.replace(/Œ/g, 'Oe').replace(/œ/g, 'oe')
.replace(/Ƣ/g, 'Oi').replace(/ƣ/g, 'oi')
.replace(/[ƤⱣṔṖ]/g, 'P').replace(/[ƥṕṗ]/g, 'p')
.replace(/Ɋ/g, 'Q').replace(/ɋ/g, 'q')
.replace(/ȹ/g, 'qp')
.replace(/[ŔŖŘȐȒɌⱤṘṚṜṞ]/g, 'R').replace(/[ŕŗřȑȓɍṙṛṝṟ]/g, 'r')
.replace(/[ŚŜŞŠƩȘṠṢṤṦṨ]/g, 'S').replace(/[śŝşšſșȿṡṣṥṧṩẛ]/g, 's')
.replace(/ß/g, 'ss')
.replace(/[ŢŤŦƬƮȚȾṪṬṮṰ]/g, 'T').replace(/[ţťŧƫƭțȶⱦṫṭṯṱẗ]/g, 't')
.replace(/Þ/g, 'Th').replace(/þ/g, 'th')
.replace(/[ÙÚÛŨŪŬŮŰŲƯǓǕǗǙǛȔȖɄṲṴṶṸṺỤỦỨỪỬỮỰ]/g, 'U').replace(/[ùúûũūŭůűųưǔǖǘǚǜȕȗṳṵṷṹṻụủứừửữự]/g, 'u')
.replace(/[ƲṼṾ]/g, 'V').replace(/[ⱴṽṿ]/g, 'v')
.replace(/[ŴǷẀẂẄẆẈ]/g, 'W').replace(/[ŵƿẁẃẅẇẉẘ]/g, 'w')
.replace(/[ẊẌ]/g, 'X').replace(/[ẋẍ]/g, 'x')
.replace(/[ÝŸŶƳȲɎẎỲỴỶỸ]/g, 'Y').replace(/[ýÿŷƴȳɏẏỳỵỷỹẙ]/g, 'y')
.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);
}

// functions for getting API timestamp
function getAPItimestamp(dateobject) {
return (dateobject.getFullYear() * 10000000000) + ((dateobject.getMonth() + 1) * 100000000) + (dateobject.getDate() * 1000000) + (dateobject.getHours() * 10000) + (dateobject.getMinutes() * 100);
}
function getFutureDate() {
var dateobject = new Date();
// adding 3 hours to dateobject
dateobject.setTime(dateobject.getTime() + (3 * 3600 * 1000));
return (getAPItimestamp(dateobject));
}
function getPastDate() {
var dateobject = new Date();
// subtracting 3 days from dateobject
dateobject.setTime(dateobject.getTime() - (3 * 24 * 3600 * 1000));
return (getAPItimestamp(dateobject));
}

// Funktion: importPage()
// zum Einbinden der Module
function importPage(seite, lang) { // all languages support
var unameprefix = 'User:'; // international name, works in all wikipedias
lang = lang || cLang;

/* create import url */
if ( mw.config.get( 'wgServer' ).indexOf('https://') === 0 )
import_url = 'https://secure.wikimedia.org/wikipedia/' + lang + sPath + '/index.php?title=' + unameprefix + seite + '&action=raw&ctype=text/javascript&smaxage=0' ;
else
import_url = '//' + lang + '.wikipedia.org' + sPath + '/index.php?title=' + unameprefix + seite + '&action=raw&ctype=text/javascript&smaxage=0' ;

mw.loader.load( import_url );

return false;
}

/*
* 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
*/
*/
/**
@description Imports a user javascript page from any Wikipedia project into the actual document.
@version 0.1.3
@date 2007/03/22
@author: based on function importPage from [[:de:User:PDD]]s monobook.js, extended by [[:de:User:Revvar]]
@revision 2. Sep. 2015
@param page Name of the user page without the "user:" prefix and function importJSL without the ".js" appendix
@param lang (optional) Language code of the corresponding wikipedia project. Default is the German project.
@return true on success, false otherwise
**/
// Helper-Function: zum Einbinden der Module <nowiki>
function importPage(page, lang) { // all languages support
try {
/* check the parameters and set defaults */
if (!page)
throw Error('importPage: Missing parameter page.');


lang = lang || 'de'; // cLang
function importJavascriptL(page, lang)
/* create import url */
{
import_url = '//' + lang + '.wikipedia.org' + sPath + '/index.php?title=User:' + page +
try {
'&action=raw&ctype=text/javascript&maxage=86400&smaxage=60&bcache=1&debug=' + debugme;
/* check the parameters and set defaults */
mw.loader.load(import_url, 'text/javascript');
if(!page) throw("importJavascriptL: Missing parameter page.");
return true;
lang = lang || cLang;
} catch (e) {

alert(e.message);
/* create import url */
return false;
if ( mw.config.get( 'wgServer' ).indexOf('https://') === 0 )
}
import_url = 'https://secure.wikimedia.org/wikipedia/' + lang + sPath + '/index.php?title=User:' + page + '.js&action=raw&ctype=text/javascript&smaxage=0' ;
}
else
// Helper-Function
import_url = '//' + lang + '.wikipedia.org' + sPath + '/index.php?title=User:' + page + '.js&action=raw&ctype=text/javascript&smaxage=0' ;
window.importJSL = function (page, lang) {

return importPage(page + '.js', lang);
mw.loader.load( import_url );
};

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.");
lang = lang || cLang;

/* create import url */
import_url = '//' + lang + '.wikipedia.org' + sPath + '/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 */
import_url = 'http://toolserver.org/' + 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) {
@description Imports a user css page from any Wikipedia project into the actual document.
alert(e.message);
@version 0.1.1
return;
@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
**/
// Helper-Function
function importCSSL(page, lang) {
try {
/* check the parameters and set defaults */
if (!page)
throw Error('importCSSL: Missing parameter page.');


lang = lang || cLang;
/* create import url */
import_url = '//' + lang + '.wikipedia.org' + sPath + '/index.php?title=User:' + page +
'.css&action=raw&ctype=text/css&smaxage=0&debug=' + debugme;
/* import page */
mw.loader.load(import_url, 'text/css');
return true;
} catch (e) {
alert(e.message);
return false;
}
}


// ***** FOOT-Block *****
// ***** FOOT-Block *****
// </nowiki> <- nicht löschen!!!
// </nowiki> <- nicht löschen!!!


// ausgelagerte obligatorische Funktionen
// ausgelagerte obligatorische Funktionen
importJavascriptL('PDD/supportFuncs','de'); // [[Benutzer:PDD/supportFuncs.js]]
importJSL('PDD/supportFuncs'); // [[Benutzer:PDD/supportFuncs.js]]
importJavascriptL('PDD/helperFunctions','de'); // [[Benutzer:PDD/helperFunctions.js]]
importJSL(dev + '/helperFunctions'); // [[Benutzer:PDD/helperFunctions.js]]
importJavascriptL('PDD/eintragen','de'); // [[Benutzer:PDD/eintragen.js]]
importJSL(dev + '/eintragen'); // [[Benutzer:PDD/eintragen.js]]
importJavascriptL('PDD/alertOnChanges','de'); // [[Benutzer:PDD/alertOnChanges.js]]
// importJSL('PDD/alertOnChanges'); // [[Benutzer:PDD/alertOnChanges.js]]


// obligatorisch nur für editpages
// obligatorisch nur für editpages
if (isEdit) {
if (isEdit) {
importJavascriptL('PDD/wpTextReplace','de'); // [[Benutzer:PDD/wpTextReplace.js]]
importJSL('PDD/wpTextReplace'); // [[Benutzer:PDD/wpTextReplace.js]]
importJavascriptL('BLueFiSH.as/JS/replaceQuoteSigns','de'); // [[Benutzer:BLueFiSH.as/JS/replaceQuoteSigns.js]]
importJSL('BLueFiSH.as/JS/replaceQuoteSigns'); // [[Benutzer:BLueFiSH.as/JS/replaceQuoteSigns.js]]
importJavascriptL('BLueFiSH.as/JS/markup','de'); // [[Benutzer:BLueFiSH.as/JS/markup.js]]
importJSL('BLueFiSH.as/JS/markup'); // [[Benutzer:BLueFiSH.as/JS/markup.js]]
importJavascriptL('PDD/convertEntities','de'); // [[Benutzer:PDD/convertEntities.js]]
importJSL('PDD/convertEntities'); // [[Benutzer:PDD/convertEntities.js]]
importJavascriptL('Euku/persDaten','de'); // [[Benutzer:Euku/persDaten.js]]
importJSL('Euku/persDaten'); // [[Benutzer:Euku/persDaten.js]]
}


// Signierfunktionen
// ausgelagerte optionale Funktionen (Autoload)
if (!isArticle) {
if (signing)
importJSL('Perhelion/signing');
// [[Benutzer:Perhelion/signing.js]]
if (unsigning)
importJSL('Lustiger_seth/unsigned');
// [[Benutzer:Lustiger seth/unsigned.js]]
}
// extended search & replace feature
if (searchbox)
importJSL('Zocky/SearchBox', 'en');
// [[:en:User:Zocky/SearchBox.js]]


// coordinates: Generierung der Koordinaten-Vorlage
// Revert/Loglink-Funktionen: möglichst früh einbinden
if (coordinates)
// Revert godmode-light
importJSL('Dschwen/coordinates');
if (godmodelight && !adminflag && !editorflag && !isEdit && !(isSpecial && !isContrib)) {
importJavascriptL('PDD/godmode-light','de'); // [[Benutzer:PDD/godmode-light.js]]
// [[Benutzer:Dschwen/coordinates.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]]
// Statistik mwArticleStatistics
if (addstatslink && !isSpecial) importJavascriptL('°/mwArticleStatistics','de'); // [[Benutzer:°/mwArticleStatistics.js]]


// ausgelagerte optionale Funktionen (Autoload)
// 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 (bklcheck) importJavascriptL('Schnark/js/bkl-check','de'); // [[Benutzer:Schnark/js/bkl-check.js]]
if (sperrstatus) importJavascriptL('Stefan/Sperrstatus','de'); // [[Benutzer:Stefan/Sperrstatus.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('Perhelion/signing','de'); // [[Benutzer:Perhelion/signing.js]]
if (unsigning) importJavascriptL('Lustiger_seth/unsigned','de'); // [[Benutzer:Lustiger seth/unsigned.js]]
}


// Skriptsammlung Fliegelflagel, [[Benutzer:Schnark/js/fliegelflagel]]
// extended search & replace feature
if (fliegelflagel) {
if (isEdit && searchbox) importJavascriptL('Zocky/SearchBox','en'); // [[:en:User:Zocky/SearchBox.js]]
(function (module) {
if (mw.loader.getState(module))
mw.loader.using(module).done(function () {
((mw.libs.ve.targetLoader && mw.libs.ve.targetLoader.addPlugin) || mw.libs.ve.addPlugin)(function () {
var ve = $.Deferred();
mw.hook('userjs.schnark-fliegelflagel.ve').fire(ve);
return ve.promise();
});
});


}('ext.visualEditor.desktopArticleTarget.init'));
// Portal- und Redaktionshinweis
mw.hook('userjs.schnark-fliegelflagel.userdefine').fire({
if (hinweis) importJavascriptL('DerHexer/hinweise','de'); // [[Benutzer:DerHexer/hinweise.js]]
version: 1.1,
profile: undefined,
additional: {
paneMarker: {
scripts: "[[mw:User:PerfektesChaos/js/paneMarker/r.js]]",
title: "paneMarker@PerfektesChaos",
description: "Beim Editieren einer Seite farbigen Tabulator-Icon anzeigen",
docpage: "//de.wikipedia.org/wiki/User:PerfektesChaos/js/paneMarker",
category: "edit",
status: "stable",
defaultEnabled: 4
}
},
config: {
}
});
// importJSL('Schnark/js/fliegelflagel.js/define');
importJSL(dev + '/js/fliegelflagel-define');
importJSL('Schnark/js/fliegelflagel.js/load');
}


// Revert/Loglink-Funktionen: möglichst früh einbinden
// Kackbalken-Script
// Revert godmode-light
if (irrenhaus) {
if (godmodelight && !adminflag && !editorflag && !isEdit && !(isSpecial && !isContrib))
mw.user.options.set('userjs-schnark-kackbalken-irr', '1');
importJavascriptL('Schnark/js/kackbalken','de'); // [[Benutzer:Schnark/js/kackbalken.js]]
importJSL('PDD/godmode-light'); // [[Benutzer:PDD/godmode-light.js]]
}


// Revert addEditAndRevertLinks
// Syntax highlighter
if (!(!aerhistory && isHistory) && !isEdit && (editlinkoldversion || revertwithreason))
if (js_highlight) importJavascriptL('Olliminatore/shCore','en'); // [[:en:User:Olliminatore/shCore.js]]
importJSL('PDD/addEditAndRevertLinks'); // [[Benutzer:PDD/addEditAndRevertLinks.js]]


// LogLinks addLogsLink
// openstreetmap: OpenStreetMap bei Georeferenzen
if (openstreetmap && !isSpecial)
if (addlogslink && !isSpecial)
importJSL('PDD/addLogsLink');
importJavascriptL('Magnus_Manske/osm','de'); // [[Benutzer:Magnus Manske/osm.js]]
// [[Benutzer:PDD/addLogsLink.js]]
// Statistik mwArticleStatistics
if (addstatslink && !isSpecial)
importJSL('°/mwArticleStatistics', 'de');
// [[Benutzer:°/mwArticleStatistics.js]]


// jetzt alles andere, was optional ist
// coordinates: Generierung der Koordinaten-Vorlage
if (!isSpecial && (addeditintro || addpurge))
if (coordinates && isEdit) importJavascriptL('Dschwen/coordinates','de'); // [[Benutzer:Dschwen/coordinates.js]]
importJSL('PDD/modifyCA');
// [[Benutzer:PDD/modifyCA.js]]
// changeBeschriftungen *nach* modifyCA.js (!)
if (beschriftungen)
importJSL('PDD/changeBeschriftungen');
// [[Benutzer:PDD/changeBeschriftungen.js]]
if (bklcheck && !fliegelflagel)
importJSL('Schnark/js/bkl-check', 'de');
// [[Benutzer:Schnark/js/bkl-check.js]]
if (sperrstatus)
importJSL('Stefan/Sperrstatus');
// [[Benutzer:Stefan/Sperrstatus.js]]
if (rechtschreibpruefung && !isSpecial)
// can't load with RescoureLoader
importScript('MediaWiki:Gadget-Rechtschreibpruefung.js');


if (ippvandalmark && !isEdit)
// showreftoggle
importPage('APPER/IP-Patrol/js');
if (reftoggle && !isSpecial)
// [[Benutzer:APPER/IP-Patrol/js]]
importJavascriptL('Malte_Schierholz/reftoggle','de'); // [[Benutzer:Malte Schierholz/reftoggle.js]]
if (showredundantlinks && !isSpecial)
importJSL('PDD/showRedundantLinks');
// [[Benutzer:PDD/showRedundantLinks.js]]


// Portal- und Redaktionshinweis
// setGallery
if (hinweis)
if (newgallery && !isSpecial)
importJSL('DerHexer/hinweise');
importJavascriptL('Olliminatore/newgallery','de'); // [[Benutzer:Olliminatore/newgallery.js]]
// [[Benutzer:DerHexer/hinweise.js]]


// showreftoggle
// quickedit
if (reftoggle && !isSpecial)
if (qeEnabled) importJavascriptL('ASM/quickedit','de'); // [[Benutzer:ASM/quickedit.js]]
importJSL('Malte_Schierholz/reftoggle');
// [[Benutzer:Malte Schierholz/reftoggle.js]]


// quickedit
// RIPE tooltips
if (qeEnabled)
if (ripe && !isEdit) importJavascriptL('PDD/tooltips','de'); // [[Benutzer:PDD/tooltips.js]]
importJSL('ASM/quickedit');
// [[Benutzer:ASM/quickedit.js]]


// RIPE tooltips
// adddelreason
if (adddelreason && adminflag)
if (ripe && !isEdit)
importJSL('PDD/tooltips');
importJavascriptL('P.Copp/scripts/adddeletereason','de'); // [[Benutzer:P.Copp/scripts/adddeletereason.js]]
// [[Benutzer:PDD/tooltips.js]]


// adddelreason
// dellinknowcommons
if (dellinknowcommons && adminflag && isFile)
if (adddelreason && adminflag)
importJSL('P.Copp/scripts/adddeletereason');
importJavascriptL('PDD/dellink-nc','de'); // [[Benutzer:PDD/dellink-nc.js]]
// [[Benutzer:P.Copp/scripts/adddeletereason.js]]


// dellinknowcommons
// loescheimer
if (loescheimer && adminflag)
if (dellinknowcommons && adminflag && isFile)
importJSL('PDD/dellink-nc');
importJavascriptL('PDD/modifyLKs','de'); // [[Benutzer:PDD/modifyLKs.js]]
// [[Benutzer:PDD/dellink-nc.js]]


// loescheimer
// Lupin's popups
if (loescheimer && adminflag)
if (lupinpopups) importJavascriptL('Lupin/popups','en'); // [[:en:User:Lupin/popups.js]]
importJSL('PDD/modifyLKs');
// [[Benutzer:PDD/modifyLKs.js]]


// Cacycle’s diff
// Schnarks letzteredit
if (cacyclediff && (isDiff || isEdit))
if (letzteredit && isUserMainpage) importJavascriptL('Schnark/js/letzteredit','de'); // [[Benutzer:Schnark/js/letzteredit.js]]
importJSL('Cacycle/wikEdDiff', 'en');
// [[:en:User:Cacycle/wikEdDiff.js]]


// Codeispoetrys DupeCheck
// Schnarks diff
if (imgdupecheck && isFile)
if (schnarkdiff && (isDiff || isEdit || isCompare) ) importJavascriptL('Schnark/js/diff','de'); // [[Benutzer:Schnark/js/diff.js]]
importJSL('PDD/checkDupes');
// [[Benutzer:PDD/checkDupes.js]]


// P.Copp’s Diffhistory
// Cacycle's diff
if (diffhistory)
if (cacyclediff && (isDiff || isEdit) ) importJavascriptL('Cacycle/wikEdDiff','en'); // [[:en:User:Cacycle/wikEdDiff.js]]
importJSL('P.Copp/scripts/diffhistory');
// [[Benutzer:P.Copp/scripts/diffhistory.js]]


// P.Copp’s Hideduplicatecontribs
// Codeispoetrys DupeCheck
if (imgdupecheck && isFile)
if (isContrib && hideduplicatecontribs)
importJSL('PDD/hideduplicatecontribs');
importJavascriptL('PDD/checkDupes','de'); // [[Benutzer:PDD/checkDupes.js]]
// [[Benutzer:PDD/hideduplicatecontribs.js]]


// hideNsLinkSearch.js
// P.Copp's Diffhistory
if (hidenslinksearch)
if (diffhistory) importJavascriptL('P.Copp/scripts/diffhistory','de'); // [[Benutzer:P.Copp/scripts/diffhistory.js]]
importJSL('PDD/hideNsLinkSearch');
// [[Benutzer:PDD/hideNsLinkSearch.js]]


// Markierskripte ganz zum Schluss einbinden, da sie innerHTML verändern
// P.Copp's Hideduplicatecontribs
if (markerledigt)
if (isContrib && hideduplicatecontribs) importJavascriptL('PDD/hideduplicatecontribs','de'); // [[Benutzer:PDD/hideduplicatecontribs.js]]
importJSL('Euku/markErledigt');
// [[Benutzer:Euku/markErledigt.js]]


if (markadmins && action !== 'submit' && !isDiff)
// hideNsLinkSearch.js
if (!(!window.mawatchlist && isWatchlist) && !(!window.macontribs && isContrib)) {
if (hidenslinksearch) importJavascriptL('PDD/hideNsLinkSearch','de'); // [[Benutzer:PDD/hideNsLinkSearch.js]]
importJSL('PDD/markAdmins');
}
// [[Benutzer:PDD/markAdmins.js]]


if (markutf8 && !(!muwatchlist && isWatchlist) && !(!mucontribs && isContrib))
// Markierskripte ganz zum Schluss einbinden, da sie innerHTML verändern
importJSL('PDD/markUTF8');
if (markerledigt) importJavascriptL('Euku/markErledigt','de'); // [[Benutzer:Euku/markErledigt.js]]
// [[Benutzer:PDD/markUTF8.js]]


// EOF
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.

Version vom 27. August 2018, 20:35 Uhr

/**
FAQ:
	Frage:	Wie übernehme ich dieses Skript?
	Antwort:	Einfach "Quelltext betrachten", alles markieren und kopieren, dann in deine eigene
	 		monobook.js (also in [[Special:Mypage/monobook.js|Benutzer:<DeinName>/monobook.js]])
	 		oder ander Skinseite /common.js, /vector.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

	Originalskript ursprünglich gefunden bei [[:en:User:Angela]]
	bearbeitet von [[Benutzer:Maximus Rex]]
	      ""       [[Benutzer:SirJective]]
	      ""       [[Benutzer:BLueFiSH.as]]
	      ""       [[Benutzer:Littl]] (2005-09-07 und 2006-02-21)
	      ""       [[Benutzer:Schwalbe]] (2006-02-03)
	      ""       [[Benutzer:PDD]] (ab 2006-04-22)
	      ""       [[User: Perhelion]] (2015-08-30)
@Dependencies: mediawiki.util
**/
/* global $, mw, importScript */
/* eslint no-implicit-globals:0, one-var:0, vars-on-top:0,camelcase:0, no-underscore-dangle:0, no-unused-vars:0, no-use-before-define:0 */
/* jshint curly:false, eqeqeq:true, latedef:false, strict:false, undef:false, unused:false, scripturl:true */
// (PDD: note to self: version auch in alert-Funktion ändern!)
var version = '0.99q';
// 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>

// *************** SETUP Teil 1a **********************************
// systemweite Default-Optionen aus [[MediaWiki:Common.js]]
window.NavigationBarShowDefault = 0; // Navi-Leisten: alle einklappen = 0; alle ausklappen = 15 (z.B.)
var linkFA_enabled = true; // „Featured Articles“ in fremdsprachigen Wikipedias markieren?

// systemweite Default-Optionen aus [[MediaWiki:Monobook.js]]
var oldEditsectionLinks = false; // [Bearbeiten]-Links bei Abschnitten ganz nach rechts?

// *************** SETUP Teil 1b **********************************
// Parameter für Gadgets
// Gadgets müssen über [[Spezial:Einstellungen]] → Gadgets mit Ausnahme der Rechtschreibpruefung und markAdmins freigeschaltet werden

// Gadget: [[Wikipedia:Helferlein/markAdmins]] sollte  deaktiviert werden-
var markadmins = true; // Admins u.ä. besonders hervorheben?
if (markadmins) {
	window.marksubpages = true; // auch Links auf Admin-Unterseiten markieren?
	window.mawatchlist = true; // auch auf der Beobachtungsliste?
	window.macontribs = true; // auch auf den Benutzerbeiträgen?

	window.markatxt = 'A'; // Markierung für Admins
	window.markrenatxt = 'A-Ren'; // Markierung für umbenannte Admins
	window.markbureautxt = 'B'; // Markierung für Bürokraten
	window.markstewtxt = 'S'; // Markierung für Stewards
	window.markombudsmantxt = 'Omb'; // Markierung für Ombudspersonen

	window.markexadmins = true; // zusätzlich: Ex-Admins besonders hervorheben?
	window.markexatxt = 'Ex-A'; // Markierung für Ex-Admins

	window.markexbureaucrats = true; // zusätzlich: Ex-Bürokraten besonders hervorheben?
	window.markexbureautxt = 'Ex-B'; // Markierung für Ex-Bürokraten

	window.markarbcom = true; // zusätzlich: Schiedsgericht besonders hervorheben?
	window.markarbcomtxt = 'SG'; // Markierung für Schiedsgerichtler

	window.markcheckuser = true; // zusätzlich: CheckUser besonders hervorheben?
	window.markcheckusertxt = 'CU'; // Markierung für Checkuser-Berechtigte

	window.markoversight = true; // zusätzlich: Oversighter besonders hervorheben?
	window.markoversighttxt = 'OS'; // Markierung für Oversight-Berechtigte

	window.markcomadmins = true; // zusätzlich: Commons-Admins besonders hervorheben?
	window.markcomatxt = 'Com-A'; // Markierung für Commons-Admins

	window.markwdadmins = true; // zusätzlich: Wikidata-Admins besonders hervorheben?
	window.markwdatxt = 'WD-A'; // Markierung für Wikidata-Admins
}

// Gadget: popups.js (Lupin, Navpop) // mw.user.options.get('gadget-navigation-popups')
var lupinpopups = false; // Popup-Modul einbinden?
if (lupinpopups) {
	// 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]])
	var addpopupLink = true; // Link auf Popups in Messages hinzufügen?
	addpopupLink = addpopupLink ? ' (mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]])' : '';
	window.popupDelay = 1; // Popupverzögerung in s (DEFAULT: 0.5)
	window.simplePopups = false; // auf true setzen, wenn Laden im Hintergrund unerwünscht (DEFAULT: false)
	window.popupStructure = 'menus'; // Aussehen der Popups (DEFAULT: 'shortmenus')
	window.popupActionsMenu = false; // separates "actions"-Menu (DEFAULT: true)
	window.popupImages = true; // Bilder im Popup erwünscht? (DEFAULT: true)
	window.popupSubpopups = true; // Popups für Links innerhalb von Popups generieren? (DEFAULT: true)
	window.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
	window.removeTitles = false; // Originaltitel der Links nach popups verschieben? (DEFAULT: true)
	window.popupFixRedirs = true; // Links auf Redirects korrigieren? (DEFAULT: false)
	window.popupWatchRedirredPages = false; // korrigierte Seite beobachten? (DEFAULT: null)
	window.popupRedirAutoClick = 'wpSave'; // ausgeführte Aktion beim Korrigieren von Redirects (DEFAULT: 'wpDiff')
	window.popupRedlinkRemoval = true; // Rote Links entfernen? (DEFAULT: false)
	window.popupFixDabs = true; // Links auf BKLs korrigieren? (DEFAULT: false)
	window.popupWatchDisambiggedPages = false; // korrigierte Seite beobachten? (DEFAULT: null)
	window.popupLastModified = true; // Zeit seit letzter Änderung anzeigen? (DEFAULT: true)
	window.popupDiffDates = true; // Änderungsdaten bei Diffs anzeigen? (DEFAULT: true)
	window.popupOnlyArticleLinks = true; // Popups nur für Artikel-Links (DEFAULT: true)
	window.imagePopupsForImages = false; // Bildvorschau laden, wenn Mausposition über Bild? (DEFAULT: true)
	window.popupMaxWidth = 400; // Maximalbreite des Popup-Fensters (DEFAULT: 350)
	window.popupRevertSummaryPrompt = true; // Prompt zum Ändern des Revert-Kommentars? (DEFAULT: false)
	window.popupMaxPreviewSentences = 2; // Anzahl der angezeigten Sätze in der Vorschau (DEFAULT: 4)
	// <nowiki>
	// deutsche Texte für Lupin
	window.popupFixDabsSummary = 'Ersetze BKL-Seite [[%s]] durch [[%s]]' + addpopupLink;
	window.popupExtendedRevertSummary = 'Revert auf Version vom %s von Benutzer %s, oldid %s' + addpopupLink;
	window.popupRevertSummary = 'Revert auf Version %s' + addpopupLink;
	window.popupRevertToPreviousSummary = 'Revert auf Vorgängerversion der Version %s' + addpopupLink;
	window.popupQueriedRevertSummary = 'Revert auf Version $1 vom $2 von $3' + addpopupLink;
	window.popupQueriedRevertToPreviousSummary = 'Revert auf Vorgängerversion der Version $1 vom $2 von $3' + addpopupLink;
	window.popupFixRedirsSummary = 'Ersetze Redirect [[%s]] durch [[%s]]' + addpopupLink;
	window.popupRedlinkSummary = 'Entferne Link auf leere Seite [[%s]]' + addpopupLink;
	window.popupRmDabLinkSummary = 'Entferne Link auf BKL-Seite [[%s]]' + addpopupLink;
}
// </nowiki>
// Gadget: APPERs RP [[Wikipedia:Helferlein/Rechtschreibprüfung]] // alt [[Benutzer:APPER/RP/js]]
//  Das Gadget sollte hiefür deaktiviert sein!
var rechtschreibpruefung = true; //  Rechtschreibprüfung?
window.DontAutorunRP = true; // true = manuell = RP durch Anklicken; false = automatische RP
window.RPonAllPages = true; // nicht nur auf Artikelseiten?

// 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';
var rmEditButtons = [6, 7, 10]; // zu entfernende Standard-Editbuttons (0…10)
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 nvlimit = 500; // angezeigte Anzahl auf "Alte, gesichtete Seiten"
var ndlimit = 250; // angezeigte Anzahl auf "Neue Dateien"
var usedropdown = false; // keine Dropdowns gewünscht?
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 = mw.config.set('debug', false); // Debug-Modus?
var qbfontsize = 100; // Schriftgröße im QuickBar (relativ in %)

// <nowiki>
// Modul: changeBeschriftungen.js
var beschriftungen = true; // kosmetische Änderungen an der MediaWiki-Oberfläche?
if (beschriftungen)
	var markhandsoff = true, // fremde Benutzerseiten grafisch markieren?
		// Beschriftungen: personal toolbar
		cbmytalk = 'Meine Diskussion',
		cbprefs = 'Einstellungen',
		cbwatchlist = 'Beobachtungsliste',
		cbmyconts = 'Meine Beiträge',
		cblogout = 'X',
		// Beschriftungen: current article
		cbedit = 'Bearbeiten',
		cbhistory = 'Versionen',
		cbmove = 'Verschieben',
		cbwatch = 'Beobachten',
		cbunwatch = 'Ignorieren',
		// Beschriftungen: tools
		cbwhatlinkshere = 'Links a. d. Seite',
		cblinked = 'Verlinkte Änderungen',
		cbmail = 'E-Mail senden',
		cbupload = 'Datei hochladen',
		cbprint = 'Druckversion',
		cbblock = 'User sperren',
		// Beschriftungen: portlets
		cblang = 'Interwiki';

// Modul: bkl-check.js
var bklcheck = true; // BKL-Links hervorheben?

// Modul: Sperrstatus.js
var sperrstatus = true; // Sperrstatus einer Seite farblich anzeigen?

// 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?
if (editlinkoldversion)
	var editlinktxt = 'edit', // Text des Edit-Links
		revertwithreason = true, // Revert-Link mit Grund-Eingabe anzeigen?
		revlinktxt = 'rev', // Text des Revert-Links
		revlinkshowuser = true, // beim Revertieren über (Rev)-Link letzten Benutzer angeben?
		rvisminor = true, // sind Reverts mit "(rev)"-Link Minor-Changes?
		aearldefault = 'Grund: keine Verbesserung des Artikels', // Defaultgrund beim Revertieren
		aerhistory = true, // Links auch in der Versionsgeschichte?
		aearlhere = true; // Revertaktion im selben Browserfenster?

// Modul: addLogsLink.js
var addlogslink = true; // Zusatzlinks zu Spezial:Log einfügen?
if (addlogslink)
	var pagelogtext = 'Page:Log', // Text des Seitenlogbuch-Links
		userlogtext1 = 'User:Log:1', // Texte der beiden Benutzerlog-Links
		userlogtext2 = 'User:Log:2',

		addusercontriblink = true, // auf Benutzerseiten auch noch Link auf Contributions?
		usercontribtext = 'User:Contribs', // Text des Contributions-Links ("Benutzerbeiträge")
		userdeledittext = 'User:DelEdits', // Text des Links auf Deleted Edits
		userstatstext = 'User:Stats', // Text des Links auf Benutzerstatistik
		userstatstype = 'xt', // Art der Benutzerstatistik (Auswahl: xt/x/super/quick)
		usergallerytext = 'User:Gallery', // Text des Links auf Bildergalerie des Benutzers
		userstimmrechttext = 'User:Stimmrecht', // Text des Links auf Stimmrechtcheck

		adduserarticlelink = true, // auf Benutzerseiten Link auf erstellte Artikel?
		userarticletext = 'User:Articles', // Text des Links auf erstellte Artikel
		userarticletype = 'x', // verwendeter Artikelcounter (Auswahl: x)

		addbrowselink = true, // auf allen Seiten Link zum alphabetischen Browsen?
		browseuserprefix = true, // bei Nutzerseiten stattdessen alle Unterseiten des Nutzers zeigen?
		browsetext = 'Browse', // Text des Links auf Browsing-Seite

		addbrowsedellink = true, // auf allen Seiten Link zum Browsen in gelöschten Seiten?
		browsedeltext = 'BrowseDel', // Text des Links auf BrowseDel-Seite

		addiusagelink = true, // bei Bildern Link zur Bildnutzung (Commons)?
		imgusagetext = 'IMG:C-Usage'; // Text des Links auf Bildnutzung

// Modul: mwArticleStatistics.js
var addstatslink = true; // Zusatzlinks zu Statistiktool einfügen?

// Modul: modifyCA.js
var addeditintro = true; // Tab zum Editieren des Nullabschnitts (Intros) einer Seite hinzufügen?
var editintrotext = 'IntroBearbeiten'; // Beschriftung des Tabs
var addpageinfo = true; // Tab für Seiteninfo hinzufügen?
var pageinfotext = 'Info'; // Beschriftung des Tabs
var addpurge = true; // Tab zum Purgen (Servercache-Updaten) einer Seite hinzufügen?
var purgetext = 'Purge'; // Beschriftung des Tabs
var addwatchers = false; // Tab mit Link zum Watchers-Tool hinzufügen?
var watcherstext = 'ºº'; // Beschriftung des Tabs

// 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: quickedit.js
var qeEnabled = false; // QuickEdit aktivieren?
var qeEnableSection0 = false; // 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 IP-Patrol Vandalenmarkierer
var ippvandalmark = false; // IP-Patrol-Vandalenmarkierung aktivieren?

// 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?
var max_history_entries = 36; // Anzahl der angezeigten Edits (max. 36)

// Modul: signing.js
var signing = false; // automatische Unterschrift auf Diskussionsseiten?

// Modul: SearchBox.js
var searchbox = false; // erweitertes suchen/ersetzen

// </nowiki>
/** Fliegelflagel (von Schnark)
@Meta-Script: weitere Skriptsammlung, einfach zu verwenden [[Benutzer:Schnark/js/fliegelflagel]]
standardmäßig u.a. aktiv [[Benutzer:Schnark/js/letzteredit.js]] und [[Benutzer:Schnark/js/diff.js]]
 **/// <nowiki>
var fliegelflagel = mw.libs.fliegelflagel ? 0 : true; // empfehlenswert

// Modul: wikEdDiff.js (Cacycle)
var cacyclediff = false, // verbesserte Diff-Ansicht (Cacycle) einbinden? Redundant mit Schnark's Diff
	wikEdFullDiff = !cacyclediff ? 0 : false;

// weitere Module
var showredundantlinks = false; // zeigt doppelte Links an
var ripe = false; // Ripe-Tooltips?
var imgdupecheck = true; // Bilder-Duplikate anzeigen
var diffhistory = true; // bei Nachsichtungen Übersicht der ungesichteten Versionen zeigen (von P.Copp)
var hideduplicatecontribs = true; // bei Benutzerbeiträgen Checkboxen zum Filtern einblenden (von P.Copp)
var hidenslinksearch = true; // bei Weblink-Suche unnötiges Zeugs ausblenden (nach P.Copp)

// special rights options
var adddelreason = true; // Löschgrund einfügen (von P.Copp)
var dellinknowcommons = true; // Löschlink bei NowCommons-Bildern (von Revvar/Codeispoetry)
var loescheimer = true; // erleichtertes LK-Abarbeiten (von mnh)
var filter_rfdtoc_by_default = true; // Löscheimer: TOC der LK-Seite filtern?

// **************** SETUP Ende ***********************************

var user = mw.config.get('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 = mw.config.get('wgMonthNames');
var Monatekurz = mw.config.get('wgMonthNamesShort');
var Jahr = jetzt.getYear();
if (Jahr < 999)
	Jahr += 1900;

var Monat = jetzt.getMonth() + 1;
var Tag = jetzt.getDate();
var Stunde = jetzt.getHours();
var Minute = jetzt.getMinutes();
// 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;
var ndDatum = Jahr + '-' + LeadingZero(Monat) + '-' + LeadingZero(Tag);

// Lemma-Varianten (work in progress) + redundant zu addLogsLink etc.
// get page title
var pagetitle = mw.config.get('wgPageName');
var spagetitle = mw.config.get('wgTitle');
var cpn = mw.config.get('wgCanonicalSpecialPageName');
// var cns = mw.config.get('wgCanonicalNamespace');
var ns = mw.config.get('wgNamespaceNumber');
var cLang = mw.config.get('wgContentLanguage');
var sPath = mw.config.get('wgScriptPath');
var action = mw.config.get('wgAction');
var server = mw.config.get('wgServer');

// 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(' ');
var i;
if (titlesplit.length > 1) {
	personlemma = titlesplit[titlesplit.length - 1] + ',';
	for (i = 0; i < (titlesplit.length - 1); i++)
		personlemma += ' ' + titlesplit[i];
}

var import_url;
// stub for internal links
// now all links are https (secure.wikimedia.org is also deprecated since 2012)
var intlinkstub = '//' + cLang + '.wikipedia.org/wiki/';
var intfuncstub = '//' + cLang + '.wikipedia.org' + sPath + '/index.php?';
var summary = document.getElementById('wpSummary');
var textbox = document.getElementById('wpTextbox1');

/* Vector Modifications: font must be smaller */
var isVector = '';
if (mw.config.get('skin') === 'vector') {
	isVector = 'font-size:78%;'; // scaled proportional with width
	qbfontsize *= 0.84; // scale factor
}

// page type variables: namespaces
var isArticle, isUserpage, isArticleTalk, isProject, isFile, isTemplate, isHelp, isCategory, isSpecial, isUserMainpage;
switch (ns) {
	case 0:
		isArticle = true;
		break;
	case 1:
		isArticleTalk = true;
		break;
	case 2: // user & user_talk lumped together
	case 3:
		isUserpage = true;
		break;
	case 4:
		isProject = true;
		break; // Wikipedia:
	case 6:
		isFile = true;
		break;
	case 10:
		isTemplate = true;
		break;
	case 12:
		isHelp = true;
		break; // Hilfe:
	case 14:
		isCategory = true;
		break;
	case -1:
		isSpecial = true;
		break;
}
var isGeneric = (!isFile && !isCategory && !isTemplate);

// page type variables: namespace == -1
var isRestore, isContrib, isDelContrib, isWatchlist, isCompare;
if (isSpecial)
	switch (cpn) {
		case 'Undelete':
			isRestore = true;
			break;
		case 'Contributions':
			isContrib = true;
			break;
		case 'ComparePages':
			isCompare = true;
			break;
		case 'Watchlist':
			isWatchlist = true;
			break;
		case 'DeletedContributions':
			isDelContrib = true;
			break;
	}

// talk page namespace
var isTalk = (!isSpecial && isOdd(ns));

// individual page specials
var isLKpage = (isProject && (spagetitle.indexOf('Löschkandidaten') !== -1));

// userpage/name stuff, vor allem für IPs
var userPageOwner = '';
var isIPUser = false; // handelt es sich um eine IP?
// get URL parameters (used for page type variables)
var UrlParameters = {}; // FIXME deprecated in helperFunctions.js, use mw.util.getParamValue( instead

(function () { // returns UrlParameters
var para,
	readUrlParameters = location.search.substring(1, location.search.length).split('&');
for (i = 0; i < readUrlParameters.length; i++) {
	para = readUrlParameters[i].split('=');
	UrlParameters[decodeURIComponent(para[0])] = decodeURIComponent(para[1]);
}
}());

// Helper-Function
function _getUser() { // returns isIPUser, userPageOwner
	var target = mw.util.getParamValue('target');
	if (isContrib || isDelContrib) {
		if (target) {
			userPageOwner = target.split('+').join('_');
		} else {
			target = decodeURIComponent(location.href.substring(location.href.indexOf('/wiki/') + 6)).split('#')[0];
			userPageOwner = target.substring(target.indexOf('Beiträge/') + 9);
		}
	} else if (isUserpage && spagetitle === user) {
		isUserMainpage = true;
		userPageOwner = spagetitle;
	}
	if (userPageOwner > '' && mw.util.isIPAddress(userPageOwner))
		isIPUser = true;
}

// page type variables: other stuff
var isPHP = document.URL.indexOf('index.php') > 0;
var isDiff = UrlParameters.diff;
var isEdit = /^(edit|submit)$/.test(action);
var isHistory = (action === 'history');

// Admin & editor functions
var adminflag = hasRight('sysop');
var editorflag = hasRight('editor');
var dev = 'РDD3';
// 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:0; left:0; width:14.1em; z-index:10;' +
	isVector + '">',
	// optional:  opacity:0.9,
	xxx = '',
	trenner = '<hr>',
	br = '<br>',
	qbtarget = qbnewpage ? '_blank' : '_self',
	dropdown = usedropdown,
	scrpt = '',
	scrptn = 0,
	indropdown,
	ind;

/*
 * Quickbar-Zusammenbau, Teil 1:
 *
 * die Belegung der einzelnen Abschnitte
 */

function qbWPIntern() {
	w(0, trenner, 'Wikipedia', '');

	// w (1,intlinkstub+'Hilfe:MediaWiki','MW',qbtarget,'MediaWiki-Hilfe');
	// w (1,intlinkstub+'Wikipedia:Hilfe','RTFM',qbtarget,'Wikipedia-Hilfe');
	// w (1,intlinkstub+'Hilfe:Textgestaltung','TG',qbtarget,'Hilfe zur Textgestaltung');
	// w (1,intlinkstub+'Hilfe:Farben','FT',qbtarget,'Hilfe zur Farbgestaltung');
	w(1, intlinkstub + 'Wikipedia:Kurier', 'K', qbtarget, 'Kurier – Das Wikipedia-Nachrichtenblatt');
	w(1, intlinkstub + 'Wikipedia:Fragen zur Wikipedia', 'FZW', qbtarget, 'Fragen zur Wikipedia');
	w(1, intlinkstub + 'Wikipedia:Auskunft', 'AU', qbtarget, 'Auskunft');
	// w (1,intlinkstub+'Wikipedia:Autorenportal','P',qbtarget,'Autorenportal');
	w(1, intlinkstub + 'Wikipedia:Projektneuheiten', 'NEU', qbtarget, 'Projektneuheiten');
	w(1, intlinkstub + 'Wikipedia:Verbesserungsvorschläge', 'VV', qbtarget, 'Verbesserungsvorschläge');
	// w (1,intlinkstub+'Wikipedia:Tellerrand','TE',qbtarget,'Tellerrand');
	w(1, intlinkstub + 'Wikipedia:Administratoren/Anfragen', 'AAF', qbtarget, 'Administratoren/Anfragen');
	w(1, intlinkstub + 'Wikipedia:Administratoren/Notizen', 'AN', qbtarget, 'Administratoren/Notizen');
	w(1, intlinkstub + 'Wikipedia:Kandidaturen', 'AK', qbtarget, 'Kandidaturen');
	w(1, intlinkstub + 'Wikipedia:Adminwiederwahl', 'A/W', qbtarget, 'Adminwiederwahl');
	w(1, intlinkstub + 'Wikipedia:Dritte_Meinung', '3M', qbtarget, 'Dritte Meinung');
	w(1, intlinkstub + 'Wikipedia:Vermittlungsausschuss', 'VA', qbtarget, 'Vermittlungsausschuss');
	w(1, intlinkstub + 'Wikipedia:Schiedsgericht/Anfragen', 'SG/A', qbtarget, 'Schiedsgericht/Anfragen');
	// w (1,intlinkstub+'Wikipedia:Projektdiskussionen','PRD',qbtarget,'Projektdiskussionen');
	w(1, intlinkstub + 'Wikipedia:Checkuser/Anfragen', 'CU/A', qbtarget, 'Checkuser/Anfragen');
	// w (1,intlinkstub+'Wikipedia:Abkürzungen','ABK',qbtarget,'Abkürzungen');
}

function qbPatrol() {
	w(0, trenner, 'Überwachung', '');

	w(1, intfuncstub + 'title=Special:Recentchanges&hideminor=0&hideliu=1&hidebots=1&hidepatrolled=0&days=7&limit=' + rclimit, 'RCs', qbtarget, 'Letzte Änderungen');
	w(1, intlinkstub + 'Special:Contributions/newbies', 'RCNs', qbtarget, 'Beiträge neuer Benutzer');
	w(1, intfuncstub + 'title=Special:Newpages&namespace=0&limit=' + nplimit, 'NeuA', qbtarget, 'Neue Artikel');
	// w (1,intlinkstub+'Special:Newimages','NeuD',qbtarget,'Neue Dateien (Bilder)');
	w(1, intfuncstub + 'title=Special:Log&limit=' + nulimit + '&type=newusers', 'NeuB', qbtarget, 'Neue Benutzer');
	w(1, intfuncstub + 'title=Special:Listfiles&limit=' + ndlimit, 'NeuD', qbtarget, 'Neue Dateien');
	w(1, intfuncstub + 'title=Special:OldReviewedPages&limit=' + nvlimit, 'NeuE', qbtarget, 'Neue Edits in gesichteten Artikeln');
	// w (1,intfuncstub+'title=Special:ArticleFeedbackv5','NeuF',qbtarget,'Neues Feedback');
	w(1, intlinkstub + 'Wikipedia:Vandalismusmeldung', 'VM', qbtarget, 'Vandalismusmeldung');
	w(1, intlinkstub + 'Wikipedia:Oversight/Kontakt', 'OSA', qbtarget, 'Oversight-Kontakt');
	w(1, intlinkstub + 'Wikipedia:Sperrprüfung', 'SP', qbtarget, 'Sperrprüfung');
	w(1, intlinkstub + 'Wikipedia:Löschprüfung', 'LP', qbtarget, 'Löschprüfung');
	w(1, intlinkstub + 'Wikipedia:Entsperrwünsche', 'EW', qbtarget, 'Entsperrwünsche');
	w(1, intlinkstub + 'Wikipedia:Administratoren/Probleme', 'AP', qbtarget, 'Admin-Probleme');
	w(1, intlinkstub + 'Special:Log', 'Log', qbtarget, 'Logbücher');

	if (adminflag) {
		w(1, intlinkstub + 'Special:AbuseLog', 'ELog', qbtarget, 'Bearbeitungsfilter-Logbuch');
		w(1, intlinkstub + 'Wikipedia:Erkennung_offener_Proxys', 'EOP', qbtarget, 'Erkennung offener Proxys');
	}
	// w (1,'irc://irc.freenode.net/wikipedia-de','IRC',qbtarget,'IRC-Chat #wikipedia-de');
}

function qbWartung() {
	w(0, trenner, 'Wartung', '');

	// w (1,intlinkstub+'Wikipedia:Löschregeln','WP:LR',qbtarget,'Löschregeln');
	w(1, intlinkstub + 'Kategorie:Wikipedia:Schnelllöschen', 'SLK', qbtarget, 'Schnelllöschkandidaten');
	w(1, intlinkstub + 'Wikipedia:Löschkandidaten', 'LK', qbtarget, 'Löschkandidaten');
	w(1, intlinkstub + 'Wikipedia:Löschkandidaten/' + WPDatum, 'LKH', qbtarget, 'Löschkandidaten (heute)');
	// w (1,intlinkstub+'Wikipedia:Löschkandidaten/Bilder/'+WPDatum,'BildLK',qbtarget,'Löschkandidaten (Bilder)');
	// w (1,intlinkstub+'Wikipedia:WikiProjekt_Kategorien/Diskussionen/'+WPDatum2,'KatLK',qbtarget,'Löschkandidaten (Kategorien)');
	w(1, intlinkstub + 'Wikipedia:Löschkandidaten/Urheberrechtsverletzungen', 'URV', qbtarget, 'Löschkandidaten (URVs)');

	w(1, intlinkstub + 'Wikipedia:Qualitätssicherung/' + WPDatum, 'QS', qbtarget, 'Qualitätssicherung');
	w(1, intlinkstub + 'Wikipedia:Redundanz/' + WPDatum3, 'RED', qbtarget, 'Redundanz');
	w(1, intlinkstub + 'Kategorie:Wikipedia:Unverständlich', 'Wirr', qbtarget, 'Unverständlich');

	w(1, intlinkstub + 'Wikipedia:Kandidaturen von Artikeln, Listen und Portalen', 'KALP', qbtarget, 'Kandidaturen von Artikeln, Listen und Portalen');
	w(1, intlinkstub + 'Wikipedia:Kandidaten für lesenswerte Artikel', 'KLA', qbtarget, 'Kandidaten für lesenswerte Artikel');

	w(1, intlinkstub + 'Wikipedia:Review', 'RV', qbtarget, 'Review');
	w(1, intlinkstub + 'Wikipedia:Kandidaten für exzellente Bilder', 'KEB', qbtarget, 'Kandidaten für exzellente Bilder');
	// w (1,intlinkstub+'Wikipedia:Kandidaten für exzellente Aufnahmen','KEAU',qbtarget,'Kandidaten für exzellente Aufnahmen');
}

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,'IPripe');
		w(1, 'http://www.mxtoolbox.com/SuperTool.aspx?action=scan%3a' + userPageOwner, 'PScan', qbtarget, 'Portscan');
		// w (1,"http://network-tools.com/default.asp?prog=lookup&host="+userPageOwner,'IPinfo',qbtarget,'IPInfo');
		// w (1,"http://toolserver.org/~chm/whois.php?ip="+userPageOwner,'IPinfo',qbtarget,'IPInfo');
		w(1, '//tools.wmflabs.org/whois/' + userPageOwner + '/lookup', 'IPinfo', qbtarget, 'IPInfo');
		// w (1,"http://www.dnsstuff.com/tools/tracert.ch?ip="+userPageOwner,'IPtrcrt',qbtarget,'Traceroute');
		// w (1,"https://www.dan.me.uk/torcheck?ip="+userPageOwner,'TOR',qbtarget,'TOR-Node-Check');
		// w (1,"http://toolserver.org/~krimpet/torcheck.php?ip="+userPageOwner,'K-TOR',qbtarget,'Krimpets TOR-Node-Check');
		w(1, '//tools.wmflabs.org/guc/?user=' + userPageOwner + '&blocks=true&lang=de', 'IP-GUC', qbtarget, 'Global user contributions');
		// w (1,"http://toolserver.org/~vvv/rangecontribs.php?wiki=dewiki_p&user="+userPageOwner.substring(0, userPageOwner.lastIndexOf('.')),'IP-RaC',qbtarget,'IP range contributions');
		w(1, '//de.wikipedia.org' + sPath + '/api.php?action=query&list=usercontribs&format=xml&uclimit=500&ucstart=' + getFutureDate() + '&ucend=' + getPastDate() + '&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=', 'Rng', qbtarget, 'Range/Subnet Rechner');
		// w (1,"http://toolserver.org/~krimpet/rbhelper.php?db=dewiki_p&ip="+userPageOwner,'RngB?',qbtarget,'Range Block Finder');
		// w (1,"//tools.wmflabs.org/erwin85/blockfinder.php?lang=de&family=wikipedia&ip="+userPageOwner,'RngB?',qbtarget,'Range Block Finder');
		w(1, '//tools.wmflabs.org/blockcalc/index.php?lang=de', 'BCalc', qbtarget, 'Rangeblock Calculator');
		w(1, 'http://nativeforeigner.com/calc/', 'BCalcNF', qbtarget, 'Another Rangeblock Calculator');
		w(1, 'http://www.mikero.com/misc/ipcalc/?start=' + userPageOwner + '&end=' + userPageOwner, 'BCalcM', qbtarget, 'Yet another Rangeblock Calculator');
	} else {
		// w (1,"http://www.ripe.net/whois",'ripe',qbtarget,'Ripe-Lookup');
		// 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, '//tools.wmflabs.org/quentinv57-tools/tools/sulinfo.php?username=' + userPageOwner + '&showblocks=1&showlocked=1', 'GUA', qbtarget, 'Global user accounts');
		// w (1,"http://toolserver.org/~purodha/sample/dbswithuser.php?usr="+userPageOwner+"&go=Go%21&uselang=de",'GUA+',qbtarget,'Global user accounts (ausführlich)');
		w(1, '//tools.wmflabs.org/guc/?user=' + userPageOwner + '&blocks=true&lang=de', 'GUC', qbtarget, 'Global user contributions');

		if (user !== userPageOwner)
			// w (1,"http://toolserver.org/~cyroxx/familiar/familiar.php?user1="+spaceEscape(user)+"&user2="+spaceEscape(userPageOwner),'UFam',qbtarget,'Are U familiar? (cyroxx)');
			// w (1,"http://toolserver.org/~merl/familiar.php?user1="+spaceEscape(user)+"&user2="+spaceEscape(userPageOwner),'UFam',qbtarget,'Are U familiar? (Merlissimo-Backup)');
			w(1, '//tools.wmflabs.org/intersect-contribs/?project=dewiki&user1=' + spaceEscape(user) + '&user2=' + spaceEscape(userPageOwner), 'IntC', qbtarget, 'Intersect Contribs (pietrodn)');
		// w (1,"//tools.wmflabs.org/erwin85/contribs.php?lang=de&family=wikipedia&users="+spaceEscape(user)+"|"+spaceEscape(userPageOwner)+"&limit=500&submit=Submit",'ErwC',qbtarget,'Multiple Contribs (erwin85)');

	}
}

function qbToolserver() {
	w(0, trenner, 'Toolserver', '');

	qbUserTools();

	// w (1,"http://toolserver.org/~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, '//tools.wmflabs.org/xtools/adminstats/?project=de.wikipedia.org', 'AdmA', qbtarget, 'Adminaktivität (letzte 100 Tage)');
	// w (1,"http://toolserver.org/~aka/cgi-bin/revstat.cgi?period=168",'RStat',qbtarget,'Revert-Statistik (letzte Woche)');
	// w (1,"http://toolserver.org/~luxo/Geburtstag.php",'GK',qbtarget,'Wikipedia Geburtstagskalender');
	w(1, '//tools.wmflabs.org/wiki-todo/?language=de', '2Do', qbtarget, 'Wikipedia ToDo');
	// w (1,"http://toolserver.org/~aka/cgi-bin/reviewcnt.cgi",'RCt',qbtarget,'Sichtungsstatistik');

	if (isArticle) {
		// w (1,"http://stats.grok.se/de/"+WPDatum5+ptitle,'ASt',qbtarget,'Wikipedia article traffic statistics');
		w(1, 'http://stats.grok.se/de/latest90/' + ptitle, 'ASt', qbtarget, 'Wikipedia article traffic statistics');
		// w (1,"http://toolserver.org/~mzmcbride/cgi-bin/watcher.py?db=dewiki_p&titles="+pesctitle,'AWa',qbtarget,'Watcher');
		// w (1,"http://toolserver.org/~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",'ACnt',qbtarget,'Beiträge zu diesem Artikel');
		w(1, '//tools.wmflabs.org/wikihistory/wh.php?page_title=' + pesctitle + '&lang=de', 'AHst', qbtarget, 'WikiHistory (APPER)');
	}
	if (rechtschreibpruefung && !isSpecial && (isArticle || window.RPonAllPages))
		w(4, 'javascript:window.spellcheck();', 'SpellChk', '', 'Rechtschreibprüfung');

}

function qbCategoryTools() {
	if (!isCategory)
		return;

	w(0, trenner, 'Kategorie-Tools', '');

	// w (1,"http://toolserver.org/~daniel/WikiSense/CategoryIntersect.php?wikilang=de&wikifam=.wikipedia.org&basecat="+spesctitle+"&userlang=de",'K:Scan',qbtarget,'Kategorie: CatScan');

	w(1, '//tools.wmflabs.org/catscan2/quick_intersection.php?lang=de&project=wikipedia&cats=' + spesctitle + '&ns=0&depth=12&max=30000&start=0&format=html&redirects=&callback=', 'K:Scan', qbtarget, 'Kategorie: CatScan');
	w(1, '//tools.wmflabs.org/catscan2/catscan2.php?depth=3&categories=' + spesctitle + '&interface_language=de&doit=1', 'K:Scan2', qbtarget, 'Kategorie: CatScan 2.0');
	// w (1,"//tools.wmflabs.org/erwin85/categorycount.php?lang=de&family=wikipedia&namespaces=0&category="+spesctitle+"&subcats=1&d=100&submit=Submit",'K:Count',qbtarget,'Kategorie: Anzahl der Artikel');
	// w (1,"http://toolserver.org/~daniel/WikiSense/CategoryIntersect.php?wikilang=de&wikifam=.wikipedia.org&basecat="+spesctitle+"&basedeep=5&mode=rc&hours=168&onlynew=on&userlang=de&go=Scannen",'K:NeuA',qbtarget,'Kategorie: Neue Artikel');
	// w (1,"http://toolserver.org/~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.wmflabs.org/catscan2/catscan2.php?language=de&project=wikipedia&depth=5&categories=' + spesctitle + '&max_age=168&only_new=1&interface_language=de&doit=1', 'K:NeuA', qbtarget, 'Kategorie: Neue Artikel');
	w(1, '//tools.wmflabs.org/missingtopics/?language=de&project=wikipedia&article=&category=' + spesctitle + '&depth=5&wikimode=0&limitnum=1&doit=Run', 'K:Miss', qbtarget, 'Kategorie: Fehlende Artikel');
	w(1, '//tools.wmflabs.org/sighting/deep_out_of_sight.php?category=' + spesctitle + '&depth=9', 'K:NeuE', qbtarget, 'Kategorie: Nachzusichtende Artikel');
	w(1, '//tools.wmflabs.org/sighting/deep_insight.php?category=' + spesctitle + '&depth=9', 'K:UsP', qbtarget, 'Kategorie: Erstzusichtende Artikel');
}

function qbImageTools() {
	if (!isFile)
		return;

	w(0, trenner, 'Bild-Tools', '');

	w(1, '//tools.wmflabs.org/commonshelper/?interface=de&lang=de&project=wikipedia&image=' + spesctitle + '&doit=\'Text generieren\'', 'D:M2C', qbtarget, 'Datei: Move-to-commons-Assistent');
	// w (1,"http://toolserver.org/~luxo/reworkhelper/index.php?image="+pesctitle,'D:RWH',qbtarget,'Datei: Reworkhelper');

	w(1, 'http://commons.wikimedia.org/wiki/Special:Upload', 'C-Up', qbtarget, 'Commons-Upload');
	// w (1,"http://toolserver.org/~daniel/WikiSense/CommonsClash.php?wikilang=de&wikifam=.wikipedia.org&order=img_name&max=200&format=html",'C-C',qbtarget,'CommonsClash');
	w(1, '//tools.wmflabs.org/commonshelper/?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,'CopyScape');
	// w (1,"http://toolserver.org/~revvar/urv.php",'URV?',qbtarget,'URV-Suche');
	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&searchmethod=lin', '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,'Krohn');

	// w (1,"http://toolserver.org/~arnomane/cgi-bin/WP-autoreview.pl?l=de&do_typo_check=ON&Go%21=Go%21&lemma="+pesctitle,'AR',qbtarget,'AutoReview');
	// w (1,"http://toolserver.org/~timl/cgi-bin/wikilint?l=de&do_typo_check=ON&remove_century=ON&url=http://de.wikipedia.org/wiki/"+pesctitle,'WL',qbtarget,'WikiLint (Autoreviewer)');

	// w (1,"http://www.canoo.net",'Canoo',qbtarget,'Canoo');
	w(1, 'http://www.cia.gov/cia/publications/factbook/index.html', 'FactB', qbtarget, 'CIA World Factbook');
	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=' + 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) {
		var personlemma = quickEscape(this.personlemma, 1);
		w(1, 'http://dispatch.opac.d-nb.de/DB=4.1/CMD?ACT=SRCHA&IKT=8514&SRT=YOP&TRM=' + personlemma, 'DNB-GND', qbtarget, 'DNB (GND-Suche)');
		w(1, 'http://swb2.bsz-bw.de/DB=2.104/SET=2/TTL=2/CMD?ACT=SRCHA&IKT=1&TRM=' + personlemma, 'OGND-GND', qbtarget, 'OGND (GND-Suche)');
	} else {
		w(1, 'http://dnb.ddb.de/', 'DNB-GND', qbtarget, 'DNB (GND-Suche)');
		w(1, 'http://swb2.bsz-bw.de/DB=2.104/SET=2/TTL=2/LNG=DU/START_WELCOME', 'OGND-GND', qbtarget, 'OGND (GND-Suche)');
	}

	w(1, 'https://kvk.bibliothek.kit.edu/', 'KVK', qbtarget, 'Karlsruher Virtueller Katalog');
	w(1, '//tools.wmflabs.org/isbn/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://mdz10.bib-bvb.de/~ndb/ndbmaske.html",'A/NDB',qbtarget,'Allgemeine/Neue Deutsche Biographie');
	w(1, 'http://www.deutsche-biographie.de/', 'A/NDB', qbtarget, 'Allgemeine/Neue Deutsche Biographie');
	// w (1,"http://bse.sci-lib.com/",'Бсэ',qbtarget,'Большая советская энциклопедия');
	w(1, 'http://encycl.yandex.ru/dict/bse', 'Бсэ', qbtarget, 'Большая советская энциклопедия');
	w(1, 'http://wikyrillom.at', 'Вик', qbtarget, 'Wikyrilliza');
	// w (1,"http://www.mcaviglia.ch/gmap/get_coor_ext.asp?l=de",'Coord',qbtarget,'Get Coordinates');
	w(1, 'http://tools.freeside.sk/geolocator/geolocator.html', 'Coord', qbtarget, 'GeoLocator');
	w(1, 'http://hbz-da.de/wikipedia/lifo.php', 'U2W', qbtarget, 'URL-in-Wiki-Konverter');
}

function qbEditTags() {
	if (isFile || !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>');
	w(3, '\'<onlyinclude>\',\'</onlyinclude>\',\'\'', 'OIncl', '', '<onlyinclude>');
	// <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 \\u002F>\',\'\',\'\'', '<small>[refR]</small>', '', 'Referenz-Name-Wiederholung');
	// w (3,"'<ref group=\\u0022name\\u0022>','</ref>',''",'<small>[refG]</small>','','Referenz-Gruppe');
	// w (3,"'<ref group=\\u0022name\\u0022 name=\\u0022name\\u0022>','</ref>',''",'<small>[refGN]</small>','','Referenz-Gruppe-Name');

	w(3, '\'{{lang|ru|\',\'}}\',\'\'', 'ru', '', 'Russisch');
	w(3, '\'{{HeS|\',\'}}<!--x-->\',\'\'', 'HeS', '', 'Hebräisch (mit Bidi-Stopper)');

	w(3, '\'<math>\',\'</math>\',\'\'', 'Math');
	w(3, '\':<math>\\u005Cmathrm{\',\'}</math>\',\'\'', 'ChemForm');

	w(3, '\'\\n{{Kasten|1=\',\' ' + usersignature + '}}\\n\',\'\'', 'Kast', '', 'Kasten');

	// temporary
	w(3, '\'{{SortKeyName|\',\'|nl=1}}\',\'\'', 'SKN', '', 'SortKeyName');

}

function qbArticleTemps() {
	if (isFile || !isEdit)
		return;

	var personlemma = tagEscape(this.personlemma);
	var spagetitle = tagEscape(this.spagetitle);

	w(0, trenner, 'Artikelbausteine', '');

	w(3, '\'== Einzelnachweise ==\\n<references />\\n\',\'\',\'\'', 'Refs', '', '== Einzelnachweise ==');
	w(3, '\'== Literatur ==\\n\',\'\',\'\'', 'Lit', '', '== Literatur ==');
	w(3, '\'== Weblinks ==\\n\',\'\',\'\'', 'Web', '', '== Weblinks ==');

	w(3, '\'{{Commonscat}}\\n\',\'\',\'\'', 'ComC', '', 'Commonscat');

	w(3, '\'[[Kategorie:\',\']]\\n\',\'\'', 'Kat:', '', '[[Kategorie:]]');
	w(3, '\'{{DEFAULTSORT:' + quickEscape(personlemma, 2) + '}}\\n\',\'\',\'\'', 'DefSrt', '', '{{DEFAULTSORT:');
	w(3, '\'[[Benutzer:\',\']]\',\'\'', 'User:', '', '[[Benutzer:]]');
	w(3, '\'[[Wikipedia:\',\']]\',\'\'', 'WP:', '', '[[Wikipedia:]]');

	w(0, br, '', '');

	w(3, '\'* {{DNB-Portal|\',\'}}\\n\',\'\'', 'DNB-P', '', 'PND (individualisiert mit Treffern)');
	w(3, '\'{{Normdaten|TYP=p|GND=\',\'|LCCN=|NDL=|VIAF=}}\\n\',\'\'', 'ND', '', 'Normdaten (GND individualisiert)');
	// w (3,"'* {{PNDfehlt|" + refDatumlang + "|','}}\\n',''","PNDF",'','PNDfehlt (nicht individualisiert, aber mit Treffern)');
	w(3, '\'{{Normdaten|TYP=p|GND=|LCCN=|NDL=|VIAF=|GNDName=\',\'|GNDfehlt=ja|GNDCheck=' + ndDatum + '|REMARK=}}\\n\',\'\'', 'PNDF', '', 'PNDfehlt (nicht individualisiert, aber mit Treffern)');

	w(3, '\'{{Personendaten\\n|NAME=' + personlemma + '\\n|ALTERNATIVNAMEN=\\n|KURZBESCHREIBUNG=\\n|GEBURTSDATUM=\\n|GEBURTSORT=\\n|STERBEDATUM=\\n|STERBEORT=\\n}}\\n\',\'\',\'\'', 'PD', '', '{{Personendaten...');

	w(3, '\'* {{ADB|Band|SeiteStart|SeiteEnde|' + personlemma + '|Artikelautor}}\\n\',\'\',\'\'', 'ADB', '', '{{ADB...');
	w(3, '\'* {{NDB|Band|SeiteStart|SeiteEnde|' + personlemma + '|Artikelautor}}\\n\',\'\',\'\'', 'NDB', '', '{{NDB...');
	w(3, '\'* {{ÖBL|Band|SeiteStart|SeiteEnde|' + personlemma + '|Artikelautor}}\\n\',\'\',\'\'', 'ÖBL', '', '{{ÖBL...');
	w(3, '\'* {{HLS|Artikelnummer|' + personlemma + '|Autor=Artikelautor}}\\n\',\'\',\'\'', 'HLS', '', '{{HLS...');
	w(3, '\'* {{WWW-DDR|Artikelnummer|' + personlemma + '|Artikelautor}}\\n\',\'\',\'\'', 'DDR', '', '{{WWW-DDR...');
	w(3, '\'* {{BBKL|x/name_x_y|autor=|artikel=' + personlemma + '|band=|spalten=–}}\\n<!-- bitte vollständig ausfüllen -->\\n\',\'\',\'\'', 'BBKL', '', '{{BBKL...');
	// w (3,"'* {{RE|Band|SpalteStart|SpalteEnde|" + personlemma + "|Artikelautor|Wikisource-Lemma}}\\n','',''","RE",'','{{RE...');
	// w (3,"'* {{DNP|Band|SpalteStart|SpalteEnde|" + personlemma + "|Artikelautor}}\\n','',''","DNP",'','{{DNP...');

	w(3, '\'* {{IMDb|nm\',\'|' + spagetitle + '}}\\n\',\'\'', 'IMDb-n', '', '{{IMDb Name...');
	w(3, '\'* {{IMDb|tt\',\'|' + spagetitle + '}}\\n\',\'\'', 'IMDb-t', '', '{{IMDb Titel...');
	w(3, '\'* {{IMDb|co\',\'|' + spagetitle + '}}\\n\',\'\'', 'IMDb-u', '', '{{IMDb Unternehmen...');
	w(3, '\'* {{OFDb|\',\'|' + spagetitle + '}}\\n\',\'\'', 'OFDb', '', '{{OFDb...');

	w(0, br, '', '');

	w(2, '\'\',\'#REDIRECT [[]]\',1', 'Redir', '', '#REDIRECT [[]]');
	w(2, '\'+Überarbeiten\',\'{{Überarbeiten}}\\n\',3', 'Überarb', '', '{{Überarbeiten}}');
	w(2, '\'+Quelle\',\'{{Quelle}}\\n\',3', 'Quelle?', '', '{{Quelle}}');
	w(2, '\'+Lückenhaft\',\'{{Lückenhaft|Es fehlen...}}\\n\',3', 'Lücke', '', 'Lückenhaft');
	// w (2,"'+Rechtshinweis','{{Rechtshinweis}}',2","Recht");
	// w (2,"'+Gesundheitshinweis','{{Gesundheitshinweis}}',2","Gesundh.");
}

function qbMarkupTools() {
	if (isFile || !isEdit)
		return;

	w(0, trenner, 'Markup-Tools', '');

	w(4, 'addPersData();', 'AutoPD', '', 'Automatische Kategorien und Personendaten'); // extern
	w(4, 'wpTextReplace();', 'Replace', '', 'Suchen und Ersetzen');

	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 (!isFile || !isEdit)
		return;

	w(0, trenner, 'Bildbausteine', '');
	w(4, 'nowcomm();', 'NowCommons', '', 'NowCommons-Baustein setzen');

	w(2, '\'+DÜP\',\'{{Dateiüberprüfung|Quelle|Urheber|Lizenz|Freigabe|Gezeigtes Werk|1923|Besonderer Fall}}\\n\\n\',3', 'DÜP', '', 'Dateiüberprüfung (bitte überflüssige Parameter entfernen)');
}

function qbUsertalkTemps() {
	if (!isUserpage || !isTalk || !isEdit)
		return;

	var usersignature = tagEscape(this.usersignature);

	w(0, trenner, 'Benutzerbausteine', '');

	// w (3,"'{{subst:Benutzer:PDD/Greetings/Hallo|1=" + tagEscape(user) + "}} " + usersignature + "\\n','','','Willkommen!'","Hallo",'','Baustein PDD:Hallo');
	w(3, '\'{{subst:Benutzer:PDD/Greetings/HalloG|1=' + tagEscape(user) + '|2=' + usersignature + '}}\\n\',\'\',\'\',\'Willkommen!\'', 'Hallo', '', 'Baustein PDD:HalloG');
	// w (3,"'{{subst:Begrüßungsbox|1=" + tagEscape(user) + "|2=a}}\\n','','','Willkommen!'","HalloC",'','Baustein Begrüßungsbox');
	w(3, '\'{{subst:Benutzer:PDD/Greetings/Danke}} ' + usersignature + '\\n\',\'\',\'\',\'Probier doch mal die Spielwiese!\'', 'Danke', '', 'Baustein PDD:Danke');
	w(3, '\'{{subst:Benutzer:LKD/V/VHinweis}}\\n\',\'\',\'\',\'Bitte damit aufhören.\'', 'Stop', '', 'Baustein LKD/V/VHinweis');
	// w (3,"'{{subst:Benutzer:Blah/Vorlage:Vandale}}\\n','',''",'Vand','','Baustein Blah:Vandale');
	// w (3,"'{{subst:Benutzer:Tobi B./Vorlage:Löschvandale}} " + 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}} ' + usersignature + '\\n\',\'\',\'\',\'Bitte Diskussionsbeiträge unterschreiben!\'', 'Sign!', '', 'Signieren nicht vergessen');
	w(3, '\'{{subst:Vorschau}}\\n\',\'\',\'\'', 'Vorschau', '', '{{subst:Vorschau}}');
	// w (3,"'{{subst:Benutzer:PDD/Greetings/Linkspam}} " + usersignature + "\\n','',''",'Linkspam','','Baustein PDD:Linkspam');
	w(3, '\'{{subst:Benutzer:LKD/V/LHinweis}} ' + usersignature + '\\n\',\'\',\'\'', 'Linkspam', '', 'Baustein LKD:Linkspam');
	// w (3,"'{{subst:Benutzer:Complex/Greetings/WP-WEB}} " + usersignature + "\\n','',''",'LinkspamC','','Baustein Complex:WP-WEB'); // Abwandlung von [[Benutzer:LKD/V/LHinweis]]
	if (adminflag)
		w(3, '\'{{subst:Gelöscht|wwni|ka|wer|rel|pov|que|urv|g=ja|art=}} ' + usersignature + '\\n\',\'\',\'\',\'Dein Artikel wurde gelöscht. Was nun?\'', 'SLA-ex', '', 'Autorenbenachrichtigung nach Schnelllöschung');

}

function qbAdminTools() {
	if (!adminflag)
		return;

	if (isUserMainpage && isEdit) {
		w(0, trenner, '', '');
		w(2, '\'+Gesperrter Benutzer\',\'{{Gesperrter Benutzer}}\',1', 'BSp', '', 'Benutzer 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');
		w(4, 'eintragen(5);', 'URV+', '', '+URV');
		w(4, 'eintragen(2);', 'LA+', '', '+Löschantrag');
	}
	if ((isCategory) && !isSpecial) {
		w(4, 'eintragen(7);', 'KatLA+', '', '+Löschantrag (Kategorie)');
		w(4, 'eintragen(14);', 'KatMove+', '', '+Verschiebeantrag (Kategorie)');
	}
	if (isTemplate)
		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 (pagetitle === 'Wikipedia:Spielwiese')
		w(4, 'eintragen(10);', 'SPW-Reset', '', 'Spielwiese zurücksetzen');

	if (isContrib || isUserpage)
		w(4, 'eintragen(6);', 'VANDAL+', '', '+Vandalismusmeldung (Benutzer)');

	if (isArticle || isCategory)
		w(4, 'eintragen(9);', 'VANDAL+', '', '+Vandalismusmeldung (Artikel)');

}

/*
 * Quickbar-Zusammenbau, Teil 2:
 * zuerst die Reihenfolge der einzelnen Abschnitte:
 */

mw.loader.using(['mediawiki.util'], // load modules first
	function () {
		_getUser();
		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();

		/*
	 * hier wird der Quickbar in die Seite geschrieben
	 * (ab hier bitte nichts ändern)
	 */
		var version = window.version || '?';
		if (!isEdit || zeigeversion || isPHP)
			Quickbar += '<div style="text-align:right;font-size:' + qbfontsize + '%;">' +
		(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?" style="vertical-align:middle;"/>&nbsp;&nbsp;') :
			'&nbsp;') +
		'<a href="' + mw.config.get('wgScript') + '?title=Special%3APrefixindex&prefix=' + 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>';

		Quickbar += '<div style="font-size:' + qbfontsize + '%;margin:0;padding:0 0 2px 2px;"' + ((isVector > '') ? ' class="mw-body"' : '') + '>' + xxx + '</div></div>';
		Quickbar = $($.parseHTML(Quickbar)); // FIXME: in initQuickbar() save as jQuery for later manipulation
		if (scrpt > '') {
			Quickbar.append('<script>function _doopt(was){switch(was){' + scrpt + '};}</script>');
			scrpt = '';
		}

		$('body').append(Quickbar);
		// FIXME: Hack for Vector! Need fix in initQuickbar(), .paddingTop is not same!?
		if (isVector > '')
			Quickbar.height(Quickbar.outerHeight() - 170);

	});

//
// ab hier functions
//

function w(was, lurl, linktext, targt, title) {
	title = title || linktext;
	if (!zeigehilfe)
		title = '';

	if (!dropdown) {
		switch (was) {
			case 0:
				xxx += lurl;
				break;
			case 1:
				xxx += '<a href="' + lurl + '" target="' + targt + '" title="' + title + '">' + linktext + '</a>&nbsp; ';
				break;
			case 2:
				xxx += '<a href="#" onclick="newtext(' + lurl + ')" title="' + title + '">' + linktext + '</a>&nbsp; ';
				break;
			case 3:
				xxx += '<a href="#" onclick="insertTagsWrapper(' + lurl + ')" title="' + title + '">' + linktext + '</a>&nbsp; ';
				break;
			case 4:
				xxx += '<a href="#" onclick="' + lurl + '" title="' + title + '">' + linktext + '</a>&nbsp; ';
				break;
		}
	} else { // todo: Hilfe bei Dropdowns. Benutzt die überhaupt jemand???
		var ltext = '__________'.substr(1, ind) + linktext;
		switch (was) {
			case 0:
				if (lurl === br) {
					xxx += '<option>' + linktext + '</option>';
					ind = 2;
				} else if (lurl === trenner) {
					newdropdown(linktext);
				}
				break;
			case 1:
				xxx += '<option value="1|' + lurl + '">' + ltext + '</option>';
				break;
			case 2:
				xxx += '<option value="2|' + scrptn + '">' + ltext + '</option>';
				scrpt += 'case ' + scrptn + ':newtext(' + lurl + ');break;';
				scrptn++;
				break;
			case 3:
				xxx += '<option value="3|' + scrptn + '">' + ltext + '</option>';
				scrpt += 'case ' + scrptn + ':insertTagsWrapper(' + lurl + ');break;';
				scrptn++;
				break;
			case 4:
				xxx += '<option value="4|' + scrptn + '">' + ltext + '</option>';
				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;
		default:
			_doopt(Number(wie));
	} // switch
} // dodropdown

function newdropdown(oname) {
	closedropdown();
	xxx += '<select size="1" onchange="dodropdown(this.value);" style="width:135px;font-size:9px;">';
	if (oname > '')
		xxx += '<option>' + oname + '</option>';

	indropdown = true;
	ind = 2;
}

function closedropdown() {
	if (indropdown)
		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 (summary.value > '')
			summary.value += ', ';

		summary.value += subj;
	}

	switch (wo) {
		case 1:
			textbox.value = text + '\n';
			break;
		case 2:
			textbox.value += '\n' + text;
			break;
		case 3:
			textbox.value = text + '\n' + textbox.value;
			break;
	}
	textbox.focus();
}

function insertTagsWrapper(tagOpen, tagClose, sampleText, subj) {
	if (subj > '') {
		if (summary.value > '')
			summary.value += ', ';

		summary.value += subj;
	}
	mw.toolbar.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 hasRight(right) {
	var specialrights = false;
	var userrights = mw.config.get('wgUserGroups');
	if (typeof userrights !== 'object')
		return specialrights;

	if (typeof userrights[0] !== 'string')
		return specialrights;

	for (i = 0; i < userrights.length; i++)
		if (userrights[i] === right)
			specialrights = true;

	return specialrights;
}
function quickEscape(text, esctype) {
	// esctype = 1 -> normal umlaut escapes
	// esctype = 2 -> wikisort umlaut escapes
	text = text.replace(/[ÀÁÂÃÅĀĂĄǍǞǠǺȀȂȦȺḀẠẢẤẦẨẪẬẮẰẲẴẶ]/g, 'A').replace(/[àáâãåāăąǎǟǡǻȁȃȧⱥḁạảấầẩẫậắằẳẵặẚ]/g, 'a')
		.replace(/[ÆǢǼ]/g, 'Ae').replace(/[æǣǽ]/g, 'ae')
		.replace(/[ƁƂɃḂḄḆ]/g, 'B').replace(/[ƀƃḃḅḇ]/g, 'b')
		.replace(/[ÇĆĈĊČƇȻḈ]/g, 'C').replace(/[çćĉċčƈȼḉ]/g, 'c')
		.replace(/[ÐĎĐƉƊƋḊḌḎḐḒ]/g, 'D').replace(/[ðďđƌȡḋḍḏḑḓ]/g, 'd')
		.replace(/ȸ/g, 'db')
		.replace(/[DŽDžDZDz]/g, 'Dz').replace(/[dždz]/g, 'dz')
		.replace(/[ÈÉÊËĒĔĖĘĚƎƐȄȆȨɆḔḖḘḚḜẸẺẼẾỀỂỄỆ]/g, 'E').replace(/[èéêëēĕėęěǝȅȇȩɇḕḗḙḛḝẹẻẽếềểễệ]/g, 'e')
		.replace(/[ƑḞ]/g, 'F').replace(/[ƒḟ]/g, 'f')
		.replace(/[ĜĞĠĢƓƔǤǦǴḠ]/g, 'G').replace(/[ĝğġģǥǧǵḡ]/g, 'g')
		.replace(/[ĤĦȞⱧⱵḢḤḦḨḪ]/g, 'H').replace(/[ĥħȟⱨⱶḣḥḧḩḫẖ]/g, 'h')
		.replace(/Ƕ/g, 'Hv').replace(/ƕ/g, 'hv')
		.replace(/[ÌÍÎÏĨĪĬĮİƖƗǏȈȊḬḮỈỊ]/g, 'I').replace(/[ìíîïĩīĭįıǐȉȋḭḯỉị]/g, 'i')
		.replace(/IJ/g, 'Ij').replace(/ij/g, 'ij')
		.replace(/[ĴǰɈ]/g, 'J').replace(/[ĵȷɉ]/g, 'j')
		.replace(/[ĶƘǨⱩḰḲḴ]/g, 'K').replace(/[ķĸƙǩⱪḱḳḵ]/g, 'k')
		.replace(/[ĹĻĽĿŁȽⱠⱢḶḸḺḼ]/g, 'L').replace(/[ĺļľŀłƚƛȴⱡḷḹḻḽ]/g, 'l')
		.replace(/[LJLj]/g, 'Lj').replace(/lj/g, 'lg')
		.replace(/[ḾṀṂ]/g, 'M').replace(/[ḿṁṃ]/g, 'm')
		.replace(/[ÑŃŅŇŊƝǸȠṄṆṈṊ]/g, 'N').replace(/[ñńņňʼnŋƞǹȵṅṇṉṋ]/g, 'n')
		.replace(/[NJNj]/g, 'Nj').replace(/nj/g, 'nj')
		.replace(/[ÒÓÔÕØŌŎŐƆƟƠǑǪǬǾȌȎȪȬȮȰṌṎṐṒỌỎỐỒỔỖỘỚỜỞỠỢ]/g, 'O').replace(/[òóôõøōŏőơǒǫǭǿȍȏȫȭȯȱṍṏṑṓọỏốồổỗộớờởỡợ]/g, 'o')
		.replace(/Œ/g, 'Oe').replace(/œ/g, 'oe')
		.replace(/Ƣ/g, 'Oi').replace(/ƣ/g, 'oi')
		.replace(/[ƤⱣṔṖ]/g, 'P').replace(/[ƥṕṗ]/g, 'p')
		.replace(/Ɋ/g, 'Q').replace(/ɋ/g, 'q')
		.replace(/ȹ/g, 'qp')
		.replace(/[ŔŖŘȐȒɌⱤṘṚṜṞ]/g, 'R').replace(/[ŕŗřȑȓɍṙṛṝṟ]/g, 'r')
		.replace(/[ŚŜŞŠƩȘṠṢṤṦṨ]/g, 'S').replace(/[śŝşšſșȿṡṣṥṧṩẛ]/g, 's')
		.replace(/ß/g, 'ss')
		.replace(/[ŢŤŦƬƮȚȾṪṬṮṰ]/g, 'T').replace(/[ţťŧƫƭțȶⱦṫṭṯṱẗ]/g, 't')
		.replace(/Þ/g, 'Th').replace(/þ/g, 'th')
		.replace(/[ÙÚÛŨŪŬŮŰŲƯǓǕǗǙǛȔȖɄṲṴṶṸṺỤỦỨỪỬỮỰ]/g, 'U').replace(/[ùúûũūŭůűųưǔǖǘǚǜȕȗṳṵṷṹṻụủứừửữự]/g, 'u')
		.replace(/[ƲṼṾ]/g, 'V').replace(/[ⱴṽṿ]/g, 'v')
		.replace(/[ŴǷẀẂẄẆẈ]/g, 'W').replace(/[ŵƿẁẃẅẇẉẘ]/g, 'w')
		.replace(/[ẊẌ]/g, 'X').replace(/[ẋẍ]/g, 'x')
		.replace(/[ÝŸŶƳȲɎẎỲỴỶỸ]/g, 'Y').replace(/[ýÿŷƴȳɏẏỳỵỷỹẙ]/g, 'y')
		.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) {
	return text.replace(/'/g, '%27')
		.replace(/"/g, '%22');
}
function untagEscape(text) {
	return text.replace(/%27/g, '\'')
		.replace(/%22/g, '"');
}
function spaceEscape(text) {
	return text.replace(/ /g, '+')
		.replace(/_/g, '+');
}
// helper functions for getting API timestamp
function getAPItimestamp(dateobject) {
	return (dateobject.getFullYear() * 10000000000) + ((dateobject.getMonth() + 1) * 100000000) + (dateobject.getDate() * 1000000) + (dateobject.getHours() * 10000) + (dateobject.getMinutes() * 100);
}
function getFutureDate() {
	var dateobject = new Date();
	// adding 3 hours to dateobject
	dateobject.setTime(dateobject.getTime() + (3 * 3600 * 1000));
	return (getAPItimestamp(dateobject));
}
function getPastDate() {
	var dateobject = new Date();
	// subtracting 3 days from dateobject
	dateobject.setTime(dateobject.getTime() - (3 * 24 * 3600 * 1000));
	return (getAPItimestamp(dateobject));
}
// </nowiki>
/*
 * 3xImport von [[Benutzer:Revvar]]
 * aus [[Benutzer:Revvar/wikibits.js]] und [[Benutzer:Revvar/monobook.js]]
 */
/**
@description Imports a user javascript page from any Wikipedia project into the actual document.
@version 0.1.3
@date 2007/03/22
@author: based on function importPage from [[:de:User:PDD]]s monobook.js, extended by [[:de:User:Revvar]]
@revision 2. Sep. 2015
@param page Name of the user page without the "user:" prefix and function importJSL without the ".js" appendix
@param lang (optional) Language code of the corresponding wikipedia project. Default is the German project.
@return true on success, false otherwise
 **/
// Helper-Function: zum Einbinden der Module <nowiki>
function importPage(page, lang) { // all languages support
	try {
		/* check the parameters and set defaults */
		if (!page)
			throw Error('importPage: Missing parameter page.');

		lang = lang || 'de'; // cLang
		/* create import url */
		import_url = '//' + lang + '.wikipedia.org' + sPath + '/index.php?title=User:' + page +
			'&action=raw&ctype=text/javascript&maxage=86400&smaxage=60&bcache=1&debug=' + debugme;
		mw.loader.load(import_url, 'text/javascript');
		return true;
	} catch (e) {
		alert(e.message);
		return false;
	}
}
// Helper-Function
window.importJSL = function (page, lang) {
	return importPage(page + '.js', lang);
};

/**
@description 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
 **/
// Helper-Function
function importCSSL(page, lang) {
	try {
		/* check the parameters and set defaults */
		if (!page)
			throw Error('importCSSL: Missing parameter page.');

		lang = lang || cLang;
		/* create import url */
		import_url = '//' + lang + '.wikipedia.org' + sPath + '/index.php?title=User:' + page +
			'.css&action=raw&ctype=text/css&smaxage=0&debug=' + debugme;
		/* import page */
		mw.loader.load(import_url, 'text/css');
		return true;
	} catch (e) {
		alert(e.message);
		return false;
	}
}

// ***** FOOT-Block *****
// </nowiki> <- nicht löschen!!!

// ausgelagerte obligatorische Funktionen
importJSL('PDD/supportFuncs'); // [[Benutzer:PDD/supportFuncs.js]]
importJSL(dev + '/helperFunctions'); // [[Benutzer:PDD/helperFunctions.js]]
importJSL(dev + '/eintragen'); // [[Benutzer:PDD/eintragen.js]]
// importJSL('PDD/alertOnChanges'); // [[Benutzer:PDD/alertOnChanges.js]]

// obligatorisch nur für editpages
if (isEdit) {
	importJSL('PDD/wpTextReplace'); // [[Benutzer:PDD/wpTextReplace.js]]
	importJSL('BLueFiSH.as/JS/replaceQuoteSigns'); // [[Benutzer:BLueFiSH.as/JS/replaceQuoteSigns.js]]
	importJSL('BLueFiSH.as/JS/markup'); // [[Benutzer:BLueFiSH.as/JS/markup.js]]
	importJSL('PDD/convertEntities'); // [[Benutzer:PDD/convertEntities.js]]
	importJSL('Euku/persDaten'); // [[Benutzer:Euku/persDaten.js]]

	// Signierfunktionen
	if (!isArticle) {
		if (signing)
			importJSL('Perhelion/signing');
		 // [[Benutzer:Perhelion/signing.js]]
		if (unsigning)
			importJSL('Lustiger_seth/unsigned');
		 // [[Benutzer:Lustiger seth/unsigned.js]]
	}
	// extended search & replace feature
	if (searchbox)
		importJSL('Zocky/SearchBox', 'en');
	 // [[:en:User:Zocky/SearchBox.js]]

	// coordinates: Generierung der Koordinaten-Vorlage
	if (coordinates)
		importJSL('Dschwen/coordinates');
	 // [[Benutzer:Dschwen/coordinates.js]]
}

// ausgelagerte optionale Funktionen (Autoload)

// Skriptsammlung Fliegelflagel, [[Benutzer:Schnark/js/fliegelflagel]]
if (fliegelflagel) {
	(function (module) {
		if (mw.loader.getState(module))
			mw.loader.using(module).done(function () {
				((mw.libs.ve.targetLoader && mw.libs.ve.targetLoader.addPlugin) || mw.libs.ve.addPlugin)(function () {
					var ve = $.Deferred();
					mw.hook('userjs.schnark-fliegelflagel.ve').fire(ve);
					return ve.promise();
				});
			});

	}('ext.visualEditor.desktopArticleTarget.init'));
	mw.hook('userjs.schnark-fliegelflagel.userdefine').fire({
		version: 1.1,
		profile: undefined,
		additional: {
			paneMarker: {
				scripts: "[[mw:User:PerfektesChaos/js/paneMarker/r.js]]",
				title: "paneMarker@PerfektesChaos",
				description: "Beim Editieren einer Seite farbigen Tabulator-Icon anzeigen",
				docpage: "//de.wikipedia.org/wiki/User:PerfektesChaos/js/paneMarker",
				category: "edit",
				status: "stable",
				defaultEnabled: 4
			}
		},
		config: {
		}
	});
	// importJSL('Schnark/js/fliegelflagel.js/define');
	importJSL(dev + '/js/fliegelflagel-define');
	importJSL('Schnark/js/fliegelflagel.js/load');
}

// Revert/Loglink-Funktionen: möglichst früh einbinden
// Revert godmode-light
if (godmodelight && !adminflag && !editorflag && !isEdit && !(isSpecial && !isContrib))
	importJSL('PDD/godmode-light'); // [[Benutzer:PDD/godmode-light.js]]

// Revert addEditAndRevertLinks
if (!(!aerhistory && isHistory) && !isEdit && (editlinkoldversion || revertwithreason))
	importJSL('PDD/addEditAndRevertLinks'); // [[Benutzer:PDD/addEditAndRevertLinks.js]]

// LogLinks addLogsLink
if (addlogslink && !isSpecial)
	importJSL('PDD/addLogsLink');
// [[Benutzer:PDD/addLogsLink.js]]
// Statistik mwArticleStatistics
if (addstatslink && !isSpecial)
	importJSL('°/mwArticleStatistics', 'de');
// [[Benutzer:°/mwArticleStatistics.js]]

// jetzt alles andere, was optional ist
if (!isSpecial && (addeditintro || addpurge))
	importJSL('PDD/modifyCA');
// [[Benutzer:PDD/modifyCA.js]]
// changeBeschriftungen *nach* modifyCA.js (!)
if (beschriftungen)
	importJSL('PDD/changeBeschriftungen');
// [[Benutzer:PDD/changeBeschriftungen.js]]
if (bklcheck && !fliegelflagel)
	importJSL('Schnark/js/bkl-check', 'de');
// [[Benutzer:Schnark/js/bkl-check.js]]
if (sperrstatus)
	importJSL('Stefan/Sperrstatus');
// [[Benutzer:Stefan/Sperrstatus.js]]
if (rechtschreibpruefung && !isSpecial)
// can't load with RescoureLoader
	importScript('MediaWiki:Gadget-Rechtschreibpruefung.js');

if (ippvandalmark && !isEdit)
	importPage('APPER/IP-Patrol/js');
// [[Benutzer:APPER/IP-Patrol/js]]
if (showredundantlinks && !isSpecial)
	importJSL('PDD/showRedundantLinks');
// [[Benutzer:PDD/showRedundantLinks.js]]

// Portal- und Redaktionshinweis
if (hinweis)
	importJSL('DerHexer/hinweise');
// [[Benutzer:DerHexer/hinweise.js]]

// showreftoggle
if (reftoggle && !isSpecial)
	importJSL('Malte_Schierholz/reftoggle');
// [[Benutzer:Malte Schierholz/reftoggle.js]]

// quickedit
if (qeEnabled)
	importJSL('ASM/quickedit');
// [[Benutzer:ASM/quickedit.js]]

// RIPE tooltips
if (ripe && !isEdit)
	importJSL('PDD/tooltips');
// [[Benutzer:PDD/tooltips.js]]

// adddelreason
if (adddelreason && adminflag)
	importJSL('P.Copp/scripts/adddeletereason');
// [[Benutzer:P.Copp/scripts/adddeletereason.js]]

// dellinknowcommons
if (dellinknowcommons && adminflag && isFile)
	importJSL('PDD/dellink-nc');
// [[Benutzer:PDD/dellink-nc.js]]

// loescheimer
if (loescheimer && adminflag)
	importJSL('PDD/modifyLKs');
// [[Benutzer:PDD/modifyLKs.js]]

// Cacycle’s diff
if (cacyclediff && (isDiff || isEdit))
	importJSL('Cacycle/wikEdDiff', 'en');
// [[:en:User:Cacycle/wikEdDiff.js]]

// Codeispoetrys DupeCheck
if (imgdupecheck && isFile)
	importJSL('PDD/checkDupes');
// [[Benutzer:PDD/checkDupes.js]]

// P.Copp’s Diffhistory
if (diffhistory)
	importJSL('P.Copp/scripts/diffhistory');
// [[Benutzer:P.Copp/scripts/diffhistory.js]]

// P.Copp’s Hideduplicatecontribs
if (isContrib && hideduplicatecontribs)
	importJSL('PDD/hideduplicatecontribs');
// [[Benutzer:PDD/hideduplicatecontribs.js]]

// hideNsLinkSearch.js
if (hidenslinksearch)
	importJSL('PDD/hideNsLinkSearch');
// [[Benutzer:PDD/hideNsLinkSearch.js]]

// Markierskripte ganz zum Schluss einbinden, da sie innerHTML verändern
if (markerledigt)
	importJSL('Euku/markErledigt');
// [[Benutzer:Euku/markErledigt.js]]

if (markadmins && action !== 'submit' && !isDiff)
	if (!(!window.mawatchlist && isWatchlist) && !(!window.macontribs && isContrib)) {
		importJSL('PDD/markAdmins');
	}
// [[Benutzer:PDD/markAdmins.js]]

if (markutf8 && !(!muwatchlist && isWatchlist) && !(!mucontribs && isContrib))
	importJSL('PDD/markUTF8');
// [[Benutzer:PDD/markUTF8.js]]

// EOF