var SlideShow = function(){
    var slide = function(list, actual_elem){
        setTimeout(function(){
            var last_elem;
            if(actual_elem == 0){
                last_elem = list.length - 1;
            } else {
                last_elem = actual_elem - 1;
            }
            if(actual_elem >= list.size()){
                actual_elem = 0;
            }
            list.css("zIndex", 10);
            list.eq(actual_elem).css("zIndex", 0).show();
            list.eq(last_elem).fadeOut(1000, function(){
                slide(list, actual_elem + 1);
            });
            
            
        }, 5000);
    }
    
    var setHeight = function(slider, height){
        slider.height(height);
    }
    
    var register = function(name){
        var slideshow = $('#'+name);
        var list = slideshow.find("li");
       
        var img = list.eq(0).find("img");
        var adjust = function() {
            setHeight(slideshow, img.height());
            slide(list, 1);
        }
        if(img.get(0).complete){
            adjust();
        } else {
            img.load(adjust);
        }
    }
    
    return {
        register: function (name){
            register(name);
        }
    }
}();
var Grid = function(){
    var slide = function(list, actual_elem){
        setTimeout(function(){
            var last_elem;
            if(actual_elem == 0){
                last_elem = list.length - 1;
            } else {
                last_elem = actual_elem - 1;
            }
            if(actual_elem >= list.size()){
                actual_elem = 0;
            }
            list.css("zIndex", 10);
            list.eq(actual_elem).css("zIndex", 0).show();
            list.eq(last_elem).fadeOut(1000, function(){
                slide(list, actual_elem + 1);
            });


        }, 5000);
    }

    var setHeight = function(slider, height){
        slider.height(height);
    }

    var start = function(){
        var elems = $(".grid").find("li");
        elems.each(function(i, elem){
            var je = $(elem);
            var img = je.find("img").eq(0);
            var adjust = function(){
                je.width(img.width()).height(img.height());
            }

            if(img.get(0).complete){
                adjust();
            } else {
                img.load(adjust);
            }
            
            
        });

    }

    return {
        start: function (){
            start();
        }
    }
}();
