<?PHP
	session_start();

	function showCalendar()
	{
		if(strlen($_GET[viewDate]) == 7)
		{
			// set a session variable to keep track of what month we are looking at
			$_SESSION[showDate] = $_GET[viewDate];
			echo "CHANGE MONTH<br>\n";
		}

		$secsaday = 24*60*60;
		$currentDate = date('d');
		$currentMonth = date('m');
		$currentYear = date('Y');
		$today = date('j');

		$dateInfo = explode('-', $monthToShow);

		// move back/forth in time for each year/month to get a timestamp/offset that represents the first day of target month/year
		$offset = ($dateInfo[0] - $currentYear) * $secsaday * 365 + ($dateInfo[1] - $currentMonth) * $secsaday * 30 + ($today -1) * $secsaday;

		$viewDate = 0;
		$viewMonth = 0;
		$viewYear = 0;


		$prevYear = $currentYear;
		$nextYear = $currentYear;
		$currentMonthsDays = date('t');
		$prevMonthsDays = date('t', time() - $today * $secsaday);
		$prevMonth = date('m', time() - $today * $secsaday);
		if($prevMonth == 12)
			$prevYear--;
		$nextMonth = date('m', time() + ($currentMonthsDays - $today +1) * $secsaday);
		if($nextMonth == 1)
			$nextYear++;
		$firstDayInMonth = date('w', time() - (date('j') -1) * $secsaday);
		if($firstDayInMonth == 0)
			$firstDayInMonth = 7;
		--$firstDayInMonth;
		$lastDayInMonth = date('w', time() + ($currentMonthsDays - $today) * $secsaday);
		if($lastDayInMonth == 0)
			$lastDayInMonth = 7;
		if($today < 15)
			$previousDays = 7;
		else
			$futureDays = 14;

		echo "<table border=1 cellpadding=0 cellspacing=0>\n<tr>\n";
		echo "<tr>\n<td><a href=\"$_SERVER[PHP_SELF]?viewDate=$prevYear-$prevMonth\">&lt;</a></td>\n<td colspan=5><center><b>" . date('F') . "</b></center></td>\n<td><a href=\"$_SERVER[PHP_SELF]?viewDate=$nextYear-$nextMonth\">&gt;</a></td>\n</tr>\n";

		for($n = $prevMonthsDays - ($firstDayInMonth + $previousDays -1); $n <= $prevMonthsDays; $n++)
		{
			$targetDate = $currentYear . "-" . $prevMonth . "-" . str_pad($n, 2, '0', STR_PAD_LEFT);
			echo "<td bgcolor=\"#999999\"><a href=\"$_SERVER[PHP_SELF]?viewDate=$targetDate\">$n</a></td>\n";
			if(date('w', time() - ($prevMonthsDays - $n + $today) * $secsaday) == 0)
				echo "</tr>\n<tr>\n";
		}

		for($n = 1; $n <= $currentMonthsDays; $n++)
		{
			$targetDate = $currentYear . "-" . $currentMonth . "-" . str_pad($n, 2, '0', STR_PAD_LEFT);

			echo "<td bgcolor=\"";
			if($today != $n)
				echo "#cccccc";
			else
				echo "#ffcccc";
			echo "\"><a href=\"$_SERVER[PHP_SELF]?viewDate=$targetDate\">$n</a></td>\n";
			if(date('w', time() - ($today - $n) * 24 * 60 * 60) == 0)
				echo "</tr>\n<tr>\n";
		}

		for($n = 1; $n <= ($futureDays + (7 - $lastDayInMonth)); $n++)
		{
			$targetDate = $currentYear . "-" . $nextMonth . "-" . str_pad($n, 2, '0', STR_PAD_LEFT);
			echo "<td bgcolor=\"#999999\"><a href=\"$_SERVER[PHP_SELF]?viewDate=$targetDate\">$n</a></td>\n";
			if(date('w', time() + ($currentMonthsDays - $today + $n) * $secsaday) == 0)
				echo "</tr>\n<tr>\n";
		}

		echo "</table>\n";

	}

	showCalendar();

PHP?>
