function ValiditaPiva (pi)
  {
	var StampaAlert = true;
	if ( pi == 0 ) { return true; }
	if ( pi.length != 11 )
	  {	if (StampaAlert) { alert ( "La lunghezza della partita IVA non è\n" +
								   "corretta: la partita IVA dovrebbe essere lunga\n" +
								   "esattamente 11 caratteri.\n" ); }
		return false; }
	var validi = "0123456789";
	for (var i = 0; i < 11; i++ )
	  {
		if ( validi.indexOf( pi.charAt(i) ) == -1 )
		  { if (StampaAlert) { alert ( "La partita IVA contiene un carattere non valido `" +
									   pi.charAt(i) + "'.\nI caratteri validi sono le cifre.\n" ); }
			return false; }
	  }
	var s = 0;
	for ( i = 0; i <= 9; i += 2 )
	  { s += pi.charCodeAt(i) - '0'.charCodeAt(0); }
	var c = 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) )
	  { if (StampaAlert) { alert ( "La partita IVA non è valida:\n" +
								   "il codice di controllo non corrisponde.\n" ); }
		return false; }

	// se non ha dato nessun errore fino qui, tutto ok
	return true;
  }





function ValiditaCodfisc (cf)
  {
	var StampaAlert = true;
	if ( cf == 0) { return true; }
	cf = cf.toUpperCase();
	if ( cf.length != 16 )
	  { if (StampaAlert) { alert ( "La lunghezza del codice fiscale non è\n" +
								   "corretta: il codice fiscale dovrebbe essere lungo\n" +
								   "esattamente 16 caratteri.\n" ); }
		return false; }
	var validi = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
	for (var i = 0; i < 16; i++ )
	  {
		if ( validi.indexOf( cf.charAt(i) ) == -1 )
		  { if (StampaAlert) { alert ( "Il codice fiscale contiene un carattere non valido `" +
									   cf.charAt(i) + "'.\nI caratteri validi sono le lettere e le cifre.\n" ); }
			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) )
	  { if (StampaAlert) { alert ( "Il codice fiscale non è corretto:\n" +
								   "il codice di controllo non corrisponde.\n" ); }
		return false; }

	// se non ha dato nessun errore fino qui, tutto ok
	return true;
  }





	function ControlloIban (DebugBreve)
	  {
		var Debug = false;
		// var DebugBreve = false;
		var Naz = document.clienti.codpaese.value;
		var Check = document.clienti.ciniban.value;
		var Cin = document.clienti.cin.value;
		var Abi = document.clienti.abi.value;
		var Cab = document.clienti.cab.value;
		var Conto = document.clienti.conto.value;
		var IBAN = Naz+Check+Cin+Abi+Cab+Conto;
		var IBANGirato = Cin+Abi+Cab+Conto+Naz+Check;
		if (Debug || DebugBreve) { alert ('\nVerifico il codice IBAN: '+IBAN); }
		var Numerone = '';
		var Resto = 0;
		var tmp = 0;
		for (var i = 0; i < IBANGirato.length; i++)
		  { if (isNaN (IBANGirato.charAt(i)))
			  { tmp = IBANGirato.charCodeAt(i) - 55; }
			  else { tmp = IBANGirato.charAt(i); }
			if (Debug) { alert (IBANGirato.charAt(i)+' = '+tmp); }
			Numerone = Numerone + tmp; }
		if (Debug) { alert ('\nNumerone: '+Numerone); }
		var x = 0;
		var TmpNum = 0;
		while (Numerone > 1000)
		  {
			tmp = Numerone.substr (0, 8);
			TmpNum = Resto + tmp;
			Resto = TmpNum % 97;
			Numerone = Numerone.substr (8, 100);
			if (Debug) { alert ('\ntmp: '+tmp+'\nTmpNum: '+TmpNum+'\nResto: '+Resto+'\nNumerone: '+Numerone); }
		  }
		if (Resto == 1) { if (Debug || DebugBreve) { alert ('IBAN Corretto'); }
						  return true; }
		  else { if (Debug || DebugBreve) { alert ('IBAN SBAGLIATO'); }
				 return false; }
		if (Debug) { alert ('\nResto: '+Resto); }
	  }


	function get_radio_value (formName, fieldName)
	  {
		var radioval = "";
		if (!document.forms[formName].elements[fieldName]) { alert (fieldName + ' non esiste'); }
		for (var i=0; i < document.forms[formName].elements[fieldName].length; i++)
		  { if (document.forms[formName].elements[fieldName][i].checked)
			  { radioval = document.forms[formName].elements[fieldName][i].value; }
	      }
		return radioval;
	  }





