/* use a function for the exact format desired... */
function ISODateString(d) {
 function pad(n){return n<10 ? '0'+n : n}
 return d.getUTCFullYear()+'-'
      + pad(d.getUTCMonth()+1)+'-'
      + pad(d.getUTCDate())+'T'
      + pad(d.getUTCHours())+':'
      + pad(d.getUTCMinutes())+':'
      + pad(d.getUTCSeconds())+'Z'
}


(function($) {
	var jsonFeedData = null	
	$.fn.feedfetcher = function(options) {
		var opts = $.extend({}, $.fn.feedfetcher.defaults, options);
		$this = $(this)					// this will cause much confusion, avoid it.
		var targetContainer = $(this)	// use a sanely named variable instead.
		var o = $.meta ? $.extend({}, opts, $this.data()) : opts;
		var feed = new google.feeds.Feed(o.feed_source);
		feed.load(function(result) {
			if (result.error) {
				return
			}
			jsonFeedData = { 
				'title': result.feed.title, 
				'link': result.feed.link, 
				'content': result.feed.contentSnippet,
				'items': []
			}
			for (i in result.feed.entries) {
				var entry = result.feed.entries[i];
				var date = null
				if (entry.publishedDate) { date = new Date(entry.publishedDate) }
				jsonFeedData['items'].push({ 
					'title': entry.title, 
					'link': entry.link, 
					'content': entry.contentSnippet,
					'date': date ? ISODateString(date) : '',
				})
			}
			
			for (i = 0; i < o.checkin_count; ++i) {
				curLocation = jsonFeedData['items'][i]
				var pre = o.prev_text[0]
				var post = o.prev_text[1]
				var itemType = o.item_type
				var curDate = curLocation['date']
				var friendlyDate = ''
				if (curDate != friendlyDate) {
					friendlyDate = prettyDate(curDate)
				}
				if (i == 0) { pre = o.cur_text[0], post = o.cur_text[1] }
				text = '<' + itemType+ '>' + pre + ' '
				text += '<strong>'
				text += curLocation['content']
				text += '</strong>'
				text += '</a>'
				text += ' ' + post
				text += ' <a href="' + curLocation['link'] + '" title="' + 
						curLocation['title'] + '">' + friendlyDate + '</a>'
				text += '</' + itemType + '>'
				targetContainer.append(text)
			}
		})
	};

	function debug($obj) {
		if (window.console && window.console.log)
			window.console.log('Feed Fetcher: ' + $obj);
	};

	
	// Set some useful default values.
	$.fn.feedfetcher.defaults = {
		feed_source: 'http://manu.manusauvage.com/feed/atom',
		checkin_count: 4,
		cur_text: ["I'm ", ""],
		prev_text: ["I was", ""],
		item_type: 'p',
	};
})(jQuery);