
function getCurrentSeconds()
{
  return Math.floor(new Date().getTime() / 1000);
}

function getSecondsElapsedSince(base)
{
  return getCurrentSeconds() - base;
}

var timer = null;

var baseTime = getCurrentSeconds();

var highlightFirstAward = true;

var times = new Array();

function updateTimer()
{
  var elapsed = getSecondsElapsedSince(baseTime);
  baseTime = getCurrentSeconds();

  for (i = 0; i < times.length; i++)
  {
    times[i] = times[i] + elapsed;

    var awardTime = document.getElementById("awardTime" + i);
    if (awardTime != undefined)
      awardTime.innerHTML = formatAwardTime(times[i], i == 0 && highlightFirstAward);
  }

  if (timer != null)
    clearTimeout(timer);

  timer = setTimeout("updateTimer()", 1000);
}

function formatAwardTime(secondsSince, includeBR)
{
  var seconds = secondsSince;
  var minutes = Math.floor(seconds / 60);
  var hours = Math.floor(minutes / 60);
  var days = Math.floor(hours / 24);

  var padding = "";

  var br = " "
  if (includeBR)
    br = "<br>";

  if (minutes < 1)
  {
    if (seconds < 10)
      padding = "0";

    return "<span>" + padding + seconds + "</span>" + br + "seconds ago";
  }
  else if (hours < 1)
  {
    seconds = seconds % 60;

    if (seconds < 10)
      padding = "0";

    return "<span>" + minutes + ":" + padding + seconds + "</span>" + br + "minutes ago";
  }
  else if (hours == 1)
  {
    return "<span>" + "1" + "</span>" + br + "hour ago";
  }
  else if (days < 1)
  {
    return "<span>" + hours + "</span>" + br + "hours ago";
  }
  else if (days < 2)
  {
    return "<span>" + "1" + "</span>" + br + "day ago";
  }
  else
  {
    return "<span>" + days + "</span>" + br + "days ago";
  }
}

function startTimer(highlightFirst)
{
  if (highlightFirst == undefined)
    highlightFirst = true;

  highlightFirstAward = highlightFirst;
  baseTime = getCurrentSeconds();
  updateTimer();
}
