|
|
- document.addEventListener("DOMContentLoaded", function(event) {
- updateClock();
- setInterval(updateClock, 1000);
- });
-
- function getNextOpen(now) {
- var days = [[0, 14], [4, 18], [8, 22], [12], [2, 16], [6, 20], [10]]
- var nowday = now.getUTCDay();
- var nour = now.getUTCHours();
-
- var open_hour = -1;
- var d = 0;
-
- while (open_hour == -1) {
- var times = days[(nowday + d) % 7];
- for (var i = 0; i < times.length; ++i) {
- var time = times[i];
- if (time == nour) {
- return "refresh";
- } else if (time > nour || d > 0) {
- open_hour = time;
- break;
- }
- }
- if (open_hour == -1) {
- d += 1;
- nour = -1;
- }
- }
-
- var open = new Date(Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate() + d));
- var ts = open.setUTCHours(open_hour);
- return open;
- }
-
- function updateClock() {
- var clock = document.querySelector(".closed-registrations-message .clock");
- var now = new Date();
- var open = getNextOpen(now);
-
- if (open == "refresh") {
- location.reload();
- return;
- }
-
- var until = open - now;
- var ms = until % 1000;
- var s = Math.floor((until / 1000)) % 60;
- var m = Math.floor((until / 1000 / 60)) % 60;
- var h = Math.floor((until / 1000 / 60 / 60));
- if (m < 10) m = "0" + m;
- if (s < 10) s = "0" + s;
- clock.innerHTML = h + ":" + m + ":" + s;
- }
|