Here's a staring point - just set the start dates dynamically...
<script language="javascript1.2">
<!--
//global vairables
today = new Date()
defaultMonth = today.getMonth()
defaultDay = today.getDate()
defaultYear = today.getFullYear()
monthArr = new Array("January","February","March","May","June","July","August","September","October","November","December"

daysArr = new Array(31,28,31,30,31,30,31,31,30,31,30,31)
function showCalendar(month,year,day){
isLeapYear(year) ? daysArr[1] = 29 : daysArr[1] = 28
firstOfMonth = new Date(year,month,1)
htmlStr = ""
dayNum = firstOfMonth.getDay()
weekNum = 1
clearWeeks()
for (x=1; x<=daysArr[month]; x++){
theWeek = document.getElementById("week" + weekNum)
theWeek.childNodes[dayNum].innerHTML = x
if (x == day && month == defaultMonth && year == defaultYear){
theWeek.childNodes[dayNum].style.backgroundColor = "silver"
}
dayNum ++
if (dayNum % 7 == 0){
dayNum = 0
x == daysArr[month] ? weekNum = weekNum : weekNum ++
}
}
weekNum == 6 ? document.getElementById("week6"

.style.display = "block" : document.getElementById("week6"

.style.display = "none"
if (month > 0){
lastMonth = month-1
lastYear = year
}
else{
lastMonth = 11
lastYear = year - 1
}
if (month < 11){
nextMonth = month + 1
nextYear = year
}
else{
nextMonth = 0
nextYear = year + 1
}
document.getElementById("backOne"

.innerHTML = "<a href='javascript: showCalendar(" + lastMonth + "," + lastYear + "," + day + "

'><<</a>"
document.getElementById("forwardOne"

.innerHTML = "<a href='javascript: showCalendar(" + nextMonth + "," + nextYear + "," + day + "

'>>></a>"
document.getElementById("monthSelect"

.selectedIndex = month
showYears(year)
}
function isLeapYear(inYear){
if (inYear % 4 == 0){
if(inYear %100 == 0 && inYear % 400 != 0){
return false
}
return true
}
return false
}
function clearWeeks(){
for (x=1; x<=6; x++){
weekRow = document.getElementById("week" + x)
for (y=0; y<=6; y++){
weekRow.childNodes[y].innerHTML = " "
weekRow.childNodes[y].style.backgroundColor = "white"
}
}
}
function showYears(inYear){
yearNode = document.getElementById("yearSelect"

counter = 0
startYear = parseInt(inYear) - 10
endYear = parseInt(inYear) + 20
for (x=startYear; x<= endYear; x++){
if (yearNode.options[counter]){
yearNode.options[counter] = null
}
yearNode.options[counter] = new Option(x,x)
counter ++
}
yearNode.selectedIndex = 10
}
function jumpDate(){
theMonth = document.getElementById("monthSelect"

.selectedIndex
theYearNode = document.getElementById("yearSelect"

theYear = theYearNode.options[theYearNode.selectedIndex].value
showCalendar(theMonth,theYear,defaultDay)
}
-->
</script>
<style>
<!--
td {text-align:center; width: 20px;}
#calendar { border: solid blue 2px;}
//#calendar td {padding: 3px;}
-->
</style>
<body onLoad="showCalendar(defaultMonth,defaultYear,defaultDay)">
<table id="calendar" border=0>
<tr id="infoRow">
<td id="backOne"></td>
<td colspan=3><select id="monthSelect" onchange="jumpDate()">
<Option>January
<Option>February
<Option>March
<Option>April
<Option>May
<Option>June
<Option>July
<Option>August
<Option>September
<Option>October
<Option>November
<Option>December
</select></td>
<td colspan=2><select id="yearSelect" onchange="jumpDate()"></select></td>
<td id="forwardOne"></td>
</tr>
<tr id="headerRow">
<th>S</th>
<th>M</th>
<th>T</th>
<th>W</th>
<th>T</th>
<th>F</th>
<th>S</th>
</tr>
<tr id=week1>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr id=week2>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr id=week3>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr id=week4>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr id=week5>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr id=week6>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
Programming today is a race between software engineers striving to build better and bigger idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning. - Rick Cook (No, I'm not Rick)