
// Array contenente gli ID dei layers

    var layerID = new Array();
	
// Array contenente i nomi dei layers
	
	var layerName = new Array();

// Array contenente il tipo di layer
	
	var layerType =  new Array();
	
// Array contenente i campi da visualizzare per ogni layer

    var selFieldList = new Array(); 
		
// Array con valori booleani per la visualizzazione dei layer nel tocFrame

    var showLayerID = new Array(); 
	
// Array con valori booleani per l' interrogazione dei layer
	
	var featureLayer = new Array(); 

// Array con gli alias dei layer
	
	var aliasLayer = new Array(); 
		
// Array con valori booleani per la rendere visibili i layer

    var layerVisible = new Array(); 
	
// Array con valori booleani per visualizzare i risultati dopo una query

	var layerHighlighted = new Array(); 
	
// Contiene l'indice del layer attivo

    var activeLayerIndex = 0; 
	
// Stringa in cui sono elencati i layer visibili

    var strLyrVisibile = "";
	
// variabile contenente il numero dei layers nel file AXL
	
    var numLayerField;
	
// variabile per l'attivazione della personalizzazione
	
	var personalizzaLyr = true;
	
// Se  swapSelect = true e possibile impostare per ogni layer i relativi campi
	
    var swapSelect = true;
	
// Se 	useAlias = true nella risposta verranno visualizzati gli alias

	var useAlias = true;
	
// Prende l'ID del layer attivo. Settato in setActiveLayer	

    var ID = "";
	
// Prende la lista dei campi da interrogare relativi al selFieldList[activeLayerIndex].

	var subfields = "";
	
//Prende il type  del layer attivo	
	var lyrThematization = "";
	



//Definisce gli arrays layerVisible, showLayerID ,featureLayer, aliasLayer,
// layerHighlighted,selFieldList . Chiamata  in   proc essXML nel  get_service_info response 

