var months	= new Array("January", "February", "March", "April", "May",
						"June", "July", "August", "September", "October",
						"November", "December");
var days	= new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");

function printUTC(dateObj)
{
	document.write('UTC Time is ' + dateObj.toUTCString() + '<br>');
}

function printLocalTime(dateObj)
{
	document.getElementById('theClock').appendChild('Local time is ' + dateObj);
}

function init()
{
	StartClock();
	
}

function dest()
{
	KillClock();
}

function tableSetByYear(year)
{
	return setDateToPrint(year, 0, 1, 0, 0, 0, 0);
}

function tableSetByMonth(year, month)
{
	return setDateToPrint(year, month, 1, 0, 0, 0, 0);
}

function tableSetByDay(year, month, day)
{
	return setDateToPrint(year, month, day, 0, 0, 0, 0);
}

function setDateToPrint(year, month, day, hours, minutes, seconds, milli)
{
	return new Date(year, 
		month,  /* month */
		1,	/* day */
		0,	/* hours */
		0,	/* minutes */
		0,	/* seconds */ 
		0);	/* milliseconds */
}

function clearMonth(tableId) {

	var month		= document.getElementById(tableId);
	var rowCount	= month.rows.length;

	for (var i = 0 ; i < rowCount ; i++ )
	{	
		month.deleteRow(-1);
	}
}

function createMonth(year, month, link) {
	var id = 'caldays';
	if (!document.getElementById(id))
	{
		createTable();
	}

	clearMonth(id);
	addTitle(year, month, link);
	addHeading(year, month, id);
	addDays(year, month, id, link);	
}

function createTable()
{
	var tableDiv = document.getElementById("caldays");
	var mytable = document.createElement("table");
	mytable.className = "month";
	mytable.id = "caldays";
	mytable.cellSpacing = "0";
	mytable.cellPadding = "0";
	mytable.setAttribute("border", "0");
	tableDiv.appendChild(mytable);
	//<TABLE class='month' cellpadding='0px' cellspacing='0px' id='caldays'>
}

function prevMonth(year, month, link) {
	var params	= new Array();
	params[0] = (month == 0) ? year-1	: year;
	params[1] = (month == 0) ? 11		: month-1;
	params[2] = "'" + link + "'";

	return createNav('&lt;', 'createMonth', params);
}

function nextMonth(year, month, link) {
	var params	= new Array();
	params[0] = (month == 11) ? year+1	: year;
	params[1] = (month == 11) ? 0		: month+1;
	params[2] = "'" + link + "'";

	return createNav('&gt;', 'createMonth', params);
}

// date also kept in YYYY-MM-DD format
function highlightGames(dayArray)
{
  var calObj      = document.getElementById('caldays');
  var calObjCells = document.getElementsByTagName('td');
  //alert(document.getElementById(dayArray[0]).id);
  for (var i=0; i<dayArray.length; i++){
    var dateDiv = document.getElementById(dayArray[i]);
    if (dateDiv) {
      dateDiv.parentNode.className = "gameDay";
    }
    /*if (dayArray[i].className == "inRange")
    {      
      /*if (arrayContains(, dayArray))
      {
        //cellSpan[0].innerHTML = "<strong>"+day+"<strong>";
        calObjCells[i].className = "gameDay";
      }
    }*/
  } 
}

function arrayContains(what,theArray)
{
  for (var j=0; j<theArray.length; j++)
  {        
    if (theArray[j] == what)
    {      
      return true;
    }
  }
  return false;
}


function highlight(obj) {
	obj.className = 'highlight';
}

function addTitle(year, month, link) {
	var title			= months[month] + "&nbsp;" + year;
	var dayTable		= document.getElementById('caldays');
	var newRow			= dayTable.insertRow(0);
	newRow.className	= 'cal-title';
	var newCell			= newRow.insertCell(newRow.cells.length);
	newCell.align		= 'left';
	newCell.innerHTML	= prevMonth(year, month, link);
	newCell.className	= 'nav';
	newCell				= newRow.insertCell(newRow.cells.length);
	newCell.align		= 'center';
	newCell.innerHTML	= title;
	newCell.colSpan		= '5';
	newCell				= newRow.insertCell(newRow.cells.length);
	newCell.align		= 'right';
	newCell.innerHTML	= nextMonth(year, month, link);
	newCell.className	= 'nav';
}

