
/************************
*	Map Integration from Google Maps
*
*	developer:	William Frankhouser, EvCC IT Web Services   http://www.everettcc.edu/visitors/maps/imap.cfm
*	version:	1.3.2
**************************/


	



// new AJAX google namespace   replace "G" with "google.maps."
google.load("maps", "2",{"other_params":"sensor=false"});	// google namespace

var map = null; var geocoder = null; var gdir = null;

// main Function call
function loadMapCanvas(){
	if (google.maps.BrowserIsCompatible()) {
	
	// [[ SETUP MAP AND DIRECTIONS INTEGRATION ]]
		map = new google.maps.Map2(document.getElementById("map"));
		gdir = new google.maps.Directions(map, document.getElementById("directions"));
		
		google.maps.Event.addListener(gdir, "load", onGDirectionsLoad);
      	google.maps.Event.addListener(gdir, "error", handleErrors);
		
		// map variables
		var centerOfCampus = new google.maps.LatLng(48.006370,-122.20383);
		var centerOfGym = new google.maps.LatLng(48.005520,-122.19992);
		var centerOfBroadwayCenter = new google.maps.LatLng(48.006270,-122.19800);
		var centerOfUniCenter = new google.maps.LatLng(48.006050,-122.20468);
		var centerOfCosmo = new google.maps.LatLng(48.080617,-122.17300);
		var centerOfCCEC = new google.maps.LatLng(47.937570,-122.26510);
		var centerOfMonroe = new google.maps.LatLng(47.842917,-122.01313);
		var centerOfAviation = new google.maps.LatLng(47.909750,-122.27677);
		
		map.setCenter(centerOfCampus, 15);
		map.enableDoubleClickZoom();
		map.enableScrollWheelZoom();		
		
	// [[ MAP CONTROLS ]]
		map.addControl(new google.maps.ScaleControl(),new google.maps.ControlPosition(G_ANCHOR_BOTTOM_LEFT,new GSize(70,2)));
		map.addControl(new google.maps.LargeMapControl3D(),new google.maps.ControlPosition(G_ANCHOR_TOP_LEFT,new GSize(5,10)));
		//map.addControl(new google.maps.SmallMapControl());
		//map.addControl(new google.maps.OverviewMapControl());
		
		map.addMapType(G_PHYSICAL_MAP);
		map.addControl(new google.maps.MenuMapTypeControl(),new google.maps.ControlPosition(G_ANCHOR_TOP_RIGHT,new GSize(5,2)));
		//map.addControl(new google.maps.MapTypeControl(),new google.maps.ControlPosition(G_ANCHOR_TOP_RIGHT,new GSize(5,2)));
		//map.addControl(new google.maps.HierarchicalMapTypeControl());
		
		


	
	
		// http://code.google.com/apis/maps/documentation/reference.html#GGroundOverlay
	
		
		// [[ MAP OVERLAY ]]													SW												NE   
			var campusbounds = new google.maps.LatLngBounds(new google.maps.LatLng(48.00298,-122.20654), new google.maps.LatLng(48.00734,-122.19611));
			//var campusbounds = new google.maps.LatLngBounds(new google.maps.LatLng(48.0042,-122.20665), new google.maps.LatLng(48.00732,-122.2007));
		
			var buildingmap = new google.maps.GroundOverlay("http://www.everettcc.edu/visitors/maps/Googlemap_simplified.png", campusbounds);	
			var buildingnamemap = new google.maps.GroundOverlay("http://www.everettcc.edu/visitors/maps/Googlemap_callouts.png", campusbounds);	
		
		buildingmap.hide();
		buildingnamemap.hide();
		
		// on type change, change different overlay maps
		google.maps.Event.addListener(map,"maptypechanged", function(){
		 	if(map.getCurrentMapType().getName() == 'Map'){// map.getCurrentMapType() == G_NORMAL_MAP) { 
				if(map.getZoom() > 15){
					buildingmap.show();
					buildingnamemap.hide();
				}else{
					buildingmap.hide();
					buildingnamemap.hide();
				}
			}else if(map.getCurrentMapType().getName() == 'Satellite'){  // map.getCurrentMapType() == G_SATELLITE_MAP) { 
				buildingmap.hide();
				buildingnamemap.show();
			}else if(map.getCurrentMapType().getName() == 'Hybrid'){// == G_HYBRID_MAP) { 
				buildingmap.hide();
				buildingnamemap.show();
			}else if(map.getCurrentMapType().getName() == 'Terrain'){// == G_PHYSICAL_MAP) { 
				buildingmap.hide();
				buildingnamemap.hide();
			}
		});
		
		// on zoom, check to see if showing overlay map
		google.maps.Event.addListener(map,"zoomend", function(){
			if(map.getCurrentMapType().getName() == 'Map'){
				if(map.getZoom() > 15){
					buildingmap.show();
					buildingnamemap.hide();
				}else{
					buildingmap.hide();
					buildingnamemap.hide();
				}
			}
		});

			
	// [[ MARKERS ]]
		// ADD Marker for Main Campus //////////////////////////////////
		var markerMCampus = new google.maps.Marker(centerOfCampus);		  
		google.maps.Event.addListener(markerMCampus,"click", function() {
			var dirc = '2000 Tower Street, Everett, WA 98201';
			document.getElementById('toAddress').value=dirc;
			//map.setCenter(centerOfCampus, 14);
			map.panTo(centerOfCampus);
			var info = "<img src='http:\/\/www.everettcc.edu\/_inc\/evcc_white_logo.png' style='border:0px;width:144px;height:30px;text-align:right;' alt='EvCC Logo' /><br \/><strong>Everett Community College Main Campus<\/strong> [ Zoom In to See Campus ]<br \/>Check out <a href='http:\/\/www.everettcc.edu\/maps'>www.everettcc.edu\/maps<\/a> for all our Maps and Directions<br \/>";
	        var contact = "<strong>Everett Community College<\/strong> (<a href=\"#gdirectionsform\" onclick=\"document.getElementById('fromAddress').focus(); return false;\">Get Directions<\/a>)<br \/>"+dirc+"<br \/><strong>Phone:<\/strong> 425-388-9100<br \/>";
			var maintabs = [];
			maintabs[0] = new google.maps.InfoWindowTab("Info",info);
			maintabs[1] = new google.maps.InfoWindowTab("Contact",contact);
			markerMCampus.openInfoWindowTabsHtml(maintabs, {maxWidth: 500});
	      });
		google.maps.Event.addListener(markerMCampus,"dblclick", function(){
		 	map.showMapBlowup(centerOfCampus,{mapType:G_HYBRID_MAP,zoomLevel:16});
		  });
		  
		
		
		
		
		// ADD Marker for Fitness Center (Gym) /////////////////////////////////////////
		var markerGym = new google.maps.Marker(centerOfGym);
		google.maps.Event.addListener(markerGym,"click", function() {
			var dirc = '2000 Tower Street, WA 98201';
			document.getElementById('toAddress').value=dirc;
			map.panTo(centerOfGym);
	        var info = "<strong>Everett Community College Fitness Center (Opening 2010)<\/strong><br \/>"+dirc+" (<a href=\"#gdirectionsform\" onclick=\"document.getElementById('fromAddress').focus(); return false;\">Get Directions<\/a>)<br \/><br/\>Check out our Athletic Teams <a href='http:\/\/www.everettcc.edu\/athletics\/'>www.everettcc.edu\/athletics\/<\/a>";
	        var gymtabs = [];
			gymtabs[0] = new google.maps.InfoWindowTab("Info",info);
			markerGym.openInfoWindowTabsHtml(gymtabs);
	      });
		google.maps.Event.addListener(markerGym,"dblclick", function(){
		 	map.showMapBlowup(centerOfGym,{mapType:G_HYBRID_MAP,zoomLevel:16});
		  });

		  
		// ADD Marker for Broadway Center /////////////////////////////
		var markerBroadwayC = new google.maps.Marker(centerOfBroadwayCenter);
		google.maps.Event.addListener(markerBroadwayC,"click", function() {
			var dirc = '840 North Broadway, Everett WA 98201';
			document.getElementById('toAddress').value=dirc;
			map.panTo(centerOfBroadwayCenter);
	        var info = "<strong>Everett Broadway Center<\/strong> (<a href=\"#gdirectionsform\" onclick=\"document.getElementById('fromAddress').focus(); return false;\">Get Directions<\/a>)<br \/>"+dirc;
	        var bctabs = [];
			bctabs[0] = new google.maps.InfoWindowTab("Info",info);
			markerBroadwayC.openInfoWindowTabsHtml(bctabs);		
	      });
		google.maps.Event.addListener(markerBroadwayC,"dblclick", function(){
		 	map.showMapBlowup(centerOfBroadwayCenter,{mapType:G_HYBRID_MAP,zoomLevel:16});
		  });
		  
		// ADD Marker for University Center of North Puget Sound ////////
		var markerUniCenter = new google.maps.Marker(centerOfUniCenter);
		google.maps.Event.addListener(markerUniCenter,"click", function() {
			//var dirc = 'Suite 200, 3201 Smith Ave, Everett WA 98201';
			var dirc = '2000 Tower Street, Everett WA 98201';
			document.getElementById('toAddress').value=dirc;
			map.panTo(centerOfUniCenter);
	        var info = "<strong><a href='http:\/\/www.everettcc.edu\/enrollment\/index.cfm?id=3174'>University Center of North Puget Sound<\/a><\/strong> (<a href=\"#gdirectionsform\" onclick=\"document.getElementById('fromAddress').focus(); return false;\">Get Directions<\/a>)<br \/>*NOW* located in Gray Wolf Hall on the EvCC campus<br \/><strong>Phone:<\/strong> 425-259-8900";
	        var uctabs = [];
			uctabs[0] = new google.maps.InfoWindowTab("Info",info);
			markerUniCenter.openInfoWindowTabsHtml(uctabs);		
	      });
		google.maps.Event.addListener(markerUniCenter,"dblclick", function(){
		 	map.showMapBlowup(centerOfUniCenter,{mapType:G_HYBRID_MAP,zoomLevel:16});
		  });

		 
		// ADD Marker for Cosmetology ////////////////////////////////// 
		var markerCosmo = new google.maps.Marker(centerOfCosmo);
		google.maps.Event.addListener(markerCosmo,"click", function() {
			var dirc = '9315 State Ave #G, Marysville, WA 98270';
			document.getElementById('toAddress').value=dirc;
			map.panTo(centerOfCosmo);
	        var info = "<strong><a href='http:\/\/www.everettcc.edu\/programs\/bwe\/cosmetology\/'>EvCC School of Cosmetology<\/a><\/strong> (<a href=\"#gdirectionsform\" onclick=\"document.getElementById('fromAddress').focus(); return false;\">Get Directions<\/a>)<br \/>"+dirc+"<br \/><strong>Phone:<\/strong> 425-259-8283";
	        var services = "<strong><a href='http:\/\/www.everettcc.edu\/programs\/bwe\/cosmetology\/index.cfm?id=2682'>Services available<\/a>:<\/strong> Styling, Haircuts, Haircoloring, Spa Package, Nail/Skin Care, and more!<br \/>Contact EvCC Cosmetology at 425-259-8283 or at <a href='mailto:salon@everettcc.edu'>salon@everettcc.edu<\/a>";
			var cosmotabs = [];
			cosmotabs[0] = new google.maps.InfoWindowTab("Info",info);
			cosmotabs[1] = new google.maps.InfoWindowTab("Services",services);
			markerCosmo.openInfoWindowTabsHtml(cosmotabs, {maxWidth:350});		
	      });
		google.maps.Event.addListener(markerCosmo,"dblclick", function(){
		 	map.showMapBlowup(centerOfCosmo,{mapType:G_HYBRID_MAP,zoomLevel:16});
		  });

		// ADD Marker for CCEC ////////////////////////////////////////
		var markerCCEC = new google.maps.Marker(centerOfCCEC);
		google.maps.Event.addListener(markerCCEC,"click", function() {
			var dirc = '2333 Seaway Blvd, Everett, WA 98203';
			document.getElementById('toAddress').value=dirc;
			map.panTo(centerOfCCEC);
	        var info = "<strong><a href='http:\/\/www.everettcc.edu\/ccec\/'>EvCC at Corporate &amp; Continuing Education Center (CCEC)<\/a><\/strong><br \/>(<a href=\"#gdirectionsform\" onclick=\"document.getElementById('fromAddress').focus(); return false;\">Get Directions<\/a>)<br \/>"+dirc+"<br \/><strong>Phone:<\/strong> 425-267-0150";
	        var ccectabs = [];
			ccectabs[0] = new google.maps.InfoWindowTab("Info",info);
			markerCCEC.openInfoWindowTabsHtml(ccectabs, {maxWidth:350});		
	      });
		google.maps.Event.addListener(markerCCEC,"dblclick", function(){
		 	map.showMapBlowup(centerOfCCEC,{mapType:G_HYBRID_MAP,zoomLevel:16});
		  });
		  
		  
		// ADD Marker for Monroe Center ////////////////////////////////////////
		var markerMonroe = new google.maps.Marker(centerOfMonroe);
		google.maps.Event.addListener(markerMonroe,"click", function() {
			var dirc = '17001 Tester Road, Monroe, WA 98272';
			document.getElementById('toAddress').value=dirc;
			map.panTo(centerOfMonroe);
	        var info = "<strong><a href='http:\/\/www.everettcc.edu\/eastcounty'>Everett Community College Monroe Center<\/a><\/strong><br \/>(<a href=\"#gdirectionsform\" onclick=\"document.getElementById('fromAddress').focus(); return false;\">Get Directions<\/a>)<br \/>"+dirc+"<br \/><strong>Phone:<\/strong> 360-804-4523";
	        var monroetabs = [];
			monroetabs[0] = new google.maps.InfoWindowTab("Info",info);
			markerMonroe.openInfoWindowTabsHtml(monroetabs, {maxWidth:350});		
	      });
		google.maps.Event.addListener(markerMonroe,"dblclick", function(){
		 	map.showMapBlowup(centerOfMonroe,{mapType:G_HYBRID_MAP,zoomLevel:16});
		  });
		  
		
		// ADD Marker for Aviation ////////////////////////////////////////
		var markerAviation = new google.maps.Marker(centerOfAviation);
		google.maps.Event.addListener(markerAviation,"click", function() {
			var dirc = '9711 32nd Place W, Building C-80,<br />Paine Field, Everett, WA 98201';
			document.getElementById('toAddress').value='31st Ave W., Everett, WA 98201';
			map.panTo(centerOfAviation);															// (<a href=\"#gdirectionsform\" onclick=\"document.getElementById('fromAddress').focus(); return false;\">Get Directions<\/a>)<br \/>
	        var info = "<strong><a href='http:\/\/www.everettcc.edu\/aviation'>EvCC Aviation Maintenance Technology School<\/a><\/strong><br \/>"+dirc+"<br \/><strong>Phone:<\/strong> 425-388-9533";
	        var aviattabs = [];
			aviattabs[0] = new google.maps.InfoWindowTab("Info",info);
			markerAviation.openInfoWindowTabsHtml(aviattabs, {maxWidth:350});		
	      });
		google.maps.Event.addListener(markerAviation,"dblclick", function(){
		 	map.showMapBlowup(centerOfAviation,{mapType:G_HYBRID_MAP,zoomLevel:16});
		  });
		  
		  
		  
		  
		  
		  
		// [add visual markers and  overlays]
		map.addOverlay(buildingmap);
		map.addOverlay(buildingnamemap);
		//map.addOverlay(gymmap);

		
		map.addOverlay(markerMCampus);
		map.addOverlay(markerGym);
		map.addOverlay(markerBroadwayC);
		map.addOverlay(markerUniCenter);
		map.addOverlay(markerCosmo);
		map.addOverlay(markerCCEC);
		map.addOverlay(markerMonroe);
		map.addOverlay(markerAviation);
		
		
		
		setTimeout('document.getElementById("map").style.backgroundImage = "";',200);
		//setTimeout('document.getElementById("loadingover").style.display="none";',1000);	
			
			

	}
}

