User:Atrocious/monobook.js

From Mod Wiki

< User:Atrocious(Difference between revisions)
Jump to: navigation, search
Revision as of 11:10, 19 July 2008 (edit)
Atrocious (Talk | contribs)
(new monobook script)
← Previous diff
Current revision (12:44, 19 July 2008) (edit) (undo)
Atrocious (Talk | contribs)
(trying different monobook)
 
Line 1: Line 1:
 + // FAQ:
 + //
 + // Frage: Wie übernehme ich dieses Skript?
 + //
 + // Antwort: Einfach "Quelltext betrachten", alles markieren und kopieren, und dann in deine eigene
 + // monobook.js (also hierhinein: [[Spezial:Mypage/monobook.js|Benutzer:<DeinName>/monobook.js]]) kopieren.
 + // Am sinnvollsten ist es dabei, wenn du die Originalversion von [[Benutzer:PDD/monobook.js]]
 + // übernimmst, da diese immer auf dem neuesten Stand ist.
 + //
 + // Frage: Kann ich dieses Skript einfach so übernehmen, oder muss ich da tausend Sachen ändern?
 + //
 + // Antwort: Du kannst natürlich alles ändern, aber du musst nicht. Einfach erstmal kopieren, ausprobieren,
 + // und dann so anpassen, dass es deinem Bedarf gerecht wird.
 + //
 + // Weitere Fragen und Antworten findest du hier: [[Benutzer:PDD/monobook FAQ]]
 +
 + // <nowiki> {{subst:Benutzer:PDD/monobook.js.DLWS}} </nowiki> <--- diese Zeile bitte nicht löschen
 +
 + //
 + // Hier bitte eine Signaturvariante aussuchen!
 + //
 +
 + // <nowiki>
 + // (Signaturvariante 1: sinnvoll bei unter "Einstellungen" typografisch angepassten Signaturen)
 + var usersignature = '\~\~\~\~';
 + // (Signaturvariante 2: Datum kleiner, kein Zeilenumbruch nach dem Leerzeichen)
 + // var usersignature = '<span style=\"white-space:nowrap;\">-- \~\~\~ <small>\~\~\~\~\~<\/small><\/span>';
 + // (Wiki-Standard-Signatur, bitte das Leerzeichen nach den zwei Strichen beachten)
 + // var usersignature = '-- \~\~\~\~';
 + // </nowiki>
 +
 + // Originalskript ursprünglich gefunden bei [[:en:User:Angela]]
 + // bearbeitet von [[Benutzer:Maximus Rex]]
 + // bearbeitet von [[Benutzer:SirJective]]
 + // bearbeitet von [[Benutzer:BLueFiSH.as]]
 + // bearbeitet von [[Benutzer:Littl]] (2005-09-07)
 + // bearbeitet von [[Benutzer:Schwalbe]] (2006-02-03)
 + // bearbeitet wieder von [[Benutzer:Littl]] (2006-02-21)
 + // bearbeitet von [[Benutzer:PDD]] (ab 2006-04-22)
 +
 + // *************** SETUP Teil 1 **********************************
 + // Parameter für Gadgets
 + // Gadgets müssen über [[Spezial:Einstellungen]] -> Gadgets freigeschaltet werden
 +
 + // Gadget: Extra-Editbuttons, siehe[[Wikipedia:Helferlein/Extra-Editbuttons]]
 +
 + // Anzahl und Reihenfolge wählbar (siehe: [[Wikipedia:Helferlein/Extra-Editbuttons#Die Buttons]])
 + var customEditButtons = "A,A3,B,C,E,F,G,H,I,I1,I2,J1,K,M,O,P,PO,Q,R,R3,S,T,T1,U,V,W,X,Y1,Y2,VP,VC,VN,SM";
 + // zu entfernende Standard-Edit buttons (0...10)
 + var rmEditButtons = [6,7,10]; // Standardbutton entfernen
 + var myButtons = {} // eigene Buttons?
 +
 + // *************** SETUP Teil 2 **********************************
 + // Parameter für diese monobook.js (Quickbar, Module etc.)
 +
 + var zeigeversion = true; // monobook-Version anzeigen?
 + var zeigehilfe = true; // kurze Hilfetexte beim überfahren mit der Maus anzeigen?
 + var qbnewpage = true; // sollen Seiten aus dem QuickBar im neuen Fenster aufgerufen werden?
 + var rclimit = 500; // angezeigte Anzahl auf "Letzte Änderungen"
 + var nplimit = 500; // angezeigte Anzahl auf "Neue Artikel"
 + var nulimit = 1000; // angezeigte Anzahl auf "Neuanmeldungs-Logbuch"
 + var nvlimit = 500; // angezeigte Anzahl auf "Alte, gesichtete Seiten"
 + var usedropdown = false; // Wenn keine Dropdowns gewünscht sind, hier false eintragen!
 + var timeout = 50000; // 50 Sekunden auf das Neuladen der Seite warten
 + var timezoneshift = 0; // Unterschied lokale Zeit zur Systemzeit (bleibt für Mitteleuropäer 0)
 + var debugme = false; // Debug-Modus?
 + var qbfontsize = 100; // Schriftgröße im QuickBar (relativ in Prozent)
 +
 + // systemweite Default-Optionen aus [[MediaWiki:Monobook.js]]
 + NavigationBarShowDefault = 0; // Navi-Leisten: alle einklappen == 0; alle ausklappen == 15 (z.B.)
 + var oldEditsectionLinks = false; // "Bearbeiten"-Links bei Abschnitten ganz nach rechts?
 + var enable_linkFA = true; // "Featured Articles" in fremdsprachigen Wikipedias markieren?
 +
 + // <nowiki>
 + // Modul: changeBeschriftungen.js
 + var beschriftungen = true; // kosmetische Änderungen an der MediaWiki-Oberfläche?
 + var markhandsoff = true; // fremde Benutzerseiten grafisch markieren?
 + // Beschriftungen: personal toolbar
 + var cbmytalk = "Meine Diskussion";
 + var cbprefs = "Einstellungen";
 + var cbwatchlist = "Beobachtungsliste";
 + var cbmyconts = "Meine Beiträge";
 + var cblogout = "X";
 + // Beschriftungen: current article
 + var cbedit = "Bearbeiten";
 + var cbhistory = "Versionen";
 + var cbmove = "Verschieben";
 + var cbwatch = "Beobachten";
 + var cbunwatch = "Ignorieren";
 + // Beschriftungen: tools
 + var cbwhatlinkshere = "Links a. d. Seite";
 + var cblinked = "Verlinkte Änderungen";
 + var cbmail = "E-Mail senden";
 + var cbupload = "Bild hochladen";
 + var cbprint = "Druckversion";
 + var cbblock = "User sperren";
 + // Beschriftungen: portlets
 + var cblang = "Interwiki";
 +
 + // Modul: Sperrstatus.js
 + var sperrstatus = true; // Sperrstatus einer Seite farblich anzeigen?
 +
 + // Modul: changeSZtoSS.js
 + var changeszlig = false; // "ß" in "ss" ändern (nach Schweizer Rechtschreibung)?
 +
 + // Modul: eintragen.js
 + var autosave = true; // automatisches Speichern von QS/LA/SLA/Vandal-Einträgen?
 + var signogrundparam = false; // auf true setzen, wenn Signatur das SLA-Eintragen behindert
 + var emptylinesafterhr = 1; // Leerzeilen zwischen LA-Baustein und Artikeltext
 + var defaultSLA = "Kein Artikel"; // Standard-SLA-Grund
 + var defaultVandal = "vandaliert in [[]]"; // Standardgrund für Vandalismusmeldung (Benutzer)
 + var defaultAVandal = "Edit-War"; // Standardgrund für Vandalismusmeldung (Artikel)
 +
 + // Modul: hinweise.js
 + var hinweis = true; // Portal- und Redaktionshinweis verwenden?
 +
 + // Modul: godmode-light.js
 + var godmodelight = true; // "Zurücksetzen" einblenden?
 + var godmodenewstyle = true; // neuer Rollback-Kommentartext?
 +
 + // Modul: addEditAndRevertLinks.js
 + var editlinkoldversion = true; // Bearbeiten-Link für ältere Versionen anzeigen?
 + var editlinktxt = "edit"; // Text des Edit-Links
 + var revertwithreason = true; // Revert-Link mit Grund-Eingabe anzeigen?
 + var revlinktxt = "rev"; // Text des Revert-Links
 + var revlinkshowuser = true; // beim Revertieren über (Rev)-Link letzten Benutzer angeben?
 + var rvisminor = true; // sind Reverts mit "(rev)"-Link Minor-Changes?
 + var aearldefault = "Grund: keine Verbesserung des Artikels"; // Defaultgrund beim Revertieren
 + var aerhistory = true; // Links auch in der Versionsgeschichte?
 + var aearlhere = true; // Revertaktion im selben Browserfenster?
 +
 + // Modul: addLogsLink.js
 + var addlogslink = true; // Zusatzlinks zu Spezial:Log einfügen?
 + var pagelogtext = "Page:Log"; // Text des Seitenlogbuch-Links
 + var userlogtext1 = "User:Log:1"; // Texte der beiden Benutzerlog-Links
 + var userlogtext2 = "User:Log:2";
 +
 + var addusercontriblink = true; // auf Benutzerseiten auch noch Link auf Contributions?
 + var usercontribtext = "User:Contribs"; // Text des Contributions-Links ("Benutzerbeiträge")
 + var userdeledittext = "User:DelEdits"; // Text des Links auf Deleted Edits
 + var userstatstext = "User:Stats"; // Text des Links auf Benutzerstatistik
 + var userstatstype = "interiot"; // Art der Benutzerstatistik
 + // (interiot/dab/yaec/kate/wannabe_kate/misza)
 + var usergallerytext = "User:Gallery"; // Text des Links auf Bildergalerie des Benutzers
 + var userstimmrechttext = "User:Stimmrecht"; // Text des Links auf Stimmrechtcheck
 +
 + var adduserarticlelink = true; // auf Benutzerseiten Link auf erstellte Artikel?
 + var userarticletext = "User:Articles"; // Text des Links auf erstellte Artikel
 +
 + var addbrowselink = true; // auf allen Seiten Link zum alphabetischen Browsen?
 + var browseuserprefix = true; // bei Nutzerseiten stattdessen alle Unterseiten des Nutzers zeigen?
 + var browsetext = "Browse"; // Text des Links auf Browsing-Seite
 +
 + var addiusagelink = true; // bei Bildern Link zur Bildnutzung (Commons)?
 + var imgusagetext = "IMG:C-Usage"; // Text des Links auf Bildnutzung
 +
 + // Modul: modifyCA.js
 + var addeditintro = true; // TAB zum Editieren des Nullabschnitts (Intros) einer Seite hinzufügen?
 + var editintrotext = "IntroBearbeiten"; // Beschriftung des TABs
 + var addpurge = true; // TAB zum Purgen (Servercache-Updaten) einer Seite hinzufügen?
 + var purgetext = "Purge"; // Beschriftung des TABs
 +
 + // Modul: markAdmins.js
 + var markadmins = true; // Admins u.ä. besonders hervorheben?
 + var marksubpages = true; // auch Links auf Admin-Unterseiten markieren?
 + var mawatchlist = true; // auch auf der Beobachtungsliste?
 + var macontribs = true; // auch auf den Benutzerbeiträgen?
 + var markatxt = "A"; // Markierung für Admins
 + var markrenatxt = "A-Ren"; // Markierung für umbenannte Admins
 + var markbureautxt = "B"; // Markierung für Bürokraten
 + var markstewtxt = "S"; // Markierung für Stewards
 +
 + var markcomadmins = true; // zusätzlich: Commons-Admins besonders hervorheben?
 + var markcomatxt = "Com-A"; // Markierung für Commons-Admins
 +
 + var markexadmins = true; // zusätzlich: Ex-Admins besonders hervorheben?
 + var markexatxt = "Ex-A"; // Markierung für Ex-Admins
 + var markexbureautxt = "Ex-B"; // Markierung für Ex-Bürokraten
 +
 + var markarbcom = true; // zusätzlich: Schiedsgericht besonders hervorheben?
 + var markarbcomtxt = "SG"; // Markierung für Schiedsgerichtler
 +
 + var markcheckuser = true; // zusätzlich: CheckUser besonders hervorheben?
 + var markcheckusertxt = "CU"; // Markierung für Checkuser-Berechtigte
 + var markombudsmantxt = "O"; // Markierung für Ombudspersonen
 +
 + // Modul: markUTF8.js
 + var markutf8 = true; // Sonderzeichenbenutzernamen besonders hervorheben?
 + var muwatchlist = true; // auch auf der Beobachtungsliste?
 + var mucontribs = true; // auch auf den Benutzerbeiträgen?
 + var markutf8txt = "UTF8!"; // Markierung für UTF8-kodierte Nutzernamen etc.
 + var markltrtxt = "UTF8:LTR!"; // Markierung für Lemmata mit LTR-Mark
 +
 + // Modul: markErledigt.js
 + var markerledigt = true; // Erledigt-Button auf Seiten mit [[Vorlage:Autoarchiv-Erledigt]]
 +
 + // Modul: reftoggle.js
 + var reftoggle = false; // "Quellen verstecken"/"Quellen anzeigen"-Schalter für Fußnoten?
 +
 + // Modul: newgallery.js
 + var newgallery = false; // Anzahl Bilder/Zeile in Galerien verändern?
 + var gallery_len = 6; // Breite der Galerien
 + var bCategory = true; // nur in Kategorien?
 + var bArticle = true; // (oder/und) nur in Artikeln?
 +
 + // Modul: quickedit.js
 + var qeEnabled = false; // QuickEdit aktivieren?
 + var qeEnableSection0 = false; // QuickEdit-Link für Abschnitt 0 (Einleitung)?
 + var qeEnableAccessKeys = true; // Tastaturbefehle aktivieren?
 + var qeShowErrors = true; // Fehlermeldungen anzeigen
 + var qeTextboxHeight = 20; // Höhe des Textfelds
 +
 + // Modul: APPERs RP
 + var rechtschreibpruefung = false; // Rechtschreibprüfung aktivieren?
 + var AutorunRP = false; // false = RP durch Anklicken; true = automatische RP
 +
 + // Modul: APPERs IP-Patrol Vandalenmarkierer
 + var ippvandalmark = false; // IP-Patrol-Vandalenmarkierung aktivieren?
 +
 + // Modul: osm.js
 + var openstreetmap = false; // OpenStreetMap-Link anschalten?
 +
 + // Modul: coordinates.js
 + // (für dieses Modul im CSS #editpage-copywarn nicht ausblenden!)
 + var coordinates = false; // Koordinate_Artikel in Editfenster generierbar?
 +
 + // Modul: unsigned.js
 + var unsigning = true; // Einfügen von Unsigned bei unsignierten Beiträgen auf Diskussionsseiten?
 + var addownsig = false; // unsigniert-Baustein unterschreiben?
 + var ssubst = true; // unsigniert-Baustein mit subst einfügen?
 +
 + // Modul: signing.js
 + var signing = false; // automatische Unterschrift auf Diskussionsseiten?
 + // Liste der Nicht-Diskussionsseiten, die ebenfalls unterschrieben werden sollen:
 + var regpages = new Array(':Verbesserungsvorschläge', ':Löschkandidaten', ':Löschprüfung', ':Entsperrwünsche', ':Adminkandidaturen', ':Qualitätssicherung', ':Fragen_zur_Wikipedia', ':Meinungsbilder', ':Review', ':Bilderwünsche', ':Kandidaten');
 +
 + // Modul: SearchBox.js
 + var searchbox = false; // erweitertes suchen/ersetzen
 +
 + // </nowiki>
 +
 + // Modul: popups.js (Lupin, Navpop)
 + var lupinpopups = false; // Popup-Modul einbinden?
 + // Optionen für Lupin-Popups
 + // (ausführliche Liste siehe [[Wikipedia:Helferlein/Navigation-Popups#Optionen]] bzw.
 + // aktueller und auf englisch [[:en:Wikipedia:Tools/Navigation popups#Options]])
 + popupDelay = 1; // Popupverzögerung in s (DEFAULT: 0.5)
 + simplePopups = false; // auf true setzen, wenn Laden im Hintergrund unerwünscht (DEFAULT: false)
 + popupStructure = 'menus'; // Aussehen der Popups (DEFAULT: 'shortmenus')
 + popupActionsMenu = false; // separates "actions"-Menu (DEFAULT: true)
 + popupImages = true; // Bilder im Popup erwünscht? (DEFAULT: true)
 + popupSubpopups = true; // Popups für Links innerhalb von Popups generieren? (DEFAULT: true)
 + popupAdminLinks = false; // Funktionen, die nur Admins nutzen können (DEFAULT: false)
 + // nächste Option sollte bei Verwendung von showRedundantLinks.js *nicht* auf true gesetzt werden
 + removeTitles = false; // Originaltitel der Links nach popups verschieben? (DEFAULT: true)
 + popupFixRedirs = true; // Links auf Redirects korrigieren? (DEFAULT: false)
 + popupWatchRedirredPages = false; // korrigierte Seite beobachten? (DEFAULT: null)
 + popupRedirAutoClick = 'wpSave'; // ausgeführte Aktion beim Korrigieren von Redirects (DEFAULT: 'wpDiff')
 + popupRedlinkRemoval = true; // Rote Links entfernen? (DEFAULT: false)
 + popupFixDabs = true; // Links auf BKLs korrigieren? (DEFAULT: false)
 + popupWatchDisambiggedPages = false; // korrigierte Seite beobachten? (DEFAULT: null)
 + popupLastModified = true; // Zeit seit letzter Änderung anzeigen? (DEFAULT: true)
 + popupDiffDates = true; // Änderungsdaten bei Diffs anzeigen? (DEFAULT: true)
 + popupOnlyArticleLinks = true; // Popups nur für Artikel-Links (DEFAULT: true)
 + imagePopupsForImages = false; // Bildvorschau laden, wenn Mausposition über Bild? (DEFAULT: true)
 + popupMaxWidth = 400; // Maximalbreite des Popup-Fensters (DEFAULT: 350)
 + popupRevertSummaryPrompt = true; // Prompt zum Ändern des Revert-Kommentars? (DEFAULT: false)
 + popupMaxPreviewSentences = 2; // Anzahl der angezeigten Sätze in der Vorschau (DEFAULT: 4)
 + // <nowiki>
 + // Link auf Popups zu Messages hinzufügen?
 + addpopuplink = true;
 + // deutsche Texte für Lupin
 + popupFixDabsSummary = "Ersetze BKL-Seite [[%s]] durch [[%s]]" + (addpopuplink ? " mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]]" : "");
 + popupExtendedRevertSummary = "Revert auf Version vom %s von Benutzer %s, oldid %s" + (addpopuplink ? " mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]]" : "");
 + popupRevertSummary = "Revert auf Version %s" + (addpopuplink ? " mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]]" : "");
 + popupRevertToPreviousSummary = "Revert auf Vorgängerversion der Version %s" + (addpopuplink ? " mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]]" : "");
 + popupQueriedRevertSummary = "Revert auf Version $1 vom $2 von $3" + (addpopuplink ? " mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]]" : "");
 + popupQueriedRevertToPreviousSummary = "Revert auf Vorgängerversion der Version $1 vom $2 von $3" + (addpopuplink ? " mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]]" : "");
 + popupFixRedirsSummary = "Ersetze Redirect [[%s]] durch [[%s]]" + (addpopuplink ? " mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]]" : "");
 + popupRedlinkSummary = "Entferne Link auf leere Seite [[%s]]" + (addpopuplink ? " mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]]" : "");
 + popupRmDabLinkSummary = "Entferne Link auf BKL-Seite [[%s]]" + (addpopuplink ? " mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]]" : "");
 +
 + // weitere Module
 + var showredundantlinks = false; // zeigt doppelte Links an
 + var ripe = false; // Ripe - Tooltips?
 + var irrenhaus = false; // Script für mehr Abwechslung im "neue Nachrichten"-Balken
 + var js_highlight = false; // javascript-code farbig hervorheben (.js and pre-tags)
 + var imgdupecheck = true; // Bilder-Duplikate anzeigen
 +
 + // special rights options
 + var dellinknowcommons = true; // Löschlink bei NowCommons-Bildern (von Revvar/Codeispoetry)
 + var loescheimer = true; // erleichtertes LK-Abarbeiten (von mnh)
 + var filter_rfdtoc_by_default = true; // Löscheimer: TOC der LK-Seite filtern?
 +
 + // **************** SETUP Ende ***********************************
 +
 + // (PDD: note to self: version auch in alert-Funktion ändern!)
 + var version = 'P098u';
 +
 + var user = wgUserName; // username wird automatisch übernommen
 +
 + // aktuelle Zeit ermitteln
 + var jetzt = new Date();
 + // recalculate 4 furriners
 + var jetztfixed = jetzt.getTime();
 + jetztfixed += (timezoneshift * 3600 * 1000);
 + jetzt.setTime(jetztfixed);
 + // fill date variables
 + var Monate = new Array("", "Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
 + var Monatekurz = new Array("", "Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez");
 + var Jahr = jetzt.getYear();
 + if (Jahr < 999) Jahr += 1900;
 + var Monat = jetzt.getMonth() + 1;
 + var Tag = jetzt.getDate();
 + // fill WP date variables
 + var WPDatum = Tag + '._' + Monate[Monat] + '_' + Jahr;
 + var WPDatum2 = Jahr + '/' + Monate[Monat] + '/' + Tag;
 + var WPDatum3 = Monate[Monat] + ' ' + Jahr;
 + var WPDatum4 = Jahr + '-' + LeadingZero(Monat);
 + var WPDatum5 = Jahr + LeadingZero(Monat) + '/';
 + var refDatum = Tag + '. ' + Monatekurz[Monat] + '. ' + Jahr;
 + var refDatumlang = Tag + '. ' + Monate[Monat] + ' ' + Jahr;
 +
 + // Lemma-Varianten (work in progress) + redundant zu addLogsLink etc.
 + // get page title
 + var pagetitle = wgPageName;
 + var spagetitle = wgTitle;
 + // do real spaces; fix for lemmas with '&'
 + var ptitle = pagetitle.replace(/_/g, " ").split('&').join('%26');
 + var sptitle = spagetitle.replace(/_/g, " ").split('&').join('%26');
 + // do + escaped (" " to "+")
 + var pesctitle = spaceEscape(ptitle);
 + var spesctitle = spaceEscape(sptitle);
 + // lemmatitle for external lookup
 + var spesctitlelookup = spesctitle.split('+(')[0];
 + // Komma-Lemma für Personen (Klammerzusätze weg etc.)
 + var personlemma = spagetitle.split(' (')[0];
 + var titlesplit = personlemma.split(' ');
 + if (titlesplit.length > 1) {
 + personlemma = titlesplit[titlesplit.length-1] + ',';
 + for (i=0; i<(titlesplit.length-1); i++)
 + personlemma=personlemma + " "+titlesplit[i];
 + }
 +
 + // get URL parameters (used for page type variables)
 + var UrlParameters = new Array ();
 + readparams();
 +
 + function readparams() {
 + var asReadInUrlParameters;
 + var asReadInUrlParameter;
 +
 + // Get URL parameters
 + asReadInUrlParameters = location.search.substring(1, location.search.length).split("&");
 + for (i = 0; i < asReadInUrlParameters.length; i++) {
 + asReadInUrlParameter = asReadInUrlParameters[i].split("=");
 + UrlParameters[decodeURIComponent(asReadInUrlParameter[0])] = decodeURIComponent(asReadInUrlParameter[1]);
 + }
 + }
 +
 + // page type variables: namespaces
 + var isArticle = (wgNamespaceNumber == 0);
 + var isArticleTalk = (wgNamespaceNumber == 1);
 + var isBild = (wgCanonicalNamespace == "Image");
 + var isCategory = (wgCanonicalNamespace == "Category");
 + var isTemplate = (wgCanonicalNamespace == "Template");
 + var isGeneric = false;
 + if ((!isBild) && (!isCategory) && (!isTemplate))
 + isGeneric = true;
 + var isProject = (wgCanonicalNamespace == "Project"); /* NR Wikipedia: */
 + var isHelp = (wgCanonicalNamespace == "Help"); /* NR Hilfe */
 +
 + // page type variables: namespace == -1
 + var isSpecial = (wgCanonicalNamespace == "Special");
 + var isRestore = (isSpecial && (wgCanonicalSpecialPageName == "Undelete"));
 + var isContrib = (isSpecial && (wgCanonicalSpecialPageName == "Contributions"));
 + var isDelContrib = (isSpecial && (wgCanonicalSpecialPageName == "DeletedContributions"));
 + var isWatchlist = (isSpecial && (wgCanonicalSpecialPageName == "Watchlist"));
 +
 + // page type variables: namespace == -1
 + var isTalk = (!isSpecial && isOdd(wgNamespaceNumber));
 +
 + // page type variables: other stuff
 + var isPHP = (document.URL.indexOf('index.php') > 0);
 + var isDiff = UrlParameters["diff"];
 + var isEdit = ( (UrlParameters['action']=='edit')
 + || (UrlParameters['action']=='submit') );
 + var isHistory = (UrlParameters['action']=='history');
 +
 + // userpage/name stuff, vor allem für IPs
 + var userPageOwner = "";
 + if (isContrib || isDelContrib) {
 + if (UrlParameters['target']) userPageOwner = UrlParameters['target'].split('+').join('_');
 + else {
 + userPageOwner = decodeURIComponent(location.href.substring(location.href.indexOf("/wiki/") + 6)).split('#')[0];
 + userPageOwner = userPageOwner.substring(userPageOwner.indexOf("Beiträge/") + 9);
 + }
 + }
 +
 + // page type variables: user & user discussion lumped together
 + var isUserpage = ( (wgCanonicalNamespace == "User") || (wgCanonicalNamespace == "User_talk") );
 + var isUserMainpage = false;
 + if (isUserpage)
 + if (wgTitle == wgTitle.split("/")[0]) {
 + isUserMainpage = true;
 + userPageOwner = wgTitle;
 + }
 +
 + // handelt es sich um eine IP?
 + var isIPUser = false;
 + if (userPageOwner != "")
 + if (userPageOwner.match(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/) != null)
 + if ((userPageOwner.split(".")[0] > 1) && (userPageOwner.split(".")[0] < 255))
 + isIPUser = true;
 +
 + // Admin & editor functions
 + var adminflag = false;
 + if (hasRight("sysop")) adminflag = true;
 +
 + var editorflag = false;
 + if (hasRight("editor")) editorflag = true;
 +
 + // Browserkram
 + var userbrowser = "Standard";
 + if (navigator.userAgent.indexOf("Opera") > -1)
 + userbrowser = "Opera";
 + if (navigator.userAgent.indexOf("Safari") > -1)
 + userbrowser = "Standard";
 + if (navigator.userAgent.indexOf("MSIE") > -1) {
 + userbrowser = "IE";
 + if (navigator.userAgent.indexOf("MSIE 7") > -1)
 + userbrowser = "IE7";
 + }
 +
 + // force Browserswitches
 + if ((userbrowser == "IE") || (userbrowser == "IE7")) {
 + godmodelight = false;
 + showredundantlinks = false;
 + }
 + if (userbrowser == "Opera") {
 + godmodelight = false;
 + }
 +
/* /*
- -----------------------------------------------------------------------------+ * ab hier wird der Quickbar (der Kasten oben links) zusammengebaut
- God-like Monobook skin+ *
- (c) 2005 Sam Hocevar <sam@zoy.org>+ * zuerst die allgemeinen Variablen (hier bitte nix ändern!)
- $Id: godmode-light.js 1106 2006-04-03 20:25:37Z sam $+ */
- -----------------------------------------------------------------------------+ 
- + var Quickbar = '<div class="pBody noprint" id="p-quickbar" style="position:absolute; top:5px; left:0px; width:14.1em; z-index:10;">';
- 17.02.2006 fixes by [[Benutzer:Littl|Littl]] (2 bugs)+ // optional: opacity:0.9;
- 18.03.2006 fixes by [[Benutzer:NickKnatterton|NK]] (fix for new MediaWiki version)+ var xxx = '';
- 08.04.2006 fixes by [[Benutzer:PDD|PDD]] (another fix for new MediaWiki version)+ 
- 30.04.2006 (D, PDD, Olliminatore) (another fix for new MediaWiki version, &)+ var trenner='<hr />';
- 02.05.2006 ([[Benutzer:Kohl|Kohl]] - another fix for new MediaWiki version, link fix, german error msg added)+ var br ='<br />';
- 03.05.2006 ([[User:Olliminatore|Olliminatore]] - fix for IE)+ 
- 21.06.2006 ([[User:Voice of All|Voice of All]] - fix "X, not X is the last editor" bug and reduce history limit (faster))+ var qbtarget = '_self';
- 06.01.2007 ([[User:Prodego|Prodego]]) - fix for the new 'undo' feature+ if (qbnewpage) qbtarget = '_blank';
- + 
- -----------------------------------------------------------------------------+ var dropdown = usedropdown;
- Language support, taken from phase3/languages+ var scrpt = '';
- -----------------------------------------------------------------------------+ var scrptn = 0;
- *///<pre><nowiki>+ var indropdown;
- + var ind;
-var rollbacklink = 'rollback';+ 
-var cantrollback = 'Cannot revert edit; last contributor is only author of this page.';+ /*
-var alreadyrolled = 'Cannot rollback last edit of [[$1]] by [[User:$2|$2]] ([[User talk:$2|Talk]]); someone else has edited or rolled back the page already. Last edit was by [[User:$3|$3]] ([[User talk:$3|Talk]]). ';+ * Quickbar-Zusammenbau, Teil 1:
-var revertpage = 'Reverted edits by [[Special:Contributions/$2|$2]] to last version by $1';+ *
- + * zuerst die Reihenfolge der einzelnen Abschnitte:
- // error messages language support (en:, de:)+ */
-var ERROR_MESSAGE = 'No ['+rollbacklink+'] Button can be produced. This can happen by new MediaWiki version or other changes at the software. Inform please one of the authors of the Godmode script.';+ 
-var UNABLE_TO_DETERMINE_VANDAL = 'The vandale cannot be determined.';+ function buildQuickbar() {
-var NOT_TOP_VERSION = 'Cannot revert edit; That is not the last version difference.';+ qbWPIntern();
-var ERROR_XML = 'Giving up! :( Cannot create an XMLHTTP instance.';+ qbPatrol();
-var PARAMETER_MISSING = 'Cannot display revert button; A parameter is missing.';+ qbWartung();
- + qbToolserver();
-switch (wgUserLanguage){+ qbCategoryTools();
- case 'fr':+ qbImageTools();
- rollbacklink = 'révoquer';+ qbExternTools();
- cantrollback = 'Impossible de révoquer: dernier auteur est le seul à avoir modifié cet article';+ 
- alreadyrolled = 'Impossible de révoquer la dernière modification de [[$1]] par [[User:$2|$2]] ([[User talk:$2|Talk]]); quelqu\'un d\'autre à déjà modifer ou révoquer l\'article. La dernière modificaion était de [[User:$3|$3]] ([[User talk:$3|Talk]]). '; // lol @ pathetic grammar+ // ab hier keine Dropdowns mehr
- revertpage = "Révocation des modifications de [[Special:Contributions/$2|$2]] et restauration d'une précédente version de $1";+ closedropdown();
- break;+ dropdown=false;
- case 'de':+ 
- rollbacklink = 'Zurücksetzen';+ // die folgenden werden nur im Edit-Modus eingeblendet
- cantrollback = 'Die Änderung kann nicht zurückgenommen werden; der letzte Autor ist der einzige.';+ qbEditTags();
- alreadyrolled = 'Die Zurücknahme des Artikels [[$1]] von [[Benutzer:$2|$2]] ([[Benutzer Diskussion:$2|Diskussion]]) ist nicht möglich, da eine andere Änderung oder Rücknahme erfolgt ist. Die letzte Änderung ist von [[Benutzer:$3|$3]] ([[Benutzer Diskussion:$3|Diskussion]])';+ qbArticleTemps();
- revertpage = 'Änderungen von [[Benutzer:$2|$2]] ([[Spezial:Contributions/$2|Beiträge]]) rückgängig gemacht und letzte Version von $1 wiederhergestellt';+ qbMarkupTools();
- // Fehlermeldungen + qbImageTemps();
- ERROR_MESSAGE = 'Es kann kein ['+rollbacklink+']-Button erzeugt werden. Dies kann durch eine neue MediaWiki-Version oder andere Änderungen an der Software verursacht sein. Bitte einen der Autoren des Godmode-Skripts benachrichtigen.';+ qbUsertalkTemps();
- UNABLE_TO_DETERMINE_VANDAL= 'Der Vandale kann nicht bestimmt werden.';+ 
- NOT_TOP_VERSION = 'Zurücksetzen nicht möglich: Das ist nicht der letzte Versionsunterschied';+ // der folgende Abschnitt wird nur bei Admins eingeblendet
- PARAMETER_MISSING = 'Für diese Seite fehlt ein Parameter.';+ qbAdminTools();
- break;+ 
- case 'es':+ // Automatisches Bausteinsetzen
- rollbacklink = 'Revertir';+ qbAutoTemps();
- cantrollback = 'No se pueden revertir las ediciones; el último colaborador es el único autor de este artículo.';+ }
- alreadyrolled = 'No se puede revertir la última edición de [[$1]] por [[Colaborador:$2|$2]] ([[Colaborador Discusión:$2|Discusión]]); alguien más ya ha editado o revertido esa página. La última edición fue hecha por [[Colaborador:$3|$3]] ([[Colaborador Discusión:$3|Discusión]]). ';+ 
- revertpage = 'Revertida a la última edición de $1';+ 
- break;+ /*
- case 'it':+ * Quickbar-Zusammenbau, Teil 2:
- rollbacklink = 'rollback';+ *
- cantrollback = 'Impossibile tornare ad una versione precedente: l\'ultima modifica è stata apportata dall\'unico utente che abbia lavorato a questo articolo.';+ * die Belegung der einzelnen Abschnitte
- //alreadyrolled = '';+ */
- revertpage = 'Riportata alla revisione precedente da $1';+ 
- break;+ function qbWPIntern() {
- case 'pt':+ w (0,trenner,'Wikipedia','');
- rollbacklink = 'voltar';+ 
- cantrollback = 'Não foi possível reverter a edição; o último contribuidor é o único autor deste artigo.';+ // w (1,'/wiki/Hilfe:MediaWiki','MW',qbtarget,'MediaWiki-Hilfe');
- alreadyrolled = 'Não foi possível reverter as edições de [[$1]] por [[User:$2|$2]] ([[User talk:$2|Talk]]); alguém o editou ou já o reverteu. A última edição foi de [[User:$3|$3]] ([[User talk:$3|Conversar com ele]]). ';+ // w (1,'/wiki/Wikipedia:Hilfe','RTFM',qbtarget,'Wikipedia-Hilfe');
- revertpage = 'Revertidas edições por [[Special:Contributions/$2|$2]], para a última versão por $1';+ // w (1,'/wiki/Hilfe:Textgestaltung','TG',qbtarget,'Hilfe zur Textgestaltung');
- break+ // w (1,'/wiki/Hilfe:Farben','FT',qbtarget,'Hilfe zur Farbgestaltung');
-};+ w (1,'/wiki/Wikipedia:Kurier','K',qbtarget,'Wikikurier - Das Wikipedia-Nachrichtenblatt');
- + w (1,'/wiki/Wikipedia:Fragen zur Wikipedia','FZW',qbtarget,'Fragen zur Wikipedia');
-// -----------------------------------------------------------------------------+ w (1,'/wiki/Wikipedia:Auskunft','A',qbtarget,'Auskunft');
-// XMLHttpRequest support+ // w (1,'/wiki/Wikipedia:Autorenportal','P',qbtarget,'Autorenportal');
-// -----------------------------------------------------------------------------+ w (1,'/wiki/Wikipedia:Projektneuheiten','NEU',qbtarget,'Projektneuheiten');
-if (document.implementation.createDocument) var gml_xmlparser = new DOMParser();+ w (1,'/wiki/Wikipedia:Verbesserungsvorschläge','VV',qbtarget,'Verbesserungsvorschläge');
-var gml_xmlhttp;+ // w (1,'/wiki/Wikipedia:Tellerrand','TE',qbtarget,'Tellerrand');
- + w (1,'/wiki/Wikipedia:Administratoren/Anfragen','AAF',qbtarget,'Administratoren/Anfragen');
-function gml_XMLParse(string){+ w (1,'/wiki/Wikipedia:Administratoren/Notizen','AN',qbtarget,'Administratoren/Notizen');
- if (document.implementation.createDocument)+ w (1,'/wiki/Wikipedia:Dritte_Meinung','3M',qbtarget,'Dritte Meinung');
- return gml_xmlparser.parseFromString(string, "text/xml");+ // w (1,'/wiki/Wikipedia:Projektdiskussionen','PRD',qbtarget,'Projektdiskussionen');
- else if (IE){+ w (1,'/wiki/Wikipedia:Adminkandidaturen','AK',qbtarget,'Adminkandidaturen');
- var gml_xmldoc = new ActiveXObject("Microsoft.XMLDOM");+ w (1,'/wiki/Wikipedia:Schiedsgericht/Anfragen','SG/A',qbtarget,'Schiedsgericht/Anfragen');
- //var gml_xmldoc = new ActiveXObject("Msxml2.DOMDocument.3.0");+ w (1,'/wiki/Wikipedia:Checkuser/Anfragen','CU/A',qbtarget,'Checkuser/Anfragen');
- gml_xmldoc.async = false;+ // w (1,'/wiki/Wikipedia:Abkürzungen','ABK',qbtarget,'Abkürzungen');
- //gml_xmldoc.validateOnParse = true;+ }
- ret = gml_xmldoc.loadXML(string);+ 
- myErr = gml_xmldoc.parseError;+ function qbPatrol() {
- if (myErr.errorCode || !ret){+ w (0,trenner,'Überwachung','');
- showError("Error: " + ERROR_XML + myErr.reason);+ 
- return null;+ w (1,'/w/index.php?title=Special:Recentchanges&hideminor=0&hideliu=1&hidebots=1&hidepatrolled=0&days=7&limit='+rclimit,'RCs',qbtarget,'Letzte Änderungen');
- }+ w (1,'/wiki/Special:Contributions/newbies','RCNs',qbtarget,'Beiträge neuer Benutzer');
- return gml_xmldoc.documentElement+ w (1,'/w/index.php?title=Special:Newpages&namespace=0&limit='+nplimit,'NeuA',qbtarget,'Neue Artikel');
- }+ // w (1,'/wiki/Special:Newimages','NeuD',qbtarget,'Neue Dateien (Bilder)');
- return null+ w (1,'/w/index.php?title=Special:Log&limit='+nulimit+'&type=newusers','NeuB',qbtarget,'Neue Benutzer');
-}+ w (1,'/w/index.php?title=Special:OldReviewedPages&limit='+nvlimit,'NeuE',qbtarget,'Neue Edits in gesichteten Artikeln');
- + w (1,'/wiki/Wikipedia:Vandalismusmeldung','VM',qbtarget,'Vandalismusmeldung');
-function HTTPClient(){+ w (1,'/wiki/Wikipedia:Sperrprüfung','SPP',qbtarget,'Sperrprüfung');
- var http = false;+ w (1,'/wiki/Wikipedia:Löschprüfung','LP',qbtarget,'Löschprüfung');
- if(window.XMLHttpRequest) http = new XMLHttpRequest();+ w (1,'/wiki/Wikipedia:Entsperrwünsche','EW',qbtarget,'Entsperrwünsche');
- else if (IE){+ w (1,'/wiki/Wikipedia:Administratoren/Probleme','AP',qbtarget,'Admin-Probleme');
- try{+ w (1,'/wiki/Special:Log','Log',qbtarget,'Logfiles');
- http = new ActiveXObject("Msxml2.XMLHTTP")+ // w (1,'irc://irc.freenode.net/wikipedia-de','IRC',qbtarget,'IRC-Chat #wikipedia-de');
- } catch(e){+ }
- try{+ 
- http = new ActiveXObject("Microsoft.XMLHTTP")+ function qbWartung() {
- } catch(e){}+ w (0,trenner,'Wartung','');
 + 
 + // w (1,'/wiki/Wikipedia:Löschregeln','WP:LR',qbtarget,'Löschregeln');
 + w (1,'/wiki/Kategorie:Wikipedia:Schnelllöschen','SLK',qbtarget,'Schnelllöschkandidaten');
 + w (1,'/wiki/Wikipedia:Löschkandidaten','LK',qbtarget,'Löschkandidaten');
 + w (1,'/wiki/Wikipedia:Löschkandidaten/'+WPDatum,'LKH',qbtarget,'Löschkandidaten (heute)');
 + // w (1,'/wiki/Wikipedia:Löschkandidaten/Bilder/'+WPDatum,'BildLK',qbtarget,'Löschkandidaten (Bilder)');
 + // w (1,'/wiki/Wikipedia:WikiProjekt_Kategorien/Diskussionen/'+WPDatum2,'KatLK',qbtarget,'Löschkandidaten (Kategorien)');
 + w (1,'/wiki/Wikipedia:Versionslöschungen','LKV',qbtarget,'Versionslöschungen');
 + w (1,'/wiki/Wikipedia:Löschkandidaten/Urheberrechtsverletzungen','URV',qbtarget,'Löschkandidaten (URVs)');
 + 
 + w (1,'/wiki/Wikipedia:Qualitätssicherung/'+WPDatum,'QS',qbtarget,'Qualitätssicherung');
 + w (1,'/wiki/Wikipedia:Redundanz/'+WPDatum3,'RED',qbtarget,'Redundanz');
 + w (1,'/wiki/Kategorie:Wikipedia:Unverständlich','Wirr',qbtarget,'Unverständlich');
 + 
 + w (1,'/wiki/Wikipedia:Kandidaten für exzellente Artikel','KEA',qbtarget,'Kandidaten für exzellente Artikel');
 + w (1,'/wiki/Wikipedia:Kandidaten für lesenswerte Artikel','KLA',qbtarget,'Kandidaten für lesenswerte Artikel');
 + w (1,'/wiki/Wikipedia:Review','RV',qbtarget,'Review');
 + w (1,'/wiki/Wikipedia:Kandidaten für exzellente Bilder','KEB',qbtarget,'Kandidaten für exzellente Bilder');
 + w (1,'/wiki/Wikipedia:Kandidaten für informative Listen und Portale','KILP',qbtarget,'Kandidaten für informative Listen und Portale');
 + // w (1,'/wiki/Wikipedia:Kandidaten für exzellente Aufnahmen','KEAU',qbtarget,'Kandidaten für exzellente Aufnahmen');
 + }
 + 
 + function qbToolserver() {
 + w (0,trenner,'Toolserver','');
 + 
 + qbUserTools();
 + 
 + // w (1,"http://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,"http://toolserver.org/~vvv/adminstats.php?wiki=dewiki_p&tlimit=2419200",'AdmA',qbtarget,'Adminaktivität (letzte 4 Wochen)');
 + 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,"http://toolserver.org/~magnus/wikitodo.php?language=de",'2Do',qbtarget,'Wikipedia ToDo');
 + w (1,"http://toolserver.org/~dab/jservlets/flaggedrevs/showunsighpages?twoYears=true&redirect=true",'UsP',qbtarget,'Zufälliger Artikel zum Sichten');
 + 
 + if (isArticle) {
 + w (1,"http://stats.grok.se/de/"+WPDatum5+ptitle,'AStat',qbtarget,'Wikipedia article traffic statistics');
 + w (1,"http://toolserver.org/~daniel/WikiSense/Contributors.php?wikilang=de&wikifam=.wikipedia.org&page="+pesctitle+"&since=&until=&grouped=on&order=-rev_timestamp&max=100&order=-rev_timestamp&format=html",'Conts',qbtarget,'Beiträge zu diesem Artikel');
} }
- } 
- return http 
-}; 
-  
-// ----------------------------------------------------------------------------- 
-// MD5 hash calculator 
-// ----------------------------------------------------------------------------- 
-// Version 2.1 Copyright (C) Paul Johnston 1999 - 2002. 
-// Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet 
-// Distributed under the BSD License 
-// See http://pajhome.org.uk/crypt/md5 for more info. 
-// ----------------------------------------------------------------------------- 
-var hexcase = 0; 
-var b64pad = ""; 
-var chrsz = 8; 
-  
-function hex_md5(s){return binl2hex(core_md5(str2binl(s), s.length * chrsz))}; 
-  
-function core_md5(x,len){ 
- x[len>>5]|=0x80<<((len)% 32); 
- x[(((len+64)>>>9)<<4)+14]=len; 
- var a=1732584193, b=-271733879, c=-1732584194, d=271733878; 
- for(var i=0;i<x.length;i+=16){ 
- var olda=a, oldb=b, oldc=c, oldd=d; 
- a=md5_ff(a,b,c,d,x[i+0],7,-680876936);d=md5_ff(d,a,b,c,x[i+1],12,-389564586);c=md5_ff(c,d,a,b,x[i+2],17,606105819);b=md5_ff(b,c,d,a,x[i+3],22,-1044525330);a=md5_ff(a,b,c,d,x[i+4],7,-176418897);d=md5_ff(d,a,b,c,x[i+5],12,1200080426);c=md5_ff(c,d,a,b,x[i+6],17,-1473231341);b=md5_ff(b,c,d,a,x[i+7],22,-45705983);a=md5_ff(a,b,c,d,x[i+8],7,1770035416);d=md5_ff(d,a,b,c,x[i+9],12,-1958414417);c=md5_ff(c,d,a,b,x[i+10],17,-42063);b=md5_ff(b,c,d,a,x[i+11],22,-1990404162);a=md5_ff(a,b,c,d,x[i+12],7,1804603682);d=md5_ff(d,a,b,c,x[i+13],12,-40341101);c=md5_ff(c,d,a,b,x[i+14],17,-1502002290);b=md5_ff(b,c,d,a,x[i+15],22,1236535329); 
- a=md5_gg(a,b,c,d,x[i+1],5,-165796510);d=md5_gg(d,a,b,c,x[i+6],9,-1069501632);c=md5_gg(c,d,a,b,x[i+11],14,643717713);b=md5_gg(b,c,d,a,x[i+0],20,-373897302);a=md5_gg(a,b,c,d,x[i+5],5,-701558691);d=md5_gg(d,a,b,c,x[i+10],9,38016083);c=md5_gg(c,d,a,b,x[i+15],14,-660478335);b=md5_gg(b,c,d,a,x[i+4],20,-405537848);a=md5_gg(a,b,c,d,x[i+9],5,568446438);d=md5_gg(d,a,b,c,x[i+14],9,-1019803690);c=md5_gg(c,d,a,b,x[i+3],14,-187363961);b=md5_gg(b,c,d,a,x[i+8],20,1163531501);a=md5_gg(a,b,c,d,x[i+13],5,-1444681467);d=md5_gg(d,a,b,c,x[i+2],9,-51403784);c=md5_gg(c,d,a,b,x[i+7],14,1735328473);b=md5_gg(b,c,d,a,x[i+12],20,-1926607734); 
- a=md5_hh(a,b,c,d,x[i+5],4,-378558);d=md5_hh(d,a,b,c,x[i+8],11,-2022574463);c=md5_hh(c,d,a,b,x[i+11],16,1839030562);b=md5_hh(b,c,d,a,x[i+14],23,-35309556);a=md5_hh(a,b,c,d,x[i+1],4,-1530992060);d=md5_hh(d,a,b,c,x[i+4],11,1272893353);c=md5_hh(c,d,a,b,x[i+7],16,-155497632);b=md5_hh(b,c,d,a,x[i+10],23,-1094730640);a=md5_hh(a,b,c,d,x[i+13],4,681279174);d=md5_hh(d,a,b,c,x[i+0],11,-358537222);c=md5_hh(c,d,a,b,x[i+3],16,-722521979);b=md5_hh(b,c,d,a,x[i+6],23,76029189);a=md5_hh(a,b,c,d,x[i+9],4,-640364487);d=md5_hh(d,a,b,c,x[i+12],11,-421815835);c=md5_hh(c,d,a,b,x[i+15],16,530742520);b=md5_hh(b,c,d,a,x[i+2],23,-995338651); 
- a=md5_ii(a,b,c,d,x[i+0],6,-198630844);d=md5_ii(d,a,b,c,x[i+7],10,1126891415);c=md5_ii(c,d,a,b,x[i+14],15,-1416354905);b=md5_ii(b,c,d,a,x[i+5],21,-57434055);a=md5_ii(a,b,c,d,x[i+12],6,1700485571);d=md5_ii(d,a,b,c,x[i+3],10,-1894986606);c=md5_ii(c,d,a,b,x[i+10],15,-1051523);b=md5_ii(b,c,d,a,x[i+1],21,-2054922799);a=md5_ii(a,b,c,d,x[i+8],6,1873313359);d=md5_ii(d,a,b,c,x[i+15],10,-30611744);c=md5_ii(c,d,a,b,x[i+6],15,-1560198380);b=md5_ii(b,c,d,a,x[i+13],21,1309151649);a=md5_ii(a,b,c,d,x[i+4],6,-145523070);d=md5_ii(d,a,b,c,x[i+11],10,-1120210379);c=md5_ii(c,d,a,b,x[i+2],15,718787259);b=md5_ii(b,c,d,a,x[i+9],21,-343485551); 
- a=safe_add(a,olda); 
- b=safe_add(b,oldb); 
- c=safe_add(c,oldc); 
- d=safe_add(d,oldd) 
} }
- return Array(a,b,c,d)+ 
-};+ function qbUserTools() {
- + if (userPageOwner == "") return;
-function md5_cmn(q,a,b,x,s,t){return safe_add(bit_rol(safe_add(safe_add(a,q),safe_add(x,t)),s),b)};+ 
-function md5_ff(a,b,c,d,x,s,t){return md5_cmn((b&c)|((~b)&d),a,b,x,s,t)};+ if (isIPUser) {
-function md5_gg(a,b,c,d,x,s,t){return md5_cmn((b&d)|(c&(~d)),a,b,x,s,t)};+ // w (1,"http://www.ripe.net/whois?form_type=simple&full_query_string=&searchtext="+userPageOwner+"&do_search=Search",'IPripe',qbtarget);
-function md5_hh(a,b,c,d,x,s,t){return md5_cmn(b^c^d,a,b,x,s,t)};+ w (1,"http://www.dnsstuff.com/tools/ipall.ch?domain="+userPageOwner,'IPinfo',qbtarget,'IPInfo/Whois');
-function md5_ii(a,b,c,d,x,s,t){return md5_cmn(c^(b|(~d)),a,b,x,s,t)};+ w (1,"http://www.dnsstuff.com/tools/tracert.ch?ip="+userPageOwner,'IPtrcrt',qbtarget,'Traceroute');
- + w (1,"http://www.as3344.net/is-tor/?args="+userPageOwner,'TOR',qbtarget,'TOR-Node-Check');
-function safe_add(x, y){+ w (1,"http://toolserver.org/~luxo/contributions/contributions.php?user="+userPageOwner+"&blocks=true&lang=de",'IP-GUC',qbtarget,'Global user contributions');
- var lsw = (x & 0xFFFF) + (y & 0xFFFF), msw = (x >> 16) + (y >> 16) + (lsw >> 16);+ // w (1,"http://toolserver.org/~vvv/rangecontribs.php?wiki=dewiki_p&user="+userPageOwner.substring(0, userPageOwner.lastIndexOf('.')),'IP-RaC',qbtarget,'IP range contributions');
- return (msw << 16) | (lsw & 0xFFFF)+ w (1,"http://de.wikipedia.org/w/api.php?action=query&list=usercontribs&uclimit=200&format=xmlfm&ucuserprefix="+userPageOwner.substring(0, userPageOwner.lastIndexOf('.'))+".",'IP-RaC',qbtarget,'IP range contributions via API');
-};+ w (1,"http://jodies.de/ipcalc?host="+userPageOwner+"&mask1=18&mask2=",'IPrange',qbtarget,'Range/Subnet Rechner');
- + } else {
-function bit_rol(num, cnt){return (num << cnt) | (num >>> (32 - cnt))};+ // w (1,"http://www.ripe.net/whois",'ripe',qbtarget);
- + // w (1,"http://www.dnsstuff.com/",'whois',qbtarget,'Whois');
-function str2binl(str){+ // w (1,"http://www.denic.de/de/",'denic',qbtarget,'Domain-Lookup');
- var bin = Array();+ // w (1,"http://www.iks-jena.de/cgi-bin/whois",'iks-whois',qbtarget,'IKS-Whois-Lookup');
- var mask = (1 << chrsz) - 1;+ 
- for(var i = 0; i < str.length * chrsz; i += chrsz)+ w (1,"http://toolserver.org/~vvv/sulutil.php?user="+userPageOwner,'GUA',qbtarget,'Global user accounts');
- bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32);+ w (1,"http://toolserver.org/~purodha/sample/dbswithuser.php?usr="+userPageOwner+"&go=Go%21&uselang=de",'GUA+',qbtarget,'Global user accounts (ausführlich)');
- return bin+ w (1,"http://toolserver.org/~luxo/contributions/contributions.php?user="+userPageOwner+"&lang=de",'GUC',qbtarget,'Global user contributions');
-};+ 
- + if (user != userPageOwner)
-function binl2hex(binarray){+ w (1,"http://toolserver.org/~cyroxx/familiar/familiar.php?user1="+spaceEscape(user)+"&user2="+spaceEscape(userPageOwner),'UFam',qbtarget,'Are U familiar?');
- var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";+
- var str = "";+
- for(var i = 0; i < binarray.length * 4; i++)+
- str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) ++
- hex_tab.charAt((binarray[i>>2] >> ((i%4)*8 )) & 0xF);+
- return str+
-};+
- +
-// -----------------------------------------------------------------------------+
-// Our nice Revert functions+
-// -----------------------------------------------------------------------------+
-var gml_vandal, gml_editor, gml_url;+
-var IE=(!is_opera&&!is_gecko)?true:false;+
- +
-function PerformRevert(){+
- var l, token = '', revert = false;+
- +
- if (!(window.bodyContent = document.getElementById('bodyContent'))) +
- window.bodyContent = document.getElementById('article');+
- +
- // Look for '&fakeaction=rollback' in URL+
- gml_url = location.pathname;+
- l = location.search.substring(1).split('&');+
- for (i = 0; i < l.length; i++){+
- var n = l[i].indexOf('=');+
- switch(l[i].substring(0, n)){+
- case 'fakeaction':+
- if (l[i].substring(n + 1) == 'rollback') revert = true;+
- break;+
- case 'vandal':+
- gml_vandal = decodeURIComponent(l[i].substring(n + 1));+
- break;+
- case 'token':+
- token = decodeURIComponent(l[i].substring(n + 1));+
- break;+
- case 'title':+
- gml_url += '?' + l[i];+
- break;+
} }
 +
 + // w (1,"http://toolserver.org/~interiot/cgi-bin/count_edits?user="+user+"&dbname=dewiki_p",'EC+',qbtarget,'Mein Editcount');
 + w (1,"http://toolserver.org/~chm/blockcalc.php",'BCalc',qbtarget,'Rangeblock-Calculator');
 +
 + }
 +
 + function qbCategoryTools() {
 + if (!isCategory) return;
 +
 + w (0,trenner,'Kategorie-Tools','');
 +
 + w (1,"http://toolserver.org/~daniel/WikiSense/CategoryIntersect.php?wikilang=de&wikifam=.wikipedia.org&basecat="+spesctitle+"&userlang=de",'K:Scan',qbtarget,'Kategorie: CatScan');
 + w (1,"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:Neu',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://toolserver.org/~magnus/missingtopics.php?project=wikipedia&language=de&category="+spesctitle+"&depth=5&wikimode=0&doit=Run",'K:Miss',qbtarget,'Kategorie: Fehlende Artikel');
 + w (1,"http://toolserver.org/~magnus/deep_out_of_sight.php?category="+spesctitle+"&depth=5",'K:NeuE',qbtarget,'Kategorie: Nachzusichtende Artikel');
 + }
 +
 + function qbImageTools() {
 + if (!isBild) return;
 +
 + w (0,trenner,'Bild-Tools','');
 +
 + w (1,"http://toolserver.org/~magnus/commonshelper.php?interface=de&lang=de&project=wikipedia&image="+spesctitle+"&doit='Text generieren'",'B:M2C',qbtarget,'Bild: Move-to-commons-Assistent');
 + w (1,"http://toolserver.org/~luxo/reworkhelper/index.php?image="+pesctitle,'B:RWH',qbtarget,'Bild: Reworkhelper');
 +
 + w (1,'http://commons.wikimedia.org/wiki/Special:Upload','C-Up',qbtarget,'Commons-Upload');
 + w (1,'http://toolserver.org/~daniel/WikiSense/CommonsClash.php?wikilang=de&wikifam=.wikipedia.org&order=img_name&max=200&format=html','C-C',qbtarget,'CommonsClash');
 + w (1,"http://toolserver.org/~magnus/commonshelper.php?interface=de&lang=de&project=wikipedia",'M2C',qbtarget,'Move-to-commons-Assistent');
 + }
 +
 + function qbExternTools() {
 + w (0,trenner,'Externe Tools','');
 +
 + // w (1,"http://www.copyscape.com",'CopySc',qbtarget);
 + w (1,"http://www.affenkrieger.de/wiki/wikicc.php",'AffenKr',qbtarget,'Affenkrieger');
 + w (1,'http://vs.aka-online.de/cgi-bin/globalwpsearch.pl?search='+pesctitle+'&timeout=300&minor=1','GWS',qbtarget,'GlobalWikiSearch');
 + w (1,'http://wikipedia.ramselehof.de/wikiblame.php?article='+pesctitle+'&user_lang=de&skipversions=2&ignorefirst=3&limit=250','WBlame',qbtarget,'Wikiblame');
 + w (1,'http://vs.aka-online.de/cgi-bin/wppagehiststat.pl?lang=de&page='+pesctitle,'WPHS',qbtarget,'Seitenstatistik');
 + // w (1,"http://www.itp.uni-hannover.de/~krohn/wscan.html.utf8",'Krohn',qbtarget);
 + w (1,'http://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://www.canoo.net",'Canoo',qbtarget);
 + w (1,"http://www.cia.gov/cia/publications/factbook/index.html",'FactB',qbtarget,'CIA World Factbook');
 + w (1,"http://de.encarta.msn.com/artcenter_/browse.html",'Enc',qbtarget,'MSN Encarta');
 + w (1,"http://lexikon.meyers.de/meyers/Meyers:Meyers_Lexikon_online",'Meyers',qbtarget,'Meyers Lexikon online');
 + w (1,"http://www.retrobibliothek.de/retrobib/suche.html",'rbib',qbtarget,'retro-bib (u. a. Meyers Konversationslexikon 1888)');
 +
 + if (isArticle) {
 + // w (1,"http://www.zeno.org/Zeno/0/Suche?&q=%22" + spesctitlelookup + "%22&h=1",'Zeno',qbtarget,'Verschiedene Lexika bei zeno.org');
 + w (1,"http://www.zeno.org/Zeno/0/Suche?&q=" + spesctitlelookup + "&h=1",'Zeno',qbtarget,'Verschiedene Lexika bei zeno.org');
 + } else {
 + w (1,"http://www.zeno.org/Bibliothek",'Zeno',qbtarget,'Verschiedene Lexika bei zeno.org');
 + }
 +
 + w (1,"http://www.ddb.de",'DNB',qbtarget,'Deutsche Nationalbibliothek');
 +
 + if (isArticle) {
 + w (1,"http://dispatch.opac.ddb.de/DB=4.1/CMD?ACT=SRCHA&IKT=8514&SRT=YOP&TRM="+quickEscape(personlemma,1),'DNB-PND',qbtarget,'DNB (PND-Suche)');
 + } else {
 + w (1,"http://dnb.ddb.de/",'DNB-PND',qbtarget,'DNB (PND-Suche)');
 + }
 +
 + w (1,"http://www.ubka.uni-karlsruhe.de/kvk.html",'KVK',qbtarget,'Karlsruher Virtueller Katalog');
 + w (1,"http://toolserver.org/gradzeichen/IsbnCheckAndFormat?Language=Deutsch&FormatOnlyRaw=no&Test=http%3A%2F%2Fswb.bsz-bw.de%2FDB%3D2.1%2FCMD%3FACT%3DSRCHA%26IKT%3D1007%26TRM%3DMAGIC",'ISBN',qbtarget,'ISBN Checker/Formatter');
 + w (1,"http://mdz1.bib-bvb.de/~ndb/ndbmaske.html",'A/NDB',qbtarget,'Allgemeine/Neue Deutsche Biographie');
 + // w (1,"http://bse.sci-lib.com/",'Бсэ',qbtarget,'Большая советская энциклопедия');
 + w (1,"http://encycl.yandex.ru/dict/bse",'Бсэ',qbtarget,'Большая советская энциклопедия');
 + }
 +
 + function qbEditTags() {
 + if (isBild) return;
 + if (!isEdit) return;
 +
 + w (0,trenner,'Editierhilfen','');
 +
 + w (3,"br,'',''",'br','','Zeilenumbruch');
 + w (3,"'&','nbsp;',''",'nbsp','','Geschütztes Leerzeichen');
 + w (3,"'†','',''",'†','','Kreuz');
 + // w (3,"'—','',''",'—','','Geviertstrich (Spiegelstrich)');
 + w (3,"'–','',''",'–','','Halbgeviertstrich (Gedankenstrich)');
 + // w (3,"'-','',''",'-','','Viertelgeviertstrich (Bindestrich)');
 + // w (3,"'−','',''",'−','','Minuszeichen');
 + w (3,"'→','',''",'→','','Pfeil nach rechts');
 + w (3,"'←','',''",'←','','Pfeil nach links');
 + w (3,"'<!-- ',' -->',''",'// comment','','<!--Kommentar-->');
 + w (3,"'„','“',''",'„“','','Anführungszeichen');
 + // </nowiki>
 + w (3,"'<nowiki>','</nowiki>',''",'Nowiki','','<nowiki>');
 + w (3,"'<code><nowiki>','</nowiki></code>',''",'Code','','<code+nowiki>');
 + // <nowiki>
 + w (3,"'<span class=\\u0022plainlinks\\u0022>','</span>',''",'Plain','','Plain Link');
 + w (3,"'<small>','</small>',''",'<small>small</small>','','Klein');
 + w (3,"'<s>','</s>',''",'<s>strike</s>','','Durchstreichen');
 + w (3,"'<u>','</u>',''",'<u>under</u>','','Unterstreichen');
 + w (3,"'<ref>','</ref>',''",'<small>[ref]</small>','','Referenz');
 + w (3,"'<ref name=\\u0022name\\u0022>','</ref>',''",'<small>[refN]</small>','','Referenz-Name');
 + w (3,"'<ref name=\\u0022name\\u0022 />','',''",'<small>[refR]</small>','','Referenz-Name-Wiederholung');
 + w (3,"'<math>','</math>',''",'Math');
 + w (3,"':<math>\\u005Cmathrm{','}</math>',''",'ChemForm');
 + }
 +
 + function qbArticleTemps() {
 + if (isBild) return;
 + if (!isEdit) return;
 +
 + w (0,trenner,'Artikelbausteine','');
 +
 + w (3,"'== Weblinks ==\\n','',''",'Weblinks','','== Weblinks ==');
 + w (3,"'== Einzelnachweise ==\\n<references />\\n','',''",'Refs','','== Einzelnachweise ==');
 +
 + w (3,"'[[Kategorie:',']]\\n',''","Kat:",'','[[Kategorie:]]');
 + w (3,"'{{DEFAULTSORT:" + tagEscape(quickEscape(personlemma,2)) + "}}\\n','',''","DefSrt",'','{{DEFAULTSORT:');
 + w (3,"'[[Benutzer:',']]',''","User:",'','[[Benutzer:]]');
 + w (3,"'[[Wikipedia:',']]',''","WP:",'','[[Wikipedia:]]');
 +
 + w (0,br,'','');
 +
 + w (3,"'{{Personendaten\\n|NAME=" + tagEscape(personlemma) + "\\n|ALTERNATIVNAMEN=\\n|KURZBESCHREIBUNG=\\n|GEBURTSDATUM=\\n|GEBURTSORT=\\n|STERBEDATUM=\\n|STERBEORT=\\n}}\\n','',''",'PD','','{{Personendaten...');
 + w (3,"'* {{PND|','}}\\n',''","PND",'','PND (individualisiert)');
 + w (3,"'* {{PND|','|Keine Treffer im DNB-OPAC, " + refDatumlang + "}}\\n',''","PNDx",'','PND (individualisiert, ohne Treffer)');
 + w (3,"'* {{PNDfehlt|" + refDatumlang + "|','}}\\n',''","PNDF",'','PNDfehlt (nicht individualisiert, aber mit Treffern)');
 + w (3,"'* {{ADB|Band|SeiteStart|SeiteEnde|" + tagEscape(personlemma) + "|Artikelautor}}\\n','',''","ADB",'','{{ADB...');
 + w (3,"'* {{NDB|Band|SeiteStart|SeiteEnde|" + tagEscape(personlemma) + "|Artikelautor}}\\n','',''","NDB",'','{{NDB...');
 + w (3,"'* {{BBKL|x/name_x_y|autor=|artikel=" + tagEscape(personlemma) + "|band=|spalten=–}}\\n<!-- bitte vollständig ausfüllen -->\\n','',''","BBKL",'','{{BBKL...');
 + w (3,"'* {{IMDb Name|','|" + tagEscape(wgTitle) + "}}\\n',''","IMDb-n",'','{{IMDb Name...');
 + w (3,"'* {{IMDb Titel|tt','|" + tagEscape(wgTitle) + "}}\\n',''","IMDb-t",'','{{IMDb Titel...');
 + w (3,"'* {{IMDb Firma|','|" + tagEscape(wgTitle) + "}}\\n',''","IMDb-f",'','{{IMDb Firma...');
 + w (3,"'* {{OFDb|','|" + tagEscape(wgTitle) + "}}\\n',''","OFDb",'','{{OFDb...');
 +
 + w (0,br,'','');
 +
 + w (2,"'','#REDIRECT [[]]',1","Redir",'','#REDIRECT [[]]');
 + w (2,"'+Überarbeiten','{{Überarbeiten}}\\n',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 (isBild) return;
 + if (!isEdit) return;
 +
 + w (0,trenner,'Markup-Tools','');
 +
 + w (4,"addPersData();","AutoPD",'','Automatische Kategorien und Personendaten'); // extern
 + w (4,"wpTextReplace();","Replace",'','Suchen und Ersetzen');
 + if (rechtschreibpruefung && !AutorunRP && !isSpecial)
 + w (4,"spellcheck();","SpellChk",'','Rechtschreibprüfung');
 + w (4,"ReplaceQuoteSigns();","FixQuote",'','Anführungszeichen korrigieren'); // extern
 + w (4,"convertEntities();","FixEnt",'','HTML-Entities entfernen'); // extern
 + w (4,"fixDash();","FixDash",'','Striche auf Halbgeviert vereinheitlichen'); // extern
 + w (4,"ReplaceMarkup();","FixMark",'','Verschiedene Markup-Korrekturen'); // extern
 + w (4,"undate();","UnDate",'','Daten entlinken');
 + }
 +
 + function qbImageTemps() {
 + if (!isBild) return;
 + if (!isEdit) return;
 +
 + w (0,trenner,'Bildbausteine','');
 + w (4,"nowcomm();","NowCommons",'','NowCommons-Baustein setzen');
 +
 + w (2,"'+DÜP','{{Dateiüberprüfung|Quelle|Urheber|Lizenz|Freigabe|Recht am eigenen Bild|Gezeigtes Werk|Besonderer Fall}}\\n\\n',3","DÜP",'','Dateiüberprüfung (bitte überflüssige Parameter entfernen)');
 + }
 +
 + function qbUsertalkTemps() {
 + if (!isUserpage) return;
 + if (!isTalk) return;
 + if (!isEdit) return;
 +
 + w (0,trenner,'Benutzerbausteine','');
 +
 + // w (3,"'{{subst:Benutzer:PDD/Greetings/Hallo|1=" + tagEscape(user) + "}} " + tagEscape(usersignature) + "\\n','','','Willkommen!'","Hallo",'','Baustein PDD:Hallo');
 + w (3,"'{{subst:Benutzer:PDD/Greetings/HalloG|1=" + tagEscape(user) + "|2=" + tagEscape(usersignature) + "}}\\n','','','Willkommen!'","Hallo",'','Baustein PDD:HalloG');
 + w (3,"'{{subst:Benutzer:PDD/Greetings/HalloColor|1=" + tagEscape(user) + "}}\\n','','','Willkommen!'","HalloC",'','Baustein PDD:HalloColor');
 + w (3,"'{{subst:Benutzer:PDD/Greetings/Danke}} " + tagEscape(usersignature) + "\\n','',''",'Danke','','Baustein PDD:Danke');
 + w (3,"'{{subst:Benutzer:Complex/Greetings/TestMitStopschild}} " + tagEscape(usersignature) + "\\n','',''",'Stop','','Baustein Complex:TestMitStopschild'); // Abwandlung von [[Benutzer:LKD/V/VHinweis]]
 + // w (3,"'{{subst:Benutzer:Blah/Vorlage:Vandale}}\\n','',''",'Vand','','Baustein Blah:Vandale');
 + // w (3,"'{{subst:Benutzer:Tobi B./Vorlage:Löschvandale}} " + tagEscape(usersignature) + "\\n','',''",'LöschV','','Baustein Tobi B.:Löschvandale');
 + w (3,"'{{subst:Benutzer:PDD/Greetings/KinderKinder!}}\\n','',''",'Kind','','Baustein PDD:Kind');
 + w (3,"'{{subst:Benutzer:Chaddy/Vorlage:Signaturhinweis}} " + tagEscape(usersignature) + "\\n','',''",'Sign!','','Signieren nicht vergessen');
 + w (3,"'{{subst:Vorschau}}\\n','',''",'Vorschau','','{{subst:Vorschau}}');
 + // w (3,"'{{subst:Benutzer:PDD/Greetings/Linkspam}} " + tagEscape(usersignature) + "\\n','',''",'Linkspam','','Baustein PDD:Linkspam');
 + w (3,"'{{subst:Benutzer:LKD/V/LHinweis}} " + tagEscape(usersignature) + "\\n','',''",'Linkspam','','Baustein LKD:Linkspam');
 + // w (3,"'{{subst:Benutzer:Complex/Greetings/WP-WEB}} " + tagEscape(usersignature) + "\\n','',''",'LinkspamC','','Baustein Complex:WP-WEB'); // Abwandlung von [[Benutzer:LKD/V/LHinweis]]
 + if (adminflag)
 + w (3,"'{{subst:Benutzer:LKD/V/ALoesch}} " + tagEscape(usersignature) + "\\n','',''",'SLA-ex','','Autorenbenachrichtigung nach Schnelllöschung');
 + }
 +
 + function qbAdminTools() {
 + if (!adminflag) return;
 +
 + if (isUserMainpage && isEdit) {
 + w (0,trenner,'','');
 + w (2,"'+Gesperrter Benutzer','{{Gesperrter Benutzer}}',1","BSp",'','Benutzer gesperrt');
 + w (2,"'+Vorübergehend gesperrter Benutzer','{{Vorübergehend gesperrter Benutzer}}',1","vBSp",'','Benutzer vorübergehend gesperrt');
 + w (2,"'+Offener Proxy','{{Offener Proxy}}',2","OP",'','Offener Proxy');
 + w (2,"'+Gesperrte IP','{{IP-Sperrung}}',2","IP-S",'','IP gesperrt');
 + }
 +
 + if (isRestore) {
 + w (0,trenner,'','');
 + w (4,"revAllDeletedVersions();","Auswahl umkehren?","","Versionsauswahl umkehren?");
 + }
 + }
 +
 + function qbAutoTemps() {
 + if (isSpecial && !isContrib) return;
 +
 + w (0,trenner,'Auto-Bausteine','');
 +
 + if (( isGeneric) && (!isSpecial)) w (4,"eintragen(1);","QS+","","+Qualitätssicherung");
 + if (( isGeneric) && (!isSpecial)) w (4,"eintragen(5);","URV+","","+URV");
 + if (( isGeneric) && (!isSpecial)) w (4,"eintragen(2);","LA+","","+Löschantrag");
 + if (( isCategory) && (!isSpecial)) w (4,"eintragen(7);","KatLA+","","+Löschantrag Kategorie");
 + if (( isTemplate) && (!isSpecial)) w (4,"eintragen(8);","VorLA+","","+Löschantrag Vorlage");
 + if ( (!isSpecial)) w (4,"eintragen(3);","SLA+","","+Schnelllöschantrag");
 +
 + if (hinweis) {
 + if (( isGeneric) && (!isSpecial)) w (4,"hinweis(1);","PH+","","+Portalhinweis");
 + if (( isGeneric) && (!isSpecial)) w (4,"hinweis(2);","RH+","","+Redaktionshinweis");
 + }
 + if (wgPageName == "Wikipedia:Spielwiese") w (4,"eintragen(10);","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)");
 + }
 + }
 +
 +
 + /*
 + * hier wird der Quickbar in die Seite geschrieben
 + * (ab hier bitte nichts ändern)
 + */
 +
 + buildQuickbar();
 + document.write(Quickbar);
 +
 + if (typeof(version) == 'undefined') var version = "?";
 + if (!isEdit || zeigeversion || isPHP) {
 + document.write(
 + '<div align=right>',
 +
 + (zeigeversion) ?
 + ('<a href="#" onclick="amIuptodate()" title="Versionscheck">' + (adminflag ? 'A/' : '') + version + '</a>&nbsp;&nbsp;')
 + : '',
 +
 + (!isEdit) ?
 + ('<input type="checkbox" id="reloadme" name="reloadme" onchange="setReload()" title="Seite alle ' + (timeout/1000) + ' s neu laden?"></input>&nbsp;&nbsp;')
 + : '&nbsp;',
 +
 + '<a href="/w/index.php?title=Spezial%3APrefixindex&from=',user,
 + '&namespace=2" target="', qbtarget, '" title="Meine Seiten im Benutzernamensraum">',
 + (user.split(' ')[0].length < 10) ? user.split(' ')[0] : 'MyPages',
 + '</a>',
 +
 + (userbrowser != "Standard") ?
 + ('&nbsp;&nbsp;<a href="#" onclick="badBrowser()" title="Browser nicht unterstützt">'
 + + userbrowser.charAt(0) + userbrowser.charAt(1) + '!</a>')
 + : '',
 +
 + '</div>');
 + }
 + document.write('<div style="font-size:',qbfontsize,'%;">',xxx,'</div></div>');
 +
 + if (scrpt > '') {
 + document.write('<script> function _doopt (was) { switch (was) {', scrpt, '}}<\/script>');
 + scrpt='';
 + }
 +
 + //
 + // ab hier functions
 + //
 +
 + function w (was,lurl,linktext,targt,title) {
 + if (!title) title=linktext;
 + if (!zeigehilfe) title='';
 + if (!dropdown) {
 + switch (was) {
 + case 0 : xxx=xxx+lurl;break;
 + case 1 : xxx=xxx+'<a href="'+lurl+'" target="'+targt+'" title="'+title+'">'+linktext+'</a>&nbsp; ';break;
 + case 2 : xxx=xxx+'<a href="#" onclick="newtext('+ lurl +')" title="'+title+'">'+linktext+'</a>&nbsp; ';break;
 + case 3 : xxx=xxx+'<a href="#" onclick="insertTagsWrapper('+ lurl +')" title="'+title+'">'+linktext+'</a>&nbsp; ';break;
 + case 4 : xxx=xxx+'<a href="#" onclick="'+ lurl +'" title="'+title+'">'+linktext+'</a>&nbsp; ';break;
 + }
 + } //if
 + else //todo: Hilfe bei Dropdowns. Benutzt die überhaupt jemand????
 + {
 + var ltext='__________'.substr(1,ind)+linktext;
 + switch (was) {
 + case 0 : if (lurl==br) { xxx = xxx+'<option>'+linktext+'</option>';ind=2; }
 + else
 + if (lurl==trenner) newdropdown(linktext);
 + break;
 + case 1 : xxx=xxx+'<option value="1|'+lurl+'">'+ltext+'</option>';break;
 + case 2 : xxx=xxx+'<option value="2|'+scrptn+'">'+ltext+'</option>';
 + scrpt=scrpt+'case '+scrptn+':newtext('+lurl+');break;';scrptn++;break;
 + case 3 : xxx=xxx+'<option value="3|'+scrptn+'">'+ltext+'</option>';
 + scrpt=scrpt+'case '+scrptn+':insertTagsWrapper('+lurl+');break;';scrptn++;break;
 + case 4 : xxx=xxx+'<option value="4|'+scrptn+'">'+ltext+'</option>';
 + scrpt=scrpt+'case '+scrptn+':'+lurl+';break;';scrptn++;break;
 + } //switch
 + } //else
 + } //w
 +
 + function dodropdown (aktion) {
 + var zutun = aktion.split('|');
 + var was = Number(zutun[0]);
 + var wie = zutun[1];
 +
 + switch (was) {
 + case 1 : window.open (wie); break;
 + case 2 : _doopt (Number(wie)); break;
 + case 3 : _doopt (Number(wie)); break;
 + case 4 : _doopt (Number(wie)); break;
 + } //switch
 + } //dodropdown
 +
 + function newdropdown (oname) {
 + closedropdown();
 + xxx = xxx+'<select size=1 onchange="dodropdown(this.value);" style="width:135px;font-size:9px;">';
 + if (oname > '') { xxx = xxx+'<option>'+oname+'</option>'; }
 + indropdown = true;
 + ind=2;
 + }
 +
 + function closedropdown () {
 + if (indropdown) xxx=xxx+'</select>';
 + indropdown = false;
 + }
 +
 + function newtext (subj,text,wo)
 + { //wo=1 : Text austauschen
 + //wo=2 : Text am Ende anhängen
 + //wo=3 : Text vorne Einfügen
 +
 + if (subj > "") {
 + if (document.editform.wpSummary.value > "") document.editform.wpSummary.value += ", ";
 + document.editform.wpSummary.value = document.editform.wpSummary.value + subj;
 + }
 +
 + switch (wo) {
 + case 1 : document.editform.wpTextbox1.value=text+'\n'; break;
 + case 2 : document.editform.wpTextbox1.value=document.editform.wpTextbox1.value+'\n'+text;break;
 + case 3 : document.editform.wpTextbox1.value=text+'\n'+document.editform.wpTextbox1.value;break;
 + }
 + document.editform.wpTextbox1.focus();
} }
- if (!revert) return;+ 
- bodyContent.innerHTML = 'Please wait, reverting edits by ' + gml_vandal + '...';+ function insertTagsWrapper(tagOpen, tagClose, sampleText, subj) {
- // Avoid XSS kiddies by using a special token+ if (subj > "") {
- if (token == '' || token != hex_md5(gml_url + gml_vandal + document.cookie))+ if (document.editform.wpSummary.value > "") document.editform.wpSummary.value += ", ";
- return bodyContent.innerHTML += '<br />Bad authentication token!';+ document.editform.wpSummary.value = document.editform.wpSummary.value + subj;
- gml_xmlhttp = HTTPClient();+ }
- if (!gml_xmlhttp) return showError(ERROR_XML);+ insertTags(untagEscape(tagOpen), untagEscape(tagClose), untagEscape(sampleText))
- history_url = gml_url + '&action=history&limit=25'; //+ }
- bodyContent.innerHTML += '<br />Getting article history (' + history_url + ')...';+ 
- gml_xmlhttp.open("GET", history_url, true);+ // Krimskrams
- gml_xmlhttp.onreadystatechange = RevertStepTwo;+ function isEven(myNumber) {
- gml_xmlhttp.send(null)+ return (myNumber % 2 == 0);
-};+ }
- + function isOdd(myNumber) {
-function parseXMLhack(xml){ // fixed: Hack for a MediaWiki bugs+ return (! isEven(myNumber));
- xml = xml.replace(/<body .*\"ns-(.*)\">/, '<body class="ns-$1">');+ }
- rer = xml.match(/<h1 .*<\/h1>/)[0].replace(/&/g, '&amp;');+ function LeadingZero(x) {
- if (rer) xml = xml.replace(/<h1 .*<\/h1>/, rer);+ return (x >= 10 || x < 0 ? "" : "0") + x;
- return xml+ }
-};+ function hasRight(right) {
- + return (wgUserGroups.indexOf(right) > -1);
-function RevertStepTwo(){+ }
- if (gml_xmlhttp.readyState != 4) return;+ function quickEscape(text, esctype)
- var l, oldid = false;+ {
- // Get the vandal and new editor names+ // esctype = 1 -> normal umlaut escapes
- gml_vandal = gml_vandal.replace(/_/g, ' ');+ // esctype = 2 -> wikisort umlaut escapes
- gml_editor = '',+ 
- ERROR_MESSAGE = 'failure';+ text = text.replace(/ß/g, "ss");
- xml = parseXMLhack(gml_xmlhttp.responseText);+ 
- xmlDoc = gml_XMLParse(xml);+ text = text.replace(/Á/g,"A").replace(/á/g,"a")
- if (!xmlDoc || !xmlDoc.hasChildNodes())+ .replace(/À/g,"A").replace(/à/g,"a")
- return bodyContent.innerHTML +=+ .replace(/Ă/g,"A").replace(/ă/g,"a")
- '<br />Failed to parse XML data returned by the server.' ++ .replace(/Â/g,"A").replace(/â/g,"a")
- '<br /><b>Hint: try to disable both "Enable section editing by right-clicking on section titles (JavaScript)" and "Edit pages on double click (JavaScript)" in your editing preferences until a proper fix is found<\/b>.'+ + .replace(/Å/g,"A").replace(/å/g,"a")
- '<br />Dump of the unparseable page : <br />' + xml.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');+ .replace(/Ā/g,"A").replace(/ā/g,"a")
- // IE: added by Olliminatore 03.05.2006+ .replace(/Ć/g,"C").replace(/ć/g,"c")
- l = (IE)?xmlDoc.selectSingleNode('//*[@id="pagehistory"]').childNodes:+ .replace(/Č/g,"C").replace(/č/g,"c")
- xmlDoc.getElementById('pagehistory').getElementsByTagName('li');+ .replace(/Ç/g,"C").replace(/ç/g,"c")
- name = l[0].getElementsByTagName('span')[0].getElementsByTagName('a')[0].firstChild.nodeValue.replace(/_/g, ' ');+ .replace(/Đ/g,"Dj").replace(/đ/g,"dj")
- if (name == gml_vandal){+ .replace(/É/g,"E").replace(/é/g,"e")
- for (i = 1; i < l.length; i++){+ .replace(/È/g,"e").replace(/è/g,"e")
- name = l[i].getElementsByTagName('span')[0].getElementsByTagName('a')[0].firstChild.nodeValue.replace(/_/g, ' ');+ .replace(/Ë/g,"e").replace(/ë/g,"e")
- if (name != gml_vandal){+ .replace(/Ě/g,"e").replace(/ě/g,"e")
- oldid = l[i].getElementsByTagName('input')[0].getAttribute('value');+ .replace(/Ğ/g,"G").replace(/ğ/g,"g")
- gml_editor = name;+ .replace(/Í/g,"I").replace(/í/g,"i")
- break+ .replace(/Ì/g,"I").replace(/ì/g,"i")
- }+ .replace(/Ï/g,"I").replace(/ï/g,"i")
- }+ .replace(/İ/g,"I").replace(/ı/g,"i")
- }+ .replace(/Î/g,"I").replace(/î/g,"i")
- else {//if (!oldid)+ .replace(/Ł/g,"L").replace(/ł/g,"l")
- return showError('Last editor is ' + name + ', not ' + gml_vandal + '!');+ .replace(/Ļ/g,"L").replace(/ļ/g,"l")
- }+ .replace(/Ń/g,"N").replace(/ń/g,"n")
- if (gml_editor == '') {// FIXME: if over 25 edits, than next page?action=history+ .replace(/Ñ/g,"N").replace(/ñ/g,"n")
- return showError(gml_vandal + ' is the only editor!');+ .replace(/Ň/g,"N").replace(/ň/g,"n")
- }+ .replace(/Ņ/g,"N").replace(/ņ/g,"n")
- gml_xmlhttp = HTTPClient();+ .replace(/Ó/g,"O").replace(/ó/g,"o")
- if (!gml_xmlhttp) return showError(ERROR_XML);+ .replace(/Ò/g,"O").replace(/ò/g,"o")
- bodyContent.innerHTML += '<br />Getting article edit form (GET' + gml_url + '&action=edit&oldid=' + oldid + ')...';+ .replace(/Ø/g,"O").replace(/ø/g,"o")
- gml_xmlhttp.open('GET', gml_url + '&action=edit&oldid=' + oldid, true);+ .replace(/Õ/g,"O").replace(/õ/g,"o")
- gml_xmlhttp.onreadystatechange = RevertStepThree;+ .replace(/Ő/g,"O").replace(/ő/g,"o")
- gml_xmlhttp.send(null)+ .replace(/Ř/g,"R").replace(/ř/g,"r")
-};+ .replace(/Ś/g,"S").replace(/ś/g,"s")
- + .replace(/Š/g,"S").replace(/š/g,"s")
-function RevertStepThree(){+ .replace(/Ş/g,"S").replace(/ş/g,"s")
- if (gml_xmlhttp.readyState != 4) return;+ .replace(/Ţ/g,"T").replace(/ţ/g,"t")
- var form, newform, l;+ .replace(/Ú/g,"U").replace(/ú/g,"u")
- // Insert the downloaded form in our current page, using+ .replace(/Ù/g,"U").replace(/ù/g,"u")
- // only hidden form inputs.+ .replace(/Ű/g,"U").replace(/ű/g,"u")
- // IE: added by Olliminatore 03.05.2006+ .replace(/Ů/g,"U").replace(/ů/g,"u")
- xmlDoc = gml_XMLParse(parseXMLhack(gml_xmlhttp.responseText));+ .replace(/Ý/g,"Y").replace(/ý/g,"y")
- form = (IE)? xmlDoc.selectSingleNode('//*[@id="editform"]') :+ .replace(/Ÿ/g,"Y").replace(/ÿ/g,"y")
- xmlDoc.getElementById('editform');+ .replace(/Ź/g,"Z").replace(/ź/g,"z")
- l = form.getElementsByTagName('textarea');+ .replace(/Ž/g,"Z").replace(/ž/g,"z")
- newform = document.createElement('form');+ .replace(/Ż/g,"Z").replace(/ż/g,"z")
- for (i = l.length; i--;){+ .replace(/Æ/g,"Ae").replace(/æ/g,"ae")
- var t = document.createElement('input');+ .replace(/Œ/g,"Oe").replace(/œ/g,"oe");
- t.type = 'hidden',+ 
- t.name = l[i].getAttribute('name');+ if (esctype == 1) {
- t.value = (IE)?l[i].nodeTypedValue:l[i].value; //nodeValue don't work for FF+ text = text.replace(/Ä/g,"Ae").replace(/ä/g,"ae")
- newform.appendChild(t)+ .replace(/Ö/g,"Oe").replace(/ö/g,"oe")
- }+ .replace(/Ü/g,"Ue").replace(/ü/g,"ue")
- l = form.getElementsByTagName('input');+ .replace(/Ə/g,"Ae").replace(/ə/g,"ae");
- for (i = l.length; i--;){+ } else {
- liname = l[i].getAttribute('name');+ text = text.replace(/Ä/g,"A").replace(/ä/g,"a")
- if (liname == 'wpSummary')+ .replace(/Ö/g,"O").replace(/ö/g,"o")
- l[i].setAttribute('value', revertpage.replace(/\$1/g, gml_editor).replace(/\$2/g, gml_vandal));+ .replace(/Ü/g,"U").replace(/ü/g,"u")
- else if (liname == 'wpMinoredit') l[i].setAttribute('value', '1');+ .replace(/Ə/g,"A").replace(/ə/g,"a");
- else if (liname == 'wpWatchthis'){+ }
- if (!l[i].getAttribute('checked')) continue; // Don’t touch the "watch" status+ return(text);
- l[i].setAttribute('value', "on")+ }
 + function tagEscape(text)
 + {
 + text = text.replace(/'/g, "%27");
 + text = text.replace(/"/g, "%22");
 + return(text);
 + }
 + function untagEscape(text)
 + {
 + text = text.replace(/%27/g, "'");
 + text = text.replace(/%22/g, "\"");
 + return(text);
 + }
 + function spaceEscape(text)
 + {
 + text = text.replace(/ /g, "+");
 + text = text.replace(/_/g, "+");
 + return(text);
 + }
 + 
 + // Funktion: importPage()
 + // zum Einbinden der Module
 + function importPage(seite, lang) { // all languages support
 + name='User:'; // international name, works in all wikipedias
 + if(!lang) lang = wgContentLanguage;
 + 
 + // new version
 + seite = 'http://' + lang + '.wikipedia.org' + wgScriptPath + '/index.php?title=' + name + seite +
 + '&action=raw&ctype=text/javascript&smaxage=0';
 + 
 + var head = document.getElementsByTagName('head').item(0);
 + var js = document.createElement('script');
 + js.setAttribute('type', 'text/javascript');
 + js.setAttribute('src', seite);
 + js.setAttribute('charset', 'utf-8');
 + head.appendChild(js);
 + 
 + return false;
 + // old version
 + // document.write('<SCRIPT TYPE="text/javascript" SRC="http://' + lang
 + // + '.wikipedia.org/w/index.php?title=' + name + seite
 + // + '&action=raw&ctype=text/javascript&smaxage=0"><\/SCRIPT>');
 + }
 + 
 + /*
 + * 3xImport von [[Benutzer:Revvar]]
 + * aus [[Benutzer:Revvar/wikibits.js]] und [[Benutzer:Revvar/monobook.js]]
 + */
 + 
 + /**
 + Imports a user javascript page from any wikipedia project into the actual document.
 + 
 + @version 0.1
 + @date 2007/03/22
 + @author: based on function importPage from [[de:User:PDD]]s monobook.js, extended by [[de:User:Revvar]]
 + @param page Name of the user page without the "user:" prefix and the ".js" appendix
 + @param lang (optional) Language code of the corresponding wikipedia project. Default is the callers project.
 + @return "true" on success, "false" otherwise
 + */
 + 
 + function importJavascriptL(page, lang)
 + {
 + try {
 + /* check the parameters and set defaults */
 + if(!page) throw("importJavascriptL: Missing parameter page.");
 + if(!lang) lang = wgContentLanguage;
 + 
 + /* create import url */
 + var import_url = 'http://' + lang + '.wikipedia.org' + wgScriptPath + '/index.php?title=User:' + page +
 + '.js&action=raw&ctype=text/javascript&smaxage=0';
 + 
 + /* import page */
 + var Head = document.getElementsByTagName('head').item(0);
 + var Script = document.createElement('script');
 + Script.setAttribute('type', 'text/javascript');
 + Script.setAttribute('src', import_url);
 + Script.setAttribute('charset', 'utf-8');
 + Head.appendChild(Script);
 + 
 + return true;
 + } catch(e) {
 + alert(e.message);
 + return false;
} }
- else if (liname == 'wpPreview' || liname == 'wpDiff') continue;+ }
- l[i].setAttribute('type', 'hidden');+ 
- if (IE) newform.insertAdjacentHTML('beforeEnd', l[i].xml);+ /**
- else newform.appendChild(l[i]);+ Imports a user css page from any wikipedia project into the actual document.
- }+ 
- newform.style.visibility='hidden'; // not really needed+ @version 0.1.1
- newform.name = form.getAttribute('name');+ @date 2007/03/26
- newform.method = form.getAttribute('method');+ @author: based on function importPage from [[de:User:PDD]]s monobook.js, rewritten by [[de:User:Revvar]]
- newform.id = form.getAttribute('id');+ @param page Name of the user page without the "user:" prefix and the ".css" appendix
- newform.action = form.getAttribute('action');+ @param lang (optional) Language code of the corresponding wikipedia project. Default is the callers project.
- bodyContent.innerHTML += '<br />Submitting form...';+ @return "true" on success, "false" otherwise
- bodyContent.appendChild(newform);+ */
- // Submit the form+ 
- newform.submit()+ function importCSSL(page, lang)
-};+ {
- + try {
-// -----------------------------------------------------------------------------+ /* check the parameters and set defaults */
-// Add revert buttons to the page+ if(!page) throw("importCSSL: Missing parameter page.");
-// -----------------------------------------------------------------------------+ if(!lang) lang = wgContentLanguage;
-function AddRevertButtons(){+ 
- var l, article = '', vandal;+ /* create import url */
- this._appendLink = function (node,article,vandal){+ var import_url = 'http://' + lang + '.wikipedia.org' + wgScriptPath + '/index.php?title=User:' + page +
- // node = strong element+ '.css&action=raw&ctype=text/css&smaxage=0';
- link = document.createElement('a')+ 
- link.setAttribute('href', article + '&fakeaction=rollback&vandal=' + encodeURI(vandal) + '&token=' + hex_md5(article + vandal + document.cookie));+ /* import page */
- link.appendChild(document.createTextNode(rollbacklink));+ var Head = document.getElementsByTagName('head').item(0);
- node.appendChild(document.createTextNode(' ['));+ var CSS = document.createElement('style');
- node.appendChild(link);+ CSS.setAttribute('type', 'text/css');
- node.appendChild(document.createTextNode(']')); + CSS.setAttribute('charset', 'utf-8');
- }+ CSS.appendChild(document.createTextNode("@import url(" + import_url + ");"));
- // Add 'revert' links to a contributions page+ Head.appendChild(CSS);
- var contribution_pos = location.href.indexOf(':Contributions') + 14;+ 
- if (contribution_pos != 13){+ return true;
- var a, c;+ } catch(e) {
- if (location.href.indexOf('target=',contribution_pos) == -1){ // after /wiki/Spezial:Contributions/?+ alert(e.message);
- c = location.href.substr(contribution_pos); // content user+ return false;
- if (c.length < 2)+ }
- return bodyContent.innerHTML += '<p style="color: RosyBrown;"><small>Godmode Info: ' + PARAMETER_MISSING + '<\/small><\/p>';+ }
- }+ 
- c = document.getElementById('contentSub');+ /**
- a = c.getElementsByTagName('a');+ Asynchron import of a Javascript file from the toolserver.
- // (1. Version, von Sam Hocevar)+ 
- //if (a.length >= 2) vandal = a[0].innerHTML; (clasht leider mit dem Mark-Admin-Skript)+ @version 0.1
- //else vandal = c.innerHTML.replace(/ \(.*/, '').replace(/.* /, '');+ @date 2007/04/24
- // (2. Version, von Littl)+ @author based on function importPage from [[de:User:PDD]]s monobook.js, rewritten by [[de:User:Revvar]]
- // if (a.length == 2) vandal = c.innerHTML.replace(/ \(.*/,'').replace(/.* /,'');+ @param path Path to the toolserver script without the ".js" appendix
- // else vandal = c.innerHTML.replace(/ \(.*/, '').replace(/.*">/,'').replace(/<.*/,'');+ */
- // (3. Version, von PDD)+ 
- if (a.length == 4) // four anchors in contentSub -> registered User+ function import_JS_from_TS(path)
- vandal = a[0].innerHTML;+ {
- else if (a.length == 3) // three anchors in contentSub -> IP+ try {
- vandal = c.innerHTML.replace(/ \(.*/, '').replace(/^[\D]*/,''); //FIXME: need optimizing+ /* check the parameter */
- else // sonstige Fälle (sollte es aber eigentlich nicht geben)+ if(!path) throw("import_JS_from_TS: Missing parameter path.");
- vandal = c.innerHTML.replace(/ \(.*/, '').replace(/.*>/,'').replace(/<.*/,'');+ 
- if (!vandal) return showError(UNABLE_TO_DETERMINE_VANDAL);+ /* create import url */
- l = bodyContent.getElementsByTagName('li');+ var import_url = 'http://toolserver.org/' + path + '.js';
- for (i = 0; i < l.length; i++){+ 
- var t = l[i].innerHTML;+ /* import */
- // If we are already a sysop on this wiki, abort+ setTimeout(function(e) {
- if (t.indexOf('>' + rollbacklink + '<\/a>]') != -1) return;+ var Head = document.getElementsByTagName('head').item(0);
- if (t.indexOf('<strong>(') != -1 || t.indexOf('<strong> (') != -1) {+ var Script = document.createElement('script');
- article = l[i].getElementsByTagName('a')[0].href.split('&')[0].replace(/[^\/]*\/\/[^\/]*/, '');+ Script.setAttribute('type', 'text/javascript');
- this._appendLink(l[i].lastChild, article, vandal);+ Script.setAttribute('src', import_url);
- }+ Script.setAttribute('charset', 'utf-8');
- }+ Head.appendChild(Script);
- }+ }, 1000);
- // Add 'revert' links to a diff page+ 
- else if (location.href.indexOf('&diff=') != -1){+ } catch(e) {
- l = bodyContent.getElementsByTagName('td');+ alert(e.message);
- for (i = 0; i < l.length; i++){+ return;
- if (l[i].className == 'diff-otitle')+ }
- article = l[i].getElementsByTagName('a')[0].href.split('&')[0].replace(/[^\/]*\/\/[^\/]*/, '');+ }
- else if (l[i].className == 'diff-ntitle'){+ 
- var toplink = l[i].getElementsByTagName('a')[0].href;+ 
- // (href-innerHTML Version by Olliminatore)+ // ***** FOOT-Block *****
- vandal = l[i].getElementsByTagName('br')[0].nextSibling.innerHTML // 2. line fixed: 07.02.2007+ // </nowiki> <- nicht löschen!!!
- if (article != '' && toplink.indexOf('oldid=') == -1){+ 
- this._appendLink(l[i].firstChild, article, vandal);+ // ausgelagerte obligatorische Funktionen
- if (!vandal) return showError(UNABLE_TO_DETERMINE_VANDAL);+ importJavascriptL('PDD/supportFuncs','de'); // [[Benutzer:PDD/supportFuncs.js]]
- }+ importJavascriptL('PDD/helperFunctions','de'); // [[Benutzer:PDD/helperFunctions.js]]
- else+ importJavascriptL('PDD/eintragen','de'); // [[Benutzer:PDD/eintragen.js]]
- bodyContent.innerHTML += '<p style="color: RosyBrown;"><small>Godmode Info: ' + NOT_TOP_VERSION + '<\/small><\/p>';+ importJavascriptL('PDD/alertOnChanges','de'); // [[Benutzer:PDD/alertOnChanges.js]]
- break;+ 
- }+ // obligatorisch nur für editpages
- }+ if (isEdit) {
- }+ importJavascriptL('PDD/wpTextReplace','de'); // [[Benutzer:PDD/wpTextReplace.js]]
-};+ importJavascriptL('BLueFiSH.as/JS/replaceQuoteSigns','de'); // [[Benutzer:BLueFiSH.as/JS/replaceQuoteSigns.js]]
- + importJavascriptL('BLueFiSH.as/JS/markup','de'); // [[Benutzer:BLueFiSH.as/JS/markup.js]]
-function showError(msg){ // show error message with red border+ importJavascriptL('PDD/convertEntities','de'); // [[Benutzer:PDD/convertEntities.js]]
- msg = '<p style="background-color: Maroon; color: White; border: solid Red; padding: 1ex; font: bold 90% system">Godmode Warning: ' + msg + ' (' + ERROR_MESSAGE + ')<\/p>';+ importJavascriptL('Euku/persDaten','de'); // [[Benutzer:Euku/persDaten.js]]
- bodyContent.innerHTML = msg + bodyContent.innerHTML;+ }
-}+ 
- + // ausgelagerte optionale Funktionen (Autoload)
-// -----------------------------------------------------------------------------+ 
-// Modify the page once it is loaded+ // revert/loglink-Funktionen: möglichst früh einbinden
-// -----------------------------------------------------------------------------+ // Revert godmode-light
-addOnloadHook(PerformRevert); // limited load possible?+ if (godmodelight && !adminflag && !editorflag && !isEdit && !(isSpecial && !isContrib)) {
-addOnloadHook(AddRevertButtons);+ importJavascriptL('PDD/godmode-light','de'); // [[Benutzer:PDD/godmode-light.js]]
- + // importJavascriptL('Olliminatore/godmode-light','en'); // [[:en:User:Olliminatore/godmode-light.js]]
-//</nowiki></pre><- not erase!!! [[User:Olliminatore/godmode-light.js]]+ }
 + // Revert addEditAndRevertLinks
 + if (!(!aerhistory && isHistory) && !isEdit) {
 + if (editlinkoldversion || revertwithreason)
 + importJavascriptL('PDD/addEditAndRevertLinks','de'); // [[Benutzer:PDD/addEditAndRevertLinks.js]]
 + }
 + // LogLinks addLogsLink
 + if (addlogslink && !isSpecial) importJavascriptL('PDD/addLogsLink','de'); // [[Benutzer:PDD/addLogsLink.js]]
 + 
 + // jetzt alles andere, was optional ist
 + if (!isSpecial)
 + if (addeditintro || addpurge) importJavascriptL('PDD/modifyCA','de'); // [[Benutzer:PDD/modifyCA.js]]
 + // changeBeschriftungen *nach* modifyCA.js (!)
 + if (beschriftungen) importJavascriptL('PDD/changeBeschriftungen','de'); // [[Benutzer:PDD/changeBeschriftungen.js]]
 + if (sperrstatus) importJavascriptL('Stefan/Sperrstatus','de'); // [[Benutzer:Stefan/Sperrstatus.js]]
 + if (changeszlig) importJavascriptL('PDD/changeSZtoSS','de'); // [[Benutzer:PDD/changeSZtoSS.js]]
 + if (rechtschreibpruefung && !isSpecial) {
 + DontAutorunRP = !AutorunRP;
 + importPage('APPER/RP/js'); // [[Benutzer:APPER/RP/js]]
 + }
 + if (ippvandalmark && !isEdit) importPage('APPER/IP-Patrol/js'); // [[Benutzer:APPER/IP-Patrol/js]]
 + if (showredundantlinks && !isSpecial)
 + importJavascriptL('PDD/showRedundantLinks','de'); // [[Benutzer:PDD/showRedundantLinks.js]]
 + // Signierfunktionen
 + if (isEdit && !isArticle) {
 + if (signing) importJavascriptL('Olliminatore/signing','de'); // [[Benutzer:Olliminatore/signing.js]]
 + if (unsigning) importJavascriptL('Olliminatore/unsigned','de'); // [[Benutzer:Olliminatore/unsigned.js]]
 + }
 + 
 + // extended search & replace feature
 + if (isEdit && searchbox) importJavascriptL('Zocky/SearchBox','en'); // [[:en:User:Zocky/SearchBox.js]]
 + 
 + // Portal- und Redaktionshinweis
 + if (hinweis) importJavascriptL('DerHexer/hinweise','de'); // [[Benutzer:DerHexer/hinweise.js]]
 + 
 + // Kackbalken-Script
 + if (irrenhaus) importJavascriptL('Revvar/irrenhaus','de'); // [[Benutzer:Revvar/irrenhaus.js]]
 + 
 + // Syntax highlighter
 + if (js_highlight) importJavascriptL('Olliminatore/shCore','en'); // [[:en:User:Olliminatore/shCore.js]]
 + 
 + // openstreetmap: OpenStreetMap bei Georeferenzen
 + if (openstreetmap && !isSpecial)
 + importJavascriptL('Magnus_Manske/osm','de'); // [[Benutzer:Magnus Manske/osm.js]]
 + 
 + // coordinates: Generierung der Koordinaten-Vorlage
 + if (coordinates && isEdit) importJavascriptL('Dschwen/coordinates','de'); // [[Benutzer:Dschwen/coordinates.js]]
 + 
 + // showreftoggle
 + if (reftoggle && !isSpecial)
 + importJavascriptL('Malte_Schierholz/reftoggle','de'); // [[Benutzer:Malte Schierholz/reftoggle.js]]
 + 
 + // setGallery
 + if (newgallery && !isSpecial)
 + importJavascriptL('Olliminatore/newgallery','de'); // [[Benutzer:Olliminatore/newgallery.js]]
 + 
 + // quickedit
 + if (qeEnabled) importJavascriptL('ASM/quickedit','de'); // [[Benutzer:ASM/quickedit.js]]
 + 
 + // RIPE tooltips
 + if (ripe && !isEdit) importJavascriptL('PDD/tooltips','de'); // [[Benutzer:PDD/tooltips.js]]
 + 
 + // dellinknowcommons
 + if (dellinknowcommons && adminflag && isBild)
 + importJavascriptL('PDD/dellink-nc','de'); // [[Benutzer:PDD/dellink-nc.js]]
 + 
 + // loescheimer
 + if (loescheimer && adminflag && isProject)
 + importJavascriptL('PDD/modifyLKs','de'); // [[Benutzer:PDD/modifyLKs.js]]
 + 
 + // Lupin's popups
 + if (lupinpopups) importJavascriptL('Lupin/popups','en'); // [[:en:User:Lupin/popups.js]]
 + 
 + // Codeispoetrys DupeCheck
 + if (imgdupecheck && isBild)
 + importJavascriptL('PDD/checkDupes','de'); // [[Benutzer:PDD/checkDupes.js]]
 + 
 + // Markierskripte ganz zum Schluss einbinden, da sie innerHTML verändern
 + if (markerledigt) importJavascriptL('Euku/markErledigt','de'); // [[Benutzer:Euku/markErledigt.js]]
 + 
 + if (!(!mawatchlist && isWatchlist) && !(!macontribs && isContrib)) {
 + if (markadmins)
 + importJavascriptL('PDD/markAdmins','de'); // [[Benutzer:PDD/markAdmins.js]]
 + }
 + if (!(!muwatchlist && isWatchlist) && !(!mucontribs && isContrib)) {
 + if (markutf8)
 + importJavascriptL('PDD/markUTF8','de'); // [[Benutzer:PDD/markUTF8.js]]
 + }
 + // Und hier ist die monobook.js zu Ende.

Current revision

// FAQ:
//
// Frage:   Wie übernehme ich dieses Skript?
//
// Antwort: Einfach "Quelltext betrachten", alles markieren und kopieren, und dann in deine eigene
//          monobook.js (also hierhinein: Benutzer:<DeinName>/monobook.js) kopieren.
//          Am sinnvollsten ist es dabei, wenn du die Originalversion von Benutzer:PDD/monobook.js
//          übernimmst, da diese immer auf dem neuesten Stand ist.
//
// Frage:   Kann ich dieses Skript einfach so übernehmen, oder muss ich da tausend Sachen ändern?
//
// Antwort: Du kannst natürlich alles ändern, aber du musst nicht. Einfach erstmal kopieren, ausprobieren,
//          und dann so anpassen, dass es deinem Bedarf gerecht wird.
//
// Weitere Fragen und Antworten findest du hier: Benutzer:PDD/monobook FAQ
//  {{subst:Benutzer:PDD/monobook.js.DLWS}}  <--- diese Zeile bitte nicht löschen
//
// Hier bitte eine Signaturvariante aussuchen!
//
// 
 // (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 = '-- \~\~\~\~';
 // 
// Originalskript ursprünglich gefunden bei en:User:Angela
// bearbeitet von Benutzer:Maximus Rex
// bearbeitet von Benutzer:SirJective
// bearbeitet von Benutzer:BLueFiSH.as
// bearbeitet von Benutzer:Littl (2005-09-07)
// bearbeitet von Benutzer:Schwalbe (2006-02-03)
// bearbeitet wieder von Benutzer:Littl (2006-02-21)
// bearbeitet von Benutzer:PDD (ab 2006-04-22)
// *************** SETUP Teil 1 **********************************
// Parameter für Gadgets
// Gadgets müssen über Spezial:Einstellungen -> Gadgets freigeschaltet werden
// Gadget: Extra-Editbuttons, sieheWikipedia:Helferlein/Extra-Editbuttons
// Anzahl und Reihenfolge wählbar (siehe: Wikipedia:Helferlein/Extra-Editbuttons#Die Buttons)
var customEditButtons = "A,A3,B,C,E,F,G,H,I,I1,I2,J1,K,M,O,P,PO,Q,R,R3,S,T,T1,U,V,W,X,Y1,Y2,VP,VC,VN,SM";
// zu entfernende Standard-Edit buttons (0...10)
var rmEditButtons = [6,7,10]; // Standardbutton entfernen
var myButtons = {}            // eigene Buttons?
// *************** SETUP Teil 2 **********************************
// Parameter für diese monobook.js (Quickbar, Module etc.)
var zeigeversion = true;        // monobook-Version anzeigen?
var zeigehilfe = true;          // kurze Hilfetexte beim überfahren mit der Maus anzeigen?
var qbnewpage = true;           // sollen Seiten aus dem QuickBar im neuen Fenster aufgerufen werden?
var rclimit = 500;              // angezeigte Anzahl auf "Letzte Änderungen"
var nplimit = 500;              // angezeigte Anzahl auf "Neue Artikel"
var nulimit = 1000;             // angezeigte Anzahl auf "Neuanmeldungs-Logbuch"
var nvlimit = 500;              // angezeigte Anzahl auf "Alte, gesichtete Seiten"
var usedropdown = false;        // Wenn keine Dropdowns gewünscht sind, hier false eintragen!
var timeout = 50000;            // 50 Sekunden auf das Neuladen der Seite warten
var timezoneshift = 0;          // Unterschied lokale Zeit zur Systemzeit (bleibt für Mitteleuropäer 0)
var debugme = false;            // Debug-Modus?
var qbfontsize = 100;            // Schriftgröße im QuickBar (relativ in Prozent)
// systemweite Default-Optionen aus MediaWiki:Monobook.js
NavigationBarShowDefault = 0;     // Navi-Leisten: alle einklappen == 0; alle ausklappen == 15 (z.B.)
var oldEditsectionLinks = false;  // "Bearbeiten"-Links bei Abschnitten ganz nach rechts?
var enable_linkFA = true;         // "Featured Articles" in fremdsprachigen Wikipedias markieren?
// 
 // Modul: changeBeschriftungen.js
 var beschriftungen = true;      // kosmetische Änderungen an der MediaWiki-Oberfläche?
 var markhandsoff = true;        // fremde Benutzerseiten grafisch markieren?
 // Beschriftungen: personal toolbar
 var cbmytalk = "Meine Diskussion";
 var cbprefs = "Einstellungen";
 var cbwatchlist = "Beobachtungsliste";
 var cbmyconts = "Meine Beiträge";
 var cblogout = "X";
 // Beschriftungen: current article
 var cbedit = "Bearbeiten";
 var cbhistory = "Versionen";
 var cbmove = "Verschieben";
 var cbwatch = "Beobachten";
 var cbunwatch = "Ignorieren";
 // Beschriftungen: tools
 var cbwhatlinkshere = "Links a. d. Seite";
 var cblinked = "Verlinkte Änderungen";
 var cbmail = "E-Mail senden";
 var cbupload = "Bild hochladen";
 var cbprint = "Druckversion";
 var cbblock = "User sperren";
 // Beschriftungen: portlets
 var cblang = "Interwiki";

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

 // Modul: changeSZtoSS.js
 var changeszlig = false;        // "ß" in "ss" ändern (nach Schweizer Rechtschreibung)?

 // Modul: eintragen.js
 var autosave = true;            // automatisches Speichern von QS/LA/SLA/Vandal-Einträgen?
 var signogrundparam = false;           // auf true setzen, wenn Signatur das SLA-Eintragen behindert
 var emptylinesafterhr = 1;             // Leerzeilen zwischen LA-Baustein und Artikeltext
 var defaultSLA = "Kein Artikel";       // Standard-SLA-Grund
 var defaultVandal = "vandaliert in [[]]";  // Standardgrund für Vandalismusmeldung (Benutzer)
 var defaultAVandal = "Edit-War";           // Standardgrund für Vandalismusmeldung (Artikel)

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

 // Modul: godmode-light.js
 var godmodelight = true;        // "Zurücksetzen" einblenden?
 var godmodenewstyle = true;            // neuer Rollback-Kommentartext?

 // Modul: addEditAndRevertLinks.js
 var editlinkoldversion = true;  // Bearbeiten-Link für ältere Versionen anzeigen?
 var editlinktxt = "edit";       // Text des Edit-Links
 var revertwithreason = true;    // Revert-Link mit Grund-Eingabe anzeigen?
 var revlinktxt = "rev";         // Text des Revert-Links
 var revlinkshowuser = true;     // beim Revertieren über (Rev)-Link letzten Benutzer angeben?
 var rvisminor = true;           // sind Reverts mit "(rev)"-Link Minor-Changes?
 var aearldefault = "Grund: keine Verbesserung des Artikels";      // Defaultgrund beim Revertieren
 var aerhistory = true;                       // Links auch in der Versionsgeschichte?
 var aearlhere = true;                        // Revertaktion im selben Browserfenster?

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

 var addusercontriblink = true;  // auf Benutzerseiten auch noch Link auf Contributions?
 var usercontribtext = "User:Contribs";       // Text des Contributions-Links ("Benutzerbeiträge")
 var userdeledittext = "User:DelEdits";       // Text des Links auf Deleted Edits
 var userstatstext = "User:Stats";            // Text des Links auf Benutzerstatistik
 var userstatstype = "interiot";                      // Art der Benutzerstatistik
                                                      // (interiot/dab/yaec/kate/wannabe_kate/misza)
 var usergallerytext = "User:Gallery";        // Text des Links auf Bildergalerie des Benutzers
 var userstimmrechttext = "User:Stimmrecht";  // Text des Links auf Stimmrechtcheck

 var adduserarticlelink = true;  // auf Benutzerseiten Link auf erstellte Artikel?
 var userarticletext = "User:Articles";       // Text des Links auf erstellte Artikel

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

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

 // Modul: modifyCA.js
 var addeditintro = true;        // TAB zum Editieren des Nullabschnitts (Intros) einer Seite hinzufügen?
 var editintrotext = "IntroBearbeiten";  // Beschriftung des TABs
 var addpurge = true;            // TAB zum Purgen (Servercache-Updaten) einer Seite hinzufügen?
 var purgetext = "Purge";                // Beschriftung des TABs

 // Modul: markAdmins.js
 var markadmins = true;          // Admins u.ä. besonders hervorheben?
 var marksubpages = true;              // auch Links auf Admin-Unterseiten markieren?
 var mawatchlist = true;               // auch auf der Beobachtungsliste?
 var macontribs = true;                // auch auf den Benutzerbeiträgen?
 var markatxt = "A";              // Markierung für Admins
 var markrenatxt = "A-Ren";       // Markierung für umbenannte Admins
 var markbureautxt = "B";         // Markierung für Bürokraten
 var markstewtxt = "S";           // Markierung für Stewards

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

 var markexadmins = true;       // zusätzlich: Ex-Admins besonders hervorheben?
 var markexatxt = "Ex-A";         // Markierung für Ex-Admins
 var markexbureautxt = "Ex-B";    // Markierung für Ex-Bürokraten

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

 var markcheckuser = true;      // zusätzlich: CheckUser besonders hervorheben?
 var markcheckusertxt = "CU";     // Markierung für Checkuser-Berechtigte
 var markombudsmantxt = "O";      // Markierung für Ombudspersonen

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

 // Modul: markErledigt.js
 var markerledigt = true;        // Erledigt-Button auf Seiten mit [[Vorlage:Autoarchiv-Erledigt]]

 // Modul: reftoggle.js
 var reftoggle = false;          // "Quellen verstecken"/"Quellen anzeigen"-Schalter für Fußnoten?

 // Modul: newgallery.js
 var newgallery = false;         // Anzahl Bilder/Zeile in Galerien verändern?
 var gallery_len = 6;            // Breite der Galerien
 var bCategory = true;                 // nur in Kategorien?
 var bArticle = true;                  // (oder/und) nur in Artikeln?

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

 // Modul: APPERs RP
 var rechtschreibpruefung = false;  // Rechtschreibprüfung aktivieren?
 var AutorunRP = false;                // false = RP durch Anklicken; true = automatische RP

 // Modul: APPERs IP-Patrol Vandalenmarkierer
 var ippvandalmark = false;      // IP-Patrol-Vandalenmarkierung aktivieren?

 // Modul: osm.js
 var openstreetmap = false; // OpenStreetMap-Link anschalten?

 // Modul: coordinates.js
 // (für dieses Modul im CSS #editpage-copywarn nicht ausblenden!)
 var coordinates = false;        // Koordinate_Artikel in Editfenster generierbar?

 // Modul: unsigned.js
 var unsigning = true;           // Einfügen von Unsigned bei unsignierten Beiträgen auf Diskussionsseiten?
 var addownsig =  false;           // unsigniert-Baustein unterschreiben?
 var ssubst =  true;                   // unsigniert-Baustein mit subst einfügen?

 // Modul: signing.js
 var signing = false;            // automatische Unterschrift auf Diskussionsseiten?
 // Liste der Nicht-Diskussionsseiten, die ebenfalls unterschrieben werden sollen:
 var regpages = new Array(':Verbesserungsvorschläge', ':Löschkandidaten', ':Löschprüfung', ':Entsperrwünsche', ':Adminkandidaturen', ':Qualitätssicherung', ':Fragen_zur_Wikipedia', ':Meinungsbilder', ':Review', ':Bilderwünsche', ':Kandidaten');

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

 // 
// Modul: popups.js (Lupin, Navpop)
var lupinpopups = false;        // Popup-Modul einbinden?
// Optionen für Lupin-Popups
// (ausführliche Liste siehe Wikipedia:Helferlein/Navigation-Popups#Optionen bzw.
// aktueller und auf englisch en:Wikipedia:Tools/Navigation popups#Options)
popupDelay = 1;                // Popupverzögerung in s (DEFAULT: 0.5)
simplePopups = false;          // auf true setzen, wenn Laden im Hintergrund unerwünscht (DEFAULT: false)
popupStructure = 'menus';      // Aussehen der Popups (DEFAULT: 'shortmenus')
popupActionsMenu = false;      // separates "actions"-Menu (DEFAULT: true)
popupImages = true;            // Bilder im Popup erwünscht? (DEFAULT: true)
popupSubpopups = true;         // Popups für Links innerhalb von Popups generieren? (DEFAULT: true)
popupAdminLinks = false;       // Funktionen, die nur Admins nutzen können (DEFAULT: false)
// nächste Option sollte bei Verwendung von showRedundantLinks.js *nicht* auf true gesetzt werden
removeTitles = false;          // Originaltitel der Links nach popups verschieben? (DEFAULT: true)
popupFixRedirs = true;                  // Links auf Redirects korrigieren? (DEFAULT: false)
popupWatchRedirredPages = false;        // korrigierte Seite beobachten? (DEFAULT: null)
popupRedirAutoClick = 'wpSave';         // ausgeführte Aktion beim Korrigieren von Redirects (DEFAULT: 'wpDiff')
popupRedlinkRemoval = true;             // Rote Links entfernen? (DEFAULT: false)
popupFixDabs = true;                    // Links auf BKLs korrigieren? (DEFAULT: false)
popupWatchDisambiggedPages = false;     // korrigierte Seite beobachten? (DEFAULT: null)
popupLastModified = true;      // Zeit seit letzter Änderung anzeigen? (DEFAULT: true)
popupDiffDates = true;         // Änderungsdaten bei Diffs anzeigen? (DEFAULT: true)
popupOnlyArticleLinks = true;  // Popups nur für Artikel-Links (DEFAULT: true)
imagePopupsForImages = false;  // Bildvorschau laden, wenn Mausposition über Bild? (DEFAULT: true)
popupMaxWidth = 400;           // Maximalbreite des Popup-Fensters (DEFAULT: 350)
popupRevertSummaryPrompt = true;        // Prompt zum Ändern des Revert-Kommentars? (DEFAULT: false)
popupMaxPreviewSentences = 2;  // Anzahl der angezeigten Sätze in der Vorschau (DEFAULT: 4)
// 
 // Link auf Popups zu Messages hinzufügen?
 addpopuplink = true;
 // deutsche Texte für Lupin
 popupFixDabsSummary = "Ersetze BKL-Seite [[%s]] durch [[%s]]" + (addpopuplink ? " mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]]" : "");
 popupExtendedRevertSummary = "Revert auf Version vom %s von Benutzer %s, oldid %s" + (addpopuplink ? " mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]]" : "");
 popupRevertSummary = "Revert auf Version %s" + (addpopuplink ? " mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]]" : "");
 popupRevertToPreviousSummary = "Revert auf Vorgängerversion der Version %s" + (addpopuplink ? " mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]]" : "");
 popupQueriedRevertSummary = "Revert auf Version $1 vom $2 von $3" + (addpopuplink ? " mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]]" : "");
 popupQueriedRevertToPreviousSummary = "Revert auf Vorgängerversion der Version $1 vom $2 von $3" + (addpopuplink ? " mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]]" : "");
 popupFixRedirsSummary = "Ersetze Redirect [[%s]] durch [[%s]]" + (addpopuplink ? " mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]]" : "");
 popupRedlinkSummary = "Entferne Link auf leere Seite [[%s]]" + (addpopuplink ? " mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]]" : "");
 popupRmDabLinkSummary = "Entferne Link auf BKL-Seite [[%s]]" + (addpopuplink ? " mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]]" : "");

 // weitere Module
 var showredundantlinks = false; // zeigt doppelte Links an
 var ripe = false;               // Ripe - Tooltips?
 var irrenhaus = false;          // Script für mehr Abwechslung im "neue Nachrichten"-Balken
 var js_highlight = false;       // javascript-code farbig hervorheben  (.js and pre-tags)
 var imgdupecheck = true;        // Bilder-Duplikate anzeigen

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

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

 // (PDD: note to self: version auch in alert-Funktion ändern!)
 var version  = 'P098u';

 var user  = wgUserName;         // username wird automatisch übernommen

 // aktuelle Zeit ermitteln
 var jetzt = new Date();
 // recalculate 4 furriners
 var jetztfixed = jetzt.getTime();
 jetztfixed += (timezoneshift * 3600 * 1000);
 jetzt.setTime(jetztfixed);
 // fill date variables
 var Monate = new Array("", "Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
 var Monatekurz = new Array("", "Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez");
 var Jahr = jetzt.getYear();
 if (Jahr < 999)  Jahr += 1900;
 var Monat = jetzt.getMonth() + 1;
 var Tag = jetzt.getDate();
 // fill WP date variables
 var WPDatum = Tag + '._' + Monate[Monat] + '_' + Jahr;
 var WPDatum2 = Jahr + '/' + Monate[Monat] + '/' + Tag;
 var WPDatum3 = Monate[Monat] + ' ' + Jahr;
 var WPDatum4 = Jahr + '-' + LeadingZero(Monat);
 var WPDatum5 = Jahr + LeadingZero(Monat) + '/';
 var refDatum = Tag + '. ' + Monatekurz[Monat] + '. ' + Jahr;
 var refDatumlang = Tag + '. ' + Monate[Monat] + ' ' + Jahr;

 // Lemma-Varianten (work in progress) + redundant zu addLogsLink etc.
 // get page title
 var pagetitle = wgPageName;
 var spagetitle = wgTitle;
 // do real spaces; fix for lemmas with '&'
 var ptitle = pagetitle.replace(/_/g, " ").split('&').join('%26');
 var sptitle = spagetitle.replace(/_/g, " ").split('&').join('%26');
 // do + escaped (" " to "+")
 var pesctitle = spaceEscape(ptitle);
 var spesctitle = spaceEscape(sptitle);
 // lemmatitle for external lookup
 var spesctitlelookup = spesctitle.split('+(')[0];
 // Komma-Lemma für Personen (Klammerzusätze weg etc.)
 var personlemma = spagetitle.split(' (')[0];
 var titlesplit = personlemma.split(' ');
 if (titlesplit.length > 1) {
    personlemma = titlesplit[titlesplit.length-1] + ',';
    for (i=0; i<(titlesplit.length-1); i++)
        personlemma=personlemma + " "+titlesplit[i];
 }

 // get URL parameters (used for page type variables)
 var UrlParameters = new Array ();
 readparams();

 function readparams() {
  var asReadInUrlParameters;
  var asReadInUrlParameter;

  // Get URL parameters
  asReadInUrlParameters = location.search.substring(1, location.search.length).split("&");
  for (i = 0; i < asReadInUrlParameters.length; i++) {
    asReadInUrlParameter = asReadInUrlParameters[i].split("=");
    UrlParameters[decodeURIComponent(asReadInUrlParameter[0])] = decodeURIComponent(asReadInUrlParameter[1]);
  }
 }

 // page type variables: namespaces
 var isArticle       = (wgNamespaceNumber == 0);
 var isArticleTalk   = (wgNamespaceNumber == 1);
 var isBild          = (wgCanonicalNamespace == "Image");
 var isCategory      = (wgCanonicalNamespace == "Category");
 var isTemplate      = (wgCanonicalNamespace == "Template");
 var isGeneric       = false;
 if ((!isBild) && (!isCategory) && (!isTemplate))
     isGeneric  = true;
 var isProject       = (wgCanonicalNamespace == "Project"); /* NR Wikipedia: */
 var isHelp          = (wgCanonicalNamespace == "Help");    /* NR Hilfe */

 // page type variables: namespace == -1
 var isSpecial  = (wgCanonicalNamespace == "Special");
 var isRestore = (isSpecial && (wgCanonicalSpecialPageName == "Undelete"));
 var isContrib = (isSpecial && (wgCanonicalSpecialPageName == "Contributions"));
 var isDelContrib = (isSpecial && (wgCanonicalSpecialPageName == "DeletedContributions"));
 var isWatchlist = (isSpecial && (wgCanonicalSpecialPageName == "Watchlist"));

 // page type variables: namespace == -1
 var isTalk = (!isSpecial && isOdd(wgNamespaceNumber));

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

 // userpage/name stuff, vor allem für IPs
 var userPageOwner = "";
 if (isContrib || isDelContrib)  {
   if (UrlParameters['target']) userPageOwner = UrlParameters['target'].split('+').join('_');
   else {
        userPageOwner = decodeURIComponent(location.href.substring(location.href.indexOf("/wiki/") + 6)).split('#')[0];
        userPageOwner = userPageOwner.substring(userPageOwner.indexOf("Beiträge/") + 9);
   }
 }

 // page type variables: user & user discussion lumped together
 var isUserpage = ( (wgCanonicalNamespace == "User") || (wgCanonicalNamespace == "User_talk") );
 var isUserMainpage = false;
 if (isUserpage)
    if (wgTitle == wgTitle.split("/")[0]) {
        isUserMainpage = true;
        userPageOwner = wgTitle;
    }

 // handelt es sich um eine IP?
 var isIPUser = false;
 if (userPageOwner != "")
    if (userPageOwner.match(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/) != null)
       if ((userPageOwner.split(".")[0] > 1) && (userPageOwner.split(".")[0] < 255))
          isIPUser = true;

 // Admin & editor functions
 var adminflag = false;
 if (hasRight("sysop")) adminflag = true;

 var editorflag = false;
 if (hasRight("editor")) editorflag = true;

 // Browserkram
 var userbrowser = "Standard";
 if (navigator.userAgent.indexOf("Opera") > -1)
     userbrowser = "Opera";
 if (navigator.userAgent.indexOf("Safari") > -1)
     userbrowser = "Standard";
 if (navigator.userAgent.indexOf("MSIE") > -1) {
     userbrowser = "IE";
     if (navigator.userAgent.indexOf("MSIE 7") > -1)
         userbrowser = "IE7";
 }

 // force Browserswitches
 if ((userbrowser == "IE") || (userbrowser == "IE7")) {
     godmodelight = false;
     showredundantlinks = false;
 }
 if (userbrowser == "Opera") {
     godmodelight = false;
 }

 /*
  * ab hier wird der Quickbar (der Kasten oben links) zusammengebaut
  *
  * zuerst die allgemeinen Variablen (hier bitte nix ändern!)
  */

 var Quickbar = '<div class="pBody noprint" id="p-quickbar" style="position:absolute; top:5px; left:0px; width:14.1em; z-index:10;">';
 // optional:  opacity:0.9;
 var xxx      = '';

 var trenner='<hr />';
 var br     ='<br />';

 var qbtarget = '_self';
 if (qbnewpage) qbtarget = '_blank';

 var dropdown = usedropdown;
 var scrpt    = '';
 var scrptn   = 0;
 var indropdown;
 var ind;

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

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

    // ab hier keine Dropdowns mehr
    closedropdown();
    dropdown=false;

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

    // der folgende Abschnitt wird nur bei Admins eingeblendet
    qbAdminTools();

    // Automatisches Bausteinsetzen
    qbAutoTemps();
 }


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

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

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

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

    w (1,'/w/index.php?title=Special:Recentchanges&hideminor=0&hideliu=1&hidebots=1&hidepatrolled=0&days=7&limit='+rclimit,'RCs',qbtarget,'Letzte Änderungen');
    w (1,'/wiki/Special:Contributions/newbies','RCNs',qbtarget,'Beiträge neuer Benutzer');
    w (1,'/w/index.php?title=Special:Newpages&namespace=0&limit='+nplimit,'NeuA',qbtarget,'Neue Artikel');
    // w (1,'/wiki/Special:Newimages','NeuD',qbtarget,'Neue Dateien (Bilder)');
    w (1,'/w/index.php?title=Special:Log&limit='+nulimit+'&type=newusers','NeuB',qbtarget,'Neue Benutzer');
    w (1,'/w/index.php?title=Special:OldReviewedPages&limit='+nvlimit,'NeuE',qbtarget,'Neue Edits in gesichteten Artikeln');
    w (1,'/wiki/Wikipedia:Vandalismusmeldung','VM',qbtarget,'Vandalismusmeldung');
    w (1,'/wiki/Wikipedia:Sperrprüfung','SPP',qbtarget,'Sperrprüfung');
    w (1,'/wiki/Wikipedia:Löschprüfung','LP',qbtarget,'Löschprüfung');
    w (1,'/wiki/Wikipedia:Entsperrwünsche','EW',qbtarget,'Entsperrwünsche');
    w (1,'/wiki/Wikipedia:Administratoren/Probleme','AP',qbtarget,'Admin-Probleme');
    w (1,'/wiki/Special:Log','Log',qbtarget,'Logfiles');
    // w (1,'irc://irc.freenode.net/wikipedia-de','IRC',qbtarget,'IRC-Chat #wikipedia-de');
 }

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

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

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

    w (1,'/wiki/Wikipedia:Kandidaten für exzellente Artikel','KEA',qbtarget,'Kandidaten für exzellente Artikel');
    w (1,'/wiki/Wikipedia:Kandidaten für lesenswerte Artikel','KLA',qbtarget,'Kandidaten für lesenswerte Artikel');
    w (1,'/wiki/Wikipedia:Review','RV',qbtarget,'Review');
    w (1,'/wiki/Wikipedia:Kandidaten für exzellente Bilder','KEB',qbtarget,'Kandidaten für exzellente Bilder');
    w (1,'/wiki/Wikipedia:Kandidaten für informative Listen und Portale','KILP',qbtarget,'Kandidaten für informative Listen und Portale');
    // w (1,'/wiki/Wikipedia:Kandidaten für exzellente Aufnahmen','KEAU',qbtarget,'Kandidaten für exzellente Aufnahmen');
 }

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

    qbUserTools();

    // w (1,"http://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,"http://toolserver.org/~vvv/adminstats.php?wiki=dewiki_p&tlimit=2419200",'AdmA',qbtarget,'Adminaktivität (letzte 4 Wochen)');
    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,"http://toolserver.org/~magnus/wikitodo.php?language=de",'2Do',qbtarget,'Wikipedia ToDo');
    w (1,"http://toolserver.org/~dab/jservlets/flaggedrevs/showunsighpages?twoYears=true&redirect=true",'UsP',qbtarget,'Zufälliger Artikel zum Sichten');

    if (isArticle) {
        w (1,"http://stats.grok.se/de/"+WPDatum5+ptitle,'AStat',qbtarget,'Wikipedia article traffic statistics');
        w (1,"http://toolserver.org/~daniel/WikiSense/Contributors.php?wikilang=de&wikifam=.wikipedia.org&page="+pesctitle+"&since=&until=&grouped=on&order=-rev_timestamp&max=100&order=-rev_timestamp&format=html",'Conts',qbtarget,'Beiträge zu diesem Artikel');
    }
 }

 function qbUserTools() {
    if (userPageOwner == "") return;

    if (isIPUser) {
        // w (1,"http://www.ripe.net/whois?form_type=simple&full_query_string=&searchtext="+userPageOwner+"&do_search=Search",'IPripe',qbtarget);
        w (1,"http://www.dnsstuff.com/tools/ipall.ch?domain="+userPageOwner,'IPinfo',qbtarget,'IPInfo/Whois');
        w (1,"http://www.dnsstuff.com/tools/tracert.ch?ip="+userPageOwner,'IPtrcrt',qbtarget,'Traceroute');
        w (1,"http://www.as3344.net/is-tor/?args="+userPageOwner,'TOR',qbtarget,'TOR-Node-Check');
        w (1,"http://toolserver.org/~luxo/contributions/contributions.php?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,"http://de.wikipedia.org/w/api.php?action=query&list=usercontribs&uclimit=200&format=xmlfm&ucuserprefix="+userPageOwner.substring(0, userPageOwner.lastIndexOf('.'))+".",'IP-RaC',qbtarget,'IP range contributions via API');
        w (1,"http://jodies.de/ipcalc?host="+userPageOwner+"&mask1=18&mask2=",'IPrange',qbtarget,'Range/Subnet Rechner');
    } else {
        // w (1,"http://www.ripe.net/whois",'ripe',qbtarget);
        // w (1,"http://www.dnsstuff.com/",'whois',qbtarget,'Whois');
        // w (1,"http://www.denic.de/de/",'denic',qbtarget,'Domain-Lookup');
        // w (1,"http://www.iks-jena.de/cgi-bin/whois",'iks-whois',qbtarget,'IKS-Whois-Lookup');

        w (1,"http://toolserver.org/~vvv/sulutil.php?user="+userPageOwner,'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,"http://toolserver.org/~luxo/contributions/contributions.php?user="+userPageOwner+"&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?');
    }

    // w (1,"http://toolserver.org/~interiot/cgi-bin/count_edits?user="+user+"&dbname=dewiki_p",'EC+',qbtarget,'Mein Editcount');
    w (1,"http://toolserver.org/~chm/blockcalc.php",'BCalc',qbtarget,'Rangeblock-Calculator');

 }

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

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

    w (1,"http://toolserver.org/~daniel/WikiSense/CategoryIntersect.php?wikilang=de&wikifam=.wikipedia.org&basecat="+spesctitle+"&userlang=de",'K:Scan',qbtarget,'Kategorie: CatScan');
    w (1,"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:Neu',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://toolserver.org/~magnus/missingtopics.php?project=wikipedia&language=de&category="+spesctitle+"&depth=5&wikimode=0&doit=Run",'K:Miss',qbtarget,'Kategorie: Fehlende Artikel');
    w (1,"http://toolserver.org/~magnus/deep_out_of_sight.php?category="+spesctitle+"&depth=5",'K:NeuE',qbtarget,'Kategorie: Nachzusichtende Artikel');
 }

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

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

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

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

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

    // w (1,"http://www.copyscape.com",'CopySc',qbtarget);
    w (1,"http://www.affenkrieger.de/wiki/wikicc.php",'AffenKr',qbtarget,'Affenkrieger');
    w (1,'http://vs.aka-online.de/cgi-bin/globalwpsearch.pl?search='+pesctitle+'&timeout=300&minor=1','GWS',qbtarget,'GlobalWikiSearch');
    w (1,'http://wikipedia.ramselehof.de/wikiblame.php?article='+pesctitle+'&user_lang=de&skipversions=2&ignorefirst=3&limit=250','WBlame',qbtarget,'Wikiblame');
    w (1,'http://vs.aka-online.de/cgi-bin/wppagehiststat.pl?lang=de&page='+pesctitle,'WPHS',qbtarget,'Seitenstatistik');
    // w (1,"http://www.itp.uni-hannover.de/~krohn/wscan.html.utf8",'Krohn',qbtarget);
    w (1,'http://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://www.canoo.net",'Canoo',qbtarget);
    w (1,"http://www.cia.gov/cia/publications/factbook/index.html",'FactB',qbtarget,'CIA World Factbook');
    w (1,"http://de.encarta.msn.com/artcenter_/browse.html",'Enc',qbtarget,'MSN Encarta');
    w (1,"http://lexikon.meyers.de/meyers/Meyers:Meyers_Lexikon_online",'Meyers',qbtarget,'Meyers Lexikon online');
    w (1,"http://www.retrobibliothek.de/retrobib/suche.html",'rbib',qbtarget,'retro-bib (u. a. Meyers Konversationslexikon 1888)');

    if (isArticle) {
        // w (1,"http://www.zeno.org/Zeno/0/Suche?&q=%22" + spesctitlelookup + "%22&h=1",'Zeno',qbtarget,'Verschiedene Lexika bei zeno.org');
        w (1,"http://www.zeno.org/Zeno/0/Suche?&q=" + spesctitlelookup + "&h=1",'Zeno',qbtarget,'Verschiedene Lexika bei zeno.org');
    } else {
        w (1,"http://www.zeno.org/Bibliothek",'Zeno',qbtarget,'Verschiedene Lexika bei zeno.org');
    }

    w (1,"http://www.ddb.de",'DNB',qbtarget,'Deutsche Nationalbibliothek');

    if (isArticle) {
        w (1,"http://dispatch.opac.ddb.de/DB=4.1/CMD?ACT=SRCHA&IKT=8514&SRT=YOP&TRM="+quickEscape(personlemma,1),'DNB-PND',qbtarget,'DNB (PND-Suche)');
    } else {
        w (1,"http://dnb.ddb.de/",'DNB-PND',qbtarget,'DNB (PND-Suche)');
    }

    w (1,"http://www.ubka.uni-karlsruhe.de/kvk.html",'KVK',qbtarget,'Karlsruher Virtueller Katalog');
    w (1,"http://toolserver.org/gradzeichen/IsbnCheckAndFormat?Language=Deutsch&FormatOnlyRaw=no&Test=http%3A%2F%2Fswb.bsz-bw.de%2FDB%3D2.1%2FCMD%3FACT%3DSRCHA%26IKT%3D1007%26TRM%3DMAGIC",'ISBN',qbtarget,'ISBN Checker/Formatter');
    w (1,"http://mdz1.bib-bvb.de/~ndb/ndbmaske.html",'A/NDB',qbtarget,'Allgemeine/Neue Deutsche Biographie');
    // w (1,"http://bse.sci-lib.com/",'Бсэ',qbtarget,'Большая советская энциклопедия');
    w (1,"http://encycl.yandex.ru/dict/bse",'Бсэ',qbtarget,'Большая советская энциклопедия');
 }

 function qbEditTags() {
    if (isBild) return;
    if (!isEdit) return;

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

    w (3,"br,'',''",'br','','Zeilenumbruch');
    w (3,"'&','nbsp;',''",'nbsp','','Geschütztes Leerzeichen');
    w (3,"'†','',''",'†','','Kreuz');
    // w (3,"'—','',''",'—','','Geviertstrich (Spiegelstrich)');
    w (3,"'–','',''",'–','','Halbgeviertstrich (Gedankenstrich)');
    // w (3,"'-','',''",'-','','Viertelgeviertstrich (Bindestrich)');
    // w (3,"'−','',''",'−','','Minuszeichen');
    w (3,"'→','',''",'→','','Pfeil nach rechts');
    w (3,"'←','',''",'←','','Pfeil nach links');
    w (3,"'<!-- ',' -->',''",'// comment','','<!--Kommentar-->');
    w (3,"'„','“',''",'„“','','Anführungszeichen');
 // 
   w (3,"'','',",'Nowiki',,'');
    w (3,"'<code><nowiki>','</code>',",'Code',,'');
// 
    w (3,"'<span class=\\u0022plainlinks\\u0022>','</span>',''",'Plain','','Plain Link');
    w (3,"'<small>','</small>',''",'<small>small</small>','','Klein');
    w (3,"'<s>','</s>',''",'<s>strike</s>','','Durchstreichen');
    w (3,"'<u>','</u>',''",'<u>under</u>','','Unterstreichen');
    w (3,"'<ref>','</ref>',''",'<small>[ref]</small>','','Referenz');
    w (3,"'<ref name=\\u0022name\\u0022>','</ref>',''",'<small>[refN]</small>','','Referenz-Name');
    w (3,"'<ref name=\\u0022name\\u0022 />','',''",'<small>[refR]</small>','','Referenz-Name-Wiederholung');
    w (3,"'<math>','</math>',''",'Math');
    w (3,"':<math>\\u005Cmathrm{','}</math>',''",'ChemForm');
 }

 function qbArticleTemps() {
    if (isBild) return;
    if (!isEdit) return;

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

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

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

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

    w (3,"'{{Personendaten\\n|NAME=" + tagEscape(personlemma) + "\\n|ALTERNATIVNAMEN=\\n|KURZBESCHREIBUNG=\\n|GEBURTSDATUM=\\n|GEBURTSORT=\\n|STERBEDATUM=\\n|STERBEORT=\\n}}\\n','',''",'PD','','{{Personendaten...');
    w (3,"'* {{PND|','}}\\n',''","PND",'','PND (individualisiert)');
    w (3,"'* {{PND|','|Keine Treffer im DNB-OPAC, " + refDatumlang + "}}\\n',''","PNDx",'','PND (individualisiert, ohne Treffer)');
    w (3,"'* {{PNDfehlt|" + refDatumlang + "|','}}\\n',''","PNDF",'','PNDfehlt (nicht individualisiert, aber mit Treffern)');
    w (3,"'* {{ADB|Band|SeiteStart|SeiteEnde|" + tagEscape(personlemma) + "|Artikelautor}}\\n','',''","ADB",'','{{ADB...');
    w (3,"'* {{NDB|Band|SeiteStart|SeiteEnde|" + tagEscape(personlemma) + "|Artikelautor}}\\n','',''","NDB",'','{{NDB...');
    w (3,"'* {{BBKL|x/name_x_y|autor=|artikel=" + tagEscape(personlemma) + "|band=|spalten=–}}\\n<!-- bitte vollständig ausfüllen -->\\n','',''","BBKL",'','{{BBKL...');
    w (3,"'* {{IMDb Name|','|" + tagEscape(wgTitle) + "}}\\n',''","IMDb-n",'','{{IMDb Name...');
    w (3,"'* {{IMDb Titel|tt','|" + tagEscape(wgTitle) + "}}\\n',''","IMDb-t",'','{{IMDb Titel...');
    w (3,"'* {{IMDb Firma|','|" + tagEscape(wgTitle) + "}}\\n',''","IMDb-f",'','{{IMDb Firma...');
    w (3,"'* {{OFDb|','|" + tagEscape(wgTitle) + "}}\\n',''","OFDb",'','{{OFDb...');

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

    w (2,"'','#REDIRECT [[]]',1","Redir",'','#REDIRECT [[]]');
    w (2,"'+Überarbeiten','{{Überarbeiten}}\\n',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 (isBild) return;
    if (!isEdit) return;

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

    w (4,"addPersData();","AutoPD",'','Automatische Kategorien und Personendaten'); // extern
    w (4,"wpTextReplace();","Replace",'','Suchen und Ersetzen');
    if (rechtschreibpruefung && !AutorunRP && !isSpecial)
        w (4,"spellcheck();","SpellChk",'','Rechtschreibprüfung');
    w (4,"ReplaceQuoteSigns();","FixQuote",'','Anführungszeichen korrigieren');  // extern
    w (4,"convertEntities();","FixEnt",'','HTML-Entities entfernen');  // extern
    w (4,"fixDash();","FixDash",'','Striche auf Halbgeviert vereinheitlichen');  // extern
    w (4,"ReplaceMarkup();","FixMark",'','Verschiedene Markup-Korrekturen');  // extern
    w (4,"undate();","UnDate",'','Daten entlinken');
 }

 function qbImageTemps() {
    if (!isBild) return;
    if (!isEdit) return;

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

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

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

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

    // w (3,"'{{subst:Benutzer:PDD/Greetings/Hallo|1=" + tagEscape(user) + "}} " + tagEscape(usersignature) + "\\n','','','Willkommen!'","Hallo",'','Baustein PDD:Hallo');
    w (3,"'{{subst:Benutzer:PDD/Greetings/HalloG|1=" + tagEscape(user) + "|2=" + tagEscape(usersignature) + "}}\\n','','','Willkommen!'","Hallo",'','Baustein PDD:HalloG');
    w (3,"'{{subst:Benutzer:PDD/Greetings/HalloColor|1=" + tagEscape(user) + "}}\\n','','','Willkommen!'","HalloC",'','Baustein PDD:HalloColor');
    w (3,"'{{subst:Benutzer:PDD/Greetings/Danke}} " + tagEscape(usersignature) + "\\n','',''",'Danke','','Baustein PDD:Danke');
    w (3,"'{{subst:Benutzer:Complex/Greetings/TestMitStopschild}} " + tagEscape(usersignature) + "\\n','',''",'Stop','','Baustein Complex:TestMitStopschild'); // Abwandlung von [[Benutzer:LKD/V/VHinweis]]
    // w (3,"'{{subst:Benutzer:Blah/Vorlage:Vandale}}\\n','',''",'Vand','','Baustein Blah:Vandale');
    // w (3,"'{{subst:Benutzer:Tobi B./Vorlage:Löschvandale}} " + tagEscape(usersignature) + "\\n','',''",'LöschV','','Baustein Tobi B.:Löschvandale');
    w (3,"'{{subst:Benutzer:PDD/Greetings/KinderKinder!}}\\n','',''",'Kind','','Baustein PDD:Kind');
    w (3,"'{{subst:Benutzer:Chaddy/Vorlage:Signaturhinweis}} " + tagEscape(usersignature) + "\\n','',''",'Sign!','','Signieren nicht vergessen');
    w (3,"'{{subst:Vorschau}}\\n','',''",'Vorschau','','{{subst:Vorschau}}');
    // w (3,"'{{subst:Benutzer:PDD/Greetings/Linkspam}} " + tagEscape(usersignature) + "\\n','',''",'Linkspam','','Baustein PDD:Linkspam');
    w (3,"'{{subst:Benutzer:LKD/V/LHinweis}} " + tagEscape(usersignature) + "\\n','',''",'Linkspam','','Baustein LKD:Linkspam');
    // w (3,"'{{subst:Benutzer:Complex/Greetings/WP-WEB}} " + tagEscape(usersignature) + "\\n','',''",'LinkspamC','','Baustein Complex:WP-WEB'); // Abwandlung von [[Benutzer:LKD/V/LHinweis]]
    if (adminflag)
       w (3,"'{{subst:Benutzer:LKD/V/ALoesch}} " + tagEscape(usersignature) + "\\n','',''",'SLA-ex','','Autorenbenachrichtigung nach Schnelllöschung');
 }

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

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

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

 function qbAutoTemps() {
    if (isSpecial && !isContrib) return;

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

    if (( isGeneric)  && (!isSpecial))  w (4,"eintragen(1);","QS+","","+Qualitätssicherung");
    if (( isGeneric)  && (!isSpecial))  w (4,"eintragen(5);","URV+","","+URV");
    if (( isGeneric)  && (!isSpecial))  w (4,"eintragen(2);","LA+","","+Löschantrag");
    if (( isCategory) && (!isSpecial))  w (4,"eintragen(7);","KatLA+","","+Löschantrag Kategorie");
    if (( isTemplate) && (!isSpecial))  w (4,"eintragen(8);","VorLA+","","+Löschantrag Vorlage");
    if (                 (!isSpecial))  w (4,"eintragen(3);","SLA+","","+Schnelllöschantrag");

    if (hinweis) {
       if (( isGeneric)  && (!isSpecial))  w (4,"hinweis(1);","PH+","","+Portalhinweis");
       if (( isGeneric)  && (!isSpecial))  w (4,"hinweis(2);","RH+","","+Redaktionshinweis");
    }
    if (wgPageName == "Wikipedia:Spielwiese") w (4,"eintragen(10);","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)");
    }
 }


 /*
  * hier wird der Quickbar in die Seite geschrieben
  * (ab hier bitte nichts ändern)
  */

 buildQuickbar();
 document.write(Quickbar);

 if (typeof(version) == 'undefined') var version = "?";
 if (!isEdit || zeigeversion || isPHP) {
  document.write(
      '<div align=right>',

    (zeigeversion) ?
      ('<a href="#" onclick="amIuptodate()" title="Versionscheck">' + (adminflag ? 'A/' : '') + version + '</a>  ')
         : '',

    (!isEdit) ?
      ('<input type="checkbox" id="reloadme" name="reloadme" onchange="setReload()" title="Seite alle ' + (timeout/1000) + ' s neu laden?"></input>  ')
         : ' ',

      '<a href="/w/index.php?title=Spezial%3APrefixindex&from=',user,
          '&namespace=2" target="', qbtarget, '" title="Meine Seiten im Benutzernamensraum">',
          (user.split(' ')[0].length < 10) ? user.split(' ')[0] : 'MyPages',
      '</a>',

    (userbrowser != "Standard") ?
      ('  <a href="#" onclick="badBrowser()" title="Browser nicht unterstützt">'
              + userbrowser.charAt(0) + userbrowser.charAt(1) + '!</a>')
         : '',

      '</div>');
 }
 document.write('<div style="font-size:',qbfontsize,'%;">',xxx,'</div></div>');

 if (scrpt > '') {
    document.write('<script> function _doopt (was) { switch (was) {', scrpt, '}}<\/script>');
    scrpt='';
 }

 //
 // ab hier functions
 //

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

 function dodropdown (aktion) {
  var zutun = aktion.split('|');
  var was = Number(zutun[0]);
  var wie = zutun[1];

  switch (was) {
   case 1 : window.open (wie); break;
   case 2 : _doopt (Number(wie)); break;
   case 3 : _doopt (Number(wie)); break;
   case 4 : _doopt (Number(wie)); break;
  } //switch
 } //dodropdown

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

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

 function newtext (subj,text,wo)
  {  //wo=1 : Text austauschen
     //wo=2 : Text am Ende anhängen
     //wo=3 : Text vorne Einfügen

   if (subj > "") {
      if (document.editform.wpSummary.value > "") document.editform.wpSummary.value += ", ";
      document.editform.wpSummary.value = document.editform.wpSummary.value + subj;
   }

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

 function insertTagsWrapper(tagOpen, tagClose, sampleText, subj) {
   if (subj > "") {
      if (document.editform.wpSummary.value > "") document.editform.wpSummary.value += ", ";
      document.editform.wpSummary.value = document.editform.wpSummary.value + subj;
   }
   insertTags(untagEscape(tagOpen), untagEscape(tagClose), untagEscape(sampleText))
 }

 // Krimskrams
 function isEven(myNumber) {
    return (myNumber % 2 == 0);
 }
 function isOdd(myNumber) {
    return (! isEven(myNumber));
 }
 function LeadingZero(x) {
    return (x >= 10 || x < 0 ? "" : "0") + x;
 }
 function hasRight(right) {
    return (wgUserGroups.indexOf(right) > -1);
 }
 function quickEscape(text, esctype)
 {
   // esctype = 1 -> normal umlaut escapes
   // esctype = 2 -> wikisort umlaut escapes

   text = text.replace(/ß/g, "ss");

   text = text.replace(/Á/g,"A").replace(/á/g,"a")
              .replace(/À/g,"A").replace(/à/g,"a")
              .replace(/Ă/g,"A").replace(/ă/g,"a")
              .replace(/Â/g,"A").replace(/â/g,"a")
              .replace(/Å/g,"A").replace(/å/g,"a")
              .replace(/Ā/g,"A").replace(/ā/g,"a")
              .replace(/Ć/g,"C").replace(/ć/g,"c")
              .replace(/Č/g,"C").replace(/č/g,"c")
              .replace(/Ç/g,"C").replace(/ç/g,"c")
              .replace(/Đ/g,"Dj").replace(/đ/g,"dj")
              .replace(/É/g,"E").replace(/é/g,"e")
              .replace(/È/g,"e").replace(/è/g,"e")
              .replace(/Ë/g,"e").replace(/ë/g,"e")
              .replace(/Ě/g,"e").replace(/ě/g,"e")
              .replace(/Ğ/g,"G").replace(/ğ/g,"g")
              .replace(/Í/g,"I").replace(/í/g,"i")
              .replace(/Ì/g,"I").replace(/ì/g,"i")
              .replace(/Ï/g,"I").replace(/ï/g,"i")
              .replace(/İ/g,"I").replace(/ı/g,"i")
              .replace(/Î/g,"I").replace(/î/g,"i")
              .replace(/Ł/g,"L").replace(/ł/g,"l")
              .replace(/Ļ/g,"L").replace(/ļ/g,"l")
              .replace(/Ń/g,"N").replace(/ń/g,"n")
              .replace(/Ñ/g,"N").replace(/ñ/g,"n")
              .replace(/Ň/g,"N").replace(/ň/g,"n")
              .replace(/Ņ/g,"N").replace(/ņ/g,"n")
              .replace(/Ó/g,"O").replace(/ó/g,"o")
              .replace(/Ò/g,"O").replace(/ò/g,"o")
              .replace(/Ø/g,"O").replace(/ø/g,"o")
              .replace(/Õ/g,"O").replace(/õ/g,"o")
              .replace(/Ő/g,"O").replace(/ő/g,"o")
              .replace(/Ř/g,"R").replace(/ř/g,"r")
              .replace(/Ś/g,"S").replace(/ś/g,"s")
              .replace(/Š/g,"S").replace(/š/g,"s")
              .replace(/Ş/g,"S").replace(/ş/g,"s")
              .replace(/Ţ/g,"T").replace(/ţ/g,"t")
              .replace(/Ú/g,"U").replace(/ú/g,"u")
              .replace(/Ù/g,"U").replace(/ù/g,"u")
              .replace(/Ű/g,"U").replace(/ű/g,"u")
              .replace(/Ů/g,"U").replace(/ů/g,"u")
              .replace(/Ý/g,"Y").replace(/ý/g,"y")
              .replace(/Ÿ/g,"Y").replace(/ÿ/g,"y")
              .replace(/Ź/g,"Z").replace(/ź/g,"z")
              .replace(/Ž/g,"Z").replace(/ž/g,"z")
              .replace(/Ż/g,"Z").replace(/ż/g,"z")
              .replace(/Æ/g,"Ae").replace(/æ/g,"ae")
              .replace(/Œ/g,"Oe").replace(/œ/g,"oe");

   if (esctype == 1) {
      text = text.replace(/Ä/g,"Ae").replace(/ä/g,"ae")
                 .replace(/Ö/g,"Oe").replace(/ö/g,"oe")
                 .replace(/Ü/g,"Ue").replace(/ü/g,"ue")
                 .replace(/Ə/g,"Ae").replace(/ə/g,"ae");
   } else {
      text = text.replace(/Ä/g,"A").replace(/ä/g,"a")
                 .replace(/Ö/g,"O").replace(/ö/g,"o")
                 .replace(/Ü/g,"U").replace(/ü/g,"u")
                 .replace(/Ə/g,"A").replace(/ə/g,"a");
   }
   return(text);
 }
 function tagEscape(text)
 {
   text = text.replace(/'/g, "%27");
   text = text.replace(/"/g, "%22");
   return(text);
 }
 function untagEscape(text)
 {
   text = text.replace(/%27/g, "'");
   text = text.replace(/%22/g, "\"");
   return(text);
 }
 function spaceEscape(text)
 {
   text = text.replace(/ /g, "+");
   text = text.replace(/_/g, "+");
   return(text);
 }

 // Funktion: importPage()
 // zum Einbinden der Module
 function importPage(seite, lang) { // all languages support
    name='User:'; // international name, works in all wikipedias
    if(!lang) lang = wgContentLanguage;

    // new version
    seite = 'http://' + lang + '.wikipedia.org' + wgScriptPath + '/index.php?title=' + name + seite +
           '&action=raw&ctype=text/javascript&smaxage=0';

    var head = document.getElementsByTagName('head').item(0);
    var js = document.createElement('script');
    js.setAttribute('type', 'text/javascript');
    js.setAttribute('src', seite);
    js.setAttribute('charset', 'utf-8');
    head.appendChild(js);

    return false;
    // old version
    // document.write('<SCRIPT TYPE="text/javascript" SRC="http://' + lang
    // + '.wikipedia.org/w/index.php?title=' + name + seite
    // + '&action=raw&ctype=text/javascript&smaxage=0"><\/SCRIPT>');
 }

 /*
  * 3xImport von [[Benutzer:Revvar]]
  * aus [[Benutzer:Revvar/wikibits.js]] und [[Benutzer:Revvar/monobook.js]]
  */

 /**
 Imports a user javascript page from any wikipedia project into the actual document.

 @version 0.1
 @date 2007/03/22
 @author: based on function importPage from [[de:User:PDD]]s monobook.js, extended by [[de:User:Revvar]]
 @param page Name of the user page without the "user:" prefix and the ".js" appendix
 @param lang (optional) Language code of the corresponding wikipedia project. Default is the callers project.
 @return "true" on success, "false" otherwise
 */

 function importJavascriptL(page, lang)
 {
    try {
        /* check the parameters and set defaults */
        if(!page) throw("importJavascriptL: Missing parameter page.");
        if(!lang) lang = wgContentLanguage;

        /* create import url */
        var import_url = 'http://' + lang + '.wikipedia.org' + wgScriptPath + '/index.php?title=User:' + page +
           '.js&action=raw&ctype=text/javascript&smaxage=0';

        /* import page */
        var Head = document.getElementsByTagName('head').item(0);
        var Script = document.createElement('script');
        Script.setAttribute('type', 'text/javascript');
        Script.setAttribute('src', import_url);
        Script.setAttribute('charset', 'utf-8');
        Head.appendChild(Script);

        return true;
    } catch(e) {
        alert(e.message);
        return false;
    }
 }

 /**
 Imports a user css page from any wikipedia project into the actual document.

 @version 0.1.1
 @date 2007/03/26
 @author: based on function importPage from [[de:User:PDD]]s monobook.js, rewritten by [[de:User:Revvar]]
 @param page Name of the user page without the "user:" prefix and the ".css" appendix
 @param lang (optional) Language code of the corresponding wikipedia project. Default is the callers project.
 @return "true" on success, "false" otherwise
 */

 function importCSSL(page, lang)
 {
    try {
        /* check the parameters and set defaults */
        if(!page) throw("importCSSL: Missing parameter page.");
        if(!lang) lang = wgContentLanguage;

        /* create import url */
        var import_url = 'http://' + lang + '.wikipedia.org' + wgScriptPath + '/index.php?title=User:' + page +
           '.css&action=raw&ctype=text/css&smaxage=0';

        /* import page */
        var Head = document.getElementsByTagName('head').item(0);
        var CSS = document.createElement('style');
        CSS.setAttribute('type', 'text/css');
        CSS.setAttribute('charset', 'utf-8');
        CSS.appendChild(document.createTextNode("@import url(" + import_url + ");"));
        Head.appendChild(CSS);

        return true;
    } catch(e) {
        alert(e.message);
        return false;
    }
 }

 /**
 Asynchron import of a Javascript file from the toolserver.

 @version 0.1
 @date 2007/04/24
 @author based on function importPage from [[de:User:PDD]]s monobook.js, rewritten by [[de:User:Revvar]]
 @param path Path to the toolserver script without the ".js" appendix
 */

 function import_JS_from_TS(path)
 {
    try {
        /* check the parameter */
        if(!path) throw("import_JS_from_TS: Missing parameter path.");

        /* create import url */
        var import_url = 'http://toolserver.org/' + path + '.js';

        /* import */
        setTimeout(function(e) {
          var Head = document.getElementsByTagName('head').item(0);
          var Script = document.createElement('script');
          Script.setAttribute('type', 'text/javascript');
          Script.setAttribute('src', import_url);
          Script.setAttribute('charset', 'utf-8');
          Head.appendChild(Script);
        }, 1000);

    } catch(e) {
        alert(e.message);
        return;
    }
 }


 // ***** FOOT-Block *****
 //  <- nicht löschen!!!
// ausgelagerte obligatorische Funktionen
importJavascriptL('PDD/supportFuncs','de'); // Benutzer:PDD/supportFuncs.js
importJavascriptL('PDD/helperFunctions','de'); // Benutzer:PDD/helperFunctions.js
importJavascriptL('PDD/eintragen','de'); // Benutzer:PDD/eintragen.js
importJavascriptL('PDD/alertOnChanges','de'); // Benutzer:PDD/alertOnChanges.js
// obligatorisch nur für editpages
if (isEdit) {
   importJavascriptL('PDD/wpTextReplace','de'); // Benutzer:PDD/wpTextReplace.js
   importJavascriptL('BLueFiSH.as/JS/replaceQuoteSigns','de'); // Benutzer:BLueFiSH.as/JS/replaceQuoteSigns.js
   importJavascriptL('BLueFiSH.as/JS/markup','de'); // Benutzer:BLueFiSH.as/JS/markup.js
   importJavascriptL('PDD/convertEntities','de'); // Benutzer:PDD/convertEntities.js
   importJavascriptL('Euku/persDaten','de'); // Benutzer:Euku/persDaten.js
}
// ausgelagerte optionale Funktionen (Autoload)
// revert/loglink-Funktionen: möglichst früh einbinden
// Revert godmode-light
if (godmodelight && !adminflag && !editorflag && !isEdit && !(isSpecial && !isContrib)) {
    importJavascriptL('PDD/godmode-light','de'); // Benutzer:PDD/godmode-light.js
    // importJavascriptL('Olliminatore/godmode-light','en');  // en:User:Olliminatore/godmode-light.js
}
// Revert addEditAndRevertLinks
if (!(!aerhistory && isHistory) && !isEdit) {
   if (editlinkoldversion || revertwithreason)
      importJavascriptL('PDD/addEditAndRevertLinks','de'); // Benutzer:PDD/addEditAndRevertLinks.js
}
// LogLinks addLogsLink
if (addlogslink && !isSpecial) importJavascriptL('PDD/addLogsLink','de'); // Benutzer:PDD/addLogsLink.js
// jetzt alles andere, was optional ist
if (!isSpecial)
   if (addeditintro || addpurge) importJavascriptL('PDD/modifyCA','de'); // Benutzer:PDD/modifyCA.js
// changeBeschriftungen *nach* modifyCA.js (!)
if (beschriftungen) importJavascriptL('PDD/changeBeschriftungen','de'); // Benutzer:PDD/changeBeschriftungen.js
if (sperrstatus) importJavascriptL('Stefan/Sperrstatus','de'); // Benutzer:Stefan/Sperrstatus.js
if (changeszlig) importJavascriptL('PDD/changeSZtoSS','de'); // Benutzer:PDD/changeSZtoSS.js
if (rechtschreibpruefung && !isSpecial) {
   DontAutorunRP = !AutorunRP;
   importPage('APPER/RP/js'); // Benutzer:APPER/RP/js
}
if (ippvandalmark && !isEdit) importPage('APPER/IP-Patrol/js'); // Benutzer:APPER/IP-Patrol/js
if (showredundantlinks && !isSpecial)
   importJavascriptL('PDD/showRedundantLinks','de'); // Benutzer:PDD/showRedundantLinks.js
// Signierfunktionen
if (isEdit && !isArticle) {
   if (signing) importJavascriptL('Olliminatore/signing','de'); // Benutzer:Olliminatore/signing.js
   if (unsigning) importJavascriptL('Olliminatore/unsigned','de');  // Benutzer:Olliminatore/unsigned.js
}
// extended search & replace feature
if (isEdit && searchbox) importJavascriptL('Zocky/SearchBox','en');  // en:User:Zocky/SearchBox.js
// Portal- und Redaktionshinweis
if (hinweis) importJavascriptL('DerHexer/hinweise','de'); // Benutzer:DerHexer/hinweise.js
// Kackbalken-Script
if (irrenhaus) importJavascriptL('Revvar/irrenhaus','de');  // Benutzer:Revvar/irrenhaus.js
// Syntax highlighter
if (js_highlight) importJavascriptL('Olliminatore/shCore','en');  // en:User:Olliminatore/shCore.js
// openstreetmap: OpenStreetMap bei Georeferenzen
if (openstreetmap && !isSpecial)
   importJavascriptL('Magnus_Manske/osm','de'); // Benutzer:Magnus Manske/osm.js
// coordinates: Generierung der Koordinaten-Vorlage
if (coordinates && isEdit) importJavascriptL('Dschwen/coordinates','de');  // Benutzer:Dschwen/coordinates.js
// showreftoggle
if (reftoggle && !isSpecial)
   importJavascriptL('Malte_Schierholz/reftoggle','de');  // Benutzer:Malte Schierholz/reftoggle.js
// setGallery
if (newgallery && !isSpecial)
   importJavascriptL('Olliminatore/newgallery','de'); // Benutzer:Olliminatore/newgallery.js
// quickedit
if (qeEnabled) importJavascriptL('ASM/quickedit','de'); // Benutzer:ASM/quickedit.js
// RIPE tooltips
if (ripe && !isEdit) importJavascriptL('PDD/tooltips','de'); // Benutzer:PDD/tooltips.js
// dellinknowcommons
if (dellinknowcommons && adminflag && isBild)
   importJavascriptL('PDD/dellink-nc','de'); // Benutzer:PDD/dellink-nc.js
// loescheimer
if (loescheimer && adminflag && isProject)
   importJavascriptL('PDD/modifyLKs','de'); // Benutzer:PDD/modifyLKs.js
// Lupin's popups
if (lupinpopups) importJavascriptL('Lupin/popups','en');   // en:User:Lupin/popups.js
// Codeispoetrys DupeCheck
if (imgdupecheck && isBild)
   importJavascriptL('PDD/checkDupes','de');   // Benutzer:PDD/checkDupes.js
// Markierskripte ganz zum Schluss einbinden, da sie innerHTML verändern
if (markerledigt) importJavascriptL('Euku/markErledigt','de');   // Benutzer:Euku/markErledigt.js
if (!(!mawatchlist && isWatchlist) && !(!macontribs && isContrib)) {
   if (markadmins)
      importJavascriptL('PDD/markAdmins','de'); // Benutzer:PDD/markAdmins.js
}
if (!(!muwatchlist && isWatchlist) && !(!mucontribs && isContrib)) {
   if (markutf8)
      importJavascriptL('PDD/markUTF8','de'); // Benutzer:PDD/markUTF8.js
}
// Und hier ist die monobook.js zu Ende.
Personal tools