// festival

var tweetUsers = [];
var buildString = "transeuropa";


function myGetTime() {
    var dd = new Date();
    var hh = dd.getHours();
    var mm = dd.getMinutes();
    var ss = dd.getSeconds();
    return(mm + ":" + ss);
}

//var t=setInterval("carica_tweet('"+buildString+"')",5000);

function carica_tweet() {

//alert('d');

//document.getElementById('debug').innerHTML = myGetTime();

	/*
	for(var i=0;i<tweetUsers.length;i++)
	{
		if(i!=0) buildString+='+OR+';
		buildString+='from:'+tweetUsers[i];
	}
	*/
	
	buildString = document.getElementById('nome_canale_twitter').innerHTML;
	
	var container=$('#tweet-container');
	container.html('<br><center><img src="/festival/images/loading.gif"></center>');
	
	
	var fileref = document.createElement('script');

	fileref.setAttribute("type","text/javascript");
	fileref.setAttribute("src", "http://search.twitter.com/search.json?q="+buildString+"&callback=TweetTick&rpp=50");
	
	document.getElementsByTagName("head")[0].appendChild(fileref);
  //fileref.parentNode.removeChild(fileref);
  
  //setTimeout ("rimuovi_file("+fileref+")",3000);
  
  //clearTimeout(t);
  // var t=setTimeout("carica_tweet('"+buildString+"')",10000);
  
}

function rimuovi_file(){
	fileref.parentNode.removeChild(fileref);
}

function funzione_sort_date (a, b) {

	var da = new Date(a['full_time']);
	var db = new Date(b['full_time']);
	
	var tsa = da.getTime();
	var tsb = db.getTime();

  if ( tsa > tsb )
    return -1;
  if ( tsa < tsb )
    return 1;
  return 0; // a == b
}

var ticker_array = [];

function TweetTick(ob) {

	ticker_array.splice(0,ticker_array.length);

  var immagine_profilo;
  var tweet_array = [];
  var email_array = [];
	
	$(ob.results).each(function(el){
	
		if (this.profile_image_url=='http://static.twitter.com/images/default_profile_normal.png') {
	    immagine_profilo = '/festival/images/default_profile_normal.png';
	  } else {
	    immagine_profilo = this.profile_image_url;
	  }
		
		var tweet = [];
		tweet['type']='tweet';
		tweet['from_user']=this.from_user;
		tweet['immagine_profilo']=immagine_profilo;
		tweet['full_time']=this.created_at;
		tweet['time']=relativeTime(this.created_at);
		tweet['text']=formatTwitString(this.text);
		
		//alert(tweet['from_user']);
		ticker_array.push(tweet);

	});
	
	//alert($('#cambia_twitter').html());
	
	$.ajax({
		url: '/festival/email_json.php',
		dataType: "json",
		success: function(e) {

			for (i in e) {
				var email = [];
				email['type']='email';
				email['from_user']=e[i]['from'];
				email['immagine_profilo']='/festival/images/default_profile_normal.png';
				email['full_time']=e[i]['date'];
				email['time']=relativeTime(e[i]['date']);
				email['text']=e[i]['message'];
				ticker_array.push(email);
			}
			
			// Ordinare array;
			ticker_array.sort(funzione_sort_date);
			//alert(dump(ticker_array));
			
			Tick_show();
		},
	  error: function(xhr, textStatus, errorThrown){
	    Tick_show();
	  }

	});
	
	//Tick_show();

}

function Tick_show()
{

	var container=$('#tweet-container');
	container.html('');

	for (i in ticker_array) {
		if (ticker_array[i]['type']=='tweet') link='http://twitter.com/'+ticker_array[i]['from_user'];
		else link='';
		var str = '	<div class="tweet">\
					<div class="avatar"><a href="'+link+'" target="_blank"><img src="'+ticker_array[i]['immagine_profilo']+'" width=36 height=36 /></a></div>\
					<div class="user"><a href="'+link+'" target="_blank">'+ticker_array[i]['from_user']+'</a><br><img src="/images/flags/undefined.png"></div>\
					<div class="time">'+ticker_array[i]['time']+'</div>\
					<div class="txt">'+ticker_array[i]['text']+'</div>\
					</div>';
		
		container.append(str);
	
	};
	
	container.jScrollPane();
}

function formatTwitString(str)
{
	str=' '+str;
	str = str.replace(/((ftp|https?):\/\/([-\w\.]+)+(:\d+)?(\/([\w/_\.]*(\?\S+)?)?)?)/gm,'<a href="$1" target="_blank">$1</a>');
	str = str.replace(/([^\w])\@([\w\-]+)/gm,'$1@<a href="http://twitter.com/$2" target="_blank">$2</a>');
	str = str.replace(/([^\w])\#([\w\-]+)/gm,'$1<a href="http://twitter.com/search?q=%23$2" target="_blank">#$2</a>');
	return str;
}

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

	//return false;

	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";
	
	var dateArr = pastTime.split(' ');
	return dateArr[4].replace(/\:\d+$/,'')+' '+dateArr[2]+' '+dateArr[1]+(dateArr[3]!=curDate.getFullYear()?' '+dateArr[3]:'');
}
