/* * (c) 2009 Chad Etzel - TweetGrid.com * This file may not be reproduced without the express written permission of the author. */ var linkarr=[];var longlinkarr=[];var tweetarr=[];var glb_search='';var glb_rpp=100;var lastID=0;function sortassoc2(arr){for(var i in arr){$('#stuff').append("i: "+i+" => "+arr[i]+" ");}$('#stuff').append('
');arr=arr.sort();for(var i in arr){$('#stuff').append("i: "+i+" => "+arr[i]+" ");}$('#stuff').append('
');}function sortassoc_vals(arr,dir){var vtmp=[];for(var i in arr){vtmp.push([i,arr[i]]);}if(dir){vtmp.sort(function(a,b){return a[1]-b[1];});}else{vtmp.sort(function(a,b){return b[1]-a[1];});}var aout=[];for(var j=vtmp.length-1;j>=0;j--){aout[vtmp[j][0]]=vtmp[j][1];}return aout;}function sortassoc_keys(arr,dir){var vtmp=[];for(var i in arr){vtmp.push([i,arr[i]]);}if(dir){vtmp.sort(function(a,b){return a[0]>b[0];});}else{vtmp.sort(function(a,b){return a[0]=0;j--){aout[vtmp[j][0]]=vtmp[j][1];}return aout;}function jtw_urlencode(str){str=escape(str);str=str.replace(/\+/g,'%2B');str=str.replace(/%20/g,'+');str=str.replace(/\*/g,'%2A');str=str.replace(/\//g,'%2F');str=str.replace(/@/g,'%40');str=str.replace(/#/g,'%23');return str;}function dotrends(){$('#trends').html('');$.getJSON("http://search.twitter.com/trends.json?callback=?",trends_h);}function trends_h(data){var topic,topic_fix;$('#trends').html('Trending Topics: ');for(var i in data.trends){topic=data.trends[i].name;topic_fix=fix_topic(topic);$('#trends').append(''+topic+' - ');}$('#trends').append(' Refresh Trends');$('#trends').append('

');}function fix_topic(s){var match=/ /.test(s);if(match){s='"'+s+'"';}s=s.replace(/'/g,'\\\'');return s;}function getTweetsInit(arr,iter){var rand=Math.floor(Math.random()*3000000);var page=iter;var url="http://search.twitter.com/search.json?q="+jtw_urlencode(glb_search)+"&rpp="+glb_rpp.toString()+"&page="+iter+"&rand="+rand+"&callback=?";$.getJSON(url,function(data){arr=$.merge(arr,data.results);if(iter<4){getTweetsInit(arr,iter+1);}else{var obj={};obj.results=arr;handleTweets(obj);}});}function getTweets(){var rand=Math.floor(Math.random()*3000000);var url="http://search.twitter.com/search.json?q="+jtw_urlencode(glb_search)+"&rpp="+glb_rpp.toString()+"&since_id="+lastID+"&rand="+rand+"&callback=?";$.getJSON(url,handleTweets);}function handleTweets(arr){for(var i=0;i2){qstr=qstr+jtw_urlencode(i)+"&q=";}}qstr=qstr.substr(0,qstr.length-3);getLongURLs(qstr);}function getLongURLs(qstr){var url="http://www.longurlplease.com/api/v1.1?q="+qstr+"&callback=?";$.getJSON(url,handleLongURLs);}function handleLongURLs(data){var url;var count;for(var i in data){if(data[i]==null){url=i;count=linkarr[i];}else{url=data[i];count=linkarr[i];}if(!longlinkarr[url]){longlinkarr[url]=0;}longlinkarr[url]+=count;}$('#stuff').empty();$('#stuff').append($('#tbltemplate').html());var myarr4=sortassoc_vals(longlinkarr,1);var obj=$('#stuff .tbltab tbody');var tweet;for(var i in myarr4){tweet=tweetarr[getkey(data,i)];if(tweet==null){tweet=tweetarr[i];}obj.append(''+myarr4[i].toString()+''+i+'

Sample Tweet:
'+tweet+'');}}function getkey(arr,val){for(var i in arr){if(val==arr[i]){return i;}}return null;}function links_ready(){dotrends();$('#search').focus(function(){$(this).val('');$(this).unbind('focus');});if(glb_search!=''){dosearch(glb_search);}}function changesearch(){$('#stuff').html('
Loading...
');glb_search=$('#search').val()+" http";lastID=0;getTweetsInit([],1);linkarr=[];longlinkarr=[];tweetarr=[];}function dosearch(str){$('#search').val(str);changesearch();}