function addHeading(year, month, id) {
	var dayTable		= document.getElementById(id);	
	var newRow			= dayTable.insertRow(dayTable.rows.length);
	var newCell;

	for ( var i = 0; i < 7 ; i++ ) {
		newCell				= newRow.insertCell(newRow.cells.length);
		newCell.innerHTML	= days[i];
		newCell.className	= 'heading';
	} 
}

function addDays(year, month, id, link) {
	var dayTable	= document.getElementById(id);
	var dateObj		= tableSetByMonth(year, month);
	var firstDay	= (dateObj.getDay() == 0) ? 0 : (-1 * dateObj.getDay());
	firstDay++;
	dateObj.setDate(firstDay);
	
	var newRow = dayTable.insertRow(dayTable.rows.length);
	var newCell;
	var dayClass;
	var r = 0; /* row index */

	for (var i = 0; i < 42 ; i++)
	{
		if ((i != 0) && (i%7 == 0))
		{
			newRow	= dayTable.insertRow(dayTable.rows.length);
			r		= 0;
		}
		dayClass			= (dateObj.getMonth() == month) ? 'inRange' : 'outRange';
		newCell				= newRow.insertCell(newRow.cells.length);
		var dateSpan  = document.createElement("span");
		dateSpan.innerHTML = dateObj.getDate();
		newCell.appendChild(dateSpan); 
		
		/* set hidden long date value for presentation */
		var hiddenDateNode 			  = document.createElement("div");
		hiddenDateNode.id			    = "jscal-"+dateObj.getFullYear() + '-' + dateObj.getMonth()+1+ '-' + dateObj.getDate();
		hiddenDateNode.className 	= "hidden";
		hiddenDateNode.innerHTML 	= printLongDate(dateObj.getFullYear(), dateObj.getMonth(), dateObj.getDate());		
		newCell.appendChild(hiddenDateNode);
		
		newCell.className			= dayClass;
		newCell.onmouseover 	= function() {highlight(this);}
		newCell.onmouseout		= function() {unhighlight(this);}
		if (link == "selectDayPublic")
		  //newCell.onclick				= function() {selectDayPublic(printLongDate(dateObj.getFullYear(), dateObj.getMonth(), dateObj.getDate()));}
		  newCell.onclick     = function() {selectDayPublic(this);}
		dateObj.setDate(dateObj.getDate() + 1);
		r++;
	}
}

function selectDayPublic(obj) {
  var div_id = readCookie('fhlDivisionCookie');
  innerChildren = obj.childNodes;
  //alert(innerChildren.length);
  for (i=0; i<innerChildren.length; i++) {
    //alert(innerChildren[i].nodeName);
    if (innerChildren[i].nodeName == "DIV") {
      //alert(innerChildren[i].innerHTML);
      window.location='schedule.php?by_date_div='+div_id+'&date='+innerChildren[i].innerHTML;
    }
  }
  //window.location='schedule.php?by_date_div='+div_id+'&date='+date;
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function highlight(obj) {
	obj.className += '-hover';
}

function unhighlight(obj) {
	obj.className = obj.className.replace('-hover', '');
}

function selectDate(obj) {
	var hiddenField = obj.getElementsByTagName("div");
	document.getElementById('selectedDay').innerHTML = hiddenField.item(0).innerHTML;
}

function setDate(year, month, date) {
	var selectedCell = document.getElementById(year + '-' + month + '-' + date);
	selectDate(selectedCell);
}

function printLongDate(year, month, day) {
	return (months[month] + " " + day + ", " + year);
}

function writeOutParams(params){
	var paramString = '';
	for (var i = 0 ; i < params.length ; i++ ) {
		paramString += params[i];
		if (i != (params.length-1))
			paramString += ',';
	}
	return paramString;
}

function createNav(link, func, params){
	var navHTML = '<a onclick="' + func + '(' + writeOutParams(params) +')">';
	navHTML += link + '</a>';
	return navHTML;
}

