TWTR=window.TWTR||{};

if(!Array.forEach){
    Array.prototype.filter=function(E,F){
        var D=F||window;
        var A=[];
        for(var C=0,B=this.length;C<B;++C){
            if(!E.call(D,this[C],C,this)){
                continue
            }
            A.push(this[C])
            }
            return A
        };

    Array.prototype.indexOf=function(B,C){
        var C=C||0;
        for(var A=0;A<this.length;++A){
            if(this[A]===B){
                return A
                }
            }
        return -1
    }
    }(function(){
    if(TWTR&&TWTR.Widget){
        return
    }
    function F(J,M,I){
        for(var L=0,K=J.length;L<K;++L){
            M.call(I||window,J[L],L,J)
            }
        }
        function B(I,K,J){
    this.el=I;
    this.prop=K;
    this.from=J.from;
    this.to=J.to;
    this.time=J.time;
    this.callback=J.callback;
    this.animDiff=this.to-this.from
    }
    B.canTransition=function(){
    var I=document.createElement("twitter");
    I.style.cssText="-webkit-transition: all .5s linear;";
    return !!I.style.webkitTransitionProperty
    }();
    B.prototype._setStyle=function(I){
    switch(this.prop){
        case"opacity":
            this.el.style[this.prop]=I;
            this.el.style.filter="alpha(opacity="+I*100+")";
            break;
        default:
            this.el.style[this.prop]=I+"px";
            break
            }
        };

B.prototype._animate=function(){
    var I=this;
    this.now=new Date();
    this.diff=this.now-this.startTime;
    if(this.diff>this.time){
        this._setStyle(this.to);
        if(this.callback){
            this.callback.call(this)
            }
            clearInterval(this.timer);
        return
    }
    this.percentage=(Math.floor((this.diff/this.time)*100)/100);
    this.val=(this.animDiff*this.percentage)+this.from;
    this._setStyle(this.val)
    };

B.prototype.start=function(){
    var I=this;
    this.startTime=new Date();
    this.timer=setInterval(function(){
        I._animate.call(I)
        },15)
    };

TWTR.Widget=function(I){
    this.init(I)
    };
(function(){
    var X={};

    var U=location.protocol.match(/https/);
    var W=/^.+\/profile_images/;
    var c="https://s3.amazonaws.com/twitter_production/profile_images";
    var d=function(n){
        return U?n.replace(W,c):n
        };

    var m={};

    var k=function(o){
        var n=m[o];
        if(!n){
            n=new RegExp("(?:^|\\s+)"+o+"(?:\\s+|$)");
            m[o]=n
            }
            return n
        };

    var J=function(r,v,s,t){
        var v=v||"*";
        var s=s||document;
        var o=[],n=s.getElementsByTagName(v),u=k(r);
        for(var p=0,q=n.length;p<q;++p){
            if(u.test(n[p].className)){
                o[o.length]=n[p];
                if(t){
                    t.call(n[p],n[p])
                    }
                }
        }
        return o
};

var l=function(){
    var n=navigator.userAgent;
    return{
        ie:n.match(/MSIE\s([^;]*)/)
        }
    }();
var N=function(n){
    if(typeof n=="string"){
        return document.getElementById(n)
        }
        return n
    };

var f=function(n){
    return n.replace(/^\s+|\s+$/g,"")
    };

var b=function(){
    var n=self.innerHeight;
    var o=document.compatMode;
    if((o||l.ie)){
        n=(o=="CSS1Compat")?document.documentElement.clientHeight:document.body.clientHeight
        }
        return n
    };

var j=function(p,n){
    var o=p.target||p.srcElement;
    return n(o)
    };

var Z=function(o){
    try{
        if(o&&3==o.nodeType){
            return o.parentNode
            }else{
            return o
            }
        }catch(n){}
};

var a=function(o){
    var n=o.relatedTarget;
    if(!n){
        if(o.type=="mouseout"){
            n=o.toElement
            }else{
            if(o.type=="mouseover"){
                n=o.fromElement
                }
            }
    }
return Z(n)
};

var g=function(o,n){
    n.parentNode.insertBefore(o,n.nextSibling)
    };

var h=function(o){
    try{
        o.parentNode.removeChild(o)
        }catch(n){}
};

var e=function(n){
    return n.firstChild
    };

var I=function(p){
    var o=a(p);
    while(o&&o!=this){
        try{
            o=o.parentNode
            }catch(n){
            o=this
            }
        }
    if(o!=this){
    return true
    }
    return false
};

var M=function(){
    if(document.defaultView&&document.defaultView.getComputedStyle){
        return function(o,r){
            var q=null;
            var p=document.defaultView.getComputedStyle(o,"");
            if(p){
                q=p[r]
                }
                var n=o.style[r]||q;
            return n
            }
        }else{
    if(document.documentElement.currentStyle&&l.ie){
        return function(n,p){
            var o=n.currentStyle?n.currentStyle[p]:null;
            return(n.style[p]||o)
            }
        }
}
}();
var i={
    has:function(n,o){
        return new RegExp("(^|\\s)"+o+"(\\s|$)").test(N(n).className)
        },
    add:function(n,o){
        if(!this.has(n,o)){
            N(n).className=f(N(n).className)+" "+o
            }
        },
remove:function(n,o){
    if(this.has(n,o)){
        N(n).className=N(n).className.replace(new RegExp("(^|\\s)"+o+"(\\s|$)","g"),"")
        }
    }
};

var K={
    add:function(p,o,n){
        if(p.addEventListener){
            p.addEventListener(o,n,false)
            }else{
            p.attachEvent("on"+o,function(){
                n.call(p,window.event)
                })
            }
        },
remove:function(p,o,n){
    if(p.removeEventListener){
        p.removeEventListener(o,n,false)
        }else{
        p.detachEvent("on"+o,n)
        }
    }
};

var T=function(){
    function o(q){
        return parseInt((q).substring(0,2),16)
        }
        function n(q){
        return parseInt((q).substring(2,4),16)
        }
        function p(q){
        return parseInt((q).substring(4,6),16)
        }
        return function(q){
        return[o(q),n(q),p(q)]
        }
    }();
var O={
    bool:function(n){
        return typeof n==="boolean"
        },
    def:function(n){
        return !(typeof n==="undefined")
        },
    number:function(o){
        return typeof o==="number"&&isFinite(o)
        },
    string:function(n){
        return typeof n==="string"
        },
    fn:function(n){
        return typeof n==="function"
        },
    array:function(n){
        if(n){
            return O.number(n.length)&&O.fn(n.splice)
            }
            return false
        }
    };

var S=["January","February","March","April","May","June","July","August","September","October","November","December"];
var Y=function(q){
    var u=new Date(q);
    if(l.ie){
        u=Date.parse(q.replace(/( \+)/," UTC$1"))
        }
        var o="";
    var n=function(){
        var s=u.getHours();
        if(s>0&&s<13){
            o="am";
            return s
            }else{
            if(s<1){
                o="am";
                return 12
                }else{
                o="pm";
                return s-12
                }
            }
    }();
var p=u.getMinutes();
var t=u.getSeconds();
function r(){
    var s=new Date();
    if(s.getDate()!=u.getDate()||s.getYear()!=u.getYear()||s.getMonth()!=u.getMonth()){
        return" - "+S[u.getMonth()]+" "+u.getDate()+", "+u.getFullYear()
        }else{
        return""
        }
    }
return n+":"+p+o+r()
};

var Q=function(t){
    var v=new Date();
    var r=new Date(t);
    if(l.ie){
        r=Date.parse(t.replace(/( \+)/," UTC$1"))
        }
        var u=v-r;
    var o=1000,p=o*60,q=p*60,s=q*24,n=s*7;
    if(isNaN(u)||u<0){
        return""
        }
        if(u<o*2){
        return"right now"
        }
        if(u<p){
        return Math.floor(u/o)+" seconds ago"
        }
        if(u<p*2){
        return"about 1 minute ago"
        }
        if(u<q){
        return Math.floor(u/p)+" minutes ago"
        }
        if(u<q*2){
        return"about 1 hour ago"
        }
        if(u<s){
        return Math.floor(u/q)+" hours ago"
        }
        if(u>s&&u<s*2){
        return"yesterday"
        }
        if(u<s*365){
        return Math.floor(u/s)+" days ago"
        }else{
        return"over a year ago"
        }
    };

var L={
    link:function(n){
        return n.replace(/\b(((https*\:\/\/)|www\.)[^\"\']+?)(([!?,.\)]+)?(\s|$))/g,function(t,s,q,p,o){
            var r=q.match(/w/)?"http://":"";
            return'<a class="twtr-hyperlink" target="_blank" href="'+r+s+'">'+((s.length>25)?s.substr(0,24)+"...":s)+"</a>"+o
            })
        },
    at:function(n){
        return n.replace(/\B[@Ã¯Â¼Â ]([a-zA-Z0-9_]{1,20})/g,function(o,p){
            return'@<a target="_blank" class="twtr-atreply" href="http://twitter.com/intent/user?screen_name='+p+'">'+p+"</a>"
            })
        },
    list:function(n){
        return n.replace(/\B[@Ã¯Â¼Â ]([a-zA-Z0-9_]{1,20}\/\w+)/g,function(o,p){
            return'@<a target="_blank" class="twtr-atreply" href="http://twitter.com/'+p+'">'+p+"</a>"
            })
        },
    hash:function(n){
        return n.replace(/(^|\s+)#(\w+)/gi,function(o,p,q){
            return p+'<a target="_blank" class="twtr-hashtag" href="http://twitter.com/search?q=%23'+q+'">#'+q+"</a>"
            })
        },
    clean:function(n){
        return this.hash(this.at(this.list(this.link(n))))
        }
    };

function V(o,p,n){
    this.job=o;
    this.decayFn=p;
    this.interval=n;
    this.decayRate=1;
    this.decayMultiplier=1.25;
    this.maxDecayTime=3*60*1000
}
V.prototype={
    start:function(){
        this.stop().run();
        return this
        },
    stop:function(){
        if(this.worker){
            window.clearTimeout(this.worker)
            }
            return this
        },
    run:function(){
        var n=this;
        this.job(function(){
            n.decayRate=n.decayFn()?Math.max(1,n.decayRate/n.decayMultiplier):n.decayRate*n.decayMultiplier;
            var o=n.interval*n.decayRate;
            o=(o>=n.maxDecayTime)?n.maxDecayTime:o;
            o=Math.floor(o);
            n.worker=window.setTimeout(function(){
                n.run.call(n)
                },o)
            })
        },
    destroy:function(){
        this.stop();
        this.decayRate=1;
        return this
        }
    };

function P(o,n,p){
    this.time=o||6000;
    this.loop=n||false;
    this.repeated=0;
    this.callback=p;
    this.haystack=[]
    }
    P.prototype={
    set:function(n){
        this.haystack=n
        },
    add:function(n){
        this.haystack.unshift(n)
        },
    start:function(){
        if(this.timer){
            return this
            }
            this._job();
        var n=this;
        this.timer=setInterval(function(){
            n._job.call(n)
            },this.time);
        return this
        },
    stop:function(){
        if(this.timer){
            window.clearInterval(this.timer);
            this.timer=null
            }
            return this
        },
    _next:function(){
        var n=this.haystack.shift();
        if(n&&this.loop){
            this.haystack.push(n)
            }
            return n||null
        },
    _job:function(){
        var n=this._next();
        if(n){
            this.callback(n)
            }
            return this
        }
    };

function R(p){
    function n(){
        if(p.needle.metadata&&p.needle.metadata.result_type&&p.needle.metadata.result_type=="popular"){
            return'<span class="twtr-popular">'+p.needle.metadata.recent_retweets+"+ recent retweets</span>"
            }else{
            return""
            }
        }
    var o='<div class="twtr-tweet-wrap">         <div class="twtr-avatar">           <div class="twtr-img"><a target="_blank" href="http://twitter.com/intent/user?screen_name='+p.user+'"><img alt="'+p.user+' profile" src="'+d(p.avatar)+'"></a></div>         </div>         <div class="twtr-tweet-text">           <p>             <a target="_blank" href="http://twitter.com/intent/user?screen_name='+p.user+'" class="twtr-user">'+p.user+"</a> "+p.tweet+'             <em>            <a target="_blank" class="twtr-timestamp" time="'+p.timestamp+'" href="http://twitter.com/'+p.user+"/status/"+p.id+'">'+p.created_at+'</a> &middot;            <a target="_blank" class="twtr-reply" href="http://twitter.com/intent/tweet?in_reply_to='+p.id+'">reply</a> &middot;             <a target="_blank" class="twtr-rt" href="http://twitter.com/intent/retweet?tweet_id='+p.id+'">retweet</a> &middot;             <a target="_blank" class="twtr-fav" href="http://twitter.com/intent/favorite?tweet_id='+p.id+'">favorite</a>             </em> '+n()+"           </p>         </div>       </div>";
var q=document.createElement("div");
q.id="tweet-id-"+ ++R._tweetCount;
q.className="twtr-tweet";
q.innerHTML=o;
this.element=q
}
R._tweetCount=0;
X.loadStyleSheet=function(p,o){
    if(!TWTR.Widget.loadingStyleSheet){
        TWTR.Widget.loadingStyleSheet=true;
        var n=document.createElement("link");
        n.href=p;
        n.rel="stylesheet";
        n.type="text/css";
        document.getElementsByTagName("head")[0].appendChild(n);
        var q=setInterval(function(){
            var r=M(o,"position");
            if(r=="relative"){
                clearInterval(q);
                q=null;
                TWTR.Widget.hasLoadedStyleSheet=true
                }
            },50)
    }
};
(function(){
    var n=false;
    X.css=function(q){
        var p=document.createElement("style");
        p.type="text/css";
        if(l.ie){
            p.styleSheet.cssText=q
            }else{
            var r=document.createDocumentFragment();
            r.appendChild(document.createTextNode(q));
            p.appendChild(r)
            }
            function o(){
            document.getElementsByTagName("head")[0].appendChild(p)
            }
            if(!l.ie||n){
            o()
            }else{
            window.attachEvent("onload",function(){
                n=true;
                o()
                })
            }
        }
})();
TWTR.Widget.isLoaded=false;
TWTR.Widget.loadingStyleSheet=false;
TWTR.Widget.hasLoadedStyleSheet=false;
TWTR.Widget.WIDGET_NUMBER=0;
TWTR.Widget.REFRESH_MIN=6000;
TWTR.Widget.matches={
    mentions:/^@[a-zA-Z0-9_]{1,20}\b/,
    any_mentions:/\b@[a-zA-Z0-9_]{1,20}\b/
};

TWTR.Widget.jsonP=function(o,q){
    var n=document.createElement("script");
    var p=document.getElementsByTagName("head")[0];
    n.type="text/javascript";
    n.src=o;
    p.insertBefore(n,p.firstChild);
    q(n);
    return n
    };

TWTR.Widget.prototype=function(){
    var q=U?"https://":"http://";
    var t=window.location.hostname.match(/twitter\.com/)?(window.location.hostname+":"+window.location.port):"twitter.com";
    var s=q+"search."+t+"/search.";
    var u=q+"api."+t+"/1/statuses/user_timeline.";
    var p=q+t+"/favorites/";
    var r=q+"api."+t+"/1/";
    var o=25000;
    var n=U?"https://twitter-widgets.s3.amazonaws.com/j/1/default.gif":"http://widgets.twimg.com/j/1/default.gif";
    return{
        init:function(w){
            var v=this;
            this._widgetNumber=++TWTR.Widget.WIDGET_NUMBER;
            TWTR.Widget["receiveCallback_"+this._widgetNumber]=function(x){
                v._prePlay.call(v,x)
                };

            this._cb="TWTR.Widget.receiveCallback_"+this._widgetNumber;
            this.opts=w;
            this._base=s;
            this._isRunning=false;
            this._hasOfficiallyStarted=false;
            this._hasNewSearchResults=false;
            this._rendered=false;
            this._profileImage=false;
            this._isCreator=!!w.creator;
            this._setWidgetType(w.type);
            this.timesRequested=0;
            this.runOnce=false;
            this.newResults=false;
            this.results=[];
            this.jsonMaxRequestTimeOut=19000;
            this.showedResults=[];
            this.sinceId=1;
            this.source="TWITTERINC_WIDGET";
            this.id=w.id||"twtr-widget-"+this._widgetNumber;
            this.tweets=0;
            this.setDimensions(w.width,w.height);
            this.interval=w.interval?Math.max(w.interval,TWTR.Widget.REFRESH_MIN):TWTR.Widget.REFRESH_MIN;
            this.format="json";
            this.rpp=w.rpp||50;
            this.subject=w.subject||"";
            this.title=w.title||"";
            this.setFooterText(w.footer);
            this.setSearch(w.search);
            this._setUrl();
            this.theme=w.theme?w.theme:this._getDefaultTheme();
            if(!w.id){
                document.write('<div class="twtr-widget" id="'+this.id+'"></div>')
                }
                this.widgetEl=N(this.id);
            if(w.id){
                i.add(this.widgetEl,"twtr-widget")
                }
                if(w.version>=2&&!TWTR.Widget.hasLoadedStyleSheet){
                if(U){
                    X.loadStyleSheet("https://twitter-widgets.s3.amazonaws.com/j/2/widget.css",this.widgetEl)
                    }else{
                    if(w.creator){
                        X.loadStyleSheet("/stylesheets/widgets/widget.css",this.widgetEl)
                        }else{
                        X.loadStyleSheet("http://widgets.twimg.com/j/2/widget.css",this.widgetEl)
                        }
                    }
            }
        this.occasionalJob=new V(function(x){
        v.decay=x;
        v._getResults.call(v)
        },function(){
        return v._decayDecider.call(v)
        },o);
    this._ready=O.fn(w.ready)?w.ready:function(){};

    this._isRelativeTime=true;
    this._tweetFilter=false;
    this._avatars=true;
    this._isFullScreen=false;
    this._isLive=true;
    this._isScroll=false;
    this._loop=true;
    this._showTopTweets=(this._isSearchWidget)?true:false;
    this._behavior="default";
    this.setFeatures(this.opts.features);
    this.intervalJob=new P(this.interval,this._loop,function(x){
        v._normalizeTweet(x)
        });
    return this
    },
setDimensions:function(v,x){
    this.wh=(v&&x)?[v,x]:[250,300];
    if(v=="auto"||v=="100%"){
        this.wh[0]="100%"
        }else{
        this.wh[0]=((this.wh[0]<150)?150:this.wh[0])+"px"
        }
        this.wh[1]=((this.wh[1]<100)?100:this.wh[1])+"px";
    return this
    },
setRpp:function(v){
    var v=parseInt(v);
    this.rpp=(O.number(v)&&(v>0&&v<=100))?v:30;
    return this
    },
_setWidgetType:function(v){
    this._isSearchWidget=false,this._isProfileWidget=false,this._isFavsWidget=false,this._isListWidget=false;
    switch(v){
        case"profile":
            this._isProfileWidget=true;
            break;
        case"search":
            this._isSearchWidget=true,this.search=this.opts.search;
            break;
        case"faves":case"favs":
            this._isFavsWidget=true;
            break;
        case"list":case"lists":
            this._isListWidget=true;
            break
            }
            return this
    },
setFeatures:function(w){
    if(w){
        if(O.def(w.filters)){
            this._tweetFilter=w.filters
            }
            if(O.def(w.dateformat)){
            this._isRelativeTime=!!(w.dateformat!=="absolute")
            }
            if(O.def(w.fullscreen)&&O.bool(w.fullscreen)){
            if(w.fullscreen){
                this._isFullScreen=true;
                this.wh[0]="100%";
                this.wh[1]=(b()-90)+"px";
                var x=this;
                K.add(window,"resize",function(AA){
                    x.wh[1]=b();
                    x._fullScreenResize()
                    })
                }
            }
        if(O.def(w.loop)&&O.bool(w.loop)){
        this._loop=w.loop
        }
        if(O.def(w.behavior)&&O.string(w.behavior)){
        switch(w.behavior){
            case"all":
                this._behavior="all";
                break;
            case"preloaded":
                this._behavior="preloaded";
                break;
            default:
                this._behavior="default";
                break
                }
            }
    if(O.def(w.toptweets)&&O.bool(w.toptweets)){
    this._showTopTweets=w.toptweets;
    var v=(this._showTopTweets)?"inline-block":"none";
    X.css("#"+this.id+" .twtr-popular { display: "+v+"; }")
    }
    if(!O.def(w.toptweets)){
    this._showTopTweets=true;
    var v=(this._showTopTweets)?"inline-block":"none";
    X.css("#"+this.id+" .twtr-popular { display: "+v+"; }")
    }
    if(O.def(w.avatars)&&O.bool(w.avatars)){
    if(!w.avatars){
        X.css("#"+this.id+" .twtr-avatar, #"+this.id+" .twtr-user { display: none; } #"+this.id+" .twtr-tweet-text { margin-left: 0; }");
        this._avatars=false
        }else{
        var y=(this._isFullScreen)?"90px":"40px";
        X.css("#"+this.id+" .twtr-avatar { display: block; } #"+this.id+" .twtr-user { display: inline; } #"+this.id+" .twtr-tweet-text { margin-left: "+y+"; }");
        this._avatars=true
        }
    }else{
    if(this._isProfileWidget){
        this.setFeatures({
            avatars:false
        });
        this._avatars=false
        }else{
        this.setFeatures({
            avatars:true
        });
        this._avatars=true
        }
    }
if(O.def(w.hashtags)&&O.bool(w.hashtags)){
    (!w.hashtags)?X.css("#"+this.id+" a.twtr-hashtag { display: none; }"):""
    }
    if(O.def(w.timestamp)&&O.bool(w.timestamp)){
    var z=w.timestamp?"block":"none";
    X.css("#"+this.id+" em { display: "+z+"; }")
    }
    if(O.def(w.live)&&O.bool(w.live)){
    this._isLive=w.live
    }
    if(O.def(w.scrollbar)&&O.bool(w.scrollbar)){
    this._isScroll=w.scrollbar
    }
}else{
    if(this._isProfileWidget){
        this.setFeatures({
            avatars:false
        });
        this._avatars=false
        }
        if(this._isProfileWidget||this._isFavsWidget){
        this.setFeatures({
            behavior:"all"
        })
        }
    }
return this
},
_fullScreenResize:function(){
    var v=J("twtr-timeline","div",document.body,function(w){
        w.style.height=(b()-90)+"px"
        })
    },
setTweetInterval:function(v){
    this.interval=v;
    return this
    },
setBase:function(v){
    this._base=v;
    return this
    },
setUser:function(w,v){
    this.username=w;
    this.realname=v||" ";
    if(this._isFavsWidget){
        this.setBase(p+w+".")
        }else{
        if(this._isProfileWidget){
            this.setBase(u+this.format+"?screen_name="+w)
            }
        }
    this.setSearch(" ");
return this
},
setList:function(w,v){
    this.listslug=v.replace(/ /g,"-").toLowerCase();
    this.username=w;
    this.setBase(r+w+"/lists/"+this.listslug+"/statuses.");
    this.setSearch(" ");
    return this
    },
setProfileImage:function(v){
    this._profileImage=v;
    this.byClass("twtr-profile-img","img").src=d(v);
    this.byClass("twtr-profile-img-anchor","a").href="http://twitter.com/intent/user?screen_name="+this.username;
    return this
    },
setTitle:function(v){
    this.title=v;
    this.widgetEl.getElementsByTagName("h3")[0].innerHTML=this.title;
    return this
    },
setCaption:function(v){
    this.subject=v;
    this.widgetEl.getElementsByTagName("h4")[0].innerHTML=this.subject;
    return this
    },
setFooterText:function(v){
    this.footerText=(O.def(v)&&O.string(v))?v:"Join the conversation";
    if(this._rendered){
        this.byClass("twtr-join-conv","a").innerHTML=this.footerText
        }
        return this
    },
setSearch:function(w){
    this.searchString=w||"";
    this.search=encodeURIComponent(this.searchString);
    this._setUrl();
    if(this._rendered){
        var v=this.byClass("twtr-join-conv","a");
        v.href="http://twitter.com/"+this._getWidgetPath()
        }
        return this
    },
_getWidgetPath:function(){
    if(this._isProfileWidget){
        return this.username
        }else{
        if(this._isFavsWidget){
            return this.username+"/favorites"
            }else{
            if(this._isListWidget){
                return this.username+"/lists/"+this.listslug
                }else{
                return"#search?q="+this.search
                }
            }
    }
},
_setUrl:function(){
    var w=this;
    function v(){
        return"&"+(+new Date)+"=cachebust"
        }
        function x(){
        return(w.sinceId==1)?"":"&since_id="+w.sinceId+"&refresh=true"
        }
        if(this._isProfileWidget){
        this.url=this._base+"&callback="+this._cb+"&include_rts=true&count="+this.rpp+x()+"&clientsource="+this.source
        }else{
        if(this._isFavsWidget||this._isListWidget){
            this.url=this._base+this.format+"?callback="+this._cb+x()+"&clientsource="+this.source
            }else{
            this.url=this._base+this.format+"?q="+this.search+"&include_rts=true&callback="+this._cb+"&rpp="+this.rpp+x()+"&clientsource="+this.source;
            if(!this.runOnce){
                this.url+="&result_type=recent"
                }
            }
    }
this.url+=v();
return this
},
_getRGB:function(v){
    return T(v.substring(1,7))
    },
setTheme:function(AA,v){
    var y=this;
    var w=" !important";
    var z=((window.location.hostname.match(/twitter\.com/))&&(window.location.pathname.match(/goodies/)));
    if(v||z){
        w=""
        }
        this.theme={
        shell:{
            background:function(){
                return AA.shell.background||y._getDefaultTheme().shell.background
                }(),
            color:function(){
                return AA.shell.color||y._getDefaultTheme().shell.color
                }()
            },
        tweets:{
            background:function(){
                return AA.tweets.background||y._getDefaultTheme().tweets.background
                }(),
            color:function(){
                return AA.tweets.color||y._getDefaultTheme().tweets.color
                }(),
            links:function(){
                return AA.tweets.links||y._getDefaultTheme().tweets.links
                }()
            }
        };

var x="#"+this.id+" .twtr-doc,                      #"+this.id+" .twtr-hd a,                      #"+this.id+" h3,                      #"+this.id+" h4,                      #"+this.id+" .twtr-popular {            background-color: "+this.theme.shell.background+w+";            color: "+this.theme.shell.color+w+";          }          #"+this.id+" .twtr-popular {            color: "+this.theme.tweets.color+w+";            background-color: rgba("+this._getRGB(this.theme.shell.background)+", .3)"+w+";          }          #"+this.id+" .twtr-tweet a {            color: "+this.theme.tweets.links+w+";          }          #"+this.id+" .twtr-bd, #"+this.id+" .twtr-timeline i a,           #"+this.id+" .twtr-bd p {            color: "+this.theme.tweets.color+w+";          }          #"+this.id+" .twtr-new-results,           #"+this.id+" .twtr-results-inner,           #"+this.id+" .twtr-timeline {            background: "+this.theme.tweets.background+w+";          }";
if(l.ie){
    x+="#"+this.id+" .twtr-tweet { background: "+this.theme.tweets.background+w+"; }"
    }
    X.css(x);
return this
},
byClass:function(y,v,w){
    var x=J(y,v,N(this.id));
    return(w)?x:x[0]
    },
render:function(){
    var x=this;
    if(!TWTR.Widget.hasLoadedStyleSheet){
        window.setTimeout(function(){
            x.render.call(x)
            },50);
        return this
        }
        this.setTheme(this.theme,this._isCreator);
    if(this._isProfileWidget){
        i.add(this.widgetEl,"twtr-widget-profile")
        }
        if(this._isScroll){
        i.add(this.widgetEl,"twtr-scroll")
        }
        if(!this._isLive&&!this._isScroll){
        this.wh[1]="auto"
        }
        if(this._isSearchWidget&&this._isFullScreen){
        document.title="Twitter search: "+escape(this.searchString)
        }
        this.widgetEl.innerHTML=this._getWidgetHtml();
    var w=this.byClass("twtr-timeline","div");
    if(this._isLive&&!this._isFullScreen){
        var y=function(z){
            if(x._behavior==="all"){
                return
            }
            if(I.call(this,z)){
                x.pause.call(x)
                }
            };

    var v=function(z){
        if(x._behavior==="all"){
            return
        }
        if(I.call(this,z)){
            x.resume.call(x)
            }
        };

this.removeEvents=function(){
    K.remove(w,"mouseover",y);
    K.remove(w,"mouseout",v)
    };

K.add(w,"mouseover",y);
K.add(w,"mouseout",v)
}
this._rendered=true;
this._ready();
return this
},
removeEvents:function(){},
_getDefaultTheme:function(){
    return{
        shell:{
            background:"#8ec1da",
            color:"#ffffff"
        },
        tweets:{
            background:"#ffffff",
            color:"#444444",
            links:"#1985b5"
        }
    }
},
_getWidgetHtml:function(){
    var x=this;
    function z(){
        if(x._isProfileWidget){
            return'<a target="_blank" href="http://twitter.com/" class="twtr-profile-img-anchor">\n\
                        <img alt="profile" class="twtr-profile-img" src="'+n+'">\n\
                   </a>\n\
                      <h3></h3>\n\
                      <h4></h4>'

            }else{
            return"<h3>"+x.title+"</h3><h4>"+x.subject+"</h4>"
            }
        }
    function w(){
    return x._isFullScreen?" twtr-fullscreen":""
    }
    var y=U?"https://twitter-widgets.s3.amazonaws.com/i/widget-logo.png":"http://widgets.twimg.com/i/widget-logo.png";
if(this._isFullScreen){
    y="https://twitter-widgets.s3.amazonaws.com/i/widget-logo-fullscreen.png"
    }
    var v=' <div class="twtr-doc'+w()+'" style="width: '+this.wh[0]+';">            \n\
                <div class="twtr-bd">              \n\
                    <div class="twtr-timeline" style="height: '+this.wh[1]+';">                \n\
                        <div class="twtr-tweets">                  \n\
                            <div class="twtr-reference-tweet"></div>                  \n\
                            <!-- tweets show here -->                \n\
                        </div>              \n\
                    </div>            \n\
                </div>            \n\
                \n\
                <div class="twtr-ft">              \n\
                            '+"\n\
                    </div>            \n\
                </div>          \n\
            </div>";
return v
},
_appendTweet:function(v){
    this._insertNewResultsNumber();
    g(v,this.byClass("twtr-reference-tweet","div"));
    return this
    },
_slide:function(w){
    var x=this;
    var v=e(w).offsetHeight;
    if(this.runOnce){
        new B(w,"height",{
            from:0,
            to:v,
            time:500,
            callback:function(){
                x._fade.call(x,w)
                }
            }).start()
    }
    return this
},
_fade:function(v){
    var w=this;
    if(B.canTransition){
        v.style.webkitTransition="opacity 0.5s ease-out";
        v.style.opacity=1;
        return this
        }
        new B(v,"opacity",{
        from:0,
        to:1,
        time:500
    }).start();
    return this
    },
_chop:function(){
    if(this._isScroll){
        return this
        }
        var AA=this.byClass("twtr-tweet","div",true);
    var AB=this.byClass("twtr-new-results","div",true);
    if(AA.length){
        for(var x=AA.length-1;x>=0;x--){
            var z=AA[x];
            var y=parseInt(z.offsetTop);
            if(y>parseInt(this.wh[1])){
                h(z)
                }else{
                break
            }
        }
        if(AB.length>0){
        var v=AB[AB.length-1];
        var w=parseInt(v.offsetTop);
        if(w>parseInt(this.wh[1])){
            h(v)
            }
        }
}
return this
},
_appendSlideFade:function(w){
    var v=w||this.tweet.element;
    this._chop()._appendTweet(v)._slide(v);
    return this
    },
_createTweet:function(v){
    v.timestamp=v.created_at;
    v.created_at=this._isRelativeTime?Q(v.created_at):Y(v.created_at);
    this.tweet=new R(v);
    if(this._isLive&&this.runOnce){
        this.tweet.element.style.opacity=0;
        this.tweet.element.style.filter="alpha(opacity:0)";
        this.tweet.element.style.height="0"
        }
        return this
    },
_getResults:function(){
    var v=this;
    this.timesRequested++;
    this.jsonRequestRunning=true;
    this.jsonRequestTimer=window.setTimeout(function(){
        if(v.jsonRequestRunning){
            clearTimeout(v.jsonRequestTimer);
            v.jsonRequestTimer=null
            }
            v.jsonRequestRunning=false;
        h(v.scriptElement);
        v.newResults=false;
        v.decay()
        },this.jsonMaxRequestTimeOut);
    TWTR.Widget.jsonP(v.url,function(w){
        v.scriptElement=w
        })
    },
clear:function(){
    var w=this.byClass("twtr-tweet","div",true);
    var v=this.byClass("twtr-new-results","div",true);
    w=w.concat(v);
    F(w,function(x){
        h(x)
        });
    return this
    },
_sortByMagic:function(v){
    var w=this;
    if(this._tweetFilter){
        if(this._tweetFilter.negatives){
            v=v.filter(function(x){
                if(!w._tweetFilter.negatives.test(x.text)){
                    return x
                    }
                })
        }
        if(this._tweetFilter.positives){
        v=v.filter(function(x){
            if(w._tweetFilter.positives.test(x.text)){
                return x
                }
            })
    }
}
switch(this._behavior){
    case"all":
        this._sortByLatest(v);
        break;
    case"preloaded":default:
        this._sortByDefault(v);
        break
        }
        if(this._isLive&&this._behavior!=="all"){
    this.intervalJob.set(this.results);
    this.intervalJob.start()
    }
    return this
},
_loadTopTweetsAtTop:function(x){
    var y=[],z=[],w=[];
    F(x,function(AA){
        if(AA.metadata&&AA.metadata.result_type&&AA.metadata.result_type=="popular"){
            z.push(AA)
            }else{
            y.push(AA)
            }
        });
var v=z.concat(y);
return v
},
_sortByLatest:function(v){
    this.results=v;
    this.results=this.results.slice(0,this.rpp);
    this.results=this._loadTopTweetsAtTop(this.results);
    this.results.reverse();
    return this
    },
_sortByDefault:function(w){
    var x=this;
    var v=function(z){
        return new Date(z).getTime()
        };

    this.results.unshift.apply(this.results,w);
    F(this.results,function(z){
        if(!z.views){
            z.views=0
            }
        });
this.results.sort(function(AA,z){
    if(v(AA.created_at)>v(z.created_at)){
        return -1
        }else{
        if(v(AA.created_at)<v(z.created_at)){
            return 1
            }else{
            return 0
            }
        }
});
this.results=this.results.slice(0,this.rpp);
this.results=this._loadTopTweetsAtTop(this.results);
var y=this.results;
this.results=this.results.sort(function(AA,z){
    if(AA.views<z.views){
        return -1
        }else{
        if(AA.views>z.views){
            return 1
            }
        }
    return 0
});
if(!this._isLive){
    this.results.reverse()
    }
},
_prePlay:function(w){
    if(this.jsonRequestTimer){
        clearTimeout(this.jsonRequestTimer);
        this.jsonRequestTimer=null
        }
        if(!l.ie){
        h(this.scriptElement)
        }
        if(w.error){
        this.newResults=false
        }else{
        if(w.results&&w.results.length>0){
            this.response=w;
            this.newResults=true;
            this.sinceId=w.max_id_str;
            this._sortByMagic(w.results);
            if(this.isRunning()){
                this._play()
                }
            }else{
        if((this._isProfileWidget||this._isFavsWidget||this._isListWidget)&&O.array(w)&&w.length){
            this.newResults=true;
                this.sinceId=w[0].id_str;
            this._sortByMagic(w);
            if(this.isRunning()){
                this._play()
                }
            }else{
        this.newResults=false
        }
    }
}
this._setUrl();
if(this._isLive){
    this.decay()
    }
},
_play:function(){
    var v=this;
    if(this.runOnce){
        this._hasNewSearchResults=true
        }
        if(this._avatars){
        this._preloadImages(this.results)
        }
        if(this._isRelativeTime&&(this._behavior=="all"||this._behavior=="preloaded")){
        F(this.byClass("twtr-timestamp","a",true),function(w){
            w.innerHTML=Q(w.getAttribute("time"))
            })
        }
        if(!this._isLive||this._behavior=="all"||this._behavior=="preloaded"){
        F(this.results,function(x){
            if(x.retweeted_status){
                x=x.retweeted_status
                }
                if(v._isProfileWidget){
                x.from_user=x.user.screen_name;
                x.profile_image_url=x.user.profile_image_url
                }
                if(v._isFavsWidget||v._isListWidget){
                x.from_user=x.user.screen_name;
                x.profile_image_url=x.user.profile_image_url
                }
                x.id=x.id_str;
            v._createTweet({
                id:x.id,
                user:x.from_user,
                tweet:L.clean(x.text),
                avatar:x.profile_image_url,
                created_at:x.created_at,
                needle:x
            });
            var w=v.tweet.element;
            (v._behavior=="all")?v._appendSlideFade(w):v._appendTweet(w)
            });
        if(this._behavior!="preloaded"){
            return this
            }
        }
    return this
},
_normalizeTweet:function(w){
    var v=this;
    w.views++;
    if(this._isProfileWidget){
        w.from_user=v.username;
        w.profile_image_url=w.user.profile_image_url
        }
        if(this._isFavsWidget||this._isListWidget){
        w.from_user=w.user.screen_name;
        w.profile_image_url=w.user.profile_image_url
        }
        if(this._isFullScreen){
        w.profile_image_url=w.profile_image_url.replace(/_normal\./,"_bigger.")
        }
        w.id=w.id_str;
    this._createTweet({
        id:w.id,
        user:w.from_user,
        tweet:L.clean(w.text),
        avatar:w.profile_image_url,
        created_at:w.created_at,
        needle:w
    })._appendSlideFade()
    },
_insertNewResultsNumber:function(){
    if(!this._hasNewSearchResults){
        this._hasNewSearchResults=false;
        return
    }
    if(this.runOnce&&this._isSearchWidget){
        var y=this.response.total>this.rpp?this.response.total:this.response.results.length;
        var v=y>1?"s":"";
        var x=(this.response.warning&&this.response.warning.match(/adjusted since_id/))?"more than":"";
        var w=document.createElement("div");
        i.add(w,"twtr-new-results");
        w.innerHTML='<div class="twtr-results-inner"> &nbsp; </div><div class="twtr-results-hr"> &nbsp; </div><span>'+x+" <strong>"+y+"</strong> new tweet"+v+"</span>";
        g(w,this.byClass("twtr-reference-tweet","div"));
        this._hasNewSearchResults=false
        }
    },
_preloadImages:function(v){
    if(this._isProfileWidget||this._isFavsWidget||this._isListWidget){
        F(v,function(x){
            var w=new Image();
            w.src=d(x.user.profile_image_url)
            })
        }else{
        F(v,function(w){
            (new Image()).src=d(w.profile_image_url)
            })
        }
    },
_decayDecider:function(){
    var v=false;
    if(!this.runOnce){
        this.runOnce=true;
        v=true
        }else{
        if(this.newResults){
            v=true
            }
        }
    return v
},
start:function(){
    var v=this;
    if(!this._rendered){
        setTimeout(function(){
            v.start.call(v)
            },50);
        return this
        }
        if(!this._isLive){
        this._getResults()
        }else{
        this.occasionalJob.start()
        }
        this._isRunning=true;
    this._hasOfficiallyStarted=true;
    return this
    },
stop:function(){
    this.occasionalJob.stop();
    if(this.intervalJob){
        this.intervalJob.stop()
        }
        this._isRunning=false;
    return this
    },
pause:function(){
    if(this.isRunning()&&this.intervalJob){
        this.intervalJob.stop();
        i.add(this.widgetEl,"twtr-paused");
        this._isRunning=false
        }
        if(this._resumeTimer){
        clearTimeout(this._resumeTimer);
        this._resumeTimer=null
        }
        return this
    },
resume:function(){
    var v=this;
    if(!this.isRunning()&&this._hasOfficiallyStarted&&this.intervalJob){
        this._resumeTimer=window.setTimeout(function(){
            v.intervalJob.start();
            v._isRunning=true;
            i.remove(v.widgetEl,"twtr-paused")
            },2000)
        }
        return this
    },
isRunning:function(){
    return this._isRunning
    },
destroy:function(){
    this.stop();
    this.clear();
    this.runOnce=false;
    this._hasOfficiallyStarted=false;
    this._profileImage=false;
    this._isLive=true;
    this._tweetFilter=false;
    this._isScroll=false;
    this.newResults=false;
    this._isRunning=false;
    this.sinceId=1;
    this.results=[];
    this.showedResults=[];
    this.occasionalJob.destroy();
    if(this.jsonRequestRunning){
        clearTimeout(this.jsonRequestTimer)
        }
        i.remove(this.widgetEl,"twtr-scroll");
    this.removeEvents();
    return this
    }
}
}()
})();
var E=/twitter\.com(\:\d{2,4})?\/intent\/(\w+)/,H={
    tweet:true,
    retweet:true,
    favorite:true
},G="scrollbars=yes,resizable=yes,toolbar=no,location=yes",D=screen.height,C=screen.width;
function A(O){
    O=O||window.event;
    var N=O.target||O.srcElement,J,K,I,M,L;
    while(N&&N.nodeName.toLowerCase()!=="a"){
        N=N.parentNode
        }
        if(N&&N.nodeName.toLowerCase()==="a"&&N.href){
        J=N.href.match(E);
        if(J){
            K=550;
            I=(J[2] in H)?420:560;
            M=Math.round((C/2)-(K/2));
            L=0;
            if(D>I){
                L=Math.round((D/2)-(I/2))
                }
                window.open(N.href,"intent",G+",width="+K+",height="+I+",left="+M+",top="+L);
            O.returnValue=false;
            O.preventDefault&&O.preventDefault()
            }
        }
}
if(document.addEventListener){
    document.addEventListener("click",A,false)
    }else{
    if(document.attachEvent){
        document.attachEvent("onclick",A)
        }
    }
})();
