Benutzer:Plenz/monobook.js

aus Wikipedia, der freien Enzyklopädie

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

  • Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
  • Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
  • Internet Explorer/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
  • Opera: Strg+F5
/*<pre>*/
/* Entfernt mehrfache Einträge zu einem Lemma aus der Beobachtungsliste, */
/* dabei beiben aber alle Bot-Edits plus 1 menschlicher Edit stehen.     */
/* Erst die Bot-Einträge NACH dem menschlichen Edit werden ebenfalls     */
/* entfernt. Zur Benutzung: in den Benutzereinstellungen                 */
/* "Erweiterte Beobachtungsliste zur Anzeige aller Änderungen" ankreuzen */
/* und die maximale Zahl der Einträge auf 1000 setzen.                   */

if (document.title.indexOf("Beobachtungsliste") > -1 ) {
  var a, i, u, l, kn, at, cl, lk, nl, ul, li, ll, le, bo, tx;
  var ct = 0;
  var lz = 0;
  leli = new Array();                                       // Liste zu löschender Lemmata
  for (u = 0; u < document.getElementsByTagName("ul").length; u++) {
    ul = document.getElementsByTagName("ul")[u];
    cl = ul.getAttribute("class");
    if (cl && cl.indexOf("special") > -1) {                 // alle Listen für jeden Tag durchgehen
      li = ul.firstChild;
      while (li) {                                          // alle Einträge der jeweiligen Liste durchgehen
        if (li.firstChild) {                                // Eintrag, kein Textknoten
          ct++;                                             // Eintrag zählen
          kn = li.firstChild;
          bo = 0;                                           // Bot-Flag
          cl = 0;                                           // Lösch-Flag
          le = "";                                          // Lemma o.ä.
          do {
            if (kn.getAttribute) {                          // Textknoten übergehen
              a = kn;
              at = a.getAttribute("class");
//            if (at && at == "mw-watched") {                // STRONG --> nächste Ebene
              if (at && at == "mw-changeslist-line-inner") { // STRONG --> nächste Ebene
                a = a.firstChild;
              }
              at = a.getAttribute("title");
              if (at && le == "") {le = at}                 // Lemma o.ä. gefunden
              at = a.getAttribute("class");
              if (at && at == "bot") {bo = 1}               // Bot gefunden
              if (at && at == "comment") {                  // Link zum Kapitel
                at = a.firstChild;                          // Textknoten
//                at = at.nextSibling;                        // autocomment?
//                if (at && at.getAttribute("class") == "autocomment") {
//                  at = at.firstChild;
//                  at = at.getAttribute("href");             // Link zum Kapitel
//                  lk.setAttribute("href", at);              // in Lemma-Link einsetzen
//                }
              }
              at = a.getAttribute("href");
              if (at) {                                     // verkürzen
                tx = a.firstChild;
                if (tx.data == "Unterschied") {tx.data = "Diff."}
                if (tx.data == "Versionen")   {tx.data = "V."}
              }
              at = a.getAttribute("class");
              if (at && at == "mw-title") {a = a.firstChild;}
              if (at && a.firstChild.data == le) {          // Link zum Lemma --> Entscheidung jetzt!
                lk = a;                                     // wichtigster Link
                for(l = 0; l < leli.length; l++) {          // Liste nach diesem Lemma durchsuchen
                  if (leli[l] == le) {cl = 1}               // schon in der Liste --> Löschflag setzen
                }
                if (cl < 1 && bo < 1) {leli.push(le)}       // kein Bot-Eintrag: Lemma in die Liste
              }
            }
            kn = kn.nextSibling;                            // nächster Bestandteil des Eintrages
          } while (kn && cl < 1);                           // weiter bis zum Ende
        }
        lk = li;                                            // Löschkandidat
        li = li.nextSibling;                                // nächster Eintrag
        if (li && li.data) {li = li.nextSibling}            // Textknoten überspringen
        if (cl > 0) {                                       // Löschflag gesetzt:
          cl = lk;                                          // Löschkandidat
          lk = lk.nextSibling;                              // folgender Textknoten
          cl.parentNode.removeChild(cl);                    // Eintrag löschen
          lz++;                                             // und zählen
          if (lk && lk.nodeType == 3) {                     // gibt es einen Textknoten?
            lk.parentNode.removeChild(lk);                  // Textknoten löschen
          }
        } else {
          nl = ct;                                          // Nicht-gelöscht-Zähler
          ll = lk;                                          // nicht gelöschter Kandidat 
        }
      }
    }
  }
  li = document.createElement("li");
  ll.appendChild(li);
  at = "Der letzte Eintrag war der " + nl + ". auf der Liste. " + lz + " von " + ct + " entfernt.";
  at = document.createTextNode(at);
  li.appendChild(at);
}





