// JavaScript Document
var map;
var myPano;   
var panoClient;
var nextPanoId;
var allmarkers = [];
function createMarker2(point, punto_dati) {
	var marker = new GMarker(point);
	var IdDivBaloon = "baloon" + punto_dati.Indice;
	GEvent.addListener(marker, "click", function() {
		label = "<div id='"+ IdDivBaloon + "'>baloon</div>";
		marker.openInfoWindowHtml(label);
		label_info = "";
		if (punto_dati.Nome != "") {
			label_info = "<strong>" + punto_dati.Nome + "</strong><div class='clear spacer5'></div>";
		};
		if (punto_dati.Indirizzo != "") {
			label_info = label_info + punto_dati.Indirizzo + "<div class='clear spacer10'></div>";
		};
		if (punto_dati.Telefono != "") {
			label_info = label_info + "Telefono: " + punto_dati.Telefono + "<div class='clear spacer5'></div>";
		};
		if (punto_dati.Fax != "") {
			label_info = label_info + "Fax: " + punto_dati.Fax + "<div class='clear spacer5'></div>";
		};
		var DivInfo = new Element('div', {
			'html': label_info,
			'class': 'baloon_info'
		});
		if (punto_dati.Email != "") {
			var LinkScheda2 = new Element('a', {
				'href': 'mailto:' + punto_dati.Email,
				'html': punto_dati.Email,
				'title': 'scrivi un messaggio di posta elettronica',
				'class': 'baloon_title'
			});
		};
		if ($(IdDivBaloon)) $(IdDivBaloon).empty();
		DivInfo.inject($(IdDivBaloon));
		if (punto_dati.Email != "") LinkScheda2.inject(DivInfo, 'after');
		myPOV = {yaw:punto_dati.Angle}
		myPano.setLocationAndPOV(point, myPOV);
	});
	
	
	
	
	allmarkers.push(marker);
	return marker;
};
function initialize() {
	var fenwayPark = new GLatLng(42.112676, 14.708014);
	var fenwayPOV = {yaw:175,pitch:0};
	panoClient = new GStreetviewClient();      
	map = new GMap2(document.getElementById("map_canvas"));
	map.setCenter(fenwayPark, 15);
	map.addControl(new GMapTypeControl());
	map.addControl(new GLargeMapControl());
	var point = fenwayPark;
	new Request({
		method: 'get',
		url: '/include/google_baloon.asp',
		evalScripts: true,
		onComplete: function(risposta) {
			
			map.addOverlay(createMarker(point, risposta));
			
			
			var req_baloon2 = new Request.JSON({
				url: '/include/load_pointer_map.asp',
				onSuccess:function(responseJSON) {
					responseJSON.punti_map.each(function(punto) {
						point2 = new GLatLng(punto.Latitudine,punto.Longitudine);
						map.addOverlay(createMarker2(point2, punto));
					});
				}
			}).send();
		}
	}).send();
	GEvent.addListener(map, "click", function(overlay,latlng) {
		if (latlng == undefined) { 
		}
		else {
			panoClient.getNearestPanorama(latlng, showPanoData);
		};
	});
	myPano = new GStreetviewPanorama(document.getElementById("pano"));
	myPano.setLocationAndPOV(fenwayPark, fenwayPOV);
	GEvent.addListener(myPano, "error", handleNoFlash);  
};
function createMarker(point, label) {
	var marker = new GMarker(point);
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(label);
		myPOV = {yaw:175,pitch:0}
		myPano.setLocationAndPOV(point, myPOV);
	});
	marker.openInfoWindowHtml(label);
	return marker;
};
function showPanoData(panoData) {
	if (panoData.code != 200) {
		//GLog.write('showPanoData: Server rejected with code: ' + panoData.code);
		return;
	}
	var displayString = [
	"<strong>" + panoData.location.region + "</strong>",
	panoData.location.description
	].join("<br/>");
	map.openInfoWindowHtml(panoData.location.latlng, displayString);
	myPano.setLocationAndPOV(panoData.location.latlng);
};
function handleNoFlash(errorCode) {
	if (errorCode == 603) {
		alert("Error: Flash doesn't appear to be supported by your browser");
		return;
	}
};
