
var Fns={Create:function(props){var props=props||{};var fn=function(){return(this.init)?this.init.apply(this,arguments):this;};for(var prop in props)fn.prototype[prop]=props[prop];return fn;},Bind:function(fn,bind,args){return function(){fn.apply(bind,args||[]);};},Contains:function(obj,el){for(var i=0;i<obj.length;i++)
if(obj[i]==el)return true;return false;},Camelize:function(str){str=str.replace(/-\D/g,function(match){return match.charAt(1).toUpperCase();});return str;},Now:function(){return new Date().getTime();},Extend:function(base,more,merge){if(typeof base!='object'&&typeof base!='function')base={};for(var p in more)
if(!base[p]||merge)base[p]=more[p];return base;},Each:function(obj,fn){for(var i=0;i<obj.length;i++)fn.apply(obj,[obj[i],i,obj]);}};var GX=Fns.Create({options:{duration:1000,fps:50,defaultUnit:'px',queue:'queue',easing:'Linear',delay:false},init:function(element,opts){this.element=element;this.options=Fns.Extend(opts,GX.prototype.options);return this;},anime:function(styles,duration,easing,callback){if(!this.isRunning){this.isRunning=true;this.styles=styles;this.duration=(duration)?((typeof duration=='string')?GX.durations[Fns.Camelize(duration)]:duration):this.options.duration;this.easing=easing||this.options.easing;this.callback=((typeof callback=='object')?callback.complete:((typeof callback=='function')?callback:false));this.startFn=(typeof callback=='object')?callback.start:false;if(!this.chain)this.chain=[];this.interval=Math.round(1000/this.options.fps);this.starts={};this.ends={};this.changes={};this.sizes={};this.units={};for(var style in this.styles){var camelStyle=Fns.Camelize(style),camelStyle=(GX.complex.hasOwnProperty(camelStyle))?GX.complex[camelStyle]:camelStyle,jStyle=this.styles[style],jUnit=this.options.defaultUnit||'px',jChanges=false;var cssStyle=this.element.css(camelStyle),startStyle=parseFloat((cssStyle=='auto')?0:cssStyle);if((Fns.Contains(GX.axis,style))&&this.element.css('position')=='static')this.element.css('position','relative');if(GX.Color.isColor(style)){startStyle=GX.Color.cssToRgb(this.element.css(camelStyle));jStyle=GX.Color.cssToRgb(this.styles[style]);jChanges=[jStyle[0]-startStyle[0],jStyle[1]-startStyle[1],jStyle[2]-startStyle[2]];}
else if(typeof jStyle=='string'){if(Fns.Contains(GX.specialValues,jStyle)){if(!this.element.data('gxSave_'+camelStyle))this.element.data('gxSave_'+camelStyle,cssStyle);var to=parseFloat(this.element.data('gxSave_'+camelStyle))||1;switch(jStyle){case'show':this.styles[style]=jStyle=to;break;case'hide':this.styles[style]=jStyle=0;break;case'toggle':this.styles[style]=jStyle=(parseFloat(Math.round(startStyle))!=0)?0:to;break;}}
else{var fullStyle=GX.Parse.style(jStyle,jUnit);if(typeof fullStyle=='object'){this.styles[style]=jStyle=parseFloat(fullStyle[0]);jUnit=fullStyle[1]||'px';if(fullStyle[2])
this.styles[style]=jStyle=(fullStyle[2]=='+=')?(jStyle+startStyle):(startStyle-jStyle);}
else if(typeof fullStyle=='string'){this.styles[style]=jStyle=parseFloat(fullStyle);}}}
this.starts[style]=startStyle;this.ends[style]=jStyle;this.changes[style]=jChanges||this.ends[style]-this.starts[style];this.units[style]=jUnit;}
if(this.startFn)this.startFn.apply(this,[this.element,this]);this.time=Fns.Now();this.timer=setInterval(Fns.Bind(this.increase,this),this.interval);}
else{if(this.options.queue=='queue'){var boundAnime=Fns.Bind(this.anime,this,arguments);this.chain.push(boundAnime);}
else if(this.options.queue=='cancel'){this.clearTimer();this.anime.apply(this,arguments);}}
return this;},increase:function(){var elapsedTime=this.elapsedTime=Fns.Now()-this.time;if(elapsedTime<this.duration){for(var style in this.styles){var easing=this.easing.split(':'),easingType=(easing[1])?easing[1]:'InOut',ease=GX.Transitions[easing[0]][easingType];var starts=this.starts[style],changes=this.changes[style];if(typeof starts!='object'){this.sizes[style]=ease(elapsedTime,starts,changes,this.duration);if(this.sizes[style]<0&&!Fns.Contains(GX.axis,style))this.sizes[style]=0;}
else{this.sizes[style]=[ease(elapsedTime,starts[0],changes[0],this.duration),ease(elapsedTime,starts[1],changes[1],this.duration),ease(elapsedTime,starts[2],changes[2],this.duration)];}}}
else{this.clearTimer();for(var style in this.styles){this.sizes[style]=(GX.Color.isColor(style))?this.ends[style]:this.styles[style];}}
this.setStyles();},parseStyle:function(style,sz){var camelStyle=Fns.Camelize(style);(GX.Color.isColor(camelStyle))?this.element.css(camelStyle,'rgb('+parseInt(sz[0])+','+parseInt(sz[1])+','+parseInt(sz[2])+')'):(this.element.css(camelStyle,(camelStyle=='opacity')?sz:sz+this.units[style]));},clearTimer:function(){this.isRunning=false;this.timer=clearInterval(this.timer);},pause:function(){this.clearTimer();},resume:function(){this.isRunning=true;this.time=Fns.Now()-this.elapsedTime;this.timer=setInterval(Fns.Bind(this.increase,this),this.interval);},setStyles:function(){for(var style in this.styles){this.parseStyle(style,this.sizes[style]);}
if(!this.isRunning){if(this.callback&&typeof this.callback=='function')this.callback.apply(this,[this.element,this]);var delay=this.options.delay,chain=this.chain,ring=function(){chain.shift()();};if(chain.length!=0)(!delay)?ring():setTimeout(ring,delay);}}});GX.Parse={style:function(s,un){var fullStyle=[],value,unit,relative,relatives=['+=','-='];Fns.Each(relatives,function(rel,i){if(s.indexOf(rel)!=-1){relative=rel;s=s.replace(rel,'');}});Fns.Each(GX.units,function(u,i){if(s.indexOf(u)!=-1){value=parseFloat(s);unit=u;fullStyle.push(value,unit);}});if(!unit){value=parseFloat(s);unit=un;fullStyle.push(value,unit);}
if(relative)fullStyle.push(relative);return(fullStyle.length>0)?fullStyle:s;}};GX.Color={decToHex:function(dec){return dec.toString(16);},hexToDec:function(hex){return parseInt(hex,16);},rgbToHex:function(r,g,b){var dth=GX.Color.decToHex;return[dth(r),dth(g),dth(b)];},hexToRgb:function(h,e,x){var htd=GX.Color.hexToDec;return[htd(h),htd(e),htd(x)];},cssToRgb:function(color){if(GX.Color.customColors[color])return GX.Color.customColors[color];if(typeof color=='object'&&color.length==3)return color;if(color.indexOf('rgb')<=-1){var color=(color.length>4)?color:GX.Color.shortToFull(color);return GX.Color.hexToRgb(color.substring(1,3),color.substring(3,5),color.substring(5,7));}
var col=color.substring(4,color.length-1).split(','),nCol=[];Fns.Each(col,function(c){nCol.push(parseInt(c));});return nCol;},shortToFull:function(color){var r=color.charAt(1),g=color.charAt(2),b=color.charAt(3);return'#'+r+r+g+g+b+b;},isColor:function(style){return(style.toLowerCase().indexOf('color')!=-1);},customColors:{red:[255,0,0],green:[0,255,0],blue:[0,0,255],white:[255,255,255],black:[0,0,0]}};GX.linear=function(t,b,c,d){return c*t/d+b;};Fns.Extend(GX,{Transitions:{Linear:{'In':GX.linear,'Out':GX.linear,'InOut':GX.linear}},units:['px','em','%','in','pt','ex'],durations:{'verySlow':4000,'slow':2000,'normal':1000,'fast':500,'veryFast':250},specialValues:['show','hide','toggle'],complex:{'borderWidth':'borderTopWidth','borderColor':'borderTopColor','margin':'marginTop','padding':'paddingTop'},axis:['top','left'],unlink:function(obj){var end={};switch(typeof obj){case'object':for(var p in obj)end[p]=GX.unlink(obj[p]);break;default:return obj;}
return end;}});(function($){jQuery.fn.extend({setGX:function(el){if(!el.data('gx'))el.data('gx',new GX().init(el,{}));return el;},gxInit:function(opts){var set=$(this),jq=this;Fns.Each(set,function(el){var el=jq.setGX($(el));Fns.Extend(el.data('gx').options,opts,true);});return this;},gx:function(styles,duration,easing,callback){var set=$(this),jq=this;Fns.Each(set,function(el){var el=jq.setGX($(el)),gx=el.data('gx');(typeof styles=='string')?gx[styles]():gx.anime(GX.unlink(styles),duration,easing,callback);});return this;}});})(jQuery);jQuery.cookie=function(name,value,options){if(typeof value!='undefined'){options=options||{};if(value===null){value='';options=$.extend({},options);options.expires=-1;}
var expires='';if(options.expires&&(typeof options.expires=='number'||options.expires.toUTCString)){var date;if(typeof options.expires=='number'){date=new Date();date.setTime(date.getTime()+(options.expires*24*60*60*1000));}else{date=options.expires;}
expires='; expires='+date.toUTCString();}
var path=options.path?'; path='+(options.path):'';var domain=options.domain?'; domain='+(options.domain):'';var secure=options.secure?'; secure':'';document.cookie=[name,'=',encodeURIComponent(value),expires,path,domain,secure].join('');}else{var cookieValue=null;if(document.cookie&&document.cookie!=''){var cookies=document.cookie.split(';');for(var i=0;i<cookies.length;i++){var cookie=jQuery.trim(cookies[i]);if(cookie.substring(0,name.length+1)==(name+'=')){cookieValue=decodeURIComponent(cookie.substring(name.length+1));break;}}}
return cookieValue;}};(function($){$.dialog=function(data,klass){$.dialog.loading()
if(data.ajax)filldialogFromAjax(data.ajax)
else if(data.image)filldialogFromImage(data.image)
else if(data.div)filldialogFromHref(data.div)
else if($.isFunction(data))data.call($)
else $.dialog.reveal(data,klass)}
$.extend($.dialog,{settings:{opacity:0,overlay:true,imageTypes:['png','jpg','jpeg','gif'],dialogHtml:'\
    <div id="dialog" style="display:none;"> \
      <div class="popup"> \
        <table> \
          <tbody> \
            <tr> \
              <td class="tl"/><td class="b"/><td class="tr"/> \
            </tr> \
            <tr> \
              <td class="b"/> \
              <td class="body"> \
                <div class="content"> \
                </div> \
              </td> \
              <td class="b"/> \
            </tr> \
            <tr> \
              <td class="bl"/><td class="b"/><td class="br"/> \
            </tr> \
          </tbody> \
        </table> \
      </div> \
    </div>'},loading:function(){init()
if($('#dialog .loading').length==1)return true
showOverlay()
$('#dialog .content').empty()
$('#dialog').css({top:getPageScroll()[1]+(getPageHeight()/4.5),left:385.5}).show()
$(document).bind('keydown.dialog',function(e){if(e.keyCode==27)$.dialog.close()
return true})
$(document).trigger('loading.dialog')},reveal:function(data,klass){$(document).trigger('beforeReveal.dialog')
if(klass)$('#dialog .content').addClass(klass)
$('#dialog .content').append(data)
$('#dialog .body').children().fadeIn('normal')
$('#dialog').css('left',$(window).width()/2-($('#dialog table').width()/2))
$(document).trigger('reveal.dialog').trigger('afterReveal.dialog')},close:function(){$(document).trigger('close.dialog')
return false}})
$.fn.dialog=function(settings){init(settings)
function clickHandler(){$.dialog.loading(true)
var klass=this.rel.match(/dialog\[?\.(\w+)\]?/)
if(klass)klass=klass[1]
filldialogFromHref(this.href,klass)
return false}
return this.click(clickHandler)}
function init(settings){if($.dialog.settings.inited)return true
else $.dialog.settings.inited=true
$(document).trigger('init.dialog')
makeCompatible()
var imageTypes=$.dialog.settings.imageTypes.join('|')
$.dialog.settings.imageTypesRegexp=new RegExp('\.'+imageTypes+'$','i')
if(settings)$.extend($.dialog.settings,settings)
$('body').append($.dialog.settings.dialogHtml)
var preload=[new Image(),new Image()]
$('#dialog').find('.b:first, .bl, .br, .tl, .tr').each(function(){preload.push(new Image())
preload.slice(-1).src=$(this).css('background-image').replace(/url\((.+)\)/,'$1')})}
function getPageScroll(){var xScroll,yScroll;if(self.pageYOffset){yScroll=self.pageYOffset;xScroll=self.pageXOffset;}else if(document.documentElement&&document.documentElement.scrollTop){yScroll=document.documentElement.scrollTop;xScroll=document.documentElement.scrollLeft;}else if(document.body){yScroll=document.body.scrollTop;xScroll=document.body.scrollLeft;}
return new Array(xScroll,yScroll)}
function getPageHeight(){var windowHeight
if(self.innerHeight){windowHeight=self.innerHeight;}else if(document.documentElement&&document.documentElement.clientHeight){windowHeight=document.documentElement.clientHeight;}else if(document.body){windowHeight=document.body.clientHeight;}
return windowHeight}
function makeCompatible(){var $s=$.dialog.settings
$s.imageTypes=$s.image_types||$s.imageTypes
$s.dialogHtml=$s.dialog_html||$s.dialogHtml}
function filldialogFromHref(href,klass){if(href.match(/#/)){var url=window.location.href.split('#')[0]
var target=href.replace(url,'')
$.dialog.reveal($(target).clone().show(),klass)}else if(href.match($.dialog.settings.imageTypesRegexp)){filldialogFromImage(href,klass)}else{filldialogFromAjax(href,klass)}}
function filldialogFromImage(href,klass){var image=new Image()
image.onload=function(){$.dialog.reveal('<div class="image"><img src="'+image.src+'" /></div>',klass)}
image.src=href}
function filldialogFromAjax(href,klass){$.get(href,function(data){$.dialog.reveal(data,klass)})}
function skipOverlay(){return $.dialog.settings.overlay==false||$.dialog.settings.opacity===null}
function showOverlay(){if(skipOverlay())return
if($('dialog_overlay').length==0)
$("body").append('<div id="dialog_overlay" class="dialog_hide"></div>')
$('#dialog_overlay').hide().addClass("dialog_overlayBG").css('opacity',$.dialog.settings.opacity).click(function(){$(document).trigger('close.dialog')}).fadeIn(200)
return false}
function hideOverlay(){if(skipOverlay())return
$('#dialog_overlay').fadeOut(140,function(){$("#dialog_overlay").removeClass("dialog_overlayBG")
$("#dialog_overlay").addClass("dialog_hide")
$("#dialog_overlay").remove()})
return false}
$(document).bind('close.dialog',function(){$(document).unbind('keydown.dialog')
$('#dialog').fadeOut(140,function(){$('#dialog .content').removeClass().addClass('content')
hideOverlay()})})})(jQuery);(function($){$.fn.backgroundHoverFade=function(over,out){var m_over=function(){$(this).gxInit({'queue':'cancel'}).gx({"background-color":over},30);};var m_out=function(){$(this).gxInit({'queue':'cancel'}).gx({"background-color":out},140);};this.live('mouseover',m_over);this.live('mouseout',m_out);return this;};})(jQuery);(function($){$.fn.placeholder=function(className,behaviour){var oldb=behaviour;if(!className)className="";return this.each(function(){var t=$(this);var onfocus=function(){t.unbind("focus",onfocus);if(behaviour=="select"){this.select();t.removeClass(className);}else if(behaviour=="clear"){t.val("");t.removeClass(className);}};t.data("orgval",t.val());if(t.val()==""){t.val(t.attr("title"));t.focus(onfocus);}
if(behaviour=="select"||behaviour=="clear"){if(t.data("orgval")=="")t.addClass(className);t.blur(function(){if(t.val()==""||t.val()==t.attr("title")){t.val(t.attr("title"));t.addClass(className);t.focus(onfocus);}});}});};})(jQuery);(function($){$.postlink=function(href,params,method){var form=$('<form>').attr('action',href||'').attr('method',method||'post');$.each(params||{},function(name,value){var field=$('<input type="hidden">').attr('name',name).attr('value',value);form.append(field);});$("body").append(form);form.submit();return false;};$.fn.postlink=function(params,method){return this.click(function(){return $.postlink(this.href,params,method);});};})(jQuery);Date.prototype.setISO8601=function(string){var regexp="([0-9]{4})(-([0-9]{2})(-([0-9]{2})"+"(T([0-9]{2}):([0-9]{2})(:([0-9]{2})(\.([0-9]+))?)?"+"(Z|(([-+])([0-9]{2}):([0-9]{2})))?)?)?)?";var d=string.match(new RegExp(regexp));var offset=0;var date=new Date(d[1],0,1);if(d[3]){date.setMonth(d[3]-1);}
if(d[5]){date.setDate(d[5]);}
if(d[7]){date.setHours(d[7]);}
if(d[8]){date.setMinutes(d[8]);}
if(d[10]){date.setSeconds(d[10]);}
if(d[12]){date.setMilliseconds(Number("0."+d[12])*1000);}
if(d[14]){offset=(Number(d[16])*60)+Number(d[17]);offset*=((d[15]=='-')?1:-1);}
offset-=date.getTimezoneOffset();time=(Number(date)+(offset*60*1000));this.setTime(Number(time));};if(!window['fantastic'])window['fantastic']={};if(!fantastic['utils'])fantastic['utils']={};(function(f){f.pl=function(a,b,c){if(c==1)return a;return b;};f.htC=[{s:31536000,n:function(n){return fantastic.utils.pl("year","years",n);}},{s:604800,n:function(n){return fantastic.utils.pl("week","weeks",n);}},{s:86400,n:function(n){return fantastic.utils.pl("day","days",n);}},{s:3600,n:function(n){return fantastic.utils.pl("hour","hours",n);}},{s:60,n:function(n){return fantastic.utils.pl("minute","minutes",n);}}];f.humanTimeSince=function(time,now){if(!now)now=new Date();now=Math.floor(now.getTime()/1000);var d=now-(time.getTime()/1000);if(d<=60||!time)return"just a moment ago";var count,div,i;var s="";for(i=0;i<f.htC.length;i++){div=f.htC[i];count=Math.floor(d/div.s);if(count!=0)break;}
s+=count+" "+div.n(count);i++;if(i<f.htC.length){var div2=f.htC[i];var count2=Math.floor((d-(div.s*count))/div2.s);if(count2>0)s+=", "+count2+" "+div2.n(count2);}
return s+" ago";};})(fantastic.utils);if(!window['gdna'])window['gdna']={};if(!gdna['tmg'])gdna['tmg']={};gdna.tmg.feed=null;gdna.tmg.max_tweets=null;gdna.tmg.since=null;gdna.tmg.game=null;gdna.tmg.flipClock=null;gdna.tmg.tweetCount=0;gdna.tmg.errorRefreshInterval=gdna.tmg.refreshInterval;gdna.tmg.flipClockLength=8;gdna.tmg.feedSelector="#live_feed";gdna.tmg.refreshInterval=null;gdna.tmg.feedURL=null;gdna.tmg.user=null;gdna.tmg.TwitterUser=function(u){this.username=u;this.postTweet=function(text,irt,success,error){if(!success)success=function(){};if(!error)error=function(){};var data={status:text};if(irt)data.in_reply_to_status_id=irt;$.ajax({type:"POST",cache:false,dataType:"json",url:"/twitter/statuses/update/",data:data,success:success,error:error});};};gdna.tmg.Tweet=function(id,twitterid,img,text,time,by,hashtags,reply_url){this.tweetid=id;this.twitter_tweet_id=twitterid;this.img=img;this.body=text;this.time=time;this.user=by;this.render=function(){var li=$("<li>").attr("id","tweet_"+this.twitter_tweet_id).addClass("tweet");var d=$("<p>").appendTo(li);pi=$("<span>").addClass("profile_image").attr("style",'background-image: url('+this.img+')');pt=$("<span>").addClass("text").html(this.body);pa=$("<span>").addClass("attributes").append($("<a>").attr({"href":reply_url,"rel":hashtags}).addClass("reply")).append($("<a>").attr({"href":"http://twitter.com/"+this.user+"/status/"+this.twitter_tweet_id+"/"}).addClass("created_at").attr("title",this.time)).append(" by ").append($("<a>").attr({"target":"_blank","href":"http://twitter.com/"+this.user}).addClass("from_user").html(this.user)).append(" ");d.append(pi).append($("<span>").addClass("body").append(pt).append(pa)).append($("<div>").addClass("clear").addClass("render_element"));gdna.tmg.touchTweetTime($(".created_at",pa));return li;};};gdna.tmg.liveUpdate=function(){var vars={since_id:gdna.tmg.since};if(gdna.tmg.game)vars.game=gdna.tmg.game;$.ajax({type:"GET",cache:false,dataType:"json",url:gdna.tmg.feedURL,data:vars,success:function(data){gdna.tmg.errorRefreshInterval=gdna.tmg.refreshInterval;var tdelta=2000;var deltatotal=0;$.each(data.tweets,function(i,t){if(t.tweet_id>gdna.tmg.since)gdna.tmg.since=t.tweet_id;(new Image()).src=t.profile_image_url;var rendered=(new gdna.tmg.Tweet(t.tweet_id,t.twitter_tweet_id,t.profile_image_url,t.text,t.created_at,t.from_user,t.hashtags,t.reply_url)).render();setTimeout(function(){rendered.prependTo(gdna.tmg.feed);gdna.tmg.feed.css({top:0-rendered.outerHeight()}).animate({top:0},500,"tmgPlop",function(){var tl=gdna.tmg.feed.children(".tweet");if(tl.length>=gdna.tmg.max_tweets){gdna.tmg.feed.children(".tweet:last").remove();}});setTimeout(gdna.tmg.tickClock,500);},tdelta*i);});var wait=gdna.tmg.refreshInterval;var animationTime=(data.tweets.length)*tdelta;if(animationTime>gdna.tmg.refreshInterval)wait=animationTime;setTimeout(gdna.tmg.liveUpdate,wait);},error:function(xhr){gdna.tmg.errorRefreshInterval=gdna.tmg.errorRefreshInterval*1.2;setTimeout(gdna.tmg.liveUpdate,gdna.tmg.errorRefreshInterval);}});};gdna.tmg.getCurrentUser=function(loggedin,loggedout,error){if(!loggedin)loggedin=function(){};if(!loggedout)loggedout=function(){};if(!error)error=function(){};$.ajax({type:"GET",cache:false,dataType:"json",url:"/twitter/oauth/who/",success:function(data){if(data.screen_name){loggedin(new gdna.tmg.TwitterUser(data.screen_name));}else if(data.auth_url){loggedout(data.auth_url);}else{error();}},error:error});};gdna.tmg.tweetRelClick=function(){gdna.tmg.composeTweet($(this).attr("rel"));return false;};gdna.tmg.replyClick=function(){var for_tweet=$(this);var hashtags=for_tweet.attr("rel");var reply_id=gdna.tmg.parseHTMLTweetID(for_tweet.parents(".tweet").attr("id"));var reply_user=$(".from_user",for_tweet.parents(".tweet")).html();var body=hashtags;if(reply_user)body="@"+reply_user+" "+hashtags;gdna.tmg.composeTweet(body,reply_id);return false;};gdna.tmg.composeTweet=function(body,reply_id){var close_box=function(){jQuery(document).trigger('close.dialog');return false;};var panel_loading=$('<div id="post_tweet" class="loading">\
  <div class="content">\
   <p>Loading...</p>\
  </div>\
 </div>');var panel_post=$('<div id="post_tweet" class="default">\
  <h3>Post a Tweet</h3>\
  <form method="post">\
   <div class="content">\
    <div id="twitter_auth"></div>\
    <label for="pt_text">Tweet:</label>\
    <textarea name="pt_text" id="pt_text"></textarea>\
   </div>\
   <div class="controls">\
    <p>\
     <span id="pt_charcount">140</span>\
     <input type="submit" value="Post Tweet" id="pt_submit" class="submit">\
     <a href="/" class="cancel">Cancel</a>\
    </p>\
   </div>\
  </form>\
 </div>');$("#pt_text",panel_post).val(body);var panel_posting=$('<div id="post_tweet" class="loading">\
  <div class="content">\
   <p>Posting...</p>\
  </div>\
 </div>');var panel_net_error=$('<div id="post_tweet" class="error">\
  <div class="content">\
   <p>We couldn&#8217;t post that tweet for some reason! Try again.</p>\
  </div>\
 </div>');var panel_auth_error=$('<div id="post_tweet" class="error">\
  <div class="content">\
   <p>We couldn&#8217;t log you into Twitter! Try again.</p>\
  </div>\
 </div>');var panel_logout_confirmation=$('<div id="post_tweet" class="success">\
  <div class="content">\
   <p>Alrighty, we&#039;ve logged you out of Twitter!</p>\
  </div>\
 </div>');var panel_success=$('<div id="post_tweet" class="success">\
  <div class="content">\
   <p>Posted!</p>\
  </div>\
 </div>');var panel_oauth_login=$('<div id="post_tweet" class="authorize">\
  <div class="content">\
      <p>\
          To be able to post tweets from here, you need to authorize us to\
          access your Twitter account. It&#8217;s safe, we will only ever post\
          what you tell us to, and you can revoke our access at any time.\
      </p>\
  </div>\
  <div class="controls">\
      <p>\
       <a class="auth_url"><span class="replace">Authorize using OAuth!</span></a>\
       <a href="/" class="cancel">Cancel</a>\
   </p>\
  </div>\
 </div>');var show_panel_post=function(){$("#post_tweet").replaceWith(panel_post);$("input.text",panel_post).placeholder("placeholder","clear");var submit_button=$("#pt_submit",panel_post);var textarea=$("#pt_text",panel_post);$("form",panel_post).submit(function(){submit_button.attr("disabled",true);gdna.tmg.user.postTweet(textarea.val(),reply_id,function(){show_panel_success();submit_button.attr("disabled",false);},function(xhr){if(xhr.status==403){show_panel_auth_error();}else{show_panel_net_error();}
submit_button.attr("disabled",false);});show_panel_posting();gdna.tmg.user=null;return false;});$("a.forget_me",panel_post).click(function(){gdna.tmg.logout();show_panel_logout_confirmation();return false;});$("a.cancel",panel_post).click(close_box);var char_count=$("#pt_charcount",panel_post);var textarea=$("#pt_text",panel_post);var updateCount=function(){var len=textarea.val().length;var chars=140-len;char_count.html(chars);if(chars<0){char_count.addClass("overflow");}else{char_count.removeClass("overflow");}
submit_button.attr("disabled",(chars<0||len<=0));};updateCount();textarea.keypress(updateCount).keyup(updateCount);};var show_panel_posting=function(){$("#post_tweet").replaceWith(panel_posting);};var show_panel_logout_confirmation=function(){setTimeout(function(){jQuery(document).trigger('close.dialog');},2000);$("#post_tweet").replaceWith(panel_logout_confirmation);};var show_panel_success=function(){setTimeout(function(){jQuery(document).trigger('close.dialog');},2000);$("#post_tweet").replaceWith(panel_success);};var show_panel_auth_error=function(){$("#post_tweet").replaceWith(panel_auth_error);setTimeout(show_panel_post,2000);};var show_panel_net_error=function(){$("#post_tweet").replaceWith(panel_net_error);setTimeout(show_panel_post,2000);};var show_panel_net_error_fail=function(){$("#post_tweet").replaceWith(panel_net_error);};var show_panel_oauth_login=function(auth_url){$("a.auth_url",panel_oauth_login).attr("href",auth_url);$("a.cancel",panel_oauth_login).click(close_box);$("#post_tweet").replaceWith(panel_oauth_login);};$.dialog(panel_loading);gdna.tmg.getCurrentUser(function(user){gdna.tmg.user=user;var auth_ok=$('<p class="auth_ok">\
    Logged in as <strong>'+user.username+'</strong> <span class="forget">(<a class="forget_me" href="/twitter/oauth/logout/">logout</a>)</span>\
   </p>');$("#twitter_auth",panel_post).empty().append(auth_ok);show_panel_post();},function(auth_url){$.cookie('tmg_reply_tweet_body',body);$.cookie('tmg_reply_tweet_reply_id',reply_id);show_panel_oauth_login(auth_url);},show_panel_net_error_fail);};gdna.tmg.logout=function(){$.ajax({type:"POST",cache:false,dataType:"json",url:"/twitter/oauth/logout/",success:function(){gdna.tmg.user=null;},error:function(){window.location='/twitter/oauth/logout/';}});return false;};gdna.tmg.zeroPad=function(n,c){var z=n+'';while(z.length<c)z="0"+z;return z;};gdna.tmg.parseHTMLTweetID=function(id){return id.split("tweet_")[1];};gdna.tmg.tickClock=function(){$("#live_counter").html(gdna.tmg.zeroPad(++gdna.tmg.tweetCount,gdna.tmg.flipClockLength));};gdna.tmg.updateTweetTime=function(){$(".created_at").each(function(){gdna.tmg.touchTweetTime($(this));});setTimeout(gdna.tmg.updateTweetTime,10000);};gdna.tmg.touchTweetTime=function(j){if(!j.data("created_at")){j.data("created_at",j.attr("title"));j.attr("title","");}
var d=new Date();d.setISO8601(j.data("created_at"));j.html(fantastic.utils.humanTimeSince(d));};jQuery.extend(jQuery.easing,{tmgPlop:function(x,t,b,c,d){if((t/=d/1.5)<1)return c/2*t*t*t*t*t+b;return c/2*((t-=2)*t*t*t*t+2)+b;}});gdna.tmg.linkSelLoad=function(range,success,error,retry){if(!success)success=function(){};if(!error)error=function(){};var timeout=7000;if(retry)timeout=12000;if(gdna.tmg.game){data={game:gdna.tmg.game,t_range:range};}else{data={t_range:range};}
$.ajax({type:"GET",cache:false,dataType:"json",timeout:timeout,url:"/data/link_trend_list/",data:data,success:success,error:error});};gdna.tmg.linkSelClick=function(){var us=$("ul.links_control a");us.unbind('click').click(function(){return false;});var j=$(this);var range=j.attr("rel");$("ul.links_control .loading").fadeIn(100);var pops=$("#tweet_links");if(!$.browser.msie){pops.queue([]).css("opacity",1).fadeTo(250,0.6);}
$("ul.links_control a").removeClass("selected");j.addClass("selected");var complete=function(){if(!$.browser.msie){pops.queue([]).fadeTo(70,1);}
$("ul.links_control .loading").queue([]).fadeOut(100);us.unbind('click').click(gdna.tmg.linkSelClick);};var success=function(data){pops.html(data.html);complete();};var error=function(){setTimeout(gdna.tmg.linkSelLoad(range,success,function(){complete();$.dialog("<p class='error'>We had trouble communicating with the server. Try again.</p>");},true),1000);};gdna.tmg.linkSelLoad(range,success,error);return false;};gdna.tmg.popSelLoad=function(range,success,error,retry){if(!success)success=function(){};if(!error)error=function(){};var timeout=7000;if(retry)timeout=12000;$.ajax({type:"GET",cache:false,dataType:"json",timeout:timeout,url:"/data/popularities/",data:{t_range:range},success:success,error:error});};gdna.tmg.popSelClick=function(){var us=$("ul.popularities_control a");us.unbind('click').click(function(){return false;});var j=$(this);var range=j.attr("rel");$("ul.popularities_control .loading").fadeIn(100);var pops=$("ul.popularities");if(!$.browser.msie){pops.queue([]).css("opacity",1).fadeTo(250,0.6);}
$("ul.popularities_control a").removeClass("selected");j.addClass("selected");var complete=function(){if(!$.browser.msie){pops.queue([]).fadeTo(70,1);}
$(".popularities_control .loading").queue([]).fadeOut(100);us.unbind('click').click(gdna.tmg.popSelClick);};var success=function(data){pops.html(data.html);complete();};var error=function(){setTimeout(gdna.tmg.popSelLoad(range,success,function(){complete();$.dialog("<p class='error'>We had trouble communicating with the server. Try again.</p>");},true),1000);};gdna.tmg.popSelLoad(range,success,error);return false;};$(function(){(function(t){t.feed=$(t.feedSelector);t.since=$("meta[name=since_id]").attr("content");t.game=$("meta[name=game]").attr("content");var update_meta=$("meta[name=update_interval]");if(update_meta.length>0){t.refreshInterval=parseInt(update_meta.attr("content"));}else{t.refreshInterval=5000;}
t.feedURL=$("meta[name=feed_url]").attr("content");if($("#container.game").length)t.flipClockLength=5;if(document.location.href.match(/#reply$/)){var reply_body=$.cookie('tmg_reply_tweet_body');var reply_reply_id=parseInt($.cookie('tmg_reply_tweet_reply_id'));$.cookie('tmg_reply_tweet_body',null);$.cookie('tmg_reply_tweet_reply_id',null);if(isNaN(reply_reply_id))reply_reply_id=null;if(reply_body){t.composeTweet(reply_body,reply_reply_id);}}
$("#search_query").placeholder("placeholder","clear");if(t.feed.length>0&&t.since!=null){t.max_tweets=Math.ceil(t.feed.height()/80)+1;setTimeout(t.liveUpdate,t.refreshInterval/2);}
$("#navigation a").not(".selected").hover(function(){$(this).gxInit({queue:'cancel'}).height(22).gx({"height":32},70);},function(){$(this).gxInit({queue:'cancel'}).gx({"height":22},70);});var chirp=$("#chirp_bubble").css("opacity",0.00).show();$("#header h1 a").hover(function(){chirp.stop().animate({"opacity":1.0},100);},function(){chirp.stop().animate({"opacity":0.0},200);});if(!jQuery.browser.msie){$(".overlay_gloss").hover(function(){var o=$(this);o.data("org_opacity",o.css("opacity")).stop().animate({"opacity":1},70);},function(){var o=$(this);o.stop().animate({"opacity":o.data("org_opacity")},150);});}
t.flipClock=$("#live_counter");if(t.flipClock.length>0){t.tweetCount=parseInt($("meta[name=n_tweets]").attr("content"));}
$(".popularity a").backgroundHoverFade("#dde8dd","#f0f0f0");$(".filter_picker a:not(.selected)").backgroundHoverFade("#242425","#464649");$("#elsewhere li a").backgroundHoverFade("#d0d0d0","#e3e3e3");$("#tweet_links li a").backgroundHoverFade("#d0d0d0","#e3e3e3");$("#manual_links li a").backgroundHoverFade("#d0d0d0","#e3e3e3");$("#also_playing li a").backgroundHoverFade("#d0d0d0","#e3e3e3");t.updateTweetTime();$(".tweet a.reply").live('click',t.replyClick);$("a.tweet_this_game").live('click',t.tweetRelClick);$("a#share").click(t.tweetRelClick);$("ul.popularities_control a").click(t.popSelClick);$("ul.links_control a").click(t.linkSelClick);})(gdna.tmg);});(function(){var root='/media/img/dialog/';var imgs=['b.png','tl.png','tr.png','bl.png','br.png'];for(var x in imgs){var i=new Image();i.src=root+imgs[x];}})();$(function(){var pl_timestamp=$("meta[name=postlink_timestamp]");var pl_timestamp_val=pl_timestamp.attr("content");var pl_nonce_val=$("meta[name=postlink_nonce").attr("content");if(pl_timestamp.length>0){$('li.popularity a').each(function(){$(this).postlink({'signature':this.id,'timestamp':pl_timestamp_val,'nonce':pl_nonce_val});});}});