//#profile / picture_rotator settings
var maxProfile=0;
var currentProfile=0;
var profileTimer;
var profileDelayTime=6000;
var profileTransitionTime=1500;


$(document).ready(function() {
  $('.post-twitter .tweets li').css('display','block').hide();
  
  //Twitter button hover
  $('.post-twitter .button-down')
    .click(function() {return false;})
    .hover(
      function() {
        if($('.tweets li').length>0)
          $('.tweets li',$(this).parent()).addClass('faux-hr').slideDown(500);
      },
      function() {}
    );
  
  //Mouse leaves the twitter zone
  $('.post-twitter')
    .hover(
      function() {},
      function() {
        $('.tweets li',$(this).parent()).removeClass('faux-hr').not('.alpha').slideUp(250);
      }
    );
  
  //Rotate the #profile / picture_rotator <ul/>
  if((maxProfile=$('#profile li').length)>1) {
    $('#profile li').css({top:0,left:0,zIndex:89}).not(':eq('+currentProfile+')').fadeTo(0,0);
    profileTimer=setTimeout('nextProfile()',profileDelayTime-profileTransitionTime);
  }

  getTweets();
});

function nextProfile() {
  var n=currentProfile;
  if(++n>=maxProfile)
    n=0;
  var target=$('#profile li').eq(currentProfile);
  var nTarget=$('#profile li').eq(n);
  
  $('#profile li').not(target).not(nTarget).stop().fadeTo(0,0).css('z-index','88');
  target.css('z-index','89');
  nTarget.css('z-index','90');
  
  nTarget.stop().fadeTo(0,0).fadeTo(profileTransitionTime,1,
                         function() {
                           target.stop().fadeTo(0,0);
                           currentProfile=n;
                         }
                        );
  
  profileTimer=setTimeout('nextProfile()',profileDelayTime);
}

function getTweets() {
  $('.tweets li.alpha').html($.cookies.get('latest_tweet'));
  
  $.getJSON(site_url+'wp-content/themes/StevenFurtick/twitter_feed.php',function(data) {
    var results='';
    
    var alpha=true;
    var c=data.results.length;
    $.each(data.results,function(i,row) {
      var title=makeLinksClickable(row.text);
      if(alpha)
        tweet='<li class="alpha">';
      else if(i==c-1)
        tweet='<li class="omega">';
      else
        tweet='<li>';
      alpha=false;
      
      tweet+='<p>'+title+' <span class="timestamp">';
      tweet+=relativeTime(row.created_at)+'</span></p></li>'
      
      //First tweet gets stored
      if(i==0)
        $.cookies.set('latest_tweet',tweet);
      
      //Add thet weet to the list of tweets
      results+=tweet;
    });
    
    $('.post-twitter .tweets').html(results);
    $('.post-twitter .tweets li p').hide().fadeIn(500);
  });
}

function makeLinksClickable(str) {
  var exp=/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/i;
  return str.replace(exp,'<a href="$1" target="_blank" rel="external">$1</a>'); 
}

function relativeTime(time_value) {
  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);
  if(delta < 60) {
  return 'Less than a minute ago';
  } else if(delta < 120) {
  return 'About a minute ago';
  } else if(delta < (45*60)) {
  return (parseInt(delta / 60)).toString() + ' minutes ago';
  } else if(delta < (90*60)) {
  return 'About an hour ago';
  } else if(delta < (24*60*60)) {
  return 'About ' + (parseInt(delta / 3600)).toString() + ' hours ago';
  } else if(delta < (48*60*60)) {
  return '1 day ago';
  } else {
  return (parseInt(delta / 86400)).toString() + ' days ago';
  }
}
