﻿/*
    Slideshow Script
    Copyright © Camtronics Letchworth Ltd.
    Written by Saul Johnson
*/

var ssImgIdArr1 = ["PSF1", "PSF2"];
var ssImgIdArr2 = ["SSF1", "SSF2"];
// ---
var ssSecImgShownArr = [false, false];
// ---
var ssImgBalanceArr = [0.0, 0.0];
var ssTimeObjArr = [0, 0];
// ---
var ssCurrentSlideNoArr = [-1, -1];
var ssFirstSlideNoArr = [1, 1];
var ssLastSlideNoArr = [4, 4];
// ---
var ssIsInternetExplorer;
// ---
var ssPrimNo = 0;
var ssSecNo = 0;

// Adjusts the alpha balance by one increment on the primary and secondary
// slides for the slideshow with the specified numeric ID.
function ssAdjustBalance(targetImgNo) {

    // Adjust balance for current image.
    ssImgBalanceArr[targetImgNo] += ssSecImgShownArr[targetImgNo] ? -0.1 : 0.1;

    // Adjust opacity on both frames.
    if (ssIsInternetExplorer) {
        var convBalance = Math.round(ssImgBalanceArr[targetImgNo] * 100);
        document.getElementById(ssImgIdArr1[targetImgNo]).style.filter = "alpha(opacity=" + (100 - convBalance) + ")";
        document.getElementById(ssImgIdArr2[targetImgNo]).style.filter = "alpha(opacity=" + convBalance + ")";
    }
    else {
        document.getElementById(ssImgIdArr1[targetImgNo]).style.opacity = 1 - ssImgBalanceArr[targetImgNo];
        document.getElementById(ssImgIdArr2[targetImgNo]).style.opacity = ssImgBalanceArr[targetImgNo];
    }

    // Stop the interval if we've finished the transition.
    if (ssImgBalanceArr[targetImgNo] >= 1.0 || ssImgBalanceArr[targetImgNo] <= 0.0) {
        clearInterval(ssTimeObjArr[targetImgNo]);
        ssSecImgShownArr[targetImgNo] = !ssSecImgShownArr[targetImgNo];
        ssImgBalanceArr[targetImgNo] = ssSecImgShownArr[targetImgNo] ? 1.0 : 0.0;
    }

}

// Performs a fade transition on the slideshow with
// the specified numeric ID.
function ssFadeTransition(targetImgNo) {

    // Next slide or loop back around.
    ssCurrentSlideNoArr[targetImgNo] += 1;
    if (ssCurrentSlideNoArr[targetImgNo] > ssLastSlideNoArr[targetImgNo]) {
        ssCurrentSlideNoArr[targetImgNo] = ssFirstSlideNoArr[targetImgNo]
    }
    document.getElementById(ssSecImgShownArr[targetImgNo] ? ssImgIdArr1[targetImgNo] : ssImgIdArr2[targetImgNo]).src = "images/slideshows/slideshow_" + ((targetImgNo == 1) ? ssSecNo : ssPrimNo) + "/slide_" + ssCurrentSlideNoArr[targetImgNo] + ".png";
    
    // Perform fade transition.
    clearInterval(ssTimeObjArr[targetImgNo]);
    ssTimeObjArr[targetImgNo] = setInterval("ssAdjustBalance(" + targetImgNo + ");", 100);

}

// Initiates both slideshows on the page.
function ssPlayShows(primShowId, secShowId) {

    // Which slide shows are we playing?
    ssPrimNo = primShowId
    ssSecNo = secShowId
    
    // Get whether or not we're using IE.
    ssIsInternetExplorer = (navigator.appName.indexOf("Microsoft Internet Explorer") == -1) ? false : true;
    
    // Start slideshows in staggered fashion.
    setInterval("ssFadeTransition(0);", 10000);
    setTimeout("setInterval('ssFadeTransition(1);', 10000);", 1000);

}

