//source: http://tutorialzine.com/2009/10/jquery-twitter-ticker/

// The twitter accounts that will be included in the ticker
var tweetUsers = ['ceesmorsch'];
// The number of tweets displayed
var numbTweets = 4;

var buildString = "";

var pause = 10000;
var speed = 500;

$(document).ready(function(){

	// After the page is loaded
	for(var i=0;i<tweetUsers.length;i++)
	{
		// Build the search api parameters
		if(i!=0) buildString+='+OR+';
		buildString+='from:'+tweetUsers[i];
	}

	var fileref = document.createElement('script');
	// Creating a new script element

	fileref.setAttribute("type","text/javascript");
	fileref.setAttribute("src", "http://search.twitter.com/search.json?q="+buildString+"&callback=TweetTick&rpp="+numbTweets+"");
	// Setting its src to the search API URL; We provide TweetTick as a callback

	document.getElementsByTagName("head")[0].appendChild(fileref);
	// Appending it to the head of the page and thus executing it

});

function TweetTick(ob)
{
	// This is the callback function
	var container=$('#tweets');
	container.html('');
	// Removing load

	$(ob.results).each(function(){
		var str = ' <li class="news"><a href="http://twitter.com/'+this.from_user+'/status/'+this.id+'" rel="external">\
                        '+formatTwitString(this.text)+'</a>\
                    </li>';

		container.append(str);
		// Adding the tweet to the container
	});
    
	setInterval(tick, pause);
}

function tick() {
        var first = 0;
        first = $('ul#tweets li:first').html();
        $('ul#tweets li:first').animate({
            opacity: 0
        },
        speed).fadeOut('medium', function () {
            $(this).remove();
            
            last = '<li class="news">' + first + '</li>';
            $('ul#tweets').append(last);
        });
    }

function formatTwitString(str)
{
	// This function formats the tweet body text

	str=' '+str;

	str = str.replace(/((ftp|https?):\/\/([-\w\.]+)+(:\d+)?(\/([\w/_\.]*(\?\S+)?)?)?)/gm,'<a href="$1" target="_blank">$1</a>');
	// The tweets arrive as plain text, so we replace all the textual URLs with hyperlinks

	str = str.replace(/([^\w])\@([\w\-]+)/gm,'$1@<a href="http://twitter.com/$2" target="_blank">$2</a>');
	// Replace the mentions

	str = str.replace(/([^\w])\#([\w\-]+)/gm,'$1<a href="http://twitter.com/search?q=%23$2" target="_blank">#$2</a>');
	// Replace the hashtags

	return str;
}

function relativeTime(pastTime)
{
	// Generate a JavaScript relative time for the tweets

	var origStamp = Date.parse(pastTime);
	var curDate = new Date();
	var currentStamp = curDate.getTime();
	var difference = parseInt((currentStamp - origStamp)/1000);

	if(difference < 0) return false;

	if(difference <= 5)			return "Just now";
	if(difference <= 20)			return "Seconds ago";
	if(difference <= 60)			return "A minute ago";
	if(difference < 3600)		return parseInt(difference/60)+" minutes ago";
	if(difference <= 1.5*3600) 	return "One hour ago";
	if(difference < 23.5*3600)	return Math.round(difference/3600)+" hours ago";
	if(difference < 1.5*24*3600)	return "One day ago";

	// If the tweet is older than a day, show an absolute date/time value;

	var dateArr = pastTime.split(' ');

	return dateArr[4].replace(/\:\d+$/,'')+' '+dateArr[2]+' '+dateArr[1]+
	(dateArr[3]!=curDate.getFullYear()?' '+dateArr[3]:'');
}