(function() { var $, win; $ = this.jQuery || window.jQuery; win = $(window); $.fn.wpjCarousel = function(options) { options = $.extend( { itemsOnPage: 1, gutter: 0, controlsText: ['', ''], responsive: null /* * 644: { * itemsOnPage: 1, * gutter: 0 * } * */ }, options || {} ); var container = this, html_container = container.find('.container'), gallery = container.find('[data-wpj-carousel]'), items = gallery.children(), items_count = items.length, item_width = 0, step = item_width, gutter = options.gutter, itemsOnPage = options.itemsOnPage, position = 0, prev_button, next_button; var init = function() { container.addClass('wpj-carousel-container'); gallery.addClass('wpj-carousel-gallery'); createNavigation(); updateValues(); }; var updateValues = function() { // todo: onresize: position (pokud budu odrollovaný, nepřesáhnout stránku // todo 2: dědit gutter var win_width = win.width(), container_width = html_container ? html_container.width() : container.width(); if(container_width === 0) { const $some_container = $('main').find('.container'); if ($some_container[0]) { container_width = $some_container.width(); } } gutter = options.gutter; itemsOnPage = options.itemsOnPage; if (options.responsive) { $.each(options.responsive, function(index, value) { if (win_width >= index) { gutter = value.gutter ? value.gutter : options.gutter; itemsOnPage = value.itemsOnPage ? value.itemsOnPage : options.itemsOnPage; } }); } item_width = (container_width + gutter) / itemsOnPage; step = item_width; items.css({ width: item_width, paddingRight: gutter }); updateNavigation(); }; var createNavigation = function() { var navigation = '