codice:

  x=new Array();
 data1= f.dal.value;
 data2=f.notti.value;
 x=data1.split("/");
 x[0]=parseInt(x[0])+parseInt(data2);
 if((x[0]>31) &&((x[1]=="01")||(x[1]=="03")|| (x[1]=="05")||(x[1]=="07")||(x[1]=="08")||(x[1]=="10")||(x[1]=="12")))
 {
 x[0]="01";
 x[1]=parseInt(x[1])+1;
 if (x[1]<=9)
 {
 x[1]="0"+x[1];
 }

 }

 if((x[0]>30) &&(x[1]=="04"||x[1]=="06"|| x[1]=="05"||x[1]=="09"||x[1]=="11"))
 {
 x[0]="01";
 x[1]=parseInt(x[1])+1;
 if (x[1]<=9)
 {
 x[1]="0"+x[1];
 }
 }
 if((x[0]>28) &&(x[1]=="02"))
 {
 x[0]="01";
 x[1]="03"; 

 }

 data_set= new Date(Date.UTC(2010,10,02,0,0,0));
 time1=Date.parse(data_set);
 data_set3= new Date(Date.UTC(2010,05,29,0,0,0));
 time3=Date.parse(data_set3);


 data2_result= new Date(Date.UTC(x[2],x[1],x[0],0,0,0));
 time2= Date.parse(data2_result);
 
 if(time2>time1)
 {alert("Periodo sbagliato A");}
 if(time2<time3)
 {alert("Periodo sbagliato B");}
dove:
f.dal.value = 29/09/2010
f.notti.value = 7

Mi da Periodo sbagliato B ma non è corretto!
Perchè time2 dovrebbe essere 06/10/2010 e time3 29/05/2010 quindi time2 superiore a time3 e non dovrebbe dare l'alert "Periodo sbagliato B".

C'è qualcosa che non va... provi a dare un occhiata?