/**
 * google maps object used in embedded view
 */
var _maps = new Object();

/**
 * creates an embedded map w/ cinema POIs
 * 
 * @param {String} element DOM element id
 */
function mapsSwissPOI(element, pois, fnMarker)
{
	// create bounds
	var bounds = new google.maps.LatLngBounds();
	for(var i = 0; i < pois.length; i++) 
	{
		bounds.extend(new google.maps.LatLng(pois[i].lat, pois[i].lng));
	}

	var options = 
	{
			disableDefaultUI: true,
			navigationControl: false,
			center: bounds.getCenter(),
			mapTypeId: google.maps.MapTypeId.TERRAIN
	};
	var map = new google.maps.Map(document.getElementById(element), options);
	// map.enableDoubleClickZoom();
	// map.enableContinuousZoom();
	
	// fit to bounds
	map.fitBounds(bounds);

	// load markers
	mapsAddPOI(map, pois, fnMarker);
	// $.ajax({'url': jsonURL, 'type': 'get', success: function(data) { mapsAddJsonPOI(map, $.evalJSON(data), fnMarker); } });

}
 
function mapsAddPOI(map, pois, fnPoiRenderer)
{
	var icon = new google.maps.MarkerImage(
			'/_img/markers/ring.png',
			new google.maps.Size(20, 20), /* size */
			new google.maps.Point(0, 0), /* origin */
			new google.maps.Point(10, 10) /* anchor */
		);
	
	for(var i = 0; i < pois.length; i++) 
	{
		var poi = pois[i];
		poi.html = fnPoiRenderer(poi);
		var marker = _mapsCreatePOIMarker(poi, icon, map);
	}
	
}

function renderCityInfoWindow(poi)
{
	return '<h3 style="margin-top:0px"><strong>'+poi.city+'</strong></h3><p><br /><a href="'+poi.url+'">Ortschaft anzeigen</a></p>';
}

function _mapsCreatePOIMarker(poi, icon, map)
{
	var marker = new google.maps.Marker({
			position: new google.maps.LatLng(poi.lat, poi.lng),
			map: map,
			icon: icon,
			title: poi.city
	});
/*	
	var infowindow = new google.maps.InfoWindow({
		content: poi.html
	});
*/	
	// add event listener
	google.maps.event.addListener(marker, 'click', function() 
	{ 
		window.location = poi.url;
//		infowindow.open(map, marker);
/*		
		var zoom = map.getZoom();
		if (zoom <= 7) zoom = 8;
		map.setZoom(zoom);
		marker.openInfoWindowHtml(poi.html); 
		map.panTo(marker.getLatLng());
*/		
	});

	google.maps.event.addListener(marker, 'dblclick', function() 
	{ 
		map.setZoom(map.getZoom()+1);
	});
	
	return marker;
}
