function calculate(a, b, operation) { switch (operation) { case 'add': return { result: a + b }; case 'subtract': return { result: a - b }; case 'multiply': return { result: a * b }; case 'divide': if (b === 0) return { error: 'Division by zero is not allowed.' }; return { result: a / b }; default: return { error: 'Unknown operation: ' + operation }; } } (function () { var form = document.getElementById('calculator-form'); var operationBtns = document.querySelectorAll('button[name="operation"]'); var resultEl = document.getElementById('result'); var errorEl = document.getElementById('error-message'); var selectedOperation = null; operationBtns.forEach(function (btn) { btn.addEventListener('click', function () { operationBtns.forEach(function (b) { b.setAttribute('aria-pressed', 'false'); }); btn.setAttribute('aria-pressed', 'true'); selectedOperation = btn.value; }); }); form.addEventListener('submit', function (e) { e.preventDefault(); resultEl.textContent = ''; errorEl.textContent = ''; var a = parseFloat(document.getElementById('operand1').value); var b = parseFloat(document.getElementById('operand2').value); if (isNaN(a) || isNaN(b)) { errorEl.textContent = 'Please enter valid numbers for both operands.'; return; } if (!selectedOperation) { errorEl.textContent = 'Please select an operation.'; return; } var outcome = calculate(a, b, selectedOperation); if (outcome.error) { errorEl.textContent = outcome.error; } else { resultEl.textContent = outcome.result; } }); form.addEventListener('reset', function () { resultEl.textContent = ''; errorEl.textContent = ''; operationBtns.forEach(function (btn) { btn.setAttribute('aria-pressed', 'false'); }); selectedOperation = null; }); }());