// ----- open source project free code from opensource.com -----

var images = new Array()
var currentImage = 0
var currentOpacity = 0
var timerId = ""
var showDelay = 4000
var fadeDelay = 0
var whiteDelay = 0

// ----- Initialise -----

function fadeInitialise() {
    //debugger;
    //document.getElementById("testdiv").style.display = "none";
    var div = document.getElementById("promoMovie")
    images = div.getElementsByTagName("a")
    images[currentImage].style.display = "block";
    fadeShowImage()

    timerId = setTimeout(fadeOut, showDelay)
}
// ----- Select a specific option ------

function fadeSelect(opt) {
    clearTimeout(timerId)
    fadeHideImage()

    currentImage = opt - 1

    fadeShowImage()
    fadeControls("playImage")
}

// ----- Show the current image -----
function StopSliding() {
    fadeStop();


}

function fadeShowImage() {
    images[currentImage].style.display = "block"
    currentOpacity = .99
    setOpacity()
    fadeSelectShow("show")
}

// ----- Hide the current image -----

function fadeHideImage() {
    images[currentImage].style.display = "none"
    currentOpacity = 0
    setOpacity()
    fadeSelectShow("hide")
}

// ----- Show or hide the numbers selects -------

function fadeSelectShow(option) {
    var no = currentImage + 1
    var obj = "select-" + no

    var back = (option == "show") ? "Maroon" : "white"
    var fore = (option == "show") ? "white" : "black"

    document.getElementById(obj).style.backgroundColor = back
    var anchor = document.getElementById(obj).getElementsByTagName("A")

    anchor[0].style.color = fore
}

// ----- Fade Image Out -----

function fadeOut() {
    currentOpacity -= .1
    setOpacity()

    // ---- Is this image now invisible -----

    if (currentOpacity <= 0) {
        images[currentImage].style.display = "none"
        fadeSelectShow("hide")

        currentImage += 1
        if (currentImage >= images.length)
            currentImage = 0

        currentOpacity = 0
        setOpacity()
        images[currentImage].style.display = "block"
        fadeSelectShow("show")
        timerId = setTimeout(fadeIn, whiteDelay);
    }
    else {
        timerId = setTimeout(fadeOut, fadeDelay);
    }
}

// ----- Fade Image In -----

function fadeIn() {
    currentOpacity += .1
    setOpacity()

    // ---- Is this image now invisible -----

    if (currentOpacity == .99) {
        currentOpacity = .99
        timerId = setTimeout(fadeOut, showDelay);
    }
    else {
        timerId = setTimeout(fadeIn, fadeDelay);
    }
}

// ----- Move to the next image -----

function fadeNext() {
    clearTimeout(timerId)
    fadeHideImage()

    currentImage += 1
    if (currentImage >= images.length)
        currentImage = 0

    fadeShowImage()
    fadeControls("playImage")
}

// ----- Move to the previous image -----

function fadePrevious() {
    clearTimeout(timerId)
    fadeHideImage()

    currentImage -= 1
    if (currentImage < 0)
        currentImage = images.length - 1

    fadeShowImage()
    fadeControls("playImage")
}

// ----- Stop the slideshow -----

function fadeStop() {
    clearTimeout(timerId)
    currentOpacity = .99
    setOpacity()
    fadeControls("playImage")
}

// ----- Start the slideshow again -----

function fadePlay() {
    timerId = setTimeout(fadeOut, showDelay);
    fadeControls("stopImage")
}

function fadeControls(show) {
    var old = (show == "playImage") ? "stopImage" : "playImage"
    document.getElementById(old).style.display = "none"
    document.getElementById(show).style.display = "block"
}

// ------ Set the Opacity for all browsers -----

function setOpacity() {
    var imageObject = images[currentImage]

    if (currentOpacity > .99) {
        currentOpacity = .99;
        return;
    }

    if (imageObject != null) {
        imageObject.style.opacity = currentOpacity
        imageObject.style.MozOpacity = currentOpacity
        imageObject.style.filter = "alpha(opacity=" + (currentOpacity * 100) + ")";
    }
}
