(function($){$.fn.facebookWall=function(options){options=options||{};if(!options.id){throw new Error('You need to provide an user/page id!');}
options=$.extend({limit:15},options);var ssl=('https:'==document.location.protocol?'&return_ssl_resources=1':'');var graphUSER='https://graph.facebook.com/'+options.id+'/?fields=name,picture&callback=?'+ssl,graphPOSTS='https://graph.facebook.com/'+options.id+'/posts/?callback=?&date_format=U&limit='+options.limit+ssl;var wall=this;$.when($.getJSON(graphUSER),$.getJSON(graphPOSTS)).done(function(user,posts){var fb={user:user[0],posts:[]};$.each(posts[0].data,function(){if((this.type!='link'&&this.type!='status')||!this.message){return true;}
this.from.picture=fb.user.picture;this.created_time=relativeTime(this.created_time*1000);this.message=urlHyperlinks(this.message);fb.posts.push(this);});$('#headingTpl').tmpl(fb.user).appendTo(wall);var ul=$('<ul>').appendTo(wall);$('#feedTpl').tmpl(fb.posts).appendTo(ul);});return this;};function urlHyperlinks(str){return str.replace(/\b((http|https):\/\/\S+)/g,'<a href="$1" target="_blank">$1</a>');}
function relativeTime(time){var period=new Date(time);var delta=new Date()-period;if(delta<=10000){return'Just now';}
var units=null;var conversions={millisecond:1,second:1000,minute:60,hour:60,day:24,month:30,year:12};for(var key in conversions){if(delta<conversions[key]){break;}
else{units=key;delta=delta/conversions[key];}}
delta=Math.floor(delta);if(delta!==1){units+='s';}
return[delta,units,"ago"].join(' ');}})(jQuery);
