function cambiaSfondo(HighLightColor)
{
	var source=event.srcElement;
	source.style.backgroundColor=HighLightColor;
}


function MostraPeriodo(testo)
{
	alert(testo);
	return false;
}

function formHandler(scelta)
{
if (scelta.options[scelta.selectedIndex].value != "x")
{ var url =
scelta.options[scelta.selectedIndex].value;
window.location.href = url
}
}


function CtrlData(data, alertcampo, FlVal, ValDef)
{
with (data)
	{var alerttext="";
	 var alerttext1="\n                                 ATTENZIONE:\nI DATI NON VALIDI VERRANNO AUTOMATICAMENTE REIMPOSTATI";

	  //Effettua il controllo di obbligatorietà sul campo DATA
     if ((	value == "") || (value == "undefined"))
     	{var alerttext=alertcampo+" obbligatoria";
      	 alert(alerttext);
		}

     //Effettua il controllo di validità sul campo DATA

     else if (value.substring(2,3) != "/" ||
		value.substring(5,6) != "/" ||
       isNaN(value.substring(0,2)) ||
       isNaN(value.substring(3,5)) ||
       isNaN(value.substring(6,10)))
       {var alerttext="Inserire la "+alertcampo+" in formato gg/mm/aaaa";
        if ((FlVal != "") && (FlVal != " "))
        	var alerttext=alerttext+alerttext1
      	 style.color = "red";
      	 alert(alerttext);
       }

     else if (value.substring(0,2) < 01 || value.substring(0,2) > 31)
    	{var alerttext=alertcampo+": Giorni non validi per la data";
        if ((FlVal != "") && (FlVal != " "))
        	var alerttext=alerttext+alerttext1
    	 style.color = "red";
    	 alert(alerttext);
       }

	  else if (value.substring(3,5) < 01 || value.substring(3,5) > 12)
	  	{var alerttext=alertcampo+": Mesi non validi per la data";
      	 if ((FlVal != "") && (FlVal != " "))
        	var alerttext=alerttext+alerttext1
      	 style.color = "red";
    	 alert(alerttext);
       }

     else if (value.substring(6,10) < 1900)
     	{var alerttext=alertcampo+": Impossibile utilizzare un valore inferiore a 1900 per l'anno";
		 if ((FlVal != "") && (FlVal != " "))
        	var alerttext=alerttext+alerttext1
      	 style.color = "red";
    	 alert(alerttext);
       }

	  // Effettua il controllo di validità su giorno, relativo al mese ed anno
	  if (alerttext == "")
	  	{var g = parseInt(value.substring(0,2));
		 var m = parseInt(value.substring(3,5));
		 var a = parseInt(value.substring(6,10));
		 ggfm = 0
		 if (m==2)
		 	if ((a%4==0)&&(!(a%100==0)||(a%400==0)))
				ggfm = 29;
			else
				ggfm = 28;
		 else
			if (m==4 || m==6 || m==9 || m==11)  //mesi con 30 giorni
				ggfm = 30;
			else
				ggfm = 31;

	  	 if (value.substring(0,2) > ggfm)
    		{var alerttext=alertcampo+": Giorno "+value.substring(0,2)+" non valido per il mese";
			 if ((FlVal != "") && (FlVal != " "))
        		var alerttext=alerttext+alerttext1
       	 style.color = "red";
    	 	 alert(alerttext);
       	}
	  	}

	  // In base al risultato corretto/errato, reimposta il valore e il ciolore del testo
     if (alerttext != "")
	  	{data.focus();
		 if ((FlVal != "") && (FlVal != " "))
		   {style.color = "green";
		 	 value = ValDef;   // 1: valore data = ValDef
		 	}
		 else
		  	if (FlVal == "2")
			   {style.color = "green";
		  		 value = "";  // 2: valore data = ""
   				}
		 return false;
	  	}
     else
	 	{data.focus();
		 style.color = "blue";
     	 return true;
       }

   }
}


