// set these to the location of the XML feeds
var sharpeRssFile = "/_xml/blogs.aspx?b=1";
var mainRssFile = "/_xml/blogs.aspx?b=0";

var tabPostsNum = 3;
var brandPostsNum = 10;

function initNewsTab() {
	var tabPosts = 3;

	var mainFeed = getXML(mainRssFile);
	var mainPosts = getPosts(mainFeed, gender);
	
	var sharpeFeed = getXML(sharpeRssFile);
	var sharpePosts = getPosts(sharpeFeed, gender);

	var combinedPosts = mergePosts(sharpePosts, mainPosts);
	var newsDiv = $("#news");
	
    writeNewsPosts(combinedPosts, newsDiv);
    /**/
}

function initBrandPage() {
	var mainFeed = getXML(mainRssFile);
	var dailyDosePosts = getPosts(mainFeed, gender);
	var dailyDoseDiv = $(".daily_dose .scroll");
	writePosts(dailyDosePosts, dailyDoseDiv)

	dailyDoseDiv.twitterize('ronix', { count: 20 });


	var sharpeFeed = getXML(sharpeRssFile);
	var sharpePosts = getPosts(sharpeFeed);
	friendsDiv = $(".friends .scroll");
	writePosts(sharpePosts, friendsDiv);
	var friendsPosts = getPosts(mainFeed, ["friends"]);
	friendsDiv = $(".friends .scroll");
	writePosts(friendsPosts, friendsDiv);
}

function writePosts(posts, div) {
	for (var i = 0; i < brandPostsNum && i < posts.length; i++) {
		var date = getDate(posts[i]);
		var dateSplit = date.split('-');
		var monthName = months[dateSplit[1]];
		var day = dateSplit[2];
		var links = posts[i].getElementsByTagName("link");
		var link;
		for (var j = 0; j < links.length; j++) {
			if (links[j].attributes.getNamedItem("rel").value == "alternate") {
				link = links[j].attributes.getNamedItem("href").value;
			}
		}
		var title;
		if (posts[i].getElementsByTagName("title")[0].childNodes[0]) {
			title = posts[i].getElementsByTagName("title")[0].childNodes[0].nodeValue;
		} else {
			title = "Untitled";
		}
		var body = posts[i].getElementsByTagName("content")[0].childNodes[0].nodeValue;
		div.append('<div class="article">\
		<p><img src=/images/blogicon.png border=0 class=typeIcon align=absMiddle />' + monthName + ', ' + day + ' &mdash; <a href="' + link + '">' + title + '</a>\
		<p class="newsDate">' + monthName + ', ' + day + ' - ' + body.substring(0, 70) + '... </p>\
		</div>');
	}
}

function writeNewsPosts(posts, newsDiv) {
	for (var i = 0; i < tabPostsNum && i < posts.length; i++) {
		var date = getDate(posts[i]);
		var dateSplit = date.split('-');
		var monthName = months[dateSplit[1]];
		var day = dateSplit[2];
		var links = posts[i].getElementsByTagName("link");
		var link;
		for (var j = 0; j < links.length; j++) {
			if (links[j].attributes.getNamedItem("rel").value == "alternate") {
				link = links[j].attributes.getNamedItem("href").value;
			}
		}
		var title;
		if (posts[i].getElementsByTagName("title")[0].childNodes[0]) {
			title = posts[i].getElementsByTagName("title")[0].childNodes[0].nodeValue;
		} else {
			title = "Untitled";
		}
var body = posts[i].getElementsByTagName("content")[0].childNodes[0].nodeValue;
//body = body.replace("<img ", "<xx");
body = body.replace("src=", "disabledsrc=");

		newsDiv.append('<div class="newsitem">\
		<div class="newsdate">\
		<span class="month">' + monthName + '</span>\
		<span class="day">' + day + '</span>\
		</div>\
		<h1><a href="' + link + '">' + title + '</a></h1>\
		<p>' + body.substring(0, 70) + '... </p>\
		</div>');


		//console.log(body);
	}
}

function getDate(entry) {
	return entry.getElementsByTagName("updated")[0].childNodes[0].nodeValue.split('T')[0];
}

function getXML(fileName) {
	if (window.XMLHttpRequest)
	{// code for IE7+, Firefox, Chrome, Opera, Safari
		xmlhttp = new XMLHttpRequest();
	}
	else
	{// code for IE6, IE5
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}

	xmlhttp.open("GET", fileName, false);
	xmlhttp.send();
	return xmlhttp.responseXML;
}

function getPosts(xmlDoc, labels) {
	var entries = xmlDoc.getElementsByTagName("entry");
	if (labels != null) {
		var labelEntries = [];
		// three nested loops!!!
		// loop through each post
		for (var i = 0; i < entries.length; i++) {
			var categories = entries[i].getElementsByTagName("category");
			// loop through all the labels for this post
			for (var j = 0; j < categories.length; j++) {
			    // loop through posts that we're looking for
			    if (categories[j].attributes.getNamedItem("term").value == labels) {
			        labelEntries.push(entries[i]);
			    }
                /*
				for (var k = 0; k < labels.length; k++) {
					if (categories[j].attributes.getNamedItem("term").value == labels[k]) {
						labelEntries.push(entries[i]);
					}
				}
                */
			}
		}
		return labelEntries;
	} else {
		return collectionToArray(entries);
	}
}

function collectionToArray(collection)  
{  
    var ary = [];  
    for(var i=0, len = collection.length; i < len; i++)  
    {  
        ary.push(collection[i]);  
    }  
    return ary;  
}

function concat(array1, array2) {}

function mergePosts(posts1, posts2) {
	var mergedPosts = [];
	posts1 = posts1.slice(0);
	posts2 = posts2.slice(0);
	while (posts1.length > 0 || posts2.length > 0) {
		if (posts1.length == 0) {
			for (var k = 0; k < posts2.length; k++) {
				mergedPosts.push(posts2[k]);
			}
			return mergedPosts;
		} else if (posts2.length == 0) {
			for (var k = 0; k < posts1.length; k++) {
				mergedPosts.push(posts1[k]);
			}
			return mergedPosts;
		} else {
			var dateString1 = getDate(posts1[0]);
			var date1 = new Date(dateString1);
			var dateString2 = getDate(posts2[0]);
			var date2  = new Date(dateString2);
			if (date1 > date2) {
				// date 1 comes after (is more recent) than date2
				mergedPosts.push(posts1.pop());
			} else {
				mergedPosts.push(posts2.pop());
			}
		}
	}
	return mergedPosts;
}
