var http_request = false;
var sponsor = false;
var state = "type";
var resourceBy = -1;
var id;
var sortBy;
var innerAttrSort = false;
var articles;

function changeSort( type, aid, sort2) {
	var obj = document.getElementById("viewby");
	if (type == 'sponsor') {
		document.getElementById('viewby').innerHTML = 'View resources by:&nbsp;&nbsp;<a href="#"  onclick="return changeSort(\'type\');" >Type</a><span>|</span><a href="#" onclick="return changeSort(\'sponsor\');" >Sponsor</a>';
		obj.childNodes[3].className="current";
		obj.childNodes[1].className="";
		sponsor = true;
		state = 'featured';
	} else if (type == 'type') {
		document.getElementById('viewby').innerHTML = 'View resources by:&nbsp;&nbsp;<a href="#"  onclick="return changeSort(\'type\');" >Type</a><span>|</span><a href="#" onclick="return changeSort(\'sponsor\');" >Sponsor</a>';
		obj.childNodes[1].className="current";
		obj.childNodes[3].className="";
		sponsor = false;
		state = 'featured';
	}
	if (type == "sponsor_all") {
		state= "type_all";
		document.getElementById('viewby').innerHTML = 'View resources by:&nbsp;&nbsp;<a href="#"  onclick="return changeSort(\'type_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;
		sponsor = true;
	}
	if (type == "type_all") {
		state= "type_all";
		document.getElementById('viewby').innerHTML = 'View resources 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);" >Sponsor</a>';
		if(sort2) {
			obj.childNodes[1].className="";
			obj.childNodes[3].className="current";
		} else {
			obj.childNodes[1].className="current";
			obj.childNodes[3].className="";
		}
		sortBy = aid;
		sponsor = false;
	}
	
	if(sort2) {
		innerAttrSort = true;
	} else {
		innerAttrSort = false;
	}
	
	makeRequestResources();
	return false;
}

function watchMovie( obj, art ) {
	var b = document.getElementsByTagName('body')[0];
	var hD = obj.parentNode.parentNode; // Holding Div
	var s = document.createElement('div'); // Spacer

	s.style.height = hD.offsetHeight+10+'px';
	s.className = "ArticleMovieSpacer";
	
	hD.className = hD.className+' TopMovie';
	hD.style.width = "710px";
	hDL = hD.offsetLeft;
	hDT = hD.offsetTop;

	var gD = document.createElement('div'); // Greyed div background	
	gD.id = "GreyBox";

	var cL = document.createElement('a'); // Closing Link
	cL.href="javascript:;";
	cL.onclick= function () { closeMovie(this); };
	cL.innerHTML="<img src=\"/atf/cf/{DB6A45E4-C446-4248-82C8-E131B6424741}/close_gif.gif\" />";
	cL.className="CloseMovie";
	
	fD = document.createElement('div');
	fD.id = 'MovieFlash';
	fD.innerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0&lt;http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab       &gt;" width="240" height="200"><param name="movie" value="/atf/cf/{DB6A45E4-C446-4248-82C8-E131B6424741}/6_videoplayer8.swf"/><param name="quality" value="high"/><param name="FLASHVARS" value="file='+art.vlink+'&amp;totaltime=268&amp;playType=FLV"/><param name="swliveconnect" value="true"/><embed src="/atf/cf/{DB6A45E4-C446-4248-82C8-E131B6424741}/6_videoplayer8.swf" swliveconnect="true" FLASHVARS="file='+art.vlink+'&amp;totaltime=268&amp;playType=FLV" quality="high" pluginspage="           &lt;http://www.macromedia.com/go/getflashplayer &gt;" type="application/x-shockwave-flash" width="240" height="200"></embed></object>';
	var cD = hD.lastChild; // Clear Div
	hD.insertBefore(fD,cD);
	hD.insertBefore(cL,cD);
	hD.parentNode.insertBefore(gD,obj.parentNode.parentNode);

	//obj.parentNode.nextSibling.lastChild.style.display = 'none'; // View All Tag Remove

	hD.parentNode.insertBefore(s,obj.parentNode.parentNode.nextSibling);
	
	hD.style.top = hD.offsetTop - 22+'px';
	hD.style.left = hD.offsetLeft - 12+'px';
	hD.style.border  = "2px solid #D38200";
	obj.style.display = "none";
}

