function verificabollo(IlForm)
{
 if (IlForm.categoria.value==""){alert("Seleziona una categoria"); IlForm.categoria.focus();  return false;}
 if (IlForm.regione.value==""){alert("Seleziona una regione"); IlForm.regione.focus();  return false;}
 if (IlForm.scadmese.value=="" || IlForm.scadmese.value=="mese"){alert("Seleziona il mese di scadenza delbollo"); IlForm.scadmese.focus(); return false;}
 if (IlForm.scadanno.value=="" || IlForm.scadanno.value=="anno"){alert("Seleziona l'anno di scadenza del bollo"); IlForm.scadanno.focus();  return false;}
 if (IlForm.mesi.value==""){alert("Inserisci i mesi di validità del bollo"); IlForm.mesi.focus(); return false;}
 if ((IlForm.scadmese.value=="02-febbraio" || 
      IlForm.scadmese.value=="03-marzo"    ||
      IlForm.scadmese.value=="06-giugno"   ||
      IlForm.scadmese.value=="10-ottobre"  ||
      IlForm.scadmese.value=="11-novembre") && 
     (IlForm.regione.value!="10-Lombardia"  && 
      IlForm.regione.value!="13-Piemonte")) 
 {
    alert("Il mese di scadenza non è ammesso per la regione che hai selezionato"); IlForm.scadmese.focus(); return false;
 }
 else if ((IlForm.scadmese.value=="02-febbraio" || 
           IlForm.scadmese.value=="03-marzo"    ||
           IlForm.scadmese.value=="06-giugno"   ||
           IlForm.scadmese.value=="10-ottobre"  ||
           IlForm.scadmese.value=="11-novembre") &&
          (IlForm.regione.value=="10-Lombardia" || 
           IlForm.regione.value=="13-Piemonte") && 
           parseInt(IlForm.scadanno.value) < 2006 ) 
 {
    alert("Il mese di scadenza non è ammesso per l'anno che hai selezionato"); IlForm.scadmese.focus(); return false;
 }

 if (IlForm.targa.value=="")
 {
    alert("Inserisci la targa del veicolo"); 
    IlForm.targa.focus(); 
    return false;
 }

 else if( IlForm.targa.value.length > 18 )
 {
     alert( "Puoi inserire al massimo 18 caratteri nel campo \"targa\"" );
     IlForm.targa.focus();
     return false;
 }
 else if( caratteriValidi("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 \t\r\n\f",IlForm.targa.value) == false )
 {	/* La targa può solo contenere numeri e lettere */
     alert( "Nel campo \"targa\" puoi inserire solo lettere, cifre o spazi" );
     IlForm.targa.focus();
     return false;
 }
 else if( IlForm.categoria.selectedIndex == 1 || IlForm.categoria.selectedIndex == 2 || IlForm.categoria.selectedIndex == 3 ) 
 {	/* Controllo della lunghezza della targa per auto, moto e rimorchi: i valori ammessi sono 7 e 8 */

     var targanb = elimSpaziUp(IlForm.targa.value);

     if ( targanb.length < 7 || targanb.length > 8 )
     {
         alert("La targa che hai inserito non è valida");
         IlForm.targa.focus();
         return false;
     }
     else if( targanb.length == 8 )/* Targa vecchia: controllo sigla provincia per auto, moto e rimorchi */
     {
         if( siglaValida(targanb.substring(0,2)) == false )
         {
             alert("La targa che hai inserito non è valida");
             IlForm.targa.focus();
             return false;
         }

         // Targa vecchia: per le auto il 6° e il 7° carattere sono numerici,
         // per le moto e i rimorchi sono numerici i caratteri da 3 a 8
         if ( IlForm.categoria.selectedIndex == 1 )
             var subtold1 = targanb.substring(5,7);
         else
             var subtold1 = targanb.substring(2,8);

         if( caratteriValidi("0123456789-", subtold1) == false )
         {
             alert("La targa che hai inserito non è valida");
             IlForm.targa.focus();
             return (false);
         }
     }
     else if( targanb.length == 7 ) 
     {
         // Targa nuova: i primi due caratteri sono lettere
         if( caratteriValidi("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz \t\r\n\f", targanb.substring(0,2)) == false )
         {
             alert("La targa che hai inserito non è valida");
             IlForm.targa.focus();
             return (false);
         }

         // Targa nuova: per le auto i caratteri 3°, 4° e 5° sono numerici,
         // per le moto e i rimorchi sono numerici i caratteri da 3 a 7
         if ( IlForm.categoria.selectedIndex == 1 )
             var subtnew2 = targanb.substring(2,5);
         else
             var subtnew2 = targanb.substring(2,7); 

         if( caratteriValidi("0123456789-", subtnew2) == false )
         {
             alert("Targa non valida per la categoria prescelta");
             IlForm.targa.focus();
             return (false);
         }    

         // Targa nuova: per le auto i caratteri 6° e 7° sono lettere
         if ( IlForm.categoria.selectedIndex == 1 )
         {
             if( caratteriValidi("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz \t\r\n\f", targanb.substring(5,7)) == false )
             {
                 alert("Targa non valida per la categoria prescelta");
                 IlForm.targa.focus();
                 return false;
             }
         }
     }  
 }
 else
     return true;
 
 return true;        
}

/***********************
*                      *
* Funzioni di supporto *
*                      *
***********************/

/*
 * Elimina spazi
 */
function elimSpaziUp( str )
{
	var re = /\s/gi;
	return str.replace(re, "").toUpperCase();
}

/*
 * Caratteri validi
 */

function caratteriValidi( checkOK, checkStr )
{
	var allValid = true;

	for ( i = 0;  i < checkStr.length;  i++ )
	{
		ch = checkStr.charAt(i);

		for ( j = 0;  j < checkOK.length;  j++ )
			if( ch == checkOK.charAt(j) )
				break;

		if( j == checkOK.length )
		{
			allValid = false;
			break;
		}
	}
	return allValid;
}

/*
 * Sigla valida
 */

function siglaValida(Sigla)
{
   var      Sigle = "AGALANAOAPARAQATAV";
   Sigle =	Sigle + "BABIBLBNBGBOBSBRBZ";
   Sigle =	Sigle + "CACLCBCECTCZCHCOCSCRCN";
   Sigle =	Sigle + "EN";
   Sigle =	Sigle + "FEFIFGFOFR";
   Sigle =	Sigle + "GEGOGR";
   Sigle =	Sigle + "KR";
   Sigle =	Sigle + "IMIS";
   Sigle =	Sigle + "LTLCLELILOLU";
   Sigle =	Sigle + "MCMNMSMTMEMIMO";
   Sigle =	Sigle + "NANONU";
   Sigle =	Sigle + "OR";
   Sigle =	Sigle + "PDPAPRPOPVPGPSPEPCPIPTPNPZ";
   Sigle =	Sigle + "RGRARCRERIRNRMRO";
   Sigle =	Sigle + "SASSSVSISRSOSP";
   Sigle =	Sigle + "TATETRTOTPTNTVTS"; 
   Sigle =	Sigle + "UD";
   Sigle =	Sigle + "VAVEVBVCVRVVVIVT";
	var chch  = "";
	var Esito = false;			
	for( i = 0; i < Sigle.length; i++)
	{
		chch = Sigle.charAt(i) + Sigle.charAt(i+1);

		if( Sigla == chch )
		{
			Esito = true;
			break;
		}
						
		i++;
	}
	return Esito;
}