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

function update_boxes()
{
	var month = document.getElementById("month");
	var day = document.getElementById("day");
	var year = document.getElementById("year");
	
	if((month.value != "") && (year.value != ""))
	{
		while(day.childNodes[0])
		{
			day.removeChild(day.childNodes[0]);
		}
		refreshDays(day, month.value, year.value);
	}
	
	save_calendar();
}

/*
function initBoxes()
{
	var month = document.getElementById("month");
	var day = document.getElementById("day");
	var year = document.getElementById("year");
	var hour = document.getElementById("hour");
	var minute = document.getElementById("minute");
	var am_pm = document.getElementById("am_pm");
	
	month.onchange = function()
	{
		
		alert('changing');
		if(month.value != "")
		{
			while(day.childNodes[0])
			{
				day.removeChild(day.childNodes[0]);
			}
			refreshDays(day, month.value, year.value);
		}
		save_calendar();
		
	}
	
	year.onchange = function()
	{
		alert('changing');
		if(year.value != "")
		{
			while(day.childNodes[0])
			{
				day.removeChild(day.childNodes[0]);
			}
			refreshDays(day, month.value, year.value);
		}
		save_calendar();
	}
}
*/

function refreshDays(day, month, year)
{
	var currTime = new Date();
	var currDay = currTime.getDate();
	var currMonth = currTime.getMonth();
	var currYear = currTime.getFullYear();
	
	var index;
	for(index = 1; index <= months.length; index++)
	{
		if(month == index)
		{
			break;
		}
	}
	
	var numDays = days_in_month(index - 1, year);
	
	for(i = 1; i <= numDays; i++)
	{
  		var x = document.createElement('option');
  		var y = document.createTextNode(i);
		if((i == currDay) && (month == currMonth) && (year == currYear))
		{
			x.setAttribute('selected', true);
		}
		if(window.attachEvent)
		{
			x.setAttribute('value', y.nodeValue);
		}
  		x.appendChild(y);
  		day.appendChild(x);
  	}
}

function days_in_month(month, year)
{
	return 32 - new Date(year, month, 32).getDate();
}

function save_calendar()
{
	var month = document.getElementById("month").value;
	var day = document.getElementById("day").value;
	var year = document.getElementById("year").value;
	var hour = document.getElementById("hour").value;
	var minute = document.getElementById("minute").value;
	var am_pm = document.getElementById("am_pm").value;
	
	if(am_pm == 0)
	{
		am_pm = "AM";
	}
	else
	{
		am_pm = "PM";
	}
	
	var save_url = "http://worldslargestclock.com/index.php?page=calendar.php";
	save_url += "&month=" + month;
	save_url += "&day=" + day;
	save_url += "&year=" + year;
	save_url += "&hour=" + hour;
	save_url += "&minute=" + minute;
	save_url += "&am_pm=" + am_pm;
	document.getElementById("save_calendar").href=save_url;
}

