var nomeLocalitaValore = null;
var creaLocaliteForm = null; 
var localitaCreataAdv = null; 
var localitaCreataHTTPRequest = null;
var cercaLocaliteHTTPRequest = null;
var cercaLocalitaLayer = null;
var saveLocaliteHTTPRequest = null;
var controllaLocalitaHTTPRequest = null;

//Carica/nasconde le localite sulla mappa
var localiteVisualizzate = false;

function toggleLocalite()
{
 removeAllCheckedExcept('localite');
 if (localiteVisualizzate)
 {
  //DisattivaAllLocaliteIco();
  removeLocalite();
 }
 else
 {
   localiteVisualizzate = true;
   //attivaAllLocaliteIco(); 
   //rigaico.className='td_grigio_sel';
   //localitetdband.className="nascosto";  
   //localitetd.className="td_grigio_sel";
   //localitetdband.className="td_grigio_sel";  
   //vediLocalite();
   baseUri = '/transf.do?method=transformLocaliteAggregateXML';
   chkR = checkTipiLocaliteSelezionati();
    
   //if (chkR != "")
   //{
    uri = baseUri; //+ "&chk=" +  chkR;
    registerLocaliteLayer(uri);
    controllaDimensioni(null); 
   //}
  }
}

 function checkTipiLocaliteSelezionati()
 {
  chkR = "";
   
   c = getObject('locchk6');
   if (c.checked==true)
    chkR += " 1";
  // alert ("1" + c.checked);
   c = getObject('locchk7');
   if (c.checked==true)
    chkR += " 2"; 
  // alert ("2" + c.checked);
   c = getObject('locchk8');
   if (c.checked==true)
    chkR += " 3";
  // alert ("3" + c.checked);    
   c = getObject('locchk9');
   if (c.checked==true)
    chkR += " 4";
  // alert ("4" + c.checked);
   c = getObject('locchk10');
   if (c.checked==true)
    chkR += " 5";      
  // alert ("5" + c.checked); 
   c = getObject('locchk11');
   if (c.checked==true)
    chkR += " 6";    
  // alert ("6" + c.checked);
   return chkR;
 }

 function registerLocaliteLayer(uri)
   {
     localiteLayer = new VEShapeLayer();
     localiteLayer1 = new SkipperLayer();

     localiteLayer1.maxZoom=6;
     localiteLayer1.minZoom=2;
     localiteLayer1.loaded=false;
     localiteLayer1.loadfunction="loadLocaliteXMLRequest('" + uri + "&livello=1', 'localiteLayer');";

     localiteLayer2 = new SkipperLayer();
     localiteLayer2.maxZoom=8;
     localiteLayer2.minZoom=7;
     localiteLayer2.loaded=false;
     localiteLayer2.loadfunction="loadLocaliteXMLRequest('" + uri + "&livello=2', 'localiteLayer');";

     localiteLayer3 = new SkipperLayer();
     localiteLayer3.maxZoom=11;
     localiteLayer3.minZoom=9;
     localiteLayer3.loaded=false;
     localiteLayer3.loadfunction="loadLocaliteXMLRequest('" + uri + "&livello=3', 'localiteLayer');";

     localiteLayer4 = new SkipperLayer();
     localiteLayer4.maxZoom=17;
     localiteLayer4.minZoom=12;
     localiteLayer4.loaded=false;
     localiteLayer4.loadfunction="loadLocaliteXMLRequest('" + uri + "&livello=3', 'localiteLayer');";


     aggiungiMapLayer('localiteLayer', localiteLayer);     

     aggiungiLayer('localiteLayer1', localiteLayer1);
     aggiungiLayer('localiteLayer2', localiteLayer2);
     aggiungiLayer('localiteLayer3', localiteLayer3);
     aggiungiLayer('localiteLayer4', localiteLayer4);                    
   }

