    google.load("feeds", "1");

function stripHTML (str) {
	return str.replace(/(<([^>]+)>)/ig,"");	
}
//strip up to "..." if found
function stripTeaser (str,link) {
	var i = str.indexOf("...")
	if (i > -1) {
		str = str.substr(0,i+3)+"[<a href='"+link+"'>More</a>]";
	}
	return str;	
}
	function loadBabble() {
		var firstResult = 0;
		var lastResult = 8;
		var divId = "crossbabble";
		var feedURL = "http://crossbabble.blogspot.com/atom.xml";
		var showDesc = true;
		loadFeed(divId,feedURL,firstResult,lastResult,showDesc);
	}
	function loadCupNews() {
		var firstResult = 0;
		var lastResult = 2;
		var divId = "NcncaCupNews";
		var feedURL = "http://ncncacup.blogspot.com/atom.xml";
		var showDesc = true;
		loadFeed(divId,feedURL,firstResult,lastResult,showDesc);
	}
	function loadRaceRpts() {
		var firstResult = 0;
		var lastResult = 2;
		var divId = "ncncacxracerpt";
		var feedURL = "http://ncncacxracerpt.blogspot.com/atom.xml";
		var showDesc = false;
		loadFeed(divId,feedURL,firstResult,lastResult,showDesc);
	}
	function loadPRs() {
		var firstResult = 0;
		var lastResult = 2;
		var divId = "ncncacxprs";
		var feedURL = "http://ncncacxpr.blogspot.com/atom.xml";
		var showDesc = false;
		loadFeed(divId,feedURL,firstResult,lastResult,showDesc);
	}
	function loadUSACNews() {
		var firstResult = 0;
		var lastResult = 2;
		var divId = "usacnews";
		var feedURL = "http://www.usacycling.org/rss/cyclocross.rss";
		var showDesc = false;
		loadFeed(divId,feedURL,firstResult,lastResult,showDesc);
	}
	function loadTopNews() {
		var firstResult = 0;
		var lastResult = 6;
		var divId = "ncncacxnews";
		var feedURL = "http://ncncacxnews.blogspot.com/feeds/posts/default";
		var showDesc = true;
		loadFeed(divId,feedURL,firstResult,lastResult,showDesc);
	}
    function loadFeed(divId,url,firstResult,lastResult,showDesc) {
      var feed = new google.feeds.Feed(url);
	  feed.setNumEntries(lastResult+1);
   	  feed.includeHistoricalEntries();
      feed.load(function(result) {
        if (!result.error) {
          var container = document.getElementById(divId);
          //this is a kluge - for some reason teaser didn't work right if loaded the same feed twice
          var teaserContainer = document.getElementById("ncncacxnewsteaser");
		  container.innerHTML="";
          for (var i = firstResult; i <= lastResult; i++) {
            var entry = result.feed.entries[i];
			if (divId == "ncncacxnews") {
				//kluge, cont'd - set container to teaser
    	        if (i==0) {
					container = teaserContainer;
     	        }
				var a = document.createElement("a");
				a.setAttribute("href",entry.link);
				a.appendChild(document.createTextNode(entry.title));
				var h4 = document.createElement("h4");
				h4.appendChild(a);
				container.appendChild(h4);
				if (i == 0){
					var p = document.createElement("p");
					var snippetId = "snippet"+i;
					p.setAttribute("id",snippetId);
					p.appendChild(document.createTextNode(snippet));
					container.appendChild(p);
					var snippet = entry.content;
					//strip up to "..." if exists and add [More...]link
					snippet = stripTeaser(snippet,entry.link);
					//var snippet = entry.contentSnippet;
          			var snippetContainer = document.getElementById(snippetId);
					snippetContainer.innerHTML = snippet;
				} else {
					var p = document.createElement("p");
					var snippetId = "snippet"+i;
					p.setAttribute("id",snippetId);
					p.appendChild(document.createTextNode(snippet));
					container.appendChild(p);
					var snippet = entry.contentSnippet;
          			var snippetContainer = document.getElementById(snippetId);
					snippetContainer.innerHTML = snippet;
				}
				var p = document.createElement("p");
				p.setAttribute("class","postdate");
				var dt = new Date(entry.publishedDate);
    	        p.appendChild(document.createTextNode("posted "+dt.toLocaleString()));
				var comt = document.createElement("p");
				comt.setAttribute("class","postdate");
				var commentsLink = document.createElement("a");
				var comments = "Comments";
				commentsLink.setAttribute("href",entry.link);
				commentsLink.appendChild(document.createTextNode(comments));
    	        comt.appendChild(commentsLink);
				container.appendChild(p);
				container.appendChild(comt);
    	        //set it back
    	        if (i==0) {
		          container = document.getElementById(divId);
    	        }
			} else {
				var a = document.createElement("a");
				var p = document.createElement("p");
				a.setAttribute("href",entry.link);
				a.appendChild(document.createTextNode(entry.title));
				p.appendChild(a);
				container.appendChild(p);
				if (showDesc) {
					p = document.createElement("p");
					p.appendChild(document.createTextNode(entry.contentSnippet));
					container.appendChild(p);
				}
			}
          }
        }
      });
    }
//    google.setOnLoadCallback(loadTopNewsTeaser);
    google.setOnLoadCallback(loadTopNews);
    google.setOnLoadCallback(loadBabble);
    google.setOnLoadCallback(loadCupNews);
    google.setOnLoadCallback(loadRaceRpts);
    google.setOnLoadCallback(loadPRs);
    google.setOnLoadCallback(loadUSACNews);
