From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.

// From https://www.mediawiki.org/wiki/JQuery

/*

jQuery(document).ready(function ($) {

  // Code wrapped in this function will be executed when the document is ready

  // When the document is ready, jQuery calls this callback function with itself as

  // first parameter, allowing you to locally alias it (e.g. as "$")

 

  try {

    //importScript('https://sourceforge.net/p/igbstackflair/code/ci/master/tree/v1/igbstackflair.js?format=raw');

    var script = document.createElement('script');

    with (script) {

      setAttribute('type', 'text/javascript');

      setAttribute('src', 'https://sourceforge.net/p/igbstackflair/code/ci/master/tree/v1/igbstackflair.js?format=raw');

      setAttribute('charset', 'utf-8');

      }

    document.getElementsByTagName('head')[0].appendChild(script);

 

    setTimeout(function () {

      igbStackFlair( { elementId:'igbstackflair', networkProfileId:1937747, transformScale:1.0, cacheHours:1, maxSiteLinksCount:99, maxSiteLinksPerLine:8 } );

      }, 3000);

    }

  catch (e) {

    alert(e);

    }

 

  }); // document.ready(...)

*/

/**

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: 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 userrights0 !== 'string') return specialrights;



	for (var i = 0; i < userrights.length; i++)

		if (userrightsi === right) specialrights = true;



	return specialrights;

}

function spaceEscape(text) {

	return text.replace(/[ _]/g, '+');

}



// fill WP date variables

var WPDatum = window.WPDatum = Tag + '._' + MonateMonat + '_' + Jahr;

window.WPDatum2 = Jahr + '/' + MonateMonat + '/' + Tag;

var WPDatum3 = MonateMonat + ' ' + Jahr;

window.WPDatum4 = Jahr + '-' + LeadingZero(Monat);

window.refDatum = Tag + '. ' + MonatekurzMonat + '. ' + Jahr;

window.refDatumlang = Tag + '. ' + MonateMonat + ' ' + 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 = titlesplittitlesplit.length - 1 + ',';

	for (i = 0; i < (titlesplit.length - 1); i++) personLemma += ' ' + titlespliti];

}



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 = readUrlParametersi].split('=');

		UrlParametersdecodeURIComponent(para0])] = decodeURIComponent(para1]);

	}

}());



// 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 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(zutun0]);

	var wie = zutun1];

	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() {

	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: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, '\'†\',\'\',\'\'', '†', '', '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 qbAdminTools() {

	if (!adminflag) return;



	if (isUserMainpage && isEdit) {

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

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

		w(4, 'revAllDeletedVersions();', 'Auswahl umkehren?', '', 'Versionsauswahl umkehren?');

	}

}



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



}



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



// ***** 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();

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

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]]



// 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.
From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.

// From https://www.mediawiki.org/wiki/JQuery

/*

jQuery(document).ready(function ($) {

  // Code wrapped in this function will be executed when the document is ready

  // When the document is ready, jQuery calls this callback function with itself as

  // first parameter, allowing you to locally alias it (e.g. as "$")

 

  try {

    //importScript('https://sourceforge.net/p/igbstackflair/code/ci/master/tree/v1/igbstackflair.js?format=raw');

    var script = document.createElement('script');

    with (script) {

      setAttribute('type', 'text/javascript');

      setAttribute('src', 'https://sourceforge.net/p/igbstackflair/code/ci/master/tree/v1/igbstackflair.js?format=raw');

      setAttribute('charset', 'utf-8');

      }

    document.getElementsByTagName('head')[0].appendChild(script);

 

    setTimeout(function () {

      igbStackFlair( { elementId:'igbstackflair', networkProfileId:1937747, transformScale:1.0, cacheHours:1, maxSiteLinksCount:99, maxSiteLinksPerLine:8 } );

      }, 3000);

    }

  catch (e) {

    alert(e);

    }

 

  }); // document.ready(...)

*/

/**

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: 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 userrights0 !== 'string') return specialrights;



	for (var i = 0; i < userrights.length; i++)

		if (userrightsi === right) specialrights = true;



	return specialrights;

}

function spaceEscape(text) {

	return text.replace(/[ _]/g, '+');

}



// fill WP date variables

var WPDatum = window.WPDatum = Tag + '._' + MonateMonat + '_' + Jahr;

window.WPDatum2 = Jahr + '/' + MonateMonat + '/' + Tag;

var WPDatum3 = MonateMonat + ' ' + Jahr;

window.WPDatum4 = Jahr + '-' + LeadingZero(Monat);

window.refDatum = Tag + '. ' + MonatekurzMonat + '. ' + Jahr;

window.refDatumlang = Tag + '. ' + MonateMonat + ' ' + 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 = titlesplittitlesplit.length - 1 + ',';

	for (i = 0; i < (titlesplit.length - 1); i++) personLemma += ' ' + titlespliti];

}



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 = readUrlParametersi].split('=');

		UrlParametersdecodeURIComponent(para0])] = decodeURIComponent(para1]);

	}

}());



// 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 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(zutun0]);

	var wie = zutun1];

	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() {

	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: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, '\'†\',\'\',\'\'', '†', '', '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 qbAdminTools() {

	if (!adminflag) return;



	if (isUserMainpage && isEdit) {

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

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

		w(4, 'revAllDeletedVersions();', 'Auswahl umkehren?', '', 'Versionsauswahl umkehren?');

	}

}



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



}



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



// ***** 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();

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

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]]



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

Videos

Youtube | Vimeo | Bing

Websites

Google | Yahoo | Bing

Encyclopedia

Google | Yahoo | Bing

Facebook