var pano;
var panoClient;
var sview;
var map;
var svoverlay = null;
var dynamicMap = null;
var map;
var zoom;
var bounds;
var blayer;
//tiled map service variables
    var mapExtension;
    var gOverlays = null;
    var mapOptions ;
	var endpoints=[];
	var legend;

function load() {    
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("gmap"));
mapExtension = new esri.arcgis.gmaps.MapExtension(map);       
//  Add map controls     
map.addControl(new GLargeMapControl());
map.addControl(new GScaleControl());
map.addMapType(G_PHYSICAL_MAP);
map.addControl(new GMapTypeControl());
map.enableDoubleClickZoom();

// add and position custom street view control.
//var topleft=new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(100,7));
//map.addControl(new StreetView_Control(), topleft);

GEvent.addListener(map, "click", function(overlay,point) {
//var center = map.getCenter();
//alert(point.lat() + "," + point.lng());
//executeQuery(point);
 // var center = gmap.getCenter();
});

// Set x,y center and default zoom level. Dynamic - it reads value from a label control.
// The label element name is created by asp.net.
c=map.getBoundsZoomLevel(bounds)
//alert(bounds);
map.setCenter(new GLatLng(y, x),c);

// function calls for the local dynamic local gis layers.
addDynamicMap();
showAllLayers();
// Heat maps:
legend = document.getElementById("legend");
hidelegend();  
// reset local layer drop down list only if it exists:
if (document.getElementById('ddlLocalLayers'))
  {document.getElementById('ddlLocalLayers').selectedIndex=0;}
      
// make sure layer controls boxes are uncheked:
for (i=0; i<document.form.cbLayers.length; i++){
 document.form.cbLayers[i].checked=false;
}


var layerspp2=layerspp+blayer
var layersf=layerspp2.split(',')

dynamicMap.setVisibleLayers(layersf)

for (j=0; j<layersf.length-1; j++) {
for (i=0; i<document.form.cbLayers.length; i++){
 if (document.form.cbLayers[i].value==layersf[j]) {
 document.form.cbLayers[i].checked=true;
}}}

// STREET VIEW STUFF
//StreetView_InitializePanorama(); 
//StreetView_panoDiv.style.visibility="hidden";
//StreetView_panoDiv.style.height="0px";       
//  END OF STREET VIEW STUFF




identifyTask = new esri.arcgis.gmaps.IdentifyTask("http://gpvm002.gisplanning.net/ArcGIS/rest/services/florida/florida/MapServer");

GEvent.addListener(map, "click", identify);

function identify(overlay, latLng) {  if (overlay) return;
        var identifyParameters = new esri.arcgis.gmaps.IdentifyParameters();
        identifyParameters.geometry = latLng; 
        identifyParameters.tolerance = 10;
        
        identifyParameters.layerIds = [1,2,3,7,14];
       
        identifyParameters.layerOption = "all";
        identifyParameters.bounds = map.getBounds();
        var mapSize = map.getSize();
        identifyParameters.width = mapSize.width;
        identifyParameters.height = mapSize.height;
        identifyTask.execute(identifyParameters, function(response, error) {
        
        if (error) { return;}

          addResultToMap(response, latLng);
     	});
 } 
 
 function addResultToMap(response, point) {
          var idResults = response.identifyResults;
          
          if (idResults.length>0) {
             var busname=idResults[0].feature.attributes["NAME"]
     
           map.openInfoWindowHtml(point, '<table><tr><td><b>' + busname + '</td></tr></table>'); 
	 	}
 }

} // end is compatible
} // end load


//*********   GIS MAP DATA FUNCTIONS
function mapcallback(mapservicelayer) {
      map.addOverlay(mapservicelayer);
    }
    
function selectlayer(checkbox) {
// KK Show a specific layer from a checkbox list.
// Get the selected value from the selectedIndex; the layer value is the layer index in the map service.
// "c" is counter to itrate through all the checked boxes so the layer index passed to map service is always in order with no gaps.
// "v" is values of checkbox -- cprresponds to map service layer index
// "i" is index of actual checkboxes on the web form
var layers=[];
var layersp=''
layers[0]=blayer;  // blayer is the community boundary layer for the community type.  Gets set in dynamic js in vb.net function.
c=0;   
for (i=0; i<document.form.cbLayers.length; i++){
if (document.form.cbLayers[i].checked==true){
c++
var v=document.form.cbLayers[i].value;
layersp=layersp + v + ','
//alert("Checkbox "+v+", counter " +c+ " is checked!")    
		layers[c]=v;
		}   //end if
 }          // end for loop
dynamicMap.setVisibleLayers(layers); 

var winurl=window.location.href.replace('&layers=','&l=')
 document.getElementById("ibtnPrint").href=winurl + '&print=yes&layers=' + layersp
 document.getElementById("lnkEmail").href='emailform.aspx?u=' + escape(winurl + '&layers=' + layersp)


}           // END selectlayer

function showAllLayers() {
showLayer(blayer);
}

function showLayer(blayer) {
// toggle a single layer on using the index of the layer in the mxd
// also set optional boundary layer (bid). 
		var layers=[];
		layers[0]=blayer;
      	dynamicMap.setVisibleLayers(layers);
}  

function addDynamicMap() {
      dynamicMap = new esri.arcgis.gmaps.DynamicMapServiceLayer("http://gpvm002.gisplanning.net/ArcGIS/rest/services/florida/florida/MapServer", null,.65, null);
      GEvent.addListener(dynamicMap, "load", function(groundov) {
      map.addOverlay(groundov);
      dynamicMap.show();
      });
}

function resetMap() {
//resets map
mapExtension.removeFromMap(gOverlays);
load();
hidelegend();  
// reset heat map drop down list if it exists:
if (document.getElementById('lstHeatMap'))
  {document.getElementById('lstHeatMap').selectedIndex=0;}
      
// make sure layer controls boxes are unchecked:
for (i=0; i<document.form.cbLayers.length; i++){
 document.form.cbLayers[i].checked=false;
}
}
// end of local map functions  
    
window.onload = load;
window.onunload = GUnload;
