var poligonoCacheSingolo = null;
function nascondiPoligonoSingolo () {
	if (poligonoCacheSingolo != null) {
		map.closeInfoWindow();
		poligonoCacheSingolo.hide();
		poligonoCacheSingolo = null;
	}
}
  
  // caricamento poligono
function poligonoSingoloLoad(idpoligono) {
   	WorkingPoligoni = true;
   	ShowLoading();
   	GDownloadUrl(baseurl + "XmlCoords_poligoni.php?dettP=" + idpoligono,loadXMLPoligoniSingolo)
}

 
 // carica i dati sulla mappa quando arriva lo stream XML

 
function loadXMLPoligoniSingolo(dati) {
	if (dati){                    
		var xml = GXml.parse(dati);
		var poligoni = xml.documentElement.getElementsByTagName("poligono");
		
		for (var i = 0; i < poligoni.length; i++){
			//AddPoligonoToCache(poligoni[i].getAttribute("idGeo"), createPoligono(poligoni[i], poligoni[i].childNodes[0].nodeValue) )
			AddPoligonoSingoloToCache(poligoni[i].getAttribute("idGeo"), createPoligonoSingolo(poligoni[i]))
			//createPoligono(poligoni[i].getAttribute("vertici"));
		}	
	}
	HideLoading();
	WorkingPoligoni = false;
}

// Creates a marker whose info window displays the letter corresponding
// to the given index.
function createPoligonoSingolo(singlePoligono, infotxt) {
	
	appo2 = String(singlePoligono.getAttribute("vertici")).substr(1);
	appo3 = String(appo2).substr(0, appo2.length-1);
	appo1 = appo3.split ("),(");
	var latlngs = [];
	for(id = 0; id < appo1.length; id += 1) {
		latlngs.push (new GLatLng(appo1[id].split(",")[1],appo1[id].split(",")[0]))
	}
	//metto il primo elemento in coda per poter chiudere il perimetro del poligono
	var coloreLinea = "#FF0000";
	if (singlePoligono.getAttribute("coloreLinea") != "") {
		coloreLinea = "#"+singlePoligono.getAttribute("coloreLinea");
	}
	var coloreArea = "#0000FF";
	if (singlePoligono.getAttribute("coloreArea") != "") {
		coloreArea = "#"+singlePoligono.getAttribute("coloreArea");
	}
	latlngs.push(latlngs[0]);
	//var polygon = new GPolygon(latlngs,'#FF0000', 3, 1,'#0000FF',0.2);
	var polygon = new GPolygon(latlngs,coloreLinea, 3, 1,coloreArea,0.2);

	var focusPolygon = function(latlngsClick) {
		//map.openInfoWindowHtml(latlngsClick,singlePoligono.childNodes[0].nodeValue);
		if (singlePoligono.childNodes[1].nodeValue != "") {
			tabsInfo = [new GInfoWindowTab("Info",singlePoligono.childNodes[0].nodeValue),
			new GInfoWindowTab("Dettagli",singlePoligono.childNodes[1].nodeValue)]
			map.openInfoWindowTabsHtml(latlngsClick,tabsInfo);
		} else {
			map.openInfoWindowHtml(latlngsClick,singlePoligono.childNodes[0].nodeValue);
		}
		map.panTo(latlngsClick);
		return false;
	}
	GEvent.addListener(polygon, 'click', focusPolygon);
	
	curCatPoligoni = singlePoligono.getAttribute("categoria");
	
	return polygon;
}

// Add current marker to Arrays
function AddPoligonoSingoloToCache(idPunto, poligono) { 	
/*
	if (poligonoCache[curCatPoligoni] == null) {
		poligonoCache[curCatPoligoni] = new Array;
	}
	if (poligonoCache[curCatPoligoni][curtipoPoligoni] == null) {
		poligonoCache[curCatPoligoni][curtipoPoligoni] = new Array;
	}
	if(poligonoCache[curCatPoligoni][curtipoPoligoni][idPunto]==null) {
		poligonoCache[curCatPoligoni][curtipoPoligoni][idPunto]=poligono;  
*/
		// se  la priva volta che carico il marker lo piazzo
		poligonoCacheSingolo = poligono;
		map.addOverlay(poligono);
/*
	}
*/
}
