// theme-configs.js const automateThemeSelection = false; // Set to false to disable automatic theme selection based on the current month const defaultTheme = 'snowfall'; // The theme to use if automatic theme selection is disabled // theme configurations const themeConfigs = { snowflakes: { css: 'snowflakes.css', js: 'snowflakes.js', containerClass: 'snowflakes' }, snowfall: { js: 'snowfall.js', containerClass: 'snowfall' }, snowstorm: { css: 'snowstorm.css', js: 'snowstorm.js', containerClass: 'snowstorm' }, fireworks: { css: 'fireworks.css', js: 'fireworks.js', containerClass: 'fireworks' }, halloween: { css: 'halloween.css', js: 'halloween.js', containerClass: 'halloween' }, summer: { css: 'summer.css', js: 'summer.js', containerClass: 'summer' }, autumn: { css: 'autumn.css', js: 'autumn.js', containerClass: 'autumn' }, spring: { css: 'spring.css', js: 'spring.js', containerClass: 'spring' }, }; // determine current theme based on the current month function determineCurrentTheme() { const date = new Date(); const month = date.getMonth(); const day = date.getDate(); if (month === 11 || month === 0 || month === 1) return 'snowfall'; // december, january, february if (month === 9 && day === 31) return 'halloween'; // halloween if (month === 0 && day === 1) return 'fireworks'; //new year if (month >= 2 && month <= 4) return 'spring'; if (month >= 5 && month <= 7) return 'summer'; if (month >= 8 && month <= 10) return 'autumn'; return ''; // Fallback (nothing) } // load theme csss function loadThemeCSS(cssPath) { const link = document.createElement('link'); link.rel = 'stylesheet'; link.href = cssPath; document.head.appendChild(link); console.log(`CSS file "${cssPath}" loaded.`); } // load theme js function loadThemeJS(jsPath) { const script = document.createElement('script'); script.src = jsPath; document.body.appendChild(script); console.log(`JS file "${jsPath}" loaded.`); } // update theme container class name function updateThemeContainer(containerClass) { const container = document.querySelector('.seasonal-container'); if (!container) { console.error('No element with the class "seasonal-container" found.'); return; } container.className = containerClass; } // initialize theme function initializeTheme() { if (!automateThemeSelection) { const currentTheme = defaultTheme; } else { const currentTheme = determineCurrentTheme(); } const theme = themeConfigs[currentTheme]; if (!theme) { console.error(`Theme "${currentTheme}" not found.`); return; } if (theme.css) loadThemeCSS(theme.css); if (theme.js) loadThemeJS(theme.js); updateThemeContainer(theme.containerClass); console.log(`Theme "${currentTheme}" loaded.`); } //document.addEventListener('DOMContentLoaded', initializeTheme); document.addEventListener('DOMContentLoaded', () => { initializeTheme(); });