+ //dbg.innerHTML = "from " + tmin + " to " + tmax
+ // + "<br>from " + showdate(tmin) + " to " + showdate(tmax);
+ /* differetiate() updates hmax */
+ hmax = 0;
+ cold_d = differentiate(data.cold);
+ hot_d = differentiate(data.hot);
+ //dbg.innerHTML = "hmax=" + hmax + " hfact=" + hfact + "<br>"
+ // + cold_d + "<br>" + hot_d;
+ redraw();
+ }
+
+ function iso2qu(idate) {
+ return idate.replace("T", "+").replace("0Z", "");
+ }
+
+ function sendquery(lo, hi) {
+ var url = "query.cgi" + "?lo=" + iso2qu(lo) + "&hi=" + iso2qu(hi);
+
+ //dbg.innerHTML = url;
+ xmlhttp.onreadystatechange = function() {
+ if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
+ // dbg.innerHTML = xmlhttp.responseText;
+ var myData = JSON.parse(xmlhttp.responseText);
+ gotdata(myData);
+ }
+ }
+ xmlhttp.open("GET", url, true);
+ clearplot();
+ showloading();
+ xmlhttp.send();
+ }
+
+ function resize() {
+ ww = window.innerWidth - 4;
+ if (ww > window.innerHeight) ww = window.innerHeight;
+ wh = ww / 2;
+ canvas.width = ww;
+ canvas.height = wh;
+ canvas.style.width = ww + "px";
+ canvas.style.height = wh + "px";
+ redraw();
+ }
+
+ function daystart(date) {
+ date.setMilliseconds(0);
+ date.setSeconds(0);
+ date.setMinutes(0);
+ date.setHours(0);
+ return date;
+ }
+
+ function beforeyesterday() {
+ var tdy = daystart(new Date());
+ var ytd = new Date(1*tdy - 86400000);
+ var byd = new Date(1*ytd - 86400000);
+ xmlhttp = new XMLHttpRequest();
+ sendquery(byd.toISOString(), ytd.toISOString());
+ }
+
+ function yesterday() {
+ var tdy = daystart(new Date());
+ var ytd = new Date(1*tdy - 86400000);
+ xmlhttp = new XMLHttpRequest();
+ sendquery(ytd.toISOString(), tdy.toISOString());
+ }
+
+ function today() {
+ var tdy = daystart(new Date());
+ var tmr = new Date(1*tdy + 86400000);
+ xmlhttp = new XMLHttpRequest();
+ sendquery(tdy.toISOString(), tmr.toISOString());
+ }
+
+ function initialize() {
+ dbg = document.getElementById("debug");
+ canvas = document.getElementById("plot");
+ ctx = canvas.getContext("2d");
+ resize();
+ today();
+
+ document.getElementById("today").onclick = today;
+ document.getElementById("yesterday").onclick = yesterday;
+ document.getElementById("beforeyesterday").onclick = beforeyesterday;
+ //document.getElementById("thisweek").onclick = thisweek;
+ //document.getElementById("lastweek").onclick = lastweek;
+ }
+
+ /* Set up */
+ if(window.attachEvent) {
+ window.attachEvent('onload', initialize);
+ window.attachEvent('onresize', resize);
+ } else {
+ window.onload = initialize;
+ window.onresize = resize;