var microbubble = window.microbubble || {}; // namepsace

/**
 *  JQuery plugin
 */
jQuery.fn.getPipe = function(url) {
	var pipeFeed = new microbubble.PipeFeed(this);
	pipeFeed.parse(url);
};

/**
 *  PipeFeed Class
 *  Returns an ordered list of feed items
 */
microbubble.PipeFeed = function(htmlElement) {
	htmlElement.html('<ol id="feed-results"></ol>');
	var listElement = $("#feed-results");

	return {
		parse : function(url) {
		    if(!url) {
				htmlElement.html("No url provided");
			}
			$.getJSON(url +  "&_render=json&_callback=?",
				function(json) { 
					parseFeed(json);
				}
			);
		}
	};
	
	function parseFeed(json) {
		if(json.count > 0) {
			 $(json.value.items).each( function() {
				var itemDetail = createTitle(this) + createMeta(this) + createDescription(this);
				$(listElement).append('<li>' + itemDetail + '</li>');
			});
	     } else {
			htmlElement.html("The request did not return results");
	     }		
	}
	
	function createTitle(item) {
		return '<h4><a title="link to original article" href="' + item.link + '">' + item.title + '</a></h4>';
	}

	function createDescription(item) {
		return '<p class="item-details">' + item.description + '</p>';
	}

	function createMeta(item) {
		return '<span class="item-meta">Published: ' + Date.parse(item.pubDate).toString("MMMM dS yyyy h.mm tt")  + '</span>';
	}

};

