/**
 * Twitter - http://www.twitter.com
 * Copyright (C) 2009 Twitter
 * Author: Dustin Diaz (dustin@twitter.com)
 *
 * V 2.1.1 Twitter search/profile/faves/list widget
 * http://twitter.com/widgets
 */
if (!"console" in window) {
    window.console={log:function() {
    }}
}
TWTR=window.TWTR || {};
if (!Array.forEach) {
    Array.prototype.forEach=function(D, E) {
        var C=E || window;
        for (var B=0,A=this.length; B < A; ++B) {
            D.call(C, this[B], B, this)
        }
    };
    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 A(B, D, C) {
        this.el=B;
        this.prop=D;
        this.from=C.from;
        this.to=C.to;
        this.time=C.time;
        this.callback=C.callback;
        this.animDiff=this.to - this.from
    }

    A.canTransition=function() {
        var B=document.createElement("twitter");
        B.style.cssText="-webkit-transition: all .5s linear;";
        return !!B.style.webkitTransitionProperty
    }();
    A.prototype._setStyle=function(B) {
        switch (this.prop) {case"opacity":this.el.style[this.prop]=B;this.el.style.filter="alpha(opacity=" + B * 100 + ")";break;default:this.el.style[this.prop]=B + "px";break
        }
    };
    A.prototype._animate=function() {
        var B=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)
    };
    A.prototype.start=function() {
        var B=this;
        this.startTime=new Date();
        this.timer=setInterval(function() {
            B._animate.call(B)
        }, 15)
    };
    TWTR.Widget=function(B) {
        this.init(B)
    };
    (function() {
        var N={};
        var a={};
        var Y=function(d) {
            var b=a[d];
            if (!b) {
                b=new RegExp("(?:^|\\s+)" + d + "(?:\\s+|$)");
                a[d]=b
            }
            return b
        };
        var C=function(g, l, h, j) {
            var l=l || "*";
            var h=h || document;
            var d=[],b=h.getElementsByTagName(l),k=Y(g);
            for (var e=0,f=b.length; e < f; ++e) {
                if (k.test(b[e].className)) {
                    d[d.length]=b[e];
                    if (j) {
                        j.call(b[e], b[e])
                    }
                }
            }
            return d
        };
        var Z=function() {
            var b=navigator.userAgent;
            return{ie:b.match(/MSIE\s([^;]*)/)}
        }();
        var G=function(b) {
            if (typeof b == "string") {
                return document.getElementById(b)
            }
            return b
        };
        var S=function(b) {
            return b.replace(/^\s+|\s+$/g, "")
        };
        var R=function() {
            var b=self.innerHeight;
            var c=document.compatMode;
            if ((c || Z.ie)) {
                b=(c == "CSS1Compat") ? document.documentElement.clientHeight : document.body.clientHeight
            }
            return b
        };
        var X=function(d, b) {
            var c=d.target || d.srcElement;
            return b(c)
        };
        var P=function(c) {
            try {
                if (c && 3 == c.nodeType) {
                    return c.parentNode
                } else {
                    return c
                }
            } catch(b) {
            }
        };
        var Q=function(c) {
            var b=c.relatedTarget;
            if (!b) {
                if (c.type == "mouseout") {
                    b=c.toElement
                } else {
                    if (c.type == "mouseover") {
                        b=c.fromElement
                    }
                }
            }
            return P(b)
        };
        var U=function(c, b) {
            b.parentNode.insertBefore(c, b.nextSibling)
        };
        var V=function(c) {
            try {
                c.parentNode.removeChild(c)
            } catch(b) {
            }
        };
        var T=function(b) {
            return b.firstChild
        };
        var B=function(d) {
            var c=Q(d);
            while (c && c != this) {
                try {
                    c=c.parentNode
                } catch(b) {
                    c=this
                }
            }
            if (c != this) {
                return true
            }
            return false
        };
        var F=function() {
            if (document.defaultView && document.defaultView.getComputedStyle) {
                return function(c, f) {
                    var e=null;
                    var d=document.defaultView.getComputedStyle(c, "");
                    if (d) {
                        e=d[f]
                    }
                    var b=c.style[f] || e;
                    return b
                }
            } else {
                if (document.documentElement.currentStyle && Z.ie) {
                    return function(b, d) {
                        var c=b.currentStyle ? b.currentStyle[d] : null;
                        return(b.style[d] || c)
                    }
                }
            }
        }();
        var W={has:function(b, d) {
            return new RegExp("(^|\\s)" + d + "(\\s|$)").test(G(b).className)
        },add:function(b, d) {
            if (!this.has(b, d)) {
                G(b).className=S(G(b).className) + " " + d
            }
        },remove:function(b, d) {
            if (this.has(b, d)) {
                G(b).className=G(b).className.replace(new RegExp("(^|\\s)" + d + "(\\s|$)", "g"), "")
            }
        }};
        var D={add:function(d, c, b) {
            if (d.addEventListener) {
                d.addEventListener(c, b, false)
            } else {
                d.attachEvent("on" + c, function() {
                    b.call(d, window.event)
                })
            }
        },remove:function(d, c, b) {
            if (d.removeEventListener) {
                d.removeEventListener(c, b, false)
            } else {
                d.detachEvent("on" + c, b)
            }
        }};
        var H={bool:function(c) {
            return typeof c === "boolean"
        },def:function(b) {
            return !(typeof b === "undefined")
        },number:function(b) {
            return typeof b === "number" && isFinite(b)
        },string:function(b) {
            return typeof b === "string"
        },fn:function(b) {
            return typeof b === "function"
        },array:function(b) {
            if (b) {
                return H.number(b.length) && H.fn(b.splice)
            }
            return false
        }};
        var L=["January","February","March","April","May","June","July","August","September","October","November","December"];
        var O=function(f) {
            var i=new Date(f);
            if (Z.ie) {
                i=Date.parse(f.replace(/( \+)/, " UTC$1"))
            }
            var c="";
            var b=function() {
                var d=i.getHours();
                if (d > 0 && d < 13) {
                    c="am";
                    return d
                } else {
                    if (d < 1) {
                        c="am";
                        return 12
                    } else {
                        c="pm";
                        return d - 12
                    }
                }
            }();
            var e=i.getMinutes();
            var h=i.getSeconds();

            function g() {
                var d=new Date();
                if (d.getDate() != i.getDate() || d.getYear() != i.getYear() || d.getMonth() != i.getMonth()) {
                    return" - " + L[i.getMonth()] + " " + i.getDate() + ", " + i.getFullYear()
                } else {
                    return""
                }
            }

            return b + ":" + e + c + g()
        };
        var J=function(h) {
            var j=new Date();
            var f=new Date(h);
            if (Z.ie) {
                f=Date.parse(h.replace(/( \+)/, " UTC$1"))
            }
            var i=j - f;
            var c=1000,d=c * 60,e=d * 60,g=e * 24,b=g * 7;
            if (isNaN(i) || i < 0) {
                return""
            }
            if (i < c * 7) {
                return"right now"
            }
            if (i < d) {
                return Math.floor(i / c) + " seconds ago"
            }
            if (i < d * 2) {
                return"about 1 minute ago"
            }
            if (i < e) {
                return Math.floor(i / d) + " minutes ago"
            }
            if (i < e * 2) {
                return"about 1 hour ago"
            }
            if (i < g) {
                return Math.floor(i / e) + " hours ago"
            }
            if (i > g && i < g * 2) {
                return"yesterday"
            }
            if (i < g * 365) {
                return Math.floor(i / g) + " days ago"
            } else {
                return"over a year ago"
            }
        };
        var E={link:function(b) {
            return b.replace(/\b(((https*\:\/\/)|www\.).+?)(([!?,.\)]+)?(\s|$))/g, function(h, g, e, d, c) {
                var f=e.match(/w/) ? "http://" : "";
                return'<a class="twtr-hyperlink" target="_blank" href="' + f + g + '">' + ((g.length > 25) ? g.substr(0, 24) + "..." : g) + "</a>" + c
            })
        },at:function(b) {
            return b.replace(/\B\@([a-zA-Z0-9_]{1,20})/g, function(c, d) {
                return'@<a target="_blank" class="twtr-atreply" href="http://twitter.com/' + d + '">' + d + "</a>"
            })
        },list:function(b) {
            return b.replace(/\B\@([a-zA-Z0-9_]{1,20}\/\w+)/g, function(c, d) {
                return'@<a target="_blank" class="twtr-atreply" href="http://twitter.com/' + d + '">' + d + "</a>"
            })
        },hash:function(b) {
            return b.replace(/\B\#(\w+)/gi, function(c, d) {
                return'<a target="_blank" class="twtr-hashtag" href="http://twitter.com/search?q=%23' + d + '">#' + d + "</a>"
            })
        },clean:function(b) {
            return this.hash(this.at(this.list(this.link(b))))
        }};

        function M(c, d, b) {
            this.job=c;
            this.decayFn=d;
            this.interval=b;
            this.decayRate=1;
            this.decayMultiplier=1.25;
            this.maxDecayTime=3 * 60 * 1000
        }

        M.prototype={start:function() {
            this.stop().run();
            return this
        },stop:function() {
            if (this.worker) {
                window.clearTimeout(this.worker)
            }
            return this
        },run:function() {
            var b=this;
            this.job(function() {
                b.decayRate=b.decayFn() ? Math.max(1, b.decayRate / b.decayMultiplier) : b.decayRate * b.decayMultiplier;
                var c=b.interval * b.decayRate;
                c=(c >= b.maxDecayTime) ? b.maxDecayTime : c;
                c=Math.floor(c);
                b.worker=window.setTimeout(function() {
                    b.run.call(b)
                }, c)
            })
        },destroy:function() {
            this.stop();
            this.decayRate=1;
            return this
        }};
        function I(c, d, b, e) {
            this.time=d || 6000;
            this.loop=b || false;
            this.repeated=0;
            this.total=c.length;
            this.callback=e;
            this.haystack=c
        }

        I.prototype={start:function(b) {
            var c=this;
            if (b) {
                this.repeated=0
            }
            this.stop()._job();
            this.timer=window.setInterval(function() {
                c._job.call(c)
            }, this.time);
            return this
        },stop:function() {
            if (this.timer) {
                window.clearInterval(this.timer)
            }
            return this
        },_job:function() {
            if (this.repeated === this.total) {
                if (this.loop) {
                    this.repeated=0
                } else {
                    this.stop();
                    return
                }
            }
            this.callback(this.haystack[this.repeated]);
            this.repeated++;
            return this
        }};
        function K(c) {
            var b='<div class="twtr-tweet-wrap">         <div class="twtr-avatar">           <div class="twtr-img"><a target="_blank" href="http://twitter.com/' + c.user + '"><img alt="' + c.user + ' profile" src="' + c.avatar + '"></a></div>         </div>         <div class="twtr-tweet-text">           <p>             <a target="_blank" href="http://twitter.com/' + c.user + '" class="twtr-user">' + c.user + "</a> " + c.tweet + '             <i>            <a target="_blank" class="twtr-timestamp" time="' + c.timestamp + '" href="http://twitter.com/' + c.user + "/status/" + c.id + '">' + c.created_at + '</a>             <a target="_blank" class="twtr-reply" href="http://twitter.com/?status=@' + c.user + "%20&in_reply_to_status_id=" + c.id + "&in_reply_to=" + c.user + '">reply</a>             </i>           </p>         </div>       </div>';
            var d=document.createElement("div");
            d.id="tweet-id-" + ++K._tweetCount;
            d.className="twtr-tweet";
            d.innerHTML=b;
            this.element=d
        }

        K._tweetCount=0;
        N.loadStyleSheet=function(d, c) {
            if (!TWTR.Widget.loadingStyleSheet) {
                TWTR.Widget.loadingStyleSheet=true;
                var b=document.createElement("link");
                b.href=d;
                b.rel="stylesheet";
                b.type="text/css";
                document.getElementsByTagName("head")[0].appendChild(b);
                var e=setInterval(function() {
                    var f=F(c, "position");
                    if (f == "relative") {
                        clearInterval(e);
                        TWTR.Widget.hasLoadedStyleSheet=true
                    }
                }, 50)
            }
        };
        (function() {
            var b=false;
            N.css=function(e) {
                var d=document.createElement("style");
                d.type="text/css";
                if (Z.ie) {
                    d.styleSheet.cssText=e
                } else {
                    var f=document.createDocumentFragment();
                    f.appendChild(document.createTextNode(e));
                    d.appendChild(f)
                }
                function c() {
                    document.getElementsByTagName("head")[0].appendChild(d)
                }

                if (!Z.ie || b) {
                    c()
                } else {
                    window.attachEvent("onload", function() {
                        b=true;
                        c()
                    })
                }
            }
        })();
        TWTR.Widget.isLoaded=false;
        TWTR.Widget.loadingStyleSheet=false;
        TWTR.Widget.hasLoadedStyleSheet=false;
        TWTR.Widget.WIDGET_NUMBER=0;
        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(c, d) {
            var b=document.createElement("script");
            b.type="text/javascript";
            b.src=c;
            document.getElementsByTagName("head")[0].appendChild(b);
            d(b);
            return b
        };
        TWTR.Widget.prototype=function() {
            var f="http://search.twitter.com/search.";
            var g="http://twitter.com/statuses/user_timeline.";
            var d="http://twitter.com/favorites/";
            var e="http://twitter.com/";
            var c=20000;
            var b="http://widgets.twimg.com/j/1/default.gif";
            return{init:function(i) {
                var h=this;
                this._widgetNumber=++TWTR.Widget.WIDGET_NUMBER;
                TWTR.Widget["receiveCallback_" + this._widgetNumber]=function(j) {
                    h._prePlay.call(h, j)
                };
                this._cb="TWTR.Widget.receiveCallback_" + this._widgetNumber;
                this.opts=i;
                this._base=f;
                this._isRunning=false;
                this._hasOfficiallyStarted=false;
                this._rendered=false;
                this._profileImage=false;
                this._isCreator=!!i.creator;
                this._setWidgetType(i.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=i.id || "twtr-widget-" + this._widgetNumber;
                this.tweets=0;
                this.setDimensions(i.width, i.height);
                this.interval=i.interval || 6000;
                this.format="json";
                this.rpp=i.rpp || 50;
                this.subject=i.subject || "";
                this.title=i.title || "";
                this.setFooterText(i.footer);
                this.setSearch(i.search);
                this._setUrl();
                this.theme=i.theme ? i.theme : this._getDefaultTheme();
                if (!i.id) {
                    document.write('<div class="twtr-widget" id="' + this.id + '"></div>')
                }
                this.widgetEl=G(this.id);
                if (i.id) {
                    W.add(this.widgetEl, "twtr-widget")
                }
                if (i.version >= 2 && !TWTR.Widget.hasLoadedStyleSheet) {
                    N.loadStyleSheet("http://widgets.twimg.com/j/2/widget.css", this.widgetEl)
                }
                this.occasionalJob=new M(function(j) {
                    h.decay=j;
                    h._getResults.call(h)
                }, function() {
                    return h._decayDecider.call(h)
                }, c);
                this._ready=H.fn(i.ready) ? i.ready : function() {
                };
                this._isRelativeTime=true;
                this._tweetFilter=false;
                this._avatars=true;
                this._isFullScreen=false;
                this._isLive=true;
                this._isScroll=false;
                this._loop=true;
                this._behavior="default";
                this.setFeatures(this.opts.features);
                return this
            },setDimensions:function(i, j) {
                this.wh=(i && j) ? [i,j] : [250,300];
                if (i == "auto" || i == "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(h) {
                var h=parseInt(h);
                this.rpp=(H.number(h) && (h > 0 && h <= 100)) ? h : 30;
                return this
            },_setWidgetType:function(h) {
                this._isSearchWidget=false,this._isProfileWidget=false,this._isFavsWidget=false,this._isListWidget=false;
                switch (h) {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(h) {
                if (h) {
                    if (H.def(h.filters)) {
                        this._tweetFilter=h.filters
                    }
                    if (H.def(h.dateformat)) {
                        this._isRelativeTime=!!(h.dateformat !== "absolute")
                    }
                    if (H.def(h.fullscreen) && H.bool(h.fullscreen)) {
                        if (h.fullscreen) {
                            this._isFullScreen=true;
                            this.wh[0]="100%";
                            this.wh[1]=(R() - 90) + "px";
                            var i=this;
                            D.add(window, "resize", function(l) {
                                i.wh[1]=R();
                                i._fullScreenResize()
                            })
                        }
                    }
                    if (H.def(h.loop) && H.bool(h.loop)) {
                        this._loop=h.loop
                    }
                    if (H.def(h.behavior) && H.string(h.behavior)) {
                        switch (h.behavior) {case"all":this._behavior="all";break;default:this._behavior="default";break
                        }
                    }
                    if (H.def(h.avatars) && H.bool(h.avatars)) {
                        if (!h.avatars) {
                            N.css("#" + this.id + " .twtr-avatar, #" + this.id + " .twtr-user { display: none; } #" + this.id + " .twtr-tweet-text { margin-left: 0; }");
                            this._avatars=false
                        } else {
                            var j=(this._isFullScreen) ? "90px" : "40px";
                            N.css("#" + this.id + " .twtr-avatar { display: block; } #" + this.id + " .twtr-user { display: inline; } #" + this.id + " .twtr-tweet-text { margin-left: " + j + "; }");
                            this._avatars=true
                        }
                    } else {
                        if (this._isProfileWidget) {
                            this.setFeatures({avatars:false});
                            this._avatars=false
                        } else {
                            this.setFeatures({avatars:true});
                            this._avatars=true
                        }
                    }
                    if (H.def(h.hashtags) && H.bool(h.hashtags)) {
                        (!h.hashtags) ? N.css("#" + this.id + " a.twtr-hashtag { display: none; }") : ""
                    }
                    if (H.def(h.timestamp) && H.bool(h.timestamp)) {
                        var k=h.timestamp ? "block" : "none";
                        N.css("#" + this.id + " i { display: " + k + "; }")
                    }
                    if (H.def(h.live) && H.bool(h.live)) {
                        this._isLive=h.live
                    }
                    if (H.def(h.scrollbar) && H.bool(h.scrollbar)) {
                        this._isScroll=h.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 h=C("twtr-timeline", "div", document.body, function(i) {
                    i.style.height=(R() - 90) + "px"
                })
            },setTweetInterval:function(h) {
                this.interval=h;
                return this
            },setBase:function(h) {
                this._base=h;
                return this
            },setUser:function(i, h) {
                this.username=i;
                this.realname=h || " ";
                if (this._isFavsWidget) {
                    this.setBase(d + i + ".")
                } else {
                    if (this._isProfileWidget) {
                        this.setBase(g + this.format + "?screen_name=" + i)
                    }
                }
                this.setSearch(" ");
                return this
            },setList:function(i, h) {
                this.listslug=h.replace(/ /g, "-").toLowerCase();
                this.username=i;
                this.setBase(e + i + "/lists/" + this.listslug + "/statuses.");
                this.setSearch(" ");
                return this
            },setProfileImage:function(h) {
                this._profileImage=h;
                this.byClass("twtr-profile-img", "img").src=h;
                this.byClass("twtr-profile-img-anchor", "a").href="http://twitter.com/" + this.username;
                return this
            },setTitle:function(h) {
                this.title=h;
                this.widgetEl.getElementsByTagName("h3")[0].innerHTML=this.title;
                return this
            },setCaption:function(h) {
                this.subject=h;
                this.widgetEl.getElementsByTagName("h4")[0].innerHTML=this.subject;
                return this
            },setFooterText:function(h) {
                this.footerText=(H.def(h) && H.string(h)) ? h : "Join the conversation";
                if (this._rendered) {
                    this.byClass("twtr-join-conv", "a").innerHTML=this.footerText
                }
                return this
            },setSearch:function(i) {
                this.searchString=i || "";
                this.s=this.searchString.replace(" ", "+");
                this.search=escape("-RT " + this.s);
                this._setUrl();
                if (this._rendered) {
                    var h=this.byClass("twtr-join-conv", "a");
                    h.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 h=this;

                function i() {
                    return(h.sinceId == 1) ? "" : "&since_id=" + h.sinceId + "&refresh=true"
                }

                if (this._isProfileWidget) {
                    this.url=this._base + "&callback=" + this._cb + "&count=" + this.rpp + i() + "&clientsource=" + this.source
                } else {
                    if (this._isFavsWidget || this._isListWidget) {
                        this.url=this._base + this.format + "?callback=" + this._cb + i() + "&clientsource=" + this.source
                    } else {
                        this.url=this._base + this.format + "?q=" + this.search + "&callback=" + this._cb + "&rpp=" + this.rpp + i() + "&clientsource=" + this.source
                    }
                }
                return this
            },setTheme:function(m, h) {
                var k=this;
                var i=" !important";
                var l=((window.location.hostname.match(/twitter\.com/)) && (window.location.pathname.match(/goodies/)));
                if (h || l) {
                    i=""
                }
                this.theme={shell:{background:function() {
                    return m.shell.background || k._getDefaultTheme().shell.background
                }(),color:function() {
                    return m.shell.color || k._getDefaultTheme().shell.color
                }()},tweets:{background:function() {
                    return m.tweets.background || k._getDefaultTheme().tweets.background
                }(),color:function() {
                    return m.tweets.color || k._getDefaultTheme().tweets.color
                }(),links:function() {
                    return m.tweets.links || k._getDefaultTheme().tweets.links
                }()}};
                var j="#" + this.id + " .twtr-doc,                      #" + this.id + " .twtr-hd a,                      #" + this.id + " h3,                      #" + this.id + " h4 {            background: " + this.theme.shell.background + i + ";            color: " + this.theme.shell.color + i + ";          }          #" + this.id + " .twtr-tweet a {            color: " + this.theme.tweets.links + i + ";          }          #" + this.id + " .twtr-bd, #" + this.id + " .twtr-timeline i a,           #" + this.id + " .twtr-bd p {            color: " + this.theme.tweets.color + i + ";          }          #" + this.id + " .twtr-new-results,           #" + this.id + " .twtr-results-inner,           #" + this.id + " .twtr-timeline {            background: " + this.theme.tweets.background + i + ";          }";
                if (Z.ie) {
                    j+="#" + this.id + " .twtr-tweet { background: " + this.theme.tweets.background + i + "; }"
                }
                N.css(j);
                return this
            },byClass:function(k, h, i) {
                var j=C(k, h, G(this.id));
                return(i) ? j : j[0]
            },render:function() {
                var j=this;
                if (!TWTR.Widget.hasLoadedStyleSheet) {
                    window.setTimeout(function() {
                        j.render.call(j)
                    }, 50);
                    return this
                }
                this.setTheme(this.theme, this._isCreator);
                if (this._isProfileWidget) {
                    W.add(this.widgetEl, "twtr-widget-profile")
                }
                if (this._isScroll) {
                    W.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();
                this.spinner=this.byClass("twtr-spinner", "div");
                var i=this.byClass("twtr-timeline", "div");
                if (this._isLive && !this._isFullScreen) {
                    var k=function(l) {
                        if (B.call(this, l)) {
                            j.pause.call(j)
                        }
                    };
                    var h=function(l) {
                        if (B.call(this, l)) {
                            j.resume.call(j)
                        }
                    };
                    this.removeEvents=function() {
                        D.remove(i, "mouseover", k);
                        D.remove(i, "mouseout", h)
                    };
                    D.add(i, "mouseover", k);
                    D.add(i, "mouseout", h)
                }
                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 k=this;

                function l() {
                    if (k._isProfileWidget) {
                        return'<a target="_blank" href="http://twitter.com/" class="twtr-profile-img-anchor"><img alt="profile" class="twtr-profile-img" src="' + b + '"></a>                      <h3></h3>                      <h4></h4>'
                    } else {
                        return"<h3>" + k.title + "</h3><h4>" + k.subject + "</h4>"
                    }
                }

                function j() {
                    if (!k._isFullScreen) {
                        return' height="15"'
                    }
                    return""
                }

                function i() {
                    return k._isFullScreen ? " twtr-fullscreen" : ""
                }

                var h='<div class="twtr-doc' + i() + '" style="width: ' + this.wh[0] + ';">            <div class="twtr-hd">' + l() + '               <div class="twtr-spinner twtr-inactive"></div>            </div>            <div class="twtr-bd">              <div class="twtr-timeline" style="height: ' + this.wh[1] + ';">                <div class="twtr-tweets">                  <div class="twtr-reference-tweet"></div>                  <!-- tweets show here -->                </div>              </div>            </div>            <div class="twtr-ft">              <div><a target="_blank" href="http://twitter.com"><img alt="" src="http://widgets.twimg.com/j/1/twitter_logo_s.' + (Z.ie ? "gif" : "png") + '"' + j() + '></a>                <span><a target="_blank" class="twtr-join-conv" style="color:' + this.theme.shell.color + '" href="http://twitter.com/' + this._getWidgetPath() + '">' + this.footerText + "</a></span>              </div>            </div>          </div>";
                return h
            },_appendTweet:function(h) {
                U(h, this.byClass("twtr-reference-tweet", "div"));
                return this
            },_slide:function(i) {
                var j=this;
                var h=T(i).offsetHeight;
                if (this.runOnce) {
                    new A(i, "height", {from:0,to:h,time:500,callback:function() {
                        j._fade.call(j, i)
                    }}).start()
                }
                return this
            },_fade:function(h) {
                var i=this;
                if (A.canTransition) {
                    h.style.webkitTransition="opacity 0.5s ease-out";
                    h.style.opacity=1;
                    return this
                }
                new A(h, "opacity", {from:0,to:1,time:500}).start();
                return this
            },_chop:function() {
                if (this._isScroll) {
                    return this
                }
                var n=this.byClass("twtr-tweet", "div", true);
                var o=this.byClass("twtr-new-results", "div", true);
                if (n.length) {
                    for (var k=n.length - 1; k >= 0; k--) {
                        var m=n[k];
                        var l=parseInt(m.offsetTop);
                        if (l > parseInt(this.wh[1])) {
                            V(m)
                        } else {
                            break
                        }
                    }
                    if (o.length > 0) {
                        var h=o[o.length - 1];
                        var j=parseInt(h.offsetTop);
                        if (j > parseInt(this.wh[1])) {
                            V(h)
                        }
                    }
                }
                return this
            },_appendSlideFade:function(i) {
                var h=i || this.tweet.element;
                this._chop()._appendTweet(h)._slide(h);
                return this
            },_createTweet:function(h) {
                h.timestamp=h.created_at;
                h.created_at=this._isRelativeTime ? J(h.created_at) : O(h.created_at);
                this.tweet=new K(h);
                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 h=this;
                this.timesRequested++;
                this.jsonRequestRunning=true;
                this.jsonRequestTimer=window.setTimeout(function() {
                    if (h.jsonRequestRunning) {
                        clearTimeout(h.jsonRequestTimer);
                        W.add(h.spinner, "twtr-inactive")
                    }
                    h.jsonRequestRunning=false;
                    V(h.scriptElement);
                    h.newResults=false;
                    h.decay()
                }, this.jsonMaxRequestTimeOut);
                W.remove(this.spinner, "twtr-inactive");
                TWTR.Widget.jsonP(h.url, function(i) {
                    h.scriptElement=i
                })
            },clear:function() {
                var i=this.byClass("twtr-tweet", "div", true);
                var h=this.byClass("twtr-new-results", "div", true);
                i=i.concat(h);
                i.forEach(function(j) {
                    V(j)
                });
                return this
            },_sortByLatest:function(h) {
                this.results=h;
                this.results=this.results.slice(0, this.rpp);
                this.results.reverse();
                return this
            },_sortByMagic:function(h) {
                var h=h;
                var i=this;
                if (this._tweetFilter) {
                    if (this._tweetFilter.negatives) {
                        h=h.filter(function(j) {
                            if (!i._tweetFilter.negatives.test(j.text)) {
                                return j
                            }
                        })
                    }
                    if (this._tweetFilter.positives) {
                        h=h.filter(function(j) {
                            if (i._tweetFilter.positives.test(j.text)) {
                                return j
                            }
                        })
                    }
                }
                switch (this._behavior) {case"all":this._sortByLatest(h);break;default:this._sortByDefault(h);break
                }
                return this
            },_sortByDefault:function(i) {
                var j=this;
                var h=function() {
                    if (Z.ie) {
                        return function(k) {
                            return Date.parse(k.replace(/( \+)/, " UTC$1"))
                        }
                    } else {
                        return function(k) {
                            return new Date(k)
                        }
                    }
                }();
                this.results.unshift.apply(this.results, i);
                this.results.forEach(function(k) {
                    if (!k.views) {
                        k.views=0
                    }
                });
                this.results.sort(function(l, k) {
                    if (h(l.created_at) < h(k.created_at)) {
                        return 1
                    } else {
                        if (h(l.created_at) > h(k.created_at)) {
                            return -1
                        } else {
                            return 0
                        }
                    }
                });
                this.results=this.results.slice(0, this.rpp);
                if (!this._isLive) {
                    this.results.reverse()
                }
                this.results.sort(function(l, k) {
                    if (l.views > k.views) {
                        return 1
                    } else {
                        if (l.views < k.views) {
                            return -1
                        }
                    }
                    return 0
                })
            },_prePlay:function(i) {
                if (this.jsonRequestTimer) {
                    clearTimeout(this.jsonRequestTimer)
                }
                if (!Z.ie) {
                    V(this.scriptElement)
                }
                if (i.error) {
                    this.newResults=false
                } else {
                    if (i.results && i.results.length > 0) {
                        this.response=i;
                        if (this.intervalJob) {
                            this.intervalJob.stop()
                        }
                        this.newResults=true;
                        this.sinceId=i.max_id;
                        this._sortByMagic(i.results);
                        if (this.isRunning()) {
                            this._play()
                        }
                    } else {
                        if ((this._isProfileWidget || this._isFavsWidget || this._isListWidget) && H.array(i) && i.length > 0) {
                            if (this.intervalJob) {
                                this.intervalJob.stop()
                            }
                            this.newResults=true;
                            if (!this._profileImage && this._isProfileWidget) {
                                var h=i[0].user.screen_name;
                                this.setProfileImage(i[0].user.profile_image_url);
                                this.setTitle(i[0].user.name);
                                this.setCaption('<a target="_blank" href="http://twitter.com/' + h + '">' + h + "</a>")
                            }
                            this.sinceId=i[0].id;
                            this._sortByMagic(i);
                            if (this.isRunning()) {
                                this._play()
                            }
                        } else {
                            this.newResults=false
                        }
                    }
                }
                this._setUrl();
                if (this._isLive) {
                    this.decay()
                }
                W.add(this.spinner, "twtr-inactive")
            },_play:function() {
                var h=this;
                if (this._avatars) {
                    this._preloadImages(this.results)
                }
                if (this._isRelativeTime && this._behavior == "all") {
                    this.byClass("twtr-timestamp", "a", true).forEach(function(i) {
                        i.innerHTML=J(i.getAttribute("time"))
                    })
                }
                if (!this._isLive || this._behavior == "all") {
                    this.results.forEach(function(j) {
                        if (h._isProfileWidget) {
                            j.from_user=h.username;
                            j.profile_image_url=j.user.profile_image_url
                        }
                        if (h._isFavsWidget || h._isListWidget) {
                            j.from_user=j.user.screen_name;
                            j.profile_image_url=j.user.profile_image_url
                        }
                        h._createTweet({id:j.id,user:j.from_user,tweet:E.clean(j.text),avatar:j.profile_image_url,created_at:j.created_at});
                        var i=h.tweet.element;
                        (h._behavior == "all") ? h._appendSlideFade(i) : h._appendTweet(i)
                    });
                    return this
                }
                this._insertNewResultsNumber();
                this.intervalJob=new I(this.results, this.interval, this._loop, function(i) {
                    i.views++;
                    if (h._isProfileWidget) {
                        i.from_user=h.username;
                        i.profile_image_url=i.user.profile_image_url
                    }
                    if (h._isFavsWidget || h._isListWidget) {
                        i.from_user=i.user.screen_name;
                        i.profile_image_url=i.user.profile_image_url
                    }
                    if (h._isFullScreen) {
                        i.profile_image_url=i.profile_image_url.replace(/_normal\./, "_bigger.")
                    }
                    h._createTweet({id:i.id,user:i.from_user,tweet:E.clean(i.text),avatar:i.profile_image_url,created_at:i.created_at})._appendSlideFade()
                }).start(true);
                return this
            },_insertNewResultsNumber:function() {
                if (this.runOnce && this._isSearchWidget) {
                    var k=this.response.total > this.rpp ? this.response.total : this.response.results.length;
                    var h=k > 1 ? "s" : "";
                    var j=(this.response.warning && this.response.warning.match(/adjusted since_id/)) ? "more than" : "";
                    var i=document.createElement("div");
                    W.add(i, "twtr-new-results");
                    i.innerHTML='<div class="twtr-results-inner"> &nbsp; </div><div class="twtr-results-hr"> &nbsp; </div><span>' + j + " <strong>" + k + "</strong> new tweet" + h + "</span>";
                    U(i, this.byClass("twtr-reference-tweet", "div"))
                }
            },_preloadImages:function(h) {
                if (this._isProfileWidget || this._isFavsWidget || this._isListWidget) {
                    h.forEach(function(j) {
                        var i=new Image();
                        i.src=j.user.profile_image_url
                    })
                } else {
                    h.forEach(function(i) {
                        (new Image()).src=i.profile_image_url
                    })
                }
            },_decayDecider:function() {
                var h=false;
                if (!this.runOnce) {
                    this.runOnce=true;
                    h=true
                } else {
                    if (this.newResults) {
                        h=true
                    }
                }
                return h
            },start:function() {
                var h=this;
                if (!this._rendered) {
                    setTimeout(function() {
                        h.start.call(h)
                    }, 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();
                    W.add(this.widgetEl, "twtr-paused");
                    this._isRunning=false
                }
                if (this._resumeTimer) {
                    clearTimeout(this._resumeTimer)
                }
                return this
            },resume:function() {
                var h=this;
                if (!this.isRunning() && this._hasOfficiallyStarted && this.intervalJob) {
                    this._resumeTimer=window.setTimeout(function() {
                        h.intervalJob.start();
                        h._isRunning=true;
                        W.remove(h.widgetEl, "twtr-paused")
                    }, 2000)
                }
                return this
            },isRunning:function() {
                return this._isRunning
            },destroy:function() {
                this.stop();
                this.clear();
                this.runOnce=false;
                this._hasOfficiallyStarted=false;
                this.intervalJob=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);
                    W.add(this.spinner, "twtr-inactive")
                }
                W.remove(this.widgetEl, "twtr-scroll");
                this.removeEvents();
                return this
            }}
        }()
    })()
})();