// variabili per posizione altre informazioni
var locationhost = location.host;
locationhost = 'public.bibionecom.ipertrade.com';

var toggleState = 0;
//var geoXml = new GGeoXml("http://" + locationhost + "/include/xml/mapsgoogle/Piste_ciclabili.kml"); 
var toggleStateInfo = 0;
//var geoXmlInfo = new GGeoXml("http://" + locationhost + "/include/xml/mapsgoogle/Info.kml"); 

var mgr

var baseIcon = new GIcon();
  baseIcon.iconSize=new GSize(32,32);
  baseIcon.shadowSize=new GSize(56,32);
  baseIcon.iconAnchor=new GPoint(16,32);
  baseIcon.infoWindowAnchor=new GPoint(16,0);

// recupera tutte le informazioni da un url
function getUrlMarker(url,tMap) {
      // definizione dell'icona di base
          baseIcon.iconSize=new GSize(32,32);
          baseIcon.shadowSize=new GSize(56,32);
          baseIcon.iconAnchor=new GPoint(16,32);
          baseIcon.infoWindowAnchor=new GPoint(16,0);
	  var gicons=[];

	//definisco le icone possibili
	gicons["unit"] = new GIcon(baseIcon, "http://maps.google.com/mapfiles/kml/pal2/icon28.png", null, "http://maps.google.com/mapfiles/kml/pal2/icon28s.png");
	gicons["merchant"] = new GIcon(baseIcon, "http://maps.google.com/mapfiles/kml/pal2/icon10.png", null, "http://maps.google.com/mapfiles/kml/pal2/icon10s.png");

	mgr = new GMarkerManager(tMap);
	GDownloadUrl(url, function(data, responseCode) {  
	 var xml = GXml.parse(data);  
	 var markers = xml.documentElement.getElementsByTagName("marker");  
	 var batch = [];
	 for (var i = 0; i < markers.length; i++) {    
		 var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),parseFloat(markers[i].getAttribute("lng")));
		 var urlhtml = markers[i].getAttribute("url");
		 var icon = markers[i].getAttribute("icon");

		 var marker = createMarkerURL(point,urlhtml,gicons[icon]);
		 // icona letto
		if (icon==="merchant")
		{
		  mgr.addMarker(marker, 1,11);
		}
		batch.push(marker);
		 //tMap.addOverlay(marker);
		 }
		mgr.addMarkers(batch, 12);
		mgr.refresh();
	});
}

// recupera tutte le informazioni di un merchant
function getMerchantMarker(IDmerchant,tMap) {
      // definizione dell'icona di base
          baseIcon.iconSize=new GSize(32,32);
          baseIcon.shadowSize=new GSize(56,32);
          baseIcon.iconAnchor=new GPoint(16,32);
          baseIcon.infoWindowAnchor=new GPoint(16,0);
	  var gicons=[];

	//definisco le icone possibili
	gicons["unit"] = new GIcon(baseIcon, "http://maps.google.com/mapfiles/kml/pal2/icon28.png", null, "http://maps.google.com/mapfiles/kml/pal2/icon28s.png");
	gicons["merchant"] = new GIcon(baseIcon, "http://maps.google.com/mapfiles/kml/pal2/icon10.png", null, "http://maps.google.com/mapfiles/kml/pal2/icon10s.png");

	mgr = new GMarkerManager(tMap);
	GDownloadUrl("/searchmapmerchantGoogle.aspx?idmerchant="+IDmerchant, function(data, responseCode) {  
	 var xml = GXml.parse(data);  
	 var markers = xml.documentElement.getElementsByTagName("marker");  
	 var batch = [];
	 for (var i = 0; i < markers.length; i++) {    
		 var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),parseFloat(markers[i].getAttribute("lng")));
		 var urlhtml = markers[i].getAttribute("url");
		 var icon = markers[i].getAttribute("icon");

		 var marker = createMarkerURL(point,urlhtml,gicons[icon]);
		 // icona letto
		if (icon==="merchant")
		{
		  mgr.addMarker(marker, 1,11);
		}
		batch.push(marker);
		 //tMap.addOverlay(marker);
		 }
		mgr.addMarkers(batch, 12);
		mgr.refresh();
	});
}

