<!-- script bonus 2005-->
function impostaTramite(nessuno){
    if(nessuno){
  	for ( i = 11 ; i < 17  ; i++ ){
  		document.frmindex.elements[i].checked=false;
  		document.frmindex.elements[i].disabled=true;
  		if(document.frmindex.elements[i].type == 'text'){
  			document.frmindex.reddito.style.backgroundColor='#C0C0C0';
  			document.frmindex.reddito.value="";
  		}
	}
    }else{
    	for ( i = 11 ; i < 17  ; i++ ){
  		document.frmindex.elements[i].disabled=false;
		if(document.frmindex.elements[i].type == 'text'){
  			document.frmindex.reddito.style.backgroundColor='#FFFFFF';
  		}
  	}
    }

}

function controlloRadio1(){
	selezioneok=true;
	for ( i = 0 ; i < 3  ; i++ )  {
		alert(document.frmindex.radio1[i].checked);
  		if(document.frmindex.radio1[i].checked != 1){
  			selezioneok = false;
  		}
	}
	return selezioneok;
}
function controlloRadio2(){
	var selezione = true;
	for ( i = 0 ; i < 3  ; i++ )  {
  	(document.frmindex.radio2[i].checked == 1)?selezioneok=true:false
	}
	return selezioneok;
}
function controlla(cf){
	var res = ControllaCF(cf.value.toUpperCase());
	switch (res) {
	case 0:
		return true;
	case 1:
		return false;
	case 2:
		return false;
	case 3:
		return false;
	}
}

function ControllaCF(cf){
	var c = cf;
	var v = validateCF(c);
   return v;
}

//controlla se;
//il codice fiscale č di lunghezza pari a 16
//sono stati inseriti caratteri errati
//il checksum č esatto
function validateCF(c){
	var  cf = c;
	if (cf.length!=16) return 1;	//lunghezza errata

	//  Check the string.
	var t        = parseInt(0);
	var values = new Array(26)
	values[0] = 1
	values[1] = 0
	values[2] = 5
	values[3] = 7
	values[4] = 9
	values[5] = 13
	values[6] = 15
	values[7] = 17
	values[8] = 19
	values[9] = 21
	values[10] = 2
	values[11] = 4
	values[12] = 18
	values[13] = 20
	values[14] = 11
	values[15] = 3
	values[16] = 6
	values[17] = 8
	values[18] = 12
	values[19] = 14
	values[20] = 16
	values[21] = 10
	values[22] = 22
	values[23] = 25
	values[24] = 24
	values[25] = 23

	uu = 3;

	for ( i = 1; i < 17; i++ ){
		//  Characters MUST be a letter or a digit.
		//ch = cf.charAt(i-1);
		if (!checkLetterOrDigit(toAscii(cf.charAt(i-1)))) {
         return 2;  //carattere errato
		}

      if (i<16) {
   		even  =  (parseInt(i / 2 ) * 2);
   		index = parseInt( toAscii(cf.charAt(i-1)));
   		if ( parseInt(index) > 60 )
   			 index = parseInt(index) - 65;
   		else
   			 index = parseInt(index) - 48;
   		if ( parseInt(even) == parseInt(i) )
   			 t = parseInt(t) + parseInt(index);
   		else{
   			 t = parseInt(t) + parseInt(values[index]);
   		}
      }
	}
	//  The last charater is a checksum. Verify it.
	t = t - parseInt( t / 26 ) * 26 + 65;
	if ( toAscii(cf.charAt(15)) !=  t ){
		return 3 //checksum errato
	}
	return 0;
}
//controlla che i caratte ri inseriti siano, o numeri o lettere (maiuscole minuscole)
function checkLetterOrDigit(a){
	//numeri, lettere maiuscole, lettere minuscole
	if ((a>47) && (a<58) || (a>64) && (a < 91) || (a>96) && (a < 123))
		return true;
	else
		return false
}
//scrive la pagina di output in caso di errore in input
function scriviOutput(s)
{
	alert(s);
}
function deselezionaRichiesta(interrogazione){
     if(interrogazione){
	for ( c = 4 ; c < 15  ; c++ ){
		if(document.frmrisindex.elements[c].type == 'radio'){
			document.frmrisindex.elements[c].checked=false;
			document.frmrisindex.elements[c].style.backgroundColor='#FFFFFF';
		}else{
			document.frmrisindex.elements[c].value="";
			document.frmrisindex.elements[c].disabled=true;
			document.frmrisindex.elements[c].style.backgroundColor='#C0C0C0';
		}
	 }
     }else{
     	for ( c = 4 ; c < 15 ; c++ ){
     		document.frmrisindex.elements[c].disabled=false;
		document.frmrisindex.elements[c].style.backgroundColor='#FFFFFF';
	 }
     }
}

