
function changeElementOpacity(opacity, id) {
    var object = document.getElementById(id).style;
    remaining--;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
}

function Slideshow_Markup(slideIndex){
    var returnValue = "";
    if(slideImages[slideIndex]){
        returnValue += '<img src="'+imageSitePath+slideImages[slideIndex]+'" width="'+slideImageWidth+'" height="'+slideImageHeight+'" />'
        if(showCaptions != 'no_captions'){
            if(slideCaptions[slideIndex]){
                returnValue += '<div class="caption">'+slideCaptions[slideIndex];
                if(showCaptions == 'with_credits'){
                    if(slideCredits[slideIndex]){
                        returnValue += ' <span class="credit">('+slideCredits[slideIndex]+')</span>';
                    }
                }
                returnValue += '</div>\n';
            }
        }
    }
    return returnValue;
}

function Slideshow_GetPreviousSlideIndex(){
    if(currentSlideIndex == 0){
        return slideImages.length - 1;
    }
    else{
        return currentSlideIndex - 1;
    }
}

function Slideshow_GetNextSlideIndex(){
    if(currentSlideIndex == (slideImages.length - 1)){
        return 0;
    }
    else{
        return currentSlideIndex + 1;
    }
}

function Slideshow_ShowPreviousSlide(){
    Slideshow(Slideshow_GetPreviousSlideIndex(),1000);
}

function SildeShow_ShowNextSlide(){
    Slideshow(Slideshow_GetNextSlideIndex(),1000);
}

function Slideshow_SetContent(newSlideIndex){
    document.getElementById("slide_current").innerHTML = document.getElementById("slide_fader").innerHTML;
    document.getElementById("slide_fader").innerHTML = "";
    currentSlideIndex = newSlideIndex;
    document.getElementById("slide_previous").innerHTML = Slideshow_Markup(Slideshow_GetPreviousSlideIndex());
    document.getElementById("slide_next").innerHTML = Slideshow_Markup(Slideshow_GetNextSlideIndex());
}

function Slideshow(newSlideIndex,millisec) {
    if (remaining > 0) return;
    var fps = 30
    var steps = Math.round(millisec * fps / 1000);
    var speed = Math.round(millisec / steps);
    var timer = 0;
    var opacity = 0;
    changeElementOpacity(0,"slide_fader");
    document.getElementById("slide_fader").innerHTML = Slideshow_Markup(newSlideIndex);
    remaining = steps + 1;
    for(timer=0;timer<=steps;timer++){
        opacity = Math.round(timer * 100 / steps)
        setTimeout("changeElementOpacity(" + opacity + ",'slide_fader')",(timer * speed));
    }
    setTimeout("Slideshow_SetContent("+newSlideIndex+")", millisec+1);
}

function Slideshow_NavMouseOver(myState){
    if((myState != "next") && (myState != "previous")) myState = "gallery";
    var myElement = document.getElementById(myState + "Button");
    myElement.className = myElement.className + " " + myState + "_over";
}

function Slideshow_NavMouseOut(myState){
    if((myState != "next") && (myState != "previous")) myState = "gallery";
    var myRe = new RegExp(" " + myState + "_over");
    var myElement = document.getElementById(myState + "Button");
    myElement.className = myElement.className.replace(myRe,"");
}
