[mapguide-commits] r6184 - trunk/MgDev/Web/src/mapadmin

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Wed Oct 26 02:07:06 EDT 2011


Author: liuar
Date: 2011-10-25 23:07:06 -0700 (Tue, 25 Oct 2011)
New Revision: 6184

Modified:
   trunk/MgDev/Web/src/mapadmin/
   trunk/MgDev/Web/src/mapadmin/performanceReport.php
   trunk/MgDev/Web/src/mapadmin/performanceReport_Export.php
   trunk/MgDev/Web/src/mapadmin/performanceReport_GetResult.php
   trunk/MgDev/Web/src/mapadmin/resizablepagecomponents.php
Log:
On behalf of Ted Yang.
fix the ticket 1768: http://trac.osgeo.org/mapguide/ticket/1768
	
The submission is mainly fixed some UI defects:
1. In the layer information table, the selected row should be highlighted, and the move over highlighted is removed 
2. For the scale, it should keep 4 decimals 
3. 0 only is invalid for the scale value
4. if no filter was applied, then "No filter was applied to this layer." should be displayed
5. refine some code structure, replace the <style>section and <script> section in performanceReport.php




Property changes on: trunk/MgDev/Web/src/mapadmin
___________________________________________________________________
Added: svn:ignore
   + ProfilingAPI_GUI_part1.patch


Modified: trunk/MgDev/Web/src/mapadmin/performanceReport.php
===================================================================
--- trunk/MgDev/Web/src/mapadmin/performanceReport.php	2011-10-26 03:19:04 UTC (rev 6183)
+++ trunk/MgDev/Web/src/mapadmin/performanceReport.php	2011-10-26 06:07:06 UTC (rev 6184)
@@ -181,1812 +181,1837 @@
 <html>
     <?php OutputHeader( $pageTitle ); ?>
 <body>
-    <div id="bgDiv" class="bgDivStyle"></div>
-    <table cellspacing="0" cellpadding="0" border="0" class="main">
-        <tr>
-            <?php DisplaySiteHeader( false, true, true, true, $formName, $homePage ); ?>
-        </tr>
-        <tr>
-            <?php DisplayLefthandSash( $menuCategory ); ?>
+    <div>
+        <style type="text/css">
+        .layerResultsHeaderStyle table,.layerResultsHeaderStyle td
+        {
+                font:100% Arial, Helvetica, sans-serif;
+        }
 
-            <!-- Contents Area -->
-            <?php BeginContentArea( $formName ); ?>
+        .layerResultsHeaderStyle table
+        {
+            width:100%;
+            border-collapse:collapse;
+            margin: 0px;
+            padding: 0px;
+        }
 
-            <?php
-                  DeclareHiddenVars( $pageName );
-                  DisplayTitleBar( $pageTitle, $helpPage );           
-                  DisplayConfirmationMsg( $confirmationMsg );
-                  DisplayErrorMsg( $errorMsg );                
-            ?>
-            
-            <style type="text/css">
-                .layerResultsHeaderStyle table,.layerResultsHeaderStyle td
-                {
-                        font:100% Arial, Helvetica, sans-serif;
-                }
+        .layerResultsHeaderStyle th
+        {
+            text-align:center;
+            padding:.5em;
+            border-top:1px solid #CCCCCC;
+            background-color:#EEEEEE;
+            border-bottom: none;
+            cursor:  default;
+        }
 
-                .layerResultsHeaderStyle table
-                {
-                    width:100%;
-                    border-collapse:collapse;
-                    margin: 0px;
-                    padding: 0px;
-                }
+        .layerResultsStyle table,.layerResultsStyle td
+        {
+                font:100% Arial, Helvetica, sans-serif;
+        }
 
-                .layerResultsHeaderStyle th
-                {
-                    text-align:center;
-                    padding:.5em;
-                    border-top:1px solid #CCCCCC;
-                    background-color:#EEEEEE;
-                    border-bottom: none;
-                    cursor:  default;
-                }
+        .layerResultsStyle table
+        {
+            width:100%;
+            border-collapse:collapse;
+            margin:1em 0;
+        }
 
-                .layerResultsStyle table,.layerResultsStyle td
-                {
-                        font:100% Arial, Helvetica, sans-serif;
-                }
+        .layerResultsStyle th,.layerResultsStyle td
+        {
+            text-align:left;
+            padding:.5em;
+            border:1px solid #CCCCCC;
+        }
 
-                .layerResultsStyle table
-                {
-                    width:100%;
-                    border-collapse:collapse;
-                    margin:1em 0;
-                }
+        .layerResultsStyle th
+        {
+            background-color:#EEEEEE;
+        }
 
-                .layerResultsStyle th,.layerResultsStyle td
-                {
-                    text-align:left;
-                    padding:.5em;
-                    border:1px solid #CCCCCC;
-                }
+        .layerResultsStyle tr.even td
+        {
+            background:#EEEEEE;
+        }      
 
-                .layerResultsStyle th
-                {
-                    background-color:#EEEEEE;
-                }
+        .layerResultsStyle tr.odd td
+        {
+            background:#FFFFFF;
+        }
 
-                .layerResultsStyle tr.even td
-                {
-                    background:#EEEEEE;
-                }
+        /* use this if you want to apply different styleing to empty table cells*/
+        .layerResultsStyle td.empty,.layerResultsStyle tr.odd td.empty,.layerResultsStyle tr.even td.empty
+        {
+            background:#FFFFFF;
+        }
 
-                .layerResultsStyle tr.odd td
-                {
-                    background:#FFFFFF;
-                }
+        #layerBody
+        {
+             Height:    300px;
+             margin:    0px;
+             padding:   0px;
+             overFlow:  auto;
+             cursor: pointer;
+        }
 
-                .layerResultsStyle th.over, .layerResultsStyle tr.even th.over,.layerResultsStyle tr.odd th.over
-                {
-                    background:#b4c6de;
-                }
+        .mapDefinitionResultTableStyle tr
+        {
+            height: 35px;
+        }
+        
+        .mapDefinitionResultTableStyle td
+        {
+            text-align: left;
+            vertical-align: top;
+        }
 
+        .mapDefinitionResultTableStyle
+        {
+            font-size: medium;
+        }
 
-                .layerResultsStyle td.over,.layerResultsStyle tr.even td.over,.layerResultsStyle tr.odd td.over
-                {
-                    background:#b4c6de;
-                }
+        .hideTooltip
+        {
+            display: none;
+        }
 
-                /* use this if you want to apply different styleing to empty table cells*/
-                .layerResultsStyle td.empty,.layerResultsStyle tr.odd td.empty,.layerResultsStyle tr.even td.empty
-                {
-                    background:#FFFFFF;
-                }
+        .showTooltip
+        {
+            position: absolute;
+            padding: 2px 4px 4px 4px;
+            background-color: #ffffee;
+            color: black;
+            border-top: 1px solid #999999;
+            border-right: 2px solid #666666;
+            border-bottom: 2px solid #666666;
+            border-left: 1px solid #666666;
+            z-index: 100;
+            line-height: 1.0;
+            white-space: normal;
+            font-weight: normal;
+        }
 
-                #layerBody
+        .mapNameStyle
+        {
+            background: transparent url('images/mapDefinitionNameInfo.png') no-repeat right;
+            padding-right: 20px;
+            cursor:default;
+        }
+
+        .warnMsgStyle
+        {
+            border-color: red;
+        }
+
+        .bgDivStyle
+        {
+            position:fixed;
+            left:0;
+            top:0;
+            background-color:#777777;
+            filter:alpha(Opacity=30);
+            opacity:0.6;
+            z-index:10000;
+            display: none;
+        }
+
+        .mapViewerDialogStyle
+        {
+            background-color:white;
+            border: 1px solid #000000;
+            padding: 0px;
+            margin: 0px;
+            position:absolute;
+            z-index:10000;
+            width:800px;
+            height:600px;
+            text-align:center;
+            line-height:25px;
+            display: none;
+        }
+
+        .mapSelectorBtnStyle
+        {
+            background-color:red;
+            border: 1px solid #000000;
+            padding: 0px;
+            margin: 0px;
+            position:absolute;
+            z-index:100001;
+            width:200px;
+            height:60px;
+            text-align:center;
+            line-height:25px;
+            top: 400px;
+            left: 400px;
+        }
+
+        #ResultNotMatchWrn
+        {
+            border: 2px solid #CCCCCC;
+            background: #FFFEBB url('images/warning.png') no-repeat left top;
+            margin-top: 25px;
+            padding-left: 30px;
+            display: none;
+            width: auto;
+        }
+    </style>
+    </div>
+    <script type="text/javascript">
+        var Common = {
+            getItself: function(id)
+            {
+                return "string" == typeof id ? document.getElementById(id) : id;
+            },
+
+            getEvent: function()
+            {
+                if (document.all)
                 {
-                     Height:    300px;
-                     margin:    0px;
-                     padding:   0px;
-                     overFlow:  auto;
-                     cursor: pointer;
+                    return window.event;
                 }
-                
-                .mapDefinitionResultTableStyle tr
+                func = getEvent.caller;
+                while (func != null)
                 {
-                    height: 35px;
+                    var arg0 = func.arguments[0];
+                    if (arg0)
+                    {
+                        if ((arg0.constructor == Event || arg0.constructor == MouseEvent) || (typeof (arg0) == "object" && arg0.preventDefault && arg0.stopPropagation))
+                        {
+                            return arg0;
+                        }
+                    }
+                    func = func.caller;
                 }
-                .mapDefinitionResultTableStyle td
-                {
-                    text-align: left;
-                    vertical-align: top;
-                }
+                return null;
+            },
 
-                .mapDefinitionResultTableStyle
+            getMousePos: function(ev)
+            {
+                if (!ev)
                 {
-                    font-size: medium;
+                    ev = this.getEvent();
                 }
-
-                .hideTooltip
+                if (ev.pageX || ev.pageY)
                 {
-                    display: none;
+                    return {x: ev.pageX , y: ev.pageY};
                 }
 
-                .showTooltip
+                if (document.documentElement.scrollLeft && document.documentElement.scrollTop)
                 {
-                    position: absolute;
-                    padding: 2px 4px 4px 4px;
-                    background-color: #ffffee;
-                    color: black;
-                    border-top: 1px solid #999999;
-                    border-right: 2px solid #666666;
-                    border-bottom: 2px solid #666666;
-                    border-left: 1px solid #666666;
-                    z-index: 100;
-                    line-height: 1.0;
-                    white-space: normal;
-                    font-weight: normal;
+                    return {
+                        x: ev.clientX + document.documentElement.scrollLeft - document.documentElement.clientLeft,
+                        y: ev.clientY + document.documentElement.scrollTop - document.documentElement.clientTop
+                    };
                 }
-
-                .mapNameStyle
+                else if (document.body)
                 {
-                    background: transparent url('images/mapDefinitionNameInfo.png') no-repeat right;
-                    padding-right: 20px;
-                    cursor:default;
+                    return {
+                        x: ev.clientX + document.body.scrollLeft - document.body.clientLeft,
+                        y: ev.clientY + document.body.scrollTop - document.body.clientTop
+                    };
                 }
+            },
 
-                .warnMsgStyle
+            getElementPos: function(el)
+            {
+                el = this.getItself(el);
+                var xValue = 0, yValue = 0;
+                do
                 {
-                    border-color: red;
-                }
+                    xValue += el.offsetLeft;
+                    yValue += el.offsetTop;
+                } while ((el = el.offsetParent));
 
-                .bgDivStyle
-                {
-                    position:fixed;
-                    left:0;
-                    top:0;
-                    background-color:#777777;
-                    filter:alpha(Opacity=30);
-                    opacity:0.6;
-                    z-index:10000;
-                    display: none;
-                }
+                return { x: xValue, y: yValue };
+            }
+        }
 
-                .mapViewerDialogStyle
-                {
-                    background-color:white;
-                    border: 1px solid #000000;
-                    padding: 0px;
-                    margin: 0px;
-                    position:absolute;
-                    z-index:10000;
-                    width:800px;
-                    height:600px;
-                    text-align:center;
-                    line-height:25px;
-                    display: none;
-                }
+        function CollapsibleTabClick(tabId,contentId)
+        {
+            var collapseImage = document.getElementById(tabId);
+            var content = document.getElementById(contentId);
 
-                .mapSelectorBtnStyle
-                {
-                    background-color:red;
-                    border: 1px solid #000000;
-                    padding: 0px;
-                    margin: 0px;
-                    position:absolute;
-                    z-index:100001;
-                    width:200px;
-                    height:60px;
-                    text-align:center;
-                    line-height:25px;
-                    top: 400px;
-                    left: 400px;
-                }
+            if (collapseImage.alt == "down")
+            {
+                collapseImage.alt = "left";
+                collapseImage.src = "images/arrow_left.png";
+                content.style.display = "none";
+            }
+            else
+            {
+                collapseImage.alt = "down";
+                collapseImage.src = "images/arrow_down.png";
+                content.style.display = "block";
+            }
+        }
 
