$(document).ready( function() {	
 
  // Tab Functionality
  $("#sideTabs").tabs();
  $("#vidTabs").tabs();

  //  AJAX Twitter Feed on Homepage

  var url = "http://twitter.com/status/user_timeline/f5f.json?count=1&callback=?";
  $.getJSON(url, function(data){
    $.each(data, function(i, item) {
      $("#tweets").append(item.text.linkify().linkuser() + " <span class='timestamp' style='padding: 10px 10px 10px 0px; display: block; font-size: 11px; text-transform: uppercase; color: grey;'>" + relative_time(item.created_at) + "</span>");
    });
  });
	
  String.prototype.linkify = function() {
    return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/, function(m) {
      return m.link(m);
    });
  }; 

  String.prototype.linkuser = function() {
    return this.replace(/[@]+[A-Za-z0-9-_]+/, function(u) {
      var username = u.replace("@","")
      return u.link("http://twitter.com/"+username);
    });
  };

  function relative_time(time_value) {
    var values = time_value.split(" ");
    time_value = values[1] + " " + values[2] + ", " + values[5] + " " + 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 = 'about a minute ago';
    } else if(delta < 120) {
      r = 'about couple of minutes ago';
    } else if(delta < (45*60)) {
      r = 'about ' + (parseInt(delta / 60)).toString() + ' minutes ago';
    } else if(delta < (90*60)) {
      r = 'about an hour ago';
    } else if(delta < (24*60*60)) {
      r = 'about ' + (parseInt(delta / 3600)).toString() + ' hours ago';
    } else if(delta < (48*60*60)) {
      r = '1 day ago';
    } else {
      r = 'about ' + (parseInt(delta / 86400)).toString() + ' days ago';
    }
    return r;
  }

  function twitter_callback () {
    return true;
  }

});

