Index: mapviewerjava/mainframe.jsp
===================================================================
--- mapviewerjava/mainframe.jsp	(revision 4114)
+++ mapviewerjava/mainframe.jsp	(working copy)
@@ -484,6 +484,7 @@
                       webLayout.GetTitle(),
                       GetRootVirtualFolder(request) + "/mapagent/mapagent.fcgi",
                       webLayout.GetEnablePingServer()? int1 : int0,
+                      String.valueOf(site.GetSite().GetSessionTimeout()),
                       locale,
                       showToolbar ? int1 : int0,
                       showStatusbar ? int1 : int0,
Index: mapviewernet/mainframe.aspx
===================================================================
--- mapviewernet/mainframe.aspx	(revision 4114)
+++ mapviewernet/mainframe.aspx	(working copy)
@@ -485,6 +485,7 @@
                     webLayout.GetTitle(),
                     GetRootVirtualFolder(Request) + "/mapagent/mapagent.fcgi",
                     webLayout.GetEnablePingServer()? "1" : "0",
+                    site.GetSite().GetSessionTimeout().ToString(NumberFormatInfo.InvariantInfo),
                     locale,
                     showToolbar? "1" : "0",
                     showStatusbar? "1" : "0",
Index: mapviewerphp/mainframe.php
===================================================================
--- mapviewerphp/mainframe.php	(revision 4114)
+++ mapviewerphp/mainframe.php	(working copy)
@@ -481,6 +481,7 @@
                     $title,
                     GetRootVirtualFolder() . "/mapagent/mapagent.fcgi",
                     $enablePingServer? 1: 0,
+                    $site->GetSite()->GetSessionTimeout(),
                     $locale,
                     $showToolbar? 1: 0,
                     $showStatusbar? 1: 0,
Index: viewerfiles/mainframe.templ
===================================================================
--- viewerfiles/mainframe.templ	(revision 4114)
+++ viewerfiles/mainframe.templ	(working copy)
@@ -12,6 +12,7 @@
 var clientAgentName = 'Ajax Viewer';
 var webAgentAddress = '%s';
 var enablePingServer = %s;
+var serverSessionTimeout = %s;
 var locale = '%s';
 var hasToolbar = %s;
 var hasStatusbar = %s;
@@ -44,9 +45,6 @@
 
 var intervalID;
 var pingServerFailTime;
-var isStartPingServer;
-var thousandSeparator = "__#THOUSANDSEPARATOR#__";
-var decimalSeparator = "__#DECIMALSEPARATOR#__";
 
 function BasicCommand(name, action, icon, iconDisabled, tooltip, description)
 {
@@ -396,30 +394,17 @@
     OnSelectionChanged();
     DisplayMapSize();
     //ping server 
-    pingServerFailTime = 0;
-    isStartPingServer = false;
+    pingServerFailTime = 0;    
     if(enablePingServer)
     {    
-        GetServerSessionTimeout();
+        var pingServerInterval = serverSessionTimeout / 5 * 1000;  //Ping server 5 times each period. Timeout is returned in seconds. 
+        intervalID = window.setInterval(GetServerSessionTimeout, pingServerInterval);
     }
 }
 
 function handler() 
 {
-    if(this.readyState == 4 && this.status == 200) 
-    {    
-        if(!isStartPingServer)
-        {
-            var num = ParseLocalizedFloat(this.responseText);
-            if(!isNaN(num) && num != 0)
-            {
-                var pingServerInterval = num / 5 * 1000;  //Ping server 5 times each period. Timeout is returned in seconds. 
-                intervalID = window.setInterval(GetServerSessionTimeout, pingServerInterval);
-                isStartPingServer = true;
-            }
-        }
-    }
-    else if (this.readyState == 4 && this.status != 200) 
+    if(this.readyState == 4 && this.status != 200) 
     {        
         // error happens
         if(pingServerFailTime < 6)
@@ -428,8 +413,7 @@
         }
         else
         {
-            if(isStartPingServer)
-                window.clearInterval(intervalID);
+            window.clearInterval(intervalID);
         }
     }
 }

