﻿// JScript File

var preloadTimer;
var navTimer;
var slideShowTimer;
var navControls;

var eventsareAttached = false;
var isSlideShowRunning = false;

function initSlideShow()
{
    clearTimeout(preloadTimer);
   
    var currentIndex = getCurrentIndex();

    ensureNextSlidesAreLoaded(3);
    isSlideShowRunning =true;
    if (AreNextSlidesAreLoaded(3))
    {
        ShowControls();
        
    }
    else
    {
        command = "initSlideShow()";
        preloadTimer = setTimeout(command, 60);
    }
}

function windowResize()
{
    var mainImageContainer = document.getElementById(spanContainer);
    
    
    navControls = document.getElementById(spanControls);
    navControls.style.width = mainImageContainer.style.width;
    
    navControlsContainer =  document.getElementById(spanControlContainer);
    navControlsContainer.style.width =  mainImageContainer.style.width;
    
//    navFullScreen = document.getElementById(spanControlFullScreen);
//    navFullScreen.style.width = mainImageContainer.style.width;
//    
//    navFullScreenContainer = document.getElementById(spanControlFullScreenContainer);
//    navFullScreenContainer.style.width = mainImageContainer.style.width;
    
    var A = whereAmI(mainImageContainer);
    var spanHeight = parseInt(mainImageContainer.style.height) + parseInt(A[1]) - 40;
    
//    navControls.style.left = A[0];
//    navControls.style.top = spanHeight + "px";
//    navControls.className = "trans50"

    
    navControls.style.left = A[0] + "px";
    navControls.style.top = spanHeight + "px";
    navControls.className = "trans60"
    
    navControlsContainer.style.left = A[0] + "px";
    navControlsContainer.style.top = spanHeight + "px";
    navControlsContainer.className = "trans30"
    
//    navFullScreen.style.left = A[0] + "px";
//    navFullScreen.style.top = spanHeight + "px";
//    navFullScreen.className = "trans60"
//    
//    navFullScreenContainer.style.left = A[0] + "px";
//    navFullScreenContainer.style.top = spanHeight + "px";
//    navFullScreenContainer.className = "trans30"
 
    
    var mainImageContainer = document.getElementById(spanContainer);
    var A = whereAmI(mainImageContainer);
    
    var Img = getImageFromIndex(getCurrentIndex());
    
    Img.style.position = 'absolute';
    Img.style.left = A[0] + "px";
    Img.style.top = A[1] + "px";
}

function ShowControls()
{

    windowResize();
    attachEvents();
    if (isSlideShowRunning)
    {
        startSShow();
    }
}

function startSShow()
{
    detachEvents();
        isSlideShowRunning = true;
        document.getElementById("btnPlay").src = "Images/slideShowControls/pause-off.gif";
    attachEvents();
}

function stopSShow()
{
    detachEvents();
        isSlideShowRunning = false;
        document.getElementById("btnPlay").src = "Images/slideShowControls/play-off.gif";
    attachEvents();
}

function gotoImage(indexofImage)
{
    stopSShow();
    clearTimeout(navTimer);
    
    ensureImageIsLoaded(indexofImage)
    if (isImageOk(getImageFromIndex(indexofImage)))
    {
        clearTimeout(navTimer);
        transitionImage(getCurrentIndex(), indexofImage)
        setCurrentIndex(indexofImage)
    
    }
    else
    {
        command = "gotoImage(" + indexofImage + ")";
        navTimer = setTimeout(command, 500);
        detachEvents();
    }
    
    
}

function Next()
{
    detachEvents();
    clearTimeout(navTimer);
    ensureImageIsLoaded(indexofThisImagePlus(1))
    if (isImageOk(getImageFromIndex(indexofThisImagePlus(1))))
    {
        clearTimeout(navTimer);
        transitionImage(getCurrentIndex(), indexofThisImagePlus(1))
        setCurrentIndex(indexofThisImagePlus(1))
        ensureNextSlidesAreLoaded(3);
    
    }
    else
    {
        command = "Next()";
        navTimer = setTimeout(command, 500);
        detachEvents();
    }

}

function Prev()
{
    detachEvents();
    clearTimeout(navTimer);
    ensureImageIsLoaded(indexofThisImagePlus(-1))
    if (isImageOk(getImageFromIndex(indexofThisImagePlus(-1))))
    {
        clearTimeout(navTimer);
        transitionImage(getCurrentIndex(), indexofThisImagePlus(-1))
        setCurrentIndex(indexofThisImagePlus(-1))
        
    }
    else
    {
        command = "Prev()";
        navTimer = setTimeout(command, 500);
        detachEvents();
    }
}


function attachEvents()
{
    if (!eventsareAttached)
    {
        if (isSlideShowRunning)
        {
            addEvent(document.getElementById("btnPlay"), "click",   stopSShow)
            command = "Next()";
            slideShowTimer = setTimeout(command, SlideShowSpeed);
        }
        else
        {
            addEvent(document.getElementById("btnPlay"), "click",   startSShow)
        }
    
       addEvent(document.getElementById("btnPrev"), "click",   Prev)
        //addEvent(document.getElementById("btnPlay"), "click",   startSShow)
        addEvent(document.getElementById("btnNext"), "click",   Next)
        //addEvent(document.getElementById("linkFullScreen"),"click", ViewFullScreen)
        
        document.getElementById("btnPrev").style.cursor = 'pointer';
        document.getElementById("btnPlay").style.cursor = 'pointer';
        document.getElementById("btnNext").style.cursor = 'pointer';
       
        
        eventsareAttached = true;
    }
}

function detachEvents()
{
    eventsareAttached = false;
    clearTimeout(slideShowTimer);
        if (isSlideShowRunning)
        {
            removeEvent(document.getElementById("btnPlay"), "click",   stopSShow)

        }
        else
        {
            removeEvent(document.getElementById("btnPlay"), "click",   startSShow)
        }
    
    removeEvent(document.getElementById("btnPrev"), "click",   Prev)
    removeEvent(document.getElementById("btnNext"), "click",   Next)
    
    document.getElementById("btnPrev").style.cursor = 'wait';
    document.getElementById("btnPlay").style.cursor = 'wait';
    document.getElementById("btnNext").style.cursor = 'wait';
}