function setUpLayers(){
  
  numLayerField = layerID.length;
  
  if (personalizzaLyr){
  
    	
	layerVisible[0]=false;//DTM
	layerVisible[1]=false;//toponimi
	layerVisible[2]=false;//conf_com
	layerVisible[3]=true;//st1
	layerVisible[4]=false;//uso_suolo
	layerVisible[5]=false;//pee_stor_att
	layerVisible[6]=false;//sic
	layerVisible[7]=false;//ris_nat
	layerVisible[8]=false;//risp_superstrada
	layerVisible[9]=false;//vulnerabilità
	layerVisible[10]=false;//cp_idr
	layerVisible[11]=false;//cp_geo
	layerVisible[12]=false;//tessitura
	layerVisible[13]=false;//terrazzi
	layerVisible[14]=false;//st
	layerVisible[15]=true;//sbt
	layerVisible[16]=true;//utoe
	layerVisible[17]=true;//pert
	layerVisible[18]=false;//ctr2000_taglio
	layerVisible[19]=false;//ctr10000_taglio
	layerVisible[20]=false;//ctr10000
	layerVisible[21]=false;//ctr25000
	layerVisible[22]=false;//cenuc
	//stradario
	layerVisible[23]=false;
	layerVisible[24]=false;
	layerVisible[25]=false;
	layerVisible[26]=false;
	layerVisible[27]=false;
	layerVisible[28]=false;
	layerVisible[29]=false;
	
	// layer che devono apparire nel toc.htm
    showLayerID[0]=true;
	showLayerID[1]=false;
	showLayerID[2]=false;
	showLayerID[3]=true;
	showLayerID[4]=true;
	showLayerID[5]=false;
	showLayerID[6]=true;
	showLayerID[7]=true;
	showLayerID[8]=true;
	showLayerID[9]=true;
	showLayerID[10]=true;
	showLayerID[11]=true;
	showLayerID[12]=true;
	showLayerID[13]=true;
	showLayerID[14]=false;
	showLayerID[15]=true;
	showLayerID[16]=true;
	showLayerID[17]=true;
	showLayerID[18]=false;
	showLayerID[19]=false;
	showLayerID[20]=false;
	showLayerID[21]=false;
	showLayerID[22]=false;
	//stradario
	showLayerID[23]=true;
	showLayerID[24]=true;
	showLayerID[25]=true;
	showLayerID[26]=true;
	showLayerID[27]=false;
	showLayerID[28]=false;
	showLayerID[29]=false;
	
	// layer che possono essere interrogati nel select box
	featureLayer[0] = false;
	featureLayer[1] = false;
	featureLayer[2] = false;
	featureLayer[3] = true;
	featureLayer[4] = true;
	featureLayer[5] = true;
	featureLayer[6] = true;
	featureLayer[7] = true;
	featureLayer[8] = true;
	featureLayer[9] = true;
	featureLayer[10] = true;
	featureLayer[11] = true;
	featureLayer[12] = true;
	featureLayer[13] = true;
	featureLayer[14] = false;
	featureLayer[15] = true;
	featureLayer[16] = true;
	featureLayer[17] = true;
	featureLayer[18] = false;
	featureLayer[19] = false;
	featureLayer[20] = false;
	featureLayer[21] = false;
	featureLayer[22] = false;
	//stradario
	featureLayer[23]=true;
	featureLayer[24]=true;
	featureLayer[25]=true;
	featureLayer[26]=true;
	featureLayer[27]=false;
	featureLayer[28]=false;
	featureLayer[29]=false;
	
	
	layerHighlighted[0] = false;
	layerHighlighted[1] = false;
	layerHighlighted[2] = false;
	layerHighlighted[3] = true;
	layerHighlighted[4] = true;
	layerHighlighted[5] = true;
	layerHighlighted[6] = true;
	layerHighlighted[7] = true;
	layerHighlighted[8] = true;
	layerHighlighted[9] = true;
	layerHighlighted[10] = true;
	layerHighlighted[11] = true;
	layerHighlighted[12] = true;
	layerHighlighted[13] = true;
	layerHighlighted[14] = false;
	layerHighlighted[15] = true;
	layerHighlighted[16] = true;
	layerHighlighted[17] = true;
	layerHighlighted[18] = false;
	layerHighlighted[19] = false;
	layerHighlighted[20] = false;
	layerHighlighted[21] = false;
	layerHighlighted[22] = false;
	//stradario
	layerHighlighted[23]=true;
	layerHighlighted[24]=true;
	layerHighlighted[25]=true;
	layerHighlighted[26]=true;
	layerHighlighted[27]=false;
	layerHighlighted[28]=false;
	layerHighlighted[29]=false;
	
	//
	
	
	
  }else{
	for (var i=0; i<numLayerField; i++){
	  layerVisible[i]=true;
	  showLayerID[i]=true;
	  featureLayer[i]= true;
	  layerHighlighted[i]=true;
	}
  }
  
  if (swapSelect == false){
    for (var i=0; i<numLayerField; i++){
	  selFieldList[i]="#ALL#"; 
	}
  
  }else{
    
	// Inserire il nome dei campi da visualizzare(interrogare)  per ogni layer.  

	selFieldList[0]="#ALL#";
	selFieldList[1]="DESCRIZION #SHAPE# #ID#";
	selFieldList[2]="#ALL#";
	selFieldList[3]="AREA PERIMETER ST_NOM COD_NTA #SHAPE# #ID# ";
	selFieldList[4]="AREA PERIMETER USO_NOM COD_NTA #SHAPE# #ID#";
	selFieldList[5]="#ALL#";
	selFieldList[6]="AREA PERIMETER SIC_NOM COD_NTA #SHAPE# #ID#";
	selFieldList[7]="AREA PERIMETER RIS_NOM COD_NTA #SHAPE# #ID#";
	selFieldList[8]="AREA PERIMETER RISP_NOM #SHAPE# #ID#";
	selFieldList[9]="AREA PERIMETER VULN_NOM COD_NTA #SHAPE# #ID#";
	selFieldList[10]="AREA PERIMETER PIDR_NOM COD_NTA #SHAPE# #ID#";
	selFieldList[11]="AREA PERIMETER PGEO_NOM COD_NTA #SHAPE# #ID#";
	selFieldList[12]="AREA PERIMETER TESS_NOM COD_NTA #SHAPE# #ID#";
	selFieldList[13]="AREA PERIMETER TERR_NOM COD_NTA #SHAPE# #ID#";
	selFieldList[14]="#ALL#";
	selFieldList[15]="AREA PERIMETER SBT_NOM COD_NTA #SHAPE# #ID#";
	selFieldList[16]="AREA PERIMETER UTOE_NOM COD_NTA #SHAPE# #ID#";
	selFieldList[17]="AREA PERIMETER PERTA_NOM COD_NTA #SHAPE# #ID#";
	selFieldList[18]="#ALL#";
	selFieldList[19]="#ALL#";
	selFieldList[20]="#ALL#";
	selFieldList[21]="#ALL#";
	selFieldList[22]="#ALL#";
	//stradario
	selFieldList[23]="#ALL#";
	selFieldList[24]="#ALL#";
	selFieldList[25]="#ALL#";
	selFieldList[26]="#ALL#";
	selFieldList[27]="#ALL#";
	selFieldList[28]="#ALL#";
	selFieldList[29]="#ALL#";
    
  }
  
   if (useAlias){
   
   
   
    aliasLayer[0]="";
	aliasLayer[1]="DESCRIZION=Nome;";
	aliasLayer[2]="";
	aliasLayer[3]="AREA=Area;PERIMETER=Perimetro;ST_NOM=Descrizione;COD_NTA=Normativa;";
	aliasLayer[4]="AREA=Area;PERIMETER=Perimetro;USO_NOM=Descrizione;COD_NTA=Normativa;";
	aliasLayer[5]="";
	aliasLayer[6]="AREA=Area;PERIMETER=Perimetro;SIC_NOM=Descrizione;COD_NTA=Normativa;";
	aliasLayer[7]="AREA=Area;PERIMETER=Perimetro;RIS_NOM=Descrizione;COD_NTA=Normativa;";
	aliasLayer[8]="AREA=Area;PERIMETER=Perimetro;RISP_NOM=Descrizione;";
	aliasLayer[9]="AREA=Area;PERIMETER=Perimetro;VULN_NOM=Descrizione;COD_NTA=Normativa;";
	aliasLayer[10]="AREA=Area;PERIMETER=Perimetro;PIDR_NOM=Descrizione;COD_NTA=Normativa;";
	aliasLayer[11]="AREA=Area;PERIMETER=Perimetro;PGEO_NOM=Descrizione;COD_NTA=Normativa;";
	aliasLayer[12]="AREA=Area;PERIMETER=Perimetro;TESS_NOM=Descrizione;COD_NTA=Normativa;";
	aliasLayer[13]="AREA=Area;PERIMETER=Perimetro;TERR_NOM=Descrizione;COD_NTA=Normativa;";
	aliasLayer[14]="";
	aliasLayer[15]="AREA=Area;PERIMETER=Perimetro;SBT_NOM=Descrizione;COD_NTA=Normativa;";
	aliasLayer[16]="AREA=Area;PERIMETER=Perimetro;UTOE_NOM=Descrizione;COD_NTA=Normativa;";
	aliasLayer[17]="AREA=Area;PERIMETER=Perimetro;PERTA_NOM=Descrizione;COD_NTA=Normativa;";
	aliasLayer[18]="";
	aliasLayer[19]="";
	aliasLayer[20]="";
	aliasLayer[21]="";
	aliasLayer[22]="";
	aliasLayer[23]="";
	aliasLayer[24]="";
	aliasLayer[25]="";
	aliasLayer[26]="";
	aliasLayer[27]="";
	aliasLayer[28]="";
	aliasLayer[29]="";
    }

}




