/**
 * Widget for Google Buzz by buzzcounter.net
 **/
$ = jQuery.noConflict();
(function($) {
  $.timeago = function(timestamp) {
    if (timestamp instanceof Date) return inWords(timestamp);
    else if (typeof timestamp == "string") return inWords($.timeago.parse(timestamp));
    else return inWords($.timeago.datetime(timestamp));
  };
  var $t = $.timeago;
  $.extend($.timeago, { settings: { refreshMillis: 60000,
      allowFuture: false, strings: {
        prefixAgo: null,prefixFromNow: null, suffixAgo: "ago", suffixFromNow: "from now", ago: null, // DEPRECATED, use suffixAgo
        fromNow: null, // DEPRECATED, use suffixFromNow
        seconds: "less than a minute", minute: "about a minute", minutes: "%d minutes", hour: "about an hour", hours: "about %d hours", day: "a day", days: "%d days", month: "about a month", months: "%d months", year: "about a year", years: "%d years"}
    },
    inWords: function(distanceMillis) { var $l = this.settings.strings;
      var prefix = $l.prefixAgo;
      var suffix = $l.suffixAgo || $l.ago;
      if (this.settings.allowFuture) {
        if (distanceMillis < 0) {
          prefix = $l.prefixFromNow;
          suffix = $l.suffixFromNow || $l.fromNow;
        }
        distanceMillis = Math.abs(distanceMillis);
      }

      var seconds = distanceMillis / 1000;
      var minutes = seconds / 60;
      var hours = minutes / 60;
      var days = hours / 24;
      var years = days / 365;

      var words = seconds < 45 && substitute($l.seconds, Math.round(seconds)) ||
        seconds < 90 && substitute($l.minute, 1) ||
        minutes < 45 && substitute($l.minutes, Math.round(minutes)) ||
        minutes < 90 && substitute($l.hour, 1) ||
        hours < 24 && substitute($l.hours, Math.round(hours)) ||
        hours < 48 && substitute($l.day, 1) ||
        days < 30 && substitute($l.days, Math.floor(days)) ||
        days < 60 && substitute($l.month, 1) ||
        days < 365 && substitute($l.months, Math.floor(days / 30)) ||
        years < 2 && substitute($l.year, 1) ||
        substitute($l.years, Math.floor(years));

      return $.trim([prefix, words, suffix].join(" "));
    },
    parse: function(iso8601) {
      var s = $.trim(iso8601);
      s = s.replace(/-/,"/").replace(/-/,"/");
      s = s.replace(/T/," ").replace(/Z/," UTC");
      s = s.replace(/([\+-]\d\d)\:?(\d\d)/," $1$2"); // -04:00 -> -0400
      return new Date(s);
    },
    datetime: function(elem) {
      // jQuery's `is()` doesn't play well with HTML5 in IE
      var isTime = $(elem).get(0).tagName.toLowerCase() == 'time'; // $(elem).is('time');
      var iso8601 = isTime ? $(elem).attr('datetime') : $(elem).attr('title');
      return $t.parse(iso8601);
    }
  });

  $.fn.timeago = function() {
    var self = this;
    self.each(refresh);

    var $s = $t.settings;
    if ($s.refreshMillis > 0) {
      setInterval(function() { self.each(refresh); }, $s.refreshMillis);
    }
    return self;
  };

  function refresh() {
    var data = prepareData(this);
    if (data != null && !isNaN(data.datetime)) {
      $(this).text(inWords(data.datetime));
    }
    return this;
  }

  function prepareData(element) {
    element = $(element);
    if (element.data("timeago") === undefined) {
      element.data("timeago", { datetime: $t.datetime(element) });
      var text = $.trim(element.text());
      if (text.length > 0) element.attr("title", text);
    }
    return element.data("timeago");
  }

  function inWords(date) {
    return $t.inWords(distance(date));
  }

  function distance(date) {
    return (new Date().getTime() - date.getTime());
  }

  function substitute(stringOrFunction, value) {
    var string = $.isFunction(stringOrFunction) ? stringOrFunction(value) : stringOrFunction;
    return string.replace(/%d/i, value);
  }

  // fix for IE6 suckage
  document.createElement('abbr');
  document.createElement('time');
})(jQuery);

