(function() {
var $html = document.documentElement;
var $themeToggle = document.getElementById('theme-toggle');
var $logo = document.querySelector('.site-logo img');
function applyTheme() {
var palette = localStorage.getItem('palette') || 'auto';
var prefersDark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
var shouldUseDark = palette === 'dark' || (palette === 'auto' && prefersDark);
$html.setAttribute('data-palette', palette);
if ($themeToggle) {
var titles = { auto: 'Switch to light mode', light: 'Switch to dark mode', dark: 'Switch to system preference' };
$themeToggle.setAttribute('title', titles[palette]);
}
if ($logo) {
$logo.src = shouldUseDark ? '/assets/images/edgecloud-dark.png' : '/assets/images/edgecloud.png';
}
var link = document.getElementById('dark-theme-style');
if (shouldUseDark) {
$html.classList.add('dark');
if (!link) {
link = document.createElement('link');
link.rel = 'stylesheet';
link.id = 'dark-theme-style';
link.href = '/assets/css/dark.css';
document.head.appendChild(link);
}
} else {
$html.classList.remove('dark');
if (link) {
link.disabled = true;
setTimeout(function() {
if (link.parentNode) {
link.parentNode.removeChild(link);
}
}, 0);
}
}
}
if ($themeToggle) {
$themeToggle.addEventListener('click', function() {
var palette = localStorage.getItem('palette') || 'auto';
var newPalette = palette === 'auto' ? 'light' : (palette === 'light' ? 'dark' : 'auto');
localStorage.setItem('palette', newPalette);
applyTheme();
});
}
if (window.matchMedia) {
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', function() {
if ((localStorage.getItem('palette') || 'auto') === 'auto') {
applyTheme();
}
});
}
applyTheme();
})();