function GetValueA (car) {
if (car=="A" || car=="0") return 0;
if (car=="B" || car=="1") return 1;
if (car=="C" || car=="2") return 2;
if (car=="D" || car=="3") return 3;
if (car=="E" || car=="4") return 4;
if (car=="F" || car=="5") return 5;
if (car=="G" || car=="6") return 6;
if (car=="H" || car=="7") return 7;
if (car=="I" || car=="8") return 8;
if (car=="J" || car=="9") return 9;
if (car=="K") return 10;
if (car=="L") return 11;
if (car=="M") return 12;
if (car=="N") return 13;
if (car=="O") return 14;
if (car=="P") return 15;
if (car=="Q") return 16;
if (car=="R") return 17;
if (car=="S") return 18;
if (car=="T") return 19;
if (car=="U") return 20;
if (car=="V") return 21;
if (car=="W") return 22;
if (car=="X") return 23;
if (car=="Y") return 24;
if (car=="Z") return 25;
}

function GetValueB (car) {
if (car=="A" || car=="0") return 1;
if (car=="B" || car=="1") return 0;
if (car=="C" || car=="2") return 5;
if (car=="D" || car=="3") return 7;
if (car=="E" || car=="4") return 9;
if (car=="F" || car=="5") return 13;
if (car=="G" || car=="6") return 15;
if (car=="H" || car=="7") return 17;
if (car=="I" || car=="8") return 19;
if (car=="J" || car=="9") return 21;
if (car=="K") return 2;
if (car=="L") return 4;
if (car=="M") return 18;
if (car=="N") return 20;
if (car=="O") return 11;
if (car=="P") return 3;
if (car=="Q") return 6;
if (car=="R") return 8;
if (car=="S") return 12;
if (car=="T") return 14;
if (car=="U") return 16;
if (car=="V") return 10;
if (car=="W") return 22;
if (car=="X") return 25;
if (car=="Y") return 24;
if (car=="Z") return 23;
}

function GetValueC (num) {
if (num==0) return "A";
if (num==1) return "B";
if (num==2) return "C";
if (num==3) return "D";
if (num==4) return "E";
if (num==5) return "F";
if (num==6) return "G";
if (num==7) return "H";
if (num==8) return "I";
if (num==9) return "J";
if (num==10) return "K";
if (num==11) return "L";
if (num==12) return "M";
if (num==13) return "N";
if (num==14) return "O";
if (num==15) return "P";
if (num==16) return "Q";
if (num==17) return "R";
if (num==18) return "S";
if (num==19) return "T";
if (num==20) return "U";
if (num==21) return "V";
if (num==22) return "W";
if (num==23) return "X";
if (num==24) return "Y";
if (num==25) return "Z";

}

function GetSumCharPar (strCodFisc) {
var sommaPari
sommaPari=0

sommaPari += GetValueA(strCodFisc.charAt(1));
sommaPari += GetValueA(strCodFisc.charAt(3));
sommaPari += GetValueA(strCodFisc.charAt(5));
sommaPari += GetValueA(strCodFisc.charAt(7));
sommaPari += GetValueA(strCodFisc.charAt(9));
sommaPari += GetValueA(strCodFisc.charAt(11));
sommaPari += GetValueA(strCodFisc.charAt(13));

return sommaPari
}

function GetSumCharOdd (strCodFisc) {
var sommaDispari
sommaDispari=0

sommaDispari += GetValueB(strCodFisc.charAt(0));
sommaDispari += GetValueB(strCodFisc.charAt(2));
sommaDispari += GetValueB(strCodFisc.charAt(4));
sommaDispari += GetValueB(strCodFisc.charAt(6));
sommaDispari += GetValueB(strCodFisc.charAt(8));
sommaDispari += GetValueB(strCodFisc.charAt(10));
sommaDispari += GetValueB(strCodFisc.charAt(12));
sommaDispari += GetValueB(strCodFisc.charAt(14));

return sommaDispari
}

function checkFiscCode (strCodFisc) {
	var resto
	var carCheck
	var sommaTotale

	sommaTotale=0

	sommaTotale=GetSumCharPar(strCodFisc) + GetSumCharOdd(strCodFisc)


	//alert("sommaPari " + GetSumCharPar (strCodFisc));
	//alert("sommaDispari " + GetSumCharOdd (strCodFisc));

	//alert("sommaTOTALE " + sommaTotale);

	resto=sommaTotale % 26

	carCheck=GetValueC(resto)

	if (carCheck==strCodFisc.charAt(15)){
		//alert("ok")
		return true
	}else{
		//alert("sbajato !!!!")
		return false
	}
}

function check (strCodFisc) {
	var ret
	
	ret=checkFiscCode (strCodFisc)

	if (ret){
		//alert("Ok")
		return true
	}else{
		//alert("Wrong !!!!")
		return false
	}

}

function isCAP(data) {
	var numStr="0123456789";
	var thisChar;
	var counter = 0;
	for (var i=0; i < data.length; i++) {
		thisChar = data.substring(i, i+1);
		if (numStr.indexOf(thisChar) != -1)
			counter ++;
	}
	if (counter==data.length && data.length == 5) {
		return true
	}else{
		return false
	}
}

function isProvincia(data) {
	var numStr="ABCDEFGHILMNOPQRSTUVZ";
	var thisChar;
	var counter = 0;
	for (var i=0; i < data.length; i++) {
		thisChar = data.substring(i, i+1);
		if (numStr.indexOf(thisChar) != -1)
			counter ++;
	}
	if (counter==data.length && data.length == 2) {
		return true
	}else{
		return false
	}
}

