var tweetUsers = ['quoimaligne','metropaname','ligne_de_vie','ratp_users','alertes_rer_a'];

// Compte des utilisateurs à récupéré

var buildString = "";

$(document).ready(function(){

 // Une fois la page chargé ...

 $('#twitter-ticker').slideDown('slow');
 // Affichage du bandeau

 for(var i=0;i<tweetUsers.length;i++)
 {
 // Création des paramètre de recherche de l'API
 if(i!=0) buildString+='+OR+';
 buildString+='from:'+tweetUsers[i];
 }

 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);
});

function TweetTick(ob)
{
 // CallBack

 var container=$('#tweet-container');
 container.html('');
 // Suppression de l'animation de chargement

 $(ob.results).each(function(el){

 // l'objet ob contient les actualités à afficher

 var str = '    <div class="tweet">\
 <div class="avatar"><a href="http://twitter.com/'+this.from_user+'" target="_blank"><img src="'+this.profile_image_url+'" alt="'+this.from_user+'" /></a></div>\
 <div class="user"><a href="http://twitter.com/'+this.from_user+'" target="_blank">'+this.from_user+'</a></div>\
 <div class="time">'+relativeTime(this.created_at)+'</div>\
 <div class="txt">'+formatTwitString(this.text)+'</div>\
 </div>';

 container.append(str);
 // Ajout des actualités html au conteneur
 });

 container.jScrollPane();
 // Une fois les actualités chargées, ajouté la barre de défilement
}

function formatTwitString(str)
{
 // Formattage du texte des actualités

 str=' '+str;

 str = str.replace(/((ftp|https?):\/\/([-\w\.]+)+(:\d+)?(\/([\w/_\.]*(\?\S+)?)?)?)/gm,'<a href="/$1" target="_blank">$1</a>');
 // L'actualité twitter arrive comme un text, nous allons remplacer toute les URL du texte par des hyperliens

 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)
{
 // Génération de la période de "rechargement" automatique des actualitées

 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 "Maintenant";
 if(difference <= 20)            return "Il y a quelques secondes";
 if(difference <= 60)            return "Il y a une minute";
 if(difference < 3600)        return parseInt(difference/60)+" minutes avant";
 if(difference <= 1.5*3600)     return "Il y a 1 heure";
 if(difference < 23.5*3600)    return Math.round(difference/3600)+" heures avant";
 if(difference < 1.5*24*3600)    return "Il y a 1 journée";

 var dateArr = pastTime.split(' ');

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