topical media & game development

talk show tell print

professional-ajax-05-FooReader-js-fooreader.js / js



  var oFeed;
  
  function init() {
          var divFeedList = document.getElementById("divFeedList");
      var oFragment = document.createDocumentFragment();
      
      feedsFile = new FeedsFile();
      feedsFile.onload = function () {
                  for (var i = 0; i < feedsFile.sections.length; i++) {
                          var section = feedsFile.sections[i];
                          var oSpan = document.createElement("span");
                          oSpan.appendChild(document.createTextNode(section.name));
                          oSpan.className = "navheading";
                          
                          var oIcon = document.createElement("img");
                          oIcon.src = "img/category_icon.gif";
                          oIcon.border = "0";
                          
  
                          oFragment.appendChild(oIcon);
                          oFragment.appendChild(oSpan);
                  
                          var oUl = document.createElement("ul");
                          oUl.className = "navlist";
                          for (var j = 0; j < section.links.length; j++) {
                                  var link = section.links[j];
                                  var oLi = document.createElement("li");
                                  var oA = document.createElement("a");
                                  oA.appendChild(document.createTextNode(link.name));
                                  oA.href = "#";
                                  oA.onclick = loadFeed;
                                  oA.className = "navlinks";
                                  oA.title="Load " + link.name;
                                  oA.setAttribute("frFileName",link.fileName);
                                  
                                  oLi.appendChild(oA);
                                  oUl.appendChild(oLi);
                          } 
                          oFragment.appendChild(oUl);
                          divFeedList.appendChild(oFragment);
                  }
                  loadFeed(feedsFile.sections[0].links[0].fileName);
          };
  }
     
  function loadFeed(sFileName) {
          sFileName = (typeof sFileName == "string")?sFileName:this.getAttribute("frFileName");
          var divItemList = document.getElementById("divItemList");
          var divViewingItem = document.getElementById("divViewingItem");
          var oFragment = document.createDocumentFragment();
          var sTitle = feedsFile.getLinkByFileName(sFileName).name;
          toggleLoadingDiv(true);
          
          while (divItemList.hasChildNodes()) {
                  divItemList.removeChild(divItemList.lastChild);
          }
  
          sFileName = "xml.aspx?xml=" + sFileName;
          oFeed = new XParser(sFileName);
          oFeed.onload = function () {
                  divViewingItem.innerHTML = sTitle + " ("+oFeed.type+")";
                  for (var i = 0; i < oFeed.items.length; i++) {
                          var oItem = oFeed.items[i];
                          var oA = document.createElement("A");
                          oA.className = "itemlink";
                          oA.href = "#";
                          oA.onclick = itemClick;
                          oA.ondblclick = doubleClick;
                          oA.setAttribute("frFeedItem",i);
                          oA.id = "oA" + i;
              
                          var oHeadline = document.createElement("DIV");
                          oHeadline.className = "itemheadline";
                          oHeadline.innerHTML = oItem.title.value;
                          //oHeadline.appendChild(document.createTextNode());
  
                          var oDate = document.createElement("DIV");
                          oDate.className = "itemdate";
                          oDate.appendChild(document.createTextNode("Date: " + oItem.date.value));
                          oA.appendChild(oHeadline);
                          oA.appendChild(oDate);
                          
                          oFragment.appendChild(oA);
                  }
                  divItemList.appendChild(oFragment);
                  itemClick(0);
                  toggleLoadingDiv();
          };
          return false;
  }
     
  function itemClick(iItem) {
          iItem = (typeof iItem == "number")?iItem:this.getAttribute("frFeedItem");
          var el = document.getElementById("oA"+iItem);
          if (oSelected != el) {
                  if (oSelected) oSelected.className = "itemlink";
                  el.className += "-selected";
                  oSelected = el;
                  var divTitle = document.getElementById("divMessageTitle");
                  var divBody = document.getElementById("divMessageBody");
                  var aLink = document.getElementById("aMessageLink");
                  var oItem = oFeed.items[iItem];
                  divTitle.innerHTML = oItem.title.value;
                  aLink.href = oItem.link.value;
                  divBody.innerHTML = oItem.description.value;
          }
          return false;
  }
  
  window.onload = varHeight;
  window.onresize = varHeight;
  


(C) Æliens 20/2/2008

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.