﻿//=======================
//
// Merging Image Slideshow
//
// http://www.astral-consultancy.co.uk/cgi-bin/hunbug/doco.cgi?11530
//
//=======================

var slideshowMergeAnimate = new Array();
var slideshowMergeTimer = new Array();
var slideshowMergeCount = new Array();
var slideshowMergeImages = new Array();

//======================

/*
function slideshowMerge(id,cl,imageArray,fadeInterval,holdTime)
{

for(i=0;i<imageArray.length;i++)
{
var imgLoad = new Image();
imgLoad.src = imageArray[i];
}

if(cl)
cl = ' class="'+cl+'"';

document.write('<div id="'+id+'"'+cl+' style="position:relative">');
document.write('<img id="'+id+'_img1" style="position:absolute; top:0px; left:0px;" onload="slideshowMergeRun(\''+id+'\')"/>');
document.write('<img id="'+id+'_img2" style="position:absolute; top:0px; left:0px;display:none;"/></div>');
 
slideshowMergeCount[id]   = 0;
slideshowMergeImages[id]  = imageArray;
slideshowMergeAnimate[id] = 'run';
slideshowMergeTimer[id]   = setInterval('slideshowMergeAnimation(\''+id+'\',\''+holdTime+'\');',fadeInterval);

}
*/

function slideshowMerge(div, imageArray, fadeInterval, holdTime, loadFirst) {

    slideshowMergeCount[div] = 0;
    slideshowMergeImages[div] = imageArray;
    slideshowMergeAnimate[div] = 'run';
    slideshowMergeTimer[div] = setInterval('slideshowMergeAnimation(\'' + div + '\',\'' + holdTime + '\');', fadeInterval);

    // loads the first image of the image array immediately
    if (loadFirst) {
        var obj1 = document.getElementById(div + '_img1');
        obj1.src = slideshowMergeImages[div][0];
        slideshowMergeCount[div] = 100;
    }

    // pre load images
    for (i = 0; i < imageArray.length; i++) {
        var imgLoad = new Image();
        imgLoad.src = imageArray[i];
    }
}



//======================

function slideshowMergeAnimation(id, holdTime) {
    if (slideshowMergeAnimate[id] == 'run') {
        var obj1 = document.getElementById(id + '_img1');
        var obj2 = document.getElementById(id + '_img2');

        var opa = slideshowMergeCount[id] % 100;

        if (opa == 0) {
            if (obj1.src) {
                slideshowMergeAnimate[id] = 'hold';
                setTimeout('slideshowMergeRun(\'' + id + '\')', holdTime);
                obj2.src = obj1.src;
                obj2.style.display = 'block';

                obj1.style.opacity = (opa / 100).toString();
                obj2.style.opacity = ((100 - opa) / 100).toString();
            }
        }
        else if (opa == 1) {
            slideshowMergeAnimate[id] = 'load';
            obj1.src = slideshowMergeImages[id][Math.floor(slideshowMergeCount[id] / 100) % slideshowMergeImages[id].length];

            obj1.style.opacity = (opa / 100).toString();
            obj1.style.filter = "alpha(opacity=" + opa.toString() + ")";
            obj2.style.opacity = ((100 - opa) / 100).toString();
            obj2.style.filter = "alpha(opacity=" + (100 - opa).toString() + ")";
        }
        else {
            obj1.style.opacity = (opa / 100).toString();
            obj1.style.filter = "alpha(opacity=" + opa.toString() + ")";
            obj2.style.opacity = ((100 - opa) / 100).toString();
            obj2.style.filter = "alpha(opacity=" + (100 - opa).toString() + ")";
        }

        slideshowMergeCount[id]++;

        if (slideshowMergeCount[id] == (slideshowMergeImages[id].length * 100))
            slideshowMergeCount[id] = 0;
    }
}

//======================

function slideshowMergeRun(id) {
    slideshowMergeAnimate[id] = 'run';
}

//======================