(function($){var o,self,tweets=[],hasError=false,getRequestURL=function(type,value){var url,buffer=10;value=value.replace(/^\s+|\s+$/,"");value=escape(value);if(type=="user"){url="http://twitter.com/status/user_timeline/"+value+".json?count="+(o.amount+buffer)+"&include_rts=1"}else{if(type=="search"){url="http://search.twitter.com/search.json?q="+value+"&include_rts=1&rpp="+(o.amount+buffer)}}return url},getTimeString=function(timestamp){var d=new Date(timestamp.replace(/^\w+ (\w+) (\d+) ([\d:]+) \+0000 (\d+)$/,"$1 $2 $4 $3 UTC")),parsedDate=Date.parse(d);if(o.time=="relative"){var relativeTo=(arguments.length>1)?arguments[1]:new Date(),delta=parseInt((relativeTo.getTime()-parsedDate)/1000);if(delta<60){return"Minder dan een minuut geleden"}else{if(delta<120){return"Ongeveer een minuut geleden"}else{if(delta<(45*60)){return"Ongeveer "+(parseInt(delta/60)).toString()+" minuten geleden"}else{if(delta<(90*60)){return"Ongeveer een uur geleden"}else{if(delta<(24*60*60)){return"Ongeveer "+(parseInt(delta/3600)).toString()+" uur geleden"}else{if(delta<(48*60*60)){return"Ongeveer een dag geleden"}else{return"Ongeveer "+(parseInt(delta/86400)).toString()+" dagen geleden"}}}}}}}else{if(o.time=="timestamp"){return d.format(o.timeFormat)}}},parseLinks=function(text){text=text.replace(/(ftp|http|https|file):\/\/[\S]+(\b|$)/gim,'<a href="$&" class="linkHttp" target="_blank">$&</a>').replace(/([^\/])(www[\S]+(\b|$))/gim,'$1<a href="http://$2" class="link" target="_blank">$2</a>');text=text.replace(/(\#)[\S]+(\b|$)/gim,'<a href="http://twitter.com/#!/search/$&" class="linkHash" target="_blank">$&</a>').replace(/(search\/\#)/gim,"search/%23");text=text.replace(/(\@)[\S]+(\b|$)/gim,'<a href="http://twitter.com/$&" class="linkAt" target="_blank">$&</a>');return text},parseDate=function(timestamp){var d=new Date(timestamp.replace(/^\w+ (\w+) (\d+) ([\d:]+) \+0000 (\d+)$/,"$1 $2 $4 $3 UTC"));return Date.parse(d)},onStart=function(){self.append(o.loadingElement)},onSuccess=function(data){if(data.results){data=data.results}$.merge(tweets,data)},onError=function(){$(o.loadingTarget,self).html(o.noConnectionString);hasError=true},onComplete=function(){hasError=hasError||(tweets.length==0);if(hasError==false){$(o.loadingTarget,self).remove()}tweets.sort(function(a,b){var dateA=parseDate(a.created_at);var dateB=parseDate(b.created_at);return(dateB-dateA)});_process()},_init=function(){var requests=0,accounts;if(o.account!==null){accounts=o.account.split(",");requests=(requests+accounts.length)}if(o.searchWords!==null){requests=(requests+1)}var requestQueueLength=requests;for(var i=0;i<requests;i++){var first=(i==0),last=(i==(requests-1)),type,value;if(o.searchWords!==null&&last==true){type="search",value=o.searchWords}else{type="user",value=accounts[i]}$.ajax({beforeSend:(first?o.onStart:function(){}),success:o.onSuccess,error:o.onError,complete:function(){requestQueueLength=(requestQueueLength-1);if(requestQueueLength<=0){o.onComplete()}},url:getRequestURL(type,value),dataType:"jsonp"})}},_process=function(){if(tweets.length==0){$(o.loadingTarget,self).html(o.noResultsString)}else{$.each(tweets,function(i,tweet){if(i>=o.amount){return false}var tweetElement=$(o.tweetElement),text=tweet.text;if(o.parseLinks){text=parseLinks(text)}$(o.tweetTarget,tweetElement).html(text);if(tweet.profile_image_url){$(o.imageTarget,tweetElement).html('<img src="'+tweet.profile_image_url+'" />')}else{if(tweet.user&&tweet.user.profile_image_url){$(o.imageTarget,tweetElement).html('<img src="'+tweet.user.profile_image_url+'" />')}}if(o.time!="hidden"&&o.time!=false){$(o.timeTarget,tweetElement).html(getTimeString(tweet.created_at))}self.append(tweetElement)})}},dateFormat=function(){var token=/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,timezone=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,timezoneClip=/[^-+\dA-Z]/g,pad=function(val,len){val=String(val);len=len||2;while(val.length<len){val="0"+val}return val};return function(date,mask,utc){var dF=dateFormat;if(arguments.length==1&&Object.prototype.toString.call(date)=="[object String]"&&!/\d/.test(date)){mask=date;date=undefined}date=date?new Date(date):new Date;if(isNaN(date)){throw SyntaxError("invalid date")}mask=String(dF.masks[mask]||mask||dF.masks["default"]);if(mask.slice(0,4)=="UTC:"){mask=mask.slice(4);utc=true}var _=utc?"getUTC":"get",d=date[_+"Date"](),D=date[_+"Day"](),m=date[_+"Month"](),y=date[_+"FullYear"](),H=date[_+"Hours"](),M=date[_+"Minutes"](),s=date[_+"Seconds"](),L=date[_+"Milliseconds"](),o=utc?0:date.getTimezoneOffset(),flags={d:d,dd:pad(d),ddd:dF.i18n.dayNames[D],dddd:dF.i18n.dayNames[D+7],m:m+1,mm:pad(m+1),mmm:dF.i18n.monthNames[m],mmmm:dF.i18n.monthNames[m+12],yy:String(y).slice(2),yyyy:y,h:H%12||12,hh:pad(H%12||12),H:H,HH:pad(H),M:M,MM:pad(M),s:s,ss:pad(s),l:pad(L,3),L:pad(L>99?Math.round(L/10):L),t:H<12?"a":"p",tt:H<12?"am":"pm",T:H<12?"A":"P",TT:H<12?"AM":"PM",Z:utc?"UTC":(String(date).match(timezone)||[""]).pop().replace(timezoneClip,""),o:(o>0?"-":"+")+pad(Math.floor(Math.abs(o)/60)*100+Math.abs(o)%60,4),S:["th","st","nd","rd"][d%10>3?0:(d%100-d%10!=10)*d%10]};return mask.replace(token,function($0){return $0 in flags?flags[$0]:$0.slice(1,$0.length-1)})}}();dateFormat.masks={"default":"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"};dateFormat.i18n={dayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","January","February","March","April","May","June","July","August","September","October","November","December"]};Date.prototype.format=function(mask,utc){return dateFormat(this,mask,utc)};$.fn.nbTwitter=function(options){if(!self){self=$(this)}if(typeof options=="object"||!options){o=$.fn.nbTwitter.options=$.extend($.fn.nbTwitter.defaultOptions,options);_init()}else{if(typeof options=="string"){if(!o){o=$.fn.nbTwitter.options=$.fn.nbTwitter.defaultOptions}eval(options+"()")}}};$.fn.nbTwitter.defaultOptions={account:null,searchWords:null,amount:5,time:"relative",timeFormat:"mm/dd/yyyy HH:MM",parseLinks:true,onStart:onStart,onSuccess:onSuccess,onError:onError,onComplete:onComplete,tweetElement:'<div class="tweet"><div class="image"></div><div class="text"></div><span class="time"></span></div>',loadingElement:'<span class="loading">Bezig met laden...</span>',tweetTarget:".text",timeTarget:".time",loadingTarget:".loading",imageTarget:".image",noConnectionString:"Er is geen verbinding met Twitter...",noResultsString:"Geen resultaten gevonden..."};$.fn.nbTwitter.options={}})(jQuery);
