// variabili globali
var vgCampoErrore = "";

function Salva() {
    with (document.forms[0]) {
        // Controllo i campi obbligatori
        if (!VerificaCampi("GuesDNome:GuesDCognome:GuesDEmail:GuesDTitolo:GuesDTesto", "Nome:Cognome:Email:Titolo:Messaggio"))
            return;

        // verifico l'indirizzo email
        if (GuesDEmail.value != "" && GuesDEmail.value != null)
            if (!VerificaMail("GuesDEmail"))
                return;

        // verifico la liberatoria
        if (!disclaimer[0].checked) {
            alert("ATTENZIONE: E' necessario acconsentire al trattamento dei dati \nper poter inserire un messaggio nel nostro Guestbook!");
            disclaimer[0].focus();
            return;
        }

        COMANDO.value="salva";
        submit();
    }
}


/* Mirko
Salvataggio dati mailing
*/
function SalvaMailing() {

            // controllo che venga selezionata almeno un tema
            var selezionato=false;
            
            nomeForm = document.forms[0].name;
            
            elementiForm = document.forms[nomeForm].elements.length;
            
//            alert('Mirko' + nomeForm + elementiForm + document.forms[nomeForm].elements[0].name);

            for (i=0;i<elementiForm;i++){

                if(document.forms[nomeForm].elements[i].name.substring(0,9)=="MailFTemi"){
                    if (document.forms[nomeForm].elements[i].checked){
                        selezionato=true;
                    }
				}// fine if
            }// fine for
            if (!selezionato) {
                alert('non č stato specificato alcun tema');
                return;
            }

    with (document.forms[0]) {
        // Controllo i campi obbligatori
        if (!VerificaCampi("MailDNome:MailDCognome:MailDMail", "Nome:Cognome:Email"))
            return;

        // verifico l'indirizzo email
        if (MailDMail.value != "" && MailDMail.value != null)
            if (!VerificaMail("MailDMail"))
                return;

        COMANDO.value="salva";
        submit();
    }
}

/* salvo gli utenti */
function SalvaUtente() {

 flag = 0;

    with (document.forms['iscrizione']) {
    
//    alert(UtenDPiva.value);
//    alert(UtenDCodFis.value);

            if (UtenDPiva.value=='' && UtenDCodFis.value==''){
				alert("ATTENZIONE:\n Almeno un campo P.iva o Cod.fis deve essere compilato!");
				return;            
            }
            
            if (UtenDPiva.value!='' && UtenDPiva.value.length < 11){ 
	        	alert("ATTENZIONE:\n Il campo P.iva non č compilato correttamente");
	        	return;
            }
            
            if (UtenDCodFis.value!='' && UtenDCodFis.value.length < 16){ 
	        	alert("ATTENZIONE:\n Il campo Cod.Fis non č compilato correttamente");
	        	return;
            }   
        
    
    for(z=0;z<UtenDTipo.length; z++){
    if(UtenDTipo[z].checked){
    	flag = 1;
    }// fine if
    }//fine for
    
    if(flag==0){
    	alert("ATTENZIONE:\n Scegliere la tipologia utente.");
    	return;
    }// fine if
    
    /*
            if(!(UtenDAbi.value=="" && UtenDCab.value=="" && UtenDBanca.value=="") && !(UtenDAbi.value!="" && UtenDCab.value!="" && UtenDBanca.value!="")){
            alert("ATTENZIONE:\n I campi Conto, Abi, Cab non compilati correttamente");
            return;
            } 
     */       
        // Controllo i campi obbligatori
        
        if (!VerificaCampi("UtenDNome:UtenDCognome:UtenDEmail:UtenDUsername:UtenDIndirizzo:UtenDCitta:UtenDCap:UtenDRisposta:UtenCProvincia:UtenDDomanda", "Nome:Cognome:Email:Username:Indirizzo:Cittā:Cap:Risposta:Provincia:Domanda"))
            return;

        // verifico l'indirizzo email
        if (UtenDEmail.value != "" && UtenDEmail.value != null)
            if (!VerificaMail("UtenDEmail"))
                return;
                
           if (UtenDUsername.value.length < 6){ 
	        	alert("ATTENZIONE:\n Il campo Username deve avere almeno 6 caratteri");   
	        	return;
            }
                
        if (!disclaimer[0].checked) {
            alert("ATTENZIONE: E' necessario acconsentire al trattamento dei dati \nper poter iscriversi al Club!");
            disclaimer[0].focus();
            return;
        }
            // verifico il cap
            if (UtenDCap.value != "")
                if (!VerificaCAP("UtenDCap"))
                     return;

            // verifico il telefono
            if (UtenDTelefono.value != "")
                if (!VerificaTelefono("UtenDTelefono"))
                     return
                     
        submit();
    }
}

