
dojo.require("esri.map");
//dojo.require("dijit.dijit"); // optimize: load dijit layer
dojo.require("dijit.layout.BorderContainer");
dojo.require("dijit.layout.AccordionContainer");
dojo.require("dijit.layout.ContentPane");
//dojo.require("esri.toolbars.navigation");
dojo.require("dijit.form.Button");
			

var map,layersLoaded,loading, schoolBase, layer,navToolbar, visible = [];
var queryTask, query, schoolQueryTask,schoolQuery, click;
var myclick,feature, censusLayer;
var layersLoaded,loading;
function init() {
 
 var initialExtent = new esri.geometry.Extent(896044.6559550441, 114631.12613328601, 1084412.7115105998, 278259.5983555083, new esri.SpatialReference({
     wkid: 2263
   }));
        layersLoaded = 0;  //varible to keep track of when all layers have been loaded.
        loading = dojo.byId("loadingImg");  //loading image. id
		
  map = new esri.Map("mapDiv", {slider: true, extent:initialExtent});
	// map = new esri.Map("mapDiv", {slider: true});   

		dojo.connect(map, "onLoad", showLoading);
        dojo.connect(map, "onZoomStart", showLoading);
        dojo.connect(map, "onPanStart", showLoading);
		

		schoolBase = new esri.layers.ArcGISTiledMapServiceLayer("http://maps.nycboe.net/ArcGIS/rest/services/basemap/MapServer");
		//schoolBase = new esri.layers.ArcGISDynamicMapServiceLayer("http://10.2.55.194/ArcGIS/rest/services/basemap/MapServer");
       	map.addLayer(schoolBase);	   
        dojo.connect(schoolBase, "onUpdate", hideLoading);

//Loading census layer
		simpleschoolsmapLayer = new esri.layers.ArcGISDynamicMapServiceLayer("http://maps.nycboe.net/ArcGIS/rest/services/census/MapServer");
		simpleschoolsmapLayer.setOpacity(0.75);
		map.addLayer(simpleschoolsmapLayer);	
        dojo.connect(simpleschoolsmapLayer, "onUpdate", hideLoading);
		
	//simpleschoolsmapLayer.hide();	
		//create and add new layer
        layer = new esri.layers.ArcGISDynamicMapServiceLayer("http://maps.nycboe.net/ArcGIS/rest/services/census/MapServer");
        map.addLayer(layer);
	    dojo.connect(layer, "onUpdate", hideLoading);	
		//get census query
		queryTask = new esri.tasks.QueryTask("http://maps.nycboe.net/ArcGIS/rest/services/census/MapServer/3");
        dojo.connect(queryTask, "onComplete", getChart );

		//dojo.connect(map.infoWindow, "onHide", function() {map.graphics.clear();});
		
       // dojo.connect(map.infoWindow, "onHide", function() {map.graphics.clear();});
		//dojo.connect(map.infoWindow, "onHide", function() {map.graphics.clear(); clearInfoDiv();});
		
		
        query = new esri.tasks.Query();
        query.spatialRelationship = esri.tasks.Query.SPATIAL_REL_INTERSECTS;
        query.outFields = ["TRACT","AGE_UNDER5", "AGE_5_17", "AGE_18_21", "AGE_22_29", "AGE_30_39", "AGE_40_49","AGE_50_64","AGE_65_UP","FIPS"];
        query.returnGeometry = true;

       // map.infoWindow.resize(275,150);
		 map.infoWindow.resize(355,160);
	
		//set up school query
		schoolQueryTask = new esri.tasks.QueryTask("http://maps.nycboe.net/ArcGIS/rest/services/census/MapServer/8");
		schoolQuery = new esri.tasks.Query();
		schoolQuery.outFields = ["LOC_CODE","SCHOOLNAME","ADDRESS","GRADES","City","STATE_CODE","ZIP"];
        schoolQuery.returnGeometry = true;
		dojo.connect(schoolQueryTask, "onComplete", showSchools);
	
	//dojo.connect(map, "onlaod", checkSubway);

		
}

function showLoading() {
          esri.show(loading);
          map.disableMapNavigation();
        //  map.hideZoomSlider();
        }

function hideLoading() {
          layersLoaded++;
          if (layersLoaded === map.layerIds.length) {
            esri.hide(loading);
            map.enableMapNavigation();
           // map.showZoomSlider();
            layersLoaded = 0;
          }
        }        
		


function updateLayerVisibility() {
        var inputs = dojo.query(".list_item"), input;
//in this application layer 2 is always on.
//alert(inputs.length);
        visible = [];
        for (var i=0, il=inputs.length; i<il; i++) {
          if (inputs[i].checked) {
            visible.push(inputs[i].id);
				//if (inputs[i].id==0){
				//alert("this is census tracts");
				//doClick(visible);
				//}
			
          }
        }
//alert(visible);
        layer.setVisibleLayers(visible);
//alert(map.getLevel());
      }
	  
	  
function updateCensusVisibility() {
        var inputs = dojo.query(".list_item_census"), input;
//in this application layer 2 is always on.
//alert(inputs.length);
        visible = [];
        for (var i=0, il=inputs.length; i<il; i++) {
          if (inputs[i].checked) {
            visible.push(inputs[i].id);
          }
        }
//alert(visible);
//alert( typeof visible );
//alert(layer.visible);
        simpleschoolsmapLayer.setVisibleLayers(visible);
		doClick(visible);
      }
	  
function doClick(visible){
			if (visible=="0") {
				myclick =  dojo.connect(map, "onClick", doQuery);
//alert("this is  0");					
					}
					else
					{
					map.graphics.clear();
//censusLayer.clear();
					map.infoWindow.hide();
					dojo.disconnect(myclick);
//alert ("this is not 0");
					}
	}
 
function clearInfoDiv() { 
 dojo.byId("info").innerHTML = "<div class='schoollist'><h1>Please click on a census tracts.</h1></div>";
 
}

dojo.addOnLoad(init);
