function ControllaCF(Obj, fiscale)
{
if (fiscale.length=0)
{
return true;
}

if (fiscale.length>0 &&(fiscale.length<16))
{
alert("Lungheza del codice fiscale errata.");
fiscale==""
Obj.value=""
}
if (fiscale.length>0)
{
var cost="010005070913151719210100050709131517192102041820110306081214161022252423";
var alfabeto="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var numeri="0123456789";
var numero1=0;
var numero2=0;

for(var w=2;w<15;w+=2)
{
var car=fiscale.substring(w-1,w);
if(alfabeto.indexOf(car)>-1)
numero1=numero1+alfabeto.indexOf(car);
else
numero1=numero1+eval(car);
}
for(var w=1;w<16;w+=2)
{
car=fiscale.substring(w-1,w);
if(alfabeto.indexOf(car)>-1)
n=alfabeto.indexOf(car)+11;
else
n=numeri.indexOf(car)+1;
numero2=numero2+eval(cost.substring((n*2)-2,((n*2))));
}

if(fiscale.substring(15,16)!=alfabeto.charAt((numero1+numero2)%26))
alert("Codice fiscale errato");
}
}

function PrelevaDatidalCF(obj, text, objSesso, objDataNasc, objLuogNasc)
{
var cf;
var sesso;
var giornonascita;
var annonascita;
var mesenascita;
var datanascita;
var luogonascita;

datanascita = "";
 
cf = text;
	
	if (cf.length == 16) {
		sesso = cf.substring(9,11);
		}
	if (sesso.length == 0){
			sesso="";
		}
	if (sesso > 40)  {
			sesso="F";
		}
		
	if (sesso < 40) {
			sesso="M";
		}
	objSesso.value = sesso;

if (cf.length == 16) {
		giornonascita = cf.substring(9,11);
		mesenascita = cf.substring(8,9);
		annonascita = cf.substring(6, 8);
		}
		
	if (giornonascita>40)  {
			giornonascita=giornonascita-40;
	}
	else {
			giornonascita=giornonascita;
		}
	
	if (giornonascita>31){
	alert("Data della nascita è invalida.");
	obj.focus();
	return false;
	}
	
	if (mesenascita == "A") {
	mesenascita = "01";
	
	 }
	  
	else if (mesenascita == "B") { 
	mesenascita = "02";
	}
	
	else if (mesenascita == "C") { 
	mesenascita = "03";
	}
	
	else if (mesenascita == "D") { 
	mesenascita = "04";
	}
	
	else if (mesenascita == "E") { 
	mesenascita = "05";
	}
	
	else if (mesenascita == "H") { 
	mesenascita = "06";
	}
	
	else if (mesenascita == "L") { 
	mesenascita = "07";
	}
	
	else if (mesenascita == "M") { 
	mesenascita = "08";
	}
	
	else if (mesenascita == "P") { 
	mesenascita = "09";
	}
	
	else if (mesenascita == "Q") { 
	mesenascita = "10";
	}
	
	else if (mesenascita == "S") { 
	mesenascita = "11";
	}
	
	else if (mesenascita == "T") { 
	mesenascita = "12";
	}
	
	else {
	mesenascita = "01"
	alert("Mese non è valido.");
	obj.focus();
	}
	
	if (annonascita > "05")
			{
				annonascita = "19" + annonascita.substring(0,2) ;
			}
			else
			{
				annonascita = "20" + annonascita.substring(0,2) ;
			}
	
	datanascita = giornonascita + "/" + mesenascita + "/" + annonascita;
	objDataNasc.value = datanascita;

	luogonascita = cf.substring(11, 15);
	objLuogNasc.value = luogonascita;
	
}


