

	//this entire bit of JS generates the date and time and puts it into two strings.

	//get the date object
	
	var date = new Date();

	//get info from date
	
	var month=date.getMonth();	
	
	var day=date.getDate();
	
	var dayName=date.getDay();
	
	var hour=date.getHours();
	var minutes=date.getMinutes();
	var year = date.getYear();
	var seconds = date.getSeconds();
	var amorpm = "a.m.";
	var suffix ="th";
	var daysThisMonth = 0;
	var startDay = 0;
	
		
	
	
	
	year =fixY2K(year); //fix Y2K bug
	
	
	minutes = fixTime(minutes); //fix minutes by adding leading zero if less than 10
		

	seconds = fixSeconds(seconds); //fix the seconds by adding leading zero

			
	amorpm=ampm(hour); // figure out if it's am or pm by calling the function ampm

			
	hour=fixHour(hour); //make it a 12 hour clock
	
		
	month=fixMonth(month); //use the proper name for the month
	
		
	suffix=getSuffix(day); //figure out the proper suffix for the month
		
		
	var date_string = month + " " + day + suffix + ", " + year; //create the date string
		
	var time_string = hour + ":" + minutes + " "  + amorpm; //create the time string
	
	var date_time_string = "Today is " + date_string + " and the time is " + time_string;

	
	
	
	function fixHour(number) 
	{
		if (number > 12) 
		{
		number = number - 12;
		}
		
		else if (number == 0) 
		{
		number = 12;
		}
	
		return number;
	}
	
	
	function getSuffix(suff) 
	{
		
		if ( (suff == 1) || (suff==21) || (suff==31) )
		{
			suff="st";
		}
		
		else if ( (suff==2) || (suff==22) ) {
		suff="nd";
		
		}
		
		else if ( (suff==3) || (suff==23) ) {
		suff="rd";
		
		}
		
		
		else {
		suff="th";
		}
	
	return suff;
	
	}
	
	
	
	function fixMonth(number)
	{

		switch (number)
		{

		case 0:
		number = "January";
		daysThisMonth = 31;
		break

		case 1:
		number = "February";
		
		if ((year % 4)==0)
		{ 
			daysThisMonth = 29;
		}

		else 
		{
			daysThisMonth = 28;
		}
				
		
		
		break
				
		case 2:
		number = "March";
		daysThisMonth = 31;
		break

		case 3:
		number = "April";
		daysThisMonth = 30;
		break

		case 4:
		number = "May";	
		daysThisMonth = 31;
		break

		case 5:
		number = "June";
		daysThisMonth = 30;
		break

		case 6:
		number = "July";
		daysThisMonth = 31;
		break

		case 7:
		number = "August";
		daysThisMonth = 31;
		break

		case 8:
		number = "September";
		daysThisMonth = 30;
		break

		case 9:
		number = "October";
		daysThisMonth = 31;
		break

		case 10:
		number = "November";
		daysThisMonth = 30;
		break

		default:
		number = "December";
		daysThisMonth = 31;
			}	
		
		return number;
	}
	
	
	

	function ampm(number) 
	{
		if ( number < 12) 
		{
			number="a.m.";
		}
		
		else 
		{
			number="p.m."; 
		}
	
		return number;
	} 
	
	
	
	function fixY2K(number) 
	{
	
		if (number < 1000) 
		{
		number = number + 1900;
		}
		
		return number;
	}

		

	function fixTime(number) 
	{
	
		if (number < 10) 
		{
		number = "0" + number;
		}

		return number;
	}


	function fixSeconds(number) 
	{
	
		if (number < 10) 
		{
		number = "0" + number;
		}
		
		return number;
	}



	function writeCalendar()
	{	
		var dayCounter = 1;
		
		setStart();

		var rowsNeeded = 5;

		if ( (startDay + daysThisMonth) > 35)
		{
			rowsNeeded = 6;
		}



		
		//alert(daysThisMonth);		
		
		
		document.write("<div id='calendar'><table >");

			
		//alert("i just wrote a table tag");
			
		for (j=1 ; j<=rowsNeeded ; j++)
		{
			if (j==1)
			{
			document.write("<tr><td style='background-color:cadetblue; font-weight:bold' valign='middle'                            rowspan='7'>" + month + "<br />" + year + "</td>");
			document.write("<td>S</td><td>M</td><td>T</td><td>W</td><td>T</td><td>F</td><td>S</td></tr>");
			}
			else
			{
			
			document.write("<tr>");
			
			}

			//alert("i just wrote a tr tag");
				
			for (x=1 ; (x<=7 && dayCounter <= daysThisMonth + startDay) ; x++)

			{
				if (dayCounter<=startDay)
				{
					document.write("<td class='calendar'></td>");
					dayCounter++;
				}
				else
				{


	
						
					if (dayCounter-startDay==day)
					{
						document.write("<td class='calendar' style='background-color:orange;color:black'>");
					}
					else
					{
						document.write("<td class='calendar'>");
					}
					
					//alert("i just wrote a td tag");
				
					document.write(dayCounter-startDay);
					document.write("</td>");	
					
					//alert("i just wrote a td close tag");
						
					dayCounter++;
					//alert ("counter is " + counter);

				}

			}
				
			if (j==rowsNeeded)
			{	
				if ( ((daysThisMonth + startDay) % 7) == 0 )
				{
				document.write("<tr><td class='calendar' colspan='7'> @ " + time_string + "</td></tr>");	

				}
				
				
				else
				{

					document.write("<td class='calendar' colspan='" + (42-(daysThisMonth + startDay)) + "'> @ " + time_string + "</td></tr>");	
				}

			
}
			else {
			document.write("</tr>");
			}
			//alert("i just wrote a tr close tag");
				
		}


		document.write("</table></div>");
		
		//alert("finished writing the table");

	
}

function setStart()

{
		
	startDay = dayName - ((day % 7) - 1);

	if (startDay < 0)
	{
		startDay = startDay + 7;	
	}
	
	
	//alert("dayName is  " + dayName);
	//alert("day is " + day);
	//alert("startDay should be " + startDay);


}






















