jQuery.fn.slideshow = function(settings) {
    settings = jQuery.extend({
        active: null,
        activecaption: null,
        images: null,
        captions: null,
		max: 3
    }, settings);
    
    max = settings.max;
    var a = "<img class=\"active\" id=\"0\" src=\"" + settings.active + "\" />";
    $("#navigation").hide();
    $("#play").hide();
    $("#slideshow").append(a);
    $("#caption").append(settings.activecaption);    
    intervalID = timedSlide(settings.images);

    
    function timedSlide() {
        intervalID = window.setInterval(nextSlide,5000);
        return intervalID;
    }
    
    function stopSlide() {
        window.clearInterval(intervalID);
    }
    
    function restartSlide() {
        intervalID = timedSlide();
    }

    function nextSlide() {
        var actual_id = $(".active").attr("id");
        if (actual_id == (max - 1)) {
                actual_id = 0;
            }   
       else {
                actual_id++;
       }
       var next_img = settings.images[actual_id];
       var caption = settings.captions[actual_id];
       $(".active").addClass("tofade");
       $(".active").removeClass("active");
       var v = "<img class=\"active\" id=\"" + actual_id + "\"src=\"" + next_img + "\" />";
       $("#slideshow").append(v);
       $(".active").hide();
       $(".tofade").fadeOut(3000);
       $(".active").fadeIn(3000);
       setTimeout(function() {
            $("#caption").empty();
            $("#caption").append(caption);
       },1500);
       $("#slideshow").remove("img.tofade");
    }
    
    function prevSlide() {
        var actual_id = $(".active").attr("id");
        if (actual_id == 0) {
            actual_id = max - 1;
        }
        else {
            actual_id--;
        }
        var next_img = settings.images[actual_id];
        var caption = settings.captions[actual_id];        
        $(".active").addClass("tofade");
        $(".active").removeClass("active");
        var v = "<img class=\"active\" id=\"" + actual_id + "\"src=\"" + next_img + "\" />";
        $("#slideshow").append(v);
        $(".active").hide();
        $(".tofade").fadeOut(5000);
        $(".active").fadeIn(5000);
        setTimeout(function() {
            $("#caption").empty();
            $("#caption").append(caption);
        },1500);        
        $("#slideshow").remove("img.tofade");
    }
    
    
    $("#next").bind("click",function() {
        nextSlide();
    });
    
    $("#prev").bind("click",function() {
            prevSlide();
    });
    
    $("#stop").bind("click",function() {
        stopSlide(intervalID);
        $("#navigation").show();
        $("#play").show();
        $("#stop").hide();
     });
    
    $("#play").bind("click",function() {
        restartSlide();
        $("#navigation").hide();
        $("#play").hide();
        $("#stop").show();        
    });
}    