function setActiveLayer(i){
 if (i == -1){
     // se viene selezionato "scegli" viene reimpostata la fz. di zoom
     parent.toolFrame.setToolPic('Zoom In');
 } 
 activeLayerIndex = i;
 //alert("i="+i +" con activeLayerIndex="+activeLayerIndex);
 toponimo="";
 subfields = selFieldList[i]; 
 ID = layerID[i];
 lyrThematization = layerType[i];
 parent.textFrame.location = path+'blank.htm';
 if (useFind) parent.toolFrame.clearToolPic();
}


function loadAlias(arrayName,lyrIndx){
  var num = arrayName.length;
  var string = aliasLayer[lyrIndx];
  var arrayAlias = new Array();
  for (var i=0; i<num ; i++){
       var stringTemp = string.toUpperCase();
       var pos = stringTemp.indexOf(arrayName[i]);
	   var startPos = stringTemp.indexOf("=",pos);
	   var endPos = stringTemp.indexOf(";",startPos);
	   arrayAlias[i]= string.substring(startPos+1,endPos);
  } 
  return arrayAlias;
}


// Se "tuttiTemi" è checkato chiamo tuttoIlPiano(),aggiorno il tocFrame e invio la richiesta
// sennò attivo i layers checkati, aggiornaToc() e invio la richiesta 
function refreshMap(){
        if(parent.tocFrame.document.forms[0].tuttiTemi.checked==false){
           var v = 0;
	       for (var i=0; i<numLayerField; i++){
	          var orderIndex = ordinaLayer(i);
		      if (showLayerID[orderIndex]) {
			      layerVisible[orderIndex] = parent.tocFrame.document.forms[1].vedi[v].checked; 
				  v +=1;
		      }	   
	       }
		   /*var numSel = parent.selectFrame.document.forms[0].elements[0].selectedIndex;
	       var selOption = parent.selectFrame.document.forms[0].elements[0].options[numSel].value;
		   if(selOption!=-1){
		      layerVisible[activeLayerIndex]=true;
		   }*/
	   }else{
	     tuttoIlPiano();
		 
	   }
	   
       aggiornaToc();
	
	   if (strStrada!=''){
		   attivaStradarioSelect();
	   }
	   if (strStradaUrb!=''){
		   attivaStradarioUrbSelect();
	   }
       strLyrVisibile = ' <LAYERLIST> ';
	   for (var i=0; i<numLayerField ; i++){
	         var orderIndex = ordinaLayer(i);
             strLyrVisibile += '  <LAYERDEF id="'+layerID[i]+'" visible="'+layerVisible[i]+'" />';
       }
	   strLyrVisibile += '</LAYERLIST>';
	// alert(strLyrVisibile);
	   
	   controlla_fattore();
}


