function showCalendar(div_name,trgt) {

		var dv=document.getElementById(div_name);
		var dt=document.getElementById(trgt);
		var y,m;
		

		var dt_val=dt.value;
		
		var dat=new Date();
		if(dt_val!="") {
			
			y=eval(dt_val.substring(6));
			m=eval(dt_val.substring(3,5));
			dat=new Date(y,(m-1),1);

			
		}

		y=dat.getYear();
		if (y<1000) y+=1900;
	
		


		if(dv) {
			fill_table(y,dat.getMonth(),div_name,trgt);
			if(dv.style.display=='none') dv.style.display="";
			else dv.style.display="none";
		} else { alert("Elemento non trovato:"+div_name);}


	}

	function getCalendarMonthName(m) {
		switch(m) {
		  case 0: return "Gennaio";break;
		  case 1: return "Febbraio";break;
		  case 2: return "Marzo";break;
		  case 3: return "Aprile";break;
		  case 4: return "Maggio";break;
		  case 5: return "Giugno";break;
		  case 6: return "Luglio";break;
		  case 7: return "Agosto";break;
		  case 8: return "Settembre";break;
		  case 9: return "Ottobre";break;
		  case 10: return "Novembre";break;
		  case 11: return "Dicembre";break;

		  default:return "?????";break;

		
		}
	}

	function getHowManyDaysForMonth(m,y) {
		if(m==0 || m==2 || m==4 || m==6 || m==7 || m==9 || m==11) return 31;
		else if(m==3 || m==5 || m==8 || m==10) return 30;
		else return 28;
	}

	function setCalendarDate(div_name,trgt,y,m,d) {
		var fld=document.getElementById(trgt);
		var dv=document.getElementById(div_name);

		fld.value=twoCyphers(d)+"/"+twoCyphers(m+1)+"/"+y;
		dv.style.display="none";
		// Aggiungi il tuo codice qui (se necessario)...
		
	}

	function twoCyphers(n) {if (eval(n)<10) return "0"+n; else return n;}

	function convertCalendarDate(dt_val) {

		if(dt_val=="") return "";		

		var y=dt_val.substring(6);
		var m=dt_val.substring(3,5);
		var d=dt_val.substring(0,2);
		return eval(y)*10000+eval(m)*100+eval(d);
	}
	// fill the month table with column headings
function day_title(day_name){
     return "<TD ALIGN=center WIDTH=35 class='calendarHeaderDays'>"+day_name+"</TD>";
}


// fills the month table with numbers
function fill_table(y,m,dv,trgt)
{ 

  year=y;
  today= new Date(y,m,1);
  start_day = today.getDay();
  if (start_day==0) start_day=7;
  var month_length=getHowManyDaysForMonth(m);
  var month=m;

  var curr_date=convertCalendarDate(document.getElementById(trgt).value);
  var tdy=new Date();

  var nwy=tdy.getYear();
  if (eval(nwy)<1000) nwy+=1900;

  var today_date=eval(nwy)*10000+eval(tdy.getMonth()+1)*100+eval(tdy.getDate());
  
  var t_date="";


  day=1
  // begin the new month table
  var x="<TABLE class=\"calendarBox\" BORDER=0 CELLSPACING=0 CELLPADDING=0><TR class=\"calendarHeader\">";

  x+="<TD align='left'><a href=\"javascript:fill_table(";

  if(m>0) x+=y+","+(m-1); else x+=(y-1)+",11";

  x+=",'"+dv+"','"+trgt+"');\">&lt;&lt;</a></TD>";
  x+="<TD COLSPAN=5 ALIGN=center><B>"+getCalendarMonthName(m)+"   "+year+"</B>";
  x+="<TD align='right'><a href=\"javascript:fill_table(";

  if (m<11) x+=y+","+(m+1); else x+=(y+1)+",0";
  x+=",'"+dv+"','"+trgt+"');\">&gt;&gt;</a></TD></TR><TR>";

  // column headings

  
  x+=day_title("Lu");x+=day_title("Ma");x+=day_title("Me");x+=day_title("Gi");x+=day_title("Ve");x+=day_title("Sa");x+=day_title("Do");
  
  // pad cells before first day of month
  x+="</TR><TR>";

  //alert(start_day);

  for (var i=1;i<start_day;i++){
      	x+="<TD>";
  }
  // fill the first week of days
  for (var i=start_day;i<=7;i++){

	t_date=eval(y)*10000+eval(m+1)*100+eval(day);
	

	
	if(eval(t_date)<eval(today_date)) x+="<TD ALIGN=center class=\"calendarBoxDisabled\">"+day;
	else {
		x+="<TD ALIGN=center class=\"";
		if(t_date==curr_date) x+="calendarBoxSelected"; else x+="calendarBoxActive";
		x+="\">";
		x+="<a href=\"javascript:setCalendarDate('"+dv+"','"+trgt+"',"+y+","+m+","+day+");\">";
		x+=day;
		x+="</a>";
	}
	x+="</TD>";
        day++
  }
  x+="<TR>";

  // fill the remaining weeks
  while (day <= month_length) {
     for (var i=1;i<=7 && day<=month_length;i++){

	t_date=eval(y)*10000+eval(m+1)*100+eval(day);


	if(eval(t_date)<eval(today_date)) x+="<TD ALIGN=center class=\"calendarBoxDisabled\">"+day;
	else {
		x+="<TD ALIGN=center class=\"";
		if(t_date==curr_date) x+="calendarBoxSelected"; else x+="calendarBoxActive";
		x+="\">";
		x+="<a href=\"javascript:setCalendarDate('"+dv+"','"+trgt+"',"+y+","+m+","+day+");\">";
		x+=day;
		x+="</a>";
	}
	x+="</TD>";
        day++
     }
     x+="</TR><TR>";
     // the first day of the next month
     start_day=i
  }
  x+="</TR><TR><TD align='right' colspan='7' class='closeLink' height='20'><a href=\"javascript:calendarClose('"+dv+"');\"' >Chiudi&nbsp;[x]</a>&nbsp;&nbsp;</TD></TR></TABLE>";

  
  document.getElementById(dv).innerHTML=x;	

}

function calendarClose(div_id){
		var div=document.getElementById(div_id);
		div.style.display= 'none';
}