var map;
var svoverlay = null;
var dynamicMap = null;
var industryMap = null;
var identifyTask= null
var map;
var industryMap;
var zoom;
var bounds;
var blayer;
var buslayer;
var mapimage3;

//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();




//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();
addIndustryMap();
showAllLayers();

//if (document.getElementById('lstBusinessclusters'))
//  {
  //var i = document.getElementById('lstBusinessclusters').selectedIndex;
  //var v = document.getElementById('lstBusinessclusters').options[i].value;
  //alert(i + "," + v);
  //showIndustryLayer(v);
//  }



 // create an identify task
  
    // register click event listener for the map
        //GEvent.addListener(map, "click", identify);
      
 



function identify(overlay, latLng) {
        
        if (overlay) return;
        //clearResults();
        
        
        

        // set the identify parameters
        
        var identifyParameters = new esri.arcgis.gmaps.IdentifyParameters();
        identifyParameters.geometry = latLng; // location where the user clicked on the map
        identifyParameters.tolerance = 20;
        identifyParameters.layerIds = [0];
        identifyParameters.layerOption = "all";
        
        identifyParameters.bounds = map.getBounds();
        var mapSize = map.getSize();
        identifyParameters.width = mapSize.width;
        identifyParameters.height = mapSize.height;
        
        

        // execute the identify operation
        identifyTask.execute(identifyParameters, function(response, error) { // function to be called when the result is available
          //display error message (if any) and return
          //if (hasErrorOccurred(error)) return;

          // note that the location where the user clicked on the map (latLng) is visible in this function through closure
          addResultToMap(response, latLng);
          //alert(response);
        });
      }

	
	
      

} // end is compatible
} // end load


//*********   GIS MAP DATA FUNCTIONS
function mapcallback(mapservicelayer) {
      map.addOverlay(mapservicelayer);
    }
    
function showAllLayers() {
showLayer(blayer);
//showIndustryLayer(buslayer);
}

function showLayer(blayer) {
// toggle a single boundary layer on.   
		var layers=[];
		layers[0]=blayer;
      	dynamicMap.setVisibleLayers(layers);
        
        //showIndustryLayer(buslayer);
}  

function addDynamicMap() {
      dynamicMap = new esri.arcgis.gmaps.DynamicMapServiceLayer("http://gpvm002.gisplanning.net/ArcGIS/rest/services/florida/florida/MapServer", null,.80, null);
      GEvent.addListener(dynamicMap, "load", function(groundov) {
      map.addOverlay(groundov);
      dynamicMap.show();
      });
}



function selectlayer(listbox) {
var i=listbox.selectedIndex;
var v = listbox.options[i].value;

if (industryMap){ 
 if (v==100)
    {
    industryMap.hide();
    resetMap();
    }
 if (v=="-1")
    {//do nothingl
    }    
 else
    {showIndustryLayer(v);}
                }
else // IF industry map not exists yet 
 { addIndustryMap();
   //alert("map added");
   showIndustryLayer(v);
 }
} //END selectlayer


function showIndustryLayer(id) {
var buslayers=[];
buslayers[0]=id;
industryMap.setVisibleLayers(buslayers); 

//industryMap.exportMapImage();
//          alert('test');
}


function resetMap() {
//resets map
mapExtension.removeFromMap(gOverlays);
load();
// reset  drop down list if it exists:
if (document.getElementById('lstBusinessclusters'))
  {document.getElementById('lstBusinessclusters').selectedIndex=0;}
}
// end of local map functions  
    
window.onload = load;
window.onunload = GUnload;