-                #ResultNotMatchWrn
-                {
-                    border: 2px solid #CCCCCC;
-                    background: #FFFEBB url('images/warning.png') no-repeat left top;
-                    margin-top: 25px;
-                    padding-left: 30px;
-                    display: none;
-                    width: auto;
-                }
+        function CollapseSettingTab()
+        {
+            var collapseImage = document.getElementById("settings_CollapseImage_ID");
+            var content = document.getElementById("settingsContent");
 
-            </style>
-        
-            <script type="text/javascript">
-                var Common = {
-                    getItself: function(id)
-                    {
-                        return "string" == typeof id ? document.getElementById(id) : id;
-                    },
+            collapseImage.alt = "left";
+            collapseImage.src = "images/arrow_left.png";
 
-                    getEvent: function()
-                    {
-                        if (document.all)
-                        {
-                            return window.event;
-                        }
-                        func = getEvent.caller;
-                        while (func != null)
-                        {
-                            var arg0 = func.arguments[0];
-                            if (arg0)
-                            {
-                                if ((arg0.constructor == Event || arg0.constructor == MouseEvent) || (typeof (arg0) == "object" && arg0.preventDefault && arg0.stopPropagation))
-                                {
-                                    return arg0;
-                                }
-                            }
-                            func = func.caller;
-                        }
-                        return null;
-                    },
+            content.style.display = "none";
+        }
 
-                    getMousePos: function(ev)
-                    {
-                        if (!ev)
-                        {
-                            ev = this.getEvent();
-                        }
-                        if (ev.pageX || ev.pageY)
-                        {
-                            return {x: ev.pageX , y: ev.pageY};
-                        }
+        //As soon as the user changed the settings,
+        //an inline alert message is displayed between the Action buttons and the “Results” title
+        function SetResultNotMatchWarningMsg(visible)
+        {
+            var wrnMsg = document.getElementById("ResultNotMatchWrn");
+            if(visible)
+            {
+                wrnMsg.style.display = "block";
+            }
+            else
+            {
+                wrnMsg.style.display = "none";
+            }
+        }
 
-                        if (document.documentElement.scrollLeft && document.documentElement.scrollTop)
-                        {
-                            return {
-                                x: ev.clientX + document.documentElement.scrollLeft - document.documentElement.clientLeft,
-                                y: ev.clientY + document.documentElement.scrollTop - document.documentElement.clientTop
-                            };
-                        }
-                        else if (document.body)
-                        {
-                            return {
-                                x: ev.clientX + document.body.scrollLeft - document.body.clientLeft,
-                                y: ev.clientY + document.body.scrollTop - document.body.clientTop
-                            };
-                        }
-                    },
-                    
-                    getElementPos: function(el)
-                    {
-                        el = this.getItself(el);
-                        var xValue = 0, yValue = 0;
-                        do
-                        {
-                            xValue += el.offsetLeft;
-                            yValue += el.offsetTop;
-                        } while ((el = el.offsetParent));
+        //Determine whether to show the "settings changed" inline warning message or not
+        function ShowReportWarningMsg()
+        {
+            var scale = document.getElementById("txtScale");
+            var centerPoint = document.getElementById("txtCenterPoint");
+            var mapSelector = document.getElementById("mapSelector_DO_NOT_PERSIST");
 
-                        return { x: xValue, y: yValue };
-                    }
+            var mapIdLastRun = document.getElementById("lastRunMapId");
+            var centerPointLastRun = document.getElementById("lastRunCenterPoint");
+            var scaleLastRun = document.getElementById("lastRunScale");
+
+            var currentMapIdValue = RemoveSpace(mapSelector.value);
+            var currentCenterPointValue = RemoveSpace(centerPoint.value);
+            var currentScaleValue = RemoveSpace(scale.value);
+
+            //if the value of the mapIdLastRun textbox is not empty,
+            //then the performance report has been ran at least once
+            if(mapIdLastRun.value != "")
+            {
+                //if the map resource ID is not match then show the warning message
+                if(currentMapIdValue != mapIdLastRun.value)
+                {
+                    SetResultNotMatchWarningMsg(true);
+                    return;
                 }
 
-                function CollapsibleTabClick(tabId,contentId)
+                //if the center point is not match then show the warning message
+                if(ValidateCenterPoint(false))
                 {
-                    var collapseImage = document.getElementById(tabId);
-                    var content = document.getElementById(contentId);
+                    var point = currentCenterPointValue.split("*");
+                    var x = point[0];
+                    var y = point[1];
 
-                    if (collapseImage.alt == "down")
+                    currentCenterPointValue = RemoveSpace( FormatCenterPoint(x,y,2) );
+
+                    if(currentCenterPointValue != centerPointLastRun.value)
                     {
-                        collapseImage.alt = "left";
-                        collapseImage.src = "images/arrow_left.png";
-                        content.style.display = "none";
+                        SetResultNotMatchWarningMsg(true);
+                        return;
                     }
-                    else
-                    {
-                        collapseImage.alt = "down";
-                        collapseImage.src = "images/arrow_down.png";
-                        content.style.display = "block";
-                    }
                 }
-
-                function CollapseSettingTab()
+                else
                 {
-                    var collapseImage = document.getElementById("settings_CollapseImage_ID");
-                    var content = document.getElementById("settingsContent");
-
-                    collapseImage.alt = "left";
-                    collapseImage.src = "images/arrow_left.png";
-
-                    content.style.display = "none";
+                    SetResultNotMatchWarningMsg(true);
+                    return;
                 }
 
-                //As soon as the user changed the settings,
-                //an inline alert message is displayed between the Action buttons and the “Results” title
-                function SetResultNotMatchWarningMsg(visible)
+                //if the scale is not match then show the warning message
+                if(ValidateScale(false))
                 {
-                    var wrnMsg = document.getElementById("ResultNotMatchWrn");
-                    if(visible)
+                    currentScaleValue = RemoveSpace( FormatNumber(currentScaleValue,4) );
+
+                    if(currentScaleValue != scaleLastRun.value)
                     {
-                        wrnMsg.style.display = "block";
+                       SetResultNotMatchWarningMsg(true);
+                       return;
                     }
-                    else
-                    {
-                        wrnMsg.style.display = "none";
-                    }
                 }
-
-                //Determine whether to show the "settings changed" inline warning message or not
-                function ShowReportWarningMsg()
+                else 
                 {
-                    var scale = document.getElementById("txtScale");
-                    var centerPoint = document.getElementById("txtCenterPoint");
-                    var mapSelector = document.getElementById("mapSelector_DO_NOT_PERSIST");
+                    SetResultNotMatchWarningMsg(true);
+                    return;
+                }
 
-                    var mapIdLastRun = document.getElementById("lastRunMapId");
-                    var centerPointLastRun = document.getElementById("lastRunCenterPoint");
-                    var scaleLastRun = document.getElementById("lastRunScale");
+                SetResultNotMatchWarningMsg(false);
+            }
+        }
 
-                    var currentMapIdValue = RemoveSpace(mapSelector.value);
-                    var currentCenterPointValue = RemoveSpace(centerPoint.value);
-                    var currentScaleValue = RemoveSpace(scale.value);
+        function SaveLastRunSettings()
+        {
+            var scale = document.getElementById("txtScale");
+            var centerPoint = document.getElementById("txtCenterPoint");
+            var mapSelector = document.getElementById("mapSelector_DO_NOT_PERSIST");
 
-                    //if the value of the mapIdLastRun textbox is not empty,
-                    //then the performance report has been ran at least once
-                    if(mapIdLastRun.value != "")
-                    {
-                        //if the map resource ID is not match then show the warning message
-                        if(currentMapIdValue != mapIdLastRun.value)
-                        {
-                            SetResultNotMatchWarningMsg(true);
-                            return;
-                        }
+            var mapIdLastRun = document.getElementById("lastRunMapId");
+            var centerPointLastRun = document.getElementById("lastRunCenterPoint");
+            var scaleLastRun = document.getElementById("lastRunScale");
 
-                        //if the center point is not match then show the warning message
-                        if(ValidateCenterPoint(false))
-                        {
-                            var point = currentCenterPointValue.split("*");
-                            var x = point[0];
-                            var y = point[1];
+            mapIdLastRun.value = RemoveSpace(mapSelector.value);
+            centerPointLastRun.value = RemoveSpace(centerPoint.value);
+            scaleLastRun.value = RemoveSpace(scale.value);
+        }
 
-                            currentCenterPointValue = RemoveSpace( FormatCenterPoint(x,y,2) );
+        function ExpandResultsTab()
+        {
+            var content = document.getElementById("resultsTab");
+            content.style.display = "block";
+        }
 
-                            if(currentCenterPointValue != centerPointLastRun.value)
-                            {
-                                SetResultNotMatchWarningMsg(true);
-                                return;
-                            }
-                        }
-                        else
-                        {
-                            SetResultNotMatchWarningMsg(true);
-                            return;
-                        }
+        function MapResoucesNameSelectChange()
+        {
+            var tipDiv = document.getElementById("mapResourceNameTip");
+            var mapDefinitonSelector = document.getElementById("mapSelector_DO_NOT_PERSIST");
 
-                        //if the scale is not match then show the warning message
-                        if(ValidateScale(false))
-                        {
-                            currentScaleValue = RemoveSpace( FormatNumber(currentScaleValue,0) );
+            var settingsBtn = document.getElementById("mapViewerBtn");
+            var centerPoint = document.getElementById("txtCenterPoint");
+            var scale = document.getElementById("txtScale");
 
-                            if(currentScaleValue != scaleLastRun.value)
-                            {
-                               SetResultNotMatchWarningMsg(true);
-                               return;
-                            }
-                        }
-                        else 
-                        {
-                            SetResultNotMatchWarningMsg(true);
-                            return;
-                        }
+            //If another map is selected, then the center point and scale should be cleared of values,
+            //that is return to default values “enter center point”  and “enter scale”.
+            if(centerPoint.value != "Enter center point")
+            {
+                centerPoint.value = "Enter center point";
+            }
 
-                        SetResultNotMatchWarningMsg(false);
-                    }
-                }
+            if(scale.value != "Enter scale")
+            {
+                scale.value = "Enter scale";
+            }
 
-                function SaveLastRunSettings()
-                {
-                    var scale = document.getElementById("txtScale");
-                    var centerPoint = document.getElementById("txtCenterPoint");
-                    var mapSelector = document.getElementById("mapSelector_DO_NOT_PERSIST");
+            //show the map definition ID by the side of the map selector
+            if(mapDefinitonSelector.selectedIndex >= 0)
+            {
+                tipDiv.innerHTML = mapDefinitonSelector.options[mapDefinitonSelector.selectedIndex].value;
+                //clear warning message
+                var mapSelectorWarnMsg = document.getElementById("selectMapResourceWarningMessage");
+                mapSelectorWarnMsg.innerHTML = "";
 
-                    var mapIdLastRun = document.getElementById("lastRunMapId");
-                    var centerPointLastRun = document.getElementById("lastRunCenterPoint");
-                    var scaleLastRun = document.getElementById("lastRunScale");
+                //text input Controls in Step 2 are enabled once a map resource is selected in Step 1.
+                centerPoint.removeAttribute("disabled");
+                scale.removeAttribute("disabled");
+                settingsBtn.removeAttribute("disabled");
 
-                    mapIdLastRun.value = RemoveSpace(mapSelector.value);
-                    centerPointLastRun.value = RemoveSpace(centerPoint.value);
-                    scaleLastRun.value = RemoveSpace(scale.value);
-                }
-
-                function ExpandResultsTab()
+                var visible = ValidateScale(false);
+                if(visible)
                 {
-                    var content = document.getElementById("resultsTab");
-                    content.style.display = "block";
+                   visible = ValidateCenterPoint(false);
                 }
 
-                function MapResoucesNameSelectChange()
-                {
-                    var tipDiv = document.getElementById("mapResourceNameTip");
-                    var mapDefinitonSelector = document.getElementById("mapSelector_DO_NOT_PERSIST");
+                SetRunButtonState(visible);
+            }
+            else
+            {
+                tipDiv.innerHTML = "";
+                //when user clear the settings, the mapselector is not seleced and the text area is disabled
+                settingsBtn.setAttribute("disabled","disabled");
+                centerPoint.setAttribute("disabled", "disabled");
+                scale.setAttribute("disabled", "disabled");
 
-                    var settingsBtn = document.getElementById("mapViewerBtn");
-                    var centerPoint = document.getElementById("txtCenterPoint");
-                    var scale = document.getElementById("txtScale");
+                SetRunButtonState(false);
+            }
 
-                    //If another map is selected, then the center point and scale should be cleared of values,
-                    //that is return to default values “enter center point”  and “enter scale”.
-                    if(centerPoint.value != "Enter center point")
-                    {
-                        centerPoint.value = "Enter center point";
-                    }
+            ShowReportWarningMsg();
 
-                    if(scale.value != "Enter scale")
-                    {
-                        scale.value = "Enter scale";
-                    }
+            ClearWrnMsg();
+        }
 
-                    //show the map definition ID by the side of the map selector
-                    if(mapDefinitonSelector.selectedIndex >= 0)
-                    {
-                        tipDiv.innerHTML = mapDefinitonSelector.options[mapDefinitonSelector.selectedIndex].value;
-                        //clear warning message
-                        var mapSelectorWarnMsg = document.getElementById("selectMapResourceWarningMessage");
-                        mapSelectorWarnMsg.innerHTML = "";
+        function ClearWrnMsg()
+        {
+            var scale = document.getElementById("txtScale");
+            scale.className="";
 
-                        //text input Controls in Step 2 are enabled once a map resource is selected in Step 1.
-                        centerPoint.removeAttribute("disabled");
-                        scale.removeAttribute("disabled");
-                        settingsBtn.removeAttribute("disabled");
+            var centerPoint = document.getElementById("txtCenterPoint");
+            centerPoint.className="";
 
-                        var visible = ValidateScale(false);
-                        if(visible)
-                        {
-                           visible = ValidateCenterPoint(false);
-                        }
+            var scaleWarnMsg = document.getElementById("scaleWarnMessage");
+            scaleWarnMsg.innerHTML = "";
 
-                        SetRunButtonState(visible);
-                    }
-                    else
-                    {
-                        tipDiv.innerHTML = "";
-                        //when user clear the settings, the mapselector is not seleced and the text area is disabled
-                        settingsBtn.setAttribute("disabled","disabled");
-                        centerPoint.setAttribute("disabled", "disabled");
-                        scale.setAttribute("disabled", "disabled");
+            var centerPointWarnMsg = document.getElementById("centerPointWarnMessage");
+            centerPointWarnMsg.innerHTML = "";
+        }
 
-                        SetRunButtonState(false);
-                    }
+        //check the value for the scale is resonable or not
+        function ValidateScale(needFormat)
+        {
+            var result = false;
 
-                    ShowReportWarningMsg();
+            var scale = document.getElementById("txtScale");
+            var scaleWarnMsg = document.getElementById("scaleWarnMessage");
+            var scaleValue = RemoveSpace(scale.value);
 
-                    ClearWrnMsg();
+            if("" == scaleValue)
+            {
+                result = false;
+                scaleWarnMsg.innerHTML = "A map scale was not entered.";
+                scale.className="warnMsgStyle";
+            }
+            else
+            {
+                //positive float
+                var regFloat =/^(\+)?\d+(\.(\d)+)?$/;
+                result = regFloat.test(scaleValue);
+                
+                if("0" == scaleValue)
+                {
+                    result = false;
                 }
+                
+                if(result)
+                {
+                    if( 0.0 == parseFloat(scaleValue))
+                        result = false;
+                }
 
-                function ClearWrnMsg()
+                if(!result)
                 {
-                    var scale = document.getElementById("txtScale");
+                    scaleWarnMsg.innerHTML = "Not a valid map scale.";
+                    scale.className = "warnMsgStyle";
+                }
+                else
+                {
+                    if(needFormat)
+                    {
+                        scale.value = FormatNumber(scaleValue,4);
+                    }
+
+                    scaleWarnMsg.innerHTML = "";
                     scale.className="";
+                }
+            }
 
-                    var centerPoint = document.getElementById("txtCenterPoint");
-                    centerPoint.className="";
+            return result;
+        }
 
-                    var scaleWarnMsg = document.getElementById("scaleWarnMessage");
-                    scaleWarnMsg.innerHTML = "";
+        //check the value for the center point is resonable or not
+        function ValidateCenterPoint(needFormat)
+        {
+            var result = false;
 
-                    var centerPointWarnMsg = document.getElementById("centerPointWarnMessage");
-                    centerPointWarnMsg.innerHTML = "";
-                }
+            var centerPoint = document.getElementById("txtCenterPoint");
+            var centerPointWarnMsg = document.getElementById("centerPointWarnMessage");
+            var centerPointValue = RemoveSpace(centerPoint.value);
 
-                //check the value for the scale is resonable or not
-                function ValidateScale(needFormat)
+            if("" == centerPointValue)
+            {
+                result = false;
+                centerPointWarnMsg.innerHTML = "A center point was not entered.";
+                centerPoint.className = "warnMsgStyle";
+            }
+            else
+            {
+                try
                 {
-                    var result = false;
-                   
-                    var scale = document.getElementById("txtScale");
-                    var scaleWarnMsg = document.getElementById("scaleWarnMessage");
-                    var scaleValue = RemoveSpace(scale.value);
-
-                    if("" == scaleValue)
+                    var point = centerPointValue.split("*");
+                    if(point.length != 2)
                     {
                         result = false;
-                        scaleWarnMsg.innerHTML = "A map scale was not entered.";
-                        scale.className="warnMsgStyle";
+                        centerPointWarnMsg.innerHTML = "Not a valid center point.";
+                        centerPoint.className = "warnMsgStyle";
                     }
                     else
                     {
-                        //positive float
-                        var regFloat =/^(\+)?\d+(\.(\d)+)?$/;
-                        result = regFloat.test(scaleValue);
+                        var x = point[0];
+                        var y = point[1];
 
+                        result = !(IsNotFloat(x)||IsNotFloat(y));
+
                         if(!result)
                         {
-                            scaleWarnMsg.innerHTML = "Not a valid map scale.";
-                            scale.className = "warnMsgStyle";
+                            centerPointWarnMsg.innerHTML = "Not a valid center point.";
+                            centerPoint.className="warnMsgStyle";
                         }
                         else
                         {
                             if(needFormat)
                             {
-                                scale.value = FormatNumber(scaleValue,0);
+                                centerPoint.value = FormatCenterPoint(x,y,2);
                             }
 
-                            scaleWarnMsg.innerHTML = "";
-                            scale.className="";
+                            centerPointWarnMsg.innerHTML = "";
+                            centerPoint.className = "";
                         }
                     }
-
-                    return result;
                 }
+                catch(e)
+                {
+                    result = false;
+                    centerPointWarnMsg.innerHTML = "Not a valid center point.";
+                    centerPoint.className = "warnMsgStyle";
+                }
+            }
 
-                //check the value for the center point is resonable or not
-                function ValidateCenterPoint(needFormat)
+            return result;
+        }
+
+        function ScaleTxtKeyUp()
+        {
+            //when the scale textbox has new input
+            //get the new value and check if the input is resonable
+            var visible = ValidateScale(false);
+
+            //check other settings to see if it is reasonable
+            if(visible)
+            {
+                var mapDefinitonSelector = document.getElementById("mapSelector_DO_NOT_PERSIST");
+                if(mapDefinitonSelector.selectedIndex >= 0)
                 {
-                    var result = false;
+                    visible = ValidateCenterPoint(false);
+                }
+                else
+                {
+                    visible=false;
+                }
+            }
 
-                    var centerPoint = document.getElementById("txtCenterPoint");
-                    var centerPointWarnMsg = document.getElementById("centerPointWarnMessage");
-                    var centerPointValue = RemoveSpace(centerPoint.value);
+            SetRunButtonState(visible);
 
-                    if("" == centerPointValue)
-                    {
-                        result = false;
-                        centerPointWarnMsg.innerHTML = "A center point was not entered.";
-                        centerPoint.className = "warnMsgStyle";
-                    }
-                    else
-                    {
-                        try
-                        {
-                            var point = centerPointValue.split("*");
-                            if(point.length != 2)
-                            {
-                                result = false;
-                                centerPointWarnMsg.innerHTML = "Not a valid center point.";
-                                centerPoint.className = "warnMsgStyle";
-                            }
-                            else
-                            {
-                                var x = point[0];
-                                var y = point[1];
-                              
-                                result = !(IsNotFloat(x)||IsNotFloat(y));
+            //show the "settings changed" inline warning message depends on new setting
+            ShowReportWarningMsg();
+        }
 
-                                if(!result)
-                                {
-                                    centerPointWarnMsg.innerHTML = "Not a valid center point.";
-                                    centerPoint.className="warnMsgStyle";
-                                }
-                                else
-                                {
-                                    if(needFormat)
-                                    {
-                                        centerPoint.value = FormatCenterPoint(x,y,2);
-                                    }
-                                        
-                                    centerPointWarnMsg.innerHTML = "";
-                                    centerPoint.className = "";
-                                }
-                            }
-                        }
-                        catch(e)
-                        {
-                            result = false;
-                            centerPointWarnMsg.innerHTML = "Not a valid center point.";
-                            centerPoint.className = "warnMsgStyle";
-                        }
-                    }
+        function CenterPointTxtKeyUp()
+        {
+            var visible=ValidateCenterPoint(false);
 
-                    return result;
+            //check other settings to see if it is reasonable
+            if(visible)
+            {
+                var mapDefinitonSelector = document.getElementById("mapSelector_DO_NOT_PERSIST");
+                if(mapDefinitonSelector.selectedIndex >= 0)
+                {
+                    visible = ValidateScale(false);
                 }
-
-                function ScaleTxtKeyUp()
+                else
                 {
-                    //when the scale textbox has new input
-                    //get the new value and check if the input is resonable
-                    var visible = ValidateScale(false);
+                    visible=false;
+                }
+            }
 
-                    //check other settings to see if it is reasonable
-                    if(visible)
-                    {
-                        var mapDefinitonSelector = document.getElementById("mapSelector_DO_NOT_PERSIST");
-                        if(mapDefinitonSelector.selectedIndex >= 0)
-                        {
-                            visible = ValidateCenterPoint(false);
-                        }
-                        else
-                        {
-                            visible=false;
-                        }
-                    }
+            SetRunButtonState(visible);
 
-                    SetRunButtonState(visible);
+            //show the "settings changed" inline warning message depends on new setting
+            ShowReportWarningMsg();
+        }
 
