Index: trunk/webapps/js/harLayer.js
===================================================================
--- trunk/webapps/js/harLayer.js	(revision 338)
+++ trunk/webapps/js/harLayer.js	(revision 351)
@@ -93,5 +93,5 @@
     {
         document.getElementById('har-msgdisplay1').value = "";
-        saveMessage("");
+        saveHARMessage("");
     }
 
@@ -102,14 +102,15 @@
         var harID = document.getElementById('harID').value;
         HARmessageDict[harID].har.message.phase1.Line1 = outMessage;
-
-        // TODO Set icon to reflect message state
+        // Set icon to reflect message state
         if (outMessage == "")
         {
+            currentIcon = {icon: iconHARidle};
         }
         else
         {
+            currentIcon = {icon: iconHARactive};
         }
-        //harLayer.overrideStyle(harLayer.getFeatureById(harID), currentIcon)
-        // break the json string into lines for readability
+        harLayer.overrideStyle(harLayer.getFeatureById(harID), currentIcon)
+        // convert messasge to json string 
         jsonstring = JSON.stringify(Object.values(HARmessageDict));
         outString = "{\"data\":" + jsonstring + "}";
@@ -147,12 +148,14 @@
                 var item = messagejson.data[i];
                 HARmessageDict[item.har.index] = item;
-                // TODO Set the appropriate icon on the har icon
+                // Set the appropriate icon on the har icon
                 //  if there's currently no message
                 if (item.har.message.phase1.Line1 == "")
                 {
+                    cmsLayer.overrideStyle(cmsLayer.getFeatureById(item.har.index), {icon: iconHARidle})
                 }
                 else
                 {
-                }
+                    cmsLayer.overrideStyle(cmsLayer.getFeatureById(item.har.index), {icon: iconHARactive})
+                }   
             }
         });
Index: trunk/webapps/js/cctvLayer.js
===================================================================
--- trunk/webapps/js/cctvLayer.js	(revision 341)
+++ trunk/webapps/js/cctvLayer.js	(revision 351)
@@ -68,13 +68,23 @@
             imgDir = "CCTVSlow/"
         }
+        var label = "freeflow";
+        if (currentColor == "red")
+        {
+            label = "stopped";
+        }
+        if (currentColor == "yellow")
+        {
+            label = "slow";
+        }
+
         // Demo of video embed - only on highway 241 locations
         if (cctvIndex.startsWith("12-241"))
         {
-            cctv_infowindow.setContent('<div style="font-weight:bold;font-family: monospace">' +  cctvIndex + "&nbsp;" + cctvLocation + "&nbsp;" +currentColor + '<BR><video width="320" height="240" autoplay  controls loop><source src="images/TrafficFreeflow.ogv" type="video/ogg"></div>');
+            cctv_infowindow.setContent('<div style="font-weight:bold;font-family: monospace">' +  cctvIndex + "&nbsp;" + cctvLocation + "&nbsp;" + '<BR><video  autoplay loop><source src="images/TrafficFreeflow.ogv" type="video/ogg"></div>');
         }
         else 
         // image from fast or slow directories
         {
-            cctv_infowindow.setContent('<div style="font-weight:bold;font-family: monospace">' +  cctvIndex + "&nbsp;" + cctvLocation + "&nbsp;" +currentColor + "<BR>" + imgTag + imgDir + cctvIndex + '.jpg">' + "</div>");
+            cctv_infowindow.setContent('<div style="font-weight:bold;font-family: monospace">' +  cctvIndex + "&nbsp;" + cctvLocation + "&nbsp;" +label+ "<BR>" + imgTag + imgDir + cctvIndex + '.jpg">' + "</div>");
         }
         cctv_infowindow.setPosition(event.feature.getGeometry().get());
Index: trunk/webapps/js/cmsLayer.js
===================================================================
--- trunk/webapps/js/cmsLayer.js	(revision 335)
+++ trunk/webapps/js/cmsLayer.js	(revision 351)
@@ -115,5 +115,5 @@
             document.getElementById('msgdisplay5').value = response5;
             document.getElementById('msgdisplay6').value = response6;
-            saveMessage(response1 + "|" + response2 + "|" + response3 + "|" +
+            saveCMSMessage(response1 + "|" + response2 + "|" + response3 + "|" +
                         response4 + "|" + response5 + "|" + response6);
         }
@@ -128,9 +128,9 @@
         document.getElementById('msgdisplay5').value = "";
         document.getElementById('msgdisplay6').value = "";
-        saveMessage("|||||");
+        saveCMSMessage("|||||");
     }
 
     // Save an updated cms message to the file
-    function saveMessage(outMessage)
+    function saveCMSMessage(outMessage)
     {
         // Fetch cmsID from hidden field where it was put when dialog opened.
@@ -144,4 +144,5 @@
         messageDict[cmsID].cms.message.phase2.Line2 = msgParts[4];
         messageDict[cmsID].cms.message.phase2.Line3 = msgParts[5];
+        // Check if there was any messages to save and
         // Set icon to reflect message state
         if (outMessage == "|||||")
@@ -155,7 +156,7 @@
         cmsLayer.overrideStyle(cmsLayer.getFeatureById(cmsID), currentIcon)
         // break the json string into lines for readability
-        jsonstring = JSON.stringify(Object.values(messageDict)); //,null,4);
+        jsonstring = JSON.stringify(Object.values(messageDict)); //Can't use these in GET parameter  ,null,4);
         outString = "{\"data\":" + jsonstring + "}";
-
+        console.log("outString = " + outString);
         var xhttp = new XMLHttpRequest();
         xhttp.open("GET", "cgi-bin/saveCMSmessage.py?msg=" + outString, true);
@@ -163,5 +164,5 @@
         // Using POST might be a better idea ... haven't tried this yet
         //      var xhr = new XMLHttpRequest();
-        //      xhr.open("POST", "/cgi-bin/saveMessage.py?", true);
+        //      xhr.open("POST", "/cgi-bin/saveCMSmessage.py?", true);
         //      xhr.setRequestHeader('Content-Type', 'application/json; charset=UTF-8');
         // send the collected data as JSON
