var imageChangeTime = 1000;  // Change this number to increese/
                             // decrease the time between changing
                             // images.
var timedImage;

var imageElemIds = new Array ( );
var curImgIdx = new Array ( );
var playTimedImages;

function imageInit ( ) {
    // Preload Images
    for ( var i = 0; i < imageElemIds.length; i++ ) {
        for ( var j = 0; j < imageElemIds[i].length; j++ ) {
            var image = new Image ( );
            var imgElemId = imageElemIds[i][j];
            image.src = document.getElementById ( imgElemId ).getAttribute ( 'src' );
        }
    }
    
    // Init Image Indexes
    for ( var i = 0; i < curImgIdx.length; i++ ) {
        curImgIdx[i] = imageElemIds[i].length - 1;
    }
    
    // Init play image flag
    playTimedImages = true;
    if ( document.cookie == "name=dontAutoChangeImgs" ) {
        playTimedImages = false;
    }
}

function imageInitSetChngeSecs ( waitTimeSeconds ) {
    imageChangeTime = waitTimeSeconds * 1000;
}

function imageInitAddImage ( seqIdx, imgId ) {
    if ( seqIdx < imageElemIds.length ) {
        imageElemIds[seqIdx][imageElemIds[seqIdx].length] = imgId;
    }
}

function imageInitAddTimedImage ( ) {
    var idx = imageElemIds.length;
    imageElemIds[idx] =  new Array ( );
    curImgIdx[idx] = 0;
    
    return idx;
}

function doTimedImage ( ) {
    if ( playTimedImages ) {
        imageChange ( 1 );
    }
    timedImage = setTimeout ( "doTimedImage()", imageChangeTime );
}

function imageChange ( offset ) {
    for ( var i = 0; i < imageElemIds.length; i++ ) {
        var oldImgId = imageElemIds[i][curImgIdx[i]];
        curImgIdx[i] += offset;
        if ( curImgIdx[i] >= imageElemIds[i].length ) {
            curImgIdx[i] = 0;
        }
        if ( curImgIdx[i] < 0 ) {
            curImgIdx[i] = imageElemIds[i].length - 1;
        }
        var newImgId = imageElemIds[i][curImgIdx[i]];
        document.getElementById ( oldImgId ).style.display = 'none';
        document.getElementById ( newImgId ).style.display = 'inline';
    }
}

function prevImg ( ) {
    imageChange ( -1 );
}

function pauseImg ( ) {
    playTimedImages = false;
    var cookieExpTime = new Date ( );
    cookieExpTime.setFullYear ( cookieExpTime.getFullYear ( ) + 1 );
    document.cookie = 'name=dontAutoChangeImgs;expires=' + cookieExpTime.toGMTString ( );
    showImgCtls ( );
}

function playImg ( ) {
    playTimedImages = true;
    document.cookie = 'name=;expires=1970,01,01;';
    showImgCtls ( );
}

function nextImg ( ) {
    imageChange ( 1 );
}

function hideImgCtls ( ) {
    document.getElementById ( 'sidebarimgctlsprev' ).style.display = 'none';
    document.getElementById ( 'sidebarimgctlsplay' ).style.display = 'none';
    document.getElementById ( 'sidebarimgctlsnext' ).style.display = 'none';
    document.getElementById ( 'sidebarimgctlspause' ).style.display = 'none';
}

function showImgCtls ( ) {
    if ( playTimedImages ) {
        document.getElementById ( 'sidebarimgctlspause' ).style.display = 'inline';
        document.getElementById ( 'sidebarimgctlsprev' ).style.display = 'none';
        document.getElementById ( 'sidebarimgctlsplay' ).style.display = 'none';
        document.getElementById ( 'sidebarimgctlsnext' ).style.display = 'none';
    } else {
        document.getElementById ( 'sidebarimgctlsprev' ).style.display = 'inline';
        document.getElementById ( 'sidebarimgctlsplay' ).style.display = 'inline';
        document.getElementById ( 'sidebarimgctlsnext' ).style.display = 'inline';
        document.getElementById ( 'sidebarimgctlspause' ).style.display = 'none';
    }
}

