Index: /trunk/src/cptms/cms_demo.html
===================================================================
--- /trunk/src/cptms/cms_demo.html	(revision 299)
+++ /trunk/src/cptms/cms_demo.html	(revision 300)
@@ -19,35 +19,31 @@
            width: 272px;
            resize: none;
-           overflow-wrap: break-word;
            font-family: Scoreboard;
            font-size: xx-large;
            background-color: black;
-           color: GoldenRod;
-           overflow-y: hidden;
+           color: yellow;
+        }
+       input {
+           border: thin solid #333;
+           padding: 2px;
+           font-family: monospace;
+           font-size: large;
         }
       #map {
-           height: 560px;
+           height: 550px;
            width: 100%;
            overflow: hidden;
            border: thin solid #333;
        }
-      #cms-name {
-           height: 30px;
-           width: 300px;
+      #cms-info-label {
+           height: 20px;
+           width: 540px;
            overflow: hidden;
            background-color: #ECECFB;
-           border: thin solid #333;
-           /* border-left: none; */
+           border: thin solid #BDBDBD;
+           padding: 5px;
        }
-       input {
-           font-family: Scoreboard;
-           font-size: xx-large;
-           font-weight: bold;
-           background-color: black;
-           color: Yellow;
-           border: thin solid #333;
-}
-      #cms-message {
-           height: 122px;
+      #message-display {
+           height: 172px;
            width: 300px;
            overflow: hidden;
@@ -56,13 +52,33 @@
            /* border-left: none;*/
        }
-      #userinput {
+      #message-input {
+           height: 122px;
+           width: 135px;
+           background-color: #ECECFB;
+           float: left;
+           
+       }
+       #buttonPanel {
            height: 122px;
            width: 100px;
-           overflow: hidden;
            background-color: #ECECFB;
-           border: thin solid #333;
            border-left: none;
            float: left;
-       }
+           padding: 20px;
+        }
+       .wrapper {
+           position: relative;\
+        }
+       #dialog {
+          position: absolute;
+          top: 10%;
+          right: 20%;
+          background-color: #ECECFB;
+          margin: auto;
+          padding: 20px;
+          border: 1px solid #888;
+          width: 52%;
+          display: none;           
+        }
       #hideButton {
         font-size: 40px;
@@ -71,10 +87,26 @@
         color: #47476b;
         cursor: pointer;
-      }    </style>
+      }    
+
+    /* The Close Button */
+    .close {
+      color: orange;
+      float: right;
+      font-size: 20px;
+      font-weight: bold;
+    }
+
+    .close:hover,
+    .close:focus {
+      color: red;
+      text-decoration: none;
+      cursor: pointer;
+    }
+</style>
   </head>
   <body>
-    <div id="cms-name"  style="display: none;"></div>
+<!--    <div id="cms-name"  style="display: none;"></div>
     <div id="cms-message"  style="display: none;">
-<!--    <textarea id="msgcontent1" maxlength="48" rows="3" cols="10" wrap="hard" style="display: none;"></textarea> -->
+
     <input id="msgcontent1" size="16" maxlength="16"/>
     <input id="msgcontent2" size="16" maxlength="16"/>
@@ -87,7 +119,33 @@
     <button onclick="handleCancel();">Cancel</button>
     </div>
+ -->
     <div id="map"></div>
     <!--The div element where the show/hide button appears -->
     <div id="hideButton">&#128065;</div>
+    <div id="map" class = "wrapper"></div>
+    <!-- The div element for the popup dialog -->
+    <div id="dialog" style="display:none;">
+        <span class="close">&times;</span>
+        <br>
+        <div id="cms-info-label" style="font-family:monospace">CMS ID: xxx LOCATION: </div>
+        <br>
+        <div><pre>Proposed:                              Current:</pre></div>
+        <input id='cmsID' value="" type='hidden'/>
+        <div id="message-input">
+        <input id="msgcontent1" size="16" maxlength="16" type="text"/><br><br>
+        <input id="msgcontent2" size="16" maxlength="16"/><br><br>
+        <input id="msgcontent3" size="16" maxlength="16"/>
+        </div>        
+        <div id="buttonPanel"    style="display: block;">
+        <button onclick="handleSubmit();">Send >></button><br>
+        <button onclick="handleClear();">Clear >></button><br>
+        <button onclick="handleClose();">Close </button>
+        </div>
+        <div id="message-display"  style="display: block;">
+         <textarea readonly id="msgdisplay1" maxlength="16" rows="1" cols="16"></textarea>
+         <textarea readonly id="msgdisplay2" maxlength="16" rows="1" cols="16"></textarea>
+         <textarea readonly id="msgdisplay3" maxlength="16" rows="1" cols="16"></textarea>
+        </div>
+    </div>
 
     <script>
@@ -98,9 +156,4 @@
 var map;
 var kMapStartupFile = "cmsStatusD12.json";
