var	feedList = new Array();

function getFaviconItemForURL( hrefvalue )
{
	var cue = document.createElement("img");
	cue.className = "faviconimg";
	var hoststring = /^http:/;
	cue.setAttribute("src","");
	cue.onerror = function () {
					this.src = "images/rss.jpeg";
					}
					
	if (hrefvalue.search(hoststring) != -1) 
	{
		var domain = hrefvalue.match(/(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/);
		domain = RegExp.$2;
		var cuesrc = "http://"+domain+"/favicon.ico";
		cue.setAttribute("src",cuesrc);
		
		
	}

	return cue;
}

function showFeeds()
{
	var f;
	var	ulItem = document.getElementById("feedList");

	for ( f in feedList )
	{
		if ( f == feedList.length-1 ) break;
		
		var	feedURL = feedList[f];

		var	part;
		var feedParts = new Array();
		feedParts = feedURL.split("http://");
		part = feedParts[1];
		
		feedParts = new Array();
		feedParts = part.split("/");
		part = feedParts[0];
		
		var liItem = document.createElement("li");
		liItem.setAttribute( "class", "feedListItem" );
		liItem.onclick = onClickFeedListItem;//loadFeedFromCurrentTarget;
		liItem.onmouseover = mouseOverFeedListItem;
		liItem.onmouseout = mouseOutFeedListItem;

		
		liItem.appendChild( document.createTextNode(part) );
		
		var	RSSFEED = new CWFeed(feedURL,beginLoadingCallback,endLoadingCallback);
		liItem.rssfeed = RSSFEED;
		
		ulItem.appendChild(liItem);
	}
	
	if ( ulItem.firstChild ) selectFeedLIstItem(ulItem.firstChild);
}


function loadFeedList()
{
	var	xmlHttp = new XMLHttpRequest();
	//xmlHttp.setRequestHeader("Cache-Control", "no-cache");
	xmlHttp.onreadystatechange=function()
	{
		if(xmlHttp.readyState==4)
		{
			feedList = xmlHttp.responseText.split("\n");
			showFeeds();
		}
	}
	
	xmlHttp.open("GET","feeds/list.lst",true);
	xmlHttp.send(null);
	
	showFirstRunWindow();
}

function getCurrentEventTarget(e)
{
	var	targ;
	if (!e) e = window.event;
	if ( e.target )
	{
		targ = e.target;
	}
	else if ( e.srcElement )
	{
		targ = e.srcElement;
	}
	if (targ.nodeType==3) // defeat Safari bug
  	{
  		targ = targ.parentNode;
  	}
  	
  	return targ;
}

var	currentFeedListItem;

function mouseOutFeedListItem(e)
{
	var liItem = getCurrentEventTarget(e);
	if ( liItem.nodeName != "LI" ) return;
	
	if ( liItem === currentFeedListItem )
		liItem.setAttribute( "class", "feedListItemSelected" );
	else
		liItem.setAttribute( "class", "feedListItem" );
}

function mouseOverFeedListItem(e)
{
	if ( e.relatedTarget && e.relatedTarget.nodeName == "LI" )
	{
		// item we are coming from
		if ( e.relatedTarget === currentFeedListItem )
			e.relatedTarget.setAttribute( "class", "feedListItemSelected" );
		else
			e.relatedTarget.setAttribute( "class", "feedListItem" );
	}
	
	// item we are going to
	var liItem = getCurrentEventTarget(e);
	if ( liItem.nodeName != "LI" ) return;
	liItem.setAttribute( "class", "feedListItemHover" );
}

// callback
function beginLoadingCallback( feed )
{
	//window.console.log( "begin loading: " + feed.url );
	document.getElementById("loaderid").setAttribute( "class", "loader" );
}

function endLoadingCallback( feed )
{
	//window.console.log( "end loading: " + feed.url );
	
	try
	{
		clearPreviousFeed();
		showFeed(feed);
	}
	catch(err)
	{
		window.console.log(err);
	}
}

function showFirstRunWindow()
{
	//var	aAlert = new CWAlert();
	//aAlert.show();
	
	//var		win = new CWDropDownWindow();
	//win.show();
}

function clearPreviousFeed()
{
	var	feedsItem = document.getElementById("feedSummaries1");
	while( feedsItem.childNodes.length > 0 )
		feedsItem.removeChild( feedsItem.childNodes[0] );
		
	var	feedsItem = document.getElementById("feedSummaries2");
	while( feedsItem.childNodes.length > 0 )
		feedsItem.removeChild( feedsItem.childNodes[0] );
	
	document.getElementById("feedTitle").innerHTML = "";
			
	// hide loader
	document.getElementById("loaderid").setAttribute( "class", "loaderHidden" );
}

function selectFeedLIstItem( item )
{
	if ( item && item.rssfeed )
	{
		if ( currentFeedListItem )
		{
			// set to normal
			currentFeedListItem.setAttribute( "class", "feedListItem" );
		}
		currentFeedListItem = item;
		currentFeedListItem.setAttribute( "class", "feedListItemSelected" );
		//loadFeed( item.feedURL );
		
		item.rssfeed.loadFeed();
		/*
		if ( item.rssfeed.isLoaded )
			endLoadingCallback(item.rssfeed);
		else
			item.rssfeed.loadFeed();
		*/
	}
}

function onClickFeedListItem(e)
{
	var	item = getCurrentEventTarget(e);
	selectFeedLIstItem(item);
}

function _showSheet()
{
	var	win = new CWDropDownWindow();
	win.show();
}

function showFeed(feed)
{
	// title
	document.getElementById("feedTitle").innerHTML = feed.getTitle();
	
	// articles
	var	ulItem = document.getElementById("feedSummaries1");
	
	var		numArticles = feed.numberOfArticles();
	var		maxIndex = numArticles / 2;
	if ( maxIndex > 9 ) maxIndex = 9;
	
	for ( var i = 0; i < numArticles; i++ )
	{
		var	article = feed.articleAtIndex(i);
		
		if ( i == maxIndex ) ulItem = document.getElementById("feedSummaries2");
		if ( i == (maxIndex*2) ) break;
		
		var newLiItem = document.createElement("li");
		newLiItem.setAttribute( "class", "feedSummaryListItem" );
		ulItem.appendChild( newLiItem );
		
		var newTableElement = document.createElement("table");
		newLiItem.appendChild(newTableElement);
		
		// title
		var	tableRow = document.createElement( "tr" );
		tableRow.setAttribute( "class", "feedSummaryTitle" );
				
		newTableElement.appendChild( tableRow );
		
		var	linkNode = document.createElement( "a" );
		tableRow.appendChild( linkNode );
		
		linkNode.setAttribute( "href", article.getURL() );
		linkNode.setAttribute( "target", "_blank" );
		
		//linkNode.setAttribute( "href", "javascript:_showSheet()" );
		
		var	textTitle = document.createTextNode( article.getTitle() );
				
		linkNode.appendChild( textTitle );
		
		// author
		if ( article.getAuthor() )
		{
			var	tableRow = document.createElement( "tr" );
			tableRow.setAttribute( "class", "feedSummaryAuthor" );
				
			newTableElement.appendChild( tableRow );

			tableRow.innerHTML = stripHTML( article.getAuthor() );
		}
		
		// pub Date
		if ( article.getPublicationDate() )
		{
			var	tableRow = document.createElement( "tr" );
			tableRow.setAttribute( "class", "feedSummaryAuthor" );
				
			newTableElement.appendChild( tableRow );

			tableRow.innerHTML = stripHTML( article.getPublicationDate() );
		}
		
		// spacer
		var	tableRow = document.createElement( "tr" );
		var td = document.createElement( "td" );
		tableRow.appendChild(td);
		
		td.setAttribute( "class", "feedSummarySpacer" );
		newTableElement.appendChild( tableRow );
		
		// summary	
		var	tableRow = document.createElement( "tr" );
		tableRow.setAttribute( "class", "feedSummaryDescription" );
				
		newTableElement.appendChild( tableRow );

		tableRow.innerHTML = stripHTML( article.getSummary() );
		
		// spacer

		var	tableRow = document.createElement( "tr" );
		var td = document.createElement( "td" );
		tableRow.appendChild(td);
		
		td.setAttribute( "class", "feedSummarySpacer" );
		newTableElement.appendChild( tableRow );

	}
	
	
}



