diff --git a/Images/2/r/Motionless/Thumbs.db b/Images/2/r/Motionless/Thumbs.db deleted file mode 100644 index f435203..0000000 Binary files a/Images/2/r/Motionless/Thumbs.db and /dev/null differ diff --git a/Program.cs b/Program.cs index 07811bf..da111a8 100644 --- a/Program.cs +++ b/Program.cs @@ -23,16 +23,8 @@ app.UseHttpsRedirection(); -var fileProvider = new PhysicalFileProvider(Directory.GetCurrentDirectory()); -app.UseDefaultFiles(new DefaultFilesOptions -{ - DefaultFileNames = { "index.html" }, - FileProvider = fileProvider -}); -app.UseStaticFiles(new StaticFileOptions -{ - FileProvider = fileProvider -}); +app.UseDefaultFiles(); +app.UseStaticFiles(); app.UseRouting(); diff --git a/bin/Debug/net8.0/ws4kp.dll b/bin/Debug/net8.0/ws4kp.dll index 54e5efb..a929030 100644 Binary files a/bin/Debug/net8.0/ws4kp.dll and b/bin/Debug/net8.0/ws4kp.dll differ diff --git a/bin/Debug/net8.0/ws4kp.exe b/bin/Debug/net8.0/ws4kp.exe index 02460b9..59f80a0 100644 Binary files a/bin/Debug/net8.0/ws4kp.exe and b/bin/Debug/net8.0/ws4kp.exe differ diff --git a/bin/Debug/net8.0/ws4kp.pdb b/bin/Debug/net8.0/ws4kp.pdb index 731df4e..1e8c469 100644 Binary files a/bin/Debug/net8.0/ws4kp.pdb and b/bin/Debug/net8.0/ws4kp.pdb differ diff --git a/ws4kp.csproj b/ws4kp.csproj index 3799f55..a7eef49 100644 --- a/ws4kp.csproj +++ b/ws4kp.csproj @@ -18,4 +18,547 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Audio/Andrew Korus - Hello There.mp3 b/wwwroot/Audio/Andrew Korus - Hello There.mp3 similarity index 100% rename from Audio/Andrew Korus - Hello There.mp3 rename to wwwroot/Audio/Andrew Korus - Hello There.mp3 diff --git a/Audio/Brian Hughes - Here We Go.mp3 b/wwwroot/Audio/Brian Hughes - Here We Go.mp3 similarity index 100% rename from Audio/Brian Hughes - Here We Go.mp3 rename to wwwroot/Audio/Brian Hughes - Here We Go.mp3 diff --git a/Audio/Brian Hughes - One 2 One.mp3 b/wwwroot/Audio/Brian Hughes - One 2 One.mp3 similarity index 100% rename from Audio/Brian Hughes - One 2 One.mp3 rename to wwwroot/Audio/Brian Hughes - One 2 One.mp3 diff --git a/Audio/Brian Hughes - Postcard From Brazil.mp3 b/wwwroot/Audio/Brian Hughes - Postcard From Brazil.mp3 similarity index 100% rename from Audio/Brian Hughes - Postcard From Brazil.mp3 rename to wwwroot/Audio/Brian Hughes - Postcard From Brazil.mp3 diff --git a/Audio/Brian Hughes - StringBean.mp3 b/wwwroot/Audio/Brian Hughes - StringBean.mp3 similarity index 100% rename from Audio/Brian Hughes - StringBean.mp3 rename to wwwroot/Audio/Brian Hughes - StringBean.mp3 diff --git a/Audio/Brian Hughes - Three Graces.mp3 b/wwwroot/Audio/Brian Hughes - Three Graces.mp3 similarity index 100% rename from Audio/Brian Hughes - Three Graces.mp3 rename to wwwroot/Audio/Brian Hughes - Three Graces.mp3 diff --git a/Audio/Bryan Savage - Two Cool.mp3 b/wwwroot/Audio/Bryan Savage - Two Cool.mp3 similarity index 100% rename from Audio/Bryan Savage - Two Cool.mp3 rename to wwwroot/Audio/Bryan Savage - Two Cool.mp3 diff --git a/Audio/Chris Camozzi - Hangin Out.mp3 b/wwwroot/Audio/Chris Camozzi - Hangin Out.mp3 similarity index 100% rename from Audio/Chris Camozzi - Hangin Out.mp3 rename to wwwroot/Audio/Chris Camozzi - Hangin Out.mp3 diff --git a/Audio/Chris Camozzi - My Dancing Heart.mp3 b/wwwroot/Audio/Chris Camozzi - My Dancing Heart.mp3 similarity index 100% rename from Audio/Chris Camozzi - My Dancing Heart.mp3 rename to wwwroot/Audio/Chris Camozzi - My Dancing Heart.mp3 diff --git a/Audio/Chris Camozzi - Suede.mp3 b/wwwroot/Audio/Chris Camozzi - Suede.mp3 similarity index 100% rename from Audio/Chris Camozzi - Suede.mp3 rename to wwwroot/Audio/Chris Camozzi - Suede.mp3 diff --git a/Audio/Chris Camozzi - Swing Shift.mp3 b/wwwroot/Audio/Chris Camozzi - Swing Shift.mp3 similarity index 100% rename from Audio/Chris Camozzi - Swing Shift.mp3 rename to wwwroot/Audio/Chris Camozzi - Swing Shift.mp3 diff --git a/Audio/Eddie Reasoner - Sea Breeze.mp3 b/wwwroot/Audio/Eddie Reasoner - Sea Breeze.mp3 similarity index 100% rename from Audio/Eddie Reasoner - Sea Breeze.mp3 rename to wwwroot/Audio/Eddie Reasoner - Sea Breeze.mp3 diff --git a/Audio/Ficara - Craig.mp3 b/wwwroot/Audio/Ficara - Craig.mp3 similarity index 100% rename from Audio/Ficara - Craig.mp3 rename to wwwroot/Audio/Ficara - Craig.mp3 diff --git a/Audio/Ficara - Friends Forever.mp3 b/wwwroot/Audio/Ficara - Friends Forever.mp3 similarity index 100% rename from Audio/Ficara - Friends Forever.mp3 rename to wwwroot/Audio/Ficara - Friends Forever.mp3 diff --git a/Audio/Ficara - Gliding.mp3 b/wwwroot/Audio/Ficara - Gliding.mp3 similarity index 100% rename from Audio/Ficara - Gliding.mp3 rename to wwwroot/Audio/Ficara - Gliding.mp3 diff --git a/Audio/Ficara - High Tides Of Maui.mp3 b/wwwroot/Audio/Ficara - High Tides Of Maui.mp3 similarity index 100% rename from Audio/Ficara - High Tides Of Maui.mp3 rename to wwwroot/Audio/Ficara - High Tides Of Maui.mp3 diff --git a/Audio/Ficara - Stormy Weather.mp3 b/wwwroot/Audio/Ficara - Stormy Weather.mp3 similarity index 100% rename from Audio/Ficara - Stormy Weather.mp3 rename to wwwroot/Audio/Ficara - Stormy Weather.mp3 diff --git a/Audio/Gota - All Alone.mp3 b/wwwroot/Audio/Gota - All Alone.mp3 similarity index 100% rename from Audio/Gota - All Alone.mp3 rename to wwwroot/Audio/Gota - All Alone.mp3 diff --git a/Audio/Incognito - Larc En Ciel De Miles.mp3 b/wwwroot/Audio/Incognito - Larc En Ciel De Miles.mp3 similarity index 100% rename from Audio/Incognito - Larc En Ciel De Miles.mp3 rename to wwwroot/Audio/Incognito - Larc En Ciel De Miles.mp3 diff --git a/Audio/Incognito - Sunchild.mp3 b/wwwroot/Audio/Incognito - Sunchild.mp3 similarity index 100% rename from Audio/Incognito - Sunchild.mp3 rename to wwwroot/Audio/Incognito - Sunchild.mp3 diff --git a/Audio/Joe Sample - Rainbow Seeker.mp3 b/wwwroot/Audio/Joe Sample - Rainbow Seeker.mp3 similarity index 100% rename from Audio/Joe Sample - Rainbow Seeker.mp3 rename to wwwroot/Audio/Joe Sample - Rainbow Seeker.mp3 diff --git a/Audio/Norman Brown - Celebration.mp3 b/wwwroot/Audio/Norman Brown - Celebration.mp3 similarity index 100% rename from Audio/Norman Brown - Celebration.mp3 rename to wwwroot/Audio/Norman Brown - Celebration.mp3 diff --git a/Audio/Ozzie Ahlers - Fingerpainting.mp3 b/wwwroot/Audio/Ozzie Ahlers - Fingerpainting.mp3 similarity index 100% rename from Audio/Ozzie Ahlers - Fingerpainting.mp3 rename to wwwroot/Audio/Ozzie Ahlers - Fingerpainting.mp3 diff --git a/Audio/Physical Therapy - What The Flush.mp3 b/wwwroot/Audio/Physical Therapy - What The Flush.mp3 similarity index 100% rename from Audio/Physical Therapy - What The Flush.mp3 rename to wwwroot/Audio/Physical Therapy - What The Flush.mp3 diff --git a/Audio/Ray Obiedo - Blue Kiss.mp3 b/wwwroot/Audio/Ray Obiedo - Blue Kiss.mp3 similarity index 100% rename from Audio/Ray Obiedo - Blue Kiss.mp3 rename to wwwroot/Audio/Ray Obiedo - Blue Kiss.mp3 diff --git a/Audio/Ray Obiedo - Sienna.mp3 b/wwwroot/Audio/Ray Obiedo - Sienna.mp3 similarity index 100% rename from Audio/Ray Obiedo - Sienna.mp3 rename to wwwroot/Audio/Ray Obiedo - Sienna.mp3 diff --git a/Audio/Richard Tyznik - Hi Times.mp3 b/wwwroot/Audio/Richard Tyznik - Hi Times.mp3 similarity index 100% rename from Audio/Richard Tyznik - Hi Times.mp3 rename to wwwroot/Audio/Richard Tyznik - Hi Times.mp3 diff --git a/Audio/Terry Coleman - Amazed.mp3 b/wwwroot/Audio/Terry Coleman - Amazed.mp3 similarity index 100% rename from Audio/Terry Coleman - Amazed.mp3 rename to wwwroot/Audio/Terry Coleman - Amazed.mp3 diff --git a/Audio/Terry Coleman - Autumn Dance.mp3 b/wwwroot/Audio/Terry Coleman - Autumn Dance.mp3 similarity index 100% rename from Audio/Terry Coleman - Autumn Dance.mp3 rename to wwwroot/Audio/Terry Coleman - Autumn Dance.mp3 diff --git a/Audio/Terry Coleman - Just Groovin.mp3 b/wwwroot/Audio/Terry Coleman - Just Groovin.mp3 similarity index 100% rename from Audio/Terry Coleman - Just Groovin.mp3 rename to wwwroot/Audio/Terry Coleman - Just Groovin.mp3 diff --git a/Audio/The Rippingtons - In Another Life.mp3 b/wwwroot/Audio/The Rippingtons - In Another Life.mp3 similarity index 100% rename from Audio/The Rippingtons - In Another Life.mp3 rename to wwwroot/Audio/The Rippingtons - In Another Life.mp3 diff --git a/Audio/The Rippingtons - Life In The Tropics.mp3 b/wwwroot/Audio/The Rippingtons - Life In The Tropics.mp3 similarity index 100% rename from Audio/The Rippingtons - Life In The Tropics.mp3 rename to wwwroot/Audio/The Rippingtons - Life In The Tropics.mp3 diff --git a/Audio/Torcuato Mariano - Ocean Way.mp3 b/wwwroot/Audio/Torcuato Mariano - Ocean Way.mp3 similarity index 100% rename from Audio/Torcuato Mariano - Ocean Way.mp3 rename to wwwroot/Audio/Torcuato Mariano - Ocean Way.mp3 diff --git a/Audio/Trammell Starks - 50 Below.mp3 b/wwwroot/Audio/Trammell Starks - 50 Below.mp3 similarity index 100% rename from Audio/Trammell Starks - 50 Below.mp3 rename to wwwroot/Audio/Trammell Starks - 50 Below.mp3 diff --git a/Audio/Trammell Starks - After Midnight.mp3 b/wwwroot/Audio/Trammell Starks - After Midnight.mp3 similarity index 100% rename from Audio/Trammell Starks - After Midnight.mp3 rename to wwwroot/Audio/Trammell Starks - After Midnight.mp3 diff --git a/Audio/Trammell Starks - After The Rain.mp3 b/wwwroot/Audio/Trammell Starks - After The Rain.mp3 similarity index 100% rename from Audio/Trammell Starks - After The Rain.mp3 rename to wwwroot/Audio/Trammell Starks - After The Rain.mp3 diff --git a/Audio/Trammell Starks - All I Need To Know.mp3 b/wwwroot/Audio/Trammell Starks - All I Need To Know.mp3 similarity index 100% rename from Audio/Trammell Starks - All I Need To Know.mp3 rename to wwwroot/Audio/Trammell Starks - All I Need To Know.mp3 diff --git a/Audio/Trammell Starks - All That Jazz.mp3 b/wwwroot/Audio/Trammell Starks - All That Jazz.mp3 similarity index 100% rename from Audio/Trammell Starks - All That Jazz.mp3 rename to wwwroot/Audio/Trammell Starks - All That Jazz.mp3 diff --git a/Audio/Trammell Starks - Autumn Blue.mp3 b/wwwroot/Audio/Trammell Starks - Autumn Blue.mp3 similarity index 100% rename from Audio/Trammell Starks - Autumn Blue.mp3 rename to wwwroot/Audio/Trammell Starks - Autumn Blue.mp3 diff --git a/Audio/Trammell Starks - Better Than Nothing.mp3 b/wwwroot/Audio/Trammell Starks - Better Than Nothing.mp3 similarity index 100% rename from Audio/Trammell Starks - Better Than Nothing.mp3 rename to wwwroot/Audio/Trammell Starks - Better Than Nothing.mp3 diff --git a/Audio/Trammell Starks - Bobbys Theme.mp3 b/wwwroot/Audio/Trammell Starks - Bobbys Theme.mp3 similarity index 100% rename from Audio/Trammell Starks - Bobbys Theme.mp3 rename to wwwroot/Audio/Trammell Starks - Bobbys Theme.mp3 diff --git a/Audio/Trammell Starks - Broken Record.mp3 b/wwwroot/Audio/Trammell Starks - Broken Record.mp3 similarity index 100% rename from Audio/Trammell Starks - Broken Record.mp3 rename to wwwroot/Audio/Trammell Starks - Broken Record.mp3 diff --git a/Audio/Trammell Starks - Crazy Pianos.mp3 b/wwwroot/Audio/Trammell Starks - Crazy Pianos.mp3 similarity index 100% rename from Audio/Trammell Starks - Crazy Pianos.mp3 rename to wwwroot/Audio/Trammell Starks - Crazy Pianos.mp3 diff --git a/Audio/Trammell Starks - Desert Nights.mp3 b/wwwroot/Audio/Trammell Starks - Desert Nights.mp3 similarity index 100% rename from Audio/Trammell Starks - Desert Nights.mp3 rename to wwwroot/Audio/Trammell Starks - Desert Nights.mp3 diff --git a/Audio/Trammell Starks - Here Comes The Rain.mp3 b/wwwroot/Audio/Trammell Starks - Here Comes The Rain.mp3 similarity index 100% rename from Audio/Trammell Starks - Here Comes The Rain.mp3 rename to wwwroot/Audio/Trammell Starks - Here Comes The Rain.mp3 diff --git a/Audio/Trammell Starks - If You Only Knew.mp3 b/wwwroot/Audio/Trammell Starks - If You Only Knew.mp3 similarity index 100% rename from Audio/Trammell Starks - If You Only Knew.mp3 rename to wwwroot/Audio/Trammell Starks - If You Only Knew.mp3 diff --git a/Audio/Trammell Starks - Im So Dizzy.mp3 b/wwwroot/Audio/Trammell Starks - Im So Dizzy.mp3 similarity index 100% rename from Audio/Trammell Starks - Im So Dizzy.mp3 rename to wwwroot/Audio/Trammell Starks - Im So Dizzy.mp3 diff --git a/Audio/Trammell Starks - Island Groove.mp3 b/wwwroot/Audio/Trammell Starks - Island Groove.mp3 similarity index 100% rename from Audio/Trammell Starks - Island Groove.mp3 rename to wwwroot/Audio/Trammell Starks - Island Groove.mp3 diff --git a/Audio/Trammell Starks - Just For The Moment.mp3 b/wwwroot/Audio/Trammell Starks - Just For The Moment.mp3 similarity index 100% rename from Audio/Trammell Starks - Just For The Moment.mp3 rename to wwwroot/Audio/Trammell Starks - Just For The Moment.mp3 diff --git a/Audio/Trammell Starks - Midnight Rain.mp3 b/wwwroot/Audio/Trammell Starks - Midnight Rain.mp3 similarity index 100% rename from Audio/Trammell Starks - Midnight Rain.mp3 rename to wwwroot/Audio/Trammell Starks - Midnight Rain.mp3 diff --git a/Audio/Trammell Starks - Pier 32.mp3 b/wwwroot/Audio/Trammell Starks - Pier 32.mp3 similarity index 100% rename from Audio/Trammell Starks - Pier 32.mp3 rename to wwwroot/Audio/Trammell Starks - Pier 32.mp3 diff --git a/Audio/Trammell Starks - Rainbeat.mp3 b/wwwroot/Audio/Trammell Starks - Rainbeat.mp3 similarity index 100% rename from Audio/Trammell Starks - Rainbeat.mp3 rename to wwwroot/Audio/Trammell Starks - Rainbeat.mp3 diff --git a/Audio/Trammell Starks - Road Trip.mp3 b/wwwroot/Audio/Trammell Starks - Road Trip.mp3 similarity index 100% rename from Audio/Trammell Starks - Road Trip.mp3 rename to wwwroot/Audio/Trammell Starks - Road Trip.mp3 diff --git a/Audio/Trammell Starks - Rollercoaster Ride.mp3 b/wwwroot/Audio/Trammell Starks - Rollercoaster Ride.mp3 similarity index 100% rename from Audio/Trammell Starks - Rollercoaster Ride.mp3 rename to wwwroot/Audio/Trammell Starks - Rollercoaster Ride.mp3 diff --git a/Audio/Trammell Starks - Round And Round.mp3 b/wwwroot/Audio/Trammell Starks - Round And Round.mp3 similarity index 100% rename from Audio/Trammell Starks - Round And Round.mp3 rename to wwwroot/Audio/Trammell Starks - Round And Round.mp3 diff --git a/Audio/Trammell Starks - Season On Edge.mp3 b/wwwroot/Audio/Trammell Starks - Season On Edge.mp3 similarity index 100% rename from Audio/Trammell Starks - Season On Edge.mp3 rename to wwwroot/Audio/Trammell Starks - Season On Edge.mp3 diff --git a/Audio/Trammell Starks - Slightly Blued.mp3 b/wwwroot/Audio/Trammell Starks - Slightly Blued.mp3 similarity index 100% rename from Audio/Trammell Starks - Slightly Blued.mp3 rename to wwwroot/Audio/Trammell Starks - Slightly Blued.mp3 diff --git a/Audio/Trammell Starks - Someday.mp3 b/wwwroot/Audio/Trammell Starks - Someday.mp3 similarity index 100% rename from Audio/Trammell Starks - Someday.mp3 rename to wwwroot/Audio/Trammell Starks - Someday.mp3 diff --git a/Audio/Trammell Starks - Something About You.mp3 b/wwwroot/Audio/Trammell Starks - Something About You.mp3 similarity index 100% rename from Audio/Trammell Starks - Something About You.mp3 rename to wwwroot/Audio/Trammell Starks - Something About You.mp3 diff --git a/Audio/Trammell Starks - The Blizzard Song.mp3 b/wwwroot/Audio/Trammell Starks - The Blizzard Song.mp3 similarity index 100% rename from Audio/Trammell Starks - The Blizzard Song.mp3 rename to wwwroot/Audio/Trammell Starks - The Blizzard Song.mp3 diff --git a/Audio/Trammell Starks - The End.mp3 b/wwwroot/Audio/Trammell Starks - The End.mp3 similarity index 100% rename from Audio/Trammell Starks - The End.mp3 rename to wwwroot/Audio/Trammell Starks - The End.mp3 diff --git a/Audio/Trammell Starks - The Last Song.mp3 b/wwwroot/Audio/Trammell Starks - The Last Song.mp3 similarity index 100% rename from Audio/Trammell Starks - The Last Song.mp3 rename to wwwroot/Audio/Trammell Starks - The Last Song.mp3 diff --git a/Audio/Trammell Starks - The Mist.mp3 b/wwwroot/Audio/Trammell Starks - The Mist.mp3 similarity index 100% rename from Audio/Trammell Starks - The Mist.mp3 rename to wwwroot/Audio/Trammell Starks - The Mist.mp3 diff --git a/Audio/Trammell Starks - The Only One For Me.mp3 b/wwwroot/Audio/Trammell Starks - The Only One For Me.mp3 similarity index 100% rename from Audio/Trammell Starks - The Only One For Me.mp3 rename to wwwroot/Audio/Trammell Starks - The Only One For Me.mp3 diff --git a/Audio/Trammell Starks - Under The Influence.mp3 b/wwwroot/Audio/Trammell Starks - Under The Influence.mp3 similarity index 100% rename from Audio/Trammell Starks - Under The Influence.mp3 rename to wwwroot/Audio/Trammell Starks - Under The Influence.mp3 diff --git a/Audio/Trammell Starks - Ups And Downs.mp3 b/wwwroot/Audio/Trammell Starks - Ups And Downs.mp3 similarity index 100% rename from Audio/Trammell Starks - Ups And Downs.mp3 rename to wwwroot/Audio/Trammell Starks - Ups And Downs.mp3 diff --git a/Audio/Trammell Starks - Water Colors.mp3 b/wwwroot/Audio/Trammell Starks - Water Colors.mp3 similarity index 100% rename from Audio/Trammell Starks - Water Colors.mp3 rename to wwwroot/Audio/Trammell Starks - Water Colors.mp3 diff --git a/Audio/Wayman Tisdale - Brazilia.mp3 b/wwwroot/Audio/Wayman Tisdale - Brazilia.mp3 similarity index 100% rename from Audio/Wayman Tisdale - Brazilia.mp3 rename to wwwroot/Audio/Wayman Tisdale - Brazilia.mp3 diff --git a/Audio/Wayne Gerard - Aint She Sweet.mp3 b/wwwroot/Audio/Wayne Gerard - Aint She Sweet.mp3 similarity index 100% rename from Audio/Wayne Gerard - Aint She Sweet.mp3 rename to wwwroot/Audio/Wayne Gerard - Aint She Sweet.mp3 diff --git a/Audio/beep.mp3 b/wwwroot/Audio/beep.mp3 similarity index 100% rename from Audio/beep.mp3 rename to wwwroot/Audio/beep.mp3 diff --git a/Fonts/ReadMe.txt b/wwwroot/Fonts/ReadMe.txt similarity index 100% rename from Fonts/ReadMe.txt rename to wwwroot/Fonts/ReadMe.txt diff --git a/Fonts/Star 4 Radar.ttf b/wwwroot/Fonts/Star 4 Radar.ttf similarity index 100% rename from Fonts/Star 4 Radar.ttf rename to wwwroot/Fonts/Star 4 Radar.ttf diff --git a/Fonts/Star 4 Radar.woff b/wwwroot/Fonts/Star 4 Radar.woff similarity index 100% rename from Fonts/Star 4 Radar.woff rename to wwwroot/Fonts/Star 4 Radar.woff diff --git a/Fonts/Star4000 Extended.ttf b/wwwroot/Fonts/Star4000 Extended.ttf similarity index 100% rename from Fonts/Star4000 Extended.ttf rename to wwwroot/Fonts/Star4000 Extended.ttf diff --git a/Fonts/Star4000 Extended.woff b/wwwroot/Fonts/Star4000 Extended.woff similarity index 100% rename from Fonts/Star4000 Extended.woff rename to wwwroot/Fonts/Star4000 Extended.woff diff --git a/Fonts/Star4000 Large Compressed Numbers.ttf b/wwwroot/Fonts/Star4000 Large Compressed Numbers.ttf similarity index 100% rename from Fonts/Star4000 Large Compressed Numbers.ttf rename to wwwroot/Fonts/Star4000 Large Compressed Numbers.ttf diff --git a/Fonts/Star4000 Large Compressed Numbers.woff b/wwwroot/Fonts/Star4000 Large Compressed Numbers.woff similarity index 100% rename from Fonts/Star4000 Large Compressed Numbers.woff rename to wwwroot/Fonts/Star4000 Large Compressed Numbers.woff diff --git a/Fonts/Star4000 Large Compressed.ttf b/wwwroot/Fonts/Star4000 Large Compressed.ttf similarity index 100% rename from Fonts/Star4000 Large Compressed.ttf rename to wwwroot/Fonts/Star4000 Large Compressed.ttf diff --git a/Fonts/Star4000 Large Compressed.woff b/wwwroot/Fonts/Star4000 Large Compressed.woff similarity index 100% rename from Fonts/Star4000 Large Compressed.woff rename to wwwroot/Fonts/Star4000 Large Compressed.woff diff --git a/Fonts/Star4000 Large.ttf b/wwwroot/Fonts/Star4000 Large.ttf similarity index 100% rename from Fonts/Star4000 Large.ttf rename to wwwroot/Fonts/Star4000 Large.ttf diff --git a/Fonts/Star4000 Large.woff b/wwwroot/Fonts/Star4000 Large.woff similarity index 100% rename from Fonts/Star4000 Large.woff rename to wwwroot/Fonts/Star4000 Large.woff diff --git a/Fonts/Star4000 Small.ttf b/wwwroot/Fonts/Star4000 Small.ttf similarity index 100% rename from Fonts/Star4000 Small.ttf rename to wwwroot/Fonts/Star4000 Small.ttf diff --git a/Fonts/Star4000 Small.woff b/wwwroot/Fonts/Star4000 Small.woff similarity index 100% rename from Fonts/Star4000 Small.woff rename to wwwroot/Fonts/Star4000 Small.woff diff --git a/Fonts/Star4000.ttf b/wwwroot/Fonts/Star4000.ttf similarity index 100% rename from Fonts/Star4000.ttf rename to wwwroot/Fonts/Star4000.ttf diff --git a/Fonts/Star4000.woff b/wwwroot/Fonts/Star4000.woff similarity index 100% rename from Fonts/Star4000.woff rename to wwwroot/Fonts/Star4000.woff diff --git a/Fonts/Star4000LCN.woff b/wwwroot/Fonts/Star4000LCN.woff similarity index 100% rename from Fonts/Star4000LCN.woff rename to wwwroot/Fonts/Star4000LCN.woff diff --git a/Images/2/Blowing-Snow.gif b/wwwroot/Images/2/Blowing-Snow.gif similarity index 100% rename from Images/2/Blowing-Snow.gif rename to wwwroot/Images/2/Blowing-Snow.gif diff --git a/Images/2/Clear.gif b/wwwroot/Images/2/Clear.gif similarity index 100% rename from Images/2/Clear.gif rename to wwwroot/Images/2/Clear.gif diff --git a/Images/2/Cloudy.gif b/wwwroot/Images/2/Cloudy.gif similarity index 100% rename from Images/2/Cloudy.gif rename to wwwroot/Images/2/Cloudy.gif diff --git a/Images/2/First-Quarter.gif b/wwwroot/Images/2/First-Quarter.gif similarity index 100% rename from Images/2/First-Quarter.gif rename to wwwroot/Images/2/First-Quarter.gif diff --git a/Images/2/Fog.gif b/wwwroot/Images/2/Fog.gif similarity index 100% rename from Images/2/Fog.gif rename to wwwroot/Images/2/Fog.gif diff --git a/Images/2/Freezing-Rain-Sleet.gif b/wwwroot/Images/2/Freezing-Rain-Sleet.gif similarity index 100% rename from Images/2/Freezing-Rain-Sleet.gif rename to wwwroot/Images/2/Freezing-Rain-Sleet.gif diff --git a/Images/2/Freezing-Rain.gif b/wwwroot/Images/2/Freezing-Rain.gif similarity index 100% rename from Images/2/Freezing-Rain.gif rename to wwwroot/Images/2/Freezing-Rain.gif diff --git a/Images/2/Full-Moon.gif b/wwwroot/Images/2/Full-Moon.gif similarity index 100% rename from Images/2/Full-Moon.gif rename to wwwroot/Images/2/Full-Moon.gif diff --git a/Images/2/Heavy-Snow.gif b/wwwroot/Images/2/Heavy-Snow.gif similarity index 100% rename from Images/2/Heavy-Snow.gif rename to wwwroot/Images/2/Heavy-Snow.gif diff --git a/Images/2/Ice-Snow.gif b/wwwroot/Images/2/Ice-Snow.gif similarity index 100% rename from Images/2/Ice-Snow.gif rename to wwwroot/Images/2/Ice-Snow.gif diff --git a/Images/2/Isolated-Tstorms.gif b/wwwroot/Images/2/Isolated-Tstorms.gif similarity index 100% rename from Images/2/Isolated-Tstorms.gif rename to wwwroot/Images/2/Isolated-Tstorms.gif diff --git a/Images/2/Last-Quarter.gif b/wwwroot/Images/2/Last-Quarter.gif similarity index 100% rename from Images/2/Last-Quarter.gif rename to wwwroot/Images/2/Last-Quarter.gif diff --git a/Images/2/Light-Snow.gif b/wwwroot/Images/2/Light-Snow.gif similarity index 100% rename from Images/2/Light-Snow.gif rename to wwwroot/Images/2/Light-Snow.gif diff --git a/Images/2/Mostly-Clear.gif b/wwwroot/Images/2/Mostly-Clear.gif similarity index 100% rename from Images/2/Mostly-Clear.gif rename to wwwroot/Images/2/Mostly-Clear.gif diff --git a/Images/2/Mostly-Cloudy.gif b/wwwroot/Images/2/Mostly-Cloudy.gif similarity index 100% rename from Images/2/Mostly-Cloudy.gif rename to wwwroot/Images/2/Mostly-Cloudy.gif diff --git a/Images/2/New-Moon.gif b/wwwroot/Images/2/New-Moon.gif similarity index 100% rename from Images/2/New-Moon.gif rename to wwwroot/Images/2/New-Moon.gif diff --git a/Images/2/Partly-Clear.gif b/wwwroot/Images/2/Partly-Clear.gif similarity index 100% rename from Images/2/Partly-Clear.gif rename to wwwroot/Images/2/Partly-Clear.gif diff --git a/Images/2/Partly-Cloudy.gif b/wwwroot/Images/2/Partly-Cloudy.gif similarity index 100% rename from Images/2/Partly-Cloudy.gif rename to wwwroot/Images/2/Partly-Cloudy.gif diff --git a/Images/2/Rain-Snow.gif b/wwwroot/Images/2/Rain-Snow.gif similarity index 100% rename from Images/2/Rain-Snow.gif rename to wwwroot/Images/2/Rain-Snow.gif diff --git a/Images/2/Rain.gif b/wwwroot/Images/2/Rain.gif similarity index 100% rename from Images/2/Rain.gif rename to wwwroot/Images/2/Rain.gif diff --git a/Images/2/Scattered-Showers.gif b/wwwroot/Images/2/Scattered-Showers.gif similarity index 100% rename from Images/2/Scattered-Showers.gif rename to wwwroot/Images/2/Scattered-Showers.gif diff --git a/Images/2/Scattered-Snow-Showers.gif b/wwwroot/Images/2/Scattered-Snow-Showers.gif similarity index 100% rename from Images/2/Scattered-Snow-Showers.gif rename to wwwroot/Images/2/Scattered-Snow-Showers.gif diff --git a/Images/2/Scattered-Tstorms.gif b/wwwroot/Images/2/Scattered-Tstorms.gif similarity index 100% rename from Images/2/Scattered-Tstorms.gif rename to wwwroot/Images/2/Scattered-Tstorms.gif diff --git a/Images/2/Shower.gif b/wwwroot/Images/2/Shower.gif similarity index 100% rename from Images/2/Shower.gif rename to wwwroot/Images/2/Shower.gif diff --git a/Images/2/Showers.gif b/wwwroot/Images/2/Showers.gif similarity index 100% rename from Images/2/Showers.gif rename to wwwroot/Images/2/Showers.gif diff --git a/Images/2/Sleet.gif b/wwwroot/Images/2/Sleet.gif similarity index 100% rename from Images/2/Sleet.gif rename to wwwroot/Images/2/Sleet.gif diff --git a/Images/2/Snow-Sleet.gif b/wwwroot/Images/2/Snow-Sleet.gif similarity index 100% rename from Images/2/Snow-Sleet.gif rename to wwwroot/Images/2/Snow-Sleet.gif diff --git a/Images/2/Snow-to-Rain.gif b/wwwroot/Images/2/Snow-to-Rain.gif similarity index 100% rename from Images/2/Snow-to-Rain.gif rename to wwwroot/Images/2/Snow-to-Rain.gif diff --git a/Images/2/Sunny.gif b/wwwroot/Images/2/Sunny.gif similarity index 100% rename from Images/2/Sunny.gif rename to wwwroot/Images/2/Sunny.gif diff --git a/Images/2/Thunder.gif b/wwwroot/Images/2/Thunder.gif similarity index 100% rename from Images/2/Thunder.gif rename to wwwroot/Images/2/Thunder.gif diff --git a/Images/2/ThunderSnow.gif b/wwwroot/Images/2/ThunderSnow.gif similarity index 100% rename from Images/2/ThunderSnow.gif rename to wwwroot/Images/2/ThunderSnow.gif diff --git a/Images/2/Thunderstorm.gif b/wwwroot/Images/2/Thunderstorm.gif similarity index 100% rename from Images/2/Thunderstorm.gif rename to wwwroot/Images/2/Thunderstorm.gif diff --git a/Images/2/Thunderstorms.gif b/wwwroot/Images/2/Thunderstorms.gif similarity index 100% rename from Images/2/Thunderstorms.gif rename to wwwroot/Images/2/Thunderstorms.gif diff --git a/Images/2/Windy.gif b/wwwroot/Images/2/Windy.gif similarity index 100% rename from Images/2/Windy.gif rename to wwwroot/Images/2/Windy.gif diff --git a/Images/2/Wintry-Mix.gif b/wwwroot/Images/2/Wintry-Mix.gif similarity index 100% rename from Images/2/Wintry-Mix.gif rename to wwwroot/Images/2/Wintry-Mix.gif diff --git a/Images/2/r/AM-Snow-1994.gif b/wwwroot/Images/2/r/AM-Snow-1994.gif similarity index 100% rename from Images/2/r/AM-Snow-1994.gif rename to wwwroot/Images/2/r/AM-Snow-1994.gif diff --git a/Images/2/r/Blowing Snow.gif b/wwwroot/Images/2/r/Blowing Snow.gif similarity index 100% rename from Images/2/r/Blowing Snow.gif rename to wwwroot/Images/2/r/Blowing Snow.gif diff --git a/Images/2/r/Clear-1992.gif b/wwwroot/Images/2/r/Clear-1992.gif similarity index 100% rename from Images/2/r/Clear-1992.gif rename to wwwroot/Images/2/r/Clear-1992.gif diff --git a/Images/2/r/Clear.gif b/wwwroot/Images/2/r/Clear.gif similarity index 100% rename from Images/2/r/Clear.gif rename to wwwroot/Images/2/r/Clear.gif diff --git a/Images/2/r/Cloudy 1990.gif b/wwwroot/Images/2/r/Cloudy 1990.gif similarity index 100% rename from Images/2/r/Cloudy 1990.gif rename to wwwroot/Images/2/r/Cloudy 1990.gif diff --git a/Images/2/r/Cloudy-Wind.gif b/wwwroot/Images/2/r/Cloudy-Wind.gif similarity index 100% rename from Images/2/r/Cloudy-Wind.gif rename to wwwroot/Images/2/r/Cloudy-Wind.gif diff --git a/Images/2/r/Cloudy.gif b/wwwroot/Images/2/r/Cloudy.gif similarity index 100% rename from Images/2/r/Cloudy.gif rename to wwwroot/Images/2/r/Cloudy.gif diff --git a/Images/2/r/Flurries.gif b/wwwroot/Images/2/r/Flurries.gif similarity index 100% rename from Images/2/r/Flurries.gif rename to wwwroot/Images/2/r/Flurries.gif diff --git a/Images/2/r/Fog.gif b/wwwroot/Images/2/r/Fog.gif similarity index 100% rename from Images/2/r/Fog.gif rename to wwwroot/Images/2/r/Fog.gif diff --git a/Images/2/r/Freezing-Rain-1991.gif b/wwwroot/Images/2/r/Freezing-Rain-1991.gif similarity index 100% rename from Images/2/r/Freezing-Rain-1991.gif rename to wwwroot/Images/2/r/Freezing-Rain-1991.gif diff --git a/Images/2/r/Freezing-Rain-1992.gif b/wwwroot/Images/2/r/Freezing-Rain-1992.gif similarity index 100% rename from Images/2/r/Freezing-Rain-1992.gif rename to wwwroot/Images/2/r/Freezing-Rain-1992.gif diff --git a/Images/2/r/Freezing-Rain-Sleet-1992.gif b/wwwroot/Images/2/r/Freezing-Rain-Sleet-1992.gif similarity index 100% rename from Images/2/r/Freezing-Rain-Sleet-1992.gif rename to wwwroot/Images/2/r/Freezing-Rain-Sleet-1992.gif diff --git a/Images/2/r/Freezing-Rain-Sleet.gif b/wwwroot/Images/2/r/Freezing-Rain-Sleet.gif similarity index 100% rename from Images/2/r/Freezing-Rain-Sleet.gif rename to wwwroot/Images/2/r/Freezing-Rain-Sleet.gif diff --git a/Images/2/r/Freezing-Rain-Snow-1992.gif b/wwwroot/Images/2/r/Freezing-Rain-Snow-1992.gif similarity index 100% rename from Images/2/r/Freezing-Rain-Snow-1992.gif rename to wwwroot/Images/2/r/Freezing-Rain-Snow-1992.gif diff --git a/Images/2/r/Freezing-Rain-Snow.gif b/wwwroot/Images/2/r/Freezing-Rain-Snow.gif similarity index 100% rename from Images/2/r/Freezing-Rain-Snow.gif rename to wwwroot/Images/2/r/Freezing-Rain-Snow.gif diff --git a/Images/2/r/Freezing-Rain.gif b/wwwroot/Images/2/r/Freezing-Rain.gif similarity index 100% rename from Images/2/r/Freezing-Rain.gif rename to wwwroot/Images/2/r/Freezing-Rain.gif diff --git a/Images/2/r/Frigid.gif b/wwwroot/Images/2/r/Frigid.gif similarity index 100% rename from Images/2/r/Frigid.gif rename to wwwroot/Images/2/r/Frigid.gif diff --git a/Images/2/r/Frz-Rain-Snow-1991.gif b/wwwroot/Images/2/r/Frz-Rain-Snow-1991.gif similarity index 100% rename from Images/2/r/Frz-Rain-Snow-1991.gif rename to wwwroot/Images/2/r/Frz-Rain-Snow-1991.gif diff --git a/Images/2/r/Heavy Snow.gif b/wwwroot/Images/2/r/Heavy Snow.gif similarity index 100% rename from Images/2/r/Heavy Snow.gif rename to wwwroot/Images/2/r/Heavy Snow.gif diff --git a/Images/2/r/Heavy-Snow-1994.gif b/wwwroot/Images/2/r/Heavy-Snow-1994.gif similarity index 100% rename from Images/2/r/Heavy-Snow-1994.gif rename to wwwroot/Images/2/r/Heavy-Snow-1994.gif diff --git a/Images/2/r/Heavy-Snow.gif b/wwwroot/Images/2/r/Heavy-Snow.gif similarity index 100% rename from Images/2/r/Heavy-Snow.gif rename to wwwroot/Images/2/r/Heavy-Snow.gif diff --git a/Images/2/r/Hot.gif b/wwwroot/Images/2/r/Hot.gif similarity index 100% rename from Images/2/r/Hot.gif rename to wwwroot/Images/2/r/Hot.gif diff --git a/Images/2/r/Isolated-Tstorms.gif b/wwwroot/Images/2/r/Isolated-Tstorms.gif similarity index 100% rename from Images/2/r/Isolated-Tstorms.gif rename to wwwroot/Images/2/r/Isolated-Tstorms.gif diff --git a/Images/2/r/Light Snow.gif b/wwwroot/Images/2/r/Light Snow.gif similarity index 100% rename from Images/2/r/Light Snow.gif rename to wwwroot/Images/2/r/Light Snow.gif diff --git a/Images/2/r/Light-Snow.gif b/wwwroot/Images/2/r/Light-Snow.gif similarity index 100% rename from Images/2/r/Light-Snow.gif rename to wwwroot/Images/2/r/Light-Snow.gif diff --git a/Images/2/r/Mostly Clear.gif b/wwwroot/Images/2/r/Mostly Clear.gif similarity index 100% rename from Images/2/r/Mostly Clear.gif rename to wwwroot/Images/2/r/Mostly Clear.gif diff --git a/Images/2/r/Mostly-Clear.gif b/wwwroot/Images/2/r/Mostly-Clear.gif similarity index 100% rename from Images/2/r/Mostly-Clear.gif rename to wwwroot/Images/2/r/Mostly-Clear.gif diff --git a/Images/2/r/Mostly-Cloudy-1991.gif b/wwwroot/Images/2/r/Mostly-Cloudy-1991.gif similarity index 100% rename from Images/2/r/Mostly-Cloudy-1991.gif rename to wwwroot/Images/2/r/Mostly-Cloudy-1991.gif diff --git a/Images/2/r/Mostly-Cloudy-1994.gif b/wwwroot/Images/2/r/Mostly-Cloudy-1994.gif similarity index 100% rename from Images/2/r/Mostly-Cloudy-1994.gif rename to wwwroot/Images/2/r/Mostly-Cloudy-1994.gif diff --git a/Images/2/r/Mostly-Cloudy.gif b/wwwroot/Images/2/r/Mostly-Cloudy.gif similarity index 100% rename from Images/2/r/Mostly-Cloudy.gif rename to wwwroot/Images/2/r/Mostly-Cloudy.gif diff --git a/Images/2/r/Motionless/Cloudy 1990.gif b/wwwroot/Images/2/r/Motionless/Cloudy 1990.gif similarity index 100% rename from Images/2/r/Motionless/Cloudy 1990.gif rename to wwwroot/Images/2/r/Motionless/Cloudy 1990.gif diff --git a/Images/2/r/Motionless/Flurries.gif b/wwwroot/Images/2/r/Motionless/Flurries.gif similarity index 100% rename from Images/2/r/Motionless/Flurries.gif rename to wwwroot/Images/2/r/Motionless/Flurries.gif diff --git a/Images/2/r/Motionless/Fog.gif b/wwwroot/Images/2/r/Motionless/Fog.gif similarity index 100% rename from Images/2/r/Motionless/Fog.gif rename to wwwroot/Images/2/r/Motionless/Fog.gif diff --git a/Images/2/r/Motionless/Freezing Rain 1990.gif b/wwwroot/Images/2/r/Motionless/Freezing Rain 1990.gif similarity index 100% rename from Images/2/r/Motionless/Freezing Rain 1990.gif rename to wwwroot/Images/2/r/Motionless/Freezing Rain 1990.gif diff --git a/Images/2/r/Motionless/Frigid.gif b/wwwroot/Images/2/r/Motionless/Frigid.gif similarity index 100% rename from Images/2/r/Motionless/Frigid.gif rename to wwwroot/Images/2/r/Motionless/Frigid.gif diff --git a/Images/2/r/Motionless/Frz Rain-Snow 1990.gif b/wwwroot/Images/2/r/Motionless/Frz Rain-Snow 1990.gif similarity index 100% rename from Images/2/r/Motionless/Frz Rain-Snow 1990.gif rename to wwwroot/Images/2/r/Motionless/Frz Rain-Snow 1990.gif diff --git a/Images/2/r/Motionless/Heavy-Snow.gif b/wwwroot/Images/2/r/Motionless/Heavy-Snow.gif similarity index 100% rename from Images/2/r/Motionless/Heavy-Snow.gif rename to wwwroot/Images/2/r/Motionless/Heavy-Snow.gif diff --git a/Images/2/r/Motionless/Mostly Cloudy 1990.gif b/wwwroot/Images/2/r/Motionless/Mostly Cloudy 1990.gif similarity index 100% rename from Images/2/r/Motionless/Mostly Cloudy 1990.gif rename to wwwroot/Images/2/r/Motionless/Mostly Cloudy 1990.gif diff --git a/Images/2/r/Motionless/Partly Cloudy 1990.gif b/wwwroot/Images/2/r/Motionless/Partly Cloudy 1990.gif similarity index 100% rename from Images/2/r/Motionless/Partly Cloudy 1990.gif rename to wwwroot/Images/2/r/Motionless/Partly Cloudy 1990.gif diff --git a/Images/2/r/Motionless/Rain 1990.gif b/wwwroot/Images/2/r/Motionless/Rain 1990.gif similarity index 100% rename from Images/2/r/Motionless/Rain 1990.gif rename to wwwroot/Images/2/r/Motionless/Rain 1990.gif diff --git a/Images/2/r/Motionless/Rain-Snow 1990.gif b/wwwroot/Images/2/r/Motionless/Rain-Snow 1990.gif similarity index 100% rename from Images/2/r/Motionless/Rain-Snow 1990.gif rename to wwwroot/Images/2/r/Motionless/Rain-Snow 1990.gif diff --git a/Images/2/r/Motionless/Scatd Showers 1990.gif b/wwwroot/Images/2/r/Motionless/Scatd Showers 1990.gif similarity index 100% rename from Images/2/r/Motionless/Scatd Showers 1990.gif rename to wwwroot/Images/2/r/Motionless/Scatd Showers 1990.gif diff --git a/Images/2/r/Motionless/Scatd Snow Showers 1990.gif b/wwwroot/Images/2/r/Motionless/Scatd Snow Showers 1990.gif similarity index 100% rename from Images/2/r/Motionless/Scatd Snow Showers 1990.gif rename to wwwroot/Images/2/r/Motionless/Scatd Snow Showers 1990.gif diff --git a/Images/2/r/Motionless/Scattered Tstorms 1990.gif b/wwwroot/Images/2/r/Motionless/Scattered Tstorms 1990.gif similarity index 100% rename from Images/2/r/Motionless/Scattered Tstorms 1990.gif rename to wwwroot/Images/2/r/Motionless/Scattered Tstorms 1990.gif diff --git a/Images/2/r/Motionless/Shower 1990.gif b/wwwroot/Images/2/r/Motionless/Shower 1990.gif similarity index 100% rename from Images/2/r/Motionless/Shower 1990.gif rename to wwwroot/Images/2/r/Motionless/Shower 1990.gif diff --git a/Images/2/r/Motionless/Sleet 1990.gif b/wwwroot/Images/2/r/Motionless/Sleet 1990.gif similarity index 100% rename from Images/2/r/Motionless/Sleet 1990.gif rename to wwwroot/Images/2/r/Motionless/Sleet 1990.gif diff --git a/Images/2/r/Motionless/Snow 1990.gif b/wwwroot/Images/2/r/Motionless/Snow 1990.gif similarity index 100% rename from Images/2/r/Motionless/Snow 1990.gif rename to wwwroot/Images/2/r/Motionless/Snow 1990.gif diff --git a/Images/2/r/Motionless/Sunny 1990.gif b/wwwroot/Images/2/r/Motionless/Sunny 1990.gif similarity index 100% rename from Images/2/r/Motionless/Sunny 1990.gif rename to wwwroot/Images/2/r/Motionless/Sunny 1990.gif diff --git a/Images/2/r/Motionless/Thunderstorm 1990.gif b/wwwroot/Images/2/r/Motionless/Thunderstorm 1990.gif similarity index 100% rename from Images/2/r/Motionless/Thunderstorm 1990.gif rename to wwwroot/Images/2/r/Motionless/Thunderstorm 1990.gif diff --git a/Images/2/r/Motionless/Wind.gif b/wwwroot/Images/2/r/Motionless/Wind.gif similarity index 100% rename from Images/2/r/Motionless/Wind.gif rename to wwwroot/Images/2/r/Motionless/Wind.gif diff --git a/Images/2/r/Motionless/Wintry Mix 1990.gif b/wwwroot/Images/2/r/Motionless/Wintry Mix 1990.gif similarity index 100% rename from Images/2/r/Motionless/Wintry Mix 1990.gif rename to wwwroot/Images/2/r/Motionless/Wintry Mix 1990.gif diff --git a/Images/2/r/Partly Clear.gif b/wwwroot/Images/2/r/Partly Clear.gif similarity index 100% rename from Images/2/r/Partly Clear.gif rename to wwwroot/Images/2/r/Partly Clear.gif diff --git a/Images/2/r/Partly-Clear-1994.gif b/wwwroot/Images/2/r/Partly-Clear-1994.gif similarity index 100% rename from Images/2/r/Partly-Clear-1994.gif rename to wwwroot/Images/2/r/Partly-Clear-1994.gif diff --git a/Images/2/r/Partly-Clear.gif b/wwwroot/Images/2/r/Partly-Clear.gif similarity index 100% rename from Images/2/r/Partly-Clear.gif rename to wwwroot/Images/2/r/Partly-Clear.gif diff --git a/Images/2/r/Partly-Cloudy-1991.gif b/wwwroot/Images/2/r/Partly-Cloudy-1991.gif similarity index 100% rename from Images/2/r/Partly-Cloudy-1991.gif rename to wwwroot/Images/2/r/Partly-Cloudy-1991.gif diff --git a/Images/2/r/Partly-Cloudy.gif b/wwwroot/Images/2/r/Partly-Cloudy.gif similarity index 100% rename from Images/2/r/Partly-Cloudy.gif rename to wwwroot/Images/2/r/Partly-Cloudy.gif diff --git a/Images/2/r/Rain-1991.gif b/wwwroot/Images/2/r/Rain-1991.gif similarity index 100% rename from Images/2/r/Rain-1991.gif rename to wwwroot/Images/2/r/Rain-1991.gif diff --git a/Images/2/r/Rain-1992.gif b/wwwroot/Images/2/r/Rain-1992.gif similarity index 100% rename from Images/2/r/Rain-1992.gif rename to wwwroot/Images/2/r/Rain-1992.gif diff --git a/Images/2/r/Rain-Sleet.gif b/wwwroot/Images/2/r/Rain-Sleet.gif similarity index 100% rename from Images/2/r/Rain-Sleet.gif rename to wwwroot/Images/2/r/Rain-Sleet.gif diff --git a/Images/2/r/Rain-Snow-1991.gif b/wwwroot/Images/2/r/Rain-Snow-1991.gif similarity index 100% rename from Images/2/r/Rain-Snow-1991.gif rename to wwwroot/Images/2/r/Rain-Snow-1991.gif diff --git a/Images/2/r/Rain-Snow-1992.gif b/wwwroot/Images/2/r/Rain-Snow-1992.gif similarity index 100% rename from Images/2/r/Rain-Snow-1992.gif rename to wwwroot/Images/2/r/Rain-Snow-1992.gif diff --git a/Images/2/r/Rain-Snow.gif b/wwwroot/Images/2/r/Rain-Snow.gif similarity index 100% rename from Images/2/r/Rain-Snow.gif rename to wwwroot/Images/2/r/Rain-Snow.gif diff --git a/Images/2/r/Rain-Wind-1994.gif b/wwwroot/Images/2/r/Rain-Wind-1994.gif similarity index 100% rename from Images/2/r/Rain-Wind-1994.gif rename to wwwroot/Images/2/r/Rain-Wind-1994.gif diff --git a/Images/2/r/Rain.gif b/wwwroot/Images/2/r/Rain.gif similarity index 100% rename from Images/2/r/Rain.gif rename to wwwroot/Images/2/r/Rain.gif diff --git a/Images/2/r/Scatd-Showers-1991.gif b/wwwroot/Images/2/r/Scatd-Showers-1991.gif similarity index 100% rename from Images/2/r/Scatd-Showers-1991.gif rename to wwwroot/Images/2/r/Scatd-Showers-1991.gif diff --git a/Images/2/r/Scatd-Snow-Showers-1991.gif b/wwwroot/Images/2/r/Scatd-Snow-Showers-1991.gif similarity index 100% rename from Images/2/r/Scatd-Snow-Showers-1991.gif rename to wwwroot/Images/2/r/Scatd-Snow-Showers-1991.gif diff --git a/Images/2/r/Scattered-Showers-1994.gif b/wwwroot/Images/2/r/Scattered-Showers-1994.gif similarity index 100% rename from Images/2/r/Scattered-Showers-1994.gif rename to wwwroot/Images/2/r/Scattered-Showers-1994.gif diff --git a/Images/2/r/Scattered-Showers.gif b/wwwroot/Images/2/r/Scattered-Showers.gif similarity index 100% rename from Images/2/r/Scattered-Showers.gif rename to wwwroot/Images/2/r/Scattered-Showers.gif diff --git a/Images/2/r/Scattered-Snow-Showers.gif b/wwwroot/Images/2/r/Scattered-Snow-Showers.gif similarity index 100% rename from Images/2/r/Scattered-Snow-Showers.gif rename to wwwroot/Images/2/r/Scattered-Snow-Showers.gif diff --git a/Images/2/r/Scattered-Tstorms-1991.gif b/wwwroot/Images/2/r/Scattered-Tstorms-1991.gif similarity index 100% rename from Images/2/r/Scattered-Tstorms-1991.gif rename to wwwroot/Images/2/r/Scattered-Tstorms-1991.gif diff --git a/Images/2/r/Scattered-Tstorms-1992.gif b/wwwroot/Images/2/r/Scattered-Tstorms-1992.gif similarity index 100% rename from Images/2/r/Scattered-Tstorms-1992.gif rename to wwwroot/Images/2/r/Scattered-Tstorms-1992.gif diff --git a/Images/2/r/Scattered-Tstorms-1994.gif b/wwwroot/Images/2/r/Scattered-Tstorms-1994.gif similarity index 100% rename from Images/2/r/Scattered-Tstorms-1994.gif rename to wwwroot/Images/2/r/Scattered-Tstorms-1994.gif diff --git a/Images/2/r/Scattered-Tstorms.gif b/wwwroot/Images/2/r/Scattered-Tstorms.gif similarity index 100% rename from Images/2/r/Scattered-Tstorms.gif rename to wwwroot/Images/2/r/Scattered-Tstorms.gif diff --git a/Images/2/r/Shower-1991.gif b/wwwroot/Images/2/r/Shower-1991.gif similarity index 100% rename from Images/2/r/Shower-1991.gif rename to wwwroot/Images/2/r/Shower-1991.gif diff --git a/Images/2/r/Shower.gif b/wwwroot/Images/2/r/Shower.gif similarity index 100% rename from Images/2/r/Shower.gif rename to wwwroot/Images/2/r/Shower.gif diff --git a/Images/2/r/Sleet-1991.gif b/wwwroot/Images/2/r/Sleet-1991.gif similarity index 100% rename from Images/2/r/Sleet-1991.gif rename to wwwroot/Images/2/r/Sleet-1991.gif diff --git a/Images/2/r/Sleet.gif b/wwwroot/Images/2/r/Sleet.gif similarity index 100% rename from Images/2/r/Sleet.gif rename to wwwroot/Images/2/r/Sleet.gif diff --git a/Images/2/r/Snow 1990.gif b/wwwroot/Images/2/r/Snow 1990.gif similarity index 100% rename from Images/2/r/Snow 1990.gif rename to wwwroot/Images/2/r/Snow 1990.gif diff --git a/Images/2/r/Snow and Sleet.gif b/wwwroot/Images/2/r/Snow and Sleet.gif similarity index 100% rename from Images/2/r/Snow and Sleet.gif rename to wwwroot/Images/2/r/Snow and Sleet.gif diff --git a/Images/2/r/Snow-Sleet.gif b/wwwroot/Images/2/r/Snow-Sleet.gif similarity index 100% rename from Images/2/r/Snow-Sleet.gif rename to wwwroot/Images/2/r/Snow-Sleet.gif diff --git a/Images/2/r/Sunny-Wind-1994.gif b/wwwroot/Images/2/r/Sunny-Wind-1994.gif similarity index 100% rename from Images/2/r/Sunny-Wind-1994.gif rename to wwwroot/Images/2/r/Sunny-Wind-1994.gif diff --git a/Images/2/r/Sunny.gif b/wwwroot/Images/2/r/Sunny.gif similarity index 100% rename from Images/2/r/Sunny.gif rename to wwwroot/Images/2/r/Sunny.gif diff --git a/Images/2/r/Thunder.gif b/wwwroot/Images/2/r/Thunder.gif similarity index 100% rename from Images/2/r/Thunder.gif rename to wwwroot/Images/2/r/Thunder.gif diff --git a/Images/2/r/ThunderSnow.gif b/wwwroot/Images/2/r/ThunderSnow.gif similarity index 100% rename from Images/2/r/ThunderSnow.gif rename to wwwroot/Images/2/r/ThunderSnow.gif diff --git a/Images/2/r/Thunderstorm-1991.gif b/wwwroot/Images/2/r/Thunderstorm-1991.gif similarity index 100% rename from Images/2/r/Thunderstorm-1991.gif rename to wwwroot/Images/2/r/Thunderstorm-1991.gif diff --git a/Images/2/r/Thunderstorm.gif b/wwwroot/Images/2/r/Thunderstorm.gif similarity index 100% rename from Images/2/r/Thunderstorm.gif rename to wwwroot/Images/2/r/Thunderstorm.gif diff --git a/Images/2/r/Wind.gif b/wwwroot/Images/2/r/Wind.gif similarity index 100% rename from Images/2/r/Wind.gif rename to wwwroot/Images/2/r/Wind.gif diff --git a/Images/2/r/Windy.gif b/wwwroot/Images/2/r/Windy.gif similarity index 100% rename from Images/2/r/Windy.gif rename to wwwroot/Images/2/r/Windy.gif diff --git a/Images/2/r/Wintry-Mix-1991.gif b/wwwroot/Images/2/r/Wintry-Mix-1991.gif similarity index 100% rename from Images/2/r/Wintry-Mix-1991.gif rename to wwwroot/Images/2/r/Wintry-Mix-1991.gif diff --git a/Images/2/r/Wintry-Mix-1992.gif b/wwwroot/Images/2/r/Wintry-Mix-1992.gif similarity index 100% rename from Images/2/r/Wintry-Mix-1992.gif rename to wwwroot/Images/2/r/Wintry-Mix-1992.gif diff --git a/Images/2/r/Wintry-Mix.gif b/wwwroot/Images/2/r/Wintry-Mix.gif similarity index 100% rename from Images/2/r/Wintry-Mix.gif rename to wwwroot/Images/2/r/Wintry-Mix.gif diff --git a/Images/4000RadarMap.jpg b/wwwroot/Images/4000RadarMap.jpg similarity index 100% rename from Images/4000RadarMap.jpg rename to wwwroot/Images/4000RadarMap.jpg diff --git a/Images/4000RadarMap.png b/wwwroot/Images/4000RadarMap.png similarity index 100% rename from Images/4000RadarMap.png rename to wwwroot/Images/4000RadarMap.png diff --git a/Images/4000RadarMap2.gif b/wwwroot/Images/4000RadarMap2.gif similarity index 100% rename from Images/4000RadarMap2.gif rename to wwwroot/Images/4000RadarMap2.gif diff --git a/Images/4000RadarMap2.jpg b/wwwroot/Images/4000RadarMap2.jpg similarity index 100% rename from Images/4000RadarMap2.jpg rename to wwwroot/Images/4000RadarMap2.jpg diff --git a/Images/4000RadarMap2.png b/wwwroot/Images/4000RadarMap2.png similarity index 100% rename from Images/4000RadarMap2.png rename to wwwroot/Images/4000RadarMap2.png diff --git a/Images/4000RadarMap2_1.jpg b/wwwroot/Images/4000RadarMap2_1.jpg similarity index 100% rename from Images/4000RadarMap2_1.jpg rename to wwwroot/Images/4000RadarMap2_1.jpg diff --git a/Images/AlaskaRadarMap.gif b/wwwroot/Images/AlaskaRadarMap.gif similarity index 100% rename from Images/AlaskaRadarMap.gif rename to wwwroot/Images/AlaskaRadarMap.gif diff --git a/Images/AlaskaRadarMap.png b/wwwroot/Images/AlaskaRadarMap.png similarity index 100% rename from Images/AlaskaRadarMap.png rename to wwwroot/Images/AlaskaRadarMap.png diff --git a/Images/AlaskaRadarMap1.png b/wwwroot/Images/AlaskaRadarMap1.png similarity index 100% rename from Images/AlaskaRadarMap1.png rename to wwwroot/Images/AlaskaRadarMap1.png diff --git a/Images/AlaskaRadarMap2.bmp b/wwwroot/Images/AlaskaRadarMap2.bmp similarity index 100% rename from Images/AlaskaRadarMap2.bmp rename to wwwroot/Images/AlaskaRadarMap2.bmp diff --git a/Images/AlaskaRadarMap2.png b/wwwroot/Images/AlaskaRadarMap2.png similarity index 100% rename from Images/AlaskaRadarMap2.png rename to wwwroot/Images/AlaskaRadarMap2.png diff --git a/Images/AlaskaRadarMap3.png b/wwwroot/Images/AlaskaRadarMap3.png similarity index 100% rename from Images/AlaskaRadarMap3.png rename to wwwroot/Images/AlaskaRadarMap3.png diff --git a/Images/AlaskaRadarMap4.png b/wwwroot/Images/AlaskaRadarMap4.png similarity index 100% rename from Images/AlaskaRadarMap4.png rename to wwwroot/Images/AlaskaRadarMap4.png diff --git a/Images/AlaskaRadarMap5.png b/wwwroot/Images/AlaskaRadarMap5.png similarity index 100% rename from Images/AlaskaRadarMap5.png rename to wwwroot/Images/AlaskaRadarMap5.png diff --git a/Images/AlaskaRadarMap6.png b/wwwroot/Images/AlaskaRadarMap6.png similarity index 100% rename from Images/AlaskaRadarMap6.png rename to wwwroot/Images/AlaskaRadarMap6.png diff --git a/Images/BackGround1.png b/wwwroot/Images/BackGround1.png similarity index 100% rename from Images/BackGround1.png rename to wwwroot/Images/BackGround1.png diff --git a/Images/BackGround1_1.png b/wwwroot/Images/BackGround1_1.png similarity index 100% rename from Images/BackGround1_1.png rename to wwwroot/Images/BackGround1_1.png diff --git a/Images/BackGround1_2.png b/wwwroot/Images/BackGround1_2.png similarity index 100% rename from Images/BackGround1_2.png rename to wwwroot/Images/BackGround1_2.png diff --git a/Images/BackGround1_2_1.png b/wwwroot/Images/BackGround1_2_1.png similarity index 100% rename from Images/BackGround1_2_1.png rename to wwwroot/Images/BackGround1_2_1.png diff --git a/Images/BackGround1_2_2.png b/wwwroot/Images/BackGround1_2_2.png similarity index 100% rename from Images/BackGround1_2_2.png rename to wwwroot/Images/BackGround1_2_2.png diff --git a/Images/BackGround1_3_1.png b/wwwroot/Images/BackGround1_3_1.png similarity index 100% rename from Images/BackGround1_3_1.png rename to wwwroot/Images/BackGround1_3_1.png diff --git a/Images/BackGround2.png b/wwwroot/Images/BackGround2.png similarity index 100% rename from Images/BackGround2.png rename to wwwroot/Images/BackGround2.png diff --git a/Images/BackGround2_1.png b/wwwroot/Images/BackGround2_1.png similarity index 100% rename from Images/BackGround2_1.png rename to wwwroot/Images/BackGround2_1.png diff --git a/Images/BackGround2_2.png b/wwwroot/Images/BackGround2_2.png similarity index 100% rename from Images/BackGround2_2.png rename to wwwroot/Images/BackGround2_2.png diff --git a/Images/BackGround3.png b/wwwroot/Images/BackGround3.png similarity index 100% rename from Images/BackGround3.png rename to wwwroot/Images/BackGround3.png diff --git a/Images/BackGround3_1.png b/wwwroot/Images/BackGround3_1.png similarity index 100% rename from Images/BackGround3_1.png rename to wwwroot/Images/BackGround3_1.png diff --git a/Images/BackGround3_2.png b/wwwroot/Images/BackGround3_2.png similarity index 100% rename from Images/BackGround3_2.png rename to wwwroot/Images/BackGround3_2.png diff --git a/Images/BackGround4.png b/wwwroot/Images/BackGround4.png similarity index 100% rename from Images/BackGround4.png rename to wwwroot/Images/BackGround4.png diff --git a/Images/BackGround4_1.png b/wwwroot/Images/BackGround4_1.png similarity index 100% rename from Images/BackGround4_1.png rename to wwwroot/Images/BackGround4_1.png diff --git a/Images/BackGround4_2.png b/wwwroot/Images/BackGround4_2.png similarity index 100% rename from Images/BackGround4_2.png rename to wwwroot/Images/BackGround4_2.png diff --git a/Images/BackGround5.png b/wwwroot/Images/BackGround5.png similarity index 100% rename from Images/BackGround5.png rename to wwwroot/Images/BackGround5.png diff --git a/Images/BackGround5_1.png b/wwwroot/Images/BackGround5_1.png similarity index 100% rename from Images/BackGround5_1.png rename to wwwroot/Images/BackGround5_1.png diff --git a/Images/BackGround5_2.png b/wwwroot/Images/BackGround5_2.png similarity index 100% rename from Images/BackGround5_2.png rename to wwwroot/Images/BackGround5_2.png diff --git a/Images/BackGround6.png b/wwwroot/Images/BackGround6.png similarity index 100% rename from Images/BackGround6.png rename to wwwroot/Images/BackGround6.png diff --git a/Images/BackGround6_1.png b/wwwroot/Images/BackGround6_1.png similarity index 100% rename from Images/BackGround6_1.png rename to wwwroot/Images/BackGround6_1.png diff --git a/Images/BackGround6_2.png b/wwwroot/Images/BackGround6_2.png similarity index 100% rename from Images/BackGround6_2.png rename to wwwroot/Images/BackGround6_2.png diff --git a/Images/BackGround7.png b/wwwroot/Images/BackGround7.png similarity index 100% rename from Images/BackGround7.png rename to wwwroot/Images/BackGround7.png diff --git a/Images/BackGround8_1 - Copy (2).png b/wwwroot/Images/BackGround8_1 - Copy (2).png similarity index 100% rename from Images/BackGround8_1 - Copy (2).png rename to wwwroot/Images/BackGround8_1 - Copy (2).png diff --git a/Images/BackGround8_1.png b/wwwroot/Images/BackGround8_1.png similarity index 100% rename from Images/BackGround8_1.png rename to wwwroot/Images/BackGround8_1.png diff --git a/Images/BackGround8_1_1.png b/wwwroot/Images/BackGround8_1_1.png similarity index 100% rename from Images/BackGround8_1_1.png rename to wwwroot/Images/BackGround8_1_1.png diff --git a/Images/BackGround8_2.png b/wwwroot/Images/BackGround8_2.png similarity index 100% rename from Images/BackGround8_2.png rename to wwwroot/Images/BackGround8_2.png diff --git a/Images/BackGround9_1.png b/wwwroot/Images/BackGround9_1.png similarity index 100% rename from Images/BackGround9_1.png rename to wwwroot/Images/BackGround9_1.png diff --git a/Images/BackGround9_2.png b/wwwroot/Images/BackGround9_2.png similarity index 100% rename from Images/BackGround9_2.png rename to wwwroot/Images/BackGround9_2.png diff --git a/Images/Basemap.png b/wwwroot/Images/Basemap.png similarity index 100% rename from Images/Basemap.png rename to wwwroot/Images/Basemap.png diff --git a/Images/Basemap2.png b/wwwroot/Images/Basemap2.png similarity index 100% rename from Images/Basemap2.png rename to wwwroot/Images/Basemap2.png diff --git a/Images/Blowing-Snow.gif b/wwwroot/Images/Blowing-Snow.gif similarity index 100% rename from Images/Blowing-Snow.gif rename to wwwroot/Images/Blowing-Snow.gif diff --git a/Images/CC_Clear0.gif b/wwwroot/Images/CC_Clear0.gif similarity index 100% rename from Images/CC_Clear0.gif rename to wwwroot/Images/CC_Clear0.gif diff --git a/Images/CC_Clear1.gif b/wwwroot/Images/CC_Clear1.gif similarity index 100% rename from Images/CC_Clear1.gif rename to wwwroot/Images/CC_Clear1.gif diff --git a/Images/CC_Cloudy.gif b/wwwroot/Images/CC_Cloudy.gif similarity index 100% rename from Images/CC_Cloudy.gif rename to wwwroot/Images/CC_Cloudy.gif diff --git a/Images/CC_Cold.gif b/wwwroot/Images/CC_Cold.gif similarity index 100% rename from Images/CC_Cold.gif rename to wwwroot/Images/CC_Cold.gif diff --git a/Images/CC_Fog.gif b/wwwroot/Images/CC_Fog.gif similarity index 100% rename from Images/CC_Fog.gif rename to wwwroot/Images/CC_Fog.gif diff --git a/Images/CC_FreezingRain.gif b/wwwroot/Images/CC_FreezingRain.gif similarity index 100% rename from Images/CC_FreezingRain.gif rename to wwwroot/Images/CC_FreezingRain.gif diff --git a/Images/CC_Haze.gif b/wwwroot/Images/CC_Haze.gif similarity index 100% rename from Images/CC_Haze.gif rename to wwwroot/Images/CC_Haze.gif diff --git a/Images/CC_Hot.gif b/wwwroot/Images/CC_Hot.gif similarity index 100% rename from Images/CC_Hot.gif rename to wwwroot/Images/CC_Hot.gif diff --git a/Images/CC_Mix.gif b/wwwroot/Images/CC_Mix.gif similarity index 100% rename from Images/CC_Mix.gif rename to wwwroot/Images/CC_Mix.gif diff --git a/Images/CC_MostlyCloudy0.gif b/wwwroot/Images/CC_MostlyCloudy0.gif similarity index 100% rename from Images/CC_MostlyCloudy0.gif rename to wwwroot/Images/CC_MostlyCloudy0.gif diff --git a/Images/CC_MostlyCloudy1.gif b/wwwroot/Images/CC_MostlyCloudy1.gif similarity index 100% rename from Images/CC_MostlyCloudy1.gif rename to wwwroot/Images/CC_MostlyCloudy1.gif diff --git a/Images/CC_Mostly_Clear_Windy.gif b/wwwroot/Images/CC_Mostly_Clear_Windy.gif similarity index 100% rename from Images/CC_Mostly_Clear_Windy.gif rename to wwwroot/Images/CC_Mostly_Clear_Windy.gif diff --git a/Images/CC_Mostly_Cloudy_Windy.gif b/wwwroot/Images/CC_Mostly_Cloudy_Windy.gif similarity index 100% rename from Images/CC_Mostly_Cloudy_Windy.gif rename to wwwroot/Images/CC_Mostly_Cloudy_Windy.gif diff --git a/Images/CC_PartlyCloudy0.gif b/wwwroot/Images/CC_PartlyCloudy0.gif similarity index 100% rename from Images/CC_PartlyCloudy0.gif rename to wwwroot/Images/CC_PartlyCloudy0.gif diff --git a/Images/CC_PartlyCloudy1.gif b/wwwroot/Images/CC_PartlyCloudy1.gif similarity index 100% rename from Images/CC_PartlyCloudy1.gif rename to wwwroot/Images/CC_PartlyCloudy1.gif diff --git a/Images/CC_Partly_Clear_Windy.gif b/wwwroot/Images/CC_Partly_Clear_Windy.gif similarity index 100% rename from Images/CC_Partly_Clear_Windy.gif rename to wwwroot/Images/CC_Partly_Clear_Windy.gif diff --git a/Images/CC_Partly_Cloudy_Windy.gif b/wwwroot/Images/CC_Partly_Cloudy_Windy.gif similarity index 100% rename from Images/CC_Partly_Cloudy_Windy.gif rename to wwwroot/Images/CC_Partly_Cloudy_Windy.gif diff --git a/Images/CC_Rain.gif b/wwwroot/Images/CC_Rain.gif similarity index 100% rename from Images/CC_Rain.gif rename to wwwroot/Images/CC_Rain.gif diff --git a/Images/CC_RainSnow.gif b/wwwroot/Images/CC_RainSnow.gif similarity index 100% rename from Images/CC_RainSnow.gif rename to wwwroot/Images/CC_RainSnow.gif diff --git a/Images/CC_Showers.gif b/wwwroot/Images/CC_Showers.gif similarity index 100% rename from Images/CC_Showers.gif rename to wwwroot/Images/CC_Showers.gif diff --git a/Images/CC_Smoke.gif b/wwwroot/Images/CC_Smoke.gif similarity index 100% rename from Images/CC_Smoke.gif rename to wwwroot/Images/CC_Smoke.gif diff --git a/Images/CC_Snow.gif b/wwwroot/Images/CC_Snow.gif similarity index 100% rename from Images/CC_Snow.gif rename to wwwroot/Images/CC_Snow.gif diff --git a/Images/CC_SnowShowers.gif b/wwwroot/Images/CC_SnowShowers.gif similarity index 100% rename from Images/CC_SnowShowers.gif rename to wwwroot/Images/CC_SnowShowers.gif diff --git a/Images/CC_TStorm.gif b/wwwroot/Images/CC_TStorm.gif similarity index 100% rename from Images/CC_TStorm.gif rename to wwwroot/Images/CC_TStorm.gif diff --git a/Images/CC_Thunder.gif b/wwwroot/Images/CC_Thunder.gif similarity index 100% rename from Images/CC_Thunder.gif rename to wwwroot/Images/CC_Thunder.gif diff --git a/Images/CC_ThunderSnow.gif b/wwwroot/Images/CC_ThunderSnow.gif similarity index 100% rename from Images/CC_ThunderSnow.gif rename to wwwroot/Images/CC_ThunderSnow.gif diff --git a/Images/CC_Windy.gif b/wwwroot/Images/CC_Windy.gif similarity index 100% rename from Images/CC_Windy.gif rename to wwwroot/Images/CC_Windy.gif diff --git a/Images/CC_Windy2.gif b/wwwroot/Images/CC_Windy2.gif similarity index 100% rename from Images/CC_Windy2.gif rename to wwwroot/Images/CC_Windy2.gif diff --git a/Images/Clear.gif b/wwwroot/Images/Clear.gif similarity index 100% rename from Images/Clear.gif rename to wwwroot/Images/Clear.gif diff --git a/Images/Cloudy.gif b/wwwroot/Images/Cloudy.gif similarity index 100% rename from Images/Cloudy.gif rename to wwwroot/Images/Cloudy.gif diff --git a/Images/Conus_20161004_0028_N0Ronly.gif b/wwwroot/Images/Conus_20161004_0028_N0Ronly.gif similarity index 100% rename from Images/Conus_20161004_0028_N0Ronly.gif rename to wwwroot/Images/Conus_20161004_0028_N0Ronly.gif diff --git a/Images/Conus_20161005_2258_N0Ronly.gif b/wwwroot/Images/Conus_20161005_2258_N0Ronly.gif similarity index 100% rename from Images/Conus_20161005_2258_N0Ronly.gif rename to wwwroot/Images/Conus_20161005_2258_N0Ronly.gif diff --git a/Images/County-HighwayOverlay.png b/wwwroot/Images/County-HighwayOverlay.png similarity index 100% rename from Images/County-HighwayOverlay.png rename to wwwroot/Images/County-HighwayOverlay.png diff --git a/Images/EF_IsolatedTstorms.gif b/wwwroot/Images/EF_IsolatedTstorms.gif similarity index 100% rename from Images/EF_IsolatedTstorms.gif rename to wwwroot/Images/EF_IsolatedTstorms.gif diff --git a/Images/EF_ScatShowers.gif b/wwwroot/Images/EF_ScatShowers.gif similarity index 100% rename from Images/EF_ScatShowers.gif rename to wwwroot/Images/EF_ScatShowers.gif diff --git a/Images/EF_ScatSnowShowers.gif b/wwwroot/Images/EF_ScatSnowShowers.gif similarity index 100% rename from Images/EF_ScatSnowShowers.gif rename to wwwroot/Images/EF_ScatSnowShowers.gif diff --git a/Images/EF_ScatTstorms.gif b/wwwroot/Images/EF_ScatTstorms.gif similarity index 100% rename from Images/EF_ScatTstorms.gif rename to wwwroot/Images/EF_ScatTstorms.gif diff --git a/Images/First-Quarter.gif b/wwwroot/Images/First-Quarter.gif similarity index 100% rename from Images/First-Quarter.gif rename to wwwroot/Images/First-Quarter.gif diff --git a/Images/FmQpVYp.jpg b/wwwroot/Images/FmQpVYp.jpg similarity index 100% rename from Images/FmQpVYp.jpg rename to wwwroot/Images/FmQpVYp.jpg diff --git a/Images/Freezing-Rain-Sleet.gif b/wwwroot/Images/Freezing-Rain-Sleet.gif similarity index 100% rename from Images/Freezing-Rain-Sleet.gif rename to wwwroot/Images/Freezing-Rain-Sleet.gif diff --git a/Images/Freezing-Rain.gif b/wwwroot/Images/Freezing-Rain.gif similarity index 100% rename from Images/Freezing-Rain.gif rename to wwwroot/Images/Freezing-Rain.gif diff --git a/Images/Full-Moon.gif b/wwwroot/Images/Full-Moon.gif similarity index 100% rename from Images/Full-Moon.gif rename to wwwroot/Images/Full-Moon.gif diff --git a/Images/HawaiiRadarMap.gif b/wwwroot/Images/HawaiiRadarMap.gif similarity index 100% rename from Images/HawaiiRadarMap.gif rename to wwwroot/Images/HawaiiRadarMap.gif diff --git a/Images/HawaiiRadarMap.png b/wwwroot/Images/HawaiiRadarMap.png similarity index 100% rename from Images/HawaiiRadarMap.png rename to wwwroot/Images/HawaiiRadarMap.png diff --git a/Images/HawaiiRadarMap1.png b/wwwroot/Images/HawaiiRadarMap1.png similarity index 100% rename from Images/HawaiiRadarMap1.png rename to wwwroot/Images/HawaiiRadarMap1.png diff --git a/Images/HawaiiRadarMap2.png b/wwwroot/Images/HawaiiRadarMap2.png similarity index 100% rename from Images/HawaiiRadarMap2.png rename to wwwroot/Images/HawaiiRadarMap2.png diff --git a/Images/HawaiiRadarMap3.png b/wwwroot/Images/HawaiiRadarMap3.png similarity index 100% rename from Images/HawaiiRadarMap3.png rename to wwwroot/Images/HawaiiRadarMap3.png diff --git a/Images/HawaiiRadarMap4.png b/wwwroot/Images/HawaiiRadarMap4.png similarity index 100% rename from Images/HawaiiRadarMap4.png rename to wwwroot/Images/HawaiiRadarMap4.png diff --git a/Images/HawaiiRadarMap5.png b/wwwroot/Images/HawaiiRadarMap5.png similarity index 100% rename from Images/HawaiiRadarMap5.png rename to wwwroot/Images/HawaiiRadarMap5.png diff --git a/Images/Heavy-Snow.gif b/wwwroot/Images/Heavy-Snow.gif similarity index 100% rename from Images/Heavy-Snow.gif rename to wwwroot/Images/Heavy-Snow.gif diff --git a/Images/Ice-Snow.gif b/wwwroot/Images/Ice-Snow.gif similarity index 100% rename from Images/Ice-Snow.gif rename to wwwroot/Images/Ice-Snow.gif diff --git a/Images/Last-Quarter.gif b/wwwroot/Images/Last-Quarter.gif similarity index 100% rename from Images/Last-Quarter.gif rename to wwwroot/Images/Last-Quarter.gif diff --git a/Images/Light-Snow.gif b/wwwroot/Images/Light-Snow.gif similarity index 100% rename from Images/Light-Snow.gif rename to wwwroot/Images/Light-Snow.gif diff --git a/Images/Logo1.png b/wwwroot/Images/Logo1.png similarity index 100% rename from Images/Logo1.png rename to wwwroot/Images/Logo1.png diff --git a/Images/Logo192.png b/wwwroot/Images/Logo192.png similarity index 100% rename from Images/Logo192.png rename to wwwroot/Images/Logo192.png diff --git a/Images/Logo2.gif b/wwwroot/Images/Logo2.gif similarity index 100% rename from Images/Logo2.gif rename to wwwroot/Images/Logo2.gif diff --git a/Images/Logo2.png b/wwwroot/Images/Logo2.png similarity index 100% rename from Images/Logo2.png rename to wwwroot/Images/Logo2.png diff --git a/Images/Logo200.png b/wwwroot/Images/Logo200.png similarity index 100% rename from Images/Logo200.png rename to wwwroot/Images/Logo200.png diff --git a/Images/Logo3.gif b/wwwroot/Images/Logo3.gif similarity index 100% rename from Images/Logo3.gif rename to wwwroot/Images/Logo3.gif diff --git a/Images/Logo3.png b/wwwroot/Images/Logo3.png similarity index 100% rename from Images/Logo3.png rename to wwwroot/Images/Logo3.png diff --git a/Images/Moon1.gif b/wwwroot/Images/Moon1.gif similarity index 100% rename from Images/Moon1.gif rename to wwwroot/Images/Moon1.gif diff --git a/Images/Moon1.png b/wwwroot/Images/Moon1.png similarity index 100% rename from Images/Moon1.png rename to wwwroot/Images/Moon1.png diff --git a/Images/Moon2.gif b/wwwroot/Images/Moon2.gif similarity index 100% rename from Images/Moon2.gif rename to wwwroot/Images/Moon2.gif diff --git a/Images/Moon2.png b/wwwroot/Images/Moon2.png similarity index 100% rename from Images/Moon2.png rename to wwwroot/Images/Moon2.png diff --git a/Images/Moon3.gif b/wwwroot/Images/Moon3.gif similarity index 100% rename from Images/Moon3.gif rename to wwwroot/Images/Moon3.gif diff --git a/Images/Moon3.png b/wwwroot/Images/Moon3.png similarity index 100% rename from Images/Moon3.png rename to wwwroot/Images/Moon3.png diff --git a/Images/Moon4.gif b/wwwroot/Images/Moon4.gif similarity index 100% rename from Images/Moon4.gif rename to wwwroot/Images/Moon4.gif diff --git a/Images/Moon4.png b/wwwroot/Images/Moon4.png similarity index 100% rename from Images/Moon4.png rename to wwwroot/Images/Moon4.png diff --git a/Images/Mostly-Clear.gif b/wwwroot/Images/Mostly-Clear.gif similarity index 100% rename from Images/Mostly-Clear.gif rename to wwwroot/Images/Mostly-Clear.gif diff --git a/Images/Mostly-Clear2.gif b/wwwroot/Images/Mostly-Clear2.gif similarity index 100% rename from Images/Mostly-Clear2.gif rename to wwwroot/Images/Mostly-Clear2.gif diff --git a/Images/Mostly-Cloudy.gif b/wwwroot/Images/Mostly-Cloudy.gif similarity index 100% rename from Images/Mostly-Cloudy.gif rename to wwwroot/Images/Mostly-Cloudy.gif diff --git a/Images/Mostly-Sunny.gif b/wwwroot/Images/Mostly-Sunny.gif similarity index 100% rename from Images/Mostly-Sunny.gif rename to wwwroot/Images/Mostly-Sunny.gif diff --git a/Images/New-Moon.gif b/wwwroot/Images/New-Moon.gif similarity index 100% rename from Images/New-Moon.gif rename to wwwroot/Images/New-Moon.gif diff --git a/Images/Partly-Clear.gif b/wwwroot/Images/Partly-Clear.gif similarity index 100% rename from Images/Partly-Clear.gif rename to wwwroot/Images/Partly-Clear.gif diff --git a/Images/Partly-Cloudy.gif b/wwwroot/Images/Partly-Cloudy.gif similarity index 100% rename from Images/Partly-Cloudy.gif rename to wwwroot/Images/Partly-Cloudy.gif diff --git a/Images/Progress1.gif b/wwwroot/Images/Progress1.gif similarity index 100% rename from Images/Progress1.gif rename to wwwroot/Images/Progress1.gif diff --git a/Images/Progress1.png b/wwwroot/Images/Progress1.png similarity index 100% rename from Images/Progress1.png rename to wwwroot/Images/Progress1.png diff --git a/Images/Progress2.png b/wwwroot/Images/Progress2.png similarity index 100% rename from Images/Progress2.png rename to wwwroot/Images/Progress2.png diff --git a/Images/Progress3.png b/wwwroot/Images/Progress3.png similarity index 100% rename from Images/Progress3.png rename to wwwroot/Images/Progress3.png diff --git a/Images/Progress4.png b/wwwroot/Images/Progress4.png similarity index 100% rename from Images/Progress4.png rename to wwwroot/Images/Progress4.png diff --git a/Images/Progress5.png b/wwwroot/Images/Progress5.png similarity index 100% rename from Images/Progress5.png rename to wwwroot/Images/Progress5.png diff --git a/Images/Progress6.png b/wwwroot/Images/Progress6.png similarity index 100% rename from Images/Progress6.png rename to wwwroot/Images/Progress6.png diff --git a/Images/Progress7.png b/wwwroot/Images/Progress7.png similarity index 100% rename from Images/Progress7.png rename to wwwroot/Images/Progress7.png diff --git a/Images/Radar1.png b/wwwroot/Images/Radar1.png similarity index 100% rename from Images/Radar1.png rename to wwwroot/Images/Radar1.png diff --git a/Images/Radar2.png b/wwwroot/Images/Radar2.png similarity index 100% rename from Images/Radar2.png rename to wwwroot/Images/Radar2.png diff --git a/Images/Rain-Snow.gif b/wwwroot/Images/Rain-Snow.gif similarity index 100% rename from Images/Rain-Snow.gif rename to wwwroot/Images/Rain-Snow.gif diff --git a/Images/Rain.gif b/wwwroot/Images/Rain.gif similarity index 100% rename from Images/Rain.gif rename to wwwroot/Images/Rain.gif diff --git a/Images/RssFeed.png b/wwwroot/Images/RssFeed.png similarity index 100% rename from Images/RssFeed.png rename to wwwroot/Images/RssFeed.png diff --git a/Images/Scattered-Rain-Sun.gif b/wwwroot/Images/Scattered-Rain-Sun.gif similarity index 100% rename from Images/Scattered-Rain-Sun.gif rename to wwwroot/Images/Scattered-Rain-Sun.gif diff --git a/Images/Scattered-Snow-Sun.gif b/wwwroot/Images/Scattered-Snow-Sun.gif similarity index 100% rename from Images/Scattered-Snow-Sun.gif rename to wwwroot/Images/Scattered-Snow-Sun.gif diff --git a/Images/ScreenShot1.png b/wwwroot/Images/ScreenShot1.png similarity index 100% rename from Images/ScreenShot1.png rename to wwwroot/Images/ScreenShot1.png diff --git a/Images/ScreenShot10.png b/wwwroot/Images/ScreenShot10.png similarity index 100% rename from Images/ScreenShot10.png rename to wwwroot/Images/ScreenShot10.png diff --git a/Images/ScreenShot11.png b/wwwroot/Images/ScreenShot11.png similarity index 100% rename from Images/ScreenShot11.png rename to wwwroot/Images/ScreenShot11.png diff --git a/Images/ScreenShot13.png b/wwwroot/Images/ScreenShot13.png similarity index 100% rename from Images/ScreenShot13.png rename to wwwroot/Images/ScreenShot13.png diff --git a/Images/ScreenShot14.png b/wwwroot/Images/ScreenShot14.png similarity index 100% rename from Images/ScreenShot14.png rename to wwwroot/Images/ScreenShot14.png diff --git a/Images/ScreenShot15.png b/wwwroot/Images/ScreenShot15.png similarity index 100% rename from Images/ScreenShot15.png rename to wwwroot/Images/ScreenShot15.png diff --git a/Images/ScreenShot16.png b/wwwroot/Images/ScreenShot16.png similarity index 100% rename from Images/ScreenShot16.png rename to wwwroot/Images/ScreenShot16.png diff --git a/Images/ScreenShot17.png b/wwwroot/Images/ScreenShot17.png similarity index 100% rename from Images/ScreenShot17.png rename to wwwroot/Images/ScreenShot17.png diff --git a/Images/ScreenShot18.png b/wwwroot/Images/ScreenShot18.png similarity index 100% rename from Images/ScreenShot18.png rename to wwwroot/Images/ScreenShot18.png diff --git a/Images/ScreenShot19.png b/wwwroot/Images/ScreenShot19.png similarity index 100% rename from Images/ScreenShot19.png rename to wwwroot/Images/ScreenShot19.png diff --git a/Images/ScreenShot2.png b/wwwroot/Images/ScreenShot2.png similarity index 100% rename from Images/ScreenShot2.png rename to wwwroot/Images/ScreenShot2.png diff --git a/Images/ScreenShot20.png b/wwwroot/Images/ScreenShot20.png similarity index 100% rename from Images/ScreenShot20.png rename to wwwroot/Images/ScreenShot20.png diff --git a/Images/ScreenShot3.png b/wwwroot/Images/ScreenShot3.png similarity index 100% rename from Images/ScreenShot3.png rename to wwwroot/Images/ScreenShot3.png diff --git a/Images/ScreenShot4.png b/wwwroot/Images/ScreenShot4.png similarity index 100% rename from Images/ScreenShot4.png rename to wwwroot/Images/ScreenShot4.png diff --git a/Images/ScreenShot5.png b/wwwroot/Images/ScreenShot5.png similarity index 100% rename from Images/ScreenShot5.png rename to wwwroot/Images/ScreenShot5.png diff --git a/Images/ScreenShot6.png b/wwwroot/Images/ScreenShot6.png similarity index 100% rename from Images/ScreenShot6.png rename to wwwroot/Images/ScreenShot6.png diff --git a/Images/ScreenShot7.png b/wwwroot/Images/ScreenShot7.png similarity index 100% rename from Images/ScreenShot7.png rename to wwwroot/Images/ScreenShot7.png diff --git a/Images/ScreenShot8.png b/wwwroot/Images/ScreenShot8.png similarity index 100% rename from Images/ScreenShot8.png rename to wwwroot/Images/ScreenShot8.png diff --git a/Images/ScreenShot9.png b/wwwroot/Images/ScreenShot9.png similarity index 100% rename from Images/ScreenShot9.png rename to wwwroot/Images/ScreenShot9.png diff --git a/Images/Shower.gif b/wwwroot/Images/Shower.gif similarity index 100% rename from Images/Shower.gif rename to wwwroot/Images/Shower.gif diff --git a/Images/Sleet.gif b/wwwroot/Images/Sleet.gif similarity index 100% rename from Images/Sleet.gif rename to wwwroot/Images/Sleet.gif diff --git a/Images/Snippet1.png b/wwwroot/Images/Snippet1.png similarity index 100% rename from Images/Snippet1.png rename to wwwroot/Images/Snippet1.png diff --git a/Images/Snow-Sleet.gif b/wwwroot/Images/Snow-Sleet.gif similarity index 100% rename from Images/Snow-Sleet.gif rename to wwwroot/Images/Snow-Sleet.gif diff --git a/Images/Sunny.gif b/wwwroot/Images/Sunny.gif similarity index 100% rename from Images/Sunny.gif rename to wwwroot/Images/Sunny.gif diff --git a/Images/TaQ4DpT.png b/wwwroot/Images/TaQ4DpT.png similarity index 100% rename from Images/TaQ4DpT.png rename to wwwroot/Images/TaQ4DpT.png diff --git a/Images/Thunder.gif b/wwwroot/Images/Thunder.gif similarity index 100% rename from Images/Thunder.gif rename to wwwroot/Images/Thunder.gif diff --git a/Images/ThunderSnow.gif b/wwwroot/Images/ThunderSnow.gif similarity index 100% rename from Images/ThunderSnow.gif rename to wwwroot/Images/ThunderSnow.gif diff --git a/Images/Thunderstorm.gif b/wwwroot/Images/Thunderstorm.gif similarity index 100% rename from Images/Thunderstorm.gif rename to wwwroot/Images/Thunderstorm.gif diff --git a/Images/Twc_logo_resized.svg.png b/wwwroot/Images/Twc_logo_resized.svg.png similarity index 100% rename from Images/Twc_logo_resized.svg.png rename to wwwroot/Images/Twc_logo_resized.svg.png diff --git a/Images/Wintry-Mix.gif b/wwwroot/Images/Wintry-Mix.gif similarity index 100% rename from Images/Wintry-Mix.gif rename to wwwroot/Images/Wintry-Mix.gif diff --git a/Images/alaska.gif b/wwwroot/Images/alaska.gif similarity index 100% rename from Images/alaska.gif rename to wwwroot/Images/alaska.gif diff --git a/Images/gimp/Radar Basemap.xcf b/wwwroot/Images/gimp/Radar Basemap.xcf similarity index 100% rename from Images/gimp/Radar Basemap.xcf rename to wwwroot/Images/gimp/Radar Basemap.xcf diff --git a/Images/gimp/Radar Basemap2.xcf b/wwwroot/Images/gimp/Radar Basemap2.xcf similarity index 100% rename from Images/gimp/Radar Basemap2.xcf rename to wwwroot/Images/gimp/Radar Basemap2.xcf diff --git a/Images/gimp/Radar Basemap3.xcf b/wwwroot/Images/gimp/Radar Basemap3.xcf similarity index 100% rename from Images/gimp/Radar Basemap3.xcf rename to wwwroot/Images/gimp/Radar Basemap3.xcf diff --git a/Images/gimp/Radar Basemap4.xcf b/wwwroot/Images/gimp/Radar Basemap4.xcf similarity index 100% rename from Images/gimp/Radar Basemap4.xcf rename to wwwroot/Images/gimp/Radar Basemap4.xcf diff --git a/Images/hawaii.gif b/wwwroot/Images/hawaii.gif similarity index 100% rename from Images/hawaii.gif rename to wwwroot/Images/hawaii.gif diff --git a/Images/nav/gps_fixed_black_24dp.svg b/wwwroot/Images/nav/gps_fixed_black_24dp.svg similarity index 100% rename from Images/nav/gps_fixed_black_24dp.svg rename to wwwroot/Images/nav/gps_fixed_black_24dp.svg diff --git a/Images/nav/ic_fullscreen_exit_white_24dp_1x.png b/wwwroot/Images/nav/ic_fullscreen_exit_white_24dp_1x.png similarity index 100% rename from Images/nav/ic_fullscreen_exit_white_24dp_1x.png rename to wwwroot/Images/nav/ic_fullscreen_exit_white_24dp_1x.png diff --git a/Images/nav/ic_fullscreen_exit_white_24dp_2x.png b/wwwroot/Images/nav/ic_fullscreen_exit_white_24dp_2x.png similarity index 100% rename from Images/nav/ic_fullscreen_exit_white_24dp_2x.png rename to wwwroot/Images/nav/ic_fullscreen_exit_white_24dp_2x.png diff --git a/Images/nav/ic_fullscreen_white_24dp_1x.png b/wwwroot/Images/nav/ic_fullscreen_white_24dp_1x.png similarity index 100% rename from Images/nav/ic_fullscreen_white_24dp_1x.png rename to wwwroot/Images/nav/ic_fullscreen_white_24dp_1x.png diff --git a/Images/nav/ic_fullscreen_white_24dp_2x.png b/wwwroot/Images/nav/ic_fullscreen_white_24dp_2x.png similarity index 100% rename from Images/nav/ic_fullscreen_white_24dp_2x.png rename to wwwroot/Images/nav/ic_fullscreen_white_24dp_2x.png diff --git a/Images/nav/ic_gps_fixed_black_18dp_1x.png b/wwwroot/Images/nav/ic_gps_fixed_black_18dp_1x.png similarity index 100% rename from Images/nav/ic_gps_fixed_black_18dp_1x.png rename to wwwroot/Images/nav/ic_gps_fixed_black_18dp_1x.png diff --git a/Images/nav/ic_gps_fixed_black_18dp_2x.png b/wwwroot/Images/nav/ic_gps_fixed_black_18dp_2x.png similarity index 100% rename from Images/nav/ic_gps_fixed_black_18dp_2x.png rename to wwwroot/Images/nav/ic_gps_fixed_black_18dp_2x.png diff --git a/Images/nav/ic_gps_fixed_black_24dp_1x.png b/wwwroot/Images/nav/ic_gps_fixed_black_24dp_1x.png similarity index 100% rename from Images/nav/ic_gps_fixed_black_24dp_1x.png rename to wwwroot/Images/nav/ic_gps_fixed_black_24dp_1x.png diff --git a/Images/nav/ic_gps_fixed_black_24dp_2x.png b/wwwroot/Images/nav/ic_gps_fixed_black_24dp_2x.png similarity index 100% rename from Images/nav/ic_gps_fixed_black_24dp_2x.png rename to wwwroot/Images/nav/ic_gps_fixed_black_24dp_2x.png diff --git a/Images/nav/ic_hearing_black_24dp_2x.png b/wwwroot/Images/nav/ic_hearing_black_24dp_2x.png similarity index 100% rename from Images/nav/ic_hearing_black_24dp_2x.png rename to wwwroot/Images/nav/ic_hearing_black_24dp_2x.png diff --git a/Images/nav/ic_hearing_white_24dp_1x.png b/wwwroot/Images/nav/ic_hearing_white_24dp_1x.png similarity index 100% rename from Images/nav/ic_hearing_white_24dp_1x.png rename to wwwroot/Images/nav/ic_hearing_white_24dp_1x.png diff --git a/Images/nav/ic_hearing_white_24dp_2x.png b/wwwroot/Images/nav/ic_hearing_white_24dp_2x.png similarity index 100% rename from Images/nav/ic_hearing_white_24dp_2x.png rename to wwwroot/Images/nav/ic_hearing_white_24dp_2x.png diff --git a/Images/nav/ic_menu_white_24dp_1x.png b/wwwroot/Images/nav/ic_menu_white_24dp_1x.png similarity index 100% rename from Images/nav/ic_menu_white_24dp_1x.png rename to wwwroot/Images/nav/ic_menu_white_24dp_1x.png diff --git a/Images/nav/ic_menu_white_24dp_2x.png b/wwwroot/Images/nav/ic_menu_white_24dp_2x.png similarity index 100% rename from Images/nav/ic_menu_white_24dp_2x.png rename to wwwroot/Images/nav/ic_menu_white_24dp_2x.png diff --git a/Images/nav/ic_no_hearing_white_24dp_1x.png b/wwwroot/Images/nav/ic_no_hearing_white_24dp_1x.png similarity index 100% rename from Images/nav/ic_no_hearing_white_24dp_1x.png rename to wwwroot/Images/nav/ic_no_hearing_white_24dp_1x.png diff --git a/Images/nav/ic_no_hearing_white_24dp_2x - Copy.png b/wwwroot/Images/nav/ic_no_hearing_white_24dp_2x - Copy.png similarity index 100% rename from Images/nav/ic_no_hearing_white_24dp_2x - Copy.png rename to wwwroot/Images/nav/ic_no_hearing_white_24dp_2x - Copy.png diff --git a/Images/nav/ic_no_hearing_white_24dp_2x.png b/wwwroot/Images/nav/ic_no_hearing_white_24dp_2x.png similarity index 100% rename from Images/nav/ic_no_hearing_white_24dp_2x.png rename to wwwroot/Images/nav/ic_no_hearing_white_24dp_2x.png diff --git a/Images/nav/ic_pause_white_24dp_1x.png b/wwwroot/Images/nav/ic_pause_white_24dp_1x.png similarity index 100% rename from Images/nav/ic_pause_white_24dp_1x.png rename to wwwroot/Images/nav/ic_pause_white_24dp_1x.png diff --git a/Images/nav/ic_pause_white_24dp_2x.png b/wwwroot/Images/nav/ic_pause_white_24dp_2x.png similarity index 100% rename from Images/nav/ic_pause_white_24dp_2x.png rename to wwwroot/Images/nav/ic_pause_white_24dp_2x.png diff --git a/Images/nav/ic_play_arrow_white_24dp_1x.png b/wwwroot/Images/nav/ic_play_arrow_white_24dp_1x.png similarity index 100% rename from Images/nav/ic_play_arrow_white_24dp_1x.png rename to wwwroot/Images/nav/ic_play_arrow_white_24dp_1x.png diff --git a/Images/nav/ic_play_arrow_white_24dp_2x.png b/wwwroot/Images/nav/ic_play_arrow_white_24dp_2x.png similarity index 100% rename from Images/nav/ic_play_arrow_white_24dp_2x.png rename to wwwroot/Images/nav/ic_play_arrow_white_24dp_2x.png diff --git a/Images/nav/ic_refresh_white_24dp_1x.png b/wwwroot/Images/nav/ic_refresh_white_24dp_1x.png similarity index 100% rename from Images/nav/ic_refresh_white_24dp_1x.png rename to wwwroot/Images/nav/ic_refresh_white_24dp_1x.png diff --git a/Images/nav/ic_refresh_white_24dp_2x.png b/wwwroot/Images/nav/ic_refresh_white_24dp_2x.png similarity index 100% rename from Images/nav/ic_refresh_white_24dp_2x.png rename to wwwroot/Images/nav/ic_refresh_white_24dp_2x.png diff --git a/Images/nav/ic_skip_next_white_24dp_1x.png b/wwwroot/Images/nav/ic_skip_next_white_24dp_1x.png similarity index 100% rename from Images/nav/ic_skip_next_white_24dp_1x.png rename to wwwroot/Images/nav/ic_skip_next_white_24dp_1x.png diff --git a/Images/nav/ic_skip_next_white_24dp_2x.png b/wwwroot/Images/nav/ic_skip_next_white_24dp_2x.png similarity index 100% rename from Images/nav/ic_skip_next_white_24dp_2x.png rename to wwwroot/Images/nav/ic_skip_next_white_24dp_2x.png diff --git a/Images/nav/ic_skip_previous_white_24dp_1x.png b/wwwroot/Images/nav/ic_skip_previous_white_24dp_1x.png similarity index 100% rename from Images/nav/ic_skip_previous_white_24dp_1x.png rename to wwwroot/Images/nav/ic_skip_previous_white_24dp_1x.png diff --git a/Images/nav/ic_skip_previous_white_24dp_2x.png b/wwwroot/Images/nav/ic_skip_previous_white_24dp_2x.png similarity index 100% rename from Images/nav/ic_skip_previous_white_24dp_2x.png rename to wwwroot/Images/nav/ic_skip_previous_white_24dp_2x.png diff --git a/Images/nav/ic_volume_off_white_24dp_1x.png b/wwwroot/Images/nav/ic_volume_off_white_24dp_1x.png similarity index 100% rename from Images/nav/ic_volume_off_white_24dp_1x.png rename to wwwroot/Images/nav/ic_volume_off_white_24dp_1x.png diff --git a/Images/nav/ic_volume_off_white_24dp_2x.png b/wwwroot/Images/nav/ic_volume_off_white_24dp_2x.png similarity index 100% rename from Images/nav/ic_volume_off_white_24dp_2x.png rename to wwwroot/Images/nav/ic_volume_off_white_24dp_2x.png diff --git a/Images/nav/ic_volume_up_white_24dp_1x.png b/wwwroot/Images/nav/ic_volume_up_white_24dp_1x.png similarity index 100% rename from Images/nav/ic_volume_up_white_24dp_1x.png rename to wwwroot/Images/nav/ic_volume_up_white_24dp_1x.png diff --git a/Images/nav/ic_volume_up_white_24dp_2x.png b/wwwroot/Images/nav/ic_volume_up_white_24dp_2x.png similarity index 100% rename from Images/nav/ic_volume_up_white_24dp_2x.png rename to wwwroot/Images/nav/ic_volume_up_white_24dp_2x.png diff --git a/Images/nav1.png b/wwwroot/Images/nav1.png similarity index 100% rename from Images/nav1.png rename to wwwroot/Images/nav1.png diff --git a/Images/noaa - Copy.png b/wwwroot/Images/noaa - Copy.png similarity index 100% rename from Images/noaa - Copy.png rename to wwwroot/Images/noaa - Copy.png diff --git a/Images/noaa.png b/wwwroot/Images/noaa.png similarity index 100% rename from Images/noaa.png rename to wwwroot/Images/noaa.png diff --git a/Images/noaa2.png b/wwwroot/Images/noaa2.png similarity index 100% rename from Images/noaa2.png rename to wwwroot/Images/noaa2.png diff --git a/Images/noaa3.png b/wwwroot/Images/noaa3.png similarity index 100% rename from Images/noaa3.png rename to wwwroot/Images/noaa3.png diff --git a/Images/noaa4.png b/wwwroot/Images/noaa4.png similarity index 100% rename from Images/noaa4.png rename to wwwroot/Images/noaa4.png diff --git a/Images/noaa5.gif b/wwwroot/Images/noaa5.gif similarity index 100% rename from Images/noaa5.gif rename to wwwroot/Images/noaa5.gif diff --git a/Images/noaa5.png b/wwwroot/Images/noaa5.png similarity index 100% rename from Images/noaa5.png rename to wwwroot/Images/noaa5.png diff --git a/Images/off14_prcp.gif b/wwwroot/Images/off14_prcp.gif similarity index 100% rename from Images/off14_prcp.gif rename to wwwroot/Images/off14_prcp.gif diff --git a/Images/off14_temp.gif b/wwwroot/Images/off14_temp.gif similarity index 100% rename from Images/off14_temp.gif rename to wwwroot/Images/off14_temp.gif diff --git a/Images/r/AM-Snow-1994.gif b/wwwroot/Images/r/AM-Snow-1994.gif similarity index 100% rename from Images/r/AM-Snow-1994.gif rename to wwwroot/Images/r/AM-Snow-1994.gif diff --git a/Images/r/Blowing Snow.gif b/wwwroot/Images/r/Blowing Snow.gif similarity index 100% rename from Images/r/Blowing Snow.gif rename to wwwroot/Images/r/Blowing Snow.gif diff --git a/Images/r/Clear-1992.gif b/wwwroot/Images/r/Clear-1992.gif similarity index 100% rename from Images/r/Clear-1992.gif rename to wwwroot/Images/r/Clear-1992.gif diff --git a/Images/r/Clear-Wind-1994.gif b/wwwroot/Images/r/Clear-Wind-1994.gif similarity index 100% rename from Images/r/Clear-Wind-1994.gif rename to wwwroot/Images/r/Clear-Wind-1994.gif diff --git a/Images/r/Cloudy-Wind.gif b/wwwroot/Images/r/Cloudy-Wind.gif similarity index 100% rename from Images/r/Cloudy-Wind.gif rename to wwwroot/Images/r/Cloudy-Wind.gif diff --git a/Images/r/Cloudy.gif b/wwwroot/Images/r/Cloudy.gif similarity index 100% rename from Images/r/Cloudy.gif rename to wwwroot/Images/r/Cloudy.gif diff --git a/Images/r/Fog.gif b/wwwroot/Images/r/Fog.gif similarity index 100% rename from Images/r/Fog.gif rename to wwwroot/Images/r/Fog.gif diff --git a/Images/r/Freezing-Rain-1992.gif b/wwwroot/Images/r/Freezing-Rain-1992.gif similarity index 100% rename from Images/r/Freezing-Rain-1992.gif rename to wwwroot/Images/r/Freezing-Rain-1992.gif diff --git a/Images/r/Freezing-Rain-Sleet-1992.gif b/wwwroot/Images/r/Freezing-Rain-Sleet-1992.gif similarity index 100% rename from Images/r/Freezing-Rain-Sleet-1992.gif rename to wwwroot/Images/r/Freezing-Rain-Sleet-1992.gif diff --git a/Images/r/Freezing-Rain-Snow-1992.gif b/wwwroot/Images/r/Freezing-Rain-Snow-1992.gif similarity index 100% rename from Images/r/Freezing-Rain-Snow-1992.gif rename to wwwroot/Images/r/Freezing-Rain-Snow-1992.gif diff --git a/Images/r/Heavy-Snow-1994-2.gif b/wwwroot/Images/r/Heavy-Snow-1994-2.gif similarity index 100% rename from Images/r/Heavy-Snow-1994-2.gif rename to wwwroot/Images/r/Heavy-Snow-1994-2.gif diff --git a/Images/r/Heavy-Snow-1994.gif b/wwwroot/Images/r/Heavy-Snow-1994.gif similarity index 100% rename from Images/r/Heavy-Snow-1994.gif rename to wwwroot/Images/r/Heavy-Snow-1994.gif diff --git a/Images/r/Heavy-Snow.gif b/wwwroot/Images/r/Heavy-Snow.gif similarity index 100% rename from Images/r/Heavy-Snow.gif rename to wwwroot/Images/r/Heavy-Snow.gif diff --git a/Images/r/Light-Snow.gif b/wwwroot/Images/r/Light-Snow.gif similarity index 100% rename from Images/r/Light-Snow.gif rename to wwwroot/Images/r/Light-Snow.gif diff --git a/Images/r/Mostly-Clear.gif b/wwwroot/Images/r/Mostly-Clear.gif similarity index 100% rename from Images/r/Mostly-Clear.gif rename to wwwroot/Images/r/Mostly-Clear.gif diff --git a/Images/r/Mostly-Clear2.gif b/wwwroot/Images/r/Mostly-Clear2.gif similarity index 100% rename from Images/r/Mostly-Clear2.gif rename to wwwroot/Images/r/Mostly-Clear2.gif diff --git a/Images/r/Mostly-Cloudy-1994-2.gif b/wwwroot/Images/r/Mostly-Cloudy-1994-2.gif similarity index 100% rename from Images/r/Mostly-Cloudy-1994-2.gif rename to wwwroot/Images/r/Mostly-Cloudy-1994-2.gif diff --git a/Images/r/Mostly-Cloudy-1994.gif b/wwwroot/Images/r/Mostly-Cloudy-1994.gif similarity index 100% rename from Images/r/Mostly-Cloudy-1994.gif rename to wwwroot/Images/r/Mostly-Cloudy-1994.gif diff --git a/Images/r/Mostly-Cloudy.gif b/wwwroot/Images/r/Mostly-Cloudy.gif similarity index 100% rename from Images/r/Mostly-Cloudy.gif rename to wwwroot/Images/r/Mostly-Cloudy.gif diff --git a/Images/r/Mostly-Sunny.gif b/wwwroot/Images/r/Mostly-Sunny.gif similarity index 100% rename from Images/r/Mostly-Sunny.gif rename to wwwroot/Images/r/Mostly-Sunny.gif diff --git a/Images/r/Partly-Clear-1994-2.gif b/wwwroot/Images/r/Partly-Clear-1994-2.gif similarity index 100% rename from Images/r/Partly-Clear-1994-2.gif rename to wwwroot/Images/r/Partly-Clear-1994-2.gif diff --git a/Images/r/Partly-Clear-1994.gif b/wwwroot/Images/r/Partly-Clear-1994.gif similarity index 100% rename from Images/r/Partly-Clear-1994.gif rename to wwwroot/Images/r/Partly-Clear-1994.gif diff --git a/Images/r/Partly-Clear.gif b/wwwroot/Images/r/Partly-Clear.gif similarity index 100% rename from Images/r/Partly-Clear.gif rename to wwwroot/Images/r/Partly-Clear.gif diff --git a/Images/r/Partly-Cloudy.gif b/wwwroot/Images/r/Partly-Cloudy.gif similarity index 100% rename from Images/r/Partly-Cloudy.gif rename to wwwroot/Images/r/Partly-Cloudy.gif diff --git a/Images/r/Rain-1992.gif b/wwwroot/Images/r/Rain-1992.gif similarity index 100% rename from Images/r/Rain-1992.gif rename to wwwroot/Images/r/Rain-1992.gif diff --git a/Images/r/Rain-Sleet.gif b/wwwroot/Images/r/Rain-Sleet.gif similarity index 100% rename from Images/r/Rain-Sleet.gif rename to wwwroot/Images/r/Rain-Sleet.gif diff --git a/Images/r/Rain-Snow-1992.gif b/wwwroot/Images/r/Rain-Snow-1992.gif similarity index 100% rename from Images/r/Rain-Snow-1992.gif rename to wwwroot/Images/r/Rain-Snow-1992.gif diff --git a/Images/r/Rain-Wind-1994.gif b/wwwroot/Images/r/Rain-Wind-1994.gif similarity index 100% rename from Images/r/Rain-Wind-1994.gif rename to wwwroot/Images/r/Rain-Wind-1994.gif diff --git a/Images/r/Scattered-Rain-Sun.gif b/wwwroot/Images/r/Scattered-Rain-Sun.gif similarity index 100% rename from Images/r/Scattered-Rain-Sun.gif rename to wwwroot/Images/r/Scattered-Rain-Sun.gif diff --git a/Images/r/Scattered-Showers-1994-2.gif b/wwwroot/Images/r/Scattered-Showers-1994-2.gif similarity index 100% rename from Images/r/Scattered-Showers-1994-2.gif rename to wwwroot/Images/r/Scattered-Showers-1994-2.gif diff --git a/Images/r/Scattered-Showers-1994.gif b/wwwroot/Images/r/Scattered-Showers-1994.gif similarity index 100% rename from Images/r/Scattered-Showers-1994.gif rename to wwwroot/Images/r/Scattered-Showers-1994.gif diff --git a/Images/r/Scattered-Showers-Night-1994-2.gif b/wwwroot/Images/r/Scattered-Showers-Night-1994-2.gif similarity index 100% rename from Images/r/Scattered-Showers-Night-1994-2.gif rename to wwwroot/Images/r/Scattered-Showers-Night-1994-2.gif diff --git a/Images/r/Scattered-Showers-Night.gif b/wwwroot/Images/r/Scattered-Showers-Night.gif similarity index 100% rename from Images/r/Scattered-Showers-Night.gif rename to wwwroot/Images/r/Scattered-Showers-Night.gif diff --git a/Images/r/Scattered-Showers.gif b/wwwroot/Images/r/Scattered-Showers.gif similarity index 100% rename from Images/r/Scattered-Showers.gif rename to wwwroot/Images/r/Scattered-Showers.gif diff --git a/Images/r/Scattered-Snow-Showers-1994-2.gif b/wwwroot/Images/r/Scattered-Snow-Showers-1994-2.gif similarity index 100% rename from Images/r/Scattered-Snow-Showers-1994-2.gif rename to wwwroot/Images/r/Scattered-Snow-Showers-1994-2.gif diff --git a/Images/r/Scattered-Snow-Showers-Night-1994-2.gif b/wwwroot/Images/r/Scattered-Snow-Showers-Night-1994-2.gif similarity index 100% rename from Images/r/Scattered-Snow-Showers-Night-1994-2.gif rename to wwwroot/Images/r/Scattered-Snow-Showers-Night-1994-2.gif diff --git a/Images/r/Scattered-Snow-Showers-Night.gif b/wwwroot/Images/r/Scattered-Snow-Showers-Night.gif similarity index 100% rename from Images/r/Scattered-Snow-Showers-Night.gif rename to wwwroot/Images/r/Scattered-Snow-Showers-Night.gif diff --git a/Images/r/Scattered-Snow-Showers.gif b/wwwroot/Images/r/Scattered-Snow-Showers.gif similarity index 100% rename from Images/r/Scattered-Snow-Showers.gif rename to wwwroot/Images/r/Scattered-Snow-Showers.gif diff --git a/Images/r/Scattered-Snow-Sun.gif b/wwwroot/Images/r/Scattered-Snow-Sun.gif similarity index 100% rename from Images/r/Scattered-Snow-Sun.gif rename to wwwroot/Images/r/Scattered-Snow-Sun.gif diff --git a/Images/r/Scattered-Tstorms-1992.gif b/wwwroot/Images/r/Scattered-Tstorms-1992.gif similarity index 100% rename from Images/r/Scattered-Tstorms-1992.gif rename to wwwroot/Images/r/Scattered-Tstorms-1992.gif diff --git a/Images/r/Scattered-Tstorms-1994-2.gif b/wwwroot/Images/r/Scattered-Tstorms-1994-2.gif similarity index 100% rename from Images/r/Scattered-Tstorms-1994-2.gif rename to wwwroot/Images/r/Scattered-Tstorms-1994-2.gif diff --git a/Images/r/Scattered-Tstorms-1994.gif b/wwwroot/Images/r/Scattered-Tstorms-1994.gif similarity index 100% rename from Images/r/Scattered-Tstorms-1994.gif rename to wwwroot/Images/r/Scattered-Tstorms-1994.gif diff --git a/Images/r/Scattered-Tstorms-Night-1994-2.gif b/wwwroot/Images/r/Scattered-Tstorms-Night-1994-2.gif similarity index 100% rename from Images/r/Scattered-Tstorms-Night-1994-2.gif rename to wwwroot/Images/r/Scattered-Tstorms-Night-1994-2.gif diff --git a/Images/r/Scattered-Tstorms-Night.gif b/wwwroot/Images/r/Scattered-Tstorms-Night.gif similarity index 100% rename from Images/r/Scattered-Tstorms-Night.gif rename to wwwroot/Images/r/Scattered-Tstorms-Night.gif diff --git a/Images/r/Shower.gif b/wwwroot/Images/r/Shower.gif similarity index 100% rename from Images/r/Shower.gif rename to wwwroot/Images/r/Shower.gif diff --git a/Images/r/Sleet.gif b/wwwroot/Images/r/Sleet.gif similarity index 100% rename from Images/r/Sleet.gif rename to wwwroot/Images/r/Sleet.gif diff --git a/Images/r/Snow-Sleet.gif b/wwwroot/Images/r/Snow-Sleet.gif similarity index 100% rename from Images/r/Snow-Sleet.gif rename to wwwroot/Images/r/Snow-Sleet.gif diff --git a/Images/r/Sunny-Wind-1994.gif b/wwwroot/Images/r/Sunny-Wind-1994.gif similarity index 100% rename from Images/r/Sunny-Wind-1994.gif rename to wwwroot/Images/r/Sunny-Wind-1994.gif diff --git a/Images/r/Sunny.gif b/wwwroot/Images/r/Sunny.gif similarity index 100% rename from Images/r/Sunny.gif rename to wwwroot/Images/r/Sunny.gif diff --git a/Images/r/Thunder.gif b/wwwroot/Images/r/Thunder.gif similarity index 100% rename from Images/r/Thunder.gif rename to wwwroot/Images/r/Thunder.gif diff --git a/Images/r/ThunderSnow.gif b/wwwroot/Images/r/ThunderSnow.gif similarity index 100% rename from Images/r/ThunderSnow.gif rename to wwwroot/Images/r/ThunderSnow.gif diff --git a/Images/r/Thunderstorm.gif b/wwwroot/Images/r/Thunderstorm.gif similarity index 100% rename from Images/r/Thunderstorm.gif rename to wwwroot/Images/r/Thunderstorm.gif diff --git a/Images/r/Wind.gif b/wwwroot/Images/r/Wind.gif similarity index 100% rename from Images/r/Wind.gif rename to wwwroot/Images/r/Wind.gif diff --git a/Images/r/Wintry-Mix-1992.gif b/wwwroot/Images/r/Wintry-Mix-1992.gif similarity index 100% rename from Images/r/Wintry-Mix-1992.gif rename to wwwroot/Images/r/Wintry-Mix-1992.gif diff --git a/Images/r/cold.gif b/wwwroot/Images/r/cold.gif similarity index 100% rename from Images/r/cold.gif rename to wwwroot/Images/r/cold.gif diff --git a/Images/r/haze.gif b/wwwroot/Images/r/haze.gif similarity index 100% rename from Images/r/haze.gif rename to wwwroot/Images/r/haze.gif diff --git a/Images/r/hot.gif b/wwwroot/Images/r/hot.gif similarity index 100% rename from Images/r/hot.gif rename to wwwroot/Images/r/hot.gif diff --git a/Images/r/mostly-clear-wind.gif b/wwwroot/Images/r/mostly-clear-wind.gif similarity index 100% rename from Images/r/mostly-clear-wind.gif rename to wwwroot/Images/r/mostly-clear-wind.gif diff --git a/Images/r/mostly-cloudy-wind.gif b/wwwroot/Images/r/mostly-cloudy-wind.gif similarity index 100% rename from Images/r/mostly-cloudy-wind.gif rename to wwwroot/Images/r/mostly-cloudy-wind.gif diff --git a/Images/r/partly-clear-wind.gif b/wwwroot/Images/r/partly-clear-wind.gif similarity index 100% rename from Images/r/partly-clear-wind.gif rename to wwwroot/Images/r/partly-clear-wind.gif diff --git a/Images/r/partly-cloudy-wind.gif b/wwwroot/Images/r/partly-cloudy-wind.gif similarity index 100% rename from Images/r/partly-cloudy-wind.gif rename to wwwroot/Images/r/partly-cloudy-wind.gif diff --git a/Images/r/smoke.gif b/wwwroot/Images/r/smoke.gif similarity index 100% rename from Images/r/smoke.gif rename to wwwroot/Images/r/smoke.gif diff --git a/Images/sc/ws4kp1.PNG b/wwwroot/Images/sc/ws4kp1.PNG similarity index 100% rename from Images/sc/ws4kp1.PNG rename to wwwroot/Images/sc/ws4kp1.PNG diff --git a/Images/sc/ws4kp10.PNG b/wwwroot/Images/sc/ws4kp10.PNG similarity index 100% rename from Images/sc/ws4kp10.PNG rename to wwwroot/Images/sc/ws4kp10.PNG diff --git a/Images/sc/ws4kp11.PNG b/wwwroot/Images/sc/ws4kp11.PNG similarity index 100% rename from Images/sc/ws4kp11.PNG rename to wwwroot/Images/sc/ws4kp11.PNG diff --git a/Images/sc/ws4kp12.PNG b/wwwroot/Images/sc/ws4kp12.PNG similarity index 100% rename from Images/sc/ws4kp12.PNG rename to wwwroot/Images/sc/ws4kp12.PNG diff --git a/Images/sc/ws4kp13.png b/wwwroot/Images/sc/ws4kp13.png similarity index 100% rename from Images/sc/ws4kp13.png rename to wwwroot/Images/sc/ws4kp13.png diff --git a/Images/sc/ws4kp14.png b/wwwroot/Images/sc/ws4kp14.png similarity index 100% rename from Images/sc/ws4kp14.png rename to wwwroot/Images/sc/ws4kp14.png diff --git a/Images/sc/ws4kp15.png b/wwwroot/Images/sc/ws4kp15.png similarity index 100% rename from Images/sc/ws4kp15.png rename to wwwroot/Images/sc/ws4kp15.png diff --git a/Images/sc/ws4kp16.png b/wwwroot/Images/sc/ws4kp16.png similarity index 100% rename from Images/sc/ws4kp16.png rename to wwwroot/Images/sc/ws4kp16.png diff --git a/Images/sc/ws4kp17.png b/wwwroot/Images/sc/ws4kp17.png similarity index 100% rename from Images/sc/ws4kp17.png rename to wwwroot/Images/sc/ws4kp17.png diff --git a/Images/sc/ws4kp18.png b/wwwroot/Images/sc/ws4kp18.png similarity index 100% rename from Images/sc/ws4kp18.png rename to wwwroot/Images/sc/ws4kp18.png diff --git a/Images/sc/ws4kp2.PNG b/wwwroot/Images/sc/ws4kp2.PNG similarity index 100% rename from Images/sc/ws4kp2.PNG rename to wwwroot/Images/sc/ws4kp2.PNG diff --git a/Images/sc/ws4kp3.PNG b/wwwroot/Images/sc/ws4kp3.PNG similarity index 100% rename from Images/sc/ws4kp3.PNG rename to wwwroot/Images/sc/ws4kp3.PNG diff --git a/Images/sc/ws4kp4.PNG b/wwwroot/Images/sc/ws4kp4.PNG similarity index 100% rename from Images/sc/ws4kp4.PNG rename to wwwroot/Images/sc/ws4kp4.PNG diff --git a/Images/sc/ws4kp5.PNG b/wwwroot/Images/sc/ws4kp5.PNG similarity index 100% rename from Images/sc/ws4kp5.PNG rename to wwwroot/Images/sc/ws4kp5.PNG diff --git a/Images/sc/ws4kp6.PNG b/wwwroot/Images/sc/ws4kp6.PNG similarity index 100% rename from Images/sc/ws4kp6.PNG rename to wwwroot/Images/sc/ws4kp6.PNG diff --git a/Images/sc/ws4kp7.PNG b/wwwroot/Images/sc/ws4kp7.PNG similarity index 100% rename from Images/sc/ws4kp7.PNG rename to wwwroot/Images/sc/ws4kp7.PNG diff --git a/Images/sc/ws4kp8.PNG b/wwwroot/Images/sc/ws4kp8.PNG similarity index 100% rename from Images/sc/ws4kp8.PNG rename to wwwroot/Images/sc/ws4kp8.PNG diff --git a/Images/sc/ws4kp9.PNG b/wwwroot/Images/sc/ws4kp9.PNG similarity index 100% rename from Images/sc/ws4kp9.PNG rename to wwwroot/Images/sc/ws4kp9.PNG diff --git a/Images/sc/ws4kp_1.png b/wwwroot/Images/sc/ws4kp_1.png similarity index 100% rename from Images/sc/ws4kp_1.png rename to wwwroot/Images/sc/ws4kp_1.png diff --git a/Images/sc/ws4kp_2.png b/wwwroot/Images/sc/ws4kp_2.png similarity index 100% rename from Images/sc/ws4kp_2.png rename to wwwroot/Images/sc/ws4kp_2.png diff --git a/Images/sc/ws4kp_3.png b/wwwroot/Images/sc/ws4kp_3.png similarity index 100% rename from Images/sc/ws4kp_3.png rename to wwwroot/Images/sc/ws4kp_3.png diff --git a/Images/sc/ws4kp_4.png b/wwwroot/Images/sc/ws4kp_4.png similarity index 100% rename from Images/sc/ws4kp_4.png rename to wwwroot/Images/sc/ws4kp_4.png diff --git a/Images/tbW8Rnd.png b/wwwroot/Images/tbW8Rnd.png similarity index 100% rename from Images/tbW8Rnd.png rename to wwwroot/Images/tbW8Rnd.png diff --git a/Images/y6HNy2O.jpg b/wwwroot/Images/y6HNy2O.jpg similarity index 100% rename from Images/y6HNy2O.jpg rename to wwwroot/Images/y6HNy2O.jpg diff --git a/Scripts/Icons.js b/wwwroot/Scripts/Icons.js similarity index 100% rename from Scripts/Icons.js rename to wwwroot/Scripts/Icons.js diff --git a/Scripts/NoSleep.min.js b/wwwroot/Scripts/NoSleep.min.js similarity index 100% rename from Scripts/NoSleep.min.js rename to wwwroot/Scripts/NoSleep.min.js diff --git a/Scripts/RegionalCities.js b/wwwroot/Scripts/RegionalCities.js similarity index 100% rename from Scripts/RegionalCities.js rename to wwwroot/Scripts/RegionalCities.js diff --git a/Scripts/States.js b/wwwroot/Scripts/States.js similarity index 100% rename from Scripts/States.js rename to wwwroot/Scripts/States.js diff --git a/Scripts/Timer.js b/wwwroot/Scripts/Timer.js similarity index 100% rename from Scripts/Timer.js rename to wwwroot/Scripts/Timer.js diff --git a/Scripts/TimerWorker.js b/wwwroot/Scripts/TimerWorker.js similarity index 100% rename from Scripts/TimerWorker.js rename to wwwroot/Scripts/TimerWorker.js diff --git a/Scripts/TravelCities.js b/wwwroot/Scripts/TravelCities.js similarity index 100% rename from Scripts/TravelCities.js rename to wwwroot/Scripts/TravelCities.js diff --git a/Scripts/addtohomescreen.min.js b/wwwroot/Scripts/addtohomescreen.min.js similarity index 100% rename from Scripts/addtohomescreen.min.js rename to wwwroot/Scripts/addtohomescreen.min.js diff --git a/Scripts/index.js b/wwwroot/Scripts/index.js similarity index 96% rename from Scripts/index.js rename to wwwroot/Scripts/index.js index 652bdd9..ac8f03c 100644 --- a/Scripts/index.js +++ b/wwwroot/Scripts/index.js @@ -1,1913 +1,1913 @@ -/// -/// - -// Redirect user to SSL version of site. -if (location.protocol != "https:" && location.href.indexOf("localhost") == -1 && location.href.indexOf("192.") == -1) -{ - location.href = location.href.replace("http:", "https:"); -} - -var frmGetLatLng; -var txtAddress; -var btnGetLatLng; -var btnClearQuery; -var btnGetGps; -var divLat; -var spanLat; -var divLng; -var spanLng; - -var divTwc; -var divTwcTop; -var divTwcMiddle; -var divTwcBottom; -var divTwcLeft; -var divTwcRight; -var divTwcNavContainer; -var divTwcNav; -var iframeTwc; -var btnFullScreen; -var divTwcBottomLeft; -var divTwcBottomMiddle; -var divTwcBottomRight; - -var divRefresh; -var spanLastRefresh; -var chkAutoRefresh; -var lblRefreshCountDown; -var spanRefreshCountDown; - -var spanCity; -var spanState; -var spanStationId; -var spanRadarId; -var spanZoneId; - -var radScrollDefault; - -var frmScrollText; -var radScrollText; -var txtScrollText; -var btnScrollText; - -var frmScrollRss; -var radScrollRss; -var txtScrollRss; -var btnScrollRss; - -var chkScrollHazardText; - -//var _InFullScreen = false; -var _AutoSelectQuery = false; -var _TwcDataUrl = ""; -var _IsPlaying = false; - -var _NoSleep = new NoSleep(); - -var _LastUpdate = null; -var _AutoRefreshIntervalId = null; -var _AutoRefreshIntervalMs = 500; -//var _AutoRefreshTotalIntervalMs = 10000; // 10 sec. -//var _AutoRefreshTotalIntervalMs = 300000; // 5 min. -var _AutoRefreshTotalIntervalMs = 600000; // 10 min. -var _AutoRefreshCountMs = 0; - -var _IsAudioPlaying = false; -var _IsBeepPlaying = false; - -var _IsNarrationPlaying = false; - -var _FullScreenOverride = false; - -var _WeatherParameters = null; - -var _WindowHeight = 0; -var _WindowWidth = 0; - -var _AllowKeyDown = true; - -var _canvasIds = [ - "canvasProgress", - "canvasCurrentWeather", - "canvasLatestObservations", - "canvasTravelForecast", - "canvasRegionalForecast1", - "canvasRegionalForecast2", - "canvasRegionalObservations", - "canvasLocalForecast", - "canvasExtendedForecast1", - "canvasExtendedForecast2", - "canvasAlmanac", - "canvasAlmanacTides", - "canvasOutlook", - "canvasMarineForecast", - "canvasAirQuality", - "canvasLocalRadar", - "canvasHazards" -]; - -var OperatingSystems = { - Unknown: 0, - Windows: 1, - MacOS: 2, - Linux: 3, - Unix: 4, - iOS: 5, - Andriod: 6, - WindowsPhone: 7, -}; -_OperatingSystem = OperatingSystems.Unknown; -var _UserAgent = window.navigator.userAgent; -if (_UserAgent.indexOf("Win") != -1) _OperatingSystem = OperatingSystems.Windows; -if (_UserAgent.indexOf("Mac") != -1) _OperatingSystem = OperatingSystems.MacOS; -if (_UserAgent.indexOf("X11") != -1) _OperatingSystem = OperatingSystems.Unix; -if (_UserAgent.indexOf("Linux") != -1) _OperatingSystem = OperatingSystems.Linux; -if (_UserAgent.indexOf("iPad") != -1) _OperatingSystem = OperatingSystems.iOS; -if (_UserAgent.indexOf("iPhone") != -1) _OperatingSystem = OperatingSystems.iOS; -if (_UserAgent.indexOf("iPod") != -1) _OperatingSystem = OperatingSystems.iOS; -if (_UserAgent.toLowerCase().indexOf("android") != -1) _OperatingSystem = OperatingSystems.Andriod; -if (_UserAgent.indexOf("Windows Phone") != -1) _OperatingSystem = OperatingSystems.WindowsPhone; - -var FullScreenResize = function (AutoRefresh) -{ - var iframeDoc = $(iframeTwc[0].contentWindow.document); - var WindowWidth = $(window).width(); - var WindowHeight = $(window).height(); - var NewWidth; - var NewHeight; - var IFrameWidth; - var IFrameHeight; - var LeftWidth; - var LeftHeight; - var RightWidth; - var RightHeight; - var TopHeight; - var TopWidth; - var BottomHeight; - var BottomWidth; - var Offset; - var inFullScreen = InFullScreen(); - - if (inFullScreen == true) - { - //if (WindowWidth > WindowHeight) - //if (WindowWidth > 850) - //if (WindowWidth > 0) - //if (WindowWidth > 640) - if ((WindowWidth / WindowHeight) >= 1.583333333333333) // = 640 (TWC Width) + 48 (Icon min width on left side) + 12 (left padding) + 48 (Right icons) + 12 (right padding) / 480 (TWC Height) - { - NewHeight = WindowHeight + "px"; - NewWidth = ""; - divTwcTop.hide(); - divTwcBottom.hide(); - divTwcLeft.show(); - divTwcRight.show(); - - divTwcMiddle.attr("style", "width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"); - - //IFrameWidth = (WindowHeight * 1.33333333333333333333); - //iframeTwc.attr("style", "width:" + IFrameWidth + "px; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"); - - //LeftWidth = ((((WindowHeight * 16) / 9) - (WindowHeight * 1.25)) / 2) + "px"; - LeftWidth = ((WindowWidth - (WindowHeight * 1.33333333333333333333)) / 2); - if (LeftWidth < 60) - { - LeftWidth = 60; - } - divTwcLeft.find("div>div>a>img").css("width", ""); - //divTwcLeft.find(">div").css("padding-right", "12px").css("padding-left", ""); - divTwcLeft.attr("style", "width:" + LeftWidth + "px; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"); - divTwcLeft.css("visibility", "visible"); - divTwcLeft.css("opacity", "1"); - if (AutoRefresh === true) - { - divTwcLeft.css("opacity", "0"); - divTwcLeft.css("visibility", "hidden"); - } - divTwcLeft.css("position", ""); - - //RightWidth = ((((WindowHeight * 16) / 9) - (WindowHeight * 1.25)) / 2) + "px"; - RightWidth = ((WindowWidth - (WindowHeight * 1.33333333333333333333)) / 2); - if (RightWidth < 60) - { - RightWidth = 60; - } - divTwcRight.find("div>div>a>img").css("width", ""); - //divTwcRight.find(">div").css("padding-left", "12px").css("padding-right", ""); - divTwcRight.attr("style", "width:" + RightWidth + "px; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"); - divTwcRight.css("visibility", "visible"); - divTwcRight.css("opacity", "1"); - if (AutoRefresh === true) - { - divTwcRight.css("opacity", "0"); - divTwcRight.css("visibility", "hidden"); - } - divTwcRight.css("position", ""); - - IFrameWidth = WindowWidth - LeftWidth - RightWidth; - NewWidth = IFrameWidth + "px"; - iframeTwc.attr("style", "width:" + IFrameWidth + "px; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"); - - //console.log(WindowWidth); - } - else - { - NewHeight = ""; - NewWidth = WindowWidth + "px"; - divTwcTop.show(); - divTwcBottom.show(); - - //divTwcLeft.hide(); - //divTwcRight.hide(); - //Offset = 400; - Offset = 0; - - //IFrameHeight = ((WindowWidth - Offset) * 0.75) + "px"; - //iframeTwc.attr("style", "width:100%; height:" + IFrameHeight + "; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"); - //divTwcMiddle.attr("style", "width:100%; height:" + IFrameHeight + "; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"); - - TopHeight = ((WindowHeight - ((WindowWidth - Offset) * 0.75)) / 2); - if (TopHeight < 0) - { - TopHeight = 0; - } - divTwcTop.attr("style", "width:100%; height:" + TopHeight + "px; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"); - - BottomHeight = ((WindowHeight - ((WindowWidth - Offset) * 0.75)) / 2); - if (BottomHeight < 30) - { - //BottomHeight = 30; - BottomHeight = 0; - } - divTwcBottom.attr("style", "width:100%; height:" + BottomHeight + "px; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"); - divTwcBottom.css("visibility", "visible"); - divTwcBottom.css("opacity", "1"); - if (AutoRefresh === true) - { - divTwcBottom.css("opacity", "0"); - divTwcBottom.css("visibility", "hidden"); - } - - IFrameHeight = WindowHeight - TopHeight - BottomHeight; - NewHeight = IFrameHeight + "px"; - iframeTwc.attr("style", "width:100%; height:" + IFrameHeight + "px; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"); - divTwcMiddle.attr("style", "width:100%; height:" + IFrameHeight + "px; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"); - - divTwcBottomLeft.hide(); - divTwcBottomMiddle.hide(); - divTwcBottomRight.hide(); - divTwcLeft.show(); - divTwcRight.show(); - - LeftWidth = (WindowWidth / 13); - if (LeftWidth < 25) - { - LeftWidth = 25; - } - divTwcLeft.find("div>div>a>img").css("width", "100%"); - //divTwcLeft.find(">div").css("padding-right", "0px"); - divTwcLeft.attr("style", "width:" + LeftWidth + "px; height:" + IFrameHeight + "px; border:none; margin:0; padding:0; overflow:hidden; z-index:1000000;"); - divTwcLeft.css("visibility", "visible"); - divTwcLeft.css("opacity", "1"); - if (AutoRefresh === true) - { - divTwcLeft.css("opacity", "0"); - divTwcLeft.css("visibility", "hidden"); - } - divTwcLeft.css("position", "absolute"); - divTwcLeft.css("left", "12px"); - - RightWidth = (WindowWidth / 13); - if (RightWidth < 25) - { - RightWidth = 25; - } - divTwcRight.find("div>div>a>img").css("width", "100%"); - //divTwcRight.find(">div").css("padding-left", "0px"); - divTwcRight.attr("style", "width:" + RightWidth + "px; height:" + IFrameHeight + "px; border:none; margin:0; padding:0; overflow:hidden; z-index:1000000;"); - divTwcRight.css("visibility", "visible"); - divTwcRight.css("opacity", "1"); - if (AutoRefresh === true) - { - divTwcRight.css("opacity", "0"); - divTwcRight.css("visibility", "hidden"); - } - divTwcRight.css("position", "absolute"); - divTwcRight.css("right", "12px"); - } - } - - if (inFullScreen == false) - { - NewHeight = ""; - NewWidth = ""; - divTwcTop.hide(); - divTwcBottom.hide(); - divTwcLeft.hide(); - divTwcRight.hide(); - - divTwc.attr("style", ""); - divTwcMiddle.attr("style", ""); - iframeTwc.attr("style", ""); - - divTwcBottomLeft.show(); - divTwcBottomMiddle.show(); - divTwcBottomRight.show(); - - $(window).off("resize", FullScreenResize); - } - - //iframeDoc.find("#canvasProgress").css("width", NewWidth); - //iframeDoc.find("#canvasProgress").css("height", NewHeight); - $(_canvasIds).each(function () - { - var canvas = iframeDoc.find("#" + this.toString()); - canvas.css("width", NewWidth); - canvas.css("height", NewHeight); - }); - - if (inFullScreen == true) - { - $("body").css("overflow", "hidden"); - $(".ToggleFullScreen").val("Exit Full Screen"); - - if (!GetFullScreenElement()) - { - EnterFullScreen(); - } - } - else - { - $("body").css("overflow", ""); - $(".ToggleFullScreen").val("Full Screen"); - } - - //divTwc.show(); - ////divTwc.css("display", "block"); - //if (divTwc.css("display") != "block") - //{ - // divTwc.css("display", "block"); - //} - - divTwcNavContainer.show(); - - if (inIframe()) - { - if (!inFullScreen) - { - var scaleFactor = 1.0; - var orientation = screen.orientation || window.orientation; - - switch (_OperatingSystem) - { - case OperatingSystems.iOS: - if (orientation == 90 || orientation == -90) - { - scaleFactor = Math.min(document.documentElement.clientWidth, screen.height) / 640; - } - else - { - // 2 = 20 - // 3 = 60 - var buffer = 20 + 40 * (window.devicePixelRatio - 2); - - scaleFactor = Math.min(document.documentElement.clientWidth, screen.width - buffer) / 640; - } - break; - default: - if (orientation == 90 || orientation == -90) - { - scaleFactor = document.documentElement.clientHeight / 640; - } - else - { - scaleFactor = document.documentElement.clientWidth / 640; - } - break; - } - var $body = $(document.body); - $body.css("transform", `scale(${scaleFactor})`); - } - } -}; - -var _lockOrientation = screen.lockOrientation || screen.mozLockOrientation || screen.msLockOrientation; -var _unlockOrientation = screen.unlockOrientation || screen.mozUnlockOrientation || screen.msUnlockOrientation || (screen.orientation && screen.orientation.unlock); - -var OnFullScreen = function () -{ - if (InFullScreen() == true) - { - divTwc.attr("style", "position:fixed; top:0px; left:0px; bottom:0px; right:0px; width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"); - FullScreenResize(); - - $(window).on("resize", FullScreenResize); - //FullScreenResize(); - - if (_lockOrientation) try { _lockOrientation("landscape-primary"); } catch (ex) { console.log("Unable to lock screen orientation."); }; - } - else - { - divTwc.attr("style", ""); - divTwcMiddle.attr("style", ""); - iframeTwc.attr("style", ""); - - $(window).off("resize", FullScreenResize); - FullScreenResize(); - - if (_unlockOrientation) try { _unlockOrientation(); } catch (ex) { console.log("Unable to unlock screen orientation."); }; - } -}; - -var InFullScreen = function () -{ - //return true; - //return (document.fullscreenEnabled || document.mozFullScreenEnabled || document.webkitFullscreenEnabled); - //return (window.innerHeight == screen.height); - //return (((document.fullScreenElement || document.mozFullScreenElement || document.webkitFullscreenElement) != null) || (window.innerHeight >= screen.height)); - //return ((GetFullScreenElement() != null) || (window.innerHeight == screen.height)); - return ((_FullScreenOverride == true) || (GetFullScreenElement() != null) || (window.innerHeight == screen.height) || (window.innerHeight == (screen.height - 1))); -}; - -var GetFullScreenElement = function () -{ - if (_FullScreenOverride == true) - { - return document.body; - } - - return (document.fullScreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement); -} - -var btnFullScreen_click = function () -{ - //_InFullScreen = !(_InFullScreen); - - if (InFullScreen() == false) - { - EnterFullScreen(); - - ////position:fixed; top:0px; left:0px; bottom:0px; right:0px; width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999; - //divTwc.attr("style", "position:fixed; top:0px; left:0px; bottom:0px; right:0px; width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"); - ////iframeTwc.attr("style", "width:100%; height:90%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"); - - ////divTwcMiddle.attr("style", "width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"); - ////divTwcLeft.attr("style", "width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"); - ////iframeTwc.attr("style", "width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"); - - //FullScreenResize(); - - //$(window).on("resize", FullScreenResize); - //FullScreenResize(); - } - else - { - ExitFullscreen(); - - //divTwc.attr("style", ""); - //divTwcMiddle.attr("style", ""); - //iframeTwc.attr("style", ""); - - //$(window).off("resize", FullScreenResize); - //FullScreenResize(); - } - - if (_IsPlaying == true) - { - _NoSleep.enable(); - } - else - { - _NoSleep.disable(); - } - - UpdateFullScreenNavigate(); - - return false; -}; - -var EnterFullScreen = function () -{ - var element = document.body; - - // Supports most browsers and their versions. - var requestMethod; - requestMethod = element.requestFullScreen || element.webkitRequestFullScreen || element.mozRequestFullScreen || element.msRequestFullscreen; - - if (requestMethod) - { - // Native full screen. - //requestMethod.call(element); - requestMethod.call(element, { navigationUI: "hide" }); // https://bugs.chromium.org/p/chromium/issues/detail?id=933436#c7 - } - else if (typeof window.ActiveXObject !== "undefined") - { - // Older IE. - var wscript = new ActiveXObject("WScript.Shell"); - if (wscript !== null) - { - wscript.SendKeys("{F11}"); - } - } - else - { - // iOS doesn't support FullScreen API. - window.scrollTo(0, 0); - _FullScreenOverride = true; - $(window).resize(); - } - - UpdateFullScreenNavigate(); -}; - -var ExitFullscreen = function () -{ - // exit full-screen - - if (_FullScreenOverride == true) - { - _FullScreenOverride = false; - $(window).resize(); - } - - if (document.exitFullscreen) - { - // Chrome 71 broke this if the user pressed F11 to enter full screen mode. - document.exitFullscreen(); - } - else if (document.webkitExitFullscreen) - { - document.webkitExitFullscreen(); - } - else if (document.mozCancelFullScreen) - { - document.mozCancelFullScreen(); - } - else if (document.msExitFullscreen) - { - document.msExitFullscreen(); - } -}; - -var btnNavigateMenu_click = function () -{ - //var iFrameLocation = iframeTwc[0].contentWindow.location; - //iFrameLocation.hash = ""; - //iFrameLocation.hash = "aProgress"; - iframeTwc[0].contentWindow.NavigateMenu(); - UpdateFullScreenNavigate(); - - return false; -}; - -var LoadTwcData = function (Url, AutoRefresh) -{ - txtAddress.blur(); - StopAutoRefreshTimer(); - _LastUpdate = null; - AssignLastUpdate(); - - console.log("Url: " + Url); - _TwcDataUrl = Url; - - iframeTwc.off("load"); - - iframeTwc.on("load", function (e) - { - switch (iframeTwc.attr("src")) - { - case "about:blank": - if (Url == "") - { - iframeTwc.off("load"); - return; - } - - iframeTwc.attr("src", "twc3.html?_=" + (new Date).getTime().toString()); - break; - - default: - iframeTwc.off("load"); - FullScreenResize(AutoRefresh); - - if (radScrollText.is(":checked") == true) - { - AssignScrollText({ ScrollText: txtScrollText.val() }); - } - else if (radScrollRss.is(":checked") == true) - { - AssignScrollText({ ScrollRss: txtScrollRss.val() }); - } - - if (chkScrollHazardText.is(":checked") == true) - { - ScrollHazardText(true); - } - - AssignThemes({ Themes: $("input[type='radio'][name='radThemes']:checked").val() }); - iframeTwc[0].contentWindow.AssignThemes({ Themes: $("input[type='radio'][name='radThemes']:checked").val() }); - - iframeTwc[0].contentWindow.AssignUnits({ Units: $("input[type='radio'][name='radUnits']:checked").val() }); - - iframeTwc[0].contentWindow.SetCallBack({ CallBack: TwcCallBack }); - - iframeTwc[0].contentWindow.GetLatLng(Url); - - if (_IsPlaying == true) - { - iframeTwc[0].contentWindow.NavigatePlayToggle(); - } - - if (_IsAudioPlaying == true) - { - iframeTwc[0].contentWindow.AudioPlayToggle(); - } - - if (_IsNarrationPlaying == true) - { - iframeTwc[0].contentWindow.NarrationPlayToggle(); - } - - $(iframeTwc[0].contentWindow.document).on("mousemove", document_mousemove); - $(iframeTwc[0].contentWindow.document).on("mousedown", document_mousemove); - $(iframeTwc[0].contentWindow.document).on("keydown", document_keydown); - - var SwipeCallBack = function (event, direction, distance, duration, fingerCount, fingerData) - { - console.log("You swiped " + direction); - - switch (direction) - { - case "left": - btnNavigateNext_click(); - break; - - case "right": - btnNavigatePrevious_click(); - break; - } - }; - - $(iframeTwc[0].contentWindow.document).swipe({ - //Generic swipe handler for all directions - swipeRight: SwipeCallBack, - swipeLeft: SwipeCallBack, - - ////Default is 75px, set to 0 for demo so any distance triggers swipe - //threshold: 0 - }); - - - break; - } - }); - iframeTwc.attr("src", "about:blank"); -}; - -var Themes = { - ThemeA: 1, // Classic - ThemeB: 2, // Sea Foam - ThemeC: 3, // Comsic - ThemeD: 4, // Dark -}; -var _Themes = Themes.ThemeA; - -var AssignThemes = function (e) -{ - var forecolor; - var backcolor; - var butncolor; - var brdrcolor; - var invert; - var themecolor; - - switch (e.Themes) - { - case "THEMEA": - _Themes = Themes.ThemeA; - break; - case "THEMEB": - _Themes = Themes.ThemeB; - break; - case "THEMEC": - _Themes = Themes.ThemeC; - break; - case "THEMED": - _Themes = Themes.ThemeD; - break; - } - - switch (_Themes) - { - case Themes.ThemeD: - forecolor = "rgb(255, 255, 255)"; - backcolor = "rgb(0, 0, 0)"; - butncolor = "rgb(96, 96, 96)"; - brdrcolor = "rgb(255, 255, 255)"; - invert = "100"; - themecolor = "#000000"; - break; - default: - forecolor = "rgb(0, 0, 0)"; - backcolor = "rgb(255, 255, 255)"; - butncolor = "rgb(224, 224, 224)"; - brdrcolor = "rgb(0, 0, 0)"; - invert = "0"; - themecolor = "#ffffff"; - break; - } - - $("button, input").css("background-color", butncolor); - $("input, button, .autocomplete-suggestions").css("border", "solid 1px " + brdrcolor); - $("body, input, button, .autocomplete-suggestion").css("color", forecolor); - $("body, input[type=text], .autocomplete-suggestions").css("background-color", backcolor); - $("#imgGetGps").css("filter", "invert(" + invert + "%)"); - $("meta[name=theme-color]").attr("content", themecolor); -}; - -var AssignLastUpdate = function () -{ - var LastUpdate = "(None)"; - - if (_LastUpdate) - { - switch ($("input[type='radio'][name='radUnits']:checked").val()) - { - case "ENGLISH": - LastUpdate = _LastUpdate.toLocaleString('en-US', { weekday: 'short', month: 'short', day: 'numeric', year: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric', timeZoneName: 'short' }); - break; - case "METRIC": - LastUpdate = _LastUpdate.toLocaleString('en-GB', { weekday: 'short', month: 'short', day: 'numeric', year: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric', timeZoneName: 'short' }); - break; - } - } - - spanLastRefresh.html(LastUpdate); - - if (_LastUpdate) - { - if (chkAutoRefresh.is(":checked") == true) - { - StartAutoRefreshTimer(); - } - } -}; - -var TwcCallBack = function (e) -{ - switch (e.Status) - { - case "LOADED": - console.log("Twc Loaded"); - - _LastUpdate = e.LastUpdate; - AssignLastUpdate(); - break; - - case "WEATHERPARAMETERS": - console.log("Weather Parameters"); - - _WeatherParameters = e.WeatherParameters; - PopulateWeatherParameters(); - break; - - case "ISPLAYING": - console.log("Play Toggled"); - _IsPlaying = e.Value; - localStorage.setItem("TwcPlay", _IsPlaying); - - if (_IsPlaying == true) - { - _NoSleep.enable(); - - $("img[src='images/nav/ic_play_arrow_white_24dp_1x.png']").attr("title", "Pause"); - $("img[src='images/nav/ic_play_arrow_white_24dp_1x.png']").attr("src", "images/nav/ic_pause_white_24dp_1x.png"); - $("img[src='images/nav/ic_play_arrow_white_24dp_2x.png']").attr("title", "Pause"); - $("img[src='images/nav/ic_play_arrow_white_24dp_2x.png']").attr("src", "images/nav/ic_pause_white_24dp_2x.png"); - } - else - { - _NoSleep.disable(); - - $("img[src='images/nav/ic_pause_white_24dp_1x.png']").attr("title", "Play"); - $("img[src='images/nav/ic_pause_white_24dp_1x.png']").attr("src", "images/nav/ic_play_arrow_white_24dp_1x.png"); - $("img[src='images/nav/ic_pause_white_24dp_2x.png']").attr("title", "Play"); - $("img[src='images/nav/ic_pause_white_24dp_2x.png']").attr("src", "images/nav/ic_play_arrow_white_24dp_2x.png"); - } - break; - - case "ISAUDIOPLAYING": - console.log("Audio Play Toggled"); - _IsAudioPlaying = e.Value; - localStorage.setItem("TwcAudioPlay", _IsAudioPlaying); - - if (_IsAudioPlaying == true) - { - $("img[src='images/nav/ic_volume_off_white_24dp_1x.png']").attr("title", "Mute"); - $("img[src='images/nav/ic_volume_off_white_24dp_1x.png']").attr("src", "images/nav/ic_volume_up_white_24dp_1x.png"); - $("img[src='images/nav/ic_volume_off_white_24dp_2x.png']").attr("title", "Mute"); - $("img[src='images/nav/ic_volume_off_white_24dp_2x.png']").attr("src", "images/nav/ic_volume_up_white_24dp_2x.png"); - } - else - { - $("img[src='images/nav/ic_volume_up_white_24dp_1x.png']").attr("title", "Unmute"); - $("img[src='images/nav/ic_volume_up_white_24dp_1x.png']").attr("src", "images/nav/ic_volume_off_white_24dp_1x.png"); - $("img[src='images/nav/ic_volume_up_white_24dp_2x.png']").attr("title", "Unmute"); - $("img[src='images/nav/ic_volume_up_white_24dp_2x.png']").attr("src", "images/nav/ic_volume_off_white_24dp_2x.png"); - } - break; - - case "ISNARRATIONPLAYING": - console.log("Narration Play Toggled"); - _IsNarrationPlaying = e.Value; - localStorage.setItem("TwcNarrationPlay", _IsNarrationPlaying); - - if (_IsNarrationPlaying == true) - { - $("img[src='images/nav/ic_no_hearing_white_24dp_1x.png']").attr("title", "Turn off Narration"); - $("img[src='images/nav/ic_no_hearing_white_24dp_1x.png']").attr("src", "images/nav/ic_hearing_white_24dp_1x.png"); - $("img[src='images/nav/ic_no_hearing_white_24dp_2x.png']").attr("title", "Turn off Narration"); - $("img[src='images/nav/ic_no_hearing_white_24dp_2x.png']").attr("src", "images/nav/ic_hearing_white_24dp_2x.png"); - } - else - { - $("img[src='images/nav/ic_hearing_white_24dp_1x.png']").attr("title", "Turn on Narration"); - $("img[src='images/nav/ic_hearing_white_24dp_1x.png']").attr("src", "images/nav/ic_no_hearing_white_24dp_1x.png"); - $("img[src='images/nav/ic_hearing_white_24dp_2x.png']").attr("title", "Turn on Narration"); - $("img[src='images/nav/ic_hearing_white_24dp_2x.png']").attr("src", "images/nav/ic_no_hearing_white_24dp_2x.png"); - } - break; - } -}; - -var btnNavigateRefresh_click = function () -{ - LoadTwcData(_TwcDataUrl); - UpdateFullScreenNavigate(); - - return false; -}; - -var btnNavigateNext_click = function () -{ - iframeTwc[0].contentWindow.NavigateNext(); - UpdateFullScreenNavigate(); - - return false; -}; - -var btnNavigatePrevious_click = function () -{ - iframeTwc[0].contentWindow.NavigatePrevious(); - UpdateFullScreenNavigate(); - - return false; -}; - -var window_resize = function () -{ - //var iFrameLocation = iframeTwc[0].contentWindow.location; - //var Hash = iFrameLocation.hash; - - var $window = $(window); - - if ($window.height() == _WindowHeight || $window.width() == _WindowWidth) - { - return; - } - - _WindowHeight = $window.height(); - _WindowWidth = $window.width(); - - try - { - ////iFrameLocation.hash = ""; - ////iFrameLocation.hash = Hash; - //iframeTwc[0].contentWindow.history.replaceState("", document.title, iFrameLocation.pathname); - //iframeTwc[0].contentWindow.history.replaceState("", document.title, iFrameLocation.pathname + Hash); - iframeTwc[0].contentWindow.NavigateReset(); - } catch (ex) { } - - UpdateFullScreenNavigate(); -}; - -var _NavigateFadeIntervalId = null; - -var UpdateFullScreenNavigate = function () -{ - $(document.activeElement).blur(); - - //console.log("window_mousemove: inFullScreen = True"); - //console.log(e); - - //if (divTwcLeft.css("visibility") != "") - //{ - // divTwcLeft.css("visibility", ""); - // divTwcLeft.css("opacity", "0.0"); - // divTwcLeft.animate({ opacity: 1.0 }, 1000); - // //divTwcLeft.fadeIn(); - //} - //$("body").css("cursor", ""); - $("body").removeClass("HideCursor"); - $(iframeTwc[0].contentWindow.document).find("body").removeClass("HideCursor"); - divTwcLeft.fadeIn2(); - divTwcRight.fadeIn2(); - divTwcBottom.fadeIn2(); - - //divTwcRight.fadeIn(); - - if (_NavigateFadeIntervalId) - { - window.clearTimeout(_NavigateFadeIntervalId); - _NavigateFadeIntervalId = null; - } - - _NavigateFadeIntervalId = window.setTimeout(function () - { - //console.log("window_mousemove: TimeOut"); - var inFullScreen = InFullScreen(); - //alert(inFullScreen) - - if (inFullScreen == true) - { - //$("body").css("cursor", "none !important"); - $("body").addClass("HideCursor"); - //$(iframeTwc[0].contentWindow).css("cursor", "none !important"); - $(iframeTwc[0].contentWindow.document).find("body").addClass("HideCursor"); - - //divTwcLeft.css("visibility", ""); - //divTwcLeft.animate({ opacity: 0.0 }, 1000, function () - //{ - // divTwcLeft.css("visibility", "hidden"); - //}); - divTwcLeft.fadeOut2(); - divTwcRight.fadeOut2(); - divTwcBottom.fadeOut2(); - } - - //divTwcRight.fadeOut(); - }, 2000); -}; - -var document_mousemove = function (e) -{ - var inFullScreen = InFullScreen(); - //alert("document_mousemove") - - //console.log(e.originalEvent.buttons); - if (inFullScreen == true) - { - if ((e.originalEvent.movementX == 0 && e.originalEvent.movementY == 0 && e.originalEvent.buttons == 0)) - { - return; - } - - UpdateFullScreenNavigate(); - } -}; - -var document_keydown = function (e) -{ - //if (_AllowKeyDown == false) - //{ - // return; - //} - //_AllowKeyDown = false; - - //window.setTimeout(function () - //{ - // _AllowKeyDown = true; - //}, 500); - - var inFullScreen = InFullScreen(); - var code = (e.keyCode || e.which); - - if (inFullScreen == true || document.activeElement == document.body) - { - switch (code) - { - case 32: // Space - btnNavigatePlay_click(); - return false; - break; - - case 39: // Right Arrow - case 34: // Page Down - btnNavigateNext_click(); - return false; - break; - - case 37: // Left Arrow - case 33: // Page Up - btnNavigatePrevious_click(); - return false; - break; - - case 36: // Home - btnNavigateMenu_click(); - return false; - break; - - case 48: // Restart - btnNavigateRefresh_click(); - return false; - break; - - case 77: // M - btnAudioPlay_click(); - return false; - break; - - case 78: // N - btnNarrationPlay_click(); - return false; - break; - - case 70: // F - btnFullScreen_click(); - return false; - break; - - } - } -}; - -$.fn.fadeIn2 = function () -{ - var _self = this; - var opacity = 0.0; - var IntervalId = null; - - if (_self.css("opacity") != "0") - { - return; - } - - //_self.css("visibility", ""); - _self.css("visibility", "visible"); - _self.css("opacity", "0.0"); - - IntervalId = window.setInterval(function () - { - opacity += 0.1; - opacity = Math.round2(opacity, 1); - _self.css("opacity", opacity.toString()); - - if (opacity == 1.0) - { - //_self.css("visibility", ""); - _self.css("visibility", "visible"); - window.clearInterval(IntervalId); - } - }, 50); - - return _self; -}; - -$.fn.fadeOut2 = function () -{ - var _self = this; - var opacity = 1.0; - var IntervalId = null; - - if (_self.css("opacity") != "1") - { - return; - } - - //_self.css("visibility", ""); - _self.css("visibility", "visible"); - _self.css("opacity", "1.0"); - - IntervalId = window.setInterval(function () - { - opacity -= 0.2; - opacity = Math.round2(opacity, 1); - _self.css("opacity", opacity.toString()); - - if (opacity == 0) - { - _self.css("visibility", "hidden"); - window.clearInterval(IntervalId); - } - }, 50); - - return _self; -}; - -Math.round2 = function (value, decimals) -{ - return Number(Math.round(value + 'e' + decimals) + 'e-' + decimals); -} - -var btnNavigatePlay_click = function () -{ - iframeTwc[0].contentWindow.NavigatePlayToggle(); - UpdateFullScreenNavigate(); - - //if (iframeTwc[0].contentWindow.IsPlaying() == true) - //{ - // _NoSleep.enable(); - - // $("img[src='images/nav/ic_play_arrow_white_24dp_1x.png']").attr("title", "Pause"); - // $("img[src='images/nav/ic_play_arrow_white_24dp_1x.png']").attr("src", "images/nav/ic_pause_white_24dp_1x.png"); - // $("img[src='images/nav/ic_play_arrow_white_24dp_2x.png']").attr("title", "Pause"); - // $("img[src='images/nav/ic_play_arrow_white_24dp_2x.png']").attr("src", "images/nav/ic_pause_white_24dp_2x.png"); - //} - //else - //{ - // _NoSleep.disable(); - - // $("img[src='images/nav/ic_pause_white_24dp_1x.png']").attr("title", "Play"); - // $("img[src='images/nav/ic_pause_white_24dp_1x.png']").attr("src", "images/nav/ic_play_arrow_white_24dp_1x.png"); - // $("img[src='images/nav/ic_pause_white_24dp_2x.png']").attr("title", "Play"); - // $("img[src='images/nav/ic_pause_white_24dp_2x.png']").attr("src", "images/nav/ic_play_arrow_white_24dp_2x.png"); - //} - - return false; -}; - -var btnAudioPlay_click = function () -{ - iframeTwc[0].contentWindow.AudioPlayToggle(); - UpdateFullScreenNavigate(); - - return false; -}; - -var btnNarrationPlay_click = function () -{ - iframeTwc[0].contentWindow.NarrationPlayToggle(); - UpdateFullScreenNavigate(); - - return false; -}; - -$(function () -{ - _WindowHeight = $(window).height(); - _WindowWidth = $(window).width(); - - frmGetLatLng = $("#frmGetLatLng"); - txtAddress = $("#txtAddress"); - btnGetLatLng = $("#btnGetLatLng"); - btnClearQuery = $("#btnClearQuery"); - btnGetGps = $("#btnGetGps"); - - divLat = $("#divLat"); - spanLat = $("#spanLat"); - divLng = $("#divLng"); - spanLng = $("#spanLng"); - - iframeTwc = $("#iframeTwc"); - btnFullScreen = $("#btnFullScreen"); - divTwc = $("#divTwc"); - divTwcTop = $("#divTwcTop"); - divTwcMiddle = $("#divTwcMiddle"); - divTwcBottom = $("#divTwcBottom"); - divTwcLeft = $("#divTwcLeft"); - divTwcRight = $("#divTwcRight"); - divTwcNav = $("#divTwcNav"); - divTwcNavContainer = $("#divTwcNavContainer"); - divTwcBottomLeft = $("#divTwcBottomLeft"); - divTwcBottomMiddle = $("#divTwcBottomMiddle"); - divTwcBottomRight = $("#divTwcBottomRight"); - - radScrollDefault = $("#radScrollDefault"); - radScrollDefault.on("change", radScroll_change); - - frmScrollText = $("#frmScrollText"); - radScrollText = $("#radScrollText"); - txtScrollText = $("#txtScrollText"); - btnScrollText = $("#btnScrollText"); - - frmScrollText.on("submit", frmScrollText_submit); - txtScrollText.on("focus", function () - { - txtScrollText.select(); - }); - radScrollText.on("change", radScroll_change); - - frmScrollRss = $("#frmScrollRss"); - radScrollRss = $("#radScrollRss"); - txtScrollRss = $("#txtScrollRss"); - btnScrollRss = $("#btnScrollRss"); - - frmScrollRss.on("submit", frmScrollRss_submit); - txtScrollRss.on("focus", function () - { - txtScrollRss.select(); - }); - radScrollRss.on("change", radScroll_change); - - txtAddress.on("focus", function () - { - txtAddress.select(); - }); - - txtAddress.focus(); - - $(".NavigateMenu").on("click", btnNavigateMenu_click); - $(".NavigateRefresh").on("click", btnNavigateRefresh_click); - $(".NavigateNext").on("click", btnNavigateNext_click); - $(".NavigatePrevious").on("click", btnNavigatePrevious_click); - $(".NavigatePlay").on("click", btnNavigatePlay_click); - - $(".ToggleVolume").on("click", btnAudioPlay_click); - - $(".ToggleNarration").on("click", btnNarrationPlay_click); - - $(btnGetGps).on("click", btnGetGps_click); - - if (inIframe()) - { - $(document.body).css("margin", "0 0 0 0") - .css("transform-origin", "top left") - .css("width", "640px"); - - $("#divGitHub").hide(); - $("#divInfo").hide(); - $("#divRefresh").hide(); - $("#divUnits").hide(); - $("#divThemes").hide(); - $("#divScrollText").hide(); - } - - //$(document).on('webkitfullscreenchange mozfullscreenchange fullscreenchange', OnFullScreen); - $(window).on("resize", OnFullScreen); - $(window).on("resize", window_resize); - $(window).on("orientationchange", FullScreenResize); - $(document).on("mousemove", document_mousemove); - $(document).on("mousedown", document_mousemove); - divTwc.on("mousedown", document_mousemove); - $(document).on("keydown", document_keydown); - document.addEventListener("touchmove", function (e) { if (_FullScreenOverride == true) e.preventDefault() }); - //$(document).on("keypress", document_keydown); - $(".ToggleFullScreen").on("click", btnFullScreen_click); - FullScreenResize(); - - //var AutoSelectQuery = false; - - var categories = [ - 'Land Features', - 'Bay', 'Channel', 'Cove', 'Dam', 'Delta', 'Gulf', 'Lagoon', 'Lake', 'Ocean', 'Reef', 'Reservoir', 'Sea', 'Sound', 'Strait', 'Waterfall', 'Wharf', // Water Features - 'Amusement Park', 'Historical Monument', 'Landmark', 'Tourist Attraction', 'Zoo', // POI/Arts and Entertainment - 'College', // POI/Education - 'Beach', 'Campground', 'Golf Course', 'Harbor', 'Nature Reserve', 'Other Parks and Outdoors', 'Park', 'Racetrack', - 'Scenic Overlook', 'Ski Resort', 'Sports Center', 'Sports Field', 'Wildlife Reserve', // POI/Parks and Outdoors - 'Airport', 'Ferry', 'Marina', 'Pier', 'Port', 'Resort', // POI/Travel - 'Postal', 'Populated Place' - ], - cats = categories.join(','), - overrides = { - '08736, Manasquan, New Jersey, USA': { x: -74.037, y: 40.1128 }, - '32899, Orlando, Florida, USA': { x: -80.6774, y: 28.6143 }, - '97003, Beaverton, Oregon, USA': { x: -122.8752489, y: 45.5050916 }, - '99734, Prudhoe Bay, Alaska, USA': { x: -148.3372, y: 70.2552 }, - - 'Guam, Oceania': { x: 144.74, y: 13.46 }, - 'Andover, Maine, United States': { x: -70.7525, y: 44.634167 }, - 'Bear Creek, Pennsylvania, United States': { x: -75.772809, y: 41.204074 }, - 'Bear Creek Village, Pennsylvania, United States': { x: -75.772809, y: 41.204074 }, - 'New York City, New York, United States': { x: -74.0059, y: 40.7142 }, - 'Pinnacles National Monument, San Benito County,California, United States': { x: -121.147278, y: 36.47075 }, - 'Pinnacles National Park, CA-146, Paicines, California': { x: -121.147278, y: 36.47075 }, - 'Welcome, Maryland, United States': { x: -77.081212, y: 38.4692469 }, - 'Tampa, Florida, United States (City)': { x: -82.5329, y: 27.9756 }, - 'San Francisco, California, United States': { x: -122.3758, y: 37.6188 }, - //'Dayton, Ohio, United States (City)': { x: -84.05, y: 39.85 }, - }, - roundToPlaces = function (num, decimals) - { - var n = Math.pow(10, decimals); - return Math.round((n * num).toFixed(decimals)) / n; - }, - doRedirectToGeometry = function (geom) - { - var location = window.location, - query = '?lat=' + roundToPlaces(geom.y, 4) + '&lon=' + roundToPlaces(geom.x, 4), - origin, domain; - var Url = ""; - - if (location.pathname.match(/MapClick.php$/)) - { - if (location.origin) - { - origin = location.origin; - } else - { - origin = location.protocol + "//" + location.hostname + (location.port ? ':' + location.port : ''); - } - //window.location = origin + location.pathname + query; - Url = origin + location.pathname + query; - } - else - { - if (location.hostname.match(/dev\.nids\.noaa\.gov$/)) - { - domain = 'forecast.dev.nids.noaa.gov'; - } else if (location.hostname.match(/preview.*\.weather\.gov$/)) - { - domain = 'preview-forecast.weather.gov'; - } else - { - domain = 'forecast.weather.gov'; - } - //window.location = location.protocol + '//' + domain + '/MapClick.php' + query; - //Url = location.protocol + '//' + domain + '/MapClick.php' + query; - Url = 'https://' + domain + '/MapClick.php' + query; - } - Url = "cors/?u=" + encodeURIComponent(Url); - - //GetLatLng(Url); - - //// First clear the iframe - //iframeTwc.on("load", function (e) - //{ - // //console.log("loaded..."); - - // switch (iframeTwc.attr("src")) - // { - // case "about:blank": - // iframeTwc.attr("src", "twc3.html?_=" + (new Date).getTime().toString()); - // //iframeTwc.attr("src", "twc3.html?a"); - // break; - - // //case "twc3.html": - // default: - // iframeTwc.off("load"); - // iframeTwc[0].contentWindow.GetLatLng(Url); - // break; - // } - //}); - //iframeTwc.attr("src", "about:blank"); - LoadTwcData(Url); - - // Save the query - localStorage.setItem("TwcQuery", txtAddress.val()); - localStorage.setItem("TwcLatLon", JSON.stringify(geom)) - }; - - var PreviousSeggestionValue = null; - var PreviousSeggestion = null; - var OnSelect = function (suggestion) - { - var request; - - // Do not auto get the same city twice. - if (PreviousSeggestionValue == suggestion.value) - { - return; - } - PreviousSeggestionValue = suggestion.value; - PreviousSeggestion = suggestion; - - if (overrides[suggestion.value]) - { - doRedirectToGeometry(overrides[suggestion.value]); - } - else - { - request = $.ajax({ - url: location.protocol + '//geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/find', - data: { - text: suggestion.value, - magicKey: suggestion.data, - f: 'json' - }, - jsonp: 'callback', - dataType: 'jsonp' - }); - request.done(function (data) - { - var loc = data.locations[0]; - if (loc) - { - doRedirectToGeometry(loc.feature.geometry); - } - else - { - alert('An unexpected error occurred. Please try a different search string.'); - } - }); - } - }; - - $("#frmGetLatLng #txtAddress").devbridgeAutocomplete({ - serviceUrl: location.protocol + '//geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/suggest', - deferRequestBy: 300, - paramName: 'text', - params: { - f: 'json', - countryCode: 'USA', //'USA,PRI,VIR,GUM,ASM', - category: cats, - maxSuggestions: 10 - }, - dataType: 'jsonp', - transformResult: function (response) - { - if (_AutoSelectQuery == true) - { - _AutoSelectQuery = false; - window.setTimeout(function () - { - $(ac.suggestionsContainer.children[0]).click(); - }, 1); - } - return { - suggestions: $.map(response.suggestions, function (i) - { - return { - value: i.text, - data: i.magicKey - }; - }) - }; - }, - minChars: 3, - showNoSuggestionNotice: true, - noSuggestionNotice: 'No results found. Please try a different search string.', - onSelect: OnSelect, - //width: 400 - width: 492, - onSearchComplete: function (query, suggestions) - { - var $input = $(this); - var scaleFactor = getBodyScaleValue(); // Scale factor - var inputOffset = $input.offset(); - var newTop = (inputOffset.top + $input.outerHeight()) / scaleFactor; - var newLeft = inputOffset.left / scaleFactor; - - // Apply the new position - $('.autocomplete-suggestions').css({ top: newTop + 'px', left: newLeft + 'px' }); - } - }); - - var ac = $("#frmGetLatLng #txtAddress").devbridgeAutocomplete(); - frmGetLatLng.submit(function () - { - if (ac.suggestions[0]) - { - $(ac.suggestionsContainer.children[0]).click(); - return false; - //PreviousSeggestion = ac.suggestions[0]; - } - if (PreviousSeggestion) - { - PreviousSeggestionValue = null; - OnSelect(PreviousSeggestion); - } - - return false; - }); - - // Auto load the previous query - var TwcQuery = localStorage.getItem("TwcQuery"); - var TwcLatLon = localStorage.getItem("TwcLatLon"); - - var TwcQueryStr = getParameterByName("location"); - if (TwcQueryStr) - { - console.log(TwcQueryStr); - TwcQuery = TwcQueryStr; - TwcLatLon = undefined; - } - - if (TwcQuery) - { - // Remove "(...)" - TwcQuery = TwcQuery.replace(/ *\([^)]*\) */g, ""); - } - spanLastRefresh = $("#spanLastRefresh"); - if (TwcQuery) - { - txtAddress.val(TwcQuery); - if (TwcLatLon) - { - doRedirectToGeometry(JSON.parse(TwcLatLon)); - - } else - { - _AutoSelectQuery = true; - txtAddress.blur(); - txtAddress.focus(); - } - } - - var TwcPlay = localStorage.getItem("TwcPlay"); - if (!TwcPlay || TwcPlay == "true") - { - _IsPlaying = true; - } - - var TwcAudioPlay = localStorage.getItem("TwcAudioPlay"); - if (!TwcAudioPlay || TwcAudioPlay == "true") - { - _IsAudioPlaying = true; - } - - var TwcNarrationPlay = localStorage.getItem("TwcNarrationPlay"); - if (TwcNarrationPlay == "true") - { - _IsNarrationPlaying = true; - } - - radScrollDefault.prop("checked", ""); - radScrollText.prop("checked", ""); - radScrollRss.prop("checked", ""); - - var TwcScrollText = localStorage.getItem("TwcScrollText"); - if (TwcScrollText) - { - txtScrollText.val(TwcScrollText); - } - - var TwcScrollRss = localStorage.getItem("TwcScrollRss"); - if (TwcScrollRss) - { - txtScrollRss.val(TwcScrollRss); - } - - var TwcScrollChecked = localStorage.getItem("TwcScrollChecked"); - if (TwcScrollChecked) - { - $("#" + TwcScrollChecked).prop("checked", "checked"); - } - else - { - radScrollDefault.prop("checked", "checked"); - } - - radScroll_change(); - - btnClearQuery.on("click", function () - { - spanCity.text(""); - spanState.text(""); - spanStationId.text(""); - spanRadarId.text(""); - spanZoneId.text(""); - - radScrollDefault.prop("checked", "checked"); - - radScrollText.prop("checked", ""); - txtScrollText.val(""); - - radScrollRss.prop("checked", ""); - txtScrollRss.val(""); - - radScroll_change(); - - localStorage.removeItem("TwcScrollText"); - localStorage.removeItem("TwcScrollTextChecked"); - - chkScrollHazardText.prop("checked", ""); - localStorage.removeItem("TwcScrollHazardText"); - - chkAutoRefresh.prop("checked", "checked"); - localStorage.removeItem("TwcAutoRefresh"); - - $("#radEnglish").prop("checked", "checked"); - localStorage.removeItem("TwcUnits"); - - $("#radThemeA").prop("checked", "checked"); - AssignThemes({ Themes: "THEMEA" }); - localStorage.removeItem("TwcThemes"); - - TwcCallBack({ Status: "ISNARRATIONPLAYING", Value: false }); - localStorage.removeItem("TwcNarrationPlay"); - _IsNarrationPlaying = false; - - TwcCallBack({ Status: "ISAUDIOPLAYING", Value: false }); - localStorage.removeItem("TwcAudioPlay"); - _IsAudioPlaying = true; - - TwcCallBack({ Status: "ISPLAYING", Value: false }); - localStorage.removeItem("TwcPlay"); - _IsPlaying = true; - - localStorage.removeItem("TwcQuery"); - localStorage.removeItem("TwcLatLon"); - PreviousSeggestionValue = null; - PreviousSeggestion = null; - - LoadTwcData(""); - }); - - var TwcUnits = localStorage.getItem("TwcUnits"); - if (!TwcUnits || TwcUnits == "ENGLISH") - { - $("#radEnglish").prop("checked", "checked"); - } - else if (TwcUnits == "METRIC") - { - $("#radMetric").prop("checked", "checked"); - } - - var TwcThemes = localStorage.getItem("TwcThemes"); - if (!TwcThemes || TwcThemes == "THEMEA") - { - $("#radThemeA").prop("checked", "checked"); - } - else if (TwcThemes == "THEMEB") - { - $("#radThemeB").prop("checked", "checked"); - } - else if (TwcThemes == "THEMEC") - { - $("#radThemeC").prop("checked", "checked"); - } - else if (TwcThemes == "THEMED") - { - $("#radThemeD").prop("checked", "checked"); - } - AssignThemes({ Themes: TwcThemes }); - - $("input[type='radio'][name='radUnits']").on("change", function () - { - var Units = $(this).val(); - localStorage.setItem("TwcUnits", Units); - AssignLastUpdate(); - iframeTwc[0].contentWindow.AssignUnits({ Units: Units }); - }); - - $("input[type='radio'][name='radThemes']").on("change", function () - { - var Themes = $(this).val(); - localStorage.setItem("TwcThemes", Themes); - AssignThemes({ Themes: Themes }); - iframeTwc[0].contentWindow.AssignThemes({ Themes: Themes }); - }); - - divRefresh = $("#divRefresh"); - chkAutoRefresh = $("#chkAutoRefresh"); - lblRefreshCountDown = $("#lblRefreshCountDown"); - spanRefreshCountDown = $("#spanRefreshCountDown"); - - chkAutoRefresh.on("change", function () - { - var Checked = $(this).is(":checked"); - - if (_LastUpdate) - { - if (Checked == true) - { - StartAutoRefreshTimer(); - } - else - { - StopAutoRefreshTimer(); - } - } - - localStorage.setItem("TwcAutoRefresh", Checked); - }); - - var TwcAutoRefresh = localStorage.getItem("TwcAutoRefresh"); - if (!TwcAutoRefresh || TwcAutoRefresh == "true") - { - chkAutoRefresh.prop("checked", "checked"); - } - else - { - chkAutoRefresh.prop("checked", ""); - } - - spanCity = $("#spanCity"); - spanState = $("#spanState"); - spanStationId = $("#spanStationId"); - spanRadarId = $("#spanRadarId"); - spanZoneId = $("#spanZoneId"); - - chkScrollHazardText = $("#chkScrollHazardText"); - chkScrollHazardText.on("change", function () - { - var Checked = $(this).is(":checked"); - - ScrollHazardText(Checked); - - localStorage.setItem("TwcScrollHazardText", Checked); - }); - - var TwcScrollHazardText = localStorage.getItem("TwcScrollHazardText"); - if (TwcScrollHazardText && TwcScrollHazardText == "true") - { - chkScrollHazardText.prop("checked", "checked"); - } - else - { - chkScrollHazardText.prop("checked", ""); - } - -}); - -var ScrollHazardText = function (enable) -{ - if (iframeTwc[0].contentWindow.ScrollHazardText) - { - iframeTwc[0].contentWindow.ScrollHazardText(enable); - } -}; - -var StartAutoRefreshTimer = function () -{ - //// Esnure that any previous timer has already stopped. - //StopAutoRefreshTimer(); - if (_AutoRefreshIntervalId) - { - // Timer is already running. - return; - } - - // Reset the time elapsed. - _AutoRefreshCountMs = 0; - - var AutoRefreshTimer = function () - { - // Increment the total time elapsed. - _AutoRefreshCountMs += _AutoRefreshIntervalMs; - - // Display the count down. - var RemainingMs = (_AutoRefreshTotalIntervalMs - _AutoRefreshCountMs); - if (RemainingMs < 0) - { - RemainingMs = 0; - } - var dt = new Date(RemainingMs); - spanRefreshCountDown.html((dt.getMinutes() < 10 ? "0" + dt.getMinutes() : dt.getMinutes()) + ":" + (dt.getSeconds() < 10 ? "0" + dt.getSeconds() : dt.getSeconds())); - - if (_AutoRefreshCountMs >= _AutoRefreshTotalIntervalMs) - { - // Time has elapsed. - LoadTwcData(_TwcDataUrl, true); - } - }; - _AutoRefreshIntervalId = window.setInterval(AutoRefreshTimer, _AutoRefreshIntervalMs); - AutoRefreshTimer(); -}; -var StopAutoRefreshTimer = function () -{ - if (_AutoRefreshIntervalId) - { - window.clearInterval(_AutoRefreshIntervalId); - spanRefreshCountDown.html("--:--"); - _AutoRefreshIntervalId = null; - } -}; - -var btnGetGps_click = function () -{ - if (!navigator.geolocation) - { - return; - } - - var CurrentPosition = function (Position) - { - var Latitude = Position.coords.latitude; - var Longitude = Position.coords.longitude; - //Latitude = 40.7754622; Longitude = -73.2411506; - - console.log("Latitude: " + Latitude + "; Longitude: " + Longitude); - - //http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/reverseGeocode?location=-72.971293%2C+40.850043&f=pjson - request = $.ajax({ - url: location.protocol + '//geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/reverseGeocode', - data: { - location: Longitude + "," + Latitude, - distance: 1000, // Find location upto 1 KM. - f: 'json' - }, - jsonp: 'callback', - dataType: 'jsonp' - }); - request.done(function (data) - { - console.log(data); - - var ZipCode = data.address.Postal; - var City = data.address.City; - var State = getStateTwoDigitCode(data.address.Region); - var Country = data.address.CountryCode; - var TwcQuery = ZipCode + ", " + City + ", " + State + ", " + Country; - //var Url = "http://forecast.weather.gov/MapClick.php?lat=" + Latitude + "&lon=" + Longitude; - - txtAddress.val(TwcQuery); - txtAddress.blur(); - txtAddress.focus(); - - // Save the query - localStorage.setItem("TwcQuery", TwcQuery); - - //LoadTwcData(Url); - }); - - }; - - navigator.geolocation.getCurrentPosition(CurrentPosition); -}; - -var PopulateWeatherParameters = function () -{ - spanCity.text(_WeatherParameters.City + ", "); - spanState.text(_WeatherParameters.State); - spanStationId.text(_WeatherParameters.StationId); - spanRadarId.text(_WeatherParameters.RadarId); - spanZoneId.text(_WeatherParameters.ZoneId); -}; - -var frmScrollText_submit = function (e) -{ - radScroll_change(); - - return false; -}; - -var frmScrollRss_submit = function (e) -{ - radScroll_change(); - - return false; -}; - -var radScroll_change = function (e) -{ - txtScrollText.blur(); - txtScrollText.addClass("Disabled"); - btnScrollText.addClass("Disabled"); - - txtScrollRss.blur(); - txtScrollRss.addClass("Disabled"); - btnScrollRss.addClass("Disabled"); - - var ScrollCheckedId = $("input[name='radScroll']:checked").attr("id"); - localStorage.setItem("TwcScrollChecked", ScrollCheckedId); - - switch (ScrollCheckedId) - { - case "radScrollDefault": - AssignScrollText(null); - break; - - case "radScrollText": - txtScrollText.removeClass("Disabled"); - btnScrollText.removeClass("Disabled"); - - var ScrollText = txtScrollText.val(); - localStorage.setItem("TwcScrollText", ScrollText); - - AssignScrollText({ ScrollText: ScrollText }); - break; - - case "radScrollRss": - txtScrollRss.removeClass("Disabled"); - btnScrollRss.removeClass("Disabled"); - - var ScrollRss = txtScrollRss.val(); - localStorage.setItem("TwcScrollRss", ScrollRss); - - AssignScrollText({ ScrollRss: ScrollRss }); - break; - - } -}; - -var AssignScrollText = function (e) -{ - if (iframeTwc[0].contentWindow.AssignScrollText) - { - iframeTwc[0].contentWindow.AssignScrollText(e); - } -}; - -var getParameterByName = function (name, url) -{ - if (!url) url = window.location.href; - url = decodeURIComponent(url); - name = name.replace(/[\[\]]/g, "\\$&"); - var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), - results = regex.exec(url); - if (!results) return null; - if (!results[2]) return ''; - return decodeURIComponent(results[2].replace(/\+/g, " ")); -}; - -var inIframe = function () -{ - try - { - return window.self !== window.top; - } - catch (e) - { - return true; - } -}; - -var getBodyScaleValue = function () -{ - var transformValue = $(document.body).css('transform'); - var scaleArray = transformValue.split(','); - var scaleValue = parseFloat(scaleArray[scaleArray.length - 3]); - return scaleValue; -}; +/// +/// + +// Redirect user to SSL version of site. +if (location.protocol != "https:" && location.href.indexOf("localhost") == -1 && location.href.indexOf("192.") == -1) +{ + location.href = location.href.replace("http:", "https:"); +} + +var frmGetLatLng; +var txtAddress; +var btnGetLatLng; +var btnClearQuery; +var btnGetGps; +var divLat; +var spanLat; +var divLng; +var spanLng; + +var divTwc; +var divTwcTop; +var divTwcMiddle; +var divTwcBottom; +var divTwcLeft; +var divTwcRight; +var divTwcNavContainer; +var divTwcNav; +var iframeTwc; +var btnFullScreen; +var divTwcBottomLeft; +var divTwcBottomMiddle; +var divTwcBottomRight; + +var divRefresh; +var spanLastRefresh; +var chkAutoRefresh; +var lblRefreshCountDown; +var spanRefreshCountDown; + +var spanCity; +var spanState; +var spanStationId; +var spanRadarId; +var spanZoneId; + +var radScrollDefault; + +var frmScrollText; +var radScrollText; +var txtScrollText; +var btnScrollText; + +var frmScrollRss; +var radScrollRss; +var txtScrollRss; +var btnScrollRss; + +var chkScrollHazardText; + +//var _InFullScreen = false; +var _AutoSelectQuery = false; +var _TwcDataUrl = ""; +var _IsPlaying = false; + +var _NoSleep = new NoSleep(); + +var _LastUpdate = null; +var _AutoRefreshIntervalId = null; +var _AutoRefreshIntervalMs = 500; +//var _AutoRefreshTotalIntervalMs = 10000; // 10 sec. +//var _AutoRefreshTotalIntervalMs = 300000; // 5 min. +var _AutoRefreshTotalIntervalMs = 600000; // 10 min. +var _AutoRefreshCountMs = 0; + +var _IsAudioPlaying = false; +var _IsBeepPlaying = false; + +var _IsNarrationPlaying = false; + +var _FullScreenOverride = false; + +var _WeatherParameters = null; + +var _WindowHeight = 0; +var _WindowWidth = 0; + +var _AllowKeyDown = true; + +var _canvasIds = [ + "canvasProgress", + "canvasCurrentWeather", + "canvasLatestObservations", + "canvasTravelForecast", + "canvasRegionalForecast1", + "canvasRegionalForecast2", + "canvasRegionalObservations", + "canvasLocalForecast", + "canvasExtendedForecast1", + "canvasExtendedForecast2", + "canvasAlmanac", + "canvasAlmanacTides", + "canvasOutlook", + "canvasMarineForecast", + "canvasAirQuality", + "canvasLocalRadar", + "canvasHazards" +]; + +var OperatingSystems = { + Unknown: 0, + Windows: 1, + MacOS: 2, + Linux: 3, + Unix: 4, + iOS: 5, + Andriod: 6, + WindowsPhone: 7, +}; +_OperatingSystem = OperatingSystems.Unknown; +var _UserAgent = window.navigator.userAgent; +if (_UserAgent.indexOf("Win") != -1) _OperatingSystem = OperatingSystems.Windows; +if (_UserAgent.indexOf("Mac") != -1) _OperatingSystem = OperatingSystems.MacOS; +if (_UserAgent.indexOf("X11") != -1) _OperatingSystem = OperatingSystems.Unix; +if (_UserAgent.indexOf("Linux") != -1) _OperatingSystem = OperatingSystems.Linux; +if (_UserAgent.indexOf("iPad") != -1) _OperatingSystem = OperatingSystems.iOS; +if (_UserAgent.indexOf("iPhone") != -1) _OperatingSystem = OperatingSystems.iOS; +if (_UserAgent.indexOf("iPod") != -1) _OperatingSystem = OperatingSystems.iOS; +if (_UserAgent.toLowerCase().indexOf("android") != -1) _OperatingSystem = OperatingSystems.Andriod; +if (_UserAgent.indexOf("Windows Phone") != -1) _OperatingSystem = OperatingSystems.WindowsPhone; + +var FullScreenResize = function (AutoRefresh) +{ + var iframeDoc = $(iframeTwc[0].contentWindow.document); + var WindowWidth = $(window).width(); + var WindowHeight = $(window).height(); + var NewWidth; + var NewHeight; + var IFrameWidth; + var IFrameHeight; + var LeftWidth; + var LeftHeight; + var RightWidth; + var RightHeight; + var TopHeight; + var TopWidth; + var BottomHeight; + var BottomWidth; + var Offset; + var inFullScreen = InFullScreen(); + + if (inFullScreen == true) + { + //if (WindowWidth > WindowHeight) + //if (WindowWidth > 850) + //if (WindowWidth > 0) + //if (WindowWidth > 640) + if ((WindowWidth / WindowHeight) >= 1.583333333333333) // = 640 (TWC Width) + 48 (Icon min width on left side) + 12 (left padding) + 48 (Right icons) + 12 (right padding) / 480 (TWC Height) + { + NewHeight = WindowHeight + "px"; + NewWidth = ""; + divTwcTop.hide(); + divTwcBottom.hide(); + divTwcLeft.show(); + divTwcRight.show(); + + divTwcMiddle.attr("style", "width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"); + + //IFrameWidth = (WindowHeight * 1.33333333333333333333); + //iframeTwc.attr("style", "width:" + IFrameWidth + "px; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"); + + //LeftWidth = ((((WindowHeight * 16) / 9) - (WindowHeight * 1.25)) / 2) + "px"; + LeftWidth = ((WindowWidth - (WindowHeight * 1.33333333333333333333)) / 2); + if (LeftWidth < 60) + { + LeftWidth = 60; + } + divTwcLeft.find("div>div>a>img").css("width", ""); + //divTwcLeft.find(">div").css("padding-right", "12px").css("padding-left", ""); + divTwcLeft.attr("style", "width:" + LeftWidth + "px; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"); + divTwcLeft.css("visibility", "visible"); + divTwcLeft.css("opacity", "1"); + if (AutoRefresh === true) + { + divTwcLeft.css("opacity", "0"); + divTwcLeft.css("visibility", "hidden"); + } + divTwcLeft.css("position", ""); + + //RightWidth = ((((WindowHeight * 16) / 9) - (WindowHeight * 1.25)) / 2) + "px"; + RightWidth = ((WindowWidth - (WindowHeight * 1.33333333333333333333)) / 2); + if (RightWidth < 60) + { + RightWidth = 60; + } + divTwcRight.find("div>div>a>img").css("width", ""); + //divTwcRight.find(">div").css("padding-left", "12px").css("padding-right", ""); + divTwcRight.attr("style", "width:" + RightWidth + "px; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"); + divTwcRight.css("visibility", "visible"); + divTwcRight.css("opacity", "1"); + if (AutoRefresh === true) + { + divTwcRight.css("opacity", "0"); + divTwcRight.css("visibility", "hidden"); + } + divTwcRight.css("position", ""); + + IFrameWidth = WindowWidth - LeftWidth - RightWidth; + NewWidth = IFrameWidth + "px"; + iframeTwc.attr("style", "width:" + IFrameWidth + "px; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"); + + //console.log(WindowWidth); + } + else + { + NewHeight = ""; + NewWidth = WindowWidth + "px"; + divTwcTop.show(); + divTwcBottom.show(); + + //divTwcLeft.hide(); + //divTwcRight.hide(); + //Offset = 400; + Offset = 0; + + //IFrameHeight = ((WindowWidth - Offset) * 0.75) + "px"; + //iframeTwc.attr("style", "width:100%; height:" + IFrameHeight + "; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"); + //divTwcMiddle.attr("style", "width:100%; height:" + IFrameHeight + "; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"); + + TopHeight = ((WindowHeight - ((WindowWidth - Offset) * 0.75)) / 2); + if (TopHeight < 0) + { + TopHeight = 0; + } + divTwcTop.attr("style", "width:100%; height:" + TopHeight + "px; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"); + + BottomHeight = ((WindowHeight - ((WindowWidth - Offset) * 0.75)) / 2); + if (BottomHeight < 30) + { + //BottomHeight = 30; + BottomHeight = 0; + } + divTwcBottom.attr("style", "width:100%; height:" + BottomHeight + "px; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"); + divTwcBottom.css("visibility", "visible"); + divTwcBottom.css("opacity", "1"); + if (AutoRefresh === true) + { + divTwcBottom.css("opacity", "0"); + divTwcBottom.css("visibility", "hidden"); + } + + IFrameHeight = WindowHeight - TopHeight - BottomHeight; + NewHeight = IFrameHeight + "px"; + iframeTwc.attr("style", "width:100%; height:" + IFrameHeight + "px; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"); + divTwcMiddle.attr("style", "width:100%; height:" + IFrameHeight + "px; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"); + + divTwcBottomLeft.hide(); + divTwcBottomMiddle.hide(); + divTwcBottomRight.hide(); + divTwcLeft.show(); + divTwcRight.show(); + + LeftWidth = (WindowWidth / 13); + if (LeftWidth < 25) + { + LeftWidth = 25; + } + divTwcLeft.find("div>div>a>img").css("width", "100%"); + //divTwcLeft.find(">div").css("padding-right", "0px"); + divTwcLeft.attr("style", "width:" + LeftWidth + "px; height:" + IFrameHeight + "px; border:none; margin:0; padding:0; overflow:hidden; z-index:1000000;"); + divTwcLeft.css("visibility", "visible"); + divTwcLeft.css("opacity", "1"); + if (AutoRefresh === true) + { + divTwcLeft.css("opacity", "0"); + divTwcLeft.css("visibility", "hidden"); + } + divTwcLeft.css("position", "absolute"); + divTwcLeft.css("left", "12px"); + + RightWidth = (WindowWidth / 13); + if (RightWidth < 25) + { + RightWidth = 25; + } + divTwcRight.find("div>div>a>img").css("width", "100%"); + //divTwcRight.find(">div").css("padding-left", "0px"); + divTwcRight.attr("style", "width:" + RightWidth + "px; height:" + IFrameHeight + "px; border:none; margin:0; padding:0; overflow:hidden; z-index:1000000;"); + divTwcRight.css("visibility", "visible"); + divTwcRight.css("opacity", "1"); + if (AutoRefresh === true) + { + divTwcRight.css("opacity", "0"); + divTwcRight.css("visibility", "hidden"); + } + divTwcRight.css("position", "absolute"); + divTwcRight.css("right", "12px"); + } + } + + if (inFullScreen == false) + { + NewHeight = ""; + NewWidth = ""; + divTwcTop.hide(); + divTwcBottom.hide(); + divTwcLeft.hide(); + divTwcRight.hide(); + + divTwc.attr("style", ""); + divTwcMiddle.attr("style", ""); + iframeTwc.attr("style", ""); + + divTwcBottomLeft.show(); + divTwcBottomMiddle.show(); + divTwcBottomRight.show(); + + $(window).off("resize", FullScreenResize); + } + + //iframeDoc.find("#canvasProgress").css("width", NewWidth); + //iframeDoc.find("#canvasProgress").css("height", NewHeight); + $(_canvasIds).each(function () + { + var canvas = iframeDoc.find("#" + this.toString()); + canvas.css("width", NewWidth); + canvas.css("height", NewHeight); + }); + + if (inFullScreen == true) + { + $("body").css("overflow", "hidden"); + $(".ToggleFullScreen").val("Exit Full Screen"); + + if (!GetFullScreenElement()) + { + EnterFullScreen(); + } + } + else + { + $("body").css("overflow", ""); + $(".ToggleFullScreen").val("Full Screen"); + } + + //divTwc.show(); + ////divTwc.css("display", "block"); + //if (divTwc.css("display") != "block") + //{ + // divTwc.css("display", "block"); + //} + + divTwcNavContainer.show(); + + if (inIframe()) + { + if (!inFullScreen) + { + var scaleFactor = 1.0; + var orientation = screen.orientation || window.orientation; + + switch (_OperatingSystem) + { + case OperatingSystems.iOS: + if (orientation == 90 || orientation == -90) + { + scaleFactor = Math.min(document.documentElement.clientWidth, screen.height) / 640; + } + else + { + // 2 = 20 + // 3 = 60 + var buffer = 20 + 40 * (window.devicePixelRatio - 2); + + scaleFactor = Math.min(document.documentElement.clientWidth, screen.width - buffer) / 640; + } + break; + default: + if (orientation == 90 || orientation == -90) + { + scaleFactor = document.documentElement.clientHeight / 640; + } + else + { + scaleFactor = document.documentElement.clientWidth / 640; + } + break; + } + var $body = $(document.body); + $body.css("transform", `scale(${scaleFactor})`); + } + } +}; + +var _lockOrientation = screen.lockOrientation || screen.mozLockOrientation || screen.msLockOrientation; +var _unlockOrientation = screen.unlockOrientation || screen.mozUnlockOrientation || screen.msUnlockOrientation || (screen.orientation && screen.orientation.unlock); + +var OnFullScreen = function () +{ + if (InFullScreen() == true) + { + divTwc.attr("style", "position:fixed; top:0px; left:0px; bottom:0px; right:0px; width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"); + FullScreenResize(); + + $(window).on("resize", FullScreenResize); + //FullScreenResize(); + + if (_lockOrientation) try { _lockOrientation("landscape-primary"); } catch (ex) { console.log("Unable to lock screen orientation."); }; + } + else + { + divTwc.attr("style", ""); + divTwcMiddle.attr("style", ""); + iframeTwc.attr("style", ""); + + $(window).off("resize", FullScreenResize); + FullScreenResize(); + + if (_unlockOrientation) try { _unlockOrientation(); } catch (ex) { console.log("Unable to unlock screen orientation."); }; + } +}; + +var InFullScreen = function () +{ + //return true; + //return (document.fullscreenEnabled || document.mozFullScreenEnabled || document.webkitFullscreenEnabled); + //return (window.innerHeight == screen.height); + //return (((document.fullScreenElement || document.mozFullScreenElement || document.webkitFullscreenElement) != null) || (window.innerHeight >= screen.height)); + //return ((GetFullScreenElement() != null) || (window.innerHeight == screen.height)); + return ((_FullScreenOverride == true) || (GetFullScreenElement() != null) || (window.innerHeight == screen.height) || (window.innerHeight == (screen.height - 1))); +}; + +var GetFullScreenElement = function () +{ + if (_FullScreenOverride == true) + { + return document.body; + } + + return (document.fullScreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement); +} + +var btnFullScreen_click = function () +{ + //_InFullScreen = !(_InFullScreen); + + if (InFullScreen() == false) + { + EnterFullScreen(); + + ////position:fixed; top:0px; left:0px; bottom:0px; right:0px; width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999; + //divTwc.attr("style", "position:fixed; top:0px; left:0px; bottom:0px; right:0px; width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"); + ////iframeTwc.attr("style", "width:100%; height:90%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"); + + ////divTwcMiddle.attr("style", "width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"); + ////divTwcLeft.attr("style", "width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"); + ////iframeTwc.attr("style", "width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"); + + //FullScreenResize(); + + //$(window).on("resize", FullScreenResize); + //FullScreenResize(); + } + else + { + ExitFullscreen(); + + //divTwc.attr("style", ""); + //divTwcMiddle.attr("style", ""); + //iframeTwc.attr("style", ""); + + //$(window).off("resize", FullScreenResize); + //FullScreenResize(); + } + + if (_IsPlaying == true) + { + _NoSleep.enable(); + } + else + { + _NoSleep.disable(); + } + + UpdateFullScreenNavigate(); + + return false; +}; + +var EnterFullScreen = function () +{ + var element = document.body; + + // Supports most browsers and their versions. + var requestMethod; + requestMethod = element.requestFullScreen || element.webkitRequestFullScreen || element.mozRequestFullScreen || element.msRequestFullscreen; + + if (requestMethod) + { + // Native full screen. + //requestMethod.call(element); + requestMethod.call(element, { navigationUI: "hide" }); // https://bugs.chromium.org/p/chromium/issues/detail?id=933436#c7 + } + else if (typeof window.ActiveXObject !== "undefined") + { + // Older IE. + var wscript = new ActiveXObject("WScript.Shell"); + if (wscript !== null) + { + wscript.SendKeys("{F11}"); + } + } + else + { + // iOS doesn't support FullScreen API. + window.scrollTo(0, 0); + _FullScreenOverride = true; + $(window).resize(); + } + + UpdateFullScreenNavigate(); +}; + +var ExitFullscreen = function () +{ + // exit full-screen + + if (_FullScreenOverride == true) + { + _FullScreenOverride = false; + $(window).resize(); + } + + if (document.exitFullscreen) + { + // Chrome 71 broke this if the user pressed F11 to enter full screen mode. + document.exitFullscreen(); + } + else if (document.webkitExitFullscreen) + { + document.webkitExitFullscreen(); + } + else if (document.mozCancelFullScreen) + { + document.mozCancelFullScreen(); + } + else if (document.msExitFullscreen) + { + document.msExitFullscreen(); + } +}; + +var btnNavigateMenu_click = function () +{ + //var iFrameLocation = iframeTwc[0].contentWindow.location; + //iFrameLocation.hash = ""; + //iFrameLocation.hash = "aProgress"; + iframeTwc[0].contentWindow.NavigateMenu(); + UpdateFullScreenNavigate(); + + return false; +}; + +var LoadTwcData = function (Url, AutoRefresh) +{ + txtAddress.blur(); + StopAutoRefreshTimer(); + _LastUpdate = null; + AssignLastUpdate(); + + console.log("Url: " + Url); + _TwcDataUrl = Url; + + iframeTwc.off("load"); + + iframeTwc.on("load", function (e) + { + switch (iframeTwc.attr("src")) + { + case "about:blank": + if (Url == "") + { + iframeTwc.off("load"); + return; + } + + iframeTwc.attr("src", "twc3.html?_=" + (new Date).getTime().toString()); + break; + + default: + iframeTwc.off("load"); + FullScreenResize(AutoRefresh); + + if (radScrollText.is(":checked") == true) + { + AssignScrollText({ ScrollText: txtScrollText.val() }); + } + else if (radScrollRss.is(":checked") == true) + { + AssignScrollText({ ScrollRss: txtScrollRss.val() }); + } + + if (chkScrollHazardText.is(":checked") == true) + { + ScrollHazardText(true); + } + + AssignThemes({ Themes: $("input[type='radio'][name='radThemes']:checked").val() }); + iframeTwc[0].contentWindow.AssignThemes({ Themes: $("input[type='radio'][name='radThemes']:checked").val() }); + + iframeTwc[0].contentWindow.AssignUnits({ Units: $("input[type='radio'][name='radUnits']:checked").val() }); + + iframeTwc[0].contentWindow.SetCallBack({ CallBack: TwcCallBack }); + + iframeTwc[0].contentWindow.GetLatLng(Url); + + if (_IsPlaying == true) + { + iframeTwc[0].contentWindow.NavigatePlayToggle(); + } + + if (_IsAudioPlaying == true) + { + iframeTwc[0].contentWindow.AudioPlayToggle(); + } + + if (_IsNarrationPlaying == true) + { + iframeTwc[0].contentWindow.NarrationPlayToggle(); + } + + $(iframeTwc[0].contentWindow.document).on("mousemove", document_mousemove); + $(iframeTwc[0].contentWindow.document).on("mousedown", document_mousemove); + $(iframeTwc[0].contentWindow.document).on("keydown", document_keydown); + + var SwipeCallBack = function (event, direction, distance, duration, fingerCount, fingerData) + { + console.log("You swiped " + direction); + + switch (direction) + { + case "left": + btnNavigateNext_click(); + break; + + case "right": + btnNavigatePrevious_click(); + break; + } + }; + + $(iframeTwc[0].contentWindow.document).swipe({ + //Generic swipe handler for all directions + swipeRight: SwipeCallBack, + swipeLeft: SwipeCallBack, + + ////Default is 75px, set to 0 for demo so any distance triggers swipe + //threshold: 0 + }); + + + break; + } + }); + iframeTwc.attr("src", "about:blank"); +}; + +var Themes = { + ThemeA: 1, // Classic + ThemeB: 2, // Sea Foam + ThemeC: 3, // Comsic + ThemeD: 4, // Dark +}; +var _Themes = Themes.ThemeA; + +var AssignThemes = function (e) +{ + var forecolor; + var backcolor; + var butncolor; + var brdrcolor; + var invert; + var themecolor; + + switch (e.Themes) + { + case "THEMEA": + _Themes = Themes.ThemeA; + break; + case "THEMEB": + _Themes = Themes.ThemeB; + break; + case "THEMEC": + _Themes = Themes.ThemeC; + break; + case "THEMED": + _Themes = Themes.ThemeD; + break; + } + + switch (_Themes) + { + case Themes.ThemeD: + forecolor = "rgb(255, 255, 255)"; + backcolor = "rgb(0, 0, 0)"; + butncolor = "rgb(96, 96, 96)"; + brdrcolor = "rgb(255, 255, 255)"; + invert = "100"; + themecolor = "#000000"; + break; + default: + forecolor = "rgb(0, 0, 0)"; + backcolor = "rgb(255, 255, 255)"; + butncolor = "rgb(224, 224, 224)"; + brdrcolor = "rgb(0, 0, 0)"; + invert = "0"; + themecolor = "#ffffff"; + break; + } + + $("button, input").css("background-color", butncolor); + $("input, button, .autocomplete-suggestions").css("border", "solid 1px " + brdrcolor); + $("body, input, button, .autocomplete-suggestion").css("color", forecolor); + $("body, input[type=text], .autocomplete-suggestions").css("background-color", backcolor); + $("#imgGetGps").css("filter", "invert(" + invert + "%)"); + $("meta[name=theme-color]").attr("content", themecolor); +}; + +var AssignLastUpdate = function () +{ + var LastUpdate = "(None)"; + + if (_LastUpdate) + { + switch ($("input[type='radio'][name='radUnits']:checked").val()) + { + case "ENGLISH": + LastUpdate = _LastUpdate.toLocaleString('en-US', { weekday: 'short', month: 'short', day: 'numeric', year: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric', timeZoneName: 'short' }); + break; + case "METRIC": + LastUpdate = _LastUpdate.toLocaleString('en-GB', { weekday: 'short', month: 'short', day: 'numeric', year: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric', timeZoneName: 'short' }); + break; + } + } + + spanLastRefresh.html(LastUpdate); + + if (_LastUpdate) + { + if (chkAutoRefresh.is(":checked") == true) + { + StartAutoRefreshTimer(); + } + } +}; + +var TwcCallBack = function (e) +{ + switch (e.Status) + { + case "LOADED": + console.log("Twc Loaded"); + + _LastUpdate = e.LastUpdate; + AssignLastUpdate(); + break; + + case "WEATHERPARAMETERS": + console.log("Weather Parameters"); + + _WeatherParameters = e.WeatherParameters; + PopulateWeatherParameters(); + break; + + case "ISPLAYING": + console.log("Play Toggled"); + _IsPlaying = e.Value; + localStorage.setItem("TwcPlay", _IsPlaying); + + if (_IsPlaying == true) + { + _NoSleep.enable(); + + $("img[src='images/nav/ic_play_arrow_white_24dp_1x.png']").attr("title", "Pause"); + $("img[src='images/nav/ic_play_arrow_white_24dp_1x.png']").attr("src", "images/nav/ic_pause_white_24dp_1x.png"); + $("img[src='images/nav/ic_play_arrow_white_24dp_2x.png']").attr("title", "Pause"); + $("img[src='images/nav/ic_play_arrow_white_24dp_2x.png']").attr("src", "images/nav/ic_pause_white_24dp_2x.png"); + } + else + { + _NoSleep.disable(); + + $("img[src='images/nav/ic_pause_white_24dp_1x.png']").attr("title", "Play"); + $("img[src='images/nav/ic_pause_white_24dp_1x.png']").attr("src", "images/nav/ic_play_arrow_white_24dp_1x.png"); + $("img[src='images/nav/ic_pause_white_24dp_2x.png']").attr("title", "Play"); + $("img[src='images/nav/ic_pause_white_24dp_2x.png']").attr("src", "images/nav/ic_play_arrow_white_24dp_2x.png"); + } + break; + + case "ISAUDIOPLAYING": + console.log("Audio Play Toggled"); + _IsAudioPlaying = e.Value; + localStorage.setItem("TwcAudioPlay", _IsAudioPlaying); + + if (_IsAudioPlaying == true) + { + $("img[src='images/nav/ic_volume_off_white_24dp_1x.png']").attr("title", "Mute"); + $("img[src='images/nav/ic_volume_off_white_24dp_1x.png']").attr("src", "images/nav/ic_volume_up_white_24dp_1x.png"); + $("img[src='images/nav/ic_volume_off_white_24dp_2x.png']").attr("title", "Mute"); + $("img[src='images/nav/ic_volume_off_white_24dp_2x.png']").attr("src", "images/nav/ic_volume_up_white_24dp_2x.png"); + } + else + { + $("img[src='images/nav/ic_volume_up_white_24dp_1x.png']").attr("title", "Unmute"); + $("img[src='images/nav/ic_volume_up_white_24dp_1x.png']").attr("src", "images/nav/ic_volume_off_white_24dp_1x.png"); + $("img[src='images/nav/ic_volume_up_white_24dp_2x.png']").attr("title", "Unmute"); + $("img[src='images/nav/ic_volume_up_white_24dp_2x.png']").attr("src", "images/nav/ic_volume_off_white_24dp_2x.png"); + } + break; + + case "ISNARRATIONPLAYING": + console.log("Narration Play Toggled"); + _IsNarrationPlaying = e.Value; + localStorage.setItem("TwcNarrationPlay", _IsNarrationPlaying); + + if (_IsNarrationPlaying == true) + { + $("img[src='images/nav/ic_no_hearing_white_24dp_1x.png']").attr("title", "Turn off Narration"); + $("img[src='images/nav/ic_no_hearing_white_24dp_1x.png']").attr("src", "images/nav/ic_hearing_white_24dp_1x.png"); + $("img[src='images/nav/ic_no_hearing_white_24dp_2x.png']").attr("title", "Turn off Narration"); + $("img[src='images/nav/ic_no_hearing_white_24dp_2x.png']").attr("src", "images/nav/ic_hearing_white_24dp_2x.png"); + } + else + { + $("img[src='images/nav/ic_hearing_white_24dp_1x.png']").attr("title", "Turn on Narration"); + $("img[src='images/nav/ic_hearing_white_24dp_1x.png']").attr("src", "images/nav/ic_no_hearing_white_24dp_1x.png"); + $("img[src='images/nav/ic_hearing_white_24dp_2x.png']").attr("title", "Turn on Narration"); + $("img[src='images/nav/ic_hearing_white_24dp_2x.png']").attr("src", "images/nav/ic_no_hearing_white_24dp_2x.png"); + } + break; + } +}; + +var btnNavigateRefresh_click = function () +{ + LoadTwcData(_TwcDataUrl); + UpdateFullScreenNavigate(); + + return false; +}; + +var btnNavigateNext_click = function () +{ + iframeTwc[0].contentWindow.NavigateNext(); + UpdateFullScreenNavigate(); + + return false; +}; + +var btnNavigatePrevious_click = function () +{ + iframeTwc[0].contentWindow.NavigatePrevious(); + UpdateFullScreenNavigate(); + + return false; +}; + +var window_resize = function () +{ + //var iFrameLocation = iframeTwc[0].contentWindow.location; + //var Hash = iFrameLocation.hash; + + var $window = $(window); + + if ($window.height() == _WindowHeight || $window.width() == _WindowWidth) + { + return; + } + + _WindowHeight = $window.height(); + _WindowWidth = $window.width(); + + try + { + ////iFrameLocation.hash = ""; + ////iFrameLocation.hash = Hash; + //iframeTwc[0].contentWindow.history.replaceState("", document.title, iFrameLocation.pathname); + //iframeTwc[0].contentWindow.history.replaceState("", document.title, iFrameLocation.pathname + Hash); + iframeTwc[0].contentWindow.NavigateReset(); + } catch (ex) { } + + UpdateFullScreenNavigate(); +}; + +var _NavigateFadeIntervalId = null; + +var UpdateFullScreenNavigate = function () +{ + $(document.activeElement).blur(); + + //console.log("window_mousemove: inFullScreen = True"); + //console.log(e); + + //if (divTwcLeft.css("visibility") != "") + //{ + // divTwcLeft.css("visibility", ""); + // divTwcLeft.css("opacity", "0.0"); + // divTwcLeft.animate({ opacity: 1.0 }, 1000); + // //divTwcLeft.fadeIn(); + //} + //$("body").css("cursor", ""); + $("body").removeClass("HideCursor"); + $(iframeTwc[0].contentWindow.document).find("body").removeClass("HideCursor"); + divTwcLeft.fadeIn2(); + divTwcRight.fadeIn2(); + divTwcBottom.fadeIn2(); + + //divTwcRight.fadeIn(); + + if (_NavigateFadeIntervalId) + { + window.clearTimeout(_NavigateFadeIntervalId); + _NavigateFadeIntervalId = null; + } + + _NavigateFadeIntervalId = window.setTimeout(function () + { + //console.log("window_mousemove: TimeOut"); + var inFullScreen = InFullScreen(); + //alert(inFullScreen) + + if (inFullScreen == true) + { + //$("body").css("cursor", "none !important"); + $("body").addClass("HideCursor"); + //$(iframeTwc[0].contentWindow).css("cursor", "none !important"); + $(iframeTwc[0].contentWindow.document).find("body").addClass("HideCursor"); + + //divTwcLeft.css("visibility", ""); + //divTwcLeft.animate({ opacity: 0.0 }, 1000, function () + //{ + // divTwcLeft.css("visibility", "hidden"); + //}); + divTwcLeft.fadeOut2(); + divTwcRight.fadeOut2(); + divTwcBottom.fadeOut2(); + } + + //divTwcRight.fadeOut(); + }, 2000); +}; + +var document_mousemove = function (e) +{ + var inFullScreen = InFullScreen(); + //alert("document_mousemove") + + //console.log(e.originalEvent.buttons); + if (inFullScreen == true) + { + if ((e.originalEvent.movementX == 0 && e.originalEvent.movementY == 0 && e.originalEvent.buttons == 0)) + { + return; + } + + UpdateFullScreenNavigate(); + } +}; + +var document_keydown = function (e) +{ + //if (_AllowKeyDown == false) + //{ + // return; + //} + //_AllowKeyDown = false; + + //window.setTimeout(function () + //{ + // _AllowKeyDown = true; + //}, 500); + + var inFullScreen = InFullScreen(); + var code = (e.keyCode || e.which); + + if (inFullScreen == true || document.activeElement == document.body) + { + switch (code) + { + case 32: // Space + btnNavigatePlay_click(); + return false; + break; + + case 39: // Right Arrow + case 34: // Page Down + btnNavigateNext_click(); + return false; + break; + + case 37: // Left Arrow + case 33: // Page Up + btnNavigatePrevious_click(); + return false; + break; + + case 36: // Home + btnNavigateMenu_click(); + return false; + break; + + case 48: // Restart + btnNavigateRefresh_click(); + return false; + break; + + case 77: // M + btnAudioPlay_click(); + return false; + break; + + case 78: // N + btnNarrationPlay_click(); + return false; + break; + + case 70: // F + btnFullScreen_click(); + return false; + break; + + } + } +}; + +$.fn.fadeIn2 = function () +{ + var _self = this; + var opacity = 0.0; + var IntervalId = null; + + if (_self.css("opacity") != "0") + { + return; + } + + //_self.css("visibility", ""); + _self.css("visibility", "visible"); + _self.css("opacity", "0.0"); + + IntervalId = window.setInterval(function () + { + opacity += 0.1; + opacity = Math.round2(opacity, 1); + _self.css("opacity", opacity.toString()); + + if (opacity == 1.0) + { + //_self.css("visibility", ""); + _self.css("visibility", "visible"); + window.clearInterval(IntervalId); + } + }, 50); + + return _self; +}; + +$.fn.fadeOut2 = function () +{ + var _self = this; + var opacity = 1.0; + var IntervalId = null; + + if (_self.css("opacity") != "1") + { + return; + } + + //_self.css("visibility", ""); + _self.css("visibility", "visible"); + _self.css("opacity", "1.0"); + + IntervalId = window.setInterval(function () + { + opacity -= 0.2; + opacity = Math.round2(opacity, 1); + _self.css("opacity", opacity.toString()); + + if (opacity == 0) + { + _self.css("visibility", "hidden"); + window.clearInterval(IntervalId); + } + }, 50); + + return _self; +}; + +Math.round2 = function (value, decimals) +{ + return Number(Math.round(value + 'e' + decimals) + 'e-' + decimals); +} + +var btnNavigatePlay_click = function () +{ + iframeTwc[0].contentWindow.NavigatePlayToggle(); + UpdateFullScreenNavigate(); + + //if (iframeTwc[0].contentWindow.IsPlaying() == true) + //{ + // _NoSleep.enable(); + + // $("img[src='images/nav/ic_play_arrow_white_24dp_1x.png']").attr("title", "Pause"); + // $("img[src='images/nav/ic_play_arrow_white_24dp_1x.png']").attr("src", "images/nav/ic_pause_white_24dp_1x.png"); + // $("img[src='images/nav/ic_play_arrow_white_24dp_2x.png']").attr("title", "Pause"); + // $("img[src='images/nav/ic_play_arrow_white_24dp_2x.png']").attr("src", "images/nav/ic_pause_white_24dp_2x.png"); + //} + //else + //{ + // _NoSleep.disable(); + + // $("img[src='images/nav/ic_pause_white_24dp_1x.png']").attr("title", "Play"); + // $("img[src='images/nav/ic_pause_white_24dp_1x.png']").attr("src", "images/nav/ic_play_arrow_white_24dp_1x.png"); + // $("img[src='images/nav/ic_pause_white_24dp_2x.png']").attr("title", "Play"); + // $("img[src='images/nav/ic_pause_white_24dp_2x.png']").attr("src", "images/nav/ic_play_arrow_white_24dp_2x.png"); + //} + + return false; +}; + +var btnAudioPlay_click = function () +{ + iframeTwc[0].contentWindow.AudioPlayToggle(); + UpdateFullScreenNavigate(); + + return false; +}; + +var btnNarrationPlay_click = function () +{ + iframeTwc[0].contentWindow.NarrationPlayToggle(); + UpdateFullScreenNavigate(); + + return false; +}; + +$(function () +{ + _WindowHeight = $(window).height(); + _WindowWidth = $(window).width(); + + frmGetLatLng = $("#frmGetLatLng"); + txtAddress = $("#txtAddress"); + btnGetLatLng = $("#btnGetLatLng"); + btnClearQuery = $("#btnClearQuery"); + btnGetGps = $("#btnGetGps"); + + divLat = $("#divLat"); + spanLat = $("#spanLat"); + divLng = $("#divLng"); + spanLng = $("#spanLng"); + + iframeTwc = $("#iframeTwc"); + btnFullScreen = $("#btnFullScreen"); + divTwc = $("#divTwc"); + divTwcTop = $("#divTwcTop"); + divTwcMiddle = $("#divTwcMiddle"); + divTwcBottom = $("#divTwcBottom"); + divTwcLeft = $("#divTwcLeft"); + divTwcRight = $("#divTwcRight"); + divTwcNav = $("#divTwcNav"); + divTwcNavContainer = $("#divTwcNavContainer"); + divTwcBottomLeft = $("#divTwcBottomLeft"); + divTwcBottomMiddle = $("#divTwcBottomMiddle"); + divTwcBottomRight = $("#divTwcBottomRight"); + + radScrollDefault = $("#radScrollDefault"); + radScrollDefault.on("change", radScroll_change); + + frmScrollText = $("#frmScrollText"); + radScrollText = $("#radScrollText"); + txtScrollText = $("#txtScrollText"); + btnScrollText = $("#btnScrollText"); + + frmScrollText.on("submit", frmScrollText_submit); + txtScrollText.on("focus", function () + { + txtScrollText.select(); + }); + radScrollText.on("change", radScroll_change); + + frmScrollRss = $("#frmScrollRss"); + radScrollRss = $("#radScrollRss"); + txtScrollRss = $("#txtScrollRss"); + btnScrollRss = $("#btnScrollRss"); + + frmScrollRss.on("submit", frmScrollRss_submit); + txtScrollRss.on("focus", function () + { + txtScrollRss.select(); + }); + radScrollRss.on("change", radScroll_change); + + txtAddress.on("focus", function () + { + txtAddress.select(); + }); + + txtAddress.focus(); + + $(".NavigateMenu").on("click", btnNavigateMenu_click); + $(".NavigateRefresh").on("click", btnNavigateRefresh_click); + $(".NavigateNext").on("click", btnNavigateNext_click); + $(".NavigatePrevious").on("click", btnNavigatePrevious_click); + $(".NavigatePlay").on("click", btnNavigatePlay_click); + + $(".ToggleVolume").on("click", btnAudioPlay_click); + + $(".ToggleNarration").on("click", btnNarrationPlay_click); + + $(btnGetGps).on("click", btnGetGps_click); + + if (inIframe()) + { + $(document.body).css("margin", "0 0 0 0") + .css("transform-origin", "top left") + .css("width", "640px"); + + $("#divGitHub").hide(); + $("#divInfo").hide(); + $("#divRefresh").hide(); + $("#divUnits").hide(); + $("#divThemes").hide(); + $("#divScrollText").hide(); + } + + //$(document).on('webkitfullscreenchange mozfullscreenchange fullscreenchange', OnFullScreen); + $(window).on("resize", OnFullScreen); + $(window).on("resize", window_resize); + $(window).on("orientationchange", FullScreenResize); + $(document).on("mousemove", document_mousemove); + $(document).on("mousedown", document_mousemove); + divTwc.on("mousedown", document_mousemove); + $(document).on("keydown", document_keydown); + document.addEventListener("touchmove", function (e) { if (_FullScreenOverride == true) e.preventDefault() }); + //$(document).on("keypress", document_keydown); + $(".ToggleFullScreen").on("click", btnFullScreen_click); + FullScreenResize(); + + //var AutoSelectQuery = false; + + var categories = [ + 'Land Features', + 'Bay', 'Channel', 'Cove', 'Dam', 'Delta', 'Gulf', 'Lagoon', 'Lake', 'Ocean', 'Reef', 'Reservoir', 'Sea', 'Sound', 'Strait', 'Waterfall', 'Wharf', // Water Features + 'Amusement Park', 'Historical Monument', 'Landmark', 'Tourist Attraction', 'Zoo', // POI/Arts and Entertainment + 'College', // POI/Education + 'Beach', 'Campground', 'Golf Course', 'Harbor', 'Nature Reserve', 'Other Parks and Outdoors', 'Park', 'Racetrack', + 'Scenic Overlook', 'Ski Resort', 'Sports Center', 'Sports Field', 'Wildlife Reserve', // POI/Parks and Outdoors + 'Airport', 'Ferry', 'Marina', 'Pier', 'Port', 'Resort', // POI/Travel + 'Postal', 'Populated Place' + ], + cats = categories.join(','), + overrides = { + '08736, Manasquan, New Jersey, USA': { x: -74.037, y: 40.1128 }, + '32899, Orlando, Florida, USA': { x: -80.6774, y: 28.6143 }, + '97003, Beaverton, Oregon, USA': { x: -122.8752489, y: 45.5050916 }, + '99734, Prudhoe Bay, Alaska, USA': { x: -148.3372, y: 70.2552 }, + + 'Guam, Oceania': { x: 144.74, y: 13.46 }, + 'Andover, Maine, United States': { x: -70.7525, y: 44.634167 }, + 'Bear Creek, Pennsylvania, United States': { x: -75.772809, y: 41.204074 }, + 'Bear Creek Village, Pennsylvania, United States': { x: -75.772809, y: 41.204074 }, + 'New York City, New York, United States': { x: -74.0059, y: 40.7142 }, + 'Pinnacles National Monument, San Benito County,California, United States': { x: -121.147278, y: 36.47075 }, + 'Pinnacles National Park, CA-146, Paicines, California': { x: -121.147278, y: 36.47075 }, + 'Welcome, Maryland, United States': { x: -77.081212, y: 38.4692469 }, + 'Tampa, Florida, United States (City)': { x: -82.5329, y: 27.9756 }, + 'San Francisco, California, United States': { x: -122.3758, y: 37.6188 }, + //'Dayton, Ohio, United States (City)': { x: -84.05, y: 39.85 }, + }, + roundToPlaces = function (num, decimals) + { + var n = Math.pow(10, decimals); + return Math.round((n * num).toFixed(decimals)) / n; + }, + doRedirectToGeometry = function (geom) + { + var location = window.location, + query = '?lat=' + roundToPlaces(geom.y, 4) + '&lon=' + roundToPlaces(geom.x, 4), + origin, domain; + var Url = ""; + + if (location.pathname.match(/MapClick.php$/)) + { + if (location.origin) + { + origin = location.origin; + } else + { + origin = location.protocol + "//" + location.hostname + (location.port ? ':' + location.port : ''); + } + //window.location = origin + location.pathname + query; + Url = origin + location.pathname + query; + } + else + { + if (location.hostname.match(/dev\.nids\.noaa\.gov$/)) + { + domain = 'forecast.dev.nids.noaa.gov'; + } else if (location.hostname.match(/preview.*\.weather\.gov$/)) + { + domain = 'preview-forecast.weather.gov'; + } else + { + domain = 'forecast.weather.gov'; + } + //window.location = location.protocol + '//' + domain + '/MapClick.php' + query; + //Url = location.protocol + '//' + domain + '/MapClick.php' + query; + Url = 'https://' + domain + '/MapClick.php' + query; + } + Url = "cors/?u=" + encodeURIComponent(Url); + + //GetLatLng(Url); + + //// First clear the iframe + //iframeTwc.on("load", function (e) + //{ + // //console.log("loaded..."); + + // switch (iframeTwc.attr("src")) + // { + // case "about:blank": + // iframeTwc.attr("src", "twc3.html?_=" + (new Date).getTime().toString()); + // //iframeTwc.attr("src", "twc3.html?a"); + // break; + + // //case "twc3.html": + // default: + // iframeTwc.off("load"); + // iframeTwc[0].contentWindow.GetLatLng(Url); + // break; + // } + //}); + //iframeTwc.attr("src", "about:blank"); + LoadTwcData(Url); + + // Save the query + localStorage.setItem("TwcQuery", txtAddress.val()); + localStorage.setItem("TwcLatLon", JSON.stringify(geom)) + }; + + var PreviousSeggestionValue = null; + var PreviousSeggestion = null; + var OnSelect = function (suggestion) + { + var request; + + // Do not auto get the same city twice. + if (PreviousSeggestionValue == suggestion.value) + { + return; + } + PreviousSeggestionValue = suggestion.value; + PreviousSeggestion = suggestion; + + if (overrides[suggestion.value]) + { + doRedirectToGeometry(overrides[suggestion.value]); + } + else + { + request = $.ajax({ + url: location.protocol + '//geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/find', + data: { + text: suggestion.value, + magicKey: suggestion.data, + f: 'json' + }, + jsonp: 'callback', + dataType: 'jsonp' + }); + request.done(function (data) + { + var loc = data.locations[0]; + if (loc) + { + doRedirectToGeometry(loc.feature.geometry); + } + else + { + alert('An unexpected error occurred. Please try a different search string.'); + } + }); + } + }; + + $("#frmGetLatLng #txtAddress").devbridgeAutocomplete({ + serviceUrl: location.protocol + '//geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/suggest', + deferRequestBy: 300, + paramName: 'text', + params: { + f: 'json', + countryCode: 'USA', //'USA,PRI,VIR,GUM,ASM', + category: cats, + maxSuggestions: 10 + }, + dataType: 'jsonp', + transformResult: function (response) + { + if (_AutoSelectQuery == true) + { + _AutoSelectQuery = false; + window.setTimeout(function () + { + $(ac.suggestionsContainer.children[0]).click(); + }, 1); + } + return { + suggestions: $.map(response.suggestions, function (i) + { + return { + value: i.text, + data: i.magicKey + }; + }) + }; + }, + minChars: 3, + showNoSuggestionNotice: true, + noSuggestionNotice: 'No results found. Please try a different search string.', + onSelect: OnSelect, + //width: 400 + width: 492, + onSearchComplete: function (query, suggestions) + { + var $input = $(this); + var scaleFactor = getBodyScaleValue(); // Scale factor + var inputOffset = $input.offset(); + var newTop = (inputOffset.top + $input.outerHeight()) / scaleFactor; + var newLeft = inputOffset.left / scaleFactor; + + // Apply the new position + $('.autocomplete-suggestions').css({ top: newTop + 'px', left: newLeft + 'px' }); + } + }); + + var ac = $("#frmGetLatLng #txtAddress").devbridgeAutocomplete(); + frmGetLatLng.submit(function () + { + if (ac.suggestions[0]) + { + $(ac.suggestionsContainer.children[0]).click(); + return false; + //PreviousSeggestion = ac.suggestions[0]; + } + if (PreviousSeggestion) + { + PreviousSeggestionValue = null; + OnSelect(PreviousSeggestion); + } + + return false; + }); + + // Auto load the previous query + var TwcQuery = localStorage.getItem("TwcQuery"); + var TwcLatLon = localStorage.getItem("TwcLatLon"); + + var TwcQueryStr = getParameterByName("location"); + if (TwcQueryStr) + { + console.log(TwcQueryStr); + TwcQuery = TwcQueryStr; + TwcLatLon = undefined; + } + + if (TwcQuery) + { + // Remove "(...)" + TwcQuery = TwcQuery.replace(/ *\([^)]*\) */g, ""); + } + spanLastRefresh = $("#spanLastRefresh"); + if (TwcQuery) + { + txtAddress.val(TwcQuery); + if (TwcLatLon) + { + doRedirectToGeometry(JSON.parse(TwcLatLon)); + + } else + { + _AutoSelectQuery = true; + txtAddress.blur(); + txtAddress.focus(); + } + } + + var TwcPlay = localStorage.getItem("TwcPlay"); + if (!TwcPlay || TwcPlay == "true") + { + _IsPlaying = true; + } + + var TwcAudioPlay = localStorage.getItem("TwcAudioPlay"); + if (!TwcAudioPlay || TwcAudioPlay == "true") + { + _IsAudioPlaying = true; + } + + var TwcNarrationPlay = localStorage.getItem("TwcNarrationPlay"); + if (TwcNarrationPlay == "true") + { + _IsNarrationPlaying = true; + } + + radScrollDefault.prop("checked", ""); + radScrollText.prop("checked", ""); + radScrollRss.prop("checked", ""); + + var TwcScrollText = localStorage.getItem("TwcScrollText"); + if (TwcScrollText) + { + txtScrollText.val(TwcScrollText); + } + + var TwcScrollRss = localStorage.getItem("TwcScrollRss"); + if (TwcScrollRss) + { + txtScrollRss.val(TwcScrollRss); + } + + var TwcScrollChecked = localStorage.getItem("TwcScrollChecked"); + if (TwcScrollChecked) + { + $("#" + TwcScrollChecked).prop("checked", "checked"); + } + else + { + radScrollDefault.prop("checked", "checked"); + } + + radScroll_change(); + + btnClearQuery.on("click", function () + { + spanCity.text(""); + spanState.text(""); + spanStationId.text(""); + spanRadarId.text(""); + spanZoneId.text(""); + + radScrollDefault.prop("checked", "checked"); + + radScrollText.prop("checked", ""); + txtScrollText.val(""); + + radScrollRss.prop("checked", ""); + txtScrollRss.val(""); + + radScroll_change(); + + localStorage.removeItem("TwcScrollText"); + localStorage.removeItem("TwcScrollTextChecked"); + + chkScrollHazardText.prop("checked", ""); + localStorage.removeItem("TwcScrollHazardText"); + + chkAutoRefresh.prop("checked", "checked"); + localStorage.removeItem("TwcAutoRefresh"); + + $("#radEnglish").prop("checked", "checked"); + localStorage.removeItem("TwcUnits"); + + $("#radThemeA").prop("checked", "checked"); + AssignThemes({ Themes: "THEMEA" }); + localStorage.removeItem("TwcThemes"); + + TwcCallBack({ Status: "ISNARRATIONPLAYING", Value: false }); + localStorage.removeItem("TwcNarrationPlay"); + _IsNarrationPlaying = false; + + TwcCallBack({ Status: "ISAUDIOPLAYING", Value: false }); + localStorage.removeItem("TwcAudioPlay"); + _IsAudioPlaying = true; + + TwcCallBack({ Status: "ISPLAYING", Value: false }); + localStorage.removeItem("TwcPlay"); + _IsPlaying = true; + + localStorage.removeItem("TwcQuery"); + localStorage.removeItem("TwcLatLon"); + PreviousSeggestionValue = null; + PreviousSeggestion = null; + + LoadTwcData(""); + }); + + var TwcUnits = localStorage.getItem("TwcUnits"); + if (!TwcUnits || TwcUnits == "ENGLISH") + { + $("#radEnglish").prop("checked", "checked"); + } + else if (TwcUnits == "METRIC") + { + $("#radMetric").prop("checked", "checked"); + } + + var TwcThemes = localStorage.getItem("TwcThemes"); + if (!TwcThemes || TwcThemes == "THEMEA") + { + $("#radThemeA").prop("checked", "checked"); + } + else if (TwcThemes == "THEMEB") + { + $("#radThemeB").prop("checked", "checked"); + } + else if (TwcThemes == "THEMEC") + { + $("#radThemeC").prop("checked", "checked"); + } + else if (TwcThemes == "THEMED") + { + $("#radThemeD").prop("checked", "checked"); + } + AssignThemes({ Themes: TwcThemes }); + + $("input[type='radio'][name='radUnits']").on("change", function () + { + var Units = $(this).val(); + localStorage.setItem("TwcUnits", Units); + AssignLastUpdate(); + iframeTwc[0].contentWindow.AssignUnits({ Units: Units }); + }); + + $("input[type='radio'][name='radThemes']").on("change", function () + { + var Themes = $(this).val(); + localStorage.setItem("TwcThemes", Themes); + AssignThemes({ Themes: Themes }); + iframeTwc[0].contentWindow.AssignThemes({ Themes: Themes }); + }); + + divRefresh = $("#divRefresh"); + chkAutoRefresh = $("#chkAutoRefresh"); + lblRefreshCountDown = $("#lblRefreshCountDown"); + spanRefreshCountDown = $("#spanRefreshCountDown"); + + chkAutoRefresh.on("change", function () + { + var Checked = $(this).is(":checked"); + + if (_LastUpdate) + { + if (Checked == true) + { + StartAutoRefreshTimer(); + } + else + { + StopAutoRefreshTimer(); + } + } + + localStorage.setItem("TwcAutoRefresh", Checked); + }); + + var TwcAutoRefresh = localStorage.getItem("TwcAutoRefresh"); + if (!TwcAutoRefresh || TwcAutoRefresh == "true") + { + chkAutoRefresh.prop("checked", "checked"); + } + else + { + chkAutoRefresh.prop("checked", ""); + } + + spanCity = $("#spanCity"); + spanState = $("#spanState"); + spanStationId = $("#spanStationId"); + spanRadarId = $("#spanRadarId"); + spanZoneId = $("#spanZoneId"); + + chkScrollHazardText = $("#chkScrollHazardText"); + chkScrollHazardText.on("change", function () + { + var Checked = $(this).is(":checked"); + + ScrollHazardText(Checked); + + localStorage.setItem("TwcScrollHazardText", Checked); + }); + + var TwcScrollHazardText = localStorage.getItem("TwcScrollHazardText"); + if (TwcScrollHazardText && TwcScrollHazardText == "true") + { + chkScrollHazardText.prop("checked", "checked"); + } + else + { + chkScrollHazardText.prop("checked", ""); + } + +}); + +var ScrollHazardText = function (enable) +{ + if (iframeTwc[0].contentWindow.ScrollHazardText) + { + iframeTwc[0].contentWindow.ScrollHazardText(enable); + } +}; + +var StartAutoRefreshTimer = function () +{ + //// Esnure that any previous timer has already stopped. + //StopAutoRefreshTimer(); + if (_AutoRefreshIntervalId) + { + // Timer is already running. + return; + } + + // Reset the time elapsed. + _AutoRefreshCountMs = 0; + + var AutoRefreshTimer = function () + { + // Increment the total time elapsed. + _AutoRefreshCountMs += _AutoRefreshIntervalMs; + + // Display the count down. + var RemainingMs = (_AutoRefreshTotalIntervalMs - _AutoRefreshCountMs); + if (RemainingMs < 0) + { + RemainingMs = 0; + } + var dt = new Date(RemainingMs); + spanRefreshCountDown.html((dt.getMinutes() < 10 ? "0" + dt.getMinutes() : dt.getMinutes()) + ":" + (dt.getSeconds() < 10 ? "0" + dt.getSeconds() : dt.getSeconds())); + + if (_AutoRefreshCountMs >= _AutoRefreshTotalIntervalMs) + { + // Time has elapsed. + LoadTwcData(_TwcDataUrl, true); + } + }; + _AutoRefreshIntervalId = window.setInterval(AutoRefreshTimer, _AutoRefreshIntervalMs); + AutoRefreshTimer(); +}; +var StopAutoRefreshTimer = function () +{ + if (_AutoRefreshIntervalId) + { + window.clearInterval(_AutoRefreshIntervalId); + spanRefreshCountDown.html("--:--"); + _AutoRefreshIntervalId = null; + } +}; + +var btnGetGps_click = function () +{ + if (!navigator.geolocation) + { + return; + } + + var CurrentPosition = function (Position) + { + var Latitude = Position.coords.latitude; + var Longitude = Position.coords.longitude; + //Latitude = 40.7754622; Longitude = -73.2411506; + + console.log("Latitude: " + Latitude + "; Longitude: " + Longitude); + + //http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/reverseGeocode?location=-72.971293%2C+40.850043&f=pjson + request = $.ajax({ + url: location.protocol + '//geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/reverseGeocode', + data: { + location: Longitude + "," + Latitude, + distance: 1000, // Find location upto 1 KM. + f: 'json' + }, + jsonp: 'callback', + dataType: 'jsonp' + }); + request.done(function (data) + { + console.log(data); + + var ZipCode = data.address.Postal; + var City = data.address.City; + var State = getStateTwoDigitCode(data.address.Region); + var Country = data.address.CountryCode; + var TwcQuery = ZipCode + ", " + City + ", " + State + ", " + Country; + //var Url = "http://forecast.weather.gov/MapClick.php?lat=" + Latitude + "&lon=" + Longitude; + + txtAddress.val(TwcQuery); + txtAddress.blur(); + txtAddress.focus(); + + // Save the query + localStorage.setItem("TwcQuery", TwcQuery); + + //LoadTwcData(Url); + }); + + }; + + navigator.geolocation.getCurrentPosition(CurrentPosition); +}; + +var PopulateWeatherParameters = function () +{ + spanCity.text(_WeatherParameters.City + ", "); + spanState.text(_WeatherParameters.State); + spanStationId.text(_WeatherParameters.StationId); + spanRadarId.text(_WeatherParameters.RadarId); + spanZoneId.text(_WeatherParameters.ZoneId); +}; + +var frmScrollText_submit = function (e) +{ + radScroll_change(); + + return false; +}; + +var frmScrollRss_submit = function (e) +{ + radScroll_change(); + + return false; +}; + +var radScroll_change = function (e) +{ + txtScrollText.blur(); + txtScrollText.addClass("Disabled"); + btnScrollText.addClass("Disabled"); + + txtScrollRss.blur(); + txtScrollRss.addClass("Disabled"); + btnScrollRss.addClass("Disabled"); + + var ScrollCheckedId = $("input[name='radScroll']:checked").attr("id"); + localStorage.setItem("TwcScrollChecked", ScrollCheckedId); + + switch (ScrollCheckedId) + { + case "radScrollDefault": + AssignScrollText(null); + break; + + case "radScrollText": + txtScrollText.removeClass("Disabled"); + btnScrollText.removeClass("Disabled"); + + var ScrollText = txtScrollText.val(); + localStorage.setItem("TwcScrollText", ScrollText); + + AssignScrollText({ ScrollText: ScrollText }); + break; + + case "radScrollRss": + txtScrollRss.removeClass("Disabled"); + btnScrollRss.removeClass("Disabled"); + + var ScrollRss = txtScrollRss.val(); + localStorage.setItem("TwcScrollRss", ScrollRss); + + AssignScrollText({ ScrollRss: ScrollRss }); + break; + + } +}; + +var AssignScrollText = function (e) +{ + if (iframeTwc[0].contentWindow.AssignScrollText) + { + iframeTwc[0].contentWindow.AssignScrollText(e); + } +}; + +var getParameterByName = function (name, url) +{ + if (!url) url = window.location.href; + url = decodeURIComponent(url); + name = name.replace(/[\[\]]/g, "\\$&"); + var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), + results = regex.exec(url); + if (!results) return null; + if (!results[2]) return ''; + return decodeURIComponent(results[2].replace(/\+/g, " ")); +}; + +var inIframe = function () +{ + try + { + return window.self !== window.top; + } + catch (e) + { + return true; + } +}; + +var getBodyScaleValue = function () +{ + var transformValue = $(document.body).css('transform'); + var scaleArray = transformValue.split(','); + var scaleValue = parseFloat(scaleArray[scaleArray.length - 3]); + return scaleValue; +}; diff --git a/Scripts/jeoquery.js b/wwwroot/Scripts/jeoquery.js similarity index 100% rename from Scripts/jeoquery.js rename to wwwroot/Scripts/jeoquery.js diff --git a/Scripts/jquery-3.1.0.min.js b/wwwroot/Scripts/jquery-3.1.0.min.js similarity index 100% rename from Scripts/jquery-3.1.0.min.js rename to wwwroot/Scripts/jquery-3.1.0.min.js diff --git a/Scripts/jquery.autocomplete.min.js b/wwwroot/Scripts/jquery.autocomplete.min.js similarity index 100% rename from Scripts/jquery.autocomplete.min.js rename to wwwroot/Scripts/jquery.autocomplete.min.js diff --git a/Scripts/jquery.touchSwipe.min.js b/wwwroot/Scripts/jquery.touchSwipe.min.js similarity index 100% rename from Scripts/jquery.touchSwipe.min.js rename to wwwroot/Scripts/jquery.touchSwipe.min.js diff --git a/Scripts/libgif.js b/wwwroot/Scripts/libgif.js similarity index 100% rename from Scripts/libgif.js rename to wwwroot/Scripts/libgif.js diff --git a/Scripts/metars.js b/wwwroot/Scripts/metars.js similarity index 100% rename from Scripts/metars.js rename to wwwroot/Scripts/metars.js diff --git a/Scripts/outlook1.js b/wwwroot/Scripts/outlook1.js similarity index 100% rename from Scripts/outlook1.js rename to wwwroot/Scripts/outlook1.js diff --git a/Scripts/speech1.js b/wwwroot/Scripts/speech1.js similarity index 100% rename from Scripts/speech1.js rename to wwwroot/Scripts/speech1.js diff --git a/Scripts/stations.js b/wwwroot/Scripts/stations.js similarity index 100% rename from Scripts/stations.js rename to wwwroot/Scripts/stations.js diff --git a/Scripts/timemachine.min.js b/wwwroot/Scripts/timemachine.min.js similarity index 100% rename from Scripts/timemachine.min.js rename to wwwroot/Scripts/timemachine.min.js diff --git a/Scripts/twc1.js b/wwwroot/Scripts/twc1.js similarity index 100% rename from Scripts/twc1.js rename to wwwroot/Scripts/twc1.js diff --git a/Scripts/twc2.js b/wwwroot/Scripts/twc2.js similarity index 100% rename from Scripts/twc2.js rename to wwwroot/Scripts/twc2.js diff --git a/Scripts/twc3.js b/wwwroot/Scripts/twc3.js similarity index 100% rename from Scripts/twc3.js rename to wwwroot/Scripts/twc3.js diff --git a/Styles/index.css b/wwwroot/Styles/index.css similarity index 93% rename from Styles/index.css rename to wwwroot/Styles/index.css index 04e508d..1ae2cc8 100644 --- a/Styles/index.css +++ b/wwwroot/Styles/index.css @@ -1,328 +1,328 @@ -@font-face -{ - font-family: "Star4000"; - src: url('../fonts/Star4000.woff') format('woff'); - /*font-weight: bold; - font-style: italic;*/ -} -@font-face -{ - font-family: "Star 4 Radar"; - src: url('../fonts/Star 4 Radar.woff') format('woff'); -} -@font-face -{ - font-family: 'Star4000 Extended'; - src: url('../fonts/Star4000 Extended.woff') format('woff'); -} -@font-face -{ - font-family: 'Star4000 Large Compressed Numbers'; - src: url('../fonts/Star4000 Large Compressed Numbers.woff') format('woff'); -} -@font-face - { - font-family: 'Star4000 Large Compressed'; - src: url('../fonts/Star4000 Large Compressed.woff') format('woff'); -} -@font-face -{ - font-family: 'Star4000 Large'; - src: url('../fonts/Star4000 Large.woff') format('woff'); -} -@font-face - { - font-family: 'Star4000 Small'; - src: url('../fonts/Star4000 Small.woff') format('woff'); -} -body -{ - font-family: "Star4000"; - color: #000000; - background-color: #ffffff; -} - -input, button { - font-family: "Star4000"; - background-color: #e0e0e0; - border: solid 1px #000000; - color: #000000; -} - -input[type=text] { - background-color: #ffffff; -} - -#imgGetGps -{ - height: 13px; - vertical-align: middle; -} - -#txtAddress -{ - /*width: 400px;*/ - width: 492px; - font-size: 16pt; -} - -#btnGetGps, #btnGetLatLng, #btnClearQuery -{ - font-size: 16pt; -} - -.autocomplete-suggestions -{ - background-color: #ffffff; - border: 1px solid #000000; - /*overflow: auto;*/ -} -.autocomplete-suggestion -{ - /*padding: 2px 5px;*/ - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - font-size: 16pt; -} -.autocomplete-selected -{ - background-color: #0000ff; - color: #ffffff; -} -.autocomplete-suggestions strong -{ - /*font-weight: normal;*/ - /*color: lightseagreen*/ -} -.autocomplete-group -{ - /*padding: 2px 5px;*/ -} -.autocomplete-group strong -{ - /*display: block; - border-bottom: 1px solid black;*/ -} - -/*#Star4000LargeCompressedNumbers -{ - visibility: hidden; - position: absolute; - font-family: 'Star4000 Large Compressed Numbers'; -}*/ - -#divTwc -{ - /*display: none;*/ - display: block; - background-color: #000000; - color: #ffffff; - width: 640px; -} - -#divTwcMiddle -{ - display: flex; -} - -#divTwcLeft -{ - visibility: hidden; - text-align: right; - display: flex; - flex-direction: column; - vertical-align: middle; -} -#divTwcLeft > div -{ - flex: 1; - padding-right: 12px; - display: flex; - flex-direction: column; - justify-content: center; - /*position: relative; - top: 10%;*/ -} - -#divTwcRight -{ - visibility: hidden; - text-align: left; - display: flex; - flex-direction: column; - vertical-align: middle; -} -#divTwcRight > div -{ - flex: 1; - padding-left: 12px; - display: flex; - flex-direction: column; - justify-content: center; - /*position: relative; - top: 10%;*/ -} - -#divTwcBottom -{ - visibility: hidden; - display: flex; - flex-direction: row; - background-color: #000000; - color: #ffffff; - width: 100%; -} -#divTwcBottom > div -{ - padding-left: 6px; - padding-right: 6px; -} -#divTwcBottomLeft -{ - flex: 1; - text-align: left; -} -#divTwcBottomMiddle -{ - flex: 0; - text-align: center; -} -#divTwcBottomRight -{ - flex: 1; - text-align: right; -} - -#divTwcNavContainer -{ - display: none; -} - -#divTwcNav -{ - display: flex; - flex-direction: row; - background-color: #000000; - color: #ffffff; - width: 640px; -} -#divTwcNav > div -{ - padding-left: 6px; - padding-right: 6px; -} -#divTwcNavLeft -{ - flex: 1; - text-align: left; -} -#divTwcNavMiddle -{ - flex: 0; - text-align: center; -} -#divTwcNavRight -{ - flex: 1; - text-align: right; -} - -#imgPause1x, #imgPause2x -{ - visibility: hidden; - position: absolute; - position: absolute; -} - -#iframeTwc -{ - width: 640px; - height: 480px; - overflow: hidden; - border: 0; -} - -.HideCursor -{ - cursor: none !important; -} - -#divInfo -{ - width: 640px; -} - -#divGitHub -{ - width: 640px; - display: flex; - justify-content: space-evenly; -} - -/*.btn { - background-color: black !important; - color: white !important; - background-image: url() !important; - border-color: white !important; -}*/ - -#spanLocation, #spanRadar { - float: left; -} - -#spanStation, #spanZone -{ - float: right; -} - -#spanStationId, #spanZoneId -{ - display: inline-block; - width: 50px; -} - -#divRefresh -{ - width: 640px; -} - -#spanLastUpdate -{ - float: left; -} - -#spanAutoRefresh -{ - float: right; -} - -#divUnits, #divThemes -{ - width: 640px; -} - -#spanUnits, #spanThemes -{ - display: inline-block; - width: 50px; -} - -#txtScrollText, #txtScrollRss { - width: 470px; - /*text-transform: uppercase;*/ -} - -#lblScrollText, #lblScrollRss { - display: inline-block; - width: 100px; -} - -#frmScrollText, #frmScrollRss { - display: initial; -} - -.Disabled{ - pointer-events: none; - opacity: 0.5; -} +@font-face +{ + font-family: "Star4000"; + src: url('../fonts/Star4000.woff') format('woff'); + /*font-weight: bold; + font-style: italic;*/ +} +@font-face +{ + font-family: "Star 4 Radar"; + src: url('../fonts/Star 4 Radar.woff') format('woff'); +} +@font-face +{ + font-family: 'Star4000 Extended'; + src: url('../fonts/Star4000 Extended.woff') format('woff'); +} +@font-face +{ + font-family: 'Star4000 Large Compressed Numbers'; + src: url('../fonts/Star4000 Large Compressed Numbers.woff') format('woff'); +} +@font-face + { + font-family: 'Star4000 Large Compressed'; + src: url('../fonts/Star4000 Large Compressed.woff') format('woff'); +} +@font-face +{ + font-family: 'Star4000 Large'; + src: url('../fonts/Star4000 Large.woff') format('woff'); +} +@font-face + { + font-family: 'Star4000 Small'; + src: url('../fonts/Star4000 Small.woff') format('woff'); +} +body +{ + font-family: "Star4000"; + color: #000000; + background-color: #ffffff; +} + +input, button { + font-family: "Star4000"; + background-color: #e0e0e0; + border: solid 1px #000000; + color: #000000; +} + +input[type=text] { + background-color: #ffffff; +} + +#imgGetGps +{ + height: 13px; + vertical-align: middle; +} + +#txtAddress +{ + /*width: 400px;*/ + width: 492px; + font-size: 16pt; +} + +#btnGetGps, #btnGetLatLng, #btnClearQuery +{ + font-size: 16pt; +} + +.autocomplete-suggestions +{ + background-color: #ffffff; + border: 1px solid #000000; + /*overflow: auto;*/ +} +.autocomplete-suggestion +{ + /*padding: 2px 5px;*/ + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + font-size: 16pt; +} +.autocomplete-selected +{ + background-color: #0000ff; + color: #ffffff; +} +.autocomplete-suggestions strong +{ + /*font-weight: normal;*/ + /*color: lightseagreen*/ +} +.autocomplete-group +{ + /*padding: 2px 5px;*/ +} +.autocomplete-group strong +{ + /*display: block; + border-bottom: 1px solid black;*/ +} + +/*#Star4000LargeCompressedNumbers +{ + visibility: hidden; + position: absolute; + font-family: 'Star4000 Large Compressed Numbers'; +}*/ + +#divTwc +{ + /*display: none;*/ + display: block; + background-color: #000000; + color: #ffffff; + width: 640px; +} + +#divTwcMiddle +{ + display: flex; +} + +#divTwcLeft +{ + visibility: hidden; + text-align: right; + display: flex; + flex-direction: column; + vertical-align: middle; +} +#divTwcLeft > div +{ + flex: 1; + padding-right: 12px; + display: flex; + flex-direction: column; + justify-content: center; + /*position: relative; + top: 10%;*/ +} + +#divTwcRight +{ + visibility: hidden; + text-align: left; + display: flex; + flex-direction: column; + vertical-align: middle; +} +#divTwcRight > div +{ + flex: 1; + padding-left: 12px; + display: flex; + flex-direction: column; + justify-content: center; + /*position: relative; + top: 10%;*/ +} + +#divTwcBottom +{ + visibility: hidden; + display: flex; + flex-direction: row; + background-color: #000000; + color: #ffffff; + width: 100%; +} +#divTwcBottom > div +{ + padding-left: 6px; + padding-right: 6px; +} +#divTwcBottomLeft +{ + flex: 1; + text-align: left; +} +#divTwcBottomMiddle +{ + flex: 0; + text-align: center; +} +#divTwcBottomRight +{ + flex: 1; + text-align: right; +} + +#divTwcNavContainer +{ + display: none; +} + +#divTwcNav +{ + display: flex; + flex-direction: row; + background-color: #000000; + color: #ffffff; + width: 640px; +} +#divTwcNav > div +{ + padding-left: 6px; + padding-right: 6px; +} +#divTwcNavLeft +{ + flex: 1; + text-align: left; +} +#divTwcNavMiddle +{ + flex: 0; + text-align: center; +} +#divTwcNavRight +{ + flex: 1; + text-align: right; +} + +#imgPause1x, #imgPause2x +{ + visibility: hidden; + position: absolute; + position: absolute; +} + +#iframeTwc +{ + width: 640px; + height: 480px; + overflow: hidden; + border: 0; +} + +.HideCursor +{ + cursor: none !important; +} + +#divInfo +{ + width: 640px; +} + +#divGitHub +{ + width: 640px; + display: flex; + justify-content: space-evenly; +} + +/*.btn { + background-color: black !important; + color: white !important; + background-image: url() !important; + border-color: white !important; +}*/ + +#spanLocation, #spanRadar { + float: left; +} + +#spanStation, #spanZone +{ + float: right; +} + +#spanStationId, #spanZoneId +{ + display: inline-block; + width: 50px; +} + +#divRefresh +{ + width: 640px; +} + +#spanLastUpdate +{ + float: left; +} + +#spanAutoRefresh +{ + float: right; +} + +#divUnits, #divThemes +{ + width: 640px; +} + +#spanUnits, #spanThemes +{ + display: inline-block; + width: 50px; +} + +#txtScrollText, #txtScrollRss { + width: 470px; + /*text-transform: uppercase;*/ +} + +#lblScrollText, #lblScrollRss { + display: inline-block; + width: 100px; +} + +#frmScrollText, #frmScrollRss { + display: initial; +} + +.Disabled{ + pointer-events: none; + opacity: 0.5; +} diff --git a/Styles/outlook1.css b/wwwroot/Styles/outlook1.css similarity index 100% rename from Styles/outlook1.css rename to wwwroot/Styles/outlook1.css diff --git a/Styles/twc2.css b/wwwroot/Styles/twc2.css similarity index 100% rename from Styles/twc2.css rename to wwwroot/Styles/twc2.css diff --git a/Styles/twc3.css b/wwwroot/Styles/twc3.css similarity index 100% rename from Styles/twc3.css rename to wwwroot/Styles/twc3.css diff --git a/index.html b/wwwroot/index.html similarity index 98% rename from index.html rename to wwwroot/index.html index a051eca..daaf2f0 100644 --- a/index.html +++ b/wwwroot/index.html @@ -1,232 +1,232 @@ - - - - - - - WeatherStar 4000+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - -
-
-
-
- -
- - - - - - -
-
-
-
-
-
- -
-
-
-
- -
-
-
-
- -
-
-
-
- -
-
-
- -
-
-
- -
-
-
-
- -
-
-
-
- -
-
-
-
- -
-
-
-
-
- -
- - - - -
-
- -
-
- - - -
-
-
-
-
-
- - - - -
-
- -
-
- - - - -
-
-
- -
- - - -
- -
- - Location: - - - Station Id: - -
- - Radar Id: - - - Zone Id: - -
-
- -
- -
- - Last Update: (None) - - - - -
-
- -
- -
- Units: - - -
- -
- -
- Themes: - - - - -
- -
- -
- - Scroll Options:
-
- -
- -

- -
- -

- -
- - + + + + + + + WeatherStar 4000+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+
+
+
+ +
+ + + + + + +
+
+
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+ +
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+
+ +
+ + + + +
+
+ +
+
+ + + +
+
+
+
+
+
+ + + + +
+
+ +
+
+ + + + +
+
+
+ +
+ + + +
+ +
+ + Location: + + + Station Id: + +
+ + Radar Id: + + + Zone Id: + +
+
+ +
+ +
+ + Last Update: (None) + + + + +
+
+ +
+ +
+ Units: + + +
+ +
+ +
+ Themes: + + + + +
+ +
+ +
+ + Scroll Options:
+
+ +
+ +

+ +
+ +

+ +
+ + \ No newline at end of file diff --git a/twc3.html b/wwwroot/twc3.html similarity index 100% rename from twc3.html rename to wwwroot/twc3.html