var events;
var countdown_days;
var countdown_hours;
var countdown_minutes;
var countdown_seconds;
var e;

function parseDate(s)
{
	d = Date.parseExact(s, "yyyy-MM-dd HH:mm:ss");
	return d;
}

function getNextEvent()
{
	var r = null;
	var ld = null;
	var today = new Date();
	$.each(events, function (i, item)
	{
		start = item.fields.start;
		if (item.fields.race_start != null)
		{
			start = item.fields.race_start;
		}
		s = parseDate(start);
		if (today.compareTo(s) != 1)
		{
			if (ld == null || ld.compareTo(s) == 1)
			{
				r = item.fields;
				if (r.race_start != null)
				{
					ld = parseDate(r.race_start);
				} else
				{
					ld = parseDate(r.start);
				}
			}
		}
	});
	return r;
}

function formatNumber(n)
{
	s = n.toString();
	if (n < 10 && n >= 0)
	{
		s = "0" + s;
	}
	return s;
}

function refreshCountdown(data)
{
	var start;
	if (data)
	{
		events = data;
		e = getNextEvent();
	}

	if (e == null)
	{
		return;
	}

	var today = new Date();
	if (today == null)
	{
		return;
	}
	if (e.race_start != null)
	{
		start = parseDate(e.race_start);
	} else
	{
		start = parseDate(e.start);
	}
	if (today.compareTo(start) == 1)
	{
		e = getNextEvent();
		if (e == null)
		{
			return;
		}
		if (e.race_start != null)
		{
			start = parseDate(e.race_start);
		} else
		{
			start = parseDate(e.start);
		}
	}

	var d = new TimeSpan(start - today);

	var days = d.getDays();
	var hours = d.getHours();
	var minutes = d.getMinutes();
	var seconds = d.getSeconds();

	if (99 < days)
	{
		days = 99;
	}

	countdown_days.text(formatNumber(days));
	countdown_hours.text(formatNumber(hours));
	countdown_minutes.text(formatNumber(minutes));
	countdown_seconds.text(formatNumber(seconds));

	setTimeout("refreshCountdown();", 1000);
}

$(function ()
{
	if (0 == $("#countdown").size())
	{
		return;
	}
	countdown_days = $("#countdown-days");
	countdown_hours = $("#countdown-hours");
	countdown_minutes = $("#countdown-minutes");
	countdown_seconds = $("#countdown-seconds");

	$.getJSON("/calendar/events.json", function(data) {
		refreshCountdown(data);
	});
});
