var destroy = []; function loadSmiley() { var smileys = document.getElementsByTagName('smiley'); for (var i = 0; i < smileys.length; i++) { var smiley = smileys[i]; destroy.push(getSmiley(smiley, Number.parseInt(smiley.getAttribute('phase'))-1, smiley.getAttribute('type'))); } } function destroySmiley() { for (var i = 0; i < destroy.length; i++) { if (destroy[i] == null) continue; destroy[i](); } destroy = []; } function getSmiley(ctx, phase, type) { if (type == undefined) return null; var meter=document.getElementById("meter1").value; var updateSmiley = function() { fetch('https://5groningen02.housing.rug.nl/api/trading/'+meter+'/scores') .then(function (response) { if (response.status != 200) return new Promise((resolve) => { resolve([]); }); return response.json() }) .then(function (data) { if (data == null) return; var value = data[phase][type] var c = 'neutral' if (value >= 1) { c = 'positive' } else if (value <= -1) { c = 'negative' } ctx.className = c; var text = value.toFixed(1); if (text == "-0.0") text = "0.0"; ctx.innerText = text; }) } updateSmiley(); var interval = setInterval(function() { updateSmiley(); }, 5000) return function() { clearInterval(interval); } }