var slideshow = true;
var changeOver = false;
var slideshowInterval = 5000;
var fadeTime = 1000;

var fadePadding = 250;
var intervalID = -1;

$(document).ready(
    function()
    {
        if(slideshow == true)
        {
            $(".arrow").fadeOut(fadeTime);
        }
        else if(slideshow == false)
        {
            $(".arrow").fadeIn(fadeTime);
        }
        
        setOnOffSwitch();
        
        initSlideshowSwitch();
        
        initArrowButtons();
        
        performVisibleCheck();
        
        beginSlideshow();
    }
);

function beginSlideshow()
{
    intervalID = setInterval("changeNextImage()", slideshowInterval);
    slideshow = true;
}

function endSlideshow()
{
    clearInterval(intervalID);
    slideshow = false;
}

function changeNextImage()
{
    if(changeOver == false)
    {
        changeOver = true;
        
        var currentActive = $("#slides .jewelleryContainer.active");
        var nextActive;
        
        if(currentActive.next().length == 0)
        {
            nextActive = $("#slides .jewelleryContainer:first");
        }
        else
        {
            nextActive = currentActive.next();
        }
    
        currentActive.fadeOut(fadeTime);
        currentActive.removeClass('active');
        
        setTimeout(function(){loopSlideshow(nextActive)}, fadeTime + fadePadding);
    }
}

function changePrevImage()
{
    if(changeOver == false)
    {
        changeOver = true;
        
        var currentActive = $("#slides .jewelleryContainer.active");
        var nextActive;
        
        if(currentActive.prev().length == 0)
        {
            nextActive = $("#slides .jewelleryContainer:last");
        }
        else
        {
            nextActive = currentActive.prev();
        }
        
        currentActive.fadeOut(fadeTime);
        currentActive.removeClass('active');
        
        setTimeout(function(){loopSlideshow(nextActive)}, fadeTime + fadePadding);
    }
}

function loopSlideshow(nextActive)
{
    nextActive.fadeIn(fadeTime);
    nextActive.addClass('active');
    
    setTimeout(function(){changeOver = false;}, fadeTime + fadePadding);
}

function initSlideshowSwitch()
{
    $('#slideshowOnSwitch').click(
        function()
        {
            $(".arrow").fadeOut(fadeTime);
            beginSlideshow();
            setOnOffSwitch();
            performVisibleCheck();
        });
    
    $('#slideshowOffSwitch').click(
        function()
        {
            endSlideshow();
            $(".arrow").fadeIn(fadeTime);
            setOnOffSwitch();
            performVisibleCheck();
        });
}

function initArrowButtons()
{
    $('#arrowLeft').click(
        function()
        {
            changePrevImage();
        });
    
    $('#arrowRight').click(
        function()
        {
            changeNextImage();
        });
}

function setOnOffSwitch()
{
    if(slideshow == true)
    {
        $('#slideshowOnSwitch').addClass('blueFont');
        $('#slideshowOffSwitch').removeClass('blueFont');
    }
    else
    {
        $('#slideshowOnSwitch').removeClass('blueFont');
        $('#slideshowOffSwitch').addClass('blueFont');
    }
}

function performVisibleCheck()
{
    var allContainers = $("#slides .jewelleryContainer");
    var maxHeight = 0;
    
    for(var i = 0; i < allContainers.length; i++)
    {
        var container = allContainers.next();
        if(container.height() > maxHeight)
        {
            maxHeight = container.height();
        }
        
        container.hide();
    }
    
    maxHeight = maxHeight + 100;
    
    $('.jewellerySlideshowTable').css({'height': maxHeight});
    
    if(changeOver == false)
    {
        var initActive = $("#slides .jewelleryContainer.active");
        
        if(initActive.length == 0)
        {
            initActive = $("#slides .jewelleryContainer:first");
            initActive.addClass('active');
        }
        
        initActive.fadeIn(fadeTime);
    }
}

