
  var map;
  var http_dir = "http://www.piscoweb.org/kml/nms/";
  
  // File names of channel islands layers
  var channelislands = ["channel_islands"];
  var channelislandsGeoXML = [];
  
   // File names of gulf of farallones layers
  //var gulfoffarallones = ["gulf_of_farallones"];
  var gulfoffarallones = ["cordell_farallones_combo"];
  var gulfoffarallonesGeoXML = [];
  
  // File names of monterey bay layers
  var montereybay = ["monterey_bay"];
  var montereybayGeoXML = [];
  
   // File names of Olympic Coast layers
  var olympiccoast = ["olympic_coast"];
  var olympiccoastGeoXML = [];
  
  
  // second set
//  var AlgalDiversity = ["Algal_Diversity_Effects_on_Kelp_Forest_Invertebrates"];
//  var AlgalDiversityGeoXML = [];
  
  var BenthicMPA = ["Benthic_MPA_Temperature_Monitoring"];
  var BenthicMPAGeoXML = [];
  
 // var CarmelAcoustic = ["Carmel_Acoustic_Tagging_Project_Mooring_Receiver_Locations"];
 // var CarmelAcousticGeoXML = [];
  
 // var carmelBay = ["Carmel_Bay_Physical_Oceanographic_Project"];
 // var carmelBayGeoXML = [];
  
//  var FishMovement = ["Fish_Movement_Study"];
//  var FishMovementGeoXML = [];
  
  var IntertidalCoastalBiodiversity = ["Intertidal_Coastal_Biodiversity_Surveys"];
  var IntertidalCoastalBiodiversityGeoXML = [];

  var IntertidalMonitoring = ["Intertidal_Monitoring_Surveys"];
  var IntertidalMonitoringGeoXML = [];
  
  var KelmForestMPA = ["Kelp_Forest_MPA_Monitoring"];
  var KelmForestMPAGeoXML = [];
  
