turn off sounds when we time out or such
[tricorder.git] / js / tricorder.js
index 707910a9ba0d9f7e6fd8633bfbccfea70709e83f..3bf19c6357e10ee28a4f1dd4787cb8f32ea0dad5 100644 (file)
@@ -74,8 +74,11 @@ function switchModule(modname) {
     navs[i].classList.remove("active");
   }
 
-  document.getElementById("nav" + modname).classList.add("active");
+  var navItem = document.getElementById("nav" + modname);
+  navItem.classList.add("active");
   document.getElementById("sect" + modname).classList.add("active");
+  document.getElementById("mainHeader").textContent =
+      (modname == "Other") ? "Web Tricorder" : navItem.textContent;
 
   window["gMod" + modname].activate();
 }
@@ -88,13 +91,20 @@ var gModPos = {
       document.getElementById("posavail").style.display = "block";
       this.watchID = navigator.geolocation.watchPosition(
         function(position) {
-           document.getElementById("posLat").textContent = position.coords.latitude;
-           document.getElementById("posLong").textContent = position.coords.longitude;
-           document.getElementById("posAlt").textContent = position.coords.altitude;
-           document.getElementById("posAcc").textContent = position.coords.accuracy;
-           document.getElementById("posAltAcc").textContent = position.coords.altitudeAccuracy;
-           document.getElementById("posHead").textContent = position.coords.heading || "---";
-           document.getElementById("posSpd").textContent = position.coords.speed || "---";
+           document.getElementById("posLat").textContent =
+               position.coords.latitude + "°";
+           document.getElementById("posLong").textContent =
+               position.coords.longitude + "°";
+           document.getElementById("posAlt").textContent =
+               position.coords.altitude.toFixed(0) + " m";
+           document.getElementById("posAcc").textContent =
+               position.coords.accuracy.toFixed(0) + " m";
+           document.getElementById("posAltAcc").textContent =
+               position.coords.altitudeAccuracy.toFixed(0) + " m";
+           document.getElementById("posHead").textContent =
+               position.coords.heading ? position.coords.heading.toFixed(0) + "°" : "---";
+           document.getElementById("posSpd").textContent =
+               position.coords.speed ? position.coords.speed.toFixed(1) + " m/s" : "---";
            var locTime = new Date(position.timestamp);
            document.getElementById("posTime").textContent = locTime.toISOString();
         },
@@ -109,13 +119,15 @@ var gModPos = {
             document.getElementById("posHead").textContent = "...";
             document.getElementById("posSpd").textContent = "...";
             document.getElementById("posTime").textContent = "...";
+            setTimeout(function() { gModPos.deactivate(); }, 5000);
           }
           else {
             document.getElementById("posunavail").style.display = "block";
             document.getElementById("posavail").style.display = "none";
           }
+          gSounds.scan.pause();
         },
-        {enableHighAccuracy: true}
+        {enableHighAccuracy: true, maximumAge: 10000, timeout: 60000}
       );
     }
     else {
@@ -166,6 +178,7 @@ var gModGrav = {
     document.getElementById("gravAlpha").textContent = "...";
     document.getElementById("gravBeta").textContent = "...";
     document.getElementById("gravGamma").textContent = "...";
+    document.getElementById("gravTotal").textContent = "...";
     document.getElementById("gravX").textContent = "...";
     document.getElementById("gravY").textContent = "...";
     document.getElementById("gravZ").textContent = "...";
@@ -178,6 +191,11 @@ var gModGrav = {
     document.getElementById("gravGamma").textContent = orientData.gamma.toFixed(1) + "°";
   },
   motionEvent: function(event) {
+    var gravTotal = 
+        Math.sqrt(Math.pow(event.accelerationIncludingGravity.x, 2) +
+                  Math.pow(event.accelerationIncludingGravity.y, 2) +
+                  Math.pow(event.accelerationIncludingGravity.z, 2));
+    document.getElementById("gravTotal").textContent = gravTotal.toFixed(2) + " m/s²";
     document.getElementById("gravX").textContent = event.accelerationIncludingGravity.x.toFixed(2) + " m/s²";
     document.getElementById("gravY").textContent = event.accelerationIncludingGravity.y.toFixed(2) + " m/s²";
     document.getElementById("gravZ").textContent = event.accelerationIncludingGravity.z.toFixed(2) + " m/s²";