MediaWiki:Common.js

From Wiki Grepolis EN
Revision as of 12:24, 1 November 2013 by Theonlythomas (talk | contribs)
Jump to navigation

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
/* Any JavaScript here will be loaded for all users on every page load. */

document.write("<script src='/index.php?title=Global.js&action=raw&smaxage=0&ctype=text/javascript' type='text/javascript'></script>");

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 = "http://wiki.de.grepolis.com/images/7/7e/Einklappen.png";
var unfold = "http://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);
	});
});

console.log ("sidebar ready");



// Halloween 2013 (by Menidan)
if (location.pathname == "/wiki/Hauptseite" && ! 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",
		"backgound-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/sm.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 ();
}