function controllaCF(campo, messaggio) {
	var cf = campo.value;
    var validi, i, s, set1, set2, setpari, setdisp;
    if( cf == '' ) {
	    alert(messaggio);
	    return false;
    }
    cf = cf.toUpperCase();
    if( cf.length != 16 ) {
	    alert(messaggio);
	    return false;
    }
    validi = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    for( i = 0; i < 16; i++ ){
        if( validi.indexOf( cf.charAt(i) ) == -1 ) {
	    	alert(messaggio);
	    	return false;
    	}
    }
    set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";
    setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX";
    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) ) {
	    alert(messaggio);
	    return false;
    }
    return true;
}

function controllaPIVA(campo, messaggio) {
	var pi = campo.value;
    if( pi == '' ) {
	    alert(messaggio);
	    return false;
    }
    if( pi.length != 11 ) {
	    alert(messaggio);
	    return false;
    }
    validi = "0123456789";
    for( i = 0; i < 11; i++ ){
        if( validi.indexOf( pi.charAt(i) ) == -1 ) {
	    	alert(messaggio);
	    	return false;
    	}
    }
    s = 0;
    for( i = 0; i <= 9; i += 2 )
        s += pi.charCodeAt(i) - '0'.charCodeAt(0);
    for( i = 1; i <= 9; i += 2 ){
        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) ) {
	    alert(messaggio);
	    return false;
    }
    return true;
}