    // ---------------------------------------------------
    // Javascript: SlideShow
    // Description: Display slideshow of all images in a
    //              directory,
    // Copyright: 2007 Martin Downey (all rights reserved)
    // ---------------------------------------------------

    // Initialisation...
    var mSlideTimer;
    var mFadeTimer;
    var mSlide = -1;
    var mHolder = -1;
    var mSlides = new Array();
    var mHolders = new Array();

    function cSlide(src){
    // ---------------------------------------------------
    // Class: cSlide
    // Copyright: 2007 Martin Downey (all rights reserved)
    // ---------------------------------------------------

        this.src = src;
        this.opacity = 0;
        this.opacityDiff = 1;
        this.opacityStop = 100;
    }

    function cHolder(imageHolder,spanHolder,oSlide){
    // ---------------------------------------------------
    // Class: cHolder
    // Copyright: 2007 Martin Downey (all rights reserved)
    // ---------------------------------------------------

        this.imageHolder = imageHolder;
        this.spanHolder = spanHolder;
        this.oSlide = oSlide;
        this.newSlide = 1;
    }

    function fLoadSlidesOld(){
    // ---------------------------------------------------
    // Function: fLoadSlides
    // Copyright: 2007 Martin Downey (all rights reserved)
    // ---------------------------------------------------

        oSlide = new cSlide("Images/vsglslideshow/vsglslideshow01.jpg");
        mSlides[0] = oSlide;
        oSlide = new cSlide("Images/vsglslideshow/vsglslideshow02.jpg");
        mSlides[1] = oSlide;
        oSlide = new cSlide("Images/vsglslideshow/vsglslideshow03.jpg");
        mSlides[2] = oSlide;
        oSlide = new cSlide("Images/vsglslideshow/vsglslideshow04.jpg");
        mSlides[3] = oSlide;
        oSlide = new cSlide("Images/vsglslideshow/vsglslideshow05.jpg");
        mSlides[4] = oSlide;
    }

    function fLoadSlideHolders(){
    // ---------------------------------------------------
    // Function: fLoadSlideHolders
    // Copyright: 2007 Martin Downey (all rights reserved)
    // ---------------------------------------------------

        oHolder = new cHolder(oSlideShowImage01,oSlideShowSpan01,mSlides[0]);
        mHolders[0] = oHolder;
        oHolder = new cHolder(oSlideShowImage02,oSlideShowSpan02,mSlides[1]);
        mHolders[1] = oHolder;
        oHolder = new cHolder(oSlideShowImage03,oSlideShowSpan03,mSlides[2]);
        mHolders[2] = oHolder;
        oHolder = new cHolder(oSlideShowImage04,oSlideShowSpan04,mSlides[3]);
        mHolders[3] = oHolder;
        mSlide = 3; // Start from last loaded slide
    }

    function fStartFade(){
    // ---------------------------------------------------
    // Function: fStartFade
    // Copyright: 2007 Martin Downey (all rights reserved)
    // ---------------------------------------------------

        if (mHolders[mHolder].oSlide.opacity == mHolders[mHolder].oSlide.opacityStop) {
            mSlideTimer = setTimeout("fStartSlide()", 1000);
        } else {
            mHolders[mHolder].oSlide.opacity = mHolders[mHolder].oSlide.opacity + mHolders[mHolder].oSlide.opacityDiff;
            mHolders[mHolder].imageHolder.style.filter = "alpha(opacity=" + mHolders[mHolder].oSlide.opacity + ")";
            mMoveTimer = setTimeout("fStartFade()",10);
        }
    }

    function fStartSlide(){
    // ---------------------------------------------------
    // Function: fStartSlide
    // Copyright: 2007 Martin Downey (all rights reserved)
    // ---------------------------------------------------

        // Test for startup..
        if (mHolder < 0) {
            // Startup...
            fLoadSlideHolders();
            mHolder = 0; // Start from first holder
        }
        if (mHolders[mHolder].oSlide.opacity == 0) {
            if (mHolders[mHolder].newSlide == 0) {
                mSlide++;
                if (mSlide == mSlides.length) {
                  mSlide = 0;
                }
                mHolders[mHolder].oSlide = mSlides[mSlide];
                mHolders[mHolder].newSlide = 1;
            } else {
                mHolders[mHolder].newSlide = 0;
            }
        } else {
            mHolder++;
            if (mHolder == mHolders.length) {
              mHolder = 0;
            }
            mHolders[mHolder].newSlide = 0;
        }
        if (mHolders[mHolder].oSlide.opacity == 100) {
            mHolders[mHolder].oSlide.opacityDiff = -1;
            mHolders[mHolder].oSlide.opacityStop = 0;
        } else {
            mHolders[mHolder].oSlide.opacityDiff = 1;
            mHolders[mHolder].oSlide.opacityStop = 100;
        }

        mHolders[mHolder].imageHolder.style.filter = "alpha(opacity=" + mHolders[mHolder].oSlide.opacity + ")";
        mHolders[mHolder].imageHolder.src = mHolders[mHolder].oSlide.src;
        clearTimeout(mFadeTimer);
        mMoveTimer = setTimeout("fStartFade()",10);
    }

    fLoadSlides();
    mSlideTimer = setTimeout("fStartSlide()", 1000);

