function TwitterSearch(d,e,b,c){this.isMainSearch=d;this.outputElementId=e;this.engine=b;this.html=null;this.searchCompleted=false;this.checkedPage=false;this.resultData=null;this.numPreviews=3;this.currentPage=1;this.targetQuery="";this.hasMaxId=false;this.baseLink="";var f="http://search.twitter.com/search.json?";if(this.isMainSearch){this.baseLink="?";for(paramKey in parsedUri.queryKey){if(paramKey!="q"){this.baseLink+=paramKey+"="+parsedUri.queryKey[paramKey]+"&"}}this.baseLink+="q=";f+="&rpp=11"}else{if((c.p)&&(c.p!="")){this.numPreviews=parseInt(c.p)}f+="&rpp="+(this.numPreviews+1)}if((c.la)&&(c.la!="")){var a=c.la;if(a.indexOf("lang_")==0){a=a.substr(5)}f+="&lang="+a}f+="&callback=?";this.targetUrl=f}TwitterSearch.prototype.execute=function(b){this.targetQuery=b;this.targetUrl+="&q="+encodeURIComponent(b);var a=this;$.getJSON(this.targetUrl,function(c){a.searchComplete(c)})};TwitterSearch.prototype.searchComplete=function(e){var l;this.searchCompleted=true;this.resultData=e;l=e.results.length;if(this.isMainSearch){if(!this.hasMaxId){this.hasMaxId=true;this.targetUrl+="&max_id="+this.resultData.max_id}if(checkPageJump(this)){return}if(l>10){setNumberResults(-10)}else{setNumberResults(l)}var d="";var g=-1;var f=l;if(f>10){f=10;g=-2}else{if(this.currentPage==1){g=0}}var p=document.createElement("div");var k=this.targetQuery.split(/[^\w-]+/);for(var j=0;j<f;j++){var b=this.resultData.results[j];var m=getTimeAgoString(b.created_at);if(j==0){d+='<div class="firstSearchResult">'}else{d+='<div class="searchResult">'}d+='<div style="width: 48px; float: left; margin-right: 10px;"><a href="http://www.twitter.com/'+b.from_user+'"><img src="'+b.profile_image_url+'" width="48" height="48" border="0"/></a></div>';d+='<div class="content">'+this.highlightQuery(k,b.text)+"</div>";p.innerHTML=b.source;d+='<div class="subMessage"><span class="url"><a href="http://www.twitter.com/'+b.from_user+'">'+b.from_user+"</a></span> &bull; Published "+m+' from <span class="extra">'+p.firstChild.nodeValue+"</a></div>";d+="</div>"}var i=(this.currentPage-1)*10;var o=f;var a=null;populateMainSearch(d,this.currentPage,g,i,o,a);window.setTimeout(function(){if(!singlePageMode){$.wordStats.clear()}$.wordStats.computeSearchTopWords(5,e.results,searchQuery,"text");setRefinements($.wordStats.topWords)},0)}else{var h=document.getElementById(this.outputElementId);if(this.engine.show){this.createHTML()}var n=l;if(n>this.numPreviews){n=-this.numPreviews}populateSidebarEngine(this.outputElementId,n,this.html)}};TwitterSearch.prototype.goToPage=function(b){var a=this;this.currentPage=b;$.getJSON(this.targetUrl+"&page="+b,function(c){a.searchComplete(c)})};TwitterSearch.prototype.createHTML=function(){if(!this.html&&this.searchCompleted){var b="";var e=this.resultData.results.length;if(e>this.numPreviews){e=this.numPreviews}var a=document.createElement("div");var g=this.targetQuery.split(/[^\w-]+/);for(var i=0;i<e;i++){var h=this.resultData.results[i];var d=getTimeAgoString(h.created_at);if(i>0){b+='<div class="engineResultSpacer"></div>'}var f;b+='<div class="engineResultWrapper" onmouseover="showTooltip(this, \''+this.engine.id+"', "+i+');" onmouseout="hideTooltip(event, this);">';b+='<div class="twitterResultTitle">'+this.highlightQuery(g,h.text)+"</div>";b+='<div class="engineResultExtra"><a href="http://www.twitter.com/'+h.from_user+'"><span class="fullLink"></span><b>';a.innerHTML=h.source;b+=h.from_user+"</b></a></b> &bull; "+d+" from "+a.firstChild.nodeValue;b+="</div></div>"}this.html=b}return this.html};TwitterSearch.prototype.createTooltip=function(c){var a=parseInt(c);if(a>-1){var d=this.resultData.results[a];var b="";b+='<a href="http://www.twitter.com/'+d.from_user+'"><img src="'+d.profile_image_url+'" width="48" height="48"/></a>';return b}else{this.createHTML();return this.html}};TwitterSearch.prototype.getTooltipWidth=function(){return 50};TwitterSearch.prototype.getTooltipHeight=function(){return 50};TwitterSearch.expandLink=function(b){var d=$(b.target).parents("span.expandLink:first");var c=d.find("a:first").get(0);var a="http://api.bit.ly/expand?version=2.0.1&login=nibbosearch&apiKey="+BITLY_KEY+"&shortUrl="+c.getAttribute("href")+"&callback=?";$.getJSON(a,function(g){if(g.errorCode==0){var e=null;for(var f in g.results){e=g.results[f];break}d.html('<a href="'+e.longUrl+'">'+e.longUrl+"</a>")}});return false};TwitterSearch.prototype.highlightQuery=function(j,s){var b="";for(var q=0;q<j.length;q++){if((j[q])&&(j[q]!="OR")){if(b!=""){b+="|"}b+=j[q]}}var i=new RegExp("\\b("+b+")\\b","gi");var o=0;var h=false;var a="";var k=" ,.:;'?!\"()\n";var n="?;:.";var t;var f=false;var p=new RegExp("^https?","i");var r=new RegExp("^www","i");do{if(h){if((k.indexOf(s[o])>-1)||(o==(s.length-1))){if((n.indexOf(s[o])<0)||!f){var g;var d=true;if((o==(s.length-1))&&(k.indexOf(s[o])<0)){g=s.substring(t,o+1);d=false}else{g=s.substring(t,o)}if(!f&&(((s[o]==":")&&(p.test(g)))||((s[o]==".")&&(r.test(g))))){f=true}else{var e=false;var m=false;if(g[0]=="@"){g=g.substring(1);a+='@<a href="http://twitter.com/'+g+'">';e=true}else{if(g[0]=="#"){a+='<a href="'+this.baseLink+encodeURIComponent(g)+'">';e=true}else{if(f){if(g.indexOf("http://bit.ly")==0){m=true;a+='<span class="expandLink">'}if((g[0]=="w")||(g[0]=="W")){a+='<a href="http://'+g+'">'}else{a+='<a href="'+g+'">'}e=true}}}a+=g.replace(i,"<b>$1</b>");if(e){a+="</a>"}if(m){a+=' <span>(<a href="#" onclick="return TwitterSearch.expandLink(event);">expand</a>)</span></span>'}if(d){a+=s[o]}h=false;f=false}}}}else{if(k.indexOf(s[o])>-1){a+=s[o]}else{h=true;t=o}}o++}while(o<s.length);return a};var TwitterSearchFactory=new Object();TwitterSearchFactory.createInstance=function(c,d,a,b){return new TwitterSearch(c,d,a,b)};engineFactories.twitter=TwitterSearchFactory;
