﻿var startPageEvents = false;

function DoOnLoad() {
    startPageEvents = true;
}


// ************************************************************
// * Slide show with cross fade
// ************************************************************
var ssImages; var ssImg0; var ssImg1; var ssImageFiles;
var ssCurImgIx;
var ssNoOfImages;
var ssImgShowingTime = 5000;
var ssImageRelativePath = "Images/1stPageSlideShow/";
var ssImageLinks;
var divSlideShow;
var ssMouseOverBehaviour = 'none'; /* none,freeze */
var ssPrevNextBtnWidth = 30;
var ssPrevNextBtnHeight = 30;

function PreloadImages() {
    divSlideShowC = document.getElementById('div_SlideShow_c');
    sscHeight = (divSlideShowC.style.height).replace('px', '') * 1;
    sscWidth = (divSlideShowC.style.width).replace('px', '') * 1;
    
    ssImg0 = document.getElementById('ssImg_0');
    ssImg1 = document.getElementById('ssImg_1');
    ssImg0.style.width = ssImg1.style.width = divSlideShowC.style.width;
    ssImg0.style.height = ssImg1.style.height = divSlideShowC.style.height;
    frameImg = document.getElementById('SlideShowFrame');

    if (frameImg) {
        frameImg.style.width = divSlideShowC.style.width;
        frameImg.style.height = divSlideShowC.style.height;
    }

    // Position the previous/next buttons on the ss frame
    ssPrevBtn = document.getElementById('ssPrev');
    ssNextBtn = document.getElementById('ssNext');
    ssPrevBtn.style.top = ssNextBtn.style.top = ((sscHeight / 2) - (ssPrevNextBtnHeight / 2)) + 'px';
    ssPrevBtn.style.left = '20px';
    ssNextBtn.style.left = (sscWidth - (20 + ssPrevNextBtnWidth)) + 'px';

    ssNoOfImages = ssImageFiles.length; //PreloadImages.arguments.length;

    ssImages = new Array(ssNoOfImages);
    totalImagesLoaded = 0;

    // Load the 1st image and display immediately
    img0 = new Image();
    img0.onload = function () { ssImg0.src = img0.src; ssImg0.style.display = 'block'; ssImages[0] = img0; totalImagesLoaded++; };
    img0.src = ssImageRelativePath + ssImageFiles[0];

    divSlideShow = document.getElementById('div_SlideShow');
    ssCurImgIx = 0;
    if (ssImageLinks != null && ssImageLinks.length > 0) DoSSImageLinking();

    // Load the rest of the images and once loaded start the slideshow
    for (ix = 1; ix < ssNoOfImages; ix++) {
        anImg = new Image();
        anImg.onload = function () {
            totalImagesLoaded++;
            if (totalImagesLoaded == ssNoOfImages) {
                ssPrevBtn.style.display = ssNextBtn.style.display = 'block';
                ssImg1.src = ssImages[1].src;
                ssCurImgIx = 0;
                DoSlideShow();
            }
        };
        anImg.src = ssImageRelativePath + ssImageFiles[ix];
        ssImages[ix] = anImg;
    }
}

var freezeSlideShow = false;
opaVal = noOfFadingSteps = 50;
factor100 = 100 / noOfFadingSteps;
function DoSlideShow() {
    if (!startPageEvents) { setTimeout('DoSlideShow()', 2000); return; }
    // Place the current image in ssImg_0 and next image in ssImg_1
    ssImg0.src = ssImages[ssCurImgIx].src;
    nextImgIx = ssCurImgIx + 1;
    if (nextImgIx > ssNoOfImages - 1) nextImgIx = 0;
    ssImg1.src = ssImages[nextImgIx].src;
    ssImg1.style.display = 'block';
    setTimeout('CrossFade()', ssImgShowingTime);
}
stepCntr = 0;
function CrossFade() {
    // If goToImageClicked abandon crossfade
    if (goToImageClicked) { goToImageClicked = false; DoSlideShow(); return; }
    // If mouse is over the image delay crossfade, but if it's already started complete it.
    if (freezeSlideShow & opaVal == noOfFadingSteps) { setTimeout('CrossFade()', 2000); return; }
    // Fade out
    ssImg0.style.opacity = opaVal / noOfFadingSteps; // ff 1.0 to 0.0
    ssImg0.style.filter = 'alpha(opacity=' + opaVal * factor100 + ')'; // ie 100 to 0
    // Fade in
    ssImg1.style.opacity = (noOfFadingSteps - opaVal) / noOfFadingSteps; // ff 0.0 to 1.0
    ssImg1.style.filter = 'alpha(opacity=' + (noOfFadingSteps - opaVal) * factor100 + ')'; // ie 0 to 100

    opaVal--;
    if (opaVal < 0) {
        ssImg0.src = ssImg1.src;
        ssImg0.style.opacity = 1; ssImg0.style.filter = 'alpha(opacity=100)';
        ssImg1.style.display = 'none';
        opaVal = noOfFadingSteps;
        ssCurImgIx++;
        if (ssCurImgIx > (ssNoOfImages - 1)) ssCurImgIx = 0;
        if (ssImageLinks != null && ssImageLinks.length > 0) DoSSImageLinking();
        DoSlideShow();
        return;
    }
    setTimeout('CrossFade()', 20);
}
var goToImageClicked = false;
function GoToImg(step) {
    ssCurImgIx = ssCurImgIx + step;
    if (ssCurImgIx > ssNoOfImages - 1) ssCurImgIx = 0;
    else if (ssCurImgIx < 0) ssCurImgIx = ssNoOfImages - 1;
    if (ssImageLinks != null && ssImageLinks.length > 0) DoSSImageLinking();
    ssImg0.src = ssImages[ssCurImgIx].src;
    opaVal = noOfFadingSteps;
    goToImageClicked = true;
}
function DoSSImageLinking() {
    divSlideShow.style.cursor = 'default';
    divSlideShow.onclick = null;
    divSlideShow.onmouseover = null;
    divSlideShow.onmouseout = null;

    if (ssImageLinks[ssCurImgIx] != '') {
        divSlideShow.style.cursor = 'pointer';
        divSlideShow.onclick = function () {
            pageToCall = ssImageLinks[ssCurImgIx];
            window.location.href = pageToCall;
        };
        divSlideShow.onmouseover = function () { if (ssMouseOverBehaviour == 'freeze') freezeSlideShow = true; };
        divSlideShow.onmouseout = function () { if (ssMouseOverBehaviour == 'freeze') freezeSlideShow = false; };
    }
}
