// JavaScript Document

$(document).ready(function(){
    var boxHeight = $("#timeBox").css("height").substring(0, 2);
    $('#timeBox').css("top", (window.innerHeight * 0.5) - boxHeight);
    
    var timeTillDate = calculateTimeTo(0, 50, 0, 30, 2, 2010);
    
    function calculateTimeTo(seconds, minutes, hours, days, month, year){
        var now, diff, rDays, rHours, rMinutes, rSeconds;
		var numDays, numWeeks, numHours, numMinutes, numSeconds;
		var suffixes = ["week", "day", "hour", "minute", "second"];
        var then = new Date();
        then.setFullYear(year);
        then.setMonth(month, days);
        then.setHours(hours);
        then.setMinutes(minutes);
        then.setSeconds(seconds);
        
		function getSuffix(numUnits, suffixNum) {
			var divider = ", ";
			if (numUnits == 0) {
				return "";
			}
			else if (numUnits == 1) {
				return numUnits + " " + suffixes[suffixNum] + divider;
			}
			else return numUnits + " " + suffixes[suffixNum] + "s" + divider;
		}
		
        function calculateTimeRemaining(){
            now = new Date();
            diff = then.getTime() - now.getTime();
            seconds = diff / 1000;
            minutes = seconds / 60;
            hours = minutes / 60;
            days = hours / 24;
            rDays = (days % 1);
            rHours = (rDays % 1) * 24;
            rMinutes = (rHours % 1) * 60;
            rSeconds = (rMinutes % 1) * 60;
			
			numWeeks = Math.floor(days / 7);
			numDays = Math.floor(days % 7);
			numHours = Math.floor(rHours);
			numMinutes = Math.floor(rMinutes);
			numSeconds = Math.floor(rSeconds);
			
            return getSuffix(numWeeks, 0) + getSuffix(numDays, 1) + getSuffix(numHours, 2) + getSuffix(numMinutes, 3) + getSuffix(numSeconds, 4) + " to go.";
        }
		setInterval(function() {
			$('#time').html(calculateTimeRemaining());
		}, 1000);
		
    }
    timeTillDate();
});
