/**
* Drama Slider jQuery Plugin
*/
(function () {
    $.fn.dramaSlider = function(btnLeft, btnRight, speedValue) {
        return this.each(function() {
            var page = 0,
                speed = speedValue || 500,
                wrapper = $(this),
                ul = $('> ul', wrapper).width(9999),
                liTotal = $('> li', ul).size(),
                singleLi = $('li:first', ul).outerWidth(true),
                liPerPage = Math.ceil(wrapper.outerWidth() / singleLi),
                totalPage = Math.ceil(liTotal / liPerPage),
                liLeft = (liTotal % liPerPage),
                move = liTotal % liPerPage == 0 ? true : false;

            // move right button
            $(btnRight).click(function() {
                if (liTotal > liPerPage) {
                    if (move) {
                        if ((page + 1) < totalPage) {
                            page++;
                            var moveLeft = (singleLi * liPerPage * -1);
                            ul.animate({left: '+=' + moveLeft}, speed);                        
                        }
                    } else {
                        if ((page + 1) < totalPage) {
                            if ((page + 1) != (totalPage - 1)) {
                                page++;
                                var moveLeft = (singleLi * liPerPage * -1);
                                ul.animate({left: '+=' + moveLeft}, speed);
                            } else {
                                page++;
                                var moveLeft = (singleLi * liLeft * -1);
                                ul.animate({left: '+=' + moveLeft}, speed);
                            }
                        }
                    }
                }
            });
            
            // move left button
            $(btnLeft).click(function() {
                if (page != 0) {
                    if ((page + 1) == totalPage) {
                        var moveRight = (singleLi * liLeft);
                        ul.animate({left: '+=' + moveRight}, speed);
                        page--;                                                
                    } else {
                        var moveRight = (singleLi * liPerPage);
                        ul.animate({left: '+=' + moveRight}, speed);
                        page--;                        
                    }
                }
            });               
        });
    }
})(jQuery);
