/************************************************************
displayCharts()
Author: Felix de Bie
Date: Nov 27/2008

Description:

Takes the list of currently visible charts, and displays
them on the map
************************************************************/

function displayCharts(charts){

   var chartList=charts.split("|");
   var hideList=chartList[0].split(",");
   var addList=chartList[1].split(",");

   document.getElementById('loadingDivMap').style.display = 'block';

   if (chartList[0].length!=0) {
//
      for (var i = 0; i < hideList.length; i++)
         {
            objTemp = eval('v'+hideList[i]);
            oGMap.removeOverlay(objTemp);
            objTemp.hide();
         }
   }
   if (chartList[1].length>2) {

      for (var i = 0; i < addList.length; i++)
         {
             objTemp = eval('v'+addList[i]);
             oGMap.addOverlay(objTemp);
             objTemp.show();

         }
   }

    document.getElementById('loadingDivMap').style.display = 'none';
}



/************************************************************
hideCharts
Author: Felix de Bie
Date: Nov 27/2008

Description:

Takes the list of currently visible charts, and removes
them from the map
************************************************************/

function hideCharts(charts){
   var chartList=charts.split(",");

   for (var i = 0; i < chartList.length; i++)
      {
         objTemp = eval('v'+chartList[i]);
         oGMap.removeOverlay(objTemp);
         objTemp.hide();
      }

}

/************************************************************
getCharts()
Author: Felix de Bie
Date: Nov 27/2008

Description:

This loops through the legend and makes a string based on the
position of the checkboxes. For example, if the first and third
checkboxes were checked, the string would be "02". This is
passed to the database to retrieve the proper chart list
************************************************************/

function getCharts(){
/*    if ((charts != undefined) && (charts != null) && (charts.indexOf("null") < 0) && (charts != ""))
        hideCharts(charts);
*/

   document.getElementById('loadingDivMap').style.display = 'block';
   frmLayersDocument = document.getElementById("frmLayers");

   newLayerArray ='';

   for (var a = frmLayersDocument.chkLayers.length - 1; a >= 0; a --){
      if(frmLayersDocument.chkLayers[a].checked){
         newLayerArray += a;
      }
   }

   if (newLayerArray=='') {
      oGMap.clearOverlays();
      newLayerArray='9';
   }



    // This AHAH call gets the chartlist from the database,
    // displays the charts and assigns the chart list to the charts variable
    //GLog.write("/jsp/getCharts.jsp?bounds=" + oGMap.getBounds().toString().replace(/ /g, "").replace(/\(/g, "").replace(/\)/g, "") + "&layerArray=" + layerArray);
      if(!oldBounds){

         callAHAH('./jsp/getCharts.jsp?oldBounds=0,0,1,1&newBounds='
      +oGMap.getBounds().toString().replace(/ /g, "").replace(/\(/g, "").replace(/\)/g, "")
      +'&newLayerArray='+newLayerArray+'&oldLayerArray='+oldLayerArray,'displaydiv', ' ');

      } else {


      callAHAH('./jsp/getCharts.jsp?oldBounds='+oldBounds+'&newBounds='
      +oGMap.getBounds().toString().replace(/ /g, "").replace(/\(/g, "").replace(/\)/g, "")
      +'&newLayerArray='+newLayerArray+'&oldLayerArray='+oldLayerArray,'displaydiv', ' ');


      }

       oldBounds=oGMap.getBounds().toString().replace(/ /g, "").replace(/\(/g, "").replace(/\)/g, "");
       oldLayerArray=newLayerArray;



   }


/************************************************************
zoomLegend()
Parameters: zoom
   The google map zoom level

Author: Felix de Bie
Date: Nov 27/2008

Description:

This controls the layer visiblity in the legend based on the
google zoom level. When a zoom is performed it checks to see
if the layer should be disbaled. If it is enabled, then it
unchecks it and disables it.

It maintains the layer checked state if the zoom does not
change the disable state.
************************************************************/


function zoomLegend(zoom) {
   frmLayersDocument = document.getElementById("frmLayers");

   if(zoom>2){
      if (frmLayersDocument.chkLayers[1].disabled){
          frmLayersDocument.chkLayers[1].disabled=false;
          frmLayersDocument.chkLayers[1].checked=true;
      }
   }
   else
   {
      frmLayersDocument.chkLayers[1].checked=false;
      frmLayersDocument.chkLayers[1].disabled=true;
   };

   if(zoom>3){
      if (frmLayersDocument.chkLayers[2].disabled){
         frmLayersDocument.chkLayers[2].disabled=false;
         frmLayersDocument.chkLayers[2].checked=true;
      }
   }
   else
   {
      frmLayersDocument.chkLayers[2].checked=false;
      frmLayersDocument.chkLayers[2].disabled=true;
   };

   if(zoom>4){
      if (frmLayersDocument.chkLayers[3].disabled){
         frmLayersDocument.chkLayers[3].disabled=false;
         frmLayersDocument.chkLayers[3].checked=true;
      }
   }
   else
   {
      frmLayersDocument.chkLayers[3].checked=false;
      frmLayersDocument.chkLayers[3].disabled=true;
   };

   if(zoom>5){

      if (frmLayersDocument.chkLayers[4].disabled){
         frmLayersDocument.chkLayers[4].disabled=false;
         frmLayersDocument.chkLayers[4].checked=true;
      }
   }
   else
   {
      frmLayersDocument.chkLayers[4].checked=false;
      frmLayersDocument.chkLayers[4].disabled=true;
   };

   if(zoom>6){

      if (frmLayersDocument.chkLayers[5].disabled){
         frmLayersDocument.chkLayers[5].disabled=false;
         frmLayersDocument.chkLayers[5].checked=true;
      }

   }
   else
   {
      frmLayersDocument.chkLayers[5].checked=false;
      frmLayersDocument.chkLayers[5].disabled=true;
   };

   //if (charts != null) hideCharts(charts);
   //hideCharts(charts);
}

/************************************************************
Refresh Charts
Author: Felix de Bie
Date: Nov 27/2008

Description:

When the legend is clicked, this function will hide the current
charts and then get a new set based on the current clicked
charts in the legend
************************************************************/

function refreshCharts(){
 //  hideCharts(charts);
   getCharts();
 }