﻿function slideShow(varSlideTotal, varSpeed, varSubDir, varTimeOffset, varFadeSpeed, varFadeFrameLimit) {
    var varSlideInterval;
    var varFadeInterval;
    var varLastSlideIndex;
    var varCurrentSlideIndex;
    var varFadeFrame;
    var varSubDirWithSlash;
    var varSubDirWithUnderscore;

    if (varSpeed === undefined || varSpeed == "") {
        varSpeed = 5000;
    }

    if (varSubDir === undefined) {
        varSubDir = "";
        varSubDirWithSlash = "";
        varSubDirWithUnderscore = "";
    } else {
        varSubDirWithSlash = varSubDir + "/";
        varSubDirWithUnderscore = "_" + varSubDir;
    }

    if (varTimeOffset === undefined || varTimeOffset == "") {
        varTimeOffset = 0;
    }

    if (varFadeSpeed === undefined || varFadeSpeed == "") {
        varFadeSpeed = 500;
    }

    if (varFadeFrameLimit === undefined || varFadeFrameLimit == "") {
        varFadeFrameLimit = 25;
    }

    function showSlide(varSlideIndexIn) {
            
        varCurrentSlideIndex = varSlideIndexIn;

        if (varCurrentSlideIndex > varSlideTotal) {
            varCurrentSlideIndex = 1;
        }

        blendImage("imgSlide" + varSubDirWithUnderscore, varFadeSpeed);

        //set the current image as background
        document.getElementById("divSlide" + varSubDirWithUnderscore).style.backgroundImage = "url(upload/images/slideshow/" + varSubDirWithSlash + "slide_" + varLastSlideIndex + ".jpg)";
        document.getElementById("imgSlide" + varSubDirWithUnderscore).src = "upload/images/slideshow/" + varSubDirWithSlash + "slide_" + varCurrentSlideIndex + ".jpg";

        varLastSlideIndex = varCurrentSlideIndex;
    }

    function blendImage(imageid, millisec) {
        var speed = Math.round(millisec / 100);
        varFadeFrame = 0;
        changeOpac(0, imageid);
        varFadeInterval = setInterval(function () { changeOpac(varFadeFrame + 1, imageid) }, speed * (100 / varFadeFrameLimit));
    }

    //change the opacity for different browsers
    function changeOpac(varFadeFrameIn, id) {
        varFadeFrame = varFadeFrameIn;
        var object = document.getElementById(id).style;
        object.opacity = (varFadeFrame / varFadeFrameLimit);
        object.MozOpacity = (varFadeFrame / varFadeFrameLimit);
        object.KhtmlOpacity = (varFadeFrame / varFadeFrameLimit);
        object.filter = "alpha(opacity=" + varFadeFrame * (100 / varFadeFrameLimit) + ")";
        if (varFadeFrame == varFadeFrameLimit) {
            clearInterval(varFadeInterval);
        }
    }

    this.start = function () {
        varLastSlideIndex = 1;
        varCurrentSlideIndex = 1;
        document.getElementById("imgSlide" + varSubDirWithUnderscore).src = "upload/images/slideshow/" + varSubDirWithSlash + "slide_1.jpg";
        setTimeout(function () { varSlideInterval = setInterval(function () { showSlide(varCurrentSlideIndex + 1) }, varSpeed); }, varTimeOffset);
    }
}
