
var clusterer;
var iconSpiagge = new GIcon();
iconSpiagge.image = '/images/maps/icon_spiagge.png';
iconSpiagge.iconSize = new GSize(30, 34);
iconSpiagge.iconAnchor = new GPoint(12, 34);
iconSpiagge.infoWindowAnchor = new GPoint(12, 0);

var iconAlloggi = new GIcon(); 
iconAlloggi.image = '/images/maps/icon_alloggi.png';
iconAlloggi.iconSize = iconSpiagge.iconSize;
iconAlloggi.iconAnchor = iconSpiagge.iconAnchor;
iconAlloggi.infoWindowAnchor = iconSpiagge.infoWindowAnchor;

var icon_2 = new GIcon(); 
icon_2.image = '/images/maps/icon_2.png';
icon_2.iconSize = iconSpiagge.iconSize;
icon_2.iconAnchor = iconSpiagge.iconAnchor;
icon_2.infoWindowAnchor = iconSpiagge.infoWindowAnchor;

var icon_4 = new GIcon(); 
icon_4.image = '/images/maps/icon_4.png';
icon_4.iconSize = iconSpiagge.iconSize;
icon_4.iconAnchor = iconSpiagge.iconAnchor;
icon_4.infoWindowAnchor = iconSpiagge.infoWindowAnchor;

var icon_5 = new GIcon(); 
icon_5.image = '/images/maps/icon_5.png';
icon_5.iconSize = iconSpiagge.iconSize;
icon_5.iconAnchor = iconSpiagge.iconAnchor;
icon_5.infoWindowAnchor = iconSpiagge.infoWindowAnchor;

var icon_6 = new GIcon(); 
icon_6.image = '/images/maps/icon_6.png';
icon_6.iconSize = iconSpiagge.iconSize;
icon_6.iconAnchor = iconSpiagge.iconAnchor;
icon_6.infoWindowAnchor = iconSpiagge.infoWindowAnchor;

var icon_7 = new GIcon(); 
icon_7.image = '/images/maps/icon_7.png';
icon_7.iconSize = iconSpiagge.iconSize;
icon_7.iconAnchor = iconSpiagge.iconAnchor;
icon_7.infoWindowAnchor = iconSpiagge.infoWindowAnchor;

var icon_default = new GIcon(); 
icon_default.image = '/images/maps/default.png';
icon_default.iconSize = iconSpiagge.iconSize;
icon_default.iconAnchor = iconSpiagge.iconAnchor;
icon_default.infoWindowAnchor = iconSpiagge.infoWindowAnchor;

var iconSpiaggeGroup = new GIcon(); 
iconSpiaggeGroup.image = '/images/maps/icon_spiagge_group.png';
iconSpiaggeGroup.iconSize = new GSize(30, 34);
iconSpiaggeGroup.iconAnchor = new GPoint(12, 34);
iconSpiaggeGroup.infoWindowAnchor = new GPoint(12, 0);

var iconAlloggiGroup = new GIcon(); 
iconAlloggiGroup.image = '/images/maps/icon_alloggi_group.png';
iconAlloggiGroup.iconSize = iconSpiaggeGroup.iconSize;
iconAlloggiGroup.iconAnchor = iconSpiaggeGroup.iconAnchor;
iconAlloggiGroup.infoWindowAnchor = iconSpiaggeGroup.infoWindowAnchor;

var icon_2_group = new GIcon(); 
icon_2_group.image = '/images/maps/icon_2_group.png';
icon_2_group.iconSize = iconSpiaggeGroup.iconSize;
icon_2_group.iconAnchor = iconSpiaggeGroup.iconAnchor;
icon_2_group.infoWindowAnchor = iconSpiaggeGroup.infoWindowAnchor;