function fuoco(){
	var form = document.forms[1];
	switch (parseInt(controlErrato))
    {
		case 0:
			form.cogn.focus();break;
		case 1:
			form.cogn.focus();break;
		case 2:
			form.nome.focus();break;
		case 3:
			form.ggnascita.focus();break;
		case 4:
			form.lnascita.focus();break;
		case 5:
			form.pnascita.focus();break;
		case 5:
			form.pnascita.focus();break;
		case 6:
			form.sesso[0].focus();break;
	        case 7:
			form.data_gga.focus();break;
		case 8:
			form.CFbebe.focus();break;
	}
}
function controllaFrmRisIndex(){
	res = ControllaCampi(document.frmrisindex);
    	controlErrato = res;
	switch (res) {
	case 0:
		return true;
	case 1:
		scriviOutput("Indicare il cognome");
		return false;
	case 2:
		scriviOutput("Indicare il nome");
		return false;
	case 3:
		scriviOutput("Data di nascita errata");
		return false;
	case 4:
		scriviOutput("Indicare il comune");
		return false;
	case 6:
		scriviOutput("Indicare il sesso");
		return false;
	case 7:
		scriviOutput("Data di adozione errata");
		return false;
	case 8:
		scriviOutput("Codice fiscale del bambino errato");
		return false;
	case 9:
		scriviOutput("Selezionare il tipo operazione");
		return false;
	case 10:
		scriviOutput("Indicare il codice fiscale del bambino");
		return false;
	case 11:
		scriviOutput("Indicare il sesso del figlio");
		return false;
        case 12:
		scriviOutput("L'anno di adozione indicato non rientra nei parametri previsti per beneficiare del bonus");
		return false;
	case 13:
		scriviOutput("Indicare il codice fiscale del soggetto che esercita la patria potestā");
		return false;
	case 14:
		scriviOutput("Codice fiscale del soggetto che esercita la patria potestā errato");
		return false;
	}
}
//controlla l'input dei dati anagrafici
function ControllaCampi(form){
	if(form.new_2006.value != "1"){
	 if ((!form.tipfunz[0].checked) && (!form.tipfunz[1].checked) )
      		return 9 //campo tipo funzione non selezionato
      	}else{
	      	if(form.CFpp.value==""){
			form.CFpp.focus();
			return 13;
		}else
	             if(!controlla(document.frmrisindex.CFpp))
			return 14 //campo codice fiscale errato
      	}
	if(form.CFbebe.value==""){
		form.CFbebe.focus();
		return 10;
	}else
             if(!controlla(document.frmrisindex.CFbebe))
		return 8 //campo codice fiscale errato
	
if(form.new_2006 == null || form.new_2006.value == "0"){
    if (form.tipfunz[1].checked){
	   if (validateCampo(form.cogn.value))
	      return 1 //campo cognome errato
	   if (validateCampo(form.nome.value))
	      return 2 //campo nome errato
	   if (validateCampoData(form.data_gg.value + form.data_mm.value+ form.data_aa.value))
	      return 3 //campo nome errato
	   if (form.sesso.value == "  ")
	      return 6 //campo sesso Non selezionato
	   if (validateCampo(form.rcomuni.value))
	      return 4 //campo comune di nascita errato
	    if (validateCampoData(form.data_gga.value + form.data_mma.value+ form.data_aaa.value)){
	      return 7 //campo data di adozione errato
	    }else if(form.data_aaa.value != "2006" &&
	             form.data_aaa.value != "2005"){
	    	 return 12 //campo anno di adozione errato
	    }
	}
}
   return 0;
}
function ControllaCampiIndex(form){
	   if(form.CF.value==""){
	   	scriviOutput("Indicare il codice fiscale");
		document.frmindex.CF.focus();
		return false;
	   }else
  	   if(!controlla(form.CF)){
		scriviOutput("Codice Fiscale errato");
		document.frmindex.CF.focus();
		return false;
	   }
	   if (validateCampo(form.citt.value)){
	        scriviOutput("Indicare la cittadinanza");
		document.frmindex.citt.focus();
		return false;
	   }else if (form.citt.value == 'EXT'){
	        scriviOutput("La cittadinanza indicata non rispetta i requisiti previsti per beneficiare del bonus");
		document.frmindex.citt.focus();
		return false;
	   }
	   if(validateCampo(document.frmindex.comuni.value)){
		scriviOutput("Indicare il comune di residenza");
		document.frmindex.comuni.focus();
		return false;
           }
	   if(validateCampo(document.frmindex.province.value)){
		scriviOutput("Indicare la provincia di residenza");
		document.frmindex.province.focus();
		return false;
	   }
	   if (validateCampo(form.cap.value)){
	       scriviOutput("Indicare il codice di avviamento postale(CAP)");
	       document.frmindex.cap.focus();
	       return false;
	   }else if(isNaN(document.frmindex.cap.value)){
	       scriviOutput("CAP ERRATO");
	       document.frmindex.cap.focus();
	       return false;
	   }
	   if (!document.frmindex.radio1[0].checked &
		  !document.frmindex.radio1[1].checked &
		  !document.frmindex.radio1[2].checked){
		 scriviOutput("Indicare con quale modello si č presentata la dichiarazione dei redditi");
		 document.frmindex.radio1[0].focus();
		return false;
	   }
	   if (!document.frmindex.radio1[0].checked) {
	       if (!document.frmindex.radio2[0].checked &
		   !document.frmindex.radio2[1].checked &
		   !document.frmindex.radio2[2].checked &
		   !document.frmindex.radio2[3].checked){
		    document.frmindex.radio2[0].focus();
		    scriviOutput("Indicare tramite chi č stata presentata la dichiarazione dei redditi");
		    return false;
		}
	}
	   if(document.frmindex.reddito.value.length == 0 &
		 !document.frmindex.radio1[0].checked){
		 scriviOutput("Indicare il reddito");
		 document.frmindex.reddito.focus();
		return false;
	}
	if(isNaN(document.frmindex.reddito.value) ){
		 scriviOutput("Reddito errato");
		 document.frmindex.reddito.focus();
		return false;
	}
   return true;
}
//funzione per la validazione dei campi letterali (cognome, nome, comune di nascita, provincia)
function validateCampo(camp){
   //return true campo errato
   if (camp.length == 0) return true;
/*
   for ( i = 0; i < camp.length; i++ ){
      if (checkLetter(toAscii(camp.charAt(i))))
         return true;  //carattere errato
   }
   */
   return false;
}