function calendar()
{
	var calendar_div = document.getElementById('calendar');
	var month = document.getElementById("month");
	var day = document.getElementById("day");
	var year = document.getElementById("year");
	var hour = document.getElementById("hour");
	var minute = document.getElementById("minute");
	var am_pm = document.getElementById("am_pm");
	
	var timeStr = "";
	var curTime = new Date();
	
	var correctHour = ((parseInt(am_pm.value) == 0) ? parseInt(hour.value) : parseInt(hour.value) + 12);
	if(correctHour == 24)
	{
		correctHour = 12;
	}
	else if(correctHour == 12)
	{
		correctHour = 0;
	}

	if(correctHour < 10)
	{
		correctHour = "0" + correctHour;
	}
	
	var correctMinute = parseInt(minute.value);
	if(parseInt(minute.value) < 10)
	{
		correctMinute = "0" + correctMinute;
	}
	
	var time = months[month.value - 1] + " " + day.value + ", " + year.value + " " + correctHour + ":" + correctMinute + ":00";
	var futTime = new Date(time);
	
	var diffTime = futTime.getTime() - curTime.getTime();
	
	if(diffTime < 0)
	{
		calendar_reset(0);
	}
	else
	{
		var days = Math.floor(diffTime / (1000 * 60 *60 * 24));
		var fontsize;
		if(days>=1000)
		{
			fontsize = screenSizeCalendarReallyLong();
			
		}
		else if(days>=100)
		{
			fontsize = screenSizeCalendarLong();
		}
		else
		{
			fontsize = screenSizeCalendarShort();
		}
		
		var letterspacing = smashFontTogether(fontsize);
		diffTime -= days * 1000 * 60 * 60 * 24;
		var hours = Math.floor(diffTime / (1000 * 60 * 60));
		diffTime -= hours * 1000 * 60 * 60;
		var minutes = Math.floor(diffTime / (1000 * 60));
		diffTime -= minutes * 1000 * 60;
		var seconds = Math.floor(diffTime / 1000);
		diffTime -= seconds * 1000;
		
		timeStr += ((days < 10) ? ("0" + days) : days);
		timeStr += (":" + ((hours < 10) ? ("0" + hours) : hours));
		timeStr += (":" + ((minutes < 10) ? ("0" + minutes) : minutes));
		timeStr += (":" + ((seconds < 10) ? ("0" + seconds) : seconds));
		
		calendar_div.innerHTML='<div style="font-size:' + fontsize + 'px; 	letter-spacing:' + letterspacing + 'px;">' + timeStr + '</div>';

		myTimer = setTimeout("calendar()", 1000);
	}
}

function calendar_reset(new_instance)
{
	clearTimeout(myTimer);

	var fontsize = screenSizeCalendarShort(); //get font size with our new, oversized ratio
	var letterspacing = smashFontTogether(fontsize);
	
	var calendar_div = document.getElementById('calendar');
	var timeStr = "00:00:00:00";
	
	calendar_div.innerHTML='<div style="font-size:' + fontsize + 'px; 	letter-spacing:' + letterspacing + 'px;">' + timeStr + '</div>';
}

function screenSizeCalendarShort()
{
	if (window.innerWidth)
	{
		var width = window.innerWidth;
	}
	else if (document.documentElement && document.documentElement.clientWidth)
	{
		var width = document.documentElement.clientWidth;
	}
	else if (document.body.clientWidth)
	{
		var width = document.body.clientWidth;
	}
	else
	{
		var width = screen.width;
	}

	// var fontsize = width * 300 / 1600;
	//var fontsize = width * 436 / 1600;
	var fontsize = width * 400/ 1600;
	//alert(fontsize);
	return(fontsize);
}

function screenSizeCalendarLong()
{
	if (window.innerWidth)
	{
		var width = window.innerWidth;
	}
	else if (document.documentElement && document.documentElement.clientWidth)
	{
		var width = document.documentElement.clientWidth;
	}
	else if (document.body.clientWidth)
	{
		var width = document.body.clientWidth;
	}
	else
	{
		var width = screen.width;
	}

	// var fontsize = width * 300 / 1600;
	//var fontsize = width * 436 / 1600;
	var fontsize = width * 365/ 1600;
	//alert(fontsize);
	return(fontsize);
}

function screenSizeCalendarReallyLong()
{
	if (window.innerWidth)
	{
		var width = window.innerWidth;
	}
	else if (document.documentElement && document.documentElement.clientWidth)
	{
		var width = document.documentElement.clientWidth;
	}
	else if (document.body.clientWidth)
	{
		var width = document.body.clientWidth;
	}
	else
	{
		var width = screen.width;
	}

	// var fontsize = width * 300 / 1600;
	//var fontsize = width * 436 / 1600;
	var fontsize = width * 335/ 1600;
	//alert(fontsize);
	return(fontsize);
}
