var req = null;

function processReqChange( handler,newsItems ) {
  if (req.readyState == 4 && req.status == 200 && req.responseXML ) {
    handler( req.responseText,newsItems ); }
}

function loadXMLDoc( url,newsItems,handler ) {
  if(window.XMLHttpRequest) {
    try { req = new XMLHttpRequest(); } catch(e) { req = false; }
  }
  else if(window.ActiveXObject)
  {
    try { req = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) {
    try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { req = false; } }
  }
  if(req) {
    req.onreadystatechange = function() { processReqChange( handler,newsItems ); };
    req.open('GET',url,true);
    req.send('');
  }
}

function parseFeedList( dom,newsItems ) {
  var newsList = document.getElementById( 'newsList' );
  newsList.innerHTML = '';
  var nl = new Array();
  var nl = req.responseXML.getElementsByTagName( 'item' );
  for( var i = 0; ( (i < nl.length) && (i < newsItems)); i++ ) {
    var date = nl[i].getElementsByTagName('pubDate')[0].firstChild.nodeValue;
    var link = nl[i].getElementsByTagName('link')[0].firstChild.nodeValue;
    var title = nl[i].getElementsByTagName('title')[0].firstChild.nodeValue;
    var desc;
    if( nl[i].getElementsByTagName('description')[0].firstChild){
	desc = nl[i].getElementsByTagName('description')[0].firstChild.nodeValue;
    }
    else {
	desc = "";
    }
    var dtitle = document.createElement( 'dt' );
    dtitle.innerHTML = date + ' - ' + title;
    newsList.appendChild( dtitle );
    var ddesc = document.createElement( 'dd' );
    ddesc.innerHTML = desc + "<ul class='linklist'><li><a href='" + link + "'>Read More</a></li></ul>";
    newsList.appendChild( ddesc );
  }

}

function getFeedList(category,newsItems)
{
  var url = '/cgi-bin/mirador/rssProxy.pl?category=' + category;
  loadXMLDoc(url,newsItems,parseFeedList);
}
