$(document).ready(function() {
  // console.log("ready...");
  
  var since_id = parseInt($(".tweet_id")[0].value); //get the minimum tweet to pull;
  var rpp = 50;
  var tweet_queue;
  var curr_tweet;
  var paused = false;

  $("#loader").hide();  

  $("#pause_link").click(function (){
	// console.log("toggling pause.");
	paused = !paused;
	$("#pause_link").text((paused) ? "Play" : "Pause");
	if (!paused) { push_next_tweet(); }
  });

  function animate_loader(){
    $("#loader").show("fast", function callback(){ 
		setTimeout(function(){ $("#loader").hide(); }, 3000);
	});
  }

  function get_tweets(){
	var url = 'http://search.twitter.com/search.json?q=refreshmiami+OR+refresh%20miami+OR+refresh09+OR+%23refreshmiami+OR+%23refresh09&since_id=' + since_id + '&rpp=' + rpp + '&callback=?';
	// console.log("requesting " + url);
	
	animate_loader();
	$.getJSON(url, function(data){ 
		if (data.results.length == 0){ //if no new tweets, try again after a delay
			// console.log("no new tweets");
			setTimeout(get_tweets, 10000);
			return;
		}
		tweet_queue = data.results;
		curr_tweet = tweet_queue.length - 1;
		since_id = tweet_queue[0].id;
		$("#loader").hide();
	  	setTimeout(push_next_tweet, 2500);
	  });
	
  }
  
  function push_next_tweet(){
	if (paused) { return; }
	if (curr_tweet == null || curr_tweet < 0) { 
		// console.log("done pushing tweets."); 
		tweet_queue = [];
		get_tweets(); //get the next set of tweets
		return; 
	}
	var tweet = tweet_queue[curr_tweet];
	// console.log("pushing tweet at " + curr_tweet + ": " + tweet.text);
	
	var tweet_id = tweet.id;
	$("#twitter_content").prepend("<p id='" + tweet_id + "' class='tweet'><a class='pink' href='http://twitter.com/" + tweet.from_user + "'>@" + tweet.from_user + "</a> - " + tweet.text + "</p>");
	$('#twitter_content').css("top", "-49px");
	curr_tweet = curr_tweet - 1;
	
	$("#twitter_content").animate({top: '+=49'}, 1000, function callback(){ 
		setTimeout(push_next_tweet, 1500);
	});
	
	/*$("#" + tweet.id).show(1500, function callback(){ 
		setTimeout(push_next_tweet, 1000);
	});*/
	
	/*$("#" + tweet.id).slideDown(1500, function callback(){ 
		setTimeout(push_next_tweet, 1000);
	});*/
	
  }

  // console.log("calling get_tweets");
  get_tweets();
});