-//var src="http://git.tokomak.net:8888/raw-attachment/ticket/75/dyer1.txt"
-//var src="https://raw.githubusercontent.com/jdalbey/map-spikes/master/cms_two_signs.kml";
-//      var src = "https://www.arb.ca.gov/smp/met/kml/faa.kml";
-//      var src="https://raw.githubusercontent.com/jdalbey/map-spikes/master/la_airports.kml"
-//      var src = 'https://developers.google.com/maps/documentation/javascript/examples/kml/westcampus.kml';
 var blueFlag = "icon_cmsBlue.png";
 var yellowFlag = "icon_cmsYellow.png";
@@ -116,5 +169,4 @@
         center: centerPoint,
         zoom: 11,
-        /* mapTypeId: 'terrain', */
         mapTypeControl: false,
         streetViewControl: false
@@ -124,5 +176,5 @@
     setMarkers();
 }
-// Initialize the center button (to re-center the map)
+// Initialize the view/hide button 
 function initButton()
 {
@@ -131,5 +183,5 @@
     hideBtnDiv.title = 'Click to toggle cms view';
 
-    // Setup the click event listeners: reset center location and zoom factor
+    // Setup the click event listeners to toggle icon display
     hideBtnDiv.addEventListener('click', function() {
             showing = !showing;
@@ -178,14 +230,23 @@
                 function()
                 {
-                    var cmsName = document.getElementById('cms-name');
-                    cmsName.innerHTML = this.getTitle(); // put sign name in display
-                    cmsName.style.display = 'block'
-                    var cmsMsg = document.getElementById('cms-message');
-                    cmsMsg.style.display = 'block'
+                    var dialog = document.getElementById('dialog');
+                    dialog.style.display = 'block';
+                    // fetch the sequential msg #
                     cmsID = Number(this.getLabel());
+                    // Assign to the hidden field
+                    document.getElementById('cmsID').value = cmsID;
                     getMessage(cmsID); // note: this is async
-                    document.getElementById('cmsID').value = cmsID;
-                    var userInput = document.getElementById('userinput');
-                    userInput.style.display = 'block'
+                    document.getElementById('cms-info-label').innerHTML = "CMS id: " +
+                        cmsID + "&nbsp;&nbsp;&nbsp;LOCATION: " + this.title;
+                    // clear input fields
+                    document.getElementById('msgcontent1').value = "";
+                    document.getElementById('msgcontent2').value = "";
+                    document.getElementById('msgcontent3').value = "";
+                    document.getElementById('msgcontent1').focus();
+                    var span = document.getElementsByClassName("close")[0]
+                    // When the user clicks on <span> (x), close the modal
+                    span.onclick = function() {
+                      handleClose();
+                    }
                 });
         }
@@ -212,29 +273,34 @@
 function handleSubmit()
 {
-    // hide the display
-    document.getElementById('cms-message').style.display = 'none'
-    document.getElementById('userinput').style.display = 'none'
-    document.getElementById('cms-name').style.display = 'none'
     // recover the user's response
     var response1 = document.getElementById('msgcontent1').value;
     var response2 = document.getElementById('msgcontent2').value;
     var response3 = document.getElementById('msgcontent3').value;
-    saveMessage(response1 + "|" + response2 + "|" + response3);
-}
-
-function handleCancel()
+    var newMsg = response1+response2+response3;
+    if (newMsg.length == 0)
+    {
+        alert("Nothing to Send ... Proposed is empty.");
+    }
+    else
+    {
+        document.getElementById('msgdisplay1').value = response1;
+        document.getElementById('msgdisplay2').value = response2;
+        document.getElementById('msgdisplay3').value = response3;
+        saveMessage(response1 + "|" + response2 + "|" + response3);
+    }
+}
+
+function handleClose()
 {
     // hide the display
-    document.getElementById('cms-message').style.display = 'none'
-    document.getElementById('userinput').style.display = 'none'
-    document.getElementById('cms-name').style.display = 'none'
+    document.getElementById('dialog').style.display = 'none'
 }
 
 function handleClear()
 {
-    document.getElementById('msgcontent1').value = "";
-    document.getElementById('msgcontent2').value = "";
-    document.getElementById('msgcontent3').value = "";
-    document.getElementById('msgcontent1').focus();
+    document.getElementById('msgdisplay1').value = "";
+    document.getElementById('msgdisplay2').value = "";
+    document.getElementById('msgdisplay3').value = "";
+    saveMessage("||");
 }
 
@@ -264,12 +330,9 @@
         // select a message from json for the given cmsID
         console.log("get by cmsID=" + cmsID);
-        var cmsSign = document.getElementById('msgcontent1');
-        //cmsSign.innerHTML = messageList[cmsID];
+        var cmsSign = document.getElementById('msgdisplay1');
         messageparts = messageList[cmsID].split("|");
         cmsSign.value = messageparts[0];
-        document.getElementById('msgcontent2').value = messageparts[1];
-        document.getElementById('msgcontent3').value = messageparts[2];
-        cmsSign.style.display = 'block'
-        cmsSign.focus();
+        document.getElementById('msgdisplay2').value = messageparts[1];
+        document.getElementById('msgdisplay3').value = messageparts[2];
     });
 }
@@ -286,4 +349,5 @@
     else
         markerList[cmsID].setIcon(blueFlag);
+
     var xhttp = new XMLHttpRequest();
     xhttp.open("GET", "http://localhost:8080/cgi-bin/saveMessage.py?msg=" + JSON
