
/************************
*	Map Integration from Google Maps
*
*	developer:	William Frankhouser, EvCC IT Web Services   http://www.everettcc.edu/visitors/maps/imap.cfm
*	version:	0.9
**************************/


	



// new AJAX google namespace   replace "G" with "google.maps."
google.load("maps", "2");	// 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.00645,-122.20385);
		var centerOfGym = new google.maps.LatLng(48.000563,-122.205397);
		var centerOfBroadwayCenter = new google.maps.LatLng(48.00627,-122.198);
		var centerOfUniCenter = new google.maps.LatLng(47.9756,-122.1977);
		var centerOfCosmo = new google.maps.LatLng(48.080617,-122.173);
		var centerOfATTC = new google.maps.LatLng(47.93757,-122.2651);
		var centerOfMonroe = new google.maps.LatLng(47.842917,-122.01313);
		var centerOfAviation = new google.maps.LatLng(47.90975,-122.27677);
		
		map.setCenter(centerOfCampus, 13);
		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.LargeMapControl(),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.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);	
		
						//var buildingmap = new google.maps.GroundOverlay("http://www.everettcc.edu/uploadedImages/Alumni_Friends_Visitors/Maps/campus_map.png", campusbounds);	
		buildingmap.show();
		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) { 
				buildingmap.show();
				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();
			}
		});
		

			
	// [[ 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 Gym /////////////////////////////////////////
		var markerGym = new google.maps.Marker(centerOfGym);
		google.maps.Event.addListener(markerGym,"click", function() {
			var dirc = '1815 13th St. Everett, WA 98201';
			document.getElementById('toAddress').value=dirc;
			map.panTo(centerOfGym);
	        var info = "<strong>Everett Community College Gym<\/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';
			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 \/>Everett Transit Station, "+dirc+"<br \/><strong>Phone:<\/strong> 425-252-9505";
	        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\/workforce\/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\/workforce\/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 ATTC ////////////////////////////////////////
		var markerATTC = new google.maps.Marker(centerOfATTC);
		google.maps.Event.addListener(markerATTC,"click", function() {
			var dirc = '2333 Seaway Blvd, Everett, WA 98203';
			document.getElementById('toAddress').value=dirc;
			map.panTo(centerOfATTC);
	        var info = "<strong><a href='http:\/\/www.everettcc.edu\/ce\/attc\/'>EvCC at Applied Technology Training Center (ATTC)<\/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 attctabs = [];
			attctabs[0] = new google.maps.InfoWindowTab("Info",info);
			markerATTC.openInfoWindowTabsHtml(attctabs, {maxWidth:350});		
	      });
		google.maps.Event.addListener(markerATTC,"dblclick", function(){
		 	map.showMapBlowup(centerOfATTC,{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\/monroe\/'>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(markerATTC);
		map.addOverlay(markerMonroe);
		map.addOverlay(markerAviation);
		
		
		
		setTimeout('document.getElementById("map").style.backgroundImage = "";',500);
		//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);






