/*****************************
* author: Christoph Reich
* date: 25.11.2008
******************************/

/*
* Initialization; get the XMLHttpRequest Object
*/
var rssRequestObject = false; // XMLHttpRequest Object
var Backend = 'http://webuser.hs-furtwangen.de/~hfunews/rss/hfuNews.xml'; // Backend url
window.setInterval("update_timer()", 1200000); // update the data every 20 mins
if (window.XMLHttpRequest) { // Mozilla, Safari,...
  rssRequestObject = new XMLHttpRequest();
  if (rssRequestObject.overrideMimeType) {
    rssRequestObject.overrideMimeType('text/xml');
    }
  } else if (window.ActiveXObject) { // IE
    try {
      rssRequestObject = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (e) {
    try {
      rssRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {}
    }
  }

/*
* onreadystatechange function
*/
function ReqChange() {
  // If data received correctly
  if (rssRequestObject.readyState==4) {
    // if data is valid
    if (rssRequestObject.responseText.indexOf('invalid') == -1) {
      // Parsing RSS
      var node = rssRequestObject.responseXML.documentElement; 
      
      // Get Channel information
      var channel = node.getElementsByTagName('channel').item(0);
      var title = channel.getElementsByTagName('title').item(0).firstChild.data;
      var link = channel.getElementsByTagName('link').item(0).firstChild.data;
      
//      content = '<div class="channeltitle"><a href="'+link+'">'+title+'</a></div><ul>';
      content = '';

      // Browse items
      var items = channel.getElementsByTagName('item');
//      for (var n=0; n < items.length; n++) {
        for (var n=0; n < items.length & n < 4; n++) {
        var itemTitle = items[n].getElementsByTagName('title').item(0).firstChild.data;
        var itemDescription = items[n].getElementsByTagName('description').item(0).firstChild.data;
        try {
          var itemLink = items[n].getElementsByTagName('link').item(0).firstChild.data;
        } catch (e) {
          var itemLink = '';
        }
        try {
          var datestring = items[n].getElementsByTagName('pubDate').item(0).firstChild.data;
          var datearray = datestring.split(" ");
          datestring=datearray[1]+". "+datearray[2]+" "+datearray[3];
          var itemPubDate = '['+datestring+'] ';
          } catch (e) {
            var itemPubDate = 'XXX';
          }
//        content += '<li>'+itemPubDate+'</font><a target="blank" href="'+itemLink+'">'+itemTitle+'</a></li>';
          if(itemLink=='') {
//            content += '<div><div class=datum>'+itemPubDate+''+itemTitle+'</div>'+itemDescription;
              content += '<div><div class=datum>'+itemTitle+'</div>'+itemDescription;
          } else {
//        content += '<div class=news><div class=datum>'+itemPubDate+'<a target="blank" href="'+itemLink+'">'+itemTitle+'</a></div>'+itemDescription;
          content += '<div class=news><div class=datum><a target="blank" href="'+itemLink+'">'+itemTitle+'</a></div>'+itemDescription;
          content +='</div>';
         }
      }
      content += '</ul>';
      // Display the result
      document.getElementById("ajaxreader").innerHTML = content;

      // Tell the reader the everything is done
      document.getElementById("status").innerHTML = "Done.";
    } else {
      // Tell the reader that there was error requesting data
      document.getElementById("status").innerHTML = "<div class=error>Error requesting data.<div>";
    }
    HideShow('status');
  }
  
}

/*
* Main AJAX RSS reader request
*/
function RSSRequest() {
  // change the status to requesting data
  HideShow('status');
  document.getElementById("status").innerHTML = "Requesting data ...";
  // Prepare the request
  rssRequestObject.open("GET", Backend , true);
  // Set the onreadystatechange function
  rssRequestObject.onreadystatechange = ReqChange;
  // Send
  rssRequestObject.send(null); 
}

/*
* Timer
*/
function update_timer() {
  RSSRequest();
}

function HideShow(id){
  var el = GetObject(id);
  if(el.style.display=="none") {
  el.style.display='';
  }else {
  el.style.display='none';
  }
}

function GetObject(id){
  var el = document.getElementById(id);
  return(el);
}