var icon_4_group = new GIcon(); 
icon_4_group.image = '/images/maps/icon_4_group.png';
icon_4_group.iconSize = iconSpiaggeGroup.iconSize;
icon_4_group.iconAnchor = iconSpiaggeGroup.iconAnchor;
icon_4_group.infoWindowAnchor = iconSpiaggeGroup.infoWindowAnchor;

var icon_5_group = new GIcon(); 
icon_5_group.image = '/images/maps/icon_5_group.png';
icon_5_group.iconSize = iconSpiaggeGroup.iconSize;
icon_5_group.iconAnchor = iconSpiaggeGroup.iconAnchor;
icon_5_group.infoWindowAnchor = iconSpiaggeGroup.infoWindowAnchor;

var icon_6_group = new GIcon(); 
icon_6_group.image = '/images/maps/icon_6_group.png';
icon_6_group.iconSize = iconSpiaggeGroup.iconSize;
icon_6_group.iconAnchor = iconSpiaggeGroup.iconAnchor;
icon_6_group.infoWindowAnchor = iconSpiaggeGroup.infoWindowAnchor;

var icon_7_group = new GIcon(); 
icon_7_group.image = '/images/maps/icon_7_group.png';
icon_7_group.iconSize = iconSpiaggeGroup.iconSize;
icon_7_group.iconAnchor = iconSpiaggeGroup.iconAnchor;
icon_7_group.infoWindowAnchor = iconSpiaggeGroup.infoWindowAnchor;

var icon_default_group = new GIcon(); 
icon_default_group.image = '/images/maps/default_group.png';
icon_default_group.iconSize = iconSpiaggeGroup.iconSize;
icon_default_group.iconAnchor = iconSpiaggeGroup.iconAnchor;
icon_default_group.infoWindowAnchor = iconSpiaggeGroup.infoWindowAnchor;

var customIcons = [];
customIcons["panel_1"] = iconAlloggi;
customIcons["panel_2"] = icon_2;
customIcons["panel_3"] = iconSpiagge;
customIcons["panel_4"] = icon_4;
customIcons["panel_5"] = icon_5;
customIcons["panel_6"] = icon_6;
customIcons["panel_7"] = icon_7;
customIcons["panel_10"] = icon_default;

var customClusterIcons = [];
customClusterIcons["panel_1"] = iconAlloggiGroup;
customClusterIcons["panel_2"] = icon_2_group;
customClusterIcons["panel_3"] = iconSpiaggeGroup;
customClusterIcons["panel_4"] = icon_4_group;
customClusterIcons["panel_5"] = icon_5_group;
customClusterIcons["panel_6"] = icon_6_group;
customClusterIcons["panel_7"] = icon_7_group;
customClusterIcons["panel_10"] = icon_default_group;

GMap2.prototype.addOverlays = function(overlays) {
	for (var i = 0; i < overlays.length; i++) {
		clusterer.AddMarker(overlays[i], overlays[i].getTitle());
   }
};

var language_set="";

