﻿//=======================
//
// Fading Image Slideshow
//
// http://www.astral-consultancy.co.uk/cgi-bin/hunbug/doco.cgi?11510
//
//=======================


var slideshowFadeAnimate = new Array();
var slideshowFadeTimer = new Array();
var slideshowFadeCount = new Array();
var slideshowFadeImages = new Array();


//======================


function slideshowFade(id, cl, imageArray, fadeInterval, holdTime) {

    if (cl)
        cl = ' class="' + cl + '"';

    document.write('<div id="' + id + '"' + cl + '><img id="' + id + 'img" onload="slideshowFadeRun(\'' + id + '\')"/></div>');

    var ss = document.getElementById(id + 'img');
    if (ss.addEventListener) {
        ss.addEventListener('mouseover', function() { slideshowFadeMouseover(id) }, false);
        ss.addEventListener('mouseout', function() { slideshowFadeMouseout(id) }, false);
    }
    else if (ss.attachEvent) {
        ss.attachEvent('onmouseover', function() { slideshowFadeMouseover(id) });
        ss.attachEvent('onmouseout', function() { slideshowFadeMouseout(id) }, false);
    }

    slideshowFadeCount[id] = 0;
    slideshowFadeImages[id] = imageArray;
    slideshowFadeAnimate[id] = 'run';
    slideshowFadeTimer[id] = setInterval('slideshowFadeAnimation(\'' + id + '\',\'' + holdTime + '\');', fadeInterval);

}


//======================


function slideshowFadeAnimation(id, holdTime) {
    if (slideshowFadeAnimate[id] == 'run') {
        var obj = document.getElementById(id + 'img');
        var opa = slideshowFadeCount[id] % 200;

        if (opa == 0) {
            slideshowFadeAnimate[id] = 'load';
            obj.src = slideshowFadeImages[id][Math.floor(slideshowFadeCount[id] / 200) % slideshowFadeImages[id].length];
        }
        else if (opa == 100) {
            slideshowFadeAnimate[id] = 'hold';
            setTimeout('slideshowFadeRun(\'' + id + '\')', holdTime);
        }
        else if (opa > 100)
            opa = 200 - opa;

        obj.style.opacity = (opa / 100).toString();
        obj.style.filter = "alpha(opacity=" + opa.toString() + ")";

        slideshowFadeCount[id]++;

        if (slideshowFadeCount[id] == (slideshowFadeImages[id].length * 200))
            slideshowFadeCount[id] = 0;
    }
}

function slideshowFadeRun(id) {
    slideshowFadeAnimate[id] = 'run';
}


//======================
