/*function countDown()
{
	var now = new Date();
	var duedate= new Date(endDate);
	var iDays = duedate.getDate() - now.getDate();
	var iMonths = duedate.getMonth() - now.getMonth();
	var iYears = duedate.getFullYear() - now.getFullYear();
	var iHours = duedate.getHours() - now.getHours();
	var iMinutes = duedate.getMinutes() - now.getMinutes();
	var iSeconds = duedate.getSeconds() - now.getSeconds();
	var daysOfMonth = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	if (now.getFullYear() % 4 == 0) daysOfMonth[1] = 29;
	if (iSeconds < 0)
	{
		iSeconds = 60 + iSeconds;
		iMinutes--;
	}
	if (iMinutes < 0)
	{
		iMinutes = 60 + iMinutes;
		iHours--;
	}
	if (iHours < 0)
	{
		iHours = 24 + iHours;
		iDays--;
	}
	if (iDays < 0)
	{
		iDays = daysOfMonth[now.getMonth() + 1] + iDays;
		iMonths--;
	}
	if (iMonths < 0)
	{
		iMonths = 12 + iMonths;
		iYears--;
	}
	var iWeeks = Math.floor(iDays / 7);
	iDays = iDays % 7;
	
	eYears.innerHTML = iYears;
	eMonths.innerHTML = iMonths;
	eWeeks.innerHTML = iWeeks;
	eDays.innerHTML = iDays;
	eHours.innerHTML = iHours;
	eMinutes.innerHTML = iMinutes;
	eSeconds.innerHTML = iSeconds;
	setTimeout(countDown,1000);
}
function countUp()
{
	var now = new Date();
	var duedate= new Date(endDate);
	var iDays = now.getDate() - duedate.getDate();
	var iMonths = now.getMonth() - duedate.getMonth();
	var iYears = now.getFullYear() - duedate.getFullYear();
	var iHours = now.getHours() - duedate.getHours();
	var iMinutes = now.getMinutes() - duedate.getMinutes();
	var iSeconds = now.getSeconds() - duedate.getSeconds();
	var daysOfMonth = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	if (now.getFullYear() % 4 == 0) daysOfMonth[1] = 29;
	if (iSeconds < 0)
	{
		iSeconds = 60 + iSeconds;
		iMinutes--;
	}
	if (iMinutes < 0)
	{
		iMinutes = 60 + iMinutes;
		iHours--;
	}
	if (iHours < 0)
	{
		iHours = 24 + iHours;
		iDays--;
	}
	if (iDays < 0)
	{
		iDays = daysOfMonth[now.getMonth() + 1] + iDays;
		iMonths--;
	}
	if (iMonths < 0)
	{
		iMonths = 12 + iMonths;
		iYears--;
	}
	var iWeeks = Math.floor(iDays / 7);
	iDays = iDays % 7;
	
	eYears.innerHTML = iYears;
	eMonths.innerHTML = iMonths;
	eWeeks.innerHTML = iWeeks;
	eDays.innerHTML = iDays;
	eHours.innerHTML = iHours;
	eMinutes.innerHTML = iMinutes;
	eSeconds.innerHTML = iSeconds;
	setTimeout(countUp,1000);
}*/
function count()
{
	var now = new Date();
//	debugNow.innerText = now;
	var duedate= new Date(endDate);
//	debugDuedate.innerText = duedate;
	var dHigh = (now > duedate) ? now : duedate;
//	debugDHigh.innerText = dHigh;
	var dLow = (now < duedate) ? now : duedate;
//	debugDLow.innerText = dLow;
	var iSeconds = dHigh.getSeconds() - dLow.getSeconds();
//	debugISeconds[0].innerText = iSeconds;
	var iMinutes = dHigh.getMinutes() - dLow.getMinutes();
//	debugIMinutes[0].innerText = iMinutes;
	var iHours = dHigh.getHours() - dLow.getHours();
//	debugIHours[0].innerText = iHours;
	var iDays = dHigh.getDate() - dLow.getDate();
//	debugIDays[0].innerText = iDays;
	var iMonths = dHigh.getMonth() - dLow.getMonth();
//	debugIMonths[0].innerText = iMonths;
	var iYears = dHigh.getFullYear() - dLow.getFullYear();
//	debugIYears[0].innerText = iYears;
	var daysOfMonth = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	if (dHigh.getFullYear() % 4 == 0) daysOfMonth[1] = 29;
//	debugISeconds[1].innerText = iSeconds;
	if (iSeconds < 0)
	{
		iSeconds = 60 + iSeconds;
		iMinutes--;
	}
/*	debugISeconds[2].innerText = iSeconds;
	debugIMinutes[1].innerText = iMinutes;*/
	if (iMinutes < 0)
	{
		iMinutes = 60 + iMinutes;
		iHours--;
	}
/*	debugIMinutes[2].innerText = iMinutes;
	debugIHours[1].innerText = iHours;*/
	if (iHours < 0)
	{
		iHours = 24 + iHours;
		iDays--;
	}
/*	debugIHours[2].innerText = iHours;
	debugIDays[1].innerText = iDays;*/
	if (iDays < 0)
	{
		iDays = daysOfMonth[dLow.getMonth()] + iDays;
		iMonths--;
	}
/*	debugIDays[2].innerText = iDays;
	debugIMonths[1].innerText = iMonths;
	debugDaysOfMonth.innerText = daysOfMonth[dHigh.getMonth()];
	debugDHighGetMonth.innerText = dHigh.getMonth();
	debugDaysOfMonth.innerText = daysOfMonth[dLow.getMonth()];
	debugDLowGetMonth.innerText = dLow.getMonth();*/
	if (iMonths < 0)
	{
		iMonths = 12 + iMonths;
		iYears--;
	}
/*	debugIMonths[2].innerText = iMonths;
	debugIYears[1].innerText = iYears;*/
	var iWeeks = Math.floor(iDays / 7);
/*	debugIWeeks.innerText = iWeeks;*/
	iDays = iDays % 7;
/*	debugIDays[3].innerText = iDays;*/
	counterText.innerHTML = "";
	if (iYears > 0)
		counterText.innerHTML += iYears + " year" + doPlural(iYears) + ", ";
	if (iYears > 0 || iMonths > 0)
		counterText.innerHTML += iMonths + " month" + doPlural(iMonths) + ", ";
	if (iYears > 0 || iMonths > 0 || iWeeks > 0)
		counterText.innerHTML += iWeeks + " week" + doPlural(iWeeks) + ", ";
	if (iYears > 0 || iMonths > 0 || iWeeks > 0 || iDays > 0)
		counterText.innerHTML += iDays + " day" + doPlural(iDays) + ", ";
	if (iYears > 0 || iMonths > 0 || iWeeks > 0 || iDays > 0 || iHours > 0)
		counterText.innerHTML += iHours + " hour" + doPlural(iHours) + ", ";
	if (iYears > 0 || iMonths > 0 || iWeeks > 0 || iDays > 0 || iHours > 0 || iMinutes > 0)
		counterText.innerHTML += iMinutes + " minute" + doPlural(iMinutes) + ", and ";
	counterText.innerHTML += iSeconds + " second" + doPlural(iSeconds);
	setTimeout(count,1000);
}
function doPlural(i)
{
	return (i == 1) ? "" : "s";
}
