// BOOKING: DEFAULT

function CaricaDate() {
document.getElementById('f_prendalgiorno').value=getGiorno(false);
document.getElementById('f_prendalmese').value=getMese(false);
document.getElementById('f_prendalanno').value=getAnno(false);
document.getElementById('f_prenalgiorno').value=getGiorno(true);
document.getElementById('f_prenalmese').value=getMese(true);
document.getElementById('f_prenalanno').value=getAnno(true);
}

function getGiorno(tomorrow) {
var today=new Date();
if(tomorrow) today.setDate(today.getDate()+1);
var daynumber = today.getDate();

if (daynumber <10)
	return '0'+daynumber;
else
	return daynumber;
}
function getMese(tomorrow) {
var today=new Date();
if(tomorrow) today.setDate(today.getDate()+1);
var monthnumber = today.getMonth();
return monthnumber +1;
}
function getAnno(tomorrow) {
var today=new Date();
if(tomorrow) today.setDate(today.getDate()+1);
var yearnumber = today.getYear();
var yearnumber = (yearnumber < 1000) ? yearnumber + 1900 : yearnumber;
return yearnumber;
}

var base_year=getAnno();
var base_month=getMese();
var base_day=getGiorno();
var dt_base_date=new Date(base_year, base_month-1, base_day);
var dt_max_date=new Date(base_year+1, getMese(), getGiorno());
var arr_months = ["gennaio", "febbraio", "marzo", "aprile", "maggio", "giugno", "luglio", "agosto", "settembre", "ottobre", "novembre", "dicembre"];
var week_days_long = ["domenica", "lunedì", "martedì", "mercoledì", "giovedì", "venerdì", "sabato"];
var week_days = ["Do", "Lu", "Ma", "Me", "Gi", "Ve", "Sa"];
var n_weekstart = 1;

function dt2dtstr (dt_datetime)
{
	var dt_date = new Date(dt_datetime);
	return (new String (dt_date.getFullYear()+", "+(dt_date.getMonth()+1)+", "+dt_date.getDate()));
}

function IsDateInPast(date)
{
  var today= new Date();
  var today= new Date(today.getFullYear(), today.getMonth(),1);
  
  date = new Date(date.getFullYear(), date.getMonth(),1);
  
  if(today.getTime() > date.getTime())
    return true;
    
  return false
}


