var http_request = false;
var dateSort = false;
var state = "type";
var resourceBy = -1;
var id;
var sortBy;
var innerAttrSort = false;
var monthSort = false;

function changeSort( type, aid, sort2) {
	var obj = document.getElementById("viewby");
	if (type == 'sponsor') {
		document.getElementById('viewby').innerHTML = 'View stories by:&nbsp;&nbsp;<a href="#"  onclick="return changeSort(\'type\');" >Type</a><span>|</span><a href="#" onclick="return changeSort(\'sponsor\');" >Date</a>';
		obj.childNodes[3].className="current";
		obj.childNodes[1].className="";
		monthSort = true;
		dateSort = true;
		state = 'featured';
	} else if (type == 'type') {
		document.getElementById('viewby').innerHTML = 'View stories by:&nbsp;&nbsp;<a href="#"  onclick="return changeSort(\'type\');" >Type</a><span>|</span><a href="#" onclick="return changeSort(\'sponsor\');" >Date</a>';
		obj.childNodes[1].className="current";
		obj.childNodes[3].className="";
		dateSort = false;
		monthSort = false;
		state = 'featured';
	}
	if (type == "sponsor_all") {
		state= "type_all";
		document.getElementById('viewby').innerHTML = 'View stories by:&nbsp;&nbsp;<a href="#"  onclick="return changeSort(\'sponsor_all\','+id+');" >Most Recent</a><span>|</span><a href="#" onclick="return changeSort(\'sponsor_all\','+id+',true);" >Type</a>';
		if(sort2) {
			obj.childNodes[1].className="";
			obj.childNodes[3].className="current";
		} else {
			obj.childNodes[1].className="current";
			obj.childNodes[3].className="";
		}
		sortBy = aid;
		dateSort = true;
	}
	if (type == "type_all") {
		state= "type_all";
		document.getElementById('viewby').innerHTML = '';
		/* document.getElementById('viewby').innerHTML = 'View videos by:&nbsp;&nbsp;<a href="#"  onclick="return changeSort(\'type_all\','+id+');" >Most Recent</a><span>|</span><a href="#" onclick="return changeSort(\'type_all\','+id+',true);" >Date</a>';		
		if(sort2) {
			obj.childNodes[1].className="";
			obj.childNodes[3].className="current";
		} else {
			obj.childNodes[1].className="current";
			obj.childNodes[3].className="";
		}*/
		sortBy = aid;
		dateSort = false;
	}
	
	if(sort2) {
		innerAttrSort = true;
	} else {
		innerAttrSort = false;
	}
	
	makeRequestResources();
	return false;
}

function compare(x,y) {
	if(x.type == y.type) { return 0; }
	if(x.type > y.type) { return -1; }
	return 1;
}

//Mon, 14 Aug 2006 12:55:28 PST
function convertDate( d, rYear ) {
	var nm = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
	var m = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
	var arr = d.split(',')[1].split(' ');
	var day = arr[1];
//	monthTemp = arr[2];
	var month = arr[2];
	var year = arr[3];
	var i;
	var monthDigit;
	for(i=0; i<m.length; i++) { 
			if(month == m[i]) {
					month = nm[i];
					monthDigit = i;
			}
		
	}
	
	var cDate = month;
	if(rYear) {
		if(monthSort) {
			return month + ' ' + year;
		} else {
			return year;
		}
	} else {
		var cDate = monthDigit+'/'+day+'/'+year;
		return cDate;
	}
}

