// Copyright 2010 Sense Internet Ltd
var TweetFilter;var TweetGraph;var formatDate;var addWordsToIgnore;if(typeof(console)!="object"||typeof(console.log)!="function"){console={};console.log=function(d,c,b,a){}}(function(){formatDate=function(p){var o=new Date(p).toLocaleString();o.replace(/(\d+:\d+):\d+.*$/,"$1");return o};function l(q,r){q=q.get(0);if(!n(q)){return false}var o=q.options;for(var p=0;p<o.length;p++){if(o[p].value==r){q.selectedIndex=p;break}}}function h(o){toSort=[];for(key in o){toSort.push([key,o[key]])}toSort.sort(function(q,p){return p[1]-q[1]});return toSort}function b(q,o){var p;for(p in o){if(!q[p]){q[p]=0}q[p]+=o[p]}}var k={};addWordsToIgnore=function(o){wordsToIgnore=o.split(",");for(i=wordsToIgnore.length-1;i>=0;i--){k[wordsToIgnore[i]]=1}};addWordsToIgnore("rt");function d(s){var o,p,r;var t={};var q=s.text;r=q.split(" ");for(o=r.length-1;o>=0;o--){p=r[o];if(p.match(/^\@/)){continue}if(p.match(/\d/)){continue}if(p.length<2){continue}if(k[p]){continue}t[p]=1}return t}function a(q){var p=0;for(var o in q){p+=q[o]}return p}function e(p,r){var q={};for(var o in p){q[o]=p[o]*r}return q}function j(o,p){if(!o[p]){o[p]=0}o[p]++}function n(o){return typeof o=="object"}function f(o){return(typeof(o)==="array"||(typeof(o)==="object"&&o instanceof Array))}var c=function(){this.init(arguments)};c.prototype={init:function(q){tweet=q[0];if(n(tweet)){this.createdAt=parseInt(tweet.created_at);this.fromUser=tweet.from_user;this.fromUserId=tweet.from_user_id;this.geo=tweet.geo;this.id=tweet.id;this.isoLanguageCode=tweet.iso_language_code;this.profileImageUrl=tweet.profile_image_url;this.sourceId=tweet.source_id;this.text=tweet.text;this.toUserId=tweet.to_user_id}else{bits=tweet.split(":");var o=parseInt(unescape(bits[9]));var p=parseInt(unescape(bits[8]));if(!o){o=0}if(!p){p=0}this.createdAt=parseInt(bits[0]);this.fromUserId=unescape(bits[1]);this.fromUser=unescape(bits[2]);this.id=bits[3];this.sourceId=bits[4];this.isoLanguageCode=bits[5];this.text=unescape(bits[6]);this.fullText=unescape(bits[7]);this.audience=p;this.significance=o/1000;this.gender=unescape(bits[10]);this.retweet=this.text.match(/\srt\s/)}},serialize:function(){var p="";var o;exportFields=["createdAt","fromUser","fromUserId","geo","id","isoLanguageCode","profileImageUrl","source","text","toUserId"];for(i=0;i<exportFields.length;i++){o=this[exportFields[i]];o=o?o.toString():"";o=o.replace(/\x25/g,"%25");o=o.replace(/\x3A/g,"%3A");o=o.replace(/\x0A/g,"%0A");o=o.replace(/\x0D/g,"%0D");p+=o+":"}return p.replace(/\x3A$/,"\n")},getCreateTime:function(){return this.createdAt},getId:function(){return this.id}};var m=function(){this.init.apply(this,arguments)};m.prototype={init:function(p,o,q){this.filter=q;this.dataUrl=p;this.tweets=new Array();this.loaded=false;this.samplingRatio=0;this.setSearchTerm(o)},isLoaded:function(){return this.loaded},getSearchTerm:function(){return this.searchTerm},setSearchTerm:function(o){this.searchTerm=o;this.simplifiedSearchTerm=" "+o.replace(/[^a-z0-9]+/g," ")+" "},searchTermContains:function(o){return(this.simplifiedSearchTerm.indexOf(" "+o+" ")>=0)},getDataTimespan:function(){return{from:this.tweets[this.tweets.length-1].createdAt,to:this.tweets[0].createdAt}},getTweets:function(){return this.tweets},getSamplingRatio:function(){return this.samplingRatio},getTweetIdsByTime:function(t,o,r){var q=[];for(var p=this.tweets.length-1;p>=0;p--){var s=this.tweets[p];if(s.createdAt>=t&&s.createdAt<=o){if(r&&!r.includeTweet(s)){continue}q.push(s.id)}}return q},loadTweetsByTime:function(r,p,q,t){var o=this;var s=this.dataUrl+"?mode=byTime";$.post(s,{q:this.searchTerm,minTime:Math.round(r/1000),maxTime:Math.round(p/1000)},function(w){var y=[];var u=w.split("&");w="";for(var v=u.length-1;v>0;v--){var x=new c(u[v]);if(q&&!q.includeTweet(x)){continue}y.push(x)}console.log(y);if(t){t(y)}})},loadTweetsById:function(o,q){if(!o||!o.length){if(q){q([])}return false}var p=this.dataUrl+"?mode=byId";$.post(p,{ids:o.join(",")},function(t){var u=[];var r=t.split("&");t="";for(var s=r.length-1;s>0;s--){u.push(new c(r[s]))}if(q){q(u)}})},loadTweets:function(s,v,u,q){if(!s){s=this.dataUrl}var w=this;this.tweets=[];if(this.filter){zoom=this.filter.getZoom()}else{zoom={from:0,to:0}}var o;if(s.match(/\.dat$/i)){o=$.get}else{o=$.post}var p=u||0;var r=100/u;if(q){q(0)}function t(){var x=s;if(s.match(/\.dat$/i)&&u){x=s.replace(/\.dat$/i,"_"+p+".dat")}p--;o(x,{q:w.searchTerm,minTime:zoom.from/1000,maxTime:zoom.to/1000,numPages:w.numLoadPages,page:p},function(A){if(q){q((u-p)*r)}var y=A.split("&");A="";if(p<=0){w.samplingRatio=y.shift();if(w.samplingRatio<1){w.samplingRatio=1}console.log("Sampling ratio = "+w.samplingRatio)}for(var z=y.length-1;z>=0;z--){var B=new c(y[z]);if(!B.createdAt||B.createdAt<9999){continue}w.tweets.push(B)}if(p<=0){console.log("First Tweet",w.tweets[0]);console.log("Last Tweet",w.tweets[w.tweets.length-1]);if(q){q(100)}w.loaded=true;if(v){v()}}else{window.setTimeout(t,10)}})}t()}};var g=function(){this.init.apply(this,arguments)};g.prototype={init:function(s,r,q,o,p){this.dataSource=s;this.filter=r;this.showWordBreakdown=q;this.progressCallback=p;this.config={numTopWords:10,numTopWordsInBucket:20,numBuckets:150,bucketSizes:[60,5*60,10*60,30*60,3600,7200,3600*6,86400,86400*7,86400*14]};if(o){this.config.bucketSizes=o}this.processed=false;this.alreadyProcessing=false},isProcessed:function(){return this.processed},setNumBuckets:function(o){this.config.numTicks=o;if(this.dataSource.isLoaded()){this.processData()}},getNumBuckets:function(){return Math.round((this.getLastBucket()-this.getFirstBucket())/this.bucketSize)},getFirstBucket:function(){return this.getBucket(this.filter.getZoom().from)},getLastBucket:function(){return this.getBucket(this.filter.getZoom().to)},getBucketSize:function(){return this.bucketSize},getPlotData:function(){return this.plotData},getLanguageCounts:function(){return this.languageCounts},getBucket:function(o){return Math.floor(o/this.bucketSize)*this.bucketSize},getBuckets:function(r,q){if(!r){r=this.getFirstBucket()}if(!q){q=this.getLastBucket()}var p=[];for(var o=r;o<=q;o+=this.bucketSize){p.push(o)}return p},getBucketBounds:function(q){var o=this.getBucket(q);var p=o+this.bucketSize;return{from:o,to:p}},getTweetIdsInBucket:function(p){var o=this.getBucketBounds(p);console.log("bucket start = ",new Date(o.from).toLocaleString());console.log("bucket end = ",new Date(o.to).toLocaleString());return this.dataSource.getTweetIdsByTime(o.from,o.to,this.filter)},getAllTweetsInBucket:function(q,p){var o=this.getBucketBounds(q);this.dataSource.loadTweetsByTime(o.from,o.to,this.filter,p)},getSampledTweetsInBucket:function(p,o){this.dataSource.loadTweetsById(this.getTweetIdsInBucket(p),o)},getWordsInBucket:function(o){var p=this.getBucket(o);return this.buckets[p].wordCounts},getBucketData:function(p){var q=this.getBucket(p);var o=this.buckets[q];if(!n(o)){o={numTweets:0}}o.graphTopWords=this.topWords;o.samplingRatio=this.dataSource.getSamplingRatio();o.bounds=this.getBucketBounds(q);o.bucket=q;return o},getNumTopWords:function(){return this.config.numTopWords},getTopWords:function(o){return this.topWords},processData:function(s,t){var A=this;if(this.alreadyProcessing){window.setTimeout(function(){A.processData(s,t);return false},100)}else{this.alreadyProcessing=true}if(this.progressCallback){this.progressCallback(0)}var B=this.dataSource.getTweets();if(!B.length){return false}this.languageCounts={};this.topWords=[];this.plotData=[];this.buckets={};var q=this.dataSource.getDataTimespan();var p,x;var o=this.filter.getZoom();p=o.from?o.from:q.from;zoomTo=o.to?o.to:q.to;this.bucketSize=(zoomTo-p)/this.config.numBuckets;for(var D=0;D<this.config.bucketSizes.length;D++){if(this.bucketSize<this.config.bucketSizes[D]*1000){this.bucketSize=this.config.bucketSizes[D]*1000;break}}p=this.getBucket(p);zoomTo=this.getBucket(zoomTo);this.filter.setZoom(p,zoomTo);console.log("Zoom from = ",new Date(p).toLocaleString());console.log("Zoom to = ",new Date(zoomTo).toLocaleString());console.log("NumTweets = ",B.length);console.log("tick size = ",this.bucketSize/1000,"s");var v={};var z={};var E=B.length;var w=this.buckets;var F=Math.round(E/50);var D=-1;function y(){while(1){D++;if(D>=E){return false}if(D%F==0){if(A.progressCallback){A.progressCallback(Math.round(D/F))}return true}var J=B[D];var H=1;if(s=="audience"){H=J.audience}if(s=="significance"){H=J.significance}if(!A.filter.includeTweet(J)){continue}j(A.languageCounts,J.isoLanguageCode);if(A.showWordBreakdown){var G=d(J);var I=e(G,H);if(D==1){console.log("tweet weight",H,G,I)}b(v,G);b(z,I)}var K=A.getBucket(J.createdAt);if(!w[K]){w[K]={wordCounts:{},weightedWordCounts:{},numTweets:0,tweetWeight:0,languageCounts:{},sourceCounts:{},firstId:0,lastId:0}}w[K].numTweets++;w[K].tweetWeight+=H;if(!w[K].firstId||w[K].firstId>J.id){w[K].firstId=J.id}if(!w[K].lastId||w[K].lastId<J.id){w[K].lastId=J.id}if(A.showWordBreakdown){b(w[K].wordCounts,G);b(w[K].weightedWordCounts,I)}}}var u=A.config.numTopWords;function C(){var I=A.topWords;var P=[];var N=A.dataSource.getSamplingRatio();if(A.showWordBreakdown){var L=h(z);for(var J=0;J<L.length;J++){if(A.dataSource.searchTermContains(L[J][0])){continue}I.push(L[J][0]);if(I.length==u){break}}for(var K=0;K<=I.length;K++){P.push([])}for(var J in w){var H=w[J];H.topWords=[];$.each(h(H.weightedWordCounts).slice(0,A.config.numTopWordsInBucket),function(S,R){H.topWords.unshift(R[0])});var M=H.tweetWeight*N;var G=0;for(var K=0;K<I.length;K++){if(H.weightedWordCounts[I[K]]){G+=H.weightedWordCounts[I[K]]*N}}if(A.showWordBreakdown&&G>=0){var Q=0;for(var K=0;K<I.length;K++){var O=H.weightedWordCounts[I[K]];if(O){P[K].push([parseInt(J),M/G*(O*N)])}else{P[K].push([parseInt(J),0])}}P[I.length].push([parseInt(J),0])}else{P[I.length].push([parseInt(J),M])}}for(var K=0;K<u;K++){A.plotData.push({bars:{show:true,align:"left",barWidth:A.bucketSize},label:I[K],data:P[K],stack:true})}}else{P[0]=[];for(var J in w){P[0].push([parseInt(J),w[J].tweetWeight*N])}}if(!A.showWordBreakdown){A.plotData.push({bars:{show:true,align:"left",barWidth:A.bucketSize},label:"Other",data:P[I.length],stack:true})}A.processed=true;A.alreadyProcessing=false;if(A.progressCallback){A.progressCallback(75)}if(t){window.setTimeout(t,10)}}function r(){if(y()){window.setTimeout(r,10)}else{C()}}r()}};TweetFilter=function(){this.init(arguments)};TweetFilter.prototype={init:function(){this.reset();this.wordFilter=false;this.genderFilter=false;this.retweetFilter=false},reset:function(){this.seenUsers={};this.tweetCount=0},includeTweet:function(p){if(this.ignoreMultiplePosts){if(this.tweetCount%1000==0){this.seenUsers={}}if(this.seenUsers[p.fromUserId]){return false}this.seenUsers[p.fromUserId]=1}if(this.zoomFrom&&p.createdAt<this.zoomFrom){return false}if(this.zoomTo&&p.createdAt>this.zoomTo){return false}if(this.genderFilter&&p.gender!=this.genderFilter){return false}if(this.retweetFilter&&(p.retweet?1:2)!=this.retweetFilter){return false}if(!this.wordFilter){return true}for(var o=this.wordFilter.length-1;o>=0;o--){if(p.text.indexOf(" "+this.wordFilter[o]+" ")<0){return false}}return true},setGenderFilter:function(o){if(o=="M"){this.genderFilter=o}else{if(o=="F"){this.genderFilter=o}else{if(o=="U"){this.genderFilter=o}else{this.genderFilter=false}}}},setRetweetFilter:function(o){this.retweetFilter=o},setWordFilter:function(o){this.wordFilter=[];this.addWordFilter(o)},addWordFilter:function(o){console.log(typeof o);if(f(o)){this.wordFilter=this.wordFilter.concat(o)}else{console.log(o);o=o.toLowerCase();o=o.replace(/[^a-z0-9@_-]/g," ");o=o.replace(/^\s+/,"");o=o.replace(/\s+$/,"");o=o.replace(/\s+/g," ");if(o!=""){this.addWordFilter(o.split(" "))}}},setZoom:function(o,p){console.log(typeof o);if(n(o)){p=o.to;o=o.from}this.zoomFrom=o;this.zoomTo=p},getZoom:function(){return({from:this.zoomFrom,to:this.zoomTo})}};TweetGraph=function(){this.init.apply(this,arguments)};TweetGraph.prototype={init:function(p){var o=this;this.options=n(p)?p:{};if(!this.options.viewMode){this.options.viewMode="tweets"}if(n(this.options.dataSource)){this.dataSource=this.options.dataSource}this.options.dataSource=undefined;if(!n(this.options.flotOptions)){this.options.flotOptions={}}this.setupFlotOptions();this.isDrawn=false;if(this.options.dataUrl){this.dataUrl=this.options.dataUrl}else{this.dataUrl="getTweets.php"}this.setContainer(this.options.container);this.tweetFilter=new TweetFilter();if(this.options.zoom){this.tweetFilter.setZoom(this.options.zoom);this.options.zoom=undefined;this.zoomOutButton.show()}this.zoomStack=[];if(n(this.dataSource)){this.setupData()}if(this.options.searchTerm&&!n(this.dataSource)){this.draw()}},getTweetFilter:function(){return this.tweetFilter},getDataSource:function(){return this.dataSource},setDataSource:function(o){this.dataSource=o;this.tweetFilter.setZoom(o.getDataTimespan());console.log(o.getDataTimespan());this.dataEngine=undefined;this.setupData();this.reprocessData()},setSearchTerm:function(o){this.options.searchTerm=o;this.loadData()},setNumBuckets:function(o){this.options.numBuckets=o;this.dataEngine.setNumBuckets(this.options.numBuckets);this.reprocessData()},setViewMode:function(o){this.options.viewMode=o;this.reprocessData()},setContainer:function(o){if(this.container){this.detachHandlers()}this.container=n(o)?o:$("body");this.setupDom()},detachHandlers:function(){this.graphDiv.unbind("plotselected").unbind("plothover").unbind("plotclick").unbind("mousedown").unbind("mouseup");this.seachTermInput.unbind("change");this.zoomOutButton.unbind("click");this.zoomDataButton.unbind("click");this.pageBackButton.unbind("click");this.pageForwardButton.unbind("click");this.numBucketsChooser.unbind("change");this.viewModeChooser.unbind("change")},setupFlotOptions:function(){var o=this.options.flotOptions;if(!n(o.xaxis)){o.xaxis={}}if(!n(o.grid)){o.grid={}}if(!n(o.selection)){o.selection={}}if(!n(o.series)){o.series=[]}if(!n(o.legend)){o.legend={}}o.xaxis.mode="time";o.grid.hoverable=true;o.grid.clickable=true;o.selection.mode="x"},setupDom:function(){this.graphDiv=this.findElement("#TGGraph");this.zoomOutButton=this.findElement("#TGZoomOutButton");this.zoomDataButton=this.findElement("#TGZoomDataButton");this.pageBackButton=this.findElement("#TGPageBackButton");this.pageForwardButton=this.findElement("#TGPageForwardButton");this.loadingBox=this.findElement("#TGLoadingBox");this.processingBox=this.findElement("#TGProcessingBox");this.numBucketsChooser=this.findElement("#TGNumBucketsChooser");this.viewModeChooser=this.findElement("#TGViewModeChooser");this.seachTermInput=this.findElement("#TGSearchTerm");this.wordFilterInput=this.findElement("#TGWordFilter");this.genderFilter=this.findElement("#TGGenderFilter");this.retweetFilter=this.findElement("#TGRetweetFilter");this.attachHandlers();this.zoomOutButton.hide()},attachHandlers:function(){var p=this;var q=false;var o=false;var r=false;this.graphDiv.bind("mousedown",function(){o=true}).bind("mouseup",function(){o=false;window.setTimeout(function(){q=false},100)}).bind("plotclick",function(t,u,s){if(!q){p.triggerEvent("onClick",t,u,s)}if(p.options.onBarClick&&s&&s.datapoint&&s.datapoint[0]){p.processBarClick(s,s.seriesIndex,0)}}).bind("plothover",function(v,x,t){var w=p.dataEngine.getBucket(x.x);if(p.hovberBucket!=w){p.hovberBucket=w;p.hoverData=p.dataEngine.getBucketData(w)}p.triggerEvent("onHover",v,x,p.hoverData);if(o){q=true;return true}if(t&&t.datapoint&&t.datapoint[0]){var s=t.seriesIndex+":"+t.dataIndex;if(p.hovering!=s){if(p.hovering){p.triggerEvent("onBarHoverEnd")}p.hovering=s;var u=p.hoverData;u.series=t.seriesIndex;if(t.seriesIndex>=0){u.word=u.graphTopWords[t.seriesIndex]}else{u.word=""}p.triggerEvent("onBarHoverStart",u)}p.triggerEvent("onBarHoverMove",(x.pageX+3),(x.pageY+3))}else{if(p.hovering){p.triggerEvent("onBarHoverEnd");p.hovering=false}}});if(!this.options.disableZoom){this.graphDiv.bind("plotselected",function(t,s){p.zoomTo(s.xaxis.from,s.xaxis.to)})}this.zoomOutButton.click(function(){p.zoomOut()});this.zoomDataButton.click(function(){p.zoomData()});this.pageBackButton.click(function(){p.shiftView(-1,75)});this.pageForwardButton.click(function(){p.shiftView(1,75)});this.numBucketsChooser.change(function(){p.setNumBuckets($(this).val());return true});this.viewModeChooser.change(function(){p.setViewMode($(this).val());return true});l(this.viewModeChooser,this.options.viewMode);this.wordFilterInput.editPause(function(){p.tweetFilter.setWordFilter($(this).val());p.reprocessData()});this.genderFilter.change(function(){p.tweetFilter.setGenderFilter($(this).val());p.reprocessData()});this.retweetFilter.change(function(){p.tweetFilter.setRetweetFilter($(this).val());p.reprocessData()});this.seachTermInput.change(function(){p.wordFilterInput.val();p.setSearchTerm($(this).val())})},processBarClick:function(q,p,s){q.datapoint[0]+=s*this.dataEngine.getBucketSize();q.dataIndex+=s;var t=q.datapoint[0];var o=this;var r=this.dataEngine.getBucketData(t);r.getSampledTweets=function(u){o.dataEngine.getSampledTweetsInBucket(t,u)};r.getAllTweets=function(u){o.dataEngine.getAllTweetsInBucket(t,u)};if(p>=0){r.word=r.graphTopWords[p]}else{r.word=""}r.series=p;r.item=q;this.triggerEvent("onBarClick",r)},shiftView:function(q,p){var r=this.tweetFilter.getZoom();var o=r.to-r.from;if(!p){p=75}newView={from:this.dataEngine.getBucket(r.from+o*(p/100)*q),to:this.dataEngine.getBucket(r.to+o*(p/100)*q)};this.tweetFilter.setZoom(newView);this.checkDataInView()},checkDataInView:function(){var p=this.tweetFilter.getZoom();var o=this.dataSource.getDataTimespan();o.from=this.dataEngine.getBucket(o.from);o.to=this.dataEngine.getBucket(o.to);p.from=this.dataEngine.getBucket(p.from);p.to=this.dataEngine.getBucket(p.to);console.log("Checking we have enough data",p,o);if(p.from<o.from||p.to>o.to){this.loadData(true)}else{this.reprocessData()}},findElement:function(o){console.log("Looking for ",o," in ",this.container);return this.container.find(o)},triggerEvent:function(o){var p=[];if(arguments.length){p=Array().slice.call(arguments,1)}if(this.options[o]){return this.options[o].apply(this,p)}else{return undefined}},setOption:function(o,p){if(o=="container"){this.setContainer(p)}else{if(o=="dataSource"){this.setDataSource(p)}else{if(o=="numBuckets"){this.setNumBuckets(p)}else{if(o=="viewMode"){this.setViewMode(p)}else{this.options[o]=p}}}}if(theOptions=="flotOptions"){this.setupFlotOptions()}},setupData:function(o){var p=false;if(!n(this.dataSource)){this.dataSource=new m(this.dataUrl,this.options.searchTerm,o?this.tweetFilter:false);p=true}if(!this.dataEngine||p){console.log("Creating new data engine",this.container);this.dataEngine=new g(this.dataSource,this.tweetFilter,this.options.showWordBreakdown,this.options.bucketSizes,this.options.onProcessingProgressUpdate)}},reprocessData:function(p){var o=this;this.processingBox.show();o.triggerEvent("onProcessingStart");this.dataEngine.processData(this.options.viewMode,function(){if(p){p()}o.triggerEvent("onProcessingEnd");o.processingBox.hide();o.draw()})},loadData:function(o,q){var p=this;this.dataSource=undefined;this.setupData(o);this.triggerEvent("onLoadStart");this.loadingBox.show();this.dataSource.loadTweets(this.options.staticDataUrl,function(){p.loadingBox.hide();p.triggerEvent("onLoadEnd");p.reprocessData(q)},this.options.numLoadPages,this.options.onLoadProgressUpdate)},isDrawn:function(){console.log("isdrawn = ",this.isDrawn);return this.isDrawn},draw:function(){var p=this;if(!this.dataSource){this.loadData();return}if(!this.dataEngine.isProcessed()){this.reprocessData();return}if(this.options.autoWidth){this.graphDiv.width(this.graphDiv.parent().width())}var o=this.options.flotOptions;o.xaxis.min=this.dataEngine.getFirstBucket();o.xaxis.max=this.dataEngine.getLastBucket();var t=this.dataEngine.getPlotData();for(var r=t.length-1;r>=0;r--){if(o.series[r]){for(var q in o.series[r]){t[r][q]=o.series[r][q]}}}this.flotGraph=$.plot(this.graphDiv,t,o);this.numBucketsChooser.val(this.options.numBuckets);this.isDrawn=true;var s=false;this.findElement(".TGHighlight").unbind("mouseover").mouseover(function(){if(!s){s=true;word=$(this).attr("TGWord");p.hightlightWord(word)}}).css("cursor","default").unbind("mouseoout").mouseout(function(){s=false;p.unhighlight()});$("#refineSearch img").css({visibility:"hidden"});console.log("Finished Drawing - calling ondraw callback");this.triggerEvent("onDraw")},hightlightWord:function(s,o){var t=this.dataEngine.getTopWords();if(typeof s!="number"){for(var q=t.length-1;q>=0;q--){if(t[q]==s){break}}}else{q=0+s}if(q>=0){if(!o){o=this.options.highlightColor}if(o){var r=this.flotGraph.getData();r[q].color=o}for(var p=this.dataEngine.getNumBuckets()-1;p>=0;p--){this.flotGraph.highlight(q,p)}}},highlightColumn:function(q,o){if(o){var r=this.flotGraph.getData()}for(var p=this.dataEngine.getNumTopWords()-1;p>=0;p--){if(!o){o=this.options.highlightColor}if(o){r[p].color=o}this.flotGraph.highlight(p,q)}},unhighlight:function(){this.flotGraph.unhighlight()},getZoom:function(){return this.tweetFilter.getZoom()},zoomTo:function(p,o){if(this.triggerEvent("onZoom",p,o)===false){return false}this.zoomOutButton.show();console.log("Zooming in on ",p,o);this.zoomStack.push(this.tweetFilter.getZoom());console.log("Zoom stack = ",this.zoomStack);this.tweetFilter.setZoom(p,o);this.reprocessData()},zoomOut:function(){if(this.zoomStack.length){this.tweetFilter.setZoom(this.zoomStack.pop())}else{this.tweetFilter.setZoom(this.dataSource.getDataTimespan())}if(!this.zoomStack.length){this.zoomOutButton.hide()}this.checkDataInView()},zoomData:function(){this.dataSource=undefined;this.loadData(true)}}})();
