/*

    <script type="text/javascript" src="http://www.google.com/jsapi"></script>
    <script type="text/javascript" src="republish.js"></script>
    <script type="text/javascript">

    google.load("feeds", "1");


    function initialize() {
      var blog = new BlogPreview(document.getElementById("blog"));
      blog.show("http://sct.temple.edu/blogs/news-events/feed");
      return false;
    }
    google.setOnLoadCallback(initialize);
    </script>
    <link href="republish.css" rel="stylesheet" type="text/css" />
        
*/
function BlogPreview(container) {
  this.container_ = container;
}

BlogPreview.prototype.show = function(url, opt_numEntries, opt_noTitle, opt_fullContent) {
  var feed = new google.feeds.Feed(url);
  if(opt_numEntries) {
  	feed.setNumEntries(opt_numEntries);
  }
  var preview = this;
  feed.load(function(result) {
    preview.render_(result, opt_noTitle, opt_fullContent);
  });
}

BlogPreview.prototype.render_ = function(result, opt_noTitle, opt_fullContent) {
  if (!result.feed || !result.feed.entries) return;
  while (this.container_.firstChild) {
    this.container_.removeChild(this.container_.firstChild);
  }

  var blog = this.createDiv_(this.container_, "blog");
  if (!opt_noTitle) {
    var header = this.createElement_("h2", blog, "");
    this.createLink_(header, result.feed.link, result.feed.title);
  }

  for (var i = 0; i < result.feed.entries.length; i++) {
    var entry = result.feed.entries[i];
    var div = this.createDiv_(blog, "entry");
    var linkDiv = this.createDiv_(div, "title");
    this.createLink_(linkDiv, entry.link, entry.title);
    if (entry.author) {
      this.createDiv_(div, "author", "Posted by " + entry.author);
    }
    if (entry.publishedDate) {
    	var d = new Date(entry.publishedDate);
    	var months = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
		var day = d.getDate();
		var sup = "";
		if (day == 1 || day == 21 || day ==31) {
			sup = "st";
		} else if (day == 2 || day == 22) {
			sup = "nd";
		} else if (day == 3 || day == 23) {
			sup = "rd";
		} else {
			sup = "th";
		}
		var month = d.getMonth();
		var year = d.getFullYear();
		var formatted_date = months[month] + " " + day + sup+ ", " + year;

     	 this.createDiv_(div, "date", formatted_date);
    }
    if (opt_fullContent){
    	this.createDiv_(div, "body").innerHTML = entry.content;
    } else {
    	this.createDiv_(div, "body", entry.contentSnippet);
    }
  }
}

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;
}
