﻿// JScript File

var xmlDoc; 

var nodeList = new Array(4);
var currentIndex = new Array(4);
var maxNodeLength = new Array(4);


var t;
var activeShow = 1;
var pauseShow = false;

var browser;


function init() {

//alert('loading');

var xml = document.getElementById('xmlData').value;

   loadXML(xml); //populate XML

   currentIndex['WSM'] = 0;
   currentIndex['WSA'] = 0;
   currentIndex['WSB'] = 0;
   currentIndex['WIS'] = 0;
   
   nodeList['WSM'] = InitNodeList('WSM');
   nodeList['WSA']= InitNodeList('WSA');
   nodeList['WSB'] = InitNodeList('WSB');
   nodeList['WIS'] = InitNodeList('WIS');
   
   showSolution('WSM',0);
   showSolution('WSA',0);
   showSolution('WSB',0);
   showSolution('WIS',0);
   
    t = setInterval('doSlideShow()',4000); 
}

function pauseShow()
{
    clearTimeout(t);
}

function toggleShow()
{
    if(!pauseShow)
    {
        clearTimeout(t);
        pauseShow = true;
        document.getElementById('btnToggle').value = "Resume";
    }else
    {
        t = setInterval('doSlideShow()',4000); 
        pauseShow = false;
        document.getElementById('btnToggle');
        document.getElementById('btnToggle').value = "Pause";
    }
}


function showNextSolution(division)
{
    showSolution(division,1);
}


function showPrevSolution(division)
{
     showSolution(division,-1);
}



function showSolution(division,direction) 
{
  
  var container;
  var index = 0;
  var NodeList = nodeList[division];
  var maxLen = maxNodeLength[division];
  
      currentIndex[division] += direction; 
      index = checkIndex(currentIndex[division],maxLen);
      currentIndex[division] = index;
        
    var divTagName = 'solContainer' + division;
    var id = getNodeValue(NodeList,index,'ID');
    var shortdesc = getNodeValue(NodeList,index,'SolutionShort');
    var title = getNodeValue(NodeList,index,'Issue');
    var image = getNodeValue(NodeList,index,'IssueMedia');
    var html = htmlWidget(id,title,shortdesc,image);
        
        FillDynamicContent(divTagName,html);
}



function htmlWidget(ID,title,description,image) 
{

    var html = "<table cellspacing=\"0\" cellpadding=\"0\" width=\"241\" border=\"0\"><tbody><tr><td style=\"width: 241px; height: 48px\" class=\"issue\" valign=\"top\"><span style=\"color: #0f44be;padding-botton:5px; \"><a id=\"linkSolutionID\" href=\"IssuesSolutions.aspx?SolutionID=" +  ID + "\">" + title + "</a></span></td></tr><tr style=\"color: #0f44be\"><td style=\"width: 241px;\" class=\"desc\"><div style=\"margin-top:10px;\"> <img id=\"Image" + ID + "\" width=\"63px\" style=\"display:" + ((image != "") ? "block" : "none") +  ";padding-right:10px;\"  src=\""  + image +  "\" height=\"63px\" align=\"left\" /> " + description + " </div></td></tr></tbody></table>";
    //alert(html);
    return html;
}



function checkIndex(currentIndex,maxIndex)
{
    if (currentIndex > maxIndex)
    {
        return 0;
    }
    else if (currentIndex < 0) 
    {
        return maxIndex;
    }
    else 
    {
        return currentIndex;
    }

}


function doSlideShow() 
{
    switch(activeShow)
    {
        case 1:
                showNextSolution('WSM');
                activeShow = 2;
                break;
        case 2:
                showNextSolution('WSA');
                activeShow = 3;
                break;
        case 3:
                showNextSolution('WSB');
                activeShow = 4;
                break;
        case 4:
                showNextSolution('WIS');
                activeShow = 1;
                break;
    }
}

function FillDynamicContent(elementid,content){


if (browser=="IE"){
        document.getElementById(elementid).innerHTML = content;
        //elementid.innerHTML = content;
    }
   else {
    //For Mozilla compatible browser
    if (document.getElementById && !document.all){
        var rng = document.createRange();
        var el = document.getElementById(elementid);
        rng.setStartBefore(el);
        var htmlFrag = rng.createContextualFragment(content);
        while (el.hasChildNodes())
        el.removeChild(el.lastChild);
        el.appendChild(htmlFrag);
    }
   
   } 
}


/****/

function loadXML(strXML) { 
 
 var moz = (typeof document.implementation != 'undefined') && (typeof document.implementation.createDocument != 'undefined'); 
 
 var ie = (typeof window.ActiveXObject != 'undefined'); 

 if (moz) { 
    browser = "Mozilla";
    try{
       var parser=new DOMParser();
            xmlDoc=parser.parseFromString(strXML,"text/xml");
    
   }catch(e)
   {
    
   }
   
 } else if (ie) { 
   browser = "IE";
   xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); 
   xmlDoc.loadXML(strXML);   
 } 
 
 
 
 
}


function InitNodeList(Division) 
{


     if(browser == "IE"){
            var nodeList = xmlDoc.selectNodes('/root/Division[@Division=\'' + Division + '\']/Solutions');
            //eval('MaxIndex' + Division + "=" + (nodeList.length - 1));
            maxNodeLength[Division] = (nodeList.length - 1); 
            return xmlDoc.selectNodes('/root/Division[@Division=\'' + Division + '\']/Solutions'); 
       }
      else if(browser == "Mozilla") 
      {
      
           var divnodes = xmlDoc.getElementsByTagName("Division");

           for(var i=0; i <divnodes.length; i++)
           {
            
            var divNode = divnodes[i]; 
            var divName = divNode.getAttribute("Division");
                if (Division == divName) 
                {
                    //eval('MaxIndex' + Division + "=" + (divNode.childNodes.length - 1));
                    //alert(2);
                    //alert(Division);
                    //alert('max' + ( nodeList.length - 1));
                    //maxNodeLength['WSB'] = (divNode.childNodes.length - 1);
                    //alert('2.5');
                    maxNodeLength[Division] = (divNode.childNodes.length - 1);
                    //alert(3);
                    return divNode;
                }
           }
      }
      
    
}

function getNodeValue(element,index, nodeName)
{
    try
    {
        if(browser == "IE"){
        
        var val = "";
            try{
                val =  element[index].selectSingleNode(nodeName).text;
            }catch(e)
            {
            }
              return val;
        }
        else if(browser == "Mozilla") 
        {
            if(element.hasChildNodes())
            {
                  var nodes = element.childNodes;
                  var node = nodes[index].getElementsByTagName(nodeName)[0];
                  var value = "";
                  
                  try{
                     value = nodes[index].getElementsByTagName(nodeName)[0].firstChild.nodeValue;
                      }  
                    catch(err)
                    {
                    }  
                  return value;
            }
        }
    }
    catch(e)
    {
      alert('Error encountered. Please use IE or Mozilla compatible browsers.'); 
    }
}


/****/



window.onload = init;
