 //start_slideshow(1, 3, 3000);

var currentSlide = 1;

function start_slideshow(start_frame, end_frame, delay) {
    id = setTimeout(switch_slides(start_frame,start_frame,end_frame, delay), delay);
}

function switch_slides(frame, start_frame, end_frame, delay) {
    
    return (function() {
                     
        Effect.Fade('slide' + frame, { duration: 1.0 });
        
        if (frame == end_frame) {
            frame = start_frame; 
            currentSlide = frame;
        } else {
            frame = frame + 1; 
            currentSlide = frame;
        }
        
        Effect.Appear('slide' + frame, { duration: 1.0 });
        
        if (delay == 1000) {
            delay = 9000; 
        }
        
        id = setTimeout(switch_slides(frame, start_frame, end_frame, delay), delay);
    })
}

function stop_slideshow() {
    clearTimeout(id);
}

function next_slide() {
    
    clearTimeout(id);

    Effect.Fade('slide' + currentSlide, { duration: 1.0 });
    
    if (currentSlide == 4) {
        currentSlide = 0;
    }
    
    currentSlide = currentSlide + 1;
    Effect.Appear('slide' + currentSlide, { duration: 1.0 });
    id = setTimeout(switch_slides(currentSlide, currentSlide, currentSlide, delay), delay);
}

function previous_slide() {
    
    clearTimeout(id);
    
    if (currentSlide == 0) {
        currentSlide = 1;
    } else {
      Effect.Fade('slide' + currentSlide, { duration: 1.0 });
      
      currentSlide = currentSlide - 1;
      Effect.Appear('slide' + currentSlide, { duration: 1.0 });
      id = setTimeout(switch_slides(currentSlide, currentSlide, currentSlide, delay), delay);
    }
}