//<![CDATA[

var xmlGrp1_IdxPage = 0;	// Variabile contentente l'indice di visualizzazione del Gruppo 1
var xmlGrp1_OldIdxPage = 0;	// Variabile contentente il vecchio indice di visualizzazione del Gruppo 1
var xmlGrp1_TotPOI =  1;	// Variabile contentente il numero massimo di marker visibile per il Gruppo 1
var xmlGrp1_TotPage = 0;	// Variabile contentente il totale delle pagine visualizzabili del Gruppo 1
var xmlGrp2_IdxPage = 0;	// Variabile contentente l'indice di visualizzazione del Gruppo 2
var xmlGrp2_OldIdxPage = 0;	// Variabile contentente il vecchio indice di visualizzazione del Gruppo 2
var xmlGrp2_TotPOI =  5000;	// Variabile contentente il numero massimo di marker visibile per il Gruppo 2
var xmlGrp2_TotPage = 0;	// Variabile contentente il totale delle pagine visualizzabili del Gruppo 1

var startLat = 37.853129;  // TAORMINA
var startLon = 15.287815; 

var startZoom = 15;
var map;

function PrepareGMap() 
{
	if (GBrowserIsCompatible()) 
	{
		map = new GMap2(document.getElementById("map"));

		map.addControl(new GLargeMapControl());
		map.addControl(new GScaleControl());
		map.addControl(new GOverviewMapControl());			
		map.addControl(new GMapTypeControl());
					
		map.setCenter(new GLatLng(startLat, startLon), startZoom);
		
		if(poiXmlGrp1 != '' && poiXmlGrp2 != '')
		{
			GLogger('Inizio caricamento dati XML');
			
			GDownloadUrl(poiXmlGrp1, 
				function(data, responseCode) 
				{
					CaricaPagineXMLGruppo1(data, responseCode, 1, function()
					{
						GDownloadUrl(poiXmlGrp2, 
							function(data, responseCode) 
							{
								CaricaPagineXMLGruppo2(data, responseCode, 2, MostraPOI);
							}
						);
					})
				}
			);
		}
	}
}
function CaricaPagineXMLGruppo1(data, responseCode, Grp, CallBackFunction)
{

    //map = new GMap2(document.getElementById("map"));
    //alert(map);
	var xml = GXml.parse(data);
	xmlMarkGrp1 = xml.documentElement.getElementsByTagName("marker");
	xmlGrp1_TotPage = parseInt(xmlMarkGrp1.length / xmlGrp1_TotPOI);
	
	if(xmlGrp1_TotPage < (xmlMarkGrp1.length / xmlGrp1_TotPOI))
		xmlGrp1_TotPage++;

	var idxXml = 0;
	for(var p = 0; p < xmlGrp1_TotPage; p++)
	{
		for (var i = 0; i < xmlGrp1_TotPOI; i++)
		{
			if(idxXml < xmlMarkGrp1.length)
			{
				var point = new GLatLng(parseFloat(xmlMarkGrp1[idxXml].getAttribute("lat")), parseFloat(xmlMarkGrp1[idxXml].getAttribute("lng")));
				
				//ricentra la mappa sulla posizione del POI
				map.setCenter(point, startZoom);
				
				var nome = xmlMarkGrp1[idxXml].getAttribute("nome");
				var poiPinIconType = xmlMarkGrp1[idxXml].getAttribute("poiPinIconType");

				var contenutoHtml = null;
				var contenutoHtmlTab2 = null;
				/*for (var j = 0; j < xmlMarkGrp1[idxXml].childNodes.length; j++)
				{
					if(xmlMarkGrp1[idxXml].childNodes[j].nodeType != 1) continue;
					contenutoHtml = xmlMarkGrp1[idxXml].childNodes[j].firstChild.nodeValue;
					contenutoHtmlTab2 = null;
				}*/
				var objImg = eval(poiPinIconType);

				var marker = new GMarker(point, objImg);
				mrkGrp1[mrkGrp1.length] = new Array(marker, contenutoHtml, contenutoHtmlTab2);
			}
			idxXml++;
		}
	}
	if(CallBackFunction != null)
		CallBackFunction();
}
function MostraPOIGruppo1()
{
	for(var i = 0; i < xmlGrp1_TotPOI; i++)
	{
		var idxPOI = i + (xmlGrp1_OldIdxPage * xmlGrp1_TotPOI);
		if(idxPOI < mrkGrp1.length)
			map.removeOverlay(mrkGrp1[idxPOI][0]);
	}

	if(mrkGrp1.length > 0)
	{
		for(var i = 0; i < xmlGrp1_TotPOI; i++)
		{
			var idxPOI = i + (xmlGrp1_IdxPage * xmlGrp1_TotPOI);
			if(idxPOI < mrkGrp1.length)
				map.addOverlay(mrkGrp1[idxPOI][0]);
		}
	}
}

