function montharr(m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11){
	this[0]=m0;this[1]=m1;this[2]=m2;this[3]=m3;this[4]=m4;this[5]=m5;this[6]=m6;this[7]=m7;this[8]=m8;this[9]=m9;this[10]=m10;this[11]=m11;
}

function calendar(){
	var monthNames='  January February    March    April      May     June     July   AugustSeptember  October November December';
	var today=new Date();var thisDay;
	var monthDays=new montharr(31,28,31,30,31,30,31,31,30,31,30,31);
	
	year=today.getFullYear();
	if(year<2000){year+=1900}
	thisDay=today.getDate();
	
	// do the classic leap year calculation
	if(((year % 4==0)&&(year % 100 != 0))||(year % 400==0))monthDays[1]=29;

	// figure out how many days this month will have...
	nDays=monthDays[today.getMonth()];
	
	// and go back to the first day of the month...
	firstDay=today;
	firstDay.setDate(1);	// works fine for most systems
	testMe=firstDay.getDate();
	if(testMe==2)firstDay.setDate(0);	// handle bug on Mac
	// and figure out which day of the week it hits...
	startDay=firstDay.getDay();
	 
	document.writeln('<table border=\"0\"><tr><td><center>');
	document.write('<table border=\"0\" cellspacing=\"0\">');
	document.write('<tr><th colspan=\"7\">');
	document.write(monthNames.substring(today.getMonth()*9,(today.getMonth()+1)*9));
	document.write('  ');
	document.write(year);
	document.write('<tr><th>Sun<th>Mon<th>Tue<th>Wed<th>Thu<th>Fri<th>Sat');
	
	// now write the blanks at the beginning of the calendar
	document.write('<tr>');
	column=0;
	for (i=0;i<startDay;i++){
		document.write('<td><\/td>');
		column++;
	}

	for (i=1;i<=nDays;i++){
		document.write('<td>');
		if(i==thisDay)
			document.write('<font color=\"#FF0000\"><b>');
			document.write(i);
		if(i==thisDay)
			document.write('<\/b><\/font><\/td>');
			column++;
		if(column==7){
			document.write('<\/tr><tr>'); // start a new row
			column=0;
		}
	}
	document.write('<\/tr><\/table>');
	document.writeln('<\/center><\/td><\/tr><\/table>');
}
calendar();
