(function($){$.fn.twitterSearch=function(options){if(typeof options=='string')
options={term:options};return this.each(function(){var $frame=$(this);var opts=$.extend(true,{},$.fn.twitterSearch.defaults,options||{},$.metadata?$frame.metadata():{});opts.formatter=opts.formatter||$.fn.twitterSearch.formatter;opts.filter=opts.filter||$.fn.twitterSearch.filter;var url=opts.url+opts.term;if(!opts.applyStyles){for(var css in opts.css)
opts.css[css]={};}
if(opts.title===null)
opts.title=opts.term;opts.title=opts.title||'';var t=opts.titleLink?('<a href="'+opts.titleLink+'">'+opts.title+'</a>'):('<span>'+opts.title+'</span>');var $t=$(t);if(opts.titleLink)
$t.css(opts.css['titleLink']);var $title=$('<div class="twitterSearchTitle"></div>').append($t).appendTo($frame).css(opts.css['title']);if(opts.bird){var $b=$('<img class="twitterSearchBird" src="'+opts.birdSrc+'" />').appendTo($title).css(opts.css['bird']);if(opts.birdLink)
$b.wrap('<a href="'+opts.birdLink+'"></a>');}
var $cont=$('<div class="twitterSearchContainter"></div>').appendTo($frame).css(opts.css['container']);var cont=$cont[0];if(opts.colorExterior)
$title.css('background-color',opts.colorExterior);if(opts.colorInterior)
$cont.css('background-color',opts.colorInterior);$frame.css(opts.css['frame']);if(opts.colorExterior)
$frame.css('border-color',opts.colorExterior);var h=$frame.innerHeight()-$title.outerHeight();$cont.height(h);if(opts.pause)
$cont.hover(function(){cont.twitterSearchPause=true;},function(){cont.twitterSearchPause=false;});$('<div class="twitterSearchLoading">Loading tweets..</div>').css(opts.css['loading']).appendTo($cont);$.getJSONP({url:url,timeout:30000,error:function(xhr,status,e){failWhale(e);},success:function(json){if(json.error){failWhale(json.error);return;}
$cont.empty();$.each(json.results,function(i){if(!opts.filter.call(opts,this))
return;var tweet=opts.formatter(this,opts),$tweet=$(tweet);$tweet.css(opts.css['tweet']);var $img=$tweet.find('.twitterSearchProfileImg').css(opts.css['img']);$tweet.find('.twitterSearchUser').css(opts.css['user']);$tweet.find('.twitterSearchTime').css(opts.css['time']);$tweet.find('a').css(opts.css['a']);$tweet.appendTo($cont);var $text=$tweet.find('.twitterSearchText').css(opts.css['text']);if(opts.avatar){var w=$img.outerWidth()+parseInt($tweet.css('paddingLeft'));$text.css('paddingLeft',w);}});if(json.results.length<2)
return;setTimeout(go,opts.timeout);}});function failWhale(msg){var $fail=$('<div class="twitterSearchFail">'+msg+'</div>').css(opts.css['fail']);$cont.empty().append($fail);};function go(){if(cont.twitterSearchPause){setTimeout(go,500);return;}
var $el=$cont.children(':first'),el=$el[0];$el.animate(opts.animOut,opts.animOutSpeed,function(){var h=$el.outerHeight();$el.animate({marginTop:-h},opts.animInSpeed,function(){$el.css({marginTop:0,opacity:1});/*@cc_on
try{el.style.removeAttribute('filter');}
catch(smother){}
@*/$el.css(opts.css['tweet']).show().appendTo($cont);});setTimeout(go,opts.timeout);});}});};$.fn.twitterSearch.filter=function(tweet){return true;};$.fn.twitterSearch.formatter=function(json,opts){var t=json.text;if(opts.anchors){t=json.text.replace(/(http:\/\/\S+)/g,'<a href="$1">$1</a>');t=t.replace(/\@(\w+)/g,'<a href="http://twitter.com/$1">@$1</a>');}
var s='<div class="twitterSearchTweet">';if(opts.avatar)
s+='<img class="twitterSearchProfileImg" src="'+json.profile_image_url+'" />';s+='<div><span class="twitterSearchUser"><a href="http://www.twitter.com/'+json.from_user+'/status/'+json.id+'">'+json.from_user+'</a></span>';var d=prettyDate(json.created_at);if(opts.time&&d)
s+=' <span class="twitterSearchTime">('+d+')</span>'
s+='<div class="twitterSearchText">'+t+'</div></div></div>';return s;};$.getJSONP=function(s){s.dataType='jsonp';$.ajax(s);var $script=$(document.getElementsByTagName('head')[0].firstChild);var url=$script.attr('src')||'';var cb=(url.match(/callback=(\w+)/)||[])[1];if(!cb)
return;var t=0,cbFn=window[cb];$script[0].onerror=function(e){$script.remove();handleError(s,{},"error",e);clearTimeout(t);};if(!s.timeout)
return;window[cb]=function(json){clearTimeout(t);cbFn(json);cbFn=null;};t=setTimeout(function(){$script.remove();handleError(s,{},"timeout");if(cbFn)
window[cb]=function(){};},s.timeout);function handleError(s,o,msg,e){($.ajax.handleError||$.handleError)(s,o,msg,e);}};function prettyDate(time){var date=new Date((time||"").replace(/-/g,"/").replace(/TZ/g," ")),diff=(((new Date()).getTime()-date.getTime())/1000),day_diff=Math.floor(diff/86400);if(isNaN(day_diff)||day_diff<0||day_diff>=31)
return;var v=day_diff==0&&(diff<60&&"just now"||diff<120&&"1 minute ago"||diff<3600&&Math.floor(diff/60)+" minutes ago"||diff<7200&&"1 hour ago"||diff<86400&&Math.floor(diff/3600)+" hours ago")||day_diff==1&&"Yesterday"||day_diff<7&&day_diff+" days ago"||day_diff<31&&Math.ceil(day_diff/7)+" weeks ago";if(!v)
window.console&&console.log(time);return v?v:'';}})(jQuery);