function MostraPOI()
{
	MostraPOIGruppo1();
	MostraPOIGruppo2();
}

function CaricaPagineXMLGruppo2(data, responseCode, Grp, CallBackFunction)
{
	var xml = GXml.parse(data);
	xmlMarkGrp2 = xml.documentElement.getElementsByTagName("marker");
	xmlGrp2_TotPage = parseInt(xmlMarkGrp2.length / xmlGrp2_TotPOI);
	
	if(xmlGrp2_TotPage < (xmlMarkGrp2.length / xmlGrp1_TotPOI))
		xmlGrp2_TotPage++;

	var idxXml = 0;	
	for(var p = 0; p < xmlGrp2_TotPage; p++)
	{
		for (var i = 0; i < xmlGrp2_TotPOI; i++)
		{
			if(idxXml < xmlMarkGrp2.length)
			{
				var point = new GLatLng(parseFloat(xmlMarkGrp2[idxXml].getAttribute("lat")), parseFloat(xmlMarkGrp2[idxXml].getAttribute("lng")));
				var nome = xmlMarkGrp2[idxXml].getAttribute("nome");
				var poiPinIconType = xmlMarkGrp2[idxXml].getAttribute("poiPinIconType");

				var contenutoHtml = '<div class="NomeHotel" style="width: 60px;">' + nome + '</div>';
				var contenutoHtmlTab2 = null;
				/*for (var j = 0; j < xmlMarkGrp2[idxXml].childNodes.length; j++)
				{
					if(xmlMarkGrp2[idxXml].childNodes[j].nodeType != 1) continue;
					contenutoHtml = xmlMarkGrp2[idxXml].childNodes[j].firstChild.nodeValue;
					contenutoHtmlTab2 = null;
				}*/
				var objImg = eval(poiPinIconType);

				var marker = new GMarker(point, objImg);
				mrkGrp2[mrkGrp2.length] = new Array(marker, contenutoHtml, contenutoHtmlTab2);
				//GEvent.addListener(marker, "click", WrapTLabel((mrkGrp2.length-1), nome));
			}
			idxXml++;
		}
	}
	if(CallBackFunction != null)
		CallBackFunction();
}
/*function WrapTLabel(Idx, Nome)
{
	marker = mrkGrp2[Idx][0];

	var label = new TLabel();
	label.id = 'lblTLabel' + Idx;
	label.anchorLatLng = marker.point;
	label.anchorPoint = 'bottomLeft';
	label.markerOffset = new GSize (5,5);
	label.content = '<div class="NomeHotel" style="width: 60px;">' + Nome + '</div>';
	label.percentOpacity = 100;

	map.addTLabel(label);
}*/
function MostraPOIGruppo2()
{
	for(var i = 0; i < xmlGrp2_TotPOI; i++)
	{
		var idxPOI = i + (xmlGrp2_OldIdxPage * xmlGrp2_TotPOI);
		if(idxPOI < mrkGrp2.length)
			map.removeOverlay(mrkGrp2[idxPOI][0]);
	}

	if(mrkGrp1.length > 0)
	{
		for(var i = 0; i < xmlGrp2_TotPOI; i++)
		{
			var idxPOI = i + (xmlGrp2_IdxPage * xmlGrp2_TotPOI);
			if(idxPOI < mrkGrp2.length)
				map.addOverlay(mrkGrp2[idxPOI][0]);
		}
	}
}
//]]>
