// Google maps
function initmap() {
	
	if (GBrowserIsCompatible()) {
		
		// Array to hold markers
		// Attach it to the window object to make it global
		window.gmarkers = [];
		
		// First off setup the custom icon
		var icon = new GIcon();
		icon.image = "http://sklz.com/sports/images/sklz_marker.png";
		icon.shadow = "http://sklz.com/sports/images/sklz_marker_shadow.png";
		icon.iconSize = new GSize(25, 36);
		icon.shadowSize = new GSize(34, 36);
		icon.iconAnchor = new GPoint(12, 35);
		icon.infoWindowAnchor = new GPoint(12, 15);      
		
		// Attach it to the window object to make it global
		window.icon = icon;
		
		// Create the map
		window.map = new GMap2(document.getElementById("map"));
		
		// Set the center to show the world
		//window.map.setCenter(new GLatLng(0,0), 0);
		window.map.setCenter(new GLatLng(41.244772343082076, -97.3828125), 4);	 
		if (store_num > 0) {
			updateMap();
		}

		
	} else {
		$('map').update("Your browser is incompatible with Google Maps");
	}
	
}

// Google maps function to create markers
function createMarker(point, icon, sid, html) {
	
	var marker = new GMarker(point, {icon:icon});
	
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml('<div style="color:#000;">'+html+'</div>');
	});
	
	marker.sid = sid;
	marker.point = point;
	
	/*GEvent.addListener(marker, "mouseover", function() {
		marker.setImage("http://www.sklz.com/gyroswing/_images/marker_orange.png");
	});
	
	GEvent.addListener(marker, "mouseout", function() {
		marker.setImage("http://www.sklz.com/gyroswing/_images/marker_green.png");
	});*/
	
	window.gmarkers.push(marker);
	
	return marker;
	
}

function updateMap() {
	
	//hideMarkers();
	
	map.clearOverlays();
	//delete (window.gmarkers);

	window.gmarkers = [];
	
	var bounds = new GLatLngBounds();
	
	GDownloadUrl("_ajax/markers.php", function(doc) {
		var xmlDoc = GXml.parse(doc);
		var markers = xmlDoc.documentElement.getElementsByTagName("marker");
		
		for (var i = 0; i < markers.length; i++) {
			// obtain the attribues of each marker
			var lat = parseFloat(markers[i].getAttribute("lat"));
			var lng = parseFloat(markers[i].getAttribute("lng"));
			var sid = parseFloat(markers[i].getAttribute("sid"));
			var name = markers[i].getAttribute("name");
			var address = markers[i].getAttribute("address");
			var city = markers[i].getAttribute("city");
			var state = markers[i].getAttribute("state");
			var zip = markers[i].getAttribute("zip");

			var html = "<b>"+name+"</b><br />"+address+", "+city+", "+state+" "+zip;
			html = html+"<br /><br />&raquo;&nbsp;<a href='http://maps.google.co.uk/maps?f=d&saddr="+search_zip+"&daddr="+address.replace(" ", "+")+",+"+city.replace(" ", "+")+",+"+state.replace(" ", "+")+"+"+zip+"&hl=en&geocode=&mra=ls&ie=UTF8&z=9' target='_blank'>directions";
			var point = new GLatLng(lat,lng);
			
			bounds.extend(point);
			
			// create the marker
			var marker = createMarker(point, window.icon, sid, html);
			window.map.addOverlay(marker);
		}
		
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		
		map.setCenter(new GLatLng(0,0), 0);
		
		// work out the zoom from the bounds
		if (map.getBoundsZoomLevel(bounds) > 11) { 
			map.setZoom(11);
		} else {
			map.setZoom(map.getBoundsZoomLevel(bounds));
		}
		// work out the center from the bounds
		map.setCenter(bounds.getCenter());
		
	}); 	
	
	map.checkResize();
	
}

function highlightMarker(sid, action) {
		
	for (var i=0; i<window.gmarkers.length; i++) {
		
		if (action == "on") {
			if (window.gmarkers[i].sid == sid) {
				window.gmarkers[i].setImage("http://www.sklz.com/gyroswing/_images/marker_orange.png");
			}
		} else {
			window.gmarkers[i].setImage("http://www.sklz.com/gyroswing/_images/marker_green.png");
		}
		
	}
	
}