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

  • Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
  • Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
  • Internet Explorer/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
  • Opera: Strg+F5
/**
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, user.options
**/
/* global $, mw, importJSL */
/* eslint no-implicit-globals:0, no-unused-vars:0, no-undef:0, curly:0,
 one-var:0, vars-on-top:0, camelcase:0, no-underscore-dangle:0, indent:0, no-alert: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.99u';
// 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>
// global vars (will never be use strict)
// *************** SETUP Teil 1a **********************************
// systemweite Default-Optionen aus [[MediaWiki:Common.js]]
window.NavigationBarShowDefault = 0; // Navi-Leisten: alle einklappen = 0; alle ausklappen = 15 (z.B.)
window.linkFA_enabled = true; // „Featured Articles“ in fremdsprachigen Wikipedias markieren?
// systemweite Default-Optionen aus [[MediaWiki:Monobook.js]]
window.oldEditsectionLinks = false; // [Bearbeiten]-Links bei Abschnitten ganz nach rechts?

// *************** SETUP Teil 2a ******************

/** Skriptmanager Fliegelflagel (von Schnark) </nowiki>
@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 = true;

// Modul: autoFormatter.js Halbautomatische Behebung von Wikifizierungsfehlern
var autoFormatter = true; // (ersetzt einfacheres FixMark [[Benutzer:BLueFiSH.as/JS/markup.js]])

// 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: godmode-light.js
var godmodelight = true; // "Zurücksetzen" einblenden?
var godmodenewstyle = true; // neuer Rollback-Kommentartext?

// Modul: addEditAndRevertLinks.js
var editlinkoldversion = true; // Bearbeiten-Link für ältere Versionen anzeigen?
var revertwithreason = true; // Revert-Link mit Grund-Eingabe anzeigen?

if (editlinkoldversion || revertwithreason) {
	var editlinktxt = 'edit', // Text des Edit-Links
		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: modifyCA.js
var addeditintro = true; // Tab zum Editieren des Nullabschnitts (Intros) einer Seite hinzufügen?
var addpurge = true; // Tab zum Purgen (Servercache-Updaten) einer Seite hinzufügen?
if (addeditintro || addpurge) {
	var purgetext = 'Purge', // Beschriftung des Tabs
		editintrotext = 'IntroBearbeiten', // Beschriftung des Tabs
		addpageinfo = true, // Tab für Seiteninfo hinzufügen?
		pageinfotext = 'Info', // Beschriftung des Tabs
		addwatchers = false, // Tab mit Link zum Watchers-Tool hinzufügen?
		watcherstext = 'ºº'; // Beschriftung des Tabs
}

// Modul: markUTF8.js
var markutf8 = true; // Sonderzeichenbenutzernamen besonders hervorheben?
if (markutf8) {
	var muwatchlist = true, // auch auf der Beobachtungsliste?
		mucontribs = true, // auch auf den Benutzerbeiträgen?
		markutf8txt = 'UTF8!', // Markierung für UTF8-kodierte Nutzernamen etc.
		markltrtxt = 'UTF8:LTR!'; // Markierung für Lemmata mit LTR-Mark
}

// Modul: quickedit.js
var qeEnabled = false; // QuickEdit aktivieren?
if (qeEnabled) {
	var qeEnableSection0 = false, // QuickEdit-Link für Abschnitt 0 (Einleitung)?
		qeEnableAccessKeys = true, // Tastaturbefehle aktivieren?
		qeShowErrors = true, // Fehlermeldungen anzeigen
		qeTextboxHeight = 20; // Höhe des Textfelds
}

// 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: 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';
}

// -- Global non-setup variables --
var user = mw.config.get('wgUserName'); // username wird automatisch übernommen
// 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');

// 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);
// special 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;
	}
}

// aktuelle Zeit ermitteln
var jetzt = new Date();
// recalculate 4 furriners
var jetztfixed = jetzt.getTime();
var timezoneshift = 0; // Unterschied lokale Zeit zur Systemzeit (bleibt für Mitteleuropäer 0)
jetztfixed += (timezoneshift * 3600 * 1000);
jetzt.setTime(jetztfixed);
// fill date variables
var Monate = mw.config.get('wgMonthNames');
var Monatekurz = [ "", "Jan.", "Feb.", "Mär.", "Apr.", "Mai", "Jun.", "Jul.", "Aug.", "Sep.", "Okt.", "Nov.", "Dez." ];
var Jahr = jetzt.getYear();
var Monat = jetzt.getMonth() + 1;
var Tag = jetzt.getDate();
var Stunde = jetzt.getHours();
var Minute = jetzt.getMinutes();
if (Jahr < 999) Jahr += 1900;

// -- END global non-setup variables --

// Need load modules first (virtual indent)
mw.loader.using(['mediawiki.util', 'user.options'], function () {

// Modul: hinweise.js
var hinweis = true; // Portal- und Redaktionshinweis verwenden?

 // Modul: admin.js
 
 var showadminbar = true;             // Adminbar standardmäßig anzeigen?
 
 // Wer nicht mit den Standardknöpfen zufrieden sein sollte, lese sich bitte das Tutorial auf [[Benutzer_Diskussion:DerHexer/admin.js]] durch.
 
 var delreason = true;             // Löschgründe ergänzen?
 var deletereasons = "Unsinn; Test; Kein Artikel; Unnötiger Redirect|Unnötiger Red.; Falschschreiberedirect; Ausschließlich erledigte Bothinweise|Bot; Werbung; Wiedergänger; Falsches Lemma; Wunsch des Benutzers; Verschieberest|VR; Verwaiste Diskussionsseite|Verwaiste Disk.; Offensichtlich enyzklopädisch irrelevant|Irrelevant; Unnötige Diskussionsseitenweiterleitung|Disk-WL; Urheberrechtsverletzung|URV; Unzureichende Lizenzierung|Unzureichende Lizenz; Veraltete IP-Diskussionsseite|IP-DISK; Ohne Lizenz; Lokale Kopie einer Datei auf Commons|Commons; Leere oder nicht benötigte Kategorie|LeerKat; Vom Benutzernamensraum in Artikelnamensraum verschoben|ANR; Vom Artikelnamensraum in Benutzernamensraum verschoben|BNR; Gelöscht für geplante Verschiebung|Move; Überflüssige Klammer-Weiterleitung|Klammer-WL; prompt|prompt";
 
 var blockreason = true;             // Blockgründe ergänzen?
 var blockreasons = "Unsinnige Bearbeitungen [[Wikipedia:Vandalismus]]|1|B(V+1); Unsinnige Bearbeitungen [[Wikipedia:Vandalismus]]|2|B(V+2); Unsinnige Bearbeitungen [[Wikipedia:Vandalismus]]|7|B(V+7); Einstellen unsinniger Artikel siehe [[Wikipedia:Artikel]]|2|ART; Verstoss gegen \[\[WP:WEB\]\]|2|WEB(2); Vandalenaccount|indefinite|B(indefinite); prompt|prompt|prompt";
 
 var protectreason = true;             // Schutzgründe ergänzen?
 var protectreasons = "IP-Vandalismus|3 months|1|P(IP-V+3m); IP-Vandalismus|indefinite|1|P(IP-V+i); Editwar|indefinite|2|P(EW+i); \{\{Gesperrter Benutzer\}\}|indefinite|2|P(GB+i); prompt|prompt|1|prompt1; prompt|prompt|2|prompt2";
 
 var blockedtext = "7 h ";             // Standardtext für die VM
 
 var allowlogblock = true;           // Schnellsperre aus dem Neuanmeldungslogbuch gestatten

// 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: 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: signing.js
var signing = false; // automatische Unterschrift auf Diskussionsseiten?
// Modul: SearchBox.js
var searchbox = false; // erweitertes suchen/ersetzen

// Modul: wikEdDiff.js (Cacycle)
var cacyclediff = false; // verbesserte Diff-Ansicht (Cacycle) einbinden? Redundant mit Schnark's Diff
window.wikEdFullDiff = 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)
window.filter_rfdtoc_by_default = true; // Löscheimer: TOC der LK-Seite filtern?

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

// Admins u.ä. besonders hervorheben?
// Gadget: [[Wikipedia:Helferlein/markAdmins]] sollte deaktiviert werden!
var markadmins = true;
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)
// Das Gadget sollte hiefür aktiviert sein!
   var lupinpopups = true; // Popup-Modul einbinden?
if (mw.user.options.get('gadget-navigation-popups')) {
	// 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 aktiviert sein!
var rechtschreibpruefung = mw.user.options.get('gadget-Rechtschreibpruefung'); //  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 toolbar = mw.user.options.get('gadget-LegacyToolbar2006'); // gadget-Extra-Editbuttons
if (toolbar) {
	window.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';
	window.rmEditButtons = [6, 7, 10]; // zu entfernende Standard-Editbuttons (0…10)
	window.myButtons = {}; // eigene Buttons?
}

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

// *************** SETUP Teil 2b **********************************
// 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 dropdown = false; // keine Dropdowns gewünscht?
var timeout = 50000; // 50 Sekunden auf das Neuladen der Seite warten
var debugme = false; // Debug-Modus?
var qbfontsize = 100; // Schriftgröße im QuickBar (relativ in %)

// <nowiki>

// **************** SETUP ENDE *******************

// 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 (var i = 0; i < userrights.length; i++)
		if (userrights[i] === right) specialrights = true;

	return specialrights;
}
function spaceEscape(text) {
	return text.replace(/[ _]/g, '+');
}

// fill WP date variables
var WPDatum = window.WPDatum = Tag + '._' + Monate[Monat] + '_' + Jahr;
window.WPDatum2 = Jahr + '/' + Monate[Monat] + '/' + Tag;
var WPDatum3 = Monate[Monat] + ' ' + Jahr;
window.WPDatum4 = Jahr + '-' + LeadingZero(Monat);
window.refDatum = Tag + '. ' + Monatekurz[Monat] + '. ' + Jahr;
window.refDatumlang = Tag + '. ' + Monate[Monat] + ' ' + Jahr;
var ndDatum = Jahr + '-' + LeadingZero(Monat) + '-' + LeadingZero(Tag);

// 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.8; // scale factor
}

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

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

// userpage/name stuff, vor allem für IPs
var userPageOwner = '';
window.isIPUser = false; // handelt es sich um eine IP?
// get URL parameters (used for page type variables)
window.UrlParameters = {}; // used in helperFunctions.js, maybe 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]);
	}
}());

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

// 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;
}

// 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';
else if (navigator.userAgent.indexOf('Safari') > -1) userbrowser = 'Standard';
else 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;

if (debugme) mw.config.set('debug', true);

/*
 * ab hier wird der Quickbar (der Kasten oben links) zusammengebaut,
 * zuerst die allgemeinen Variablen (hier bitte nix ändern!)
 */
 var showquickbar = true;
 var showcompletebar = true;
 var showadminbar2 = '';
 var showcompletebar2 = '';
 var showquicktebar2 = '';
