diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js index 6ca81cd3b..7983b69b0 100644 --- a/Sprint-3/alarmclock/alarmclock.js +++ b/Sprint-3/alarmclock/alarmclock.js @@ -23,3 +23,64 @@ function pauseAlarm() { } window.onload = setup; + +const timeRemainingElement = document.getElementById("timeRemaining"); +const alarmSetElement = document.getElementById("alarmSet"); +const setButtonElement = document.getElementById("set"); +const stopButtonElement = document.getElementById("stop"); +const bodyElement = document.querySelector("body"); +const alarmSoundElement = document.getElementById("alarmSound"); + +let remainingTime; +let intervalID; + +function triggerAlarm() { + bodyElement.style.backgroundColor = "yellow"; + alarmSoundElement.play(); +} + +function setAlarm() { + clearInterval(intervalID); + const alarmTime = alarmSetElement.value; + if (alarmTime === "") { + return; + } //input validation (for emptry input) + remainingTime = Number(alarmTime); + if (remainingTime < 0) { + return; + } //input validation(for -ve number input) + const showTimeMinutes = Math.floor(remainingTime / 60) + .toString() + .padStart(2, "0"); + const showTimeSeconds = (remainingTime % 60).toString().padStart(2, "0"); + timeRemainingElement.innerText = showTimeMinutes + ":" + showTimeSeconds; + if (remainingTime === 0) { + triggerAlarm(); //valid input, when input = 0 then immediately triggers alarm + } else { + intervalID = setInterval(countDown, 1000); + } //valid input, when input = 10 then countdown starts +} +setButtonElement.addEventListener("click", setAlarm); +function countDown() { + if (remainingTime <= 0) { + clearInterval(intervalID); + triggerAlarm(); + return; + } /*to avoid any chance of -ve counting after countdown reached 0 from 10. + when countdown = 0 alarm triggers immediately and returns from the code */ + + remainingTime -= 1; + const remainingMinutes = Math.floor(remainingTime / 60) + .toString() + .padStart(2, "0"); + const remainingSeconds = (remainingTime % 60).toString().padStart(2, "0"); + timeRemainingElement.innerText = remainingMinutes + ":" + remainingSeconds; +} + +function stopAlarm() { + clearInterval(intervalID); + alarmSoundElement.pause(); + alarmSoundElement.currentTime = 0; + bodyElement.style.backgroundColor = ""; +} +stopButtonElement.addEventListener("click", stopAlarm); diff --git a/Sprint-3/alarmclock/index.html b/Sprint-3/alarmclock/index.html index 48e2e80d9..2a45c65b1 100644 --- a/Sprint-3/alarmclock/index.html +++ b/Sprint-3/alarmclock/index.html @@ -4,13 +4,14 @@ - Title here + Alarm clock app

Time Remaining: 00:00

+