From 9b8a563e4348692419323db45c072838eaa8f662 Mon Sep 17 00:00:00 2001 From: CodeDevMLH <145071728+CodeDevMLH@users.noreply.github.com> Date: Tue, 24 Feb 2026 19:25:42 +0100 Subject: [PATCH] Add new seasonal options: implement Frost, Film Noir, Oscar, Mario Day, Star Wars, Oktoberfest, Friday the 13th, Eid, Legacy Halloween, Sports, Olympia, Space, Underwater, and Birthday features in configuration [skip ci] --- .../Configuration/PluginConfiguration.cs | 122 ++++ .../Configuration/configPage.html | 556 +++++++++++++++++- 2 files changed, 676 insertions(+), 2 deletions(-) diff --git a/Jellyfin.Plugin.Seasonals/Configuration/PluginConfiguration.cs b/Jellyfin.Plugin.Seasonals/Configuration/PluginConfiguration.cs index 690e04d..30a61a0 100644 --- a/Jellyfin.Plugin.Seasonals/Configuration/PluginConfiguration.cs +++ b/Jellyfin.Plugin.Seasonals/Configuration/PluginConfiguration.cs @@ -38,6 +38,20 @@ public class PluginConfiguration : BasePluginConfiguration Pride = new PrideOptions(); EarthDay = new EarthDayOptions(); Rain = new RainOptions(); + Frost = new FrostOptions(); + FilmNoir = new FilmNoirOptions(); + Oscar = new OscarOptions(); + MarioDay = new MarioDayOptions(); + StarWars = new StarWarsOptions(); + Oktoberfest = new OktoberfestOptions(); + Friday13 = new Friday13Options(); + Eid = new EidOptions(); + LegacyHalloween = new LegacyHalloweenOptions(); + Sports = new SportsOptions(); + Olympia = new OlympiaOptions(); + Space = new SpaceOptions(); + Underwater = new UnderwaterOptions(); + Birthday = new BirthdayOptions(); } /// @@ -89,6 +103,20 @@ public class PluginConfiguration : BasePluginConfiguration public PrideOptions Pride { get; set; } public EarthDayOptions EarthDay { get; set; } public RainOptions Rain { get; set; } + public FrostOptions Frost { get; set; } + public FilmNoirOptions FilmNoir { get; set; } + public OscarOptions Oscar { get; set; } + public MarioDayOptions MarioDay { get; set; } + public StarWarsOptions StarWars { get; set; } + public OktoberfestOptions Oktoberfest { get; set; } + public Friday13Options Friday13 { get; set; } + public EidOptions Eid { get; set; } + public LegacyHalloweenOptions LegacyHalloween { get; set; } + public SportsOptions Sports { get; set; } + public OlympiaOptions Olympia { get; set; } + public SpaceOptions Space { get; set; } + public UnderwaterOptions Underwater { get; set; } + public BirthdayOptions Birthday { get; set; } } public class AutumnOptions @@ -146,6 +174,8 @@ public class HalloweenOptions public bool EnableRandomSymbols { get; set; } = true; public bool EnableRandomSymbolsMobile { get; set; } = false; public bool EnableDifferentDuration { get; set; } = true; + public bool EnableSpiders { get; set; } = true; + public bool EnableMice { get; set; } = true; } public class HeartsOptions @@ -254,6 +284,7 @@ public class PiDayOptions public bool EnableRandomPiDay { get; set; } = true; public bool EnableRandomPiDayMobile { get; set; } = false; public bool EnableDifferentDuration { get; set; } = true; + public bool EnablePiDayBackground { get; set; } = false; } public class EurovisionOptions @@ -298,3 +329,94 @@ public class RainOptions public int RaindropCountMobile { get; set; } = 150; public double RainSpeed { get; set; } = 1; } + +public class FrostOptions +{ + public bool EnableFrost { get; set; } = true; +} + +public class FilmNoirOptions +{ + public bool EnableFilmNoir { get; set; } = true; +} + +public class OscarOptions +{ + public bool EnableOscar { get; set; } = true; +} + +public class MarioDayOptions +{ + public bool EnableMarioDay { get; set; } = true; +} + +public class StarWarsOptions +{ + public bool EnableStarWars { get; set; } = true; +} + +public class OktoberfestOptions +{ + public bool EnableOktoberfest { get; set; } = true; +} + +public class Friday13Options +{ + public bool EnableFriday13 { get; set; } = true; +} + +public class EidOptions +{ + public bool EnableEid { get; set; } = true; +} + +public class LegacyHalloweenOptions +{ + public bool EnableLegacyHalloween { get; set; } = true; + public int SymbolCount { get; set; } = 25; +} + +public class SportsOptions +{ + public int SymbolCount { get; set; } = 25; + public bool EnableSports { get; set; } = true; + public bool EnableRandomSymbols { get; set; } = true; + public bool EnableRandomSymbolsMobile { get; set; } = false; + public bool EnableDifferentDuration { get; set; } = true; +} + +public class OlympiaOptions +{ + public int SymbolCount { get; set; } = 25; + public bool EnableOlympia { get; set; } = true; + public bool EnableRandomSymbols { get; set; } = true; + public bool EnableRandomSymbolsMobile { get; set; } = false; + public bool EnableDifferentDuration { get; set; } = true; +} + +public class SpaceOptions +{ + public int SymbolCount { get; set; } = 25; + public bool EnableSpace { get; set; } = true; + public bool EnableRandomSymbols { get; set; } = true; + public bool EnableRandomSymbolsMobile { get; set; } = false; + public bool EnableDifferentDuration { get; set; } = true; +} + +public class UnderwaterOptions +{ + public int SymbolCount { get; set; } = 15; + public bool EnableUnderwater { get; set; } = true; + public bool EnableRandomSymbols { get; set; } = true; + public bool EnableRandomSymbolsMobile { get; set; } = false; + public bool EnableDifferentDuration { get; set; } = true; +} + +public class BirthdayOptions +{ + public int SymbolCount { get; set; } = 25; + public bool EnableBirthday { get; set; } = true; + public bool EnableRandomSymbols { get; set; } = true; + public bool EnableRandomSymbolsMobile { get; set; } = false; + public bool EnableDifferentDuration { get; set; } = true; +} diff --git a/Jellyfin.Plugin.Seasonals/Configuration/configPage.html b/Jellyfin.Plugin.Seasonals/Configuration/configPage.html index da24584..f16e85d 100644 --- a/Jellyfin.Plugin.Seasonals/Configuration/configPage.html +++ b/Jellyfin.Plugin.Seasonals/Configuration/configPage.html @@ -75,12 +75,19 @@ - + - + + + + + + + +
The season to display if automation is disabled or no "Auto Selection" rule matches the current date.
@@ -346,6 +353,37 @@
Randomize the movement speed.
+
+ +
Show dropping spiders that retract on hover.
+
+
+ +
Show scurrying mice at the bottom.
+
+ +
+ +
+ Legacy Halloween +
+ +
Enable the classic Halloween theme (only floating symbols, no fog/spiders).
+
+
+ + +
Number of floating symbols.
+

