/*
  	InovaBackchannel
    Gemaakt door: Rene Sebsatian
	Laatste wijziging: 21-05-2010 
    All rights by Inovamedia ? 2003-2010
  */

//Zet je variabelen vast voor de URLS en array data
var tweets	= new Array();
var from_users	= new Array();
var avatars	= new Array();
var url = "/uwfolderverspreiding.json";

//Pas als de html klaar is met laden:
$(document).ready( function() {
	timedCount();
} );

//Timeout functie voor het inladen van nieuwe tweets:
function timedCount() {
	load_tweets(); //Opnieuw je tweets inladen
	clean_tweets(); //Ga checken of er niet teveel tweets op je pagina staan
	t = setTimeout("timedCount()",5000); //Ga je tweets opnieuw inladen na 5 seconden
}

//Ga je tweets inladen
function load_tweets() {
	$.getJSON( url, process_tweets );
};

function replaceURLWithHTMLLinks(inputText) {
    //URLs starting with http://, https://, or ftp://
    var replacePattern1 = /(\b(https?|ftp):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gim;
    var replacedText = inputText.replace(replacePattern1, '<a href="$1" target="_blank">$1</a>');

    //URLs starting with www. (without // before it, or it'd re-link the ones done above)
    var replacePattern2 = /(^|[^\/])(www\.[\S]+(\b|$))/gim;
    var replacedText = replacedText.replace(replacePattern2, '$1<a href="http://$2" target="_blank">$2</a>');

    //Change email addresses to mailto:: links
    var replacePattern3 = /(\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,6})/gim;
    var replacedText = replacedText.replace(replacePattern3, '<a href="mailto:$1">$1</a>');

    return replacedText
}

//Verzamel je tweets en zet ze in een array:
function process_tweets( data ) {
	
	$.each( data.results, function( i, item ) {
  	if( item.text.length > 1 ) 
		{ 
		  tweets.push( item.text );
  		  from_users.push( item.from_user );
		  avatars.push( item.profile_image_url );
		  	
		}
	} );
	tweets.reverse();
	from_users.reverse();
	avatars.reverse();
	show_tweets();
	url = "/uwfolderverspreiding.json" + data.refresh_url;
};

//En ga je tweets zichtbaar maken
function show_tweets() {
	for( var i = 0; i < tweets.length; i++ ) {
		(function(){
			//Ga je tweet uit de array vissen
			var from_user = from_users[i]
			var tweet	= tweets[i];
			var avatar	= avatars[i];
			var count	= i + 1;
			if(from_user != 'kayleealissa'){
				setTimeout( function() { 
					$("#tweetlist").prepend( "<div class=\"tweet\"><img width=\"48\" height=\"48\" src=\"" + avatar +"\" ><span class=\"text\"><a href=\"http://www.twitter.com/" + from_user +"\">@" + from_user +"</a>: " + replaceURLWithHTMLLinks(tweet) + "</span></div>" ); 
	
					//Snelheid van infade van een tweet
					$("#tweetlist div").slideDown('slow');
				//Snelheid van tweet opvolging
				}, 300*count );
			}
		})();
	}
	
	//Gooi je arrays leeg om te voorkomen dat je dubbele tweets krijgt
	tweets	= new Array(); 
	from_users	= new Array();
	avatars	= new Array();
};

//Ga na of er al meer dan 30 tweets op de pagina staan, anders verwijderen!
function clean_tweets() {
	if ($('#tweetlist > div').size() >= 6) {
		$('#tweetlist div:last').slideUp('slow', function() {
			$(this).remove();
			clean_tweets();
		});
	}
}