//controlla che i caratte ri inseriti siano, apice lettere (maiuscole minuscole accentate)
function checkLetter(a){
	// spazio,    apice,      lettere accentate,     lettere maiuscole,        lettere minuscole
   if ((a==32) || (a==39) || (a>=192) && (a<=255) || (a>=65) && (a <= 90) || (a>=97) && (a <= 122))
   {
      return false;
   }
   else
      return true
}

//trasforma un char in ascii
function toAscii ( c ){
		return c.charCodeAt(0)// & 0x007F
}

//controlla la valitidā del campo data di nascita
function validateCampoData(data){
   //return true campo errato
   if ( (data.length == 0) || (data.length < 8)) return true;
   /*
   for ( i = 0; i < data.length; i++ ){
      if (!checkDigitOrSlash(toAscii(data.charAt(i))))
         return true;  //carattere errato
   }
*/
   return ControllaData(data)

   return false;
}

function ControllaData(data){
   d = parseInt(data.substring(0, 2),10);
   m = parseInt(data.substring(2, 4),10);
   y = parseInt(data.substring(4, 8),10);

   day = parseInt(0,10);

   switch(m) {
      case 1:
         day = parseInt(31,10);
         break;
      case 2:
         //Correct for a leap year
         if((y % 4) == 0){         // Could be leap
            if((y % 100) == 0 && // Centuries aren't
               (y % 400) != 0)   // Except every 4th
               day = parseInt(28);
            else
               day = parseInt(29);
               break;
         }
         day = parseInt(28);
         break;
      case 3:
         day = parseInt(31);
         break;
      case 4:
         day = parseInt(30);
         break;
      case 5:
         day = parseInt(31);
         break;
      case 6:
         day = parseInt(30);
         break;
      case 7:
         day = parseInt(31);
         break;
      case 8:
         day = parseInt(31);
         break;
      case 9:
         day = parseInt(30);
         break;
      case 10:
         day = parseInt(31);
         break;
      case 11:
         day = parseInt(30);
         break;
      case 12:
         day = parseInt(31);
         break;
      default:
         return true;
   }
   if ( d > day ){
      return true;
   }else{
      return false;
   }
}

//controlla che i caratteri inseriti siano, o lo slash o numeri
function checkDigitOrSlash(a){
	//numeri, lettere maiuscole, lettere minuscole
	if ((a>=47) && (a<58))
		return true;
	else
		return false
}
function action(cics){
	if(cics){
		document.confriemis.submit();
	}else{
		document.frmsituaz.submit();
	}
}
function actionindex(){
	document.frminfo.submit();
	document.frminfo.tipfunz="00";
	}
function accetto(){
	for ( c = 2 ; c < 15  ; c++ ){
		if(document.frmrisindex.elements[c].type == 'radio'){
			document.frmrisindex.elements[c].checked=false;
			document.frmrisindex.elements[c].style.backgroundColor='#FFFFFF';
		}else{
			document.frmrisindex.elements[c].value="";
			document.frmrisindex.elements[c].disabled=true;
			document.frmrisindex.elements[c].style.backgroundColor='#C0C0C0';
		}
	 }
}