Ugrás a tartalomhoz

MediaWiki:Common.js

A Wikipédiából, a szabad enciklopédiából
A lap korábbi változatát látod, amilyen Tacsipacsi (vitalap | szerkesztései) 2016. december 30., 03:35-kor történt szerkesztése után volt. Ez a változat jelentősen eltérhet az aktuális változattól. (pozíciós térkép nagyító külön segédeszközbe)

Megjegyzés: közzététel után frissítened kell a böngésződ gyorsítótárát, hogy lásd a változásokat.

  • Firefox / Safari: tartsd lenyomva a Shift gombot és kattints a Frissítés gombra a címsorban, vagy használd a Ctrl–F5 vagy Ctrl–R (Macen ⌘–R) billentyűkombinációt
  • Google Chrome: használd a Ctrl–Shift–R (Macen ⌘–Shift–R) billentyűkombinációt
  • Edge: tartsd nyomva a Ctrl-t, és kattints a Frissítés gombra, vagy nyomj Ctrl–F5-öt
/* Az ide elhelyezett JavaScript kód minden felhasználó számára lefut az oldalak betöltésekor. */
/* <nowiki> kategorizálás megakadályozására */

/*
 Wikis függvények és segédletek ($.wiki)
*/
(function($){
	$.wiki =  {};
	
	/* $.wiki.contentSelector: visszaadja magát a szócikket tartalmazó
	 elem szelektorát a skintől függően */
	var skin = mw.config.get('skin');
	if (skin == "modern") $.wiki.contentSelector = "#mw_contentholder";
	else if (skin == "standard" || skin == "nostalgia" || skin == "cologneblue") $.wiki.contentSelector = "#article";
	else $.wiki.contentSelector = "#bodyContent";
	
	/* Ajaxon keresztül lekéri a megadott oldalt opcionális paraméterekkel */
	$.wiki.getPage = function(settings) {
		if (typeof(settings.pageName) === "undefined" || settings.pageName === "")
			settings.error.call();
		var ajaxSettings = {
			url: $.wiki.wikiEntryLink(settings.pageName, (typeof(settings.params) == "undefined" ? {} : settings.params))
		};
		if (typeof(settings.async) != "undefined") ajaxSettings = $.extend(ajaxSettings, {async: settings.async});
		if (typeof(settings.success) != "undefined") ajaxSettings = $.extend(ajaxSettings, {success: settings.success});
		if (typeof(settings.error) != "undefined") ajaxSettings = $.extend(ajaxSettings, {error: settings.error});
		return $.ajax(ajaxSettings);
	};
	
	/* Ajaxon keresztül lekéri a megadott oldal nyers változatát opcionális további paraméterekkel */
	$.wiki.getPageRaw = function(settings) {
		if (typeof(settings.params) != "undefined")
			settings.params.action = "raw";
		else
			settings.params = {action: "raw"};
		return $.wiki.getPage(settings);
	};
	
	/* Egyszerű wikilink generálása lapnévből: https://hu.wikipedia.org/wiki/Pagename */
	$.wiki.wikiLink = function(page) {
		var prep = page.replace(/ /g, "_");
		return mw.config.get('wgServer') + mw.config.get('wgArticlePath').replace(/\$1/g, prep);
	};
	
	/* Link a belépési ponthoz (index.php): https://hu.wikipedia.org/w/index.php?title=Pagename
	 Opcionálisan további paraméterekkel
	*/
	$.wiki.wikiEntryLink = function(page, args) {
		var prep = page.replace(/ /g, "_");
		prep = mw.config.get('wgServer') + mw.config.get('wgScript') + "?title=" + prep;
		$.each(args, function(key, value) {
			prep = prep + "&" + key + "=" + value;
		});
		return prep;
	};
})(jQuery);

/*
== Segédfüggvények ==
*/

function addLoadEvent( func ) {
	mw.log.warn( 'Elavult addLoadEvent(), használj helyette $()-t vagy mw.hook(...).add()-et. Stack trace:\n', new Error().stack );
	$( func );
}