function closeMovie(o) {
	var hD = o.parentNode; // Holding Div
	var m = o.previousSibling; // movie
	var gB = document.getElementById('GreyBox');
	var s = hD.nextSibling; // spacer
	var a = o.previousSibling.previousSibling.previousSibling.lastChild; // a tag watch video
	m.previousSibling.lastChild.style.display = 'inline';
	hD.style.border  = "0";
	hD.removeChild(o);
	hD.removeChild(m);
	hD.parentNode.removeChild(gB);
	hD.parentNode.removeChild(s);
	hD.className = "resourceblock first";
	hD.style.top = "";
	hD.style.left = "";
	hD.style.width = "";
}


function compare(x,y) {
	if(x.type == y.type) { return 0; }
	if(x.type < y.type) { return -1; }
	return 1;
}

function d(str) { // debug function
	if(document.getElementById('debugger') == null){
		var s = document.createElement('span');
		s.style.display = 'none';
		s.id = 'debugger';
		s.innerHTML = str+'\n';
		var b = document.getElementsByTagName('body')[0];
		b.appendChild(s);
	} else {
		var s = document.getElementById('debugger');
		s.innerHTML += str+'\n';
	}	
}

function numOrdA(a, b){ return (a.rank-b.rank); }
function numOrdD(a, b){ return (b-a); }

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" : if( sponsor ) {
										XMLItem[i]["sponsor"] = XMLNode[i].childNodes[k].firstChild.data;
									 } else {
										XMLItem[i]["type"] = XMLNode[i].childNodes[k].firstChild.data;
									 }
										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 "k:sponsor" : if( sponsor ) {
										XMLItem[i]["type"] = XMLNode[i].childNodes[k].firstChild.data;
									 } else {
										XMLItem[i]["sponsor"] = XMLNode[i].childNodes[k].firstChild.data;
									 }
										break;
					 case "description" : XMLItem[i]["description"] = XMLNode[i].childNodes[k].firstChild.data;
										break;
					 case "k:rank" : XMLItem[i]["rank"] = parseInt(XMLNode[i].childNodes[k].firstChild.data);
										break;
					 case "link" : XMLItem[i]["hlink"] = XMLNode[i].childNodes[k].firstChild.data;
										break;
					 case "k:city" : XMLItem[i]["city"] = XMLNode[i].childNodes[k].firstChild.data;
										break;
					 case "k:state" : XMLItem[i]["state"] = XMLNode[i].childNodes[k].firstChild.data;
										break;
					 case "k:country" : XMLItem[i]["country"] = XMLNode[i].childNodes[k].firstChild.data;
										break;
					 case "k:visit_site" : XMLItem[i]["sponsor_link"] = XMLNode[i].childNodes[k].firstChild.data;
										break;
					 case "k:watch_video_label" : XMLItem[i]["video_label"] = XMLNode[i].childNodes[k].firstChild.data;
										break;
					 case "k:watch_video_url" : XMLItem[i]["vlink"] = XMLNode[i].childNodes[k].firstChild.data;
										break;
					 case "k:go_to_article_now_label" : XMLItem[i]["go_label"] = XMLNode[i].childNodes[k].firstChild.data;
										break;
					 case "k:go_to_article_now_url_internal" : XMLItem[i]["go_internal"] = XMLNode[i].childNodes[k].firstChild.data;
										break;
					 case "k:go_to_article_now_url_external" : XMLItem[i]["go_external"] = XMLNode[i].childNodes[k].firstChild.data;
										break;
					 case "pubDate" :   XMLItem[i]["date"] = convertDate(XMLNode[i].childNodes[k].firstChild.data);
										break;
					 case "guid" :      XMLItem[i]["id"] = XMLNode[i].childNodes[k].firstChild.data.split('ct=')[1];
										break;
				 }
			  }
		 }
	}

	XMLItem.sort(compare);
	
	var oldType = "";
	k = -1;
	m = 0;
	var articles = new Array();
	var rA = 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;
		}
		if(cE(XMLItem[i].rank)){
			rA.push(XMLItem[i]);
		} else {
			articles[k].type = XMLItem[i].type;
			articles[k][m] = XMLItem[i];
		}
		m++;
	}
	
	var dateRE = /^(\d{2})[\/\- ](\d{2})[\/\- ](\d{4})/;
	for (i=0; articles.length>i; i++)
	{
		if(articles[i].type == sortBy) {
			id = i;
		}
		articles[i].sort(function (a, b){
				a = a['date'].replace(dateRE,"$3$1$2");
				b = b['date'].replace(dateRE,"$3$1$2");
				if (a>b) return -1;
				if (a <b) return 1;
				return 0; }
			);
	}
	
	rA.sort(numOrdA);
	
	var i =0;
	for(i=0; i<articles[0].length; i++) {
		if(articles[0][i]==null) { break; }
	}
	articles[0].length = i;
	for (i=0; rA.length>i; i++) { // ranked items go in here
		//d(rA[i].rank+'>'+articles[0].length)
		if(rA[i].rank>articles[0].length) {
			d(rA[i].rank+'>'+articles[0].length)
			articles[0].push(rA[i]);
		} else {
				var p = parseInt(rA[i].rank) - 1;
				articles[0].splice(p,0,rA[i]);
		}
	}

	
	/*for(i=0;i<articles[0];i++) {
		if(cE(articles[0][i].rank)) {
			var p = parseInt(articles[0][i].rank) - 1;
			articles[0].splice(p,0,articles[0][i]);
			articles[0][i]=null;
		}
	}*/
	return articles;
}

