_ _    _ _____  ___   __                       
 __      _(_) | _(_)___ / ( _ ) / /_   ___ ___  _ __ ___  
 \ \ /\ / / | |/ / | |_ \ / _ \| '_ \ / __/ _ \| '_ ` _ \ 
  \ V  V /| |   <| |___) | (_) | (_) | (_| (_) | | | | | |
   \_/\_/ |_|_|\_\_|____/ \___/ \___(_)___\___/|_| |_| |_|

MediaWiki:Gadget-templateGallery.js

In diesem Artikel werden wir uns eingehend mit MediaWiki:Gadget-templateGallery.js befassen, einem Thema, das in letzter Zeit die Aufmerksamkeit vieler auf sich gezogen hat. MediaWiki:Gadget-templateGallery.js ist ein komplexes Konzept, das ein breites Spektrum an Ideen und Perspektiven umfasst und dessen Auswirkungen in verschiedenen Bereichen der Gesellschaft spürbar sind. In diesem Artikel werden wir die verschiedenen Facetten von MediaWiki:Gadget-templateGallery.js untersuchen, von seinen Ursprüngen bis zu seinem Einfluss auf die heutige Welt. Wir werden uns auch ansehen, wie sich MediaWiki:Gadget-templateGallery.js im Laufe der Zeit entwickelt hat und wie es unsere Denk- und Handlungsweisen geprägt hat. Darüber hinaus werden wir die zukünftigen Auswirkungen von MediaWiki:Gadget-templateGallery.js und die möglichen Auswirkungen auf unsere Gesellschaft in den kommenden Jahren untersuchen. Dieser Artikel bietet einen detaillierten und umfassenden Blick auf MediaWiki:Gadget-templateGallery.js und vermittelt den Lesern ein tieferes Verständnis dieses faszinierenden und relevanten Themas.
// <nowiki>
/* global window: false                                                */
/* jshint bitwise:true, curly:true, eqeqeq:true, latedef:true,
          laxbreak:true,
          nocomma:true, strict:true, undef:true, unused:true           */
( function ( mw, $ ) {
   'use strict';
	
	var GALLERY = {
		classLink: 'dewiki-gallery-link',
		classNav: 'dewiki-gallery-nav',
		classText: 'dewiki-gallery-text',
		classWrapPrefix: 'dewiki-gallery-unit-',
		selectorGallery: 'div.dewiki-gallery',
		selectorUnits: 'div.dewiki-gallery-units figure',
		textNext: '▶',
		textPrev: '◀',
		unitCount: 0
	};
	
	function clickEvent( $gallery, hideUnit, showUnit ) {
		// get element to hide and to show
		var $hideUnit = $gallery.find( '.' + GALLERY.classWrapPrefix + hideUnit );
		var $showUnit = $gallery.find( '.' + GALLERY.classWrapPrefix + showUnit );
		
		// only do something if both units exist to avoid unwanted results
		if ( $hideUnit.length && $showUnit.length ) {
			$hideUnit.hide();
			$showUnit.show();
		}
	}
	
	function createNav( $gallery, $wrapper, unitIndex ) {
		// create texts for navigation
		var texts = ;
		for ( var i = 0; i < 3; i++ ) {
			texts = '(' + ( unitIndex + i ) + '/' + GALLERY.unitCount + ')';
		}
		
		// navigation wrapper element
		var $nav = $( '<div>' )
			.addClass( GALLERY.classNav )
			.prependTo( $wrapper );
		
		// link to previous unit
		if ( unitIndex > 0 ) {
			var $prev = $( '<span>' )
				.addClass( GALLERY.classLink )
				.attr( 'role', 'button' )
				.attr( 'title', texts )
				.text( GALLERY.textPrev )
				.appendTo( $nav )
				.on( 'click', function () {
					clickEvent( $gallery, unitIndex, unitIndex - 1 );
				} );
		}
		
		// current unit without link
		var $curr = $( '<span>' )
				.addClass( GALLERY.classText )
				.text( texts )
				.appendTo( $nav );
		
		// link to next unit
		if ( unitIndex + 1 < GALLERY.unitCount ) {
			var $next = $( '<span>' )
				.addClass( GALLERY.classLink )
				.attr( 'role', 'button' )
				.attr( 'title', texts )
				.text( GALLERY.textNext )
				.appendTo( $nav )
				.on( 'click', function () {
					clickEvent( $gallery, unitIndex, unitIndex + 1 );
				} );
		}
	}
	
	function processUnits( $gallery, $unit, unitIndex ) {
		// create wrapper div of every unit
		var wrapperClass = GALLERY.classWrapPrefix + unitIndex;
		var $wrapper = $( '<div>' )
			.addClass( wrapperClass );
		
		$wrapper.appendTo( $gallery );
		$wrapper.append( $unit );
		
		// create navigation area
		createNav( $gallery, $wrapper, unitIndex );
		
		// only show the first unit initially
		if ( unitIndex > 0 ) {
			$wrapper.hide();
		}
	}
	
	function processGallery( $gallery ) {
		// get units (images) in gallery
		var $units = $gallery.find( GALLERY.selectorUnits );
		
		// if no images in gallery, return
		GALLERY.unitCount = $units.length;
		if ( !GALLERY.unitCount ) {
			return;
		}
		
		$units.each( function ( unitIndex ) {
			processUnits( $gallery, $( this ), unitIndex );	
		});
	}
	
	function init ( $content ) {
		// don't execute in printable version
		if ( document.URL.match( /printable/g ) ) {
			return;
		}
		
		// get galleries on page
		var $galleries = $content.find( GALLERY.selectorGallery );
		
		$galleries.each( function () {
			processGallery( $( this ) );
		});
		
	}
	
	// when content ready
	$( mw.hook( 'wikipage.content' ).add( function ( $content ) {
		init( $content );
	} ) );

}( window.mediaWiki, window.jQuery ) );
// </nowiki>