/*
* Funciones para la muestra de tweets del home.
* Por: Dinamix Studio (http://www.dinamixstudio.com/)
* Author: Juan Marcos Rigoli (rigoli82@gmail.com)
*/

function setScroller(text) {
	var $scroller = $('#tweets .scroller');
	$scroller.stop(); // Cortamos el scroll
	$scroller.html(text);
	loopScroller();
}

function loopScroller() {
	var $tweets = $('#tweets');
	var $scroller = $('.scroller', $tweets);
	var duration = 3000 + stripTags($scroller.html()).length * 150; // Tres segundos más una décima de segundo por letra.
	$scroller
		.css('left', $tweets.width())
		.animate({left: '-' + $scroller.width() + 'px'}, { queue: false, duration: duration, easing: 'linear', complete: function () { loopScroller() } });
		
	return true;			
}

function nextTweet() {
	var $tweetlist = $('#tweetlist li');
	if ($tweetlist.size() == 0)
		return false;
		
	// usamos una especie de "variable estática" para guardar la posición del tweet actual
	if( typeof nextTweet.current == 'undefined' )
		nextTweet.current = 0;
	else
		nextTweet.current++;

	if (nextTweet.current >= $tweetlist.size())
		nextTweet.current = nextTweet.current % $tweetlist.size();
	
	var tweet = $tweetlist.eq(nextTweet.current).html();
	return setScroller(tweet);
}

function URL2Link(text) {
    var exp = /(\b(https?|ftp|file):[^\s]*)/gi;
    return text.replace(exp,"<a href='$1' target=\"_blank\" >$1</a>"); 
}

function parseTweet(text) {
    var exp = /([@]+[^\s]*)/gi;
    return text.replace(exp, function (s) {
		var username = s.replace("@","");
		return '<a href="http://www.twitter.com/' + username + '" target=\"_blank\" >' + s + '</a>';
	}); 
}

function stripTags(s) {
    return s.replace(/<\/?[^>]+>/gi, '');
}

function setupTweets(tweets) {
	var list = '<ul id="tweetlist" style="display: none">';
	for(var i=0; i<tweets.length;i++) {
		var text = tweets[i].text;
		text = URL2Link(text);
		text = parseTweet(text);
		list += '<li>' + text + '</li>'
	}
	list += '</ul>';
	$('body').append(list);
	
	nextTweet();
}