function CtrlDataMag(data, alertcampo, FlVal, ValDef, DataDa, NrGg)
{
with (data)
	{var alerttext="";
	 var alerttext1="\n                                 ATTENZIONE:\nI DATI NON VALIDI VERRANNO AUTOMATICAMENTE REIMPOSTATI";

	 if (CtrlData(data,'Data Fine','1',ValDef) == false)
       {return false;
	  	}
    else
    	{
     	 // converte le 2 date in formato americano mm/gg/aa per i caloli
		 gg1=DataDa.value.substring(0,2);
		 mm1=DataDa.value.substring(3,5);
		 aa1=DataDa.value.substring(6,10);
		 data1conv=mm1+"/"+gg1+"/"+aa1;

		 gg2=value.substring(0,2);
		 mm2=value.substring(3,5);
		 aa2=value.substring(6,10);
		 data2conv=mm2+"/"+gg2+"/"+aa2;

		 // crea 2 oggetti DATE
		 data1=new Date(data1conv);
		 data2=new Date(data2conv);

 		 // calola (tramite millesecondi) l'eventuale data massima da sostituire a quella errata
		 if ((FlVal == "3") && (NrGg > 0))
			{
   		 	 Data_max = new Date(data1conv);
		 	 pre = Data_max.getTime();
   		 	 post = pre + (NrGg*24*60*60*1000);
   		 	 Data_max.setTime(post);

   		 	 yyMax = String(Data_max.getYear());
	   		 mmMax = String(Data_max.getMonth() + 1);
 		 	 if (mmMax < 10)
				mmMax="0"+mmMax ;
  		 	 ddMax = String(Data_max.getDate());
 		 	 if (ddMax < 10)
				ddMax="0"+ddMax;

		 	 DataMax=ddMax+"/"+mmMax+"/"+yyMax;
	 		}

		 // calola la differenza in millesecondi fra le 2 date
		 mesims=data2.getTime() - data1.getTime();

		 GgDif = mesims / (24*60*60*1000);

		 if (GgDif < 0)
     	 	{style.color = "red";
     	 	 var alerttext=alertcampo+" inferiore alla data "+DataDa.value;
     	 	 if ((FlVal != "") && (FlVal != " "))
	        	var alerttext=alerttext+alerttext1
      	 	 alert(alerttext);
			}

     	 if ((NrGg > 0) && (GgDif > NrGg))
     	 	{style.color = "red";
     	 	 var alerttext=alertcampo+" non deve superare di oltre "+NrGg+" giorni la data "+DataDa.value;
      	 	 if ((FlVal != "") && (FlVal != " "))
	        	var alerttext=alerttext+alerttext1
      	 	 alert(alerttext);
			}

	  	 // In base al risultato corretto/errato, reimposta il valore e il ciolore del testo
     	 if (alerttext != "")
	  	 	{data.focus();
			 if (FlVal == "1")
			   {style.color = "green";
			 	 value = ValDef;   // 1: valore data = ValDef
		 		}
			 else
			  	if (FlVal == "2")
				   {style.color = "green";
		  			 value = "";  // 2: valore data = ""
   					}
			 else
			  	if ((FlVal == "3") && (NrGg > 0))
				   {style.color = "green";
		  			 value = DataMax;  // 3: valore data = calcolato (DataInizio + NrGg)
   					}
        	 return false;
	  		}
     	 else
	 		{data.focus();
		 	 style.color = "blue";
     	 	 return true;
       	}

       }

   }
}


function EsitoCtrlForm(ValDef1,ValDef2,NrGg)
{
	var VerDataMag=true
	var VerData=CtrlData(FrontPage_Form1.DataInizio,'Data Inizio periodo','',ValDef1);
	if (VerData == false)
		FrontPage_Form1.DataInizio.focus();
	else
		{var VerDataMag=CtrlDataMag(FrontPage_Form1.DataFine,'Data Fine periodo','',ValDef2,FrontPage_Form1.DataInizio,NrGg);
		 if (VerDataMag == false)
			FrontPage_Form1.DataFine.focus();
		}
	 var alerttext="";

	 if (VerData == false || VerDataMag == false)
 	 	{
//		 var alerttext="ATTENZIONE: LE DATE CHE RISULTAVANO NON VALIDE SONO STATE AUTOMATICAMENTE MODIFICATE";
// 	 	 alert(alerttext);
        return false;
	  	}
     else
		{
// 		 alert("DATI OK NELLA MIA FORM ");
        return true;
       }
}

