// Latest from the CTC Cambridge blog
// This code fetches the most recent entried from the blog and creates a <div> containing it
// To display this on a web page, use <div id="latestnews"/>
// You need to declare the Google API key before calling this script

if (typeof google!="undefined") { 
	google.load("feeds", "1");
}

// start of configurable constants

// news snippets are displayed in groups of blockSize 
blockSize = 5;

// maximum number of blocks (each containing blockSize snippets) that may be displayed
// keep this low enough to avoid hitting Google's limit which seems to be about 25 (check)
maxBlocks = 2;

// end of configurable constants

// current number of blocks (each containing blockSize snippets) currently being displayed
numBlocksDisplayed = 0;

function initialize() {
	
	var container = document.getElementById("latestnews");
	
	// Create the heading
    var head = document.createElement("div");
    head.setAttribute("id","head");
    head.innerHTML = "<h2>Latest <a href=\"http://blog.ctc-cambridge.org.uk/search/label/news\"> ride reports</a> from the CTC Cambridge blog</h2><p/>";     
    container.appendChild(head);

	appendNews();
	
}


function displayMoreNews() {
	
    var container = document.getElementById("latestnews");
    var nav = document.getElementById("nav");
    container.removeChild(nav);
	    
	appendNews();

}

function resetNews(){
	
	var container = document.getElementById("latestnews");
    var subsequentBlocks = document.getElementById("subsequentBlocks");
    container.removeChild(subsequentBlocks);
	
    var nav = document.getElementById("nav");
    container.removeChild(nav);
	
	numBlocksDisplayed = 1;
	appendNav();

}

function appendNav(){
	
	var container = document.getElementById("latestnews");
	var nav = document.createElement("div");  
    nav.setAttribute("id","nav");
    if (numBlocksDisplayed < maxBlocks) {
      	var more = document.createElement("div");  
       	more.setAttribute("id","more");
  		more.innerHTML = "<span class=\"psuedolink\" title=\"Click to display more news items\" style=\"cursor: pointer;\" onclick=\"displayMoreNews()\">Show more items</span> ";    
       	nav.appendChild(more);
    }
        
    if (numBlocksDisplayed > 1) {
       	var reset = document.createElement("div");  
       	reset.setAttribute("id","reset");
  		reset.innerHTML = "<span class=\"psuedolink\" title=\"Click to display fewer news items\" style=\"cursor: pointer;\" onclick=\"resetNews()\">Show fewer items</span> ";    
       	nav.appendChild(reset);
    }
    container.appendChild(nav);
}

function appendNews() {

  var container = document.getElementById("latestnews");
  
  // read the feed from blog.ctc-cambridge.org.uk for entries tagged as "news"
  var feed = new google.feeds.Feed("http://blog.ctc-cambridge.org.uk/feeds/posts/default/-/news?alt=rss"); 
  firstEntry = numBlocksDisplayed * blockSize;
  lastEntry = firstEntry + blockSize;  

  feed.setNumEntries(lastEntry.toString(10));  
                  
  feed.load(function(result) {
     if (!result.error) {
     	var container = document.getElementById("latestnews");
     	if (numBlocksDisplayed == 0) {
    		// create an empty div that will hold the first block
    		block = document.createElement("div");
    		block.setAttribute("id","firstBlock");
    		container.appendChild(block);
     	} 
     	
     	if (numBlocksDisplayed == 1) {
     		// create an empty div that will hold second and subsequent blocks
    		block = document.createElement("div");
    		block.setAttribute("id","subsequentBlocks");
    		container.appendChild(block);
     	} 
     	   
     	if (numBlocksDisplayed > 1) {     	
     		block = document.getElementById("subsequentBlocks");
     	}


 		for (var i = firstEntry; i < lastEntry; i++) {
        	var entry = result.feed.entries[i];
        	var div1 = document.createElement("div");
        	div1.innerHTML = "<p><a href=" + entry.link + ">"+entry.title+"</a>" + "<br/>" + entry.contentSnippet + "</p>";   
        	block.appendChild(div1);
        }
        
        numBlocksDisplayed ++;

		appendNav();
     }
   });
   
  //var heading = document.createElement("div");
  //heading.innerHTML = "<h3>Latest from the <a href=\"http://blog.ctc-cambridge.org.uk\">CTC Cambridge Blog</a></h3>";        
  //container.appendChild(heading);

}

if (typeof google!="undefined") { 
	google.setOnLoadCallback(initialize);
}
