function getElement(element) {
	if (document.getElementById) {
		return document.getElementById(element);
	}	
	else if (document.all) {
		return document.all(element);
	}
	else if (document.layers){
		return document.layers[element];
	}
	else {
		return null;
	}
}


var date = new Date();
var cDate = date.getDate();
var cMonth = date.getMonth();
var cYear = date.getFullYear();

var monthNames = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");

function maxDaysForMonth(month, year) {
	var maxDays;
	if((month == 3) || (month == 5) || (month == 8) || (month == 10)){
		maxDays = 30;
  	} else {
		maxDays = 31;
  		if(month == 1) { // Leap year processing
   			if (year/4 - parseInt(year/4) != 0) { maxDays = 28; }
		   	else { maxDays = 29; }
		}
	}
	return maxDays;
}


function setupMonth(month, year) {
	
var testYear = 2005;
var testMonth = 10;
var testDate = 14;

var openLink = "";
var closeLink = ""; 
	
var dateActive = new Date(year, (month), 1);
var cDay = dateActive.getDay()+1;
var dayOfWeek = 1;
var dateCount = 1;
var rowCount = 0;
	
tdate = new Date();
tMonth = tdate.getMonth();
tYear = tdate.getFullYear();
	
var flag=0;
var calendarHTML="";

var lastDayPrev = maxDaysForMonth(cMonth - 1, cYear);
var lastDayNow = maxDaysForMonth(cMonth, cYear);
var lastDayNext = maxDaysForMonth(cMonth + 1, cYear);

	var previousMonth = month-1;
	var previousYear = year;
	if (previousMonth < 1) { previousMonth = 12; previousYear--; }
	var maxPrevMonthDays = maxDaysForMonth(previousMonth, previousYear);
	var maxDays = maxDaysForMonth(month, year);
	var dayNextMonth = 1;

var monthPrevLength = 5-(7 - cDay);
var startMonthPrevDay = maxPrevMonthDays - monthPrevLength;
var startMonthNextDay = 1;


calendarHTML = calendarHTML+"<table class=\"uCal\" cellpadding=\"0\" cellspacing=\"0\"><tr>";
calendarHTML = calendarHTML+"<td class=\"monthInfo\"><h1>"+monthNames[cMonth]+" "+cYear+"</h1></td>";
calendarHTML = calendarHTML+"<td class=\"monthNav\"><a href=\"javascript: changeMonth(false);\"><img src=\"i/uCal/prevMonth.gif\" /></a><a href=\"javascript: goToday();\"><img src=\"i/uCal/thisMonth.gif\" /></a><a href=\"javascript: changeMonth(true);\"><img src=\"i/uCal/nextMonth.gif\" /></a</td></tr><tr>";
calendarHTML = calendarHTML+"<td class=\"dow\" colspan='2'><table cellpadding=\"0\" cellspacing=\"0\" class=\"dowTable\"><tr><td>S</td><td>M</td><td>T</td><td>W</td><td>T</td><td>F</td><td>S</td></tr></table></td></tr><tr>";
calendarHTML = calendarHTML+"<td colspan='2' class='spacer'></td></tr><tr><td colspan=\"2\"><table class=\"dates\" cellspacing=\"0\" cellpadding=\"0\"><tr> <td><table class=\"rowTable\"  cellpadding=\"0\" cellspacing=\"0\"><tr>";
	for (i=1; i<43; i++) {
		calendarHTML = calendarHTML+"<td>";
		//Determine database Matches
		if (((i-gap) == testDate) && (cMonth == testMonth) && (cYear == testYear)) {
			openLink = "<a href=\"#\">";
			closeLink = "</a>";
		}
		else { 
			openLink = "";
			closeLink = ""; 
		}
		
		
			if ((i)==cDay) { var gap = i-1;  var flag=1; }
			if (i-gap==lastDayNow+1) { flag = 2; }
			if (flag==1) { 
				if (cDate == (i-gap) && tYear == cYear && tMonth == cMonth) { 
				calendarHTML = calendarHTML+"<ins class=\"today\">"+openLink+(i-gap)+closeLink+"</ins>"; }
				else { calendarHTML = calendarHTML+openLink+(i-gap)+closeLink; } 
			}
		
		if (flag==0) { calendarHTML = calendarHTML+"<ins class='light'>"+startMonthPrevDay+"</ins>"; startMonthPrevDay=startMonthPrevDay+1; }
		if (flag==2) { calendarHTML = calendarHTML+"<ins class='light'>"+startMonthNextDay+"</ins>"; startMonthNextDay=startMonthNextDay+1; }
		calendarHTML = calendarHTML+"</td>";
		
		if ((i/7)==(Math.round(i/7))) { calendarHTML = calendarHTML+"</tr> </table></td></tr> <tr> <td><table class=\"rowTable\" cellpadding=\"0\" cellspacing=\"0\"><tr>"; }
		
	}
	calendarHTML = calendarHTML+"</tr></table></td></tr></table>";
	//alert (calendarHTML);
	return calendarHTML;
}

function goToday() {
	date = new Date();
	cMonth = date.getMonth();
	cYear = date.getFullYear();
	calDiv.innerHTML = setupMonth(cMonth, cYear);
}

function changeMonth(moveNext) {
	if (moveNext) {
		cMonth++;
		if (cMonth > 11) {
			cYear++;
			cMonth = 0;
		}
	} else {
		cMonth--;
		if (cMonth < 0) {
			cYear--;
			cMonth = 11;
		}
	}
	// create the new calendar
	calDiv.innerHTML = setupMonth(cMonth, cYear);
}

function displayInitialCalendar() {
var calendarHTML2 = setupMonth(cMonth, cYear);
return calendarHTML2;
}
