MediaWiki:Common.js: Difference between revisions

From Wiki Grepolis EN
Jump to navigation
No edit summary
No edit summary
 
(48 intermediate revisions by 6 users not shown)
Line 1: Line 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.
// Rewrite of announcement display. (by Menidan)
$ (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 jQueryScriptOutputted = false;
var announcementList = $ (".announcement");
function initJQuery() {
var currentAnnouncement = 0;
   
var announcementVisibilityTime = 10000; // ms
    //if the jQuery object isn't available
    if (typeof(jQuery) == 'undefined') {
   
   
        if (! jQueryScriptOutputted) {
            //only output the script once..
            jQueryScriptOutputted = true;
           
            //output the script (load it from google api)
            document.write("<scr" + "ipt type=\"text/javascript\" src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js\"></scr" + "ipt>");


        }
announcementList.hide ();
        setTimeout("initJQuery()", 50);
if (announcementList.length > 1) {
    } else {
$ (announcementList [0]).fadeIn ();
                       
setInterval (changeAnnouncement, announcementVisibilityTime);
        $(function() {
} 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));
}
}
initJQuery();
 
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));
}) ();

Latest revision as of 18:32, 26 March 2018

/* Any JavaScript here will be loaded for all users on every page load. */
// Old Global.js.
// Rewrite of announcement display. (by Menidan)
$ (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));
}) ();