let params; let cur_seconds = null; let timer_id; let cd; const page = document.getElementById("page"); function setupCountdown() { params = new URLSearchParams(document.location.search); for ([key, value] of params.entries()) { console.log(`${key}: ${value}`); } switch (params.get("cdstyle")) { case "standard": page.innerHTML = `
00
:
00
`; break; case "bar": page.innerHTML = `
00
:
00
`; break; } cd = document.getElementById("countdown"); cur_seconds = parseInt(params.get("duration")); if (params.get("f_family") !== "") { cd.style.fontFamily = params.get("f_family"); } cd.style.color = params.get("f_color"); if (params.get("cdstyle") == "bar") { document.getElementById("progress").style.backgroundColor = params.get("b_color"); } draw(); timer_id = window.setInterval(tick, 1000); } function tick() { if (cur_seconds == 0) { while (cd.firstChild) { cd.removeChild(cd.firstChild); } let end_msg = document.createElement("div"); end_msg.textContent = params.get("end_text"); cd.appendChild(end_msg); window.clearInterval(timer_id); return; } cur_seconds--; draw(); if (params.get("cdstyle") == "bar") { draw_bar(); } } function draw() { document.getElementById("minutes").textContent = zero_pad(Math.floor(cur_seconds / 60)); document.getElementById("seconds").textContent = zero_pad((cur_seconds % 60)); } function draw_bar() { document.getElementById("progress").style.width = (((params.get("duration") - cur_seconds) / params.get("duration")) * 100) + "vw"; } function zero_pad(num) { if (num < 10) { return "0"+num; } else { return num; } }