﻿function BlogPreview(container) {
  this.feeds = [];
  this.results = [];
  this.numResults = 4;

  this.container_ = container;
}

BlogPreview.prototype.setNumResults = function( num ) {
   this.numResults = num;
}

BlogPreview.prototype.addFeed = function( kind, title, url, rss ) {
  
  this.feeds.push({
             "kind": kind,
			 "title": title,       
			 "url": url,
			 "rss": rss
	  });
}

BlogPreview.prototype.show = function( blogtitle ,url, blog_container) {
  var feed = new google.feeds.Feed(url);
  feed.setNumEntries(this.numResults);
  
  var preview = this;
  feed.load(function(result) {
    preview.render_(result, blogtitle, blog_container);
  });
}

BlogPreview.prototype.render_ = function(result, blogtitle, blog_container) {

  if (!result.feed || !result.feed.entries) return;
  
  for (var i = 0; i < result.feed.entries.length; i++) {
    var entry = result.feed.entries[i];
    var div = this.createDiv_(blog_container, "blogentry");
    var linkDiv = this.createDiv_(div, "blogtitle");    
    var title = entry.title.substr(0, 18);        
    
    var MSdate = new Date(entry.publishedDate);
    var entrydate =  (MSdate.getMonth()+1) + "/" + MSdate.getDate();
    
    this.createLink_(linkDiv, entry.link, title, blogtitle );
    this.createDiv_(div, "blogpublished", entrydate);

    //this.createDiv_(div, "publishedDate", entry.publishedDate);    
    //this.createDiv_(div, "body", entry.contentSnippet);
  }
}

BlogPreview.prototype.draw = function() {
   
   this.container_.innerHTML = "";
      
   for (var i = 0; i < this.feeds.length; i++) {
     var blog = this.createDiv_(this.container_, "subblog" );
     var header = this.createElement_("p", blog, "");         
     var headerText = "[" + this.feeds[i].kind + "] " + this.feeds[i].title;
     this.createLink_(header, this.feeds[i].url, headerText, this.feeds[i].title);     
	 this.show(this.feeds[i].title, this.feeds[i].rss, blog);
   }

}

BlogPreview.prototype.createDiv_ = function(parent, className, opt_text) {
  return this.createElement_("div", parent, className, opt_text);
}

BlogPreview.prototype.createLink_ = function(parent, href, text, linkname ) {
  var link = this.createElement_("a", parent, "", text);
  link.href = href;  
  link.target = google.feeds.LINK_TARGET_BLANK;
  link.onmousedown = "javascript:pageTracker._trackEvent('" + linkname + "','link');";
  
  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;
}