/* modifico gli utenti */
function ModificaUtente() {

    with (document.forms[0]) {
        // Controllo i campi obbligatori
        if (!VerificaCampi("UtenDNome:UtenDCognome:UtenDEmail:UtenDIndirizzo:UtenDCitta:UtenDCap:UtenDRisposta:UtenCProvincia:UtenDDomanda", "Nome:Cognome:Email:Indirizzo:Cittā:Cap:Risposta:Provincia:Domanda"))
            return;

        // verifico l'indirizzo email
        if (UtenDEmail.value != "" && UtenDEmail.value != null)
            if (!VerificaMail("UtenDEmail"))
                return;
                
            // verifico il cap
            if (UtenDCap.value != "")
                if (!VerificaCAP("UtenDCap"))
                     return;

            // verifico il telefono
            if (UtenDTelefono.value != "")
                if (!VerificaTelefono("UtenDTelefono"))
                     return;	
        submit();
    }
}

/*================================================
 * FUNZIONE: VerificaCampo
 * INGRESSO: campo da testare, stringa con cui
 * fare il match, stringa in caso di errore.
 * USCITA: vero se il campo rispetta la sintassi
 * della prima stringa passata, falso altrimenti.
 * VARIABILI GLOBALI USATE: vgCampoErrore.
 * VARIABILI GLOBALI MODIFICATE: vgCampoErrore.
 * DESCRIZIONE: verifica che il formato del campo
 * passato corrisponda alla stringa passata. Se il
 * formato non corrisponde viene visualizzato il
 * messaggio di errore passato
 *================================================*/
function VerificaCampo(Campo, MatchStr, ErrorMsg) {
         pText = document.forms[0][Campo];
         sText = pText.value;
         if (sText.search(MatchStr) == -1) {
          alert(ErrorMsg);
          pText.focus();
          return false;
         }
         return true;
}

/*================================================
 * FUNZIONE: VerificaMail
 * INGRESSO: campo da testare.
 * USCITA: vero se il campo contiene un indirizzo
 * e-mail.
 * VARIABILI GLOBALI USATE: nessuna.
 * VARIABILI GLOBALI MODIFICATE: nessuna.
 * DESCRIZIONE: verifica che il campo passato
 * contenga un indirizzo e-mail.
 *================================================*/
function VerificaMail(Campo) {
        return VerificaCampo(Campo, /^\w+([\.\-]\w+)*@\w+([\.\-]\w+)*\.\w+$/,
                "L'indirizzo di e-mail deve essere nel formato nome@dominio.");
}

/*================================================
 * FUNZIONE: VerificaCampi
 * INGRESSO: nome del campo.
 * USCITA: true se esiste una selezione, false
 * altrimenti.
 * VARIABILI GLOBALI USATE: nessuna.
 * VARIABILI GLOBALI MODIFICATE: nessuna.
 * DESCRIZIONE: verifica che il campo passato abbia
 * almeno una selezione.
 *================================================*/