var Quickbar = '<div class="pBody noprint" id="p-quickbar" style="position:absolute; top:0; left:-1px; width:14.1em; z-index:10;' +
	isVector + '">',
	// optional:  opacity:0.9,
	xxx = '',
	qbtarget = qbnewpage ? '_blank' : '_self',
	scrpt = '',
	scrptn = 0,
	indropdown,
	ind;

//
// ab hier functions
//

window.dodropdown = function (aktion) {
	var zutun = aktion.split('|');
	var was = Number(zutun[0]);
	var wie = zutun[1];
	switch (was) {
		case 1:
			window.open(wie);
			break;
		default:
			window._doopt(Number(wie));
	}
};

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

	indropdown = false;
}

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

window.newtext = function (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 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 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 + ');return false;" title="' + title + '">' + linktext + '</a>&nbsp; ';
				break;
			case 3:
				xxx += '<a href="#" onclick="insertTagsWrapper(' + lurl + ');return false;" title="' + title + '">' + linktext + '</a>&nbsp; ';
				break;
			case 4:
				xxx += '<a href="#" onclick="' + lurl + '$(this).css({color:\'green\'});return false;" 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 === '<hr>') {
					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 + ':window.newtext(' + lurl + ');break;';
				scrptn++;
				break;
			case 3:
				xxx += '<option value="3|' + scrptn + '">' + ltext + '</option>';
				scrpt += 'case ' + scrptn + ':window.insertTagsWrapper(' + lurl + ');break;';
				scrptn++;
				break;
			case 4:
				xxx += '<option value="4|' + scrptn + '">' + ltext + '</option>';
				scrpt += 'case ' + scrptn + ':window.' + lurl + ';break;';
				scrptn++;
				break;
		} // switch
	} // else
} // w