function controllaCognome(objCf, codicefiscale, objCognome, text)
{

var i;
var isValid;
var result;
var useful;
var cognome;
var cognomelength;
var consonanti;
var vocali;
cognome = text;

consonanti = "BCDFGHJKLMNPQRSTVWXYZ";
vocali = "AEIOU";

cognome = cognome.toUpperCase();
result = "";
useful = "";
cognomelength = cognome.length;
     
	for(i=0;i<=cognomelength;i++) { 
        if (consonanti.indexOf(cognome.substring(i, i+1))>-1) {
        result = result + cognome.substring(i, i+1)
        }
	}
	
	for(i=0;i<=cognomelength;i++) { 
		if (vocali.indexOf(cognome.substring(i, i+1))>-1) {
        useful = useful + cognome.substring(i, i+1)
        }		
	}
		
	if (result.length == 1) {
		cognome = result + useful.substring(0,1) + "X"      
    }
    if (result.length == 2) {
		cognome = result + useful.substring(0,1)
    }      
    if (result.length == 3) {
		cognome = result.substring(0, 3)
	}	
	if (result.length > 3) {
		cognome = result.substring(0, 3)
	} 
	
	if(codicefiscale.substring(0,3)==cognome){
	isValid = true;
	}
	else {
	isValid = false;
	alert("Codice fiscale e cognome non corrispondono!");
	objCognome.focus();
	}
}


function controllaNome(objCf, codicefiscale, objNome, text)
{
var i;
var isValid;
var result;
var useful;
var nome;
var nomelength;
var consonanti;
var vocali;
nome = text;

	
consonanti = "BCDFGHJKLMNPQRSTVWXYZ";
vocali = "AEIOU";

nome = nome.toUpperCase();
result = "";
useful = "";
nomelength = nome.length;

	 
	for(i=0;i<=nomelength;i++) { 
        if (consonanti.indexOf(nome.substring(i, i+1))>-1) {
        result = result + nome.substring(i, i+1)
        }
	}
	
	
	for(i=0;i<=nomelength;i++) { 
		if (vocali.indexOf(nome.substring(i, i+1))>-1) {
        useful = useful + nome.substring(i, i+1)
        }		
	}
    
    if (result.length == 1) {
		nome = result + useful.substring(0,1) + "X"      
    }
    if (result.length == 2) {
		nome = result + useful.substring(0,1)
    }      
    if (result.length == 3) {
		nome = result.substring(0, 3)
	}	
	if (result.length > 3) {
		nome = result.substring(0, 1) + result.substring(2,3) + result.substring(3,4)
	} 
	
	if(codicefiscale.substring(3,6)==nome){
	isValid = true;
	}
	else {
	isValid = false;
	alert("Codice fiscale e nome non corrispondono!");
	objNome.focus();
	}
}

function CostruisciCF(txtcognome, txtnome, txtannonascita, txtmesenascita, txtgiornonascita, txtsesso, txtluogonascita, oggettodascrivere)
{
var validsex = "MF";

if (txtcognome.length==0)
{
alert("Scrivere il cognome.");
return false;
}

if (txtnome.length==0)
{
alert("Scrivere il nome.");
return false;
}

if (txtgiornonascita.length==0)
{
alert("Scrivere il giorno di nascita.");
return false;
}

if (txtmesenascita.length==0)
{
alert("Scrivere il mese di nascita.");
return false;
}

if (txtannonascita.length==0)
{
alert("Scrivere l'anno di nascita.");
return false;
}

if (txtsesso.length==0)
{
alert("Scrivere il sesso.");
return false;
}

if (validsex.indexOf(txtsesso.charAt(0))<0)
{
alert("Scrivere il sesso correttamente.");
return false;
}

if (txtluogonascita.length==0)
{
alert("Scrivere il luogo di nascita.");
return false;
}

var firstthreecognome = getfirstthreeCognome(txtcognome);
var firstthreenome = getfirstthreeNome(txtnome);
var annonascita = txtannonascita;
var mesenascita = getMonthofBirth(txtmesenascita);
var datanascita = getDateofBirth(txtgiornonascita, txtsesso)
var luogonascita = txtluogonascita;
var quindicicaratteri =(firstthreecognome+firstthreenome+annonascita+mesenascita+datanascita+luogonascita)
var lastletter = getLastLetter(quindicicaratteri);

oggettodascrivere.value=quindicicaratteri+lastletter;
oggettodacrivere.focus();

}

