function get_activity(context,container) {
  // Show Spinner
  $j('#ff_spinner').show();
  $j.getJSON('/community/activity/?format=json&id=' + context + '&callback=?', function(data){
    // Hide Spinner
    $j('#ff_spinner').hide();
    new_activity = [];
    data.reverse().each(function(activity) {
      if ($j('#item-' + activity.id).size() < 1) {
        new_activity.unshift(activity);
      }
    });
  })
}

function display_activity(container) {
  if (new_activity.length != null) {
    activity = new_activity.pop();
    if (activity != null) {
      if ($j('#item-' + activity.id).length < 1) {
        build_activity(activity,container);
        $j('#item-' + activity.id).fadeIn(800);
      }
    }
  }

  // Set Time Ago
  $j('abbr[class*=timeago]').timeago();

  // Remove old items
  if ($j('#activity_feed > .item').size() > 30) $j('#activity_feed > .item:last').remove();
  if ($j('#mini_activity_feed > .item').size() > 30) $j('#mini_activity_feed > .item:last').remove();
}

/* insert new items onto the page */
function build_activity(activity,container) {
  if (container != null && container == 'mini_activity_feed') {
    var activity = '<li id="item-' + activity.id + '" style="display:none;" class="item clearfix"> \
    ' + activity.summary + ' \
  	</li>'
  } else {
    var activity = '<li id="item-' + activity.id + '" style="display:none;" class="item clearfix"> \
    ' + ((activity.activitiable_type == 'TruthRumor') ?
      '<a class="user-image" href="/truth_and_rumors/view/' + activity.id + '">' :
      '<a class="user-image" href="/users/view_user_profile/' + activity.user_id + '">') +
        '<img src="' + ((activity.user_image_url == null) ?
                         'http://img.fannation.com/images/layout/profile-headshot.gif' :
                         activity.user_image_url) + '" alt="' + activity.user_display_name + '" /></a> \
      <div class="item-info"> \
			  <ul class="menu-v user-info"> \
			    <li><a href="/users/view_user_profile/' + activity.user_id + '">' + activity.user_display_name + '</a></li> \
			    <li class="content-type">Type: ' + activity.action + '</li> \
			    <li class="content-time"><abbr class="timeago" title="' + activity.created_at + '">' + $j.timeago(activity.created_at) + '</abbr></li> \
			  </ul> \
   		 </div> \
 	    <div class="item-content"> \
        ' + activity.activity_body + ' \
	    </div> \
  	</li>'
  	container = 'activity_feed';
  }
  $j('#'+container).prepend(activity);
}

new_activity = [];
$j().ready(function() {
  var context = ($j('#feed_filter_nav > .current:first').length > 0) ? $j('#feed_filter_nav > .current:first').attr('id').split('-').last() : 'all';
  var container = ($j('#mini_activity_feed').length > 0) ? 'mini_activity_feed' : 'activity_feed';

  // If there is no queued activity
  get_activity(context);

  // Start Interval
  var interval = (container == 'mini_activity_feed' ? 60000 : 30000)
  get_activity_interval = window.setInterval(function(){ get_activity(context) }, interval);
  display_activity_interval = window.setInterval(function(){ display_activity(container) }, 4000);

  // Expire after 1 hour
  window.setTimeout(function(){
    window.clearInterval(get_activity_interval);
    window.clearInterval(display_activity_interval);
    if (confirm('Auto-refresh has expired, would you like to reload the page?')) {
      window.location.reload();
    }
  }, 3600000);
});
