// Datepicker rewrite //

//current date shown on schedule - will change dynamically
var date=new Date();
//caldate keeps shown calendar date isolated from main date
var caldate=new Date(date.getFullYear(),date.getMonth(),date.getDate());
//date cells
var dGrid=new Array(45);

//array for number of #days/months each year
var aDays=new Array("S","M","T","W","T","F","S");
var aNumDays=new Array("31","29","31","30","31","30","31","31","30","31","30","31");
var aMonths=new Array("January","February","March","April","May","June","July","August","September","October","November","December");

function ShowCalendar()
{
	//Hide calendar if it's already open
	if(document.getElementById('datetable'))
	{
		RemoveCalendar();
		return false;
	}
	
	var mDiv=document.getElementById("menudiv");
	
	//try internet explorer
	try
	{
		var dTable=document.createElement("<table  id='datetable' cellspacing='0' cellpadding='0'>");
	}
	catch(e)
	{
		var dTable=document.createElement("table");
		dTable.setAttribute("id","datetable");
		dTable.setAttribute("cellspacing","0");
		dTable.setAttribute("cellpadding","0");
	}
	
	dTable.style.border="1px solid #a0a0a0";
	dTable.style.width="160px";
	dTable.style.height="160px";
	dTable.style.position="absolute";
	dTable.style.left="307px";
	dTable.style.top="27px";
	dTable.style.emptyCells="show";
	
	var dTBody=document.createElement("tbody");
	var dRow=document.createElement("tr");
	
	for(var i=0;i<3;i++)
	{
		if(i==0)
		{
			var dCell=document.createElement("td");
			
			try
			{
				var dHLink=document.createElement("<a href='#' onclick='Backward(); return false'>");
			}
			catch(e)
			{
				var dHLink=document.createElement("a");
				dHLink.setAttribute("href","#");
				dHLink.setAttribute("onclick","Backward(); return false");
			}
			
			var dTextNode=document.createTextNode("<-");
			dHLink.appendChild(dTextNode);
			dCell.appendChild(dHLink);
		}
		else if(i==1)
		{
			try
			{
				var dCell=document.createElement("<td id='monthsspan' colspan='5'>");
			}
			catch(e)
			{
				var dCell=document.createElement("td");
				dCell.setAttribute("id","monthsspan");
				dCell.setAttribute("colspan","5");
			}
			
			var dTextNode=document.createTextNode(aMonths[date.getMonth()]+" "+date.getFullYear());
			dCell.appendChild(dTextNode);
		}
		else if(i==2)
		{
			var dCell=document.createElement("td");
			
			try
			{
				var dHLink=document.createElement("<a href='#' onclick='Forward(); return false'>");
			}
			catch(e)
			{
				var dHLink=document.createElement("a");
				dHLink.setAttribute("href","#");
				dHLink.setAttribute("onclick","Forward(); return false");
			}
			
			var dTextNode=document.createTextNode("->");
			dHLink.appendChild(dTextNode);
			dCell.appendChild(dHLink);
		}
		
		dCell.style.textAlign="center";
		dCell.style.border="1px solid #a0a0a0";
		
		dRow.appendChild(dCell);
	}
	
	dTBody.appendChild(dRow);
	
	//now draw the cells containing Day titles
	var dRow=document.createElement("tr");
	
	for(var i=0;i<7;i++)
	{
		var dCell=document.createElement("td");
		var dTextNode=document.createTextNode(aDays[i]);
		dCell.style.textAlign="center";
		dCell.style.border="1px solid #a0a0a0";
		dCell.appendChild(dTextNode);
		dRow.appendChild(dCell);
	}
	dTBody.appendChild(dRow);
	
	//now to draw the main date cells
	var k=0;
	for(var i=0;i<6;i++)
	{
		var dRow=document.createElement("tr");
		
		for(var j=0;j<7;j++)
		{
			var dCell=document.createElement("td");
			dGrid[k]=dCell;
			var dTextNode=document.createTextNode("-");
			dCell.style.textAlign="center";
			dCell.style.border="1px solid #a0a0a0";
			dCell.appendChild(dTextNode);
			dRow.appendChild(dCell);
			k++;
		}
		dTBody.appendChild(dRow);
	}
	

	dTable.appendChild(dTBody);
	mDiv.appendChild(dTable);
	
	AddDates();
}

function AddDates()
{
	var k=1;
	var firstday=new Date(caldate.getFullYear(),caldate.getMonth(),1);
	Clear();
	document.getElementById("monthsspan").innerHTML=aMonths[caldate.getMonth()]+" "+caldate.getFullYear();
	for(var i=firstday.getDay();i<(parseInt(aNumDays[caldate.getMonth()])+firstday.getDay());i++)
	{
		try
		{
			var dHLink=document.createElement("<a href='#' onclick='SelectDate(this); RemoveCalendar(); return false'>");
		}
		catch(e)
		{
			var dHLink=document.createElement("a");
			dHLink.setAttribute("href","#");
			dHLink.setAttribute("onclick","SelectDate(this);RemoveCalendar();return false");
		}
		var dTextNode=document.createTextNode(k);
		dHLink.appendChild(dTextNode);
		
		dGrid[i].appendChild(dHLink);
		k++;
	}
}

function Forward()
{
	caldate.setFullYear(caldate.getFullYear(),caldate.getMonth()+1,caldate.getDate());
	AddDates();
}

function Backward()
{
	caldate.setFullYear(caldate.getFullYear(),caldate.getMonth()-1,caldate.getDate());
	AddDates();
}

function Clear()
{
	for(var i=0;i<42;i++)
	{
		dGrid[i].innerHTML='&nbsp;';
	}
}

function SelectDate(hLink)
{
	date.setFullYear(caldate.getFullYear(),caldate.getMonth(),parseInt(hLink.innerHTML));
	RefreshTable();
}

function NextDay()
{
	date.setDate(date.getDate()+1);
	RefreshTable();
}

function PreviousDay()
{
	date.setDate(date.getDate()-1);
	RefreshTable();
}

function RemoveCalendar()
{
	var rdiv=document.getElementById("menudiv");
	if(document.getElementById("datetable"))
	{
		rdiv.removeChild(rdiv.lastChild);
	}
}
