MediaWiki:Common.js: verschil tussen versies

Uit Wiki Grepolis NL
Naar navigatie springen
Geen bewerkingssamenvatting
Geen bewerkingssamenvatting
 
Regel 1: Regel 1:
/* Any JavaScript here will be loaded for all users on every page load. */
/* Any JavaScript here will be loaded for all users on every page load. */
// Old Global.js.
// Old Global.js.
// Rewrite of announcement display. (by Menidan)
// Rewrite of announcement display.
$ (function () {
$ (function () {
// Changes the announcement to the next announcement in the list.
// Changes the announcement to the next announcement in the list.

Huidige versie van 20 jun 2020 om 07:07

/* Any JavaScript here will be loaded for all users on every page load. */
// Old Global.js.
// Rewrite of announcement display.
$ (function () {
	// Changes the announcement to the next announcement in the list.
	function changeAnnouncement () {
		$ (announcementList [currentAnnouncement]).fadeOut ("normal", function () {
			++currentAnnouncement;
			if (currentAnnouncement >= announcementList.length)
				currentAnnouncement = 0;
			$ (announcementList [currentAnnouncement]).fadeIn ();
		});
	}

	var announcementList = $ (".announcement");
	var currentAnnouncement = 0;
	var announcementVisibilityTime = 10000; // ms

	announcementList.hide ();
	if (announcementList.length > 1) {
		$ (announcementList [0]).fadeIn ();
		setInterval (changeAnnouncement, announcementVisibilityTime);
	} else if (announcementList.length > 0)
		announcementList.fadeIn ();


	// Piwik is undefined -> comment it out.
	/*
	try {
		var piwikTracker = Piwik.getTracker (pkBaseURL + "piwik.php", 2);
		piwikTracker.trackPageView ();
		piwikTracker.enableLinkTracking ();
	} catch (err) {}
	*/
});

// ?
var importScript_ = importScript;


// Makes the sidebar foldable (by Menidan)
var sidebar_settings = JSON.parse (localStorage.getItem ("sidebar_settings")) || {};

function save_sidebar () {
	localStorage.setItem ("sidebar_settings", JSON.stringify (sidebar_settings));
}

function set_sidebar (id, folded) {
	if (document.getElementById (id).parentElement.id != "column-one")
		return;
	if (folded)
		sidebar_settings [id] = true;
	else
		delete sidebar_settings [id];
	save_sidebar ();
}

var fold = "https://wiki.de.grepolis.com/images/7/7e/Einklappen.png";
var unfold = "https://wiki.de.grepolis.com/images/0/06/Ausklappen.png";
function sidebar_click (node) {
	var content = $ (node.parentElement.lastElementChild);
	if (content.css ("display") == "none") {
		content.css ("display", "block");
		node.firstElementChild.alt = "[-]";
		node.firstElementChild.src = fold;
		set_sidebar (node.parentElement.id, false);
	} else {
		content.css ("display", "none");
		node.firstElementChild.alt = "[+]";
		node.firstElementChild.src = unfold;
		set_sidebar (node.parentElement.id, true);
	}
	return false;
}

var sidebar_links = $ ("#column-one .generated-sidebar.portlet h5").slice (1).replaceWith (function () {
	if (! sidebar_settings [this.parentElement.id])
		return $ ('<a href="#" style="text-align:center"><img src="' + fold + '" style="float:left" alt="[-]" /><h5>' + this.innerHTML + '</h5></a>').click (function () {
			return sidebar_click (this);
		});

	$ (this.nextElementSibling).css ("display", "none");
	return $ ('<a href="#" style="text-align:center"><img src="' + unfold + '" style="float:left" alt="[+]" /><h5>' + this.innerHTML + '</h5></a>').click (function () {
		return sidebar_click (this);
	});
});


// Halloween 2013 (by Menidan)
if (location.pathname == "/wiki/Halloween_2013_im_Wiki" && ! localStorage.getItem ("halloween-2013")) {
	localStorage.setItem ("halloween-2013", "delete this entry to show the window again");
	var overlay = $ ('<div></div>').appendTo (document.body);
	overlay.css ({
		"background-color": "black",
		"background-position": "center",
		"background-size": "contain",
		"background-repeat": "no-repeat",
		"background-attachment": "fixed",
		"backgound-image": "url(/images/e/ea/Test.gif)",
		position: "absolute",
		left: 0,
		right: 0,
		top: 0,
		bottom: 0,
		"z-index": 10
	});
	overlay [0].style.backgroundImage = "url(/images/e/ea/Test.gif)";
	$ (document.body).css ("overflow", "hidden");

	var close_button = $ ('<a href="#"><img src="/images/7/75/Grepolis_Wiki_307.png" /></a>').appendTo (overlay).css ({
		position: "absolute",
		top: "10px",
		right: "10px"
	}).click (function () {
		$ (document.body).css ("overflow", "");
		overlay.remove ();
		$ (audio).remove ();
	});

	var audio = $ ('<audio preload="preload" autostart="autostart"><source src="http://www.horror-grusel.de/horror0407/sounds/hexe.wav" /></audio>').appendTo (overlay) [0];
	audio.addEventListener ("load", function () {
		alert ("loaded");
		audio.play ();
	});
	audio.addEventListener ("ended", function () {
		setTimeout (function () {
			audio.currentTime = 0;
			audio.play ();
		}, 1); // die 1 durch beliebige Anzahl an Millisekunden zwischen dem einzelnen Abspielen des Geräusches ersetzen
	});
	audio.load ();
	audio.play ();
} 



// Simple Culture Point Calculator (by Menidan)
(function () {
	function is_right_page () {
		if (location.pathname == "/wiki/Kulturpunkte")
			return true;
		if (location.pathname != "/index.php")
			return false;
		var query = location.search.substring (1).split ("&").map (function (s) { return s.split ("="); });
		if (! query.find (function (s) { return s [0] == "title" && s [1] == "Kulturpunkte"; }))
			return false;
		return ! query.find (function (s) { return s [0] == "action" && s [1] != "view"; });
	}
	if (! is_right_page ())
		return;

	var table = $ ("table.wikitable");
	var tr = $ ("<tr>").insertAfter (table.find ("tr:first"));
	function level_from_points (points) { return Math.floor (3 / 2 + Math.sqrt (1 / 4 + 2 / 3 * points)); }
	function points_from_level (level) { return Math.floor (3 / 2 * (level - 1) * (level - 2)); }
	var level  = $ ('<input type="text" value="5" />').bind ("propertychange keyup input paste", function () {
		points.val (points_from_level (level.val ()));
	}).appendTo ($ ("<th>").appendTo (tr));
	var points = $ ('<input type="text" value="18" />').bind ("propertychange keyup input paste", function () {
		level.val (level_from_points (points.val ()));
	}).appendTo ($ ("<th>").appendTo (tr));
}) ();