// Restituisce true se l'anno passato in input è bisestile, false altrimenti.
function bisestile (year) {
	if ((year % 4) == 0)
		return true;
	else
		return false;
}

// Controlli formali sui campi del CV
function checkFieldsCV(obj_username, obj_password, obj_nome, obj_cognome, obj_sesso, obj_codFiscale, obj_cmbGiorno, obj_cmbMese,
					obj_cmbAnno, obj_via, obj_cap, obj_comune, obj_prov, obj_tel, obj_cell, obj_mail, obj_titStudio, obj_trasf,
					obj_regPref, obj_provPref, obj_settPref, from) {
   if ( from != "agenzia") {
	   if ( sTrim(obj_username.value) == "" ) {
	      alert("Il campo Nome Utente è obbligatorio.");
	      return false;
	   }
	   if ( sTrim(obj_password.value) == "" ) {
	      alert("Il campo Password è obbligatorio.");
	      return false;
	   }
   }	   
   if ( sTrim(obj_nome.value) == "" ) {
      alert("Il campo Nome è obbligatorio.");
      return false;
   }
   if ( sTrim(obj_cognome.value) == "" ) {
      alert("Il campo Cognome è obbligatorio.");
      return false;
   }
   if ( obj_sesso[0].checked == false && obj_sesso[1].checked == false) {
      alert("Il campo Sesso è obbligatorio.");
      return false;
   }
   if ( sTrim(obj_codFiscale.value) != "" ) {
      if ( checkCodFisc(sTrim(obj_codFiscale.value)) != "") {
	    alert("Il campo CodiceFiscale non è valido.");
        return false;	    
	  }  
   }
   
   if ( sTrim(obj_cmbGiorno.value) == ""  || sTrim(obj_cmbMese.value) == "" || sTrim(obj_cmbAnno.value) == "" ){
      alert("Il campo Data Nascita è obbligatorio.");
      return false;
   }else{
    if ((sTrim(obj_cmbGiorno.value) == 31)
		&& ((sTrim(obj_cmbMese.value) == 9)
		|| (sTrim(obj_cmbMese.value) == 11)
		|| (sTrim(obj_cmbMese.value) == 6)
		|| (sTrim(obj_cmbMese.value) == 4)))
		{
		alert("Il mese selezionato non ha più di 30 giorni.");
		return false;
		}
    if (((sTrim(obj_cmbGiorno.value) > 28) &&
		(sTrim(obj_cmbMese.value) == 2) &&
		(!(bisestile(sTrim(obj_cmbAnno.value))))) )
		{
		alert("L\'anno non è bisestile, febbraio ha solo 28 giorni.");
		return false;
		}
   }
   
   if ( sTrim(obj_via.value) == "" ){
      alert("Il campo Indirizzo è obbligatorio.");
      return false;
   }

   if ( sTrim(obj_cap.value) == "" ){
      alert("Il campo Cap è obbligatorio.");
      return;
   }else{
      if ( sTrim(obj_cap.value).length < 5){
	    alert("La lunghezza del campo CAP deve essere uguale a 5.");  
	    return false;
	  }else{
	    if ( checkNumber(sTrim(obj_cap.value)) != true ){
		  alert("Formato del campo cap non valido.");
          return false;
		} 
	  }  
   }
   if ( sTrim(obj_comune.value) == "" ){
      alert("Il campo Citta\' è obbligatorio.");
      return false;
   }
   if ( sTrim(obj_prov.value) == "" ){
      alert("Il campo Provincia è obbligatorio.");
      return false;
   }
   if ( sTrim(obj_tel.value) != "" ){
      if ( checkNumber(sTrim(obj_tel.value)) != true ){
	  alert("Il campo Telefono non è valido.");
      return false;
      }
   }
   if ( sTrim(obj_cell.value) != "" ){
      if ( checkNumber(sTrim(obj_cell.value)) != true ){
	  alert("Il campo Cellulare non è valido.");
      return false;
      }
   }
   if ( sTrim(obj_mail.value) == "" ){
      alert("Il campo E-mail è obbligatorio.");
      return false;
   }else{ 
      if ( checkemail(sTrim(obj_mail.value)) != true ){
	  alert("Il campo Mail non è valido.");
      return false;
     } 
   }
   if ( sTrim(obj_titStudio.value) == "" ){
      alert("Il campo Titolo di Studio è obbligatorio.");
      return false;
   }
   if ( obj_trasf[0].checked == false && obj_trasf[1].checked == false){
      alert("Il campo Trasferta è obbligatorio.");
      return false;
   }

   if ( sTrim(obj_regPref.value) == 0 || sTrim(obj_provPref.value) == 0 || sTrim(obj_settPref.value) == 0){
	  if ( confirm("Selezionare Regione,Provincia,Settore preferenziale ti garantisce maggiore visibilita\'. Sei sicuro di voler continuare?"))
	    return true;
	  else
	    return false;	          
	} 
   
  return true;
}

