Benutzer:Video2005/monobook.js

Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 25. Februar 2009 um 20:05 Uhr durch Video2005 (Diskussion | Beiträge) (aufgeräumt, WikED in allen Korrekturkfunktionen eingebaut). Sie kann sich erheblich von der aktuellen Version unterscheiden.

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

  • Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
  • Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
  • Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
// 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>\n';
 // (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)
// Originalskript ursprünglich gefunden bei [[Benutzer:Dbenzhuser]]

// *************** Anfang **********************************
// Autokorrektur tippo (Sortierung interwiki-Links; Korrektur Abkürzungen, Einheiten usw.)

function createLinksSidebar2() {

        // Elemente der Box erstellen.
        var divPortlet_2 = document.createElement("div");
        var h5_2 = document.createElement("h5");
        var h5Text_2 = document.createTextNode("Autokorrektur");
        var divPbody_2 = document.createElement("div");
        var ul_2 = document.createElement("ul");
        // Mit Attributen ausrüsten.
        divPortlet_2.setAttribute("id", "p-link");
        divPortlet_2.setAttribute("class", "portlet");
        divPbody_2.setAttribute("class", "pBody");
        ul_2.setAttribute("id", "u-link")
        // Spalte suchen.
        var column_2 = document.getElementById("column-one");
        // Box einbauen.
        column_2.appendChild(divPortlet_2);
        divPortlet_2.appendChild(h5_2);
        h5_2.appendChild(h5Text_2);
        divPortlet_2.appendChild(divPbody_2);
        divPbody_2.appendChild(ul_2);
        // Aktivierunglink erstellen.
        var li_2 = document.createElement("li");  
        li_2.style.whiteSpace = "nowrap";
        ul_2.appendChild(li_2);
        var a_2 = document.createElement("a");
        a_2.setAttribute("href", "javascript:korr2()");
        a_2.setAttribute("title", "Formatkorrektur & Sortierung Interwiki");
        li_2.appendChild(a_2);
        var aText_2 = document.createTextNode("Korrektur");
        a_2.appendChild(aText_2);
}