function loads(tipology, language) {
	var markerGroups = { "panel_1": [], "panel_2": [], "panel_3": [], "panel_4": [], "panel_5": [], "panel_6": [], "panel_7": [], "panel_10": []};
	var markerArrayGroups = { "panel_1": [], "panel_2": [], "panel_3": [], "panel_4": [], "panel_5": [], "panel_6": [], "panel_7": [], "panel_10": []};
	var map = "";
	var tipology_name="";
	var lang_iso2 = '?lang=en';
	if ((language) && (language.lenght == 2)) {
		lang_iso2 = '?lang='+language;
		language_set = language;
	} else if ((language_set!="") && (language_set.lenght == 2)) {
		lang_iso2 = '?lang='+language_set;
	}
	if (document.getElementById(tipology)){
		var mio_box = document.getElementById(tipology);
		var mio_nodo = mio_box.getElementsByTagName("div");
		for(i=0; i < mio_nodo.length; i++){
			if(mio_nodo[i].className=="AccordionPanelTab"){
				tipology_name=mio_nodo[i].firstChild.nodeValue.toLowerCase();
				mio_nodo[i].style.backgroundColor="";
			}
		}
	} else {
		tipology_name=tipology.toLowerCase();
		tipology="panel_10";
	}
	if (tipology_name==""){
		var mio_box_2 = document.getElementById(tipology);
		var mio_nodo_2 = mio_box_2.getElementsByTagName("div");
		for(i_2=0; i_2 < mio_nodo_2.length; i_2++){
			if(mio_nodo_2[i_2].className=="AccordionPanelTab"){
				tipology_name=mio_nodo_2[i_2].firstChild.nodeValue.toLowerCase();
			}
		}
		loads(tipology, language);
	}
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		clusterer = new Clusterer(map); 
		clusterer.SetIcon(customClusterIcons[tipology]);
		
		map.setCenter(new GLatLng(42.78, 10.28), 10);
		
		tipology = tipology.toLowerCase();
		
		GDownloadUrl("/assets/markerdata.php"+lang_iso2, function(data) {
			var xml = "";
			xml = GXml.parse(data);
			var markers = "";
			markers = xml.getElementsByTagName("marker");
			for (var i=0; i < markers.length; i++) {
				var type = markers[i].getAttribute("type").substring(0,4).toLowerCase();
				if (trim(type)==trim(tipology_name.substring(0,4))){
					var name = markers[i].getAttribute("name");
					var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")));
					marker=createMarker(point, name, tipology);
					markerGroups[tipology].push(marker);
				}
			}
			map.addOverlays(markerGroups[tipology]);
		}); 
	}
	if (document.getElementById("title_box_info_elba")){
		document.getElementById("title_box_info_elba").innerHTML=tipology_name;
		var links = document.getElementById("link_box_info_elba");
		if (links){
			links.setAttribute("href", "javascript:Shadowbox.open({player:'iframe', title:'"+tipology_name+"', content:'/assets/mappa_grande.php"+lang_iso2+"&t="+escape(tipology_name)+"', width:'752', height:'410'});");
		}
	}
}

function loads_group(tipology, language, page, title, paging) {
	var map = "";
	var tipology_name="";
	
	if (tipology == "Accomodation"){
		tipology_name=tipology.toLowerCase();
		tipology="panel_1";
	} else if (tipology == "Sport"){
		tipology_name=tipology.toLowerCase();
		tipology="panel_2";
	} else if (tipology == "Beaches"){
		tipology_name=tipology.toLowerCase();
		tipology="panel_3";
	} else if (tipology == "Entertainment"){
		tipology_name=tipology.toLowerCase();
		tipology="panel_4";
	} else if (tipology == "Nature"){
		tipology_name=tipology.toLowerCase();
		tipology="panel_5";
	} else if (tipology == "Museums and History"){
		tipology_name=tipology.toLowerCase();
		tipology="panel_6";
	} else if (tipology == "Useful Info"){
		tipology_name=tipology.toLowerCase();
		tipology="panel_7";
	} else {
		tipology_name=tipology.toLowerCase();
		tipology="panel_10";
	}
	
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		map.setCenter(new GLatLng(42.78, 10.28), 10);
		
		GDownloadUrl("/assets/markerdata.php?lang="+language+"&page="+page+"&title="+title+"&paging="+paging, function(data) {
			var xml = "";
			xml = GXml.parse(data);
			var markers = "";
			markers = xml.getElementsByTagName("marker");
			for (var i=0; i < markers.length; i++) {
				var name = markers[i].getAttribute("name");
				var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")));
				marker = createMarker(point, name, tipology);
				map.addOverlay(marker);
			}
		}); 
	}
	if (document.getElementById("title_box_info_elba")){
		document.getElementById("title_box_info_elba").innerHTML=tipology_name;
		var links = document.getElementById("link_box_info_elba");
		if (links){
			links.setAttribute("href", "javascript:Shadowbox.open({player:'iframe', title:'"+tipology_name+"', content:'/assets/mappa_grande.php?lang="+language+"&t="+escape(tipology_name)+"', width:'752', height:'410'});");
			links.setAttribute("title", tipology_name);
		}
	}
}

