var numTimes = 3;
var todaydate=new Date();
var curmonth=todaydate.getMonth()+1; //get current month (1-12)
var curyear=todaydate.getFullYear(); //get current year
var mn=['January','February','March','April','May','June','July','August','September','October','November','December'];
var dim=[31,0,31,30,31,30,31,31,30,31,30,31];

// SET DEFAULT CUR MONTH
var curDispMonth = curmonth;
var curDispYear = curyear;

// SET DEFAULT PREV MONTH
if (curDispMonth-1 <= 1)
{
	var prevDispMonth = 12;
	var prevDispYear = curDispYear - 1;
}
else
{
	var prevDispMonth = curDispMonth - 1;
	var prevDispYear = curDispYear;
}

// SET DEFAULT NEXT MONTH
if (curDispMonth+1 > 12)
{
	var nextDispMonth = 1;
	var nextDispYear = curDispYear + 1;
}
else
{
	var nextDispMonth = curDispMonth + 1;
	var nextDispYear = curDispYear;
}

//alert("curmonth: " + curmonth + "\nprevDispMonth: " + prevDispMonth + "\ncurDispMonth: " + curDispMonth + "\nnextDispMonth: " + nextDispMonth);

var prevMonthHTML, curMonthHTML, nextMonthHTML = "";

function buildCal()
{
	var dim=[31,0,31,30,31,30,31,31,30,31,30,31];
	var oD = new Date(curDispYear, curDispMonth-1, 1); //DD replaced line to fix date bug when current day is 31st
	oD.od=oD.getDay()+1; //DD replaced line to fix date bug when current day is 31st

	var todaydate=new Date() //DD added
	var scanfortoday=(curDispYear==todaydate.getFullYear() && curDispMonth==todaydate.getMonth()+1)? todaydate.getDate() : 0 //DD added

	dim[1]=(((oD.getFullYear()%100!=0)&&(oD.getFullYear()%4==0))||(oD.getFullYear()%400==0))?29:28;

	// PREV MONTH
	if (numTimes < 3 && numTimes >= 1)
	{
		prevMonthHTML = '<div id="prevMonth"><a href="javascript:prevMonth();">'+mn[prevDispMonth-1]+'</a></div>';
	}
	else
	{
		prevMonthHTML = '<div id="prevMonth">&nbsp;</div>';
	}
	
	// CURRENT MONTH/YEAR
	curMonthHTML = '<div id="currMonth">'+mn[curDispMonth-1]+' '+curDispYear+'</div>';
	
	// NEXT MONTH
	if (numTimes > 1)
	{
		nextMonthHTML = '<div id="nextMonth"><a href="javascript:nextMonth();">'+mn[nextDispMonth-1]+'</a></div>';
	}
	else
	{
		nextMonthHTML = '<div id="nextMonth">&nbsp;</div>';
	}

	var nav = "";
	var t = "";
	nav+="<div class='nav'>";
	nav+=prevMonthHTML;
	nav+=curMonthHTML;
	nav+=nextMonthHTML;
	nav+="</div>";

	t+='<div id="calendar">';
	t+='<table cols="7" cellpadding="0" border="0" cellspacing="0">';
	t+='<tr>';
	for(s=0;s<21;s+=3)
	{
		t+='<td class="dayHeading">'+"SunMonTueWedThuFriSat".substr(s,3)+'</td>';
	}
	t+='</tr><tr align="center">';

	for(i=1;i<=42;i++)
	{
		var x=((i-oD.od>=0)&&(i-oD.od<dim[curDispMonth-1]))? i-oD.od+1 : '';
		
		if (x == '')
		{
			actualDays[actualDays.length] = 0;
			var theClass = 'lightBrown';
			t+='<td class="'+theClass+'" width="15px" height="15px"><div class="dayLabel">'+x+'</div></td>';
		}
		else
		{
			actualDays[actualDays.length] = x;
			var theClass = 'default';
			t+='<td class="'+theClass+'" id="_'+x+'" width="15px" height="15px"><div class="dayLabel">'+x+'</div></td>';
		}
		
		
		if(((i)%7==0)&&(i<36))
		{	
			t+='</tr><tr>';
		}
	}
	t+='</tr></table></div></div>';
	if (t.length > 0)
	{
		document.getElementById("calendarContainer").innerHTML = nav + t;
		return true;
	}
	return false;
}

function nextMonth()
{
	if (prevDispMonth >= 12)
	{
		prevDispMonth = 1;
		prevDispYear += 1;
	}
	else
	{
		prevDispMonth += 1;
	}
	
	if (nextDispMonth >= 12)
	{
		nextDispMonth = 1;
		nextDispYear += 1;
	}
	else
	{
		nextDispMonth += 1;
	}
	
	if (curDispMonth >= 12)
	{
		curDispMonth = 1;
		curDispYear += 1;
	}
	else
	{
		curDispMonth += 1;
	}
	numTimes -= 1;
	
	// clear out current month days
	actualDays = [];
	
	if (buildCal())
	{
		// set day colors
		setDefaultColors();
		//document.getElementById("14").className = "offpeak";
		//document.getElementById("17").className = "onpeak";
	}
}

function prevMonth()
{
	if (prevDispMonth <= 1)
	{
		prevDispMonth = 12;
		prevDispYear -= 1;
	}
	else
	{
		prevDispMonth -= 1;
	}
	
	if (nextDispMonth <= 1)
	{
		nextDispMonth = 12;
		nextDispYear -= 1;
	}
	else
	{
		nextDispMonth -= 1;
	}
	
	if (curDispMonth <= 1)
	{
		curDispMonth = 12;
		curDispYear -= 1;
	}
	else
	{
		curDispMonth -= 1;
	}
	numTimes += 1;
	
	// clear out current month days
	actualDays = [];
	
	if (buildCal())
	{
		// set day colors
		setDefaultColors();
		//document.getElementById("14").className = "offpeak";
		//document.getElementById("17").className = "onpeak";
	}
}

function loadCal()
{
	// clear out current month days
	actualDays = [];
	
	if (buildCal())
	{
		// set day colors
		setDefaultColors();
		//document.getElementById("14").className = "offpeak";
		//document.getElementById("17").className = "onpeak";
	}
}