/* lässt Navigation/Werkzeug/etc. auf gleichbleibender Höhe       */
/* fügt Link zum Hochladen auf Wikimedia Commons hinzu            */
/* fügt Links "nach oben scrollen" und "nach unten scrollen" ein  */
/* schaltet Liste "Andere Spachen" aus und ein                    */


var langdisplay = "off";                                        // Schalter für Sprachen-Tabelle

var mani = window.setInterval(function() { Manipul() }, 100);   // Manipulationen


function Manipul() 
{
  kn = document.getElementById("t-upload");           // Link zum Hochladen
  if (!kn) {return}                                   // noch nicht geladen, weiter versuchen
  window.clearInterval(mani);                         // nicht weiter versuchen
  window.setInterval(function() { ScrollV() }, 100);  // Navi-Leiste scrollen

  kn = document.getElementById("p-coll-print_export");   // Buch/PDF/Druckversion erstellen...
  if (kn) {kn.parentNode.removeChild(kn)}                // ... braucht kein Mensch

  kn = document.getElementById("t-upload");              // Hochladen --> deutsch
  kn = kn.firstChild;
  var t = "Lade Bilder oder andere Multimedia-Dateien ";
  t = t + "auf die deutsche Wikipedia hoch [alt-u]";
  kn.setAttribute("TITLE", t);
  kn = kn.firstChild;
  kn.data = "Hochladen (deutsch)";

  kn = document.getElementById("n-randompage");          // Zufälliger Artikel
  kn = kn.firstChild.firstChild;
  kn.data = "Zufäll. Artikel";

  kn = document.getElementById("t-upload");
  sc = document.createElement("LI");
  sc.setAttribute("ID", "t-uploadComm");
  kn.parentNode.insertBefore(sc, kn);
  kn = sc;
  sc = document.createElement("A");                      // Hochladen --> Commons
  kn.appendChild(sc);
  t = "Lade Bilder oder andere Multimedia-Dateien ";
  t = t + "auf die Wikimedia Commons hoch";
  sc.setAttribute("TITLE", t);
  sc.setAttribute("TARGET", "_WindowCommons");
  sc.setAttribute("HREF", "http://commons.wikimedia.org/wiki/Special:Upload");
  sc.appendChild(document.createTextNode("Hochladen (Commons)"));


  kn = document.getElementById("p-navigation");  // Navi-Kasten schmaler
  kn.style.width = "87pt";

  kn = document.getElementById("p-navigation");      // Navigation   p-navigation
  sc = document.createElement("DIV");
  sc.setAttribute("ID", "n-scrollen");
  sc.style.position = "relative";
  sc.style.display = "table";
  sc.style.height = "70pt";
  sc.style.width = "18pt";
  sc.style.marginLeft = "89pt";
  sc.style.marginTop = "-65pt";
  kn.parentNode.insertBefore(sc, kn);
  kn = sc;

  sc = document.createElement("A");                // Link --> nach oben scrollen
  sc.style.position = "relative";
  sc.style.top = "4pt";
  sc.style.cursor = "pointer";
  sc.style.textDecoration = "none";
  sc.setAttribute("TITLE", "nach oben scrollen");
  sc.setAttribute("onClick", "javascript:scrollup()");
  sc.appendChild(document.createTextNode("▲"));
  sc.style.fontSize = "2em";
  kn.appendChild(sc);

  sc = document.createElement("BR");               // Zwischenraum erzeugen
  kn.appendChild(sc);
  sc = document.createElement("BR");               // Zwischenraum erzeugen
  kn.appendChild(sc);

  sc = document.createElement("A");                // Link --> nach unten scrollen
  sc.style.cursor = "pointer";
  sc.style.textDecoration = "none";
  sc.setAttribute("TITLE", "nach unten scrollen");
  sc.setAttribute("onClick", "javascript:scrolldn()");
  sc.appendChild(document.createTextNode("▼"));
  sc.style.fontSize = "2em";
  sc.setAttribute("display", "none");
  kn.appendChild(sc);


  kn = document.getElementById("p-lang");                           // Andere Sprachen:
  if (kn)                                                           // vorhanden
  {
    kn = document.getElementById("t-upload");                       // "Hochladen"
    sc = document.createElement("LI");
    sc.setAttribute("ID", "t-sprache");
    kn.parentNode.appendChild(sc);
    kn = sc;
    sc = document.createElement("A");                               // Schalter hinzufügen
    kn.appendChild(sc);
    sc.setAttribute("TITLE", "Liste der Sprachen zeigen");
    sc.style.cursor = "pointer";
    sc.setAttribute("onClick", "javascript:togglesprache()");
    sc.appendChild(document.createTextNode("Sprachen zeigen"));
  }
}



