var Slideshow = {
    current_slide: null,
    previous_slide: null,
    next_slide: null,
    fade_speed: 1000,
    
    setup: function() {
        $("#slideshow").show();
        $("#slides").hide();
        Slideshow.switch_slide($("#slides div.slide:first"));
        $("a#go_previous").livequery('click', function(event) {
            Slideshow.go_previous();
            return false;
        });
        $("a#go_next").livequery('click', function(event) {
            Slideshow.go_next();
            return false;
        });
    },
    
    switch_slide: function(obj) {
        Slideshow.current_slide = obj;
        
        if(obj.hasClass("last")) {
            Slideshow.previous_slide = obj.prev();
            Slideshow.next_slide = $("#slides div.slide:first");
        }
        else if(obj.hasClass("first")) {
            Slideshow.previous_slide = $("#slides div.slide:last");
            Slideshow.next_slide = obj.next();
        } 
        else {
            Slideshow.previous_slide = obj.prev();
            Slideshow.next_slide = obj.next();
        }
        
        $("#slideshow").append(
            obj.clone().prepend(
                '<div class="project_previous_next_links"><a href="#" id="go_previous"><span class="hidden">Previous</span></a><a href="#" id="go_next"><span class="hidden">Next</span></a></div>'
            ).hide().fadeIn(Slideshow.fade_speed)
        );
    },
    
    go_previous: function() {
        $("#slideshow .slide").fadeOut(Slideshow.fade_speed).queue(function() {
            $(this).remove();
            Slideshow.switch_slide(Slideshow.previous_slide);
        });
    },
    
    go_next: function() {
        $("#slideshow .slide").fadeOut(Slideshow.fade_speed).queue(function() {
            $(this).remove();
            Slideshow.switch_slide(Slideshow.next_slide);
        });
    }
}

$(document).ready(Slideshow.setup);