/*
* Author: simon.gilhooly
*/

function loadXMLDocument(fileName){
	var xmlDoc = window.ActiveXObject ? new ActiveXObject("MSXML2.DOMDocument.3.0")
	:
	
	document.implementation.createDocument("","",null);
	xmlDoc.async = false;
	xmlDoc.load(fileName);
	
	return xmlDoc;
}

function parseFeed(feedCategory){
	var newsItem, newsCategory, resultHTML = "", title, author, published, content, extract, matchId = "", required;
	var atomDoc = loadXMLDocument("/blog/atom.xml");

	var newsItems = atomDoc.getElementsByTagName("entry");		//get all the Atom feed entries
	
	if (newsItems.length > 0){
		for (var i = 0; i < newsItems.length; i++) {
			newsCategory = "";
			matchId = "";
			required = false;
			newsItem = newsItems[i];

			newsItemCategories = newsItem.getElementsByTagName("category");
			if (newsItemCategories.length > 0){
				for (var j = 0; j < newsItemCategories.length; j++) {

					newsCategory = newsItem.getElementsByTagName("category")[j].getAttribute("term");
					if (newsCategory.toLowerCase() == feedCategory.toLowerCase()) {
						required = true;
					} else {
						if (newsCategory.slice(0, 4) == "m_id") {
							matchId = "?" + newsCategory;
						}
					}
				}
				if (required) {
					title = newsItem.getElementsByTagName("title")[0].firstChild.nodeValue;
					author = newsItem.getElementsByTagName("name")[0].firstChild.nodeValue;
					published = newsItem.getElementsByTagName("published")[0].firstChild.nodeValue.slice(0,10);
					content = newsItem.getElementsByTagName("content")[0].firstChild.nodeValue;
					
					newsItemLinks = newsItem.getElementsByTagName("link");
					for (var k = 0; k < newsItemLinks.length; k++) {
						linkRel = newsItemLinks[k].getAttribute("rel");
						if (linkRel == "alternate") {
							matchReportURL = newsItemLinks[k].getAttribute("href");
						}
					}
					
					if ((content.indexOf("<br />") > 0) || (content.indexOf("</p>") > 0)) {			// if this is a single paragraph include everything -
						truncPt = Math.max((content.indexOf("<br />")), content.indexOf("</p>") + 4);
						extract = content.slice(0, truncPt);
					} else {
						extract = content;
					}
					resultHTML = resultHTML + "<div class='newsitem'><h4><a href='" + matchReportURL + matchId + "'>" + title + "</a></h4><p>" + extract + " <a href='" + matchReportURL + matchId + "'> .... read more!</a></p><p>Added by: " + author + " - <span class='date'>" + published + "</span></p></div>";
				}
			} else {
				// newsCategory = "undefined";
			}
		}
	}
	else {
		alert("Error - no news items found");
	}
	return resultHTML;
}

