Benutzer:DerHexer/helperFunctions.js

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

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
 // helperFunctions.js:
 // enthält obligatorische Hilfsfunktionen für [[Benutzer:PDD/monobook.js]]
 
 // <nowiki>
 
 if (typeof(rcalertbox) == 'undefined')
       var rcalertbox = true;
 if (typeof(drawquickbar) == 'undefined')
       var drawquickbar = true;
 
 ////////////////////////////////////////////////////////////////////////////////////////
 // URI-Parameter für fillActionPage(), benutzt in eintragen.js, hinweise.js
 // außerdem in addEditAndRevertLinks.js (nur subjp, minorp, speichernp)
 
 var subjp      = "subj";       // Subject
 var subjaddp   = "subjadd";    // Subject zum Ranhängen
 var textp      = "txt";        // Für Text-Austausch
 var insp       = "ins";        // Vor dem Text einfügen
 var addp       = "add";        // an Text anhängen
 var minorp     = "minor";      // (k)leine Änderung
 var nocreatep  = "nocreate";   // beim Eintragen keine neue Seite generieren
 // für autosave:
 var asuserp    = "asuser";     // usertoken
 var astimep    = "astime";     // timestamptoken
 var deletereason   = "deletereason";      // Schnelllöschgrund
 var blockduration = "blockduration";      //Sperrdauer
 var blockreason = "blockreason";      //Sperrgrund
 var protectduration = "protectduration";      //Schutzdauer
 var protectreason = "protectreason";      //Schutzgrund
 var protecttype = "protecttype";      //Schutzart
 var anotherprotecttype = "anotherprotecttype";      //andere Schutzart
 
 ////////////////////////////////////////////////////////////////////////////////////////
 // URI-Parameter für setReload() und doReload()
 var reloadme   = "neuladen";   // merker für reload
 
 ////////////////////////////////////////////////////////////////////////////////////////
 // absenden()
 // aufgerufen aus fillActionPage() und hinweis() in hinweise.js
 
 function absenden() {
   if (!debugme) { 
     /*if (UrlParameters["dcpreason"] > "" && UrlParameters["dcpduration"] > "" && UrlParameters["dcptype"] > "" && UrlParameters["dcp"] == 2) {
       var inputs = document.getElementsByTagName("input");
       for (i=0; i<inputs.length; i++) {
         if ((inputs[i].getAttribute('type') == 'submit') && (inputs[i].getAttribute('value') == 'Bestätigen')) {
           inputs[i].click();
         }
       }
       window.setTimeout(function() { window.close(); }, 500);
     } else {*/
       document.editform.wpSave.click();
     //}
   } else {
     alert ('Speichern');
   }
 }
 
 ////////////////////////////////////////////////////////////////////////////////////////
 // fillActionPage()  (früher aktion(), ganz früher loeschkandidat() )
 // von Littl, ergänzt von Revvar
 //
 // Entnimmt Parameter aus der URI, fügt sie in die Textfelder ein und klickt ggf. auf "Speichern"
 // (die aufgerufene Seite ist dabei immer im Editmodus)
 
 function fillActionPage() {
   // wenn Bausteineinfügung am Anfang:
   // nur einfügen, wenn Seite noch nicht gelöscht
   var pagedeleted = false;
   if (document.getElementById("newarticletext"))
       pagedeleted = true;
 
   // nur einfügen, wenn noch nicht eingetragen
   // der URI-Aktionsparameter ist immer entweder insp oder textp oder addp, daher else
   var doubleinsert = false;
   if (UrlParameters[textp] > "") 
       doubleinsert = findDoubleEntry(UrlParameters[textp], document.editform.wpTextbox1.value);
   else if (UrlParameters[insp] > "") 
       doubleinsert = findDoubleEntry(UrlParameters[insp], document.editform.wpTextbox1.value);
   else if (UrlParameters[addp] > "") 
       doubleinsert = findDoubleEntry(UrlParameters[addp], document.editform.wpTextbox1.value);
 
   // Textfeld ausfüllen
   if (UrlParameters[textp] > "") {
      if (doubleinsert)
         document.editform.wpTextbox1.value = UrlParameters[textp] + document.editform.wpTextbox1.value;
      else
         document.editform.wpTextbox1.value = UrlParameters[textp];
   } else if (UrlParameters[insp] > "") {
      document.editform.wpTextbox1.value = UrlParameters[insp] + document.editform.wpTextbox1.value;
   } else if (UrlParameters[addp] > "") {
      document.editform.wpTextbox1.value = document.editform.wpTextbox1.value + UrlParameters[addp];
   } /* else if (UrlParameters["dcpreason"] > "" && UrlParameters["dcpduration"] > "" && UrlParameters["dcptype"] > "" && UrlParameters["dcpcontent"] > "" && UrlParameters["dcp"] == 0) {
     document.getElementById("deleteconfirm").wpReason.value = UrlParameters["dcpreason"];
   } else if (UrlParameters["dcpreason"] > "" && UrlParameters["dcpduration"] > "" && UrlParameters["dcptype"] > "" && UrlParameters["dcpcontent"] > "" && UrlParameters["dcp"] == 1) {
     document.editform.wpSummary.value = UrlParameters["dcpreason"];
     document.editform.wpMinoredit.checked=true;
     document.editform.wpTextbox1.value = UrlParameters["dcpcontent"].replace(/\%20/g, " ").replace(/\%26/g, "&").replace(/\%22/g, "\"").replace(/\%2B/g, "+").replace(/\%23/g, "#");
   } else if (UrlParameters["dcpreason"] > "" && UrlParameters["dcpduration"] > "" && UrlParameters["dcptype"] > "" && UrlParameters["dcp"] == 2) {
     document.getElementById("expires").value = UrlParameters["dcpduration"];
     document.getElementById("mwProtect-reason").value = UrlParameters["dcpreason"];
     protectLevelsUpdate(this);
     document.getElementById("mwProtect-level-move").selectedIndex = UrlParameters["dcptype"];
     document.getElementById("mwProtect-level-edit").selectedIndex = UrlParameters["dcptype"];
   } */
 
   // weitere Felder ausfüllen
   if (UrlParameters[subjp] > "")
      document.editform.wpSummary.value = UrlParameters[subjp];
   if (UrlParameters[minorp] == "1")
      document.editform.wpMinoredit.checked=true;
 
   // wenn Textbaustein doppelt: Warnung
   if (doubleinsert)
      do_rc_alert("Artikel enthält den gewählten Baustein bereits!");
   // wenn Seite schon gelöscht: Warnung
   else if (pagedeleted && (UrlParameters[nocreatep] == "1"))
      do_rc_alert("Artikel wurde bereits gelöscht!");
   // wenn autosave eingeschaltet: Seite speichern
   else if (validate_asuser (UrlParameters[asuserp])) {
      if (validate_astime (UrlParameters[astimep]))
          absenden();
      else alert("Token zur automatischen Speicherung ist abgelaufen.");
   }
 if (mw.config.get('wgUserName') == "DerHexer") {
     if (mw.config.get('wgPageName') == "Benutzer:DerHexer/Redirects" && UrlParameters["action"] == "edit") {
              if (UrlParameters["number"]) {
                var namespace = new Array ();
                namespace = ["", "Wikipedia ", "Datei ", "MediaWiki ", "Vorlage ", "Hilfe ", "Kategorie ", "Portal "];
                var namespace_number = new Array ();
                namespace_number = [0, 4, 6, 8, 10, 12, 14, 100];
                var number = UrlParameters["number"];
 
                var beginning = UrlParameters["beginning"];
                var req;
                if (req = newRequest()) {
                  var text = "/w/api.php?format=xml&action=query&list=allpages&aplimit=50&apnamespace=" + (namespace_number[number] + 1) + "&apfrom=" + beginning + "&apfilterredir=redirects";
                  req.open("GET", text, false);
                  req.send("");
 
                  var redir = req.responseXML.getElementsByTagName("title");
                }
 
                for (i = 0; i < redir.length; i++) {
 
                  var redir2 = "/w/api.php?format=xml&action=query&list=allpages&aplimit=1&apnamespace=" + namespace_number[number] + "&apfrom=" + redir[i].childNodes[0].nodeValue.replace(new RegExp(namespace[number] + "Diskussion:"), "").replace(/ /g, "%20").replace(/&/g, "%26").replace(/\"/g, "%22").replace(/\+/g, "%2B").replace(/\'/g, "%27") + "&apfilterredir=redirects";
 
                  var redir4 = redir[i].childNodes[0].nodeValue.replace(/ /g, "%20").replace(/&/g, "%26").replace(/\"/g, "%22").replace(/\+/g, "%2B").replace(/\'/g, "%27");
 
                  var req;
                  if (req = newRequest()) {
                    req.open("GET", redir2, false);
                    req.send("");
 
                    var redir_compare = req.responseXML.getElementsByTagName("title");
                    var redir_compare_disk = namespace[number] + "Diskussion:" + redir_compare[0].childNodes[0].nodeValue.replace(new RegExp(namespace[number].replace(/ /, "") + ":"), "");
 
                    if (redir[i].childNodes[0].nodeValue == redir_compare_disk) {
                      var redir3 = "/w/api.php?format=xml&action=query&list=backlinks&bllimit=1&bltitle=" + redir_compare_disk;
 
                      var req;
                      if (req = newRequest()) {
                        req.open("GET", redir3, false);
                        req.send("");
 
                        var linked = req.responseXML.getElementsByTagName("bl");
                        if (linked.length == 0) {
	// API request for delete token
	var req = newRequest();
	if (!req)
		return;
	req.open("GET", "/w/api.php?format=xml&action=query&prop=info&intoken=delete&titles=" + redir4, false);
	req.send("");
 
	var token = req.responseXML.getElementsByTagName("page")[0].getAttribute("deletetoken");
	if (!token)
		return;
 
	// Normal UI request for deletion
        var deletereason = 'Unnötiger Redirect.';
	var req2 = newRequest();
	if (!req2)
		return;
	var url = "http://de.wikipedia.org/w/index.php?title=" + redir4 + "&action=delete";
	var data = '&wpDeleteReasonList=' + encodeURIComponent(deletereason) +
                   '&wpEditToken=' + encodeURIComponent(token);
        alert(url+data);
	/* req2.open("POST", url, true);
	req2.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
	req2.setRequestHeader('Content-length', data.length);
	req2.overrideMimeType('text/xml');
	req2.send(data); */
 
                          // document.editform.wpTextbox1.value = document.editform.wpTextbox1.value + "http://de.wikipedia.org/w/index.php?title=" + redir4 + "&redirect=no&action=delete&deletereason=unnecessary%20redirect";
                        }
                      }
                    }
 
                    if (i == redir.length-1) {
                      location.href = "http://de.wikipedia.org/w/index.php?title=Benutzer:DerHexer/Redirects&action=edit&beginning=" + redir4.replace(new RegExp(namespace[number] + "Diskussion:"), "") + "&number=" + number + "&pages=" + UrlParameters["pages"];
                      // document.editform.wpPreview.click();
                    }
                  }
                }
              }
    }
 }
 
   if (UrlParameters["spam"] > "") {
       if (document.forms["editform"].wpTextbox1.value == "") {
         document.forms["editform"].wpWatchthis.checked=false;
         if (mw.config.get('wgUserName') != "Björn Bornhöft") { document.editform.wpSummary.value = "Hinweis"; } else { document.editform.wpSummary.value = "Erste und letzte Warnung!"; }
         if (UrlParameters["spam"] == "1") {
           if (mw.config.get('wgUserName') == "Complex") {
             document.forms["editform"].wpTextbox1.value = "\{\{subst:Benutzer:Complex/Greetings/TestMitArtikel|" + UrlParameters["vandalizedpage"] + "\}\} " + usersignature;
           } else if (mw.config.get('wgUserName') == "Tafkas") {
             document.forms["editform"].wpTextbox1.value = "\{\{subst:Benutzer:Tafkas/V/Test|" + usersignature + "\}\}";
           } else if (mw.config.get('wgUserName') == "Kuhlo") {
             document.forms["editform"].wpTextbox1.value = "\{\{subst:Benutzer:Kuhlo/V/VHinweis\}\}";
           } else if (mw.config.get('wgUserName') == "Nikkis" || mw.config.get('wgUserName') == 'S.lukas' || mw.config.get('wgUserName') == 'ChrisHH') {
             document.forms["editform"].wpTextbox1.value = "\{\{subst:Benutzer:Nikkis\/Verwarnung\}\}";
           } else if (mw.config.get('wgUserName') == "Ireas" || mw.config.get('wgUserName') == 'Guandalug') {
             document.forms["editform"].wpTextbox1.value = "\{\{subst:Benutzer:Complex/Greetings/TestMitStopschild\}\} " + usersignature;
           } else if (mw.config.get('wgUserName') == "Tönjes" || (mw.config.get('wgUserName') == 'Ra\'ike')) {
             document.forms["editform"].wpTextbox1.value = "\{\{subst:Benutzer:PDD\/Greetings\/Danke\}\} \~\~\~\~";
           } else if (mw.config.get('wgUserName') == "Björn Bornhöft") {
             document.forms["editform"].wpTextbox1.value = "\{\{subst:Benutzer:Björn Bornhöft\/Vorlage:Erste und letzte Warnung\}\}";
           } else if (mw.config.get('wgUserName') == "RacoonyRE") {
             document.forms["editform"].wpTextbox1.value = "\{\{subst:Benutzer:RacoonyRE\/Vorlagen\/Verwarnung\}\}";
           } else if (mw.config.get('wgUserName') == "Suhadi Sadono") {
             document.forms["editform"].wpTextbox1.value = "\{\{subst:Benutzer:Suhadi Sadono\/Test\}\}";
           } else if (mw.config.get('wgUserName') == "TheWolf") {
             switch(UrlParameters["hinweistyp"]) {
               case "1" : neuerhinweis = "\{\{subst:Benutzer:TheWolf/Relevanz\}\}"; break;
               case "2" : neuerhinweis = "\{\{subst:Benutzer:TheWolf/Werbung\}\}"; break;
               case "3" : neuerhinweis = "\{\{subst:Benutzer:Complex/Greetings/WP-WEB\}\} " + usersignature; break;
               case "4" : neuerhinweis = "\{\{subst:Benutzer:TheWolf/Kein_Artikel\}\}"; break;
               default : neuerhinweis = "\{\{subst:Benutzer:TheWolf/Artikel\}\}"; break;
             }
             document.forms["editform"].wpTextbox1.value = neuerhinweis;
           } else { 
             document.forms["editform"].wpTextbox1.value = "\{\{subst:Test\}\}";
           }
           document.editform.wpSave.click();
           window.setTimeout(function() { window.close(); }, 1000);
         } else {
           document.forms["editform"].wpTextbox1.value = "\{\{subst:Gelöscht\}\} " + usersignature;
           if(mw.config.get('wgUserName') == 'DerHexer') {
             document.editform.wpSave.click();
             window.setTimeout(function() { window.close(); }, 1000);
           }
         }
       } else {
         document.forms["editform"].wpWatchthis.checked=false;
         if (UrlParameters["spam"] == "1") {
           if ((mw.config.get('wgUserName') == "DerHexer") || (mw.config.get('wgUserName') == "Tönjes") || (mw.config.get('wgUserName') == "Complex") || (mw.config.get('wgUserName') == "Peter200") || (mw.config.get('wgUserName') == 'Codeispoetry') || (mw.config.get('wgUserName') == 'Tafkas') || (mw.config.get('wgUserName') == 'Bücherwürmlein') || (mw.config.get('wgUserName') == 'Ra\'ike') ) {
             var blockurl = "http://de.wikipedia.org/w/index.php?title=Spezial:Sperren/" + mw.config.get('wgTitle') + "&blockduration=2&blockreason=Vandalismus&save=1";
               window.setTimeout(function() { location.href = blockurl; }, 500);
           } else {
             if (document.editform.wpTextbox1.value.search(/Letzte Warnung/i) != -1 || mw.config.get('wgUserName') == "Kuhlo" || mw.config.get('wgUserName') == "Ireas" || mw.config.get('wgUserName') == "Björn Bornhöft" || mw.config.get('wgUserName') == "TheWolf" || mw.config.get('wgUserName') == 'Nikkis' || mw.config.get('wgUserName') == 'ABF' || mw.config.get('wgUserName') == 'ChrisHH') {
               var blockurl = "http://de.wikipedia.org/w/index.php?title=Wikipedia:Vandalismusmeldung&action=edit&section=new&reporteduser=" + 
mw.config.get('wgTitle') + "&vandalizedpage=" + UrlParameters["vandalizedpage"];
               window.setTimeout(function() { location.href = blockurl; }, 500);
             } else {
               document.editform.wpSummary.value = "Letzte Warnung";
               document.editform.wpTextbox1.value = document.editform.wpTextbox1.value + ":Letzte Warnung! Höre auf zu vandalieren! " + usersignature;
               document.editform.wpSave.click();
               window.setTimeout(function() { window.close(); }, 1000);
             }
           }
         } else {
           var blockurl = "http://de.wikipedia.org/w/index.php?title=Spezial:Sperren/" + mw.config.get('wgTitle') + "&blockduration=2&blockreason=Erstellt unsinnige Artikel&save=1";
           window.setTimeout(function() { location.href = blockurl; }, 500);
         }
       }
   }
 
   if ( (UrlParameters["title"]) && (UrlParameters["title"].search(/Spezial:Beiträge/) != -1) && (UrlParameters["namespace"] == "3") && (mw.config.get('wgUserName') == "DerHexer") ) {
	    // API request for delete token
	    var req = newRequest();
	    if (!req)
		return;
	    req.open("GET", "/w/api.php?format=xml&action=query&prop=info&intoken=delete&titles=$1", false);
	    req.send("");
 
	    var token = req.responseXML.getElementsByTagName("page")[0].getAttribute("deletetoken");
	    if (!token)
		return;
     var uls = document.getElementsByTagName("ul");
     var lis = uls[0].getElementsByTagName("li");
     for (var i=0; i<lis.length; i++) {
       var matchedip = lis[i].getElementsByTagName('a')[1].getAttribute('title').match(/\d+\.\d+\.\d+\.\d+/);
       var matchedlasteditbyme = lis[i].innerHTML.match(/\(aktuell\)/);
       var matchedlasteditbyme2 = lis[i].innerHTML.match(/\>Neu\</);
       if (matchedip && matchedlasteditbyme && matchedlasteditbyme2) {
	    // API request for delete token
	    var req = newRequest();
	    if (!req)
		return;
	    req.open("GET", "/w/api.php?action=query&format=xml&list=allpages&apnamespace=2&apfrom=" + matchedip, false);
	    req.send("");
 
	    var firstuserpage = req.responseXML.getElementsByTagName("p")[0].getAttribute("title");
            if(!firstuserpage || firstuserpage.replace(/Benutzer:/,'') == matchedip)
                return;
	    var url = "http://de.wikipedia.org/w/index.php?title=Benutzer_Diskussion:" + matchedip + "&action=delete";
	    var data = '&wpDeleteReasonList=' + encodeURIComponent("Veraltete IP-Diskussionsseite.") + '&wpEditToken=' + encodeURIComponent(token);
            //alert(url+data);
	    var req2 = newRequest();
	    if (!req2)
		return;
	    req2.open("POST", url, true);
	    req2.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
	    req2.setRequestHeader('Content-length', data.length);
	    req2.overrideMimeType('text/xml');
	    req2.send(data);
            if(i==(lis.length-1)){
	      req2.onreadystatechange = function() {
		  if(req2.readyState == 4) {
			document.getElementById('content').parentNode.replaceChild(req2.responseXML.getElementById('content'), document.getElementById('content'));
                  }
	      }
            }
       }
     }
   }
   if ((UrlParameters["ins"] > "") && ((mw.config.get('wgUserName') == 'TheWolf') || (mw.config.get('wgUserName') == 'Suhadi Sadono'))) {
     if (UrlParameters["subj"].search(/SLA/) != -1) {
       var page_to_delete = mw.config.get('wgPageName').replace(/ /g, "%20").replace(/&/g, "%26").replace(/\"/g, "%22").replace(/\+/g, "%2B");
       var slatype = "100";
       if (UrlParameters["ins"].search(/Irrelevanz/)!=-1) slatype = "1";
       else if (UrlParameters["ins"].search(/Werbeeintrag/)!=-1) slatype = "2";
       else if (UrlParameters["ins"].search(/Linkcontainer/)!=-1) slatype = "3";
       else if (UrlParameters["ins"].search(/\SArtikel/)!=-1) slatype = "4";

                var req;
                if (req = newRequest()) {
                  var text = "/w/api.php?format=xml&action=query&prop=revisions&titles=" + mw.config.get('wgPageName') + "&rvlimit=10";
                  req.open("GET", text, false);
                  req.send("");
 
                  var revisions = req.responseXML.getElementsByTagName("rev");
                  if (revisions.length < 10) {
                    var firstuser = revisions[revisions.length-1].getAttributeNode("user");
                    if (firstuser.childNodes[0].nodeValue.match(/\d+\.\d+\.\d+\.\d+/)) {
                      var uri = "http://de.wikipedia.org/w/index.php?title=Benutzer_Diskussion:" + firstuser.childNodes[0].nodeValue.match(/\d+\.\d+\.\d+\.\d+/) + "&vandalizedpage=" + page_to_delete + "&hinweistyp=" + slatype + "&action=edit&spam=1";
                      window.open(uri);
                    }
                  }
                }
     }
   }
  if (mw.config.get('wgUserName') == 'DerHexer') {
   if (UrlParameters["addop"] > "") {
     if (document.forms["editform"].wpTextbox1.value == '') {
       document.editform.wpTextbox1.value = '{{Offener_Proxy}}';
       document.editform.wpSummary.value = '{{Offener_Proxy}}';
       document.editform.wpSave.click();
     } else {
       window.close();
     }
   }
   /* if ((location.href.substring(location.href.indexOf("/wiki/")).search(/\d+\.\d+\.\d+\.\d+/) != -1) && (location.href.substring(location.href.indexOf("/wiki/")).search(/protect/) == -1)) { 
     window.setTimeout(function() { location.href='http://de.wikipedia.org/w/index.php?title=Benutzer:' + mw.config.get('wgTitle') + '&redirect=no&action=protect&protectreason=%7B%7BOffener_Proxy%7D%7D&protectduration=infinite&protecttype=2&anotherprotecttype=&speichern=1'; }, 100);
   } */
   /* if((UrlParameters["action"] == "submit") || (UrlParameters["action"] == "success")) {
     window.close();
   } */
  }
 }
 if ( ( (isEdit) && (!isSpecial) ) || (UrlParameters["addop"] > "") ||  ((location.href.substring(location.href.indexOf("/wiki/")).search(/\d+\.\d+\.\d+\.\d+/) != -1) && (location.href.substring(location.href.indexOf("/wiki/")).search(/protect/) == -1)) || (UrlParameters["diff"] > "") || ( (UrlParameters["title"] > "") && ( (UrlParameters["title"].search(/Spezial:Beiträge/) != -1) && (UrlParameters["namespace"] == "3") && (UrlParameters["deleteall"] == "1") ) ) ) $(fillActionPage);
 
 ////////////////////////////////////////////////////////////////////////////////////////
 
 // findDoubleEntry()
 // aufgerufen aus fillActionPage()
 
 function findDoubleEntry(baustein, artikeltext) {
   var doublette = false;
 
   // wenn keine Vorlage enthalten: Abbruch
   if (baustein == baustein.split("{{")[0]) return (doublette);
 
   var chkbaustein = baustein.split("{{")[1].split("}}")[0].split("|")[0];
   chkbaustein = "{{" + chkbaustein ;
 
   if (navigator.userAgent.indexOf("Opera") == -1) {
      // checking
            // Zeilen wie die nächste generieren Fehler mit Opera, daher diesen Bereich auskommentiert
            // Fehler: RegExp.prototype.compile: syntax error in pattern or string
            // mit Firefox2 und IE7 geht das problemlos, hmm
      if (artikeltext.search(chkbaustein) != -1)
          doublette = true;
      // Kleinschreibung & SLA & substs
      if (chkbaustein == "{{Löschen") {
          if (artikeltext.search("{{löschen") != -1)
              doublette = true;
          if (artikeltext.search("{{SLA") != -1)
              doublette = true;
      }
      if (chkbaustein == "{{subst:Löschantrag") {
          if (artikeltext.search("{{Löschantragstext") != -1)
              doublette = true;
      }
      if (chkbaustein == "{{subst:Qualitätssicherung") {
          if (artikeltext.search("{{QS-Antrag") != -1)
              doublette = true;
      }
   } // end of Opera hack
   return (doublette);
 }
 
 ////////////////////////////////////////////////////////////////////////////////////////
 // initQuickbar()
 // positioniert den Quickbar
 
 function initQuickbar() {
   // Variables that could be defined in your monobook
   if (typeof(keeplogo) == 'undefined')
       keeplogo = false;
   if (typeof(releasequickbar) == 'undefined')
       releasequickbar = false;
 
   var quickbarpos = "fixed";
   // IE6- kann kein position:fixed und hat demzufolge Pech
   if ( navigator.userAgent.indexOf("MSIE") > -1 )
      quickbarpos = "absolute";
   // IE7 und als MSIE maskiertes Opera 8/9: können position:fixed
   if (( navigator.userAgent.indexOf("MSIE 7") > -1 ) || ( navigator.userAgent.indexOf("Opera") > -1 ))
      quickbarpos = "fixed";
 
   if (!keeplogo) {
      // logo ausblenden (revvar)
      document.getElementById("p-logo").style.visibility = "hidden";
      // padding in column-one (platz für quickbar)
      document.getElementById("column-one").style.paddingTop =
         (10+document.getElementById("p-quickbar").clientHeight)+"px";
   }
 
   if (!releasequickbar) {
      document.getElementById("p-quickbar").style.position = quickbarpos;
   }
 }
 if (drawquickbar) $(initQuickbar);
 
 ////////////////////////////////////////////////////////////////////////////////////////
 // doReload()
 // setzt nach Reload die Reload-Selection wieder
 
 function doReload() {
   if (UrlParameters[reloadme] == "1") {
      document.getElementById('reloadme').checked=true;
      setReload();
   }
 }
 if (!isEdit) $(doReload);
 
 ////////////////////////////////////////////////////////////////////////////////////////
 // extendWpReason()
 // hebt 255-Zeichen-Textfeldbegrenzung auf
 
 function extendWpReason() {
   var loeschgrund;
   if (loeschgrund = document.getElementById('wpReason')) {
      loeschgrund.setAttribute('maxLength',512);
   }
 }
 if (mw.config.get('wgAction') == "delete") $(extendWpReason);
 
 ////////////////////////////////////////////////////////////////////////////////////////
 // setReload()
 // aufgerufen, wenn im Quickbar die Reload-Selection gesetzt wird
 
 var timeoutaktiv;
 function setReload() {
   if (document.getElementById('reloadme').checked && (UrlParameters[reloadme] != "1")) {
       var uri = (document.URL.indexOf('?') >0) ? ('&' + reloadme + '=1') : ('?' + reloadme + '=1');
       timeoutaktiv = window.setTimeout(location.href=location.href+uri, timeout);
   }
   else if (document.getElementById('reloadme').checked	&& (UrlParameters[reloadme] == "1")) {
       timeoutaktiv=window.setTimeout("location.reload()", timeout);
   }
   else {
       window.clearTimeout(timeoutaktiv); // bizarr, timeoutaktiv ist hier gar nicht belegt?
   }
 }
 
 ////////////////////////////////////////////////////////////////////////////////////////
 // checkAllDeletedVersions()
 // alle Checkboxen auswählen, für Versionenwiederherstellung ([[Spezial:Wiederherstellen]])
 // Idee: Poupou
 // Autoren: BLueFiSH.as, Schwalbe (ursprünglich als "TaggAll()")
 // Neue Version ohne JS-Errors: PDD
 
 function checkAllDeletedVersions() {
   var inputobject = document.getElementsByTagName("input");
   for (var i=3; i<inputobject.length; i++)
      inputobject[i].checked = true;
 }
 
 function revAllDeletedVersions() {
   var inputobject = document.getElementsByTagName("input");
   for (var i=3; i<inputobject.length; i++)
      inputobject[i].checked = !inputobject[i].checked;
 }
 
 // obsolete Version davon!!
 function TaggAll() {
   if (minimalVersionStrong(49) < 49) checkAllDeletedVersions();
   else checkAllDeletedVersions();
 }
 
 /*
  * Stringlänge überprüfen für Zusammenfassungszeile
  */
 
 function EditCommentLength(str) {
   return (199-str.length);
 }
 
 ////////////////////////////////////////////////////////////////////////////////////////
 // undate()
 // von [[Benutzer:D]]
 // entlinkt verlinkte Daten
 
 function undate() {
   var tbvalue = document.editform.wpTextbox1.value;
   tbvalue = tbvalue.replace(/\[\[\s*(\d+(er)?( v. Chr.)?)\s*\]\]/g, "$1");
   tbvalue = tbvalue.replace(/\[\[\s*(\d+\. (Jahrhundert|Januar|Februar|März|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember))\s*\]\]/g, "$1");
   document.editform.wpTextbox1.value = tbvalue;
   document.editform.wpDiff.click();
 }
 
 ////////////////////////////////////////////////////////////////////////////////////////
 // fixDash()
 // von [[Benutzer:PDD]]
 // speziell für BKLs: alle Striche zu endash vereinheitlichen
 // ToDo: nur wenn davor oder danach Ziffer! + bei Leerzeichen (weg)
 
 function fixDashes(s) {
    s = s.replace(/\*([12][0-9]{3})/g, "* $1")
         .replace(/†([12][0-9]{3})/g, "† $1")
         .replace(/([^-0-9][12][0-9]{3})—/g, "$1–")
         .replace(/([^-0-9][12][0-9]{3})-/g, "$1–")
         .replace(/([^-0-9][12][0-9]{3})−/g, "$1–")
         .replace(/([^-0-9][12][0-9]{3}) — /g, "$1–")
         .replace(/([^-0-9][12][0-9]{3}) - /g, "$1–")
         .replace(/([^-0-9][12][0-9]{3}) − /g, "$1–")
         .replace(/([^-0-9][12][0-9]{3}) – /g, "$1–");
    return (s);
 }
 
 function fixDash() {
    // find editor
    var form    = document.forms['editform'];
    if (!form)  return;
    var tb      = form.elements['wpTextbox1'];
    if (!tb)    return;
    tb.value    = tb.value;
 
    tb.value = fixDashes(tb.value);
 
    document.editform.wpDiff.click();
 }
 
 ////////////////////////////////////////////////////////////////////////////////////////
 // insertAfter()
 // neuen Node nach einem referenceNode einfügen
 
 function insertAfter(parent, node, referenceNode) {
   parent.insertBefore(node, referenceNode.nextSibling);
 }
 
 ////////////////////////////////////////////////////////////////////////////////////////
 // trim()
 // Leerzeichen am Anfang und Ende entfernen
 
 function trim(str) {
   return str.replace(/^\s*|\s*$/g,"");
 }
 
 
 ////////////////////////////////////////////////////////////////////////////////////////
 // do_rc_alert()

 function do_rc_alert(str) {
   if (rcalertbox) alert(str);
 }
 
 //
 // Funktion nowcomm()
 // Trägt NowCommons-Baustein ein
 // (aufgerufen aus der monobook.js)
 //
 
 function nowcomm() {
  var lemmaneu = prompt('Dateiname auf Commons:',mw.config.get('wgTitle'));
  if (lemmaneu != null )
      newtext('NowCommons','\{\{NowCommons|' + lemmaneu +'}}',3);
 }
 
 //
 // Helper-Funktion getLemma()
 // extrahiert Lemma, entfernt "Bild:" und "Kategorie:"
 // (aufgerufen von eintragen() aus der eintragen.js, nowcomm() )
 //
 
 function getLemma () {
   var lemma;
   lemma = mw.config.get('wgPageName');
   return lemma;
 }
 
 //
 // Helper-Funktion extractLemma()
 // hack: nur noch für contribs
 // (aufgerufen von eintragen() aus der eintragen.js )
 //
 
 function extractLemma () { //Littl
   var lemma;
   if ((isContrib) && ( UrlParameters["target"] > "" ))
     lemma = UrlParameters["target"];
   else if ( UrlParameters["title"] > "" )
     lemma = UrlParameters["title"];
   else {
     lemma = decodeURIComponent(location.href.substring(location.href.indexOf("/wiki/") + 6)).split('#')[0];
     // fix linky links (?redirect=no)
     //lemma = lemma.split['\x3F'][0];
     if (lemma.indexOf("redirect=no")!=-1)
         lemma=lemma.substring(0,lemma.indexOf("redirect=no")-1);
   }
   // if (lemma.substring(0, 5) == "Bild:") lemma=lemma.slice(5);
   // if (lemma.substring(0, 10) == "Kategorie:") lemma=lemma.slice(10);
   if (isPHP) lemma=lemma.split('+').join('_');
   return lemma;
 }
 
 // token functions
 function generate_asuser () {
   return encodeURIComponent(mw.config.get('wgUserName'));
 }

 function validate_asuser (asuser) {
   var retval = false;
   if (encodeURIComponent(asuser) == generate_asuser() )
      retval = true;

   return retval;
 }

 function generate_astime () {
   var arbitrary_datestamp = Date.UTC(2008,10,1,0,0,0,0); // 1.11.2008
   var current_date = new Date();
   var current_timestamp = current_date.getTime();

   return ( Math.floor((current_timestamp - arbitrary_datestamp) / 1000) );
 }

 function validate_astime (astime) {
   var retval = false;
   var timediff = generate_astime() - astime;

   if ((timediff >= 0) && (timediff < 45))
      retval = true;

   return retval;
 }
 // </nowiki>