
var statusHTML =[];
var twittersLength;
var counter = 0;
var ein=0;

function twitterCallback2(twitters) {

    if (twitters.length > 5) {
        twittersLength = 5;
    }
    else {
        twittersLength = twitters.length;
    }

	  for (var i = 0; i < twittersLength; i++) 
      {      		
		var username = twitters[i].user.screen_name;
		var status = twitters[i].text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function(url) {
		  return '<a href="'+url+'">'+url+'</a>';
		}).replace(/\B@([_a-z0-9]+)/ig, function(reply) {
		  return  reply.charAt(0)+'<a href="http://twitter.com/'+reply.substring(1)+'">'+reply.substring(1)+'</a>';
		}).replace(/\B#([_a-z0-9]+)/ig, function(hashtag) {
		  return '<a href="http://twitter.com/search?q=%23'+hashtag.substring(1)+'">'+hashtag+'</a>';
		});	
		statusHTML.push('<span>'+status+'</span> <a style="font-size:85%" href="http://twitter.com/'+username+'/statuses/'+twitters[i].id_str+'">'+relative_time(twitters[i].created_at)+'</a>');
	  }
	  execute(0);
}
 
 
 
 function execute(i){
	if(i==0) //executed by timeout
	{
		ein = setTimeout(function(){execute(0);},7000); 
		if(counter < twittersLength-1)
			counter += 1;
		else 
			counter = 0;
	}else
	{
		clearTimeout(ein);
		if (i==-1) //press button up
		{
			if (counter == 0)
			{
				counter = twittersLength-1;
				ein = setTimeout(function(){execute(0);},7000);
			}
			else if (counter> 0)
			{
				counter += i;
				ein = setTimeout(function(){execute(0);},7000);
			}
		}
		else //press button down
		{
			if(counter < twittersLength-1)
			{
				counter += i;			
				ein = setTimeout(function(){execute(0);},7000);
			}
			else 
			{
				counter = 0;
				ein = setTimeout(function(){execute(0);},7000);
			}
							
		}
	}			
	document.getElementById('twitter_update_list').innerHTML = statusHTML[counter];				
}

 
function relative_time(time_value) {
	  var values = time_value.split(" ");
	  time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
	  var parsed_date = Date.parse(time_value);
	  var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
	  var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
	  delta = delta + (relative_to.getTimezoneOffset() * 60);

	  if (delta < 60) {
		return 'less than a minute ago';
	  } else if(delta < 120) {
		return 'about a minute ago';
	  } else if(delta < (60*60)) {
		return (parseInt(delta / 60)).toString() + ' minutes ago';
	  } else if(delta < (120*60)) {
		return 'about an hour ago';
	  } else if(delta < (24*60*60)) {
		return 'about ' + (parseInt(delta / 3600)).toString() + ' hours ago';
	  } else if(delta < (48*60*60)) {
		return '1 day ago';
	  } else {
		return (parseInt(delta / 86400)).toString() + ' days ago';
	  }
}
