(function($){
    $.fn.leanimation.effect.sliding = function(data) {
        if (data.options.direction == 'horizontal') {
            var distance = 0 - ((data.next_position-1) * data.panel_width);
            $(data.container_selector).stop().animate({
                left: distance
            },{
                'duration' : data.options.duration,
                'easing' : data.options.easing,
                'complete': function() {
                    $.fn.leanimation.finished_animation(data);
                }
            });
        } else {
            var distance = 0 - ((data.next_position-1) * data.panel_height);
            $(data.container_selector).stop().animate(
            {
                top: distance
            },
            data.options.duration,
            data.options.easing,
            function() {
                $.fn.leanimation.finished_animation(data);
            }
            );

        }
    }

    $.fn.leanimation.effect.sliding.init = function(data) {

        if (data.options.direction == 'horizontal') {
            data.panels.css('float','left');
        }
        //If the sliding direction is horizontal, then we have to setup the width of the container.
        $(data.options.container).css('position','relative');
        if (data.options.direction == 'horizontal') {
            $(data.container_selector).width(data.panel_width * data.panels.length);
            var distance = 0 - (($(data.container_selector).data('current_position')-1) * $(data.container_selector).data('panel_width'));
            $(data.container_selector).css('left',distance);
        } else { //direction is vertical
            $(data.container_selector).width(data.panel_height * data.panels.length);
            var distance = 0 - (($(data.container_selector).data('current_position')-1) * $(data.container_selector).data('panel_height'));
            $(data.container_selector).css('top',distance);
        }
    }
})(jQuery);	
