var Chartcloud={init:function(api_key){return new Chartcloud.Client(api_key);}};Chartcloud.Client=function(api_key){this.input_base_url="http://input.chartcloud.com/";this.api_key=api_key;this.channel=function(input_key){return new Chartcloud.Channel(this,input_key);};this.event=function(input_key,event_object){var path='i/'+this.api_key+'/'+input_key+'/event.js';var url=this.input_base_url+path+'?'+this.buildParameter(event_object);this.jsonp(url);};this.jsonp=function(url){var script=document.createElement("script");script.setAttribute("src",url);script.setAttribute("type","text/javascript");document.body.appendChild(script);};this.buildParameter=function(event_object){var params=[];for(prop in event_object){params.push(encodeURIComponent(prop)+'='+encodeURIComponent(event_object[prop]));}
return params.join('&');};};Chartcloud.Channel=function(client,input_key){this.client=client;this.input_key=input_key;this.event=function(event_object){this.client.event(this.input_key,event_object);};};var twittfight={chartcloud:undefined,callbacks:[],callback:undefined,result1:undefined,result2:undefined,curFight:undefined,loadRec:function(type,callback){var req=new Request.JSON({url:'/fights/'+type,onSuccess:callback});req.get();return false;},jsonp:function(url){var script=document.createElement("script");script.setAttribute("src",url);script.setAttribute("type","text/javascript");document.body.appendChild(script);},i:0,fight:function(name1,name2,callback){this.name1=name1;this.name2=name2;if(name1!=""&&name2!=""){this.i++;this.callback=callback;this.result1=undefined;this.result2=undefined;this.jsonp('http://search.twitter.com/search.json?q='+name1+'&rpp=100&callback=twittfight.gotResult1&ts='+this.i);this.jsonp('http://search.twitter.com/search.json?q='+name2+'&rpp=100&callback=twittfight.gotResult2&ts='+this.i);var req=new Request.JSON({url:'/fights',onSuccess:this.gotFight});req.post({name1:name1,name2:name2});if(this.chartcloud){this.chartcloud.event({names:[name1,name2]});}}},parseTwitterResult:function(data){now=new Date().getTime()/10000;cnt=data.results.length*3000;if(cnt>0){time=data.results[data.results.length-1].created_at;sec=Date.parse(time)/10000;if(now-sec==0){value=0;}else{value=cnt/(now-sec);}}else{value=0;}
return value;},gotResult1:function(obj){this.result1=twittfight.parseTwitterResult(obj);this.gotResult();},gotResult2:function(obj){this.result2=twittfight.parseTwitterResult(obj);this.gotResult();},gotFight:function(obj){tfUI.setFightData(obj);},gotResult:function(){if(twittfight.result1!=undefined&&twittfight.result2!=undefined){if(twittfight.callback){twittfight.callback(twittfight.result1,twittfight.result2);}else{tfUI.setResultData(this.name1,this.result1,this.name2,this.result2);}}}};var tfControl={host:'localhost:3000',initialize:function(host,name1,name2){this.host=host;this.urldata={name1:name1,name2:name2,first:true};$('fightButton').addEvent('click',tfControl.fightButtonClick);$('fightForm').addEvent('submit',tfControl.fightButtonClick);$('name1').addEvent('focus',function(){if($('name1').value==this.urldata.name1){$('name1').value='';}}.bind(this));$('name1').value=name1;$('name2').addEvent('focus',function(){if($('name2').value==this.urldata.name2){$('name2').value='';}}.bind(this));$('name2').value=name2;$('ret_tweetthis').addEvent('click',function(event){event.stop();url=$('ret_tweetthis').href;if(url!=""&&url!="#"){window.open(url,'twitter');}
return false;});twittfight.loadRec('all',tfUI.setTeaserData);tfControl.refreshUrlData();},refreshUrlData:function(){urldata=tfControl.parseCurrentUrl();if(urldata&&(this.urldata.first||urldata.name1!=this.urldata.name1||urldata.name2!=this.urldata.name2)){twittfight.fight(urldata.name1,urldata.name2);tfUI.setFormData(urldata.name1,urldata.name2);this.urldata=urldata;}
setTimeout('tfControl.refreshUrlData()',250);},parseCurrentUrl:function(){parts=location.href.split('#');if(parts.length==2){names=parts[1].split('-vs-');if(names.length==2){return{name1:decodeURIComponent(names[0]),name2:decodeURIComponent(names[1])};}}
return false;},fightButtonClick:function(event){event.stop();var name1=$('name1').value;var name2=$('name2').value;if(name1==""||name2==""){alert("You have to enter two search terms.");}else{location.href="#"+name1+'-vs-'+name2;}},startFight:function(name1,name2){tfUI.setFormData(name1,name2);twittfight.fight(name1,name2);},sawtooth:function(x){x=x-Math.floor(x);if(x<0.75){return(4/3*x);}else{return(-4*(x-1));}}};var tfUI={windowTitle:"Twittfight",sURL:'http://<%= HOST %>/',lURL:'http://<%= HOST %>/#',recLineHTML:'<li><a class="clear" href="#{name1}-vs-{name2}"><span class="left">{shortname1} <strong>vs.</strong> {shortname2}</span><small class="right">{counter}</small></a></li>',trim:function(text,length){if(text.length>length){return text.substring(0,length-2)+'...';}else{return text;}},setFormData:function(name1,name2){$(document.body).scrollTo(0,0);$('name1').value=name1;$('name2').value=name2;$("name_tag_1").fade('out');$("name_tag_2").fade('out');$('res_bar1').tween('width',0);$('res_bar2').tween('width',0);$('result_box').getElements("div.result>h3").fade('hide').setStyle('display','block');$('result_box').getElements("div.result>div.bar>span").setStyle('width','0px');$('result_box').getElements("div.result>small").fade('out');},setFightData:function(fight){$('ret_shorturl').innerHTML=$('ret_shorturl').href="http://"+tfControl.host+'/'+fight.short_url;$('ret_longurl').href="http://"+tfControl.host+'/#'+encodeURIComponent(fight.name1)+'-vs-'+encodeURIComponent(fight.name2);$('ret_longurl').innerHTML="http://"+tfControl.host+'/#'+fight.name1+'-vs-'+fight.name2;tweet=fight.name1+" vs "+fight.name2+" -> "+"http://"+tfControl.host+'/'+fight.short_url+" #twittfight";$('ret_tweetthis').href='http://twitter.com/home?status='+encodeURIComponent(tweet);$('ret_tweetthis').innerHTML=tweet;window.title=this.windowTitle+": "+fight.name1+" vs "+fight.name2;},setResultData:function(name1,result1,name2,result2){var rr1=Math.round(result1);var rr2=Math.round(result2);var h1=0;var h2=0;if(rr1!=0||rr2!=0){h1=rr1*269/(rr1+rr2);h2=rr2*269/(rr1+rr2);}
nt1=$("name_tag_1");nt1.innerHTML=name1;nt1.setStyle('display','block');nt1.fade('in');nt2=$("name_tag_2");nt2.innerHTML=name2;nt2.setStyle('display','block');nt2.fade('in');rs1=$('res_score1');rs1.innerHTML=rr1;rs1.fade('in');$('res_bar1').tween('width',0,h1);rs2=$('res_score2');rs2.innerHTML=rr2;rs2.fade('in');$('res_bar2').tween('width',0,h2);$('result_box').getElements("div.result>small").setStyle('display','none');$('result_box').getElements("div.result>div.bar").setStyle('display','block');$('result_box').getElements("div.result>h3").fade('in');},setTeaserData:function(fights){new Hash(fights).each(function(value,key){ul=$('nav_rec_'+key);lines=value.map(function(obj){obj.shortname1=tfUI.trim(obj.name1,15);obj.shortname2=tfUI.trim(obj.name2,15);return tfUI.recLineHTML.substitute(obj);});ul.innerHTML=lines.join('');});}};
