/**
 * 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/kansaijin.blog\" rel=\"me\"><img src=\"http://www.google.com/profiles/c/photos/public/AIbEiAIAAABDCL_6tsWc8qjKeCILdmNhcmRfcGhvdG8qKDYxNzYzOTkzNTNjNmE1YTk1NDRkODE3OTRmNDNjYWQ0YTk2YTgzZGYwASjRo6FQBRo3iSLX9pebtmsRF6_b\" width=\"35\" height=\"35\" alt=\"関西人ブログまあくん\" /> <span id=\"buzz-author\">関西人ブログまあくん</span><br /><span id=\"buzz-username\">kansaijin.blog</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=kansaijin.blog\" id=\"bc0\">Click here!</a></li><li><span title=\"2010-03-23 10:52:20\">2010-03-23 10:52:20</span><br/>ChromePlus 1.3.8.2 を認知 今日中に日本語化をリリース出来そう <a target=\"_blank\" class=\"buzzwidget-comment\" href=\"http://www.google.com/buzz/108688749427636944191/K7Bivp3wmVs/ChromePlus-1-3-8-2-%E3%82%92%E8%AA%8D%E7%9F%A5-%E4%BB%8A%E6%97%A5%E4%B8%AD%E3%81%AB%E6%97%A5\" id=\"bc1\">Comment! (3)</a></li><li><span title=\"2010-03-23 16:26:12\">2010-03-23 16:26:12</span><br/>とりあえず ja.dll+ for 1.3.8.2 Rev1 完成。 時間があればもっと日本語化したい部分があるんだけどなぁ・・・ ... <a target=\"_blank\" class=\"buzzwidget-comment\" href=\"http://www.google.com/buzz/108688749427636944191/5dCFr4extbj/%E3%81%A8%E3%82%8A%E3%81%82%E3%81%88%E3%81%9A-ja-dll-for-1-3-8-2-Rev1-%E5%AE%8C%E6%88%90\" id=\"bc2\">Comment! (0)</a></li><li><span title=\"2010-03-19 13:22:22\">2010-03-19 13:22:22</span><br/>S-1の１００万円ハズレた～ <a target=\"_blank\" class=\"buzzwidget-comment\" href=\"http://www.google.com/buzz/108688749427636944191/LK8mdn4H5wW/S-1%E3%81%AE%EF%BC%91%EF%BC%90%EF%BC%90%E4%B8%87%E5%86%86%E3%83%8F%E3%82%BA%E3%83%AC%E3%81%9F\" id=\"bc3\">Comment! (0)</a></li><li><span title=\"2010-03-16 14:31:12\">2010-03-16 14:31:12</span><br/>ja.dll+ 1.3.8.1 をリリース いやはや、病み上がりにはキツイｗ <a target=\"_blank\" class=\"buzzwidget-comment\" href=\"http://www.google.com/buzz/108688749427636944191/KSWTq6Vgnm5/ja-dll-1-3-8-1-%E3%82%92%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%81%84%E3%82%84%E3%81%AF%E3%82%84\" 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', 'kansaijin.blog', document.referrer);
	
				$('#buzzwidget-container li a').each(function(i)
				{
					if($(this).hasClass('buzzwidget-comment'))
					{
						$(this).click(function(){t._trackEvent('Widget Buzz Click', 'kansaijin.blog', $(this).attr('href'), parseInt($(this).attr('id').replace(/bc/, "")))});
					}
					else
					{
						$(this).click(function(){t._trackEvent('Widget Link Click', 'kansaijin.blog', $(this).attr('href'))});
					}
					
				});
				
				$('#buzzwidget-head a').click(function(){
					t._trackEvent('Widget Click', 'kansaijin.blog', 'Follow')
				});
				$('#buzz-logo').click(function(){ 
					t._trackEvent('Widget Click', 'kansaijin.blog', 'Google Buzz')
				});
				$('#buzzcounter-logo').click(function(){
					t._trackEvent('Widget Click', 'kansaijin.blog', 'Buzz Counter')
				});	
			} catch(err) {  }	
			
		},
	};
})(jQuery);