function getCookie(name) {
	mw.log.warn( 'Elavult getCookie(), használj helyette mw.cookie.get()-et. Stack trace:\n', new Error().stack );
	var cookieText;
	var cookiePos = document.cookie.indexOf(name + '=');
	if(cookiePos!=-1) {
		var results = document.cookie.match(name+'=(.*?)(;|$)');
		if(results) cookieText = decodeURIComponent(results[1]);
		return cookieText;
	} else return null;
}
function setCookie(name, text, expires) {
	mw.log.warn( 'Elavult setCookie(), használj helyette mw.cookie.set()-et. Stack trace:\n', new Error().stack );
	mw.cookie.set( name, text, { expires: expires, prefix: '' } );
}

function cleanHtmlTags(str) {
	return str.replace(/<>/g, '');
}

$.fn.log = function(msg) {
	if (!window.console || !console.log) return;
	if (msg) {
		if (typeof msg == 'string') {
			console.log('%s: %o', msg, this);
		} else {
			console.log('%o -> %o', this, msg);
		}
	} else {
		console.log(this);
	}
	return this;
};

// for inlog gadget
$.startInlog = $.fn.startInlog = function(config) {
	if (!$.inlog) return;
	$.inlog({
		enabled: true,
		thisValue: true
	});
	return this;
};
$.endInlog = $.fn.endInlog = function(config) {
	if (!$.inlog) return;
	$.inlog(false);
	return this;
};

/*
== Wikimenü ==
*/
mw.loader.load('ext.gadget.wikiMenu');

/*
== Kezdőlap összes Wikipédia listája ==
*/
( function ( mw ) {
	var conf = mw.config.get( [ 'wgTitle', 'wgMainPageTitle', 'wgNamespaceNumber' ] );
	if ( conf.wgTitle === conf.wgMainPageTitle && conf.wgNamespaceNumber === 0 ) {
		mw.loader.using( 'mediawiki.util', function () {
			$( function () {
				mw.util.addPortletLink( 'p-lang', '//meta.wikimedia.org/wiki/List_of_Wikipedias',
				                        'Teljes lista', 'interwiki-completelist', 'A Wikipédiák teljes listája' );
			} );
		} );
	}
}( mediaWiki ) );

/*
== Elrejthető üzenetek ==
*/
window.addHideButton = ( function ( mw, $ ) {
	function hideElement( e ) {
		var $this = $( this ),
			$box = $this.parent(),
			name = $box.attr( 'id' );
		
		mw.cookie.set( 'hide-' + name, '1', 7*24*3600 ); // 1 hét
		$this.hide();
		$box.hide();
		e.preventDefault();
		return false;
	}
	
	function addHideButton( element ) {
		var $this = $( element );
		if ( !$this.length ) return;
		var isHidden = mw.cookie.get( 'hide-' + $this.attr( 'id' ) );
		if ( isHidden ) {
			$this.hide();
		} else {
			var $button = $( '<a>' )
				.attr( 'href', '#' )
				.attr( 'id', 'hide-' + $this.attr( 'id' ) )
				.addClass( 'hideButton' )
				.attr( 'title', 'Üzenet elrejtése egy hétre' )
				.click( hideElement )
				.text( '[elrejt]' )
				.appendTo( $this );
		}
	}
	return addHideButton;
}( mediaWiki, jQuery ) );

/*
== WIWOSM térkép ==
*/
mw.loader.load( 'ext.gadget.wiwosm' );

/* 
== Képfeltöltés ==
*/
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Upload' )
	mw.loader.load( 'ext.gadget.uploadpage' );

/*
== Legördülő menü és extra gombok az edittools-ba ==
*/