function load_single(point_name, lat, lon, tipology, language) {
	var map;
	var tipology_name;
	
	if (tipology == "Accomodation"){
		tipology_name=tipology.toLowerCase();
		tipology="panel_1";
	} else if (tipology == "Sport"){
		tipology_name=tipology.toLowerCase();
		tipology="panel_2";
	} else if (tipology == "Beaches"){
		tipology_name=tipology.toLowerCase();
		tipology="panel_3";
	} else if (tipology == "Entertainment"){
		tipology_name=tipology.toLowerCase();
		tipology="panel_4";
	} else if (tipology == "Nature"){
		tipology_name=tipology.toLowerCase();
		tipology="panel_5";
	} else if (tipology == "Museums and History"){
		tipology_name=tipology.toLowerCase();
		tipology="panel_6";
	} else if (tipology == "Useful Info"){
		tipology_name=tipology.toLowerCase();
		tipology="panel_7";
	} else {
		tipology_name=tipology.toLowerCase();
		tipology="panel_10";
	}
	
	var lang_iso2 = '?lang=en';
	if ((language) && (language.lenght == 2)) {
		lang_iso2 = '?lang='+language;
		language_set = language;
	} else if ((language_set!="") && (language_set.lenght == 2)) {
		lang_iso2 = '?lang='+language_set;
	}
	
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));

		markerOptions = { icon:customIcons[tipology] };
		
		map.setCenter(new GLatLng(42.78, 10.28), 10);
		
		tipology = tipology.toLowerCase();
		var point = new GLatLng(lat, lon);
 		map.addOverlay(new GMarker(point, markerOptions));
	}
	if (document.getElementById("title_box_info_elba")){
		document.getElementById("title_box_info_elba").innerHTML = tipology_name;
		var links = document.getElementById("link_box_info_elba");
		if (links){
			links.setAttribute("href", "javascript:Shadowbox.open({player:'iframe', title:'"+tipology_name+ " › "+point_name+"', content:'/assets/mappa_grande.php"+lang_iso2+"&p="+tipology_name+"&lat="+lat+"&lon="+lon+"', width:'752', height:'410'});");
			links.setAttribute("title", tipology_name);
		}
	}
}

function single_minisite(point_name, lat, lon, id, language) {
	var map;
	
	tipology_name = "alloggi";
	tipology="panel_10";
	
	var lang_iso2 = '?lang=en';
	if ((language) && (language.lenght == 2)) {
		lang_iso2 = '?lang='+language;
		language_set = language;
	} else if ((language_set!="") && (language_set.lenght == 2)) {
		lang_iso2 = '?lang='+language_set;
	}
	
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));

		markerOptions = { icon:iconAlloggi };
		
		map.setCenter(new GLatLng(42.78, 10.28), 10);
		
		tipology = tipology.toLowerCase();
		var point = new GLatLng(lat, lon);
 		map.addOverlay(new GMarker(point, markerOptions));
	}
	if (document.getElementById("title_box_info_elba")){
		var links = document.getElementById("link_box_info_elba");
		if (links){
			point_name = point_name.replace("'", " ");
			links.setAttribute("href", "javascript:Shadowbox.open({player:'iframe', title:'"+tipology_name+"', content:'/assets/mappa_grande.php"+lang_iso2+"&m="+tipology_name+"&id="+id+"&lat="+lat+"&lon="+lon+"', width:'752', height:'410'});");
			links.setAttribute("title", tipology_name);
		}
	}
}

