function ControllaCodiceFiscale(Stringa) {
	var Somma = 0;
	var Resto = 0;
	var CarattereControllo = '';
	var LeftPari = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
	var LeftDispari = 'BAKPLCQDREVOSFTGUHMINJWZYX';
	var Dispari = '10   2 3 4   5 6 7 8 9';
	
	if (Stringa.length != 16) {
		// alert('- 1 -');
		return false;
	} else {
		Stringa = Stringa.toUpperCase();
		for (i = 1; i <= 16; i++) {
			if (((Stringa.substring(i - 1, i)).match(/\[A-Z]/)) || ((Stringa.substring(i - 1, i)).match(/\[0-9]/))) {
				// alert('- 2 -');
				return false;
			}
			if ((i <= 6) || (i == 9) || (i == 12) || (i == 16)) {
				if (Stringa.substring(i - 1, i).match(/\[0-9]/)) {
					// alert('- 3 -');
					return false;
				}					
			}
		}
		
		for (i = 1; i <= 15; i++) {
			if ((i % 2) == 0 ) {
				if (isNaN(Stringa.substring(i - 1, i))) {
					Somma = Somma + LeftPari.search(Stringa.substring(i - 1, i));
				} else {
					Somma = Somma + ((Stringa.substring(i - 1, i)) / 1);
				}
			} else {
				if (isNaN(Stringa.substring(i - 1, i))) {
					Somma = Somma + LeftDispari.search(Stringa.substring(i - 1, i));
				} else {
					Somma = Somma + Dispari.search(Stringa.substring(i - 1, i));
				}
			}
		}
		
		Resto = Somma % 26;
		CarattereControllo = LeftPari.substring(Resto, Resto + 1);
		if (CarattereControllo != Stringa.substring(15, 16)) {
			// alert('Il carattere di controllo non corretto...');
			// alert('- 4 -');
			return false;
		}
		
		return true;
	}
}
