// JavaScript Document
// JavaScript Document
var win = null;
var scbar = 'yes';
function NewWindow(mypage,myname,w){
h = (screen.height)-300;
LeftPosition = (screen.width) ? (screen.width-w)/2 : 0;
TopPosition = (screen.height) ? (screen.height-h)/2 : 0;
settings ='height='+h+',width='+w+',scrollbars='+scbar+',top='+TopPosition+',left='+LeftPosition+','
win = window.open(mypage,myname,settings)
if(win.window.focus){win.window.focus();}
}

var d = new Date;
var base_year= d.getFullYear();
var base_month= d.getMonth();
var base_day= d.getDay();
var dt_base_date=new Date(base_year, base_month-1, base_day);
var dt_max_date=new Date(base_year+1, 11, 31);
var arr_months = ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"];
var week_days_long = ["Domenica", "Lunedi", "Martedi", "Mercoledi", "Giovedi", "Venerdi", "Sabato"];
var week_days = ["Do", "Lu", "Ma", "Me", "Gi", "Ve", "Sa"];
var n_weekstart = 1;

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 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 vWinleft = (screen.width - 400) / 2.0;
	var vWintop = (screen.height - 180) / 1.9;
	var vWinCal = window.open("", "Calendar", "width=400,height=180,status=no,resizable=no,top="+vWintop+",left="+vWinleft+"");
	vWinCal.opener = self;
	var calc_doc = vWinCal.document;
	calc_doc.write (str_buffer);
	calc_doc.close();
}

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 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)+1);
    }
	
	targetYear=getObj(str_target+"anno");
	targetMonth=getObj(str_target+"mese");
	targetDay=getObj(str_target+"giorno");
	targetDesc=getObj(str_target+"desc");
	
	targetYear.selectedIndex=dateYear-base_year;
	targetMonth.selectedIndex=dateMonth-1;
	targetDay.selectedIndex=dateDay-1;

	targetDesc.innerHTML=week_days_long[targetDate.getDay()]+" "+dateDay+" "+arr_months[dateMonth-1]+" "+dateYear;

	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");
		othertargetDesc=getObj(other_target+"desc");


		othertargetYear.selectedIndex=otherDate.getFullYear()-base_year;
		othertargetMonth.selectedIndex=otherDate.getMonth();
		othertargetDay.selectedIndex=otherDate.getDate()-1;
	
		othertargetDesc.innerHTML=week_days_long[otherDate.getDay()]+" "+otherDate.getDate()+" "+arr_months[otherDate.getMonth()]+" "+otherDate.getFullYear();
	}
	return true;
}


function ShowChildrenRows(num)
{
  for(i=1; i<6 ;i++)
    {
      row=getObj('child_row'+i);
      if(i<=num)
        row.style.display="";
      else
        row.style.display="none";
    }
}

function ToggleNearTo(img)
{
  row=getObj('near_to_row');
  
  if(img.hide)
    {
      row.style.display="none";    
      img.src="img/expand.gif";
      img.hide=false;
    }
  else
    {
      row.style.display="";
      img.src="img/collapse.gif";
      img.hide=true;
    }
}

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
}
//-->