@@ -797,6 +835,191 @@
+ +
+ Legacy Halloween +
+ + +
Number of additional halloween symbols displayed (if enabled).
+
+
+
+ +
+ Sports +
+ +
Enable the sports theme effects in general (e.g. for automation).
+
+
+ +
+
+ +
+
+ + +
Number of additional symbols displayed (if enabled).
+
+
+ +
+
+
+ +
+ Olympia +
+ +
Enable the olympia theme effects in general (e.g. for automation).
+
+
+ +
+
+ +
+
+ + +
Number of additional symbols displayed (if enabled).
+
+
+ +
+
+
+ +
+ Space +
+ +
Enable the space theme effects in general (e.g. for automation).
+
+
+ +
+
+ +
+
+ + +
Number of additional symbols displayed (if enabled).
+
+
+ +
+
+
+ +
+ Underwater +
+ +
Enable the underwater theme effects in general (e.g. for automation).
+
+
+ +
+
+ +
+
+ + +
Number of additional symbols displayed (if enabled).
+
+
+ +
+
+
+ +
+ Birthday +
+ +
Enable the birthday theme effects in general (e.g. for automation).
+
+
+ +
+
+ +
+
+ + +
Number of additional symbols displayed (if enabled).
+
+
+ +
+
+
Eurovision / Musik @@ -888,6 +1111,13 @@
Randomize the digital rain falling speed.
+
+ +
Displays the Pi-Day animation behind library tiles and content.
+

