	function calcolaCarattereControllo(strCodFis)
	{
	 // calcola la cifra di controllo
	 //--------------------------------------------
		var somma=0;
			for (i=0; i<15; i++) 
				 {
					if (((i+1) % 2) != 0) //caratteri dispari
						{
						 switch (strCodFis.charAt(i)) 
									 {
										case '0':
										case 'A':{ somma += 1; break;}
										case '1':
										case 'B':{ somma += 0; break;}
										case '2':
										case 'C':{ somma += 5; break;}
										case '3':
										case 'D':{ somma += 7; break;}
										case '4':
										case 'E':{ somma += 9; break;}
										case '5':
										case 'F':{ somma += 13; break;}
										case '6':
										case 'G':{ somma += 15; break;}
										case '7':
										case 'H':{ somma += 17; break;}
										case '8':
										case 'I':{ somma += 19; break;}
										case '9':
										case 'J':{ somma += 21; break;}
										case 'K':{ somma += 2; break;}
										case 'L':{ somma += 4; break;}
										case 'M':{ somma += 18; break;}
										case 'N':{ somma += 20; break;}
										case 'O':{ somma += 11; break;}
										case 'P':{ somma += 3; break;}
										case 'Q':{ somma += 6; break;}
										case 'R':{ somma += 8; break;}
										case 'S':{ somma += 12; break;}
										case 'T':{ somma += 14; break;}
										case 'U':{ somma += 16; break;}
										case 'V':{ somma += 10; break;}
										case 'W':{ somma += 22; break;}
										case 'X':{ somma += 25; break;}
										case 'Y':{ somma += 24; break;}
										case 'Z':{ somma += 23; break;}
									 }
						} 
					else //caratteri pari
							{
								switch (strCodFis.charAt(i)) 
									 {
										case '0':
										case 'A':{ somma += 0; break;}
										case '1':
										case 'B':{ somma += 1; break;}
										case '2':
										case 'C':{ somma += 2; break;}
										case '3':
										case 'D':{ somma += 3; break;}
										case '4':
										case 'E':{ somma += 4; break;}
										case '5':
										case 'F':{ somma += 5; break;}
										case '6':
										case 'G':{ somma += 6; break;}
										case '7':
										case 'H':{ somma += 7; break;}
										case '8':
										case 'I':{ somma += 8; break;}
										case '9':
										case 'J':{ somma += 9; break;}
										case 'K':{ somma += 10; break;}
										case 'L':{ somma += 11; break;}
										case 'M':{ somma += 12; break;}
										case 'N':{ somma += 13; break;}
										case 'O':{ somma += 14; break;}
										case 'P':{ somma += 15; break;}
										case 'Q':{ somma += 16; break;}
										case 'R':{ somma += 17; break;}
										case 'S':{ somma += 18; break;}
										case 'T':{ somma += 19; break;}
										case 'U':{ somma += 20; break;}
										case 'V':{ somma += 21; break;}
										case 'W':{ somma += 22; break;}
										case 'X':{ somma += 23; break;}
										case 'Y':{ somma += 24; break;}
										case 'Z':{ somma += 25; break;}
									 }
							}
			}
		 somma %= 26;
		 switch (somma) 
					 {
						case 0: {chrcontrollo='A'; break;}
						case 1: {chrcontrollo='B'; break;}
						case 2: {chrcontrollo='C'; break;}
						case 3: {chrcontrollo='D'; break;}
						case 4: {chrcontrollo='E'; break;}
						case 5: {chrcontrollo='F'; break;}
						case 6: {chrcontrollo='G'; break;}
						case 7: {chrcontrollo='H'; break;}
						case 8: {chrcontrollo='I'; break;}
						case 9: {chrcontrollo='J'; break;}
						case 10: {chrcontrollo='K'; break;}
						case 11: {chrcontrollo='L'; break;}
						case 12: {chrcontrollo='M'; break;}
						case 13: {chrcontrollo='N'; break;}
						case 14: {chrcontrollo='O'; break;}
						case 15: {chrcontrollo='P'; break;}
						case 16: {chrcontrollo='Q'; break;}
						case 17: {chrcontrollo='R'; break;}
						case 18: {chrcontrollo='S'; break;}
						case 19: {chrcontrollo='T'; break;}
						case 20: {chrcontrollo='U'; break;}
						case 21: {chrcontrollo='V'; break;}
						case 22: {chrcontrollo='W'; break;}
						case 23: {chrcontrollo='X'; break;}
						case 24: {chrcontrollo='Y'; break;}
						case 25: {chrcontrollo='Z'; break;}
					 }
		
	 return chrcontrollo;
}


