"use strict"; let randomByte = () => Math.floor(Math.random() * 256); let randomColor = () => `rgb(${randomByte()}, ${randomByte()}, ${randomByte()})`; let hide = el => el.style.display = 'none'; let show = el => el.style.display = 'block'; let encode = x => encodeURIComponent(btoa(x)); let decode = x => atob(decodeURIComponent(x)); document.getElementById('entry').addEventListener('input', function(e) { e.preventDefault(); var shareEl = document.getElementById('share') hide(shareEl) if (!e.target.value) { return } var encoded = encode(e.target.value) var url = `${location.origin}/telechromy?prompt=${encode(c)}&text=${encoded}` document.getElementById('url').value = url show(shareEl) }) document.getElementById('copy').addEventListener('click', function(e) { e.preventDefault(); document.getElementById('url').select() document.execCommand('copy'); }) document.getElementById('visit').addEventListener('click', function(e) { e.preventDefault(); var url = document.getElementById('url').value window.location.replace(url) }) document.getElementById('submit').addEventListener('click', function(e) { e.preventDefault(); var color = document.getElementById('color').value var cc = urlParams.get('prompt') var tt = urlParams.get('text') var url = `${location.origin}/telechromy?prompt=${cc}&text=${tt}&guess=${encode(color)}` window.location.replace(url) }) var bodyEl = document.getElementById('body'); var urlParams = new URLSearchParams(window.location.search); var text = urlParams.get('text') if (urlParams.get('guess')) { show(document.getElementById('result')) show(document.getElementById('labels')) document.getElementById('prompt-text').textContent = `“${decode(text)}”` var pp = decode(urlParams.get('prompt')) var gg = decode(urlParams.get('guess')) bodyEl.style = `background: linear-gradient(90deg, ${pp} 50%, ${gg} 50%)` } else if (text) { show(document.getElementById('guess')) document.getElementById('challenge').textContent = `“${decode(text)}”` } else { show(document.getElementById('prompt')) var c = randomColor(); bodyEl.style = `background-color: ${c}`; }