var last, previous;

var rejects = [
  1334933766
]

var loadtweets = function(r){
  previous = r.results;
  last = previous.shift();  
}



// based on implementation from rails http://rails-doc.org/rails/ActionView/Helpers/DateHelper/distance_of_time_in_words
// explanation at http://blog.peelmeagrape.net/2008/7/26/time-ago-in-words-javascript-part-1
// unittests at http://blog.peelmeagrape.net/assets/2008/7/26/distanceOfTimeInWords.html
function distanceOfTimeInWords(fromTime, toTime, includeSeconds) {
  var fromSeconds = fromTime.getTime();
  var toSeconds = toTime.getTime();
  var distanceInSeconds = Math.round(Math.abs(fromSeconds - toSeconds) / 1000)
  var distanceInMinutes = Math.round(distanceInSeconds / 60)
  if (distanceInMinutes <= 1) {
    if (!includeSeconds)
      return (distanceInMinutes == 0) ? 'less than a minute' : '1 minute'
    if (distanceInSeconds < 5)
      return 'less than 5 seconds'
    if (distanceInSeconds < 10)
      return 'less than 10 seconds'
    if (distanceInSeconds < 20)
      return 'less than 20 seconds'
    if (distanceInSeconds < 40)
      return 'half a minute'
    if (distanceInSeconds < 60)
      return 'less than a minute'
    return '1 minute'
  }
  if (distanceInMinutes < 45)
    return distanceInMinutes + ' minutes'
  if (distanceInMinutes < 90)
    return "about 1 hour"
  if (distanceInMinutes < 1440)
    return "about " + (Math.round(distanceInMinutes / 60)) + ' hours'
  if (distanceInMinutes < 2880)
    return "1 day"
  if (distanceInMinutes < 43200)
    return (Math.round(distanceInMinutes / 1440)) + ' days'
  if (distanceInMinutes < 86400)
    return "about 1 month"
  if (distanceInMinutes < 525600)
    return (Math.round(distanceInMinutes / 43200)) + ' months'
  if (distanceInMinutes < 1051200)
    return "about 1 year"
  return "over " + (Math.round(distanceInMinutes / 525600)) + ' years'
}

var now = new Date();

var clean = function(str){
  return str.replace(/(^#wheresblaine)/i,'').replace(/(http:\/\/\S+)/,"<a href='$1' target='_blank'>$1</a>");
}

var format = function(msg){
  var d = new Date(msg.created_at);
  var time = distanceOfTimeInWords(d, now, true);
  return '<span class="location">'+clean(msg.text)+'</span> <span class="spotted_by">Spotted by <a href="http://twitter.com/'+msg.from_user+'">@'+msg.from_user+'</a> <span class="when">'+time+' ago</span></span>';
}

function accepted(msg){
  for(var i=0;i<rejects.length; i++){
    if(msg.id == rejects[i])
      return false;
  }
  return true
}

$(function(){
  if(last && previous){
    $('#last').text("").append(format(last))
     $('#recent').text("");
     $.each(previous,function(){
       if(accepted(this))
        $('#recent').append('<li>'+format(this)+'</li>')
     })
  }else{
    $('#last').html("<strong>We can't find him right now. <a href='http://search.twitter.com/search?q=%23wheresblaine'>Maybe you can find him!</a></stong>")
  }
 
})