if (mw.config.get('wgAction') == 'edit' || mw.config.get('wgAction') == 'submit' || mw.config.get('wgPageName') == 'Special:Upload') { //scripts specific to editing pages
mw.loader.using( 'mediawiki.toolbar', function() {

	var buttons = [
	{
		'id': "button-redirect",
		'imageFile': "/media/wikipedia/en/c/c8/Button_redirect.png",
		'speedTip': "Átirányítás",
		'tagOpen': "#ÁTIRÁNYÍTÁS [[",
		'tagClose': "]]",
		'sampleText': "Cél"
	},
	{
		'id': "button-strike",
		'imageFile': "/media/wikipedia/en/c/c9/Button_strike.png",
		'speedTip': "Áthúzott szöveg",
		'tagOpen': "<s>",
		'tagClose': "</s>",
		'sampleText': "Áthúzott szöveg"
	},
	{
		'id': "button-small",
		'imageFile': "/media/wikipedia/en/5/58/Button_small.png",
		'speedTip': "Apró betűs szöveg",
		'tagOpen': "<small>",
		'tagClose': "</small>",
		'sampleText': "Apró betűs szöveg"
	},
	{
		'id': "button-teletype",
		'imageFile': "/media/wikipedia/commons/3/30/Tt_icon.png",
		'speedTip': "Írógép-szöveg",
		'tagOpen': "<tt>",
		'tagClose': "</tt>",
		'sampleText': "Fix szélességű szöveg"
	},
	{
		'id': "button-insert-reflink",
		'imageFile': "/media/wikipedia/commons/7/79/Button_reflink.png",
		'speedTip': "Forráshivatkozás",
		'tagOpen': "<ref>",
		'tagClose': "</ref>",
		'sampleText': "Hivatkozás szövegének helye"
	},
	{
		'id': "button-insert-reflist",
		'imageFile': "/media/wikipedia/commons/f/fe/Button_refs.png",
		'speedTip': "Forráshivatkozás lábrész",
		'tagOpen': "{" + "{Jegyzetek}}",
		'tagClose': "",
		'sampleText': ""
	},
	{
		'id': "button-insert-templatelink",
		'imageFile': "/media/wikipedia/commons/e/eb/Button_plantilla.png",
		'speedTip': "Sablon",
		'tagOpen': "{{",
		'tagClose': "}}",
		'sampleText': "Példa sablon"
	}
	];
	
	for ( var i = 0, len = buttons.length; i < len; i++ ) {
		mw.toolbar.addButton(
			buttons[i].imageFile,
			buttons[i].speedTip,
			buttons[i].tagOpen,
			buttons[i].tagClose,
			buttons[i].sampleText,
			buttons[i].id,
			buttons[i].id
		);
	}

});
}

if (document.URL.indexOf("action=edit") > 0 || document.URL.indexOf("action=submit") > 0 || (mw.config.get('wgCanonicalNamespace') == "Special" && mw.config.get('wgCanonicalSpecialPageName') == "Upload")) {

  function addCharSubsetMenu() {
    var forceAll = false;
    var specialchars = document.getElementById('specialchars');
    if (!specialchars) return;
    var menu = document.getElementById('charSubsetMenu');
    if (!menu) {
      menu = document.createElement('select');
      menu.id = 'charSubsetMenu';
      menu.style.display = 'inline';
      menu.onchange = function() {
        chooseCharSubset(menu.options[menu.selectedIndex].value);
      }
    } else { // személyreszabott menü teljesre váltásakor
      forceAll = true;
      var menuChildNodes = [];
      for (var i = 0; i < menu.childNodes.length; i++) {
        menuChildNodes.push(menu.childNodes[i]);
      }
      for(var i = 0; i < menuChildNodes.length; i++) {
        menu.removeChild(menuChildNodes[i]);
      }
    }
    
    var specialCharacterTypes = new Object();
    var l = document.getElementById('specialchars').getElementsByTagName('p');
    for (var i = 0; i < l.length; i++) {
      var title = l[i].title;
      var opt = document.createElement('option');
      opt.appendChild(document.createTextNode(title));
      opt.value = i;
      specialCharacterTypes[title] = opt;
    }
    if(typeof(allowedSpecialCharacterTypes) == 'undefined' || forceAll) {
      for (var i = 0; i < l.length; i++) {
        menu.appendChild(specialCharacterTypes[l[i].title]);
      }
    } else { // személyreszabott menü
      for(var i = 0; i < allowedSpecialCharacterTypes.length; i++) {
        if(typeof(specialCharacterTypes[allowedSpecialCharacterTypes[i]]) != 'undefined') {
          menu.appendChild(specialCharacterTypes[allowedSpecialCharacterTypes[i]]);
        }
      }
      var showAll = document.createElement('option');
      showAll.appendChild(document.createTextNode("több..."));
      showAll.style.fontStyle = 'italic';
      showAll.value = 999;
      menu.appendChild(showAll);
    }
    
    if (forceAll) { // select visszaállítása az aktív karakterkészletre
      var value = -1;
      var l = specialchars.getElementsByTagName('p');
      for (var i = 0; i < l.length ; i++) {
        if (l[i].style.display == 'inline') {
          value = i;
          break;
        }
      }
      for (var i = 0; i < menu.options.length; i++) {
        if (menu.options[i].value == value) {
          menu.selectedIndex = i;
          break;
        }
      }
    } else { // első karakterkészlet aktiválása
      chooseCharSubset(menu.options[0].value);
    }
    specialchars.insertBefore(menu, specialchars.firstChild);
  }
  function chooseCharSubset(s) {
    if (s == 999) { // "több..." opció
      addCharSubsetMenu();
      return;
    }
    var l = document.getElementById('specialchars').getElementsByTagName('p');
    for (var i = 0; i < l.length ; i++) {
      l[i].style.display = (i == s) ? 'inline' : 'none';
    }
  }

  $(addCharSubsetMenu);
}

