// controlloAnagrafica.js - funzioni javascript per la parte di gestione anagrafica utenti
////
//!controlla i dati dell'anagrafica
function controllaAnagrafica(){
	return;
}

////
//!Cambia il numero di giorni selezionabile al cambiare del mese
function cambiaGiorno(GiornoSelect,MeseValue,AnnoValue){
	var anno=AnnoValue;
	var mese=MeseValue;
	var giorno=GiornoSelect.options[GiornoSelect.selectedIndex].value;
	var numeroGiorni;
	
//	alert(giorno+"/"+mese+"/"+anno);
	
	if(mese==11||mese==4||mese==6||mese==9)
		numeroGiorni=30;
	else if(mese==2){
		numeroGiorni=28;
		if( (anno%4)==0 ){
			if( ((anno%100)!=0) )
				numeroGiorni=29;
			else if( ((anno%400)==0) )
				numeroGiorni=29;
		}
	}
	else
		numeroGiorni=31;
		
//		alert("numeroGiorni="+numeroGiorni+"  GiornoSelect.options.length="+GiornoSelect.options.length+"  giorno="+giorno);
	
	switch((numeroGiorni-GiornoSelect.options.length)){
		case 1:
//			alert("1");
			GiornoSelect.options[GiornoSelect.options.length]=new Option(numeroGiorni,numeroGiorni);
			GiornoSelect.options.selectedIndex=giorno-1;
			break;
		case 2:
//			alert("2");
			GiornoSelect.options[GiornoSelect.options.length]=new Option((numeroGiorni-1),(numeroGiorni-1));
			GiornoSelect.options[GiornoSelect.options.length]=new Option(numeroGiorni,numeroGiorni);
			GiornoSelect.options.selectedIndex=giorno-1;
			break;
		case 3:
//			alert("3");
			GiornoSelect.options[GiornoSelect.options.length]=new Option((numeroGiorni-2),(numeroGiorni-2));
			GiornoSelect.options[GiornoSelect.options.length]=new Option((numeroGiorni-1),(numeroGiorni-1));
			GiornoSelect.options[GiornoSelect.options.length]=new Option(numeroGiorni,numeroGiorni);
			GiornoSelect.options.selectedIndex=giorno-1;
			break;
		case -1:
//			alert("-1");
			GiornoSelect.options[GiornoSelect.options.length-1]=null;
			if(giorno>GiornoSelect.options.length)
				GiornoSelect.options.selectedIndex=GiornoSelect.options.length-1;
			break;
		case -2:
//			alert("-2");
			GiornoSelect.options[GiornoSelect.options.length-1]=null;
			GiornoSelect.options[GiornoSelect.options.length-1]=null;
			if(giorno>GiornoSelect.options.length)
				GiornoSelect.options.selectedIndex=GiornoSelect.options.length-1;
			break;
		case -3:
//			alert("-3");
			GiornoSelect.options[GiornoSelect.options.length-1]=null;
			GiornoSelect.options[GiornoSelect.options.length-1]=null;
			GiornoSelect.options[GiornoSelect.options.length-1]=null;
			if(giorno>GiornoSelect.options.length)
				GiornoSelect.options.selectedIndex=GiornoSelect.options.length-1;
			break;
		case 0:
		default:
//			alert("0");
			break;
	}

	return;
}

////
//!esegue il trim della stringa
function trimString (str) {
  str = this != window? this : str;
  return str.replace(/^\s+/g, '').replace(/\s+$/g, '');
}

String.prototype.trim = trimString;

////
//!apre il popUp di scelta strutture
function paginaSceltaStrutture(form,nome,cognome){
	var nomeCognome="";
	if(nome.trim()!="")
		nomeCognome=nome.trim();
	if(cognome.trim()!=""){
		if(nomeCognome.length>0)
			nomeCognome+=" "+cognome.trim();
		else
			nomeCognome+=cognome.trim();
	}
	var titoloPagina="Scelta strutture associate all'utente "+nomeCognome;
//	var url="/popUp.php?titoloPagina="+titoloPagina+"&azione=scelta_strutture&tabella=anagrafica_utenti";
	window.open('','Strutture','width=500,height=520,menubar=yes,scrollbar=auto,resizable=yes,addressbar=yes');
	form.titoloPagina.value=titoloPagina;
	form.method="post";
	form.action="popUp.php";
	form.azione.value="strutture";
	form.tabella.value="anagrafica_utenti";
	form.target="Strutture";
	form.submit();
}

strutture=new Array();

////
//!crea l'array con le strutture
function aggiungiElencoStrutture(){
	strutture[strutture.length]=new Array();
}

