var pano;
var panoClient;
var sview;
var map;
var svoverlay = null;
var industryMap = null;
var map;
var zoom;
var bounds;
var blayer;
var x;
var y;
var c;
//tiled map service variables
    var mapExtension;
    var gOverlays = null;
    var mapOptions ;
	var endpoints=[];
	var legend;


//KK Map service endpoints for each cached heat map layer (each layer is a seperate map service).
// The endpoint index must match the value in the layer drop down list.
	  endpoints[0]="http://gpvm002.gisplanning.net/ArcGIS/rest/services/florida/biz_wholesale/MapServer"
	  endpoints[1]="http://gpvm002.gisplanning.net/ArcGIS/rest/services/florida/biz_it/MapServer"
	  endpoints[2]="http://gpvm002.gisplanning.net/ArcGIS/rest/services/florida/biz_aero2/MapServer"
	  endpoints[3]="http://gpvm002.gisplanning.net/ArcGIS/rest/services/florida/biz_manufacturing/MapServer"
	  endpoints[4]="http://gpvm002.gisplanning.net/ArcGIS/rest/services/florida/biz_financial/MapServer"	
	  endpoints[5]="http://gpvm002.gisplanning.net/ArcGIS/rest/services/florida/biz_life/MapServer"		  
	  endpoints[6]="http://gpvm002.gisplanning.net/ArcGIS/rest/services/florida/biz_homeland2/MapServer"
	  endpoints[7]="http://gpvm002.gisplanning.net/ArcGIS/rest/services/florida/biz_energy/MapServer"	  
	  endpoints[8]="http://gpvm002.gisplanning.net/ArcGIS/rest/services/florida/biz_defense/MapServer"	  


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();

// Set x,y center and default zoom level.
x ="-84.11";
y =28.2;
c=6;
//alert(bounds);
map.setCenter(new GLatLng(y, x),c);

// function calls for the local dynamic local gis layers.
if (document.getElementById('lstBusinessclusters'))
  {document.getElementById('lstBusinessclusters').selectedIndex=0;}
  
//addIndustryMap();


identifyTask = new esri.arcgis.gmaps.IdentifyTask("http://gpvm002.gisplanning.net/ArcGIS/rest/services/florida/biz_clusters/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 = [document.form.lstBusinessclusters.options[document.form.lstBusinessclusters.selectedIndex].value];
       
        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"]
            var busaddress=idResults[0].feature.attributes["ADDRESS"] 
            var buscity=idResults[0].feature.attributes["CITY"] 
            var buscluster=idResults[0].feature.attributes["CLUSTER"] 
            var busnaics=idResults[0].feature.attributes["NAICS_CODE"]
            var c="Null";
            if (buscity!=c)
           {map.openInfoWindowHtml(point, '<table><tr><td><b>' + busname + '</b><BR>' + busaddress + '<br>' + buscity + ', FLORIDA<BR>' + buscluster + '<br>' + busnaics + '</td></tr></table>');} 
           else {map.openInfoWindowHtml(point, '<table><tr><td><b>' + busname + '</b><BR>' + busaddress + '<br>FLORIDA<BR>' + buscluster + '<br>' + busnaics + '</td></tr></table>');} 
	 	}
 }

} // end is compatible
} // end load

//*********   GIS MAP DATA FUNCTIONS
function mapcallback(mapservicelayer) {
      map.addOverlay(mapservicelayer);
    }
    
function addIndustryMap() {
      industryMap = new esri.arcgis.gmaps.DynamicMapServiceLayer("http://gpvm002.gisplanning.net/ArcGIS/rest/services/florida/biz_clusters/MapServer", null,.80, null);
      GEvent.addListener(industryMap, "load", function(groundov) {
      map.addOverlay(groundov);
      industryMap.hide();
      });
}

	

function addTiledMap(endpoint){
//alert("request map" + endpoint);
      //create mapOptions to specify opacity, minResolution, maxResolution when adding to the map.
      mapOptions = {opacity: 1.0, minResolution:3, maxResolution: 17};
      //create custom tile layer
      var tiledmap = new esri.arcgis.gmaps.TiledMapServiceLayer(endpoint, mapOptions, addTiledLayer);
    function addTiledLayer(gTileLayer) {
      //Add tile layer as a GTileLayerOverlay using mapExtension
      gOverlays = mapExtension.addToMap(gTileLayer);
    }
}

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
    {showLayer(v);}
                }
else // IF dynamicmap not exists yet 
 { addIndustryMap();
   //alert("map added");
   showLayer(v);
 }
} //END selectlayer


function showLayer(id) {
//  if (industryMap.isHidden()) 
//    {industryMap.show();}
// var layers=[];
// toggle a specific layer on using the index of the layer in the mxd.
//layers[0]=id;
//alert(id);
//industryMap.setVisibleLayers(layers);

// when we move to tiled business layers:
mapExtension.removeFromMap(gOverlays);  //remove other previous layers
addTiledMap(endpoints[id]);
}


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;