function loadLocaliteXMLRequest(nomeFile)
   {
    nomeFile += "&chk=" +  checkTipiLocaliteSelezionati();
    skipperLayerNew = getMapLayer('localiteLayer');
    if (skipperLayerNew != null)
     {
	    skipperLayerNew.Hide();
	    localiteAggregateXMLHTTPRequest = makeRequest(nomeFile, 'xml');
	    addLoadingPushPin('loadLocaliteXMLRequest');
	    if (localiteAggregateXMLHTTPRequest.readyState != 4)
	     localiteAggregateXMLHTTPRequest.onreadystatechange = loadLocaliteXML;   
	    else 
	     loadLocaliteXML();
	 }    
   }
   
  var xmlDocLocalite=null;
   
  function loadLocaliteXML()
  {
  if (localiteAggregateXMLHTTPRequest != null)
    if (localiteAggregateXMLHTTPRequest.readyState == 4)
    {
     //codice per IE
     if (window.ActiveXObject)
     {
       xmlDocLocalite=new ActiveXObject("Microsoft.XMLDOM");
       xmlDocLocalite.loadXML(localiteAggregateXMLHTTPRequest.responseText);
       rit = loadXMLPushPinTag('localiteLayer', xmlDocLocalite);
     }
     //codice per Mozilla, Firefox, Opera, etc.
     else 
     {
      var parser=new DOMParser();
      xmlDocLocalite=parser.parseFromString(localiteAggregateXMLHTTPRequest.responseText,"text/xml");
      rit = loadXMLPushPinTag('localiteLayer', xmlDocLocalite);
   	 
     }
     removeLoadingPushPin('loadLocaliteXMLRequest');   
     removeLoadingPushPin('portiLoading');
     myLayer = getMapLayer('localiteLayer');
  try{
     
     map.AddShapeLayer(myLayer);
   	
	// myLayer.Show();    
	 }
   catch(e)
   {
    //alert(e.message);
   }
  }
    
    
   return false; 
  }



function DisattivaAllLocaliteIco()
{
 for(i=7;i<11;i++)
 {
 	idTipo = "imgLocalita_" + i;
	img_o = getObject(idTipo);
 	img_o.src = "/skippercms/resources/img/tipologie_mete/" + i + ".jpg";
 	idTipo1 = "chk" + i;
 	o = getObject(idTipo1);
 	o.checked=false;  
 }
}
 
 function attivaAllLocaliteIco()
{
 for(i=7;i<11;i++)
 {
 	idTipo = "imgLocalita_" + i;
 	img_o = getObject(idTipo);
 	img_o.src = "/skippercms//resources/img/tipologie_mete/" + i + "_c.jpg";
 	idTipo1 = "chk" + i;
 	o = getObject(idTipo1);
 	o.checked=true;  
 }
}
//Invia la richiesta di caricamente del form di creazione della localita
function creaLocaliteFormRequest()
{
 la = getObject('input_latitude');
 lo = getObject('input_longitude');

 vettoreParametri = new Array();

 vettoreParametri[0] = "lat=" + la.value;   
 vettoreParametri[1] = "lon=" + lo.value;    

 /*creaLocaliteFormHTTPRequest = makeRequest('/localitaManager.do?method=loadForm', 'html', vettoreParametri);
 if (creaLocaliteFormHTTPRequest.readyState != 4)
  creaLocaliteFormHTTPRequest.onreadystatechange = loadCreaLocaliteFormHTML;   
 else 
  loadCreaLocaliteFormHTML();*/
}

//Carica il form di creazione di una localita
function loadCreaLocaliteFormHTML()
{
 if (creaLocaliteFormHTTPRequest != null)
 if (creaLocaliteFormHTTPRequest.readyState == 4)
 {
  serviceCommand = creaLocaliteFormHTTPRequest.responseText;
  
  l1min = getObject('input_latitude_min');
  l1sec = getObject('input_latitude_sec');
  l1gradi = getObject('input_latitude_gradi');
  l2min = getObject('input_longitude_min');
  l2sec = getObject('input_longitude_sec');
  l2gradi = getObject('input_longitude_gradi');

  l1min.disabled="disabled";
  l2min.disabled="disabled";  
  l1sec.disabled="disabled";
  l2sec.disabled="disabled";
  l1gradi.disabled="disabled";
  l2gradi.disabled="disabled";

  map.DetachEvent("onclick", aggiornaLL);
 
  creaLocaliteForm = AddMyControl('none', 'CreaLocalite_Form', serviceCommand, 0, 0, '260px','600px');      
  o1 = getObject('latitudine_localita');
  o2 = getObject('input_latitude');	      
  if (o1!=null)
     if (o2!=null)
      o1.value = o2.value;
  o1 = getObject('longitudine_localita');
  o2 = getObject('input_longitude');	      
  if (o1!=null)
   if (o2!=null)
     o1.value = o2.value;
  removeLoadingPushPin('creaLocaliteForm');
  creaLocaliteFormHTTPRequest = null;   
 }    
}