//  var DriftAlgae = ["Monitoring_Ecological_Role_of_Drift_Algae_in_Kelp_Forests"];
//  var DriftAlgaeGeoXML = [];
  
  var PhysicalOceaongraphy = ["Physical_Oceanography_Monitoring"];
  var PhysicalOceaongraphyGeoXML = [];

  var SMURF = ["SMURF_Study"];
  var SMURFGeoXML = [];

  
  
  // Initialize the map
  function initializeMap() {
	if(GBrowserIsCompatible()) {
	  map = new GMap2(document.getElementById("map_canvas"));
	  
	  //map.addControl(new GMapTypeControl());
	  map.addControl(new GLargeMapControl());
	  map.setCenter(new GLatLng(42.4880, -120), 5, G_SATELLITE_MAP);
	  //G_SATELLITE_3D_MAP
	  map.enableScrollWheelZoom();
	  
	  // show all campuses
      map.addOverlay( new GGeoXml(http_dir + "PISCO_Campuses.kml?"+(new Date()).getTime()) );
      
	  //$("ul#tab-nms").hide();
	  // if layer.checked, then toggleLayer
	  //for(i=0; i<document.forms[0].elements.length; i++){
		//toggleLayer(document.forms[0].elements[i]);
	  //} 		
	}
  }

  // Zoom to the selected view
  function changeExtent(view) {
    event.preventDefault();
	switch(view) {
	
	case 'coast':
		map.setCenter(new GLatLng(42.4880, -120), 5);
		$("li:has(input)").removeClass('here');
		break;
	
	case 'channelislands':
		map.setCenter(new GLatLng(34.25, -119.5), 8);
		$("li:has(input)").removeClass('here');
		$("#tab-nms li:has(input[name='channelislands'])").addClass('here');
		break;   
	
	case 'gulfoffarallones':
		map.setCenter(new GLatLng(37.5, -122), 7);
		$("li:has(input)").removeClass('here');
		$("#tab-nms li:has(input[name='gulfoffarallones'])").addClass('here');
		break;
		
	case 'montereybay':
		map.setCenter(new GLatLng(36.5, -121), 7);
		$("li:has(input)").removeClass('here');
		$("#tab-nms li:has(input[name='montereybay'])").addClass('here');
		break;
   
   case 'olympiccoast':
		map.setCenter(new GLatLng(47.5, -124), 7);
		$("li:has(input)").removeClass('here');
		$("#tab-nms li:has(input[name='olympiccoast'])").addClass('here');
		break;
   
   // second set
   case 'AlgalDiversity':
		map.setCenter(new GLatLng(36.78, -121.84), 10);
		$("li:has(input)").removeClass('here');
		$("#tab-study-areas li:has(input[name='AlgalDiversity'])").addClass('here');
		break;
   
   case 'BenthicMPA':
		map.setCenter(new GLatLng(36.22, -121.45), 9);
		$("li:has(input)").removeClass('here');
		$("#tab-study-areas li:has(input[name='BenthicMPA'])").addClass('here');
		break;
   
   case 'CarmelAcoustic':
		map.setCenter(new GLatLng(36.55, -121.94), 13);
		$("li:has(input)").removeClass('here');
		$("#tab-study-areas li:has(input[name='CarmelAcoustic'])").addClass('here');
		break;
   
   case 'carmelBay':
		map.setCenter(new GLatLng(36.55, -121.94), 13);
		$("li:has(input)").removeClass('here');
		$("#tab-study-areas li:has(input[name='carmelBay'])").addClass('here');
		break;
		
		
	case 'FishMovement':
		map.setCenter(new GLatLng(36.6250, -121.9114), 15);
		$("li:has(input)").removeClass('here');
		$("#tab-study-areas li:has(input[name='FishMovement'])").addClass('here');
		break;
		
	 case 'IntertidalCoastalBiodiversity':
		map.setCenter(new GLatLng(36.58, -121.1), 8);
		$("li:has(input)").removeClass('here');
		$("#tab-study-areas li:has(input[name='IntertidalCoastalBiodiversity'])").addClass('here');
		break;

	case 'IntertidalMonitoring':
		map.setCenter(new GLatLng(36.58, -121.1), 8);
		$("li:has(input)").removeClass('here');
		$("#tab-study-areas li:has(input[name='IntertidalMonitoring'])").addClass('here');
		break;
	
	case 'KelmForestMPA':
		map.setCenter(new GLatLng(36.58, -121.1), 8);
		$("li:has(input)").removeClass('here');
		$("#tab-study-areas li:has(input[name='KelmForestMPA'])").addClass('here');
		break;
	
	case 'DriftAlgae':
		map.setCenter(new GLatLng(36.775, -121.814), 10);
		$("li:has(input)").removeClass('here');
		$("#tab-study-areas li:has(input[name='DriftAlgae'])").addClass('here');
		break;
	
	case 'PhysicalOceaongraphy':
		map.setCenter(new GLatLng(36.58, -121.1), 8);
		$("li:has(input)").removeClass('here');
		$("#tab-study-areas li:has(input[name='PhysicalOceaongraphy'])").addClass('here');
		break;
	
	case 'SMURF':
		map.setCenter(new GLatLng(36.775, -121.814), 10);
		$("li:has(input)").removeClass('here');
		$("#tab-study-areas li:has(input[name='SMURF'])").addClass('here');
		break;

	}
  }

  // Display layer when checked, hide when unchecked
  function toggleLayer(layer) {
	// Switch on layer
	if(layer.checked) {
	
	  // channelislands layer
	  // layer.value acts as index to array
		if(layer.name == "channelislands") {

	  // GeoXML array element already exists, just add it to the map
		if(channelislandsGeoXML[layer.value]) {
		  map.addOverlay(channelislandsGeoXML[layer.value]);
		}

	 // GeoXML array element does not exist yet, initialize a new one, and add it to the map
	 // append ?new Date().getTime() to the end of the kml URL to force Google to NOT cache
	 // could use ?new Date()).getDate() for daily cache check.
		else {
		  channelislandsGeoXML[layer.value] = new GGeoXml(http_dir + channelislands[layer.value] + ".kmz?"+(new Date()).getTime());
		  map.addOverlay(channelislandsGeoXML[layer.value]);
		  // the first time channelislands layer is added, zoom to it.
		  //changeExtent('channelislands');
		}
	  }
			  
	 // gulfoffarallones layer
	 else if(layer.name == "gulfoffarallones") {

		if(gulfoffarallonesGeoXML[layer.value]) {
		  map.addOverlay(gulfoffarallonesGeoXML[layer.value]);
		}
		else {
		  gulfoffarallonesGeoXML[layer.value] = new GGeoXml(http_dir + gulfoffarallones[layer.value] + ".kmz?"+(new Date()).getTime());
		  map.addOverlay(gulfoffarallonesGeoXML[layer.value]);
		}
	  }
	  
	  
	  // Monterey Bay layer
	 else if(layer.name == "montereybay") {

		if(montereybayGeoXML[layer.value]) {
		  map.addOverlay(montereybayGeoXML[layer.value]);
		}
		else {
		  montereybayGeoXML[layer.value] = new GGeoXml(http_dir + montereybay[layer.value] + ".kmz?"+(new Date()).getTime());
		  map.addOverlay(montereybayGeoXML[layer.value]);
		  //changeExtent('montereybay');
		}
	  }
	  
	  
	  // Olympic Coast layer
	 else if(layer.name == "olympiccoast") {

		if(olympiccoastGeoXML[layer.value]) {
		  map.addOverlay(olympiccoastGeoXML[layer.value]);
		}
		else {
		  olympiccoastGeoXML[layer.value] = new GGeoXml(http_dir + olympiccoast[layer.value] + ".kmz?"+(new Date()).getTime());
		  map.addOverlay(olympiccoastGeoXML[layer.value]);
		}
	  }
	  
	  // second set
	  else if(layer.name == "AlgalDiversity") {

		if(AlgalDiversityGeoXML[layer.value]) {
		  map.addOverlay(AlgalDiversityGeoXML[layer.value]);
		}
		else {
		  AlgalDiversityGeoXML[layer.value] = new GGeoXml(http_dir + AlgalDiversity[layer.value] + ".kmz?"+(new Date()).getTime());
		  map.addOverlay(AlgalDiversityGeoXML[layer.value]);
		}
	  }
	  
	  else if(layer.name == "BenthicMPA") {

		if(BenthicMPAGeoXML[layer.value]) {
		  map.addOverlay(BenthicMPAGeoXML[layer.value]);
		}
		else {
		  BenthicMPAGeoXML[layer.value] = new GGeoXml(http_dir + BenthicMPA[layer.value] + ".kmz?"+(new Date()).getTime());
		  map.addOverlay(BenthicMPAGeoXML[layer.value]);
		}
	  }
	  
	  else if(layer.name == "CarmelAcoustic") {

		if(CarmelAcousticGeoXML[layer.value]) {
		  map.addOverlay(CarmelAcousticGeoXML[layer.value]);
		}
		else {
		  CarmelAcousticGeoXML[layer.value] = new GGeoXml(http_dir + CarmelAcoustic[layer.value] + ".kmz?"+(new Date()).getTime());
		  map.addOverlay(CarmelAcousticGeoXML[layer.value]);
		}
	  }
	  
	  else if(layer.name == "carmelBay") {

		if(carmelBayGeoXML[layer.value]) {
		  map.addOverlay(carmelBayGeoXML[layer.value]);
		}
		else {
		  carmelBayGeoXML[layer.value] = new GGeoXml(http_dir + carmelBay[layer.value] + ".kmz?"+(new Date()).getTime());
		  map.addOverlay(carmelBayGeoXML[layer.value]);
		}
	  }

	  else if(layer.name == "FishMovement") {

		if(FishMovementGeoXML[layer.value]) {
		  map.addOverlay(FishMovementGeoXML[layer.value]);
		}
		else {
		  FishMovementGeoXML[layer.value] = new GGeoXml(http_dir + FishMovement[layer.value] + ".kmz?"+(new Date()).getTime());
		  map.addOverlay(FishMovementGeoXML[layer.value]);
		}
	  }
	  
	  else if(layer.name == "IntertidalCoastalBiodiversity") {

		if(IntertidalCoastalBiodiversityGeoXML[layer.value]) {
		  map.addOverlay(IntertidalCoastalBiodiversityGeoXML[layer.value]);
		}
		else {
		  IntertidalCoastalBiodiversityGeoXML[layer.value] = new GGeoXml(http_dir + IntertidalCoastalBiodiversity[layer.value] + ".kmz?"+(new Date()).getTime());
		  map.addOverlay(IntertidalCoastalBiodiversityGeoXML[layer.value]);
		}
	  }

	 else if(layer.name == "IntertidalMonitoring") {

		if(IntertidalMonitoringGeoXML[layer.value]) {
		  map.addOverlay(IntertidalMonitoringGeoXML[layer.value]);
		}
		else {
		  IntertidalMonitoringGeoXML[layer.value] = new GGeoXml(http_dir + IntertidalMonitoring[layer.value] + ".kmz?"+(new Date()).getTime());
		  map.addOverlay(IntertidalMonitoringGeoXML[layer.value]);
		}
	  }
	  
	 else if(layer.name == "KelmForestMPA") {

		if(KelmForestMPAGeoXML[layer.value]) {
		  map.addOverlay(KelmForestMPAGeoXML[layer.value]);
		}
		else {
		  KelmForestMPAGeoXML[layer.value] = new GGeoXml(http_dir + KelmForestMPA[layer.value] + ".kmz?"+(new Date()).getTime());
		  map.addOverlay(KelmForestMPAGeoXML[layer.value]);
		}
	  }

	  else if(layer.name == "DriftAlgae") {

		if(DriftAlgaeGeoXML[layer.value]) {
		  map.addOverlay(DriftAlgaeGeoXML[layer.value]);
		}
		else {
		  DriftAlgaeGeoXML[layer.value] = new GGeoXml(http_dir + DriftAlgae[layer.value] + ".kmz?"+(new Date()).getTime());
		  map.addOverlay(DriftAlgaeGeoXML[layer.value]);
		}
	  }
	  
	  
	 else if(layer.name == "PhysicalOceaongraphy") {

		if(PhysicalOceaongraphyGeoXML[layer.value]) {
		  map.addOverlay(PhysicalOceaongraphyGeoXML[layer.value]);
		}
		else {
		  PhysicalOceaongraphyGeoXML[layer.value] = new GGeoXml(http_dir + PhysicalOceaongraphy[layer.value] + ".kmz?"+(new Date()).getTime());
		  map.addOverlay(PhysicalOceaongraphyGeoXML[layer.value]);
		}
	  }
	  
	  
	else if(layer.name == "SMURF") {

		if(SMURFGeoXML[layer.value]) {
		  map.addOverlay(SMURFGeoXML[layer.value]);
		}
		else {
		  SMURFGeoXML[layer.value] = new GGeoXml(http_dir + SMURF[layer.value] + ".kmz?"+(new Date()).getTime());
		  map.addOverlay(SMURFGeoXML[layer.value]);
		}
	  }
	  
	  
	  // "name" attribute of the checkbox is not set correctly or KML is missing
	  else {
		alert("No such layer to display!");
	  }
	  
	}
	
	
	
	// Switch off layer
	else {
	  // This is a channelislands layer
	  // layer.value acts as index to array
	  if(layer.name == "channelislands") {
		map.removeOverlay(channelislandsGeoXML[layer.value]);
	  }
			
	else if(layer.name == "gulfoffarallones") {
		map.removeOverlay(gulfoffarallonesGeoXML[layer.value]);
	  }
	  
	else if(layer.name == "montereybay") {
		map.removeOverlay(montereybayGeoXML[layer.value]);
	  } 
	
	else if(layer.name == "olympiccoast") {
		map.removeOverlay(olympiccoastGeoXML[layer.value]);
	  }
	
	else if(layer.name == "gulfoffarallones") {
		map.removeOverlay(gulfoffarallonesGeoXML[layer.value]);
	  }
	
	// second set
	
	else if(layer.name == "AlgalDiversity") {
		map.removeOverlay(AlgalDiversityGeoXML[layer.value]);
	  }
	
	else if(layer.name == "BenthicMPA") {
		map.removeOverlay(BenthicMPAGeoXML[layer.value]);
	  }
	  
	  else if(layer.name == "CarmelAcoustic") {
		map.removeOverlay(CarmelAcousticGeoXML[layer.value]);
	  }
	  
	  else if(layer.name == "carmelBay") {
		map.removeOverlay(carmelBayGeoXML[layer.value]);
	  }
	  
	  else if(layer.name == "FishMovement") {
		map.removeOverlay(FishMovementGeoXML[layer.value]);
	  }
	  
	  else if(layer.name == "IntertidalCoastalBiodiversity") {
		map.removeOverlay(IntertidalCoastalBiodiversityGeoXML[layer.value]);
	  }
	  
	  else if(layer.name == "IntertidalMonitoring") {
		map.removeOverlay(IntertidalMonitoringGeoXML[layer.value]);
	  }
	  
	  else if(layer.name == "KelmForestMPA") {
		map.removeOverlay(KelmForestMPAGeoXML[layer.value]);
	  }
	  
	  else if(layer.name == "DriftAlgae") {
		map.removeOverlay(DriftAlgaeGeoXML[layer.value]);
	  }
	  
	  else if(layer.name == "PhysicalOceaongraphy") {
		map.removeOverlay(PhysicalOceaongraphyGeoXML[layer.value]);
	  }
	  
	  else if(layer.name == "SMURF") {
		map.removeOverlay(SMURFGeoXML[layer.value]);
	  }
	  
	  // "name" attribute of the checkbox is not set correctly
	  else {
		alert("Layer is not available to be switched off.");
	  }
	}
  }


function changeTab(tab) {
	event.preventDefault();
	switch(tab) {
	
	case 'NMS':
		//$("ul#tab-study-areas").hide('slow');
		//$("ul#tab-nms").show('slow');
		break;   
	
	case 'studyareas':
		//$("ul#tab-nms").hide('slow');
		//$("ul#tab-study-areas").show('slow');
		break;   
	
	}
  }