function getArticles( XMLNode ) {
	var XMLItem = new Array();
	for (i=0; XMLNode.length>i; i++)
	{
		 XMLItem[i] = new Array();
		 for (k=0; XMLNode[i].childNodes.length>k; k++)
		 {
			 if(XMLNode[i].childNodes[k].firstChild != null) {
				 switch(XMLNode[i].childNodes[k].tagName) {
					 case "title" : XMLItem[i]["title"] = XMLNode[i].childNodes[k].firstChild.data;
										break;
					 case "k:type" : 
										break;									
					 case "k:summary_img" : XMLItem[i]["image"] = XMLNode[i].childNodes[k].firstChild.data;
										break;
					 case "title" : XMLItem[i]["title"] = XMLNode[i].childNodes[k].firstChild.data;
										break;
					 case "description" : XMLItem[i]["description"] = XMLNode[i].childNodes[k].firstChild.data;
										break;
					 case "link" : XMLItem[i]["hlink"] = XMLNode[i].childNodes[k].firstChild.data;
										break;
					 case "k:visit_site" : XMLItem[i]["sponsor_link"] = XMLNode[i].childNodes[k].firstChild.data;
										break;
					 case "guid" :      XMLItem[i]["id"] = XMLNode[i].childNodes[k].firstChild.data.split('ct=')[1];
										break;
					case "pubDate" :  
										if(monthSort) {
											XMLItem[i]["type"] = convertDate(XMLNode[i].childNodes[k].firstChild.data,true);
										} else {
											XMLItem[i]["type"] = convertDate(XMLNode[i].childNodes[k].firstChild.data,true);
										}
									   XMLItem[i]["date"] = convertDate(XMLNode[i].childNodes[k].firstChild.data);
									break;
				 }
			 }
		 }
	}

	if(!monthSort) {
		XMLItem.sort(compare);
	}
	
	var oldType = "";
	k = -1;
	m = 0;
	var articles = new Array();
	for (i=0; XMLItem.length>i; i++)
	{
		if (oldType != XMLItem[i].type ) {
			k++;
			oldType = XMLItem[i].type;
			articles[k] = new Array();
			m=0;
		}
		articles[k].type = XMLItem[i].type;
		articles[k][m] = XMLItem[i];
		m++;
	}

	
	return articles;
}


function buildJumpTo(articles) {
	var oldType = "";
	var jumpToBlock = "";
	jumpToBlock = "Jump to:&nbsp;&nbsp;";
	var i;
	var test = articles.length;
	for (i=0; articles.length>i; i++)
	{
		if (oldType != articles[i].type ) {
			jumpToBlock += '<a href="#'+articles[i].type+'">'+articles[i].type+'</a>';
			oldType = articles[i].type;
			if(articles.length != (i+1) ) {
				jumpToBlock += '<span>|</span>';
			}
		}
	}
	return jumpToBlock;
}

function displayAllTypes( articles ) {
	if(innerAttrSort) {	articles[id].sort( function (x,y) {	if(x.sponsor == y.sponsor) { return 0; }	if(x.sponsor < y.sponsor) { return -1; }	return 1; }); } // sorting if they are sorting by sponsor or type
	resourceBlocks = '';
	var backgroundImage = '';
	if(dateSort) { backgroundImage = 'style="background: url(http://www.umc.org/atf/cf/{DB6A45E4-C446-4248-82C8-E131B6424741}/BG-TYPEORANGEGREY.GIF) no-repeat 0;"'; }
	    else { backgroundImage = 'style="background: url(http://www.umc.org/atf/cf/{DB6A45E4-C446-4248-82C8-E131B6424741}/BG-DATEORANGEGREY.GIF) no-repeat 0;"'; }
	resourceBlocks += '<h2 id="'+articles[id].type+'" '+backgroundImage+' >'+articles[id].type+'&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;&nbsp;All Results</h2>';
	for (j=0; articles[id].length>j; j++) {
 		resourceBlocks += '<div class="resourceblock first"><div class="photo"><img alt="" src="'+articles[id][j].image+'" /></div><div class="text">  <h3><a href="'+articles[id][j].hlink+'">'+articles[id][j].title+'</a></h3><p>'+articles[id][j].description+'</p><a class="extlink" href="'+articles[id][j].hlink+'">Go to article now</a></div><div class="extlinks">'+articles[id][j].date+'<br />';
		if(!dateSort) {
		    resourceBlocks += '<a href="#"  onclick="return changeSort(\'sponsor_all\',\''+articles[id][j].date+'\');">View All</a></div>'; 
		} else { 
			resourceBlocks += '<a href="#" onclick="return changeSort(\'type_all\', \''+articles[id][j].date+'\');">view all</a></div>'; 
			}
		resourceBlocks += '<div class="clear"></div></div><br><br>';
	}
	resourceBlocks += '<div class="backtotoplink"><a href="#anchorlinks2">Back to top</a></div><div class="clear"></div>';
	return resourceBlocks;
}