window.insertTagsWrapper = function (tagOpen, tagClose, sampleText, subj) {
	if (!textbox) return;
	if (subj) {
		if (summary.value) summary.value += ', ';

		summary.value += subj;
	}
	// mw.toolbar is deprecated and loads not automatically too
	$(textbox).textSelection(
		'encapsulateSelection', {
			pre: untagEscape(tagOpen),
			peri: untagEscape(sampleText),
			post: untagEscape(tagClose)
		}
	);
};
// 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));
}

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

function qbWPIntern() {
    addition = new Date(); 
    addition = new Date(addition.getTime() +1000*60*60*24*365);
    if (document.cookie) {
      var cookies = document.cookie;
      cookies = cookies.split(';');
      for (i=0; i<cookies.length; i++) {
        var cookienames = cookies[i].split('=')[0];
        var cookievalues = cookies[i].split('=')[1];
        if (cookienames.search('showcompletebar') != -1) {
          if (cookievalues.search('block') != -1) {
            showcompletebar2 = "block";
          } else {
            showcompletebar2 = "none";
          }
          document.cookie = 'showcompletebar=' + showcompletebar2 + '; path=/; expires=' + addition.toGMTString + ';';
        } else if (cookienames.search('showquickbar') != -1) {
          if (cookievalues.search('block') != -1) {
            showquickbar2 = "block";
          } else {
            showquickbar2 = "none";
          }
          document.cookie = 'showquickbar=' + showquickbar2 + '; path=/; expires=' + addition.toGMTString + ';';
        } else if (cookienames.search('showadminbar') != -1) {
          if (cookievalues.search('block') != -1) {
            showadminbar2 = "block";
          } else {
            showadminbar2 = "none";
          }
          document.cookie = 'showadminbar=' + showadminbar2 + '; path=/; expires=' + addition.toGMTString + ';';
        } else {
          if (showcompletebar) {
            showcompletebar2 = 'block';
          } else {
            showcompletebar2 = 'none';
          }
          if (showquickbar) {
            showquickbar2 = 'block';
          } else {
            showquickbar2 = 'none';
          }
          if (showadminbar) {
            showadminbar2 = 'block';
          } else {
            showadminbar2 = 'none';
          }
          document.cookie = 'showcompletebar=' + showcompletebar2 + '; path=/; expires=' + addition + ';';
          document.cookie = 'showquickbar=' + showquickbar2 + '; path=/; expires=' + addition + ';';
          document.cookie = 'showadminbar=' + showadminbar2 + '; path=/; expires=' + addition + ';';
        }
      }
    }
	w(0, '<hr>', '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:Vandalismusmeldung', 'VM', qbtarget, 'Vandalismusmeldung');
	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, '<hr>', 'Ü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, '<hr>', '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, '<hr>', '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/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,"https://tools.wmflabs.org/xtools-articleinfo/?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, 'DontAutorunRP=0;if(typeof spellcheck!==\'function\')importScript(\'MediaWiki:Gadget-Rechtschreibpruefung.js\');else spellcheck();', 'SpellChk', '', 'Rechtschreibprüfung');
}

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

	w(0, '<hr>', '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, '<hr>', '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, '<hr>', '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(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, '<hr>', 'Editierhilfen', '');

	w(3, '\'<br>\',\'\',\'\'', 'br', '', 'Zeilenumbruch');
	w(3, '\'&\',\'nbsp;\',\'\'', 'nbsp', '', 'Geschütztes Leerzeichen');
    w(3, '\'&\',\'shy;\',\'\'', 'shy', '', 'Geschütztes Trennzeichen');
	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, '\'\\u003cref name=\\u0022name\\u0022 \\u002F\\u003e\',\'\',\'\'', '<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, '\'<ref>{{Internetquelle |url=\',\' |titel= |autor= |werk= |hrsg= |datum= |zugriff= {{subst:CURRENTYEAR}}-{{subst:CURRENTMONTH}}-{{subst:CURRENTDAY2}} }}</ref>\',\'\'',
		'<small>[IQ]</small>', '', 'Internetquelle');

	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(personLemma);
	var spagetitle = tagEscape(spageTitle);

	w(0, '<hr>', 'Artikelbausteine', '');

	w(3, '\'== Einzelnachweise ==\\n\\u003creferences /\\u003e\\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, '\'{{SORTIERUNG:' + quickEscape(personlemma, 2) + '}}\\n\',\'\',\'\'', 'DefSrt', '', '{{SORTIERUNG:');
	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, '<hr>', 'Markup-Tools', '');

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

	if (mw.user.options.get('userjs-tmg-autoFormatter')) {
		w(4, 'mw.libs.autoFormatter.click();', 'FixSyntax', '', 'Auto-Format: Verschiedene Markup-Korrekturen (User:TMg)'); // extern
	} else {
		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 (User:BLueFiSH)'); // extern
	}

	w(4, 'undate();', 'UnDate', '', 'Daten entlinken');
}

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

	w(0, '<hr>', '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(window.usersignature);

	w(0, '<hr>', '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 qbAutoTemps() {
	if (isSpecial && !isContrib) return;

	w(0, '<hr>', '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)');

}

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');
                w(2,'\'+OTRS Benutzerkonto geprüft\',\'{{Benutzerkonto verifiziert|Ticketnummer|Organisation|Domain}}\',2','BKVU','','OTRS Benutzerkonto-Unternehmen geprüft');
                w(2,'\'+OTRS Benutzerkonto geprüft\',\'{{Benutzerkonto verifiziert|Ticketnummer|Name|Domain|Privatperson=ja}}\',2','BKVP','','OTRS Benutzerkonto-Person geprüft');
	}

	if (isRestore) {
		w(0, trenner, '', '');
		w(4, 'revAllDeletedVersions();', 'Auswahl umkehren?', '', 'Versionsauswahl umkehren?');
	}

      w (0,'</div>','','');
      if (showadminbar == false) {
        w (0,'<hr />','','');
        w (4,"switchbars('adminbar');switchbars('quickbar');","Adminbar an-/ausschalten","","Adminbar an-/ausschalten");
      }
      w (0,'<div id="adminbar" style="display:' + showadminbar2 + '"><hr />','Adminbar','');
      if (delreason) {
        w (0,'<center>Löschen</center>','Löschen','');
        decodeadminreasons(deletereasons);
      }
      if (blockreason) {
        w (0,'<center>Sperren</center>','Sperren','');
        decodeadminreasons(blockreasons);
      }