// recupera tutte le informazioni di un merchant
function getTipologyMarker(IDtipologia,tMap) {
      // definizione dell'icona di base
	  var gicons=[];

	//definisco le icone possibili
	gicons["unit"] = new GIcon(baseIcon, "http://maps.google.com/mapfiles/kml/pal2/icon28.png", null, "http://maps.google.com/mapfiles/kml/pal2/icon28s.png");
	gicons["merchant"] = new GIcon(baseIcon, "http://maps.google.com/mapfiles/kml/pal2/icon10.png", null, "http://maps.google.com/mapfiles/kml/pal2/icon10s.png");

	mgr = new GMarkerManager(tMap);
	GDownloadUrl("/searchmaptipologiagoogle.aspx?idtipologia="+IDtipologia, function(data, responseCode) {  
	 var xml = GXml.parse(data);  
	 var markers = xml.documentElement.getElementsByTagName("marker");  
	 var batch = [];
	 for (var i = 0; i < markers.length; i++) {    
		 var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),parseFloat(markers[i].getAttribute("lng")));
		 var urlhtml = markers[i].getAttribute("url");
		 var icon = markers[i].getAttribute("icon");

		 var marker = createMarkerURL(point,urlhtml,gicons[icon]);
		batch.push(marker);
		 }
		mgr.addMarkers(batch, 12);
		mgr.refresh();
	});
}

// recupera tutte le informazioni di una tipologia
function getTipologyCustomMarker(IDtipologia,tMap) {
      // definizione dell'icona di base
	  var gicons=[];

	//definisco le icone possibili
	gicons["unit"] = new GIcon(baseIcon, "http://maps.google.com/mapfiles/kml/pal2/icon28.png", null, "http://maps.google.com/mapfiles/kml/pal2/icon28s.png");
	gicons["merchant"] = new GIcon(baseIcon, "http://maps.google.com/mapfiles/kml/pal2/icon10.png", null, "http://maps.google.com/mapfiles/kml/pal2/icon10s.png");

	mgr = new GMarkerManager(tMap);
	//alert("/searchmaptipologiagoogleAlt.aspx?idtipologia="+IDtipologia)
	GDownloadUrl("/searchmaptipologiagoogleAlt.aspx?IDzona=0&idtipologia="+IDtipologia, function(data, responseCode) {  
	 var xml = GXml.parse(data);  
	 var markers = xml.documentElement.getElementsByTagName("marker");  
	 var batch = [];
	 for (var i = 0; i < markers.length; i++) {    
		 var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),parseFloat(markers[i].getAttribute("lng")));
		 var urlhtml = markers[i].getAttribute("url");
		 var icon = markers[i].getAttribute("icon");

//		 var marker = createMarkerURL(point,urlhtml,gicons[icon]);
		 var marker = createMarkerURLGallery(point,urlhtml,new GIcon(G_DEFAULT_ICON));
		batch.push(marker);
		 }
		mgr.addMarkers(batch, 12);
		mgr.refresh();
	});
}
// recupera tutte le informazioni di una tipologia
function getUnitaCustomMarker(IDunita,tMap) {
      // definizione dell'icona di base
	  var gicons=[];

	//definisco le icone possibili
	gicons["unit"] = new GIcon(baseIcon, "http://maps.google.com/mapfiles/kml/pal2/icon28.png", null, "http://maps.google.com/mapfiles/kml/pal2/icon28s.png");
	gicons["merchant"] = new GIcon(baseIcon, "http://maps.google.com/mapfiles/kml/pal2/icon10.png", null, "http://maps.google.com/mapfiles/kml/pal2/icon10s.png");

	mgr = new GMarkerManager(tMap);
	//alert("/searchmaptipologiagoogleAlt.aspx?idtipologia="+IDtipologia)
	GDownloadUrl("/searchmapUnitagoogleAlt.aspx?IDzona=0&IDunita="+IDunita, function(data, responseCode) {  
	 var xml = GXml.parse(data);  
	 var markers = xml.documentElement.getElementsByTagName("marker");  
	 var batch = [];
	 for (var i = 0; i < markers.length; i++) {    
		 var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),parseFloat(markers[i].getAttribute("lng")));
		 var urlhtml = markers[i].getAttribute("url");
		 var icon = markers[i].getAttribute("icon");

//		 var marker = createMarkerURL(point,urlhtml,gicons[icon]);
		 var marker = createMarkerURLGallery(point,urlhtml,new GIcon(G_DEFAULT_ICON));
		batch.push(marker);
		 }
		mgr.addMarkers(batch, 12);
		mgr.refresh();
	});
}



// recupera tutti i merchants di un determinato tipo
var gmarkers = [];