function createResources(articles) {
	var resourceBlocks = "";
//	var maxArticles = 10;
	var backgroundImage = "";
	for (i=0; articles.length>i; i++)
	{
		if(dateSort) { 
			backgroundImage = 'style="background: url(http://www.umc.org/atf/cf/{DB6A45E4-C446-4248-82C8-E131B6424741}/BG-TYPEORANGEGREY.GIF) no-repeat 0;"';
			thisSortType = 'sponsor_all';
			//resourceBlocks += '<h2 id="'+articles[i].type+'" '+backgroundImage+' ><a href="#" onclick="return changeSort(\''+thisSortType+'\',\''+articles[i].type+'\');">'+articles[i].type+'</a></h2>';
		} else {
			thisSortType = 'type_all';
			backgroundImage = 'style="background: url(http://www.umc.org/atf/cf/{DB6A45E4-C446-4248-82C8-E131B6424741}/BG-DATEORANGEGREY.GIF) no-repeat 0;"';
		}
		resourceBlocks += '<h2 id="'+articles[i].type+'" '+backgroundImage+' >'+articles[i].type+'</h2>';

		for (j=0; articles[i].length>j; j++) {
 			//if (maxArticles<=j) { break; }
			resourceBlocks += '<div style="height:20px;width:100%;clear:both;"><a href="'+articles[i][j].hlink+'" style="width:370px;float:left;">'+articles[i][j].title+'</a><div class="extlinks" style="float:left;">'+articles[i][j].date+'</div></div>';
			/*if(!dateSort) { resourceBlocks += '<a href="#" onclick="return changeSort(\'sponsor_all\', \''+articles[i][j].date+'\');">View All</a></div>'; }
			  else { resourceBlocks += '<a href="#" onclick="return changeSort(\'type_all\',\''+articles[i][j].type+'\'); ">view all</a></div>'; }*/
		}
		
		resourceBlocks += '<div class="backtotoplink"><a href="#anchorlinks2">Back to top</a></div><div class="clear"></div>';
	}
	return resourceBlocks;
}

function makeRequestResources() {
	url='http://www.umc.org/site/apps/nl/rss3.asp?c=lwL4KnN1LtH&b=2022489';
	http_request = false;

	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/XML');
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
			http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}

	if (!http_request) {
		alert('Giving up :( Cannot create an XMLHTTP instance');
		return false;
	}
	http_request.onreadystatechange = displayResources;
	http_request.open('GET', url, true);
	http_request.send(null);
}

var backLink;
function displayResources() {
	if (http_request.readyState == 1) {
		//document.getElementById('articles').innerHTML = "Loading...";
	}
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			var xmldoc = http_request.responseXML;
			var root_node = xmldoc.getElementsByTagName('item');
			var articles = getArticles(root_node);
			if(backLink == null) {
				backLink = document.createElement('div');
				backLink.innerHTML = '&lt;&lt; <a href="http://www.umc.org/site/c.lwL4KnN1LtH/b.2021395/k.C15C/Video.htm">Back to Video Stories Home</a>';
				var par = document.getElementById('maincontentmetho');
				var c = par.firstChild;
				par.insertBefore(backLink, c);
			}
			switch(state) {
				case "type_all"	:   document.getElementById('anchorlinks2').innerHTML = '&lt;&lt; <a href="#" onclick="return changeSort(\'type\');">Back to Featured Videos</a>';
									document.getElementById('articles').innerHTML = displayAllTypes(articles);
									break;
				default			:	document.getElementById('anchorlinks2').style.visibility = "";
									document.getElementById('articles').innerHTML = createResources(articles);
									document.getElementById('anchorlinks2').innerHTML = buildJumpTo(articles);
									document.getElementById('viewby').innerHTML = 'View stories by:&nbsp;&nbsp;<a href="#" onclick="return changeSort(\'type\');" class="current">Year</a><span>|</span><a href="#" onclick="return changeSort(\'sponsor\');">Month</a>';
									break;
			}
			} else {
				alert('There was a problem with the request.');
			}
		}
}

function addLoadListener(fn)
{
	if (typeof window.addEventListener != 'undefined')
	{
		window.addEventListener('load', fn, false);
	}
 	else if (typeof document.addEventListener != 'undefined')
 	{
   	document.addEventListener('load', fn, false);
	}
 	else if (typeof window.attachEvent != 'undefined')
 	{
   	window.attachEvent('onload', fn);
 	}
 	else
 	{
   	var oldfn = window.onload;
   	if (typeof window.onload != 'function')
   	{
     window.onload = fn;
   	}
   	else
   	{
	window.onload = function()
     {
       oldfn();
       fn();
     };
   }
 }
}

addLoadListener(makeRequestResources);
