/*
var xmlDoc;
var meteAggregateXMLHTTPRequest;
   
function loadMeteAggregateXML(nomeFile)
function meteAggregateRequest(idCheck, nomeFilePortiAggregatiXML)
function removeMeteAggregateLayer()
function loadMeteAggregateAjaxXMLRequest(nomeFile)
function imageURLBySizeMeta(numeroMete)
function loadMeteAggregateAjaxXML()
function loadMeteAggregateTag()
*/
var xmlDoc;
var meteAggregateXMLHTTPRequest = null;


//Carica l'XML delle mete aggregate
function loadMeteAggregateXML(nomeFile)
{
    //codice per IE
    if (window.ActiveXObject)
    {
     xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
     xmlDoc.async=false;
     xmlDoc.load(nomeFile);
     loadMeteAggregateTag();
    }
    //codice per Mozilla, Firefox, Opera, etc.
    else if (document.implementation && document.implementation.createDocument)
    {
     xmlDoc=document.implementation.createDocument("","",null);
     xmlDoc.load(nomeFile);
     xmlDoc.onload=loadPortiTag;
    }
    else
    {
     alert('Il tuo browser non è supportato');
    }
    return false;
}

//Crea la richiesta dell'XMl delle mete aggregate   
function meteAggregateRequest(idCheck, nomeFilePortiAggregatiXML)
{
    myCheck  = getObject(idCheck);
    if (myCheck.checked==true)    
    {
     rit = loadMeteAggregateAjaxXMLRequest(nomeFilePortiAggregatiXML);     
     controllaDimensioni(null);
    }
    else
    {
     removemeteAggregateLayer();
    }
   }

//Rimuove il layer delle mete
function removeMeteAggregateLayer()
{
     pl1 = layers.get('meteAggregateLayer1');
     if (pl1 != undefined)
    	 map.DeleteShapeLayer(pl1.shapes);
 
   	 pl2 = layers.get('meteAggregateLayer2');
     if (pl2 != undefined)
   	  map.DeleteShapeLayer(pl2.shapes);

     pl3 = layers.get('meteAggregateLayer3');
   	 if (pl3 != undefined)
    	 map.DeleteShapeLayer(pl3.shapes);

     pl4 = layers.get('meteAggregateLayer4');
   	 if (pl4 != undefined)
    	 map.DeleteShapeLayer(pl4.shapes);
}   

//Invia la richiesta dell'XMl delle mete aggregate
function loadMeteAggregateAjaxXMLRequest(nomeFile)
{

    meteAggregateXMLHTTPRequest = makeRequest(nomeFile, 'xml');

    if (meteAggregateXMLHTTPRequest.readyState != 4)
     meteAggregateXMLHTTPRequest.onreadystatechange = loadMeteAggregateAjaxXML;   
    else 
     loadMeteAggregateAjaxXML();

}
 
//Torna l'immagine da usare in funzione della grandezza
//dell'aggregatore      
function imageURLBySizeMeta(numeroMete)
{
    if (numeroMete > 5)
     return "/skippercms/resources/img/aggregatori/meta_big.gif"; 
    else if (numeroMete > 2)
     return "/skippercms/resources/img/aggregatori/meta_medium.gif";
    else 
     return "/skippercms/resources/img/aggregatori/meta_small.gif";
}   
     
//Richiede l'XML delle mete aggregate sulla mappa      
function loadMeteAggregateAjaxXML()
{
 if (meteAggregateXMLHTTPRequest.readyState == 4)
   {
     //codice per IE
     removePortiLayer();
     if (window.ActiveXObject)
     {
      xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
      xmlDoc.loadXML(meteAggregateXMLHTTPRequest.responseText);
      loadMeteAggregateTag();
     }
     //codice per Mozilla, Firefox, Opera, etc.
     else 
     {
      var parser=new DOMParser();
      xmlDoc=parser.parseFromString(meteAggregateXMLHTTPRequest.responseText,"text/xml");
      loadMeteAggregateTag();
     }
    }
 return false;
}

