var resultsPerPage = 10;

String.prototype.linkify = function() {
	return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/, function(m) {
		return m.link(m);
	});
};

/* returns relative time, call with twitter time value.
function relative_time(time_value) {
	// Discard the +0000 is a bad idea. 
	// Convert everything to GMT and compare those times.

  if (time_value.indexOf('+') != -1)
  {
	time_value = time_value.substring(0, time_value.indexOf('+'));
  }

  var parsed_date = new Date();  
  parsed_date.setTime(Date.parse(time_value));
	
  var relative_to = new Date();

  var delta = (relative_to.getTime()-parsed_date.getTime())/1000;

  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;
}
*/

function relative_time(time_value) {
		
  	var parsed_date = new Date();  
  	parsed_date.setTime(Date.parse(time_value));
	
	var relative_to = new Date();
	
	
  var delta = (relative_to - parsed_date.getTime())/1000;

  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;
}

function loadTwitter( url, container, first ) {

	url = url + '&limit=' + resultsPerPage;
	$.getJSON(
		url,
		function(data) {
			container.html('');
			$.each(data.results, function(i, result) {
				var author_url = 'http://twitter.com/' + result.from_user;
				var tweet_url = author_url + '/statuses/' + result.twitter_id;
				var li = $('<li/>').appendTo(container);

				
				if (typeof( result.num ) != 'undefined')
				{
					$('<img/>').attr({
						'src': result.profile_image_url,
						'height':"48",
						'width':"48"
					})
					.appendTo(li);
					//$('<p/>').html( '<a href="' + result.author_url + '">' + result.from_user + '</a><br />' )
					$('<p/>').html( '<a href="http://www.twitter.com/' + result.from_user + '">' + result.from_user + '</a><br />' )
					.append( result.num + ' Posts' + '<br />')
					.append( 'Last Post: ' + relative_time(result.last) )
					.appendTo(li);
				}
				else
				{
					$('<a/>').attr({
						'href': author_url,
						'class': 't-ava'
					})
					.append('<img src="' + result.profile_image_url + '" height="48" width="48" />')
					.appendTo(li);
					if (result.twitter_id == '0'){
						$('<p/>').html(result.text.linkify().replace('#080808','<span class="t-highlight">#080808</span>'))
						.append('<br /><span class="t-date">' + relative_time(result.created_at) + '</span>')
						.prepend( '<strong>' + result.from_user + '</strong>: ')
						.appendTo(li); 
					}
					else 
					{
						$('<p/>').html(result.text.linkify().replace('#080808','<span class="t-highlight">#080808</span>'))
						.append('<br /><span class="t-date">' + relative_time(result.created_at) + '</span>')
						.prepend('<a href="http://twitter.com/' + result.from_user + '" class="t-author">' + result.from_user + '</a>: ')
						.appendTo(li);
					}
				}
			});
			
			
			if (container.parent().attr('id') == 'twitter')
			{
				
				var number = data.results.length;
				var nav = container.parent().children('#nav');
				nav.html('');
				
				if ( data.first > 0 )
				{
					var first = parseInt(data.first) - resultsPerPage;
					var handler = "loadTwitter('http://www.thatssaulfolks.com/wp-content/themes/rncchair/twitter.php?q=list&first=" + first + "', $('#twitter ul'))";
				
					nav.append('<a id="twitter_prev" onclick="' + handler + '"><< Previous | </a>');
				}
				
				if ( parseInt(data.total) > resultsPerPage + parseInt(data.first) )
				{
					var first = parseInt(data.first) + resultsPerPage;
					var handler = "loadTwitter('http://www.thatssaulfolks.com/wp-content/themes/rncchair/twitter.php?q=list&first=" + first + "', $('#twitter ul'))";
					nav.append('<a id="twitter_next" onclick="' + handler + '">Next  >></a>');
				}
			}
			
		});

}

$(document).ready( function() {

	if ( $('#twitter ul') )
	{	
		//var url = 'http://search.twitter.com/search.json?q=%23litf08&rpp=3&callback=?';
		//loadTwitter(url, $('#twitter-tag ul') );
		loadTwitter( 'http://www.thatssaulfolks.com/wp-content/themes/rncchair/twitter.php?q=list', $('#twitter ul') );
	}
	
	if ( typeof( twitter_user ) != 'undefined' )
	{
		url = 'http://search.twitter.com/search.json?q=from%3A' + twitter_user + '&rpp=10&callback=?';
		loadTwitter(url, $('#twitter ul') );
	}
	
});
