Ti ringrazio innanzitutto per il tuo prezioso aiuto!
Io ho tentato di spiegarmi... ma sicuramente l'ho fatto male!
Questo è il codice della pagina dove ho problemi, intorno alla riga 34...
Come ho detto nel post precedente con l'input di tipo radio funziona... a me serve che funzioni senza radio, ma con un hidden.. in modo che il submit del form avvenga direttamente cliccando sulla data.
Ecco il codice della pagina (calendar.php3):
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>