function setDirections(fromAddress, toAddress, locale) {
	gdir.load("from: " + fromAddress + " to: " + toAddress,{
		"locale": locale 
	});
}

// passed into http://code.google.com/apis/maps/documentation/examples/directions-advanced.html
function handleErrors(){
	if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
		alert("No corresponding geographic location could be found for one of the specified addresses. This may be due to the fact that the address is relatively new, or it may be incorrect.\nError code: " + gdir.getStatus().code);
	else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
		alert("A geocoding or directions request could not be successfully processed, yet the exact reason for the failure is not known.\n Error code: " + gdir.getStatus().code);
	else if (gdir.getStatus().code == G_GEO_MISSING_QUERY)
		alert("The HTTP q parameter was either missing or had no value. For geocoder requests, this means that an empty address was specified as input. For directions requests, this means that no query was specified in the input.\n Error code: " + gdir.getStatus().code);
	else if (gdir.getStatus().code == G_GEO_BAD_KEY)
		alert("The given key is either invalid or does not match the domain for which it was given. \n Error code: " + gdir.getStatus().code);
	else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
		alert("A directions request could not be successfully parsed.\n Error code: " + gdir.getStatus().code);
	else alert("An unknown error occurred.");
}
function onGDirectionsLoad(){ 
	// Use this function to access information about the latest load() results.
	// e.g.
	// document.getElementById("getStatus").innerHTML = gdir.getStatus().code;
}



//google.maps.Search.setOnLoadCallback(loadMapCanvas);



