Codice PHP:
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script Language="JavaScript">
function Calendar_GetString()
{
var firstDate = new Date(this.year,this.month,1);
var firstDay = firstDate.getDay();
var monthArg = this.month + 1;
var calStr = "<form method=POST name="+Calendar.monthName[this.month].toUpperCase()+" action=calendar.php3><input type=hidden name=chiave value=teschio><TABLE BORDER=1 COLS=7>";
calStr += "<TR>";
calStr += "<TD COLSPAN=7 ALIGN=center><SPAN class=caldefault><font size=2>"+Calendar.monthName[this.month].toUpperCase()+" "+this.year+"</font></SPAN></TD><input type=hidden name=mese value="+monthArg+"><input type=hidden name=anno value="+this.year+">";
calStr += "</TR>";
calStr += "<TR>";
for (var i=0;i<Calendar.dayName.length;i++)
calStr += "<TD ALIGN=center><SPAN class=caldefault><font size=2>"+Calendar.dayName[i]+"</font></SPAN></TD>";
calStr += "</TR>";
var dayCount = 1;
calStr += "<TR>";
for (var i=0;i<firstDay;i++)
calStr += "<TD> </TD>";
for (var i=0;i<this.monthDays[this.month];i++)
{
var styleStr = "calday";
if (dayCount==this.date)
styleStr = "caltoday";
calStr += '<TD ALIGN="center"><input type=radio name=giorno value='+
dayCount+' onClick="document.'+Calendar.monthName[this.month].toUpperCase()+'.submit();">'+
'<SPAN class="'+styleStr+'"><font size=2>'+
dayCount+'</font></SPAN></A></FONT></TD>';
dayCount++;
if ((i+firstDay+1)%7==0&&(dayCount<this.monthDays[this.month]+1))
calStr += "</TR><TR>";
}
var totCells = firstDay+this.monthDays[this.month];
for (var i=0;i<(totCells>28?(totCells>35?42:35):28)-totCells;i++)
calStr += "<TD> </TD>"
calStr += "</TR>";
calStr += "</TABLE></form>";
return calStr;
}
function Calendar_Show()
{
var calStr = this.GetString();
document.write(calStr);
}
function Calendar(date,month,year,action)
{
// Properties
this.date = date;
this.month = month;
this.year = year;
this.action = action;
this.monthDays = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
// Leap year test
if ((this.year%4==0||this.year%100==0)&&(this.year%400==0))
this.monthDays[1] = 29;
else
this.monthDays[1] = 28;
// Methods
this.Show = Calendar_Show;
this.GetString = Calendar_GetString;
}
Calendar.dayName = new Array("Dom","Lun","Mar","Mer","Gio","Ven","Sab");
Calendar.monthName = new Array("Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre");
function CalendarSet_Show()
{
var border = '';
document.write('<table border="0" cellpadding="0" cellspacing="0"><tr>');
// Show the top border
for (var i=0;i<this.calendars.length+2;i++)
{
document.write(border);
}
document.write('</tr><tr>');
document.write(border);
for (var i=0;i<this.calendars.length;i++)
{
document.write('<td>');
this.calendars[i].Show();
document.write('</td>');
}
document.write(border);
document.write('</tr><tr>');
// Show the bottom border
for (var i=0;i<this.calendars.length+2;i++)
{
document.write(border);
}
document.write('</tr></table>');
}
function CalendarSet_SetMonthOptions(selectField)
{
var selected = true;
selectField.options.length = 0; // Clear the popup
for (var i=0;i<this.calendars.length;i++)
{
var anOption = new Option(Calendar.monthName[this.calendars[i].month]+" "+this.calendars[i].year,(this.calendars[i].month+1)+","+this.calendars[i].year,selected,selected);
selectField.options[i] = anOption;
selected = false;
}
selectField.options[0].selected = true;
}
function CalendarSet_SetDateOptions(monthSelectField,dateSelectField)
{
var calObject = this.calendars[monthSelectField.selectedIndex];
var daysInMonth = calObject.monthDays[calObject.month];
if (dateSelectField.options.length==0)
{
var anOption = new Option("Date",0,true,true);
dateSelectField.options[0] = anOption;
}
if (dateSelectField.options.length > daysInMonth+1)
{
// Remove last entries
var excess = dateSelectField.options.length - daysInMonth - 1;
for (var i=0;i<excess;i++)
{
dateSelectField.options[dateSelectField.length-1] = null;
}
}
else if (dateSelectField.options.length < daysInMonth+1)
{
// Add entries
var deficit = daysInMonth - dateSelectField.options.length + 1;
for (var i=0;i<deficit;i++)
{
var anOption = new Option(dateSelectField.options.length,dateSelectField.options.length,false,false);
dateSelectField.options[dateSelectField.options.length] = anOption;
}
}
var now = new Date();
dateSelectField.options[now.getDate()].selected = true;
}
function CalendarSet(startDate,months,action)
{
this.borderColor = "#42316B";
this.calendars = new Array();
var now = new Date();
var month=startDate.getMonth();
var year = startDate.getFullYear();
for (var i=0;i<months;i++)
{
var dayToHilite = 0;
if ((now.getFullYear()==year)&&(now.getMonth()==month))
dayToHilite = now.getDate();
this.calendars[i] = new Calendar(dayToHilite,month,year,action);
month++;
if (month>=12)
{
month = 0;
year++;
}
}
this.Show = CalendarSet_Show;
this.SetMonthOptions = CalendarSet_SetMonthOptions;
this.SetDateOptions = CalendarSet_SetDateOptions;
}
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000" marginwidth="0" marginheight="0" leftmargin="0" topmargin="0">
<script Language="JavaScript">
function HandleCalClick(day,mon,year)
{
document.write('" + mon + "/" + day + "/" + year');
}
var gImageDir = "images/"
var now=new Date();
var gCalendarSet = new CalendarSet(now,1,"HandleCalClick");
gCalendarSet.Show();
</script>
</body>
</html>