//Rimuove il form di creazione delle localite
//Rimuove il layer delle localite trovate  
function removeLocaliteTrovateLayer()
{
 pl1 = layers.get('localiteTrovateLayer1');
 if (pl1 != undefined)
 map.DeleteShapeLayer(pl1.shapes);
}  

//Fa il toggle del pannello di posizionamento (latitudine e longitudine)
//della nuova localita da creare
function toggleInsertLatLong()
{
 insLL = getObject('inserisciLatLongDiv');
 if (insLL.className == "visibile")
 {
  insLL.className = "nascosto";
  removeCreaLocaliteForm();
  try{
  map.DetachEvent("onclick", aggiornaLL);}
  catch(e)
  {}
 }
 else
 {
  insLL.className = "visibile";
  document.onmousemove = getMouseXY;
  map.AttachEvent("onclick", aggiornaLL);
//  aggiornaLatLong();
 }
}

function removeCreaLocaliteForm()
{
  if(creaLocaliteForm != null)
  {
   RemoveMyControl(creaLocaliteForm);
   creaLocaliteForm = null;
   removeCreaLocalitaLayer();
   l1min = getObject('input_latitude_min');
   l1sec = getObject('input_latitude_sec');
   l1gradi = getObject('input_latitude_gradi');
   l2min = getObject('input_longitude_min');
   l2sec = getObject('input_longitude_sec');
   l2gradi = getObject('input_longitude_gradi');

   l1min.disabled=false;
   l2min.disabled=false;  
   l1sec.disabled=false;
   l2sec.disabled=false;
   l1gradi.disabled=false;
   l2gradi.disabled=false;   
  }  
}


//Rimuove il pannello di posizionamento (latitudine e longitudine)
//della nuova localita da creare
function removeInsertLatLong()
{
 insLL = getObject('inserisciLatLongDiv');
 
  insLL.className = "nascosto";
  removeCreaLocaliteForm();
  try{
  map.DetachEvent("onclick", aggiornaLL);}
  catch(e)
  {}
}

//Aggiorna latitudine e longitudine in base al punto in cui
//si è fatto click col tasto destro del mouse
/*
function aggiornaLL(e)
{
 if(e.rightMouseButton)
 {
     aggiornaLatLong();
     
	 removeCreaLocalitaLayer(); 
	 creaLocalitaLayer = new SkipperLayer();
	 creaLocalitaLayer.maxZoom=17;
	 creaLocalitaLayer.minZoom=1;

//     var myLocalitaPin = AddPushPinShape(ll.Latitude, ll.Longitude, "/skippercms/resources/img/varie/ancora_bianca.gif", "localita da creare", "localita in fase di creazione");
//	 creaLocalitaLayer.shapes.AddShape(myLocalitaPin); 
//	 map.AddShapeLayer(creaLocalitaLayer.shapes);	 	 
//     aggiungiLayer('creaLocalitaLayer', creaLocalitaLayer);
//	 creaLocalitaLayer.shapes.Show();
//	 posizionaMetaDaCreare();
	 
//	 creaLocaliteFormRequest();
   }	 
}
*/

/*
function aggiornaLatLong()
{
    l1 = getObject('input_latitude');
    l2 = getObject('input_longitude'); 
 
	 x = (tempX - map.GetLeft());
	 y = (tempY - map.GetTop());
	 try{
	  var pixello  = new VEPixel(parseFloat(x), parseFloat(y));
	  ll = map.PixelToLatLong(pixello);
	  }catch(e){}
 
	 l1.value=ll.Latitude;
	 l2.value=ll.Longitude; 

	 l1min = getObject('input_latitude_min');
	 l1sec = getObject('input_latitude_sec');
	 l1gradi = getObject('input_latitude_gradi');

     l1gradi.value = convertCoordinateToDeegreeGradi(ll.Latitude);          
     l1min.value = convertCoordinateToDeegreeMin(ll.Latitude);
     l1sec.value = convertCoordinateToDeegreeSec(ll.Latitude);

	 l2min = getObject('input_longitude_min');
	 l2sec = getObject('input_longitude_sec');
	 l2gradi = getObject('input_longitude_gradi');
	 

     l2gradi.value = convertCoordinateToDeegreeGradi(ll.Longitude);          
     l2min.value = convertCoordinateToDeegreeMin(ll.Longitude);
     l2sec.value = convertCoordinateToDeegreeSec(ll.Longitude);
}
*/