//Carica l'XML delle mete aggregate sulla mappa   
function loadMeteAggregateTag()
{
   	 rimuoviLayer('meteAggregateLayer1');
	 rimuoviLayer('meteAggregateLayer2');
	 rimuoviLayer('meteAggregateLayer3');
	 rimuoviLayer('meteAggregateLayer4');	 	 	 

     //Gestione dei tre layer fissi del itinerari
     meteAggregateLayer4 = new SkipperLayer();
     meteAggregateLayer4.maxZoom=6;
     meteAggregateLayer4.minZoom=6;
     meteAggregateLayer3 = new SkipperLayer();
     meteAggregateLayer3.maxZoom=7;
     meteAggregateLayer3.minZoom=7;
     meteAggregateLayer2 = new SkipperLayer();
     meteAggregateLayer2.maxZoom=8;
     meteAggregateLayer2.minZoom=8;
     meteAggregateLayer1 = new SkipperLayer();
     meteAggregateLayer1.maxZoom=0;
     meteAggregateLayer1.minZoom=0;
     
     dimensione_regioni = (xmlDoc.getElementsByTagName("mete_italia")[0].getElementsByTagName("regione").length);


     for(cn=0; cn<dimensione_regioni; cn++)
     {
      /*Scorrimento della regione*/      

      titolo      = (xmlDoc.getElementsByTagName("mete_italia")[0].getElementsByTagName("regione")[cn].getElementsByTagName("denominazione_regione")[0].text);
      latitudes    = (xmlDoc.getElementsByTagName("mete_italia")[0].getElementsByTagName("regione")[cn].getElementsByTagName("latitude")[0].text);
      longitudes   = (xmlDoc.getElementsByTagName("mete_italia")[0].getElementsByTagName("regione")[cn].getElementsByTagName("longitude")[0].text);
      priorityId  = 3;
      descrizione = '';
      dimensione_province = (xmlDoc.getElementsByTagName("mete_italia")[0].getElementsByTagName("regione")[cn].getElementsByTagName("provincia").length);
      numero_mete_regione=0;

      for (cn_prov=0; cn_prov < dimensione_province; cn_prov++)
      {
       titolo_prov      = (xmlDoc.getElementsByTagName("mete_italia")[0].getElementsByTagName("regione")[cn].getElementsByTagName("provincia")[cn_prov].getElementsByTagName("nome_provincia")[0].text);
       latitude_prov    = (xmlDoc.getElementsByTagName("mete_italia")[0].getElementsByTagName("regione")[cn].getElementsByTagName("provincia")[cn_prov].getElementsByTagName("latitude")[0].text);
       longitude_prov   = (xmlDoc.getElementsByTagName("mete_italia")[0].getElementsByTagName("regione")[cn].getElementsByTagName("provincia")[cn_prov].getElementsByTagName("longitude")[0].text);
       descrizione_prov = '';
       dimensione_comuni = (xmlDoc.getElementsByTagName("mete_italia")[0].getElementsByTagName("regione")[cn].getElementsByTagName("provincia")[cn_prov].getElementsByTagName("comune").length);

       numero_mete_provincia = 0;       
       //Scorrimento comuni
       for (cn_comuni=0; cn_comuni < dimensione_comuni; cn_comuni++)
       {
        titolo_comuni      = (xmlDoc.getElementsByTagName("mete_italia")[0].getElementsByTagName("regione")[cn].getElementsByTagName("provincia")[cn_prov].getElementsByTagName("comune")[cn_comuni].getElementsByTagName("nome_comune")[0].text);
        latitude_comuni    = (xmlDoc.getElementsByTagName("mete_italia")[0].getElementsByTagName("regione")[cn].getElementsByTagName("provincia")[cn_prov].getElementsByTagName("comune")[cn_comuni].getElementsByTagName("latitude")[0].text);
        longitude_comuni   = (xmlDoc.getElementsByTagName("mete_italia")[0].getElementsByTagName("regione")[cn].getElementsByTagName("provincia")[cn_prov].getElementsByTagName("comune")[cn_comuni].getElementsByTagName("longitude")[0].text);
        id_comuni          = (xmlDoc.getElementsByTagName("mete_italia")[0].getElementsByTagName("regione")[cn].getElementsByTagName("provincia")[cn_prov].getElementsByTagName("comune")[cn_comuni].getElementsByTagName("id_comune")[0].text);
        comuni_pub         = (xmlDoc.getElementsByTagName("mete_italia")[0].getElementsByTagName("regione")[cn].getElementsByTagName("provincia")[cn_prov].getElementsByTagName("comune")[cn_comuni].getElementsByTagName("comune_pubblicato")[0].text);        
        descrizione_comuni = '';
        dimensione_porti = (xmlDoc.getElementsByTagName("mete_italia")[0].getElementsByTagName("regione")[cn].getElementsByTagName("provincia")[cn_prov].getElementsByTagName("comune")[cn_comuni].getElementsByTagName("meta").length);
        numero_mete_comune = 0;

        //--Scorrimento porti

        for (cn_porti=0; cn_porti < dimensione_porti; cn_porti++)
        {
         titolo_mete      = (xmlDoc.getElementsByTagName("mete_italia")[0].getElementsByTagName("regione")[cn].getElementsByTagName("provincia")[cn_prov].getElementsByTagName("comune")[cn_comuni].getElementsByTagName("meta")[cn_porti].getElementsByTagName("nome_meta")[0].text);
         id_meta          = (xmlDoc.getElementsByTagName("mete_italia")[0].getElementsByTagName("regione")[cn].getElementsByTagName("provincia")[cn_prov].getElementsByTagName("comune")[cn_comuni].getElementsByTagName("meta")[cn_porti].getElementsByTagName("id_meta")[0].text);
         latitude_mete    = (xmlDoc.getElementsByTagName("mete_italia")[0].getElementsByTagName("regione")[cn].getElementsByTagName("provincia")[cn_prov].getElementsByTagName("comune")[cn_comuni].getElementsByTagName("meta")[cn_porti].getElementsByTagName("latitude")[0].text);
         longitude_mete   = (xmlDoc.getElementsByTagName("mete_italia")[0].getElementsByTagName("regione")[cn].getElementsByTagName("provincia")[cn_prov].getElementsByTagName("comune")[cn_comuni].getElementsByTagName("meta")[cn_porti].getElementsByTagName("longitude")[0].text);
         meta_pub         = (xmlDoc.getElementsByTagName("mete_italia")[0].getElementsByTagName("regione")[cn].getElementsByTagName("provincia")[cn_prov].getElementsByTagName("comune")[cn_comuni].getElementsByTagName("meta")[cn_porti].getElementsByTagName("meta_pubblicata")[0].text);         
         descrizione_meta = (xmlDoc.getElementsByTagName("mete_italia")[0].getElementsByTagName("regione")[cn].getElementsByTagName("provincia")[cn_prov].getElementsByTagName("comune")[cn_comuni].getElementsByTagName("meta")[cn_porti].getElementsByTagName("descrizione")[0].text);                  

         preferenze       = (xmlDoc.getElementsByTagName("mete_italia")[0].getElementsByTagName("regione")[cn].getElementsByTagName("provincia")[cn_prov].getElementsByTagName("comune")[cn_comuni].getElementsByTagName("meta")[cn_porti].getElementsByTagName("numero_preferenze")[0].text)
         categorie        = (xmlDoc.getElementsByTagName("mete_italia")[0].getElementsByTagName("regione")[cn].getElementsByTagName("provincia")[cn_prov].getElementsByTagName("comune")[cn_comuni].getElementsByTagName("meta")[cn_porti].getElementsByTagName("categorie")[0].text)      
       
         titoloUrl = '<a href="schedaMeta.do?method=show&idContent=' + id_meta + '">' + titolo_mete + '</a><br />';
         
         if (meta_pub == "1")
         {          
          descrizioneM = ''; 
          if (preferenze != "0" )
           descrizioneM += 'preferita da ' + preferenze + ' utenti.&nbsp;&nbsp;';       
     
          descrizioneM += categorie + '<br />';
         
         
          descrizione_mete = descrizioneM;//'meta <a href="/schedaMeta.do?method=show&idContent='+id_meta+'">' + titolo_mete;

         /* if (comuni_pub == "1")
           descrizione_mete += '</a> nel comune di <a href="schedaInfoTuristiche.do?method=show&idContent=' + id_comuni + '" >' + titolo_comuni + '</a>';
          else
           descrizione_mete += '</a> nel comune di ' + titolo_comuni;        */
          
          priorityId_porti  = 3;
          URLImmagine_mete = imageURLBySizeMeta(1);          
          
          descrizione_comuni += titoloUrl + '<br />' + descrizione_mete + '<br />';
                    
          descrizione_mete = '<div  style="height:150px; overflow : auto; width:180px;">' + descrizione_mete + '</div>';
          var myMetaPin = AddPushPinShape(latitude_mete, longitude_mete, URLImmagine_mete, titoloUrl, descrizione_mete);
          meteAggregateLayer1.shapes.AddShape(myMetaPin);
         }
        } 
        descrizione_prov += descrizione_comuni;
        numero_mete_comune = dimensione_porti;        
        numero_mete_provincia += numero_mete_comune;
        priorityId_comuni  = 3;
        URLImmagine_comuni = imageURLBySizeMeta(numero_mete_comune);
        titolo_comuni += '(' + numero_mete_comune + ')';
        if (numero_mete_comune > 0)
        {
         descrizione_comuni = '<div  style="height:150px; overflow : auto; width:180px;">' + descrizione_comuni + '</div>';
         var myComunePin = AddPushPinShape(latitude_comuni, longitude_comuni, URLImmagine_comuni, titolo_comuni, descrizione_comuni);
         meteAggregateLayer2.shapes.AddShape(myComunePin);
        }
       } 
       numero_mete_regione += numero_mete_provincia;    
       titolo_prov += '(' + numero_mete_provincia + ')';
       priorityId_prov  = 3;
       descrizione += descrizione_prov;
       URLImmagine_prov = imageURLBySizeMeta(numero_mete_provincia);
       if (numero_mete_provincia > 0)
       {
        descrizione_prov = '<div  style="height:150px; overflow : auto; width:180px;">' + descrizione_prov + '</div>';
        var myProvinciaPin = AddPushPinShape(latitude_prov, longitude_prov, URLImmagine_prov, titolo_prov, descrizione_prov);
        meteAggregateLayer3.shapes.AddShape(myProvinciaPin);
       }
     }
     titolo += '(' + numero_mete_regione + ')';
     titolo = '<div class="sfondo_titolo_aggregatore">' + titolo + '</div>'
     URLImmagine = imageURLBySizeMeta(numero_mete_regione);
     if (numero_mete_regione >  0)
     {
      descrizione = '<div  style="width:300px; height:150px; overflow : auto; width:180px;">' + descrizione + '</div>';
      var myRegionePin = AddPushPinShape(latitudes, longitudes, URLImmagine, titolo, descrizione);
      meteAggregateLayer4.shapes.AddShape(myRegionePin);
     }
    }
     	 
	 map.AddShapeLayer(meteAggregateLayer1.shapes);
	 map.AddShapeLayer(meteAggregateLayer2.shapes);
	 map.AddShapeLayer(meteAggregateLayer3.shapes);	 
	 map.AddShapeLayer(meteAggregateLayer4.shapes);	 	 
	 meteAggregateLayer1.shapes.Show(); 
 	 meteAggregateLayer2.shapes.Show(); 
 	 meteAggregateLayer3.shapes.Show(); 
 	 meteAggregateLayer4.shapes.Show(); 
	
	
	 //Aggiunta/aggiornamento layer
	 aggiungiLayer('meteAggregateLayer1', meteAggregateLayer1);
	 aggiungiLayer('meteAggregateLayer2', meteAggregateLayer2);
	 aggiungiLayer('meteAggregateLayer3', meteAggregateLayer3);
	 aggiungiLayer('meteAggregateLayer4', meteAggregateLayer4);	 	 	 

     controllaDimensioni();
}
   

