/*
 * Antonio Mustacchio
 * January 2007
 * A Content Cycling Application designed for use on the redesign of the
 * intranet home page
 * Based on Content Sliding design from DynamicDrive.com
 * http://www.dynamicdrive.com/dynamicindex17/featuredcontentslider.htm
 */



//XML READER from w3schools.com
function loadXMLDoc(dname)
{
  var xmlDoc;
  // code for IE
  if (window.ActiveXObject) {
    xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async=false;
    xmlDoc.load(dname);
    handleLoadedXML(xmlDoc);
  }
  // code for Mozilla, Firefox, Opera, etc.
  else if (document.implementation && document.implementation.createDocument) {
    xmlDoc=document.implementation.createDocument("","",null);
    xmlDoc.async=false;
    xmlDoc.load(dname);
    xmlDoc.onLoad = handleLoadedXML(xmlDoc);
  }
  else {
    alert('Your browser cannot handle this script');
  }
  return(xmlDoc);
}
// END XML READER

var promoArray;
var iconcount = 0;
function fillXMLArray() {
  xmlDoc=loadXMLDoc("xml/promos/promo_area.xml");
  promoArray=xmlDoc.getElementsByTagName('promoItem');
}
//writeIconsFromXML(): writes inline code from an xml file into HTML
function writeIconsFromXML(){
	var nodeIconURL = promoArray[iconcount++].getElementsByTagName('promoURL')[0].firstChild.nodeValue;
	
	//.hasChildNodes()?promoArray[i].getElementsByTagName('promoURL')[0].firstChild.nodeValue:"#";
	nodeIconURL = nodeIconURL.substring(0,nodeIconURL.length-4)+".gif";
    return "<img src=\""+nodeIconURL+"\" border=\"0\">";

 }
  
