function minicalendar(year, month)
{
	var week = 0;
	var rows = 0;
	var display = "";
	var width = 168;
	var height = 19;
	
	// Determine days in a month
	function days_in_month(month, year)
	{
		return 32 - new Date(year, month, 32).getDate();
	}
	
	// Get current month's information
	if ( year && month || ( year ) )
	{
		var date = new Date(year, month, 1);
		var current_day = date.getDay();
		var current_day_number = date.getDate();
		var current_month = date.getMonth();
		var current_year = date.getFullYear();
		var six_rows = 1;
	}
	else
	{
		var date = new Date();
		var current_day = date.getDay();
		var current_day_number = date.getDate();
		var current_month = date.getMonth();
		var current_year = date.getFullYear();
	}
	
	var date = new Date();
	var today_day_number = date.getDate();
	var today_month = date.getMonth();
	
	// First of the month
	var date = new Date(current_year, current_month, 01); // First of the month
	var current_first = date.getDay();
	
	// Previous month's information
	if ( current_month == 0 )
	{
		var previous_month = 11; // December
		var previous_year = (current_year - 1); // Previous year
	}
	else
	{
		var previous_month = (current_month - 1);
		var previous_year = current_year;
	}
	
	// Next month's information
	if ( current_month == 11 )
	{
		var next_month = 0; // December
		var next_year = (current_year + 1); // Next year
	}
	else
	{
		var next_month = (current_month + 1);
	}
	
	// Make array of month names and days of the week
	var month_names = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
	var month_abbrev = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
	var day_headers = new Array("S","M","T","W","T","F","S");
	
	// Display month title
	display += '<table border="0" cellpadding="0" cellspacing="0" width="' + width + '"><tr><td class="month">' + month_names[current_month] + ' ' + ( six_rows ? '' : current_day_number + ', ' ) + current_year + '</td></tr></table>';
	
	// Start main calendar table
	display += '<table border="0" cellpadding="0" cellspacing="0" width="' + width + '" class="calendar"><tr>';
	
	var i = 0;
	while ( day_headers[i] )
	{
		display += '<td width="' + (width / 7) + '" class="day_headers" align="center">' + day_headers[i] + '</td>';
		i++;
	}
	
	display += '</tr><tr>';
	
	// Determine days from last month to display
	var continue_check = 1;
	var days_previous = 0;
	while ( continue_check )
	{
		if ( days_previous == current_first )
		{
			continue_check = 0;
		}
		else
		{
			days_previous++;
		}
	}
	
	if ( days_previous > 0 )
	{
		var start = ((days_in_month(previous_month, previous_year) - days_previous) + 1); // Where to start
		var stop = days_in_month(previous_month, previous_year); // Last day in previous month
		for ( i=start; i<=stop; i++ )
		{
			display += '<td width="' + (width / 7) + '" height="' + height + '" class="' + ( week == 0 ? 'previous_sunday' : 'previous_day' ) + '" align="center"><a class="previous_next" href="calendar.htm">' + i + '</a></td>';
			week++;
		}
	}
	
	// Current month
	var end = days_in_month(current_month, current_year); // Last day in current month
	for ( i=1; i<=end; i++ )
	{
		if ( i == current_day_number && ( today_month == current_month ) )
		{
			display += '<td width="' + (width / 7) + '" height="' + height + '"' + ( week == 6 ? ' class="today_sat"' : ' class="today"' ) + ' align="center"><a class="month" href="calendar.htm">' + i + '</a></td>';
		}
		else
		{
			display += '<td width="' + (width / 7) + '" height="' + height + '" class="' + ( week == 0 ? 'sunday' : ( week == 6 ? 'saturday' : 'day' ) ) + '" align="center"><a class="month" href="calendar.htm">' + i + '</a></td>';
		}
		
		week++;
		if ( week == 7 && i<end )
		{
			display += '</tr><tr>';
			week = 0;
			rows++;
		}
	}
	
	rows++; // because last row doesn't count
	
	// Next month
	h = 1;
	for ( i=week; i<7; i++ )
	{
		display += '<td width="' + (width / 7) + '" height="' + height + '" class="' + ( i == 6 ? 'next_saturday' : 'next_day' ) + '" align="center"><a class="previous_next" href="calendar.htm">' + h + '</a></td>';
		h++;
	}
	
	if ( six_rows > 0 )
	{
		for ( b=rows; b<6; b++ )
		{
			display += '<tr>';
			for ( week=1; week<=7; week++ )
			{
				display += '<td width="' + (width / 7) + '" height="' + height + '" class="' + ( week < 7 ? 'sunday' : 'saturday' ) + '"><img src="images/spacer.gif"></td>';
			}
			display += '</tr>';
		}
	}
	
	display += '</tr></table>';
	
	document.write(display);
}