{"version":3,"file":"slider.js","sources":["slider.js"],"sourcesContent":["\nvar detailSlider = function() {\n    $('#js-detail-slider').slick({\n        arrows: true,\n        slidesToShow: 3,\n        slidesToScroll: 3,\n        infinite: false,\n        initialSlide: 0,\n        centerMode: false,\n        responsive: [\n            {\n                breakpoint: 1100,\n                settings: {\n                    slidesToShow: 2,\n                    slidesToScroll: 2\n                }\n            },\n            {\n                breakpoint: 980,\n                settings: {\n                    slidesToShow: 2,\n                    slidesToScroll: 2,\n                }\n            },\n            {\n                breakpoint: 750,\n                settings: {\n                    slidesToShow: 1,\n                    slidesToScroll: 1,\n                    arrows: false\n                }\n            }\n        ]\n    });\n};\n\ndetailSlider();\n\nwindow.accommodationSlider = function(context) {\n    if (!$('#' + context.attr('id') +  ' .js-accommodation-slider').hasClass('slick-initialized')) {\n        $('#' + context.attr('id') +  ' .js-accommodation-slider').each(function() {\n            $(this).slick({\n                arrows: true,\n                slidesToShow: 3,\n                infinite: false,\n                initialSlide: 0,\n                centerMode: false,\n                responsive: [\n                    {\n                        breakpoint: 650,\n                        settings: {\n                            slidesToShow: 2,\n                        }\n                    },\n                    {\n                        breakpoint: 400,\n                        settings: {\n                            slidesToShow: 1,\n                        }\n                    }\n                ]\n            });\n        });\n    }\n};\n\nwindow.accommodationSlider($('#interval-0'));\n\n\nvar relatedSlider = function() {\n    $('#js-related-slider').slick({\n        arrows: true,\n        slidesToShow: 4,\n        slidesToScroll: 4,\n        infinite: true,\n        centerMode: false,\n        responsive: [\n            {\n                breakpoint: 1700,\n                settings: {\n                    slidesToShow: 4,\n                    slidesToScroll: 4\n                }\n            },\n            {\n                breakpoint: 1450,\n                settings: {\n                    slidesToShow: 3,\n                    slidesToScroll: 3\n                }\n            },\n            {\n                breakpoint: 1100,\n                settings: {\n                    slidesToShow: 2,\n                    slidesToScroll: 2\n                }\n            },\n            {\n                breakpoint: 980,\n                settings: {\n                    slidesToShow: 2,\n                    slidesToScroll: 2,\n                    dots: true\n                }\n            },\n            {\n                breakpoint: 750,\n                settings: {\n                    slidesToShow: 1,\n                    slidesToScroll: 1,\n                    dots: true,\n                    centerMode: true\n                }\n            }\n        ]\n    });\n};\n\nrelatedSlider();\n\n$(function(){\n\n    // init the slider and slick carousel\n\n    function init() {\n        if (content1.length != 0) {\n            // jQuery UI slider (only seen at and above 750px)\n            content1.find('#slider').slider({\n                min : 1,\n                range : false,\n                max : 12,\n                value : 0,\n                animate : 500,\n                orientation : 'horizontal',\n                stop : function(e, ui) {\n                    setTimeout(function() {\n                        updateUISlider(Math.round(ui.value), true);\n                        updateSlick(Math.round(ui.value) - 1, true);\n                    }, 500);\n\n                }\n            });\n\n            // When an item is clicked update the jQuery UI slider, the slider status,\n            // and the slick carousel position (which is hidden from view),\n            // and the slick carousel status (also hidden from view)\n\n            content1.find('.slider-nav div').on('click', function() {\n                index = $(this).index();\n\n                updateUISlider(index + 1, true);\n\n\n                setTimeout(function() {\n                    updateSlick(index, true);\n                    updateStats(index);\n                }, 50);\n            });\n        }\n\n        // Slick carousel (only seen below 750px)\n        //\n        if (content2.length != 0) {\n            content2.find('.slider-nav').on('init', function(event, slick) {\n                setTimeout(function() {\n                    content2.find('.slider-nav').slick('slickGoTo', window.defaultMonth);\n                }, 20);\n            });\n\n            content2.find('.slider-nav').slick({\n                slidesToShow : 5,\n                slidesToScroll : 1,\n                swipeToSlide : true,\n                centerMode : true,\n                focusOnSelect : true,\n                prevArrow : false,\n                nextArrow : false,\n                infinite: false,\n                centerPadding: '20px',\n                initialSlide: 0\n            });\n\n            // When the carousel is changed update the jQuery UI slider (which is hidden from view),\n            // the slider status (which is hidden from view),\n            // and the slick carousel status\n            var load = false;\n            content2.find('.slider-nav').on('beforeChange', function(a, b, c, d) {\n                updateUISlider(d + 1, !load);\n                load = true;\n                updateSlick(d, false);\n                updateStats(d);\n            });\n        }\n    }\n\n    // Update the jQuery UI slider position and the slider status\n\n    function updateUISlider(value, update) {\n        if (update) {\n            content1.find('#slider').slider('value', value);\n        }\n        content1.find('.itinerary__when-item').removeClass('itinerary__when-item--active');\n        content1.find('.itinerary__when-item').eq(value-1).addClass('itinerary__when-item--active');\n        content1.find('.status span').html(content1.find('.slider-nav div').eq(value - 1).find('h3').html());\n    }\n\n    // Update the slick carousel status and, if specified, the slick carousel position\n\n    function updateSlick(value, slide) {\n        content2.find('.status span').html(content2.find('.slider-nav [data-slick-index=\"' + value + '\"] h3').html());\n        if (slide) {\n            content2.find('.slider-nav').slick('slickGoTo', value);\n        }\n    }\n\n    function updateStats(value) {\n        current = $('.itinerary__when-item').eq(value);\n        temp = 'Average temperature - ' + current.data('temp');\n        rain = 'Average rainfall - ' + current.data('rain');\n\n        var weather = $('.itinerary__weather-item');\n        if (weather.eq(0).html() != temp || weather.eq(1).html() != rain) {\n            weather.fadeToggle(500);\n            weather.eq(0).html(temp);\n            weather.eq(1).html(rain);\n            weather.fadeToggle(500);\n        }\n    }\n\n    // Clone the content, so that we can control both versions independently\n\n    var content1 = $('.slider_content-1');\n    var content2 = content1.clone();\n\n    content2.removeClass('slider_content-1').addClass('slider_content-2').insertAfter('.slider_content-1');\n\n    init();\n\n\n});\n"],"names":["detailSlider","$","slick","arrows","slidesToShow","slidesToScroll","infinite","initialSlide","centerMode","responsive","breakpoint","settings","relatedSlider","window","accommodationSlider","context","attr","hasClass","each","this","dots","updateUISlider","value","update","content1","find","slider","removeClass","eq","addClass","html","updateSlick","slide","content2","updateStats","current","temp","data","rain","weather","fadeToggle","load","clone","insertAfter","length","min","range","max","animate","orientation","stop","e","ui","setTimeout","Math","round","on","index","event","defaultMonth","swipeToSlide","focusOnSelect","prevArrow","nextArrow","centerPadding","a","b","c","d"],"mappings":"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"}