function Blog(container) {
  this.container_ = container;
  this.thr_ = "http://purl.org/syndication/thread/1.0";
  this.media_ ="http://search.yahoo.com/mrss";
}

Blog.prototype.show = function(url, opt_noTitle) {
  var feed = new google.feeds.Feed(url);
  feed.setNumEntries(-1);
  feed.setResultFormat(google.feeds.Feed.MIXED_FORMAT);
  var blog = this;
  feed.load(function(result) {
    blog.render_(result);
  });
}

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

  var blog = this.container_;
  
  for (var i = 0; i < result.feed.entries.length; i++) {
    var entry = result.feed.entries[i];
    var div = this.createDiv_(blog, "post");
    
    
    this.createDiv_(div, "postBody").innerHTML = entry.content;
    
    
    var enclosures = entry.xmlNode.getElementsByTagNameNS(this.media_, "player");
    for(var j = 0; j < enclosures.length; j++) {
      var enclosure = enclosures[j];
      var mediaPlayerURL = enclosure.attributes["url"].nodeValue;
      if(mediaPlayerURL.indexOf("ggpht.com") != -1) {
        //Then it's a ggpht photo, create a thumbnail:
        thumbnailURL = mediaPlayerURL.substring(0, mediaPlayerURL.lastIndexOf("/")) + "/s144" + mediaPlayerURL.substr(mediaPlayerURL.lastIndexOf("/"));
        
        //parent should be a "media:content" tag
        var parentTag = enclosure.parentNode;
        var imageLink = parentTag.attributes["url"].nodeValue;
        
        var link = this.createLink_(div, imageLink, "", "thumbnailLink");
        var img = this.createElement_("img", link, "thumbnail");
        img.src = thumbnailURL;
        
      }
      
    }
    
    
    
    
    
    
    
    
    var dateString = prettyDate(entry.publishedDate);
    var footerDiv = this.createDiv_(div, "postFooter", dateString);
    var commentsString = "Comment";
    var commentNodes = entry.xmlNode.getElementsByTagNameNS(this.thr_, "total");
    if(commentNodes && commentNodes[0] && commentNodes[0].childNodes[0] && commentNodes[0].childNodes[0].nodeValue != "0") {
      commentsString = "Comments (" + commentNodes[0].childNodes[0].nodeValue + ")";
    }
    this.createElement_("span", footerDiv, "", " - ");
    this.createLink_(footerDiv, entry.link, commentsString);
  }
}

Blog.prototype.createDiv_ = function(parent, className, opt_text) {
  return this.createElement_("div", parent, className, opt_text);
}

Blog.prototype.createLink_ = function(parent, href, text, opt_classname) {
  var link = this.createElement_("a", parent, opt_classname, text);
  link.href = href;
  return link;
}

Blog.prototype.createElement_ = function(tagName, parent, className,
                                                opt_text) {
  var div = document.createElement(tagName);
  if(className) {
    div.className = className;
  }
  parent.appendChild(div);
  if (opt_text) {
    div.appendChild(document.createTextNode(opt_text));
  }
  return div;
}


function prettyDate(time){
  var date = new Date(time);
  //var dateString = (time || "").replace(/-/g,"/").replace(/[TZ]/g," ").replace(".000", "");
	//var date = new Date(dateString),
		diff = (((new Date()).getTime() - date.getTime()) / 1000),
		day_diff = Math.floor(diff / 86400);
			
	if ( isNaN(day_diff)) { 
		return "A while ago";
	}
	
	
	return day_diff == 0 && (
			diff < 60 && "just now" ||
			diff < 120 && "1 minute ago" ||
			diff < 3600 && Math.floor( diff / 60 ) + " minutes ago" ||
			diff < 7200 && "1 hour ago" ||
			diff < 86400 && Math.floor( diff / 3600 ) + " hours ago") ||
		day_diff == 1 && "Yesterday" ||
		day_diff < 7 && day_diff + " days ago" ||
		day_diff < 10 && "1 week ago" ||
		day_diff < 31 && Math.ceil( day_diff / 7 ) + " weeks ago" ||
		date.toDateString();
}