function getfirstthreeCognome(txtCognome)
{
var i;
var isValid;
var result;
var useful;
var cognome;
var cognomelength;
var consonanti;
var vocali;
cognome = txtCognome;

consonanti = "BCDFGHJKLMNPQRSTVWXYZ";
vocali = "AEIOU";

cognome = cognome.toUpperCase();
result = "";
useful = "";
cognomelength = cognome.length;
     
	for(i=0;i<=cognomelength;i++) { 
        if (consonanti.indexOf(cognome.substring(i, i+1))>-1) {
        result = result + cognome.substring(i, i+1)
        }
	}
	
	for(i=0;i<=cognomelength;i++) { 
		if (vocali.indexOf(cognome.substring(i, i+1))>-1) {
        useful = useful + cognome.substring(i, i+1)
        }		
	}
		
	if (result.length == 1) {
		cognome = result + useful.substring(0,1) + "X"      
    }
    if (result.length == 2) {
		cognome = result + useful.substring(0,1)
    }      
    if (result.length == 3) {
		cognome = result.substring(0, 3)
	}	
	if (result.length > 3) {
		cognome = result.substring(0, 3)
	} 
	
	return cognome	
}


function getfirstthreeNome(txtNome)
{

var i;
var isValid;
var result;
var useful;
var nome;
var nomelength;
var consonanti;
var vocali;
nome = txtNome;

	
consonanti = "BCDFGHJKLMNPQRSTVWXYZ";
vocali = "AEIOU";

nome = nome.toUpperCase();
result = "";
useful = "";
nomelength = nome.length;

	 
	for(i=0;i<=nomelength;i++) { 
        if (consonanti.indexOf(nome.substring(i, i+1))>-1) {
        result = result + nome.substring(i, i+1)
        }
	}
	
	
	for(i=0;i<=nomelength;i++) { 
		if (vocali.indexOf(nome.substring(i, i+1))>-1) {
        useful = useful + nome.substring(i, i+1)
        }		
	}
    
    if (result.length == 1) {
		nome = result + useful.substring(0,1) + "X"      
    }
    if (result.length == 2) {
		nome = result + useful.substring(0,1)
    }      
    if (result.length == 3) {
		nome = result.substring(0, 3)
	}	
	if (result.length > 3) {
		nome = result.substring(0, 1) + result.substring(2,3) + result.substring(3,4)
	} 
	
	return nome
	
}

function getMonthofBirth(txtMeseNascita)
{

var mesenascita = txtMeseNascita;

if (mesenascita == "01") {
	mesenascita = "A";
	
	 }
	  
	else if (mesenascita == "02") { 
	mesenascita = "B";
	}
	
	else if (mesenascita == "03") { 
	mesenascita = "C";
	}
	
	else if (mesenascita == "04") { 
	mesenascita = "D";
	}
	
	else if (mesenascita == "05") { 
	mesenascita = "E";
	}
	
	else if (mesenascita == "06") { 
	mesenascita = "H";
	}
	
	else if (mesenascita == "07") { 
	mesenascita = "L";
	}
	
	else if (mesenascita == "08") { 
	mesenascita = "M";
	}
	
	else if (mesenascita == "09") { 
	mesenascita = "P";
	}
	
	else if (mesenascita == "10") { 
	mesenascita = "Q";
	}
	
	else if (mesenascita == "11") { 
	mesenascita = "S";
	}
	
	else if (mesenascita == "12") { 
	mesenascita = "T";
	}
	
	return mesenascita
}

function getDateofBirth(txtgiornonascita, txtsesso)
{
var giornonascita = txtgiornonascita;
var sesso = txtsesso;
var datanascita;

if (sesso == "M")  {
	datanascita=giornonascita;
		}
		
	if (sesso == "F") {
		datanascita = parseInt(giornonascita);
		datanascita=datanascita+40;
		}
		
return datanascita

}

function getLastLetter(quindicicaratteri)
{
var lastletter;

if (quindicicaratteri.length=15)
{
var fiscale = quindicicaratteri;
var cost="010005070913151719210100050709131517192102041820110306081214161022252423";
var alfabeto="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var numeri="0123456789";
var numero1=0;
var numero2=0;

for(var w=2;w<15;w+=2)
{
var car=fiscale.substring(w-1,w);
if(alfabeto.indexOf(car)>-1)
numero1=numero1+alfabeto.indexOf(car);
else
numero1=numero1+eval(car);
}

for(var w=1;w<16;w+=2)
{
car=fiscale.substring(w-1,w);
if(alfabeto.indexOf(car)>-1)
n=alfabeto.indexOf(car)+11;
else
n=numeri.indexOf(car)+1;
numero2=numero2+eval(cost.substring((n*2)-2,((n*2))));
}
lastletter = alfabeto.charAt((numero1+numero2)%26)
return lastletter;
}
}