//Rimuove il layer di creazione della localita col simbolo della localita
//nel punto selezionato dall'utente
function removeCreaLocalitaLayer()
{
 rimuoviLayer('creaLocalitaLayer');
}   

//Nel pannello di creazione della nuova localita, setta la tipologia selezionata
function settaTipoLocalita(id)
{
 idTipo = "locchk" + id;
 o = getObject(idTipo);
 if (o.checked==true)
 {
  o.checked = false;
  idImg = "imgLocalita_" + id;
  img_o = getObject(idImg);
  img_o.src = "/skippercms/resources/img/tipologie_mete/" + id + ".jpg";
 } else
 {
  o.checked = true;  
  idImg = "imgLocalita_" + id;
  img_o = getObject(idImg);
  img_o.src = "/skippercms/resources/img/tipologie_mete/" + id + "_c.jpg";  
 }
}

//Rimuove tutte le localite dalla mappa
function removeLocalite()
{
 localiteVisualizzate = false;
 rimuoviMapLayer('localiteLayer');

 rimuoviLayer('localiteLayer1');
 rimuoviLayer('localiteLayer2');
 rimuoviLayer('localiteLayer3');          
 rimuoviLayer('localiteLayer4');   

  RemoveMyControl(localitaCreataAdv);
  creaLocaliteForm = null;
}

//Visualizza tutte le localite sulla mappa in funzione
//delle tipologie selezionate
function vediLocalite()
{
   
   baseUri = '/transf.do?method=transformDestinationXML';
   chkR = "";
   
   c = getObject('locchk6');
   if (c.checked==true)
    chkR += " 1";
   
   alert ("1" + chkR);
   
   c = getObject('locchk7');
   if (c.checked==true)
    chkR += " 2"; 
   alert ("2" + chkR);


   c = getObject('locchk8');
   if (c.checked==true)
    chkR += " 3";
   alert ("3" + chkR);
       
   c = getObject('locchk9');
   if (c.checked==true)
    chkR += " 4";
   alert ("4" + chkR);
   
   c = getObject('locchk10');
   if (c.checked==true)
    chkR += " 5";        
   alert ("5" + chkR);
    
   c = getObject('locchk11');
   if (c.checked==true)
    chkR += " 6";    
   alert ("6" + chkR);
       
   if (chkR != "")
   {
    uri = baseUri + "&chk=" +  chkR;
    cercaLocaliteHTTPRequest = makeRequest(uri, 'xml');
    if (cercaLocaliteHTTPRequest.readyState != 4)
     cercaLocaliteHTTPRequest.onreadystatechange = loadCercaLocaliteXML;   
    else 
     loadCercaLocaliteXML();
    uri = '/transf.do?method=transformLocaliteAggregateXML' +  "&chk=" +  chkR;
    //rit = loadLocaliteAggregateAjaxXMLRequest(uri); 
   }
   else
   {
    alert("non hai selezionato nessuna tipologia di localita!");
    removeLocaliteTrovateLayer();
   }
}

//Invia la richista ajax di salvataggio di una localita
function saveLocalitaAjax()
{
 if (saveLocaliteHTTPRequest != null)
  if (saveLocaliteHTTPRequest.readyState == 4)
   {
     //codice per IE
     if (window.ActiveXObject)
     {
      xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
      xmlDoc.loadXML(saveLocaliteHTTPRequest.responseText);
      removeCreaLocaliteForm();
      localita_id = (xmlDoc.getElementsByTagName("localita_id")[0].text);
      loadLocalitaCreataAdv(localita_id);      
     }
     //codice per Mozilla, Firefox, Opera, etc.
     else 
     {
      var parser=new DOMParser();
      xmlDoc=parser.parseFromString(saveLocaliteHTTPRequest.responseText,"text/xml");
      removeCreaLocaliteForm();
      localita_id = (xmlDoc.getElementsByTagName("localita_id")[0].text);
      loadLocalitaCreataAdv(localita_id);      
     }
     removeLoadingPushPin('salvaLocalita');
     saveLocaliteHTTPRequest=null;
    }
  return false;
 }

