// JavaScript Document
function ctrl(){

	var Nominativo=document.form1.Nominativo.value;
	var AnnoNascita=document.form1.AnnoNascita.value;
	var Citta=document.form1.Citta.value;
	var Email=document.form1.Email.value;
	var Utente=document.form1.Utente.value;
	var Password=document.form1.Password.value;
	var ConfPassword=document.form1.ConfPassword.value;
	
	Campi=[Nominativo, AnnoNascita, Citta, Email];
	Campi_Nome=["Nominativo", "Anno di nascita", "Città", "Posta elettronica"];
	numCampi=Campi.length;

  // controlla che tutti i campi non siano fatti di soli spazi o vuoti
	for(k=0;k<numCampi;k++){
			Test=0;
    	for(i=0;i<Campi[k].length;i++){if(Campi[k].charAt(i)==" ") Test=Test+1;}
    	if(Campi[k]=="") Test=-1;
    	if(Test==Campi[k].length || Test==-1)	{alert("Attenzione non puoi lasciare il campo " + Campi_Nome[k] + " vuoto o con soli spazi"); return false;}
	}

	//controlla se sono stati inseriti nei campi dei caratteri vietati
	for(k=0;k<numCampi;k++){
      	// array con il set di caratteri vietato
      	car=["|", "!", "<", ">", "&", "%", "$", "\,", "\"", "#"];
      	var lenc=car.length;
      	var listacaratterivietatitrovati="";
      	//len è la lunghezza della frase da analizzare
      	var len=Campi[k].length;
      	for(j=0;j<lenc;j++){
        	//if(car[j]==" ") car[j]="spazio";
        	for(i=0;i<len;i++){
														 if(Campi[k].charAt(i)==car[j]) listacaratterivietatitrovati+=" "+car[j];
					}
				}		
      	if(listacaratterivietatitrovati!="") {alert("Attenzione! I caratteri " + listacaratterivietatitrovati + " nel campo " + Campi_Nome[k] + " sono vietati"); return false;}
	}


  //obbliga a inserire le lettere dell'alfabeto i numeri e al massimo un punto in Utente e Password - senza differenza tra maiuscolo e minuscolo
  //il campo non può rimanere vuoto e il numero di caratteri non può essere minore di 4
	Campi1=[Utente,Password];
	Campi1_Nome=["Utente","Password"];
	numCampi1=Campi1.length;
	for(t=0;t<numCampi1;t++){
    	caratteriValidi=["a","b","c","d","e","f","g","h","i","l","m","n","o","p","q","r","s","t","u","v","z","j","k","x","y","w","1","2","3","4","5","6","7","8","9","0","."];
    	numCaratteriValidi=0;
    	numPunti=0;
    	Campi1[t]=Campi1[t].toLowerCase();
    	for(y=0;y<Campi1[t].length;y++){
          				 for(z=0;z<caratteriValidi.length;z++){
          				 				if(Campi1[t].charAt(y)==caratteriValidi[z]) {numCaratteriValidi++; if(Campi1[t].charAt(y)==".") numPunti++;}
          				 }
    	}
    	if(numPunti>1) {alert("Attenzione non puoi mettere più di un punto nel nome utente o nella password"); return false;}
    	//else{
      		 if(numCaratteriValidi!=Campi1[t].length) {alert("Attenzione " + (parseInt(Campi1[t].length)- numCaratteriValidi) + " caratteri non validi in " + Campi1_Nome[t]); return false;}
    	//}
    	
		//if(Campi1[t].length<4) {alert("Attenzione il campo " + Campi1_Nome[t] + " non può avere un numero di caratteri inferiore a 4"); return false;}
		
		//non possono essere inseriti spazi in nome utente e password
		if(Campi1[t].indexOf(" ")!=-1) {alert("Attenzione il campo " + Campi1_Nome[t] + " non può avere spazi"); return false;}
	}
	
	//controlla che il nome utente non abbia meno di 4 caratteri e che la password non abbia meno di 8 caratteri
	if(Utente.length<4) {alert("Attenzione il nome Utente non può avere un numero di caratteri inferiore a 4"); return false;}
	if(Password.length<8) {alert("Attenzione la password non può avere un numero di caratteri inferiore a 8"); return false;}

	//controlla che il campo Password e Conferma password abbiano lo stesso contenuto
	if(Password!=ConfPassword) {alert("Attenzione le due password scritte sono diverse"); return false;}

	//controlla che l'anno di nascita sia un numero di 4 cifre numeriche
	Cifre=["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"];
	numCifreCampo=0;
	for(m=0;m<AnnoNascita.length;m++){
					for(n=0;n<10;n++){
										if(parseInt(AnnoNascita.charAt(m))==parseInt(Cifre[n])) numCifreCampo++;
					}
	}
	if(numCifreCampo<4) {alert("Attenzione scrivi correttamente l'anno di nascita: deve avere 4 cifre numeriche"); return false;}


	//controlla che la e-mail abbia la @
	if(Email.indexOf("@")==-1) {alert("Attenzione scrivi correttamente l'indirizzo di posta elettronica, manca il simbolo @"); return false;}
	//controlla che la e-mail abbia almeno 6 caratteri
	if(Email.length<6) {alert("Attenzione troppi pochi caratteri nell'indirizzo di posta elettronica"); return false;}

	//controlla che il titolo e la città siano in minuscolo
	if(Nominativo==Nominativo.toUpperCase()) {alert("Attenzione non puoi lasciare il Nominativo vuoto o scriverlo tutto in maiuscolo"); return false;}
	if(Citta==Citta.toUpperCase()) {alert("Attenzione non puoi lasciare la Città vuota o scriverla tutta in maiuscolo"); return false;}

//Effettua controlli approfonditi sul nominativo
	if(Nominativo.substr(0,1)==" ") {alert("Attenzione all'inizio del nominativo non sono ammessi gli spazi"); return false;}

// Controlla che il Nominativo sia fatto da due pezzi separati da uno spazio
	ArrayNominativo=Nominativo.split(" ");
	LenArrayNominativo=ArrayNominativo.length;
	//alert(LenArrayNominativo);
	// controlla che il nominativo sia lungo almeno tre caratteri
	if(ArrayNominativo[0].length<3) {alert("Attenzione il primo nominativo deve essere lungo almeno tre caratteri");  return false;}
	//controlla che le iniziali del nominativo siano in maiuscolo
	if(ArrayNominativo[0].substr(0,1)==ArrayNominativo[0].substr(0,1).toLowerCase()) {alert("Attenzione le iniziali del nominativo vanno inserite in maiuscolo"); return false;}
	//Controlla che dopo il primo pezzo vi sia soltanto uno spazio
	if(ArrayNominativo[1]=="") {alert("Attenzione tra una parola e l'altra è ammesso un solo spazio"); return false;}
	//controlla che la seconda parola sia lunga almeno due caratteri
	if(ArrayNominativo[1].length<2) {alert("Attenzione il secondo nominativo deve essere lungo almeno due caratteri, si può inserire una iniziale puntata"); return false;}
	//if(ArrayNominativo[1].substr(0,1)==ArrayNominativo[1].substr(0,1).toLowerCase()) {alert("Attenzione le iniziali del nominativo vanno inserite in maiuscolo"); return false;}



	// se tutto è ok va avanti
	return true;
}
