(function(n){n.fn.tweet=function(t){function r(n,t){var i,u,r;if(typeof n=="string"){i=n;for(u in t)r=t[u],i=i.replace(new RegExp("{"+u+"}","g"),r===null?"":r);return i}return n(t)}function u(t,i){return function(){var r=[];return this.each(function(){r.push(this.replace(t,i))}),n(r)}}function h(n){return Date.parse(n.replace(/^([a-z]{3})( [a-z]{3} \d\d?)(.*)( \d{4})$/i,"$1,$2$4$3"))}function c(n){var r=arguments.length>1?arguments[1]:new Date,t=parseInt((r.getTime()-n)/1e3,10),i="";return i=t<60?t+" seconds ago":t<120?"a minute ago":t<2700?parseInt(t/60,10).toString()+" minutes ago":t<7200?"an hour ago":t<86400?""+parseInt(t/3600,10).toString()+" hours ago":t<172800?"a day ago":parseInt(t/86400,10).toString()+" days ago","about "+i}function l(n){return n.match(/^(@([A-Za-z0-9-_]+)) .*/i)?i.auto_join_text_reply:n.match(f)?i.auto_join_text_url:n.match(/^((\w+ed)|just) .*/im)?i.auto_join_text_ed:n.match(/^(\w*ing) .*/i)?i.auto_join_text_ing:i.auto_join_text_default}function e(n){return"https:"==document.location.protocol?n.replace(/^http:/,"https:"):n}function o(){var t="https:"==document.location.protocol?"https:":"http:",n=i.fetch===null?i.count:i.fetch,r;return i.list?t+"//"+i.twitter_api_url+"/1/"+i.username[0]+"/lists/"+i.list+"/statuses.json?page="+i.page+"&per_page="+n+"&callback=?":i.favorites?t+"//"+i.twitter_api_url+"/favorites/"+i.username[0]+".json?page="+i.page+"&count="+n+"&callback=?":i.query===null&&i.username.length==1?t+"//"+i.twitter_api_url+"/1/statuses/user_timeline.json?screen_name="+i.username[0]+"&count="+n+(i.retweets?"&include_rts=1":"")+"&page="+i.page+"&callback=?":(r=i.query||"from:"+i.username.join(" OR from:"),t+"//"+i.twitter_search_url+"/search.json?&q="+encodeURIComponent(r)+"&rpp="+n+"&page="+i.page+"&callback=?")}function s(t){var u={};return u.item=t,u.source=t.source,u.screen_name=t.from_user||t.user.screen_name,u.avatar_size=i.avatar_size,u.avatar_url=e(t.profile_image_url||t.user.profile_image_url),u.retweet=typeof t.retweeted_status!="undefined",u.tweet_time=h(t.created_at),u.join_text=i.join_text=="auto"?l(t.text):i.join_text,u.tweet_id=t.id_str,u.twitter_base="http://"+i.twitter_url+"/",u.user_url=u.twitter_base+u.screen_name,u.tweet_url=u.user_url+"/status/"+u.tweet_id,u.reply_url=u.twitter_base+"intent/tweet?in_reply_to="+u.tweet_id,u.retweet_url=u.twitter_base+"intent/retweet?tweet_id="+u.tweet_id,u.favorite_url=u.twitter_base+"intent/favorite?tweet_id="+u.tweet_id,u.retweeted_screen_name=u.retweet&&t.retweeted_status.user.screen_name,u.tweet_relative_time=c(u.tweet_time),u.tweet_raw_text=u.retweet?"RT @"+u.retweeted_screen_name+" "+t.retweeted_status.text:t.text,u.tweet_text=n([u.tweet_raw_text]).linkUrl().linkUser().linkHash()[0],u.tweet_text_fancy=n([u.tweet_text]).makeHeart().capAwesome().capEpic()[0],u.user=r('<a class="tweet_user" href="{user_url}" target="_blank">{screen_name}</a>',u),u.join=i.join_text?r(' <span class="tweet_join">{join_text}</span> ',u):" ",u.avatar=u.avatar_size?r('<a class="tweet_avatar" href="{user_url}" target="_blank"><img src="{avatar_url}" height="{avatar_size}" width="{avatar_size}" alt="{screen_name}\'s avatar" title="{screen_name}\'s avatar" border="0"/></a>',u):"",u.time=r('<span class="tweet_time"><a href="{tweet_url}" title="view tweet on twitter" target="_blank">{tweet_relative_time}</a></span>',u),u.text=r('<span class="tweet_text">{tweet_text_fancy}</span>',u),u.reply_action=r('<a class="tweet_action tweet_reply" href="{reply_url}" target="_blank">reply</a>',u),u.retweet_action=r('<a class="tweet_action tweet_retweet" href="{retweet_url}" target="_blank">retweet</a>',u),u.favorite_action=r('<a class="tweet_action tweet_favorite" href="{favorite_url}" target="_blank">favorite</a>',u),u}var i=n.extend({username:null,list:null,favorites:!1,query:null,avatar_size:null,count:3,fetch:null,page:1,retweets:!0,intro_text:null,outro_text:null,join_text:null,auto_join_text_default:"i said,",auto_join_text_ed:"i",auto_join_text_ing:"i am",auto_join_text_reply:"i replied to",auto_join_text_url:"i was looking at",loading_text:null,refresh_interval:null,twitter_url:"twitter.com",twitter_api_url:"api.twitter.com",twitter_search_url:"search.twitter.com",template:"{avatar}{time}{join}{text}",comparator:function(n,t){return t.tweet_time-n.tweet_time},filter:function(){return!0}},t),f=/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/gi;return n.extend({tweet:{t:r}}),n.fn.extend({linkUrl:u(f,function(n){var t=/^[a-z]+:/i.test(n)?n:"http://"+n;return'<a href="'+t+'" target="_blank">'+n+"</a>"}),linkUser:u(/@(\w+)/gi,'@<a href="http://'+i.twitter_url+'/$1" target="_blank">$1</a>'),linkHash:u(/(?:^| )[\#]+([\w\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u00ff\u0600-\u06ff]+)/gi,' <a href="http://'+i.twitter_search_url+"/search?q=&tag=$1&lang=all"+(i.username&&i.username.length==1?"&from="+i.username.join("%2BOR%2B"):"")+'" target="_blank">#$1</a>'),capAwesome:u(/\b(awesome)\b/gi,'<span class="awesome">$1</span>'),capEpic:u(/\b(epic)\b/gi,'<span class="epic">$1</span>'),makeHeart:u(/(&lt;)+[3]/gi,"<tt class='heart'>&#x2665;</tt>")}),this.each(function(t,u){var f=n('<ul class="tweet_list">').appendTo(u),h='<p class="tweet_intro">'+i.intro_text+"</p>",c='<p class="tweet_outro">'+i.outro_text+"</p>",e=n('<p class="loading">'+i.loading_text+"</p>");i.username&&typeof i.username=="string"&&(i.username=[i.username]),i.loading_text&&n(u).append(e),n(u).bind("tweet:load",function(){n.getJSON(o(),function(t){i.loading_text&&e.remove(),i.intro_text&&f.before(h),f.empty();var o=n.map(t.results||t,s);o=n.grep(o,i.filter).sort(i.comparator).slice(0,i.count),f.append(n.map(o,function(n){return"<li>"+r(i.template,n)+"</li>"}).join("")).children("li:first").addClass("tweet_first").end().children("li:odd").addClass("tweet_even").end().children("li:even").addClass("tweet_odd"),i.outro_text&&f.after(c),n(u).trigger("loaded").trigger(o.length===0?"empty":"full"),i.refresh_interval&&window.setTimeout(function(){n(u).trigger("tweet:load")},1e3*i.refresh_interval)})}).trigger("tweet:load")})}})(jQuery)
