MediaWiki:Common.js: Difference between revisions

From Heroes 3 wiki
Jump to navigation Jump to search
(this mediawiki version requires ecma 5)
No edit summary
Line 43: Line 43:
preferredExpansion = 'sod';
preferredExpansion = 'sod';
switchExpansion.textContent = 'Switch to Horn of the Abyss';
switchExpansion.textContent = 'Switch to Horn of the Abyss';
hideElements('.onlyhota');
showElements('.onlysod');
showElements('.onlysod');
hideElements('.onlyhota');
} else {
} else {
preferredExpansion = 'hota';
preferredExpansion = 'hota';
switchExpansion.textContent = 'Switch to Shadow of Death';
switchExpansion.textContent = 'Switch to Shadow of Death';
hideElements('.onlysod');
showElements('.onlyhota');
showElements('.onlyhota');
hideElements('.onlysod');
}
}
var CookieDate = new Date();
var CookieDate = new Date();
Line 77: Line 77:
if (getCookie('preferredExpansion') == 'hota') {
if (getCookie('preferredExpansion') == 'hota') {
switchExpansion.textContent = 'Switch to Shadow of Death';
switchExpansion.textContent = 'Switch to Shadow of Death';
hideElements('.onlysod');
showElements('.onlyhota');
showElements('.onlyhota');
hideElements('.onlysod');
} else {
} else {
switchExpansion.textContent = 'Switch to Horn of the Abyss';
switchExpansion.textContent = 'Switch to Horn of the Abyss';
hideElements('.onlyhota');
showElements('.onlysod');
showElements('.onlysod');
hideElements('.onlyhota');
}
}
}
}

Revision as of 22:36, 26 January 2024

/* Any JavaScript here will be loaded for all users on every page load. */

(function() {

function getCookie(cname) {
	var name = cname + '=';
	var decodedCookie = decodeURIComponent(document.cookie);
	var ca = decodedCookie.split(';');
	for (var i = 0; i <ca.length; i++) {
		var c = ca[i];
		while (c.charAt(0) == ' ') {
			c = c.substring(1);
		}
		if (c.indexOf(name) == 0) {
			return c.substring(name.length, c.length);
		}
	}
	return '';
}

function showElements(desc) {
	var elems = document.querySelectorAll(desc);
	for (var i = 0; i < elems.length; i++) {
		elems[i].style = '';
	}
	elems = document.querySelectorAll('.switchExpansion' + desc);
	for (var i = 0; i < elems.length; i++) {
		elems[i].style = 'cursor: pointer; color: rgb(102, 177, 250);';
	}
}

function hideElements(desc) {
	var elems = document.querySelectorAll(desc);
	for (var i = 0; i < elems.length; i++) {
		elems[i].style = 'display:none;';
	}
}

function togglePreferredExpansion() {
	var preferredExpansion = getCookie('preferredExpansion');
	var switchExpansion = document.querySelector('#switchExpansion');
	if (preferredExpansion == 'hota') {
		preferredExpansion = 'sod';
		switchExpansion.textContent = 'Switch to Horn of the Abyss';
		hideElements('.onlyhota');
		showElements('.onlysod');
	} else {
		preferredExpansion = 'hota';
		switchExpansion.textContent = 'Switch to Shadow of Death';
		hideElements('.onlysod');
		showElements('.onlyhota');
	}
	var CookieDate = new Date();
	CookieDate.setFullYear(CookieDate.getFullYear() + 1);
	document.cookie = 'preferredExpansion=' + preferredExpansion + '; expires=' + CookieDate.toUTCString() + ';';
}

function initPreferredExpansion() {
	var userlink = 	document.querySelector('#pt-anonuserpage');
	if (!userlink) {
		userlink = document.querySelector('#pt-userpage');
	}
	if (userlink) {
		var switchExpansion = document.querySelector('#switchExpansion');
		if (!switchExpansion) {
			switchExpansion = document.createElement('li');
			switchExpansion.style = 'cursor: pointer; color: rgb(102, 177, 250);';
			switchExpansion.id = 'switchExpansion';
			switchExpansion.addEventListener('click', togglePreferredExpansion);
			userlink.parentElement.insertBefore(switchExpansion, null);
			var elems = document.querySelectorAll('.switchExpansion');
			for (var i = 0; i < elems.length; i++) {
				elems[i].addEventListener('click', togglePreferredExpansion);
				elems[i].style = 'cursor: pointer; color: rgb(102, 177, 250);';
			}
		}
		if (getCookie('preferredExpansion') == 'hota') {
			switchExpansion.textContent = 'Switch to Shadow of Death';
			hideElements('.onlysod');
			showElements('.onlyhota');
		} else {
			switchExpansion.textContent = 'Switch to Horn of the Abyss';
			hideElements('.onlyhota');
			showElements('.onlysod');
		}
	}
}

window.addEventListener('readystatechange', function() {
	initPreferredExpansion();
});

window.addEventListener('DOMContentLoaded', function() {
	initPreferredExpansion();
});

window.addEventListener('load', function() {
	initPreferredExpansion();
});

initPreferredExpansion();

})();