/*
== Extra gombok Vector alatt ==
*/

// WikiEditor toolbar customization
$(function() {
  if ( typeof $.wikiEditor != "undefined" ) {
    $( '#wpTextbox1' ).bind( 'wikiEditor-toolbar-buildSection-main', function( event, section ) {
      if (mw.config.get('wgUserLanguage')=='hu') {
        // change bold/italic icon
        var tools = section.groups.format.tools;
        if ( !( 'hu' in tools.bold.icon ) ) {
          tools.bold.icon['hu'] = 'format-bold-F.png'; // no need for full URL because this one exists in default Vector icon set
        }
        if ( !( 'hu' in tools.italic.icon ) ) {
          tools.italic.icon['hu'] = '/media/wikipedia/commons/6/6a/Toolbaricon_italic_D.png';
        }
      }
    });
 
    // special characters
    $( '#wpTextbox1' ).bind( 'wikiEditor-toolbar-buildSection-characters', function( event, section ) {
      var paren = function(left, right) {
        return { label: left + right, action: { type: 'encapsulate', options: { pre: left, post: right } } }; 
      };
      var pages = {
        basic: {
          layout: 'characters',
          label: 'Alap',
          characters: [ 'á', 'é', 'í', 'ó', 'ö', 'ő', 'ú', 'ü', 'ű', 'Á', 'É', 'Í', 'Ó', 'Ö', 'Ő', 'Ú', 'Ü', 'Ű',
            '~', '|', '#', paren('„', '”'), paren('»', '«'), paren('’', '’'), '’', '–', '…', paren('<', '>'), '°', '‰', 
            '×', '→', '∅', 'µ', '²', '³', '½', '⅓', '⅔', '¼', '¾', '€', '§', '†', '‡', '©', '®', '•', '·', '&nbsp;', '‑' ]
        }
      };
      for (var i in section.pages) {
        pages[i] = section.pages[i];
      }
      section.pages = pages;
    });
  }
});


/*
== Ékezetes karakterek bejelentkezéshez ==
*/

function insertText(box, string) {
  box.focus();
  if (document.selection && document.selection.createRange) { // IE/Opera
    var range = document.selection.createRange();
    range.text = string;
  } else if (box.selectionStart || box.selectionStart == '0') { // Mozilla
    var startPos = box.selectionStart;
    var endPos = box.selectionEnd;
    box.value = box.value.substring(0, startPos) + string + box.value.substring(endPos, box.value.length);
  }
}

if (mw.config.get('wgCanonicalSpecialPageName') == "Userlogin") {
  function installLoginChars() {
    window['loginbox'] = document.getElementById('wpName1');
    var loginchars = document.getElementById('loginchars');
    if (loginchars) {
      var hunchars = "áéíóöőúüűÁÉÍÓÖŐÚÜŰ".split('');
      for (var i = 0, str = ''; i < hunchars.length; i++) {
        str += '<a href="javascript:insertText(loginbox, \'' + hunchars[i] + '\')">' + hunchars[i] + '</a> ';
      }
    
      loginchars.innerHTML += str;
      loginchars.style.display = "block";
    }
  }
  $(installLoginChars);
}

/*
== Becsukható <div>, táblázat stb. ==
*/
mw.loader.load( 'ext.gadget.collapsible' );

/*
== Címek javítása ==
*/

