//Mesi nel locale corrente
var mesi = new Array("gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre");

//Giorni della settimana del locale corrente
var giorni = new Array("domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato");

//Data e ora corrente
var Now = new Date();

//Setta campo value di un oggetto qualunque di una form
function setValue(obj,v) {
   var t=obj.type;
   if(t.substring(0,6)!="select") {
      obj.value=v;
      return;
   }
   var i,n,j;
   n=obj.options.length;
   for(i=0;i<n;i++) 
      if(obj.options[i].value==v) {
         obj.selectedIndex=i;
         break;
      }
}

//Ritorna il valore di un oggetto (imput o select)
function getValue(obj) {
   var t=obj.type
   if(t.substring(0,6) != "select") return obj.value;
   return obj.options[obj.selectedIndex].value;
}

//Aggiunge un numero di giorni ad una data
function dateAddDays(d,days) {
   return new Date(getFullYear(d),d.getMonth(),d.getDate()+days);
}

//Ritorna l'anno a quattro cifre per una data - Corregge un bachetto di IE 3.01
function getFullYear (date)
{
    var year = date.getYear ();
    if (year < 1000)  year += 1900;
    return (year);
}

//Ritorna il giorno della settimana
function getWeekDay (day, month, year) {
   var d = new Date (year, parseInt(month)-1,  day);
   return (giorni [d.getDay ()]);
 }

//Ritorna il giorno della settimana da un oggetto data
function getWeekDay2(d) { 
   return giorni[d.getDay()];
}

//Imposta una data su elementi dateSelect
//d,m,y : Oggetti che compongono dateSelect
//dt : Data da impostare
function setDateSelect(d,m,y,dt) {
   setValue(d,dt.getDate());
   setValue(m,dt.getMonth()+1);
   setValue(y,getFullYear(dt));
}

//Ritorna la data di DateSelect
//d,m,y : Oggetti che compongono dateSelect
function getDateSelect(d,m,y) {
   var yy=getValue(y);
   var mm=getValue(m);
   var dd=getValue(d);
   //alert(dd+'-'+mm+'-'+yy);
   var dt=new Date(yy,mm-1,dd);
   return dt;
}

//Normalizza la data di un dateSelect (es. 30/2/2000 ==> 1/3/2000)
function normDateSelect(d,m,y) {
   setDateSelect(d,m,y,getDateSelect(d,m,y))
}

//Setta il valore di un campo al giorno della settimana di una dateSelect
function setWeekDay(td,tm,ty,tw) {
   setValue(tw,getWeekDay(getValue(td),getValue(tm),getValue(ty)))
}

var stopConnect=false;

//Setta un dateselect in base ad un altro, con un offset in giorni
function addOffsetDateSelect(d1,m1,y1,d2,m2,y2,offset,ty) {
   if(stopConnect) return;
   var data_from = getDateSelect(d1,m1,y1)
   var data_to = getDateSelect(d2,m2,y2)
   var diff = parseInt((data_to.getTime()-data_from.getTime())/(1000*86400))
   if(ty == "LTE" && diff <= offset) return;
   if(ty == "GTE" && diff >= offset) return;
   if(ty == "EQ" && diff == offset) return;
   data_to = dateAddDays(data_from,offset);
   setDateSelect(d2,m2,y2,data_to);
   /*
      Evita che l'evento vada in loop infinito nel caso di connessione tra date 
      a cavallo del cambio d'ora legale/solare e viceversa
   */
   stopConnect=true;
   d2.onchange();
   stopConnect=false;
}
function set_date_controls(obj) {
			//obj must be a control object included in a form
			
			
			form_obj=obj.form;
			
			check_in_year=form_obj.AY;
			check_in_month=form_obj.AM;
			check_in_day=form_obj.AD;
			check_out_year=form_obj.PY;
			check_out_month=form_obj.PM;
			check_out_day=form_obj.PD;
			num_nights=form_obj.num_nights;
			
			if (obj.name==check_in_year.name || obj.name==check_in_month.name || obj.name==check_in_day.name || obj.name==num_nights.name) {
				date_from=getDateSelect(check_in_day,check_in_month,check_in_year);
				if (getValue(num_nights)==0) {
					setValue(num_nights,1);
				}
				days=getValue(num_nights);
				days-=0;
				days+=date_from.getDate();
				date_to=new Date(date_from.getFullYear(),date_from.getMonth(),days);
				setDateSelect(check_out_day,check_out_month,check_out_year,date_to);
			}
			else if (obj.name==check_out_year.name || obj.name==check_out_month.name || obj.name==check_out_day.name) {
				date_from=getDateSelect(check_in_day,check_in_month,check_in_year);
				date_to=getDateSelect(check_out_day,check_out_month,check_out_year);
				days = Math.round((date_to.getTime()-date_from.getTime())/(1000*86400));
				setValue(num_nights,days);
				if ( num_nights.style) {
					if (days>0) {
						num_nights.style.color="";
						num_nights.style.textDecoration="";
					}
					else {
						num_nights.style.color="ff5500";
						num_nights.style.textDecoration="line-through";
					}
				}
			}
		}
		
function activate_date_controls(obj) 
	{
		if (!_NS4)  
		{
			form_obj=document.search_form;
			if (obj.type=="checkbox")
			{
				control_value=obj.checked;
				deactivate=!control_value;
			}
			else 
			{
				control_value=obj.value;
				deactivate=control_value==1?false:true;
			}
			if (deactivate) 
			{
			}
			else 
			{
			}
			form_obj.AD.disabled=deactivate;
			form_obj.AM.disabled=deactivate;
			form_obj.AY.disabled=deactivate;
			
			form_obj.PD.disabled=deactivate;
			form_obj.PM.disabled=deactivate;
			form_obj.PY.disabled=deactivate;
						
			form_obj.num_nights.disabled=deactivate;
			form_obj.singole.disabled=deactivate;
			form_obj.doppie.disabled=deactivate;
		}
	}
//