function ScrollV()
{
  var kn;
  var sc = window.pageYOffset;
  if (sc < 150) {sc = 0} else {sc = 0.75 * (sc - 150)}
  kn = document.getElementById("p-search");
  if (kn) {kn.style.position = "relative"}
  if (kn) {kn.style.top = sc + "pt"}
  kn = document.getElementById("p-navigation");
  if (kn) {kn.style.position = "relative"}
  if (kn) {kn.style.top = sc + "pt"}
  kn = document.getElementById("p-Mitmachen");
  if (kn) {kn.style.position = "relative"}
  if (kn) {kn.style.top = sc + "pt"}
  kn = document.getElementById("p-tb");
  if (kn) {kn.style.position = "relative"}
  if (kn) {kn.style.top = sc + "pt"}
  kn = document.getElementById("n-raufrunter");
  if (kn) {kn.style.position = "relative"}
  if (kn) {kn.style.top = sc + "pt"}
  kn = document.getElementById("n-scrollen");
  if (kn) {kn.style.position = "relative"}
  sc = sc + 83;
  if (kn) {kn.style.top = sc + "pt"}




  kn = document.getElementById("p-lang");                           // Andere Sprachen:
  if (kn)                                                           // vorhanden
  {
    if (langdisplay == "off") {sc = "hidden"} else {sc = "visible"} // aus oder ein
    kn.style.visibility = sc;
  }
}



function togglesprache()
{ 
  var kn;
  if (langdisplay == "off") 
  {
    langdisplay = "on";
    kn = document.getElementById("t-sprache");
    kn.firstChild.setAttribute("TITLE", "Liste der Sprachen verstecken");
    kn.firstChild.firstChild.data = "Sprachen verstecken";
  } 
  else 
  {
    langdisplay = "off";
    kn = document.getElementById("t-sprache");
    kn.firstChild.setAttribute("TITLE", "Liste der Sprachen zeigen");
    kn.firstChild.firstChild.data = "Sprachen zeigen";
  }
}


function scrollup() {window.scrollTo(0, 0)}


function scrolldn() {window.scrollTo(0, 100000000)}




window.setTimeout("scrolltextarea()",3000); 

function scrolltextarea() 
{
  var ip = document.getElementById("wpSummary");              // neues Kapitel
  if (ip)
  {
    ip.setAttribute("maxlength", "999");                      // Reverten braucht viel Platz
    if (ip.value < "!") 
    {ip.focus()}
    else
    {
      var ip = document.getElementById("wpTextbox1");         // scrollt zum Eingabefenster
      if (ip) {ip.focus()}
    }
  }
}



