// RITS dynamic news listing

// Global variables
var rits_itemsLength = 3; // Number of items to display
var rits_itemsExpand = true; // Boolean for item expander
var rits_itemsURL = 'http://www.ofqual.gov.uk/index.php?option=com_content&view=category&id=167&format=feed&type=rss'; // Feed URL
var rits_itemsHolder = 'newsHolder' // Output container ID

// Initialise call
function rits_initFeeds () {
	rits_getFeed(rits_itemsURL, rits_itemsLength, rits_itemsHolder);
}

// Make call
function rits_getFeed (feedUrl, feedItems, feedContainer) {
	var feed = new google.feeds.Feed(feedUrl);
	feed.setNumEntries(feedItems);
	feed.load(function(result) { 
		rits_showFeed(result, feedContainer); 
	});
}

// Show result
function rits_showFeed(result, containerId) {
	
	if (!result.error) {
		
		// Clear static text
		var container = document.getElementById(containerId);
		container.innerHTML = "";
		
		var list = document.createElement('ul');
		
		// For each result
		for (var i = 0; i < result.feed.entries.length; i++) {
			
			var listItem = document.createElement('li');
			
			// Feed
			var entry = result.feed.entries[i];
			var feedItem = [];
			var attributes = ['title', 'link', 'contentSnippet', 'content'];
			for (var j = 0; j < attributes.length; j++) {
				feedItem[attributes[j]] = document.createTextNode(rits_strip(entry[attributes[j]]));
			}
			var entryDate = new Date(entry.publishedDate);
			feedItem['publishedDate'] = document.createTextNode(' '+entryDate.getHours()+":"+entryDate.getMinutes()+' '+entryDate.getDate()+"/"+(entryDate.getMonth()+1)+"/"+entryDate.getFullYear());	
			
			// Item link
			var link = document.createElement('a');
			link.appendChild(feedItem['title']); 
			link.href = entry.link;
			link.className = 'itemtitle';
			listItem.appendChild(link);
			
			// Item intro 
			var intro = document.createElement('div');
			intro.className = 'itemintro';
			intro.appendChild(feedItem['contentSnippet']);
			listItem.appendChild(intro);
			
			// Item Content
			var content = document.createElement('div');
			content.className = 'itemcontent';
			content.appendChild(feedItem['content']);
			content.style.display = 'none';
			listItem.appendChild(content);
			
			// Item date
			var date = document.createElement('span');
			date.className = 'itemdate';
			date.appendChild(feedItem['publishedDate']);
			listItem.appendChild(date);
			
			// Item Expand
			if (rits_itemsExpand) {
				var expand = document.createElement('a');
				expand.appendChild(document.createTextNode('More'));
				expand.href= '#';
				expand.className = 'itemexpand';
				jQuery(expand).click(rits_expandFeed);
				listItem.appendChild(expand);
			}
			
			list.appendChild(listItem);
				
		}
		
		// Append the content
		container.appendChild(list);
		
	}
	
}

// Clean html from text
function rits_strip (html) {
	var tmp = document.createElement("div");
	tmp.innerHTML = html;
	return tmp.textContent||tmp.innerText;
}

// News item expander
function rits_expandFeed() {

	var container = jQuery(this.parentNode);
	var contents = container.find('.itemcontent')[0];
	jQuery(contents).slideToggle('slow');
	
	var contentSnippet = container.find('.itemintro')[0];
	jQuery(contentSnippet).slideToggle('slow');

	if (this.innerHTML == 'More') {
		this.innerHTML = 'Less';
	}
	else {
		this.innerHTML = 'More';
	}

	return false;
}

// No need for $(document).ready as google loader handles this.
google.load("feeds", "1");
google.setOnLoadCallback(rits_initFeeds);