// For pages that have something like Template:Lowercase, replace the title, but only if it is cut-and-pasteable as a valid wikilink.
// (for instance iPod's title is updated. But C# is not an equivalent
// wikilink, so C Sharp doesn't have its main title changed)
// Likewise for users who have selected the U.K. date format ("1 March") the  
// titles of day-of-the-year articles will appear in that style. Users with any
// other date setting are not affected.
//
// The function looks for a banner like this: 
// <div id="RealTitleBanner">  ... <span id="RealTitle">title</span> ... </div>
// An element with id=DisableRealTitle disables the function.
//
var disableRealTitle = 0; // users can set disableRealTitle = 1 locally to disable.
if (mw.config.get('wgIsArticle')) { // don't display the RealTitle when editing, since it is apparently inconsistent (doesn't show when editing sections, doesn't show when not previewing)
  function fixArticleTitle() {
    var realTitleBanner = document.getElementById("RealTitleBanner");
    var realTitle = document.getElementById("RealTitle");
    if (realTitleBanner && realTitle && !document.getElementById("DisableRealTitle") && !disableRealTitle) {
      var realTitleHTML = realTitle.innerHTML;
      realTitleText = pickUpText(realTitle);
   
      var isPasteable = 0;
      //var containsHTML = /</.test(realTitleHTML);    // contains ANY HTML
      var containsTooMuchHTML = /</.test( realTitleHTML.replace(/<\/?(sub|sup|small|big)>/gi, "") ); // contains HTML that will be ignored when cut-n-pasted as a wikilink
      // calculate whether the title is pasteable
      var verifyTitle = realTitleText.replace(/^ +/, "");       // trim left spaces
      verifyTitle = verifyTitle.charAt(0).toUpperCase() + verifyTitle.substring(1, verifyTitle.length);    // uppercase first character

      // if the namespace prefix is there, remove it on our verification copy. If it isn't there, add it to the original realValue copy.
      if (mw.config.get('wgNamespaceNumber') != 0) {
        var localNamespace = mw.config.get('wgPageName').split(':')[0];
        var canonialNamespace = mw.config.get('wgCanonicalNamespace');
        if (canonialNamespace == verifyTitle.substr(0, canonialNamespace.length).replace(/ /g, "_") && verifyTitle.charAt(canonialNamespace.length) == ":") {
          verifyTitle = verifyTitle.substr(canonialNamespace.length + 1);
        } else if (localNamespace == verifyTitle.substr(0, localNamespace.length).replace(/ /g, "_") && verifyTitle.charAt(localNamespace.length) == ":") {
          verifyTitle = verifyTitle.substr(localNamespace.length + 1);
        } else {
          realTitleText = localNamespace.replace(/_/g, " ") + ":" + realTitleText;
          realTitleHTML = localNamespace.replace(/_/g, " ") + ":" + realTitleHTML;
        }
      }

      // verify whether wgTitle matches
      verifyTitle = verifyTitle.replace(/[\s_]+/g, " ");      // underscores and multiple spaces to single spaces
      verifyTitle = verifyTitle.replace(/^\s+/, "").replace(/\s+$/, "");        // trim left and right spaces
      verifyTitle = verifyTitle.charAt(0).toUpperCase() + verifyTitle.substring(1, verifyTitle.length);    // uppercase first character
      if (verifyTitle == mw.config.get('wgTitle')) isPasteable = 1;
      var h1 = document.getElementsByTagName("h1")[0];
      if (h1 && isPasteable) {
        h1.innerHTML = containsTooMuchHTML ? realTitleText : realTitleHTML;
        if (!containsTooMuchHTML)
          realTitleBanner.style.display = "none";
      }
      document.title = realTitleText + " - Wikipédia, a szabad enciklopédia";
    }
  }
   
  // similar to innerHTML, but only returns the text portions of the insides, excludes HTML
  function pickUpText(aParentElement) {
    var str = "";
   
    function pickUpTextInternal(aElement) {
      var child = aElement.firstChild;
      while (child) {
        if (child.nodeType == 1)		// ELEMENT_NODE 
          pickUpTextInternal(child);
        else if (child.nodeType == 3)	// TEXT_NODE
          str += child.nodeValue;
   
        child = child.nextSibling;
      }
    }
   
    pickUpTextInternal(aParentElement);
    return str;
  }

  $(fixArticleTitle);
}

/*
== IRC login ==
*/

// this script looks for the element with id "irclogon", and replaces its contents 
// with a login form that redirects to the Mibbit IRC gateway