function VerificaCampi(ListaCampi, ListaDescrizioni) {
    var CampiOb;

    // crea il vettore dei campi da controllare
    CampiOb = ListaCampi.split(":");
    NomeCampi = ListaDescrizioni.split(":");

    NomeForm = document.forms[0];

    // se uno dei campi e' vuoto visualizza l'errore
    // e restituisce falso
    for (i=0; i < CampiOb.length; i++) {
        if (NomeForm[CampiOb[i]].value == "" &&
           NomeForm[CampiOb[i]].type != "submit" &&
           NomeForm[CampiOb[i]].type != "reset" &&
           NomeForm[CampiOb[i]].type != "button" &&
           NomeForm[CampiOb[i]].type != "hidden" &&
           NomeForm[CampiOb[i]].type != "select") {

            alert("Il campo " + NomeCampi[i] + " č vuoto!");
            NomeForm[CampiOb[i]].focus();
            return false;
        }

        if (NomeForm[CampiOb[i]].type == "select")
            if (NomeForm[CampiOb[i]].options.selectedIndex == "" ||
               NomeForm[CampiOb[i]].options.selectedIndex == -1) {

                alert("Il campo " + NomeCampi[i] + " č vuoto!");
                NomeForm[CampiOb[i]].focus();
                return false;
            }
        }
        // i campi richiesti sono ok!
        return true;
}

/*================================================
 * FUNZIONE: VerificaTelefono
 * INGRESSO: campo da testare.
 * USCITA: vero se il campo contiene un numero di
 * telefono.
 * VARIABILI GLOBALI USATE: nessuna.
 * VARIABILI GLOBALI MODIFICATE: nessuna.
 * DESCRIZIONE: verifica che il campo passato
 * contenga un numero di telefono valido.
 *================================================*/
function VerificaTelefono(Campo) {
    return VerificaCampo(Campo, /^\d\d+[\-\\\/ ]?\d+$/,
        "Il numero deve essere composto da sole cifre seaprate\n" +
        "al piu' dal carattere '-', '/', ' ' o '\\'.");
}

/*================================================
 * FUNZIONE: VerificaCAP
 * INGRESSO: campo da testare.
 * USCITA: vero se il campo contiene un numero.
 * VARIABILI GLOBALI USATE: nessuna.
 * VARIABILI GLOBALI MODIFICATE: nessuna.
 * DESCRIZIONE: verifica che il campo passato
 * contenga un numero valido.
 *================================================*/
function VerificaCAP(Campo) {
        return VerificaCampo(Campo, /^\d{5}$/,
                "Il CAP deve essere composto da cinque cifre.");
}

/* funzione controllo password */
function ricordapass() {

    with (document.forms[0]) {
        // Controllo i campi obbligatori
        if (!VerificaCampi("UtenDUsername:UtenDDomanda:UtenDRisposta", "Username:Domanda:Risposta"))
            return;
        submit();
    } 
}

/* Mirko */
/* funzione che apre la finestra centralmente */

function apriFinestra(name, larghezza, altezza){

var x = (screen.width -larghezza)/2

var y = (screen.height - altezza)/2

var finestra=window.open(name,'credits','width=' + larghezza +',height=' + altezza + ', toolbar=no,directories=no, location=no, status=no, menubar=no, copyhistory=no, scrollbars=no, resizable=no')

finestra.moveTo(x,y);

finestra.focus();

}

function VerificaIva(campoIva) {
    pi = campoIva.value;
    if( pi == '' )
        return true;
        
	if( pi.length != 11 ) {  
        campoIva.focus();
		alert(" La partita IVA deve essere lunga esattamente 11 caratteri. ");
	    return false;
	}
	validi = "0123456789";
	for( i = 0; i < 11; i++ )
		if( validi.indexOf( pi.charAt(i) ) == -1 ){  
        	campoIva.focus();
			alert("La partita IVA contiene il carattere '" +
				pi.charAt(i) + "'.\nIl codice dev'essere composto da sole cifre.\n");
	        return false;
		}
	s = 0;
	for( i = 0; i <= 9; i += 2 )
		s += pi.charCodeAt(i) - '0'.charCodeAt(0);
	for( i = 1; i <= 9; i += 2 ){
		c = 2*( pi.charCodeAt(i) - '0'.charCodeAt(0) );
		if( c > 9 )  c = c - 9;
		s += c;
	}
	if( ( 10 - s%10 )%10 != pi.charCodeAt(10) - '0'.charCodeAt(0) ){  
        campoIva.focus();
		alert("La partita IVA non č valida:\n" +
			"il codice di controllo non corrisponde. \n");
	    return false;
	}
	return true;
}