//Carica il pannello dei risultati di ricerca delle localite
function loadCercaLocaliteXML()
{
 if (cercaLocaliteHTTPRequest != null)
  if (cercaLocaliteHTTPRequest.readyState == 4)
   {
     //codice per IE
     if (window.ActiveXObject)
     {
      xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
      xmlDoc.loadXML(cercaLocaliteHTTPRequest.responseText);
      loadLocaliteTag();
     }
     //codice per Mozilla, Firefox, Opera, etc.
     else 
     {
      var parser=new DOMParser();
      xmlDoc=parser.parseFromString(cercaLocaliteHTTPRequest.responseText, "text/xml");
      loadLocaliteTag();
     }
     cercaLocaliteHTTPRequest = null;
    }
    return false;
   }

//Parserizza l'XML delle localite
function loadLocaliteTag()
{
     addLoadingPushPin('localiteSingoleTag');
     removeLocaliteTrovateLayer();
    
     //Gestione dei layer delle localite
     localiteTrovateLayer1 = new SkipperLayer();
     localiteTrovateLayer1.maxZoom=11;
     localiteTrovateLayer1.minZoom=9;
     
     dimensione_localite = (xmlDoc.getElementsByTagName("localite")[0].getElementsByTagName("localita").length);
 
     for(cn=0; cn < dimensione_localite; cn++)
     {
      /*Scorrimento della regione*/      

      titolo      = (xmlDoc.getElementsByTagName("localite")[0].getElementsByTagName("localita")[cn].getElementsByTagName("nome")[0].text);
      latitudes   = (xmlDoc.getElementsByTagName("localite")[0].getElementsByTagName("localita")[cn].getElementsByTagName("latitude")[0].text);
      longitudes  = (xmlDoc.getElementsByTagName("localite")[0].getElementsByTagName("localita")[cn].getElementsByTagName("longitude")[0].text);
      idLocalita  = (xmlDoc.getElementsByTagName("localite")[0].getElementsByTagName("localita")[cn].getElementsByTagName("id_localita")[0].text); 
           
      preferenze = (xmlDoc.getElementsByTagName("localite")[0].getElementsByTagName("localita")[cn].getElementsByTagName("numero_preferenze")[0].text)
      categorie  = (xmlDoc.getElementsByTagName("localite")[0].getElementsByTagName("localita")[cn].getElementsByTagName("categorie")[0].text)      
   
      priorityId  = 3;
      //descrizione = (xmlDoc.getElementsByTagName("localite")[0].getElementsByTagName("localita")[cn].getElementsByTagName("descrizione")[0].text);
      titoloUrl = '<div class="sfondo_titolo_aggregatore_localita"><a href="/schedaLocalita.do?method=show&idContent=' + idLocalita + '">' + titolo + '</a></div><br />';
       
      descrizione = '<div  style="height:150px; overflow : auto; width:180px;">'; 
      if (preferenze != "0" )
       descrizione += 'preferita da ' + preferenze + ' utenti.&nbsp;&nbsp;';       
     
      descrizione += categorie + '</div><br />';
     
      URLImmagine = '/skippercms//resources/img/varie/ancora.gif';
      var myLocalitaPin = AddPushPinShape(latitudes, longitudes, URLImmagine, titoloUrl, descrizione);
      localiteTrovateLayer1.shapes.AddShape(myLocalitaPin);
    }

     if (localiteTrovateLayer1 != null)
     {
      map.AddShapeLayer(localiteTrovateLayer1.shapes);
      localiteTrovateLayer1.shapes.Show(); 
     } 

     //Aggiunta/aggiornamento layer
     aggiungiLayer('localiteTrovateLayer1', localiteTrovateLayer1);

     controllaDimensioni();
     removeLoadingPushPin('localiteTrovate');
     removeLoadingPushPin('localiteSingoleTag');
}

//Rimuove il pannello di avviso
function removeLocalitaAdv()
{
 RemoveMyControl(localitaCreataAdv);      
}