function printMonth(dt_month, dt_prev_month, dt_next_month, str_target, other_target)
{
	var str_buffer="<table bgcolor=\"#4A4A4A\" cellspacing=\"1\" cellpadding=\"3\" border=\"0\" width=\"100%\">\n"+
					"<tr>\n"+
					"<td bgcolor=\"#444444\"align=\"center\">";

	if(dt_prev_month!=0)
		str_buffer+="<a href=\"javascript:window.opener.show_calendar('"+
					str_target+"', '"+other_target+"', "+ dt2dtstr(dt_prev_month)+");\">"+
					"<font color=\"white\" face=\"tahoma, verdana\" size=\"1\"><b><<</b></font></a>";

	str_buffer+="</td>\n"+
				"<td bgcolor=\"#444444\" colspan=\"5\" align=\"center\">"+
				"<font color=\"white\" face=\"tahoma, verdana\" size=\"2\"><b>"+
				arr_months[dt_month.getMonth()]+" "+dt_month.getFullYear()+
				"</b></font>"+
				"</td>\n"+
				"<td bgcolor=\"#444444\"align=\"center\">";
	
	if(dt_next_month!=0)
		str_buffer+="<a href=\"javascript:window.opener.show_calendar('"+
					str_target+"', '"+other_target+"', "+ dt2dtstr(dt_next_month)+");\">"+
					"<font color=\"white\" face=\"tahoma, verdana\" size=\"1\"><b>>></b></font></a>";

	str_buffer+="</td>\n"+
				"</tr>\n";

	var dt_firstday = new Date(dt_month);
	dt_firstday.setDate(1);
	dt_firstday.setDate(1-(7+dt_firstday.getDay()-n_weekstart)%7);

	var dt_lastday = new Date(dt_month);
	dt_lastday.setMonth(dt_lastday.getMonth()+1);
	dt_lastday.setDate(0);

	var dt_current_day = new Date(dt_firstday);

	// print weekdays titles
	str_buffer+="<tr>\n";
	for (var n=0; n<7; n++)
		str_buffer+="<td bgcolor=\"#838383\">"+
					"<font color=\"#D5D5D5\" face=\"tahoma, verdana\" size=\"2\"><b>"+
					week_days[(n_weekstart+n)%7]+"</b></font></td>\n";

	// print calendar table
	str_buffer+="</tr>\n";
	while(dt_current_day.getMonth() == dt_month.getMonth() ||
		dt_current_day.getMonth() == dt_firstday.getMonth()) {
		// print row heder
		str_buffer+="<tr>\n";
		for(var n_current_wday=0; n_current_wday<7; n_current_wday++) {
				if(dt_current_day.getDate() == dt_base_date.getDate() &&
					dt_current_day.getMonth() == dt_base_date.getMonth() &&
					dt_current_day.getFullYear() == dt_base_date.getFullYear())
					// print current date
					str_buffer += "	<td bgcolor=\"#E2E2C8\" align=\"right\">";
				else if(dt_current_day.getDay() == 0 || dt_current_day.getDay() == 6)
					// weekend days
					str_buffer+="<td bgcolor=\"#D5D5D5\" align=\"right\">";
				else
					// print working days of current month
					str_buffer+="<td bgcolor=\"white\" align=\"right\">";

				if(dt_current_day.getTime() >= dt_base_date.getTime() && dt_current_day.getTime() <= dt_max_date.getTime()) {
					str_buffer+="<a href=\"javascript:window.opener.setComboDate('"+str_target+"', '"+other_target+"', "+dt2dtstr(dt_current_day)+", 0, 0, 0); window.close();\">";
					if (dt_current_day.getMonth() == dt_month.getMonth()) {
						if(dt_current_day.getDate() == dt_base_date.getDate() &&
							dt_current_day.getMonth() == dt_base_date.getMonth() &&
							dt_current_day.getFullYear() == dt_base_date.getFullYear())
							// print current date
							str_buffer+="<font color=\"black\" face=\"tahoma, verdana\" size=\"1\"><b>";
						else
							// print days of current month
							str_buffer+="<font color=\"black\" face=\"tahoma, verdana\" size=\"1\"><b>";
					}
					else 
						// print days of other months
						str_buffer+="<font color=\"gray\" face=\"tahoma, verdana\" size=\"1\"><b>";
					str_buffer+=dt_current_day.getDate()+"</b></font></a></td>\n";
				}
				else {
					str_buffer+="<font color=\"gray\" face=\"tahoma, verdana\" size=\"1\">";
					str_buffer+=dt_current_day.getDate()+"</font></td>\n";
				}

				dt_current_day.setDate(dt_current_day.getDate()+1);
		}
		// print row footer
		str_buffer+="</tr>\n";
	}
	str_buffer+="</table>\n";

	return str_buffer;
}


function ApriCalendario(str_target, other_target, dateYear, dateMonth, dateDay)
{
	var dt_first_month = new Date(dateYear, dateMonth-1, 1);

	var dt_second_month = new Date(dt_first_month);
	dt_second_month.setMonth(dt_first_month.getMonth()+1);
	var dt_prev_month = new Date(dt_first_month);
	dt_prev_month.setMonth(dt_first_month.getMonth()-2);

	var dt_next_month = new Date(dt_first_month);
	dt_next_month.setMonth(dt_first_month.getMonth()+2);


	var str_buffer="<html>\n"+
					"<head>\n"+
					"<title>Calendar</title>\n"+
					"</head>\n"+
					"<body bgcolor=\"White\">\n"+
					"<table class=\"clsOTable\" cellspacing=\"0\" border=\"0\" width=\"100%\">\n"+
					"<tr>"+
					"<td valign=\"top\">\n";
	
	str_buffer+=printMonth(dt_first_month, dt_prev_month, 0, str_target, other_target);
	str_buffer+="</td><td>&nbsp;&nbsp;</td><td valign=\"top\">\n";
	str_buffer+=printMonth(dt_second_month, 0, dt_next_month, str_target, other_target);

	str_buffer+="</td>\n</tr>\n</table>\n"+
				"</body>\n"+
				"</html>\n";

	var vWinCal = window.open("", "Calendar", "width=400,height=180,status=no,resizable=yes,top=200,left=200");
	vWinCal.opener = self;
	var calc_doc = vWinCal.document;
	calc_doc.write (str_buffer);
	calc_doc.close();
}