-                    //show the "settings changed" inline warning message depends on new setting
-                    ShowReportWarningMsg();
-                }
+        function ScaleFocus()
+        {
+            var scale = document.getElementById("txtScale");
 
-                function CenterPointTxtKeyUp()
-                {
-                    var visible=ValidateCenterPoint(false);
+            if( scale.value=="Enter scale")
+            {
+                scale.value="";
+            }
+        }
 
-                    //check other settings to see if it is reasonable
-                    if(visible)
-                    {
-                        var mapDefinitonSelector = document.getElementById("mapSelector_DO_NOT_PERSIST");
-                        if(mapDefinitonSelector.selectedIndex >= 0)
-                        {
-                            visible = ValidateScale(false);
-                        }
-                        else
-                        {
-                            visible=false;
-                        }
-                    }
+        function CenterPointFocus()
+        {
+            var centerPoint = document.getElementById("txtCenterPoint");
 
-                    SetRunButtonState(visible);
+            if( centerPoint.value=="Enter center point")
+            {
+                centerPoint.value="";
+            }
+        }
 
-                    //show the "settings changed" inline warning message depends on new setting
-                    ShowReportWarningMsg();
-                }
+        var checkMapFrameLoadedInterval = null;
+        function SelectMapSettings()
+        {
+            var mapFrame = document.getElementById("mapViewerFrame");
+            var mapDefinitonSelector = document.getElementById("mapSelector_DO_NOT_PERSIST");
+            if(mapDefinitonSelector.selectedIndex >= 0)
+            {
+                mapFrame.src = "performanceReport_MapViewer.php?mapDefinition=" + mapDefinitonSelector.options[mapDefinitonSelector.selectedIndex].value;
+            }
 
-                function ScaleFocus()
-                {
-                    var scale = document.getElementById("txtScale");
+            var bgDiv = document.getElementById("bgDiv");
+            var mapViewerDiv = document.getElementById("mapViewerDialog");
 
-                    if( scale.value=="Enter scale")
-                    {
-                        scale.value="";
-                    }
-                }
+            bgDiv.style.display = "block";
+            SetBgDivSize(bgDiv);
 
-                function CenterPointFocus()
-                {
-                    var centerPoint = document.getElementById("txtCenterPoint");
+            mapViewerDiv.style.display = "block";
+            SetMapViewerLoaction(mapViewerDiv);
 
-                    if( centerPoint.value=="Enter center point")
-                    {
-                        centerPoint.value="";
-                    }
-                }
+            checkMapFrameLoadedInterval = setInterval(CheckMapFrameLoaded, 100);
+        }
 
-                var checkMapFrameLoadedInterval = null;
-                function SelectMapSettings()
-                {
-                    var mapFrame = document.getElementById("mapViewerFrame");
-                    var mapDefinitonSelector = document.getElementById("mapSelector_DO_NOT_PERSIST");
-                    if(mapDefinitonSelector.selectedIndex >= 0)
-                    {
-                        mapFrame.src = "performanceReport_MapViewer.php?mapDefinition=" + mapDefinitonSelector.options[mapDefinitonSelector.selectedIndex].value;
-                    }
+        //when the map viewer dialogue is displayed, user press "Enter",
+        //it will cause the page reload, so we add a textbox here,
+        //and make it focus when the map viewer is shown.
+        //add the event handler for the "keyUp", when user press the key "Enter",
+        //make it the same with press button "OK".
+        //Here is an issue, to make the input invisible but can focus,
+        //we set the width and height as 0, and border as none,
+        //it works well in IE9 and firefox, but in chrome and safari,
+        //if the border set as none, this event will not be fired.
+        //TODO:Multiple Browsers:Safari and Chrome not work,So this event handler is not registered
+        function MapViewerKeyUp(event)
+        {
+            if(event.keyCode == 13)
+            {
+                if(!IsMapFrameLoaded())
+                    return;
 
-                    var bgDiv = document.getElementById("bgDiv");
-                    var mapViewerDiv = document.getElementById("mapViewerDialog");
+                MapViewerBtnOKClicked();
+            }
+        }
 
-                    bgDiv.style.display = "block";
-                    SetBgDivSize(bgDiv);
-                    
-                    mapViewerDiv.style.display = "block";
-                    SetMapViewerLoaction(mapViewerDiv);
+        function SetBgDivSize(bgDiv)
+        {
+            bgDiv.style.height = document.body.offsetHeight+"px";
+            bgDiv.style.width = document.body.offsetWidth+"px";
+        }
 
-                    checkMapFrameLoadedInterval = setInterval(CheckMapFrameLoaded, 100);
-                }
+        //default map viewer width and height
+        var mapViewerWidth = 800;
+        var mapViewerHeight = 600;
+        function SetMapViewerLoaction(mapViewerDiv)
+        {
+            if(document.body.clientHeight > mapViewerHeight)
+            {
+                mapViewerDiv.style.top=(document.body.clientHeight/2-mapViewerHeight/2)+"px";
+            }
+            else
+            {
+                mapViewerDiv.style.top="10px";
+            }
 
-                //when the map viewer dialogue is displayed, user press "Enter",
-                //it will cause the page reload, so we add a textbox here,
-                //and make it focus when the map viewer is shown.
-                //add the event handler for the "keyUp", when user press the key "Enter",
-                //make it the same with press button "OK".
-                //Here is an issue, to make the input invisible but can focus,
-                //we set the width and height as 0, and border as none,
-                //it works well in IE9 and firefox, but in chrome and safari,
-                //if the border set as none, this event will not be fired.
-                //TODO:Multiple Browsers:Safari and Chrome not work,So this event handler is not registered
-                function MapViewerKeyUp(event)
-                {
-                    if(event.keyCode == 13)
-                    {
-                        if(!IsMapFrameLoaded())
-                            return;
+            if(document.body.clientWidth > mapViewerWidth)
+            {
+                mapViewerDiv.style.left=(document.body.clientWidth/2-mapViewerWidth/2)+"px";
+            }
+            else
+            {
+                mapViewerDiv.style.left="10px";
+            }
+        }
 
-                        MapViewerBtnOKClicked();
-                    }
-                }
+        window.onresize = WindowResized;
 
-                function SetBgDivSize(bgDiv)
-                {
-                    bgDiv.style.height = document.body.offsetHeight+"px";
-                    bgDiv.style.width = document.body.offsetWidth+"px";
-                }
+        function WindowResized()
+        {
+            var mapViewerDiv = document.getElementById("mapViewerDialog");
 
-                //default map viewer width and height
-                var mapViewerWidth = 800;
-                var mapViewerHeight = 600;
-                function SetMapViewerLoaction(mapViewerDiv)
-                {
-                    if(document.body.clientHeight > mapViewerHeight)
-                    {
-                        mapViewerDiv.style.top=(document.body.clientHeight/2-mapViewerHeight/2)+"px";
-                    }
-                    else
-                    {
-                        mapViewerDiv.style.top="10px";
-                    }
+            if("block" == mapViewerDiv.style.display.toLowerCase())
+            {
+                SetMapViewerLoaction(mapViewerDiv);
+            }
 
-                    if(document.body.clientWidth > mapViewerWidth)
-                    {
-                        mapViewerDiv.style.left=(document.body.clientWidth/2-mapViewerWidth/2)+"px";
-                    }
-                    else
-                    {
-                        mapViewerDiv.style.left="10px";
-                    }
-                }
+            var bgDiv = document.getElementById("bgDiv");
+            if("block" == bgDiv.style.display.toLowerCase())
+            {
+                SetBgDivSize(bgDiv);
+            }
+        }
 
-                window.onresize = WindowResized;
+        function CheckMapFrameLoaded()
+        {
+            if(!IsMapFrameLoaded())
+                return;
 
-                function WindowResized()
-                {
-                    var mapViewerDiv = document.getElementById("mapViewerDialog");
+            clearInterval(checkMapFrameLoadedInterval);
 
-                    if("block" == mapViewerDiv.style.display.toLowerCase())
-                    {
-                        SetMapViewerLoaction(mapViewerDiv);
-                    }
+            //make the textbox focused
+            var autoFoucsTxt = document.getElementById("mapViewerAutoFocusTxt");
+            autoFoucsTxt.focus();
 
-                    var bgDiv = document.getElementById("bgDiv");
-                    if("block" == bgDiv.style.display.toLowerCase())
-                    {
-                        SetBgDivSize(bgDiv);
-                    }
-                }
+            CreateButtons();
+        }
 
