var idIndexes = {};
var lastStatusId;
var tweets = [];
var displayTimer = null;
var updateTimer = null;

function loadContents (data)
{
	appendTweets(data.results);
	if( ! tweets.length ){
		return;
	}
	
	if (!displayTimer)
	{
		displayContents();
		startAutoUpdate();
	}
	
}

function displayContents()
{
	var contents = $('<div />')
				   .attr( 'id', 'contents')
	for (var i =0 ; i < 30; i++)
	{
		
		if (tweets[i])
		{
		var tweet = tweets[i];
		var tweet_id = tweet.id;
		var userName =  tweet.from_user;
		var profileImage = tweet.profile_image_url;
		var timesAgo = jQuery.timeago(new Date(tweet.created_at))	
		var text = tweet.text;
		
		contents.append($( '<div />' )
						.append($( '<div />' )
						   .addClass('twit_img')
						   .append( $( '<img />' )
								.attr( 'src', profileImage )
								.addClass('profile_image' )
							)
						)
							.append( $( '<div />' )
								.addClass('twit_space')
								.append( $( '<div />' )
									.addClass('twit_right')
									.append( $( '<div />' )
										.addClass('twit_right_inner')
										.append($( '<div />' )
											.addClass('text_tweet')
											.html(text
													.replace(/</g,'&lt;')
													.replace(/>/g, '&gt;')
													.replace(/\"/g,'&quot;')
													.replace(/(http:\/\/[^\s]*)/g, '<a href="$1" target="_blank">$1</a>')
													.replace(/@([a-zA-Z0-9_]+)/g, '<a href="http://twitter.com/$1" target="_blank">@$1</a>')
													.replace(/#([\w\-]+)/g, '<a href="http://twitter.com/search?q=%23$1" target="_blank">#$1</a>')
											)
										)
										.append( $( '<div />' )
											.addClass('tweeter_name')
											.html('<div class="timeago" title="'+tweet.created_at+'">'+timesAgo+'</div><div class="left2">&nbsp;<img src="images/twit_logo.jpg" align="absmiddle"  />&nbsp;</div><div class="left3" ><div class="twit" >'+userName + '</div></div><div class="clear_sec"></div>'))
										.append( $( '<div />' )
											.addClass('clear_sec'))
										)
									.append( $( '<div />' )
									.append( $( '<img />' )
										.attr( 'src', 'images/twiting_03.jpg' )
										.attr( 'id', 'profile_image' )
									)
									)
								)
								.append( $( '<div />' )
									.addClass('clear_sec')
								)
							)
							.append( $( '<div />' )
								.addClass('clear_sec')
							)			
						);

		}
	}
	tweets.splice(0,30);
	var container = $('#tweet_container');

	container.append(contents);
	$("div.timeago").timeago();
}

function display()
{
	
	var tweet = tweets.shift();
	
	var tweet_id = tweet.id;
	if (tweet_id == null)
	{
		return;
	}
	var userName =  tweet.from_user;
	var profileImage = tweet.profile_image_url;	
	var created_at = tweet.created_at;

	if (isNaN(new Date(created_at)))
	{
		var arr = created_at.split(' ');
		
		created_at = arr[0]+','+arr[2]+' '+arr[1]+' '+arr[5]+' '+arr[3]+' '+arr[4];
	}
	var timesAgo = jQuery.timeago(new Date(created_at))
	var text = tweet.text;
	var contents = $('<div />');
	contents.append($( '<div />' )
						   .addClass('twit_img')
						   .append( $( '<img />' )
								.attr( 'src', profileImage )
								.addClass('profile_image' )
							)
					)
					.append( $( '<div />' )
						.addClass('twit_space')
						.append( $( '<div />' )
							.addClass('twit_right')
							.append( $( '<div />' )
								.addClass('twit_right_inner')
								.append($( '<div />' )
									.addClass('text_tweet')
									.html(text
											.replace(/</g,'&lt;')
											.replace(/>/g, '&gt;')
											.replace(/\"/g,'&quot;')
											.replace(/(http:\/\/[^\s]*)/g, '<a href="$1" target="_blank">$1</a>')
											.replace(/@([a-zA-Z0-9_]+)/g, '<a href="http://twitter.com/$1" target="_blank">@$1</a>')
											.replace(/#([\w\-]+)/g, '<a href="http://twitter.com/search?q=%23$1" target="_blank">#$1</a>')
									)
								)
								.append( $( '<div />' )
									.addClass('tweeter_name')
									.html('<div class="timeago" title="'+created_at+'">'+timesAgo+'</div><div class="left2">&nbsp;<img src="images/twit_logo.jpg" align="absmiddle"  />&nbsp;</div><div class="left3" ><div class="twit" >'+userName +'</div></div><div class="clear_sec"></div>'))
								.append( $( '<div />' )
									.addClass('clear_sec'))
								)
							.append( $( '<div />' )
							.append( $( '<img />' )
								.attr( 'src', 'images/twiting_03.jpg' )
								.attr( 'id', 'profile_image' )
							)
							)
						)
						.append( $( '<div />' )
							.addClass('clear_sec')
						)
					)
					.append( $( '<div />' )
						.addClass('clear_sec')
					);
					
					
					
	
	$(contents).css('display', 'none');
	if ($('#contents').length == 0)
	{
		var tweet_container = $('#tweet_container');
		tweet_container.append($('<div />')
						   .attr( 'id', 'contents')
							);
	}
	var container = $('#contents');

	if( container.children().length >= 30 ){
		
		$('#contents div:last').fadeOut( function(){
			$('#contents div:last').remove();
			container.prepend(contents);
			$(contents).fadeIn();
		} );
	}
	else
	{
		container.prepend(contents);
		$(contents).fadeIn();
	}	
	$("div.timeago").timeago();
}

function appendTweets( aTweets )
{
	if (!aTweets)
	{
		return;
	}
	if( aTweets.length ){
		//for( var i = aTweets.length - 1; i >= 0; i-- ){
		for( var i = 0; i < aTweets.length ; i++ ){
			var id = aTweets[i].id;
			if( ! idIndexes[id] ){
				tweets.push( aTweets[i] );
				idIndexes[id] = aTweets[i];
			}
		}
		lastStatusId = aTweets[0].id;
		
	}
}

function updateTweet( aTweet )
{
	//alert(aTweet);
	var id = aTweet.id;

	if( ! idIndexes[id] ){
		
		tweets.push( aTweet);
		idIndexes[id] = aTweet;
	}

	lastStatusId = aTweet.id;
	display();
}

function startAutoUpdate ()
{
	if (!updateTimer)
	{
		updateTimer = setInterval( function(){
			var scriptContent = $('<script />')
								.attr( 'src', TWITTER_SREACH_URL+'&since_id=' + lastStatusId )
								.attr( 'type', 'text/javascript');
			$('#loadscript').empty().append(scriptContent);
		}, 60000 );
	}
	
	if (!displayTimer)
	{
		displayTimer = setInterval( function(){
			if (tweets.length > 0)
			{
				display();
			}
		}, 1500 );
	}	
}


