var sample = 70;

function getElapsedCyclesFrom (date, sample) {
  var now = new Date();
  var utc_now = now.getTime() + now.getTimezoneOffset() * 60 * 1000;
  return (utc_now - date.getTime()) / sample;
}

function getStats(callback) {
  $.jsonp({
    url: 'http://app.pusherapp.com/stats/counts.json?callback=?',
    callback: 'countcallback',
    cache: true,
    success: function (counts) {
    
      var server_date = new Date(counts.date); // This will set it to be in local tz, so we have to transpose to UTC
      var date = new Date();
      date.setUTCFullYear(server_date.getFullYear());
      date.setUTCMonth(server_date.getMonth());
      date.setUTCDate(server_date.getDate());
      date.setUTCHours(server_date.getHours());
      var daily_avg = counts.total_daily_average / 24 / 60 / 60 / 1000 * sample;
      function count(){
        var now = new Date();
        var cycles_since_midnight = getElapsedCyclesFrom(date, sample);
        var current_total = counts.total_messages_count + (cycles_since_midnight * daily_avg);
        setCount(Math.round(current_total));
      }
      setInterval(count, sample);
      typeof callback === 'function' && callback(counts.total_messages_count, counts.total_daily_average);
    }
  });
}

function addCommas(number) {
  var number = number+'';
  var l = number.length;
  var out = ''
  var n = 0;
  for (var i=(l-1);i>=0;i--) {
  	out = '<span class="l">'+number.charAt(i)+'</span>'+out;
	
  	if ((l-i)%3 == 0 && i != 0) {
  		out = '<span class="lcom">,</span>'+out;
  	}
  	n++;
  }
  return out;
}

function setCount(number) {
  $('#total_msgs').html(addCommas(number));
}