//      if (protectreason) {
//        w (0,'<center>Schützen</center>','Schützen','');
//        decodeadminreasons(protectreasons);
//      }
      w (0,'</div></div>','','');

}

// Helper-Functions: zum Einbinden der Module </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
 **/
// <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;
	}
}
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
 **/
window.importCSSL = function (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;
	}
};
// End Helper-Functions

 function decodeadminreasons(adminreasons) { // DerHexer
   var adminreason = adminreasons.split('; ');
   for (i=0; i < adminreason.length; i++) {
     var adminreasoncount = adminreason[i].split("|");
     switch(adminreasoncount.length) {
       case 1 : w (4,"deleting('" + adminreasoncount[0] + "');","" + adminreasoncount[0] + ""); break;
       case 2 : w (4,"deleting('" + adminreasoncount[0] + "');","" + adminreasoncount[1] + ""); break;
       case 3 : w (4,"blocking('" + adminreasoncount[0] + "', '" + adminreasoncount[1] + "');","" + adminreasoncount[2] + ""); break;
       case 4 : w (4,"protecting('" + adminreasoncount[0] + "', '" + adminreasoncount[1] + "', '" + adminreasoncount[2] + "');","" + adminreasoncount[3] + ""); break;
       case 5 : w (4,"protecting('" + adminreasoncount[0] + "', '" + adminreasoncount[1] + "', '" + adminreasoncount[2] + "', '" + adminreasoncount[3] + "');","" + adminreasoncount[4] + ""); break;
     }
   }
 }
 
 function switchbars(ids)
 {
   addition = new Date(); 
   addition = new Date(addition.getTime() +1000*60*60*24*365);
   var element = document.getElementById(ids);
   if(element.style.display == "none")
   {
     element.style.display = "block";
     document.cookie = 'show' + ids + '=block; path=/; expires=' + addition + ';';
   }
   else
   {
     element.style.display = "none";
     document.cookie = 'show' + ids + '=none; path=/; expires=' + addition + ';';
   }
 }