( function () {
	if ( mw.config.get( 'wgAction' ) in { edit: 1, submit: 1 } ) {
		return;
	}
 
	function loadLoginForm() {
		$( '#irclogin' ).empty().append(
			$( '<form>' ).attr( {
				method: 'get',
				action: '//webchat.freenode.net/',
				target: '_blank',
				name: 'loginform'
			} ).append(
				$( '<input type="text"> ').attr( {
					name: 'Nickname',
					size: 25
				} ).val( nickify( mw.config.get('wgUserName') ) ).focus( function () {
					clear_text(this);
				} ),
 
				$( '<input type="submit"> ').val( 'Belépés' ),
				$( '<input type="hidden"> ').attr( 'name', 'channels' ).val( '#wikipedia-hu' ),
				$( '<input type="hidden"> ').attr( 'name', 'prompt' ).val( '0' )
			)
		);
	}

	function nickify( s ) {
		if ( s == null ) {
			return 'anon' + Math.floor( Math.random() * 100 );
		}
		s = s.toLowerCase();
		s = s.replace(" ", "_");
		s = s.replace(/á/g, 'a');
		s = s.replace(/é/g, 'e');
		s = s.replace(/í/g, 'i');
		s = s.replace(/[óő]/g, 'o');
		s = s.replace(/[úű]/g, 'u');
		s = s.replace(/[^a-z0-9_-]/g, '');
		return s || 'badname' + Math.floor( Math.random() * 100 );
	}
 
	var irclogin_cleared = 0;
	function clear_text( field ) {
		if ( irclogin_cleared === 0 ) {
			irclogin_cleared = 1;
			field.value = '';
		}
	}

	$( loadLoginForm );
} ) ();

/*
== Változtatható rendezésű táblázatok: ékezetes betűk, magyar írásmódú számok rendezése ==
*/

// buta, de legalább működik
// rendező kód: http://git.wikimedia.org/blob/mediawiki%2Fcore/master/resources%2Fjquery%2Fjquery.tablesorter.js
// okos, de nem működő kód: https://hu.wikipedia.org/w/index.php?title=MediaWiki:Common.js&diff=prev&oldid=14463042
(function() {
	var accented = 'áéíóúöőüűÁÉÍÓÚÖŐÜŰ',
	    basic = 'aeiouoouuAEIOUOOUU',
	    tableSorterCollation = {};
	for (var i = 0; i < accented.length; i++) {
		tableSorterCollation[accented[i]] = basic[i];
	}
	mw.config.set( 'tableSorterCollation', tableSorterCollation);
}());


/*
== A Képdia sablon működéséhez szükséges kód ==
*/
function kepValtas(group, remindex, shwindex) {
  document.getElementById("kepDiaCs"+group+"Kep"+remindex).style.display="none";
  document.getElementById("kepDiaCs"+group+"Kep"+shwindex).style.display="inline";
}
 
function kepDia(){
  if (document.URL.match(/printable/g)) return;
  var bc=document.getElementById("bodyContent");
  if( !bc ) bc = document.getElementById("mw_contentholder");
  if( !bc ) return;
  var divs=bc.getElementsByTagName("td");
  var units, search;
  var currentimage;
  var UnitNode;
  for (var i = 0; i < divs.length ; i++) {
    if (divs[i].className != "kepDia") continue;
    UnitNode=undefined;
    search=divs[i].getElementsByTagName("div");
    for (var j = 0; j < search.length ; j++) {
      if (search[j].className != "kepDiaKepek") continue;
      UnitNode=search[j];
      break;
    }
    if (UnitNode==undefined) continue;
    units=Array();
    for (var j = 0 ; j < UnitNode.childNodes.length ; j++ ) {
      var temp = UnitNode.childNodes[j];
      if (temp.className=="center") units.push(temp);
    }
    for (var j = 0 ; j < units.length ; j++) {
      currentimage=units[j];
      currentimage.id="kepDiaCs"+i+"Kep"+j;
      var imghead = document.createElement("div");
      var leftlink;
      var rightlink;
      if (j != 0) {
        leftlink = document.createElement("a");
        leftlink.href = "javascript:kepValtas("+i+","+j+","+(j-1)+");";
        leftlink.innerHTML="◀";
      } else {
        leftlink = document.createElement("span");
        leftlink.innerHTML="&nbsp;";
      }
      if (j != units.length - 1) {
        rightlink = document.createElement("a");
        rightlink.href = "javascript:kepValtas("+i+","+j+","+(j+1)+");";
        rightlink.innerHTML="▶";
      } else {
        rightlink = document.createElement("span");
        rightlink.innerHTML="&nbsp;";
      }
      var comment = document.createElement("tt");
      comment.innerHTML = "("+ (j+1) + "/" + units.length + ")";
      with(imghead) {
        style.fontSize="110%";
        style.fontweight="bold";
        appendChild(leftlink);
        appendChild(comment);
        appendChild(rightlink);
      }
      currentimage.insertBefore(imghead,currentimage.childNodes[0]);
      if (j != 0) currentimage.style.display="none";
    }
  }
}
 