// array per ordinare i  Layer nel toc, nel select e nella selezione multipla
// es: sist territ prog sarà il primo lyr ad essere visualizzato
function ordinaLayer(lyrInd){
    
	var newIndex;
	switch (lyrInd) {
	    case 0:
		         newIndex = 3;//st1
				 break;
		case 1:
		         newIndex = 4;//uso_suolo
				 break;
		case 2:
		         newIndex = 6;//sic
				 break;
		case 3:
		         newIndex = 7;//ris_nat
				 break;
		case 4:
		         newIndex = 8;//risp_superstrda
				 break;
		case 5:
		         newIndex = 9;//vulnerabilità
				 break;
		case 6:
		         newIndex = 10;//cp_idr
				 break;
		case 7:
		         newIndex = 11;//cp_geo
				 break;
		case 8:
		         newIndex = 12;//tessitura
				 break;
		case 9:
		         newIndex = 13;//terrazzi
				 break;
		case 10:
		         newIndex = 15;//sbt
				 break;
		case 11:
		         newIndex = 16;//utoe
				 break;
		case 12:
		         newIndex = 17;//pert
				 break;
		case 13:
		         newIndex = 0;//DTM
				 break;
		/*case 14:
		         newIndex = 14;//DTM
				break;
		case 15:
		         newIndex = 15;//DTM
				break;
		case 16:
		         newIndex = 16;//DTM
				break;*/
				
	/* case 17:
		         newIndex = 17;//DTM
				break;
				
		case 18:
		         newIndex = 18;//DTM
				break;
				
				
		case 19:
		         newIndex = 19;//DTM
				break;
				
		case 20:
		         newIndex = 20;//DTM
				break;
		case 21:
		         newIndex = 21;//DTM
				break;
		case 22:
		         newIndex = 22;//DTM
				break;
				
		case 23:
		         newIndex = 23;//DTM
				break;
				
		case 24:
		         newIndex = 24;//DTM
				break;
				
		case 25:
		         newIndex = 25;//DTM
				break;
		case 26:
		         newIndex = 26;//DTM
				break;
		case 27:
		         newIndex = 27;//DTM
				break;
				
		case 28:
		         newIndex = 28;//DTM
				break;
				
		case 29:
		         newIndex = 29;//DTM
				break;*/
	}
	
	return newIndex;  
}

//funzione che setta tutti i layer di piano
function tuttoIlPiano(){
    //alert('Tutto il piano');
	 
	layerVisible[0]=false;//DTM
	layerVisible[1]=false;//toponimi
	layerVisible[2]=false;//conf_com
	layerVisible[3]=true;//st1
	layerVisible[4]=false;//uso_suolo
	layerVisible[5]=false;//pee_stor_att
	layerVisible[6]=false;//sic
	layerVisible[7]=false;//ris_nat
	layerVisible[8]=false;//risp_superstrada
	layerVisible[9]=false;//vulnerabilità
	layerVisible[10]=false;//cp_idr
	layerVisible[11]=false;//cp_geo
	layerVisible[12]=false;//tessitura
	layerVisible[13]=false;//terrazzi
	layerVisible[14]=false;//st
	layerVisible[15]=true;//sbt
	layerVisible[16]=true;//utoe
	layerVisible[17]=true;//pert
	layerVisible[18]=false;//ctr2000_taglio
	layerVisible[19]=false;//ctr10000_taglio
	layerVisible[20]=false;//ctr10000
	layerVisible[21]=false;//ctr25000
	layerVisible[22]=false;//cenuc
	for (i=23;i<=29;i++){layerVisible[i]=false;}
	
}

//funzione che aggiorna il tocFrame senza fare il refresh
function aggiornaToc(){
       parent.tocFrame.controllaTutti();
	  	for (var i=0; i<numLayerField; i++){
                  var orderIndex = parent.MapFrame.ordinaLayer(i);
                  if (parent.MapFrame.showLayerID[orderIndex]) {
				      //alert(parent.MapFrame.layerName[orderIndex]+'--layerVisible['+orderIndex+']='+layerVisible[orderIndex]);
					  
                      if (parent.MapFrame.layerVisible[orderIndex]) {
					       parent.tocFrame.document.forms[1].vedi[i].checked=true;
					  }else{
					       parent.tocFrame.document.forms[1].vedi[i].checked=false;
					  }
				  }
	   }
}