// ***** FOOT-Block *****
// </nowiki> <- nicht löschen!!!
/*
 * Quickbar-Zusammenbau, Teil 2:
 * zuerst die Reihenfolge der einzelnen Abschnitte:
 */
_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();
// Automatisches Bausteinsetzen
qbAutoTemps();
// der folgende Abschnitt wird nur bei Admins eingeblendet
qbAdminTools();

/*
 * 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>';
if (scrpt) {
	Quickbar += '<script>function _doopt(was){switch(was){' + scrpt + '};}</script>';
	scrpt = '';
}

$('body').append(Quickbar);

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

// obligatorisch nur für editpages
if (isEdit) {
	if (toolbar) importJSL('РDD3/extra-Editbuttons');

	importJSL('PDD/wpTextReplace'); // [[Benutzer:PDD/wpTextReplace.js]]
	if (autoFormatter && !fliegelflagel) {
		mw.user.options.set('userjs-tmg-autoFormatter', '1');
		importJSL('TMg/autoFormatter'); // [[Benutzer:TMg/autoFormatter.js]]
	} else {
		importJSL('BLueFiSH.as/JS/replaceQuoteSigns'); // [[Benutzer:BLueFiSH.as/JS/replaceQuoteSigns.js]]
		// alt und ungepflegt
		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]]
}

// Skriptsammlung Fliegelflagel, [[Benutzer:Schnark/js/fliegelflagel]]
if (fliegelflagel) {
	mw.hook('userjs.schnark-fliegelflagel.userdefine').fire({
		version: 1.1,
		// profile: undefined,
		additional: {
		},
		config: {
		}
	});
	// Fork without VE support
	importJSL(dev + '/js/fliegelflagel-define');
	importJSL('Schnark/js/fliegelflagel.js/load');
}

// Ausgelagerte optionale Funktionen (Autoload)

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

// Revert addEditAndRevertLinks
if (!isEdit && (editlinkoldversion || revertwithreason) && !(!aerhistory && isHistory)) 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'); // [[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 (sperrstatus) importJSL('Stefan/Sperrstatus'); // [[Benutzer:Stefan/Sperrstatus.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]]
 
 // Schnellsperre aus dem Logbuch ergänzen
 if (allowlogblock)
    importJSL('DerHexer/logblock'); // [[Benutzer:DerHexer/logblock.js]]
 
 // Löschgründe ergänzen
 if (adminflag && (delreason || blockreason || protectreason) && mw.config.get('wgUserName') == "Partynia") importJSL('DerHexer/admin'); // [[Benutzer:DerHexer/admin.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]]

// 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) && !mw.user.options.get('gadget-markAdmins'))
		importJSL('PDD/markAdmins'); // [[Benutzer:PDD/markAdmins.js]]
}

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

}); // end load modules

// Und hier ist die monobook.js zu Ende.

/***

Wartungsbaustein-Wegmach-Wertungs-Wizzard
=========================================

Ermöglicht den einfachen Vergleich des Texts zweier Revisionen über die PHP-Funktion similar_text, die nach dem Verfahren aus ''Decision Graphs - An Extension of Decision Trees (1993) by Jonathan J. Oliver'' arbeitet und übernimmt dabei auch gleich das Ausfüllen der Bewertungsvorlage für den Wartungsbaustein-Wettbewerb.

Einbindung in Monobook.js oder Vector.js:
importScript('Benutzer:Flominator/WaWeWeWi.js');

Benutzung:
1. Reiter Versionsgeschichte aufrufen
2. zwei Revisionen auswählen, als würde man einen Versionsvergleich vornehmen
3. den Link "WaWeWeWi" in der linken Werkzeugleiste benutzen
4. es öffnet sich ein Fenster, das die beiden Artikelrevisionen mit und ohne Groß- und Kleinschreibung vergleicht

Bonus-Kategorien und der Stichtag für Altbausteine können in der Funktion "facility" ausgetauscht werden.

Der Quellcode für WaWeWeWi.php liegt unter https://github.com/FlominatorTM/wikipedia_wbw/blob/master/wawewewi.php
**/