$(kepDia);

/*
== Knávom, azaz a kínai nevek átírását váltogató mechanika ==
 *
 * [[Sablon:Kínai]] stb.
 * Eredeti kód: [[User:Chery/kínai.js]]
*/

kinai_primary = 'magyaros';

function kinai_switch() {
  $('.kinai-szoveg').each(function kinai_switch_foreach() {
    
    var pinyin = '';
    var magyaros = '';
    var hanzi = '';
    var egyeb = '';
    var cimszo = 0;
    var hidden = 0;
    
    $('span', this).each(function kinai_switch_inner_foreach() {
      
      switch ($(this).attr('class')) {
        case 'pinyin':
          pinyin = '<span class="pinyin">' + $(this).html() + '</span>';
          break;
        case 'magyaros':
          magyaros = '<span class="magyaros">' + $(this).html() + '</span>';
          break;
        case 'hanzi':
          hanzi = '<span class="hanzi">' + $(this).html() + '</span>';
          break;
        case 'egyeb':
          egyeb = '<span class="egyeb">' + $(this).html() + '</span>';
          break;
        case 'cimszo':
          cimszo = 1;
          break;
        case 'hidden':
          hidden = 1;
          break;
      }
    })
    
    var str0 = (kinai_primary == 'pinyin') ? magyaros : pinyin;
    var str1 = (kinai_primary == 'pinyin') ? pinyin : magyaros;
    
    if (cimszo) {
      str0 = '<span class="cimszo"><b>' + str0 + '</b></span>';
    }
    
    if (!hidden) {
      str0 += ' ';
      str0 += (hanzi) ? '(' + hanzi + ', <i>' : '<i>(';
      str0 += str1;
      str0 += (egyeb) ? ',</i> ' + egyeb + ')' : ')</i>';
    } else {
      if (hanzi) {
        str0 += ' (' + hanzi + ')';
      }
      str0 += '<span class="hidden">' + str1 + '</span>';
    }
    
    $(this).html(str0);
  });
  
  if (kinai_primary == 'pinyin') {
    kinai_primary = 'magyaros';
    localStorage.setItem('kinai-primary', 'magyaros');
  } else {
    kinai_primary = 'pinyin';
    localStorage.setItem('kinai-primary', 'pinyin');
  }
}


// Betöltődéskor indítjuk

$(function magyarosKinaiInit() {

  // Csak akkor rakjuk ki a fület, ha van a cikkben megjelölt kínai név.
  if ( $('.kinai-szoveg').length === 0 ){
    return;
  }

  // Odacsapjuk a fület.
  var portletLink = mw.util.addPortletLink('p-cactions', '#', 'p./m.', 'ca-kinai-switch', 'Váltás pinyin és magyaros átírás közt');
  $( portletLink ).click( function ( e ) {
    e.preventDefault();
    kinai_switch();
  });

  //Meg a kapcsolót a szócikk fölötti szöveghez is.
  $("<a href='#'></a>")
    .click( function ( e ) {
      e.preventDefault();
      kinai_switch();
    })
    .html($('#kinai_switch').clone())
    .insertBefore($('#kinai_switch').hide());
  
  // Váltunk is rögtön, hogy kezdetben is a szkript szerint jelenjen meg. Persze ezt szebben is lehetne.
  kinai_primary = (localStorage.getItem('kinai-primary') == 'pinyin') ? 'magyaros' : 'pinyin';
  kinai_switch();
});


/*
== Kéthasábos forráslista kikapcsolása, ha <4 forrás van ==
*/

if ($.client.profile().layout == "gecko" || $.client.profile().layout == "webkit" || $.client.profile().layout == "presto") {
  $(function dynamicMultiColumn() {
    $('div.ref-1col > div').each(function() {
      if ($(this).find('li').length < 4) {
        this.removeAttribute("style");
      }
    });
  });
}