// END
//JS for the Content Cycler

      var currentpage = 0;
      var cyclenodes = new Object();
   // var DEFAULTDELAY = 5000;
      var isRunning = false;
   // var DELAY = 5000;
      var navlinks;
      var startpaused = false;
   /* var imgplay = "images/playMe.gif";
      var imgpause = "images/pauseMe.gif";
      var imgplayover = "images/playMeNow.gif";
      var imgpauseover = "images/pauseMeNow.gif"; */
      function CycleContent(id,autotime) {
          var content = document.getElementById(id);
          cyclenodes[id] = [];
          var alldivs = content.getElementsByTagName("div");
          for(var i = 0; i < alldivs.length; i++) {
              if(alldivs[i].className=="cyclecontent") {
                  cyclenodes[id].push(alldivs[i]);
              }
          }
          isRunning = (typeof autotime == "number" && autotime > 0);
          if(isRunning) {
              window[id+"timer"] = setTimeout(function(){CycleContent.autoFlip(id, autotime)}, autotime);
              DELAY = autotime;
          }
          else {
              DELAY = DEFAULTDELAY;
              startpaused = true;
          }
          if(document.getElementById("page-"+id)) {
          CycleContent.buildNav(id);
          CycleContent.flipTo(id,0);
          }
      }

      //Builds the navigation links
      CycleContent.buildNav = function(id) {
          var thediv = document.getElementById("page-" + id);
		  fillXMLArray();
          var htmlout = "";
	  	   htmlout += '<div> ';

          //Set the Prev Link
         // htmlout += '<a href="#" class=\"navbut\" onClick=\"CycleContent.flipTo(\'' + id + '\', ' + (cyclenodes[id].length-1) + ');  CycleContent.pause(\'' + id + '\'); return false\">< Prev</a> ';
          for(var i = 0; i < cyclenodes[id].length;i++) {
              htmlout += '<a href="#" onClick=\"CycleContent.flipTo(\'' + id + '\', ' + i + '); CycleContent.pause(\''+id+'\'); return false\">' +writeIconsFromXML()+'</a> ';
          }
		  
		  
          //Play/Pause Button
       /*   if(startpaused){
              htmlout += '<img class=\"navbut\" src=\"'+imgplay+'\" onClick=\"CycleContent.playpause(\''+id+'\'); return false;\" id=\"ppimg\" onMouseOver=\"CycleContent.overSwap(\'ppimg\');" onMouseOut=\"CycleContent.outSwap(\'ppimg\');">';
          }
          else {
              htmlout += '<img class=\"navbut\" src=\"'+imgpause+'\" onClick=\"CycleContent.playpause(\''+id+'\'); return false;\" id=\"ppimg\" onMouseOver=\"CycleContent.overSwap(\'ppimg\');" onMouseOut=\"CycleContent.outSwap(\'ppimg\');\">';
          } */
          //Set the Next Link
          //htmlout += '<a class=\"navbut\" href="#" onClick=\"CycleContent.flipTo(\'' + id + '\', 1); CycleContent.pause(\''+id+'\'); return false;\">Next ></a> ';
	  	   htmlout += '</div> ';

          thediv.innerHTML = htmlout;
      }
      CycleContent.playpause = function(id) {
          if(isRunning) {
              CycleContent.pause(id);
          }
          else {
             // document.getElementById('ppimg').src = imgpause;
              CycleContent.autoFlip(id,DELAY);
              isRunning = true;
          }
      }
      CycleContent.pause = function(id) {
          if(isRunning) {
             // document.getElementById('ppimg').src = imgplay;
              clearTimeout(window[id+"timer"]);
              isRunning = false;
          }
      }
      //Go to pagenum within id
      CycleContent.flipTo = function(id, pagenum) {
          navlinks = document.getElementById("page-"+id).getElementsByTagName("a");
	  var prevpage = 0;
          var nextpage = 0;
          for(var i = 0;i < cyclenodes[id].length;i++) {
              navlinks[i].className="";//+1 is to skip Prev Button
              cyclenodes[id][i].style.display="none";//hide it
          }
	  currentpage = pagenum;
          navlinks[pagenum].className="selected";//+1 to skip Prev Button
          
	
          cyclenodes[id][pagenum].style.display="block";


          //Set the Prev and Next Page Links
         /* navlinks[0].onclick = prev;
        navlinks[navlinks.length-1].onclick = next; */
          function prev() {
              prevpage = (pagenum>0)? (pagenum-1): (cyclenodes[id].length-1);
              CycleContent.flipTo(id, prevpage);
              return false;
          }
          function next() {
              nextpage = (pagenum < (cyclenodes[id].length-1))? pagenum+1: 0;
              CycleContent.flipTo(id, nextpage);
              return false;
          }
      }

      //Flip to the next page, automatically
      CycleContent.autoFlip = function(id,autotime) {
          var nextpage = (currentpage < (cyclenodes[id].length))?currentpage:0;  //  to turn cycling back onchange to this - var nextpage =  (currentpage < (cyclenodes[id].length-1))?currentpage+1:0;
          if(document.getElementById("page-"+id)) {
              CycleContent.flipTo(id, nextpage);
              window[id+"timer"]=setTimeout(function(){CycleContent.autoFlip(id, autotime)}, autotime);
          }
      }
      CycleContent.overSwap = function(id) {
          if(isRunning) {
              document.getElementById(id).src = imgpauseover;
          }
          else {
              document.getElementById(id).src = imgplayover;
          }
      }
      CycleContent.outSwap = function(id) {
          if(isRunning) {
              document.getElementById(id).src = imgpause;
          }
          else {
              document.getElementById(id).src = imgplay;
          }
      }

//End of JS for Content Cycler


//writeFromXML(): writes inline code from an xml file into HTML
function writeFromXML(){
 loadXMLDoc("xml/promos/promo_area.xml");
}

function handleLoadedXML(theXMLDoc){
  var promoArray=theXMLDoc.getElementsByTagName('promoItem');
  for(var i = 0; i<promoArray.length; i++) {
    var nodeURL = promoArray[i].getElementsByTagName('promoURL')[0].firstChild.nodeValue;
    var nodeTitle = promoArray[i].getElementsByTagName('promoLabel')[0].firstChild.nodeValue;
    var nodeLink = promoArray[i].getElementsByTagName('promoLink')[0].hasChildNodes()?promoArray[i].getElementsByTagName('promoLink')[0].firstChild.nodeValue:"#";
    nodeURL = nodeURL.substring(0,nodeURL.length-4)+".jpg";
    document.write("<div class=\"cyclecontent\"><a href=\""+nodeLink+"\"><img title=\""+nodeTitle+"\" src=\""+nodeURL+"\" border=\"0\"></a></div>");
  }
  
}