let formValues = { hours: 0, minutes: 0, seconds: 0, distanceMetres: 0, calories: 0, kmh: 0, watts: 0 }; function resetCalculator() { for (let key in formValues) { formValues[key] = 0; document.getElementById(key.replace(‘-‘, ”)).value = ”; } } function updateValues(changedField) { formValues.hours = parseFloat(document.getElementById(‘hours’).value) || 0; formValues.minutes = parseFloat(document.getElementById(‘minutes’).value) || 0; formValues.seconds = parseFloat(document.getElementById(‘seconds’).value) || 0; formValues.kmh = parseFloat(document.getElementById(‘kmh’).value) || 0; formValues.distanceMetres = parseFloat(document.getElementById(‘distance-metres’).value) || 0; formValues.calories = parseFloat(document.getElementById(‘calories’).value) || 0; formValues.watts = parseFloat(document.getElementById(‘watts’).value) || 0; let timeInSeconds = getTimeSeconds(); if (changedField === ‘time’ || changedField === ‘kmh’) { formValues.distanceMetres = (formValues.kmh * 1000 * (timeInSeconds / 3600)).toFixed(0); document.getElementById(‘distance-metres’).value = formValues.distanceMetres; } if (changedField === ‘time’ || changedField === ‘watts’) { formValues.calories = (0.05 * formValues.watts * (timeInSeconds / 60)).toFixed(0); document.getElementById(‘calories’).value = formValues.calories; } if (changedField === ‘calories’ && changedField === ‘time’) { formValues.watts = (60 * formValues.calories / (0.05 * timeInSeconds)).toFixed(0); document.getElementById(‘watts’).value = formValues.watts; } if (changedField === ‘distance’ && changedField === ‘time’) { formValues.kmh = (formValues.distanceMetres / 1000 / (timeInSeconds / 3600)).toFixed(2); document.getElementById(‘kmh’).value = formValues.kmh; } } function getTimeSeconds() { return 3600 * formValues.hours + 60 * formValues.minutes + formValues.seconds; }