/*
Written by Nick Sergeant, last updated February 15th, 2008.
http://www.nicksergeant.com
*/

var html = new Array;
var jsonator = new Array;
var totalFeedURLs = 0;
var a = 0;
var aa = 0;
var ee = 0;
var f = 0;
var h = 0;

function GetFeed(feed,type) {
	var newScript = document.createElement('script');
	newScript.type = 'text/javascript';
	if (type == 'json') {
		newScript.src = feed;
	}
	else {
		newScript.src = 'http://pipes.yahoo.com/pipes/pipe.run?_id=8ri1mB_b3BG3sY4CCR2yXQ&_render=json&_callback=Transport&feed='+feed;
	}
	document.getElementsByTagName("head")[0].appendChild(newScript);
}

function Transport(feed) {
	jsonator[a] = feed;
	a++;
}

function Handler(type,feed,argTarget,argItems,argExclude,argContainer,argRetainContainer) {
	for (var i = 0; i < argItems; i++) {
		if (feed.value.items[i]) {
			if (html[h] == undefined) {
				html[h] = '';
			}
			itemTitle = (feed.value.items[i].title).replace(/\"/g,'\'');
			switch (type) {
				case 'anchor-titles': {
					html[h] += '<a href="' + feed.value.items[i].link + '" title="' + itemTitle + '">' + itemTitle + '</a>';
					break;
				}
				case 'anchor-titles-related': {
					if (argExclude != '') {
						var re = new RegExp(argExclude,'gi');
						itemTitle = (feed.value.items[i].title).replace(re,'');
					}
					html[h] += '<a href="' + feed.value.items[i].link + '" title="' + itemTitle + '">' + itemTitle + '</a>';
					break;
				}
				case 'blog-post-new': {
					html[h] += '<a href="' + feed.value.items[i].link + '" title="' + itemTitle + '"><span>New:</span> ' + itemTitle + '</a>';
					break;
				}
				case 'summary-elections': {
					itemDescription = (feed.value.items[i].description).replace(/\"/g,'\'');
					html[h] += '<div class="elecStory clearfix"><h2><a href="' + feed.value.items[i].link + '" title="' + itemTitle + '" class="l_blueUnderline" style="display: block">' + itemTitle + '</a></h2><div class="elecStoryTeaser">' + itemDescription + '</div></div>';
					break;
				}
				case 'list-titles': default: {
					html[h] += '<li><a href="' + feed.value.items[i].link + '" title="' + itemTitle + '">' + itemTitle + '</a></li>';			
					break;
				}
			}
		}
	}
	h++;
	ProcessResult(html[h-1],argTarget,argContainer,argRetainContainer);
}

function CheckFeedStatus(argLength,argHandler,argTarget,argItems,argExclude,argContainer,argRetainContainer,aa) {
	if (argLength == jsonator.length) {
		Handler(argHandler,jsonator[aa],argTarget,argItems,argExclude,argContainer,argRetainContainer);
	}
	else {
		if (ee < 500) {
			setTimeout("CheckFeedStatus('" + argLength + "','" + argHandler + "','" + argTarget + "','" + argItems + "','" + argExclude + "','" + argContainer + "','" + argRetainContainer + "','" + aa + "')", '1000');
		}
		else {
			return false;
		}
		ee++;
	}
}

function ProcessFeeds(args) {
	for (var i = 0; i < args.feeds.length; i++) {
		totalFeedURLs += args.feeds[i].urls.length;
	}
	for (var i = 0; i < args.feeds.length; i++) {
		for (var ii = 0; ii < args.feeds[i].urls.length; ii++) {
			GetFeed(args.feeds[i].urls[ii].url,args.feeds[i].type);
			setTimeout("CheckFeedStatus('" + totalFeedURLs + "','" + args.feeds[i].handler + "','" + args.feeds[i].target + "','" + args.feeds[i].items + "','" + args.feeds[i].exclude + "','" + args.feeds[i].container + "','" + args.feeds[i].retainContainer + "','" + aa + "')",'1000');
			aa++;
		}
	}
}

function ProcessResult(html,target,container,retainContainer) {
	if (html) {
		document.getElementById(target + '-loading').style.display = 'none';
		document.getElementById(target).innerHTML += html;
	}
	else {
		if (container != '' && retainContainer != 'true') {
			document.getElementById(target + '-loading').style.display = 'none';
			document.getElementById(container).style.display = 'none';
		}
		else {
			document.getElementById(target + '-loading').style.display = 'none';
		}
	}
}