-                function CheckMapFrameLoaded()
-                {
-                    if(!IsMapFrameLoaded())
-                        return;
-                    
-                    clearInterval(checkMapFrameLoadedInterval);
+        function IsMapFrameLoaded()
+        {
+            var mainFrame = window.frames["mapViewerFrame"];
 
-                    //make the textbox focused
-                    var autoFoucsTxt = document.getElementById("mapViewerAutoFocusTxt");
-                    autoFoucsTxt.focus();
+            if (!mainFrame)
+                return false;
 
-                    CreateButtons();
-                }
+            if (!mainFrame || !mainFrame.GetMapFrame)
+                return false;
 
-                function IsMapFrameLoaded()
-                {
-                    var mainFrame = window.frames["mapViewerFrame"];
+            var mapFrame = mainFrame.GetMapFrame();
 
-                    if (!mainFrame)
-                        return false;
+            return (mapFrame.ZoomToView != null);
+        }
 
-                    if (!mainFrame || !mainFrame.GetMapFrame)
-                        return false;
-                    
-                    var mapFrame = mainFrame.GetMapFrame();
-                    
-                    return (mapFrame.ZoomToView != null);
-                }
+        function CloseMapViewer()
+        {
+            var bgDiv = document.getElementById("bgDiv");
+            var msgDiv = document.getElementById("mapViewerDialog");
 
-                function CloseMapViewer()
-                {
-                    var bgDiv = document.getElementById("bgDiv");
-                    var msgDiv = document.getElementById("mapViewerDialog");
+            bgDiv.style.display = "none";
+            msgDiv.style.display="none";
 
-                    bgDiv.style.display = "none";
-                    msgDiv.style.display="none";
+            //must destory the old page, if not, the CheckMapFrameLoaded
+            //will get the old page's frame and then the buttons will not be displayed in new page
+            var mapFrame = document.getElementById("mapViewerFrame");
+            mapFrame.src="";
+        }
 
-                    //must destory the old page, if not, the CheckMapFrameLoaded
-                    //will get the old page's frame and then the buttons will not be displayed in new page
-                    var mapFrame = document.getElementById("mapViewerFrame");
-                    mapFrame.src="";
-                }
+        var messageShorterInterval = null;
 
-                var messageShorterInterval = null;
+        var zoomToViewInterval = null;
 
-                var zoomToViewInterval = null;
-                
-                function CreateButtons()
-                {
-                    var mapViewerFrame = window.frames["mapViewerFrame"];
-                    
-                    var mapFrame = mapViewerFrame.GetMapFrame();
-                    var mapFrameDocument = mapFrame.document;
+        function CreateButtons()
+        {
+            var mapViewerFrame = window.frames["mapViewerFrame"];
 
-                    mapFrame.ShowMapMessage("Use the map controls in the toolbar above to specify the center point and scale.", "info");
-                    //use setInterval to make sure that the message div has been created.
-                    messageShorterInterval = window.setInterval(function(){ makeMessageShorter(mapFrame); }, 100);
+            var mapFrame = mapViewerFrame.GetMapFrame();
+            var mapFrameDocument = mapFrame.document;
 
-                    zoomToViewInterval = window.setInterval(function(){ ZoomToPreviousView(mapFrame); }, 100);
+            mapFrame.ShowMapMessage("Use the map controls in the toolbar above to specify the center point and scale.", "info");
+            //use setInterval to make sure that the message div has been created.
+            messageShorterInterval = window.setInterval(function(){ makeMessageShorter(mapFrame); }, 100);
 
-                    var mapSpace = mapFrameDocument.getElementById("mapSpace");
-                    var buttonPanel = mapFrameDocument.createElement('div');
-                    buttonPanel.style.backgroundColor="transparent";
-                    buttonPanel.style.padding="0px";
-                    buttonPanel.style.margin="0px";
-                    buttonPanel.style.position="absolute";
-                    buttonPanel.style.zIndex="10000";
-                    buttonPanel.style.top="490px";
-                    buttonPanel.style.left="660px";
-                    buttonPanel.style.width="160px";
+            zoomToViewInterval = window.setInterval(function(){ ZoomToPreviousView(mapFrame); }, 100);
 
-                    var buttonPanelInnerHtml="<table>";
-                    buttonPanelInnerHtml+="<tr>";
-                    buttonPanelInnerHtml+="<td>";
-                    buttonPanelInnerHtml+='<button type="button" id="mapViewerAutoFocusBtn" style="width: 57px; height: 22px; border-style:none;border: 1px solid #000000;" onclick="window.parent.parent.MapViewerBtnOKClicked()">OK</button>';
-                    buttonPanelInnerHtml+="</td>";
-                    buttonPanelInnerHtml+="<td>";
-                    buttonPanelInnerHtml+='<button type="button" style="width: 57px; height: 22px; border-style:none;border: 1px solid #000000;margin-left:10px;" onclick="window.parent.parent.MapViewerBtnCloseClicked()">Cancel</button>';
-                    buttonPanelInnerHtml+="</td>";
-                    buttonPanelInnerHtml+="</tr>";
-                    buttonPanelInnerHtml+="</table>";
+            var mapSpace = mapFrameDocument.getElementById("mapSpace");
+            var buttonPanel = mapFrameDocument.createElement('div');
+            buttonPanel.style.backgroundColor="transparent";
+            buttonPanel.style.padding="0px";
+            buttonPanel.style.margin="0px";
+            buttonPanel.style.position="absolute";
+            buttonPanel.style.zIndex="10000";
+            buttonPanel.style.top="490px";
+            buttonPanel.style.left="660px";
+            buttonPanel.style.width="160px";
 
-                    buttonPanel.innerHTML = buttonPanelInnerHtml;
-                    mapSpace.appendChild(buttonPanel);
-                }
+            var buttonPanelInnerHtml="<table>";
+            buttonPanelInnerHtml+="<tr>";
+            buttonPanelInnerHtml+="<td>";
+            buttonPanelInnerHtml+='<button type="button" id="mapViewerAutoFocusBtn" style="width: 57px; height: 22px; border-style:none;border: 1px solid #000000;" onclick="window.parent.parent.MapViewerBtnOKClicked()" tabindex="1">OK</button>';
+            buttonPanelInnerHtml+="</td>";
+            buttonPanelInnerHtml+="<td>";
+            buttonPanelInnerHtml+='<button type="button" style="width: 57px; height: 22px; border-style:none;border: 1px solid #000000;margin-left:10px;" onclick="window.parent.parent.MapViewerBtnCloseClicked()"  tabindex="2">Cancel</button>';
+            buttonPanelInnerHtml+="</td>";
+            buttonPanelInnerHtml+="</tr>";
+            buttonPanelInnerHtml+="</table>";
 
-                function MapViewerBtnCloseClicked()
-                {
-                    CloseMapViewer();
-                }
+            buttonPanel.innerHTML = buttonPanelInnerHtml;
+            mapSpace.appendChild(buttonPanel);
+        }
 
-                function MapViewerBtnOKClicked()
-                {
-                   var mapViewerFrame = window.frames["mapViewerFrame"];
-                   var mapFrame = mapViewerFrame.GetMapFrame();
-                   var center = mapFrame.GetCenter();
-                   var scale = mapFrame.GetScale();
+        function MapViewerBtnCloseClicked()
+        {
+            CloseMapViewer();
+        }
 
-                   var centerPoint = document.getElementById("txtCenterPoint");
-                   centerPoint.value = center.X + "*" + center.Y;
-                   var centerPointValidate = ValidateCenterPoint(true);
+        function MapViewerBtnOKClicked()
+        {
+           var mapViewerFrame = window.frames["mapViewerFrame"];
+           var mapFrame = mapViewerFrame.GetMapFrame();
+           var center = mapFrame.GetCenter();
+           var scale = mapFrame.GetScale();
 
-                   var scaleInput = document.getElementById("txtScale");
-                   scaleInput.value = scale;
-                   var scaleValidate = ValidateScale(true);
+           var centerPoint = document.getElementById("txtCenterPoint");
+           centerPoint.value = center.X + "*" + center.Y;
+           var centerPointValidate = ValidateCenterPoint(true);
 
-                   var visible = centerPointValidate && scaleValidate;
-                   if(visible)
-                   {
-                       var mapDefinitonSelector = document.getElementById("mapSelector_DO_NOT_PERSIST");
-                       if(mapDefinitonSelector.selectedIndex >= 0)
-                       {
-                           visible = true;
-                           SaveCurrentSelect(mapDefinitonSelector.options[mapDefinitonSelector.selectedIndex].value,center,scale);
-                       }
-                       else
-                       {
-                           visible = false;
-                       }
-                   }
+           var scaleInput = document.getElementById("txtScale");
+           scaleInput.value = scale;
+           var scaleValidate = ValidateScale(true);
 
-                   SetRunButtonState(visible);
+           var visible = centerPointValidate && scaleValidate;
+           if(visible)
+           {
+               var mapDefinitonSelector = document.getElementById("mapSelector_DO_NOT_PERSIST");
+               if(mapDefinitonSelector.selectedIndex >= 0)
+               {
+                   visible = true;
+                   SaveCurrentSelect(mapDefinitonSelector.options[mapDefinitonSelector.selectedIndex].value,center,scale);
+               }
+               else
+               {
+                   visible = false;
+               }
+           }
 
-                   CloseMapViewer();
-                }
+           SetRunButtonState(visible);
 
-                function SaveCurrentSelect(mapId,center,scale)
-                {
-                    var mapIdSaved = document.getElementById("mapViewerLastOpenMapId");
-                    mapIdSaved.value = mapId;
+           CloseMapViewer();
+        }
 
-                    var centerPointSaved = document.getElementById("mapViewerLastOpenCenterPoint");
-                    centerPointSaved.value = center.X + "*" + center.Y;
+        function SaveCurrentSelect(mapId,center,scale)
+        {
+            var mapIdSaved = document.getElementById("mapViewerLastOpenMapId");
+            mapIdSaved.value = mapId;
 
-                    var scaleSaved = document.getElementById("mapViewerLastOpenScale");
-                    scaleSaved.value = scale;
+            var centerPointSaved = document.getElementById("mapViewerLastOpenCenterPoint");
+            centerPointSaved.value = center.X + "*" + center.Y;
 
-                    //when the user set the new value from the mapviewer, the warning info should be shown
-                    ShowReportWarningMsg();
-                }
+            var scaleSaved = document.getElementById("mapViewerLastOpenScale");
+            scaleSaved.value = scale;
 
-                function makeMessageShorter(mapFrame)
-                {
-                    if(!mapFrame.mapMessage || !mapFrame.mapMessage.container)
-                        return;
-                    
-                    window.clearInterval(messageShorterInterval);
-                    // make it shorter
-                    mapFrame.mapMessage.container.style.padding = "1px";
-                }
+            //when the user set the new value from the mapviewer, the warning info should be shown
+            ShowReportWarningMsg();
+        }
 
-                function ZoomToPreviousView(mapFrame)
-                {
-                    if(!mapFrame.mapLoading)
-                        return;
+        function makeMessageShorter(mapFrame)
+        {
+            if(!mapFrame.mapMessage || !mapFrame.mapMessage.container)
+                return;
 
-                    window.clearInterval(zoomToViewInterval);
+            window.clearInterval(messageShorterInterval);
+            // make it shorter
+            mapFrame.mapMessage.container.style.padding = "1px";
+        }
 
-                    var mapViewerFrame = window.frames["mapViewerFrame"];
-                    var mapFrame = mapViewerFrame.GetMapFrame();
+        function ZoomToPreviousView(mapFrame)
+        {
+            if(!mapFrame.mapLoading)
+                return;
 
-                    var mapIdSaved = document.getElementById("mapViewerLastOpenMapId");
-                    var mapDefinitonSelector = document.getElementById("mapSelector_DO_NOT_PERSIST");
-                    var selectMapId = mapDefinitonSelector.options[mapDefinitonSelector.selectedIndex].value;
+            window.clearInterval(zoomToViewInterval);
 
-                    if(("" != mapIdSaved.value) && (mapIdSaved.value === selectMapId))
-                    {
-                        var centerPointSaved = document.getElementById("mapViewerLastOpenCenterPoint");
-                        var scaleSaved = document.getElementById("mapViewerLastOpenScale");
+            var mapViewerFrame = window.frames["mapViewerFrame"];
+            var mapFrame = mapViewerFrame.GetMapFrame();
 
-                        var point = centerPointSaved.value.split("*");
-                        if(2 == point.length)
-                        {
-                            mapFrame.ZoomToView( parseFloat(point[0]), parseFloat(point[1]), parseFloat(scaleSaved.value), true);
-                        }
-                    }
-                }
+            var mapIdSaved = document.getElementById("mapViewerLastOpenMapId");
+            var mapDefinitonSelector = document.getElementById("mapSelector_DO_NOT_PERSIST");
+            var selectMapId = mapDefinitonSelector.options[mapDefinitonSelector.selectedIndex].value;
 
-                //remove the space at the begin and end of a string
-                function Trim(str)
+            if(("" != mapIdSaved.value) && (mapIdSaved.value === selectMapId))
+            {
+                var centerPointSaved = document.getElementById("mapViewerLastOpenCenterPoint");
+                var scaleSaved = document.getElementById("mapViewerLastOpenScale");
+
+                var point = centerPointSaved.value.split("*");
+                if(2 == point.length)
                 {
-                    var returnedStr="";
+                    mapFrame.ZoomToView( parseFloat(point[0]), parseFloat(point[1]), parseFloat(scaleSaved.value), true);
+                }
+            }
+        }
 
-                    var i = 0;
-                    for(; i < str.length && str.charAt(i)==" "; i++);
+        //remove the space at the begin and end of a string
+        function Trim(str)
+        {
+            var returnedStr="";
 
-                    var j = str.length;
-                    for(; j>0 && str.charAt(j-1)==" " ; j--);
+            var i = 0;
+            for(; i < str.length && str.charAt(i)==" "; i++);
 
-                    if(i<=j)
-                    {
-                        returnedStr = str.substring(i,j);
-                    }
+            var j = str.length;
+            for(; j>0 && str.charAt(j-1)==" " ; j--);
 
-                    return returnedStr;
-                }
+            if(i<=j)
+            {
+                returnedStr = str.substring(i,j);
+            }
 