function getAllMerchantMarker(tMap) {

// definizione dell'icona di base
          baseIcon.iconSize=new GSize(16,16);
          baseIcon.shadowSize=new GSize(28,16);
          baseIcon.iconAnchor=new GPoint(8,16);
          baseIcon.infoWindowAnchor=new GPoint(8,0);
	  var gicons=[];

	//definisco le icone possibili
	// HOTEL 1
	gicons["type1"] = new GIcon(baseIcon, "http://maps.google.com/mapfiles/kml/pal5/icon55.png", null, "http://maps.google.com/mapfiles/kml/pal5/icon55s.png");
	// AGENZIA
	gicons["type2"] = new GIcon(baseIcon, "http://maps.google.com/mapfiles/kml/pal5/icon48.png", null, "http://maps.google.com/mapfiles/kml/pal5/icon48s.png");
	// CAMPING
	gicons["type3"] = new GIcon(baseIcon, "http://maps.google.com/mapfiles/kml/pal5/icon58.png", null, "http://maps.google.com/mapfiles/kml/pal5/icon58s.png");
	// RISTORANTI
	gicons["type4"] = new GIcon(baseIcon, "http://maps.google.com/mapfiles/kml/pal2/icon40.png", null, "http://maps.google.com/mapfiles/kml/pal2/icon40s.png");
	GDownloadUrl("/searchMapOnlyMerchantGoogle.aspx", function(data, responseCode) {  
//	 mgr = new GMarkerManager(tMap);
	 var xml = GXml.parse(data);  
	 var markers = xml.documentElement.getElementsByTagName("marker");  
	 var batch = [];
	 for (var i = 0; i < markers.length; i++) {    
		 var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),parseFloat(markers[i].getAttribute("lng")));
		 var urlhtml = markers[i].getAttribute("url");
		 var icon = markers[i].getAttribute("icon");
		 var category = markers[i].getAttribute("category");
		 var marker = createMarkerURL(point,urlhtml,gicons[icon]);
		 marker.mycategory = category;
		 tMap.addOverlay(marker);
//		 // icona letto
//		if (icon==="merchant")
//		{
//		  mgr.addMarker(marker, 1,11);
//		}
        gmarkers.push(marker);
		 }
//		mgr.addMarkers(gmarkers, 12);
		//mgr.refresh();
		hideall();
	});

	// test per evento
	GEvent.addListener(tMap, "zoomend", function() {
		//hideall();
		//alert("zoomato!")
	});


}

function createMarker(point,urlhtml,icon) {
	var marker = new GMarker(point,icon);
	GEvent.addListener(marker, "click", function() {
	  marker.openInfoWindowHtml(urlhtml);
	});
	return marker;
}

function createMarkerURL(point,urlhtml,icon) {
	var marker = new GMarker(point,icon);
	GEvent.addListener(marker, "click", function() {
		var request = GXmlHttp.create();
		request.open("GET", urlhtml.replace("%26","&"), true);
		request.onreadystatechange = function() {  
			if (request.readyState == 4) {
				marker.openInfoWindowHtml('<div style="margin-right:10px;height:260px;width:310px;overflow:auto;">' + request.responseText + '</div>'); 
			}
		}
		request.send(null);
	});
	return marker;
}

function createMarkerURLGallery(point,urlhtml,icon) {
	var marker = new GMarker(point,icon);
	GEvent.addListener(marker, "click", function() {
		var request = GXmlHttp.create();
		request.open("GET", urlhtml.replace("%26","&"), true);
		request.onreadystatechange = function() {  
			if (request.readyState == 4) {
				marker.openInfoWindowHtml('<div style="margin-right:10px;height:260px;width:310px;overflow:auto;">' + request.responseText + '</div>'); 
				startGallery()
			}
		}
		request.send(null);
	});
	return marker;
}


function showotherdetails() {
  if (toggleState == 1) {
	map.closeInfoWindow();
    map.removeOverlay(geoXml);
    toggleState = 0;
  } else {
    map.addOverlay(geoXml);
    toggleState = 1;
  }
}

function showInfoDetails() {
  if (toggleStateInfo == 1) {
	map.closeInfoWindow();
    map.removeOverlay(geoXmlInfo);
    toggleStateInfo = 0;
  } else {
    map.addOverlay(geoXmlInfo);
    toggleStateInfo = 1;
  }
}
  // == shows all markers of a particular category, and ensures the checkbox is checked ==
  function showhide(category) {
	for (var i=0; i<gmarkers.length; i++) {
	  if (gmarkers[i].mycategory == category.value) {
		if (category.checked)
		{
			gmarkers[i].show();
		} else {
			gmarkers[i].hide();
			// == close the info window, in case its open on a marker that we just hid
			map.closeInfoWindow();
		}
	  }
	}
  }
  // == shows all markers of a particular category, and ensures the checkbox is checked ==
  function hideall() {
	for (var i=0; i<gmarkers.length; i++) {
			gmarkers[i].hide();
			// == close the info window, in case its open on a marker that we just hid
			map.closeInfoWindow();
	}
  }

function showdetailsmap(bottone){
	if (bottone.id == "btnshow"){
        document.getElementById("btnshow").style.display="none"
        document.getElementById("btnhide").style.display=""
    }else{
        document.getElementById("btnshow").style.display=""
        document.getElementById("btnhide").style.display="none"
    }
	showInfoDetails();
}
function showotherdetailsmap(bottone){
	if (bottone.id == "btnshow"){
        document.getElementById("btnshowotherdetails").style.display="none"
        document.getElementById("btnhideotherdetails").style.display=""
    }else{
        document.getElementById("btnshowotherdetails").style.display=""
        document.getElementById("btnhideotherdetails").style.display="none"
    }
	showotherdetails();
}

