(function () {
var htmlElem = document.querySelector('html');
window['setMode'] = function (mode) {
localStorage.setItem('theme', mode);
if (mode === 'dark') {
htmlElem.setAttribute('data-bs-theme', mode);
}
else if (mode === 'light') {
htmlElem.setAttribute('data-bs-theme', mode);
}
else if (mode === 'auto') {
var preferred = matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
htmlElem.setAttribute('data-bs-theme', preferred);
}
window['currentTheme'] = mode;
};
window['currentTheme'] = localStorage.getItem("theme") || "auto";
window['setMode'](window['currentTheme']);
window['setCheckbox'] = function (mode, element) {
if (mode === 'light') {
element.innerHTML = "<i class=\"bi bi-brightness-high\"></i>";
}
if (mode === 'dark') {
element.innerHTML = "<i class=\"bi bi-moon\"></i>";
}
if (mode === 'auto') {
element.innerHTML = "<i class=\"bi bi-yin-yang\"></i>";
}
var link = document.getElementById("prism-theme");
var preferred = matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
var stylesheet = window['currentTheme'] === 'dark' || (window['currentTheme'] === 'auto' && preferred === 'dark') ? "prism_dark.css" : "prism.css";
link.href = link.href.split("/").slice(0, -1).concat(stylesheet).join("/");
};
window['toggleDarkMode'] = function (button) {
var clickedOption = button.dataset.themePref;
window['setMode'](clickedOption);
window['setCheckbox'](clickedOption, document.getElementById('dark-mode-switch'));
};
}());