packages feed

quarantimer-1.20200323: static/js.js

var things;

window.onload=function(){
	var loaddate = Date.now();
	things = document.getElementsByClassName('thing');
	for (var i = 0; i < things.length; i++) {
		var elt = things[i];
		var img = elt.getElementsByTagName("img")[0];
		things[i].img = img;
		var timer = elt.getElementsByClassName("timer")[0];
		things[i].timer = timer;
		var n = parseInt(timer.attributes.title.value);
		var d = loaddate + (n * 1000);
		things[i].enddate = d;
	}

	animate();
}

function displayUnit(v,u) {
	var s;
	if (v == 1) { s = "" } else { s = "s" }
	return (v + " " + u + s);
}

function animate() {
	now = Date.now();
	for (var i = 0; i < things.length; i++) {
		var img = things[i].img;
		var timer = things[i].timer;
		var diff = (things[i].enddate - now) / 1e3;
		var h=(diff/60/60)>>0;
		var m=(diff/60 - h*60)>>0;
		if (diff > 0) {
			img.className = "infected";
			timer.innerHTML = "quarantine ends in " +
				displayUnit(h,"hour") + " " +
				displayUnit(m,"minute")
		} else {
			img.className = "safe";
			timer.innerHTML = "quarantine completed";
		}
	}

	setTimeout(animate,10000); // keep updating every 10s
}

function validateform() {
	var surfaces=document.getElementsByClassName("surface");
	var sok=false;
	for (var i=0,l=surfaces.length;i<l;i++) {
		if (surfaces[i].checked) {
			sok=true;
		}
	}
	photo=document.getElementsByName("photo")[0];
	if (photo.value.length == 0) {
		alert("Please take a photo of the thing you want to quarantine.");
		event.preventDefault();
	}
	else {
		if (! sok) {
			alert("Please indicate what the surface of the item is made of.");
			event.preventDefault();
		}
	}
}