function getObj(obj)
{
	if(document.getElementById)
		return(eval('document.getElementById(\'' + obj + '\')'))
	else if(document.all)
		return(eval('document.all.' + obj))
}

function setComboDate(str_target, other_target, dateYear, dateMonth, dateDay, otherYear, otherMonth, otherDay)
{
	targetDate = new Date(dateYear, dateMonth-1, dateDay);
	
  if(IsDateInPast(targetDate))
    {
      dateYear=((dateYear*1)+1);
      targetDate.setFullYear((dateYear*1));
    }

	targetYear=getObj(str_target+"anno");
	targetMonth=getObj(str_target+"mese");
	targetDay=getObj(str_target+"giorno");
	
	
	targetYear.selectedIndex=dateYear-base_year;
	targetMonth.selectedIndex=dateMonth-1;
	targetDay.selectedIndex=dateDay-1;



	if(other_target!="") {
		if(otherYear!=0 && otherMonth!=0 && otherDay!=0)
			otherDate = new Date(otherYear, otherMonth-1, otherDay);
		else {
			otherDate = new Date(dateYear, dateMonth-1, dateDay);
			otherDate.setDate(otherDate.getDate()+1);
		}

		othertargetYear=getObj(other_target+"anno");
		othertargetMonth=getObj(other_target+"mese");
		othertargetDay=getObj(other_target+"giorno");


		othertargetYear.selectedIndex=otherDate.getFullYear()-base_year;
		othertargetMonth.selectedIndex=otherDate.getMonth();
		othertargetDay.selectedIndex=otherDate.getDate()-1;
	
	}
	return true;
}

function show_calendar(str_target, other_target, dateYear, dateMonth, dateDay)
{
	var dt_first_month = new Date(dateYear, dateMonth-1, 1);

	var dt_second_month = new Date(dt_first_month);
	dt_second_month.setMonth(dt_first_month.getMonth()+1);
	var dt_prev_month = new Date(dt_first_month);
	dt_prev_month.setMonth(dt_first_month.getMonth()-2);

	var dt_next_month = new Date(dt_first_month);
	dt_next_month.setMonth(dt_first_month.getMonth()+2);


	var str_buffer="<html>\n"+
					"<head>\n"+
					"<title>Calendar</title>\n"+
					"</head>\n"+
					"<body bgcolor=\"White\">\n"+
					"<table class=\"clsOTable\" cellspacing=\"0\" border=\"0\" width=\"100%\">\n"+
					"<tr>"+
					"<td valign=\"top\">\n";
	
	str_buffer+=printMonth(dt_first_month, dt_prev_month, 0, str_target, other_target);
	str_buffer+="</td><td>&nbsp;&nbsp;</td><td valign=\"top\">\n";
	str_buffer+=printMonth(dt_second_month, 0, dt_next_month, str_target, other_target);

	str_buffer+="</td>\n</tr>\n</table>\n"+
				"</body>\n"+
				"</html>\n";

	var vWinCal = window.open("", "Calendar", "width=400,height=180,status=no,resizable=yes,top=200,left=200");
	vWinCal.opener = self;
	var calc_doc = vWinCal.document;
	calc_doc.write (str_buffer);
	calc_doc.close();
}