/***********************************************************************/
/*                                                                     */
/* Mit  Live = true     Live = false      aktivieren/deaktivieren      */
/*                                                                     */
/***********************************************************************/



/* global window: false                                                */
/* jshint bitwise:true, curly:true, eqeqeq:true, latedef:true,
          laxbreak:true,
          nocomma:true, strict:true, undef:true, unused:true           */
( function ( mw, $ ) {
   "use strict";
   var Live      = true,
       Subject   = "Wartungsbausteinwettbewerb",
       Suggest   = "Wartungsbaustein-Wegmach-Wertungs-Wizzard",
       Env;



   function facility() {
      var signature, site;
      var bonusCats = ["Frauen", "Asien", "Animation", "Comic", "Europäische Geschichte"]; 
      var startDay = 4;      
      var startMonth = 11;
      var startYear = 2018;
      if ( typeof mw.libs.wawewewi  ===  "object"
           &&     mw.libs.wawewewi
           &&   typeof mw.libs.wawewewi.signature  ===  "string"
           &&          mw.libs.wawewewi.signature ) {
         signature = mw.libs.wawewewi.signature;
      } else if ( typeof window.MyRatingSignature  ===  "string"
                  &&     window.MyRatingSignature ) {
         signature = window.MyRatingSignature;
      } else {
         signature = "@signature@";
      }
      site = "http://wikipedia.ramselehof.de/wawewewi.php"
             + "?project=" + Env.wgNoticeProject
             + "&lang="    + Env.wgContentLanguage
             + "&article=" + encodeURI( Env.wgPageName )
             + "&oldid="   + $( "input:radio[name=oldid]:checked" ).val()
             + "&diff="    + $( "input:radio[name=diff]:checked" ).val()
             + "&rater="   + signature;

      for(var i=0;i<bonusCats.length;i++)
      {
            site= site + '&bonus_cats[]=' + bonusCats[i];
      }
      site=site + '&start-day=' + startDay + '&start-month=' + startMonth + '&start-year=' + startYear;
	  
      window.open( site, "Diffview" );
   }   // facility()



   function factory() {
      var dom = mw.util.addPortletLink( "p-tb",
                                        "#",
                                        "WaWeWeWi",
                                        "t-wawewewi",
                                        Suggest,
                                        null,
                                        "#t-whatlinkshere" ),
           $e  = $( dom );
      $e.click( facility );
   }   // factory()



   function feedback() {
      var sub  = Env.wgTitle.substr( Subject.length + 1 ),
          site = "http://wikipedia.ramselehof.de/wbw_rating.php"
                 + "?edition=" + sub
                 + "&lang="    + Env.wgContentLanguage;
				 
	  if(Env.wgCurRevisionId != Env.wgRevisionId)
	  {
		  site = site + '&oldid=' + Env.wgRevisionId;
		  site = site + '&&sortKey=1';
	  }
      mw.util.addPortletLink( "p-tb",
                              site,
                              "Zwischenstand",
                              "t-wbw_rating",
                              Suggest,
                              null,
                              "#t-whatlinkshere" );
   }   // feedback()


   function fire() {
      Env = mw.config.get( [ "wgAction",
                             "wgContentLanguage",
                             "wgNoticeProject",
                             "wgNamespaceNumber",
                             "wgPageName",
                             "wgTitle" ,
							 "wgCurRevisionId",
							 "wgRevisionId"] );
      if ( Env.wgNamespaceNumber ) {
         if ( Env.wgNamespaceNumber === 4   &&
              ! Env.wgTitle.indexOf( Subject + "/" ) ) {
            $( feedback );
         }
      } else if ( Env.wgAction === "history" ) {
         $( factory );
      }
   }   // fire()



   if ( Live ) {
      mw.loader.using( [ "mediawiki.util" ],
                       fire );
   }
}( window.mediaWiki, window.jQuery ) );



// Emacs
// Local Variables:
// coding: utf-8-unix
// End:

// Modul: recent2.js
 
if (wgPageName== "Benutzer:Suhadi_Sadono/Recent_IP_edits") 
  window.updateSeconds = 3;
else if (wgPageName== "Benutzer:Suhadi_Sadono/All_recent_changes") 
  window.updateSeconds = 10;
else if (wgPageName== "Benutzer:Suhadi_Sadono/Filter_recent_change") 
  window.updateSeconds = 20;
else if (wgPageName== "Benutzer:Suhadi_Sadono/Monitor_my_watchlist") 
  window.updateSeconds = 60;
else if (wgPageName== "Benutzer:Suhadi_Sadono/Live_spellcheck") 
  window.updateSeconds = 30;
else 
  window.updateSeconds = 15;
 
mw.loader.load('//de.wikipedia.org/w/index.php?title=Benutzer:Suhadi Sadono/recent2.js&action=raw&ctype=text/javascript');