////
//!aggiung una struttura all'array
function aggiungiStruttura(nome,id,selezionata){
//	alert("Nome: "+nome+" id: "+id);
	strutture[strutture.length-1][strutture[strutture.length-1].length]=new Array(nome,id,selezionata);
}
////
//!modifica la lista delle strutture, a seconda della select
function cambiaStrutture(struttureSelect, index){
//	alert("cambiaStrutture (Inizio): struttureSelect.options.length="+struttureSelect.options.length);
	for(i=struttureSelect.options.length;i>=0;i--){
		struttureSelect.options[i]=null;
	}
//	alert("cambiaStrutture (Metà): struttureSelect.options.length="+struttureSelect.options.length);
//	alert("cambiaStrutture (Metà): strutture[index].length="+strutture[index].length);
	var j=0;
	for(i=0;i<strutture[index].length;i++){
//		alert("cambiaStrutture (Metà): "+strutture[index][i][0]+"="+strutture[index][i][2]);
		if(strutture[index][i][2]!="selezionata"){
//			alert("cambiaStrutture (Metà): aggiungo "+strutture[index][i][0]);
			struttureSelect.options[j++]=new Option(strutture[index][i][0],strutture[index][i][1]);
		}
	}
//	alert("cambiaStrutture (Fine): struttureSelect.options.length="+struttureSelect.options.length);
}

////
//!aggiorna la lista delle strutture selezionate
function aggiornaStruttureSelezionateSelect(tipoStruttureSelect,struttureSelezionateSelect){
//alert("aggiornaStruttureSelezionateSelect (Prima di cancellare): struttureSelezionateSelect.options.length="+struttureSelezionateSelect.options.length);
	for(i=struttureSelezionateSelect.options.length;i>=0;i--){
		
		struttureSelezionateSelect.options[i]=null;
	}
//	alert("aggiornaStruttureSelezionateSelect (Dopo cancellazione): struttureSelezionateSelect.options.length="+struttureSelezionateSelect.options.length);
	var k=0;
	var i=0;
	var j=0;
//	alert("aggiornaStruttureSelezionateSelect: strutture.length="+strutture.length);
	for(i=0;i<strutture.length;i++){
//		alert("aggiornaStruttureSelezionateSelect: strutture["+i+"].length="+strutture[i].length);
		for(j=0;j<strutture[i].length;j++){
			if(strutture[i][j][2]=="selezionata"){
				struttureSelezionateSelect.options[k++]=new Option("("+tipoStruttureSelect.options[i].text+") "+strutture[i][j][0],strutture[i][j][1]);
			}
		}
	}	
}

////
//!seleziona struttura
function selezionaStruttura(tipoStruttureSelect,struttureSelect,struttureSelezionateSelect){
//	alert("struttureSelect.options.length="+struttureSelect.options.length);
	for(i=0;i<struttureSelect.options.length;i++){
//		alert("struttureSelect.options["+i+"].selected="+struttureSelect.options[i].selected)
		if(struttureSelect.options[i].selected==true){
//			alert("strutture["+tipoStruttureSelect.selectedIndex+"].length="+strutture[tipoStruttureSelect.selectedIndex].length);
			for(j=0;j<strutture[tipoStruttureSelect.selectedIndex].length;j++){
//				alert(strutture[tipoStruttureSelect.selectedIndex][j][1]+"=="+struttureSelect.options[i].value);
				if(strutture[tipoStruttureSelect.selectedIndex][j][1]==struttureSelect.options[i].value){
					strutture[tipoStruttureSelect.selectedIndex][j][2]="selezionata";
					break;
				}
			}
			
		}
//		alert(strutture[tipoStruttureSelect.selectedIndex][i][0]+": ["+strutture[tipoStruttureSelect.selectedIndex][i][2]+"]");		
	}
	cambiaStrutture(struttureSelect, tipoStruttureSelect.selectedIndex);
	aggiornaStruttureSelezionateSelect(tipoStruttureSelect,struttureSelezionateSelect);
}

////
//!deseleziona la struttura
function deselezionaStruttura(tipoStruttureSelect,struttureSelect,struttureSelezionateSelect){

	for(i=0;i<struttureSelezionateSelect.options.length;i++){
		if(struttureSelezionateSelect.options[i].selected==true){
//			alert(struttureSelezionateSelect.options[i].text+"   "+struttureSelezionateSelect.options[i].value);
//			alert("strutture.lentgh "+strutture.length);
			var finisci=0;
			for(j=0;j<strutture.length;j++){
//				alert("strutture["+j+"].length "+strutture[j].length);
				for(k=0;k<strutture[j].length;k++){
//					alert(strutture[j][k][1]+" == "+struttureSelezionateSelect.options[i].value);
					if(strutture[j][k][1]==struttureSelezionateSelect.options[i].value){
						strutture[j][k][2]="nonSelezionato";
//						alert("impostato "+strutture[j][k][0]+" a "+strutture[j][k][2]);
						finisci=1;
						break;		
					}
				}
				if(finisci==1){
					break;
//					alert("finito il ciclo sul tipo "+strutture[j]);
				}
			}
		}
	}
	

	cambiaStrutture(struttureSelect, tipoStruttureSelect.selectedIndex);
	aggiornaStruttureSelezionateSelect(tipoStruttureSelect,struttureSelezionateSelect);
}

////
//!conferma la selezione delle strutture
function confermaStrutture(selezionate){
	len=selezionate.length;
	for(x=0;x<len;x++){
		selezionate.options[x].selected=true;
	}
	document.struttureForm.target=opener.name;
	document.struttureForm.submit();
	self.close();
}