-                //remove all the space inside a string
-                function RemoveSpace(str)
-                {
-                    var i=0,strWithoutSpace="";
+            return returnedStr;
+        }
 
-                    if(null == str)
-                        return strWithoutSpace;
+        //remove all the space inside a string
+        function RemoveSpace(str)
+        {
+            var i=0,strWithoutSpace="";
 
-                    if(0 == str.length)
-                        return strWithoutSpace;
+            if(null == str)
+                return strWithoutSpace;
 
-                    for(;i < str.length;i++)
-                    {
-                        c = str.charAt(i);
-                        if(c!=' ')
-                        {
-                            strWithoutSpace+=c;
-                        }
-                    }
-                    return strWithoutSpace;
-                }
+            if(0 == str.length)
+                return strWithoutSpace;
 
-                function FormatNumber(s, n)
+            for(;i < str.length;i++)
+            {
+                c = str.charAt(i);
+                if(c!=' ')
                 {
-                   var n = n >= 0 && n <= 20 ? n : 2;
+                    strWithoutSpace+=c;
+                }
+            }
+            return strWithoutSpace;
+        }
 
-                   var s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";
+        function FormatNumber(s, n)
+        {
+           var n = n >= 0 && n <= 20 ? n : 2;
 
-                   var l = s.split(".")[0].split("").reverse()
+           var s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";
 
-                   if(n > 0)
-                   {
-                       var r = s.split(".")[1];
-                       var t = "";
-                       var i=0;
-                       for(; i < l.length; i ++ )
-                       {
-                          t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? " " : "");
-                       }
+           var l = s.split(".")[0].split("").reverse()
 
-                       return t.split("").reverse().join("") + "." + r;
-                   }
-                   else
-                   {
-                       var t = "";
-                       var i=0;
-                       for(; i < l.length; i ++ )
-                       {
-                          t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? " " : "");
-                       }
+           if(n > 0)
+           {
+               var r = s.split(".")[1];
+               var t = "";
+               var i=0;
+               for(; i < l.length; i ++ )
+               {
+                  t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? " " : "");
+               }
 
-                       return t.split("").reverse().join("");
-                   }
-                }
+               return t.split("").reverse().join("") + "." + r;
+           }
+           else
+           {
+               var t = "";
+               var i=0;
+               for(; i < l.length; i ++ )
+               {
+                  t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? " " : "");
+               }
 
-                function FormatCenterPoint(x,y,fractionDigits)
-                {
-                     return parseFloat(x).toExponential(fractionDigits) + "*" + parseFloat(y).toExponential(fractionDigits);
-                }
+               return t.split("").reverse().join("");
+           }
+        }
 
-                function IsNotFloat(str)
-                {
-                  str = RemoveSpace(str);
+        function FormatCenterPoint(x,y,fractionDigits)
+        {
+             return parseFloat(x).toExponential(fractionDigits) + "*" + parseFloat(y).toExponential(fractionDigits);
+        }
 
-                  if("" == str)
-                      return true;
+        function IsNotFloat(str)
+        {
+          str = RemoveSpace(str);
 
-                  var num=0;
-                  if((num=str.indexOf('E'))!=-1||(num=str.indexOf('e'))!=-1)
-                  {
-                        var doubleStr=str.substring(0,num);
-                        var eStr=str.substring(num+1);
-                        var result=IsNotSimpleFloat(doubleStr)||IsNotInt(eStr);
+          if("" == str)
+              return true;
 
-                        return result;
-                  }
-                  else
-                  {
-                     return IsNotSimpleFloat(str);
-                  }
-                }
+          var num=0;
+          if((num=str.indexOf('E'))!=-1||(num=str.indexOf('e'))!=-1)
+          {
+                var doubleStr=str.substring(0,num);
+                var eStr=str.substring(num+1);
+                var result=IsNotSimpleFloat(doubleStr)||IsNotInt(eStr);
 
-                function IsNotInt(str)
-                {
-                    //remove the + or -
-                    var firstChar=str.substring(0,1);
-                    if("+" == firstChar || "-" == firstChar)
-                    {
-                        str=str.substring(1);
-                    }
+                return result;
+          }
+          else
+          {
+             return IsNotSimpleFloat(str);
+          }
+        }
 
-                    if ((str.length>1 && str.substring(0,1)=="0") || IsNotNum(str))
-                    {
-                        return true;
-                    }
-                    
-                    return false;
-                }
+        function IsNotInt(str)
+        {
+            //remove the + or -
+            var firstChar=str.substring(0,1);
+            if("+" == firstChar || "-" == firstChar)
+            {
+                str=str.substring(1);
+            }
 
-                function IsNotNum(str)
-                {
-                  if ("" == str)
-                    return true;
+            if ((str.length>1 && str.substring(0,1)=="0") || IsNotNum(str))
+            {
+                return true;
+            }
 
-                  var i = 0;
-                  for(; i < str.length;i++)
-                  {
-                     var oneNum = str.substring(i,i+1);
-                     if (oneNum < "0" || oneNum > "9")
-                        return true;
-                    }
-                   return false;
-                }
+            return false;
+        }
 
-                function IsNotSimpleFloat(str)
-                {
-                    var len = str.length;
-                    var dotNum = 0;
+        function IsNotNum(str)
+        {
+          if ("" == str)
+            return true;
 
-                    if (0 == len)
-                    {
-                        return true;
-                    }
+          var i = 0;
+          for(; i < str.length;i++)
+          {
+             var oneNum = str.substring(i,i+1);
+             if (oneNum < "0" || oneNum > "9")
+                return true;
+            }
+           return false;
+        }
 
-                    //remove the + or -
-                    var firstChar=str.substring(0,1);
-                    if("+" == firstChar || "-" == firstChar)
-                    {
-                        str=str.substring(1);
-                        len=str.length;
-                    }
+        function IsNotSimpleFloat(str)
+        {
+            var len = str.length;
+            var dotNum = 0;
 
-                    var i = 0;
-                    for(;i < len;i++)
-                    {
-                        var oneNum = str.substring(i,i+1);
+            if (0 == len)
+            {
+                return true;
+            }
 
-                        if ("." == oneNum)
-                            dotNum++;
+            //remove the + or -
+            var firstChar=str.substring(0,1);
+            if("+" == firstChar || "-" == firstChar)
+            {
+                str=str.substring(1);
+                len=str.length;
+            }
 
-                        if ( ((oneNum < "0" || oneNum > "9") && oneNum != ".") || dotNum > 1)
-                            return true;
-                    }
+            var i = 0;
+            for(;i < len;i++)
+            {
+                var oneNum = str.substring(i,i+1);
 
-                    if (len > 1 && "0" == str.substring(0,1))
-                    {
-                        if (str.substring(1,2) != ".")
-                            return true;
-                    }
-                    
-                    return false;
-                  }
+                if ("." == oneNum)
+                    dotNum++;
 
-                function HighlightRow(tableRow)
-                {
-                    var i = 0;
-                    for (; i < tableRow.childNodes.length; i++)
-                    {
-                        var obj = tableRow.childNodes[i];
-                        obj.className = "over";
-                    }
-                }
+                if ( ((oneNum < "0" || oneNum > "9") && oneNum != ".") || dotNum > 1)
+                    return true;
+            }
 
-                function UnhighlightRow(tableRow)
-                {
-                    var i = 0;
-                    for (;i < tableRow.childNodes.length;i++)
-                    {
-                        var obj = tableRow.childNodes[i];
-                        obj.className = "";
-                    }
-                }
+            if (len > 1 && "0" == str.substring(0,1))
+            {
+                if (str.substring(1,2) != ".")
+                    return true;
+            }
 
-                function ShowToopTip(linkObj,toolTipID,e)
-                {
-                    var toolTip = document.getElementById(toolTipID);
-                    toolTip.style.display = "none";
+            return false;
+          }
 
-                    var ev = e || window.event;
-                    var mosPos = Common.getMousePos(ev);
-                    var elPos = Common.getElementPos(linkObj);
-                    var downMouseLeft = 13,downMouseTop = 2;
+        function ShowToopTip(linkObj,toolTipID,e)
+        {
+            var toolTip = document.getElementById(toolTipID);
+            toolTip.style.display = "none";
 
-                    //must before set opr to get offsetHeight...
-                    //toolTip.style.display = "";
-                    //set tooltip position
-                    toolTip.style.top = elPos.y + linkObj.offsetHeight+ downMouseTop+ "px";
-                    toolTip.style.left = mosPos.x + downMouseLeft + "px";
+            var ev = e || window.event;
+            var mosPos = Common.getMousePos(ev);
+            var elPos = Common.getElementPos(linkObj);
+            var downMouseLeft = 13,downMouseTop = 2;
 
-                    toolTip.style.display = "block";
-                    toolTip.className = "showTooltip";
-                }
+            //must before set opr to get offsetHeight...
+            //toolTip.style.display = "";
+            //set tooltip position
+            toolTip.style.top = elPos.y + linkObj.offsetHeight+ downMouseTop+ "px";
+            toolTip.style.left = mosPos.x + downMouseLeft + "px";
 
-                function HideToolTop(toolTipID)
-                {
-                    var toolTip = document.getElementById(toolTipID);
-                    toolTip.style.display = "none";
-                }
+            toolTip.style.display = "block";
+            toolTip.className = "showTooltip";
+        }
 
-                //AJAX part
-                var xmlHttp;
+        function HideToolTop(toolTipID)
+        {
+            var toolTip = document.getElementById(toolTipID);
+            toolTip.style.display = "none";
+        }
 
