var m0;var y0;function calendar(field,calid, d, m, y){//alert(d);//alert (m0);	var mn =['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno','Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'];	var dim =[31,0,31,30,31,30,31,31,30,31,30,31];	var vDay = new Date(y, m-1, 1);	var nowDate = new Date(y, m-1, d);	var gp = nowDate.getDate();	vDay.d=vDay.getDay()+7; 	var vToday = new Date();	var findDay = (y==vToday.getFullYear() && m==vToday.getMonth()+1)? vToday.getDate() : 0;	var dateString = '\''+rtrn2chr(gp)+'/'+rtrn2chr(vDay.getMonth())+'/'+vDay.getFullYear()+'\'';	dim[1]=(((vDay.getFullYear()%100!=0)&&(vDay.getFullYear()%4==0))||(vDay.getFullYear()%400==0))?29:28;	var t='<div class="CDefault"><table class="CDefault" cols="8" cellpadding="1" border="0" cellspacing="1">';	t+= '<tr align="center"><td align="center" class="CLabel"><span onclick="writeCalendar(0,\''+field+'\',\''+calid+'\', '+dateString+',0,-1);" style="cursor:hand;">\u00AB</span></td>'	t+= '<td colspan="6" align="center" class="CLabel">'+mn[m-1]+'</td>';	t+= '<td align="center" class="CLabel"><span onclick="writeCalendar(0,\''+field+'\',\''+calid+'\','+dateString+',0,1);" style="cursor:hand;">\u00BB</span></td></tr>'	t+= '<tr align="center"><td align="center" class="CLabel"><span onclick="writeCalendar(0,\''+field+'\',\''+calid+'\','+dateString+',-1,0);" style="cursor:hand;">\u00AB</span></td>'	t+= '<td colspan="6" align="center" class="CLabel">'+y+'</td>';		t+= '<td align="center" class="CLabel"><span onclick="writeCalendar(0,\''+field+'\',\''+calid+'\','+dateString+',1,0);" style="cursor:hand;">\u00BB</span></td></tr>';	t+= '<tr align="center">';	for(s=0;s<8;s++){		t+='<td class="CLabel">'+" LMMGVSD".substr(s,1)+'</td>';	}	var wy = weekOfYear(vDay.getFullYear(),vDay.getMonth(),1);	t+='</tr><tr align="center"><td class="CWeek">'+wy+'</td>';	var p_t = (vDay.d>7) ? eval(vDay.d-7) : vDay.d;	for(s=p_t-1;s>0;s--){		dayPrev = (m<=1) ? eval(31-s+1) : eval(dim[m-2]-s+1);		t += '<td class="CDayBg">'+dayPrev+'</td>';	}	var ats=0;	for(i=1;i<=dim[m-1];i++){		ats++;		var cls='CDay';		if(gp==i && nowDate.getMonth()+1==m0 && nowDate.getFullYear()==y0){cls='CselDay';}		if (isNaN(d) && i==findDay){cls='CselDay';}		t += '<td class="'+cls+'">';		t += '<span onclick="document.getElementById(\'' + field + '\').value=\''+rtrn2chr(i)+'/'+rtrn2chr(vDay.getMonth()+1)+'/'+vDay.getFullYear()+'\';document.getElementById(\''+calid+'\').style.visibility=\'hidden\';" style="cursor:hand;visHide(1,\''+calid+'\');">'+i+'</span></td>';		if((p_t+i-1)%7==0){			wy+=1;			t+='</tr>';			if(i>(p_t+i-11)&&i!=dim[m-1]){t+='<tr><td class="CWeek">'+wy+'</td>';ats=0;}		}	}	for(s=1;s<8-ats;s++){		t += '<td class="CDayBg">'+s+'</td>';	}	t+='</table></div>';	return t;}function visHide(t,calid){	var dis = document.getElementById(calid).style;	if(dis.visibility=='hidden'){dis.visibility='visible';return true;}	else{if(t==1){dis.visibility='hidden';return false;}else{return true;}}}function writeCalendar(t, field, calid, ymd, yy, mm){	y = parseInt(ymd.substr(6,4),10);	m = parseInt(ymd.substr(3,2),10)	g = parseInt(ymd.substr(0,2),10);		if(visHide(t,calid)){		if(t==1){if(isNaN(yy) && isNaN(m)){var vToday=new Date();}else{var vToday=new Date(y,m-1,1);}}		else{var vToday=new Date(y,m,1);}		if(yy){			if(t==1){vToday.setFullYear(y,m-1)}else{vToday.setFullYear(y+yy,m+mm);}		}		else if(mm){			if(t==1){vToday.setMonth(m-1)}else{vToday.setMonth(m+mm);}		}		var vMonth=vToday.getMonth()+1;		var vYear=vToday.getFullYear();		if(event.srcElement.src!=undefined){m0 = vMonth;	y0 = vYear;}		document.getElementById(calid).innerHTML = calendar(field, calid, g, vMonth ,vYear);		document.getElementById(calid).setActive();	}}function weekOfYear(yyear,mmonth,dday){	var d = new Date(yyear, mmonth, dday, 0, 0, 0);	var DoW = d.getDay(); //day of the week 0=Sun 6=Sat	d.setDate(d.getDate() - (DoW + 6) % 7+7);	var myVar = d.valueOf();	d.setMonth(0);	d.setDate(5);	return (Math.round((myVar - d.valueOf()) / (7 * 864e5)) + 1);}function rtrn2chr(num){	num = "0"+num;	return Right(num,2)}function Right(str, n){    if (n <= 0)       return "";    else if (n > String(str).length)       return str;    else {       var iLen = String(str).length;       return String(str).substring(iLen, iLen - n);    }}