// Controlli formali sui campi dell'agenzia
function checkFieldsAgenzia(obj_username,obj_nome,obj_mail,obj_via,obj_cap,obj_comune,obj_prov,
                            obj_tel,obj_fax,obj_web,obj_super,from){
  
   if ( from != ""){
	   if ( sTrim(obj_username.value) == "" ){
	      alert("Il campo Nome Utente è obbligatorio.");
	      return false;
	   }
	   
	   if ( sTrim(obj_nome.value) == "" ){
          alert("Il campo Nome è obbligatorio.");
          return false;
       }
   }
   if ( sTrim(obj_mail.value) != "" ){
      if ( checkemail(sTrim(obj_mail.value)) != true ){
	  alert("Il campo Mail non è valido.");
      return false;
     } 
   }
   if ( sTrim(obj_via.value) == "" ){
      alert("Il campo Indirizzo è obbligatorio.");
      return false;
   }
   if ( sTrim(obj_cap.value) == "" ){
      alert("Il campo Cap è obbligatorio.");
      return;
   }else{
      if ( sTrim(obj_cap.value).length < 5){
	    alert("La lunghezza del campo CAP deve essere uguale a 5.");  
	    return false;
	  }else{
	    if ( checkNumber(sTrim(obj_cap.value)) != true ){
		  alert("Formato del campo cap non valido.");
          return false;
		} 
	  }  
 }

   if ( from != ""){
	   if ( sTrim(obj_comune.value) == "" ){
	      alert("Il campo Citta\' è obbligatorio.");
	      return false;
	   }
	   if ( sTrim(obj_prov.value) == "" ){
	      alert("Il campo Provincia è obbligatorio.");
	      return false;
	   }
   }	   
   if ( sTrim(obj_tel.value) != "" ){
      if ( checkNumber(sTrim(obj_tel.value)) != true ){
	  alert("Il campo Telefono non è valido.");
      return false;
      }
   }
   if ( sTrim(obj_fax.value) != "" ){
      if ( checkNumber(sTrim(obj_fax.value)) != true ){
	  alert("Il campo Fax non è valido.");
      return false;
      }
   }
   
   if ( from == "agenzia"){
	   if ( obj_web[0].checked == false && obj_web[1].checked == false){
	      alert("Il campo Abilitazione Web è obbligatorio.");
	      return false;
	   }
	
	   if ( obj_super[0].checked == false && obj_super[1].checked == false){
	      alert("Il campo Abilitazione Supervisore è obbligatorio.");
	      return false;
	   }
   }
   
  return true;
}

// Controlli formali sui campi della posizione offerta
function checkFieldsPosizione(obj_titolo, obj_descrizione, obj_note, obj_prov, obj_sett, obj_tipo, obj_cmbGiorno, obj_cmbMese,
						obj_cmbAnno, obj_cmbGiornoScad, obj_cmbMeseScad, obj_cmbAnnoScad, obj_dtScad) {
  
   
	if ( sTrim(obj_titolo.value) == "" ) {
		alert("Il campo Titolo è obbligatorio.");
		return false;
	}

	if ( sTrim(obj_descrizione.value) == "" ) {
		alert("Il campo Descrizione è obbligatorio.");
		return;
	}

	if ( sTrim(obj_note.value) == "" ) {
		alert("Il campo Note è obbligatorio.");
		return false;
	}

	if ( sTrim(obj_prov.value) == "" ) {
		alert("Il campo Provincia è obbligatorio.");
		return false;
	}

	if ( sTrim(obj_sett.value) == "" ) {
		alert("E' obbligatorio selezionare un Settore di impiego.");
		return false;
	}

	if ( sTrim(obj_tipo.value) == "" ) {
		alert("E' obbligatorio selezionare una Tipologia di contratto.");
		return false;
	}

	if ( sTrim(obj_cmbGiorno.value) == ""  || sTrim(obj_cmbMese.value) == "" || sTrim(obj_cmbAnno.value) == "" ) {
		alert("Il campo Data Pubblicazione è obbligatorio.");
		return false;
	}
	else {
		if ((sTrim(obj_cmbGiorno.value) == 31) && ((sTrim(obj_cmbMese.value) == 9)
			|| (sTrim(obj_cmbMese.value) == 11) || (sTrim(obj_cmbMese.value) == 6) || (sTrim(obj_cmbMese.value) == 4))) {
			alert("Il mese selezionato non ha più di 30 giorni.");
			return false;
		}
		if (((sTrim(obj_cmbGiorno.value) > 28) && (sTrim(obj_cmbMese.value) == 2) && (!(bisestile(sTrim(obj_cmbAnno.value)))))) {
			alert("L\'anno non è bisestile, Febbraio ha solo 28 giorni.");
			return false;
		}
	}
   
	if ( sTrim(obj_cmbGiornoScad.value) == ""  || sTrim(obj_cmbMeseScad.value) == "" || sTrim(obj_cmbAnnoScad.value) == "" ){
		alert("Il campo Data Scadenza è obbligatorio.");
		return false;
	}
	else {
		if ((sTrim(obj_cmbGiornoScad.value) == 31) && ((sTrim(obj_cmbMeseScad.value) == 9) || (sTrim(obj_cmbMeseScad.value) == 11)
			|| (sTrim(obj_cmbMeseScad.value) == 6) || (sTrim(obj_cmbMeseScad.value) == 4))) {
			alert("Il mese selezionato non ha più di 30 giorni.");
			return false;
		}
		if (((sTrim(obj_cmbGiornoScad.value) > 28) && (sTrim(obj_cmbMeseScad.value) == 2) && (!(bisestile(sTrim(obj_cmbAnnoScad.value)))))) {
			alert("L\'anno non è bisestile, Febbraio ha solo 28 giorni.");
			return false;
		}
	}
	
	// Test per verificare che la data di pubblicazione non sia successiva alla data di scadenza
	dataPubblicazione = new Date(sTrim(obj_cmbAnno.value), sTrim(obj_cmbMese.value) - 1, sTrim(obj_cmbGiorno.value));
	dataScadenza = new Date(sTrim(obj_cmbAnnoScad.value), sTrim(obj_cmbMeseScad.value) - 1, sTrim(obj_cmbGiornoScad.value));

	if (dataPubblicazione.getTime() > dataScadenza.getTime()) {
		alert("La data di Scadenza non può essere precedente alla data di Pubblicazione.");
		return false;
	}

	return true;
}
