var baseIconSmall = new GIcon();
baseIconSmall.shadow = pathHttp + "immagini/shadow_small.png";
baseIconSmall.iconSize = new GSize(28, 35);
baseIconSmall.shadowSize = new GSize(40, 35);
baseIconSmall.iconAnchor = new GPoint(14, 35);
baseIconSmall.infoWindowAnchor = new GPoint(14, 0);
baseIconSmall.infoShadowAnchor = new GPoint(14, 0);

//precaricamento immagini
pic1 = new Image(28, 35); 
pic1.src = pathHttp + "immagini/icona.png";

pic2 = new Image(28, 35); 
pic2.src = pathHttp + "immagini/icona_dove_siamo.png";

var icona = new GIcon(baseIconSmall, pathHttp + "immagini/icona.png", null, pathHttp + "immagini/shadow_small.png");

var iconaDoveSiamo = new GIcon(baseIconSmall, pathHttp + "immagini/icona_dove_siamo.png", null, pathHttp + "immagini/shadow_small.png");

function displayMapHomepage(json)
{
	var frazione = json.coordinate.frazione;
	var latitude = json.coordinate.latitudine;
	var longitude = json.coordinate.longitudine;
	
	var divMappa = $('googlemap');
	var dimensions = divMappa.getDimensions();
	var point = new GLatLng(latitude, longitude);
	
	$('frazioneGooglemap').update(frazione);
	
	if(undefined == map)
	{
		map = new GMap2(divMappa, { size: new GSize(dimensions.width, dimensions.height) } );
		map.setMapType(G_NORMAL_MAP);
	}
	map.setCenter(point, 14);
	bounds = map.getBounds();
	
	//gestione attivitą	
	var arrayAttivita = json.array_attivita;
	if(arrayAttivita.length > 0)
	{
		arrayAttivita.each(function(attivita) {
												if(attivita.coordinate.latitudine != '' && attivita.coordinate.longitudine != '')
												{
													var point = new GLatLng(attivita.coordinate.latitudine, attivita.coordinate.longitudine);
													markerOptions = { icon: icona };
													var marker = new GMarker(point, markerOptions);
													markerArray.push(marker);
													map.addOverlay(marker); 
													if(bounds)
													{			   
														bounds.extend(point);
														var zoom = map.getBoundsZoomLevel(bounds); 
														var center = bounds.getCenter(); 
														map.setCenter(center); 
														map.setZoom(zoom);
													}
													GEvent.addListener(marker, "click", function() 
																					{
																						marker.openInfoWindowHtml(attivita.details);
																					});
												}
											  });
	}
}

function displayMapSchedaHotel(idMappa, flagSchedaHotel)
{
	var frazione = $('address').innerHTML;
	var latitude = $('latitudine').innerHTML;
	var longitude = $('longitudine').innerHTML;
	
	var divMappa = $(idMappa);
	var dimensions = divMappa.getDimensions();
	
	if(latitude == '' || longitude == '')
	{
		var geocoder = new GClientGeocoder();
		geocoder.getLatLng(frazione, function(point) 
						  {
							if(!point) 
							{
								divMappa.update('<p><b>Mappa non disponibile!</b></p>');
							} 
							else 
							{
								map = new GMap2(divMappa, { size: new GSize(dimensions.width, dimensions.height) } );
								map.setMapType(G_NORMAL_MAP);
								map.addControl(new GLargeMapControl3D());
								map.setCenter(point, 16);
							
								
							
								markerOptions = { icon: (flagSchedaHotel? icona : iconaDoveSiamo), clickable: false };
								var marker = new GMarker(point, markerOptions);
								map.addOverlay(marker); 
							}
						  });
	}
	else
	{
		var point = new GLatLng(latitude, longitude);
		
		map = new GMap2(divMappa, { size: new GSize(dimensions.width, dimensions.height) } );
		map.setMapType(G_NORMAL_MAP);	
		map.addControl(new GLargeMapControl3D());
		map.setCenter(point, 16);
	
		markerOptions = { icon: (flagSchedaHotel? icona : iconaDoveSiamo), clickable: false };
		var marker = new GMarker(point, markerOptions);
		map.addOverlay(marker); 
	}
}

function showPercorso(element)
{
	if(flagShowPercorso)	
	{
		return;
	}
	
	var from = $F('luogoPartenza');
	var latitudine = parseFloat($F('latitudine'));
	var longitudine = parseFloat($F('longitudine'));
	
	flagShowPercorso = true;
	
	if('undefined' === typeof(gdir))
	{
		gdir = new GDirections(map, $('percorso'));
		GEvent.addListener(gdir, "addoverlay", loadedPercorso);
	}

	gdir.clear();
	gdir.load("from: " + from + ' to: ' + latitudine + ',' + longitudine, { getPolyline: true});
}

