Benutzer:Seelenstaub/monobook.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
// [[User:Lupin/popups.js]]

mw.loader.load(
             'https://en.wikipedia.org/w/index.php?title=User:Lupin/popups.js'
             + '&action=raw&ctype=text/javascript&dontcountme=s');

//<pre>
// Script to embed interactive maps into pages that have coordinate templates
// also check my commons page [[:commons:User:Dschwen]] for more tools

//


// defaults
//
var wikiminiatlas_coordinate_region = '';
var wikiminiatlas_width = 500;
var wikiminiatlas_height = 300;
var wikiminiatlas_iframeurl = 'http://up2p77.gwdg.de/~daniel/MiniWikiAtlas/iframe.html';
var wikiminiatlas_imgbase = 'http://up2p77.gwdg.de/~daniel/MiniWikiAtlas/tiles/';

//
// globals
//
var wikiminiatlas_iframe = null;

//
// Insert the IFrame into the page.
//
function wikiminiatlasLoader()
{
 var coordinates = document.getElementById('coordinates');

 if (coordinates != null && wikiminiatlas_iframe == null) 
 {
  var coord_index = (coordinates.innerHTML).indexOf('params=');
  if(coord_index>-1)
  {
   var coord_params = (coordinates.innerHTML).substr(coord_index+7);

   // en.wp coordinates
   var coord_filter = /([\d+-.]+)_([NS])_([\d+-.]+)_([EW])_/;
   if(coord_filter.test(coord_params))
   {
    coord_filter.exec(coord_params);
    wikiminiatlas_marker_lat=RegExp.$1;
    if(RegExp.$2=='S') wikiminiatlas_marker_lat*=-1;
    wikiminiatlas_marker_lon=RegExp.$3;
    if(RegExp.$4=='W') wikiminiatlas_marker_lon*=-1;
   }

   // de.wp coordinates
   coord_filter = /([\d+-.]+)_([\d+-.]+)_([\d+-.]+)_([NS])_([\d+-.]+)_([\d+-.]+)_([\d+-.]+)_([EW])_/;
   if(coord_filter.test(coord_params))
   {
    coord_filter.exec(coord_params);
    wikiminiatlas_marker_lat=(1.0*RegExp.$1) + (RegExp.$2/60.0) + (RegExp.$3/3600.0);
    if(RegExp.$4=='S') wikiminiatlas_marker_lat*=-1;
    wikiminiatlas_marker_lon=(1.0*RegExp.$5) + (RegExp.$6/60.0) + (RegExp.$6/3600.0);
    if(RegExp.$8=='W') wikiminiatlas_marker_lon*=-1;
   }
 
   // de.wp coordinates
   coord_filter = /([\d+-.]+)_([\d+-.]+)_([NS])_([\d+-.]+)_([\d+-.]+)_([EW])_/;
   if(coord_filter.test(coord_params))
   {
    coord_filter.exec(coord_params);
    wikiminiatlas_marker_lat=(1.0*RegExp.$1) + (RegExp.$2/60.0);
    if(RegExp.$3=='S') wikiminiatlas_marker_lat*=-1;
    wikiminiatlas_marker_lon=(1.0*RegExp.$4) + (RegExp.$5/60.0);
    if(RegExp.$6=='W') wikiminiatlas_marker_lon*=-1;
   }
  }
  var region_index = (coordinates.innerHTML).indexOf('region:');
  if(region_index>-1)
  {
   wikiminiatlas_coordinate_region = (coordinates.innerHTML).substr(region_index+7);
   wikiminiatlas_coordinate_region = wikiminiatlas_coordinate_region.substr(0,wikiminiatlas_coordinate_region.indexOf('"'));
  }

  WikiMiniAtlasHTML =  '&nbsp;<a href="#" onclick="return toggleWikiMiniAtlasIFrame();">Atlas</a>';
  WikiMiniAtlasHTML += '<div id="wikiminiatlas_iframe" style="position:absolute; right:2em; top: 1em; width:'+(wikiminiatlas_width+12)+'px; height:'+(wikiminiatlas_height+12)+'px; background-color: white; padding: 0px; margin: 0px; visibility: hidden; border: 1px solid gray">';
  WikiMiniAtlasHTML += '<img src="'+wikiminiatlas_imgbase+'button_hide.png" style="z-index:10; position:absolute; right:11px; top: 11px; width:18px; cursor:pointer" onclick="toggleWikiMiniAtlasIFrame()">'
  WikiMiniAtlasHTML += '<iframe style="position:absolute; right:1px; top: 1px; width:'+(wikiminiatlas_width+10)+'px; height:'+(wikiminiatlas_height+10)+'px; background-color: white; padding: 0px; margin: 0px;" src="'+wikiminiatlas_iframeurl+'?'+wikiminiatlas_marker_lat+'_'+wikiminiatlas_marker_lon+'_'+wikiminiatlas_width+'_'+wikiminiatlas_height+'_'+window.location.host.substr(0,2)+'" scrolling="no" border="0"></div>';

  coordinates.innerHTML = coordinates.innerHTML + WikiMiniAtlasHTML ;

  wikiminiatlas_iframe = document.getElementById('wikiminiatlas_iframe');
 }
}

//
// Hook up instalation function
//
$(wikiminiatlasLoader);



function toggleWikiMiniAtlasIFrame()
{
 if(wikiminiatlas_iframe.style.visibility != "visible")
 {
   wikiminiatlas_iframe.style.visibility="visible";
 }
 else
 {
   wikiminiatlas_iframe.style.visibility="hidden";
 }

 return false;
}

//</pre>

// Rechtschreibprüfung
document.write('<SCRIPT SRC="http://de.wikipedia.org/w/index.php?title=Benutzer:APPER/RP/js&action=raw&ctype=text/javascript"><\/SCRIPT>');

// Nach dem Vorbild der bereits vorhandenen Listen wird eine neue Box in der
// Navigationsleiste installiert, die einen Link zu den letzten IP-Editings enthält
function createLinksSidebar() {
        // Elemente der Box erstellen.
        var divPortlet = document.createElement("div");
        var h5 = document.createElement("h5");
        var h5Text = document.createTextNode("Beobachtungsliste");
        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);
        // Link erstellen.
        var li = document.createElement("li");  
        li.style.whiteSpace = "nowrap";
        ul.appendChild(li);
        var a = document.createElement("a");
        a.setAttribute("href", "http://de.wikipedia.org/w/index.php?title=Spezial:Recentchanges&hideliu=1&limit=50");
        a.setAttribute("title", "Letzte IP-Änderungen");
        li.appendChild(a);
        var aText = document.createTextNode("IP-Editings");
        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
aOnloadFunctions[aOnloadFunctions.length] = createLinksSidebar;