function TweetTick(ob) {

   var $container = $(containerId);
   $container.html('');

   $(ob.results).each(function(el) {

      var el = '<article>\
                   <a href="http://twitter.com/'+this.from_user+'"><img src="'+this.profile_image_url+'" alt="Avatar van '+this.from_user+'" /></a>\
                   <header>\
                      <strong><a href="http://twitter.com/'+this.from_user+'">'+this.from_user+'</a></strong>:\
                   </header>\
                   <blockquote>'+formatTwitString(this.text)+'</blockquote>\
                   <footer>\
                      <time datetime="'+dateTime(this.created_at)+'" pubdate="pubdate">'+relativeTime(this.created_at)+'</time>\
                   </footer>\
                </article>';

      $el = window.innerShiv ? $(innerShiv(el, false)) : $(el);

      $el.find('a').click(function() { window.open($(this).attr('href')); return false; });

      $container.append($el);

   });

   $container.jScrollPane();
}

function relativeTime(pastTime) {

   var months = Array('januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december');

   var origDate = new Date(pastTime);
   var origStamp = Date.parse(pastTime);
   var curDate = new Date();
   var curStamp = curDate.getTime();

   var difference = parseInt((curStamp - origStamp)/1000);

   if(difference < 0) return false;

   if(difference <= 5)          return 'Zojuist';
   if(difference <= 20)         return 'Seconden geleden';
   if(difference <= 60)         return 'Een minuut geleden';
   if(difference < 3600)        return parseInt(difference/60)+' minuten geleden';
   if(difference <= 1.5*3600)   return 'Een uur geleden';
   if(difference < 23.5*3600)   return Math.round(difference/3600)+' uur geleden';
   if(difference < 1.5*24*3600) return 'Gisteren';

   return origDate.getDate()+' '+months[origDate.getMonth()]+'<small> om '+('0'+(origDate.getHours())).substr(-2, 2)+':'+('0'+(origDate.getMinutes())).substr(-2, 2)+'</small>';
}

function dateTime(dateStr) {

   var pubDate = new Date(dateStr);

   var y = pubDate.getFullYear();
   var m = ('0'+(pubDate.getMonth()+1)).substr(-2, 2);
   var d = ('0'+(pubDate.getDate())).substr(-2, 2);
   var h = ('0'+(pubDate.getHours())).substr(-2, 2);
   var i = ('0'+(pubDate.getMinutes())).substr(-2, 2);
   var s = ('0'+(pubDate.getSeconds())).substr(-2, 2);
   var z = dateStr.substr(Math.max(dateStr.lastIndexOf('+'), dateStr.lastIndexOf('-')), 3)+':00';

   return y+'-'+m+'-'+d+'T'+h+':'+m+':'+s+z;
}

function formatTwitString(str) {
  str = ' '+str;
  str = str.replace(/((ftp|https?):\/\/([-\w\.]+)+(:\d+)?(\/([\w/_\.]*(\?\S+)?)?)?)/gm,'<a href="$1">$1</a>');
  str = str.replace(/([^\w])\@([\w\-]+)/gm,'$1@<a href="http://twitter.com/$2">$2</a>');
  str = str.replace(/([^\w])\#([\w\-]+)/gm,'$1<a href="http://twitter.com/search?q=%23$2">#$2</a>');
  return str;
}