function loadedPercorso(direction)
{				
	var oldMarker = direction.getMarker(1);	

	var markerOptions = { 
						  'icon': icona,
						  "clickable": false,
						  'labelOffset': new GSize(-2, -26)
						};	
	var newMarker = new GMarker(oldMarker.getLatLng(), markerOptions);	
	map.addOverlay(newMarker);
	
	flagShowPercorso = false;
}

function recuperaCoordinateGooglemap()
{
	var indirizzo = document.getElementById('indirizzo').value;
	var frazione = document.getElementById('frazione').options[document.getElementById('frazione').selectedIndex].innerHTML;
	if(frazione == 'Rimini - Marina Centro')
		frazione = 'Rimini';
	
	if((indirizzo == '' || frazione == '') && (latitudine == '' || longitudine == ''))
	{
		alert('Occorre definire un indirizzo\r\no delle coordinate per visualizzare la googlemap');
		return false;
	}
	
	var address = indirizzo + ' Rn ' + frazione;
	
	var latitudine = document.getElementById('latitudine').value;
	var longitudine = document.getElementById('longitudine').value;
	
	var divElement;
	divElement = document.createElement("div");
	divElement.setAttribute("id", "map_container");
	divElement.style.position = 'absolute';
	divElement.style.left = '830px';
	divElement.style.top = '457px';
	divElement.style.zIndex = '4001';
	divElement.style.width = '340px';
	divElement.style.height = '380px';
	divElement.style.backgroundColor = '#FFF';
	divElement.style.border = '1px solid #999999';
	
	var divCloseElement;
	divCloseElement = document.createElement("div");
	divCloseElement.style.width = '336px';
	divCloseElement.style.height = '20px';
	divCloseElement.style.margin = '2px';
	divCloseElement.style.textAlign = 'right';
	divCloseElement.innerHTML = '<a href="#" onclick="closeMap(); return false;"><b>X</b></a>';
	divElement.appendChild(divCloseElement);
	
	var divInnerElement;
	divInnerElement = document.createElement("div");
	divInnerElement.setAttribute("id", "map");
	divInnerElement.style.width = '336px';
	divInnerElement.style.height = '336px';
	divInnerElement.style.margin = '2px';
	divElement.appendChild(divInnerElement);
	
	window.document.body.appendChild(divElement);
	
	var map = new GMap2(document.getElementById('map'));
	map.addControl(new GLargeMapControl());
	var geocoder = new GClientGeocoder();
	
	if(latitudine == '' || longitudine == '')
	{
		geocoder.getLatLng( address,
							function(point) {
												if (!point) {
																alert(address + " not found");
															} 
															else
															{
																map.setCenter(point, 16);
																
																var marker = new GMarker(point, {draggable: true});
																map.addOverlay(marker);
																
																address += '<br />Latitudine e longitudine:<br />' + point;
																marker.openInfoWindowHtml(address);
																
																GEvent.addListener(marker, "dragstart", function() {
																														map.closeInfoWindow();
																												   });
													
																GEvent.addListener(marker, "dragend", function(latlng) {
																														if (latlng) 
																														{ 
																															var newlat = latlng.lat().toFixed(6);
																															var newlng = latlng.lng().toFixed(6);
																															var myHtml = "Latitudine: " + newlat + "<br />Longitudine: " + newlng + "";
																															marker.openInfoWindow(myHtml);
																															
																															document.getElementById('latitudine').value = newlat;
																															document.getElementById('longitudine').value = newlng;
																														}
																														});							
															}
											});
	}
	else
	{
		var point = new GLatLng(latitudine, longitudine);
		map.setCenter(point, 16);
		var marker = new GMarker(point, {draggable: true});
		map.addOverlay(marker);
		address += '<br />Latitudine e longitudine:<br />' + point;
		marker.openInfoWindowHtml(address);
		
		GEvent.addListener(marker, "dragstart", function() {
																map.closeInfoWindow();
														   });

		GEvent.addListener(marker, "dragend", function(latlng) {
																if (latlng) 
																{ 
																	var newlat = latlng.lat().toFixed(6);
																	var newlng = latlng.lng().toFixed(6);
																	var myHtml = "Latitudine: " + newlat + "<br />Longitudine: " + newlng + "";
																	marker.openInfoWindow(myHtml);
																	
																	document.getElementById('latitudine').value = newlat;
																	document.getElementById('longitudine').value = newlng;
																}
																});							
	}					 	
}

function closeMap()
{
	document.getElementById('map_container').parentNode.removeChild(document.getElementById('map_container'));
}