-                function GetXmlHttpObject()
-                {
-                    var xmlHttp=null;
+        //AJAX part
+        var xmlHttp;
 
-                    try
-                     {
-                         // Firefox, Opera 8.0+, Safari
-                         xmlHttp=new XMLHttpRequest();
-                     }
-                    catch (e)
-                     {
-                         // Internet Explorer
-                         try
-                          {
-                              xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
-                          }
-                         catch (e)
-                          {
-                              xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
-                          }
-                     }
-                    return xmlHttp;
-                }
+        function GetXmlHttpObject()
+        {
+            var xmlHttp=null;
 
-                function GetResult()
-                {
-                    var mapDefinitonSelector = document.getElementById("mapSelector_DO_NOT_PERSIST");
+            try
+             {
+                 // Firefox, Opera 8.0+, Safari
+                 xmlHttp=new XMLHttpRequest();
+             }
+            catch (e)
+             {
+                 // Internet Explorer
+                 try
+                  {
+                      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
+                  }
+                 catch (e)
+                  {
+                      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
+                  }
+             }
+            return xmlHttp;
+        }
 
-                    if(mapDefinitonSelector.selectedIndex < 0)
-                    {
-                        var mapResourceWarningMessage = document.getElementById("selectMapResourceWarningMessage");
-                        mapResourceWarningMessage.innerHTML = "A map resource was not selected.";
-                        return false;
-                    }
+        function GetResult()
+        {
+            var mapDefinitonSelector = document.getElementById("mapSelector_DO_NOT_PERSIST");
 
-                    if(!ValidateCenterPoint(true))
-                        return false;
+            if(mapDefinitonSelector.selectedIndex < 0)
+            {
+                var mapResourceWarningMessage = document.getElementById("selectMapResourceWarningMessage");
+                mapResourceWarningMessage.innerHTML = "A map resource was not selected.";
+                return false;
+            }
 
-                    if(!ValidateScale(true))
-                        return false;
+            if(!ValidateCenterPoint(true))
+                return false;
 
-                    //when a new report is run, the inline message disappears
-                    SetResultNotMatchWarningMsg(false);
+            if(!ValidateScale(true))
+                return false;
 
-                    var loadingImg = document.getElementById("ajax_loading_img");
-                    loadingImg.style.display = "inline";
+            //when a new report is run, the inline message disappears
+            SetResultNotMatchWarningMsg(false);
 
-                    var btnClear = document.getElementById("btnClearSpan");
-                    btnClear.style.display = "none";
+            var loadingImg = document.getElementById("ajax_loading_img");
+            loadingImg.style.display = "inline";
 
-                    var runButton = document.getElementById("runBtn");
-                    runButton.setAttribute("disabled", "disabled");
+            var btnClear = document.getElementById("btnClearSpan");
+            btnClear.style.display = "none";
 
-                    xmlHttp = GetXmlHttpObject();
-                    if (xmlHttp == null)
-                    {
-                       alert ("Browser does not support HTTP Request!");
-                       return;
-                    }
+            var runButton = document.getElementById("runBtn");
+            runButton.setAttribute("disabled", "disabled");
 
-                    //the profiling map API requires the image width and height
-                    var imageWidth = document.body.clientWidth?document.body.clientWidth:1280;
-                    var imageHeight = document.body.clientHeight?document.body.clientHeight:1024;
+            xmlHttp = GetXmlHttpObject();
+            if (xmlHttp == null)
+            {
+               alert ("Browser does not support HTTP Request!");
+               return;
+            }
 
-                    //get the parameters for map resource ID, center point, scale
-                    var scale = document.getElementById("txtScale");
-                    var centerPoint = document.getElementById("txtCenterPoint");
-                    var mapSelector = document.getElementById("mapSelector_DO_NOT_PERSIST");
+            //the profiling map API requires the image width and height
+            var imageWidth = document.body.clientWidth?document.body.clientWidth:1280;
+            var imageHeight = document.body.clientHeight?document.body.clientHeight:1024;
 
-                    //pass the parameters through the URL query string
-                    var url="performanceReport_GetResult.php";
+            //get the parameters for map resource ID, center point, scale
+            var scale = document.getElementById("txtScale");
+            var centerPoint = document.getElementById("txtCenterPoint");
+            var mapSelector = document.getElementById("mapSelector_DO_NOT_PERSIST");
 
-                    url+= "?scale=" + encodeURIComponent(RemoveSpace(scale.value));
-                    url+= "&centerPoint=" + encodeURIComponent(RemoveSpace(centerPoint.value));
-                    url+= "&mapDefinition=" + encodeURIComponent(mapSelector.value);
-                    url+= "&imageWidth=" + imageWidth;
-                    url+= "&imageHeight=" + imageHeight;
-                    url+= "&sid="+Math.random();
+            //pass the parameters through the URL query string
+            var url="performanceReport_GetResult.php";
 
-                    //send the ajax request
-                    xmlHttp.onreadystatechange = StateChanged;
-                    xmlHttp.open("POST",url,true);
-                    xmlHttp.send(null);
-                }
+            url+= "?scale=" + encodeURIComponent(RemoveSpace(scale.value));
+            url+= "&centerPoint=" + encodeURIComponent(RemoveSpace(centerPoint.value));
+            url+= "&mapDefinition=" + encodeURIComponent(mapSelector.value);
+            url+= "&imageWidth=" + imageWidth;
+            url+= "&imageHeight=" + imageHeight;
+            url+= "&sid="+Math.random();
 
-                function StateChanged()
+            //send the ajax request
+            xmlHttp.onreadystatechange = StateChanged;
+            xmlHttp.open("POST",url,true);
+            xmlHttp.send(null);
+        }
+
+        function StateChanged()
+        {
+            if ((4 == xmlHttp.readyState || "complete" == xmlHttp.readyState)&& 200 == xmlHttp.status)
+            {
+                var profileResult = document.getElementById("resultsTab");
+                var result = xmlHttp.responseText;
+                var btnClear = document.getElementById("btnClearSpan");
+                var loadingImg = document.getElementById("ajax_loading_img");
+
+                if(Trim(result) == "mapNotExist")
                 {
-                    if ((4 == xmlHttp.readyState || "complete" == xmlHttp.readyState)&& 200 == xmlHttp.status)
-                    {
-                        var profileResult = document.getElementById("resultsTab");
-                        var result = xmlHttp.responseText;
-                        var btnClear = document.getElementById("btnClearSpan");
-                        var loadingImg = document.getElementById("ajax_loading_img");
+                    alert("The selected map resource is no longer available. Select a different map resource to continue.");
+                    btnClear.style.display = "inline";
+                    loadingImg.style.display = "none";
+                    SetRunButtonState(true);
+                    return;
+                }
 
-                        if(Trim(result) == "mapNotExist")
-                        {
-                            alert("The selected map resource is no longer available. Select a different map resource to continue.");
-                            btnClear.style.display = "inline";
-                            loadingImg.style.display = "none";
-                            SetRunButtonState(true);
-                            return;
-                        }
+                profileResult.innerHTML = xmlHttp.responseText;
 
-                        profileResult.innerHTML = xmlHttp.responseText;
-                        
-                        btnClear.style.display = "inline";
-                        loadingImg.style.display = "none";
-                        
-                        CollapseSettingTab();
-                        ExpandResultsTab();
-                        SetRunButtonState(true);
+                btnClear.style.display = "inline";
+                loadingImg.style.display = "none";
 
-                        SetLayerJsArray();
-                        SetRecentSettingJsArray();
+                CollapseSettingTab();
+                ExpandResultsTab();
+                SetRunButtonState(true);
 
-                        SetRecentSettingsContent();
+                SetLayerJsArray();
+                SetRecentSettingJsArray();
 
-                        SaveLastRunSettings();
+                SetRecentSettingsContent();
 
-                        //make the layer table default sorting
-                        var layerTableHeader = document.getElementById("layerHeaderTable");
-                        SortLayers.sortByColumn(layerTableHeader.tHead.rows[0].children[0]);
-                    }
-                }
+                SaveLastRunSettings();
 
-                // the js in the ajax returned content will not be executed and recognized,
-                // so we get the js content and append it to the <head>
-                function SetLayerJsArray()
+                //make the layer table default sorting
+                var layerTableHeader = document.getElementById("layerHeaderTable");
+                SortLayers.sortByColumn(layerTableHeader.tHead.rows[0].children[0]);
+            }
+        }
+
+        // the js in the ajax returned content will not be executed and recognized,
+        // so we get the js content and append it to the <head>
+        function SetLayerJsArray()
+        {
+            var tempLayersJsArray = document.getElementById("layerDetailsJsArray");
+            if(tempLayersJsArray)
+            {
+                //get js content in the hidden span
+                var innerScript = tempLayersJsArray.innerHTML;
+                innerScript = innerScript.replace(/\\n/,'');
+
+                //check to remove the script if it already exists
+                var insertScript = document.getElementById("layerDetailsJs");
+                if(insertScript)
                 {
-                    var tempLayersJsArray = document.getElementById("layerDetailsJsArray");
-                    if(tempLayersJsArray)
-                    {
-                        //get js content in the hidden span
-                        var innerScript = tempLayersJsArray.innerHTML;
-                        innerScript = innerScript.replace(/\\n/,'');
+                    document.getElementsByTagName("head").item(0).removeChild(insertScript);
+                }
 
-                        //check to remove the script if it already exists
-                        var insertScript = document.getElementById("layerDetailsJs");
-                        if(insertScript)
-                        {
-                            document.getElementsByTagName("head").item(0).removeChild(insertScript);
-                        }
+                //every new execute should generate new js array data
+                insertScript = document.createElement("script");
+                insertScript.type = "text/javascript";
+                insertScript.id = "layerDetailsJs";
+                insertScript.text=innerScript;
 
-                        //every new execute should generate new js array data
-                        insertScript = document.createElement("script");
-                        insertScript.type = "text/javascript";
-                        insertScript.id = "layerDetailsJs";
-                        insertScript.text=innerScript;
+                document.getElementsByTagName("head").item(0).appendChild(insertScript);
+                tempLayersJsArray.parentNode.removeChild(tempLayersJsArray);
+            }
+        }
 
-                        document.getElementsByTagName("head").item(0).appendChild(insertScript);
-                        tempLayersJsArray.parentNode.removeChild(tempLayersJsArray);
-                    }
-                }
+        function SetRecentSettingJsArray()
+        {
+            var tempSettingJsArray = document.getElementById("tempRecentSettingsJsArray");
 
-                function SetRecentSettingJsArray()
+            if(tempSettingJsArray)
+            {
+                //get js content in the hidden span
+                var innerScript = tempSettingJsArray.innerHTML;
+                innerScript = innerScript.replace(/\\n/,'');
+
+                //check to remove the script if it already exists
+                var insertScript = document.getElementById("recentSettingsJs");
+                if(insertScript)
                 {
-                    var tempSettingJsArray = document.getElementById("tempRecentSettingsJsArray");
+                    document.getElementsByTagName("head").item(0).removeChild(insertScript);
+                }
 
-                    if(tempSettingJsArray)
-                    {
-                        //get js content in the hidden span
-                        var innerScript = tempSettingJsArray.innerHTML;
-                        innerScript = innerScript.replace(/\\n/,'');
+                //every new execute should generate new js array data
+                insertScript = document.createElement("script");
+                insertScript.type = "text/javascript";
+                insertScript.id = "recentSettingsJs";
+                insertScript.text = innerScript;
 
-                        //check to remove the script if it already exists
-                        var insertScript = document.getElementById("recentSettingsJs");
-                        if(insertScript)
-                        {
-                            document.getElementsByTagName("head").item(0).removeChild(insertScript);
-                        }
+                document.getElementsByTagName("head").item(0).appendChild(insertScript);
 
-                        //every new execute should generate new js array data
-                        insertScript = document.createElement("script");
-                        insertScript.type = "text/javascript";
-                        insertScript.id = "recentSettingsJs";
-                        insertScript.text = innerScript;
+                tempSettingJsArray.parentNode.removeChild(tempSettingJsArray);
+            }
+        }
 
-                        document.getElementsByTagName("head").item(0).appendChild(insertScript);
+        function SetRecentSettingsContent()
+        {
+            //remove the layer detail info if it already exist
+            var tempRecentSettings = document.getElementById("tempRecentSettingDiv");
+            var settingsTab= document.getElementById("settingsDiv");
+            var settingsContentDiv = document.getElementById("recentSettingsDiv");
 
-                        tempSettingJsArray.parentNode.removeChild(tempSettingJsArray);
-                    }
-                }
+            if (settingsContentDiv)
+            {
+                settingsContentDiv.parentNode.removeChild(settingsContentDiv);
+            }
 
-                function SetRecentSettingsContent()
-                {
-                    //remove the layer detail info if it already exist
-                    var tempRecentSettings = document.getElementById("tempRecentSettingDiv");
-                    var settingsTab= document.getElementById("settingsDiv");
-                    var settingsContentDiv = document.getElementById("recentSettingsDiv");
+            settingsContentDiv = document.createElement("div");
+            settingsContentDiv.id = "recentSettingsDiv";
+            settingsContentDiv.innerHTML = tempRecentSettings.innerHTML;
 
-                    if (settingsContentDiv)
-                    {
-                        settingsContentDiv.parentNode.removeChild(settingsContentDiv);
-                    }
+            if (tempRecentSettings)
+            {
+                tempRecentSettings.parentNode.removeChild(tempRecentSettings);
+            }
 
-                    settingsContentDiv = document.createElement("div");
-                    settingsContentDiv.id = "recentSettingsDiv";
-                    settingsContentDiv.innerHTML = tempRecentSettings.innerHTML;
+            settingsTab.appendChild(settingsContentDiv);
+        }
+        //End AJAX part
 
-                    if (tempRecentSettings)
-                    {
-                        tempRecentSettings.parentNode.removeChild(tempRecentSettings);
-                    }
+        function ExportCSV()
+        {
+            var url="performanceReport_Export.php";
+            var centerPoint = document.getElementById("txtCenterPoint");
+            url+="?centerPoint="+encodeURIComponent(centerPoint.value);
+            var form = document.getElementById("getCSVFileForm");
+            form.action=url;
+            form.submit();
+        }
 