function isNumeric(data) {
	var numStr="0123456789";
	var thisChar;
	var counter = 0;
	for (var i=0; i < data.length; i++) {
		thisChar = data.substring(i, i+1);
		if (numStr.indexOf(thisChar) != -1)
			counter ++;
	}
	if (counter==data.length) {
		return true
	}else{
		return false
	}
}

function isEuro(data) {
	var emailReg = "^[\\w]+(\,)+[\\w]$";
    var regex = new RegExp(emailReg);
    return regex.test(src);
}

function SommaP (partitaiva) {
	var somma = 0
	var stringa
	var primo
	var secondo
	var raddoppia
	
	for (var i=1; i<=9; i+=2) {
		raddoppia = 2 * eval(partitaiva.charAt(i));
		if (raddoppia > 9) {
		stringa = String(raddoppia);
		primo = eval(stringa.charAt(0));
		secondo = eval(stringa.charAt(1));
		raddoppia = primo+secondo;
		}
		somma += raddoppia;
	}
	//alert("Somma Pari raddoppiata = " + somma);
	return somma
}

function SommaD (partitaiva) {
	var somma = 0
	for (var i=0; i<=9; i+=2) {
		somma += eval(partitaiva.charAt(i));
	}
	//alert("Somma Dispari = " + somma);
	return somma
}

function checkPIVA (partitaiva) {
	var sommapari
	var sommadispari
	var totale
	var ultimacifra
	var stringa
	var risultato
	
	//Controllo che siano 11 numeri
	if (partitaiva.length==11 && isNumeric (partitaiva)) {
		sommadispari=SommaD(partitaiva);
		sommapari=SommaP(partitaiva);
		totale=sommadispari+sommapari;
			//alert("Somma: " + totale);
		stringa = String(totale);
		if (totale > 9) {
			ultimacifra = eval(stringa.charAt(1));
		}else{
			ultimacifra = eval(stringa.charAt(0));
		}
			//alert("Ultima cifra " + ultimacifra);
		risultato = 10-ultimacifra;
		if (risultato == 10) {
			risultato = 0 }
		//alert("risultato " + risultato);
		//alert("ultimo numero iva " + partitaiva.charAt(10));
		if (risultato==partitaiva.charAt(10)) {
			return true
		}else{
			return false
		}
	}else{
	alert("Il campo Partita IVA deve essere composto da 11 numeri!")
	return false
	}
}

function isPartitaIVA (partitaiva) {
	var ret
	
	ret=checkPIVA (partitaiva)
	
	if (ret) {
		return true
	}else{
		return false
	}
}

function isEmail(src) {
     var emailReg = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";
     //var emailReg = "^[\\w]+/@+[\\w]+/.+[\\w]$";
     var regex = new RegExp(emailReg);
     return regex.test(src);
  }

function isDomainIT(src) {
     var emailReg = "^[\\w|\\W]+(\.it)$";
     var regex = new RegExp(emailReg);
     return regex.test(src);
  }

function isDomain(src) {
     var emailReg = "^[\\w|\\W]+(\.com|\.org|\.net|\.info|\.biz|\.it)$";
     var regex = new RegExp(emailReg);
     return regex.test(src);
  }

function isDomainNoIt(src) {
     var emailReg = "^[\\w|\\W]+(\.com|\.org|\.net|\.info|\.biz)$";
     var regex = new RegExp(emailReg);
     return regex.test(src);
  }

function ConvalidaData(datastringa) {
	var data
	var giorno
	var mese
	var anno
	
	//Controllo sulla stringa inserita
	var dataReg = "^[\\d]+[\\d]+/\+[\\d]+[\\d]+/\+[\\d]+[\\d]+[\\d]+[\\d]$";
	var data = new RegExp(dataReg);
	if (data.test(datastringa) == false) {
		alert("Formato data non riconosciuto \n\nIl formato deve essere del tipo: [giorno]/[mese]/[anno]\n\nEsempio: 27/09/2001")
		return false; 
	}
		
	//Controllo sulla data inserita
	giorno = eval(datastringa.charAt(0)+datastringa.charAt(1));
	mese = eval(datastringa.charAt(3)+datastringa.charAt(4));
	anno = eval(datastringa.charAt(6)+datastringa.charAt(7)+datastringa.charAt(8)+datastringa.charAt(9));
	if (giorno > 31 || mese > 12) {
		return false; }
	if ((giorno == "31") && (mese == "2" || mese == "4" || mese == "6" || mese == "9" || mese == "11")) {
		return false; }	
	if ((giorno == "29") && (mese == "2")) {
		if (anno % 4 == "0") {
			return true; }
		else {
			return false; }
	}
	if ((giorno > "29") && (mese == "2")) {
		return false; }
			
	return true;
	}

function DataFiltro(giorno,mese,anno) {
	if ((giorno == "31") && (mese == "2" || mese == "4" || mese == "6" || mese == "9" || mese == "11")) {
		alert('Attenzione! \n\nData inserita: ' + giorno + '/' + mese + '/' + anno + ' non valida. \n\nPrego inserirne un\'altra.');
		return false; }	
	
	if ((giorno == "29") && (mese == "2")) {
		if (anno % 4 == "0") {
			return true; }
		else {
			alert('Attenzione! \n\nData inserita: ' + giorno + '/' + mese + '/' + anno + ' non valida. \n\nPrego inserirne un\'altra.');
			return false; }
	}
	
	if ((giorno > "29") && (mese == "2")) {
		alert('Attenzione! \n\nData inserita: ' + giorno + '/' + mese + '/' + anno + ' non valida. \n\nPrego inserirne un\'altra.');
		return false; }
			
	return true;
	}


	
