function formController(which){
//Definisco l'array dei messaggi di errore
var error_txt = new Array;
	//error_txt["ID_categoria"] = "Categoria";
	error_txt["nome"] = "Nome";
	error_txt["cognome"] = "Cognome";
	error_txt["indirizzo"] = "Indirizzo";
	error_txt["telefono"] = "Telefono";
	error_txt["email"] = "E-mail";
	error_txt["come_conosciuto"] = "Come hai conosciuto la cooperativa";
	error_txt["motivazioni"] = "Quali motivazioni ti spingono a lavorare con Arti & Mestieri Sociali?";
	error_txt["servizi_interesse"] = "In quali servizi e progetti ti interesserebbe lavorare?";
	error_txt["presentazione"] = "Breve presentazione";
	
	error_txt["nome_file"] = "Allegare un curriculum";
	error_txt["pub_day"] = "Giorno di pubblicazione";
	error_txt["pub_month"] = "Mese di pubblicazione";
	error_txt["pub_year"] = "Anno di pubblicazione";
	error_txt["scad_day"] = "Giorno di scadenza";
	error_txt["scad_month"] = "Mese di scadenza";
	error_txt["scad_year"] = "Anno di scadenza";
	error_txt["priorita"] = "Priorità";
	error_txt["data_validate_pub"] = "Data di pubblicazione: la data selezionata non e\' una data valida";
	error_txt["data_validate_scad"] = "Data di scadenza: la data selezionata non e\' una data valida";
		
	var reqString ="Attenzione!!\nControllare i seguenti campi:\n ";
	var reqPass = true ;
	var rif_year = 2000;
	var sel_year = 0;
	var bis_year_pub = false;
	var bis_year_scad = false;
	
	for (i=0;i<which.length;i++) {
		var temp_elem = which.elements[i] ;
		/*Controllo campo "obbligatorio"*/
		if(temp_elem.name=="ID_categoria"){
			if (temp_elem.value=="") {
				reqString += ("\n-" + error_txt["ID_categoria"]);
				reqPass = false ;
			}
		}
		if(temp_elem.name=="nome") {
			if (temp_elem.value=="") {
				reqString += ("\n-" + error_txt["nome"]);
				reqPass = false ;
			}
		}
		if(temp_elem.name=="cognome") {
			if (temp_elem.value=="") {
				reqString += ("\n-" + error_txt["cognome"]);
				reqPass = false ;
			}
		}
		if(temp_elem.name=="indirizzo") {
			if (temp_elem.value=="") {
				reqString += ("\n-" + error_txt["indirizzo"]);
				reqPass = false ;
			}
		}
		if(temp_elem.name=="telefono") {
			if (temp_elem.value=="") {
				reqString += ("\n-" + error_txt["telefono"]);
				reqPass = false ;
			}
		}
		if(temp_elem.name=="email") {
			if (temp_elem.value=="") {
				reqString += ("\n-" + error_txt["email"]);
				reqPass = false ;
			}
			var finder = temp_elem.value;
  		if (finder !="") {		
  			var foundAt = 0;
  			var foundPoint = 0;
  			for(n = 0 ; n < finder.length ;n++) {
  				if ((finder.charAt(n))==("@")) {
  					++foundAt ;
  				}
  				if ((finder.charAt(n))==(".")) {
  					++foundPoint ;
  				}
  			}
  			if ((foundAt != 1)||(foundPoint == 0)) {
  				alert("ATTENZIONE!!\n L'indirizzo di posta elettronica : "+finder+"\n non è un'indirizzo valido.");
  				return false
  			}	
  		}	
		}
		if(temp_elem.name=="come_conosciuto") {
			if (temp_elem.value=="") {
				reqString += ("\n-" + error_txt["come_conosciuto"]);
				reqPass = false ;
			}
		}
		if(temp_elem.name=="motivazioni") {
			if (temp_elem.value=="") {
				reqString += ("\n-" + error_txt["motivazioni"]);
				reqPass = false ;
			}
		}
		if(temp_elem.name=="servizi_interesse") {
			if (temp_elem.value=="") {
				reqString += ("\n-" + error_txt["servizi_interesse"]);
				reqPass = false ;
			}
		}
		if(temp_elem.name=="presentazione") {
			if (temp_elem.value=="") {
				reqString += ("\n-" + error_txt["presentazione"]);
				reqPass = false ;
			}
		}
		
		if(temp_elem.type=="file") {
			if (temp_elem.value=="") {
				reqString += ("\n-" + error_txt["nome_file"]);
				reqPass = false ;
			}
		}
		if(temp_elem.name=="pub_day") {
			if (temp_elem.value=="") {
				reqString += ("\n-" + error_txt["pub_day"]);
				reqPass = false;
			}else{
				var giorno_pub = temp_elem.value;
			}
		}
		if(temp_elem.name=="pub_month") {
			if (temp_elem.value=="") {
				reqString += ("\n-" + error_txt["pub_month"]);
				reqPass = false;
			}else{
				var mese_pub = temp_elem.value;
			}
				
		}
		if(temp_elem.name=="pub_year") {
			if (temp_elem.value=="") {
				reqString += ("\n-" + error_txt["pub_year"]);
				reqPass = false;
			}else{
				var anno_pub = temp_elem.value;
			}
		}
		if(temp_elem.name=="scad_day") {
			if (temp_elem.value=="") {
				reqString += ("\n-" + error_txt["scad_day"]);
				reqPass = false;
			}else{
				var giorno_scad = temp_elem.value;
			}
		}
		if(temp_elem.name=="scad_month") {
			if (temp_elem.value=="") {
				reqString += ("\n-" + error_txt["scad_month"]);
				reqPass = false;
			}else{
				var mese_scad = temp_elem.value;
			}
				
		}
		if(temp_elem.name=="scad_year") {
			if (temp_elem.value=="") {
				reqString += ("\n-" + error_txt["scad_year"]);
				reqPass = false;
			}else{
				var anno_scad = temp_elem.value;
			}
		}
		if(temp_elem.name=="priorita") {
			if (temp_elem.value=="") {
				reqString += ("\n-" + error_txt["priorita"]);
				reqPass = false;
			}
		}
	}
	if((mese_pub !="") && (giorno_pub !="")&& (anno_pub !="")){
		giorno_pub = parseInt(giorno_pub);
		if((mese_pub == "04")||(mese_pub == "06")||(mese_pub == "09")||(mese_pub == "11")){
			if(giorno_pub > 30){
				reqString += ("\n-" + error_txt["data_validate_pub"]);
				reqPass = false;
			}
		}

		sel_year = parseInt(anno_pub);
		if(((sel_year-rif_year)%4) == 0){
			bis_year_pub = true;
		}
		if((mese_pub == "02")&&(bis_year_pub == true)){
			if(giorno_pub > 29){
				reqString += ("\n-" + error_txt["data_validate_pub"]);
				reqPass = false;
			}
		}
		if((mese_pub == "02")&&(bis_year_pub == false)){
			if(giorno_pub > 28){
				reqString += ("\n-" + error_txt["data_validate_pub"]);
				reqPass = false;
			}
		}
	}
	if((mese_scad !="") && (giorno_scad !="")&& (anno_scad !="")){
		giorno_scad = parseInt(giorno_scad);
		if((mese_scad == "04")||(mese_scad == "06")||(mese_scad == "09")||(mese_scad == "11")){
			if(giorno_scad > 30){
				reqString += ("\n-" + error_txt["data_validate_scad"]);
				reqPass = false;
			}
		}

		sel_year = parseInt(anno_scad);
		if(((sel_year-rif_year)%4) == 0){
			bis_year_scad = true;
		}
		if((mese_scad == "02")&&(bis_year_scad == true)){
			if(giorno_scad > 29){
				reqString += ("\n-" + error_txt["data_validate_scad"]);
				reqPass = false;
			}
		}
		if((mese_scad == "02")&&(bis_year_scad == false)){
			if(giorno_scad > 28){
				reqString += ("\n-" + error_txt["data_validate_scad"]);
				reqPass = false;
			}
		}
	}
	if (!reqPass) {
		alert(reqString);
		return false ;
	}
}
