function calendar(caldate) {
var monthname=new Array();
monthname[0]="January"; 
monthname[1]="February"; 
monthname[2]="March"; 
monthname[3]="April"; 
monthname[4]="May"; 
monthname[5]="June"; 
monthname[6]="July"; 
monthname[7]="August"; 
monthname[8]="September"; 
monthname[9]="October"; 
monthname[10]="November"; 
monthname[11]="December"; 

var dayname=new Array();
dayname[0]="Sun";
dayname[1]="Mon";
dayname[2]="Tue";
dayname[3]="Wed";
dayname[4]="Thu";
dayname[5]="Fri";
dayname[6]="Sat";

if (caldate=='today') {
var calendar_day=new Date();
} else {
calendar_day=new Date(caldate);
}

var thisday=calendar_day.getDate();
var thismonth=calendar_day.getMonth();
var thisyear=calendar_day.getFullYear();

document.write('<table id="calendar"><tr><th id="calendar_head" colspan="7">'+monthname[thismonth]+' '+thisyear+'</th></tr><tr>');
for (index=0; index<=6; index++) {
document.write('<th class="calendar_weekdays">'+dayname[index]+'</th>');
}
document.write('</tr><tr>');
calendar_day.setDate(1);
var week_day=calendar_day.getDay();

for (x=0; x<week_day; x++) {
document.write('<td>&nbsp;</td>');
}
var cellcount=1;
var day=1;
while  (cellcount==day) {
if(week_day==0) {
document.write('<tr>');
}
if(day==thisday) {
document.write('<td class="calendar_dates" id="calendar_today">' +day+'</td>' );
} else {
document.write('<td class="calendar_dates">'+day+'</td>');
} if(week_day==6) {
document.write('</tr>');
}
cellcount++;
calendar_day.setDate(cellcount);
week_day=calendar_day.getDay();
day=calendar_day.getDate();
}
document.write('</tr></table>');
}