MediaWiki:Common.js: Unterschied zwischen den Versionen

Zur Navigation springen Zur Suche springen
K
 
(859 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
////Buttons f. Bearbeitungsfenster ganz unten!
+
// Handler für sticky toc
 
+
if ($('body:not(.ns--1) #toc').length)  {
/*** PRELOAD ***/
+
$('#content').prepend('<div id="tocTest" style="height:.25rem; position:absolute;"></div>')
importScript('mediawiki:bilder.js');
+
var testAbstand=  $('#tocTest').height();
importScript('mediawiki:loadGlossar.js');
+
$( "#tocTest" ).remove();
importScript('mediawiki:literatur.js');
+
var toc= $('#toc')
 +
, scroll_pos_test =  toc.offset().top - testAbstand;
 +
$(window).on('scroll', function() {
 +
if( window.pageYOffset >= scroll_pos_test )
 +
$('#toc').addClass('stickyToc');
 +
else
 +
$('#toc').removeClass('stickyToc');
 +
});
 +
}
 +
// Handler für toparrow
 +
$(window).on('scroll', function() {
 +
if(window.pageYOffset < $( window ).height()/2)
 +
$('#toparrow').hide();
 +
else
 +
$('#toparrow').show();
 +
});
 +
// Handler für Glossar
 +
  //toggle Info
 +
if ($(location).attr('search').length > 0)
 +
  $('#infoText').hide();
 +
else
 +
  $('#infoText').show();
 +
$('#infoButton').click(function() {
 +
$('#infoText').toggle('slow');
 +
});
 +
  //Hide query options
 +
function toggleChecked() {
 +
var firstChecked= $('#firstChoice input:checked').val().toLowerCase().match(/\w\w\w/);
 +
$('[id^="second"]').hide('slow');
 +
$('#second-'+firstChecked).show('slow');
 +
}
 +
$.when( $.ready ).then(toggleChecked);
 +
$('#firstChoice input').on('change', function() {
 +
toggleChecked();
 +
$('[id^="second"] [type="checkbox"]').prop('checked', false);
 +
$('.showResults').hide('fast');
 +
});  
  
function anmToc(){
+
// Handler für search
if (wgPageName&&wgPageName.indexOf('Metalog:Glossar')!=-1) {
+
if( $('#search-container').length){
var anm = document.createElement('DIV');
+
var search2 = $('#searchform').clone().attr('id', 'searchform2');
anm.innerHTML="Anmerkung: „ō“ und „ū“ sind alphabetisch wie „ou“ und „uu“ eingeordnet";
+
$('#search-container').append(search2);
anm.className="anmToc";
+
$('#searchform').hide();  
document.getElementById('toc').appendChild(anm);
 
 
}
 
}
 +
// Handler für phaidra crawler (hide search)
 +
if (navigator.userAgent.indexOf("phaidraCrawler") != -1) {
 +
$('#search-container').hide();
 
}
 
}
addOnloadHook(anmToc);
+
// Handler für sticky toc (depreciated)
  
/*********USER RIGHTS*************/
+
if ($('#toc').length && $('#wrapToc').length) {
var sysopRights = false;
+
var toc= $('#toc')
var userRights = false;
+
, wrap_toc = $('#wrapToc')
function setSysopRights(){
+
, toc2 = toc.clone()
for (i in wgUserGroups) {
+
, scroll_pos_test =  toc.offset().top + toc.height()
  if (wgUserGroups[i]== "user")
+
, ues = [];
    userRights = true;
+
// Clone von toc erzeugen
  if (wgUserGroups[i]== "sysop")
+
$('#wrapToc').append(toc2.addClass('fix_toc').hide());
    sysopRights = true;
+
//Funktion nach scrollen
  }
+
$(window).on('scroll', function() {
}
+
var y_scroll_pos = window.pageYOffset;
addOnloadHook(setSysopRights);
+
if( y_scroll_pos > scroll_pos_test ) { // toc nicht mehr sichtbar
/******************************/
+
toc2.width(toc.width());
function clickEdit() {
+
wrap_toc.show();
if (sysopRights && wgNamespaceNumber>-1 && wgAction=="view")
+
// Sichtbaren Bereich in toc markieren
  window.ondblclick = function(e) {  
+
var new_ues=[];
  if (e.target.nodeName == "DIV")
+
$('h2 .mw-headline, h3 .mw-headline').each(function() {  
    document.location.href = wgScript+"?title="+wgPageName+"&action=edit";
+
if ($(this).offset().top > y_scroll_pos
  }
+
&& $(this).offset().top < y_scroll_pos + $(window).height()/2) {
 +
new_ues.push($.trim($(this).text()));
 +
ues= new_ues;
 +
$('#wrapToc .here').removeClass('here');
 +
$('#wrapToc .toctext').each(function() {
 +
if (ues.indexOf($.trim($(this).text()))!== -1) {
 +
$(this).closest('li').addClass('here');
 +
}
 +
});
 +
}
 +
});
 +
} else {
 +
wrap_toc.hide();
 +
$('#wrapToc .here').removeClass('here');
 +
}
 +
});
 +
//toggle Clone
 +
$('.plusMinusToc').click(function() {  
 +
toc2.toggle('slow');
 +
$('.plusMinusToc').toggleClass('close');
 +
});
 +
$('#wrapToc h2').click(function() {  
 +
$(this).closest('#wrapToc').find('.plusMinusToc').trigger('click');
 +
});
 
}  
 
}  
addOnloadHook(clickEdit);
+
/*************************************
/******************************/
+
  SITEMAP
//Nach dem Einloggen wieder zur Ausgangsseite:
+
**************************************/
if (wgCanonicalSpecialPageName == "Userlogin")
 
addOnloadHook( function() { document.location = document.getElementById('mw-returnto').getElementsByTagName('a')[0].href; } );
 
  
// Welche Scripts für welche Seiten...
+
//Handler für Klick auf (+) in Sitemap
 +
$(document).on('click', '.sitemap .plusMinus', openOrCloseDetails);
 +
function openOrCloseDetails(e) {
 +
e.preventDefault();
 +
if ($(this).hasClass("close")) {
 +
$(this).closest('div').find('ul').hide('slow');
 +
} else {
 +
$(this).closest('div').find('ul').show('slow');
 +
}
 +
$(this).toggleClass('close');
 +
 +
$(document).on('click', '#plusMinusAll',openOrCloseAll);
 +
function openOrCloseAll(e) {
 +
e.preventDefault();
 +
if ($(this).hasClass("close")) {
 +
$('.sitemap ul').hide('slow');
 +
$('.sitemap .plusMinus').removeClass('close');
 +
} else {
 +
$('.sitemap ul').show('slow');
 +
$('.sitemap .plusMinus').addClass('close');
 +
}
 +
$(this).toggleClass('close');
 +
}
  
var jsOK = false;
+
//falsche externe links
var useNewJs = [
+
$('.sitemap a').removeClass('external');
  newJS_Spaces = [wgNamespaceNumber,0,4,12,14,100,102,104,106,108,110,112,],
 
  newJS_Pages = [wgPageName,'Hauptseite','Benutzer:Bescheid','Benutzer:WikiSysop',]
 
];
 
  
function setJsOK(array) {
+
//Sitemap öffnen und schließen
  for (var i in array)
+
$('#contSitemap').hide();
    for (var n=1; n<array[i].length; n++)  
+
$(document).on('click', '#sitemapToggle', openOrCloseSitemap);
      if (array[i][n] == array[i][0]) jsOK = true;
+
//von sitemaplink aus öffnen
}
+
$(document).on('click', '#sitemaplink', function(e) {
 +
e.preventDefault();
 +
$('#sitemapToggle').trigger('click');
 +
});
 +
function openOrCloseSitemap(e) {
 +
e.preventDefault();
 +
var scroll= $('#toggleButton').offset();
 +
$('#contSitemap').css({
 +
top: 'calc('+ scroll.top+'px + 3.5rem)'
 +
});
 +
if ($(this).hasClass("close")) {
 +
$('#bgToggle').animate({
 +
height: "2em",
 +
opacity: ".2"
 +
}, function() {
 +
$('#bgToggle').removeAttr("style");
 +
});
 +
$('#contSitemap').slideUp('fast');
 +
$('#bottom-notice-ns').css({'z-index':'2'});
 +
} else {
 +
$('#bgToggle').css({
 +
backgroundColor: '#ccccc6'
 +
})
 +
.animate({
 +
height: "100%",
 +
opacity: ".85"
 +
});
 +
$('#contSitemap').slideDown('fast');
 +
$('#bottom-notice-ns').css({'z-index':'4'});
 +
}
 +
$(this).toggleClass('close');
 +
 +
var sitemapParent= $('.selflink').closest('[id^=p-]');
 +
if(mw.config.get('wgPageName')!=="Hauptseite")
 +
$(sitemapParent).find('.plusMinus').trigger('click');  
 +
 +
/*********************
 +
GLOSSAR 
 +
*********************/
  
setJsOK(useNewJs);  
+
// inline glossar-Info anzeigen und verbergen
if (!wgIsArticle || wgAction != "view") jsOK = false;
+
$('.glossar').each(function() {
 +
var child = $(this).find('.g_box');  
 +
$(this).click(function(){
 +
$( child).slideToggle('slow');
 +
});
 +
$(this).mouseleave(function() {
 +
$(child).slideUp('slow');
 +
});
 +
});
 +
/*************************************
 +
  POPUP
 +
**************************************/
 +
// Popup-globale Variable
 +
var popupInUse = 0
 +
, currentPopup=0
 +
, ppLength = $('.showPopup').length
 +
, ppScroll;
  
window.onload= function() {
+
// index-Schleife ermöglichen
  sizeY();
+
function trimIndex(t) {
  if (jsOK) {
+
var i = t;
    nv = document.getElementById('siteNotice');
+
i = (i < ppLength) ? (i < 0) ? ppLength + i : i : ppLength - i;
    nvY = findPos(nv);
+
return i;
    fixNv();
 
    styleNv();
 
 
 
    getThumbs(); 
 
    setGlossar();
 
    setShowtalk();
 
  }
 
};
 
 
function sizeY() {
 
//Maße und Elemente 
 
  var body_width = document.body.offsetWidth,
 
    body_height = document.body.offsetHeight,
 
    screen_height = window.innerHeight ||
 
      document.documentElement.offsetHeight;
 
    var spacer = document.getElementById("content").appendChild( document.createElement("DIV") );
 
  // Höhe anpassen
 
  spacer = document.getElementById("thisway") || spacer;
 
    spacer.style.paddingTop = (body_height+10) < screen_height ?
 
      screen_height-(body_height+10) +"px" : 0;
 
 
}
 
}
  
if (jsOK)
+
//Popup div erstellen
{ //eigentliches Script ab hier. Achtung auf "}" !
+
if(ppLength) {  
 
+
$('body').append(
//function showTocToggle() { return; } //Funktion überschreiben...
+
'<div id="popupDiv">'+
 
+
'<div id="ppX" title="Popup schließen">⨯</div>'+
// Seite Beobachten, etc.
+
'</div>'
function toggleMsg() {
+
);
jsMessage=document.getElementById('mw-js-message')||false;
+
$('#popupDiv').hide();
if (jsMessage) jsMessage.style.display='none';
 
 
}
 
}
//window.onclick = toggleMsg;
+
//Popup gestalten
 
+
if(ppLength) {  
///////// var für Maße und Elemente/////////////// 
+
$('.showPopup').each(function(){
 
+
var ppIndex= $('.showPopup').index(this)
var body_width, body_height, screen_height;
+
, iSrc=$(this).find('img').attr('src')
 
+
, ppSrc= iSrc.replace(/\/thumb/, "").replace(/\/\d+px.+/, "")
/***********************************
+
, text= $(this).find('.fulltext').html();
      Stylesheet changes
+
***********************************/
+
$('#popupDiv').append(
 
+
'<div class="ppSingle">'+
document.write (
+
'<div class="ppGrid">'+
    '<style>' +
+
'<span class="ppBack ppGo" title="Voriges Bild anzeigen"></span>'+
    ' #column-content {}' + //0
+
'<a class="ppImg" href="'+ppSrc+'"><img id="ppImg'+ppIndex+'" src="'+ppSrc+'" /></a>'+
    ' #column-one {}' + //1
+
'<span class="ppNext ppGo" title="Nächstes Bild anzeigen"></span>'+
    ' #toc{}' +  //2
+
'</div>'+
    ' #column-content #content #bodyContent{}' + //3
+
'<div class="ppText">'+
    ' #sidebar {}' + //4
+
'<a class="ppBacklink" title="Bildseite" href="'+ $(this).find('a.image').attr('href') + '">Details</a>'+
    ' #p-personal{}' + //5
+
'<span class="ppInfo"><small>Abb. '+(ppIndex + 1)+': </small>'+text+'</span>'+
    ' #p-cactions {}' + //6
+
'</div>'+
    ' #dropdown {}' + //7
+
'</div>'
    ' .glossar2:hover small small {}' + //8
+
);
    ' .sysop {}' + //9
+
});
    ' .user {}' + //10
 
    ' .anon{}' + //11
 
    ' </style>'
 
    )
 
var newCSS = document.styleSheets[document.styleSheets.length-1],
 
  newRules = newCSS.cssRules || newCSS.rules;  // für alle Browser ansprechbar
 
 
 
/***********************************
 
    Anpassen an Browserfenster, u.a.
 
************************************/
 
 
 
function sizeX() {
 
 
 
  var normW = 1024,
 
    thisW = window.innerWidth ||  document.documentElement.offsetWidth || 0,
 
    rand_abstand = (thisW > normW)? Math.round((thisW - normW)/20*3) : 0;
 
  if (newRules) {
 
      //--------- neue Abstaende ---------------
 
    newRules[0].style.marginRight =  // #column-content
 
    newRules[0].style.marginLeft =  
 
    //newRules[1].style.left =  // #column-one
 
    //newRules[2].style.marginRight =  //#toc
 
    newRules[4].style.marginLeft =  // #sidebar
 
    //newRules[5].style.marginLeft =  //#p-personal
 
    //newRules[6].style.marginLeft =  //#p-cactions
 
    newRules[7].style.marginLeft =  //#dropdown
 
      rand_abstand+'px';
 
    newRules[3].style.marginRight =  //#bodyContent
 
    newRules[3].style.marginLeft =
 
      rand_abstand/2+'px';
 
    //---------- Glossar, falls JS ----------------
 
  newRules[8].style.display = 'none'; //Glossar
 
      //---------- falls Sysop ----------------
 
  if (sysopRights) {
 
        newRules[9].style.display='block';
 
        newRules[10].style.display='block';
 
        newRules[11].style.display='none';
 
    }
 
  }
 
 
 
}
 
addOnloadHook(sizeX);
 
window.onresize = function() {sizeX();};
 
 
 
//die wichtigsten Funktionen:
 
 
 
/*** NAVIGATION ***/
 
importScript('mediawiki:navigation.js');
 
 
 
/*** POPUPS ***/
 
importScript('mediawiki:popup.js');
 
 
 
/*** GLOSSAR ***/
 
importScript('mediawiki:glossar.js');
 
 
 
}// ende "jsOK"
 
 
 
//Vielleicht für später
 
//importStylesheet('mediawiki:abc' + wgCanonicalNamespace + '.css');
 
//importScript('mediawiki:abc' + wgCanonicalNamespace + '.js');
 
 
 
 
 
//////////////////////////
 
//—‚ ‘„ “ōŌūŪ&shy;&nbsp;
 
//////////////////////////
 
mwCustomEditButtons[mwCustomEditButtons.length] =
 
  {"imageFile": "/rel_jap/w/skins/common/images/no.gif",
 
    "speedTip": "",
 
    "tagOpen": "",
 
    "tagClose": "",
 
    "sampleText": ""};
 
mwCustomEditButtons[mwCustomEditButtons.length] =
 
  {"imageFile": "/rel_jap/w/skins/common/images/ndash.jpg",
 
    "speedTip": "kurzer Bindestrich (n–dash)",
 
    "tagOpen": "–",
 
    "tagClose": "",
 
    "sampleText": ""};
 
mwCustomEditButtons[mwCustomEditButtons.length] =
 
  {"imageFile": "/rel_jap/w/skins/common/images/mdash.jpg",
 
    "speedTip": "Text zwischen langen Bindestrichen (m—dash)",
 
    "tagOpen": "— ",
 
    "tagClose": " — ",
 
    "sampleText": "Text"};
 
mwCustomEditButtons[mwCustomEditButtons.length] =
 
  {"imageFile": "/rel_jap/w/skins/common/images/hyphens1_dt.jpg",
 
    "speedTip": "dt. Anführungszeichen einfach",
 
    "tagOpen": "‚",
 
    "tagClose": "‘",
 
    "sampleText": ""};
 
mwCustomEditButtons[mwCustomEditButtons.length] =
 
  {"imageFile": "/rel_jap/w/skins/common/images/hyphens2_dt.jpg",
 
    "speedTip": "dt. Anführungszeichen doppelt",
 
    "tagOpen": "„",
 
    "tagClose": "“",
 
    "sampleText": ""};
 
mwCustomEditButtons[mwCustomEditButtons.length] =
 
  {"imageFile": "/rel_jap/w/skins/common/images/oo.jpg",
 
    "speedTip": "langes o, klein",
 
    "tagOpen": "ō",
 
    "tagClose": "",
 
    "sampleText": ""};
 
mwCustomEditButtons[mwCustomEditButtons.length] =
 
  {"imageFile": "/rel_jap/w/skins/common/images/oo_gr.jpg",
 
    "speedTip": "langes O, gross",
 
    "tagOpen": "Ō",
 
    "tagClose": "",
 
    "sampleText": ""};
 
mwCustomEditButtons[mwCustomEditButtons.length] =
 
  {"imageFile": "/rel_jap/w/skins/common/images/uu.jpg",
 
    "speedTip": "langes u, klein",
 
    "tagOpen": "ū",
 
    "tagClose": "",
 
    "sampleText": ""};
 
mwCustomEditButtons[mwCustomEditButtons.length] =
 
  {"imageFile": "/rel_jap/w/skins/common/images/uu_gr.jpg",
 
    "speedTip": "langes U, gross",
 
    "tagOpen": "Ū",
 
    "tagClose": "",
 
    "sampleText": ""};
 
mwCustomEditButtons[mwCustomEditButtons.length] =
 
  {"imageFile": "/rel_jap/w/skins/common/images/shy.jpg",
 
    "speedTip": "stummes Trennzeichen",
 
    "tagOpen": "·",
 
    "tagClose": "",
 
    "sampleText": ""};
 
mwCustomEditButtons[mwCustomEditButtons.length] =
 
  {"imageFile": "/rel_jap/w/skins/common/images/nbsp.jpg",
 
    "speedTip": "festes Leerzeichen (no breaking space)",
 
    "tagOpen": "&nbsp;",
 
    "tagClose": "",
 
    "sampleText": ""};
 
mwCustomEditButtons[mwCustomEditButtons.length] =
 
  {"imageFile": "/rel_jap/w/skins/common/images/no.gif",
 
    "speedTip": "",
 
    "tagOpen": "",
 
    "tagClose": "",
 
    "sampleText": ""};
 
mwCustomEditButtons[mwCustomEditButtons.length] =
 
  {"imageFile": "/rel_jap/w/skins/common/images/ref.jpg",
 
    "speedTip": "Fussnoten",
 
    "tagOpen": "<ref>",
 
    "tagClose": "</ref>",
 
    "sampleText": "Text"};
 
mwCustomEditButtons[mwCustomEditButtons.length] =
 
  {"imageFile": "/rel_jap/w/skins/common/images/cat.jpg",
 
    "speedTip": "Kategorie",
 
    "tagOpen": "[[Kategorie:",
 
    "tagClose": "]]",
 
    "sampleText": " "};
 
mwCustomEditButtons[mwCustomEditButtons.length] =
 
  {"imageFile": "/rel_jap/w/skins/common/images/glo.jpg",
 
    "speedTip": "Glossar",
 
    "tagOpen": "{{glossar:",
 
    "tagClose": "}}",
 
    "sampleText": " "};
 
mwCustomEditButtons[mwCustomEditButtons.length] =
 
  {"imageFile": "/rel_jap/w/skins/common/images/skt.jpg",
 
    "speedTip": "Sanskrit",
 
    "tagOpen": "{{skt:",
 
    "tagClose": "}}",
 
    "sampleText": " "};
 
mwCustomEditButtons[mwCustomEditButtons.length] =
 
  {"imageFile": "/rel_jap/w/skins/common/images/shy.jpg",
 
    "speedTip": "TITEL",
 
    "tagOpen": "{{DISPLAYTITLE:",
 
    "tagClose": "",
 
    "sampleText": "\}\}<!-- \n -->"};
 
 
 
/*********** WIKI GADGETS *****************/
 
function PageHomeArrows()
 
{
 
        //if (!wgNamespaceNumber || wgNamespaceNumber <100) return;
 
        var c = document.getElementById("bodyContent") || document.getElementById("mw_content") || document.getElementById("article");
 
        if (!c) return;
 
        for (var level = 2; level <= 3; ++level) {
 
                var h = c.getElementsByTagName("h" + level);
 
                for (var i = 0; i < h.length; ++i) {
 
                        var mwh = h[i].lastChild; // moveEditsection not run yet
 
                        if (mwh && mwh.className == "mw-headline" && mwh.offsetTop>screen.availHeight) {
 
                                var arrow = document.createElement("a");
 
                                arrow.className = "toparrow noprint";
 
                                arrow.title= "zum Seitenanfang";
 
                                arrow.appendChild(document.createTextNode("top↑"));
 
                                arrow.href = "javascript:window.scrollTo(0,0); void 0;";
 
                                mwh.insertBefore(arrow, mwh.firstChild);
 
                        }
 
                }
 
        }
 
 
}
 
}
addOnloadHook(PageHomeArrows);
+
// Popup öffnen
 
+
function openPopup(e) {
/**********************/
+
e.preventDefault();  
 
+
ppScroll= $(window).scrollTop();
 
+
// back und next verbergen oder zeigen
// Search box for Mediawiki
+
    if (ppLength < 2)
// (c) 2006 [[User:Zocky]], released under GPL
+
    $('.ppGo').hide();  
//<pre><nowiki>
+
    else
 
+
    $('.ppGo').show();
importStylesheetURI('http://en.wikipedia.org/w/index.php?title=User:Zocky/SearchBox.css&action=raw&ctype=text/css');
+
// Index ermitteln
 
+
var i = $('.showPopup .image').index( this );  
var sr$t;
+
// Bild auswählen
var sr$f;
+
selectPopup(i);
var sr$s;
+
// anzeigen
var sr$r;
+
     $('body').addClass('ppOpen');  
var sr$w;
+
    $('#popupDiv').show('fast');
var sr$i;
+
      
var sr$re;
+
     popupInUse = 1;
var sr$mc;
 
 
 
function $e(id) {return document.getElementById(id)}
 
 
 
function srBack()
 
{
 
  if (sr$s.value=='') {sr$t.focus(); return }
 
 
 
  if (sr$re.checked) {
 
    var searchString = sr$s.value;
 
  } else {
 
    searchString=sr$s.value.replace(/([\[\]\{\}\|\.\*\?\(\)\$\^\\])/g,'\\$1');
 
  }
 
 
 
  searchString="("+searchString+")(?![\\s\\S]*"+searchString+")";
 
  if (sr$mc.checked)
 
    var re=new RegExp(searchString);
 
  else
 
     var re=new RegExp(searchString,"i");
 
 
 
  var res = re.exec (sr$t.value.substring(0,sr$t.selectionStart));
 
  if (!res) {
 
    var res = re.exec (sr$t.value)
 
  }
 
 
 
  if (res)
 
  {
 
     sr$t.selectionStart=res.index;
 
     sr$t.selectionEnd=res.index+res[1].length;
 
  }
 
  else sr$t.selectionStart=sr$t.selectionEnd;
 
 
 
  srSync();
 
 
}
 
}
 
+
// Einzelnes Bild auswählen
function srNext()
+
function selectPopup(pp) {  
{
+
    $('.ppSingle').hide();
  if (sr$s.value=='') {sr$t.focus(); return }
+
     $('.ppSingle').eq(pp).show();
 
+
     currentPopup = pp;
  if (sr$re.checked) {
+
}
     var searchString = sr$s.value;
+
// nächstes Popup öffnen
  } else {
+
function nextPopup() {  
    searchString=sr$s.value.replace(/([\[\]\{\}\|\.\*\?\(\)\$\^\\])/g,'\\$1');
+
var i= trimIndex(currentPopup + 1);
  }
+
selectPopup(i);
 
 
  if (sr$mc.checked)
 
    var re=new RegExp(searchString,"g");
 
  else
 
     var re=new RegExp(searchString,"gi");
 
 
 
  re.lastIndex=sr$t.selectionEnd;
 
  var res = re.exec (sr$t.value)
 
  if (!res) {
 
    re.lastIndex=0;
 
    var res = re.exec (sr$t.value)
 
  }
 
 
 
  if (res)
 
  {
 
    sr$t.selectionStart=res.index;
 
    sr$t.selectionEnd=res.index+res[0].length;
 
  }
 
  else sr$t.selectionStart=sr$t.selectionEnd;
 
  srSync();
 
 
}
 
}
 
+
// voriges Popup öffnen
function srReplace()
+
function backPopup() {  
{
+
var i= trimIndex(currentPopup - 1);
 
+
selectPopup(i);
  var sels=sr$t.selectionStart;
 
  var sele=sr$t.selectionEnd;
 
  var selr=sr$t.value.length-sele;
 
 
 
  if (sr$s.value=='' || sels==sele) {sr$t.focus(); return }
 
 
 
  if (sr$re.checked) {
 
    var searchString = sr$s.value;
 
    var replaceString = sr$r.value;
 
 
 
  } else {
 
    searchString=sr$s.value.replace(/([\[\]\{\}\|\.\*\?\(\)\$\^\\])/g,'\\$1');
 
    replaceString=sr$r.value.replace(/([\$\\])/g,'\\$1');
 
  }
 
 
 
  if (sr$mc.checked)
 
    var re=new RegExp(searchString,"g");
 
  else
 
    var re=new RegExp(searchString,"gi");
 
 
 
  re.lastIndex=sels;
 
  var res = re.exec (sr$t.value);
 
  var $$=0;
 
  if (res && res.index==sels && res[0].length==sele-sels)
 
  {
 
    if (sr$re.checked) {
 
      replaceString=replaceString.replace(/\\\\/g,'&backslash;');
 
      var replaceBits=(" "+replaceString).split(/(?=\$\d)/);
 
      replaceString=replaceBits[0].substring(1);
 
      for (var i=1; i<replaceBits.length; i++)
 
      {
 
        $$=replaceBits[i][1]-'0';
 
        if ($$<res.length)
 
          replaceString += res[$$] + replaceBits[i].substring(2)
 
        else
 
          replaceString += replaceBits[i];
 
    }
 
    replaceString=replaceString.replace (/\\n/,"\n").replace (/&backslash;/g,"\\").replace
 
                                        (/&dollar;/g,"\$")
 
 
 
    }
 
    sr$t.value= sr$t.value.substring(0,sels) + replaceString + sr$t.value.substring(sele);
 
  }
 
 
 
  sr$t.selectionStart=sels;
 
  sr$t.selectionEnd=sr$t.value.length-selr;
 
  srSync();
 
 
}
 
}
 +
//Popup schließen
 +
function closePopup() {
 +
    $('body').removeClass('ppOpen');
 +
    $(window).scrollTop(ppScroll);
 +
$('#popupDiv').hide('fast');
 +
    popupInUse=0;
 +
}
 +
// Funktionen auslösen
 +
$(document).on('click', '.showPopup .image', openPopup);
 +
$(document).on('click', '#ppX', closePopup);
 +
$(document).on('click', '.ppBack', backPopup);
 +
$(document).on('click', '.ppNext', nextPopup);
  
 +
$(document).keyup(function(e) { 
 +
if (popupInUse) { 
 +
if ([27,8].includes(e.keyCode))
 +
closePopup();
 +
if ([37,100].includes(e.keyCode))
 +
backPopup();
 +
if ([39,102].includes(e.keyCode))
 +
nextPopup();
 +
}
 +
});
 +
 +
/****************
 +
  Sonstiges
 +
*****************/
 +
//Handler für Klick auf (+) in Karten
  
function srReplaceall()
+
    $('.listPlaces .plusMinus').next().hide();
{
+
    $(document).on('click', '.listPlaces .plusMinus', openOrClosePlaces);
  if (!sr$s.value) {sr$t.focus(); return }
+
    function openOrClosePlaces(e) {
 
+
        e.preventDefault();
  var sels=sr$t.selectionStart;
+
        if ($(this).hasClass("close")) {
  var sele=sr$t.selectionEnd;
+
            $(this).next().hide('slow');
  var selr=sr$t.value.length-sele;
+
        } else {
 
+
            $(this).next().show('slow');
  var reps;
+
        }
 
+
        $(this).toggleClass('close');
  if (sr$re.checked) {
+
    } 
    var searchString = sr$s.value;
+
//Handler für Klick auf (+) Bilder/Kuenstler
    var replaceString = sr$r.value.replace(/\\\\/,'&backslash;').replace(/\\n/,'\n').replace(/&backslash;/,"\\");
+
    var hash = $(location).attr('hash')
  } else {
+
    ,  hashIsArtist = 0;  
    searchString=sr$s.value.replace(/([\[\]\{\}\|\.\*\?\(\)\$\^\\])/g,'\\$1');
+
    $('.plusMinus.artists').each(function() {
    replaceString=sr$r.value.replace(/([\$\\])/g,'\\$1');
+
if ('#'+$(this).attr("id") == hash) {
  }
+
            $(this).addClass('close');  
 
+
    $(this).next().show();
  if (sele>sels)
+
    hashIsArtist = 1;
    reps=sr$t.value.substring(sels,sele);
+
}
  else
+
    });
     reps=sr$t.value;
+
    /*if(!hashIsArtist) {
 +
    $('.plusMinus.artists:nth-child(1)').next().show();
 +
    $('.plusMinus.artists:nth-child(1)').addClass('close');
 +
    }*/
 +
    $(document).on('click', '.plusMinus.artists', openOrCloseArtists);  
 +
    function openOrCloseArtists(e) {
 +
        e.preventDefault();
 +
        if ($(this).hasClass("close")) {
 +
            $(this).next().hide('slow');
 +
        } else {
 +
            $(this).next().show('slow');
 +
        }
 +
        $(this).toggleClass('close');
 +
    } 
 +
    $(document).on('click', '#plusMinusArtists',openOrCloseAllArtists);
 +
    function openOrCloseAllArtists(e) {
 +
        e.preventDefault();
 +
        if ($(this).hasClass("close")) {
 +
            $('.plusMinus.artists').next().hide('slow');
 +
            $('.plusMinus.artists').removeClass('close');
 +
        } else {
 +
            $('.plusMinus.artists').next().show('slow');
 +
            $('.plusMinus.artists').addClass('close');
 +
        }
 +
        $(this).toggleClass('close');
 +
    }
 +
    $(document).on('click', '#plusMinusArtistsOpen',function(e){
 +
        e.preventDefault();
 +
    $('.plusMinus.artists').next().show('slow');
 +
    $('.plusMinus.artists').addClass('close');
 +
    });
 +
    $(document).on('click', '#plusMinusArtistsClose',function(e){
 +
        e.preventDefault();
 +
    $('.plusMinus.artists').next().hide('slow');
 +
    $('.plusMinus.artists').removeClass('close');
 +
    });
 +
     $(document).on('click', '#plusMinusArtistsContainer',function(e){
 +
        e.preventDefault();
 +
    $('#plusMinusArtistsClose, #plusMinusArtistsOpen').toggleClass('displayNone');
 +
    });
 
   
 
   
  if (sr$mc.checked)
+
//Handler für Prüfungsfragen
    var re=new RegExp(searchString,"g");
+
if(mw.config.get('wgPageName')=="Lektoren:Prüfungsfragen") {
   else
+
var questions=$('.q li').clone();
    var re=new RegExp(searchString,"gi");
+
$(document).on('click', '#q_select, #q_select1', function() {
 
+
questions.sort(function(a, b){return 0.5 - Math.random()});
  var replaceCounter=0;
+
if ($(this).next('ol').children('li').length < 3) {
 +
$(this).next('ol').append
 +
($(questions[0]).hide().slideDown('slow'));
 +
questions.splice(0,1); //verhindern, dass Frage noch einmal kommt
 +
}
 +
});
 +
$(document).on('click', '.far', function() {
 +
var myClass= $(this).attr('class');
 +
$(this).closest('li').find('i').removeClass('stay');
 +
$(this).removeClass().addClass(myClass).toggleClass('stay');
 +
}); 
 +
$(document).on('click', '.fa-minus', function() {
 +
$(this).closest('li').toggleClass('strike');
 +
});
 +
$(document).on('click', '.fa-times', function() {
 +
$(this).closest('li').remove();
 +
});
 +
$(document).on('click', '#q_all', function() {
 +
$('.q li').toggle('slow');
 +
});
 +
}
 +
/************************/
 +
// Kopieren aus der Bearbeitungsmaske
 +
$('.copyLink').click(function(e) {
 +
event.preventDefault(e);
 +
var $temp = $("<input>");
 +
$("body").append($temp);
 +
$temp.val($(this).find('a').html()).select();
 +
document.execCommand("copy");
 +
$temp.remove();
 +
  });
 +
$('.copyme').click(copyToClipboard);
 +
   function copyToClipboard(element) {
 +
var $temp = $("<input>");
 +
$("body").append($temp);
 +
$temp.val($(this).html()).select();
 +
document.execCommand("copy");
 +
$temp.remove();
 +
}
  
  var replaceFunc=function(){replaceCounter++;return replaceString};
+
/************************/
 +
//SMW Suchseiten
 +
var user= mw.config.get( 'wgUserGroups' );
 +
for (var i in user)
 +
if (user[i] === 'sysop')
 +
var sysopRights = true; 
 +
$( '.smw-ask-downloadlinks, .smw-tabs label.nav-label' ).hide();
 +
$( '#mw-indicator-mw-helplink' ).click(function(e){  
 +
if(sysopRights) {
 +
event.preventDefault(e);
 +
$('.smw-ask-downloadlinks, .smw-tabs label.nav-label').toggle('slow');  
 +
}
 +
});  
  
  reps=reps.replace(re,replaceFunc);
+
/*********************
 +
PRELOADS
 +
*********************/
  
  if (sele>sels)
+
if ( $( '#wpTextbox1 ').is(' :empty ') ) {
    sr$t.value = sr$t.value.substring(0,sels) + reps + sr$t.value.substring(sele);
+
   else
+
/////////// preload glossar ////////////
    sr$t.value = reps;
+
if ( mw.config.get( 'wgCanonicalNamespace') === 'Glossar' ) {
 
+
$( '#wpTextbox1 ').html(
   sr$t.selectionStart=sels;
+
  "{{glossar " + 
   sr$t.selectionEnd=sele>sels ? sr$t.value.length-selr : sels;
+
  "\n| code = "+ mw.config.get( 'wgTitle' ) +
   window.status = replaceCounter+" ocurrences of " + searchString + " replaced.";
+
  "\n| romaji = " + mw.config.get( 'wgTitle' ) +
   srSync();
+
   "\n| kanji = " +
 +
  "\n| text = " +
 +
  "\n| sprache =  " +
 +
   "\n| link = " +
 +
   "\n| thema= " +
 +
   "\n| map= " +
 +
  "\n| zoom=  " +
 +
  "\n| type=  " +
 +
  "\n| icon=  " +
 +
   "\n}} ");  
 
}
 
}
 
+
/////////// preload sanskrit ////////////
function srToggleCase()
+
if ( mw.config.get( 'wgCanonicalNamespace') === 'Skt'  ) {  
{
+
$( '#wpTextbox1 ').html(
  var sels=sr$t.selectionStart;
+
   "{{Sanskrit" +
   var sele=sr$t.selectionEnd;
+
  "\n| code = "+ mw.config.get( 'wgTitle' ) +
   var selr=sr$t.value.length-sele;
+
   "\n| sprache = skt." +
   var selt=sr$t.value.substring(sels,sele);
+
   "\n| skt_oD = "+ mw.config.get( 'wgTitle' ) +
 
+
  "\n| skt_mD =  " +
   if (sele>sels)
+
   "\n| devanagari = " +
   {
+
   "\n| geschlecht = " +
    if (selt==selt.toUpperCase())
+
  "\n| klasse = term " +
      selt=selt.toLowerCase()
+
  "\n| romaji= " +
    else if (selt==selt.toLowerCase() && sele-sels>1)
+
  "\n| kanji= " +
      selt=selt.substring(0,1).toUpperCase()+selt.substring(1).toLowerCase()
+
  "\n| romaji2= " +
    else
+
  "\n| kanji2= " +
      selt=selt.toUpperCase();
+
  "\n| ue= "+
 
+
  "\n| anm= " +
    sr$t.value = sr$t.value.substring(0,sels) + selt + sr$t.value.substring(sele);
+
  "\n| link= " +
    sr$t.selectionStart=sels;
+
  "\n| thema= " +
    sr$t.selectionEnd=sele>sels ? sr$t.value.length-selr : sels;
+
  "\n| map= " +
   }
+
  "\n| zoom=  " +
  srSync();
+
  "\n| type= " +
 +
  "\n| icon= " +
 +
   "\n}} ");  
 
}
 
}
  
 
+
/////////// preload bild ////////////
function srSync()
+
if ( mw.config.get( 'wgNamespaceNumber') === 6  ) {  
{
+
var d = new Date();
    var i;
+
var datum = d.getFullYear()+"/"+(d.getMonth()+1)+"/"+d.getDate();
    var allLines=0;
+
$( '#wpTextbox1 ').html(
    var lineNo=0;
+
"{{bild " +
    var w=sr$t.cols-5;
+
"\n| titel =  " +
 
+
"\n| detail = 0 " +
    var dummy=sr$t.value.split("\n");
+
"\n| genre =  "+
    for (i=0;i<dummy.length;i++){allLines+=Math.ceil(dummy[i].length/w)}
+
"\n| genre2 = " +
 
+
"\n| material = " +
    var dummy=sr$t.value.substring(0,sr$t.selectionStart).split("\n");
+
"\n| maße =  " +
    for (i=0;i<dummy.length;i++){lineNo+=Math.ceil(dummy[i].length/w)}
+
"\n| artist= " +
 
+
"\n| artist_vor= " +
//    alert (w+" "+lineNo+"/"+allLines);
+
"\n| artist_dates = " +
 
+
"\n| zeitalter = " +
    sr$t.scrollTop=sr$t.scrollHeight*(lineNo-10)/allLines;
+
"\n| periode = " +
    sr$t.focus();
+
"\n| jahr = " +
 +
"\n| serie = " +
 +
"\n| buch = " +
 +
"\n| serie_j = " +
 +
"\n| besitz = " +
 +
"\n| treasure = " +
 +
"\n| q_link = " +
 +
"\n| q_text = " +
 +
"\n| quelle_b = " +
 +
"\n| c = " +
 +
"\n| quelle_d = " + datum +
 +
"\n| collection = " +
 +
"\n| beschreibung= " +
 +
"\n| thema=  " +
 +
"\n| medium= " +
 +
  "\n}} ");  
 
}
 
}
  
 
+
/////////// preload Literatur ////////////
function srInit()
+
if ( mw.config.get( 'wgCanonicalNamespace') === 'Literatur' ) {
{
+
var name = mw.config.get( 'wgTitle').match(/\D+/)
 
+
    , jahr = mw.config.get( 'wgTitle').match(/\d+/);
  if($e('wpTextbox1')) {
+
$( '#wpTextbox1 ').html(  
   
+
"{{Literatur " +
var srBoxCode ='<div id="srForm"><table id="srBox" cellpadding="0" cellspacing="2"><tr>'
+
"\n| code = " + mw.config.get( 'wgTitle' )
          +'<td></td>'
+
"\n| autor1_nat = west  " +
          +'<td valign="middle">'
+
"\n| autor1_fam =" + name +
          +'<input type="checkbox" id="srCase" onclick="sr$t.focus()" tabindex="10"/><small><span style="color:#000000;">match case</span</small>&nbsp;'
+
"\n| autor1_vor = " +
          +'<input type="checkbox" id="srRegexp" onclick="sr$t.focus()" tabindex="11"/><small><span style="color:#000000;">use regexp</span></small>&nbsp;&nbsp;'
+
"\n| autor1_kanji = " +
          +'<a href="javascript:srBack()" onmouseover="sr$t.focus()" title="find previous match [alt-2]" accesskey="2">&lt;</a>&nbsp;'
+
"\n| autor2 = " +
          +'<a href="javascript:srNext()" onmouseover="sr$t.focus()" title="find next match [alt-3]" accesskey="3">find&nbsp;&nbsp;&gt;</a>&emsp;'
+
"\n| autor_zusatz = " +
          +'<a href="javascript:srReplace();srBack()" onmouseover="sr$t.focus()" title="replace and find previous match [alt-4]" accesskey="4">&lt;</a>&nbsp;'
+
"\n| jahr = " + jahr +
          +'<a href="javascript:srReplace()" onmouseover="sr$t.focus()" title="replace this match">replace</a>&nbsp;'
+
"\n| pub_form = Buch  " +
          +'<a href="javascript:srReplace();srNext()" onmouseover="sr$t.focus()" title="replace and find next match [alt-5]" accesskey="5">&gt;</a>&emsp;'
+
"\n| titel1 = " +
          +'<a href="javascript:srReplaceall()" onmouseover="sr$t.focus()" title="replace all matches [alt-7]" accesskey="7">replace&nbsp;all</a>&emsp;'
+
"\n| titel2 = " +
          +'</td>'
+
"\n| titel_kanji = " +
          +'</tr><tr>'
+
"\n| link = " +
          +'<td valign="bottom"><small><span style="color:#000000;">search for:</span></small></td>'
+
"\n| sammelband_hg = " +
          +'<td valign="bottom"><input type="text" id="srSearch" accesskey="F" tabindex="8" onkeypress="event.which == 13 && srNext()"; value=""/></td>'
+
"\n| sammelband_titel = >" +
          +'</tr><tr>'
+
"\n| ort = " +
          +'<td valign="bottom"><small><span style="color:#000000;">replace with:</span></small></td>'
+
"\n| verlag = " +
          +'<td valign="bottom"><input type="text" id="srReplace" accesskey="G" tabindex="9" onkeypress="event.which == 13 && srNext()"; value=""/></td>'
+
"\n| reihe = " +
          +'</tr></table></div>'
+
"\n| auflage = " +
 
+
"\n| zeitschrift = " +
    var ep=$e('searchInput');
+
"\n| seiten = " +
    if (ep) ep.accessKey='none';
+
"\n| bemerkung = " +
 
+
"\n| bemerkung2 = {{{1|}}} " +
    sr$t=document.editform.wpTextbox1;
+
  "\n}} ");  
    sr$w=sr$t.style.width;
 
 
 
    var sr=document.createElement('div');
 
    sr.innerHTML=srBoxCode;
 
 
 
    var im=document.createElement('span');
 
    im.innerHTML='<a id="SearchIcon" href="javascript:srShowHide()"><img style="cursor: pointer;" title="Search/Replace" alt="Search/Replace" src="http://upload.wikimedia.org/wikipedia/en/1/12/Button_find.png" border="0" height="22" width="23"></a><a href="javascript:srToggleCase()"><img style="cursor: pointer;" title="Toggle case" alt="Toggle case" src="http://upload.wikimedia.org/wikipedia/en/1/12/Button_case.png" border="0" height="22" width="23"></a>';
 
 
 
    var ep=$e('toolbar');
 
    if (ep)
 
    {
 
      ep.appendChild(im)
 
    }
 
    else
 
    {
 
      var ep=$e('editform');
 
      ep.parentNode.insertBefore(im,ep);
 
    }  
 
 
 
    sr$i=$e('SearchIcon');
 
    sr$i.accessKey="F";
 
    sr.firstChild.style.display='none';
 
 
 
 
 
    var ep=$e('editform');
 
    ep.parentNode.insertBefore(sr,ep);
 
 
 
    sr$f=$e('srForm');
 
    sr$s=$e('srSearch');
 
    sr$r=$e('srReplace');
 
    sr$re=$e('srRegexp');
 
    sr$mc=$e('srCase');
 
 
 
 
   }
 
   }
}
+
}  
  
function srShowHide()
+
/***********************************
{
+
      Change redirected address line
  if (sr$f.style.display=='none')
+
***********************************/
  {
+
( function ( $, mw ) {
    sr$f.style.display='block';
+
if ( !window.history || !window.history.replaceState ) {
    sr$i.accessKey="none";
+
return;
    sr$t.style.width='auto';
+
}
    sr$s.focus();
+
  }
+
mw.loader.using( 'jquery.mwExtension', function () {
  else
+
var articlePathRE, pathQuery, path;
  {
+
    sr$f.style.display='none';
+
articlePathRE = new RegExp(
    sr$t.style.width=sr$w;
+
'^' +
    sr$i.accessKey="F";
+
$.escapeRE( mw.config.get( 'wgArticlePath' ) ).replace( '\\$1', mw.config.get( 'wgArticlePath' ).indexOf( '?' ) >= -1 ? '([^?]*)' : '([^&]*)' ) +
  }
+
'$'
}
+
);
 +
pathQuery = location.pathname + ( location.search ? '?' + location.search : '' );
 +
// Only execute on paths matching the article path (don't squash query arguments)
 +
if ( articlePathRE.test( pathQuery ) ) {
 +
path = mw.util.wikiGetlink( mw.config.get( 'wgPageName' ) );
 +
path += window.location.hash || '';
 +
window.history.replaceState( {}, document.title, path );
 +
}
 +
} );
  
addOnloadHook(srInit);
+
}( jQuery, mediaWiki ) );
//</nowiki></pre>
 

Aktuelle Version vom 23. August 2024, 15:06 Uhr

// Handler für sticky toc 
if ($('body:not(.ns--1) #toc').length)  { 
	$('#content').prepend('<div id="tocTest" style="height:.25rem; position:absolute;"></div>')
	var testAbstand=  $('#tocTest').height();
	$( "#tocTest" ).remove();
	var toc= $('#toc')
	, scroll_pos_test =  toc.offset().top - testAbstand;
	$(window).on('scroll', function() { 
		if( window.pageYOffset >= scroll_pos_test ) 
			$('#toc').addClass('stickyToc');
		else
			$('#toc').removeClass('stickyToc');
	});
}
// Handler für toparrow 
$(window).on('scroll', function() {
	if(window.pageYOffset < $( window ).height()/2)
		$('#toparrow').hide();
	else
		$('#toparrow').show();
});
// Handler für Glossar
  //toggle Info 
if ($(location).attr('search').length > 0)
  $('#infoText').hide();
else 
  $('#infoText').show();
$('#infoButton').click(function() { 
		$('#infoText').toggle('slow');
});
  //Hide query options
function toggleChecked() {
	var firstChecked= $('#firstChoice input:checked').val().toLowerCase().match(/\w\w\w/); 
	$('[id^="second"]').hide('slow');
	$('#second-'+firstChecked).show('slow');
} 
$.when( $.ready ).then(toggleChecked); 
$('#firstChoice input').on('change', function() {
	toggleChecked(); 
	$('[id^="second"] [type="checkbox"]').prop('checked', false);
	$('.showResults').hide('fast');
}); 

// Handler für search 
if( $('#search-container').length){
	var search2 = $('#searchform').clone().attr('id', 'searchform2');
	$('#search-container').append(search2);
	$('#searchform').hide(); 
}
// Handler für phaidra crawler (hide search) 
if (navigator.userAgent.indexOf("phaidraCrawler") != -1) {
	$('#search-container').hide();
}
// Handler für sticky toc (depreciated)

if ($('#toc').length && $('#wrapToc').length) { 
	var toc= $('#toc')
		, wrap_toc = $('#wrapToc')
		, toc2 = toc.clone()
		, scroll_pos_test =  toc.offset().top + toc.height()
		, ues = [];
	// Clone von toc erzeugen
	$('#wrapToc').append(toc2.addClass('fix_toc').hide());
	//Funktion nach scrollen 
	$(window).on('scroll', function() {
		var y_scroll_pos = window.pageYOffset; 
		if( y_scroll_pos > scroll_pos_test ) { // toc nicht mehr sichtbar
			toc2.width(toc.width());
			wrap_toc.show();
	//	Sichtbaren Bereich in toc markieren
			var new_ues=[];
			$('h2 .mw-headline, h3 .mw-headline').each(function() { 
				if ($(this).offset().top > y_scroll_pos
				&& $(this).offset().top < y_scroll_pos + $(window).height()/2) {
					new_ues.push($.trim($(this).text()));
					ues= new_ues;
					$('#wrapToc .here').removeClass('here');
					$('#wrapToc .toctext').each(function() {
						if (ues.indexOf($.trim($(this).text()))!== -1) {
							$(this).closest('li').addClass('here');
						}
					});
				}
			});
		} else {
			wrap_toc.hide(); 
			$('#wrapToc .here').removeClass('here');
		}
	}); 	
	//toggle Clone
	$('.plusMinusToc').click(function() { 
		toc2.toggle('slow');
		$('.plusMinusToc').toggleClass('close');
	});
	$('#wrapToc h2').click(function() { 
		$(this).closest('#wrapToc').find('.plusMinusToc').trigger('click');
	});
} 
/*************************************
  SITEMAP
**************************************/

//Handler für Klick auf (+) in Sitemap
$(document).on('click', '.sitemap .plusMinus', openOrCloseDetails);
function openOrCloseDetails(e) {
	e.preventDefault();
	if ($(this).hasClass("close")) {
		$(this).closest('div').find('ul').hide('slow');
	} else {
		$(this).closest('div').find('ul').show('slow');
	}
	$(this).toggleClass('close');
}  
$(document).on('click', '#plusMinusAll',openOrCloseAll);
function openOrCloseAll(e) {
	e.preventDefault();
	if ($(this).hasClass("close")) {
		$('.sitemap ul').hide('slow');
		$('.sitemap .plusMinus').removeClass('close');
	} else {
		$('.sitemap ul').show('slow');
		$('.sitemap .plusMinus').addClass('close');
	}
	$(this).toggleClass('close');
} 

//falsche externe links
$('.sitemap a').removeClass('external');

//Sitemap öffnen und schließen
$('#contSitemap').hide();
$(document).on('click', '#sitemapToggle', openOrCloseSitemap);
//von sitemaplink aus öffnen
$(document).on('click', '#sitemaplink', function(e) {
	e.preventDefault();
	$('#sitemapToggle').trigger('click');
	});
function openOrCloseSitemap(e) {
	e.preventDefault();
	var scroll= $('#toggleButton').offset();
	$('#contSitemap').css({
		top: 'calc('+ scroll.top+'px + 3.5rem)'
	});
	if ($(this).hasClass("close")) {
		$('#bgToggle').animate({
			height: "2em",
			opacity: ".2"
			}, function() {
				$('#bgToggle').removeAttr("style");
		});
		$('#contSitemap').slideUp('fast');
		$('#bottom-notice-ns').css({'z-index':'2'});
	} else {
		$('#bgToggle').css({
			backgroundColor: '#ccccc6'
			})
			.animate({
				height: "100%",
				opacity: ".85"
		});
		$('#contSitemap').slideDown('fast');
		$('#bottom-notice-ns').css({'z-index':'4'});
	}
	$(this).toggleClass('close');
}   
var sitemapParent= $('.selflink').closest('[id^=p-]');
if(mw.config.get('wgPageName')!=="Hauptseite")
	$(sitemapParent).find('.plusMinus').trigger('click'); 
	
/********************* 
	GLOSSAR  
*********************/ 

// inline glossar-Info anzeigen und verbergen 
$('.glossar').each(function() {
	var child = $(this).find('.g_box'); 
	$(this).click(function(){ 
		$( child).slideToggle('slow'); 
	});
	$(this).mouseleave(function() { 
		$(child).slideUp('slow'); 
	}); 
}); 
/*************************************
  POPUP
**************************************/
// Popup-globale Variable
var popupInUse = 0
, currentPopup=0
, ppLength = $('.showPopup').length
, ppScroll;

// index-Schleife ermöglichen
function trimIndex(t) {
	var i = t;
	i = (i < ppLength) ? (i < 0) ? ppLength + i : i : ppLength - i;
	return i;
}

//Popup div erstellen
if(ppLength) { 
	$('body').append(
'<div id="popupDiv">'+
'<div id="ppX" title="Popup schließen">⨯</div>'+ 
'</div>'
	);
	$('#popupDiv').hide();
}
//Popup gestalten
if(ppLength) { 
	$('.showPopup').each(function(){
		var ppIndex= $('.showPopup').index(this)
		, iSrc=$(this).find('img').attr('src')
		, ppSrc= iSrc.replace(/\/thumb/, "").replace(/\/\d+px.+/, "") 
		, text= $(this).find('.fulltext').html();		
		 
		$('#popupDiv').append(
'<div class="ppSingle">'+
'<div class="ppGrid">'+
'<span class="ppBack ppGo" title="Voriges Bild anzeigen"></span>'+
'<a class="ppImg" href="'+ppSrc+'"><img id="ppImg'+ppIndex+'" src="'+ppSrc+'" /></a>'+
'<span class="ppNext ppGo"  title="Nächstes Bild anzeigen"></span>'+
'</div>'+ 
'<div class="ppText">'+
'<a class="ppBacklink" title="Bildseite" href="'+ $(this).find('a.image').attr('href') + '">Details</a>'+
'<span class="ppInfo"><small>Abb. '+(ppIndex + 1)+': </small>'+text+'</span>'+
'</div>'+
'</div>'
			);  
	});
}
// Popup öffnen
function openPopup(e) { 
	e.preventDefault(); 
	ppScroll= $(window).scrollTop(); 
	// back und next verbergen oder zeigen 
    if (ppLength < 2)
	    $('.ppGo').hide(); 
    else 
    	$('.ppGo').show();
	// Index ermitteln
	var i = $('.showPopup .image').index( this ); 
	// Bild auswählen
	selectPopup(i);
	// anzeigen
    $('body').addClass('ppOpen'); 
    $('#popupDiv').show('fast'); 
    
    popupInUse = 1;
}
// Einzelnes Bild auswählen
function selectPopup(pp) { 
    $('.ppSingle').hide();
    $('.ppSingle').eq(pp).show();
    currentPopup = pp;
} 
// nächstes Popup öffnen
function nextPopup() { 
	var i= trimIndex(currentPopup + 1);
	selectPopup(i);
}
// voriges Popup öffnen
function backPopup() { 
	var i= trimIndex(currentPopup - 1);
	selectPopup(i);
}
//Popup schließen
function closePopup() { 
    $('body').removeClass('ppOpen'); 
    $(window).scrollTop(ppScroll);
	$('#popupDiv').hide('fast'); 
    popupInUse=0;
} 
// Funktionen auslösen
$(document).on('click', '.showPopup .image', openPopup);
$(document).on('click', '#ppX', closePopup);
$(document).on('click', '.ppBack', backPopup);
$(document).on('click', '.ppNext', nextPopup); 

$(document).keyup(function(e) {  
	if (popupInUse) {  
		if ([27,8].includes(e.keyCode)) 
			closePopup(); 
		if ([37,100].includes(e.keyCode)) 
			backPopup(); 
		if ([39,102].includes(e.keyCode)) 
			nextPopup(); 
	}
});
 
/****************
  Sonstiges
*****************/
 //Handler für Klick auf (+) in Karten

    $('.listPlaces .plusMinus').next().hide(); 
    $(document).on('click', '.listPlaces .plusMinus', openOrClosePlaces); 
    function openOrClosePlaces(e) {
        e.preventDefault();
        if ($(this).hasClass("close")) {
            $(this).next().hide('slow');
        } else {
            $(this).next().show('slow');
        }
        $(this).toggleClass('close');
    }  
 //Handler für Klick auf (+) Bilder/Kuenstler 
    var hash = $(location).attr('hash')
    ,   hashIsArtist = 0; 
    $('.plusMinus.artists').each(function() { 
		if ('#'+$(this).attr("id") == hash) {
            $(this).addClass('close'); 
    		$(this).next().show(); 
    		hashIsArtist = 1;
		}
    });
    /*if(!hashIsArtist) {
    	$('.plusMinus.artists:nth-child(1)').next().show(); 
    	$('.plusMinus.artists:nth-child(1)').addClass('close');
    }*/
    $(document).on('click', '.plusMinus.artists', openOrCloseArtists); 
    function openOrCloseArtists(e) {
        e.preventDefault();
        if ($(this).hasClass("close")) {
            $(this).next().hide('slow');
        } else {
            $(this).next().show('slow');
        }
        $(this).toggleClass('close');
    }  
    $(document).on('click', '#plusMinusArtists',openOrCloseAllArtists);
    function openOrCloseAllArtists(e) {
        e.preventDefault();
        if ($(this).hasClass("close")) {
            $('.plusMinus.artists').next().hide('slow');
            $('.plusMinus.artists').removeClass('close');
        } else {
            $('.plusMinus.artists').next().show('slow');
            $('.plusMinus.artists').addClass('close');
        }
        $(this).toggleClass('close');
    } 
    $(document).on('click', '#plusMinusArtistsOpen',function(e){
        e.preventDefault();
    	$('.plusMinus.artists').next().show('slow'); 
    	$('.plusMinus.artists').addClass('close');
    });
    $(document).on('click', '#plusMinusArtistsClose',function(e){
        e.preventDefault();
    	$('.plusMinus.artists').next().hide('slow'); 
    	$('.plusMinus.artists').removeClass('close');
    });
    $(document).on('click', '#plusMinusArtistsContainer',function(e){
        e.preventDefault();
    	$('#plusMinusArtistsClose, #plusMinusArtistsOpen').toggleClass('displayNone');
    });
 
 //Handler für Prüfungsfragen
 if(mw.config.get('wgPageName')=="Lektoren:Prüfungsfragen") {
	var questions=$('.q li').clone();
	$(document).on('click', '#q_select, #q_select1', function() {
		questions.sort(function(a, b){return 0.5 - Math.random()});
		if ($(this).next('ol').children('li').length < 3) {
			$(this).next('ol').append
			($(questions[0]).hide().slideDown('slow')); 
			questions.splice(0,1); //verhindern, dass Frage noch einmal kommt
		}
	}); 
	$(document).on('click', '.far', function() {
		var myClass= $(this).attr('class');
		$(this).closest('li').find('i').removeClass('stay');
		$(this).removeClass().addClass(myClass).toggleClass('stay');	
	});   
	$(document).on('click', '.fa-minus', function() {
		$(this).closest('li').toggleClass('strike');
	}); 
	$(document).on('click', '.fa-times', function() {
		$(this).closest('li').remove();
	}); 
	$(document).on('click', '#q_all', function() {
		$('.q li').toggle('slow');
	}); 
 }
/************************/
// Kopieren aus der Bearbeitungsmaske
$('.copyLink').click(function(e) {
 	event.preventDefault(e);
 var $temp = $("<input>");
 $("body").append($temp);
 $temp.val($(this).find('a').html()).select();
 document.execCommand("copy");
 $temp.remove();
   });
 $('.copyme').click(copyToClipboard);
  function copyToClipboard(element) {
 var $temp = $("<input>");
 $("body").append($temp);
 $temp.val($(this).html()).select();
 document.execCommand("copy");
 $temp.remove();
} 

/************************/
//SMW Suchseiten
var user= mw.config.get( 'wgUserGroups' );
for (var i in user)
	if (user[i] === 'sysop')
		var sysopRights = true;  
 $( '.smw-ask-downloadlinks, .smw-tabs label.nav-label' ).hide();
 $( '#mw-indicator-mw-helplink' ).click(function(e){ 
 	if(sysopRights) {
 	event.preventDefault(e);
 	$('.smw-ask-downloadlinks, .smw-tabs label.nav-label').toggle('slow'); 
 	}
 }); 

/********************* 
	PRELOADS 
*********************/ 

if ( $( '#wpTextbox1 ').is(' :empty ') ) { 
	
/////////// preload glossar ////////////
if ( mw.config.get( 'wgCanonicalNamespace') === 'Glossar' ) { 
$( '#wpTextbox1 ').html(
  "{{glossar " +  
  "\n| code = "+ mw.config.get( 'wgTitle' ) +  
  "\n| romaji = " + mw.config.get( 'wgTitle' ) +
  "\n| kanji = " +
  "\n| text = " +
  "\n| sprache =  " +
  "\n| link =  " +
  "\n| thema= " + 
  "\n| map= " +
  "\n| zoom=  " +
  "\n| type=   " +
  "\n| icon=  " + 
  "\n}} "); 
}
/////////// preload sanskrit ////////////
if ( mw.config.get( 'wgCanonicalNamespace') === 'Skt'  ) { 
$( '#wpTextbox1 ').html( 
  "{{Sanskrit" + 
  "\n| code = "+ mw.config.get( 'wgTitle' ) + 
  "\n| sprache = skt." +
  "\n| skt_oD =  "+ mw.config.get( 'wgTitle' ) + 
  "\n| skt_mD =  " +
  "\n| devanagari = " +
  "\n| geschlecht = " +
  "\n| klasse = term " +
  "\n| romaji= " +
  "\n| kanji= " +
  "\n| romaji2= " +
  "\n| kanji2= " +
  "\n| ue=  "+
  "\n| anm= " +
  "\n| link= " +
  "\n| thema= " +
  "\n| map= " +
  "\n| zoom=  " +
  "\n| type=  " +
  "\n| icon=  " +
  "\n}} "); 
}

/////////// preload bild ////////////
if ( mw.config.get( 'wgNamespaceNumber') === 6   ) { 
var d = new Date();
var datum = d.getFullYear()+"/"+(d.getMonth()+1)+"/"+d.getDate();
$( '#wpTextbox1 ').html(
 "{{bild " +
 "\n| titel =  " +
 "\n| detail = 0 " +
 "\n| genre =  "+
 "\n| genre2 =  " +
 "\n| material = " +
 "\n| maße =  " +
 "\n| artist= " +
 "\n| artist_vor= " +
 "\n| artist_dates = " +
 "\n| zeitalter = " +
 "\n| periode = " +
 "\n| jahr = " +
 "\n| serie = " +
 "\n| buch = " +
 "\n| serie_j = " +
 "\n| besitz = " +
 "\n| treasure = " +
 "\n| q_link = " +
 "\n| q_text = " +
 "\n| quelle_b = " +
 "\n| c = " +
 "\n| quelle_d = " + datum +
 "\n| collection = " +
 "\n| beschreibung= " +
 "\n| thema=  " +
 "\n| medium=  " + 
  "\n}} "); 
}

/////////// preload Literatur ////////////
if ( mw.config.get( 'wgCanonicalNamespace') === 'Literatur'  ) { 
	var name = mw.config.get( 'wgTitle').match(/\D+/)
    , jahr = mw.config.get( 'wgTitle').match(/\d+/);
$( '#wpTextbox1 ').html( 
 "{{Literatur " +
 "\n| code = " + mw.config.get( 'wgTitle' ) +  
 "\n| autor1_nat = west  " +
 "\n| autor1_fam =" + name +
 "\n| autor1_vor =  " +
 "\n| autor1_kanji = " +
 "\n| autor2 =  " +
 "\n| autor_zusatz =  " +
 "\n| jahr = " + jahr +
 "\n| pub_form = Buch  " +
 "\n| titel1 =  " +
 "\n| titel2 =  " +
 "\n| titel_kanji = " +
 "\n| link =  " +
 "\n| sammelband_hg = " +
 "\n| sammelband_titel =  >" +
 "\n| ort = " +
 "\n| verlag =  " +
 "\n| reihe =  " +
 "\n| auflage = " +
 "\n| zeitschrift =  " +
 "\n| seiten =  " +
 "\n| bemerkung = " +
 "\n| bemerkung2 = {{{1|}}} " +
  "\n}} "); 
  }
} 

/***********************************
       Change redirected address line 
***********************************/
( function ( $, mw ) {
	if ( !window.history || !window.history.replaceState ) {
		return;
	}
 
	mw.loader.using( 'jquery.mwExtension', function () {
		var articlePathRE, pathQuery, path;
 
		articlePathRE = new RegExp(
			'^' +
			$.escapeRE( mw.config.get( 'wgArticlePath' ) ).replace( '\\$1', mw.config.get( 'wgArticlePath' ).indexOf( '?' ) >= -1 ? '([^?]*)' : '([^&]*)' ) +
			'$'
		);
		pathQuery = location.pathname + ( location.search ? '?' + location.search : '' );
		// Only execute on paths matching the article path (don't squash query arguments)
		if ( articlePathRE.test( pathQuery ) ) {
			path = mw.util.wikiGetlink( mw.config.get( 'wgPageName' ) );
			path += window.location.hash || '';
			window.history.replaceState( {}, document.title, path );
		}
	} );

}( jQuery, mediaWiki ) );