
var maxCreatedOn = "0000-00-00 00:00:00";
var maxTwitterSearchResultId = '0';


function setMaxTwitterSearchResultId(twitterSearchResultId)
{
	if(twitterSearchResultId != '0')
	{
		maxTwitterSearchResultId = twitterSearchResultId;
	}
}
function getMaxTwitterSearchResultId()
{
	return maxTwitterSearchResultId;
}

function setMaxCreatedOn(createdOn)
{
	if(createdOn != '0000-00-00 00:00:00')
	{
		maxCreatedOn = createdOn;
	}
}
function getMaxCreatedOn()
{
	return maxCreatedOn;
}


$(document).ready(function(){
	
	function retrieveTweets(){
		var requestUrl = url + "twitter/getTweets";
		$.post(requestUrl , {} , function(responseText) {
			result = eval("(" + responseText + ")");
			$("#loadingContainer").remove();
			setMaxCreatedOn(result.maxCreatedOn);
			setMaxTwitterSearchResultId(result.maxTwitterSearchResultId);
			
			var tweets = result.tweets;
			tweets = tweets.reverse();
			var n = tweets.length;
			for(var i = 0; i < n ; i ++)
			{
				tweetHTML = getTweetHTML(i , tweets[i]);
				$(tweetHTML).appendTo("#tweetsContainer").animate({"height" : "toggle"} , 700 , function(){});
				// $("#tweetsContainer").append(tweetHTML);
			}
			
			setInterval(function(){
				refreshTweets();
			}, 5000);
			
			
		});
		
	};
	
	
	
	
	function getTweetHTML(index , tweet)
	{
		var twitterStatusUrl = 'http://twitter.com/home?status=';
		var replyUrl = twitterStatusUrl + "@"+tweet.fromUser;
		
		// take frist three charecters to match whether it is already RT
		var firstThreeChars = tweet.text.substring(0 , 3);
		if(firstThreeChars == "RT ")
		{	
			// its not yet retweeted
			var retweetUrl = twitterStatusUrl + tweet.text;
		}
		else
		{
			// its already retweeted to use same text
			var retweetUrl = twitterStatusUrl + "RT " + "@"+tweet.fromUser +": " + tweet.text;
		}
		var tweetHTML = '';
		tweetHTML  = '<div class="margT5px margB5px tweetContainer" id="tweetContainer_'+index+'" style="display:none;" >';
		tweetHTML += '<div class="floatLeft"><a href="#"><img src="'+ tweet.profileImageUrl +'" alt="" border="0"  width="30" height = "30" /></a></div>';
		tweetHTML += '<div class="colorYellow fontSize12px margL15 floatLeft overflowIt" style="width:200px"><b>'+ tweet.fromUser +'</b>: ';
		tweetHTML += '"'+ tweet.text +'"';
		tweetHTML += '<div class="margT5px textRight"><a target="_blank" href="'+replyUrl+'" class="fontSize12px colorGreen fontWeightB  aHover">Reply</a>&nbsp;&nbsp;<span class="fontSize12px colorGreen fontWeightB">|</span>&nbsp;&nbsp;<a target="_blank" href="'+retweetUrl+'" class="fontSize12px colorGreen fontWeightB  aHover">Retweet</a></div>';
		tweetHTML += '</div>';
        tweetHTML += '<div class="clearfloat"></div>';
        tweetHTML += '</div>';
        return tweetHTML;
	}
	
	// retrieveTweets();
	
	
	function refreshTweets()
	{
		var u = 'https:' == document.location.protocol ? secure_url : url;
		var requestUrl = u + "twitter/refreshTweets";
		$.post(requestUrl , {"since" : maxCreatedOn , "maxTwitterSearchResultId" : maxTwitterSearchResultId} , function(responseText) {
			result = eval("(" + responseText + ")");
			if(result.maxCreatedOn != '0000-00-00 00:00:00')
			{
				setMaxCreatedOn(result.maxCreatedOn);
			}
			setMaxTwitterSearchResultId(result.maxTwitterSearchResultId);
			var tweets = result.tweets;
			tweets = tweets.reverse();
			var n = tweets.length;
			for(var i = 0; i < n ; i ++)
			{
				tweetHTML = getTweetHTML(i , tweets[i]);
				$(".tweetContainer:last").animate({"height" : "toggle"} , 700 , function(){
					$(this).remove();
					$(tweetHTML).prependTo("#tweetsContainer").animate({"height" : "toggle"} , 700 , function(){});
					// $("#tweetsContainer").prepend(tweetHTML);
				});
				
			}
		});
	}
	
	setInterval(function(){
		refreshTweets();
	}, 300000);
	
	
});