@@ -984,6 +1214,94 @@
Periodically flash the screen white to simulate lightning.
+
+ +
+ Frost / Ice +
+ +
+
+
+ +
+ Film-Noir +
+ +
+
+
+ +
+ Oscar Awards +
+ +
+
+
+ +
+ Mario Day +
+ +
+
+
+ +
+ Star Wars Day +
+ +
+
+
+ +
+ Oktoberfest +
+ +
+
+
+ +
+ Friday the 13th +
+ +
+
+
+ +
+ Zuckerfest (Eid) +
+ +
+
@@ -1173,6 +1491,15 @@ ' ' + ' ' + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + ' ' + '
' + ''; @@ -1293,12 +1620,55 @@ document.querySelector('#MinFireworks').value = config.Fireworks.MinFireworks; document.querySelector('#MaxFireworks').value = config.Fireworks.MaxFireworks; + // Eid + document.querySelector('#EidSymbolCount').value = config.Eid.SymbolCount || 25; + + // Legacy Halloween + document.querySelector('#LegacyHalloweenSymbolCount').value = config.LegacyHalloween.SymbolCount || 25; + + // Sports + document.querySelector('#EnableSports').checked = config.Sports.EnableSports || false; + document.querySelector('#EnableRandomSymbolsSports').checked = config.Sports.EnableRandomSymbols || false; + document.querySelector('#EnableRandomSymbolsMobileSports').checked = config.Sports.EnableRandomSymbolsMobile || false; + document.querySelector('#EnableDifferentDurationSports').checked = config.Sports.EnableDifferentDuration || false; + document.querySelector('#SportsSymbolCount').value = config.Sports.SymbolCount || 25; + + // Olympia + document.querySelector('#EnableOlympia').checked = config.Olympia.EnableOlympia || false; + document.querySelector('#EnableRandomSymbolsOlympia').checked = config.Olympia.EnableRandomSymbols || false; + document.querySelector('#EnableRandomSymbolsMobileOlympia').checked = config.Olympia.EnableRandomSymbolsMobile || false; + document.querySelector('#EnableDifferentDurationOlympia').checked = config.Olympia.EnableDifferentDuration || false; + document.querySelector('#OlympiaSymbolCount').value = config.Olympia.SymbolCount || 25; + + // Space + document.querySelector('#EnableSpace').checked = config.Space.EnableSpace || false; + document.querySelector('#EnableRandomSymbolsSpace').checked = config.Space.EnableRandomSymbols || false; + document.querySelector('#EnableRandomSymbolsMobileSpace').checked = config.Space.EnableRandomSymbolsMobile || false; + document.querySelector('#EnableDifferentDurationSpace').checked = config.Space.EnableDifferentDuration || false; + document.querySelector('#SpaceSymbolCount').value = config.Space.SymbolCount || 25; + + // Underwater + document.querySelector('#EnableUnderwater').checked = config.Underwater.EnableUnderwater || false; + document.querySelector('#EnableRandomSymbolsUnderwater').checked = config.Underwater.EnableRandomSymbols || false; + document.querySelector('#EnableRandomSymbolsMobileUnderwater').checked = config.Underwater.EnableRandomSymbolsMobile || false; + document.querySelector('#EnableDifferentDurationUnderwater').checked = config.Underwater.EnableDifferentDuration || false; + document.querySelector('#UnderwaterSymbolCount').value = config.Underwater.SymbolCount || 15; + + // Birthday + document.querySelector('#EnableBirthday').checked = config.Birthday.EnableBirthday || false; + document.querySelector('#EnableRandomSymbolsBirthday').checked = config.Birthday.EnableRandomSymbols || false; + document.querySelector('#EnableRandomSymbolsMobileBirthday').checked = config.Birthday.EnableRandomSymbolsMobile || false; + document.querySelector('#EnableDifferentDurationBirthday').checked = config.Birthday.EnableDifferentDuration || false; + document.querySelector('#BirthdaySymbolCount').value = config.Birthday.SymbolCount || 25; + // Halloween document.querySelector('#EnableHalloween').checked = config.Halloween.EnableHalloween; document.querySelector('#HalloweenCount').value = config.Halloween.SymbolCount; document.querySelector('#EnableRandomHalloween').checked = config.Halloween.EnableRandomSymbols; document.querySelector('#EnableRandomHalloweenMobile').checked = config.Halloween.EnableRandomSymbolsMobile; document.querySelector('#EnableDifferentDurationHalloween').checked = config.Halloween.EnableDifferentDuration; + document.querySelector('#EnableSpiders').checked = config.Halloween.EnableSpiders !== undefined ? config.Halloween.EnableSpiders : true; + document.querySelector('#EnableMice').checked = config.Halloween.EnableMice !== undefined ? config.Halloween.EnableMice : true; // Hearts document.querySelector('#EnableHearts').checked = config.Hearts.EnableHearts; @@ -1401,6 +1771,7 @@ document.querySelector('#EnableRandomPiDay').checked = config.PiDay.EnableRandomPiDay; document.querySelector('#EnableRandomPiDayMobile').checked = config.PiDay.EnableRandomPiDayMobile; document.querySelector('#EnableDifferentDurationPiDay').checked = config.PiDay.EnableDifferentDuration; + document.querySelector('#EnablePiDayBackground').checked = config.PiDay.EnablePiDayBackground !== undefined ? config.PiDay.EnablePiDayBackground : false; // Pride document.querySelector('#EnablePride').checked = config.Pride.EnablePride; @@ -1408,6 +1779,10 @@ document.querySelector('#PrideHeartSize').value = config.Pride.HeartSize; document.querySelector('#PrideColorHeader').checked = config.Pride.ColorHeader; + // Legacy Halloween + document.querySelector('#EnableLegacyHalloween').checked = config.LegacyHalloween.EnableLegacyHalloween !== undefined ? config.LegacyHalloween.EnableLegacyHalloween : true; + document.querySelector('#LegacyHalloweenCount').value = config.LegacyHalloween.SymbolCount !== undefined ? config.LegacyHalloween.SymbolCount : 25; + // Rain document.querySelector('#EnableRain').checked = config.Rain.EnableRain; document.querySelector('#RaindropCount').value = config.Rain.RaindropCount; @@ -1446,6 +1821,66 @@ config.Autumn.EnableDifferentDuration = document.querySelector('#EnableDifferentDurationAutumn').checked; config.Autumn.EnableRotation = document.querySelector('#EnableRotation').checked; + // Friday13 + if (!config.Friday13) config.Friday13 = {}; + config.Friday13.EnableFriday13 = document.querySelector('#EnableFriday13').checked; + config.Friday13.SymbolCount = parseInt(document.querySelector('#Friday13SymbolCount').value); + config.Friday13.EnableRandomSymbols = document.querySelector('#EnableRandomFriday13').checked; + config.Friday13.EnableRandomSymbolsMobile = document.querySelector('#EnableRandomFriday13Mobile').checked; + config.Friday13.EnableDifferentDuration = document.querySelector('#EnableDifferentDurationFriday13').checked; + + // Eid + if (!config.Eid) config.Eid = {}; + config.Eid.EnableEid = document.querySelector('#EnableEid').checked; + config.Eid.EnableRandomSymbols = document.querySelector('#EnableRandomEid').checked; + config.Eid.EnableRandomSymbolsMobile = document.querySelector('#EnableRandomEidMobile').checked; + config.Eid.EnableDifferentDuration = document.querySelector('#EnableDifferentDurationEid').checked; + config.Eid.SymbolCount = parseInt(document.querySelector('#EidSymbolCount').value); + + // Legacy Halloween + if (!config.LegacyHalloween) config.LegacyHalloween = {}; + config.LegacyHalloween.SymbolCount = parseInt(document.querySelector('#LegacyHalloweenSymbolCount').value); + + // Sports + if (!config.Sports) config.Sports = {}; + config.Sports.EnableSports = document.querySelector('#EnableSports').checked; + config.Sports.EnableRandomSymbols = document.querySelector('#EnableRandomSymbolsSports').checked; + config.Sports.EnableRandomSymbolsMobile = document.querySelector('#EnableRandomSymbolsMobileSports').checked; + config.Sports.EnableDifferentDuration = document.querySelector('#EnableDifferentDurationSports').checked; + config.Sports.SymbolCount = parseInt(document.querySelector('#SportsSymbolCount').value); + + // Olympia + if (!config.Olympia) config.Olympia = {}; + config.Olympia.EnableOlympia = document.querySelector('#EnableOlympia').checked; + config.Olympia.EnableRandomSymbols = document.querySelector('#EnableRandomSymbolsOlympia').checked; + config.Olympia.EnableRandomSymbolsMobile = document.querySelector('#EnableRandomSymbolsMobileOlympia').checked; + config.Olympia.EnableDifferentDuration = document.querySelector('#EnableDifferentDurationOlympia').checked; + config.Olympia.SymbolCount = parseInt(document.querySelector('#OlympiaSymbolCount').value); + + // Space + if (!config.Space) config.Space = {}; + config.Space.EnableSpace = document.querySelector('#EnableSpace').checked; + config.Space.EnableRandomSymbols = document.querySelector('#EnableRandomSymbolsSpace').checked; + config.Space.EnableRandomSymbolsMobile = document.querySelector('#EnableRandomSymbolsMobileSpace').checked; + config.Space.EnableDifferentDuration = document.querySelector('#EnableDifferentDurationSpace').checked; + config.Space.SymbolCount = parseInt(document.querySelector('#SpaceSymbolCount').value); + + // Underwater + if (!config.Underwater) config.Underwater = {}; + config.Underwater.EnableUnderwater = document.querySelector('#EnableUnderwater').checked; + config.Underwater.EnableRandomSymbols = document.querySelector('#EnableRandomSymbolsUnderwater').checked; + config.Underwater.EnableRandomSymbolsMobile = document.querySelector('#EnableRandomSymbolsMobileUnderwater').checked; + config.Underwater.EnableDifferentDuration = document.querySelector('#EnableDifferentDurationUnderwater').checked; + config.Underwater.SymbolCount = parseInt(document.querySelector('#UnderwaterSymbolCount').value); + + // Birthday + if (!config.Birthday) config.Birthday = {}; + config.Birthday.EnableBirthday = document.querySelector('#EnableBirthday').checked; + config.Birthday.EnableRandomSymbols = document.querySelector('#EnableRandomSymbolsBirthday').checked; + config.Birthday.EnableRandomSymbolsMobile = document.querySelector('#EnableRandomSymbolsMobileBirthday').checked; + config.Birthday.EnableDifferentDuration = document.querySelector('#EnableDifferentDurationBirthday').checked; + config.Birthday.SymbolCount = parseInt(document.querySelector('#BirthdaySymbolCount').value); + // Snowflakes config.Snowflakes.SnowflakeCount = parseInt(document.querySelector('#SnowflakesCount').value); config.Snowflakes.EnableSnowflakes = document.querySelector('#EnableSnowflakes').checked; @@ -1482,6 +1917,8 @@ config.Halloween.EnableRandomSymbols = document.querySelector('#EnableRandomHalloween').checked; config.Halloween.EnableRandomSymbolsMobile = document.querySelector('#EnableRandomHalloweenMobile').checked; config.Halloween.EnableDifferentDuration = document.querySelector('#EnableDifferentDurationHalloween').checked; + config.Halloween.EnableSpiders = document.querySelector('#EnableSpiders').checked; + config.Halloween.EnableMice = document.querySelector('#EnableMice').checked; // Hearts config.Hearts.EnableHearts = document.querySelector('#EnableHearts').checked; @@ -1528,6 +1965,121 @@ config.Resurrection.EnableRandomSymbolsMobile = document.querySelector('#EnableRandomResurrectionMobile').checked; config.Resurrection.EnableDifferentDuration = document.querySelector('#EnableDifferentDurationResurrection').checked; + // Legacy Halloween + config.LegacyHalloween.EnableLegacyHalloween = document.querySelector('#EnableLegacyHalloween').checked; + config.LegacyHalloween.SymbolCount = parseInt(document.querySelector('#LegacyHalloweenCount').value); + + // Spring + config.Spring.EnableSpring = document.querySelector('#EnableSpring').checked; + config.Spring.EnableSpringSunbeams = document.querySelector('#EnableSpringSunbeams').checked; + config.Spring.PollenCount = parseInt(document.querySelector('#SpringPollenCount').value); + config.Spring.SunbeamCount = parseInt(document.querySelector('#SpringSunbeamCount').value); + config.Spring.BirdCount = parseInt(document.querySelector('#SpringBirdCount').value); + config.Spring.ButterflyCount = parseInt(document.querySelector('#SpringButterflyCount').value); + config.Spring.BeeCount = parseInt(document.querySelector('#SpringBeeCount').value); + config.Spring.LadybugCount = parseInt(document.querySelector('#SpringLadybugCount').value); + config.Spring.EnableRandomSpring = document.querySelector('#EnableRandomSpring').checked; + config.Spring.EnableRandomSpringMobile = document.querySelector('#EnableRandomSpringMobile').checked; + config.Spring.EnableDifferentDuration = document.querySelector('#EnableDifferentDurationSpring').checked; + + // Summer + config.Summer.EnableSummer = document.querySelector('#EnableSummer').checked; + config.Summer.BubbleCount = parseInt(document.querySelector('#SummerBubbleCount').value); + config.Summer.DustCount = parseInt(document.querySelector('#SummerDustCount').value); + config.Summer.EnableRandomSummer = document.querySelector('#EnableRandomSummer').checked; + config.Summer.EnableRandomSummerMobile = document.querySelector('#EnableRandomSummerMobile').checked; + config.Summer.EnableDifferentDuration = document.querySelector('#EnableDifferentDurationSummer').checked; + + // Carnival + config.Carnival.EnableCarnival = document.querySelector('#EnableCarnival').checked; + config.Carnival.EnableCarnivalSway = document.querySelector('#EnableCarnivalSway').checked; + config.Carnival.ObjectCount = parseInt(document.querySelector('#CarnivalObjectCount').value); + config.Carnival.EnableRandomCarnival = document.querySelector('#EnableRandomCarnival').checked; + config.Carnival.EnableRandomCarnivalMobile = document.querySelector('#EnableRandomCarnivalMobile').checked; + config.Carnival.EnableDifferentDuration = document.querySelector('#EnableDifferentDurationCarnival').checked; + + // Cherry Blossom + config.CherryBlossom.EnableCherryBlossom = document.querySelector('#EnableCherryBlossom').checked; + config.CherryBlossom.PetalCount = parseInt(document.querySelector('#CherryBlossomPetalCount').value); + config.CherryBlossom.EnableRandomCherryBlossom = document.querySelector('#EnableRandomCherryBlossom').checked; + config.CherryBlossom.EnableRandomCherryBlossomMobile = document.querySelector('#EnableRandomCherryBlossomMobile').checked; + config.CherryBlossom.EnableDifferentDuration = document.querySelector('#EnableDifferentDurationCherryBlossom').checked; + + // Earth Day + config.EarthDay.EnableEarthDay = document.querySelector('#EnableEarthDay').checked; + config.EarthDay.VineCount = parseInt(document.querySelector('#EarthDayVineCount').value); + + // Eurovision + config.Eurovision.EnableEurovision = document.querySelector('#EnableEurovision').checked; + config.Eurovision.SymbolCount = parseInt(document.querySelector('#EurovisionSymbolCount').value); + config.Eurovision.EnableRandomEurovision = document.querySelector('#EnableRandomEurovision').checked; + config.Eurovision.EnableRandomEurovisionMobile = document.querySelector('#EnableRandomEurovisionMobile').checked; + config.Eurovision.EnableDifferentDuration = document.querySelector('#EnableDifferentDurationEurovision').checked; + config.Eurovision.EnableColorfulNotes = document.querySelector('#EnableColorfulNotes').checked; + config.Eurovision.EurovisionColors = document.querySelector('#EurovisionColors').value; + config.Eurovision.EurovisionGlowSize = parseInt(document.querySelector('#EurovisionGlowSize').value); + + // Pi-Day + config.PiDay.EnablePiDay = document.querySelector('#EnablePiDay').checked; + config.PiDay.SymbolCount = parseInt(document.querySelector('#PiDaySymbolCount').value); + config.PiDay.EnableRandomPiDay = document.querySelector('#EnableRandomPiDay').checked; + config.PiDay.EnableRandomPiDayMobile = document.querySelector('#EnableRandomPiDayMobile').checked; + config.PiDay.EnableDifferentDuration = document.querySelector('#EnableDifferentDurationPiDay').checked; + config.PiDay.EnablePiDayBackground = document.querySelector('#EnablePiDayBackground').checked; + + // Pride + config.Pride.EnablePride = document.querySelector('#EnablePride').checked; + config.Pride.HeartCount = parseInt(document.querySelector('#PrideHeartCount').value); + config.Pride.HeartSize = parseFloat(document.querySelector('#PrideHeartSize').value); + config.Pride.ColorHeader = document.querySelector('#PrideColorHeader').checked; + + // Rain + config.Rain.EnableRain = document.querySelector('#EnableRain').checked; + config.Rain.RaindropCount = parseInt(document.querySelector('#RaindropCount').value); + config.Rain.RaindropCountMobile = parseInt(document.querySelector('#RaindropCountMobile').value); + config.Rain.RainSpeed = parseFloat(document.querySelector('#RainSpeed').value); + + // Storm + config.Storm.EnableStorm = document.querySelector('#EnableStorm').checked; + config.Storm.RaindropCount = parseInt(document.querySelector('#StormRaindropCount').value); + config.Storm.RaindropCountMobile = parseInt(document.querySelector('#StormRaindropCountMobile').value); + config.Storm.RainSpeed = parseFloat(document.querySelector('#StormRainSpeed').value); + config.Storm.EnableLightning = document.querySelector('#StormEnableLightning').checked; + + // New Themes + config.Frost.EnableFrost = document.querySelector('#EnableFrost').checked; + config.FilmNoir.EnableFilmNoir = document.querySelector('#EnableFilmNoir').checked; + config.Oscar.EnableOscar = document.querySelector('#EnableOscar').checked; + config.MarioDay.EnableMarioDay = document.querySelector('#EnableMarioDay').checked; + config.StarWars.EnableStarWars = document.querySelector('#EnableStarWars').checked; + config.Oktoberfest.EnableOktoberfest = document.querySelector('#EnableOktoberfest').checked; + config.Friday13.EnableFriday13 = document.querySelector('#EnableFriday13').checked; + config.Eid.EnableEid = document.querySelector('#EnableEid').checked; + + + config.Santa.MinSantaRestTime = parseFloat(document.querySelector('#MinSantaRestTime').value); + config.Santa.MaxPresentFallSpeed = parseFloat(document.querySelector('#MaxPresentFallSpeed').value); + config.Santa.MinPresentFallSpeed = parseFloat(document.querySelector('#MinPresentFallSpeed').value); + + // Easter + config.Easter.EnableEaster = document.querySelector('#EnableEaster').checked; + config.Easter.EggCount = parseInt(document.querySelector('#EasterEggCount').value); + config.Easter.EnableRandomEaster = document.querySelector('#EnableRandomEaster').checked; + config.Easter.EnableRandomEasterMobile = document.querySelector('#EnableRandomEasterMobile').checked; + config.Easter.EnableDifferentDuration = document.querySelector('#EnableDifferentDurationEaster').checked; + config.Easter.EnableBunny = document.querySelector('#EasterBunny').checked; + config.Easter.BunnyDuration = parseInt(document.querySelector('#BunnyDuration').value); + config.Easter.HopHeight = parseInt(document.querySelector('#HopHeight').value); + config.Easter.MinBunnyRestTime = parseInt(document.querySelector('#MinBunnyRestTime').value); + config.Easter.MaxBunnyRestTime = parseInt(document.querySelector('#MaxBunnyRestTime').value); + + // Resurrection + config.Resurrection.EnableResurrection = document.querySelector('#EnableResurrection').checked; + config.Resurrection.SymbolCount = parseInt(document.querySelector('#ResurrectionSymbolCount').value); + config.Resurrection.EnableRandomSymbols = document.querySelector('#EnableRandomResurrection').checked; + config.Resurrection.EnableRandomSymbolsMobile = document.querySelector('#EnableRandomResurrectionMobile').checked; + config.Resurrection.EnableDifferentDuration = document.querySelector('#EnableDifferentDurationResurrection').checked; + // Spring config.Spring.EnableSpring = document.querySelector('#EnableSpring').checked; config.Spring.EnableSpringSunbeams = document.querySelector('#EnableSpringSunbeams').checked;