window.setTimeout(function()
{
  var no, nn, nu, ip;
  ip = window.document.getElementsByTagName("TITLE")[0].firstChild.nodeValue;
  if (ip.search(/Benutzer:Plenz /) > -1)
  {
    no = window.document.getElementById("toctitle");
    no = no.nextSibling;                                  // UL
    no = no.lastChild;                                    // letztes LI
    nu = no.firstChild.firstChild.firstChild.data;
    nn = no.cloneNode(true);
    no.parentNode.appendChild(nn);                        // Kopie einbauen
    no = nn.firstChild;                                   // A
    no.href = "http://de.wiki" + "pedia.org/wiki/Benu" + "tzer:Ple" + "nz/U" + "DO";
    no = no.firstChild;                                   // SPAN
    no.firstChild.data = nu * 1 + 1;                      // Zähler
    no = no.nextSibling;
    no = no.nextSibling;
    no.firstChild.data = "UDO";
  }
  if (ip.search(/Beobachtungsliste/) > -1)
  {
    no = window.document.getElementById("contentSub");
    no = no.lastChild;                                    // letztes A
    no.href = "http://en.wikipedia.org/wiki/Special:Watchlist";
    no.firstChild.data = "EN";
  }
}, 1000);




// var umlkorr = window.setInterval("UmlautKorr()",5000);   // Umlaute korrigieren

function UmlautKorr()
{
  var ta = document.getElementById("wpTextbox1");
  if (ta)
  {
    var tx = ta.value; 
    tx = tx.replace(/%28/ig,    "(");
    tx = tx.replace(/%29/ig,    ")");
    tx = tx.replace(/%C3%A4/ig, "ä");
    tx = tx.replace(/%C3%B6/ig, "ö");
    tx = tx.replace(/%C3%BC/ig, "ü");
    tx = tx.replace(/%C3%9F/ig, "ß");
    tx = tx.replace(/%C3%84/ig, "Ä");
    tx = tx.replace(/%C3%96/ig, "Ö");
    tx = tx.replace(/%C3%9C/ig, "Ü");
//    ta.focus();
//    var start = tx.selectionStart;
//    var range = document.selection.createRange();
//    alert(start);
//    document.getElementById("wpTextbox1").value = tx;
  }
}



var ti = document.getElementsByTagName("TITLE")[0];
ti = ti.firstChild.nodeValue;
if (ti.search(/Beobachtungsliste/) > -1) {
  window.setTimeout(function() {paintwatch()}, 1000);
}


