// Set variables to control which entries in feed are shown
var startPoint = 0;
var endPoint = 5;

function BlogPreview(container) {
  this.container_ = container;
}

BlogPreview.prototype.show = function(url, opt_noTitle) {
  var feed = new google.feeds.Feed(url);
  feed.setNumEntries(endPoint); // Maximum feed entries to show
  var preview = this;
  feed.load(function(result) {
		preview.render_(result, opt_noTitle);
  });
}

BlogPreview.prototype.showBlogBuzz = function(url, opt_noTitle) {
  var feed = new google.feeds.Feed(url);
  feed.setNumEntries(endPoint); // Maximum feed entries to show
  var preview = this;
  feed.load(function(result) {
		preview.renderBlogBuzz_(result, opt_noTitle);
  });
}

BlogPreview.prototype.render_ = function(result, opt_noTitle) {
  if (!result.feed || !result.feed.entries) return;
  while (this.container_.firstChild) {
    this.container_.removeChild(this.container_.firstChild);
  }

  var blog = this.createDiv_(this.container_, "blog");
  var count = 0;
  								
  for (var i = startPoint; i < endPoint; i++) {
  
		var entry = result.feed.entries[i];
		var attributes = ["title", "link", "publishedDate", "contentSnippet"];
		
	    var div = this.createDiv_(blog, "entry");
		
		if (result.feed.entries.length < 1) {
			if (count == 0) {
				this.createDiv_(div, "title", "Sorry, this feed is unavailable.  Please try again later.");
			}
			
			count += 1;
		}
		
		else {
			var linkDiv = this.createDiv_(div, "title");
						
			this.createLink_(linkDiv, entry.link, entry.title);
			if (entry.author) {
				var itemdate = new Date(entry[attributes[2]]);									
				var itemdate_yr=itemdate.getFullYear();
				var itemdate_mon=itemdate.getMonth()+1;
				var itemdate_day=itemdate.getDate();
				var output= itemdate_mon + "/" + itemdate_day + "/" + itemdate_yr;
				this.createDiv_(div, "author", entry.author + " said on " + output);
	    	}
		
		}
  }
  
}

BlogPreview.prototype.renderBlogBuzz_ = function(result, opt_noTitle) {
  if (!result.feed || !result.feed.entries) return;
  while (this.container_.firstChild) {
    this.container_.removeChild(this.container_.firstChild);
  }

  var blog = this.createDiv_(this.container_, "blog");
  								
  for (var i = startPoint; i < endPoint; i++) {
  
		var entry = result.feed.entries[i];
		var attributes = ["title", "link", "publishedDate", "contentSnippet"];
		
		var entrySnippetTitle = entry[attributes[3]].split("Bookmark", 1);
		var entrySnippet = (entrySnippetTitle[0].replace(/&#039;/g, "'")).trim();
		
	    var div = this.createDiv_(blog, "entry");
		
	    var linkDiv = this.createDiv_(div, "title");
				
	    this.createLink_(linkDiv, entry.link, entrySnippet);
	    if (entry.author) {
			
			var itemdate = new Date(entry[attributes[2]])									
			var itemdate_yr=itemdate.getFullYear()
			var itemdate_mon=itemdate.getMonth()+1
			var itemdate_day=itemdate.getDate()
			var output= itemdate_mon + "/" + itemdate_day + "/" + itemdate_yr
		
			this.createDiv_(div, "author", "From: " + entry.title + " on " + output);
	    }																			
  }
}

BlogPreview.prototype.createDiv_ = function(parent, className, opt_text) {
  return this.createElement_("div", parent, className, opt_text);
}

BlogPreview.prototype.createLink_ = function(parent, href, text) {
  var link = this.createElement_("a", parent, "", text);
  link.href = href;
  return link;
}

BlogPreview.prototype.createElement_ = function(tagName, parent, className,
                                                opt_text) {
  var div = document.createElement(tagName);
  div.className = className;
  parent.appendChild(div);
  if (opt_text) {
    div.appendChild(document.createTextNode(opt_text));
  }
  return div;
}
	
	
function initializeTwitter() {
	//var url = "http://search.twitter.com/search.atom?lang=en&q=+%23weeds";
	// original URL + some bad word filtering is run through a Yahoo Pipe to get MORE filtering:
	
	var url = "http://pipes.yahoo.com/pipes/pipe.run?_id=PF7DD_U73hGvHhSYDoSbGg&_render=rss";
	//var url = "http://search.twitter.com/search.atom?lang=en&q=+%23weeds";

	var twitter_feed = new BlogPreview(document.getElementById("twitter_feed"));
	
	twitter_feed.show(url);
	return false;								
}


function initializeBlogBuzz() {
	var url = "http://feeds.delicious.com/v2/rss/showtimeonline/weeds?count=15";
	var blogbuzz_feed = new BlogPreview(document.getElementById("blogbuzz_feed"));
	
	blogbuzz_feed.showBlogBuzz(url);
	return false;								
}

// url = URL of feed; div = div in which to display twitter feed
function weeklyTwitterFeed(div) {

	//	var url = 'http://pipes.yahoo.com/pipes/pipe.run?_id=PF7DD_U73hGvHhSYDoSbGg&_render=rss';
	//	var url = "http://search.twitter.com/search.atom?lang=en&q=+%23weeds+from%3AHeybuzzsugar+OR+Seat42f+OR+BuzzFocus+OR+Mytakeontv+OR+Televisionary+OR+Rural_juror+OR+Thetvaddict";

	var url = "http://pipes.yahoo.com/pipes/pipe.run?_id=3139c56d9bec43c4e0151fc554ee164c&_render=rss";
	var twitter_feed = new BlogPreview(document.getElementById(div));
	
	twitter_feed.show(url);
	return false;								
}

