MediaWiki:Common.js: Unterschied zwischen den Versionen

Zur Navigation springen Zur Suche springen
 
(633 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
var user= mw.config.get( 'wgUserGroups' );
+
// Handler für sticky toc
for (var i in user)
+
if ($('body:not(.ns--1) #toc').length)  {
if (user[i] === 'sysop')
+
$('#content').prepend('<div id="tocTest" style="height:.25rem; position:absolute;"></div>')
  var sysopRights = true;  
+
var testAbstand=  $('#tocTest').height();
 
+
$( "#tocTest" ).remove();
/*****************
+
var toc= $('#toc')
    Toc Verweise
+
, 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 a[href="#Verweise"]' )) {  
+
if ($('#toc').length && $('#wrapToc').length) {  
  $( '#toc a[href="#Verweise"]+ ul' ).hide();
+
var toc= $('#toc')
  $( '#toc ' ).hover( function() {
+
, wrap_toc = $('#wrapToc')
    $( this ).find( 'a[href="#Verweise"]+ ul').stop().toggle('slow');  
+
, 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');
 +
});
 
}  
 
}  
  //  $('.toparrow').addClass('visible');
+
/*************************************
    
+
   SITEMAP
window.onscroll = scrollFunction;
+
**************************************/
  
function scrollFunction() {
+
//Handler für Klick auf (+) in Sitemap
console.log('OK');
+
$(document).on('click', '.sitemap .plusMinus', openOrCloseDetails);
  if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
+
function openOrCloseDetails(e) {
    document.getElementByClassName("toparrow")[0].style.display = "block";
+
e.preventDefault();
  } else {
+
if ($(this).hasClass("close")) {
  document.getElementByClassName("toparrow")[0].style.display = "none";
+
$(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);
 +
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')!=="Religion-in-Japan")
 +
$(sitemapParent).find('.plusMinus').trigger('click');
 +
 
/*********************  
 
/*********************  
GLOSSAR  
+
GLOSSAR
 
*********************/  
 
*********************/  
  
// s.a. vorlage:glossar
+
// inline glossar-Info anzeigen und verbergen
$('.glossar').each(function(){
+
$('.glossar').each(function() {
  var child = $(this).find('.g_box')
+
var child = $(this).find('.g_box');
    , parent = $(this).closest('p, li') ;  
+
$(this).click(function(){
  $( parent).css("position", "relative");  
+
$( 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();
 +
}
 +
});
 
   
 
   
   var diff = ($(this).width() - $(child).width()) / 2
+
/****************
     , left = $(this).position().left + diff
+
   Sonstiges
     , right = $(parent).width() - ($(this).position().left + $(child).width() + 14);
+
*****************/
 +
//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');
 +
    });
 
   
 
   
  if ( left < -10) {
+
//Handler für Prüfungsfragen
    $( child).css("left", diff - left -10 + 'px');
+
if(mw.config.get('wgPageName')=="Lektoren:Prüfungsfragen") {
  }
+
var questions=$('.q li').clone();
    if (right < 0 ) {  
+
$(document).on('click', '#q_select, #q_select1', function() {
    $( child).css("left", right + 'px');
+
questions.sort(function(a, b){return 0.5 - Math.random()});
  }
+
if ($(this).next('ol').children('li').length < 3) {
+
$(this).next('ol').append
  $( this ).click(function(){ $( child).slideToggle('slow'); });
+
($(questions[0]).hide().slideDown('slow'));
  $( this ).mouseleave(function(){ $(child).slideUp('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 ////////////
 
/////////// preload glossar ////////////
 
+
if ( mw.config.get( 'wgCanonicalNamespace') === 'Glossar' ) {  
if ( mw.config.get( 'wgCanonicalNamespace') === 'Glossar'  
 
  &&  $( '#wpTextbox1 ').is(' :empty ')
 
  ) {  
 
 
$( '#wpTextbox1 ').html(
 
$( '#wpTextbox1 ').html(
   "{{glossar " +  
+
   "{{glossar " +
  "\n| stichwort = {{{1|}}} " +
+
   "\n| code = "+ mw.config.get( 'wgTitle' ) +
   "\n| code = "+ mw.config.get( 'wgTitle' ) + " <!-- für Sonderfälle --> " +
 
 
   "\n| romaji = " + mw.config.get( 'wgTitle' ) +
 
   "\n| romaji = " + mw.config.get( 'wgTitle' ) +
   "\n| kanji = " +
+
   "\n| kanji = " +
 
   "\n| text = " +
 
   "\n| text = " +
   "\n| sprache = <!-- chin. kor. west.--> " +
+
   "\n| sprache = " +
   "\n| link = <!-- wichtigste Seite --> " +
+
   "\n| link = " +
   "\n| tags = <!-- Bauwerk, Bild, Fabelwesen, Geschichte, Gottheit, Kalender,  " +
+
   "\n| thema= " +  
  "\n            Konzept, Objekt, Ort, Person, Praxis, Schule, Text, Tier --> " +
+
   "\n| map= " +
   "\n| map= <!-- such-stichwort für google maps --> " +
+
   "\n| zoom= " +
   "\n| zoom= <!-- 5–19, 9 = standard --> " +
+
   "\n| type=   " +
   "\n| type= <!-- satellite (maps) --> " +
+
   "\n| icon= " +  
   "\n| icon= <!-- Schrein oder Tempel --> " +  
 
 
   "\n}} ");  
 
   "\n}} ");  
 
}
 
}
 
/////////// preload sanskrit ////////////
 
/////////// preload sanskrit ////////////
 
+
if ( mw.config.get( 'wgCanonicalNamespace') === 'Skt'  ) {  
if ( mw.config.get( 'wgCanonicalNamespace') === 'Skt'  
 
  && $( '#wpTextbox1 ').is(' :empty ')
 
  ) {  
 
 
$( '#wpTextbox1 ').html(  
 
$( '#wpTextbox1 ').html(  
   "{{Sanskrit" +
+
   "{{Sanskrit" +  
  "\n| stichwort = {{{1|}}} " +
+
   "\n| code = "+ mw.config.get( 'wgTitle' ) +  
   "\n| code = "+ mw.config.get( 'wgTitle' ) + " <!-- für Sonderfälle --> " +
 
 
   "\n| sprache = skt." +
 
   "\n| sprache = skt." +
   "\n| skt_oD =  "+ mw.config.get( 'wgTitle' ) + " <!--ohne Diakritika--> " +
+
   "\n| skt_oD =  "+ mw.config.get( 'wgTitle' ) +  
   "\n| skt_mD =   <!--mit Diakritika--> " +
+
   "\n| skt_mD = " +
 
   "\n| devanagari = " +
 
   "\n| devanagari = " +
   "\n| geschlecht =   <!-- m, f, n --> " +
+
   "\n| geschlecht = " +
   "\n| klasse = term   <!-- term, name, text--> " +
+
   "\n| klasse = term " +
   "\n| romaji=   <!-- jap. Äquivalent in Romaji --> " +
+
   "\n| romaji= " +
   "\n| kanji=   <!-- jap. Äquivalent in Kanji --> " +
+
   "\n| kanji= " +
   "\n| romaji2=   <!-- alternativer jap. Bff. in Romaji --> " +
+
   "\n| romaji2= " +
   "\n| kanji2=   <!--  alternativer jap. Bff. in Kanji --> " +
+
   "\n| kanji2= " +
   "\n| ue=   <!-- wtl. dt. Übersetzung --> " +
+
   "\n| ue= "+
   "\n| anm=   <!-- sonstige Bemerkungen --> " +
+
   "\n| anm= " +
   "\n| link=   <!-- Seitentitel ohne [[ ]] --> " +
+
   "\n| link= " +
   "\n| tags = <!--  Bauwerk, Bild, Fabelwesen, Geschichte, Gottheit, Kalender,  " +
+
   "\n| thema= " +
  "\n|          Konzept, Objekt, Ort, Person, Praxis, Schule, Text, Tier --> " +
+
   "\n| map= " +
   "\n| map= <!-- such-stichwort für google maps --> " +
+
   "\n| zoom= " +
   "\n| zoom= <!-- 5–19, 6 = standard --> " +
+
   "\n| type= " +
   "\n| type= <!-- satellite, terrain --> " +
+
   "\n| icon= " +
   "\n| icon= <!-- Schrein oder Tempel --> " +
 
 
   "\n}} ");  
 
   "\n}} ");  
 
}
 
}
  
 
/////////// preload bild ////////////
 
/////////// preload bild ////////////
+
if ( mw.config.get( 'wgNamespaceNumber') === 6   ) {  
if ( mw.config.get( 'wgNamespaceNumber') === 6  
 
  &&  $( '#wpTextbox1 ').is(' :empty ')
 
  ) {  
 
 
var d = new Date();
 
var d = new Date();
 
var datum = d.getFullYear()+"/"+(d.getMonth()+1)+"/"+d.getDate();
 
var datum = d.getFullYear()+"/"+(d.getMonth()+1)+"/"+d.getDate();
Zeile 118: Zeile 466:
 
  "{{bild " +
 
  "{{bild " +
 
  "\n| titel =  " +
 
  "\n| titel =  " +
  "\n| detail = 0<!-- 0 oder 1 (= „Detail“) -->" +
+
  "\n| detail = 0 " +
  "\n| form= <!-- Foto, Malerei, Holzschnitt, Druck, Skulptur, sw, hand, drauf --> " +
+
  "\n| genre =  "+
  "\n| inhalt= <!-- Architektur, Gottheit, Fabelwesen, Natur, Objekt, Person, Portrait, Ritus, Tier --> " +
+
  "\n| genre2 =  " +
"\n| genre = <!--Schreinhalle Tempelhalle Farbholzschnitt Hängerollbild Querbildrolle Statue Relief Photographie Zeremonie ...-->" +
+
  "\n| material = " +
  "\n| genre2 = <!-- torii, ema, matsuri, nyorai, bosatsu, daibutsu, myōō, tenbu, niō, kami, shinzō, fukujin, rakan, mandara ... --> " +
+
  "\n| maße =  " +
  "\n| material = <!-- Seide, Farbe, Tusche, Holz, Metall, Papier, Bronze, bemalt  ...-->" +
 
  "\n| maße =  <!-- 25,5 x 19,1 cm ... Höhe: 30,2 cm -->" +
 
 
  "\n| artist= " +
 
  "\n| artist= " +
  "\n| artist_vor= <!-- westl. Vornamen -->" +
+
  "\n| artist_vor= " +
 
  "\n| artist_dates = " +
 
  "\n| artist_dates = " +
  "\n| zeitalter = <!-- 1= Altertum und Mittelalter 2= Neuzeit (Edo-Zeit) 3= Moderne -->" +
+
  "\n| zeitalter = " +
  "\n| periode = <!--Heian-Zeit  Kamakura-Zeit Edo-Zeit ... oder China,  Indien, Tibet ...-->" +
+
  "\n| periode = " +
  "\n| jahr = <!--1432  15. Jh.  ...-->" +
+
  "\n| jahr = " +
  "\n| serie = <!--''japanisch'' (Ü)-->" +
+
  "\n| serie = " +
  "\n| buch = <!--''japanisch'' (Ü)-->" +
+
  "\n| buch = " +
  "\n| serie_j = <!--1831–32-->" +
+
  "\n| serie_j = " +
  "\n| besitz = <!--im Besitz des ...-->" +
+
  "\n| besitz = " +
  "\n| treasure = 0 <!-- 0 oder 1 (= „Nationalschatz“)  -->" +
+
  "\n| treasure = " +
  "\n| q_link = <!-- http://... (Bildquelle) -->" +
+
  "\n| q_link = " +
  "\n| q_text = <!-- Linktext (Name der Quelle) -->" +
+
  "\n| q_text = " +
  "\n| quelle_b = <!-- Zusatztext zur Quelle -->" +
+
  "\n| quelle_b = " +
  "\n| c = © <!-- © oder 0 (wenn Copyright unklar) -->" +
+
  "\n| c = " +
  "\n| quelle_d = <!-- abgerufen  -->" + datum +
+
  "\n| quelle_d = " + datum +
 
  "\n| collection = " +
 
  "\n| collection = " +
  "\n| beschreibung= <!--Beschreibung-->\n" +
+
  "\n| beschreibung= " +
 +
"\n| thema=  " +
 +
"\n| medium=  " +  
 
   "\n}} ");  
 
   "\n}} ");  
 
}
 
}
  
 
+
/////////// preload Literatur ////////////
if ( mw.config.get( 'wgCanonicalNamespace') === 'Literatur'  
+
if ( mw.config.get( 'wgCanonicalNamespace') === 'Literatur' ) {
  &&  $( '#wpTextbox1 ').is(' :empty ')
+
var name = mw.config.get( 'wgTitle').match(/\D+/)
  ) {
+
    , jahr = mw.config.get( 'wgTitle').match(/\d+/);
 
$( '#wpTextbox1 ').html(  
 
$( '#wpTextbox1 ').html(  
 
  "{{Literatur " +
 
  "{{Literatur " +
  "\n| code = " + wgTitle + " <!-- ggf. ändern! -->" +
+
  "\n| code = " + mw.config.get( 'wgTitle' ) +
  "\n| autor1_nat = west <!-- oder: asien --> " +
+
  "\n| autor1_nat = west " +
  "\n| autor1_fam = <!-- Familienname -->" +
+
  "\n| autor1_fam =" + name +
  "\n| autor1_vor = <!-- Vorname --> " +
+
  "\n| autor1_vor = " +
  "\n| autor2 = <!-- weitere/r Autor/en, vollständige Namen -->" +
+
"\n| autor1_kanji = " +
  "\n| autor_zusatz = <!-- Hg Ü (kein Punkt) -->" +
+
  "\n| autor2 = " +
  "\n| jahr = <!--erscheinungsjahr -->" +
+
  "\n| autor_zusatz = " +
  "\n| pub_form = Buch <!-- oder Zeitschrift oder Sammelband -->" +
+
  "\n| jahr = " + jahr +
  "\n| titel1 = <!--Haupttitel -->" +
+
  "\n| pub_form = Buch " +
  "\n| titel2 = <!--Untertitel -->" +
+
  "\n| titel1 = " +
  "\n| link = <!--Link zur online-Version -->" +
+
  "\n| titel2 = " +
  "\n| sammelband_hg = <!-- bei Sammlband: Herausgeber -->" +
+
"\n| titel_kanji = " +
  "\n| sammelband_titel = <!-- bei Sammlband: Titel des Bandes-->" +
+
  "\n| link = " +
  "\n| ort =   " +
+
  "\n| sammelband_hg = " +
 +
  "\n| sammelband_titel = >" +
 +
  "\n| ort = " +
 
  "\n| verlag =  " +
 
  "\n| verlag =  " +
  "\n| reihe = <!-- Namen der Publikationsreihe, inkl. Bandnr. -->" +
+
  "\n| reihe = " +
 
  "\n| auflage = " +
 
  "\n| auflage = " +
  "\n| zeitschrift =  <!-- bei Zeitschrift: Titel und Nummer -->" +
+
  "\n| zeitschrift =  " +
  "\n| seiten =  <!-- bei Artikeln, z.B.: 22–44 -->" +
+
  "\n| seiten =  " +
  "\n| bemerkung = <!-- z.B.: Erste Auflage 1897 -->" +
+
  "\n| bemerkung = " +
 
  "\n| bemerkung2 = {{{1|}}} " +
 
  "\n| bemerkung2 = {{{1|}}} " +
 
   "\n}} ");  
 
   "\n}} ");  
}
+
   }
 
 
/***********************************
 
  NAVIGATION
 
************************************/
 
 
 
var nav = $( "#nv" );
 
var cont= $( "#content" );
 
var search= $("<div id='search2'></div>").append($('#searchform'));
 
var fixOK = 1;
 
$('#chapters').append($(search));
 
 
/***********************************
 
    Anpassen an Browserfenster, u.a.
 
************************************/
 
 
var toggleNav =  $( "<div id='tS' title='Navigation vergößern' class='fas fa-bars'></div>" )
 
   .click( function() {  $( nav ).toggleClass( 'nv_large' );  });
 
$( nav ).append(toggleNav );
 
 
/*        Handys und kleine Bildschirme        */
 
 
function sizeX() {
 
 
var wiW = window.innerWidth ||  document.documentElement.offsetWidth || 0;
 
var wiH = window.innerHeight ||  document.documentElement.offsetHeight || 0;
 
 
$( nav ).removeClass( 'nv_large' );
 
 
if (wiW < wiH*0.7 || wiW < 940) {
 
fixOK = 0;  // fixed ausschalten
 
$ (cont).addClass( 'mobileeee' );
 
$ (nav).removeClass( 'fixed' );
 
}
 
else  {
 
fixOK = 1;  // fixed einschalten
 
$ (cont).removeClass( 'mobileeee' );
 
}
 
 
}  
 
}  
 
function sizeY() {
 
//Maße und Elemente 
 
  var body_height = document.getElementById("footer").offsetTop + 70
 
    , screen_height = window.innerHeight ||
 
      document.documentElement.offsetHeight
 
    , diff = screen_height - body_height
 
  // Höhe anpassen
 
    , spacer =  document.getElementById("catlinks")?
 
      document.getElementById("catlinks").parentNode.insertBefore(document.createElement("DIV"), document.getElementById("catlinks")) :
 
      document.getElementById("bodyContent").appendChild( document.createElement("DIV") );
 
 
 
  spacer.style.paddingTop = diff > 0 ? diff +"px" : 0;
 
}
 
 
sizeX();
 
sizeY();
 
window.onresize = function() { sizeX(); };
 
// window.onresize = function() { sizeY(); };
 
 
/*****************
 
        Navigation
 
*****************/
 
 
var nav2 = document.getElementById('nv');
 
 
function findPos(b) {  //Position von b ( = nav2) ermitteln
 
  var a = 0;
 
  if(b && b.offsetParent)
 
    for(a = b.offsetTop;b = b.offsetParent;)
 
      a += b.offsetTop;
 
  return[a];
 
}
 
var nvY = findPos(nav2);
 
 
function fixNv() {
 
 
if (!fixOK) return; 
 
    //Scrollposition ermitteln
 
  var scrY = document.documentElement.scrollTop || // Explorer 6 Strict
 
document.body.scrollTop || //all other Explorers
 
self.pageYOffset ||
 
0;
 
  if(self.pageYOffset)
 
    scrY = self.pageYOffset;
 
  else if(document.documentElement && document.documentElement.scrollTop)
 
    scrY = document.documentElement.scrollTop;
 
  else if(document.body)
 
    scrY = document.body.scrollTop;
 
  if(fixOK && typeof document.body.style.maxHeight !== "undefined" && nav2!=='') // nur neuere Browser
 
    nav2.className =  scrY > nvY - 30 ? "fixed" : "";
 
  else nav2.className = "";
 
}
 
  //Menü stabilisieren
 
var toggleFix = $("<div title = 'Menü oben stabilisieren' id = 'tF' class='fa fa-arrow-up'></div>").click( function() { menuTop(); } );
 
$( "#chapters" ).append( toggleFix ); 
 
 
function menuTop() {
 
  fixOK = 0;
 
$( nav).removeClass( 'fixed' );
 
}
 
function styleNv() {
 
  $(' #chapters .selflink').parents('li').addClass( 'self_parent' ); 
 
}
 
styleNv();
 
 
window.onscroll = fixNv;
 
 
//Navigation Hover
 
 
$('#chapters div[id]').on("touchstart", function (e) {
 
'use strict'; //satisfy code inspectors
 
var link = $(this); //preselect the link
 
if (link.hasClass('hover')) {
 
  return true;
 
}
 
else {
 
  $('#chapters div[id]').removeClass('hover');
 
  link.addClass('hover');
 
  return false; //extra, and to make sure the function has consistent return points
 
}
 
});
 
  
 
/***********************************
 
/***********************************
Zeile 322: Zeile 553:
  
 
}( jQuery, mediaWiki ) );
 
}( jQuery, mediaWiki ) );
 
 
/*****************
 
        Zitieren
 
*****************/
 
$('#z_hide').hide();
 
$(document).on('click', '#zitieren', function() {
 
  $(this).toggleClass('zShow');
 
  $('#z_hide').slideToggle('slow');
 
});
 
$(document).on('click', '#z_X, a[href*="#zitieren"]', function() {
 
    $('#zitieren').trigger('click');
 
});
 
 
 
/*****************
 
    Reference Tooltips
 
*****************/
 
// See [[mw:Reference Tooltips]]; Anmerkungen mit Hover sichtbar machen
 
 
window.pg || $(document).ready( function($) {
 
 
    // Make sure we are in article, project, or help namespace
 
    if ( mw.config.get ( 'wgCanonicalNamespace' ) === ''
 
      || mw.config.get ( 'wgCanonicalNamespace' ) === 'Project'
 
      || mw.config.get ( 'wgCanonicalNamespace' ) === 'Help' 
 
      ) {
 
        function toggleRT(o){
 
            mw.loader.using("jquery.cookie",function(){
 
                    $.cookie("RTsettings",o+"|"+ settings[1] + "|" + settings[2], {path:"/",expires:90});
 
                    location.reload();
 
            })
 
        }
 
        var settings = document.cookie.split("RTsettings=")[1];
 
        settings = settings ? settings.split(";")[0].split("%7C") : [1, 200, +("ontouchstart" in document.documentElement)];
 
        if( settings[0] == 0 ) {
 
            var footer = $("#footer-places, #f-list");
 
            if( footer.length === 0 ) {
 
                    footer = $("#footer li").parent();
 
            }
 
            footer.append($("<li>").append($("<a>").text("Enable Reference Tooltips").attr("href","javascript:(function(){})()").click(function(){toggleRT(1)})));
 
            return;
 
        }
 
        var isTouchscreen = +settings[2],
 
            timerLength = isTouchscreen ? 0 : +settings[1],
 
            settingsMenu;
 
        $(".reference").each( function() {
 
            var tooltipNode, hideTimer, showTimer, checkFlip = false;
 
            function findRef( h ){
 
                    h = h.firstChild.getAttribute("href"); h = h && h.split("#"); h = h && h[1];
 
                    h = h && document.getElementById( h );
 
                    h = h && h.nodeName == "LI" && h;
 
                    return h;
 
            }
 
            function hide( refLink ){
 
                    if( tooltipNode && tooltipNode.parentNode == document.body ) {
 
                            hideTimer = setTimeout( function() {
 
                                    $(tooltipNode).animate({opacity: 0}, 100, function(){ document.body.removeChild( tooltipNode ) })
 
                            }, isTouchscreen ? 16 : 100)
 
                    } else {
 
                            var h = findRef( refLink );
 
                            h && (h.style.border = "");
 
                    }
 
            }
 
            function show(){
 
                    if( !tooltipNode.parentNode || tooltipNode.parentNode.nodeType === 11 ){
 
                            document.body.appendChild( tooltipNode );
 
                            checkFlip = true;
 
                    }
 
                    $(tooltipNode).stop().animate({opacity: 1}, 100)
 
                    clearTimeout( hideTimer );
 
            }
 
            function openSettingsMenu(){
 
                    if( settingsMenu ) {
 
                            settingsMenu.dialog( "open" );
 
                    } else {
 
                            settingsMenu = $("<form>").append(
 
                                    $("<button>").css("width","100%").text("Disable Reference Tooltips").button().click(function(){toggleRT(0)}),
 
                                    $("<br>"),
 
                                    $("<small>").text("Once disabled, Reference Tooltips can be re-enabled using a link in the footer of the page."),
 
                                    $("<hr>"),
 
                                    $("<label>").text("Delay before the tooltip appears (in milliseconds): ").append($("<input>").attr({"type":"number","value":settings[1],step:50,min:0,max:5000})),
 
                                    $("<br>"),
 
                                    $("<span>").text("Tooltip is activated by:"),
 
                                    $("<label>").append(
 
                                            $("<input>").attr({"type":"radio", "name":"RTActivate", "checked":settings[2]==0&&"checked", "disabled":"ontouchstart" in document.documentElement&&"disabled"}),
 
                                            "hovering"
 
                                    ),
 
                                    $("<label>").append(
 
                                            $("<input>").attr({"type":"radio", "name":"RTActivate", "checked":settings[2]==1&&"checked"}),
 
                                            "clicking"
 
                                    )
 
                            ).submit(function(e){e.preventDefault()}).dialog({modal:true,width:500,title:"Reference Tooltips options",buttons:{"Save settings":function(){
 
                                    var a = this.getElementsByTagName("input"),
 
                                            b = +a[0].value;
 
                                    $.cookie("RTsettings","1|"+ (b > -1 && b < 5001 ? b : settings[1]) + (a[1].checked ? "|0" : "|1"), {path:"/",expires:90});
 
                                    location.reload();
 
                            }}});
 
                    }
 
            }
 
            $(this)[ isTouchscreen ? 'click' : 'hover' ](function( e ){
 
                    var _this = this;
 
                    if( isTouchscreen ) {
 
                            e.preventDefault();
 
                            (tooltipNode && tooltipNode.parentNode == document.body) || setTimeout( function(){
 
                                    $( document.body ).on("click touchstart", function( e ) {
 
                                            e = e || event;
 
                                            e = e.target || e.srcElement;
 
                                            for( ; e && !$( e ).hasClass( "referencetooltip" ) ; )
 
                                                    e = e.parentNode;
 
                                            if( !e ){
 
                                                    clearTimeout( showTimer );
 
                                                    hide( _this );
 
                                                    $(document.body).off("click touchstart", arguments.callee)
 
                                            }
 
                                    })
 
                            }, 0);
 
                    }
 
                    showTimer && clearTimeout( showTimer );
 
                    showTimer = setTimeout( function() {
 
                            var h = findRef( _this );
 
                            if( !h ){return};
 
                            if( !isTouchscreen && ( window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0 ) + $(window).height() > $( h ).offset().top + h.offsetHeight ) {
 
                                    h.style.border = "#080086 2px solid";
 
                                    return;
 
                            }
 
                            if(!tooltipNode){
 
                                    tooltipNode = document.createElement("ul");
 
                                    tooltipNode.className = "referencetooltip";
 
                                    var c = tooltipNode.appendChild( h.cloneNode( true ) );
 
                                    try {
 
                                            if( c.firstChild.nodeName != "A" ) {
 
                                                    while( c.childNodes[1].nodeName == "A" && c.childNodes[1].getAttribute( "href" ).indexOf("#cite_ref-") !== -1 ) {
 
                                                            do { c.removeChild( c.childNodes[1] ) } while ( c.childNodes[1].nodeValue == " " );
 
                                                    }
 
                                            }
 
                                    } catch (e) { mw.log(e) }
 
                                    c.removeChild( c.firstChild );
 
                                    $( tooltipNode.firstChild.insertBefore( document.createElement( "span" ), tooltipNode.firstChild.firstChild ) ).addClass("RTsettings").attr("title", "Tooltip settings").click(function(){
 
                                            mw.loader.using(["jquery.cookie","jquery.ui.dialog"], openSettingsMenu);
 
                                    })
 
                                    tooltipNode.appendChild( document.createElement( "li" ) );
 
                                    isTouchscreen || $(tooltipNode).hover(show, hide);
 
                            }
 
                            show();
 
                            var o = $(_this).offset(), oH = tooltipNode.offsetHeight;
 
                            $(tooltipNode).css({top: o.top - oH, left: o.left - 7 });
 
                            if( tooltipNode.offsetHeight > oH ) { // is it squished against the right side of the page?
 
                                    $(tooltipNode).css({left:'auto',right:0});
 
                                    tooltipNode.lastChild.style.marginLeft = (o.left - tooltipNode.offsetLeft) + "px";
 
                            }
 
                            if( checkFlip ) {
 
                                    if( o.top < tooltipNode.offsetHeight + ( window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0 ) ) { // is part of it above the top of the screen?
 
                                            $(tooltipNode).addClass("RTflipped").css({top: o.top + 12});
 
                                    } else if( tooltipNode.className === "referencetooltip RTflipped" ) { // cancel previous
 
                                            $(tooltipNode).removeClass("RTflipped");
 
                                    }
 
                                    checkFlip = false;
 
                            }
 
                    }, timerLength);
 
            }, isTouchscreen ? undefined : function(){clearTimeout(showTimer); hide(this); } )
 
 
        } );
 
 
    }
 
 
} );
 

Aktuelle Version vom 27. Februar 2024, 16:53 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);
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')!=="Religion-in-Japan")
	$(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 ) );