
function showCalendar(idCal,idTrg) {

		var y,m;
		var dat=new Date();
		var dv=document.getElementById(idCal);
		var dt=document.getElementById(idTrg);
		var dtVal=dt.value;
		
		if(dtVal!="") {
			y=Math.round(dtVal.substring(6));
			m=Math.round(dtVal.substring(3,5));
			dat=new Date(y,(m-1),1);
		}
			y=dat.getYear();
		if (y<1000) y+=1900;
	
		if(dv) {
			fillTable(y,dat.getMonth(),idCal,idTrg);
			dv.style.display=(dv.style.display=='none')?'':'none';
			
		} else { alert("Elemento non trovato:"+idCal);}
	}

	
	function setCalendarDate(idCal,idTrg,y,m,d) {
		document.getElementById(idTrg).value=twoCyphers(d)+"/"+twoCyphers(m+1)+"/"+y;
		document.getElementById(idCal).style.display="none";
		
				
		// Aggiungi il tuo codice qui (se necessario)...
		refreshDati('actions/dynamic_list','ajx_nats','ajx_dsts','ajx_date');
		
	}
	
// Costruisco il body
function buildBodyTb(y,m,day,t_date,today,trgt,dv,curr_date){
	t_date=eval(y)*10000+eval(m+1)*100+eval(day);
	
	var body="";
	if(eval(t_date)<eval(today)) body+="<td class=\"calendarBoxDisabled\">"+day;
	else {
		body+="<td class=\"";
		body+=(t_date==curr_date)?"calendarBoxSelected":"";
		body+="\">";
		body+="<a href=\"javascript:setCalendarDate('"+dv+"','"+trgt+"',"+y+","+m+","+day+");\">"+day+"</a>";
	}
	body+="</td>";
return body	
}


// fills the month table with numbers
function fillTable(y,m,dv,trgt)
{ 

  var year=y;
  var today= new Date(y,m,1);
  var startDay = today.getDay();
  
  if (startDay==0) startDay=7;
  var mLength=getHowManyDaysForMonth(m,year);

  var currDt=convertCalDate(document.getElementById(trgt).value);

  var tdy=new Date();
  var nwy=tdy.getYear();
  if (eval(nwy)<1000) nwy+=1900;

  var today=eval(nwy)*10000+eval(tdy.getMonth()+1)*100+eval(tdy.getDate());
  var t_date="";


  day=1
  		
  			// CALENDARIO ...
  			var caption="<a href=\"javascript:fillTable(";
				caption+=(m>0)?y+","+(m-1):(y-1)+",11";
				caption+=",'"+dv+"','"+trgt+"');\">&lt;&lt;</a>";
				caption+=getMonthName(m)+"  "+year;
				caption+="<a href=\"javascript:fillTable(";
				caption+=(m<11)?y+","+(m+1):(y+1)+",0";
	 			caption+=",'"+dv+"','"+trgt+"');\">&gt;&gt;</a>";
  			
			var tbCal="<table id=\"lemCalendar\">";
				tbCal+="<caption>"+ caption+ "</caption>";
				tbCal+="<thead><tr><th>Lu</th><th>Ma</th><th>Me</th><th>Gi</th><th>Ve</th><th>Sa</th><th>Do</th></tr></thead>";
				tbCal+="<tbody><tr>";
				
				// Giorni della settimana...
				for (var i=1;i<startDay;i++) tbCal+="<td>";
				for (var i=startDay;i<=7;i++){ tbCal+=buildBodyTb(y,m,day,t_date,today,trgt,dv,currDt); day++ }
				tbCal+="</tr>";				
	
		  		// Giorni che rimangono del mese...
				while (day <= mLength) {
					for (var i=1;i<=7 && day<=mLength;i++){ tbCal+=buildBodyTb(y,m,day,t_date,today,trgt,dv,currDt);day++}
		     		
		     		tbCal+="</tr>";
		     		startDay=i
		  		}
		  		
  				tbCal+="</tr></tbody>";
  				
  				// Footer....
  				tbCal+="<tfoot><tr><td colspan='7'><a href=\"javascript:calendarClose('"+dv+"');\"' >Chiudi&nbsp;[x]</a></td></tr></table>";

  
  				document.getElementById(dv).innerHTML=tbCal;	

}

function getHowManyDaysForMonth(m,y) {
	if ( m == 1  ) { return  ((y%400==0) || ((y%4==0) && (y%100!=0)))?29:28;
	} else if ( m==0 || m == 2|| m == 4 || m == 6 || m == 7 || m == 9 || m == 11 ) { return 31; 
	} else { return 30; } 
}
var monthArray = ['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno','Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'];

function getMonthName(m) {
	
	return 	monthArray[m];
}

function calendarClose(id){ document.getElementById(id).style.display= 'none'; }
function twoCyphers(n) { return (eval(n)<10)?"0"+n : n;}
function convertCalDate(dt) {
	if(dt=="") return "";		
	var y=dt.substring(6);
	var m=dt.substring(3,5);
	var d=dt.substring(0,2);
	return Math.round(y)*10000+Math.round(m)*100+Math.round(d);
}

	