function controlla_cf(cf) {
	var i;
	if (cf == '') {
		return true;
	}
	cf = cf.toUpperCase();
	if (cf.length != 16) {
		return false;
	}
	var validi = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
	for (i = 0; i < 16; i++){
		if (validi.indexOf(cf.charAt(i)) == -1) {
			return false;
		}
	}
	var set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	var set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";
	var setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	var setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX";
	var s = 0;
	for(i = 1; i <= 13; i += 2) {
		s += setpari.indexOf(set2.charAt(set1.indexOf(cf.charAt(i))));
	}
	for(i = 0; i <= 14; i += 2) {
		s += setdisp.indexOf(set2.charAt(set1.indexOf(cf.charAt(i))));
	}
	if ((s % 26) != cf.charCodeAt(15)-'A'.charCodeAt(0)) {
		return false;
	}
	return true;
}


function controlla_p_iva(pi) {
	var i;
	if (pi == '') {
		return true;
	}
	if (pi.length != 11) {
		return false;
	}
	var validi = "0123456789";
	for (i = 0; i < 11; i++){
		if (validi.indexOf(pi.charAt(i)) == -1) {
			return false;
		}
	}
	var s = 0;
	for (i = 0; i <= 9; i += 2) {
		s += pi.charCodeAt(i) - '0'.charCodeAt(0);
	}
	for (i = 1; i <= 9; i += 2) {
		var 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)) {
		return false;
	}
	return true;
}