function paintwatch() {
  var h, h4, da, li, tx, uz, dac, uzc, ti;
  var li1 = "";
  var rot = 0;
  for (var h=0; h<document.getElementsByTagName("h4").length; h++) {
    h4 = document.getElementsByTagName("h4")[h];
    da = h4.firstChild.data;
    if (da.substr(1, 1) == ".") {da = "0" + da}
    da = da.substr(0, 7) + da.match(/ \d\d\d\d/);
    da = datconv(da);
    li = h4.nextSibling.nextSibling.firstChild;
    if (li1 == "") {li1 = li;}
    do {
      uz = li.firstChild;
      if (! uz) {alert(h4.firstChild.data)}
      do {
        uz = uz.nextSibling;
      } while (! uz.data || uz.data.search(/\d\d:\d\d/) < 1)
      uz = uz.data.match(/\d\d:\d\d/);
      li.setAttribute("id", da + " " + uz);                          // IDs setzen
    } while ((li = li.nextSibling) && (li = li.nextSibling))
  }

  dac = readcookie("LastWatchDate");                                 // Datum   aus Cookie

  for (h=0; h<document.getElementsByTagName("li").length; h++) {
    li = document.getElementsByTagName("li")[h];
    li.style.backgroundColor = "transparent";
    da = li.getAttribute("id");
    if (da && da > dac && da.match(/\d\d\d\d/)) {
      li.style.backgroundColor = "#F8E8D8";                          // rosa
      rot = 1;
    }
  }
  ti = document.getElementsByTagName("TITLE")[0];
  if (rot > 0) {
    h4 = document.getElementsByTagName("h4")[0];
    li = document.createElement("a");
    tx = document.createTextNode("OK");
    li.appendChild(tx);
    h4.appendChild(li);
    li.style.paddingLeft = "2em";
    li.style.fontWeight = "normal";
    li.style.cursor = "pointer";
    li.setAttribute("id", "pwclick");
    li.setAttribute("onclick", "paintwatch()");
    tx = ti.text;
    if (tx.indexOf("!") < 0) {ti.text = "!!! " + tx}
  }
  else {
    document.getElementsByTagName("h4")[0].style.backgroundColor = "#DDFFCC";   // gruen
    li = document.getElementById("pwclick");
    if (li) {li.parentNode.removeChild(li)}
    tx = ti.text;
    if (tx.indexOf("!") > -1) {ti.text = tx.substr(4,99)}
  }
  if (document.getElementById("permclick")) {return}    // alles schon vorhanden

  da = new Date();
  uz = da.getTime() + 31 * 24 * 60 * 60 * 1000;
  da.setTime(uz);
  uz = da.toGMTString();
  li = document.getElementsByTagName("h4")[0];
  li = li.nextSibling.nextSibling.firstChild;
  tx = li.getAttribute("id");
  document.cookie = "LastWatchDate=" + tx + "; expires=" + uz;

  h4 = document.getElementsByTagName("h4")[0];
  li = document.createElement("a");
  h4.appendChild(li);
  li.setAttribute("id", "permclick");
  li.style.paddingLeft = "20em";
  li.style.fontWeight = "normal";
  li.style.cursor = "pointer";
  ur = window.location.href;
  if (ur.search(/watchperm=1/) > 0) {
    li.setAttribute("onclick", "permunwatch()");
    tx = document.createTextNode("nicht wachen");
    li.appendChild(tx);
    li = document.createElement("span");
    li.style.fontWeight = "normal";
    h4.appendChild(li);
    uz = da.getHours();
    h4 = da.getMinutes() + 30;
    if (h4 > 59) {
      h4 = h4 - 60;
      uz++;
    }
    if (uz > 23) {uz = uz - 24}
    if (h4 < 10) {h4 = "0" + h4}
    uz = " (wartet bis " + uz + ":" + h4 + ")";
    tx = document.createTextNode(uz);
    li.appendChild(tx);
    window.setTimeout("javascript:location.reload()", 1800000);
  }
  else {
    li.setAttribute("onclick", "permwatch()");
    tx = document.createTextNode("wachen");
    li.appendChild(tx);
  }
}


function datconv(d) {
  var t = d.substr(0, 2);
  var j = d.substr(8, 4);
  var m = d.substr(4, 3);
  if (m == "Jan") {m = "01";}
  if (m == "Feb") {m = "02";}
  if (m == "Mär") {m = "03";}
  if (m == "Apr") {m = "04";}
  if (m == "Mai") {m = "05";}
  if (m == "Jun") {m = "06";}
  if (m == "Jul") {m = "07";}
  if (m == "Aug") {m = "08";}
  if (m == "Sep") {m = "09";}
  if (m == "Okt") {m = "10";}
  if (m == "Nov") {m = "11";}
  if (m == "Dez") {m = "12";}
  return(j + "-" + m + "-" + t);
}


function permwatch() {
  var ur = window.location.href;
  window.location.href = ur + "&watchperm=1";
}

function permunwatch() {
  var ur = window.location.href;
  var li = ur.indexOf("watchperm") - 1;
  window.location.href = ur.substr(0, li);
}

function readcookie(su) {
  var co = "aa" + document.cookie + ";ee";
  var le = su.length;
  var an = co.indexOf(su);
// alert(co + " --> " + su + " --> " + an);
  if (an < 1) {return(-1);}
  an = an + le + 1;
  var en = co.indexOf(";", an);
  le = en - an
  en = co.substr(an, le);
  return(en);
}

/*</pre>*/