let alertTimeout, alertCooldown = 3000 async function displayLoginAlert(message, type, cooldown = null) { displayAuthAlert(message, type, cooldown, 'login') } async function displayRegisterAlert(message, type, cooldown = null) { displayAuthAlert(message, type, cooldown, 'register') } function displayAuthAlert(message, type, cooldown, name) { const elm = document.getElementById(`${name}Alert`) const text = document.getElementById(`${name}AlertText`) elm.style.removeProperty('display') // Remove classification classes elm.classList.remove('error') elm.classList.remove('success') elm.classList.remove('warn') switch(type) { case 'error': elm.classList.add('error') break case 'success': elm.classList.add('success') break case 'warn': default: elm.classList.add('warn') break } text.innerText = message clearTimeout(alertTimeout) // Disappear after cooldown alertTimeout = setTimeout(() => { elm.style.display = 'none' }, cooldown || alertCooldown) }