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, "")
      };
      
      //returns height
      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
         }
      };

      //this is the tweet code
      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("/twitter/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; font-family: verdana, helvetica, sansserif; font-size:8px;}");
                        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 + "; font-family: verdana, helvetica, sansserif; font-size:8px; }");
                        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
                     }()
                  }
               };
               //this.id = heading background
               var j = "#" + this.id + " .twtr-doc,                      #" + this.id + " .twtr-hd a,                      #" + this.id + " h3,                      #" + this.id + " h4 {            background: " + this.theme.shell.background + i + ";            color: #FFFFFF " + 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 + ";          }          #" + 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 ""
               }

               //this is the twitter body (text shows up before the tweets load)
               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>';
               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;
                        //set the heading
                        if (!this._profileImage && this._isProfileWidget) {
                           var h = i[0].user.screen_name;
                           this.setProfileImage("twitter01.png") //i[0].user.profile_image_url);
                           //this.setTitle("Follow us on Twitter"); //i[0].user.name);
                           this.setCaption('<a target="_blank" href="http://twitter.com/' + h + '">' + "<h4>Follow us on Twitter</h4>" + "</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 = "/twitter/clp_sig_logo_icon_blue.jpg" // j.user.profile_image_url //assigns the logo to each tweet
                     }
                     if (h._isFavsWidget || h._isListWidget) {
                        j.from_user = j.user.screen_name;
                        j.profile_image_url = "/twitter/clp_sig_logo_icon_blue.jpg" //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"> twtr-results-inner &nbsp; </div><div class="twtr-results-hr"> 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
            }
         }
      }()
   })()
})();