function korr2()
  {
// copy wikEd (http://en.wikipedia.org/wiki/User:Cacycle/wikEd.js) frame to wpTextbox1 textarea
if (typeof(wikEdUseWikEd) != 'undefined') {
    if (wikEdUseWikEd == true) {
        WikEdUpdateTextarea();
    }
}

        // Text bekommen
        var text = document.editform.wpTextbox1.value;
        var textalt = text;

        // Interwikis sortieren
        var regex = /\[\[(aa|af|ak|als|am|ang|ab|ar|an|arc|roa-rup|frp|as|ast|gn|av|ay|az|bm|bn|zh-min-nan|map-bms|ba|be|be-x-old|bh|bcl|bi|bar|bo|bs|br|bg|bxr|ca|cv|ceb|cs|ch|ny|sn|tum|cho|co|za|cy|da|pdc|de|dv|nv|dsb|dz|mh|et|el|eml|en|es|eo|eu|ee|fa|fo|fr|fy|ff|fur|ga|gv|gd|gl|ki|glk|gu|got|zh-classical|hak|xal|ko|ha|haw|hy|hi|ho|hsb|hr|io|ig|ilo|bpy|id|ia|ie|iu|ik|os|xh|zu|is|it|he|jv|kl|pam|kn|kr|ka|ks|csb|kk|kw|rw|ky|rn|sw|kv|kg|ht|kj|ku|lad|lbe|lo|la|lv|lb|lt|lij|li|ln|jbo|lg|lmo|hu|mk|mg|ml|mt|mi|mr|mzn|ms|cdo|mo|mn|mus|my|nah|na|fj|nl|nds-nl|cr|ne|new|ja|nap|ce|pih|no|nn|nrm|nov|oc|or|om|ng|hz|ug|uz|pa|pi|pag|pap|ps|km|pms|nds|pl|pt|crh|ty|ksh|ro|rmy|rm|qu|ru|se|sm|sa|sg|sc|sco|st|tn|sq|scn|si|simple|sd|ss|sk|cu|sl|so|sr|sh|stq|su|fi|sv|tl|ta|kab|roa-tara|tt|te|tet|th|vi|ti|tg|tpi|to|chr|chy|ve|tr|tk|tw|udm|bug|uk|ur|vec|vo|fiu-vro|wa|vls|war|wo|wuu|ts|ii|yi|yo|zh-yue|cbk-zam|diq|zea|bat-smg|zh):(.+?)\]\]\s*/g;

        var ar = text.match(regex);
        if(ar)
        {
                if(ar.join("#") != ar.sort().join("#"))
                {
                        pos = text.search(regex);
                        text = text.replace(regex, "");
                        text = text.substr(0,pos) + ar.join("") + text.substr(pos);
                }
        }

// Autokorrektur von einigen Schreibfehlern
//var text = "dsf 253,6&nbsp;m ü. NN kas 1243 m ü. NN dfj 7 m ak 7m jd fas 7m ü. NN aksdfk 8 m sadjfa 4,5 m über NN dd nd 1234,567&nbsp;m über NN ausg 123.456 m ü. NN erichtet. Die +25m-Soh ";

text = text.replace(/(\d+)(,)(\d+) m ü. NN/g,"{{Höhe|$1.$3|DE-NN}}");  
text = text.replace(/(\d+)(,)(\d+)&nbsp;m ü. NN/g,"{{Höhe|$1.$3|DE-NN}}");  
text = text.replace(/(\d+)(,)(\d+) m über NN/g,"{{Höhe|$1.$3|DE-NN}}");  
text = text.replace(/(\d+)(,)(\d+)&nbsp;m über NN/g,"{{Höhe|$1.$3|DE-NN}}"); 
text = text.replace(/(\d+)(,)(\d+)&nbsp;m&nbsp;ü. NN/g,"{{Höhe|$1.$3|DE-NN}}");   
text = text.replace(/(\d+)(,)(\d+)&nbsp;m&nbsp;ü.&nbsp;NN/g,"{{Höhe|$1.$3|DE-NN}}");   

text = text.replace(/(\d+)(,)(\d+) m ü. \[\[NN\]\]/g,"{{Höhe|$1.$3|DE-NN|link=true}}");  
text = text.replace(/(\d+)(,)(\d+)&nbsp;m ü. \[\[NN\]\]/g,"{{Höhe|$1.$3|DE-NN|link=true}}");  
text = text.replace(/(\d+)(,)(\d+) m über \[\[NN\]\]/g,"{{Höhe|$1.$3|DE-NN|link=true}}");  
text = text.replace(/(\d+)(,)(\d+)&nbsp;m über \[\[NN\]\]/g,"{{Höhe|$1.$3|DE-NN|link=true}}"); 
text = text.replace(/(\d+)(,)(\d+)&nbsp;m&nbsp;ü. \[\[NN\]\]/g,"{{Höhe|$1.$3|DE-NN|link=true}}");   
text = text.replace(/(\d+)(,)(\d+)&nbsp;m&nbsp;ü.&nbsp;\[\[NN\]\]/g,"{{Höhe|$1.$3|DE-NN|link=true}}");  

text = text.replace(/(\d+)(,)(\d+) m ü. \[\[Normalnull\|NN\]\]/g,"{{Höhe|$1.$2|DE-NN|link=true}}");  
text = text.replace(/(\d+)(,)(\d+) m über \[\[Normalnull\|NN\]\]/g,"{{Höhe|$1.$2|DE-NN|link=true}}");  
text = text.replace(/(\d+)(,)(\d+)&nbsp;m über \[\[Normalnull\|NN\]\]/g,"{{Höhe|$1.$2|DE-NN|link=true}}"); 
text = text.replace(/(\d+)(,)(\d+)&nbsp;m&nbsp;ü. \[\[Normalnull\|NN\]\]/g,"{{Höhe|$1.$2|DE-NN|link=true}}");   
text = text.replace(/(\d+)(,)(\d+)&nbsp;m&nbsp;ü.&nbsp;\[\[Normalnull\|NN\]\]/g,"{{Höhe|$1.$2|DE-NN|link=true}}");

//Vorlage Höhe

text = text.replace(/(\d+) ?m ü. NN/g,"{{Höhe|$1|DE-NN}}");  
text = text.replace(/(\d+)&nbsp;m ü. NN/g,"{{Höhe|$1|DE-NN}}");  
text = text.replace(/(\d+) ?m über NN/g,"{{Höhe|$1|DE-NN}}");  
text = text.replace(/(\d+)&nbsp;m über NN/g,"{{Höhe|$1|DE-NN}}"); 
text = text.replace(/(\d+)&nbsp;m&nbsp;ü. NN/g,"{{Höhe|$1|DE-NN}}");   
text = text.replace(/(\d+)&nbsp;m&nbsp;ü.&nbsp;NN/g,"{{Höhe|$1|DE-NN}}");   

text = text.replace(/(\d+) ?m ü. \[\[NN\]\]/g,"{{Höhe|$1|DE-NN|link=true}}");  
text = text.replace(/(\d+)&nbsp;m ü. \[\[NN\]\]/g,"{{Höhe|$1|DE-NN|link=true}}");  
text = text.replace(/(\d+) ?m über \[\[NN\]\]/g,"{{Höhe|$1|DE-NN|link=true}}");  
text = text.replace(/(\d+)&nbsp;m über \[\[NN\]\]/g,"{{Höhe|$1|DE-NN|link=true}}"); 
text = text.replace(/(\d+)&nbsp;m&nbsp;ü. \[\[NN\]\]/g,"{{Höhe|$1|DE-NN|link=true}}");   
text = text.replace(/(\d+)&nbsp;m&nbsp;ü.&nbsp;\[\[NN\]\]/g,"{{Höhe|$1|DE-NN|link=true}}");   

text = text.replace(/(\d+) ?m ü. \[\[Normalnull\|NN\]\]/g,"{{Höhe|$1|DE-NN|link=true}}");  
text = text.replace(/(\d+)&nbsp;m ü. \[\[Normalnull\|NN\]\]/g,"{{Höhe|$1|DE-NN|link=true}}");  
text = text.replace(/(\d+) ?m über \[\[Normalnull\|NN\]\]/g,"{{Höhe|$1|DE-NN|link=true}}");  
text = text.replace(/(\d+)&nbsp;m über \[\[Normalnull\|NN\]\]/g,"{{Höhe|$1|DE-NN|link=true}}"); 
text = text.replace(/(\d+)&nbsp;m&nbsp;ü. \[\[Normalnull\|NN\]\]/g,"{{Höhe|$1|DE-NN|link=true}}");   
text = text.replace(/(\d+)&nbsp;m&nbsp;ü.&nbsp;\[\[Normalnull\|NN\]\]/g,"{{Höhe|$1|DE-NN|link=true}}");
 
if(text!=textalt)
{
document.editform.wpSummary.value = document.editform.wpSummary.value ? document.editform.wpSummary.value + ", +Vorlage Höhe" : "Vorlage Höhe";
}

//Abkürzungen
        text = text.replace(/\.\.\./g,"…");

        text = text.replace(/([^-]) d\. ?h\./g,"$1 d.&nbsp;h.");
        text = text.replace(/([^-]) D\. ?h\./g,"$1 D.&nbsp;h."); // ? null oder einmaliges Vorkommen

        text = text.replace(/z\. ?B\./g,"z.&nbsp;B.");
        text = text.replace(/Z\. ?B\./g,"Z.&nbsp;B.");

        text = text.replace(/u\. ?a\./g,"u.&nbsp;a.");
        text = text.replace(/U\. ?a\./g,"U.&nbsp;a.");

        text = text.replace(/u\. ?ä\./g,"u.&nbsp;ä.");
        text = text.replace(/U\. ?ä\./g,"U.&nbsp;ä.");

        text = text.replace(/u\. ?U\./g,"u.&nbsp;U.");
        text = text.replace(/U\. ?U\./g,"U.&nbsp;U.");

        text = text.replace(/z\. ?Z\./g,"z.&nbsp;Z.");
        text = text.replace(/Z\. ?Z\./g,"Z.&nbsp;Z.");

        text = text.replace(/s\. ?a\./g,"s.&nbsp;a.");
        text = text.replace(/S\. ?a\./g,"S.&nbsp;a.");

        text = text.replace(/s\. ?o\./g,"s.&nbsp;o.");
        text = text.replace(/S\. ?o\./g,"S.&nbsp;o.");


        text = text.replace(/o\. ?g\./g,"o.&nbsp;g.");
        text = text.replace(/O\. ?g\./g,"O.&nbsp;g.");

        text = text.replace(/o\. ?ä\./g,"o.&nbsp;ä.");
        text = text.replace(/O\. ?ä\./g,"O.&nbsp;ä.");


        text = text.replace(/a\. ?D\./g,"a.&nbsp;D.");

        text = text.replace(/v\. ?a\./g,"v.&nbsp;a.");
        text = text.replace(/V\. ?a\./g,"V.&nbsp;a.");

        text = text.replace(/s\. ?u\./g,"s.&nbsp;u.");
        text = text.replace(/S\. ?u\./g,"S.&nbsp;u.");

        text = text.replace(/z\. ?T\./g,"z.&nbsp;T.");
        text = text.replace(/Z\. ?T\./g,"Z.&nbsp;T.");

        text = text.replace(/z\. ?Z\./g,"z.&nbsp;Z.");
        text = text.replace(/Z\. ?Z\./g,"Z.&nbsp;Z.");

        text = text.replace(/i\. ?S\./g,"i.&nbsp;S.");
        text = text.replace(/I\. ?S\./g,"I.&nbsp;S.");

        text = text.replace(/i\. ?d\. ?\R./g,"i.&nbsp;d.&nbsp;R.");
        text = text.replace(/I\. ?d\. ?\R./g,"I.&nbsp;d.&nbsp;R.");

        text = text.replace(/i\. ?d\. ?\F./g,"i.&nbsp;d.&nbsp;R.");
        text = text.replace(/I\. ?d\. ?\F./g,"I.&nbsp;d.&nbsp;R.");

        text = text.replace(/i\. ?V\. ?\m./g,"i.&nbsp;V.&nbsp;m.");
        text = text.replace(/I\. ?V\. ?\m./g,"I.&nbsp;V.&nbsp;m.");

        text = text.replace(/i\. ?d\. ?\OPf./g,"i.&nbsp;d.&nbsp;OPf.");

        text = text.replace(/e\. ?V\./g,"e.&nbsp;V.");
        text = text.replace(/a\. ?d\./g,"a.&nbsp;d.");


//Einheiten
        text = text.replace(/(\d+) ?m ?ü\. ?M\./g,"$1&nbsp;m&nbsp;ü.&nbsp;M.");

        text = text.replace(/(\d+) ?m\b/g,"$1&nbsp;m");
        text = text.replace(/(\d+) ?nm\b/g,"$1&nbsp;nm");
        text = text.replace(/(\d+) ?mm\b/g,"$1&nbsp;mm");
        text = text.replace(/(\d+) ?µm\b/g,"$1&nbsp;µm");
        text = text.replace(/(\d+) ?km\b/g,"$1&nbsp;km");
        text = text.replace(/(\d+) ?cm\b/g,"$1&nbsp;cm");
        text = text.replace(/(\d+) ?ha\b/g,"$1&nbsp;ha");
        text = text.replace(/(\d+) ?ccm\b/g,"$1&nbsp;ccm");
        text = text.replace(/(\d+) ?Nm\b/g,"$1&nbsp;Nm");
        text = text.replace(/(\d+) ?l\b/g,"$1&nbsp;l");
        text = text.replace(/(\d+) ?(\[\[Bar \(Einheit\)\|)?bar(\[?\[?)\b/g,"$1&nbsp;$2bar$3");
        text = text.replace(/(\d+) ?(\[?\[?)inch(\[?\[?)\b/g,"$1&nbsp;$2inch$3");
        text = text.replace(/(\d+) ?(\[?\[?)U\/min(\[?\[?)\b/g,"$1&nbsp;$2U/min$3");

        text = text.replace(/(\d+) ?s\b/g,"$1&nbsp;s");
        text = text.replace(/(\d+) ?ms\b/g,"$1&nbsp;ms");
	text = text.replace(/(\d+) ?[sS][eE][cC]\./g,"$1&nbsp;s");  //sec -> s bzw. sec. -> s
	text = text.replace(/(\d+) ?[sS][eE][cC]\b/g,"$1&nbsp;s");  //sec -> s bzw. sec. -> s
        text = text.replace(/(\d+) ?h\b/g,"$1&nbsp;h");
        text = text.replace(/(\d+) ?°C\b/g,"$1&nbsp;°C");
        text = text.replace(/(\d+) ?(\[\[Pferdestärke\|)?[pP][sS](\[?\[?)\b/g,"$1&nbsp;$2PS$3");

        text = text.replace(/(\d+) ?(\[\[Watt \(Einheit\)\|)?W(\[?\[?)\b/g,"$1&nbsp;$2W$3");

        text = text.replace(/(\d+) ?(\[\[Watt \(Einheit\)\|)?[kK]W(\[?\[?)\b/g,"$1&nbsp;$2kW$3");
        text = text.replace(/(\d+) ?(\[\[Wattstunde\|)?[kK]W[Hh](\[?\[?)\b/g,"$1&nbsp;$2kWh$3");

        text = text.replace(/(\d+) ?(\[\[Watt \(Einheit\)\|)?MW(\[?\[?)\b/g,"$1&nbsp;$2MW$3");
        text = text.replace(/(\d+) ?(\[\[Wattstunde\|)?MW[hH](\[?\[?)\b/g,"$1&nbsp;$2MWh$3");
        text = text.replace(/(\d+) ?(\[\[Watt \(Einheit\)\|)?MWe(\[?\[?)\b/g,"$1&nbsp;$2MWe$3");
        text = text.replace(/(\d+) ?(\[\[Watt \(Einheit\)\|)?MWt(\[?\[?)\b/g,"$1&nbsp;$2MWt$3");

        text = text.replace(/(\d+) ?(\[\[Watt \(Einheit\)\|)?mW(\[?\[?)\b/g,"$1&nbsp;$2mW$3");
        text = text.replace(/(\d+) ?(\[\[Wattstunde\|)?mW[hH](\[?\[?)\b/g,"$1&nbsp;$2mWh$3");

        text = text.replace(/(\d+) ?(\[\[Watt \(Einheit\)\|)?GW(\[?\[?)\b/g,"$1&nbsp;$2GW$3");
        text = text.replace(/(\d+) ?(\[\[Wattstunde\|)?GW[hH](\[?\[?)\b/g,"$1&nbsp;$2GWh$3");

        text = text.replace(/(\d+) ?g\b/g,"$1&nbsp;g");
        text = text.replace(/(\d+) ?kg\b/g,"$1&nbsp;kg");
        text = text.replace(/(\d+) ?mg\b/g,"$1&nbsp;mg");
        text = text.replace(/(\d+) ?t\b/g,"$1&nbsp;t");

        text = text.replace(/(\d+) ?V\b/g,"$1&nbsp;V");
        text = text.replace(/(\d+) ?mV\b/g,"$1&nbsp;mV");
        text = text.replace(/(\d+) ?kV\b/g,"$1&nbsp;kV");

        text = text.replace(/(\d+) ?A\b/g,"$1&nbsp;A");
        text = text.replace(/(\d+) ?mA\b/g,"$1&nbsp;mA");
        text = text.replace(/(\d+) ?kA\b/g,"$1&nbsp;kA");

        text = text.replace(/(\d+) ?Hz\b/g,"$1&nbsp;Hz");
        text = text.replace(/(\d+) ?mH[zZ]\b/g,"$1&nbsp;mHz");
        text = text.replace(/(\d+) ?MH[zZ]\b/g,"$1&nbsp;MHz");
        text = text.replace(/(\d+) ?GH[zZ]\b/g,"$1&nbsp;GHz");
        text = text.replace(/(\d+) ?[kK]H[zZ]\b/g,"$1&nbsp;kHz");
        text = text.replace(/(\d+) ?MH[zZ]\b/g,"$1&nbsp;MHz");

        text = text.replace(/(\d+) ?[sS][vV]\b/g,"$1&nbsp;Sv");

        text = text.replace(/(\d+) ?mph\b/g,"$1&nbsp;mph");

        text = text.replace(/(\d+) ?kn\b/g,"$1&nbsp;kn");

        text = text.replace(/(\d+) ?KB\b/g,"$1&nbsp;KB");
        text = text.replace(/(\d+) ?MB\b/g,"$1&nbsp;MB");

        text = text.replace(/(\d+) ?µOps\b/g,"$1&nbsp;µOps");

        text = text.replace(/(\d+) ?dpi\b/g,"$1&nbsp;dpi");

//Prozent
//Vor Prozentzeichen genügt ein gewöhnliches Leerzeichen, da die Software in diesem Fall automatisch 
//geschützte Leerzeichen erzeugt. Eventuell noch vorhandene geschützte Leerzeichen können bei 
// Bearbeitungen durch gewöhnliche Leerzeichen ersetzt werden.
// Wikipedia:Schreibweise_von_Zahlen

        text = text.replace(/(\d+) ?\%([^";i\-])/g,"$1 %$2");
        text = text.replace(/(\d+)&nbsp;\%([^";i\-])/g,"$1 %$2");

// Promille

        text = text.replace(/(\d+) ?\‰([^";])/g,"$1&nbsp;‰$2");

// Symbol für Tod

        text = text.replace(/&dagger;/g,"†");

// Währung

        text = text.replace(/(\d+) ?€/g,"$1&nbsp;€");

// Umwandlung amerikanischen Datumsformat -> deutsches Datumsformat
        text = text.replace(/[^\/](\d\d\d\d)\/(\d\d)\/(\d\d)/g," $3.$2.$1");

// stub-Vorlage entfernen, da diese in der de-WP nicht mehr verwendet wird
        text = text.replace(/\{\{stub\}\}/,"");

//Jahreszahlenzeitraum mit Gedankenstrich

text = text.replace(/\((\d\d\d\d) ?- ?(\d\d\d\d)\)/g,"($1–$2)");  

// Bild nach Datei 
text = text.replace(/\[\[Bild:/g,"[[Datei:"); 
text = text.replace(/\[\[Image:/g,"[[Datei:"); 
text = text.replace(/\[\[File:/g,"[[Datei:"); 

// Text schreiben
        if(text==textalt)
                 alert("Nichts geändert! (Autokorrektur)");
        else
        {
                document.editform.wpTextbox1.value = text;
                document.editform.wpSummary.value = document.editform.wpSummary.value ? document.editform.wpSummary.value + ", tippo Autokorrektur" : "tippo Autokorrektur";

// copy wpTextbox1 textarea back to wikEd frame
if (typeof(wikEdUseWikEd) != 'undefined') {
    if (wikEdUseWikEd == true) {
        WikEdUpdateFrame();
    }
}
                document.editform.wpDiff.click();
        }

} // Ende function korr2

// onload
        addOnloadHook(createLinksSidebar2);
//Editor WikEd stört funktion - vorher abschalten, nachher einschalten.
wikEdDisabled = false


// Autokorrektur verlinkte Daten (Jahreszahl, Tag, Monat) entfernen
 function createLinksSidebar3() {
        // Elemente der Box erstellen.
        var divPortlet_3 = document.createElement("div");
        var h5_3 = document.createElement("h5");
        var h5Text_3 = document.createTextNode("Verlinkte Daten");
        var divPbody_3 = document.createElement("div");
        var ul_3 = document.createElement("ul");
        // Mit Attributen ausrüsten.
        divPortlet_3.setAttribute("id", "p-link");
        divPortlet_3.setAttribute("class", "portlet");
        divPbody_3.setAttribute("class", "pBody");
        ul_3.setAttribute("id", "u-link")
        // Spalte suchen.
        var column_3 = document.getElementById("column-one");
        // Box einbauen.
        column_3.appendChild(divPortlet_3);
        divPortlet_3.appendChild(h5_3);
        h5_3.appendChild(h5Text_3);
        divPortlet_3.appendChild(divPbody_3);
        divPbody_3.appendChild(ul_3);
        // Aktivierunglink erstellen.
        var li_3 = document.createElement("li");  
        li_3.style.whiteSpace = "nowrap";
        ul_3.appendChild(li_3);
        var a_3 = document.createElement("a");
        a_3.setAttribute("href", "javascript:korr3()");
        a_3.setAttribute("title", "Wikilink Daten (Jahreszahl, Tag, Monat) entfernen");
        li_3.appendChild(a_3);
        var aText_3 = document.createTextNode("Entferne Verlinkung");
        a_3.appendChild(aText_3);
}

  function korr3() {

// copy wikEd (http://en.wikipedia.org/wiki/User:Cacycle/wikEd.js) frame to wpTextbox1 textarea
if (typeof(wikEdUseWikEd) != 'undefined') {
    if (wikEdUseWikEd == true) {
        WikEdUpdateTextarea();
    }
}
        // Text bekommen
        var text = document.editform.wpTextbox1.value;
        var textalt = text;


//Jahreszahlen

        text = text.replace(/\[\[(\d+)\]\]/g,"$1");
        text = text.replace(/\[\[(\d\d\d\d)\|(\d\d)\]\]/g,"$1");  

// Tag mit Monat
 text = text.replace(/\[\[(\d+\. ?[Jj][Aa][Nn][Uu][Aa][Rr])\]\]/g,"$1");
 text = text.replace(/\[\[(\d+\. ?[Ff][Ee][Bb][Rr][Uu][Aa][Rr])\]\]/g,"$1");
 text = text.replace(/\[\[(\d+\. ?[Mm][Ää][Rr][Zz])\]\]/g,"$1");
 text = text.replace(/\[\[(\d+\. ?[Aa][Pp][Rr][Ii][Ll])\]\]/g,"$1");
 text = text.replace(/\[\[(\d+\. ?[Mm][Aa][Ii])\]\]/g,"$1");
 text = text.replace(/\[\[(\d+\. ?[Jj][Uu][Nn][Ii])\]\]/g,"$1");
 text = text.replace(/\[\[(\d+\. ?[Jj][Uu][Ll][Ii])\]\]/g,"$1");
 text = text.replace(/\[\[(\d+\. ?[Aa][Uu][Gg][Uu][Ss][Tt])\]\]/g,"$1");
 text = text.replace(/\[\[(\d+\. ?[Ss][Ee][Pp][Tt][Ee][Mm][Bb][Ee][Rr])\]\]/g,"$1");
 text = text.replace(/\[\[(\d+\. ?[Oo][Kk][Tt][Oo][Bb][Ee][Rr])\]\]/g,"$1"); 
 text = text.replace(/\[\[(\d+\. ?[Nn][Oo][Vv][Ee][Mm][Bb][Ee][Rr])\]\]/g,"$1"); 
 text = text.replace(/\[\[(\d+\. ?[Dd][Ee][Zz][Ee][Mm][Bb][Ee][Rr])\]\]/g,"$1"); 

// Monat
 text = text.replace(/\[\[([Jj][Aa][Nn][Uu][Aa][Rr])\]\]/g,"$1");
 text = text.replace(/\[\[([Ff][Ee][Bb][Rr][Uu][Aa][Rr])\]\]/g,"$1");
 text = text.replace(/\[\[([Mm][Ää][Rr][Zz])\]\]/g,"$1");
 text = text.replace(/\[\[([Aa][Pp][Rr][Ii][Ll])\]\]/g,"$1");
 text = text.replace(/\[\[([Mm][Aa][Ii])\]\]/g,"$1");
 text = text.replace(/\[\[([Jj][Uu][Nn][Ii])\]\]/g,"$1");
 text = text.replace(/\[\[([Jj][Uu][Ll][Ii])\]\]/g,"$1");
 text = text.replace(/\[\[([Aa][Uu][Gg][Uu][Ss][Tt])\]\]/g,"$1");
 text = text.replace(/\[\[([Ss][Ee][Pp][Tt][Ee][Mm][Bb][Ee][Rr])\]\]/g,"$1");
 text = text.replace(/\[\[([Oo][Kk][Tt][Oo][Bb][Ee][Rr])\]\]/g,"$1"); 
 text = text.replace(/\[\[([Nn][Oo][Vv][Ee][Mm][Bb][Ee][Rr])\]\]/g,"$1"); 
 text = text.replace(/\[\[([Dd][Ee][Zz][Ee][Mm][Bb][Ee][Rr])\]\]/g,"$1"); 

//Jahrzehnt
 text = text.replace(/\[\[(\d\d\d\der)\]\]/g,"$1");
 text = text.replace(/\[\[(\d\d\d\der)\|(\d\der)\]\]/g,"$1");

// Verlikung Datum Infobox Personendaten wiederherstellen oder setzen

 text = text.replace(/([Gg][Ee][Bb][Uu][Rr][Tt][Ss][Dd][Aa][Tt][Uu][Mm]) ?= ?\[\[(\d\d?\. ([Jj][Aa][Nn][Uu][Aa][Rr]|[Ff][Ee][Bb][Rr][Uu][Aa][Rr]|[Mm][Ää][Rr][Zz]|[Aa][Pp][Rr][Ii][Ll]|[Mm][Aa][Ii]|[Jj][Uu][Nn][Ii]|[Jj][Uu][Ll][Ii]|[Aa][Uu][Gg][Uu][Ss][Tt]|[Ss][Ee][Pp][Tt][Ee][Mm][Bb][Ee][Rr]|[Oo][Kk][Tt][Oo][Bb][Ee][Rr]|[Nn][Oo][Vv][Ee][Mm][Bb][Ee][Rr]|[Dd][Ee][Zz][Ee][Mm][Bb][Ee][Rr])\]\]) \[\[(\d\d\d\d)\]\]/g,"$1=$2 $4");
 
  text = text.replace(/([Ss][Tt][Ee][Rr][Bb][Ee][Dd][Aa][Tt][Uu][Mm]) ?= ?\[\[(\d\d?\. ([Jj][Aa][Nn][Uu][Aa][Rr]|[Ff][Ee][Bb][Rr][Uu][Aa][Rr]|[Mm][Ää][Rr][Zz]|[Aa][Pp][Rr][Ii][Ll]|[Mm][Aa][Ii]|[Jj][Uu][Nn][Ii]|[Jj][Uu][Ll][Ii]|[Aa][Uu][Gg][Uu][Ss][Tt]|[Ss][Ee][Pp][Tt][Ee][Mm][Bb][Ee][Rr]|[Oo][Kk][Tt][Oo][Bb][Ee][Rr]|[Nn][Oo][Vv][Ee][Mm][Bb][Ee][Rr]|[Dd][Ee][Zz][Ee][Mm][Bb][Ee][Rr])\]\]) \[\[(\d\d\d\d)\]\]/g,"$1=$2 $4");

// Verlikung Datum Geburtsdatum und Sterbedatum wiederherstellen oder setzen

  text = text.replace(/\(\* ?(\d\d?\. ([Jj][Aa][Nn][Uu][Aa][Rr]|[Ff][Ee][Bb][Rr][Uu][Aa][Rr]|[Mm][Ää][Rr][Zz]|[Aa][Pp][Rr][Ii][Ll]|[Mm][Aa][Ii]|[Jj][Uu][Nn][Ii]|[Jj][Uu][Ll][Ii]|[Aa][Uu][Gg][Uu][Ss][Tt]|[Ss][Ee][Pp][Tt][Ee][Mm][Bb][Ee][Rr]|[Oo][Kk][Tt][Oo][Bb][Ee][Rr]|[Nn][Oo][Vv][Ee][Mm][Bb][Ee][Rr]|[Dd][Ee][Zz][Ee][Mm][Bb][Ee][Rr])) (\d\d\d\d)/g,"(* [[$1]] [[$3]]");

  text = text.replace(/\† ?(\d\d?\. ([Jj][Aa][Nn][Uu][Aa][Rr]|[Ff][Ee][Bb][Rr][Uu][Aa][Rr]|[Mm][Ää][Rr][Zz]|[Aa][Pp][Rr][Ii][Ll]|[Mm][Aa][Ii]|[Jj][Uu][Nn][Ii]|[Jj][Uu][Ll][Ii]|[Aa][Uu][Gg][Uu][Ss][Tt]|[Ss][Ee][Pp][Tt][Ee][Mm][Bb][Ee][Rr]|[Oo][Kk][Tt][Oo][Bb][Ee][Rr]|[Nn][Oo][Vv][Ee][Mm][Bb][Ee][Rr]|[Dd][Ee][Zz][Ee][Mm][Bb][Ee][Rr])) (\d\d\d\d)/g,"† [[$1]] [[$3]]");

// Text schreiben
        if(text==textalt)
                alert("Nichts geändert! (Entfernung Verlinkung Daten)");
        else
        {
                document.editform.wpTextbox1.value = text;
                document.editform.wpSummary.value = document.editform.wpSummary.value ? document.editform.wpSummary.value + ", -Verlinkung Datum (WP:VL) (Autokorrektur)" : "-Verlinkung Datum (WP:VL) (Autokorrektur)";

// copy wpTextbox1 textarea back to wikEd frame
if (typeof(wikEdUseWikEd) != 'undefined') {
    if (wikEdUseWikEd == true) {
        WikEdUpdateFrame();
    }
}
                document.editform.wpDiff.click();
        }
} // Ende function korr3

// onload
        addOnloadHook(createLinksSidebar3);

// *************** Anfang **********************************
// Aktionsscript1 

function createLinksSidebar4() {
//Editor WikEd stört funktion - vorher abschalten, nachher einschalten.
wikEdDisabled = true

        // Elemente der Box erstellen.
        var divPortlet_4 = document.createElement("div");
        var h5_4 = document.createElement("h5");
        var h5Text_4 = document.createTextNode("Aktionsänderung");
        var divPbody_4 = document.createElement("div");
        var ul_4 = document.createElement("ul");
        // Mit Attributen ausrüsten.
        divPortlet_4.setAttribute("id", "p-link");
        divPortlet_4.setAttribute("class", "portlet");
        divPbody_4.setAttribute("class", "pBody");
        ul_4.setAttribute("id", "u-link")
        // Spalte suchen.
        var column_4 = document.getElementById("column-one");
        // Box einbauen.
        column_4.appendChild(divPortlet_4);
        divPortlet_4.appendChild(h5_4);
        h5_4.appendChild(h5Text_4);
        divPortlet_4.appendChild(divPbody_4);
        divPbody_4.appendChild(ul_4);
        // Aktivierunglink erstellen.
        var li_4 = document.createElement("li");  
        li_4.style.whiteSpace = "nowrap";
        ul_4.appendChild(li_4);
        var a_4 = document.createElement("a");
        a_4.setAttribute("href", "javascript:korr4()");
        a_4.setAttribute("title", "Aktionsänderung auführen");
        li_4.appendChild(a_4);
        var aText_4 = document.createTextNode("Aktion");
        a_4.appendChild(aText_4);
}

function korr4()
  {

// copy wikEd (http://en.wikipedia.org/wiki/User:Cacycle/wikEd.js) frame to wpTextbox1 textarea
if (typeof(wikEdUseWikEd) != 'undefined') {
    if (wikEdUseWikEd == true) {
        WikEdUpdateTextarea();
    }
}
        // Text bekommen
        var text = document.editform.wpTextbox1.value;
        var textalt = text;

//Aktionsänderung 

//<span style='display:none'>1984-04-04</span> 04.04.1984 
//{{SortKey|2042-05-28|(28.05.2042)}}

// text = text.replace(/ ?<span style='display:none'>([-\d]+)<\/span> ?([-\d\(\)\.\\\/]+) ?/g,"{{SortKey|$1|$2}}");

//Umwandlung amerikanisches Datumsformat in deutsches Datumsformat
text = text.replace(/[^\/](\d\d\d\d)\/(\d\d)\/(\d\d)/g," $3.$2.$1");

// Text schreiben
        if(text==textalt)
                 alert("Nichts geändert! (Aktionsänderung)");
        else
        {
                document.editform.wpTextbox1.value = text;
                document.editform.wpSummary.value = document.editform.wpSummary.value ? document.editform.wpSummary.value + ", Aktionsänderung" : "Aktionsänderung";

// copy wpTextbox1 textarea back to wikEd frame
if (typeof(wikEdUseWikEd) != 'undefined') {
    if (wikEdUseWikEd == true) {
        WikEdUpdateFrame();
    }
}
                document.editform.wpDiff.click();
        }
} // Ende function korr4

// onload
        addOnloadHook(createLinksSidebar4);

// *************** Anfang **********************************
// Aktionsscript2 

function createLinksSidebar5() {
//Editor WikEd stört funktion - vorher abschalten, nachher einschalten.
wikEdDisabled = true

        // Elemente der Box erstellen.
        var divPortlet_5 = document.createElement("div");
        var h5_5 = document.createElement("h5");
        var h5Text_5 = document.createTextNode("Aktionsänderung");
        var divPbody_5 = document.createElement("div");
        var ul_5 = document.createElement("ul");
        // Mit Attributen ausrüsten.
        divPortlet_5.setAttribute("id", "p-link");
        divPortlet_5.setAttribute("class", "portlet");
        divPbody_5.setAttribute("class", "pBody");
        ul_5.setAttribute("id", "u-link")
        // Spalte suchen.
        var column_5 = document.getElementById("column-one");
        // Box einbauen.
        column_5.appendChild(divPortlet_5);
        divPortlet_5.appendChild(h5_5);
        h5_5.appendChild(h5Text_5);
        divPortlet_5.appendChild(divPbody_5);
        divPbody_5.appendChild(ul_5);
        // Aktivierunglink erstellen.
        var li_5 = document.createElement("li");  
        li_5.style.whiteSpace = "nowrap";
        ul_5.appendChild(li_5);
        var a_5 = document.createElement("a");
        a_5.setAttribute("href", "javascript:korr5()");
        a_5.setAttribute("title","Straßenänderung auführen");
        li_5.appendChild(a_5);
        var aText_5 = document.createTextNode("Straßen");
        a_5.appendChild(aText_5);
}

function korr5()
  {
        // Text bekommen

// copy wikEd (http://en.wikipedia.org/wiki/User:Cacycle/wikEd.js) frame to wpTextbox1 textarea
if (typeof(wikEdUseWikEd) != 'undefined') {
    if (wikEdUseWikEd == true) {
        WikEdUpdateTextarea();
    }
}

        var text = document.editform.wpTextbox1.value;
        var textalt = text;
/*
* Testdaten
var text = "hh Bundesstraße B1 hh Bundesstraße B 2 gg Bundesstraße [[B3]] nn Bundesstraße [[B 4]] jj [[Bundesstraße 5|B 6]] hh [[Bundesstraße 7|B8]] hh B9 jj B 10 hh |||||||||| Bundesautobahn A11 nnn Bundesautobahn [[A12]] hhh Bundesautobahn A 13 hhh Bundesautobahn [[A14]] hh Bundesautobahn [[A 15]]  fff Autobahn A16 kkk Autobahn A 17 jj Autobahn [[A 18]] jj Autobahn [[A19]] kkk [[Bundesautobahn 20|Autobahn A21]] mh [[Bundesautobahn 22|Autobahn A 23]]  cc A24 gg A25 fff [[A26]] gg [[A 27]] jj hh [[Bundesstraße]] [[Bundesstraße 51|B51]], jjj Bundesstraße [[Bundesstraße 51|B51]],";
*/

// [[Bundesstraße]] [[Bundesstraße 51|B51]] -> [[Bundesstraße 51]]
// Bundesstraße [[Bundesstraße 51|B51]] -> [[Bundesstraße 51]]

text = text.replace(/(\[\[)?Bundesstraße(\]\])? \[\[Bundesstraße (\d+)\|B( )?(\d+)(\]\])/g,"[[Bundesstraße $3]]");

// [[Bundesstraße]] [[Bundesstraße 51|B&nbsp;51]] -> [[Bundesstraße 51]]
// Bundesstraße [[Bundesstraße 51|B&nbsp;51]] -> [[Bundesstraße 51]]

text = text.replace(/(\[\[)?Bundesstraße(\]\])? \[\[Bundesstraße (\d+)\|B&nbsp;(\d+)(\]\])/g,"[[Bundesstraße $3]]");

// [[Bundesstraße 51|Bundesstraße B52]] -> [[Bundesstraße 51]]
// [[Bundesstraße 51|Bundesstraße B 52]] -> [[Bundesstraße 51]]

text = text.replace(/\[\[Bundesstraße (\d+)\|Bundesstraße B( )?(\d+)(\]\])/g,"[[Bundesstraße $1]]");

// Bundesstraße B1 --> Bundesstraße 1
// Bundesstraße B 1 --> Bundesstraße 1
// Bundesstraße [[B1]] --> [[Bundesstraße 1]]
// Bundesstraße [[B 1]] --> [[Bundesstraße 1]]

text = text.replace(/Bundesstraße (\[\[)?B( )?(\d+)(\]\])?/g,"$1Bundesstraße $3$4");

// [[Bundesstraße]] B1 --> [[Bundesstraße 1]]
// [[Bundesstraße]] B 1 --> [[Bundesstraße 1]]
// [[Bundesstraße]] [[B1]] --> [[Bundesstraße 1]]
// [[Bundesstraße]] [[B 1]] --> [[Bundesstraße 1]]

text = text.replace(/\[\[Bundesstraße\]\] (\[\[)?B( )?(\d+)(\]\])?/g,"[[Bundesstraße $3]]");

// [[Bundesstraße]] B57 --> [[Bundesstraße]] B&nbsp;57
// [[Bundesstraße]] B 57 --> [[Bundesstraße]] B&nbsp;57

text = text.replace(/\[\[Bundesstraße\]\] B( )?(\d+)/g,"[[Bundesstraße]] B$2");

// [[Bundesstraße 1|B 1]] --> [[Bundesstraße 1|B&nbsp;1]]
// [[Bundesstraße 1|B1]] --> [[Bundesstraße 1|B&nbsp;1]]

text = text.replace(/\[\[Bundesstraße (\d+)\|B( )?(\d+)(\]\])/g,"[[Bundesstraße $1|B&nbsp;$3]]");

// B1 -> B&nbsp;1
// B 1 --> B&nbsp;1

text = text.replace(/ B ?(\d+) /g," B&nbsp;$1 ");

// [[B1]] --> [[Bundesstraße 1|B&nbsp;1]]
// [[B 1]] --> [[Bundesstraße 1|B&nbsp;1]]

text = text.replace(/ \[\[B (\d+)\]\] /g," [[Bundesstraße $1|B&nbsp;$1]] ");

//------------------------------------------------------------------------------------------------------

// [[Autobahn]] [[Bundesautobahn 51|A51]] -> [[Bundesautobahn 51]]
// Autobahn [[Bundesautobahn 51|A51]] -> [[Bundesautobahn 51]]

text = text.replace(/(\[\[)?Autobahn(\]\])? \[\[Bundesautobahn (\d+)\|A( )?(\d+)(\]\])/g,"[[Bundesautobahn $3]]");

// [[Autobahn]] [[Bundesautobahn 51|A&nbsp;51]] -> [[Bundesautobahn 51]]
// Autobahn [[Bundesautobahn 51|A&nbsp;51]] -> [[Bundesautobahn 51]]

text = text.replace(/(\[\[)?Autobahn(\]\])? \[\[Bundesautobahn (\d+)\|A&nbsp;(\d+)(\]\])/g,"[[Bundesautobahn $3]]");

// [[Bundesautobahn]] [[Bundesautobahn 51|A51]] -> [[Bundesautobahn 51]]
// Bundesautobahn [[Bundesautobahn 51|A51]] -> [[Bundesautobahn 51]]

text = text.replace(/(\[\[)?Bundesautobahn(\]\])? \[\[Bundesautobahn (\d+)\|A( )?(\d+)(\]\])/g,"[[Bundesautobahn $3]]");

// [[Bundesautobahn]] [[Bundesautobahn 51|A&nbsp;51]] -> [[Bundesautobahn 51]]
// Bundesautobahn [[Bundesautobahn 51|A&nbsp;51]] -> [[Bundesautobahn 51]]

text = text.replace(/(\[\[)?Bundesautobahn(\]\])? \[\[Bundesautobahn (\d+)\|A&nbsp;(\d+)(\]\])/g,"[[Bundesautobahn $3]]");

// Bundesautobahn A1 --> Bundesautobahn 1
// Bundesautobahn A 1 --> Bundesautobahn 1
// Bundesautobahn [[A1]] --> [[Bundesautobahn 1]]
// Bundesautobahn [[A 1]] --> [[Bundesautobahn 1]]

text = text.replace(/Bundesautobahn (\[\[)?A( )?(\d+)(\]\])?/g,"$1Bundesautobahn $3$4");

// [[Bundesautobahn 1|A 1]] --> [[Bundesautobahn 1|A&nbsp;1]]
// [[Bundesautobahn 1|A1]] --> [[Bundesautobahn 1|A&nbsp;1]]

text = text.replace(/\[\[Bundesautobahn (\d+)\|A( )?(\d+)(\]\])/g,"[[Bundesautobahn $1|A&nbsp;$3]]");

//------------------------------------------------------------------------------------------------------

// [[Bundesautobahn 1|Autobahn A1]] --> [[Bundesautobahn 1|Autobahn&nbsp;1]]
// [[Bundesautobahn 1|Autobahn A 1]] --> [[Bundesautobahn 1|Autobahn&nbsp;1]]

text = text.replace(/\[\[Bundesautobahn (\d+)\|Autobahn A( )?(\d+)(\]\])/g,"[[Bundesautobahn $1|Autobahn&nbsp;$3]]");

// Autobahn A1 --> Bundesautobahn 1
// Autobahn A 1 --> Bundesautobahn 1
// Autobahn [[A1]] --> [[Bundesautobahn 1]]
// Autobahn [[A 1]] --> [[Bundesautobahn 1]]

text = text.replace(/Autobahn (\[\[)?A( )?(\d+)(\]\])?/g,"$1Bundesautobahn $3$4");

// A1 -> A&nbsp;1
// A 1 --> A&nbsp;1

text = text.replace(/ A ?(\d+)/g," A&nbsp;$1");

// [[A1]] --> [[Bundesautobahn 1|A&nbsp;1]]
// [[A 1]] --> [[Bundesautobahn 1|A&nbsp;1]]

text = text.replace(/ \[\[A ?(\d+)\]\] /g," [[Bundesautobahn $1|A&nbsp;$1]] ");


//------------------------------------------------------------------------------------------------------
// BAB1 -> A&nbsp;1
// BAB 1 --> A&nbsp;1

text = text.replace(/ BAB ?(\d+) /g," A&nbsp;$1 ");

// [[BAB1]] --> [[Bundesautobahn 1|A&nbsp;1]]
// [[BAB 1]] --> [[Bundesautobahn 1|A&nbsp;1]]

text = text.replace(/ \[\[BAB (\d+)\]\] /g," [[Bundesautobahn $1|A&nbsp;$1]] ");


//------------------------------------------------------------------------------------------------------

// Landstraße L1 --> Landstraße 1
// Landstraße [[L1]] --> [[Landstraße 1]]
// Landstraße [[L 1]] --> [[Landstraße 1]]

text = text.replace(/Landstraße (\[\[)?L( )?(\d+)(\]\])?/g,"$1Landstraße $3$4");

// [[Landstraße 1|L 1]] --> [[Landstraße 1|L&nbsp;1]]
// [[Landstraße 1|L1]] --> [[Landstraße 1|L&nbsp;1]]

text = text.replace(/\[\[Landstraße (\d+)\|L( )?(\d+)(\]\])/g,"[[Landstraße $1|L&nbsp;$3]]");

//------------------------------------------------------------------------------------------------------
// Landesstraße L1 --> Landesstraße 1
// Landesstraße [[L1]] --> [[Landesstraße 1]]
// Landesstraße [[L 1]] --> [[Landesstraße 1]]

text = text.replace(/Landesstraße (\[\[)?L( )?(\d+)(\]\])?/g,"$1Landesstraße $3$4");

// [[Landesstraße 1|L 1]] --> [[Landesstraße 1|L&nbsp;1]]
// [[Landesstraße 1|L1]] --> [[Landesstraße 1|L&nbsp;1]]

text = text.replace(/\[\[Landesstraße (\d+)\|L( )?(\d+)(\]\])/g,"[[Landesstraße $1|L&nbsp;$3]]");

// L1 -> L&nbsp;1
// L 1 --> L&nbsp;1

text = text.replace(/ L ?(\d+) /g," L&nbsp;$1 ");

//------------------------------------------------------------------------------------------------------

// L1 -> L&nbsp;1
// L 1 --> L&nbsp;1

text = text.replace(/ L ?(\d+) /g," L&nbsp;$1 ");

// [[L1]] --> [[Landesstraße 1|L&nbsp;1]]
// [[L 1]] --> [[Landesstraße 1|L&nbsp;1]]

text = text.replace(/ \[\[L (\d+)\]\] /g," [[Landesstraße $1|L&nbsp;$1]] ");

//------------------------------------------------------------------------------------------------------

// [[Europastraße]] [[Europastraße 51|E51]] -> [[Europastraße 51]]
// Europastraße [[Europastraße 51|E51]] -> [[Europastraße 51]]

text = text.replace(/(\[\[)?Europastraße(\]\])? \[\[Europastraße (\d+)\|E( )?(\d+)(\]\])/g,"[[Europastraße $3]]");

// [[Europastraße 51|Europastraße E52]] -> [[Europastraße 51]]
// [[Europastraße 51|Europastraße E 52]] -> [[Europastraße 51]]

text = text.replace(/\[\[Europastraße (\d+)\|Europastraße E( )?(\d+)(\]\])/g,"[[Europastraße $1]]");

// Europastraße E1 --> Europastraße 1
// Europastraße E 1 --> Europastraße 1
// Europastraße [[E1]] --> [[Europastraße 1]]
// Europastraße [[E 1]] --> [[Europastraße 1]]

text = text.replace(/Europastraße (\[\[)?E( )?(\d+)(\]\])?/g,"$1Europastraße $3$4");

// [[Europastraße]] E1 --> [[Europastraße 1]]
// [[Europastraße]] E 1 --> [[Europastraße 1]]
// [[Europastraße]] [[E1]] --> [[Europastraße 1]]
// [[Europastraße]] [[E 1]] --> [[Europastraße 1]]

text = text.replace(/\[\[Europastraße\]\] (\[\[)?E( )?(\d+)(\]\])?/g,"[[Europastraße $3]]");

// [[Europastraße]] E57 --> [[Europastraße]] E&nbsp;57
// [[Europastraße]] E 57 --> [[Europastraße]] E&nbsp;57

text = text.replace(/\[\[Europastraße\]\] E( )?(\d+)/g,"[[Europastraße]] E$2");

// [[Europastraße 1|E 1]] --> [[Europastraße 1|E&nbsp;1]]
// [[Europastraße 1|E1]] --> [[Europastraße 1|E&nbsp;1]]

text = text.replace(/\[\[Europastraße (\d+)\|E( )?(\d+)(\]\])/g,"[[Europastraße $1|E&nbsp;$3]]");

// E1 -> E&nbsp;1
// E 1 --> E&nbsp;1

text = text.replace(/ E ?(\d+) /g," E&nbsp;$1 ");

// [[E1]] --> [[Europastraße 1|E&nbsp;1]]
// [[E 1]] --> [[Europastraße 1|E&nbsp;1]]

text = text.replace(/ \[\[E (\d+)\]\] /g," [[Europastraße $1|E&nbsp;$1]] ");

//------------------------------------------------------------------------------------------------------

// Text schreiben
        if(text==textalt)
                 alert("Nichts geändert! (Straßenkorrektur)");
        else
        {
                document.editform.wpTextbox1.value = text;
                document.editform.wpSummary.value = document.editform.wpSummary.value ? document.editform.wpSummary.value + ", Doppelbezeichnung entfernt/tippo" : "Doppelbezeichnung entfernt/tippo";

// copy wpTextbox1 textarea back to wikEd frame
if (typeof(wikEdUseWikEd) != 'undefined') {
    if (wikEdUseWikEd == true) {
        WikEdUpdateFrame();
    }
}
                document.editform.wpDiff.click();
        }
} // Ende function korr5

// onload
        addOnloadHook(createLinksSidebar5);


//------------------------------------------------------------------------------------------------
/*
 * showRedundantLinks
 * In der Navigationsleiste am Rand wird eine sortierte Liste aller im Artikel
 * vorkommenden Links erstellt. Mehrfach vorkommende Links werden im Artikel
 * gekennzeichnet.
 * dbenzhuser (de:Benutzer:Dbenzhuser)
 */

// Zutun: Links an der Seite mit Sonderfunktionen belegen.
// Z.B. dauerhaft markieren, Sprung zu Link.

// Mergesort für Arrays
// Wegen kleiner Modifikationen (siehe Kommentare) nur zur Verwendung bei der
// Erstellung der Linkleiste.
var b;
Array.prototype.mergesort = function(lo, hi) {
        if (lo<hi) {
                var mid = ((hi+lo)-(hi+lo)%2) / 2;
                this.mergesort(lo, mid);
                this.mergesort(mid+1, hi);
                var i=0;
                var j=lo;
                while (j<=mid) {
                        b[i++]=this[j++];
                }
                var i=0;
                var k=lo;
                while (k<j && j<=hi) {
                        // Sortiert wird nach Title-Attribut der Links.
                        // '[0].getAttribute("title")' entfernen für normalen Mergesort.
                        if (b[i][0].getAttribute("title")<=this[j][0].getAttribute("title")) {
                                this[k++]=b[i++];
                        }
                        else {
                                this[k++]=this[j++];
                        }
                }
                while (k<j) {
                        this[k++]=b[i++];
                }
        }
}

// Fügt einem Attribut einen weiteren durch Leerzeichen abgetrennten Wert hinzu.
Node.prototype.addAttributeValue = function(key, value) {
        if (!this.getAttribute(key)) {
                this.setAttribute(key, value);
        }
        else {
                this.setAttribute(key, this.getAttribute(key)+ " " +value);
        }
}

// Löscht einen Wert aus einem Attribut.
Node.prototype.removeAttributeValue = function(key, value) {
        var newvalue = this.getAttribute(key);
        var reg = new RegExp("(^|\\s)"+value+"(\\s|$)");
        newvalue = newvalue.replace(reg, " ");
        newvalue = newvalue.replace(/^\s+/g, "");
        newvalue = newvalue.replace(/\s+$/g, "");
        this.setAttribute(key, newvalue);
}

// Markierungen werden bei allen Links der übergebenen Klasse ein bzw ausgeblendet.
function highlight(cname, on) {
        var objects = document.getElementsByTagName("a");
        cname = cname.replace("(", "\\(");
        cname = cname.replace(")", "\\)");
        var reg = new RegExp("(^|\\s)"+cname+"(\\s|$)"); 
        var length = objects.length
        for(var i = 0; i < length; i++) {
                if(objects[i].className.search(reg) != -1) {
                        if(on) {
                                objects[i].addAttributeValue("class", "highlight");
                        }
                        else {
                                objects[i].removeAttributeValue("class", "highlight");
                        }
                }
        }
}

// Nach dem Vorbild der bereits vorhandenen Listen wird eine neue Box in der
// Navigationsleiste installiert, die einen Link zum Aktivieren des
// Linksammlers enthält.
function createLinksSidebar() {
        // Elemente der Box erstellen.
        var divPortlet = document.createElement("div");
        var h5 = document.createElement("h5");
        var h5Text = document.createTextNode("Links im Artikel");
        var divPbody = document.createElement("div");
        var ul = document.createElement("ul");
        // Mit Attributen ausrüsten.
        divPortlet.setAttribute("id", "p-link");
        divPortlet.setAttribute("class", "portlet");
        divPbody.setAttribute("class", "pBody");
        ul.setAttribute("id", "u-link")
        // Spalte suchen.
        var column = document.getElementById("column-one");
        // Box einbauen.
        column.appendChild(divPortlet);
        divPortlet.appendChild(h5);
        h5.appendChild(h5Text);
        divPortlet.appendChild(divPbody);
        divPbody.appendChild(ul);
        // Aktivierunglink erstellen.
        var li = document.createElement("li");  
        li.style.whiteSpace = "nowrap";
        ul.appendChild(li);
        var a = document.createElement("a");
        a.setAttribute("href", "javascript:showRedundantLinks()");
        a.setAttribute("title", "Wikilinks im Artikel anzeigen!");
        li.appendChild(a);
        var aText = document.createTextNode("Aktivieren");
        a.appendChild(aText);
}

// Alle Wikilinks innerhalb des Artikels werden gesammelt.
// Anschließend werden sie in der Liste angezeigt und mehrfache Links im
// Artikeltext markiert.
function showRedundantLinks() {
        // "Aktivieren"-Link (inkl Listenelement) entfernen.
        var ul = document.getElementById("u-link");
        ul.removeChild(ul.firstChild);
        // Alle Links im Artikeltext sammeln.
        var links = document.getElementById("bodyContent").getElementsByTagName("a");
        // Regexps zur Bestimmung der relevanten Links.
        var regexpExist = /^\/wiki\/(.+)$/;
        var regexpNotExist = /^\/w\/index\.php\?title=(.+)\&action=edit$/;
        var regexpExclude = /^\/w(iki)?\/(index\.php\?title=)?(Bild|Benutzer|Benutzer_Diskussion)\:(.+)$/;
        // Nur relevante Links in neues Array speichern.
        // Dabei werden jeweils eine Referenz auf den Link im Artikel und ein Klon
        // für die Linkleiste gespeichert.
        var linkCount1 = links.length;
        var linkNodes = new Array();
        for (var i=0; i < linkCount1; ++i) {
                if (links[i].getAttribute("title") && !regexpExclude.test(links[i].getAttribute("href")) && (regexpExist.test(links[i].getAttribute("href")) || regexpNotExist.test(links[i].getAttribute("href")))) {
                        linkNodes.push(new Array(links[i].cloneNode(true), links[i]));
                }
        }
        // Bei Links für Linkleiste den Linktext mit Title-Attribut überschreiben.
        var linkCount2 = linkNodes.length;
        for (var i=0; i < linkCount2; ++i) {
                var linkTitle = linkNodes[i][0].getAttribute("title");
                var linkText = document.createTextNode(linkTitle);
                linkNodes[i][0].replaceChild(linkText, linkNodes[i][0].firstChild);
                // Attribute und Funktionsaufrufe für Highlighting.
                // Leerzeichen werden durch Unterstriche ersetzt.
                var linkTitleClass = linkTitle;
                linkTitleClass = linkTitleClass.replace(/\s/g, "_");
                linkNodes[i][0].addAttributeValue("class", linkTitleClass);
                linkNodes[i][0].setAttribute("onmouseover", "highlight(\""+linkTitleClass+"\", true)");
                linkNodes[i][0].setAttribute("onmouseout", "highlight(\""+linkTitleClass+"\", false)");
                linkNodes[i][1].addAttributeValue("class", linkTitleClass);
                linkNodes[i][1].setAttribute("onmouseover", "highlight(\""+linkTitleClass+"\", true)");
                linkNodes[i][1].setAttribute("onmouseout", "highlight(\""+linkTitleClass+"\", false)");
        }
        // Hilfsarray vorbereiten und Sortierungsfunktion aufrufen.
        b = new Array(((linkNodes.length)-(linkNodes.length%2))/2);
        linkNodes.mergesort(0, linkNodes.length-1);
        // Links im Artikeltext mit Zähler ausstatten.
        for (var i=1; i < linkCount2; ++i) {
                var equal = true;
                var j = 1;
                while (equal == true) {
                        if(i >= j && (linkNodes[i][0].firstChild.nodeValue == linkNodes[i-j][0].firstChild.nodeValue)) {
                                j++;
                        }
                        else {
                                equal = false;
                                // Nur bei mehrfachvorkommenden Links Zähler einfügen.
                                if (j != 1) {
                                        var span = document.createElement("span");
                                        linkNodes[i][1].appendChild(span);
                                        var spanText = document.createTextNode(" (" + j + ")");
                                        span.appendChild(spanText);
                                        span.setAttribute("class", "redundantLinkMark"); // Klasse für (n).
                                }
                        }
                }
        }
        // Links in Linkleiste schreiben (jeweils mit Listenelement).
        for (var i=0; i < linkCount2; ++i) {
                var li = document.createElement("li");
                ul.appendChild(li);
                li.style.whiteSpace = "nowrap";
                li.appendChild(linkNodes[i][0]);
        }
}
// onload
addOnloadHook(createLinksSidebar);

/*
 * Ende showRedundantLinks
 */
//------------------------------------------------------------------------------------------------
 
 // *************** SETUP Anfang **********************************
 // Funktionen im Quickbar (monobook.js)
 var usedropdown = false;        // Wenn keine Dropdowns gewünscht sind, hier false eintragen!
 var qbnewpage = true;           // sollen Seiten aus dem QuickBar im neuen Fenster aufgerufen werden?
 var timeout = 50000;            // 50 Sekunden auf das Neuladen der Seite warten
 var zeigeversion = true;        // monobook-Version anzeigen?
 var zeigehilfe = true;          // kurze Hilfetexte beim überfahren mit der Maus anzeigen ? default true
 var timezoneshift = 0;          // Unterschied lokale Zeit zur Systemzeit (bleibt für Mitteleuropäer 0)
 var debugme = false;            // Debug-Modus?
 
 // systemweite Default-Optionen aus [[MediaWiki:Monobook.js]]
 NavigationBarShowDefault = 15;     // 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 = false;        // fremde Benutzerseiten grafisch markieren?
 var markbecareful = true;       // verschiedene Buttons rot 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";
//E var cbupload = "Bild hochladen";
 var cbprint = "Druckversion";
//E var cbblock = "User sperren";
 // Beschriftungen: portlets
 var cblang = "Interwiki";
 
 // Modul: changeSZtoSS.js
 var changeszlig = false;        // "ß" in "ss" ändern (nach Schweizer Rechtschreibung)?
 
 // Modul: eintragen.js
 var autosave = false;            // automatisches Speichern von QS/LA/SLA/BildLA/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
 
 // Modul: hinweise.js
 var hinweis = true;             // Portal- und Redaktionshinweis verwenden?
 
 // Modul: delete.js
 var delreasons = false;         // Löschgründe ergänzen?
 
 // 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: Unfug bzw. Vandalismus";      // Defaultgrund beim Revertieren
 var aerhistory = true;                       // Links auch in der Versionsgeschichte?
 var aearlhere = true;                        // Revertaktion im selben Browserfenster?
 
 // Modul: addLogsLink.js
 var addlogslink = false;         // 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 = false;  // auf Benutzerseiten auch noch Link auf Contributions?
 var usercontribtext = "User:Contribs";       // Text des Contributions-Links ("Benutzerbeiträge")
 var userstatstext = "User:Stats";            // Text des Links auf Benutzerstatistik
 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 = false;        // 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 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 = "Adm";              // Markierung für Admins
 var markrenatxt = "Adm-Ren";         // Markierung für umbenannte Admins
 var markbureautxt = "Bür";         // Markierung für Bürokraten
 var markstewtxt = "S";           // Markierung für Stewards
 var markcomadmins = true;      // Commons-Admins besonders hervorheben?
 var markcomatxt = "Com-Adm";       // Markierung für Commons-Admins
 var markexadmins = true;       // Ex-Admins besonders hervorheben?
 var markexatxt = "Ex-Adm";         // Markierung für Ex-Admins
 var markexbureautxt = "Ex-Bür";    // Markierung für Ex-Bürokraten
 
 // 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: 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 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: wikiminiatlas2.js
 var miniatlas = false;          // WikiMiniAtlas anschalten?
 
 // Modul: coordinates.js
 // (für dieses Modul im CSS #editpage-copywarn nicht ausblenden!)
 var coordinates = false;        // Koordinate_Artikel in Editfenster generierbar?
 
 // Modul: unsigned.js
 var unsigning = true;           // Einfügen von Unsigned bei unsignierten Beiträgen auf Diskussionsseiten?
 var ssubst =  true;                  // unsigniert-Baustein mit subst einfügen?
 
 // Modul: signing.js
 var signing = false;            // automatische Unterschrift auf Diskussionsseiten?
 // Liste der Nicht-Diskussionsseiten, die ebenfalls unterschrieben werden sollen:
 var regpages = new Array(':Verbesserungsvorschläge', ':Löschkandidaten', ':Adminkandidaturen', ':Qualitätssicherung', ':Fragen_zur_Wikipedia', ':Meinungsbilder', ':Review', ':Bilderwünsche',':Kandidaten');
 
 // Modul: SearchBox.js
 var searchbox = true;          //E erweitertes suchen/ersetzen
 
 // </nowiki>
 // Modul: customToolbar.js
 var customtoolbar = true;      //E mehr Buttons in der Symbolleiste?
            // Anzahl und Reihenfolge wählbar (siehe: [[Benutzer:Olliminatore/Extra-Editbuttons]])
 var customEditButtons = "A,A3,B,C,E,F,G,H,I,I1,I2,J1,K,M,O,P,PO,R,R3,S,T1,U,Y1,Y2,SM";
            // zu entfernende Standard-Edit buttons (0...10)
 var rmEditButtons = [6,7,10]; // Standardbutton entfernen
 
 // 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 = false;             // 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 js_highlight = false;       // javascript-code farbig hervorheben  (.js and pre-tags)
 
 // special rights options
 var dellinknowcommons = true;
 
 // **************** SETUP Ende ***********************************
 
 // (PDD: note to self: version auch in alert-Funktion ändern!)
 var version  = 'P098k';
 
 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 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);
 
 // 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
 var pesctitle = ptitle.split(' ').join('+');
 var spesctitle = sptitle.split(' ').join('+');
 // Komma-Lemma für Personen
 var personlemma = spagetitle;
 var titlesplit = spagetitle.split(' ');
 if (titlesplit.length > 1) {
    personlemma = titlesplit[titlesplit.length-1] + ',';
    for (i=0; i<(titlesplit.length-1); i++)
        personlemma=personlemma + " "+titlesplit[i];
 }
 var escpersonlemma = personlemma.replace(/Ä/g, "A").replace(/Ö/g, "O").replace(/Ü/g, "U").replace(/ä/g, "a").replace(/ö/g, "o").replace(/ü/g, "u").replace(/ß/g, "ss");
 
 // 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");
 
 // page type variables: namespace == -1
 var isSpecial  = (wgCanonicalNamespace == "Special");
 var isRestore = (isSpecial && (wgCanonicalSpecialPageName == "Undelete"));
 var isContrib = (isSpecial && (wgCanonicalSpecialPageName == "Contributions"));
 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) {
   if (UrlParameters['target']) userPageOwner = UrlParameters['target'].split('+').join('_');
   else {
        userPageOwner = decodeURIComponent(location.href.substring(location.href.indexOf("/wiki/") + 6)).split('#')[0];
        userPageOwner = userPageOwner.substring(userPageOwner.indexOf("Beiträge/") + 9);
   }
 }
 
 // page type variables: user & user discussion lumped together
 var isUserpage = ( (wgCanonicalNamespace == "User") || (wgCanonicalNamespace == "User_talk") );
 var isUserMainpage = false;
 if (isUserpage)
    if (wgTitle == wgTitle.split("/")[0]) {
        isUserMainpage = true;
        userPageOwner = wgTitle;
    }
 
 // handelt es sich um eine IP?
 var isIPUser = false;
 if (userPageOwner != "")
    if (userPageOwner.match(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/) != null)
       if ((userPageOwner.split(".")[0] > 1) && (userPageOwner.split(".")[0] < 255))
          isIPUser = true;
 
 // Admin functions
 var adminflag = false;
 if (isAdmin()) adminflag = true;
 
 /*
  * 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; z-index:10; width:14em;">';
 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();
    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:Projektneuheiten','NEU',qbtarget,'Projektneuheiten');
    w (1,'/wiki/Wikipedia:Verbesserungsvorschläge','VV',qbtarget,'Verbesserungsvorschläge');
    w (1,'/wiki/Wikipedia:Administratoren/Notizen','AN',qbtarget,'Administratoren/Notizen');
//E    w (1,'/wiki/Wikipedia:Adminkandidaturen','AK',qbtarget,'Adminkandidaturen');
//E    w (1,'/wiki/Wikipedia:Checkuser/Anfragen','CU/A',qbtarget,'Checkuser/Anfragen');
//E    w (1,'/wiki/Wikipedia:Abkürzungen','?',qbtarget,'Abkürzungen');
 }
 
 function qbPatrol() {
    w (0,trenner,'Überwachung','');
 
    w (1,'/w/index.php?title=Spezial:Recentchanges&hideminor=0&hideliu=1&hidebots=1&hidepatrolled=0&days=7&limit=500','RCs',qbtarget,'Letzte Änderungen');
    w (1,'/w/index.php?title=Spezial:Newpages&namespace=0&limit=500&offset=0','NewP',qbtarget,'Neue Seiten');
    w (1,'/w/index.php?title=Spezial:Log&limit=1000&type=newusers','NewU',qbtarget,'Neue Benutzer');
    w (1,'/wiki/Spezial:Contributions/newbies','NewUP',qbtarget,'Beiträge neuer Benutzer');
    w (1,'/wiki/Spezial:Log','Log',qbtarget,'Logfiles');
    w (1,'/wiki/Wikipedia:Vandalismusmeldung','VM',qbtarget,'Vandalismusmeldung');
 }
 
 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:Löschkandidaten/Versionen','LK/V',qbtarget,'Versionslöschungen');
    w (1,'/wiki/Wikipedia:Löschprüfung','LP',qbtarget,'Löschprüfung');
//E w (1,'/wiki/Wikipedia:Entsperrwünsche','EW',qbtarget,'Entsperrwünsche');
 
    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:Löschkandidaten/Urheberrechtsverletzungen','URV',qbtarget,'Löschkandidaten (URVs)');
 
    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');
 }
 
 function qbToolserver() {;}
 
 function qbExternTools() {
    w (0,trenner,'Externe Tools','');
 
    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://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://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://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/index.php/Meyers-Meyers_Lexikon_online",'Meyers',qbtarget,'Meyers Lexikon online');
    w (1,"http://susi.e-technik.uni-ulm.de:8080/Meyers2/index/index.html",'Mey88',qbtarget,'Meyers Konversationslexikon 1888');
    w (1,"http://www.ddb.de",'DNB',qbtarget,'Deutsche Nationalbibliothek');
// EV selbstbau Autoreviewer aufrufen
w (1,'http://rupp.de/cgi-bin/WP-autoreview.pl?l=de&lemma='+pesctitle,'AUTO',qbtarget,'Aktuelle Seite mit Autoreviewer aufrufen');
 
 
    if (isArticle) {
        w (1,"http://dispatch.opac.ddb.de/DB=4.1/CMD?ACT=SRCHA&IKT=8514&SRT=YOP&TRM="+personlemma,'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://mdz1.bib-bvb.de/~ndb/ndbmaske.html",'ADB',qbtarget,'Allgemeine/Neue Deutsche Biographie');
 }
 
 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,"'–','',''",'–','','Gedankenstrich');
    w (3,"'→','',''",'→','','Pfeil nach rechts');
    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,"'<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:"+escpersonlemma+"}}\\n','',''","DefSrt",'','{{DEFAULTSORT:');
    w (3,"'[[Benutzer:',']]',''","User:",'','[[Benutzer:]]');
    w (3,"'[[Wikipedia:',']]',''","WP:",'','[[Wikipedia:]]');
 
    w (0,br,'','');
 
    w (3,"'{{Personendaten\\n|NAME="+personlemma+"\\n|ALTERNATIVNAMEN=\\n|KURZBESCHREIBUNG=\\n|GEBURTSDATUM=\\n|GEBURTSORT=\\n|STERBEDATUM=\\n|STERBEORT=\\n}}\\n','',''",'PD','','{{Personendaten...');
    w (3,"'* {{IMDb Name|','|"+wgTitle+"}}\\n',''","IMdb-n",'','{{IMDb Name...');
    w (3,"'* {{IMDb Titel|','|"+wgTitle+"}}\\n',''","IMdb-t",'','{{IMDb Titel...');
    w (3,"'* {{OFDb Titel|','|"+wgTitle+"}}\\n',''","OFDb-t",'','{{OFDb Titel...');
 
    w (0,br,'','');
 
    w (2,"'Redirect angelegt','#REDIRECT [[]]',1","Redir",'','#REDIRECT [[]]');
    w (2,"'+Überarbeiten','{{Überarbeiten}}\\n\\n',3","Überarb",'','{{Überarbeiten}}');
    w (2,"'+Quelle','{{Quelle}}\\n\\n',3","Quelle?",'','{{Quelle}}');
    // w (2,"'+Stub','{{Stub}}\\n\\n',2","Stub");
    w (2,"'+Lückenhaft','{{Lückenhaft|Es fehlen...}}\\n\\n',2","Lücke","","Lückenhaft");
    // w (2,"'+Rechtshinweis','{{Rechtshinweis}}',2","Recht");
    // w (2,"'+Gesundheitshinweis','{{Gesundheitshinweis}}',2","Gesundh.");
 }
 
 function qbMarkupTools() {
    if (isBild) return;
    if (!isEdit) return;
 
    w (0,trenner,'Markup-Tools','');
 
    w (4,"addPersData();","AutoPD",'','Automatische Kategorien und Personendaten'); // extern
    w (4,"wpTextReplace();","Replace",'','Suchen und Ersetzen');
    if (rechtschreibpruefung && !AutorunRP && !isSpecial)
        w (4,"spellcheck();","SpellChk",'','Rechtschreibprüfung');
    w (4,"replaceQuoteSigns();","FixQuotes",'','Anführungszeichen korrigieren');  // extern
    w (4,"ReplaceMarkup();","FixMarkup",'','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");
    w (2,"'+BLU','{{subst:BLU}}\\n\\n',3","BLU"); 
    w (2,"'+BLU-User','{{subst:BLU-User}}\\n\\n',3","BLU-User");      
 }
 
 function qbUsertalkTemps() {
    if (!isUserpage) return;
    if (!isTalk) return;
    if (!isEdit) return;
 
    w (0,trenner,'Benutzerbausteine','');
 
    // w (3,"'{{subst:Benutzer:PDD/Greetings/Hallo|" + user + "}} " + usersignature + "\\n','',''","Hallo");
    w (3,"'{{subst:Benutzer:PDD/Greetings/HalloG|" + user + "|" + usersignature + "}}\\n','','','Willkommen!'","Hallo",'','Baustein PDD:Hallo'); 
    w (3,"'{{subst:Benutzer:PDD/Greetings/Danke}} " + usersignature + "\\n','',''",'Danke','','Baustein PDD:Danke');
    w (3,"'{{subst:Benutzer:Complex/Greetings/TestMitStopschild}} " + 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}} " + usersignature + "\\n','',''",'LöschV','','Baustein Tobi B.:Löschvandale');
    w (3,"'{{subst:Benutzer:PDD/Greetings/KinderKinder!}}\\n','',''",'Kind','','Baustein PDD:Kind');
    w (3,"'{{Diskussion}}\\n','',''",'Sign!','','{{Diskussion}}');
    w (3,"'{{subst:Vorschau}} " + usersignature + "\\n','',''",'Vorschau','','{{subst:Vorschau}}');
    w (3,"'{{subst:Benutzer:PDD/Greetings/Linkspam}} " + usersignature + "\\n','',''",'Linkspam','','Baustein PDD:Linkspam');
    // w (3,"'{{subst:Benutzer:Complex/Greetings/WP-WEB}} " + usersignature + "\\n','',''",'LinkspamC','','Baustein Complex:WP-WEB'); // Abwandlung von [[Benutzer:LKD/V/LHinweis]]
    if (adminflag)
       w (3,"'{{subst:Benutzer:LKD/V/ALoesch}} " + usersignature + "\\n','',''",'SLA-ex','','Autorenbenachrichtigung nach Schnelllöschung');
 }
 
 function qbAdminTools() {
    if (!adminflag) return;
 
    if (isArticle || isCategory) {
        w (0,trenner,'','');
        w (4,"eintragen(12);","LemmaSp+","","+Lemmasperrung");
    }
 
    if (isArticleTalk && isEdit) {
        w (0,trenner,'','');
        w (2,"'+Halbsperrung','{{Halbsperrung}}\\n',3","HSp","","Zugehöriger Artikel halbgesperrt");
        w (2,"'+Vollsperrung','{{Vollsperrung}}\\n',3","VSp","","Zugehöriger Artikel vollgesperrt");
    }
 
    // alt
    if (isUserMainpage && isEdit) {
        w (0,trenner,'','');
        w (2,"'+Gesperrter Benutzer','{{Gesperrter Benutzer}}',1","BSp",'','Benutzer gesperrt');
    }
    // neu
    //if (isUserpage || isContrib) {
    //    w (0,trenner,'','');
    //    w (4,"eintragen(13);","BSp+","","+Benutzersperrung");
    //}
 
    if (delreasons && !isSpecial) {
        //w (0,trenner,'','');
        //w (4,"del(1);","D(U)");
        //w (4,"del(2);","D(T)");
        //w (4,"del(3);","D(KA)");
        //w (4,"del(4);","D(UR)");
        //w (4,"del(12);","D(FL)");
        //w (4,"del(5);","D(I)");
        //w (4,"del(6);","D(FSR)");
        //w (4,"del(7);","D(Fl)");
        //w (4,"del(14);","D(WdB)");
        //w (4,"del(9);","D(Werb)");
        //w (4,"del(10);","D(Wieder)");
        //w (4,"del(11);","D(Fake)");
        //w (4,"del(15);","D(VDs)");
    }
 
    if (isRestore) {
        w (0,trenner,'','');
        w (4,"checkAllDeletedVersions();","Alle Versionen?","","Alle Versionen wiederherstellen?");
    }
 }
 
 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 (( isBild)     && (!isSpecial))  w (4,"eintragen(4);","BildLA+","","+Löschantrag Bild");
    // if (( isBild)     && (!isSpecial))  w (4,"eintragen(9);","BLU+","","+BLU");
    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 (( isContrib)  || ( isUserpage)) w (4,"eintragen(6);","VANDAL+","","+Vandalismusmeldung");
    if (hinweis) {
       if (( isGeneric)  && (!isSpecial))  w (4,"hinweis(1);","PH+","","+Portalhinweis");
       if (( isGeneric)  && (!isSpecial))  w (4,"hinweis(2);","RH+","","+Redaktionshinweis");
    }
    if (wgPageName == "Wikipedia:Spielwiese") w (4,"eintragen(10);","SP-Reset","","Spielwiese zurücksetzen");
 }
 
 
 /*
  * 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>',
 
      '</div>');
 }                
 document.write(xxx,'</div>');
 
 if (scrpt > '') {
    document.write('<script> function _doopt (was) { switch (was) {', scrpt, '}}<\/script>');
    scrpt='';
 }
 
 //
 // ab hier functions
 //
 
 function w (was,lurl,linktext,targt,title) {
  if (!title) title=linktext;	
  if (!zeigehilfe) title='';  
  if (!dropdown) {
   switch (was) {
    case 0 : xxx=xxx+lurl;break;
    case 1 : xxx=xxx+'<a href="'+lurl+'" target="'+targt+'" title="'+title+'">'+linktext+'</a>&nbsp; ';break;
    case 2 : xxx=xxx+'<a href="#" onclick="newtext('+ lurl +')" title="'+title+'">'+linktext+'</a>&nbsp; ';break;  	
    case 3 : xxx=xxx+'<a href="#" onclick="insertTagsWrapper('+ lurl +')" title="'+title+'">'+linktext+'</a>&nbsp; ';break;  	   
    case 4 : xxx=xxx+'<a href="#" onclick="'+ lurl +'" title="'+title+'">'+linktext+'</a>&nbsp; ';break;  	   
   }	 	    
  } //if
  else //todo: Hilfe bei Dropdowns. Benutzt die überhaupt jemand????
  {
   var ltext='__________'.substr(1,ind)+linktext;
   switch (was) {
    case 0 : if (lurl==br) {xxx=xxx+'<option>'+linktext+'</option>';ind=2;} 
             else
             if (lurl==trenner) newdropdown(linktext);
             break;             
    case 1 : xxx=xxx+'<option value="1|'+lurl+'">'+ltext+'</option>';break;
    case 2 : xxx=xxx+'<option value="2|'+scrptn+'">'+ltext+'</option>';
             scrpt=scrpt+'case '+scrptn+':newtext('+lurl+');break;';scrptn++;break;    
    case 3 : xxx=xxx+'<option value="3|'+scrptn+'">'+ltext+'</option>';    
             scrpt=scrpt+'case '+scrptn+':insertTagsWrapper('+lurl+');break;';scrptn++;break;                     
    case 4 : xxx=xxx+'<option value="4|'+scrptn+'">'+ltext+'</option>';
             scrpt=scrpt+'case '+scrptn+':'+lurl+';break;';scrptn++;break;    
   } //switch	  	
  } //else	
 } //w
 
 function dodropdown (aktion) {
  var zutun = aktion.split('|');
  var was = Number(zutun[0]);
  var wie = zutun[1];
  
  switch (was) {
   case 1 : window.open (wie); break;
   case 2 : _doopt (Number(wie)); break;
   case 3 : _doopt (Number(wie)); break;
   case 4 : _doopt (Number(wie)); break;
  } //switch	
 } //dodropdown	
 
 function newdropdown (oname) {
   closedropdown();
   xxx=xxx+'<select size=1 onchange="dodropdown(this.value);" style="width:135px;font-size:9px;">';
   if (oname > '') {xxx=xxx+'<option>'+oname+'</option>';}
   indropdown = true;
   ind=2;
 }
 
 function closedropdown () {
  if (indropdown) xxx=xxx+'</select>';
  indropdown = false;
 }
 
 function newtext (subj,text,wo)
  {  //wo=1 : Text austauschen
     //wo=2 : Text am Ende anhängen
     //wo=3 : Text vorne Einfügen
     
   if (subj > "") {
      if (document.editform.wpSummary.value > "") document.editform.wpSummary.value += ", ";
      document.editform.wpSummary.value = document.editform.wpSummary.value + subj;
   }
    
   switch (wo) {
       case 1 : document.editform.wpTextbox1.value=text+'\n'; break;
       case 2 : document.editform.wpTextbox1.value=document.editform.wpTextbox1.value+'\n'+text;break;
       case 3 : document.editform.wpTextbox1.value=text+'\n'+document.editform.wpTextbox1.value;break;
   }    
   document.editform.wpTextbox1.focus();
  }
 
 function insertTagsWrapper(tagOpen, tagClose, sampleText, subj) {
   if (subj > "") {
      if (document.editform.wpSummary.value > "") document.editform.wpSummary.value += ", ";
      document.editform.wpSummary.value = document.editform.wpSummary.value + subj;
   }
   insertTags(tagOpen, tagClose, sampleText)
 }
 
 // Krimskrams
 function isEven(myNumber) {
    return (myNumber % 2 == 0);
 }
 function isOdd(myNumber) {
    return (! isEven(myNumber));
 }
 function LeadingZero(x) {
    return (x >= 10 || x < 0 ? "" : "0") + x;
 }
 function isAdmin() {
   var specialrights = false;
   if (typeof wgUserGroups != 'object') return(specialrights);
   if (typeof wgUserGroups[0] != 'string') return(specialrights); 
   for (i=0;i<wgUserGroups.length;i++) {
       if (wgUserGroups[i] == "sysop") specialrights = true;
   }
   return(specialrights); 
 }
 
 // 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=2678400&dontcountme=s';
 
    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=2678400&dontcountme=s"><\/SCRIPT>');
 }
 
 
 // ***** FOOT-Block *****
 // </nowiki> <- nicht löschen!!!
 
 // ausgelagerte obligatorische Funktionen
 importJavascriptL('PDD/helperFunctions','de'); // [[Benutzer:PDD/helperFunctions.js]] 
 importJavascriptL('PDD/eintragen','de'); // [[Benutzer:PDD/eintragen.js]]  
 importJavascriptL('PDD/alertOnChanges','de'); // [[Benutzer:PDD/alertOnChanges.js]]  
 
 // semi-obligatorisch nur für diffpages
 if (diffwidth && isDiff) {
    // PDD: keine der beiden Versionen bisher getestet; weiß also nicht, welche besser funktioniert
    importPage('Olliminatore/fixdiffwidth.js'); // [[Benutzer:Olliminatore/fixdiffwidth.js]]
    // importPage('BLueFiSH.as/JS/fixdiffwidth'); // [[Benutzer:BLueFiSH.as/JS/fixdiffwidth]]
 }
 
 // obligatorisch nur für editpages
 if (isEdit) {
    importJavascriptL('PDD/wpTextReplace','de'); // [[Benutzer:PDD/wpTextReplace.js]]
    importJavascriptL('BLueFiSH.as/JS/replaceQuoteSigns','de'); // [[Benutzer:BLueFiSH.as/JS/replaceQuoteSigns.js]]
    importJavascriptL('BLueFiSH.as/JS/markup','de'); // [[Benutzer:BLueFiSH.as/JS/markup.js]]
    importJavascriptL('PDD/convertEntities','de'); // [[Benutzer:PDD/convertEntities.js]]
    importJavascriptL('Euku/persDaten','de'); // [[Benutzer:Euku/persDaten.js]]
 }
 
 // ausgelagerte optionale Funktionen (Autoload)
 
 // revert/loglink-Funktionen: möglichst früh einbinden
 // Revert godmode-light
 if (godmodelight && !adminflag && !isEdit && !(isSpecial && !isContrib)) {
     importJavascriptL('PDD/godmode-light','de'); // [[Benutzer:PDD/godmode-light.js]]
     // importJavascriptL('Olliminatore/godmode-light','en');  // [[:en:User:Olliminatore/godmode-light.js]]
 }
 // Revert addEditAndRevertLinks
 if (!(!aerhistory && isHistory) && !isEdit) {
    if (editlinkoldversion || revertwithreason)
       importJavascriptL('PDD/addEditAndRevertLinks','de'); // [[Benutzer:PDD/addEditAndRevertLinks.js]]
 }
 // LogLinks addLogsLink
 if (addlogslink && !isSpecial) importPage('PDD/addLogsLink.js'); // [[Benutzer:PDD/addLogsLink.js]]
 
 // jetzt alles andere, was optional ist
 if (!isSpecial)
    if (addeditintro || addpurge) importPage('PDD/modifyCA.js'); // [[Benutzer:PDD/modifyCA.js]]
 // changeBeschriftungen *nach* modifyCA.js (!)
 if (beschriftungen) importPage('PDD/changeBeschriftungen.js'); // [[Benutzer:PDD/changeBeschriftungen.js]]
 if (changeszlig) importPage('PDD/changeSZtoSS.js'); // [[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) importPage('PDD/showRedundantLinks.js'); // [[Benutzer:PDD/showRedundantLinks.js]]
 // Signierfunktionen
 if (isEdit && !isArticle) {
    if (signing) importPage('Olliminatore/signing.js'); // [[Benutzer:Olliminatore/signing.js]]
    if (unsigning) importPage('Olliminatore/unsigned.js');  // [[Benutzer:Olliminatore/unsigned.js]]
 }
 
 // extended search & replace feature
 if (isEdit && searchbox) importPage('Zocky/SearchBox.js','en');  // [[:en:User:Zocky/SearchBox.js]]
 
 // Portal- und Redaktionshinweis
 if (hinweis) importPage('DerHexer/hinweise.js'); // [[Benutzer:DerHexer/hinweise.js]]
 
 // Löschgründe ergänzen
 if (adminflag && delreasons && !isSpecial) importPage('DerHexer/delete.js'); // [[Benutzer:DerHexer/delete.js]]
 
  // Syntax highlighter
 if (js_highlight) importJavascriptL('Olliminatore/shCore','en'); //[:en:User:Olliminatore/shCore.js]]
 
 // wikiminiatlas: Atlas bei Georeferenzen
 if (miniatlas && !isSpecial)
    importJavascriptL('PDD/wikiminiatlas','de'); // [[Benutzer:PDD/wikiminiatlas.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]]
 
 // custom toolbar buttons
 if (customtoolbar) importPage('Olliminatore/customToolbar.js'); // [[Benutzer:Olliminatore/customToolbar.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]]
 
 // Lupin's popups
 if (lupinpopups) importJavascriptL('Lupin/popups','en'); // [[:en:User:Lupin/popups.js]]
 
 // Markierskripte ganz zum Schluss einbinden, da sie innerHTML verändern
 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]]
 }


/*
// [[Benutzer:Dschwen/coordinates.js]] - diese Zeile bitte beibehalten
document.write('<script type="text/javascript" src="' 
     + 'http://de.wikipedia.org/w/index.php?title=Benutzer:Dschwen/coordinates.js' 
     + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
*/

/* BKL Prüfung nur im Namensraum */
bklCheckOnlyCheckMainNS = true;