//
// JavaScript Utilities
// Copyright (c) 2003 Gulliver S.r.L.
// All Rights Reserved.
//


// - SPESE SPEDIZIONE -
// VERSION: 1.0
// DATE: 03-01-24
// AUTHOR: ELISA BONO
// TESTED WITH: IE 6.0, NN 7.0
//
//----------------------------------------------------------------------------------------------------

function validateForm() {
     // Variabili associate ai campi del modulo
     var password;
     if(document.validateForm.Password){
     		password = document.validateForm.Password.value;
     }

     var confirmPassword;
     if(document.validateForm.ConfirmPassword){
     		confirmPassword = document.validateForm.ConfirmPassword.value;
     }

     var nome;
     if(document.validateForm.Nome){
     		nome = document.validateForm.Nome.value;
     }

     var cognome;
     if(document.validateForm.Cognome){
     		cognome = document.validateForm.Cognome.value;
     }

     var nascita;
     if(document.validateForm.DataNascita){
     		nascita = document.validateForm.DataNascita.value;
            var dataestesa = document.validateForm.DataNascita.value;
            var anni = calcola(dataestesa);
     }

     var telefono;
     if(document.validateForm.Telefono){
     		telefono = document.validateForm.Telefono.value;
     }
     var indirizzo;
     if(document.validateForm.Indirizzo){
     		indirizzo = document.validateForm.Indirizzo.value;
     }

     var provincia;
     if(document.validateForm.Provincia){
     		provincia = document.validateForm.Provincia.value;
     }

     var cap;
     if(document.validateForm.Cap){
     		cap = document.validateForm.Cap.value;
     }

     var localita;
     if(document.validateForm.Localita){
     		localita = document.validateForm.Localita.value;
     }

     var nazione;
     if(document.validateForm.Nazione){
     		nazione = document.validateForm.Nazione.value;
     }

     var note;
     if(document.validateForm.Note){
     		note = document.validateForm.Note.value;
     }

     var email;
     if(document.validateForm.Email){
        	email = document.validateForm.Email.value;
     }
     var confirmEmail;
     if(document.validateForm.ConfirmEmail){
        	confirmEmail = document.validateForm.ConfirmEmail.value;
     }

     var emailOrdini;
     if(document.validateForm.EmailOrdini){
        	emailOrdini = document.validateForm.EmailOrdini.value;
     }
     var confirmEmailOrdini;
     if(document.validateForm.ConfirmEmailOrdini){
        	confirmEmailOrdini = document.validateForm.ConfirmEmailOrdini.value;
     }

     var emailClienti;
     if(document.validateForm.EmailClienti){
        	emailClienti = document.validateForm.EmailClienti.value;
     }
     var confirmEmailClienti;
     if(document.validateForm.ConfirmEmailClienti){
        	confirmEmailClienti = document.validateForm.ConfirmEmailClienti.value;
     }

     var nomeSede;
     if(document.validateForm.NomeSede){
     		nomeSede = document.validateForm.NomeSede.value;
     }

     // Espressione regolare dell'email
     var email_reg_exp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;
     var nome_reg_exp = /^[a-zA-Z0-9\s&']+$/;
     var psw_reg_exp = /^[a-zA-Z0-9]+$/;
     var tel_reg_exp = /^[\s\-\/0-9]+$/;

        //Effettua il controllo sul campo NOMESEDE
        if ((nomeSede != null) && ((nomeSede == "") || (nomeSede == "undefined") || !nome_reg_exp.test(nomeSede))) {
           alert("Il campo Nome Sede è obbligatorio e deve essere corretto.");
           document.validateForm.NomeSede.focus();
           return false;
        }

        //Effettua il controllo sul campo NOME
        if ((nome != null) && ((nome == "") || (nome == "undefined") || !nome_reg_exp.test(nome))) {
           alert("Il campo Nome è obbligatorio e deve essere corretto.");
           document.validateForm.Nome.focus();
           return false;
        }

        //Effettua il controllo sul campo COGNOME
        else if ((cognome != null) && ((cognome == "") || (cognome == "undefined") || !nome_reg_exp.test(cognome))) {
           alert("Il campo Cognome è obbligatorio e deve essere corretto.");
           document.validateForm.Cognome.focus();
           return false;
        }

        //Effettua il controllo sil campo EMAIL
        else if((email != null) && ((!email_reg_exp.test(email)) || (email == "") || (email == "undefined"))) {
           alert("Inserire un indirizzo email corretto.");
           document.validateForm.Email.select();
           return false;
        }

	//Effettua il controllo sil campo CONFERMA EMAIL
	else if((confirmEmail != null) && ((confirmEmail == "") || (confirmEmail == "undefined"))) {
	   alert("Il campo Conferma Email è obbligatorio.");
	   document.validateForm.ConfirmEmail.select();
	   return false;
	}

	//Verifica l'uguaglianza tra i campi EMAIL e CONFERMA EMAIL
	else if ((confirmEmail != null) && (email != confirmEmail)) {
	   alert("L'indirizzo email confermato è diverso da quello scelto, controllare.");
	   document.validateForm.ConfirmEmail.value = "";
	   document.validateForm.ConfirmEmail.focus();
	   return false;
	}

        //Effettua il controllo sil campo EMAIL ORDINI
        else if((emailOrdini != null) && ((!email_reg_exp.test(emailOrdini)) || (emailOrdini == "") || (emailOrdini == "undefined"))) {
           alert("Inserire un indirizzo email corretto.");
           document.validateForm.EmailOrdini.select();
           return false;
        }

	//Effettua il controllo sil campo CONFERMA EMAIL ORDINI
	else if((confirmEmailOrdini != null) && ((confirmEmailOrdini == "") || (confirmEmailOrdini == "undefined"))) {
	   alert("Il campo Conferma Email è obbligatorio.");
	   document.validateForm.ConfirmEmailOrdini.select();
	   return false;
	}

	//Verifica l'uguaglianza tra i campi EMAIL ORDINI e CONFERMA EMAIL ORDINI
	else if ((confirmEmailOrdini != null) && (emailOrdini != confirmEmailOrdini)) {
	   alert("L'indirizzo email confermato è diverso da quello scelto, controllare.");
	   document.validateForm.ConfirmEmailOrdini.value = "";
	   document.validateForm.ConfirmEmailOrdini.focus();
	   return false;
	}

            //Effettua il controllo sil campo EMAIL CLIENTI
        else if((emailClienti != null) && ((!email_reg_exp.test(emailClienti)) || (emailClienti == "") || (emailClienti == "undefined"))) {
           alert("Inserire un indirizzo email corretto.");
           document.validateForm.EmailClienti.select();
           return false;
        }

	//Effettua il controllo sil campo CONFERMA EMAIL CLIENTI
	else if((confirmEmailClienti != null) && ((confirmEmailClienti == "") || (confirmEmailClienti == "undefined"))) {
	   alert("Il campo Conferma Email è obbligatorio.");
	   document.validateForm.ConfirmEmailClienti.select();
	   return false;
	}

	//Verifica l'uguaglianza tra i campi EMAIL CLIENTI e CONFERMA EMAIL CLIENTI
	else if ((confirmEmailClienti != null) && (emailClienti != confirmEmailClienti)) {
	   alert("L'indirizzo email confermato è diverso da quello scelto, controllare.");
	   document.validateForm.ConfirmEmailClienti.value = "";
	   document.validateForm.ConfirmEmailClienti.focus();
	   return false;
	}

    //Effettua il controllo sul campo PASSWORD
    else if ((password != null) && ((password == "") || (password == "undefined") || !psw_reg_exp.test)) {
        alert("Il campo Password è alfanumerico e obbligatorio.");
        document.validateForm.Password.focus();
        return false;
    }
    else if ((password != null) && (password.length < 8)){
        alert("La password deve contenere almeno 8 caratteri alfanumerici");
        document.validateForm.Password.focus();
        return false;
    }

        //Effettua il controllo sul campo CONFERMA PASSWORD
        else if ((confirmPassword != null) && ((confirmPassword == "") || (confirmPassword == "undefined") || !psw_reg_exp.test(confirmPassword))) {
           alert("Il campo Conferma password è alfanumerico e obbligatorio.");
           document.validateForm.ConfirmPassword.focus();
           return false;
        }
        //Verifica l'uguaglianza tra i campi PASSWORD e CONFERMA PASSWORD
        else if ((password != null) && (password != confirmPassword)) {
           alert("La password confermata è diversa da quella scelta, controllare.");
           document.validateForm.ConfirmPassword.value = "";
           document.validateForm.ConfirmPassword.focus();
           return false;
        }
        //Effettua il controllo sul campo DATA DI NASCITA
        else if ((nascita != null) && (document.validateForm.DataNascita.value.substring(2,3) != "/" ||
           document.validateForm.DataNascita.value.substring(5,6) != "/" ||
           isNaN(document.validateForm.DataNascita.value.substring(0,2)) ||
           isNaN(document.validateForm.DataNascita.value.substring(3,5)) ||
           isNaN(document.validateForm.DataNascita.value.substring(6,10)))) {
             alert("Inserire nascita in formato gg/mm/aaaa");
              document.validateForm.DataNascita.value = "";
              document.validateForm.DataNascita.focus();
              return false;
        }
        else if ((nascita != null) && (document.validateForm.DataNascita.value.substring(0,2) > 31)) {
           alert("Impossibile utilizzare un valore superiore a 31 per i giorni");
           document.validateForm.DataNascita.select();
           return false;
        }
        else if ((nascita != null) && (document.validateForm.DataNascita.value.substring(3,5) > 12)) {
           alert("Impossibile utilizzare un valore superiore a 12 per i mesi");
           document.validateForm.DataNascita.value = "";
           document.validateForm.DataNascita.focus();
           return false;
        }
        else if ((nascita != null) && (document.validateForm.DataNascita.value.substring(6,10) < 1900)) {
           alert("Impossibile utilizzare un valore inferiore a 1900 per l'anno");
           document.validateForm.DataNascita.value = "";
           document.validateForm.DataNascita.focus();
           return false;
        }
        else if (anni < 18) {
            alert("Per iscriverti devi essere maggiorenne.");
            return false;
        }
        //Effettua il controllo sul campo INDIRIZZO
        else if ((indirizzo == "") || (indirizzo == "undefined")) {
           alert("Il campo Via è obbligatorio.");
           document.validateForm.Indirizzo.focus();
           return false;
        }
        //Effettua il controllo sul campo LOCALITA'
        else if ((localita != null) && ((localita == "") || (localita == "undefined"))) {
          alert("Il campo Località è obbligatorio.");
          document.validateForm.Localita.focus();
          return false;
        }
        //Effettua il controllo sul campo PROVINCIA
        else if ((provincia == "") || (provincia == "undefined")) {
          alert("Il campo Provincia è obbligatorio.");
          document.validateForm.Provincia.focus();
          return false;
        }
        //Effettua il controllo sul campo CAP
        else if ((cap != null) && ((isNaN(cap)) || (cap == "") || (cap == "undefined"))) {
           alert("Il campo Cap è numerico ed obbligatorio.");
           document.validateForm.Cap.value = "";
           document.validateForm.Cap.focus();
           return false;
        }
        //Effettua il controllo sul campo NAZIONE
        else if ((nazione != null) && ((nazione == "") || (nazione == "undefined"))) {
          alert("Il campo Nazione è obbligatorio.");
          document.validateForm.Nazione.focus();
          return false;
        }
        //Effettua il controllo sul campo TELEFONO
        else if ((telefono != null) && ((!tel_reg_exp.test(telefono)) || (telefono == "") || (telefono == "undefined"))) {
           alert("Il campo Telefono è numerico ed obbligatorio.");
           document.validateForm.Telefono.value = "";
           document.validateForm.Telefono.focus();
           return false;
        }

        else{
        	return true;
        }
  }

// funzione che verifica la data di nascita
function calcola(strDate) {
// converte la data in formato americano mm/gg/aa per i caloli
	gg=strDate.substring(0,2)
	mm=strDate.substring(3,5)
	aa=strDate.substring(8,12)
	dataconv=mm+"/"+gg+"/"+aa
// crea 2 oggetti date. Uno con la data odierna e l'altro con la data inserita
	datanasc=new Date(dataconv)
	oggi=new Date()
// calola la differenza in millesecondi fra le 2 date
	mesims=oggi.getTime() - datanasc.getTime()
// converte i millisecondi in anni per stabilire l'età considerando ogni mese
// lungo 30.416 giorni che è la media ottenuta da 365 giorni divisi per 12 mesi
	anni=Math.floor((mesims / (1000 * 60 * 60 * 24 * 30.416)/12))
	return anni;
}

function validatePIVaCodFiscale() {
    var numPIva;
    if(document.validateForm.pIva){
        numPIva = document.validateForm.pIva.value;
    }
    numPIva =  trim(numPIva);

    //Effettua il controllo sul campo PIVA
    if ((numPIva != null) && ((numPIva == "") || (numPIva == "undefined"))) {
      alert("Il campo Partita Iva è obbligatorio.");
      document.validateForm.pIva.value = numPIva;
      document.validateForm.pIva.focus();
      return false;
    }
    else if ((numPIva != null) && (numPIva.length < 11)){
        alert("Attenzione!\r\nSe Partita Iva deve contenere 11 caratteri\r\nSe Codice Fiscale deve contenere 16 caretteri");
        document.validateForm.pIva.value = numPIva;
        document.validateForm.pIva.focus();
        return false;
    }
    else if ((numPIva != null) && (numPIva.length != 16) && (numPIva.length != 11)) {
        alert("Attenzione!\r\nSe Partita Iva deve contenere 11 caratteri\r\nSe Codice Fiscale deve contenere 16 caretteri");
        document.validateForm.pIva.value = numPIva;
        document.validateForm.pIva.focus();
        return false;
    }
    else {
        document.validateForm.pIva.value = numPIva;
	    return true;
    }
}

function validatePIVa() {
    var numPIva;
    if(document.pIvaForm.pIva){
        numPIva = document.pIvaForm.pIva.value;
    }
    numPIva =  trim(numPIva);

    //Effettua il controllo sul campo PIVA
    if ((numPIva != null) && ((numPIva == "") || (numPIva == "undefined"))) {
      alert("Il campo Partita Iva è obbligatorio.");
      document.pIvaForm.pIva.value = numPIva;
      document.pIvaForm.pIva.focus();
      return false;
    }
    else if ((numPIva != null) && (numPIva.length < 11)){
        alert("Attenzione!\r\nSe Partita Iva deve contenere 11 caratteri\r\nSe Codice Fiscale deve contenere 16 caretteri");
        document.pIvaForm.pIva.value = numPIva;
        document.pIvaForm.pIva.focus();
        return false;
    }
    else {
        document.pIvaForm.pIva.value = numPIva;
	    return true;
    }
}

function validateCFiscale() {
    var numCFiscale;
    if(document.pIvaForm.cFiscale){
        numCFiscale = document.pIvaForm.cFiscale.value;
    }
    numCFiscale =  trim(numCFiscale);

    //Effettua il controllo sul campo PIVA
    if ((numCFiscale != null) && ((numCFiscale == "") || (numCFiscale == "undefined"))) {
      alert("Il campo Partita Iva è obbligatorio.");
      document.pIvaForm.cFiscale.value = numCFiscale;
      document.pIvaForm.cFiscale.focus();
      return false;
    }
    else if ((numCFiscale != null) && (numCFiscale.length < 16)){
        alert("La Partita Iva deve contenere almeno 16 caratteri");
        document.pIvaForm.cFiscale.value = numCFiscale;
        document.pIvaForm.cFiscale.focus();
        return false;
    }
    else {
        document.pIvaForm.cFiscale.value = numCFiscale;
	    return true;
    }
}

function trim(str){
  return str.replace(/[" "]/g,"");
}