var table = '<table summary="Availability Chart" cellpadding="0" cellspacing="1" id="calendarTable">';
var tr = '<tr>';
var etr = '<\/tr>';
var th = '<th>';
var eth = '<\/th>';
var nr='<\/tr><tr>';
var blank='<td class="blankDay">';
var etd = '<\/td>';
var etable = '<\/table>';

function drawCal(theMonth,theYear){
	var thisDate = new Date(theYear,theMonth,1);
	var i;
	var nextMonth = theMonth+1;
	var nextYear = theYear;
	if(nextMonth==12){nextMonth=0;nextYear=theYear+1;}
	var prevMonth = theMonth -1;
	var prevYear = theYear;
	if(theMonth==0){prevMonth=11;prevYear=theYear-1;}
	var html=table+tr;
	if((theMonth==startMonth)&&(theYear==year)){
	html+='<td class="CalendarHeader" colspan="2">&nbsp;'+etd;
	}else{
	html+='<td class="CalendarHeader" colspan="2"><a href="javascript:;" title="Previous Month" onclick="drawCal('+prevMonth+','+prevYear+');">&lt;&lt;<\/a>'+etd;
	}
	html+='<td class="CalendarHeader" colspan="3">'+monthNames[theMonth]+' '+theYear+etd;
	if((theMonth==endMonthNum)&&(theYear==endYear)){
	html+='<td class="CalendarHeader" colspan="2">&nbsp;'+etd+nr;
	}else{
	html+='<td class="CalendarHeader" colspan="2"><a href="javascript:;" title="Next Month" onclick="drawCal('+nextMonth+','+nextYear+');">&gt;&gt;<\/a>'+etd+nr;
	}
	for(i in dayNames){
	html+=th+dayNames[i]+eth;
	}
	html+=nr;
	for (i = 0; i < thisDate.getDay(); i++){
	html+=blank+'&nbsp;'+etd;
	}
	
  do{
    var dayNum = thisDate.getDate();
	var thisId = monthNames[theMonth]+''+dayNum;
	var thisClass = 'ns';
	if(chosenDate.length > 0){
		for(i in chosenDate){
			if((monthNames[theMonth]==chosenDate[i][2])&&(theYear==chosenDate[i][3])&&(chosenDate[i][0]==thisId)){
				var thisClass = 'dc';
				break;
			}
		}
	}
	// Has this date expired?
	var lowDate = today;
	if((theYear==selectedYear)&&(theMonth==selectedMonth)&&(thisDay<today)){
		lowDate = thisDay;
	}
	if((theYear==year)&&(theMonth==startMonth)&&(dayNum<lowDate)){
	html+='<td class="dg" title="'+dayNum+' '+monthNames[theMonth]+' '+theYear+' - Date expired">'+dayNum+etd;
	}else{
    html += '<td class="'+thisClass+'" id="'+thisId+'" title="'+dayNum+' '+monthNames[theMonth]+' '+theYear+'">'+dayNum+etd;
	}
    // Start a new row if this is a Saturday 
    if (thisDate.getDay() == 6)
      html+=nr;
    // increment the day
    thisDate.setDate(thisDate.getDate() + 1);
  }while (thisDate.getDate() > 1)
  if (thisDate.getDay() > 0) {
	var i;
    for(i=7;i>thisDate.getDay();i--)
      html+=blank+'&nbsp;'+etd;
  }
	html+=etr+etable;
	document.getElementById('calendar').innerHTML = html;
}