function Anagraf()	{
	var MyForm	= document.thor;
	if (MyForm.pd_surname.value == "") {
		alert('Inserisci un Cognome');
		MyForm.pd_surname.focus();
		return false;
	}
	if (MyForm.pd_name.value == "") {
		alert('Inserisci un Nome');
		MyForm.pd_name.focus();
		return false;
	}
	if (MyForm.pd_birthplace.value == "") {
		alert('Inserisci un luogo di nascita');
		MyForm.pd_birthplace.focus();
		return false;
	}
	//	EMAIL
	Filtro = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;
	EmailAddr = MyForm.pd_email.value;
	if (Filtro.test(EmailAddr) == false) {
		alert("Controlla l'indirizzo di e-mail inserito");
		MyForm.pd_email.focus();
		return false;
	}
	// Data
	// Insert Data in this format: gg/mm/aaaa 
	// From Bitbucket Heaven
	// Modified by []==ThoR for More Interactive (http://www.more.it/)

	var datePat = /^(\d{2})(\/)(\d{1,2})(\/)(\d{4})$/;
	DataNascita	= MyForm.pd_birthdate.value;
    var matchArray01 = DataNascita.match(datePat); 		//dateStr.match(datePat); is the format ok?

    if ( (matchArray01 == null) || (DataNascita == "")  ){
        alert("Inserisci una data valida nel seguente formato: gg/mm/aaaa");
		MyForm.pd_birthdate.focus();
        return false;
    }
	
	if  (DataNascita <'01/01/1900') {
	alert('Attenzione, non puoi inserire date precedenti 01/01/1900');
	return false;
	}
	
	var fc=MyForm.pd_fiscalcode.value;
	fc = fc.toUpperCase();
	if (!(fc.length == 16 && calcolaCarattereControllo(fc)==fc.substr(15, 1))) {
		alert('Il codice fiscale non è valido.');
		MyForm.pd_fiscalcode.focus();
		return false;
	}
	
	return true;
	//MyForm.submit();
}

function DatiSped()	{
	var MyForm	= document.thor;
	if (MyForm.sd_surname.value == "") {
		alert('Inserisci un Cognome');
		MyForm.sd_surname.focus();
		return false;
	}
	if (MyForm.sd_name.value == "") {
		alert('Inserisci un Nome');
		MyForm.sd_name.focus();
		return false;
	}
	if (MyForm.sd_address.value == "") {
		alert('Inserisci un luogo di spedizione');
		MyForm.sd_address.focus();
		return false;
	}
	Num	= /^([0-9])+$/;
	NumCivico = MyForm.sd_addressnumber.value;
	//var matchArray01 = NumCivico.match(Num);
	if (NumCivico == "") {
        alert("Inserisci un numero civico");
		MyForm.sd_addressnumber.focus();
        return false;
    }
	if (MyForm.sd_city.value == "") {
		alert('Inserisci una citta');
		MyForm.sd_city.focus();
		return false;
	}
	Num	= /^([0-9]{5})+$/;
	CAP = MyForm.sd_zipcode.value;
	var matchArray02 = CAP.match(Num);
	if ( (matchArray02 == null) || (CAP == "") ){
        alert("Inserisci un CAP");
		MyForm.sd_zipcode.focus();
        return false;
    }
	Num	= /^([0-9])+$/;
	Tel = MyForm.sd_phonenumber.value;
	var matchArray03 = Tel.match(Num);
	if  ((matchArray03 == null) || (Tel == "" )) {
        alert("Inserisci un numero di telefono valido senza spazio tra le cifre e di formato numerico. (es:02123456)");
		MyForm.sd_phonenumber.focus();
        return false;
    }
	return true;
	//MyForm.submit();
}

function Fattura()	{
	var MyForm	= document.thor;
	if (MyForm.id_surname.value == "") {
		alert('Inserisci un Cognome');
		MyForm.id_surname.focus();
		return false;
	}
	if (MyForm.id_name.value == "") {
		alert('Inserisci un Nome');
		MyForm.id_name.focus();
		return false;
	}
	if (MyForm.id_address.value == "") {
		alert('Inserisci un luogo di spedizione');
		MyForm.id_address.focus();
		return false;
	}
	Num	= /^([0-9])+$/;
	NumCivico = MyForm.id_addressnumber.value;
	//var matchArray01 = NumCivico.match(Num);
	if (NumCivico == ""){
        alert("Inserisci un numero civico");
		MyForm.id_addressnumber.focus();
        return false;
    }
	if (MyForm.id_city.value == "") {
		alert('Inserisci una citta');
		MyForm.id_city.focus();
		return false;
	}
	Num	= /^([0-9]{5})+$/;
	CAP = MyForm.id_zipcode.value;
	var matchArray02 = CAP.match(Num);
	if ( (matchArray02 == null) || (CAP == "") ){
        alert("Inserisci un CAP");
		MyForm.id_zipcode.focus();
        return false;
    }
	
	var fc=MyForm.id_fiscalcode.value;
	if (!(fc.length == 11 || fc.length == 16)) {
		alert('Il Codice fiscale / Partita IVA non è valido.');
		MyForm.id_fiscalcode.focus();
		return false;
	}
	
	if (fc.length == 16) {
		fc = fc.toUpperCase();
		if (!(fc.length == 16 && calcolaCarattereControllo(fc)==fc.substr(15, 1))) {
			alert('Il codice fiscale non è valido.');
			MyForm.id_fiscalcode.focus();
			return false;
		}
	}
	
	if (fc.length == 11) {
		Num	= /^([0-9]{11})+$/;
		var match = fc.match(Num);
		if (match == null) {
			alert('La Partita IVA non è valida.');
			MyForm.id_fiscalcode.focus();
			return false;
		}
	}
	
	return true;
	//MyForm.submit();
}