//Mon, 14 Aug 2006 12:55:28 PST
function convertDate( d ) {
	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;
	for(i=0; i<m.length; i++) { 
		if(month == m[i]) {
           month = (i+1);
		}
	}
	
	month = month.toString();
	if(month.length == 1) {
		month = '0'+month;
	}
	day = day.toString();
	if(day.length == 1) {
		day = '0'+day;
	}
	
	var cDate = month+'/'+day+'/'+year;
	return cDate;
}

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(sponsor) { backgroundImage = 'style="background: url(http://www.umc.org/atf/cf/{DB6A45E4-C446-4248-82C8-E131B6424741}/BG-TYPEORANGEGREY.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].sponsor+'<br />';
		if(!sponsor) {
		    resourceBlocks += '<a href="'+articles[id][j].sponsor_link+'">visit site</a></div>'; 
		} else { 
			resourceBlocks += '<a href="#" onclick="return changeSort(\'type_all\', \''+articles[id][j].sponsor+'\');">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 cE (i) {
	return(!(typeof i === 'undefined'));
}

function cR() {
	document.getElementById('articles').innerHTML = createResources();
	document.getElementById('anchorlinks2').style.display = "none";
}

function dA() {
	var resourceBlocks = "";
	var maxArticles = 100;
	var i=0;
	document.getElementById('anchorlinks2').style.display = 'block';
	document.getElementById('anchorlinks2').innerHTML = '&lt;&lt; <a href="#" onclick="cR();">Back to Featured Resources</a>';
	backgroundImage = 'style="background: url(\'/atf/cf/%7BDB6A45E4-C446-4248-82C8-E131B6424741%7D/BG-ORANGEGREY.gif\') no-repeat 0;"';
	resourceBlocks += '<h2 '+backgroundImage+' >'+articles[0].type+' Archive</h2>';
	
	for (j=0; articles[i].length>j; j++) {
			if (maxArticles<=j) { break; }
			var title="";
			title='<a href="'+articles[i][j].hlink+'" class="intlink">'+articles[i][j].title+'</a>';
			if (cE(articles[i][j].go_internal)){
//				alert(articles[i][j].go_internal);
				title='<a href="'+articles[i][j].go_internal+'" class="intlink">'+articles[i][j].title+'</a>';
			} else if (cE(articles[i][j].go_external)){
				title='<a href="'+articles[i][j].go_external+'" class="extlink" target="'+i+'_'+j+'">'+articles[i][j].title+'</a>';
			}
			resourceBlocks += '<div class="BottomListing">'+title+'<br />('+articles[i][j].sponsor+') '+articles[i][j].date+'</div>'; 		
	}

	resourceBlocks += '<div class="backtotoplink"><a href="#" style="float:left; >Back to top</a></div><div class="clear"></div>';
	document.getElementById('articles').innerHTML = resourceBlocks;
}


function createResources() {
	var resourceBlocks = "";
	var maxArticles = 2;
	var maxBottom = 10;
	var i=0;

	for (j=0; articles[i].length>j; j++) {
		if (maxBottom+maxArticles<=j) { break; }
		var title="";
		title='<a href="'+articles[i][j].hlink+'">'+articles[i][j].title+'</a>';
		if(cE(articles[i][j].go_external)) {
			titleBottom='<a href="'+articles[i][j].go_external+'" class="extlink" target="'+i+'_'+j+'">'+articles[i][j].title+'</a>';
		} else if(cE(articles[i][j].go_internal)) {
			titleBottom='<a href="'+articles[i][j].go_internal+'" class="intlink" >'+articles[i][j].title+'</a>';
		} else {
			titleBottom='<a href="'+articles[i][j].hlink+'">'+articles[i][j].title+'</a>';
		}
		if(cE(articles[i][j].vlink)) {
			bottomLink = '<a onclick="watchMovie(this,articles['+i+']['+j+']);" class="extlink" href="javascript:;">'+articles[i][j].video_label+'</a>';
			if (cE(articles[i][j].go_internal)){
				title='<a href="'+articles[i][j].go_internal+'">'+articles[i][j].title+'</a>';
			} else if (cE(articles[i][j].go_external)){
				title='<a href="'+articles[i][j].go_external+'">'+articles[i][j].title+'</a>';
			}
		}  else if (cE(articles[i][j].go_internal)){
			bottomLink = '<a href="'+articles[i][j].go_internal+'" class="intlink">'+articles[i][j].go_label+'</a>';				
			
			title='<a href="'+articles[i][j].go_internal+'">'+articles[i][j].title+'</a>';
		} else if (cE(articles[i][j].go_external)){
			bottomLink = '<a href="'+articles[i][j].go_external+'" class="extlink" target="'+i+'_'+j+'">'+articles[i][j].go_label+'</a>';
			title = '<a href="'+articles[i][j].go_external+'" target="'+i+'_'+j+'">'+articles[i][j].title+'</a>';
		} else {
			bottomLink = '<a href="'+articles[i][j].hlink+'" class="intlink">Read More</a>';				
		} 

		if ((maxArticles-1)<j) { 
			if (maxArticles==j) {
				backgroundImage = 'style="background: url(\'/atf/cf/%7BDB6A45E4-C446-4248-82C8-E131B6424741%7D/BG-ORANGEGREY.gif\') no-repeat 0;"';
				resourceBlocks += '<h2 '+backgroundImage+' >Recent articles about '+articles[0].type+'</h2>';
			}
			resourceBlocks += '<div class="BottomListing">'+titleBottom+'<br />('+articles[i][j].sponsor+') '+articles[i][j].date+'</div>'; 
		} else {
			var img = "";
			var nI = "";
			if(cE(articles[i][j].image)) {
				img = '<div class="photo"><img alt="" src="'+articles[i][j].image+'" /></div>';
				nI = "width:250px;"
			} else {
				nI = "width:430px;"
			}
			var loc = "";
			if(cE(articles[i][j].city)) {
				loc += articles[i][j].city;
			}
			if(cE(articles[i][j].state)) {
				loc += ', '+articles[i][j].state;
			}
			if(cE(articles[i][j].country)) {
				loc += ', '+articles[i][j].country;
			}
			if(loc.length > 0) {
				loc = loc+"<br />";
			}
			var summary = ""
			if(cE(articles[i][j].description)) {
				summary = articles[i][j].description;
			}
			
			resourceBlocks += '<div class="resourceblock first">'+img+'<div class="text" style="'+nI+'">  <h3>'+title+'</h3><p>'
								+'('+articles[i][j].sponsor+') '+articles[i][j].date+'<br />'
								+loc
								+summary+'</p>'
								+bottomLink+'</div>';
			resourceBlocks += '<div class="clear"></div></div>';
		}
	}

	resourceBlocks += '<div class="backtotoplink"><a href="#" style="float:left; ">Back to top</a> <a onclick="dA();" href="#" style="float:right; margin-right:5px;">'+articles[0].type+' Archive</a></div><div class="clear"></div>';
	
	return resourceBlocks;
}

function makeRequestResources() {
//	alert(document.getElementById('articles').getAttribute('rss'));
	url = document.getElementById('articles').getAttribute('rss');

	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);
}

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');
			articles = getArticles(root_node);
			switch(state) {
				case "type_all"	:   document.getElementById('anchorlinks2').innerHTML = '&lt;&lt; <a href="#" onclick="return changeSort(\'type\');">Back to Featured Resources</a>';
									document.getElementById('articles').innerHTML = displayAllTypes(articles);
									break;
				default			:	document.getElementById('viewby').style.display = "none"; 
									document.getElementById('articles').innerHTML = createResources(articles);
									document.getElementById('anchorlinks2').style.display = "none"; 
									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();
     };
   }
 }
}

function init(){
	document.getElementById('viewby').style.display = "none"; 
	document.getElementById('anchorlinks2').style.display = "none";
	display = document.getElementById('articles');
	document.getElementById('articles').innerHTML = '<img src="/atf/cf/{DB6A45E4-C446-4248-82C8-E131B6424741}/loading_ajx.gif" style="margin:50px auto 0 210px;"/>';
}
addLoadListener(init);
addLoadListener(makeRequestResources);