/**
 * 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/pljcbsn\" rel=\"me\"><img src=\"http://www.google.com/profiles/c/photos/public/AIbEiAIAAABECImc-ITEpZznwQEiC3ZjYXJkX3Bob3RvKig0MDc4NDBlNzExN2EwZmMyNjRiNjNhNDJiNDJmNzUzYmE4MjJmYTlhMAFZZ3nInbMM04p4KuFgJJqZfumqgg\" width=\"35\" height=\"35\" alt=\"Paul Jacobson\" /> <span id=\"buzz-author\">Paul Jacobson</span><br /><span id=\"buzz-username\">pljcbsn</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=pljcbsn\" id=\"bc0\">Click here!</a></li><li><span title=\"2010-08-31 15:27:17\">2010-08-31 15:27:17</span><br/>Oh good grief. Digg users whine more than Facebook users when changes to the site are made.  Digg User Rebellion Continues: Reddit Now Rules the Front Page - ReadWriteWeb - Reddit has taken over the front page of Digg. If Kevin Rose and the rest of the Digg team thought that a long weekend would be enough to calm the furor over the latest changes to the popular site, they were clearly mistaken. Not only did Digg\'s users declare today \"quit Digg day,\" but in order to protest Digg\'s new auto-submission system, users are now upvoting every Reddit story on the site. T.. ... <a target=\"_blank\" class=\"buzzwidget-comment\" href=\"http://www.google.com/buzz/113965223929399086601/5yVToN9oPQf/Oh-good-grief-Digg-users-whine-more-than-Facebook\" id=\"bc1\">Comment! (10)</a></li><li><span title=\"2010-08-31 18:04:18\">2010-08-31 18:04:18</span><br/>ReadWriteHack: Our Latest Channel Launches - www.readwriteweb.com - Today we\'re launching our fifth channel, ReadWriteHack. Sponsored by the Intel Atom Developer Program, ReadWriteHack is a resource and guide for developers. In this channel we will outline .. ... <a target=\"_blank\" class=\"buzzwidget-comment\" href=\"http://www.google.com/buzz/113965223929399086601/fouu7q4Asxb/ReadWriteHack-Our-Latest-Channel-Launches-www\" id=\"bc2\">Comment! (0)</a></li><li><span title=\"2010-08-31 17:59:09\">2010-08-31 17:59:09</span><br/>I am the use case for something like Google Goggles that does face recognition and displays profile data on glasses or something <a target=\"_blank\" class=\"buzzwidget-comment\" href=\"http://www.google.com/buzz/113965223929399086601/GTyB9XHtGyu/I-am-the-use-case-for-something-like-Google\" id=\"bc3\">Comment! (0)</a></li><li><span title=\"2010-08-31 17:01:37\">2010-08-31 17:01:37</span><br/>definitely ugh-I-feel-awful-and-its-time-to-go-home-and-take-more-meds time of the day! <a target=\"_blank\" class=\"buzzwidget-comment\" href=\"http://www.google.com/buzz/113965223929399086601/RkXKMTg5atv/definitely-ugh-I-feel-awful-and-its-time-to-go\" id=\"bc4\">Comment! (0)</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', 'pljcbsn', document.referrer);
	
				$('#buzzwidget-container li a').each(function(i)
				{
					if($(this).hasClass('buzzwidget-comment'))
					{
						$(this).click(function(){t._trackEvent('Widget Buzz Click', 'pljcbsn', $(this).attr('href'), parseInt($(this).attr('id').replace(/bc/, "")))});
					}
					else
					{
						$(this).click(function(){t._trackEvent('Widget Link Click', 'pljcbsn', $(this).attr('href'))});
					}
					
				});
				
				$('#buzzwidget-head a').click(function(){
					t._trackEvent('Widget Click', 'pljcbsn', 'Follow')
				});
				$('#buzz-logo').click(function(){ 
					t._trackEvent('Widget Click', 'pljcbsn', 'Google Buzz')
				});
				$('#buzzcounter-logo').click(function(){
					t._trackEvent('Widget Click', 'pljcbsn', 'Buzz Counter')
				});	
			} catch(err) {  }	
			
		},
	};
})(jQuery);