﻿
//use this interval id to start and stop the slides
var intervalID = 0;

function setLinks(activePanel)
{
    var slideFeatures = $('SlideFeatures').getElementsByClassName('FeaturePanel');
    var prevLink = $('SlideFeatures').getElementsByClassName('PreviousLink');
    var nextLink = $('SlideFeatures').getElementsByClassName('NextLink');
   
    if(activePanel > 0)
    {
        var previousPanelID = slideFeatures[activePanel-1].identify();
        prevLink[0].onclick = function(){ return showPanel(previousPanelID,false); }
    } else
    {
        prevLink[0].onclick = function(){ return false; }
    }
    
    if(activePanel < slideFeatures.length-1)
    {   
        var nextPanelID = slideFeatures[activePanel+1].identify();
        nextLink[0].onclick = function(){ return showPanel(nextPanelID,false); }
    } else
    {
        nextLink[0].onclick = function(){ return false; }
    }
}


function showPanel(featurePanel, isInterval)
{
    var slideFeatures = $('SlideFeatures').getElementsByClassName('FeaturePanel');
    var slideLinks = $('SlideFeatures').getElementsByClassName('FeatureLink');
    var playLink = $('SlideFeatures').getElementsByClassName('PlayLink');
    
    var selectedPanelInt;
    for(var i = 0; i < slideFeatures.length; i++)
    {
        slideFeatures[i].hide();
        if(slideFeatures[i] == $(featurePanel))
        {
            selectedPanelInt = i;
            slideLinks[i].addClassName('Selected');
        } else
        {
            slideLinks[i].removeClassName('Selected');
        }
    }

    Effect.Appear($(featurePanel));
    
    //set the next and previous links for the newly selected slide.
    setLinks(selectedPanelInt);
    
    //if this method is called from playSlides then keep slideshow it running
    if(isInterval)
    {
        //clean the interval and start it again
        clearInterval(intervalID);
        
        //start the next interval via playslides method using the next panel
        if(selectedPanelInt+1 < slideFeatures.length)
        {
            playSlides(selectedPanelInt+1);
        } else
        {
            playSlides(0);
        }
    } else
    {
        //clean the interval and stop the slide show.
        clearInterval(intervalID);
        //reset the play html state to play button.
        playLink[0].removeClassName('Pause');
        playLink[0].addClassName('Play');
        if(selectedPanelInt+1 < slideFeatures.length)
        {
            //set the slidshow to start on the next feature selected
            playLink[0].onclick = function(){ return playSlides(selectedPanelInt+1); }
        } else
        {   
            //or if its the last slide start set the slideshow to start at the start.
            playLink[0].onclick = function(){ return playSlides(0); }
        }
    }
    return false;
}

function playSlides(startIndex)
{
    var slideFeatures = $('SlideFeatures').getElementsByClassName('FeaturePanel');
    var playLink = $('SlideFeatures').getElementsByClassName('PlayLink');
    playLink[0].onclick = function(){ return pauseSlides(startIndex); }
    playLink[0].removeClassName('Play');
    playLink[0].addClassName('Pause');
     playLink[0].innerHTML = "<span class=\"Hidden\">Pause</span>";
    intervalID = setInterval("showPanel('"+slideFeatures[startIndex].identify()+"',true)",8000);
    return false;
}

function pauseSlides(pauseindex)
{
    var playLink = $('SlideFeatures').getElementsByClassName('PlayLink');
    playLink[0].onclick = function(){ return playSlides(pauseindex); }
    playLink[0].removeClassName('Pause');
    playLink[0].addClassName('Play');
    playLink[0].innerHTML = "<span class=\"Hidden\">Play</span>";
    clearInterval(intervalID);
    return false;
}



