/*
 * JS for the front page region google-map
 */

var map;

/* Adds a marker on the map for the center of a wine region */
function addMarker(lat, lon, display_text) {

	var icon = new GIcon();
	icon.image = "/vine-media/images/glass-icon.png";
	icon.shadow = "/vine-media/images/glass-shadow.png";
	icon.iconSize = new GSize(19, 37);
	icon.shadowSize = new GSize(37, 34);
	icon.iconAnchor = new GPoint(8, 32);
	icon.infoWindowAnchor = new GPoint(8, 8);

	var point = new GLatLng( lat, lon );
	var marker = new GMarker(point, icon);
	map.addOverlay( marker );
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(display_text);
		}
	);
}

/* Converts an array of 2 elements arrays into an array of GLatLng */
function arrays_to_google_points(points_arr) {

	var result = [];
	for ( var i=0; i<points_arr.length; i++ ) {
		point = points_arr[i]
		google_point = new GLatLng(point[0], point[1]);
		//addMarker(point[0], point[1], "("+ point[0] +","+ point[1] +")");
		result.push( google_point );
	}
	
	return result;
}

/* Adds the colored area for a wine growing region */
function addOutline(region) {

	for (var poly_key in region) {
	
		if ( poly_key.indexOf("poly") != 0 ) {
			continue;
		}
		points_arr = region[poly_key];
		points = arrays_to_google_points(points_arr);
		var poly = new GPolygon(points, region.color, 2, 0.95, region.color, 0.5);
		map.addOverlay(poly);
	}
}

function load() {
	if (GBrowserIsCompatible()) {
	
		map = new GMap2(document.getElementById("map"));
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		/*map.addControl(new GOverviewMapControl());*/
		map.setCenter(new GLatLng(45.8, 2.6), 6);
		
		//GEvent.addListener(map, 'click', clickHandler);
		
		for (var region_name in polys) {
			
			var region = polys[region_name];
			addMarker(region.center[0], region.center[1], region_name);
			addOutline(region);
		}
	}
}

YAHOO.util.Event.onAvailable("map", load);

YAHOO.util.Event.addListener(window, "unload", GUnload, null, false);      
 