-                    settingsTab.appendChild(settingsContentDiv);
-                }
-                //End AJAX part
+        function ClearSettings()
+        {
+            //When Clear button clicked, removes the settings from
+            //map selector, scale textbox and center point textbox.
+            //Also removes any validation messages that are visible.
+            var mapDefinitonSelector = document.getElementById("mapSelector_DO_NOT_PERSIST");
 
-                function ExportCSV()
-                {
-                    var url="performanceReport_Export.php";
-                    var centerPoint = document.getElementById("txtCenterPoint");
-                    url+="?centerPoint="+encodeURIComponent(centerPoint.value);
-                    var form = document.getElementById("getCSVFileForm");
-                    form.action=url;
-                    form.submit();
-                }
+            if(mapDefinitonSelector.selectedIndex >= 0)
+            {
+                mapDefinitonSelector.selectedIndex = -1;
+                //change the selectedIndex valule by the js will not fire the event "onchange",
+                //so we manually do it.
+                MapResoucesNameSelectChange();
+            }
 
-                function ClearSettings()
-                {
-                    //When Clear button clicked, removes the settings from
-                    //map selector, scale textbox and center point textbox.
-                    //Also removes any validation messages that are visible.
-                    var mapDefinitonSelector = document.getElementById("mapSelector_DO_NOT_PERSIST");
+            //Also removes any validation messages that are visible.
+            ClearWrnMsg();
 
-                    if(mapDefinitonSelector.selectedIndex >= 0)
-                    {
-                        mapDefinitonSelector.selectedIndex = -1;
-                        //change the selectedIndex valule by the js will not fire the event "onchange",
-                        //so we manually do it.
-                        MapResoucesNameSelectChange();
-                    }
+            var mapSelectorWarnMsg = document.getElementById("selectMapResourceWarningMessage");
+            mapSelectorWarnMsg.innerHTML = "";
 
-                    //Also removes any validation messages that are visible.
-                    ClearWrnMsg();
+            SetRunButtonState(false);
+        }
 
-                    var mapSelectorWarnMsg = document.getElementById("selectMapResourceWarningMessage");
-                    mapSelectorWarnMsg.innerHTML = "";
-                 
-                    SetRunButtonState(false);
+        function SetRunButtonState(visible)
+        {                 
+            var runButton = document.getElementById("runBtn");
+
+            if(visible)
+            {
+                runButton.removeAttribute("disabled");
+            }
+            else
+            {
+                runButton.setAttribute("disabled", "disabled");
+            }
+        }
+
+        //when the layer info row click find the corresponding layer detail info and display it on the UI
+        function LayerDataTableRowClicked(layerName,tableRow)
+        {
+            var layerCount = layerDetailValues.length;
+
+            var i = 0;
+            for(; i < layerCount; i++)
+            {
+                if( Trim(layerName) == Trim(layerDetailValues[i][0]) )
+                {
+                    DisplayLayerDetail(layerDetailValues[i]);
+                    break;
                 }
+            }
+            
+            var j = 0;
+            for (;j < tableRow.cells.length; j++)
+            {
+                var obj = tableRow.cells[j];
+                obj.style.backgroundColor = "#b4c6de";
+            }
 
-                function SetRunButtonState(visible)
-                {                 
-                    var runButton = document.getElementById("runBtn");
+            var layersTable = document.getElementById("layerResultsTable");
+            var allRows = layersTable.tBodies[0].rows;
+            var k = 0;
+            for (;k < allRows.length; k++)
+            {
+                var lastSelectedRow = allRows[k];
 
-                    if(visible)
+                var isSelected = lastSelectedRow.getAttribute("rowselected");
+
+                if("true" == isSelected)
+                {
+                    if(tableRow === lastSelectedRow)
                     {
-                        runButton.removeAttribute("disabled");
+                        break;
                     }
-                    else
+                    
+                    var m = 0;
+                    for (;m < lastSelectedRow.cells.length; m++)
                     {
-                        runButton.setAttribute("disabled", "disabled");
+                        var obj = lastSelectedRow.cells[m];
+                        obj.style.backgroundColor = "";
                     }
+                    
+                    lastSelectedRow.setAttribute("rowselected","false");
                 }
+            }
+            
+            tableRow.setAttribute("rowselected","true");
+        }
 
-                //when the layer info row click find the corresponding layer detail info and display it on the UI
-                function LayerDataTableRowClicked(layerName)
-                {
-                    var layerCount=layerDetailValues.length;
+        //the detail info of a layer is on the left of the layer info table
+        //this method will display the selected layer detail info on the UI with designed style
+        //Note: when use document.getElementById, make sure the variable name is not the same with the "ID"
+        //like this: layerInfoDetail =document.getElementById("layerInfoDetail");
+        //it will cause problem under IE9 quirks mode, layerInfoDetail is already a built-in object of the document.
+        //two way to solve this problem
+        //1) make the variable name different with the "ID", layerDetail =document.getElementById("layerInfoDetail");
+        //2) add "var" before the varibale name, var layerInfoDetail =document.getElementById("layerInfoDetail");
+        function DisplayLayerDetail(layerDetail)
+        {                    
+            var layerDetailContent='<div style="padding-bottom: 8px; padding-top: 7px; width: 80%;">' + layerDetail[0] + '</div>'+ "\n";
+            layerDetailContent+='<div style=" border: 1px solid #cccccc; width: 80%">';
+            layerDetailContent+='<div style="padding: 10px;">';
+            layerDetailContent+="<b>Filter</b>";
+            layerDetailContent+="<br/><br/>";
 
-                    var i = 0;
-                    for(; i < layerCount; i++)
-                    {
-                        if( Trim(layerName) == Trim(layerDetailValues[i][0]) )
-                        {
-                            DisplayLayerDetail(layerDetailValues[i]);
-                            break;
-                        }
-                    }
-                }
+            //If no filter was applied, then "No filter was applied to this layer." is displayed.
+            if( "" == Trim(layerDetail[1]) )
+            {
+                layerDetailContent += "No filter was applied to this layer.";
+            }
+            else
+            {
+                layerDetailContent += layerDetail[1];
+            }
 
-                //the detail info of a layer is on the left of the layer info table
-                //this method will display the selected layer detail info on the UI with designed style
-                //Note: when use document.getElementById, make sure the variable name is not the same with the "ID"
-                //like this: layerInfoDetail =document.getElementById("layerInfoDetail");
-                //it will cause problem under IE9 quirks mode, layerInfoDetail is already a built-in object of the document.
-                //two way to solve this problem
-                //1) make the variable name different with the "ID", layerDetail =document.getElementById("layerInfoDetail");
-                //2) add "var" before the varibale name, var layerInfoDetail =document.getElementById("layerInfoDetail");
-                function DisplayLayerDetail(layerDetail)
-                {                    
-                    var layerDetailContent='<div style="padding-bottom: 8px; padding-top: 7px; width: 80%;">' + layerDetail[0] + '</div>'+ "\n";
-                    layerDetailContent+='<div style=" border: 1px solid #cccccc; width: 80%">';
-                    layerDetailContent+='<div style="padding: 10px;">';
-                    layerDetailContent+="<b>Filter</b>";
-                    layerDetailContent+="<br/><br/>";
-                    layerDetailContent+=layerDetail[1];
-                    layerDetailContent+="</div>";
-                    layerDetailContent+='<div style=" background-color: #EEEEEE;padding: 10px;">';
-                    layerDetailContent+="<b>Scale Range</b>";
-                    layerDetailContent+="<br/><br/>";
-                    layerDetailContent+=layerDetail[2];
-                    layerDetailContent+="</div>"+ "\n";
-                    layerDetailContent+="</div>"+"\n";
+            layerDetailContent+="</div>";
+            layerDetailContent+='<div style=" background-color: #EEEEEE;padding: 10px;">';
+            layerDetailContent+="<b>Scale Range</b>";
+            layerDetailContent+="<br/><br/>";
+            layerDetailContent+=layerDetail[2];
+            layerDetailContent+="</div>"+ "\n";
+            layerDetailContent+="</div>"+"\n";
 
-                    //remove the layer detail info if it already exist
-                    var layerInfo = document.getElementById("layerDetailContentDiv");
+            //remove the layer detail info if it already exist
+            var layerInfo = document.getElementById("layerDetailContentDiv");
 
-                    if (layerInfo)
-                    {
-                        layerInfo.parentNode.removeChild(layerInfo);
-                    }
+            if (layerInfo)
+            {
+                layerInfo.parentNode.removeChild(layerInfo);
+            }
 
-                    var layerDetailDiv = document.createElement("div");
-                    layerDetailDiv.id="layerDetailContentDiv";
-                    layerDetailDiv.innerHTML = layerDetailContent;
+            var layerDetailDiv = document.createElement("div");
+            layerDetailDiv.id="layerDetailContentDiv";
+            layerDetailDiv.innerHTML = layerDetailContent;
 
-                    //the placeholder for the layer detail info
-                    var layerInfoDetail =document.getElementById("layerInfoDetail");
-                    layerInfoDetail.appendChild(layerDetailDiv);
+            //the placeholder for the layer detail info
+            var layerInfoDetail =document.getElementById("layerInfoDetail");
+            layerInfoDetail.appendChild(layerDetailDiv);
+        }
+
+        //sort layers information table part
+        var SortLayers = {
+            //reverse the table rows
+            reverse: function(tBody)
+            {
+                // reverse the rows in a tbody
+                newRows = [];
+                var i = 0;
+                for (; i < tBody.rows.length; i++)
+                {
+                    newRows[i] = tBody.rows[i];
                 }
 
-                //sort layers information table part
-                var SortLayers = {
-                    //reverse the table rows
-                    reverse: function(tBody)
+                var j=1;
+
+                i = newRows.length - 1;
+                for (; i >= 0; i--)
+                {
+                    tBody.appendChild(newRows[i]);
+
+                    if(0 == j%2)
                     {
-                        // reverse the rows in a tbody
-                        newRows = [];
-                        var i = 0;
-                        for (; i < tBody.rows.length; i++)
-                        {
-                            newRows[i] = tBody.rows[i];
-                        }
+                        newRows[i].className="even";
+                    }
+                    else
+                    {
+                        newRows[i].className="odd";
+                    }
 
-                        var j=1;
+                    j++;
+                }
+                delete newRows;
+            },
 
-                        i = newRows.length - 1;
-                        for (; i >= 0; i--)
-                        {
-                            tBody.appendChild(newRows[i]);
+            sortByColumn: function(headerColumn)
+            {
+                //get the table body of the layers information table
+                var layersTBody = document.getElementById("layerResultsTable").tBodies[0];
 
-                            if(0 == j%2)
-                            {
-                                newRows[i].className="even";
-                            }
-                            else
-                            {
-                                newRows[i].className="odd";
-                            }
+                if (headerColumn.className.search(/\blayersSorted\b/) != -1)
+                {
+                    // if we're already sorted by this column, just reverse the table
+                    SortLayers.reverse(layersTBody);
+                    headerColumn.className = headerColumn.className.replace("layersSorted","layersSortedReverse");
 
-                            j++;
-                        }
-                        delete newRows;
-                    },
+                    headerColumn.removeChild(document.getElementById('layersSortDown'));
 
-                    sortByColumn: function(headerColumn)
-                    {
-                        //get the table body of the layers information table
-                        var layersTBody = document.getElementById("layerResultsTable").tBodies[0];
+                    layersSortUp = document.createElement("span");
+                    layersSortUp.id = "layersSortUp";
+                    layersSortUp.innerHTML =  "&nbsp;<image src='images/arrow_up.png' alt='&#x25B4;'/>";
+                    headerColumn.appendChild(layersSortUp);
 
-                        if (headerColumn.className.search(/\blayersSorted\b/) != -1)
-                        {
-                            // if we're already sorted by this column, just reverse the table
-                            SortLayers.reverse(layersTBody);
-                            headerColumn.className = headerColumn.className.replace("layersSorted","layersSortedReverse");
+                    return;
+                }
 
-                            headerColumn.removeChild(document.getElementById('layersSortDown'));
+                if (headerColumn.className.search(/\blayersSortedReverse\b/) != -1)
+                {
+                    // if we're already sorted by this column, just reverse the table
+                    SortLayers.reverse(layersTBody);
+                    headerColumn.className = headerColumn.className.replace("layersSortedReverse","layersSorted");
 
-                            layersSortUp = document.createElement("span");
-                            layersSortUp.id = "layersSortUp";
-                            layersSortUp.innerHTML =  "&nbsp;<image src='images/arrow_up.png' alt='&#x25B4;'/>";
-                            headerColumn.appendChild(layersSortUp);
+                    headerColumn.removeChild(document.getElementById('layersSortUp'));
 
-                            return;
-                        }
+                    layersSortDown = document.createElement('span');
+                    layersSortDown.id = "layersSortDown";
+                    layersSortDown.innerHTML = "&nbsp;<image src='images/arrow_down.png' alt='&#x25BE;'/>";
+                    headerColumn.appendChild(layersSortDown);
 
-                        if (headerColumn.className.search(/\blayersSortedReverse\b/) != -1)
-                        {
-                            // if we're already sorted by this column, just reverse the table
-                            SortLayers.reverse(layersTBody);
-                            headerColumn.className = headerColumn.className.replace("layersSortedReverse","layersSorted");
+                    return;
+                }
 
-                            headerColumn.removeChild(document.getElementById('layersSortUp'));
-                            
-                            layersSortDown = document.createElement('span');
-                            layersSortDown.id = "layersSortDown";
-                            layersSortDown.innerHTML = "&nbsp;<image src='images/arrow_down.png' alt='&#x25BE;'/>";
-                            headerColumn.appendChild(layersSortDown);
+                // remove layersSorted classes
+                layerHeadRow = headerColumn.parentNode;
+                var i = 0;
+                for( ; i < layerHeadRow.childNodes.length; i++)
+                {
+                    cell = layerHeadRow.childNodes[i];
+                    if (cell.nodeType == 1)// an element
+                    {   
+                        cell.className = cell.className.replace('layersSortedReverse', '');
+                        cell.className = cell.className.replace('layersSorted', '');
+                    }
+                }
 
-                            return;
-                        }
+                //remove the icon sort down or up if it already exist
+                var layersSortDown = document.getElementById('layersSortDown');
 
-                        // remove layersSorted classes
-                        layerHeadRow = headerColumn.parentNode;
-                        var i = 0;
-                        for( ; i < layerHeadRow.childNodes.length; i++)
-                        {
-                            cell = layerHeadRow.childNodes[i];
-                            if (cell.nodeType == 1)// an element
-                            {   
-                                cell.className = cell.className.replace('layersSortedReverse', '');
-                                cell.className = cell.className.replace('layersSorted', '');
-                            }
-                        }
+                if (layersSortDown)
+                {
+                    layersSortDown.parentNode.removeChild(layersSortDown);
+                }
 
-                        //remove the icon sort down or up if it already exist
-                        var layersSortDown = document.getElementById('layersSortDown');
+                var layersSortUp = document.getElementById('layersSortUp');
 
-                        if (layersSortDown)
-                        {
-                            layersSortDown.parentNode.removeChild(layersSortDown);
-                        }
+                if (layersSortUp)
+                {
+                    layersSortUp.parentNode.removeChild(layersSortUp);
+                }
 
-                        var layersSortUp = document.getElementById('layersSortUp');
+                //by default, we sort the talbe by ASC
+                headerColumn.className = "layersSorted";
+                layersSortDown = document.createElement('span');
+                layersSortDown.id = "layersSortDown";
+                layersSortDown.innerHTML = "&nbsp;<image src='images/arrow_down.png' alt='&#x25BE;'/>";
+                headerColumn.appendChild(layersSortDown);
 
-                        if (layersSortUp)
-                        {
-                            layersSortUp.parentNode.removeChild(layersSortUp);
-                        }
+                //get the content need to be sorted into a 2-D array
+                rowArray = [];
 
-                        //by default, we sort the talbe by ASC
-                        headerColumn.className = "layersSorted";
-                        layersSortDown = document.createElement('span');
-                        layersSortDown.id = "layersSortDown";
-                        layersSortDown.innerHTML = "&nbsp;<image src='images/arrow_down.png' alt='&#x25BE;'/>";
-                        headerColumn.appendChild(layersSortDown);
+                colIndex = parseInt(headerColumn.getAttribute("columnindex")) - 1;
+                rows = layersTBody.rows;
+                var j = 0;
+                for (; j < rows.length; j++)
+                {
+                    rowArray[rowArray.length] = [SortLayers.getInnerText(rows[j].cells[colIndex]), rows[j]];
+                }
 
-                        //get the content need to be sorted into a 2-D array
-                        rowArray = [];
-                        
-                        colIndex = parseInt(headerColumn.getAttribute("columnindex")) - 1;
-                        rows = layersTBody.rows;
-                        var j = 0;
-                        for (; j < rows.length; j++)
-                        {
-                            rowArray[rowArray.length] = [SortLayers.getInnerText(rows[j].cells[colIndex]), rows[j]];
-                        }
+                //only the second column needs to be sorted by numeric, others are all by alpha
+                if(1 == colIndex)
+                {
+                    rowArray.sort(SortLayers.sortByNumeric);
+                }
+                else
+                {
+                    rowArray.sort(SortLayers.sortByAlpha);
+                }                     
 
-                        //only the second column needs to be sorted by numeric, others are all by alpha
-                        if(1 == colIndex)
-                        {
-                            rowArray.sort(SortLayers.sortByNumeric);
-                        }
-                        else
-                        {
-                            rowArray.sort(SortLayers.sortByAlpha);
-                        }                     
+                //reset the row alternate color after sorting
+                tableBody = layersTBody;
+                for (j = 0; j < rowArray.length; j++)
+                {
+                    tableBody.appendChild(rowArray[j][1]);
 
-                        //reset the row alternate color after sorting
-                        tableBody = layersTBody;
-                        for (j = 0; j < rowArray.length; j++)
-                        {
-                            tableBody.appendChild(rowArray[j][1]);
+                    if(0 == j%2)
+                    {
+                        rowArray[j][1].className="odd";
+                    }
+                    else
+                    {
+                        rowArray[j][1].className="even";
+                    }
+                }
 
-                            if(0 == j%2)
-                            {
-                                rowArray[j][1].className="odd";
-                            }
-                            else
-                            {
-                                rowArray[j][1].className="even";
-                            }
-                        }
+                delete rowArray;
+            },
 
-                        delete rowArray;
-                    },
+            getInnerText: function(node)
+            {
+                // gets the text we want to use for sorting for a cell.
+                // strips leading and trailing whitespace.
 
-                    getInnerText: function(node)
+                if (node.getAttribute("sortKey") != null)
+                {
+                    return node.getAttribute("sortKey");
+                }
+                else if (typeof node.textContent != 'undefined')
+                {
+                    return node.textContent.replace(/^\s+|\s+$/g, '');
+                }
+                else if (typeof node.innerText != 'undefined')
+                {
+                    return node.innerText.replace(/^\s+|\s+$/g, '');
+                }
+                else if (typeof node.text != 'undefined')
+                {
+                    return node.text.replace(/^\s+|\s+$/g, '');
+                }
+                else
+                {
+                    switch (node.nodeType)
                     {
-                        // gets the text we want to use for sorting for a cell.
-                        // strips leading and trailing whitespace.
-
-                        if (node.getAttribute("sortKey") != null)
-                        {
-                            return node.getAttribute("sortKey");
-                        }
-                        else if (typeof node.textContent != 'undefined')
-                        {
-                            return node.textContent.replace(/^\s+|\s+$/g, '');
-                        }
-                        else if (typeof node.innerText != 'undefined')
-                        {
-                            return node.innerText.replace(/^\s+|\s+$/g, '');
-                        }
-                        else if (typeof node.text != 'undefined')
-                        {
-                            return node.text.replace(/^\s+|\s+$/g, '');
-                        }
-                        else
-                        {
-                            switch (node.nodeType)
-                            {
-                                case 4:
-                                    return node.nodeValue.replace(/^\s+|\s+$/g, '');
-                                    break;
-                                case 1:
-                                case 11:
-                                    var innerText = '';
-                                    var i = 0;
-                                    for (; i < node.childNodes.length; i++) {
-                                        innerText += SortLayers.getInnerText(node.childNodes[i]);
-                                    }
-                                    return innerText.replace(/^\s+|\s+$/g, '');
-                                    break;
-                                default:
-                                    return '';
+                        case 4:
+                            return node.nodeValue.replace(/^\s+|\s+$/g, '');
+                            break;
+                        case 1:
+                        case 11:
+                            var innerText = '';
+                            var i = 0;
+                            for (; i < node.childNodes.length; i++) {
+                                innerText += SortLayers.getInnerText(node.childNodes[i]);
                             }
-                        }
-                    },
+                            return innerText.replace(/^\s+|\s+$/g, '');
+                            break;
+                        default:
+                            return '';
+                    }
+                }
+            },
 
-                    // sort functions
-                    // a is an array with two elements, so as b
-                    // so you are comparing a[0] and b[0]
-                    sortByNumeric: function(a, b)
-                    {
-                        a0 = parseFloat(a[0].replace(/[^0-9.-]/g, ''));
-                        if (isNaN(a0))
-                        {
-                            a0 = 0;
-                        }
+            // sort functions
+            // a is an array with two elements, so as b
+            // so you are comparing a[0] and b[0]
+            sortByNumeric: function(a, b)
+            {
+                a0 = parseFloat(a[0].replace(/[^0-9.-]/g, ''));
+                if (isNaN(a0))
+                {
+                    a0 = 0;
+                }
 
-                        b0 = parseFloat(b[0].replace(/[^0-9.-]/g, ''));
-                        if (isNaN(b0))
-                        {
-                            b0 = 0;
-                        }
+                b0 = parseFloat(b[0].replace(/[^0-9.-]/g, ''));
+                if (isNaN(b0))
+                {
+                    b0 = 0;
+                }
 
-                        return a0 - b0;
-                    },
+                return a0 - b0;
+            },
 
-                    //Making sorttable sort your columns case-insensitive
-                    sortByAlpha: function(a,b)
-                    {
-                        if (a[0].toLowerCase() == b[0].toLowerCase())
-                        {
-                            return 0;                               
-                        }
-       
-                        if (a[0].toLowerCase() < b[0].toLowerCase())
-                        {
-                            return -1;
-                        }
+            //Making sorttable sort your columns case-insensitive
+            sortByAlpha: function(a,b)
+            {
+                if (a[0].toLowerCase() == b[0].toLowerCase())
+                {
+                    return 0;                               
+                }
 
-                        return 1;
-                    }
+                if (a[0].toLowerCase() < b[0].toLowerCase())
+                {
+                    return -1;
                 }
 
-                //recent Settings
-                window.onload = LoadRecentSettings;
+                return 1;
+            }
+        }
 
-                function LoadRecentSettings()
+        //recent Settings
+        window.onload = LoadRecentSettings;
+
+        function LoadRecentSettings()
+        {
+            var tempSettingJs = document.getElementById("recentSettingsJsArray");
+
+            if(tempSettingJs)
+            {
+                //get js content in the hidden span
+                var innerScript = tempSettingJs.innerHTML;
+                innerScript = innerScript.replace(/\\n/,'');
+
+                //check to remove the script if it already exists
+                var insertScript = document.getElementById("recentSettingsJs");
+                if(insertScript)
                 {
-                    var tempSettingJs = document.getElementById("recentSettingsJsArray");
+                    document.getElementsByTagName("head").item(0).removeChild(insertScript);
+                }
 
-                    if(tempSettingJs)
-                    {
-                        //get js content in the hidden span
-                        var innerScript = tempSettingJs.innerHTML;
-                        innerScript = innerScript.replace(/\\n/,'');
+                //every new execute should generate new js array data
+                insertScript = document.createElement("script");
+                insertScript.type = "text/javascript";
+                insertScript.id = "recentSettingsJs";
+                insertScript.text = innerScript;
 
-                        //check to remove the script if it already exists
-                        var insertScript = document.getElementById("recentSettingsJs");
-                        if(insertScript)
-                        {
-                            document.getElementsByTagName("head").item(0).removeChild(insertScript);
-                        }
+                document.getElementsByTagName("head").item(0).appendChild(insertScript);
 
-                        //every new execute should generate new js array data
-                        insertScript = document.createElement("script");
-                        insertScript.type = "text/javascript";
-                        insertScript.id = "recentSettingsJs";
-                        insertScript.text = innerScript;
+                tempSettingJs.parentNode.removeChild(tempSettingJs);
+            }
 
-                        document.getElementsByTagName("head").item(0).appendChild(insertScript);
+            SetSettingsWithCookie();
+        }
 
-                        tempSettingJs.parentNode.removeChild(tempSettingJs);
-                    }
+        function SetSettingsWithCookie()
+        {
+            var mapIdCookie = document.getElementById("cookieMapId");
+            var centerPointCookie = document.getElementById("cookieCenterPoint");
+            var scaleCookie = document.getElementById("cookieScale");
 
-                    SetSettingsWithCookie();
-                }
+            if(mapIdCookie)
+            {
+                var centerPoint = document.getElementById("txtCenterPoint");
+                centerPoint.value = centerPointCookie.value;
 
-                function SetSettingsWithCookie()
-                {
-                    var mapIdCookie = document.getElementById("cookieMapId");
-                    var centerPointCookie = document.getElementById("cookieCenterPoint");
-                    var scaleCookie = document.getElementById("cookieScale");
+                var scaleInput = document.getElementById("txtScale");
+                scaleInput.value = FormatNumber(scaleCookie.value,4);
 
-                    if(mapIdCookie)
-                    {
-                        var centerPoint = document.getElementById("txtCenterPoint");
-                        centerPoint.value = centerPointCookie.value;
+                var mapDefinitonSelector = document.getElementById("mapSelector_DO_NOT_PERSIST");
+                mapDefinitonSelector.value = Trim(mapIdCookie.value);
 
-                        var scaleInput = document.getElementById("txtScale");
-                        scaleInput.value = FormatNumber(scaleCookie.value,0);
+                var tipDiv = document.getElementById("mapResourceNameTip");
+                tipDiv.innerHTML = mapDefinitonSelector.value;
 
-                        var mapDefinitonSelector = document.getElementById("mapSelector_DO_NOT_PERSIST");
-                        mapDefinitonSelector.value = Trim(mapIdCookie.value);
+                var settingsBtn = document.getElementById("mapViewerBtn");
+                centerPoint.removeAttribute("disabled");
+                scaleInput.removeAttribute("disabled");
+                settingsBtn.removeAttribute("disabled");
+                SetRunButtonState(true);
+            }
+        }
 
-                        var tipDiv = document.getElementById("mapResourceNameTip");
-                        tipDiv.innerHTML = mapDefinitonSelector.value;
+        function RecentSettingClicked(settingId)
+        {
+            var settingsCount = recentSettings.length;
+            var selectSetting = null;
 
-                        var settingsBtn = document.getElementById("mapViewerBtn");
-                        centerPoint.removeAttribute("disabled");
-                        scaleInput.removeAttribute("disabled");
-                        settingsBtn.removeAttribute("disabled");
-                        SetRunButtonState(true);
-                    }
+            var i = 0;
+            for(; i < settingsCount; i++)
+            {
+                if( Trim(settingId) == Trim(recentSettings[i][0]) )
+                {
+                    selectSetting = recentSettings[i];
+                    break;
                 }
+            }
 
-                function RecentSettingClicked(settingId)
+            if(null != selectSetting)
+            {
+                var mapDefinitonSelector = document.getElementById("mapSelector_DO_NOT_PERSIST");
+                var i = 0;
+                var found = false;
+                for(;i < mapDefinitonSelector.options.length;i++)
                 {
-                    var settingsCount = recentSettings.length;
-                    var selectSetting = null;
-
-                    var i = 0;
-                    for(; i < settingsCount; i++)
+                    var mapId = Trim(mapDefinitonSelector.options[i].value);
+                    if(Trim(selectSetting[1]) == mapId)
                     {
-                        if( Trim(settingId) == Trim(recentSettings[i][0]) )
-                        {
-                            selectSetting = recentSettings[i];
-                            break;
-                        }
+                        found =  true;
                     }
+                }
 
-                    if(null != selectSetting)
-                    {
-                        var mapDefinitonSelector = document.getElementById("mapSelector_DO_NOT_PERSIST");
-                        var i = 0;
-                        var found = false;
-                        for(;i < mapDefinitonSelector.options.length;i++)
-                        {
-                            var mapId = Trim(mapDefinitonSelector.options[i].value);
-                            if(Trim(selectSetting[1]) == mapId)
-                            {
-                                found =  true;
-                            }
-                        }
+                if(found)
+                {
+                    mapDefinitonSelector.value = Trim(selectSetting[1]);
+                }
+                else
+                {
+                    alert("The selected map resource is no longer available. Select a different map resource to continue.");
+                    return;
+                }
 
-                        if(found)
-                        {
-                            mapDefinitonSelector.value = Trim(selectSetting[1]);
-                        }
-                        else
-                        {
-                            alert("The selected map resource is no longer available. Select a different map resource to continue.");
-                            return;
-                        }
+                var centerPoint = document.getElementById("txtCenterPoint");
+                centerPoint.value = selectSetting[2];
 
-                        var centerPoint = document.getElementById("txtCenterPoint");
-                        centerPoint.value = selectSetting[2];
+                var scaleInput = document.getElementById("txtScale");
+                scaleInput.value = FormatNumber(selectSetting[3],4);
 
-                        var scaleInput = document.getElementById("txtScale");
-                        scaleInput.value = FormatNumber(selectSetting[3],0);
-                        
-                        var tipDiv = document.getElementById("mapResourceNameTip");
-                        tipDiv.innerHTML = mapDefinitonSelector.value;
+                var tipDiv = document.getElementById("mapResourceNameTip");
+                tipDiv.innerHTML = mapDefinitonSelector.value;
 
-                        var settingsBtn = document.getElementById("mapViewerBtn");
+                var settingsBtn = document.getElementById("mapViewerBtn");
 
-                        centerPoint.removeAttribute("disabled");
-                        scaleInput.removeAttribute("disabled");
-                        settingsBtn.removeAttribute("disabled");
+                centerPoint.removeAttribute("disabled");
+                scaleInput.removeAttribute("disabled");
+                settingsBtn.removeAttribute("disabled");
 
-                        SetRunButtonState(true);
+                SetRunButtonState(true);
 
-                        ShowReportWarningMsg();
-                    }
-                }
-            </script>
+                ShowReportWarningMsg();
+            }
+        }
+    </script>
+    <div id="bgDiv" class="bgDivStyle"></div>
+    <table cellspacing="0" cellpadding="0" border="0" class="main">
+        <tr>
+            <?php DisplaySiteHeader( false, true, true, true, $formName, $homePage ); ?>
+        </tr>
+        <tr>
+            <?php DisplayLefthandSash( $menuCategory ); ?>
 
+            <!-- Contents Area -->
+            <?php BeginContentArea( $formName ); ?>
+
+            <?php
+                  DeclareHiddenVars( $pageName );
+                  DisplayTitleBar( $pageTitle, $helpPage );           
+                  DisplayConfirmationMsg( $confirmationMsg );
+                  DisplayErrorMsg( $errorMsg );                
+            ?>
             <div id="settingsTitle">
              <table>
                  <tr>

Modified: trunk/MgDev/Web/src/mapadmin/performanceReport_Export.php
===================================================================
--- trunk/MgDev/Web/src/mapadmin/performanceReport_Export.php	2011-10-26 03:19:04 UTC (rev 6183)
+++ trunk/MgDev/Web/src/mapadmin/performanceReport_Export.php	2011-10-26 06:07:06 UTC (rev 6184)
@@ -56,7 +56,7 @@
     $extents= '"MinX:' . $x1 . '    MinY:' . $y1.'    MaxX:' . $x2 . '    MaxY:' . $y2.'"';
 
     //get the scale display string
-    $scale= "1:" . number_format($mapProfileResult->MapProfileData->Scale,0,"."," ");
+    $scale= "1:" . number_format($mapProfileResult->MapProfileData->Scale,4,"."," ");
 
     //get the center point display string
     list($centerPointX, $centerPointY) = explode("*", $_REQUEST["centerPoint"]);

Modified: trunk/MgDev/Web/src/mapadmin/performanceReport_GetResult.php
===================================================================
--- trunk/MgDev/Web/src/mapadmin/performanceReport_GetResult.php	2011-10-26 03:19:04 UTC (rev 6183)
+++ trunk/MgDev/Web/src/mapadmin/performanceReport_GetResult.php	2011-10-26 06:07:06 UTC (rev 6184)
@@ -385,7 +385,7 @@
                         <td style=" font-weight: bold;">Scale:</td>
                         <td>
                             <?php
-                                echo "1:" . number_format($mapProfileResult->MapProfileData->Scale,0,"."," ");
+                                echo "1:" . number_format($mapProfileResult->MapProfileData->Scale,4,"."," ");
                             ?>
                         </td>
                     </tr>

Modified: trunk/MgDev/Web/src/mapadmin/resizablepagecomponents.php
===================================================================
--- trunk/MgDev/Web/src/mapadmin/resizablepagecomponents.php	2011-10-26 03:19:04 UTC (rev 6183)
+++ trunk/MgDev/Web/src/mapadmin/resizablepagecomponents.php	2011-10-26 06:07:06 UTC (rev 6184)
@@ -2184,11 +2184,11 @@
                 //set different colors for alternate rows and when mouse move over the row it will change color
                 if(0 == $rowNumber%2)
                 {
-                    echo '<tr class="even" onmouseover="HighlightRow(this);" onmouseout="UnhighlightRow(this);" onclick="LayerDataTableRowClicked(\''.$layerProfileData->LayerName.'\');">',"\n";
+                    echo '<tr class="even" rowselected="false" onclick="LayerDataTableRowClicked(\''.$layerProfileData->LayerName.'\',this);">',"\n";
                 }
                 else
                 {
-                    echo '<tr class="odd" onmouseover="HighlightRow(this);" onmouseout="UnhighlightRow(this);" onclick="LayerDataTableRowClicked(\''.$layerProfileData->LayerName.'\');">',"\n";
+                    echo '<tr class="odd" rowselected="false" onclick="LayerDataTableRowClicked(\''.$layerProfileData->LayerName.'\',this);">',"\n";
                 }
 
                 //output the layer profiling information by each column,



More information about the mapguide-commits mailing list