// Load jQuery from Google's servers.
google.load('jquery', '1.3.2');

//
// handleDomReady
//
function handleDomReady() {
	insertNavigationImageMap();
	wireEXIFToggle();
	wireMapToggle();
}

google.setOnLoadCallback(handleDomReady);

//
// insertNavigationImageMap
//
function insertNavigationImageMap() {
	var width = $('#le-photo').width();
	var height = $('#le-photo').height();

	// Coords are specified as 'x1, y1, x2, y2'
	var previous_coords = [0, 0, width / 2, height].join(',');
	var next_coords = [width / 2, 0, width, height].join(',');

	var map_tag = '<map name="navigation_map">';
	
	var previous_url = $('#previous-url').attr('href');
	if (previous_url != null) {
		map_tag += '<area shape="rect" coords="' + previous_coords + '" href="' + previous_url + '" alt="Previous Photo"/>';
	}
	
	var next_url = $('#next-url').attr('href');
	if (next_url != null) {
		map_tag += '<area shape="rect" coords="' + next_coords + '" href="' + next_url + '" alt="Next Photo"/>';
	}

	$('#le-photo').before(map_tag + '</map>');
}

//
// initializeMap
//
function initializeMap() {
	var map = new google.maps.Map2(document.getElementById('waldo'));
	map.setMapType(G_HYBRID_MAP);	
	
	var markerBounds = new google.maps.LatLngBounds();
	
	if (typeof(g_initial_map_markers) != 'undefined') {
		for (var i = 0; i < g_initial_map_markers.length; i++) {
			var info = g_initial_map_markers[i];
			var latlng = new google.maps.LatLng(parseFloat(info['latitude']), parseFloat(info['longitude']))
			var marker = new google.maps.Marker(latlng);

			map.addOverlay(marker);
			markerBounds.extend(latlng);
		}
	}
	
	map.setCenter(markerBounds.getCenter(), Math.min(map.getBoundsZoomLevel(markerBounds), 12));
	map.setUIToDefault();
	
}

//
// wireEXIFToggle
//
function wireEXIFToggle() {
	$('#exif-info').click(function() {
		$('#exif').toggle();
	});
}

//
// wireMapToggle
//
function wireMapToggle() {
	$('#map-info').click(function() {
		google.load('maps', '2', {'callback' : 'initializeMap', 
															'other_params' : 'sensor=true'});
		$('#map').toggle();
	});
}

