// @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt GPL-3.0 // Enable transitions between themes without reloading page var Themes = { AUTO: "auto", LIGHT: "light", DARK: "dark" }; window.addEventListener("load", function() { var width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; // Add trees if (!document.querySelector(".tree")) { for (var x = 0; x < width; x += 240) { var left = x + Math.floor(Math.random() * 240 / 2); var bottom = Math.floor(Math.random() * 150); for (var i = 0; i < 2; i++) { var theme = ["light", "dark"][i]; var img = document.createElement("img"); img.src = "/assets/img/tree_" + theme + (window.SVGElement ? ".svg" : ".png"); img.className = theme + " tree"; img.height = 300; img.alt = ""; img.style.position = "fixed"; img.style.left = left + "px"; img.style.bottom = bottom + "px"; document.body.appendChild(img); } } } // Add click listener to theme buttons var themeBtns = document.getElementsByClassName("theme-btn"); for (var i = 0; i < themeBtns.length; i++) { themeBtns[i].onclick = function(e) { var event = e || window.event; var target = event.target || event.srcElement; event.returnValue = false; if (event.preventDefault) event.preventDefault(); // Ignore if already selected if (target.className.indexOf("selected") > -1) return; // Get new theme var theme = target.getAttribute("data-theme"); // Apply theme changes if (theme === Themes.AUTO) { document.cookie = "theme=; expires=Tue, 19 Jan 2038 03:14:08 GMT"; } else { document.cookie = "theme=" + theme + "; expires=Tue, 19 Jan 2038 03:14:08 GMT" } // Enable / disable the right stylesheets var themeStyles = document.getElementsByClassName("theme-style"); for (var i = 0; i < themeStyles.length; i++) { themeStyles[i].disabled = true; if (themeStyles[i].getAttribute("data-theme") === theme) themeStyles[i].disabled = false; } // Force redrawing of containers because of a bug in IE8 var containers = document.getElementsByClassName("container"); for (var i = 0; i < containers.length; i++) containers[i].className += ""; } } }, false); // @license-end