﻿// The number of seconds to wait between each image change
var imageChangeInterval = 10;

// The number of milliseconds between fade operations
var fadeInterval = 25;

// The images to be used in the lifestyle image display
var images = new Array();
images[0] = "images/home0.jpg";
images[1] = "images/home1.jpg";
images[2] = "images/home2.jpg";
images[3] = "images/home3.jpg";
images[4] = "images/home4.jpg";
images[5] = "images/home5.jpg";
images[6] = "images/home6.jpg";
images[7] = "images/home7.jpg";
images[8] = "images/home8.jpg";
images[9] = "images/home9.jpg";

// Don't change these
var millisecondsPerSecond = 1000;
var changeLifestyleImageTimer = -1;
var fadeEffectTimer = -1;
var imageIndex = Math.floor(Math.random() * images.length);
var lifestyle;
var fader;
var fadeLevel = 0;
var fadeOut = false;

function Initialize() {
    if (CanDisplayLifestyleImages()) {
        SetImage(lifestyle, images[imageIndex]);

        changeLifestyleImageTimer =
            setInterval(ChangeLifestyleImage, (imageChangeInterval * millisecondsPerSecond));
    }

    HookButtons();
}

function Fade() {
    if (fadeOut) {
        if (fadeLevel > 0) {
            fadeLevel--;
            SetOpacity(fader, fadeLevel);
        } else {
            fadeOut = false;
            clearInterval(fadeEffectTimer);
        }
    } else {
        if (fadeLevel < 100) {
            fadeLevel++;
            SetOpacity(fader, fadeLevel);
        }
        else {
            fadeOut = true;
            clearInterval(fadeEffectTimer);
        }
    }
}

function CleanUp() {
    if (changeLifestyleImageTimer != -1) {
        clearInterval(changeLifestyleImageTimer);
    }
    if (fadeEffectTimer != -1) {
        clearInterval(fadeEffectTimer);
    }
}

function CanDisplayLifestyleImages() {
    var result = false;
    lifestyle = document.getElementById("home-display");
    fader = document.getElementById("fader");
    if ((images.length != 0) && (lifestyle != null) && (fader != null)) {
        result =
            ((typeof (lifestyle.style) != "undefined") &&
             (typeof (lifestyle.style.background) != "undefined"));
    }
    return result;
}

function SetImage(element, imageUrl) {
    element.style.background = ("url('" + imageUrl + "')");
}

function ChangeLifestyleImage() {
    imageIndex++;
    if (imageIndex >= images.length) {
        imageIndex = 0;
    }
    if (fadeOut) {
        SetImage(lifestyle, images[imageIndex]);
        fadeEffectTimer = setInterval(Fade, fadeInterval);
    } else {
        SetImage(fader, images[imageIndex]);
        fadeEffectTimer = setInterval(Fade, fadeInterval);
    }
}

function SetOpacity(element, value) {
    element.style.opacity = (value / 100);
    element.style.filter = 'alpha(opacity = ' + value + ')';
}

function HookButtons() {
    if (typeof (document.getElementsByTagName) != "undefined") {
        var divs = document.getElementsByTagName("div");
        var numberOfDivs = divs.length;
        for (var i = 0; i < numberOfDivs; i++) {
            var div = divs[i];
            if (div.className == "menu-button") {
                div.onmouseover = HighlightButton;
                div.onmouseout = DehighlightButton;
            }
        }
    }
}

function HighlightButton() {
    SetOpacity(this, 80);
}

function DehighlightButton() {
    SetOpacity(this, 40);
}

AddEventListener(window, "load", Initialize);
AddEventListener(window, "unload", CleanUp);