(function ($) {
	$.Widget = {
		get : function()
		{
			document.write("<div id=\"buzzwidget-head\"><a target=\"_blank\" href=\"http://www.google.com/profiles/kurtstarnes\" rel=\"me\"><img src=\"http://www.google.com/profiles/c/photos/public/AIbEiAIAAABDCJWc8-_qus6VaiILdmNhcmRfcGhvdG8qKGMxN2I0ZDI0MzBlOWQwZjVjODFhZDljNjUxZTVkYWQwM2Y1MzA2YTgwAcMh_KbhHwnc70zvUro0S_Dbf-6i\" width=\"35\" height=\"35\" alt=\"Kurt Starnes\" /> <span id=\"buzz-author\">Kurt Starnes</span><br /><span id=\"buzz-username\">kurtstarnes</span> <span id=\"buzz-follow\">Follow me!</span></a></div><div id=\"buzzwidget-container\"><ul><li id=\"sponsored\"><span><a href=\"http://www.buzzcounter.net/page/advertising\">sponsored</a></span><br/>Get the Next Generation of 3D Smileys! Always Free! <a target=\"_blank\" class=\"buzzwidget-comment\" href=\"http://tracking.emulgator.org/tracking202/redirect/dl.php?t202id=3566&t202kw=kurtstarnes\" id=\"bc0\">Click here!</a></li><li><span title=\"2010-08-27 05:42:21\">2010-08-27 05:42:21</span><br/>Maxence Cyrin - Where Is My Mind (The Pixies Piano Cover) -> (youtube | it\'s nice that)  The focus of Maxence Cyrin’s work is twofold. Firs ... <a target=\"_blank\" class=\"buzzwidget-comment\" href=\"http://www.google.com/buzz/107650271986223730197/FkGxZz3XjE3/Maxence-Cyrin-Where-Is-My-Mind-The-Pixies-Piano\" id=\"bc1\">Comment! (4)</a></li><li><span title=\"2010-08-31 06:05:35\">2010-08-31 06:05:35</span><br/>300 MPH+. In an electric car. -> [wired]  307.7 MPH is a new world record for an electric car, but the overall land speed record stands at a sound busting 763 MPH. (see Wikipedia: <a href=\"http://goo.gl/3bfN\" target=\"_blank\">http://goo.gl/3bfN</a>)  Excerpt from Wired:  “In our car, I can hear the tires on the salt, the spinning of the electric motor and the noises from the rotating brake rotors and the drivetrain,” Schroer says. “I’ve got to think that’s somewhat unique amongst cars that go over 300. ... <a target=\"_blank\" class=\"buzzwidget-comment\" href=\"http://www.google.com/buzz/107650271986223730197/YrY9nGzwLE2/300-MPH-In-an-electric-car-wired-307-7-MPH-is-a\" id=\"bc2\">Comment! (0)</a></li><li><span title=\"2010-08-21 05:41:33\">2010-08-21 05:41:33</span><br/>Kurzweil Vs. PZ Myers Re Understanding The Human Brain [singularity hub]  Kurzweil\'s interesting, IMHO, answer to Myers\' criticism of his tal ... <a target=\"_blank\" class=\"buzzwidget-comment\" href=\"http://www.google.com/buzz/107650271986223730197/LuNcXgtR73H/Kurzweil-Vs-PZ-Myers-Re-Understanding-The-Human\" id=\"bc3\">Comment! (9)</a></li><li><span title=\"2010-08-28 04:00:43\">2010-08-28 04:00:43</span><br/>In Thin Times, Collector Car Market Flourishes - Ferrari P4/5 | Wikipedia Commons  Bugattis Sell for ‘Crazy Money’ as Classic Cars Beat S& ... <a target=\"_blank\" class=\"buzzwidget-comment\" href=\"http://www.google.com/buzz/107650271986223730197/Tv47KvfApGJ/In-Thin-Times-Collector-Car-Market-Flourishes\" id=\"bc4\">Comment! (2)</a></li></ul></div>");
			$('#buzzwidget').css('background', '#ffffff').css('border', '1px solid #333').css('padding', '5px').css('color', '#333').css('font-size', '12px').css('font-family','Verdana, Arial');
			//.css('min-width','220px');
			$('#buzzwidget-head').height('40px');
			$('#buzzwidget-head a').css('text-decoration', 'none').css('color', '#17375e').css('font-weight', 'bold');
			$('#buzzwidget-head img').css('float', 'left').css('margin-right', '5px');
			$('#buzz-follow').css('float', 'right');
			$('#buzz-author').css('color', '#c0c0c0').css('font-size', '16px');
			$('#buzzwidget-container').css('clear', 'both').css('border-top', '1px solid #333').css('border-bottom', '1px solid #333').css('text-align', 'left').css('padding', '0').css('margin', '0');
			$('#buzzwidget-container ul').css('list-style-type', 'none').css('padding', '0').css('margin', '0');
			$('#buzzwidget-container li').css('border','0').css('border-top', '1px dotted #333').css('padding', '3px 0').css('margin', '0').css('text-indent', '0').css('background', '#ffffff').css('overflow', 'hidden');
			$('#buzzwidget-container li a').css('font-size', '10px').css('color', '#17375e').css('font-weight', 'normal').css('margin', '0').css('padding', '0').css('border', '0');
						
			$('#buzzwidget-container li:first').css('border-top', '0');
			$('#buzzwidget-container .buzzwidget-comment').css('background', 'url(http://www.gstatic.com/s2/tt/images/comment.gif) top left no-repeat').css('padding-left', '18px').css('color', '#17375e').css('font-size', '12px').css('font-weight', 'bold').css('white-space', 'nowrap');
			
			jQuery(jQuery('#buzzwidget-container li span:not(#sponsored span)')).timeago();
			$('#buzzwidget-container li span').css('font-size','10px').css('color','#c0c0c0');
			
			$('#sponsored').css('background', '#fcf9e8');
			$('#buzzwidget-container li span a').css('color','#c0c0c0');
			
			var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
			document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
		},
		
		set : function()
		{
			$('#buzz-logo').css('display', 'block').width('103px').height('30px').css('background', 'url(http://www.buzzcounter.net/images/widget/logos.png) top left no-repeat').css('float', 'left').css('text-indent','-9999px');;
			$('#buzzcounter-logo').css('display', 'block').width('110px').height('30px').css('background', 'url(http://www.buzzcounter.net/images/widget/logos.png) -103px 0 no-repeat').css('float', 'left').css('text-indent','-9999px');
			$('#buzzwidget-footer').css('padding-top', '5px').css('clear', 'both').height('25px');
			$('#buzzwidget').append('<br style="height: 0; line-height: 0; clear: both;" />');		
			try
			{
				var t = _gat._getTracker("UA-90892-23");
				t._trackPageview();
				t._trackEvent('Widget', 'kurtstarnes', document.referrer);
	
				$('#buzzwidget-container li a').each(function(i)
				{
					if($(this).hasClass('buzzwidget-comment'))
					{
						$(this).click(function(){t._trackEvent('Widget Buzz Click', 'kurtstarnes', $(this).attr('href'), parseInt($(this).attr('id').replace(/bc/, "")))});
					}
					else
					{
						$(this).click(function(){t._trackEvent('Widget Link Click', 'kurtstarnes', $(this).attr('href'))});
					}
					
				});
				
				$('#buzzwidget-head a').click(function(){
					t._trackEvent('Widget Click', 'kurtstarnes', 'Follow')
				});
				$('#buzz-logo').click(function(){ 
					t._trackEvent('Widget Click', 'kurtstarnes', 'Google Buzz')
				});
				$('#buzzcounter-logo').click(function(){
					t._trackEvent('Widget Click', 'kurtstarnes', 'Buzz Counter')
				});	
			} catch(err) {  }	
			
		},
	};
})(jQuery);