MediaWiki:Common.js: Unterschied zwischen den Versionen

Zur Navigation springen Zur Suche springen
 
(683 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
for (var i in wgUserGroups)
+
// Handler für sticky toc
  if (wgUserGroups[i] === 'sysop')
+
if ($('body:not(.ns--1) #toc').length)  {
  var sysopRights = true;  
+
$('#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)
  
/*** GLOSSAR ***/  
+
if ($('#toc').length && $('#wrapToc').length) {
// s.a. vorlage:glossar
+
var toc= $('#toc')
$('.glossar').each(function(){
+
, wrap_toc = $('#wrapToc')
  var child = $(this).find('.g_box')
+
, toc2 = toc.clone()
    , parent = $(this).closest('p, li') ;  
+
, scroll_pos_test =  toc.offset().top + toc.height()
  $( parent).css("position", "relative");  
+
, 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();
 +
}
 +
});
 
   
 
   
   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
  if ( left < -10) {
+
 
    $( child).css("left", diff - left -10 + 'px');  
+
    $('.listPlaces .plusMinus').next().hide();
  }
+
    $(document).on('click', '.listPlaces .plusMinus', openOrClosePlaces);
     if (right < 0 ) {  
+
    function openOrClosePlaces(e) {
    $( child).css("left", right + 'px');
+
        e.preventDefault();
  }
+
        if ($(this).hasClass("close")) {
+
            $(this).next().hide('slow');
  $( this).click(function(){ $( child).slideToggle('slow'); });
+
        } else {
  $( this).mouseleave(function(){ $(child).slideUp('slow'); });  
+
            $(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();
 +
}
  
/*** POPUPS ***/
+
/************************/
    if (wgNamespaceNumber != 6)
+
//SMW Suchseiten
    {// Altes speichern und neue Elemente gestalten
+
var user= mw.config.get( 'wgUserGroups' );
var pps = [];  
+
for (var i in user)
var all, pfeiltasten, usePfeiltasten, ppScreen;
+
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');
 +
}
 +
});  
  
var body_width = document.body.offsetWidth;
+
/*********************
var body_height = document.body.offsetHeight;
+
PRELOADS
 +
*********************/
  
function setPopup() {
+
if ( $( '#wpTextbox1 ').is(' :empty ') ) {
  var a = 0;
+
// FOR Schleife
+
/////////// preload glossar ////////////
  for (var i=0;i<document.getElementsByTagName('img').length;i++) {
+
if ( mw.config.get( 'wgCanonicalNamespace') === 'Glossar' ) {
// 1. Bedingungen für Popup
+
$( '#wpTextbox1 ').html(
    if (document.getElementsByTagName('img')[i].src.indexOf('thumb')!=-1
+
  "{{glossar " +  
      && document.getElementsByTagName('img')[i].parentNode.tagName == 'A'
+
  "\n| code = "+ mw.config.get( 'wgTitle' )
      && document.getElementsByTagName('img')[i].width > 100)
+
  "\n| romaji = " + mw.config.get( 'wgTitle' ) +
      var thumb = document.getElementsByTagName('img')[i];
+
  "\n| kanji = " +
    else
+
  "\n| text = " +
      continue;
+
  "\n| sprache = " +
// 2. Bedingungen für Popup
+
  "\n| link = " +
    var bildSrc = thumb.src.replace(/thumb\//, '');
+
  "\n| thema= " +  
      bildSrc = bildSrc.slice(0,(bildSrc.indexOf(bildSrc.split('/')[bildSrc.split('/').length-1]))-1);
+
   "\n| map= " +
    var link = thumb.parentNode.href;     
+
   "\n| zoom= " +
    var bildname = link.split(':')[link.split(':').length-1];   
+
   "\n| type" +
    var ppText = document.getElementById('pp_'+bildname) ||
+
  "\n| icon= " +  
      document.getElementById('pp_'+bildname.toLowerCase()) || false;
+
   "\n}} ");  
    if (!ppText)
 
      continue;
 
// Link ändern
 
    thumb.parentNode.href = 'javascript:open_popup('+a+')';
 
    thumb.parentNode.title = 'Popup öffnen'; 
 
// images in neues Objekt laden
 
    pps[a] = {};
 
    pps[a].image = new Image;   
 
    pps[a].image.src = bildSrc; 
 
// Popups gestalten
 
    pps[a].div = document.body.appendChild(document.createElement('div'));
 
      pps[a].div.className = 'ppDiv';
 
      pps[a].div.style.display = 'none';
 
    pps[a].frame = pps[a].div.appendChild(document.createElement('div'));
 
      pps[a].frame.className = 'ppFrame';
 
      pps[a].frame.appendChild(pps[a].image);
 
    pps[a].index =pps[a].frame.appendChild(document.createElement('div'));
 
      pps[a].index.className = 'ppIndex';
 
    pps[a].back = pps[a].frame.appendChild(document.createElement('a'))
 
      pps[a].back.className = 'ppBack';
 
      pps[a].back.title  = 'voriges Bild';
 
      pps[a].back.innerHTML= '<span class="fa fa-chevron-left"></span>';
 
      pps[a].back.href = 'javascript:open_popup('+(a-1)+')';
 
    pps[a].next = pps[a].frame.appendChild(document.createElement('a'));
 
      pps[a].next.className = 'ppNext';
 
      pps[a].next.title = 'nächstes Bild';
 
      pps[a].next.innerHTML= '<span class="fa fa-chevron-right"></span>';
 
      pps[a].next.href = 'javascript:open_popup('+(a+1)+')';
 
    pps[a].click = pps[a].frame.appendChild(document.createElement('div'));   
 
      pps[a].click.className = 'ppClick'; 
 
      pps[a].click.innerHTML =
 
        '<span>Ins Bild klicken oder Pfeiltasten [&larr;] [&rarr;] = Neues Bild!<br/>' +  
 
        'Sonst wo klicken oder [Esc] = Bild schließen!</span>';
 
// bildtext in popup einfuegen
 
    pps[a].text = pps[a].div.appendChild(ppText);
 
      pps[a].text.className = 'ppText';
 
    var bildlinks = pps[a].text.appendChild(document.createElement('p'));
 
      bildlinks.className = 'editsection';
 
      bildlinks.innerHTML += '<a href="'+link+'">[Bildseite]</a> ';
 
      if (sysopRights)
 
        bildlinks.innerHTML += '<a href="'+link+'?action=edit">[edit]</a> ';
 
    pps[a].vollbildlink = pps[a].text.appendChild(document.createElement('div'));
 
      pps[a].vollbildlink.className = 'editsection';
 
// ausblenden
 
    pps[a].div.onclick =
 
    pps[a].click.onclick =
 
    pps[a].text.onclick = hidePopup;
 
// weiterzählen
 
    a++;
 
   } // Ende FOR
 
// Arrays zählen
 
  all = pps.length;
 
// schwarze leinwand
 
   ppScreen = document.body.appendChild(document.createElement('div'));
 
   ppScreen.id = 'ppScreen';
 
   with (ppScreen.style) {
 
    //width = document.body.offsetWidth+'px';
 
    //height = document.body.offsetHeight+'px';
 
    display = 'none';
 
   }
 
  ppScreen.onclick = hidePopup;
 
 
}
 
}
 
+
/////////// preload sanskrit ////////////
/////// POPUP ÖFFNEN
+
if ( mw.config.get( 'wgCanonicalNamespace') === 'Skt' ) {  
function open_popup(p,g) {
+
$( '#wpTextbox1 ').html(  
  p = (p < all) ? (p < 0) ? all + p : p : all - p;
+
   "{{Sanskrit" +
  g = g || 0;
+
   "\n| code = "+ mw.config.get( 'wgTitle' ) +
// Anpassen der Bildgroesse
+
   "\n| sprache = skt." +
  var screen_height = window.innerHeight || document.documentElement.offsetHeight;
+
   "\n| skt_oD = "+ mw.config.get( 'wgTitle' ) +
  var screen_width = window.innerWidth-27 || document.documentElement.offsetWidth-27;
+
   "\n| skt_mD = " +
//Originalgroesse speichern
+
   "\n| devanagari = " +
  pps[p].width = pps[p].width || pps[p].image.width;
+
  "\n| geschlecht = " +
  pps[p].height = pps[p].height || pps[p].image.height;
+
  "\n| klasse = term " +
// Link für übergroße Bilder
+
  "\n| romaji= " +
  var vbLink = '<a href="javascript:open_popup('+p+','+1+')">'+
+
   "\n| kanji= " +
    'Volle Auflösung ('+pps[p].height+' x '+pps[p].width+' px)</a>';
+
   "\n| romaji2= " +
// Vollbild anzeigen
+
   "\n| kanji2= " +
  if (g) {
+
  "\n| ue"+
    pps[p].image.width = pps[p].width;
+
  "\n| anm= " +
    pps[p].image.height = pps[p].height;
+
  "\n| link= " +
    pps[p].vollbildlink.innerHTML = '';
+
   "\n| thema= " +
  }
+
   "\n| map= " +
// Verkleinertes Bild
+
   "\n| zoom= " +
  else {
+
   "\n| type" +
    if (pps[p].width > screen_width-8) {
+
   "\n| icon= " +
      pps[p].image.height = pps[p].height/pps[p].width*(screen_width-8);
+
  "\n}} ");  
      pps[p].image.width  = screen_width-8 ;
 
      pps[p].vollbildlink.innerHTML = vbLink;
 
    }
 
    if (pps[p].height > screen_height-30) {
 
      pps[p].image.width = pps[p].width/pps[p].height*(screen_height-30);
 
      pps[p].image.height  = screen_height-30 ;
 
      pps[p].vollbildlink.innerHTML = vbLink;
 
    }
 
   }
 
// Frame und Text positionieren
 
   var diffWidth  = (screen_width - 8 - pps[p].image.width)/2;
 
   var diffHeight = (screen_height - 30 - pps[p].image.height)/2;
 
   var scrY = document.documentElement.scrollTop || // Explorer 6 Strict
 
    document.body.scrollTop || //all other Explorers
 
    self.pageYOffset || 0;
 
  pps[p].frame.style.marginLeft = g ? 0 : diffWidth + 'px';
 
  pps[p].text.style.clear = (diffWidth < 160) ? 'left' : 'none';
 
// Bilder Index anzeigen
 
   pps[p].index.innerHTML = 'Bild '+(p+1)+'/'+all;
 
// nur ein Bild
 
   if (all == 1) {
 
    pps[p].back.style.visibility =  
 
    pps[p].next.style.visibility = 'hidden';
 
    pps[p].click.innerHTML = '<span>Beliebiger Klick oder [Esc] = Bild schließen!</span>' ;
 
   }
 
// Pfeiltasten
 
   usePfeiltasten = true;
 
   pfeiltasten = function(e) {
 
    e=e||event;
 
    if (e.keyCode && usePfeiltasten)
 
      switch (e.keyCode) {
 
        case 39: open_popup(p+1);break;
 
        case 102: open_popup(p+1);break;
 
case 37: open_popup(p-1); break;
 
        case 100: open_popup(p-1); break;
 
case 27: hidePopup(); break;
 
      }
 
   }
 
   document.onkeydown = pfeiltasten;
 
// Einblenden
 
   ppScreen.style.display = 'block';
 
   pps[p].div.style.top g ? scrY+'px' : (scrY + diffHeight/2)+'px';
 
   for (var i=0;i<all;i++)  
 
    pps[i].div.style.display = i==p? 'block' : 'none';
 
 
}
 
}
  
// popup-Div aufblenden (dzt. ungenutzt)
+
/////////// preload bild ////////////
function initFade(x) {
+
if ( mw.config.get( 'wgNamespaceNumber') === 6  ) {
  for (var i=5;i<11;i++)
+
var d = new Date();
    setTimeout('setOpacity('+i+','+x+')',40*i);
+
var datum = d.getFullYear()+"/"+(d.getMonth()+1)+"/"+d.getDate();
  return false;
+
$( '#wpTextbox1 ').html(
}
+
"{{bild " +
function setOpacity(value,x) {
+
"\n| titel =  " +
  pps[x].image.style.opacity = value/10;
+
"\n| detail = 0 " +
  pps[x].image.style.filter = 'alpha(opacity=' + value*10 + ')';
+
"\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}} ");  
 
}
 
}
  
///////////// popup-Div SCHLIESSEN
+
/////////// 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}} ");
 +
  }
 +
}
  
function hidePopup() {  
+
/***********************************
  ppScreen.style.display = 'none';
+
      Change redirected address line
  for (var i in pps)
+
***********************************/
    pps[i].div.style.display = 'none';
+
( function ( $, mw ) {
// Pfeiltasten nicht mehr verwenden
+
if ( !window.history || !window.history.replaceState ) {
  usePfeiltasten = false;
+
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 );
 +
}
 +
} );
  
setPopup();
+
}( jQuery, mediaWiki ) );
    }
 

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 ) );