function calendar(date)
         {
         //If no parameter is passed use the current date.
         if(date == null)
            date = new Date();
         
         day = date.getDate();
         month = date.getMonth();
         year = date.getFullYear();
         
 
         months = new Array('January',
                            'February',
                            'March',
                            'April',
                            'May',
                            'June',
                            'July',
                            'August',
                            'September',
                            'October',
                            'November',
                            'December');
         
         this_month = new Date(year, month, 1);
         next_month = new Date(year, month + 1, 1);
		 advmonth = month + 1;
         prevmonth = month - 1;
		 
         //Find out when this month starts and ends.         
         first_week_day = this_month.getDay();
         days_in_this_month = Math.round((next_month.getTime() - this_month.getTime()) / (1000 * 60 * 60 * 24));
         
         calendar_html = '<div class="bookDate"><center><table cellpadding="2" width="140" cellspacing="0" class="bookDate"';
         calendar_html += 'onmouseout="closeCal();" onmouseover="timerCal=window.clearTimeout(timerCal);">';
         
         calendar_html += '<tr style="border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #CCCCCC;">';
         calendar_html += '<td colspan="1" align="center" class="bookTopLink" style="background-image:url(calback1.png); background-repeat:repeat-x; text-align:left" >';
		 
		dates = new Date();   
		damonth = dates.getMonth();
		datemonth = month + 1;
		 
		 if (month != damonth)
		 {
			
			if (prevmonth == -1) {
				
				prevmonthtemp = 11;
				
			    calendar_html += '<a href="#" onclick="changeCal(' + year + ',' + prevmonthtemp + ');" class="bookTopLink" onfocus="this.blur();"><img src="prev.gif" style="border-width: 0px;" onmouseover="rollOverImg(\'calPrev\',\'prevover.gif\');" onmouseout="rollOverImg(\'calPrev\',\'prev.gif\');" id="calPrev" /></a>';
			}
				
			else {
				
			    calendar_html += '<a href="#" onclick="changeCal(' + year + ',' + prevmonth + ');" class="bookTopLink" onfocus="this.blur();"><img src="prev.gif" style="border-width: 0px;" onmouseover="rollOverImg(\'calPrev\',\'prevover.gif\');" onmouseout="rollOverImg(\'calPrev\',\'prev.gif\');" id="calPrev" /></a>';
					
			}

		 }
		 
		 calendar_html += '</td><td colspan="5" style="background-image:url(calback1.png); background-repeat:repeat-x;"><center>' + months[month] + ' ' + year + '</td> ';
         calendar_html += '<td colspan="1"  style="background-image:url(calback1.png); background-repeat:repeat-x; text-align:right" >';

		if ((month != (damonth + 3)) && (month != (damonth - 9)))
		 {
			 if (advmonth == 12) {
				
				advmonthtemp = 0;
				year++;
				
				
				calendar_html += '<a href="#" onclick="changeCal(' + year + ',' + advmonthtemp + ');" class="bookTopLink" onfocus="this.blur();"><img src="next.gif" style="border-width: 0px;" id="calNext" /></a>';
			}
				
			else {
				
			    calendar_html += '<a href="#" onclick="changeCal(' + year + ',' + advmonth + ');" class="bookTopLink" onfocus="this.blur();"><img src="next.gif" style="border-width: 0px;" onmouseover="rollOverImg(\'calNext\',\'nextover.gif\');" onmouseout="rollOverImg(\'calNext\',\'next.gif\');" id="calNext" /></a>';
					
			}
			
		 }
         
		 
		 calendar_html += '</td></tr><tr><td>S</td><td>M</td><td>T</td><td>W</td><td>T</td><td>F</td><td>S</td></tr>';
		 calendar_html += '<tr>';
          
		  
		  
		  
         //Fill the first week of the month with the appropriate number of blanks.       
         for(week_day = 0; week_day < first_week_day; week_day++)
            {
            calendar_html += '<td></td>';   
            }
            
			week_day = first_week_day;

         for(day_counter = 1; day_counter <= (days_in_this_month + (7 - week_day)); day_counter++)
            {
            week_day %= 7;

		
            if(week_day == 0)
               calendar_html += '</tr> <tr>';
			   
							
            //Do something different for the current day.
            if((day == day_counter) && (month == damonth))   {
				
               calendar_html += '<td align="center" class="bookDate" style="background-color: #9999cc;"><b><a href="#" onclick="addDate1(' + day_counter + '); addDate2(' + datemonth + '); addDate3(' + year + '); closeIt();" class="bookDate">' + day_counter + '</a></b></td>';
			}

			else {

				
				if (day_counter <= days_in_this_month) {				
			
			   calendar_html += '<td align="center" class="bookDate" style="background-image:url(calback1.png); background-repeat:repeat-x;">';
			   calendar_html += '<a href="#" class="bookDate" onclick="addDate1(' + day_counter + '); addDate2(' + datemonth + '); addDate3(' + year + '); closeIt();">' + day_counter + '</a> </td>';
            
				}
				
				
				
				else if ((7 - week_day) && (week_day < 8)) {
					
				
			        calendar_html += '<td></td>';   
					
				}
			
			
			}
					
            week_day++;
            }
			

            
         calendar_html += '</tr>';
         calendar_html += '</table></div>';
         
         //Display the calendar.     
         document.write(calendar_html);                  
         }