function point_search(id_city, language, type_point, name_point, latitude, longitude) {
	
	var markerGroups = { "panel_1": [], "panel_2": [], "panel_3": [], "panel_4": [], "panel_5": [], "panel_6": [], "panel_7": [], "panel_10": []};
	var markerArrayGroups = { "panel_1": [], "panel_2": [], "panel_3": [], "panel_4": [], "panel_5": [], "panel_6": [], "panel_7": [], "panel_10": []};
	
	var map;
	var tipology = "panel_1";
	var city_name = "";
	var citta = "";
	
	var lang_iso2 = '?lang=en';
	if ((language) && (language.lenght == 2)) {
		lang_iso2 = '?lang='+language;
		language_set = language;
	} else if ((language_set!="") && (language_set.lenght == 2)) {
		lang_iso2 = '?lang='+language_set;
	}
	
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		clusterer = new Clusterer(map); 
		clusterer.SetIcon(customClusterIcons[tipology]);
		
		map.setCenter(new GLatLng(42.78, 10.28), 10);
		
		GDownloadUrl("/assets/markerdata_search.php"+lang_iso2+"&city_id="+id_city, function(data) {
			var xml = "";
			xml = GXml.parse(data);
			var markers = "";
			markers = xml.getElementsByTagName("marker");

			for (var i=0; i < markers.length; i++) {
				var name = markers[i].getAttribute("name");
				var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")));
				marker=createMarker(point, name, tipology);
				markerGroups[tipology].push(marker);
				if (city_name == "" && id_city!=0) {
					links.setAttribute("href", "javascript:Shadowbox.open({player:'iframe', title:'Elba › "+markers[i].getAttribute("city")+"', content:'/assets/mappa_grande.php"+lang_iso2+"&c="+id_city+"', width:'752', height:'410'});");
					links.setAttribute("title", "Elba › "+ markers[i].getAttribute("city"));
					city_name = markers[i].getAttribute("city");
				}
			}
			map.addOverlays(markerGroups[tipology]);
		}); 
	}
	if (document.getElementById("title_box_info_elba")){
		var links = document.getElementById("link_box_info_elba");
		if (links){
			if (id_city==0){
				if (type_point=="" || name_point=="" || latitude=="" || longitude=="" || type_point==undefined || name_point==undefined || latitude==undefined || longitude==undefined) {
					//alert(type_point);
					links.setAttribute("href", "javascript:Shadowbox.open({player:'iframe', title:'Elba', content:'/assets/mappa_grande.php"+lang_iso2+"&c=0', width:'752', height:'410'});");
				} else {
					
					links.setAttribute("href", "javascript:Shadowbox.open({player:'iframe', title:'Elba', content:'/assets/mappa_grande.php"+lang_iso2+"&c=0&tp="+type_point+"&np="+name_point+"&lt="+latitude+"&lg="+longitude+"', width:'752', height:'410'});");

					if (type_point == "Accomodation"){
						type_point="panel_1";
					} else if (type_point == "Sport"){
						type_point="panel_2";
					} else if (type_point == "Beaches"){
						type_point="panel_3";
					} else if (type_point == "Entertainment"){
						type_point="panel_4";
					} else if (type_point == "Nature"){
						type_point="panel_5";
					} else if (type_point == "Museums and History"){
						type_point="panel_6";
					} else if (type_point == "Useful Info"){
						type_point="panel_7";
					} else {
						type_point="panel_10";
					}
					
					point = new GLatLng(latitude, longitude);
					marker = createMarker(point, name_point, type_point);
					map.addOverlay(marker);
				}
				links.setAttribute("title", "Elba");
			}
		}
	}
}

function createMarker(point, name, tipology) {
	var option = { icon: customIcons[tipology], title: name };
	var marker = new GMarker(point,option);    
	return marker;
}

function trim(stringa){
    while (stringa.substring(0,1) == ' '){
        stringa = stringa.substring(1, stringa.length);
    }
    while (stringa.substring(stringa.length-1, stringa.length) == ' '){
        stringa = stringa.substring(0,stringa.length-1);
    }
    return stringa;
}