/****** Twitter widget ******/

/* get twitter feed and insert it into our widget */
$(document).ready( function() {
  if ( $(".get_twitter").length > 0) {
  var url = "http://search.twitter.com/search.json?q=jeppedy&amp;callback=?"
  howmany = 2;

  $.getJSON(url, function(data){
        var content = '';
	    $.each(data['results'], function(i, item) {
	    content += '<li>' + makelink(item.text) + '<div class="info"><a href="http://twitter.com/' + item.from_user + '/statuses/' + item.id + '" target="_blank">' + relative_time(item.created_at) + '</a> from <strong>' + item.from_user + '</strong></div></li>';
	    if ( i == howmany ) {
	      $(".get_twitter").html('<ul>' + content + '</ul>');
	      $(".get_twitter li a").attr("target","_blank");
	      return false; 
	    }
	  });
    });
}
});

/* convert twitter time to something prettier */
function relative_time(time_value) {
  var values = time_value.split(" ");
  time_value = values[1] + " " + values[2] + ", " + values[4] + " " + values[3];
  var parsed_date = Date.parse(time_value);
  var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
  var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
  delta = delta + (relative_to.getTimezoneOffset() * 60);
  
  var r = '';
  if (delta < 60) {  r = 'a minute ago'; } 
  else if(delta < 120) { r = 'couple of minutes ago'; } 
  else if(delta < (45*60)) { r = (parseInt(delta / 60)).toString() + ' minutes ago'; } 
  else if(delta < (90*60)) { r = 'an hour ago'; }
  else if(delta < (24*60*60)) { r = '' + (parseInt(delta / 3600)).toString() + ' hours ago'; }
  else if(delta < (48*60*60)) { r = '1 day ago'; } 
  else { r = (parseInt(delta / 86400)).toString() + ' days ago'; }
  return r;
}

/* make links out of linkable text*/
function makelink(content) {
  return content.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/, function(m) {return m.link(m); });
}
/****************************/