/*
== Keresési kifejezések naplózása névtelenül a Squidek által ==
*/

// Change search forms so they send to an URL which has the search term in the 
// path (not just in the query part). This in necessary for getting search 
// statistics from the squid logs.
// Based on [[wikt:de:MediaWiki:If-search.js]].

function SubSearch(formId, inputId) {
  var form = $('#' + formId);
  var input = $('#' + inputId);
  if (input.val() == '') {
    delimiter = '';
  } else {
    delimiter = '/';
  }
  form.attr('action', mw.config.get('wgArticlePath').replace('$1', oSEAp + delimiter + encodeURIComponent(input.val())));
  // Try to remove <input name="title"> from the <form>
  form.find('input[name="title"]:first').remove();
}

function fixSearchForm(formId, inputId) {
  $('#' + formId).submit(function() {
    SubSearch(formId, inputId);
  });
}

$(document).ready(function() {
  fixSearchForm('searchform', 'searchInput');
  fixSearchForm('search', 'searchText');
  fixSearchForm('powersearch', 'powerSearchText');
  fixSearchForm('bodySearch', 'bodySearchIput');
  if (!$('#searchform').length) {
    oSEAp = '';
  } else if ($('#searchform').attr('action').indexOf(mw.config.get('wgScript')) > -1) {
    oSEAp = $('#searchform').find('input').val();
  } else {
    oSEAp = $('#searchform').attr('action').replace(/^.*\/([^\/]+)$/, '$1');
 }
});

/*
== Szerkesztői lapok testreszabása ==
- Megjelenő cím cseréje szerkesztő(vita), Wikipédia(-vita) és portálnévterekben
- Megjelenő alcím cseréje és virtuális kategóriák megjelenítése szerkesztőnévtérben
- Betűtípus és háttérszín módosítása szerkesztő(vita) névtérben
*/
if (
	[
		2, 3, // szerkesztői lap és vitája
		4, 5, // Wikipédia-lap és vitája
		100 // portál
	].indexOf( mw.config.get( 'wgNamespaceNumber' ) ) > -1
) {
	mw.loader.load( 'ext.gadget.userpage-customization' );
}

/*
== Erőforrástakarékos üzenet a TranslateWikin való MediaWiki-felület-fordításra ==
*/
$(document).ready(function() {
  if (mw.config.get('wgNamespaceNumber') == 8 && mw.config.get('wgPageName').match(/\.js$|\.css$/) === null) {
    $('<div></div>')
      .addClass('editwarning')
      .addClass('plainlinks')
      .addClass('translateWikiMessage')
      .html('<b>Ha olyan üzenetet fordítasz, amely nem Wikipédia-specifikus, akkor azt a <a href="//translatewiki.net" class="external text" style="color: #002bb8;" title="translatewiki.net" rel="nofollow">Translatewikiben</a> tedd, hogy így minden magyar nyelvű Wikimedia-projekt számára elérhető legyen!</b> (<a href="//translatewiki.net/wiki/' + mw.config.get('wgPageName') + '/hu" class="external text" style="color: #002bb8;" title="' + mw.config.get('wgPageName') + ' magyar változatának megtekintése a Translatewikiben" rel="nofollow">→ezen üzenet megtekintése a Translatewikiben</a>, <a href="//translatewiki.net/wiki/' + mw.config.get('wgPageName') + '/hu?action=edit" class="external text" style="color: #002bb8;" title="' + mw.config.get('wgPageName') + ' magyar változatának szerkesztése a Translatewikiben" rel="nofollow" style>szerkesztés</a>)')
      .appendTo($('#siteSub'));
  }
});

/*
== Flagrev bugfix ==
*/

$(function() {
//  $('#mw-fr-revisiontag').css("display", "block");
  $('#mw-fr-revisiontoggle').attr('title', null);
});

/*
== Figyelmeztető ikon a kezdőlap vitáján, ha hiányzó allapok vannak ==
*/

if (mw.config.get('wgPageName') == 'Vita:Kezdőlap') {
   $('#header-container').bind('tabsetReady', function(e) {
      if ($.trim($('#urgent-tasks').text())) {
         $('#ts-headerTabs li a:contains("Tennivalók")').append(
            $('<img src="/media/wikipedia/commons/c/c0/Exclamation.png"/>').css('margin-left', '5px')
         );
      }
   });
}