Index: trunk/FACT++/www/viewer/index.js
===================================================================
--- trunk/FACT++/www/viewer/index.js	(revision 17815)
+++ trunk/FACT++/www/viewer/index.js	(revision 17816)
@@ -187,5 +187,5 @@
 
     editor = CodeMirror.fromTextArea(document.getElementById(textarea), config);
-    editor.setOption("theme", "blackboard");
+    editor.setOption("theme", "fact");
 
     return editor;
@@ -1275,8 +1275,8 @@
 }
 
-function drawHex(ctx, x, y, col, min, max)
-{
-    if (col===undefined/* || col===null*/ || max<min)
-        return;
+function fillHex(ctx, i, col, min, max)
+{
+    if (col===undefined/* || col===null*/)
+        return false;
 
     var lvl = max==min ? 0.5 : (col-min)/(max-min);
@@ -1285,9 +1285,21 @@
 
     ctx.save();
-    ctx.translate(x, y);
+    ctx.translate(coord[i][0], coord[i][1]);
     outlineHex(ctx);
     ctx.fill();
     ctx.restore();
-}
+
+    return true;
+}
+
+function drawHex(ctx, i)
+{
+    ctx.save();
+    ctx.translate(coord[i][0], coord[i][1]);
+    outlineHex(ctx);
+    ctx.stroke();
+    ctx.restore();
+}
+
 
 function Position(s, ring, i)
@@ -1338,6 +1350,16 @@
     ctx.translate(-0.5, 0);
 
-    for (var i=0; i<1440; i++)
-        drawHex(ctx, coord[i][0], coord[i][1], data[i], min, max);
+    if (document.getElementById('grid').checked)
+    {
+        ctx.lineWidth = 0.02;
+        ctx.strokeStyle = "#000";
+        for (var i=0; i<1440; i++)
+            drawHex(ctx, i);
+    }
+
+    var hasData = false;
+    if (max>=min)
+        for (var i=0; i<1440; i++)
+            hasData |= fillHex(ctx, i, data[i], min, max);
 
     // =================== Draw Pixel marker ====================
@@ -1346,14 +1368,7 @@
     {
         // Draw marker
-        ctx.save();
-
         ctx.lineWidth = 0.25;
-        ctx.fillStyle = "#000";
-
-        ctx.translate(coord[pixel][0], coord[pixel][1]);
-        outlineHex(ctx);
-        ctx.stroke();
-
-        ctx.restore();
+        ctx.strokeStyle = "#000";
+        drawHex(ctx, pixel);
     }
 
@@ -1392,5 +1407,26 @@
     ctx.restore();
 
+    if (!hasData)
+        return;
+
     // ======================= Draw Legend ======================
+
+    var v0 = parseFloat(canv.zmin);
+    var v1 = parseFloat(canv.zmax);
+
+    var diff = v1-v0;
+
+    var cw = canv.width;
+    //var ch = canv.height;
+
+    ctx.font         = "8pt Arial";
+    ctx.textAlign    = "right";
+    ctx.textBaseline = "top";
+
+    for (var i=0; i<11; i++)
+    {
+        ctx.strokeStyle = "#"+HLStoRGB(i/10);
+        ctx.strokeText((v0+diff*i/10).toPrecision(3), cw-5, 125-i*12);
+    }
 
     var pval = parseFloat(canv.dataAbs[pixel]).toFixed(1);
@@ -1398,21 +1434,6 @@
     var lmax = parseFloat(canv.max).toFixed(1);
 
-    var v0 = parseFloat(canv.zmin);
-    var v1 = parseFloat(canv.zmax);
-
-    var diff = v1-v0;
-
-    var cw = canv.width;
-    //var ch = canv.height;
-
-    ctx.font         = "8pt Arial";
-    ctx.textAlign    = "right";
-    ctx.textBaseline = "top";
-
-    for (var i=0; i<11; i++)
-    {
-        ctx.strokeStyle = "#"+HLStoRGB(i/10);
-        ctx.strokeText((v0+diff*i/10).toPrecision(3), cw-5, 125-i*12);
-    }
+    if (isNaN(pval))
+        pval = "";
 
     var mw = Math.max(ctx.measureText(lmin).width,
