google.load("feeds", "1"); //Load Google Ajax Feed API (version 1)

function rssdisplayer(cssid, url, feedlimit, showoptions) {
  this.showoptions=showoptions || ""; //get string of options to show ("date" and/or "description")
  var feedpointer=new google.feeds.Feed(url); //create new instance of Google Ajax Feed API
  feedpointer.setNumEntries(feedlimit); //set number of items to display
  this.feedcontainer=document.getElementById(cssid);
  var displayer=this;
  feedpointer.load(function(r){displayer.formatoutput(r)}); //call Feed.load() to retrieve and output RSS feed
}

rssdisplayer.prototype.formatdate=function(datestr) {
  var itemDate=new Date(datestr);
  return itemDate.toLocaleString();
}

rssdisplayer.prototype.formatoutput=function(result) {
  if (!result.error) { //if RSS feed successfully fetched
    var thefeeds=result.feed.entries; //get all feed entries as a JSON array
    var rssoutput="";
    for (var i=0; i<thefeeds.length; i++) { //loop through entries
      var itemTitle="<a href=\"" + thefeeds[i].link + "\">" + thefeeds[i].title + "</a>";
      var itemDate=/date/i.test(this.showoptions)? this.formatdate(thefeeds[i].publishedDate) : "";
      var itemDescription=/description/i.test(this.showoptions)? thefeeds[i].content : "";
      var itemSnippet=/snippet/i.test(this.showoptions)? thefeeds[i].contentSnippet : "";
	  rssoutput+="<li>" + itemSnippet + " " + itemTitle + "</li>";
    }
    this.feedcontainer.innerHTML=rssoutput;
  }
}