var testimonialsHighestElement,testimonialsLowestElement,testimonialsHighestElementPrev,animateSpeed=250,defaultVarConfirm=!0;function getUrlParam(sParam){for(var sParameterName,sURLVariables=window.location.search.substring(1).split("&"),i=0;i<sURLVariables.length;i++)if((sParameterName=sURLVariables[i].split("="))[0]===sParam)return sParameterName[1],decodeURIComponent(sParameterName[1]);return!1}function isUrlValid(url){return/^(https?|s?ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(url)}
/* --------------------- Components --------------------- */function adminnotifications(){$(".notifications-wrap").length&&$.ajax({method:"POST",url:"/garage/notifications"}).done(function(data){$(".notificationsLoading").hide(),$(".notifications-wrap").show();var notifications=JSON.parse(data),notificationsUl=$(".notifications ul");if(0<notifications.length){$(".notifications").show();for(var i=0;i<notifications.length;i++){var notification=notifications[i],notificationLink=null!==notification.url&&0<notification.url.length?' <a href="'+notification.url+'" class="fullSizeLink"></a>':"",notificationImg=null!==notification.imageURL&&0<notification.imageURL.length?'<span class="notificationsItemCircle" style="background-image:url('+notification.imageURL+');"></span>':'<span class="notificationsItemCircle"><img src="/build/mobile/images/icons/symbol.svg" alt="'+notification.headline+'" class="svg white"></span>',notificationDateTime=(notificationDate=notification.createdDate.split(" "))[1].split(":"),notificationDate=(notificationDate=notificationDate[0].split("-"))[2]+". "+notificationDate[1]+". "+notificationDate[0]+", "+notificationDateTime[0]+":"+notificationDateTime[1];notificationsUl.prepend('<li><div class="notificationsItem">'+notificationLink+'<div class="row flexAlignCenter"><div class="flex1"><div class="row flexNoWrap">'+notificationImg+'<span class="branchSearchable"><div class="flex flexAlignCenter flexJustifyLeft"><h4 class="notificationsItem__title m0">'+notification.headline+"</h4></div><p>"+notification.description+'</p></span></div></div></div><hr><div class="notificationsItemDate"><img src="/build/mobile/images/icons/clock.svg" alt="" class="svg darkGreyAlt"> '+notificationDate+"</div></div></li>")}notificationsUl.show(),svg(),$(".notifications").show(),2<notifications.length&&$(".notifications").mCustomScrollbar({scrollButtons:{enable:!0},theme:"light-thick",scrollbarPosition:"outside"}),$("#notifications .notificationsNumber").html(notifications.length),$(".notifications__title-count").html(notifications.length).addClass("notifications__title-count--active"),notifications.length<1?($("#notifications .notificationsNumber").hide(),$(".garage-menu__list-count.notificationsNumber").hide()):($("#notifications .notificationsNumber").show(),$(".garage-menu__list-count.notificationsNumber").show()),$(".notificationsNumber").addClass("animate")}else $(".notificationsEmpty").show()})}function aiBlock(){$(".ai-block__benefits").length&&$(".ai-block__benefits").slick({slidesToShow:3,slidesToScroll:3,arrows:!1,dots:!0,infinite:!1,variableWidth:!1})}function alerts(){$(".alertClose").on("click",function(){$(this).parents(".alert").fadeOut(animateSpeed)})}function articleSlider(){$(".article-slider").length&&($(".article-slider").on("init",function(){svg()}),$(".article-slider").slick({slideToScroll:1,slidesToShow:5,arrows:!0,center:!0,dots:!1,infinite:!0,initialSlide:-1,variableWidth:!0,prevArrow:'<button class="article-slider__btn article-slider__btn--prev"><img src="/build/desktop/images/icons/arrow-right-new.svg" class="article-slider__btn-icon svg"></button>',nextArrow:'<button class="article-slider__btn article-slider__btn--next"><img src="/build/desktop/images/icons/arrow-right-new.svg" class="article-slider__btn-icon svg"></button>'}))}function banner(icon,title,content,id,important,close,closeClass,autoHide){$(".banner").addClass("hide").fadeOut(2*animateSpeed),$('<div class="banner '+important+'Bg" data-id="'+id+'"><img src="/build/desktop/images/icons/'+icon+'.svg" class="bannerIcon white svg iconSmall"><span><h4>'+title+"</h4>"+content+"</span>"+(1==close?'<span class="bannerClose '+closeClass+'" data-id="'+id+'"><img src="/build/desktop/images/icons/close.svg" class="svg white"></span>':"")+"</div>").insertAfter("header"),svg(),autoHide&&setTimeout(function(){$('.banner[data-id="'+id+'"]').addClass("hide").fadeOut(2*animateSpeed)},2e3)}function bannerClose(){$(document).on("click",".bannerClose",function(){$(this).parents(".banner").addClass("hide").fadeOut(2*animateSpeed)})}function bookmark(){$(".bookmark .bookmarkList li").on("click",function(){$(this).parents(".bookmark").find(".bookmarkContent").hide().eq($(this).index()).fadeIn(animateSpeed),$(this).parents(".bookmarkList").find("li").removeClass("active"),$(this).addClass("active")}),$(".bookmark").each(function(){$(this).find(".bookmarkContent").eq($(this).find(".bookmarkList li.active").index()).show()})}function btnSubText(){
/*!
* Run a callback function after scrolling has stopped
* (c) 2017 Chris Ferdinandi, MIT License, https://gomakethings.com
* @param {Function} callback The function to run after scrolling
*/
var callback,isScrolling;(callback=function(){$(".infoBox .btnSubText").removeClass("animate"),setTimeout(function(){$(".pulse").removeClass("animate")},500)})&&"function"==typeof callback&&window.addEventListener("scroll",function(event){$(".infoBox .btnSubText").addClass("animate"),setTimeout(function(){$(".pulse").addClass("animate")},500),window.clearTimeout(isScrolling),isScrolling=setTimeout(function(){callback()},300)},!1)}function car(){var thisElement;$(document).on("mouseover",".card",function(){var item;$(this).find(".smoothScroll").length&&(item=$(this).find(".smoothScroll .smoothScrollInner"),autoscrollTimeout=setTimeout(function(){var smoothScrollPosition=item.scrollLeft(),smoothScrollInner=item.find(".smoothScrollItems").width();item.hasClass("autoscrolled")||(item.animate({scrollLeft:smoothScrollPosition+smoothScrollInner},5e3,"linear"),item.addClass("autoscrolled"))},500))}),$(".carInfo").length&&($(document).on("mouseenter",".card .carInfo .carInfoImg",function(){$(this).find("[data-src]").each(function(){$(this).attr("src",$(this).attr("data-src")).removeAttr("data-src")})}),$(".card:not(.load) .carInfo, .card:not(.load) .carFeatures, .card:not(.load) .carPrice").css("min-height",""),$(".card .carInfo").each(function(){$(this).css({height:"","min-width":"","max-width":""}),$(this).find("img").css("height",""),$(this).parents(".card").find(".carFeatures").css({width:"","max-width":""})}),$(".carPriceSliderItemAdded").hide(),$(".carPriceSliderItemAdded").show(),$(".card").each(function(){smoothScrollInitId("#"+$(this).find(".smoothScroll").attr("id")),$(this).find(".carFeaturesList").length&&92<$(this).find(".carFeaturesList").outerHeight()&&$(this).find(".carParagraph").addClass("carParagraph--three-line")}),thisElement=$("#carsMainContent"),setTimeout(function(){!$(".carPriceSlider .slider").length&&$(".carPriceSlider").find(".slick-list").length||$(".carPriceSlider").not(".slick-initialized").each(function(){$(this).slick({slidesToShow:1,slidesToScroll:1,infinite:!0,dots:!0,prevArrow:!1,nextArrow:!1,autoplay:!0,autoplaySpeed:6e3})}),!$(".carInfoImg.slider").length&&$(".carInfoImg").find(".slick-list").length||$(".carInfoImg").not(".slick-initialized").each(function(){(thisElement=$(this)).on("init",function(){thisElement.css("opacity",1)}),$(this).slick({infinite:!0,slidesToShow:1,slidesToScroll:1,dots:!1,fade:!0,cssEase:"linear"})}),$(".carsGrid").css("opacity",1)},0))}$(document).ready(function(){adminnotifications()}),$(document).ready(function(){aiBlock()}),$(document).ready(function(){alerts()}),$(document).ready(function(){articleSlider()}),$(document).ready(function(){bannerClose()}),$(document).ready(function(){bookmark()}),$(document).ready(function(){btnSubText()}),$(document).ready(function(){setTimeout(function(){car()})}),$(()=>{navigationInit(),navigationUpdate();let biggestOrder=0,orderList=[];$(".carCard__price-item").each(function(){biggestOrder=biggestOrder=$(this).data("order")>biggestOrder?$(this).data("order"):biggestOrder,orderList.push(biggestOrder)}),(orderList.every((val,i,arr)=>val===arr[0])?$(".carCard__price-item:not(:last-child)"):$('.carCard__price-item:not([data-order="'+biggestOrder+'"])')).addClass("carCard__price-item--border")}),$(document).on("scroll",function(){navigationUpdate(),fixedHeader()});let navigation,navigationList,navigationTotalNumber,navigationCurrentNumber,navigationPrevArrow,navigationNextArrow,anchors,anchorCount=0,activeIndex=0;function navigationInit(){$(".carCard__navigation").length&&(navigation=$(".carCard__navigation"),navigationList=$(".carCard__navigationList"),navigationTotalNumber=$(".carCard__navigationNumbers-total"),navigationCurrentNumber=$(".carCard__navigationNumbers-current"),navigationPrevArrow=$(".carCard__navigationArrows-prev"),navigationNextArrow=$(".carCard__navigationArrows-next"),(anchors=$(".carCard__navigationContent h2[data-anchor]")).each(function(){anchorCount++,navigationList.append('<li data-anchor="'+$(this).attr("id")+'"><a href="#'+$(this).attr("id")+'">'+$(this).text()+"</a></li>")}),navigationList.find("li").eq(0).addClass("active"),navigationTotalNumber.text("0"+anchorCount),$(".carCard__navigationArrows > *").click(function(){$(this).hasClass("carCard__navigationArrows-prev")&&navigationList.find("li").eq(activeIndex-2).find("a").click(),$(this).hasClass("carCard__navigationArrows-next")&&navigationList.find("li").eq(activeIndex).find("a").click()}))}function navigationUpdate(){anchors&&(activeIndex=0,anchors.each(function(){$(this).offset().top<=$(document).scrollTop()+$(window).height()/2?(activeIndex++,navigationList.find("li[data-anchor]").removeClass("active"),navigationList.find('li[data-anchor="'+$(this).attr("id")+'"]').addClass("active")):1<=activeIndex&&navigationList.find('li[data-anchor="'+$(this).attr("id")+'"]').removeClass("active")}),activeIndex<anchorCount&&navigationNextArrow.addClass("active"),1<activeIndex&&navigationPrevArrow.addClass("active"),1==activeIndex&&navigationPrevArrow.removeClass("active"),activeIndex==anchorCount&&navigationNextArrow.removeClass("active"),1<=activeIndex)&&navigationCurrentNumber.text("0"+activeIndex)}function fixedHeader(){$(".carCard__header").length&&($(document).scrollTop()>$(".carCard__head").offset().top+$(".carCard__head").height()-100?$(".carCard__header").addClass("carCard__header--active"):$(".carCard__header").removeClass("carCard__header--active"))}function cebiaBox(){"closed"==$.cookie("cebia-box")?$(".cebia-box__banner").addClass("cebia-box__banner--active"):$(".cebia-box__main").addClass("cebia-box__main--active"),$(document).on("click",".cebia-box .cebia-box__close",function(){$(".cebia-box__main").removeClass("cebia-box__main--active"),$(".cebia-box__banner").addClass("cebia-box__banner--active"),$.cookie("cebia-box","closed")}),$(document).on("click",".cebia-box .cebia-box__banner",function(){$(".cebia-box__main").addClass("cebia-box__main--active"),$(".cebia-box__banner").removeClass("cebia-box__banner--active"),$.cookie("cebia-box","opened")})}function changingText(){$("[data-changing-text-list]").each(function(){var dataAttr=$(this).attr("data-changing-text-list");$(this).find("li").each(function(i){$(this).attr("data-changing-text-list-li",i+1)}),$('[data-changing-text-list-anchor="'+dataAttr+'"] > *').each(function(i){$(this).attr("data-changing-text-anchor-li",i+1)}),$('[data-changing-text-list-anchor="'+dataAttr+'"] > *').on("mouseenter",function(){var index=$(this).attr("data-changing-text-anchor-li"),text=$('[data-changing-text-list="'+dataAttr+'"]').find('li[data-changing-text-list-li="'+index+'"]').text();$('[data-changing-text-title="'+dataAttr+'"]').html(text),"true"==$('[data-changing-text-list="'+dataAttr+'"]').find('li[data-changing-text-list-li="'+index+'"]').attr("data-changing-text-hide-description")?$('[data-changing-text-description="'+dataAttr+'"]').hide():$('[data-changing-text-description="'+dataAttr+'"]').show()})})}function checkbox(){$(".checkboxWrap input").change(function(){$(this).is('input[type="radio"]')?($(this).parents(".checkboxWrap").parent().find(".checkboxWrap").removeClass("active"),$(this).parents(".checkboxWrap").addClass("active")):$(this).parents(".checkboxWrap").toggleClass("active")}),$(".ifUnchecked").each(function(){$(this).parents(".ifCheckedUnchecked").find("input").is(":checked")?$(this).hide():$(this).show()}),$(".ifChecked").each(function(){$(this).parents(".ifCheckedUnchecked").find("input").is(":checked")?$(this).show():$(this).hide()}),$(".checkbox input").on("change",function(){var checkboxEl=$(this).parents(".checkbox");$(this).is(":checked")?($(this).parents(".ifCheckedUnchecked").find(".ifUnchecked").hide(),checkboxEl&&checkboxEl.is("[data-checkbox-disable-message]")&&checkboxEl.is("[data-checkbox-active-message]")&&checkboxEl.find(".checkbox__message").html(checkboxEl.attr("data-checkbox-active-message"))):($(this).parents(".ifCheckedUnchecked").find(".ifUnchecked").show(),checkboxEl&&checkboxEl.is("[data-checkbox-disable-message]")&&checkboxEl.is("[data-checkbox-active-message]")&&checkboxEl.find(".checkbox__message").html(checkboxEl.attr("data-checkbox-disable-message"))),$(this).parents(".checkbox").find("input").is(":checked")?$(this).parents(".ifCheckedUnchecked").find(".ifChecked").show():$(this).parents(".ifCheckedUnchecked").find(".ifChecked").hide()})}function cookies(){function cookiesCheck(){setTimeout(function(){window.location.hostname.split(".").slice(-2).join(".");("1"==$.cookie("ah-cookie-functional")?($('[data-cookies-functional="false"]').hide(),$('[data-cookies-functional="true"]')):($('[data-cookies-functional="true"]').hide(),$('[data-cookies-functional="false"]'))).show()},500)}cookiesCheck(),$(document).on("click",'[data-cookie-save="all"]',function(){cookiesCheck()}),$(document).on("click",'[data-cookie-save="custom"]',function(){$('[data-cookie-switch-api="functional"]').is(":checked")&&cookiesCheck()}),window.addEventListener("message",function(event){event.data.cookiebarBtnClicked&&cookiesCheck()},!1)}function countdown(){$("[data-countdown]:not([data-countdown-active])").each(function(){for(var thisElement=$(this),secs=thisElement.attr("data-countdown-time"),currentDays=0,currentHours=0,currentMinutes=0,currentSeconds=0,labelsKeys=["days-label1","days-label2","days-label5","hours-label1","hours-label2","hours-label5","minutes-label1","minutes-label2","minutes-label5","seconds-label1","seconds-label2","seconds-label5"],labels={},i=0;i<labelsKeys.length;i++){var value=thisElement.find("[data-countdown-"+labelsKeys[i]+"]");labels[labelsKeys[i]]=value?value.attr("data-countdown-"+labelsKeys[i]):""}function countdownDecrement(){secs=1<secs?secs-1:0,currentDays=Math.floor(secs/86400),currentHours=Math.floor(secs/60/60)%24,currentMinutes=Math.floor(secs/60)%60,currentSeconds=secs%60,thisElement.find("[data-countdown-days-label]").text(5<currentDays||0==currentDays?labels["days-label5"]:1<currentDays?labels["days-label2"]:labels["days-label1"]),thisElement.find("[data-countdown-hours-label]").text(5<currentHours||0==currentHours?labels["hours-label5"]:1<currentHours?labels["hours-label2"]:labels["hours-label1"]),thisElement.find("[data-countdown-minutes-label]").text(5<currentMinutes||0==currentMinutes?labels["minutes-label5"]:1<currentMinutes?labels["minutes-label2"]:labels["minutes-label1"]),thisElement.find("[data-countdown-seconds-label]").text(5<currentSeconds||0==currentSeconds?labels["seconds-label5"]:1<currentSeconds?labels["seconds-label2"]:labels["seconds-label1"]),currentHours<=9&&(currentHours="0"+currentHours),currentMinutes<=9&&(currentMinutes="0"+currentMinutes),currentSeconds<=9&&(currentSeconds="0"+currentSeconds),thisElement.find("[data-countdown-days]").text(currentDays),thisElement.find("[data-countdown-hours]").text(currentHours),thisElement.find("[data-countdown-minutes]").text(currentMinutes),thisElement.find("[data-countdown-seconds]").text(currentSeconds)}$(this).attr("data-countdown-active",!0),countdownDecrement(),setInterval(function(){countdownDecrement()},1e3)})}function dragAndDrop(){var newPosition,thisElement,oldPosition,step;
// var scrollMoveVar;
function dragOrientation(compare){return $(compare).parents('.draggableContainer[drag-orientation="horizontal"]').length?"horizontal":$(compare).parents('.draggableContainer[drag-orientation="vertical"]').length?"vertical":void 0}$('.draggableContainer[drag-orientation="horizontal"]').length&&(step=$("[draggable]").width()),$('.draggableContainer[drag-orientation="vertical"]').length&&(step=$("[draggable]").outerHeight(!0)),$(document).on("mousedown",function(e){function mousePosition(cursorPosition,draggedItem,offset){"horizontal"==dragOrientation(draggedItem)&&draggedItem.css("left",cursorPosition-offset-actualPosition-draggedItem.outerWidth()+"px"),"vertical"==dragOrientation(draggedItem)&&draggedItem.css("top",cursorPosition-offset-$(".draggableContainer").offset().top-10+"px")}function mouseMove(e){var move;$(".header").css("pointer-events","none"),"horizontal"==dragOrientation($(".dragging"))&&mousePosition(move=e.pageX,$(".dragging"),relX),"vertical"==dragOrientation($(".dragging"))&&mousePosition(move=e.pageY,$(".dragging"),relY),
// if (scrollMoveVar) {
// clearInterval(scrollMoveVar);
// }
// if (e.clientY < 275) {
// scrollMoveVar = setInterval(scrollMove, 10);
// }
newPosition=(move-actualPosition)/step,newPosition=Math.floor(newPosition),oldPosition!=newPosition&&$(".clone").insertBefore($("[draggable]:not(.dragging)").eq(newPosition-1)),oldPosition=newPosition}var actualPosition,relX,relY;1==e.which&&(
//set timeout thah zou can click trought href before drag
actualPosition=$(".garageCompareSlider").length?$(".garageCompareSlider").position().left:0,!$(e.target).parents("[draggable]").length||$(e.target).parents(".dragIgnor").length||$(e.target).hasClass("dragIgnor")||(thisElement=$(e.target).parents("[draggable]"),oldPosition=thisElement.index(),relX=e.pageX-thisElement.offset().left,relY=e.pageY-thisElement.offset().top,thisElement.clone().insertAfter(thisElement).addClass("clone"),thisElement.addClass("dragging"),$(".draggableContainer").append('<span class="dragHeel" draggable></span>'),"horizontal"==dragOrientation($(e.target))&&mousePosition(e.pageX,thisElement,relX),"vertical"==dragOrientation($(e.target))&&mousePosition(e.pageY,thisElement,relY),document.addEventListener("mousemove",mouseMove),$(".draggableContainer").on("mouseup",function(e){$(".header").css("pointer-events",""),document.removeEventListener("mousemove",mouseMove),thisElement.removeClass("dragging").insertBefore($(".clone")),
// if (scrollMoveVar) {
// clearInterval(scrollMoveVar);
// }
$(".clone").remove(),$(".dragHeel").remove(),garageNumbers()})),$("[draggable]").on("dragstart",function(e){
// e.preventDefault();
return $(".header").css("pointer-events",""),!1}),$(".draggableContainer").mouseleave(function(){$(".dragging").length&&(document.removeEventListener("mousemove",mouseMove),$(".header").css("pointer-events",""),
// if (scrollMoveVar) {
// clearInterval(scrollMoveVar);
// }
thisElement.removeClass("dragging"),$(".clone").remove(),$(".dragHeel").remove())}))})}
// function scrollMove() {
// window.scrollTo(0, document.documentElement.scrollTop - 5);
// }
// $(document).ready(function() {
// electroCalculator();
// });
//
// function electroCalculator() {
// $('.box-inputs__item-input[name="electro-calculator-location"]').on('change', function() {
// var value = $(this).val();
// var minHeight = $('.electro-calculator__main').outerHeight();
// $('.electro-calculator__main').css('min-height', minHeight);
// if (value == 'home-public' || value == 'public') {
// $('.electro-calculator__message').addClass('electro-calculator__message--active');
// } else {
// $('.electro-calculator__message').removeClass('electro-calculator__message--active');
// }
//
// if (value == 'public') {
// $('#electro-calculator-kwh-inputs').hide();
// } else {
// $('#electro-calculator-kwh-inputs').show();
// }
// });
//
// $('.box-inputs__item-input[name="electro-calculator-kwh"]').on('change', function() {
// var value = $(this).val();
// $('#electro-calculator-kwh-message').removeClass('electro-calculator__sidebar-list-item--hidden');
// $('#electro-calculator-kwh-value').html(value);
// });
// }
function exponeaTopBanner(){var exponeaBannerHeight=0,topPosition=($("#exponea-banner-top, .exponea-banner-top, .topbanner").each(function(){exponeaBannerHeight=$(this).outerHeight()>exponeaBannerHeight?$(this).outerHeight():exponeaBannerHeight}),document.documentElement.scrollTop||document.body.scrollTop),topPosition=exponeaBannerHeight-topPosition;return $(".header, .banner").css("margin-top",0<topPosition?topPosition:0),exponeaBannerHeight}function showExponeaTopBanner(){var exponeaBannerHeight;($("#exponea-banner-top").length||$(".exponea-banner-top").length||$(".topbanner").length)&&(exponeaBannerHeight=exponeaTopBanner(),$("body").css("padding-top",exponeaBannerHeight))}function exponeaTopBannerScroll(){$(window).on("scroll",function(){($("#exponea-banner-top").length||$(".exponea-banner-top").length||$(".topbanner").length)&&exponeaTopBanner()})}function filter(){function setFilterMinHeight(){$("#carsMainContent").length&&$(".filter").length&&$("#carsMainContent").css("min-height",$(".filter").outerHeight()+50)}$(".filterBtn").length&&($(".filterHead").on("click",function(){$(".carsFullSize").toggleClass("carsFullSizeOpenFilter"),$(".filterBtn .filterBtnWrap").removeClass("fixed"),$(this).parents(".filter").toggleClass("active");var thisElement=$(this);setTimeout(function(){thisElement.parents(".filter").toggleClass("done")},animateSpeed),$(".filterContent").slideToggle(animateSpeed).toggleClass("active"),$(this).parents(".filter").hasClass("active")&&($(window).scrollTop()+$(window).height()<$(".filterBtn").offset().top+$(".filterBtn").outerHeight()?($(".filterBtn .filterBtnWrap").hasClass("fixed")||$(".filterBtn .filterBtnWrap").css("opacity",0).animate({opacity:1},animateSpeed),$(".filterBtn .filterBtnWrap").addClass("fixed")):$(".filterBtn .filterBtnWrap").removeClass("fixed")),($(".carInfoImg.slider").length||$(".carInfoImg").find(".slick-list").length)&&$(".carInfoImg.slick-initialized").each(function(){$(this).slick("unslick")}),$(".carInfoImg").css("opacity",0),($(".carPriceSlider .slider").length||$(".carPriceSlider").find(".slick-list").length)&&$(".carPriceSlider.slick-initialized").each(function(){$(this).slick("unslick")}),$(".carsGrid").css("opacity",1)}),$(window).on("scroll",function(){var topPosition=document.documentElement.scrollTop||document.body.scrollTop;$(".filterBtnWrap").offset().top+$(".filterBtnWrap").outerHeight()-75-60<=topPosition?($(".showAfterFilter").addClass("active"),$(".hideAfterFilter").hide()):($(".showAfterFilter").removeClass("active"),$(".hideAfterFilter").show())})),setTimeout(function(){setFilterMinHeight(),setTimeout(function(){setFilterMinHeight()},2e3)},300),$(document).on("click",".showHideAnchor",function(){setTimeout(function(){setFilterMinHeight()},300)}),$(document).on("change",'[name="car_filter[fuelType]"]',function(){setTimeout(function(){setFilterMinHeight(),setTimeout(function(){setFilterMinHeight()},2e3)},300)})}function fixedRecommander(){var cookiesCarViewed,domain=window.location.href;domain=1<(domain=(domain=domain.split("/")[2]).split(".")).length?"."+domain[domain.length-2]+"."+domain[domain.length-1]:domain[domain.length-1],($(".fixed-recommander").length||$("#declineClose").length)&&"1"==$.cookie("ah-cookie-functional")&&(cookiesCarViewed=(cookiesCarViewed=$.cookie("viewed-car-card"))?parseInt(cookiesCarViewed):0)<3&&(cookiesCarViewed++,$.cookie("viewed-car-card",cookiesCarViewed,{domain:domain,expires:30})),$(".fixed-recommander").length&&(fixedRecommanderInit(),"1"==$.cookie("ah-cookie-functional")&&(fixedRecommanderScroll(),$(window).on("scroll",function(){fixedRecommanderScroll()})),$(document).on("click",".fixed-recommander__close",function(){$(".fixed-recommander").removeClass("fixed-recommander--active")}),$(document).on("click",".fixed-recommander__btn",function(){$(".fixed-recommander").addClass("fixed-recommander--active")}))}function fixedRecommanderScroll(){(document.documentElement.scrollTop||document.body.scrollTop)+$(window).height()<=$("#fixed-recommander__anchor").offset().top?$(".fixed-recommander").addClass("fixed-recommander--hidden"):$(".fixed-recommander").removeClass("fixed-recommander--hidden")}function fixedRecommanderInit(){$(".fixed-recommander").addClass("fixed-recommander--active"),$(".fixed-recommander__slider:not(.slider-initialized)").length&&$(".fixed-recommander__slider").slick({slideToScroll:1,arrows:!0,dots:!1,infinite:!1,variableWidth:!0,prevArrow:'<button class="fixed-recommander__slider-btn fixed-recommander__slider-btn--prev"></button>',nextArrow:'<button class="fixed-recommander__slider-btn fixed-recommander__slider-btn--next"></button>'})}function fixedbar(){var topPosition,topnavHeight,topnavDiv=$(".topnav"),header=$(".header:not(.static)"),fixedbarDiv=$(".fixedBar"),windowHeight=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;function fixedbarResponsive(){windowHeight=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;var priceBoxElement=$(".fixedBar .infoBox").eq(0),space=!(priceBoxElement.offset().top+priceBoxElement.outerHeight()>windowHeight)||-69<(space=windowHeight-(priceBoxElement.offset().top+priceBoxElement.outerHeight())-69)?-69:space<-120?-120:space;$("#carCardHeadCampaign").length&&(space=space-$("#carCardHeadCampaign").outerHeight()+9),$(".fixedBar").css("margin-top",space)}function fixedbarFunction(){$(".fixedBar").each(function(){var fixedbarStart;$(this).parents("section").hasClass("active")&&(topPosition=document.documentElement.scrollTop||document.body.scrollTop,fixedbarStart=$(this).parents(".sidebar").offset().top-17-(header.length?header.outerHeight():0),$(this).parents(".sidebar").offset().top+$(this).parents(".sidebar").outerHeight(!0)-$(this).outerHeight(!0)-topnavHeight<=topPosition?($(this).removeClass("fixed").addClass("absolute"),$(".fixedBarHide").hide(),$(".fixedBarShow").show(),(topnavDiv.length||header.length)&&$(this).css("top","auto"),$(this).outerHeight(!0)+topnavHeight>window.innerHeight?$(this).addClass("smallScroll"):$(this).removeClass("smallScroll"),window.fixedbarChangePosition=1):fixedbarStart<=topPosition?1==window.fixedbarChangePosition&&($(this).removeClass("absolute").addClass("fixed"),$(".fixedBarHide").slideUp(animateSpeed),$(".fixedBarShow").slideDown(animateSpeed),(topnavDiv.length||header.length)&&(fixedbarStart=0,$(".goog-te-banner-frame").length&&"none"!=$(".skiptranslate").css("display")&&(fixedbarStart=parseInt($(".goog-te-banner-frame").outerHeight())),$(this).css("top",parseInt(topnavHeight)+fixedbarStart)),$(this).outerHeight(!0)+topnavHeight>window.innerHeight&&$(this).addClass("smallScroll"),window.fixedbarChangePosition=0):($(this).removeClass("absolute fixed"),$(".fixedBarHide").slideDown(animateSpeed),$(".fixedBarShow").slideUp(animateSpeed),(topnavDiv.length||header.length)&&$(this).css("top","auto"),$(this).outerHeight(!0)+topnavHeight>window.innerHeight?$(this).addClass("smallScroll"):$(this).removeClass("smallScroll"),window.fixedbarChangePosition=1))})}fixedbarDiv.length&&(topPosition=document.documentElement.scrollTop||document.body.scrollTop,topnavHeight=topnavDiv.length?topnavDiv.outerHeight()+17:17,topnavHeight=header.length?topnavHeight+header.outerHeight():topnavHeight,window.fixedbarChangePosition=1,fixedbarFunction(),$(window).on("scroll",function(){fixedbarFunction()}),setTimeout(function(){fixedbarResponsive()},300),$(window).on("resize",function(){fixedbarResponsive()}))}function gallery(){$(".galleryOpen").on("click",function(){$(".gallery").show(),$("body").addClass("disableOverflow"),$(window).scrollTop(0),($(this).hasClass("galleryOpenVideo")?$(".gallery .galleryBar .tabSwitch li.galleryBarVideo"):$(this).hasClass("galleryOpen360")?$(".gallery .galleryBar .tabSwitch li.galleryBar360"):$(this).hasClass("galleryOpenLifestyle")?$(".gallery .galleryBar .tabSwitch li.galleryBarLifestyle"):$(".gallery .galleryBar .tabSwitch li:first-of-type")).click()}),$(".galleryClose, .gallery .galleryContent figure").on("click",function(){$(".gallery").hide(),$("body").removeClass("disableOverflow")}),$(".tabSwitch li").on("click",function(){$(this).hasClass("galleryBar360")||$(this).hasClass("galleryBarVideo")?$(".galleryBar").addClass("galleryBarWithSidebar"):$(".galleryBar").removeClass("galleryBarWithSidebar")})}function garageLp(){function garageLpHeroImages(){var newPosition=80<(newPosition=(document.documentElement.scrollTop||document.body.scrollTop)/16)?80:newPosition;$(".garage-lp__hero-image:nth-of-type(even)").css("transform","translateY("+-newPosition+"px)"),$(".garage-lp__hero-image:nth-of-type(odd)").css("transform","translateY("+newPosition+"px)")}function garageLpMain(){var newPosition=40<(newPosition=((document.documentElement.scrollTop||document.body.scrollTop)+$(window).height()/2-$(".garage-lp__main").offset().top)/28)?40:newPosition<-40?-40:newPosition;$(".garage-lp__main-mobile-image").css("transform","translateY("+newPosition+"px)"),$(".garage-lp__main-laptop-image").css("transform","translateY("+-newPosition+"px)")}$(".garage-lp").length&&(garageLpHeroImages(),garageLpMain(),$(window).on("scroll",function(){garageLpHeroImages(),garageLpMain()}))}function garageFixedHead(){var headerHeight,offset;$(".garageActiveCar.compareCard").length&&(headerHeight=$("body").hasClass("removeHeaderAndFooter")?0:$(".header").outerHeight(),offset=$(".garageActiveCar.compareCard .head").outerHeight()-headerHeight-$(".garageActiveCar.compareCard .head .makeModel").outerHeight(),$(window).on("scroll",function(){$(this).scrollTop()>$(".garageActiveCar.compareCard").offset().top+offset&&$(this).scrollTop()<$(".garage-list").outerHeight()-offset?($(".garageActiveCar.compareCard .head .makeModel").addClass("fixed"),$(".compareCardPhone").addClass("fixed")):($(".garageActiveCar.compareCard .head .makeModel").removeClass("fixed"),$(".compareCardPhone").removeClass("fixed"))}))}function garageCheckSettings(){$('[data-page="personalData"][data-page-active="true"]').length&&setTimeout(function(){$('[data-page="personalData"][data-page-active="true"] input, [data-page="personalData"][data-page-active="true"] select').each(function(){"checkbox"==$(this).attr("type")?$(this).attr("data-default-value",$(this).is(":checked")):$(this).attr("data-default-value",$(this).val())})},250),$("a, [data-page-anchor]").on("click",function(e){var showConfirm=!1;if($('[data-page="personalData"][data-page-active="true"]').length&&($('[data-page="personalData"][data-page-active="true"] input, [data-page="personalData"][data-page-active="true"] select').each(function(){"checkbox"==$(this).attr("type")?$(this).attr("data-default-value")!=String($(this).is(":checked"))&&(showConfirm=!0):$(this).attr("data-default-value")!=$(this).val()&&(showConfirm=!0)}),defaultVarConfirm=!0,showConfirm)&&!(defaultVarConfirm=confirm($('[data-page="personalData"][data-page-active="true"]').attr("data-default-value-confirm"))))return e.preventDefault(),!1}),$('[name="user_profile"]').on("submit",function(){$('[data-page="personalData"][data-page-active="true"]').length&&setTimeout(function(){$('[data-page="personalData"][data-page-active="true"] input, [data-page="personalData"][data-page-active="true"] select').each(function(){"checkbox"==$(this).attr("type")?$(this).attr("data-default-value",$(this).is(":checked")):$(this).attr("data-default-value",$(this).val())})},250)})}function garageGetSavedCars(){var garageCars=[];return $("#garageSavedCars .garageActiveCar.active").each(function(){garageCars.push(parseInt($(this).attr("data-car-id")))}),garageCars}function garageGetSavedSearches(){var garageFilters=[];return $("#garageSavedSearches .garageActiveCar").each(function(){garageFilters.push(parseInt($(this).attr("data-filter-id")))}),garageFilters}function garageAnimate(){$("#garageSavedCars").length&&2<$(".garageActiveCar").length&&"true"!=$.cookie("garageAnimate")&&($.cookie("garageAnimate","true",{path:"/",domain:window.location.hostname}),setTimeout(function(){$("body").addClass("garageAnimate").addClass("garageAnimateInit"),$(".garageActiveCar").eq(1).addClass("garageAnimateCar"),setTimeout(function(){$("body").removeClass("garageAnimateInit"),setTimeout(function(){$("body").addClass("garageAnimateOut"),setTimeout(function(){$("body").removeClass("garageAnimate").removeClass("garageAnimateOut"),$(".garageActiveCar").eq(1).removeClass("garageAnimateCar")},1e3)},4e3)},1e3)},3e3))}function garageCompareBest(){var garageCompare={};$("[data-garage-compare]").each(function(){var compareName=$(this).attr("data-garage-compare");if(null==garageCompare[compareName]&&(garageCompare[compareName]=[]),$(this).attr("data-garage-compare-highest")){var attrValue=parseInt($(this).attr("data-garage-compare-highest"));0==garageCompare[compareName].length||attrValue==garageCompare[compareName][0].attr("data-garage-compare-highest")?garageCompare[compareName].push($(this)):attrValue>garageCompare[compareName][0].attr("data-garage-compare-highest")&&(garageCompare[compareName]=[],garageCompare[compareName].push($(this)))}else if($(this).attr("data-garage-compare-lowest")){let attrValue=parseInt($(this).attr("data-garage-compare-lowest"));0==garageCompare[compareName].length||attrValue==garageCompare[compareName][0].attr("data-garage-compare-lowest")?garageCompare[compareName].push($(this)):attrValue<garageCompare[compareName][0].attr("data-garage-compare-lowest")&&(garageCompare[compareName]=[],garageCompare[compareName].push($(this)))}}),$("[data-garage-compare]").each(function(){var compareName=$(this).attr("data-garage-compare"),newHtml='<span class="compareBest">'+$(this).html()+'</span> <span class="tooltip" data-tooltip="'+$("[data-garage-compare-message]").attr("data-garage-compare-message")+'"></span>';$(this).attr("data-garage-compare-highest")?$(this).attr("data-garage-compare-highest")==garageCompare[compareName][0].attr("data-garage-compare-highest")&&$(this).html(newHtml):$(this).attr("data-garage-compare-lowest")&&$(this).attr("data-garage-compare-lowest")==garageCompare[compareName][0].attr("data-garage-compare-lowest")&&$(this).html(newHtml)}),svg()}function garageCompareSliderControls(){var endOfSlider,arrowHeight,actualPosition=$(".garageCompareSlider").position().left,step=($(".compareCard").length,$(".garageCompareSliderWrapper").width(),$(document).on("click",function(e){endOfSlider=$(".garageCompareSliderWrapper").width()+-actualPosition,$(e.target).hasClass("garageCompareSliderPrev")&&actualPosition<0&&($(".garageCompareSlider").css("left",actualPosition+step),actualPosition+=step),$(e.target).hasClass("garageCompareSliderNext")&&endOfSlider<$(".garageCompareSlider").width()&&(-actualPosition+step>$(".garageCompareSlider").width()-$(".garageCompareSliderWrapper").width()?$(".garageCompareSlider").css("left",-($(".garageCompareSlider").width()-$(".garageCompareSliderWrapper").width())):$(".garageCompareSlider").css("left",actualPosition-step),actualPosition-=step)}),$(".compareCard").width());$(".garageCompareSlider").width()>$(".garageCompareSliderWrapper").width()&&$(".garageCompareCars").append('<span class="garageCompareSliderArrow garageCompareSliderPrev"></span><span class="garageCompareSliderArrow garageCompareSliderNext"></span>'),setTimeout(function(){arrowHeight=$(".garageCompareCars > .garageCompareSliderPrev").height(),$(".garageCompareCars > .garageCompareSliderArrow").each(function(){$(window).scrollTop()+$("header").height()>$(".garageCompareSlider").offset().top?$(this).css("top",$(window).scrollTop()+$(window).height()/2):$(window).scrollTop()+$("header").height()>$(".garageCompareSlider").offset().top+$(".garageCompareSlider").height()-$(window).height()/2&&$(this).css("top",$(".garageCompareSlider").offset().top+$(".garageCompareSlider").height()-$(window).height()/2)}),$(document).scroll(function(){var x;x=$(window).scrollTop(),$(".garageCompareCars > .garageCompareSliderArrow").each(function(){$(window).scrollTop()+$("header").height()>$(".garageCompareSlider").offset().top&&$(window).scrollTop()<$(".garageCompareSlider").height()-$(".garageCompareSlider").offset().top-($(window).height()/2-arrowHeight/2)?$(this).css("top",$(window).height()/2-arrowHeight/2-$(".garageCompareSlider").offset().top+x):$(window).scrollTop()<$(".garageCompareSlider").offset().top&&$(this).css("top","444px")})})},500)}function garageMenuLine(){$(".garageMenu").append('<span class="menuLine"></span>');var activeElement=$(".garageHeader .menu li.active");function getPosition(hoverElement){$(".garageHeader .menu li").each(function(){var thisElement=hoverElement.find("a");$(this).hasClass("active")&&setTimeout(function(){$(".garageHeader .menuLine").css({left:thisElement.offset().left+"px",width:thisElement.outerWidth()},100)})})}$(".garageHeader .menu li").mouseenter(function(){$(".garageHeader .menu li.active").removeClass("active"),$(this).addClass("active"),getPosition($(this))}),$(".garageHeader .menu").mouseleave(function(){$(".garageHeader .menu li.active").removeClass("active"),$(activeElement).addClass("active"),getPosition(activeElement)}),setTimeout(function(){getPosition($(".garageHeader .menu li.active"))},850)}function garageNumbers(){$(".carInfoNumber").length&&$(".garageActiveCar").each(function(index){var thisElement=$(this).find(".carInfoNumber");thisElement.html(index+=1),1==index?thisElement.addClass("gold").removeClass("silver").removeClass("bronze"):2==index?thisElement.addClass("silver").removeClass("gold").removeClass("bronze"):3==index?thisElement.addClass("bronze").removeClass("gold").removeClass("silver"):thisElement.removeClass("gold").removeClass("silver").removeClass("bronze")})}function garageInit(){$(".garageCompareTable").length&&$(".compareCard:not(.garageActiveCar) .garageCompareTable").each(function(i){$(this).find("tr").each(function(y){var thisElement=$(this);$(".compareCard.garageActiveCar").each(function(){$(this).find(".garageCompareTable").eq(i).find("tr").eq(y).find("td").css("height",thisElement.outerHeight())})})}),garageNumbers(),setTimeout(function(){$(".garageActiveCar .smoothScroll .arrow").addClass("dragIgnor")},1);
// wrapping each ccustomer code number
var code=(code=$(".garageMenu .code").text()).split("");$(".garageMenu .code").html("");for(var thisCard,i=0;i<code.length;i++)$(".garageMenu .code").append("<span>"+code[i]+"</span>");
// customer code hover submenu+overlay
$(".customerCode").hover(function(){$(".garageHeader .overlay").show()},function(){$(".garageHeader .overlay").hide()}),
// setting number of cars
$(".savedCars strong").text($(".garageActiveCar:not(.sold)").length),$(".addNote").on("click",function(e){var prevnote=(thisCard=$(this).parents(".card")).find(".note span").text();$("#note textarea").val(prevnote),$("#note").on("submit",function(){var note=$(this).find("textarea").val();""==note?thisCard.find(".carFeatures .note").hide().removeClass("filled").find("span").text(""):thisCard.find(".carFeatures .note").show().addClass("filled").find("span").text(note)})}),$(".garage-menu-input").change(function(){var messageEl=$(this).parents(".checkbox").find("[data-select-all-translate]"),selectAll=messageEl.attr("data-select-all-translate"),removeAll=messageEl.attr("data-remove-all-translate");$(".garage-menu-input:checked").length?($(".garageActiveCar").addClass("active").find(".carCheckbox").prop("checked",!0),garageDisableMenuBtns("enable"),updateSelectedCars(),messageEl.text(removeAll)):($(".garageActiveCar").removeClass("active").find(".carCheckbox").prop("checked",!1),garageDisableMenuBtns("disable"),updateSelectedCars(),messageEl.text(selectAll))}),$(".carCheckbox").change(function(){var checked=$(".garageActiveCar:not(.sold)").length;1==$(this).prop("checked")?$(this).parents(".garageActiveCar").addClass("active"):$(this).parents(".garageActiveCar").removeClass("active"),$(".garageActiveCar").each(function(){$(this).hasClass("active")?checked++:checked--}),garageDisableMenuBtns(checked<=0?"disable":"enable"),updateSelectedCars(),updateSelectAll()}),
// Send, Print, Delete Btn controls
$(".sendSelected, .printSelected, .deleteSelected").on("click",function(e){var selected=$(".garageActiveCar .carCheckbox:checked").parents(".garageActiveCar");$(e.target).hasClass("sendSelected"),$(e.target).hasClass("printSelected")&&window.print(),$(e.target).hasClass("deleteSelected")&&($(".garageActiveCar .carCheckbox:checked").length?(selected.addClass("deleted").slideUp(animateSpeed),setTimeout(function(){selected.remove(),updateSelectedCars()},300)):($(".garageActiveCar").addClass("deleted").slideUp(animateSpeed),setTimeout(function(){$(".garageActiveCar").remove(),updateSelectedCars()},300)))})}function updateFiltrCars(){var cars=$(".garageActiveCar[data-filter-id]").length,messageSavedEl=$(".savedCars .savedFiltersWording"),messageSaved=1==cars?messageSavedEl.attr("data-saved-filter-wording1"):1<cars&&cars<5?messageSavedEl.attr("data-saved-filter-wording2"):messageSavedEl.attr("data-saved-filter-wording3"),messageSavedEl=(messageSavedEl.text(messageSaved),$(".savedCars .savedFiltersFilterWording")),messageSaved=1==cars?messageSavedEl.attr("data-filter-wording1"):1<cars&&cars<5?messageSavedEl.attr("data-filter-wording2"):messageSavedEl.attr("data-filter-wording3");messageSavedEl.text(messageSaved)}function updateGarageCars(){var cars=$(".garage-list__car").length,messageSavedEl=$(".savedCars .savedCarsWording"),messageSaved=1==cars?messageSavedEl.attr("data-saved-wording1"):1<cars&&cars<5?messageSavedEl.attr("data-saved-wording2"):messageSavedEl.attr("data-saved-wording3"),messageSavedEl=(messageSavedEl.text(messageSaved),$(".savedCars .savedCarsCarWording")),messageSaved=1==cars?messageSavedEl.attr("data-car-wording1"):1<cars&&cars<5?messageSavedEl.attr("data-car-wording2"):messageSavedEl.attr("data-car-wording3");messageSavedEl.text(messageSaved),0<cars?$("#savedCarsCount").text(cars).show():$("#savedCarsCount").hide()}
// Updating car count, shape of words. Showing empty garage state
function updateSelectedCars(){var selectedShape,savedShape,carShape;switch($(".garageActiveCar:not(.sold) .carCheckbox:checked").length){case 1:savedShape=$(".savedCarsWording").attr("data-saved-wording1"),carShape=$(".savedCarsCarWording").attr("data-car-wording1");break;case 2:case 3:case 4:savedShape=$(".savedCarsWording").attr("data-saved-wording2"),carShape=$(".savedCarsCarWording").attr("data-car-wording2");break;default:savedShape=$(".savedCarsWording").attr("data-saved-wording3"),carShape=$(".savedCarsCarWording").attr("data-car-wording3")}selectedShape=$(".selectedCarsCount").attr("data-all-wording"),0<$(".garageActiveCar .carCheckbox:checked").length?(
// switch blocks
$(".savedCars").hide(),$(".selectedCars").show(),
// set "cars" string declension
$(".selectedCars .selectedCarsWording").text(carShape),
// check if selected all
$(".garageActiveCar .carCheckbox:checked").length!==$(".garageActiveCar:not(.sold)").length?(
// not all
$(".selectedCarsWordingTotal").hide(),$(".selectedCarsCount").text($(".garageActiveCar .carCheckbox:checked").length)):(
// all
$(".selectedCarsWordingTotal").show(),$(".selectedCars .selectedCarsCount").text(selectedShape),$(".selectedCarsTotal").text($(".garageActiveCar:not(.sold)").length))):($(".garageActiveCar:not(.sold)").length?($(".savedCars .savedCarsWording").length&&$(".selectedCars").find(".savedCarsWording").text(savedShape),$(".savedCars .savedCarsCarWording").length&&$(".selectedCars").find(".savedCarsCarWording").text(carShape),$(".savedCarsWrap").show(),$(".savedCars").find("strong").text($(".garageActiveCar:not(.sold)").length)):$(".savedCarsWrap").hide(),$(".savedCars").show(),$(".selectedCars").hide(),garageDisableMenuBtns("disable")),$(".garageActiveCar:not(.sold)").length||$(".garageSubMenu").hide(),$(".garageActiveCar").length?($(".emptyCompare").removeClass("emptyCompare--active"),$(".garageSubMenu, .garageFilterRow").show(),$(".addCar").show()):($(".emptyCompare").addClass("emptyCompare--active"),$(".addCar").hide(),$(".garageFilterRow, .addCar").slideUp(animateSpeed)),updateSelectAll()}function garageDisableMenuBtns(action){"enable"==action?$(".garage-list__menu-buttons .btn").removeClass("disabled"):$(".garage-list__menu-buttons .btn").addClass("disabled")}
// Updating select all checkbox / hidding car controls when garage empty
function updateSelectAll(){$(".garageActiveCar .carCheckbox").length?($(".garageHeader .checkboxWrap").show(),$(".garageFilter").show()):($(".garageHeader .checkboxWrap").hide(),garageDisableMenuBtns("disable"),$(".garageFilter").hide()),$(".garageActiveCar .carCheckbox:checked").length<$(".garageActiveCar:not(.sold)").length||!$(".garageActiveCar:not(.sold)").length?$(".garage-menu-input").prop("checked",!1).parents(".checkboxWrap").removeClass("active"):$(".garageActiveCar .carCheckbox:checked").length==$(".garageActiveCar:not(.sold)").length&&$(".garage-menu-input").prop("checked",!0).parents(".checkboxWrap").addClass("active")}function garageSettings(){$(".garageSettings").click(function(){$(this).parents(".box").find("form .btn").toggle(),$(this).toggleClass("active").parents(".box").find("form label").toggleClass("disabled").parents(".box").find("form.hide").slideToggle(animateSpeed)}),$(".isCompany").change(function(){$(this).is(":checked")?($(".isCompanyContainer").slideDown(animateSpeed),$(".socialLoginContainer").length&&$(".socialLoginContainer").slideUp(animateSpeed)):($(".isCompanyContainer").slideUp(animateSpeed),$(".socialLoginContainer").length&&$(".socialLoginContainer").slideDown(animateSpeed))})}function garageLogin(){$('[data-popup="#garageLogin"]').click(function(){$("#garageLogin").find(".multipleTabAnchor").removeClass("open"),$(this).hasClass("login")&&$("#garageLogin").find(".multipleTabAnchor").eq(1).addClass("open"),$(this).hasClass("register")&&$("#garageLogin").find(".multipleTabAnchor").eq(0).addClass("open")})}function garageTools(){$(".carTools .resizableTextarea").each(function(){var btn=$(this).parents(".carTools").find(".carToolsHeaderLeftBtn span");0<$(this).val().length?(btn.html(btn.attr("data-edit-text")),$(this).parents(".carToolsContent").removeClass("hide")):btn.html(btn.attr("data-add-text"))}),$(".carToolsHeaderLeftBtn[data-edit-message]:not([data-popup])").on("click",function(){$(this).addClass("active"),$(this).parents(".carTools").find(".carToolsContent").removeClass("disabled").removeClass("hide"),$(this).parents(".carTools").find(".carToolsContent textarea").removeAttr("disabled")}),$(".carTools .resizableTextarea").on("input",function(){var btn=$(this).parents(".carTools").find(".carToolsHeaderLeftBtn span");0<$(this).val().length?btn.html(btn.attr("data-edit-text")):btn.html(btn.attr("data-add-text"))}),$('.carTools .btn[type="submit"]').on("click",function(){$(".carToolsHeaderLeftBtn").removeClass("active"),0<$(this).parents(".carTools").find(".resizableTextarea").val().length?$(this).parents(".carTools").find(".carToolsContent").addClass("disabled"):$(this).parents(".carTools").find(".carToolsContent").addClass("disabled").addClass("hide"),$(this).parents(".carTools").find(".carToolsContent textarea").attr("disabled","disabled")}),$(".carToolsHeaderLeft .checkbox input").each(function(){$(this).is(":checked")||$(this).parents("label").attr("data-popup","#declinePopup")}),$(".carToolsHeaderLeft .checkbox input").on("change",function(){$(this).is(":checked")?$(this).parents("label").removeAttr("data-popup"):$(this).parents("label").attr("data-popup","#declinePopup")})}function garageEnableButtons(){$(".garage-buttons .btn").removeClass("disabled"),$(".garage-buttons .garage-buttons__tooltip").attr("data-tooltip-hide","true"),$(".hiddenBtns").fadeIn(animateSpeed)}function garageDisableButtons(){$(".garage-buttons .btn").addClass("disabled"),$(".garage-buttons .garage-buttons__tooltip").removeAttr("data-tooltip-hide"),$(".hiddenBtns").fadeOut(animateSpeed)}function setVw(){var vw=document.documentElement.clientWidth;document.querySelector(":root").style.setProperty("--window-width",vw+"px")}function dataPage(){getUrlParam("data-page")&&($("[data-page-anchor]").removeClass("active"),$('[data-page-anchor="'+getUrlParam("data-page")+'"]').addClass("active"),$("[data-page]").removeAttr("data-page-active"),$('[data-page="'+getUrlParam("data-page")+'"]').attr("data-page-active","true")),$("[data-page]:not([data-page-active])").hide(),$("[data-page-anchor]").on("click",function(){var thisElement=$(this),attr=$(this).attr("data-page-anchor");setTimeout(function(){defaultVarConfirm&&($("[data-page-anchor]").removeClass("active"),thisElement.addClass("active"),$("[data-page]").hide().removeAttr("data-page-active"),$('[data-page="'+attr+'"]').show().attr("data-page-active","true"),defaultVarConfirm=!0,window.history.replaceState(null,null,"?data-page="+attr))},1)})}function switchInputs(){var switchInputs=0;$(document).on("click",".switchInputs",function(){var switchBtn=$(this).attr("data-switch-btn");switchInputs=0==switchInputs?($('.switchedInputs[data-switch-content="'+switchBtn+'"] label').eq(0).hide(),$('.switchedInputs[data-switch-content="'+switchBtn+'"] label').eq(1).show(),1):($('.switchedInputs[data-switch-content="'+switchBtn+'"] label').eq(0).show(),$('.switchedInputs[data-switch-content="'+switchBtn+'"] label').eq(1).hide(),0)})}function getScrollBarWidth(){var $outer=$("<div>").css({visibility:"hidden",width:100,overflow:"scroll"}).appendTo("body"),widthWithScroll=$("<div>").css("width","100%").appendTo($outer).outerWidth();return $outer.remove(),100-widthWithScroll}function showMore(){$(document).on("click",".showMoreAnchor",function(){$(this).parents(".showMore").find(".showMoreContent").toggle(),$(this).parents(".multipleTab").css({height:47+$(this).parents("li").find(".multipleTabContent").outerHeight(!0)}),console.log($(this).text()),$(this).text()==$(this).attr("data-more")?$(this).text($(this).attr("data-less")):$(this).text($(this).attr("data-more"))})}function showRest(){var translation,domainSuffix=window.location.hostname.split(".");switch(domainSuffix[domainSuffix.length-1]){case"pl":translation=["Pokaż więcej","Pokaż mniej"];break;case"sk":translation=["Zobraziť viac","Zobraziť menej"];break;default:translation=["Zobrazit více","Zobrazit méně"]}$(".showRest .showRestContent").each(function(){150<$(this).innerHeight()&&$(this).addClass("active").css({"max-height":"150px"}).parents(".showRest").append('<span class="showRestAnchor" data-more="+ '+translation[0]+'" data-less="- '+translation[1]+'">+ '+translation[0]+"</span>")}),$(".showRestAnchor").click(function(e){e.preventDefault(),$(this).parents(".showRest").find(".showRestContent").hasClass("open")?($(this).parent().find(".showRestContent").removeClass("open").css({"max-height":"150px"}),$(this).text($(this).attr("data-more"))):($(this).parent().find(".showRestContent").addClass("open").css({"max-height":"none"}),$(this).text($(this).attr("data-less")))})}function hiden(){$(".hidenContent").css({display:"none"}),$(".hidenAnchor").click(function(){$(this).toggleClass("open").parent().find(".hidenContent").slideToggle(150)})}function tabs(){$(".tabAnchor").each(function(){$(this).hasClass("open")?$(this).parent().children(".tabContent").show():$(this).parent().children(".tabContent").hide()}),$(".tabAnchor").click(function(){$(this).toggleClass("open").parent().children(".tabContent").slideToggle(150)})}function multipleTabsInit(){$(".multipleTab").each(function(){$(this).append('<span class="multipleTabLine"></span>')}),$(".multipleTabAnchor").each(function(){var thisElement;$(this).hasClass("open")||$(this).hasClass("always-open")?($(this).parent().children(".multipleTabContent").show(),$(this).parents(".multipleTab").css({height:47+$(this).parent().children(".multipleTabContent").outerHeight(!0)}),thisElement=$(this),setTimeout(function(){thisElement.parents(".multipleTab").css({height:47+thisElement.parent().children(".multipleTabContent").outerHeight(!0)}),thisElement.parents(".multipleTab").find(".multipleTabLine").css({width:parseInt(thisElement.outerWidth())-2*parseInt(thisElement.css("padding-left")),left:thisElement.offset().left-thisElement.parents(".multipleTab").offset().left+parseInt(thisElement.css("padding-left"))},200)},250)):$(this).parent().children(".multipleTabContent").addClass("multipleTabContent--hidden")})}function multipleTabsInit2(){$(".multipleTabContent").css("opacity","1"),$(".multipleTabAnchor.open").parents("li").find(".multipleTabContent img, .multipleTabContent iframe").on("load",function(){$(this).parents(".multipleTab").css({height:47+$(this).parents(".multipleTabContent").outerHeight(!0)})})}function multipleTabs(){$(".multipleTabContent").show().css("opacity","0"),multipleTabsInit(),$(document).on("click",".multipleTabAnchor:not(.multipleTabAnchorSort)",function(){var iframe;$(this).hasClass("open")||($(this).parents(".multipleTab").find(".multipleTabContent").addClass("multipleTabContent--hidden"),$(this).parents(".multipleTab").find(".multipleTabAnchor").removeClass("open"),$(this).addClass("open").parent().children(".multipleTabContent").removeClass("multipleTabContent--hidden"),$(this).parents(".multipleTab").css({height:47+$(this).parent().children(".multipleTabContent").outerHeight(!0)}),(iframe=$(this).parents("li").find("iframe[data-src]")).length&&iframe.attr("src",iframe.attr("data-src")).removeAttr("data-src"))}),$(document).on("mouseenter",".multipleTabAnchor",function(){$(this).parents(".multipleTab").find(".multipleTabLine").clearQueue(),$(this).parents(".multipleTab").find(".multipleTabLine").stop(),$(this).parents(".multipleTab").find(".multipleTabAnchor").css("color",""),$(this).css("color","#005da8"),$(this).parents(".multipleTab").find(".multipleTabLine").animate({width:parseInt($(this).css("width"))-2*parseInt($(this).css("padding-left")),left:parseInt($(this).offset().left-$(this).parents(".multipleTab").offset().left)+parseInt($(this).css("padding-left"))},200)}),$(document).on("mouseleave",".multipleTab",function(){$(this).find(".multipleTabAnchor").css("color",""),$(this).find(".multipleTabLine").animate({width:parseInt($(this).find(".multipleTabAnchor.open").css("width"))-2*parseInt($(this).find(".multipleTabAnchor.open").css("padding-left")),left:parseInt($(this).find(".multipleTabAnchor.open").offset().left-$(this).offset().left)+parseInt($(this).find(".multipleTabAnchor.open").css("padding-left"))},animateSpeed)}),$(document).on("mouseenter",".multipleTabContent",function(){$(this).parents(".multipleTab").find(".multipleTabAnchor").css("color",""),$(this).parents(".multipleTab").find(".multipleTabLine").animate({width:parseInt($(this).parents(".multipleTab").find(".multipleTabAnchor.open").css("width"))-2*parseInt($(this).parents(".multipleTab").find(".multipleTabAnchor.open").css("padding-left")),left:parseInt($(this).parents(".multipleTab").find(".multipleTabAnchor.open").offset().left-$(this).parents(".multipleTab").offset().left)+parseInt($(this).parents(".multipleTab").find(".multipleTabAnchor.open").css("padding-left"))},animateSpeed)}),multipleTabsInit2()}function select(){$("select").focusout(function(){$(this).parent().removeClass("focus")}),$("select").click(function(){$(this).parent().hasClass("focus")?$(this).parent().removeClass("focus"):$(this).parent().addClass("focus")})}function lazyAnchorScroll(){$(document).on("click",'a[href^="#"]',function(event){var target;if($("header").hasClass("static")){if("#"!=this.getAttribute("href")){let target=$(this.getAttribute("href"));var offset=$(".carCard__header").length?$(".carCard__header").outerHeight(!0)+40:65;target.length&&(event.preventDefault(),$("html, body").stop().animate({scrollTop:target.offset().top-offset},750))}}else"#"!=this.getAttribute("href")&&(target=$(this.getAttribute("href"))).length&&(event.preventDefault(),$("html, body").stop().animate({scrollTop:target.offset().top-95},750))})}function nextStepInit(){$(".steps").each(function(){$(this).find(".step").hide(),$(this).find(".step").eq(0).show(),$(this).find(".nextStep").css({display:"table"}),$(this).find(".stepTitle").css({display:"flex"})})}function nextStep(){nextStepInit(),$(document).on("click",".nextStep",function(){$(this).parents(".step").hide().removeClass("active"),$(this).parents(".steps").find(".step").eq($(this).parents(".step").index()+1).show().addClass("active"),$(this).parents(".stepBarWrap").find(".stepBar li.active").removeClass("active").addClass("done"),$(this).parents(".stepBarWrap").find(".stepBar li").eq($(this).parents("step").index()).addClass("active").removeClass("disabled")}),$(document).on("click",".prevStep",function(){$(this).parents(".step").hide(),$(this).parents(".steps").find(".step").eq($(this).parents(".step").index()-1).show(),$(this).parents(".stepBarWrap").find(".stepBar li").removeClass("active"),$(this).parents(".stepBarWrap").find(".stepBar li").eq($(this).parents(".step").index()-1).removeClass("done").addClass("active")}),$(document).on("click",".stepBar li span",function(){$(this).parents(".stepBarWrap").find(".step").hide(),$(this).parents(".stepBarWrap").find(".step").eq(parseInt($(this).attr("data-step"))-1).show(),$(this).parents(".stepBar").find("li").removeClass("active"),0<=parseInt($(this).attr("data-step"))-2&&$(this).parents(".stepBar").find("li").eq($(this).attr("data-step")-2).addClass("done"),$(this).parents(".stepBar").find("li").eq(parseInt($(this).attr("data-step"))).removeClass("active"),$(this).parents(".stepBar").find("li").eq(parseInt($(this).attr("data-step"))-1).removeClass("done").addClass("active")}),$(document).on("click",".finalStep",function(){setTimeout(function(){$(this).parents(".step formError").length||($(this).parents(".stepBarWrap").find(".stepBar, .stepBarTitle").hide(),$(this).parents(".popupSidebar").addClass("removeSidebar"))},10)})}function scrolltop(){$(".scrolltop").length&&setTimeout(function(){function scrolltopFunction(){500<=(document.documentElement.scrollTop||document.body.scrollTop)?$(".scrolltop").addClass("active"):$(".scrolltop").removeClass("active")}scrolltopFunction(),$(window).on("scroll",function(){scrolltopFunction()})},1500)}function passwordStrength(){var strength,color;$('input[type="password"][data-password-strength]').on("input",function(){var wording=$(this).attr("data-strength-wording");function checkRange(x,r1,r2){return $(x).val().length>=r1&&$(x).val().length<=r2&&$(x).val().length}switch(wording=wording.split(","),$(this).val().length){case checkRange(this,0,5):strength=wording[0],color="darkGreyAlt";break;case checkRange(this,6,7):strength=wording[1],color="error";break;case checkRange(this,8,9):strength=wording[2],color="warning";break;case checkRange(this,10,100):strength=wording[3],color="success";break;default:strength=wording[0],color="darkGreyAlt"}$(this).parents("label").find(".passwordStrength").length||$(this).parents("label").append('<span class="passwordStrength '+color+'"><span class="wording">'+strength+'</span><span class="indicator"></span></span>'),$(this).parents("label").find(".passwordStrength").attr("class","passwordStrength "+color).find(".wording").text(strength)})}function showPass(){$('input[type="password"]').each(function(){$(this).parents(".passwordWrap").append('<span class="showPass">'+$(this).parents(".passwordWrap").attr("data-show-password")+"</span>")}),$(".showPass").on("click",function(e){$(this).hasClass("active")?$(this).removeClass("active").html($(this).parents(".passwordWrap").attr("data-show-password")).parents("label").find('input[type="text"]').attr("type","password"):$(this).addClass("active").html($(this).parents(".passwordWrap").attr("data-hide-password")).parents("label").find('input[type="password"]').attr("type","text")})}function progressSteps(){var progressActive=0;$(".stepsProgress").each(function(){$(this).find(".stepProgress").hide(),$(this).find(".stepProgress").eq(0).show()}),$(".nextstepProgress").click(function(){var progressWidth;$(this).parents(".stepProgress").find("input").is(":checked")&&($(this).parents(".stepProgress").hide(),$(this).parents(".stepsProgress").find(".stepProgress").eq($(this).parents(".stepProgress").index()+1).show(),progressWidth=++progressActive/$(this).parents(".stepsProgress").find(".stepProgress").length*100+"%",$(".progressbar .active").css("width",progressWidth))}),$(".prevstepProgress").click(function(){$(this).parents(".stepProgress").hide(),$(this).parents(".stepsProgress").find(".stepProgress").eq($(this).parents(".stepProgress").index()-1).show();var progressWidth=--progressActive/$(this).parents(".stepsProgress").find(".stepProgress").length*100+"%";$(".progressbar .active").css("width",progressWidth)})}function btnNav(){$(document).on("click",".btn",function(){$(this).find(".btnNav").length&&$(this).find(".btnNav").toggleClass("active")}),$(document).on("click",function(e){0===$(e.target).closest(".btn").find(".btnNav").length&&$(".btnNav").removeClass("active")})}function showSection(){$("[data-show-section]").on("click",function(){var sort=$(this).attr("data-show-section");("all"==sort?$(this).parents("[data-show-section-wrap]").find("[data-show-section-item]"):($(this).parents("[data-show-section-wrap]").find("[data-show-section-item]").hide(),$(this).parents("[data-show-section-wrap]").find('[data-show-section-item="'+sort+'"]'))).show()})}function sortBy(){$(document).on("click","[data-sort-by]",function(){var sort=$(this).attr("data-sort-by"),order=$(this).attr("data-sort-order"),order1=1==order?-1:1,order2=1==order?1:-1,date="true"==$(this).attr("data-sort-date");$("#garageSavedCars").find(".garageActiveCar").sort(function(a,b){b=date?Date.parse($(b).data("sort-by-"+sort)):$(b).data("sort-by-"+sort),a=date?Date.parse($(a).data("sort-by-"+sort)):$(a).data("sort-by-"+sort);return b<a?order1:order2}).appendTo($("#garageSavedCars")),$("#garageSavedCars").length&&garageNumbers()})}function brandModelSelect(){$(document).on("click",".brandModelSelect:not(.brandModelSelectDisabled)",function(){$(this).hasClass("active")||($(".brandModelSelect").removeClass("active"),$(this).addClass("active"),$(this).find('[data-brandModelSelect="brand"]').show(),$(this).find('[data-brandModelSelect="model"]').hide(),$(this).find(".brandModelSelectContent").outerWidth()+$(this).find(".brandModelSelectContent").offset().left>window.innerWidth&&$(this).find(".brandModelSelectContent").css("left",-($(this).find(".brandModelSelectContent").outerWidth()+$(this).find(".brandModelSelectContent").offset().left-window.innerWidth+30)))}),$(document).on("click",function(e){0===$(e.target).closest(".brandModelSelect").length&&$(".brandModelSelect").removeClass("active")}),$(document).on("click",".brandModelSelectContentHeadBack",function(){$(this).parents(".brandModelSelect").find('[data-brandModelSelect="brand"]').show(),$(this).parents(".brandModelSelect").find('[data-brandModelSelect="model"]').hide()}),$(document).on("input",".brandModelSelectContentHeadSearch",function(){1<$(this).val().length?($(this).parents(".brandModelSelectContent").find("li").hide().addClass("isHide"),$(this).parents(".brandModelSelectContent").find("li:icontains("+$(this).val()+")").show().addClass("isShow"),0==$(".brandModelSelectContentHead li.isShow").length&&$(".brandModelSelectContentHead ul, .brandModelSelectContentHead .brandModelSelectContentTitle").hide(),0==$(".brandModelSelectContentText li.isShow").length&&$(".brandModelSelectContentText").hide()):($(this).parents(".brandModelSelectContent").find("li").show().removeClass("isHide").removeClass("isShow"),$(".brandModelSelectContentHead ul, .brandModelSelectContentHead .brandModelSelectContentTitle").show(),$(".brandModelSelectContentText").show())}),$(document).on("click",".brandModelSelectBoxRemove",function(){$(this).parents(".brandModelSelectBox").parent().remove()});var lifestyleSearchNewCarCount=0;$(".brandModelSelectBox").addClass("brandModelSelectBoxInit"),$(document).on("click",'[data-brandModelSelect="brand"] li',function(e){var thisElement,thisElementImg;$(this).parents(".brandModelSelect").hasClass("brandModelSelectBox")?$(e.target).is("input")||(thisElement=$(this),thisElementImg=$(this).find("img").length?'<img src="'+$(this).find("img").attr("src")+'">':"",setTimeout(function(){thisElement.parents(".brandModelSelect").find(".brandModelSelectInput").html(thisElementImg+thisElement.parents(".brandModelSelect").find('[data-brandModelSelect="brand"] li input:checked').parents("li").first().text()+'<span class="brandModelSelectCount block"></span>'),thisElement.parents(".brandModelSelect").removeClass("active"),thisElement.parents(".brandModelSelect").addClass("brandModelSelectDisabled").removeClass("brandModelSelectBoxAdd"),thisElement.parents(".brandModelSelect").find(".select").attr("id","modelSelect"+lifestyleSearchNewCarCount),thisElement.parents(".brandModelSelect").find(".select").attr("data-brand-model-make-for-models",thisElement.find("input").val()),selectboxReload("#"+thisElement.parents(".brandModelSelect").find(".select").attr("id")),thisElement.parents(".multipleTab").length&&thisElement.parents(".multipleTab").css({height:47+thisElement.parents(".multipleTabContent").outerHeight(!0)})},2),lifestyleSearchNewCarCount++,thisElement.parents(".brandModelSelectBox").hasClass("brandModelSelectBoxInit")&&(e=document.querySelector("#redemptionFormExtendedSelect"),document.querySelector(".lifestyleSearchAddedCars").appendChild(e),thisElement.parents(".brandModelSelectBox").removeClass("brandModelSelectBoxInit"),$(".lifestyleSearchAddedCarsWrap").show()),$(".lifestyleSearchAddedCars").append('<div class="flex" id="redemptionFormExtendedSelect'+lifestyleSearchNewCarCount+'">'+lifestyleSearchNewCar+"</div>"),svg()):($(this).parents(".brandModelSelect").find('[data-brandModelSelect="brand"]').hide(),$(this).parents(".brandModelSelect").find('[data-brandModelSelect="model"]').show(),$(this).find("img").length?($(this).parents(".brandModelSelect").find("#brandModelSelectTitle .brandModelSelectContentHeadImg").show(),$(this).parents(".brandModelSelect").find("#brandModelSelectTitle img").attr("src",$(this).find("img").attr("src"))):$(this).parents(".brandModelSelect").find("#brandModelSelectTitle .brandModelSelectContentHeadImg").hide(),$(this).parents(".brandModelSelect").find("#brandModelSelectTitle strong").html($(this).text()))}),$(document).on("click",'[data-brandModelSelect="model"] li',function(){var thisElement=$(this);setTimeout(function(){thisElement.parents(".brandModelSelect").find(".brandModelSelectInput").html(thisElement.parents(".brandModelSelect").find('[data-brandModelSelect="brand"] li input:checked').parents("li").first().text()+" "+thisElement.parents(".brandModelSelect").find('[data-brandModelSelect="model"] li input:checked').parents("li").first().text()),thisElement.parents(".brandModelSelect").removeClass("active")},1)})}function campaignSlider(){$(".campaignSlider").each(function(){var thisElement=$(this),sliderActive=0,sliderSlides=$(this).find(".campaign__content").length;setTimeout(function(){setInterval(function(){1<thisElement.find(".campaign__content").length&&(++sliderActive==sliderSlides&&(sliderActive=0),thisElement.attr("data-bgcolor",thisElement.find(".campaign__content").removeClass("active").eq(sliderActive).attr("data-campaign-bgcolor")),thisElement.find(".campaign__content").removeClass("active").eq(sliderActive).addClass("active"))},5e3)},5e3)})}function showBlock(){$("[data-show-block]").on("click",function(){$($(this).attr("data-show-block")).show()}),$("[data-hide-block]").on("click",function(){$($(this).attr("data-hide-block")).hide()})}function boxNumbersSlider(){$(".boxNumbers--slider").length&&$(".boxNumbers--slider").slick({slideToScroll:1,arrows:!0,dots:!1,infinite:!1,variableWidth:!0,prevArrow:'<button class="boxNumbers-slider__btn boxNumbers-slider__btn--prev"></button>',nextArrow:'<button class="boxNumbers-slider__btn boxNumbers-slider__btn--next"></button>'})}function checkboxMessage(){$(document).on("mouseenter",".checkbox-message .checkboxCheck",function(){$(this).parents(".checkbox-message").addClass("checkbox-message--active")}),$(document).on("change",'.checkbox-message input[type="checkbox"]',function(){var parent=$(this).parents(".checkbox-message");$(this).is(":checked")?parent.addClass("checkbox-message--active"):parent.removeClass("checkbox-message--active")})}function radioChoices(){var choicesContainerInputs=$("[data-choices-container]").find("input");choicesContainerInputs.length&&choicesContainerInputs.each(function(){$(this).attr("data-choice-validation",$(this).attr("data-validation"))}),$('[data-choices] input[type="radio"]').on("change",function(){var input=$(this),inputVal=$(this).val(),choiceName=input.parents("[data-choices]").attr("data-choices"),choiceName=$('[data-choices-container="'+choiceName+'"]'),containerInput=choiceName.find("input");"1"==inputVal&&input.is(":checked")?(choiceName.show(),containerInput.each(function(){$(this).attr("data-validation",$(this).attr("data-choice-validation"))})):(choiceName.hide(),containerInput.each(function(){$(this).removeAttr("data-validation")}))})}function googleReviewsInit(){function googleReviesInitDots(activeIndex){var dotsStart=activeIndex-2,dotsSmall=(dotsStart=(dotsStart=4+dotsStart>=$(".google-reviews .slickDots li").length?$(".google-reviews .slickDots li").length-5:dotsStart)<0?0:dotsStart,activeIndex-1);dotsSmall=(dotsSmall=3+dotsSmall>=$(".google-reviews .slickDots li").length?$(".google-reviews .slickDots li").length-3:dotsSmall)<0?0:dotsSmall,activeIndex==$(".google-reviews .slickDots li").length-1||0==activeIndex?$(".google-reviews .slickDots").find("li").addClass("small").css("opacity",1):$(".google-reviews .slickDots").find("li").addClass("small").css("opacity",0);for(var i=dotsSmall;i<3+dotsSmall;i++)$(".google-reviews .slickDots").find("li").eq(i).css("opacity",1),$(".google-reviews .slickDots").find("li").eq(i).removeClass("small");for(i=dotsStart;i<5+dotsStart;i++)$(".google-reviews .slickDots").find("li").eq(i).css("opacity",1);var marginPlus=$(".google-reviews .slickDots").find("li").eq(0).hasClass("small")?2:0;setTimeout(function(){$(".google-reviews .slickDots").find("li").eq(0).css("margin-left",-15*dotsStart+marginPlus)},200)}$(".google-reviews:not(.slick-initialized)").length&&($(".google-reviews").on("init",function(event,slick){googleReviesInitDots(0)}),document.querySelector(".google-reviews--new")?$(".google-reviews").slick({slidesToShow:3,slideToScroll:1,arrows:!0,dots:!0,infinite:!0,variableWidth:!0}):$(".google-reviews").slick({slidesToShow:3,slideToScroll:1,arrows:!0,dots:!0,infinite:!0,centerMode:!0,variableWidth:!0}),$(".google-reviews").on("afterChange",function(event,slick,currentSlide,nextSlide){googleReviesInitDots(currentSlide)})),$(".google-reviews__text").each(function(){$(this).removeClass("google-reviews__text--active"),$(this).parents(".google-reviews__item").find(".google-reviews__more").removeClass("google-reviews__more--active").find("span").remove(),$(this).find("p").height()>$(this).height()&&$(this).parents(".google-reviews__item").find(".google-reviews__more").append("<span>"+$(this).attr("data-google-review-more")+"</span>").addClass("google-reviews__more--active")})}function googleReviews(){googleReviewsInit(),$(window).on("resize",function(){googleReviewsInit()}),$(document).on("click",".google-reviews__more--active span",function(e){var moreMessage=$(this).parents(".google-reviews__item").find(".google-reviews__text").attr("data-google-review-more"),lessMessage=$(this).parents(".google-reviews__item").find(".google-reviews__text").attr("data-google-review-less");return $(this).html().trim()==moreMessage.trim()?($(this).parents(".google-reviews__item").find(".google-reviews__text").addClass("google-reviews__text--active"),$(this).html(lessMessage)):($(this).parents(".google-reviews__item").find(".google-reviews__text").removeClass("google-reviews__text--active"),$(this).html(moreMessage)),e.preventDefault(),!1})}function initGoogleTranslator(){$.getScript("https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"),$(".header").css("margin-top","39px"),setTimeout(function(){var activeLanguage=$.cookie("GoogleTranslator");$('.headerTranslate input[value="'+$.cookie("GoogleTranslator")+'"]').length||(activeLanguage="browsare"),$('.headerTranslate input[value="'+activeLanguage+'"]').prop("checked",!0),$(".headerTranslate").each(function(){selectboxChangeValue($(this))}),$('.footerSelect input[value="'+activeLanguage+'"]').prop("checked",!0),$(".footerSelect").each(function(){selectboxChangeValue($(this))})},1)}function showGoogleTranslator(){var userLang=navigator.language||navigator.userLanguage,webLang="cz"==window.location.host.split(".")[window.location.host.split(".").length-1]?"cs":window.location.host.split(".")[window.location.host.split(".").length-1];$('.headerTranslate [data-select-value="browsare"]').attr("data-change-language",userLang),$('.footerSelect [data-select-value="browsare"]').attr("data-change-language",userLang),userLang!=webLang&&$(".headerTranslate").show()}function setGoogleTranslator(l,link,reload){var domainName="cz"==window.location.host.split(".")[window.location.host.split(".").length-1]?"cs":window.location.host.split(".")[window.location.host.split(".").length-1];l?(l==domainName?(window.location.hash="",$.cookie("GoogleTranslator",null,{expires:30,path:"/"})):(window.location.hash="googtrans("+domainName+"|"+l+")",$.cookie("GoogleTranslator")?$(".goog-te-combo").val(l):$.getScript("https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"),$.cookie("GoogleTranslator",l,{expires:30,path:"/"})),reload&&window.location.reload()):($.cookie("GoogleTranslator",null,{expires:30,path:"/"}),window.location.replace(link))}function graphOccupancyInit(occupancy,init,active){$(".graphOccupancy li").each(function(i){$(this).attr("data-graph",occupancy[i]),$(this).attr("data-tooltip",occupancy[i]+"% "+$(".graphOccupancy").attr("data-translate-capacity"))}),graphOccupancyActive(active),graphOccupancy(init)}function graphOccupancyActive(active){active?8<=(active=(new Date).getHours())&&active<21&&$(".graphOccupancy li").eq(active-8).addClass("active"):$(".graphOccupancy li").removeClass("active")}function graphOccupancy(init){setTimeout(function(){$(".graphOccupancy li").css("height",0),$(".graphOccupancy li").each(function(index){(index=>{setTimeout(function(){$(".graphOccupancy li").eq(index).css("height",$(".graphOccupancy li").eq(index).attr("data-graph"))},75*index)})(($(this),index))})},2*animateSpeed*(init?1:0))}function headerRotating(){var width;$(".header-rotating").length&&2<=$(".header-rotating__item").length&&(width=0,$(".header-rotating__item:not(.header-rotating__item--active)").show(),$(".header-rotating__item").each(function(){var itemWidth=$(this).outerWidth(!0);width<itemWidth&&(width=itemWidth)}),$(".header-rotating__item").hide(),$(".header-rotating").css("width",width+"px"),$(".header-rotating__item").addClass("header-rotating__item--loaded"),setTimeout(function(){$(".header-rotating__item").addClass("header-rotating__item--done")},10),setInterval(function(){var activeItem=$(".header-rotating__item--active"),activeIndex=$(".header-rotating__item").index(activeItem[0]),activeIndex=activeIndex+1>=$(".header-rotating__item").length?0:activeIndex+1;activeItem.removeClass("header-rotating__item--active"),$(".header-rotating__item").eq(activeIndex).addClass("header-rotating__item--active")},5e3))}function hero(){var heroContentImgWithLines=$(".heroContentImgWithLines"),heroDelay=$(".heroContentImgWithTriangle").length?1500:250;function heroPosition(){var topPosition=document.documentElement.scrollTop||document.body.scrollTop;$(".heroContentImgLine").each(function(){$(this).hasClass("bottom")?$(this).css({top:-(658+topPosition/8),left:-(237-topPosition/8)}):$(this).css({top:0+topPosition/8,left:-(895+topPosition/8)})}),$(".heroContentImgTriangle").each(function(){var heroContentImgTrianglePosition=1.33+topPosition/1500;$(this).css({transform:"scale("+heroContentImgTrianglePosition+") rotate(209deg) translateX(29px) translateY(26px)"})})}setTimeout(function(){var topPosition;topPosition=document.documentElement.scrollTop||document.body.scrollTop,heroContentImgWithLines.length&&($(".heroContentImgWithLines").addClass("active"),$(".heroContentImgLine").each(function(){$(this).hasClass("bottom")?$(this).animate({top:-(658+topPosition/8),left:-(237-topPosition/8)},3*animateSpeed,"linear"):$(this).animate({top:0+topPosition/8,left:-(895+topPosition/8)},3*animateSpeed,"linear")})),setTimeout(function(){heroPosition()},3*animateSpeed),$(window).on("scroll",function(){heroPosition()})},heroDelay)}function hotToastInit(){$("body").append('<span class="hot-toast"></span>')}function hotToast(message){var id="hot-toast-"+Math.floor(1e6*Math.random());$(".hot-toast").append('<span id="'+id+'" class="hot-toast__item">'+message+"</span>"),setTimeout(function(){$("#"+id).addClass("hot-toast__item--hide"),setTimeout(function(){$("#"+id).remove()},250)},3e3)}function iframeScrollOffset(){$("[data-scroll-offset-id]").length&&$("[data-scroll-offset-id]").each(function(){var offset=[{id:$(this).attr("data-scroll-offset-id")},{offset:$(this).offset().top}];window.parent.postMessage({message:"iframeScrollOffset",value:offset},"*")})}function setMapHeight(){var customWindowHeight=getUrlParam("windowHeight");customWindowHeight&&$(".brancheslist .brancheslistMap").length&&$(".brancheslist .brancheslistMap, .brancheslist .brancheslistMap .brancheslistMapIframe").css("height","calc("+customWindowHeight+"px - 115px)")}function inputAutocomplete(element,suggestionsContainer,data,selectedValueDestination){element.autocomplete({lookup:data,appendTo:suggestionsContainer,triggerSelectOnValidInput:!1,autoSelectFirst:!0,showNoSuggestionNotice:!0,containerClass:"autocomplete-suggestions notranslate",width:"flex",deferRequestBy:200,minChars:0,noSuggestionNotice:'<div class="wrapper">'+element.attr("data-autocomplete-notfound")+"</div>",onSelect:function(suggestion){element.attr("data-validation-length","min3"),selectedValueDestination.val(suggestion.id),element.focus().blur()}}),element.on("focus",function(){suggestionsContainer.show()}),element.on("blur",function(){setTimeout(function(){suggestionsContainer.hide()},200)}),element.on("input",function(){element.attr("data-validation-length","0"),selectedValueDestination.val(element.attr("data-autocomplete-notfound"))}),suggestionsContainer.click(function(){$(this).find(".autocomplete-no-suggestion").length&&(element.attr("data-validation-length","min3"),selectedValueDestination.val(element.attr("data-autocomplete-notfound")+" - "+element.val()),element.focus().blur())})}function observer(){let observer=new IntersectionObserver(entries=>{entries.forEach(entry=>{entry.isIntersecting&&(entry.target.classList.add("inView"),entry.target.classList.remove("observeItem"))})}),observeItems=$(".observeItem");observeItems.each(function(){observer.observe($(this)[0])})}function listComparison(){var domain=window.location.href,comparisonIds=(domain=1<(domain=(domain=domain.split("/")[2]).split(".")).length?"."+domain[domain.length-2]+"."+domain[domain.length-1]:domain[domain.length-1],null==$.cookie("ah-cookie-functional")?($(".list-comparison__cookie").addClass("list-comparison__cookie--active"),$(".list-comparison__main").removeClass("list-comparison__main--active"),$(document).on("click",'[data-cookie-save="all"]',function(){$(".list-comparison__cookie").removeClass("list-comparison__cookie--active"),$(".list-comparison__main").addClass("list-comparison__main--active")}),$(document).on("click",'[data-cookie-save="custom"]',function(){$('[data-cookie-switch-api="functional"]').is(":checked")&&($(".list-comparison__cookie").removeClass("list-comparison__cookie--active"),$(".list-comparison__main").addClass("list-comparison__main--active"))})):($(".list-comparison__cookie").removeClass("list-comparison__cookie--active"),$(".list-comparison__main").addClass("list-comparison__main--active")),$.cookie("aaaautoCompareCars")?$.cookie("aaaautoCompareCars"):"");function listComparisonCheck(init){if(comparisonIds=$.cookie("aaaautoCompareCars")?$.cookie("aaaautoCompareCars"):"",null!=$.cookie("aaaautoCompareCars")){comparisonIds.length?($(".list-comparison").addClass("list-comparison--active"),$("#list-comparison-input").prop("checked",!0)):init&&($(".list-comparison").removeClass("list-comparison--active"),$("#list-comparison-input").prop("checked",!1));var comparisonIdsArray=comparisonIds.length?comparisonIds.split("-"):[];2<=comparisonIdsArray.length?$(".list-comparison__btn").removeClass("disabled"):$(".list-comparison__btn").addClass("disabled"),$(".btn[data-list-comparison-id]").attr("data-tooltip",$(".btn[data-list-comparison-id]").attr("data-tooltip-default")).removeAttr("data-list-comparison-remove");for(var i=0;i<comparisonIdsArray.length;i++){var id=comparisonIdsArray[comparisonIdsArray.length-i-1];$('.btn[data-list-comparison-id="'+id+'"]').attr("data-tooltip",$(".btn[data-list-comparison-id]").attr("data-tooltip-replace")).attr("data-list-comparison-remove","true")}for(i=0;i<5;i++){var id=comparisonIdsArray[comparisonIdsArray.length-i-1],itemData=$(".list-comparison__item").eq(i).find(".list-comparison__data");itemData.html(""),comparisonIdsArray.length>i&&(itemData.append('<span class="list-comparison__close"><img src="/build/desktop/images/icons/closeCircle.svg" class="list-comparison__close-icon svg m0"></span><img src="https://aaaautoeuimg.vshcdn.net/thumb/'+id+'_640x480x95.jpg" alt="#" class="list-comparison__photo">'),itemData.find(".list-comparison__photo").on("load",function(){$(this).addClass("list-comparison__photo--active")}).on("error",function(){$(this).attr("src","https://www.aaaauto.cz/img/nophoto/nophoto-big.jpg"),$(this).addClass("list-comparison__photo--active")}),itemData.find(".list-comparison__close").attr("data-list-comparison-id",id))}svg()}}listComparisonCheck(!0),$(document).on("change","#list-comparison-input",function(){$(this).is(":checked")?$(".list-comparison").addClass("list-comparison--active"):$(".list-comparison").removeClass("list-comparison--active")}),$(document).on("click","[data-list-comparison-id]",function(){var id=$(this).attr("data-list-comparison-id");comparisonIds.includes(id)?comparisonIds=comparisonIds.replace(id,""):(comparisonIds.length&&(comparisonIds+="-"),comparisonIds+=id),"-"==(comparisonIds="-"==(comparisonIds=comparisonIds.replace("--","-")).charAt(0)?comparisonIds.slice(1):comparisonIds).charAt(comparisonIds.length-1)&&(comparisonIds=comparisonIds.slice(0,-1)),$(".list-comparison__main").hasClass("list-comparison__main--active")?$.cookie("aaaautoCompareCars",comparisonIds,{expires:30,domain:domain,path:"/"}):($(".list-comparison").addClass("list-comparison--active"),$("#list-comparison-input").prop("checked",!0),$("html, body").stop().animate({scrollTop:0},250)),listComparisonCheck(!1)})}function listGrid(){function listGridColumnsFullWidth(){$(".carsGrid").addClass("carsColumns"),$("#carsMainContent").addClass("carsFullSize")}function listGridGarageList(){$(".garage-list__cars").removeClass("garage-list__cars--columns"),$(".garage-list").removeClass("carsColumns"),$(".garage-list").removeClass("carsColumns--garage")}function listGridGarageColumns(){$(".garage-list__cars").addClass("garage-list__cars--columns"),$(".garage-list").addClass("carsColumns"),$(".garage-list").addClass("carsColumns--garage")}"columnsFullWidth"==$.cookie("carsGrid")&&($(".changeCarsGrid .svg").removeClass("primaryAlt"),$(".changeCarsGrid.columnsFullWidth").find(".svg").addClass("primaryAlt"),listGridColumnsFullWidth()),"columns"==$.cookie("garageGrid")?($(".changeCarsGrid .svg").removeClass("primaryAlt"),$(".changeCarsGrid.columnsFullWidth").find(".svg").addClass("primaryAlt"),listGridGarageColumns()):"list"==$.cookie("garageGrid")&&($(".changeCarsGrid .svg").removeClass("primaryAlt"),$(".changeCarsGrid.list").find(".svg").addClass("primaryAlt"),listGridGarageList()),$(document).on("click",".changeCarsGrid",function(){$(this).find(".svg").hasClass("primaryAlt")||($(".carsGrid").css("opacity",0),$(".changeCarsGrid .svg").removeClass("primaryAlt"),$(this).find(".svg").addClass("primaryAlt"),$(".garage-list__cars").length?$(this).hasClass("list")?(listGridGarageList(),$.cookie("garageGrid","list",{path:"/",domain:window.location.hostname})):$(this).hasClass("columnsFullWidth")&&(listGridGarageColumns(),$.cookie("garageGrid","columns",{path:"/",domain:window.location.hostname})):$(this).hasClass("list")?($(".carsGrid").removeClass("carsColumns"),$("#carsMainContent").removeClass("carsFullSize"),$('[data-select-name="numberOfCars"] li[data-select-value="10"] input').prop("checked",!0).change(),$.cookie("carsGrid","list",{path:"/",domain:window.location.hostname})):$(this).hasClass("columns")?($(".carsGrid").addClass("carsColumns"),$("#carsMainContent").removeClass("carsFullSize")):$(this).hasClass("columnsFullWidth")&&(listGridColumnsFullWidth(),$('[data-select-name="numberOfCars"] li[data-select-value="50"] input').prop("checked",!0).change(),$.cookie("carsGrid","columnsFullWidth",{path:"/",domain:window.location.hostname})),($(".carInfoImg.slider").length||$(".carInfoImg").find(".slick-list").length)&&$(".carInfoImg.slick-initialized").each(function(){$(this).slick("unslick")}),$(".carInfoImg").css("opacity",0),($(".carPriceSlider .slider").length||$(".carPriceSlider").find(".slick-list").length)&&$(".carPriceSlider.slick-initialized").each(function(){$(this).slick("unslick")}),$(".garage-list__cars").length&&$(".carInfoImg").not(".slick-initialized").each(function(){(thisElement=$(this)).on("init",function(){thisElement.css("opacity",1)}),$(this).slick({infinite:!0,slidesToShow:1,slidesToScroll:1,dots:!1,fade:!0,cssEase:"linear"})}),$(".carsGrid").css("opacity",1))})}function loadEffect(){function loadEffectLoad(){var windowPosition=document.documentElement.scrollTop||document.body.scrollTop,windowHeight=$(window).height();$("[data-loading]").each(function(){var thisElement,delay,loadingName=$(this).attr("data-loading");$(this).addClass(loadingName+"--load"),windowPosition+windowHeight>=$(this).offset().top&&(delay=(thisElement=$(this)).attr("data-animation-delay")?thisElement.attr("data-animation-delay"):0,setTimeout(function(){thisElement.addClass(loadingName+"--loaded")},delay))})}loadEffectLoad(),$(window).scroll(function(){loadEffectLoad()})}function login(){$("[data-login-step-move]").on("click",function(){var step=$(this).attr("data-login-step-move");$("[data-login-step]").clearQueue(),$("[data-login-step]").stop(),$(".active[data-login-step]").addClass("animationRight"),$("[data-login-step="+step+"]").removeClass("animationLeft"),setTimeout(function(){$(".active[data-login-step]").removeClass("animationRight").addClass("animationLeft").removeClass("active"),$("[data-login-step="+step+"]").addClass("active")},animateSpeed)})}function loginMove(){$(".active[data-login-step]").removeClass("animationRight").addClass("animationLeft").removeClass("active"),$('[data-login-step="login"]').removeClass("animationLeft").addClass("active")}function search(){$(".searchButton").click(function(){$(".headerSearch").show(),$(".headerTools").hide()}),$(".headerSearchClose").click(function(){$(".headerSearch").hide(),$(".headerTools").css("display","flex")}),$(".headerMenu .hasSubmenu").on("mouseenter",function(){$(".headerMenu .hasSubmenu").removeClass("hover"),$(this).addClass("hover")}),$(".headerMenu > ul").on("mouseleave",function(){$(".headerMenu .hasSubmenu").removeClass("hover")})}function multiselect(){$(document).on("click",".multiselect > button",function(){var topPosition;$(".multiselect .multiselectContent").slideUp(animateSpeed),selectboxActive=$(this).hasClass("focus")?0:1,$(".multiselect > button").removeClass("focus"),1==selectboxActive&&($(this).addClass("focus"),$(this).parents(".multiselect").find(".multiselectContent").show().css("opacity","0"),topPosition=document.documentElement.scrollTop||document.body.scrollTop,$(this).parents(".multiselect").find(".multiselectContent").removeClass("multiselectContentTop"),(topPosition+window.innerHeight<$(this).parents(".multiselect").find(".multiselectContent").offset().top+$(this).parents(".multiselect").find(".multiselectContent").outerHeight()||$(this).parents(".multiselect").hasClass("multiselect--always-top"))&&$(this).parents(".multiselect").find(".multiselectContent").addClass("multiselectContentTop"),$(this).parents(".multiselect").find(".multiselectContent").hide().css("opacity",""),$(this).parents(".multiselect").find(".multiselectContent").slideDown(animateSpeed))}),$(document).on("click",function(e){0===$(e.target).closest(".multiselect").length&&($(".multiselect").find(".multiselectContent").slideUp(animateSpeed),$(".multiselect > button").removeClass("focus"))})}function parallax(){$(".parallax").each(function(){var img=$(this),imgParent=$(this).parent();function parallaxImg(){var imgPercent,speed=img.data("speed"),imgY=imgParent.offset().top,winY=$(this).scrollTop(),winH=$(this).height(),parentH=imgParent.innerHeight(),winBottom=winY+winH;img.css({top:(
// If block is shown on screen
imgPercent=imgY<winBottom&&winY<imgY+parentH?(winBottom-imgY)*speed/(winH+parentH)*100+(50-50*speed):imgPercent)+"%",transform:"translate(0, -"+imgPercent+"%)"})}$(document).on({scroll:function(){parallaxImg()},ready:function(){parallaxImg()}})})}
/* global $ */function popupClose(id){$(id).find(".popupContent").animate({opacity:0,"margin-top":"100px"},300,function(){$(id).find(".popupOverlay").animate({opacity:0},300,function(){$(id).css({display:"none"}),setTimeout(function(){window.parent.postMessage({message:"popupClose",value:id},"*")},500)})})}function popupOpen(popupEx){var $popup=$(".popup"+popupEx);$popup.length&&($(".popup, .popupContent, .popupSidebarContent, .popupOverlay").clearQueue(),$(".popup, .popupContent, .popupSidebarContent, .popupOverlay").stop(),$popup.css({display:"flex"}).find(".popupOverlay").animate({opacity:1},300,function(){$popup.find(".popupContent").animate({opacity:1,"margin-top":"0"},300)}),$popup.find(".step").hide().removeClass("active"),$popup.find(".step").eq(0).show().addClass("active"),$popup.find(".popupSidebar").removeClass("removeSidebar"),multipleTabs(),$(".popup"+popupEx+" .popupSidebar .popupContent").each(function(){var thisElement=$(this);popupFixedBtn(thisElement),popupBottomSetHeight(thisElement)}),setTimeout(function(){window.parent.postMessage({message:"popupOpen",value:$popup.find(".popupContent").offset().top},"*")},700),$popup.trigger("show"))}function popupFixedBtn(thisElement){var topPosition;thisElement.find(".step.active").find(".popupFixedBtn").length&&(thisElement.find(".step.active").find(".popupFixedBtn").css("height",thisElement.find(".step.active").find(".popupFixedBtnWrap").outerHeight()),topPosition=document.documentElement.scrollTop||document.body.scrollTop,thisElement.find(".step.active").find(".popupFixedBtnWrap").css("width",thisElement.find(".step.active").outerWidth()),thisElement.find(".step.active").find(".popupFixedBtn").offset().top-$(window).outerHeight()+thisElement.find(".step.active").find(".popupFixedBtn").outerHeight()-topPosition+thisElement.find(".popupFixedBottomBlock").outerHeight(!0)<=1?thisElement.find(".step.active").find(".popupFixedBtnWrap").addClass("active"):thisElement.find(".step.active").find(".popupFixedBtnWrap").removeClass("active"))}function popupBottomSetHeight(thisElement){thisElement.find(".popupSidebarLeft").css("min-height",""),thisElement.find(".popupSidebarContent").css("min-height",""),setTimeout(function(){thisElement.find(".popupSidebarLeft").css("min-height",thisElement[0].scrollHeight-thisElement.css("padding-top")),thisElement.find(".popupSidebarContent").css("min-height",thisElement[0].scrollHeight),thisElement.parents(".popupBottom").hasClass("popupBottomOpen")&&(thisElement.find(".popupContentAjax").length?window.parent.postMessage({message:"popupHeight",value:1e3},"*"):window.parent.postMessage({message:"popupHeight",value:parseInt(thisElement.outerHeight(!1))+1},"*"))},1)}function popup(){$(".popupContent").scroll(function(){popupFixedBtn($(this)),$(this).find(".popupClose").css("top",$(this).scrollTop()+5)}),$(document).on("click",".popupOpen, *[data-popup]",function(){$(".popupBottom").removeClass("popupBottomHideSidebar"),$(".popup, .popupContent, .popupOverlay").clearQueue(),$(".popup, .popupContent, .popupOverlay").stop();var popupEx="";1<$(this).attr("data-popup").length&&(popupEx=$(this).attr("data-popup"),$(popupEx+" form").each(function(){$(this).trigger("show")})),$(".popup"+popupEx).length?($(".popup, .popupContent, .popupSidebarContent, .popupOverlay").clearQueue(),$(".popup, .popupContent, .popupSidebarContent, .popupOverlay").stop(),$(".popup"+popupEx).css({display:"flex"}).find(".popupOverlay").animate({opacity:1},300,function(){$(".popup"+popupEx).find(".popupContent").animate({opacity:1,"margin-top":0},300)}),$(".popup"+popupEx).find(".step").hide().removeClass("active"),$(".popup"+popupEx).find(".step").eq(0).show().addClass("active"),$(".popup"+popupEx).find(".popupSidebar").removeClass("removeSidebar"),$(".popup"+popupEx).find(".stepBar, .stepBarTitle").show(),multipleTabs(),$(".popup"+popupEx+" .popupSidebar .popupContent").each(function(){var thisElement=$(this);popupFixedBtn(thisElement),popupBottomSetHeight(thisElement),setTimeout(function(){popupFixedBtn(thisElement),popupBottomSetHeight(thisElement)},300)}),setTimeout(function(){window.parent.postMessage({message:"popupOpen",value:$(".popup"+popupEx).find(".popupContent").offset().top},"*")},700)):window.parent.postMessage({message:"popupOpenOld",value:popupEx},"*")}),$(window).on("resize",function(){$(".popupSidebar .popupContent").each(function(){popupFixedBtn($(this)),popupBottomSetHeight($(this))})}),$(document).on("click",".popupBottom .nextStep, .popupBottom .prevStep, .branchVisitHide",function(){var thisElement=$(this);setTimeout(function(){popupFixedBtn(thisElement.parents(".popupContent")),popupBottomSetHeight(thisElement.parents(".popupContent"))})}),$(document).on("change","#car_valuation_isCompanyCar",function(){var thisElement=$(this);setTimeout(function(){popupFixedBtn(thisElement.parents(".popupContent")),popupBottomSetHeight(thisElement.parents(".popupContent"))})}),$(document).on("click",".popupClose, .popupOverlay, .closePopup",function(){$(this).parents(".popup").find(".popupContent").animate({opacity:0,"margin-top":"100px"},300,function(){$(this).parents(".popup").find(".popupOverlay").animate({opacity:0},300,function(){$(this).parents(".popup").css({display:"none"}),setTimeout(function(){window.parent.postMessage({message:"popupClose",value:$(this).parents(".popup").attr("id")},"*")},500)})})}),$(document).ready(function(){var videoSrc;$(document).on("click","[data-popup-video='true']",function(){videoSrc=$($(this).attr("data-popup")).find("iframe").attr("src"),videoSrc+="?autoplay=1",$($(this).attr("data-popup")).find("iframe").attr("src",videoSrc)}),$(document).on("click",".popupClose, .popupOverlay, .closePopup",function(){$(this).parents(".popup").find("iframe").length&&(videoSrc=$(this).parents(".popup").find("iframe").attr("src").replace(/\?autoplay=1/g,""),$(this).parents(".popup").find("iframe").attr("src",videoSrc))})}),$(document).on("click",'.popupBottom .btn[type="submit"]',function(){var thisElement=$(this);setTimeout(function(){thisElement.parents(".step").find(".hasError").length&&(thisElement.focus(),setTimeout(function(){var topPosition=document.documentElement.scrollTop||document.body.scrollTop;thisElement.parents(".popupContent").scrollTop(thisElement.parents(".step").find(".hasError").first().offset().top+thisElement.parents(".popupContent").scrollTop()-topPosition-40),thisElement.parents(".step").find(".hasError").first().focus()},1))},1)})}function popupContentMain(){function popupContentMainChange(popupContentMain){popupContentMain.find("input").length+popupContentMain.find("select").length==popupContentMain.find("input.valid").length+popupContentMain.find("select.valid").length?popupContentMain.removeClass("active"):popupContentMain.addClass("active")}$(".popupContentMain input").focusin(function(){popupContentMainChange($(this).parents(".popupContentMain"))}).focusout(function(){popupContentMainChange($(this).parents(".popupContentMain"))}),$(".popupContentMain select").focusin(function(){popupContentMainChange($(this).parents(".popupContentMain"))}).focusout(function(){popupContentMainChange($(this).parents(".popupContentMain"))}),$(document).on("input",".popupContentMain input",function(){popupContentMainChange($(this).parents(".popupContentMain"))}),$(document).on("change",".popupContentMain select",function(){popupContentMainChange($(this).parents(".popupContentMain"))}),$(document).on("click",function(e){$(e.target).closest(".popupContentMain").length?popupContentMainChange($(e.target).closest(".popupContentMain")):$(e.target).closest(".popupBottom").length&&$(".popupContentMain").each(function(){popupContentMainChange($(this))})})}function priceCompare(){priceCompareInit(),$(window).on("scroll",function(){priceCompareInit()})}function priceCompareInit(){var priceNewCarEl,priceOurCarEl,priceNewCar;$(".price-compare__table:not(.price-compare__table--loaded)").length&&$(window).scrollTop()+$(window).height()>$(".price-compare__table-content").offset().top+$(".price-compare__table-content").outerHeight()&&(priceNewCar=(priceNewCarEl=$(".price-compare__table-item:not(.price-compare__table-item--primary) [data-price-compare-value]")).attr("data-price-compare-value"),priceNewCar=(priceOurCarEl=$(".price-compare__table-item.price-compare__table-item--primary [data-price-compare-value]")).attr("data-price-compare-value")/priceNewCar*100,priceNewCarEl.css("width","calc(100% - 92px)"),priceOurCarEl.css("width","calc("+priceNewCar+"% - 92px)"),$(".price-compare__table").addClass("price-compare__table--loaded"))}function recentlyViewed(){
// var domain = window.location.href;
// domain = domain.split("/")[2];
// domain = domain.split('.');
// if (domain.length > 1) {
// domain = '.' + domain[domain.length - 2] + '.' + domain[domain.length - 1];
// } else {
// domain = domain[domain.length - 1];
// }
window.location.hostname.split(".").slice(-2).join(".");$(".recently-viewed__hr").show(),null==$.cookie("ah-cookie-functional")?($(".recently-viewed__content--not-cookie").addClass("recently-viewed__content--active"),$(document).on("click",'[data-cookie-save="all"]',function(){recentlyViewedChangeCookie()}),$(document).on("click",'[data-cookie-save="custom"]',function(){$('[data-cookie-switch-api="functional"]').is(":checked")&&recentlyViewedChangeCookie()})):($(".recently-viewed__content--active-cookie").addClass("recently-viewed__content--active"),$("#recently-viewed-third").hasClass(".recently-viewed__list--active")&&setTimeout(function(){recentlyViewedCalcLeft(id),recentlyViewedInitSlick(id,!0)},10),$(document).on("click","[data-recently-viewed-init]",function(){var id=$(this).attr("data-recently-viewed-init");$("#"+id).addClass("recently-viewed__list--active"),"recently-viewed-third"===id&&setTimeout(function(){recentlyViewedCalcLeft(id),recentlyViewedInitSlick(id,!0),smoothScrollInitId(".smoothScroll--carinfobox")},10)})),$(document).on("click","#recently-viewed-hide",function(){$(".recently-viewed").slideUp(250),$("#recently-viewed-show").css("display","inline-flex")}),$(document).on("click","#recently-viewed-show",function(){$(".recently-viewed").slideDown(250),$("#recently-viewed-show").hide()}),
// Close button click
$(document).on("click",".saved-searches__close",function(){this.dispatchEvent(new CustomEvent("saved-searches-close",{bubbles:!0,detail:{search:$(this).data("search-name")}})),$(this).closest(".recommanded-cars-slider__item").remove()})}function recentlyViewedChangeCookie(){$(".recently-viewed__content").removeClass("recently-viewed__content--active"),$(".recently-viewed__content--set-cookie").addClass("recently-viewed__content--active")}function recentlyViewedInitSlick(id,infinite){var carsInRow=Math.floor((window.innerWidth-16)/307);$("#"+id).on("init",function(){recentlyViewedCalcLeft(id)}),$("#"+id+":not(.slick-initialized)").slick({slidesToShow:carsInRow,slideToScroll:1,arrows:!0,dots:!1,infinite:infinite,centerMode:!0,focusOnSelect:!1})}function recentlyViewedCalcLeft(id){var transform=$("#"+id+" .slick-track").css("transform");transform&&(transform=transform.split(","),-(transform=parseInt($.trim(transform[transform.length-2])))>window.innerWidth/2&&(transform+=16),transform*=-1,$("#"+id+" .slick-track").css("left",transform+"px"),$("#"+id).addClass("recently-viewed__list--active")),$("#"+id).find(".smoothScroll").each(function(){smoothScrollInitId("#"+$(this).attr("id"))})}function recommandedCarsSliderInit(){$(".recommanded-cars-slider:not(.recommanded-cars-slider--static):not(.recommanded-cars-slider--decline)").slick({slidesToShow:6,slidesToScroll:1,infinite:!1,arrows:!0,dots:!1,autoplay:!1,variableWidth:!0,prevArrow:'<button class="recommanded-cars-slider__btn recommanded-cars-slider__btn--prev"></button>',nextArrow:'<button class="recommanded-cars-slider__btn recommanded-cars-slider__btn--next"></button>',responsive:[{breakpoint:640,settings:{slidesToShow:1}},{breakpoint:1e3,settings:{slidesToShow:2}},{breakpoint:1220,settings:{slidesToShow:3}},{breakpoint:1600,settings:{slidesToShow:4}}]})}function rotatingslide(){$(".rotatingslide").each(function(){var thisElement=$(this),activeItem=0,itemsCount=$(this).find(".rotatingslideItem").length;$(this).find(".rotatingslideItem").eq(activeItem).addClass("active"),setInterval(function(){itemsCount-1<++activeItem&&(activeItem=0),thisElement.find(".rotatingslideItem").removeClass("active").eq(activeItem).addClass("active")},8e3)})}function selectboxSearch(){jQuery.expr[":"].icontains=function(a,i,m){return 0<=jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase())},$(document).on("input",".selectContent .selectContentSearch",function(){(1<$(this).val().length?($(this).parents(".selectContent").find(".selectContentLi span > span:not(.selectVarCheck)").parents(".selectContentLi").hide(),$(this).parents(".selectContent").find(".selectContentLi span > span:not(.selectVarCheck):icontains("+$(this).val()+")")):$(this).parents(".selectContent").find(".selectContentLi span > span:not(.selectVarCheck)")).parents(".selectContentLi").show()})}function selectboxChangeValue(thisElement){var selectboxActive=thisElement.find($("input:checked + span > span:not(.selectVarCheck)")),selectboxNumber=0,selectboxIsSubtitle=thisElement.find(".hfilterContentInputsSubtitle").length;thisElement.hasClass("selectWithTags")?(thisElement.parent().find(".selectTags").html(""),$(selectboxActive).each(function(){thisElement.parent().find(".selectTags").append('<span class="tag">'+$(this).html()+'<span class="tagClose" data-tag-select-remove="'+$(this).parents("li").attr("data-select-value")+'"><img src="/build/desktop/images/tag-close.svg" class="svg"></span></span>'),svg()})):(selectboxIsSubtitle?thisElement.find("button .hfilterContentInputsSubtitle").removeClass("hfilterContentInputsSubtitleDefault").html(""):thisElement.find("button").html("<span></span>"),$(selectboxActive).each(function(){-1==$.trim(thisElement.find("button span").html().split(", ")).indexOf($.trim($(this).html()))&&(0<selectboxNumber&&thisElement.find("button span").append(", "),"true"==$(this).parents("li").attr("data-select-defaultValue")?(selectboxIsSubtitle?thisElement.find("button .hfilterContentInputsSubtitle").addClass("hfilterContentInputsSubtitleDefault"):thisElement.find("button span")).html(thisElement.find("button").attr("data-default-title")):(selectboxIsSubtitle?thisElement.find("button .hfilterContentInputsSubtitle").removeClass("hfilterContentInputsSubtitleDefault"):thisElement.find("button span")).append($.trim($(this).html()))),selectboxNumber++}),""==thisElement.find("button span").html()&&(thisElement.find(".hfilterContentInputsSubtitle").length?thisElement.find("button .hfilterContentInputsSubtitle").addClass("hfilterContentInputsSubtitleDefault"):thisElement.find("button span")).html(thisElement.find("button").attr("data-default-title")))}function selectboxGenerateList(thisElement){var link1,link2;thisElement.hasClass("selectContentLi")||(link2=link1="",null!=thisElement.attr("data-select-link")&&(link1='<a class="selectContentLiLink" href="'+thisElement.attr("data-select-link")+'">',link2="</a>"),"true"==thisElement.parents(".select").attr("data-select-multiple")?thisElement.html('<label class="selectVar"><input type="checkbox" name="'+thisElement.parents(".select").attr("data-select-name")+'" value="'+thisElement.attr("data-select-value")+'" '+(thisElement.hasClass("active")?"checked":"")+'><span><span class="selectVarCheck"></span> <span>'+link1+thisElement.html()+link2+"</span></span></label>"):thisElement.html('<label class="selectVar"><input type="radio" name="'+thisElement.parents(".select").attr("data-select-name")+'" value="'+thisElement.attr("data-select-value")+'" '+(thisElement.hasClass("active")?"checked":"")+'><span><span class="selectVarCheck"></span> <span>'+link1+thisElement.html()+link2+"</span></span></label>"),thisElement.parents(".selectContent").hasClass("selectContentFilter")&&thisElement.find(".selectVar > span").append(thisElement.find(".selectVarCount")),selectboxChangeValue(thisElement.parents(".select")),thisElement.addClass("selectContentLi"))}function selectboxReload(selectID){null==selectID&&(selectID=""),$(".select"+selectID+" li:not(.selectContentTitle)").each(function(){selectboxGenerateList($(this))}),$(".select"+selectID).each(function(){selectboxChangeValue($(this))})}function selectbox(){var selectboxActive;$(".select").each(function(){$(this).css({"min-width":$(this).width()})}),$(".select li:not(.selectContentTitle)").each(function(){selectboxGenerateList($(this))}),$(document).on("change",".select",function(){selectboxChangeValue($(this)),"true"!=$(this).attr("data-select-multiple")&&($(this).find(".selectContent").slideUp(animateSpeed),$(this).find("button").removeClass("focus"))}),$(document).on("click",".select button",function(){var topPosition;$(".select .selectContent").slideUp(animateSpeed),selectboxActive=$(this).hasClass("focus")?0:1,$(".select button").removeClass("focus"),1==selectboxActive&&($(this).addClass("focus"),$(this).parents(".select").find(".selectContent").show().css("opacity","0"),topPosition=document.documentElement.scrollTop||document.body.scrollTop,($(this).parents(".select").find(".selectContent").hasClass("selectContent--always-top")||($(this).parents(".select").find(".selectContent").removeClass("selectContentTop"),topPosition+window.innerHeight<$(this).parents(".select").find(".selectContent").offset().top+$(this).parents(".select").find(".selectContent").outerHeight()))&&$(this).parents(".select").find(".selectContent").addClass("selectContentTop"),$(this).parents(".select").find(".selectContent").hide().css("opacity",""),$(this).parents(".select").find(".selectContent").slideDown(animateSpeed),$(this).parents(".select").find(".selectContentSearch").focus())}),$(document).on("click",function(e){0===$(e.target).closest(".select").length&&($(".select").find(".selectContent").slideUp(animateSpeed),$(".select button").removeClass("focus"))}),$(document).on("change",".select .selectVar input",function(){var test=$(this).parents(".selectContentLi").attr("data-select-value");$(this).parents(".selectContent").find('.selectContentLi[data-select-value="'+test+'"]').find(".selectVar input").prop("checked",$(this).is(":checked")),$(this).is(":checked")&&$(this).parents(".selectContentLi").addClass("active"),$(".select .selectVar input").each(function(){$(this).is(":checked")||$(this).parents(".selectContentLi").removeClass("active")})})}function selectboxTagClose(){$(document).on("click",".selectTags .tagClose",function(){$(this).parents(".selectTags").parent().find('.select li[data-select-value="'+$(this).attr("data-tag-select-remove")+'"] input').click().change(),$(this).parents(".tag").remove()})}function selectboxLink(){$(document).on("click",".selectContentLiLink",function(e){$(this).parents("label").find("input").click(),e.preventDefault()})}$(document).ready(function(){cebiaBox()}),$(document).ready(function(){changingText()}),$(document).ready(function(){checkbox()}),$(document).ready(function(){cookies()}),$(document).ready(function(){countdown()}),$(document).ready(function(){dragAndDrop()}),$(document).ready(function(){showExponeaTopBanner(),exponeaTopBannerScroll()}),$(function(){$(".fileUpload").change(function(){let itemWrapper=$(this).find(".fileUpload__item-wrapper");var inputFiles=$(this).find('input[type="file"]')[0].files;itemWrapper.find(".fileUpload__item").remove(),$.each(inputFiles,function(index,val){var format=val.name.split(".");let iconSrc="/build/desktop/images/icons/files/Universal_file.svg";"csv"==(format=format[format.length-1])?iconSrc="/build/desktop/images/icons/files/CSV_file.svg":"pdf"==format?iconSrc="/build/desktop/images/icons/files/PDF_file.svg":"gif"==format?iconSrc="/build/desktop/images/icons/files/GIF_file.svg":"jpg"==format||"jpeg"==format?iconSrc="/build/desktop/images/icons/files/JPG_file.svg":"png"==format?iconSrc="/build/desktop/images/icons/files/PNG_file.svg":"doc"!=format&&"docx"!=format||(iconSrc="/build/desktop/images/icons/files/Word_file.svg"),console.log(format),itemWrapper.append('<div data-file-name="'+val.name+'" class="fileUpload__item"><span><img src="'+iconSrc+'" class="svg icon"/>'+val.name+'</span><img src="/build/desktop/images/icons/close.svg" class="svg iconMin darkGrey fileUpload__item-remove"></div>'),svg()})}),$(document).on("click",".fileUpload__item-remove",function(){let input=$(this).parents(".fileUpload").find('input[type="file"]'),inputFiles=$(this).parents(".fileUpload").find('input[type="file"]')[0].files,newInputFiles=new DataTransfer,name=$(this).parents(".fileUpload__item").data("file-name");$.each(inputFiles,function(index,val){name!=val.name?newInputFiles.items.add(inputFiles[index]):name==val.name&&input.parents(".fileUpload").find('.fileUpload__item-wrapper .fileUpload__item[data-file-name="'+val.name+'"]').remove()}),input[0].files=newInputFiles.files})}),$(document).ready(function(){filter()}),$(document).ready(function(){fixedRecommander()}),$(document).ready(function(){setTimeout(function(){fixedbar()},10)}),$(document).ready(function(){gallery()}),$(document).ready(function(){garageLp()}),$(document).ready(function(){garageFixedHead(),garageCheckSettings(),garageInit(),$(".garageCompareSlider").length&&(garageCompareSliderControls(),garageCompareBest()),garageSettings(),garageMenuLine(),garageLogin(),garageTools(),updateGarageCars(),updateFiltrCars()}),$(document).ready(function(){setVw(),dataPage(),switchInputs(),showMore(),showRest(),select(),tabs(),multipleTabs(),hiden(),lazyAnchorScroll(),setTimeout(function(){lazyAnchorScroll()},100),nextStep(),progressSteps(),getScrollBarWidth(),scrolltop(),passwordStrength(),showPass(),btnNav(),brandModelSelect(),sortBy(),campaignSlider(),showBlock(),showSection(),boxNumbersSlider(),checkboxMessage(),radioChoices(),$(".resizableTextarea").each(function(){$(this).css("height","5px"),$(this).css("height",this.scrollHeight+"px")}),$(".resizableTextarea").on("input",function(){$(this).css("height","5px"),$(this).css("height",this.scrollHeight+"px")}),$(window).on("resize",function(){setVw()})}),$(document).ready(function(){googleReviews()}),window.addEventListener("message",function(event){event.data.translate&&(initGoogleTranslator(),setGoogleTranslator(event.data.translate,null,!1),$("body").addClass("hide-google-translate"))},!1),$(document).ready(function(){
//showGoogleTranslator();
-1<window.location.hash.indexOf("translate=")?(initGoogleTranslator(),setGoogleTranslator(window.location.hash.substring(window.location.hash.indexOf("translate=")+10,window.location.hash.indexOf("translate=")+12),null,!1)):-1<window.location.hash.indexOf("googtrans")?(initGoogleTranslator(),setGoogleTranslator(window.location.hash.substring(window.location.hash.indexOf("googtrans")+13,window.location.hash.indexOf("googtrans")+15),null,!1)):$.cookie("GoogleTranslator")&&"null"!=$.cookie("GoogleTranslator")&&(initGoogleTranslator(),setGoogleTranslator($.cookie("GoogleTranslator"),null,!1)),$("[data-change-language]").on("click",function(){setGoogleTranslator("null"==$(this).attr("data-change-language")?null:$(this).attr("data-change-language"),$(this).is("[data-href]")?$(this).attr("data-href"):null,!0)})}),$(document).ready(function(){graphOccupancyInit()}),$(document).ready(function(){headerRotating()}),$(document).ready(function(){hero()}),$(document).ready(function(){hotToastInit()}),$(()=>{iframeScrollOffset()}),$(document).ready(function(){setMapHeight()}),$(document).ready(function(){setTimeout(function(){observer()},500)}),$(document).scroll(function(){observer()}),$(document).ready(function(){listComparison()}),$(document).ready(function(){listGrid()}),$(document).ready(function(){loadEffect()}),$(document).ready(function(){login()}),$(document).ready(function(){search()}),$(document).ready(function(){multiselect()}),$(document).ready(function(){parallax()}),$(document).ready(function(){popup(),popupContentMain(),setTimeout(function(){$(".popup.popupBottom.popupBottomOpen").length&&$(".popup.popupBottom.popupBottomOpen").each(function(){window.parent.postMessage({message:"popupSize",value:[$(this).find(".popupSidebar").outerWidth(!0),$(this).find(".popupSidebar").outerHeight(!0)]},"*")})},800)}),$(document).ready(function(){priceCompare()}),$(document).ready(function(){recentlyViewed()}),window.addEventListener("message",function(event){event.data.cookiebarBtnClicked&&recentlyViewedChangeCookie()},!1),$(document).ready(function(){recommandedCarsSliderInit()}),$(document).ready(function(){rotatingslide()}),$(document).ready(function(){selectbox(),selectboxSearch(),selectboxTagClose(),selectboxLink()}),$(document).ready(function(){var sliderTicker,sliderSlides=0,sliderActive=0,sliderZIndex=3,sliderSpeed=7e3;function selectStep(thisElement){(thisElement=thisElement).parents(".mainSlider").find(".sliderContent li img").eq(sliderActive).attr("src",thisElement.parents(".slider").find(".sliderContent li img").eq(sliderActive).data("src")),thisElement.clearQueue(),thisElement.stop(),setTimeout(function(){10<sliderZIndex&&(sliderZIndex=3,thisElement.parents(".mainSlider").find(".sliderContent li").css({"z-index":""}),thisElement.parents(".mainSlider").find(".sliderContent li").eq(sliderActive-1).css({"z-index":sliderZIndex})),sliderZIndex++,thisElement.parents(".mainSlider").find(".sliderNav li").removeClass("active"),thisElement.parents(".mainSlider").find(".sliderNav li").eq(sliderActive).addClass("active"),thisElement.parents(".mainSlider").find(".sliderContent li").removeClass("active"),thisElement.parents(".mainSlider").find(".sliderContent li").eq(sliderActive).addClass("active").css({"padding-left":"3840px",opacity:0,"z-index":sliderZIndex}).animate({"padding-left":0,opacity:1},500),thisElement.parents(".mainSlider").find(".sliderContent li img").eq(sliderActive).addClass("active").css({opacity:0}).animate({opacity:1},750)},300)}function sliderTick(thisElement){1<$(".mainSlider .sliderContent li").length&&(++sliderActive==sliderSlides&&(sliderActive=0),selectStep(thisElement))}1<$(".mainSlider .sliderContent li").length&&(sliderTicker=setInterval(function(){sliderTick($(".mainSlider").find(".sliderContent li"))},sliderSpeed)),$(".mainSlider").each(function(){var sliderCookieId,thisElement=$(this).find(".sliderContent li");if(sliderSlides=$(this).find(".sliderContent li").length,$(this).data("slider-active")&&(sliderActive=$(this).data("slider-active")),$(this).data("slider-cookie")&&(sliderCookieId=$(this).data("data-slider-cookie-id")?$(this).data("data-slider-cookie-id"):"",$.cookie("sliderActive"+sliderCookieId)?$.cookie("sliderActive"+sliderCookieId,parseInt($.cookie("sliderActive"+sliderCookieId))+1):$.cookie("sliderActive"+sliderCookieId,0),parseInt($.cookie("sliderActive"+sliderCookieId))>=sliderSlides&&$.cookie("sliderActive"+sliderCookieId,0),sliderActive=$.cookie("sliderActive"+sliderCookieId)),$(this).data("slider-speed")&&(sliderSpeed=$(this).data("slider-speed")),1<sliderSlides){$(this).append('<ul class="sliderNav"></ul>'),$(this).append('<div class="sliderArrows"><span class="sliderArrow slickArrow slickPrev left">Left</span><span class="sliderArrow slickArrow slickNext right">Right</span></div>');for(var i=0;i<sliderSlides;i++)$(this).find(".sliderNav").append("<li></li>")}selectStep(thisElement)}),$(".mainSlider").hover(function(){clearInterval(sliderTicker)},function(){var thisElement=$(this).find(".sliderContent li");sliderTicker=setInterval(function(){sliderTick(thisElement)},sliderSpeed)}),$(".mainSlider .sliderNav li").on("click",function(){var thisElement=$(this);sliderActive=thisElement.index(),selectStep(thisElement)}),$(".mainSlider .sliderArrows .sliderArrow").on("click",function(){var thisElement=$(this);thisElement.hasClass("left")?sliderActive--:sliderActive++,(sliderActive=sliderActive==sliderSlides?0:sliderActive)<0&&(sliderActive=sliderSlides-1),clearInterval(sliderTicker),selectStep(thisElement)})});let svgCache=new Map,fetchCache=new Map;// url → parsed <svg>
async function svg(){
/* Skip if already replaced everything on the page */
var img,imgElements=document.querySelectorAll("img.svg:not(.svg--loaded)");if(imgElements.length){for(let url of[...new Set(Array.from(imgElements,img=>img.getAttribute("src")))])fetchCache.has(url)||
/* Put the promise in the map *before* starting fetch */
fetchCache.set(url,fetch(url).then(r=>r.ok?r.text():Promise.reject(r.statusText)).then(txt=>{txt=(new DOMParser).parseFromString(txt,"image/svg+xml").querySelector("svg");if(txt)return txt.removeAttribute("xmlns:a"),svgCache.set(url,txt),txt;throw new Error("No <svg> root in "+url)}).catch(err=>(console.warn("SVG load failed for "+url,err),null)));
/* Replace each <img> when its promise resolves */for(img of imgElements){var url=img.getAttribute("src"),url=await fetchCache.get(url);url?(url=url.cloneNode(!0),img.id&&(url.id=img.id),img.className&&url.setAttribute("class",img.className+" svgReplaced"),img.style.cssText&&(url.style.cssText=img.style.cssText),!url.hasAttribute("viewBox")&&url.hasAttribute("width")&&url.hasAttribute("height")&&url.setAttribute("viewBox",`0 0 ${url.getAttribute("width")} `+url.getAttribute("height")),url.classList.add("svg--loaded"),img.replaceWith(url)):img.classList.add("svg--error")}}
/* Init, or share one fetch per unique URL */}function tabSlider(){function tabSliderChange(thisElement,index){thisElement.find(".tab-slider__navigation-item").removeClass("tab-slider__navigation-item--active"),thisElement.find(".tab-slider__navigation-item").eq(index).addClass("tab-slider__navigation-item--active"),thisElement.find(".tab-slider__item").removeClass("tab-slider__item--active"),thisElement.find(".tab-slider__item").eq(index).addClass("tab-slider__item--active")}$(".tab-slider:not(.tab-slider--init)").each(function(){var active=0;$(".tab-slider__item--active").length&&(active=$(".tab-slider__item--active").index()),tabSliderChange($(this),active),$(this).find(".tab-slider__main").append('<button class="tab-slider__arrow tab-slider__arrow--prev"></button>'),$(this).find(".tab-slider__main").append('<button class="tab-slider__arrow tab-slider__arrow--next"></button>'),$(this).addClass("tab-slider--init")}),$(document).on("click",".tab-slider__navigation-item",function(){var active=$(this).index();tabSliderChange($(this).parents(".tab-slider"),active)}),$(document).on("click",".tab-slider__arrow",function(){var direction=$(this).hasClass("tab-slider__arrow--prev")?"prev":"next",parentEl=$(this).parents(".tab-slider"),active=parentEl.find(".tab-slider__item--active").index(),active="prev"==direction?0<active?active-1:parentEl.find(".tab-slider__item").length-1:active<parentEl.find(".tab-slider__item").length-1?active+1:0;tabSliderChange(parentEl,active)})}function tabCollapse(){$(document).on("click",".tabCollapse .tabCollapseAnchor",function(){var $tabCollapse=$(this).closest(".tabCollapse");$(this).hasClass("active")?($(this).parent().find(".tabCollapseContent").slideUp(200),$(this).removeClass("active")):($tabCollapse.hasClass("tabCollapseSingle")&&($tabCollapse.find(".tabCollapseContent").slideUp(200),$tabCollapse.find(".tabCollapseAnchor").removeClass("active")),$(this).parent().find(".tabCollapseContent").slideDown(200),$(this).addClass("active"),$tabCollapse.find(".multipleTab").length&&($(this).parent().find(".multipleTabAnchor").eq(1).click(),$(this).parent().find(".multipleTabAnchor").eq(0).click()))}),$(".tabCollapse").each(function(){$(this).find(".tabCollapseAnchor:not(.active)").parent().find(".tabCollapseContent").hide()})}function tabCollapseMore(){$(".tabCollapse[data-collapse-max]").each(function(){var maxNumber=parseInt($(this).attr("data-collapse-max")),itemsLength=$(this).children().length,moreText=$(this).attr("data-collapse-show-more"),lessText=$(this).attr("data-collapse-show-less");maxNumber<itemsLength&&($(this).parents(".tabCollapseWrap").append('<div class="tab-collapse-more"><span class="tab-collapse-more__content"><span class="tab-collapse-more__less">'+lessText+'</span><span class="tab-collapse-more__more">'+moreText+'</span> <img src="/build/desktop/images/icons/arrowAngle.svg" alt="#" class="tab-collapse-more__icon svg"></span></div>'),$(this).parents(".tabCollapseWrap").find(".tabCollapse[data-collapse-max] > li:nth-child(1n+"+(maxNumber+1)+")").addClass("hidden").addClass("toggling"),svg())}),$(document).on("click",".tab-collapse-more__content",function(){$(this).toggleClass("tab-collapse-more__content--active"),$(this).parents(".tabCollapseWrap").find(".tabCollapse[data-collapse-max] > li.toggling").toggleClass("hidden")})}function tabSwitch(){$(".tabSwitchHorizontalBoxes").each(function(){$(this).find(".tabSwitchContainer").addClass("horizontal"),$(this).find(".tabSwitch").removeClass("white").removeClass("center"),$(this).find(".tabSwitchContentItem .primaryBoxes").removeClass("primaryBoxes").find(".primaryBox").removeClass("primaryBox").addClass("box"),$(this).find(".primaryBoxIcon").removeClass(".primaryBoxIcon").addClass("tabSwitchContainerIcon"),$(this).find(".svg").removeClass("white").removeClass("icon").addClass("primary"),$(this).find("h2").remove()}),$(".tabSwitch:not(.pswpSwitch) li").click(function(){$(this).parent().find("li").removeClass("active"),$(this).addClass("active"),$(this).parents(".tabSwitchContainer").find(".tabSwitchContent .tabSwitchContentItem").hide(),$(this).parents(".tabSwitchContainer").find(".tabSwitchContent .tabSwitchContentItem").eq($(this).index()).fadeIn(300);var iframe=$(this).parents(".tabSwitchContainer").find(".tabSwitchContent .tabSwitchContentItem").eq($(this).index()).find("iframe[data-src]");iframe.length&&setTimeout(function(){iframe.attr("src",iframe.attr("data-src")).removeAttr("data-src")},1),$(this).find(".radioTypeChange").length&&$(this).find(".radioTypeChange").prop("checked",!0).change()}),$(".tabSwitch.pswpSwitch li").click(function(){$(".pswp__button--close").click()}),$(".tabSwitchContent").each(function(){$(this).find(".tabSwitchContentItem:gt(0)").hide()})}// url → Promise<svg|null>
document.addEventListener("DOMContentLoaded",svg),window.svg=svg,$(document).ready(function(){tabSlider()}),$(document).ready(function(){tabCollapse(),tabCollapseMore()}),$(document).ready(function(){tabSwitch()});var testimonialsHighestElementPrevArray=[],testimonialsColumns=window.innerWidth<1300?3:4;function testimonialsInit(){$(".testimonials .item").eq(0).hasClass("loaded")?(testimonialsHighestElement=testimonialsHighestElementPrev,$(".testimonials .item.loaded").addClass("exception"),$(testimonialsHighestElementPrevArray).each(function(){$(this).removeClass("exception")}),testimonialsHighestElementPrevArray=[]):(testimonialsHighestElement=$(".testimonials .item").eq(0),testimonialsLowestElement=$(".testimonials .item").eq(0));var mansoryCount=$(".testimonials .item").length;if(!$(".testimonials .item").eq(testimonialsColumns-1).hasClass("loaded"))for(var i=0;i<=testimonialsColumns-1;i++)$(".testimonials .item").eq(i).outerHeight(!0)<testimonialsHighestElement.outerHeight(!0)&&(testimonialsHighestElement=$(".testimonials .item").eq(i)),$(".testimonials .item").eq(i).addClass("loaded").css("opacity","1");!function testimonialsGetPosition(){var nextLoaded=$(".testimonials .item").eq($(".testimonials .item.loaded").length);nextLoaded.length&&(nextLoaded.hasClass("loading")&&0==testimonialsHighestElementPrevArray.length&&(testimonialsHighestElementPrev=testimonialsHighestElement,$(".testimonials .item.loaded:not(.exception)").each(function(){testimonialsHighestElementPrevArray.push($(this))})),nextLoaded.css({top:testimonialsHighestElement.outerHeight(!0)+testimonialsHighestElement.position().top+"px",left:testimonialsHighestElement.offset().left-$(".testimonials").offset().left}).addClass("loaded").css("opacity","1"),testimonialsHighestElement.addClass("exception"),testimonialsHighestElement=nextLoaded,$(".testimonials .item.loaded:not(.exception)").each(function(){$(this).outerHeight(!0)+$(this).position().top<testimonialsHighestElement.outerHeight(!0)+testimonialsHighestElement.position().top&&(testimonialsHighestElement=$(this)),$(this).outerHeight(!0)+$(this).position().top>testimonialsLowestElement.outerHeight(!0)+testimonialsLowestElement.position().top&&(testimonialsLowestElement=$(this),$(".testimonials").css("height",testimonialsLowestElement.position().top+testimonialsLowestElement.outerHeight(!0)),window.parent.postMessage({message:"iframeHeight",value:document.body.clientHeight+1},"*"))}),mansoryCount!=testimonialsColumns+1)&&(mansoryCount--,testimonialsGetPosition())}()}function timepicker(){$(".timepickerInput").on("click",function(){$(this).parents(".timepicker").find(".timepickerSelect").slideToggle(animateSpeed)}),$(document).on("click",function(e){0===$(e.target).closest(".timepicker").length&&$(".timepicker").find(".timepickerSelect").slideUp(animateSpeed)}),$(".timepicker").each(function(){$(this).find(".timepickerInput").html($(this).find(".timepickerSelect input:checked").parents("li").find(".timepickerSelectValue").html())}),$(document).on("change",".timepickerSelect input",function(){$(this).parents(".timepicker").find(".timepickerInput").html($(this).parents(".timepickerSelect").find("input:checked").parents("li").find(".timepickerSelectValue").html()),$(".timepicker").find(".timepickerSelect").slideUp(animateSpeed)})}function topnav(){var topPosition,sections,topnav,topnavHeight,topnavChangePosition,lastScrollTop,topnavDiv=$(".topnav");function topnavFunction(){topPosition=document.documentElement.scrollTop||document.body.scrollTop,
// $('.topnavLeft a').each(function () {
// var currLink = $(this);
// var refElement = $(currLink.attr("href"));
//
// if ($('.sidebar').offset().top + $('.sidebar').outerHeight(true) - 50 < topPosition) {
// $('.topnavLeft a').removeClass("active");
// return false;
// } else {
// if (refElement.offset().top - 85 < topPosition) {
// $('.topnavLeft a').removeClass("active");
// currLink.addClass("active");
// }
// }
// });
(null!=$(".topnav").attr("data-start")?(topnavStart=$($(".topnav").attr("data-start")).offset().top-17,$(".footer").offset().top):(topnavStart=$(".sidebar").offset().top-17,$(".sidebar").offset().top+$(".sidebar").outerHeight(!0)-$(".fixedBar").outerHeight(!0)-topnavHeight))<=topPosition?($(".topnav").css({visibility:"visible",opacity:1}),topnavChangePosition=1):topnavStart<=topPosition?1==topnavChangePosition&&($(".topnav").css({visibility:"visible",opacity:1}),topnavChangePosition=0):($(".topnav").css({visibility:"hidden",opacity:0}),topnavChangePosition=1);var topnavStart,curPos=$(this).scrollTop();sections.each(function(){var top=$(this).offset().top-topnavHeight,bottom=top+$(this).outerHeight();top<=curPos&&curPos<=bottom&&(topnav.find("a").removeClass("active"),sections.removeClass("active"),$(this).addClass("active"),topnav.find('a[href="#'+$(this).attr("id")+'"]').addClass("active"))})}topnavDiv.length&&(topPosition=document.documentElement.scrollTop||document.body.scrollTop,sections=$(".contentWithSidebar .topNavTitle"),topnav=$(".topnavLeft"),topnavHeight=topnavDiv.length?topnavDiv.outerHeight()+17:17,topnavChangePosition=1,lastScrollTop=0,topnavFunction(),$(window).on("scroll",function(){topnavFunction();var st,translateBar=0,headerHeight=$(".header").outerHeight()-1;$(".goog-te-banner-frame").length&&"none"!=$(".skiptranslate").css("display")&&(translateBar=parseInt($(".goog-te-banner-frame").outerHeight())),$(".header").hasClass("scroll")?(headerHeight<(st=$(this).scrollTop())&&lastScrollTop<st?($(".header").addClass("hide"),$(".topnav").css("top",translateBar)):($(".header").removeClass("hide"),$(".topnav").css("top",headerHeight+translateBar)),lastScrollTop=st):$(".header").hasClass("static")?$(".topnav").css("top",translateBar):$(".topnav").css("top",headerHeight+translateBar)}))}function tvVideos(){var videoWrap=$(".tv-videos")[0],video=$(".tv-videos__video")[0],autoplay=!!$(".tv-videos__video").attr("autoplay"),videoInRow=(window.innerWidth-16)/320,defaultVolume=.7;$(".tv-videos__main").each(function(){$(this).append('<div class="tv-videos__play"><img src="/build/desktop/images/icons/video-player.svg" alt="Play" class="tv-videos__play-icon svg"></div>'),svg()});for(var videos=$(".tv-videos__slider").find(".tv-videos__slider-item"),i=0;i<videos.length;i++)$(videos[i]).remove();if(0!=(i=videos.length)){for(;--i;){var j=Math.floor(Math.random()*(i+1)),tempi=videos[i],tempj=videos[j];videos[i]=tempj,videos[j]=tempi}for(i=0;i<videos.length;i++)$(videos[i]).appendTo(".tv-videos__slider");setQuality($(".tv-videos__slider").find(".tv-videos__slider-item").eq(0).find("[data-tv-src]"),!1),$(".tv-videos__main").append('<img class="tv-videos__thumbnail" src="'+$(".tv-videos__slider").find(".tv-videos__slider-item").eq(0).find("img").attr("src")+'" alt="">'),autoplay?(tvVideosPlay(),$(".tv-videos__video").addClass("tv-videos__video--active")):tvVideosPause()}function tvVideosSetHeight(){videoHeight=850<(videoHeight=$(".tv-videos__main").outerWidth()/16*9)?850:videoHeight,$(".tv-videos__main").css("min-height",videoHeight)}function tvVideosChangeVolume(volume){video.volume=volume,video.muted=!1,(0==volume?($("[data-tv-volume]").hide(),$('[data-tv-volume="0"]')):0<volume&&volume<.5?($("[data-tv-volume]").hide(),$('[data-tv-volume="50"]')):($("[data-tv-volume]").hide(),$('[data-tv-volume="100"]'))).show(),$(".tv-videos__volume-input").val(100*volume),$(".tv-videos__volume-input").css("background-size",100*volume+"% 100%")}function tvVideosPlay(){video.play(),$(".tv-videos__thumbnail").addClass("tv-videos__thumbnail--hidden"),$(".tv-videos__main").removeClass("tv-videos__main--paused"),$(".tv-videos__play").removeClass("tv-videos__play--active")}function tvVideosPause(){video.pause(),$(".tv-videos__main").addClass("tv-videos__main--paused"),setTimeout(function(){$(".tv-videos__play").addClass("tv-videos__play--active")},250)}function setQuality(el,directQuality){let quality,time;directQuality?(quality=directQuality,time=video.currentTime):quality=(el=>{let quality;var downlink;return el.attr("data-tv-src-1080p")&&el.attr("data-tv-src-720p")&&el.attr("data-tv-src-480p")&&el.attr("data-tv-src-360p")?(downlink=(()=>{if("connection"in navigator){let connection=navigator.connection;return(connection=!(connection=!connection&&"mozConnection"in navigator?navigator.mozConnection:connection)&&"webkitConnection"in navigator?navigator.webkitConnection:connection).downlink}return null})(),quality=downlink&&8<downlink?"original":downlink&&6<downlink?"1080p":downlink&&3<downlink?"720p":downlink&&1<downlink?"480p":"360p",el.parents(".tv-videos").find(".tv-videos__video").attr("data-tv-src",el.attr("data-tv-src")).attr("data-tv-src-1080p",el.attr("data-tv-src-1080p")).attr("data-tv-src-720p",el.attr("data-tv-src-720p")).attr("data-tv-src-480p",el.attr("data-tv-src-480p")).attr("data-tv-src-360p",el.attr("data-tv-src-360p"))):quality="original",quality})(el),"original"==quality?$(video).find("source").attr("src",el.attr("data-tv-src")):"1080p"==quality?$(video).find("source").attr("src",el.attr("data-tv-src-1080p")):"720p"==quality?$(video).find("source").attr("src",el.attr("data-tv-src-720p")):"480p"==quality?$(video).find("source").attr("src",el.attr("data-tv-src-480p")):"360p"==quality&&$(video).find("source").attr("src",el.attr("data-tv-src-360p")),video.load(),directQuality&&(video.currentTime=time)}$(".tv-videos__slider").slick({slidesToShow:videoInRow,slideToScroll:videoInRow/2,arrows:!0,dots:!1,infinite:!1,variableWidth:!0,prevArrow:'<button class="tv-videos__slider-btn tv-videos__slider-btn--prev"></button>',nextArrow:'<button class="tv-videos__slider-btn tv-videos__slider-btn--next"></button>'}),tvVideosSetHeight(),$(window).on("resize",function(){tvVideosSetHeight()}),$(document).on("input",".tv-videos__volume-input",function(){tvVideosChangeVolume(parseInt($(this).val())/100),defaultVolume=parseInt($(this).val())/100}),$(document).on("change",".tv-videos__volume-input",function(){var newVolume=parseInt($(this).val())/100;tvVideosChangeVolume(newVolume),defaultVolume=.2<newVolume?newVolume:.2}),$(document).on("click",".tv-videos__video",function(){$(".tv-videos__video").hasClass("tv-videos__video--active")||(tvVideosChangeVolume(defaultVolume),$(".tv-videos__video").addClass("tv-videos__video--active")),(video.paused?(setTimeout(function(){$(".tv-videos__circle").addClass("tv-videos__circle--play").removeClass("tv-videos__circle--pause")},250),tvVideosPlay):($(".tv-videos__circle").addClass("tv-videos__circle--pause").removeClass("tv-videos__circle--play"),tvVideosPause))()}),$(document).on("click",".tv-videos__list-anchor",function(){$(".tv-videos__list").toggleClass("tv-videos__list--hidden")}),$(".tv-videos__video").on("ended",function(){$(".tv-videos__list").removeClass("tv-videos__list--hidden")}),$(document).on("click","[data-tv-src]:not(.tv-videos__video)",function(e){$(e.target).hasClass("tv-videos__slider-link")||(setQuality($(this),!1),tvVideosPlay(),tvVideosChangeVolume(0==video.volume||video.muted?defaultVolume:video.volume))}),$(document).on("click",".tv-videos__button[data-tv-sound]",function(){tvVideosChangeVolume(0==video.volume||video.muted?defaultVolume:0)}),$(document).on("click",".tv-videos__button[data-tv-fullscreen]",function(){"true"==$(this).attr("data-tv-fullscreen")?($(".tv-videos").addClass("tv-video--fullscreen"),videoWrap.requestFullscreen?videoWrap.requestFullscreen():videoWrap.mozRequestFullScreen?videoWrap.mozRequestFullScreen():videoWrap.webkitRequestFullscreen?videoWrap.webkitRequestFullscreen():videoWrap.msRequestFullscreen&&videoWrap.msRequestFullscreen(),$(this).attr("data-tv-fullscreen","false"),setTimeout(function(){videoFullscreen=!0},1)):($(".tv-videos").removeClass("tv-video--fullscreen"),document.exitFullscreen?document.exitFullscreen():document.webkitExitFullscreen?document.webkitExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.msExitFullscreen&&document.msExitFullscreen(),$(this).attr("data-tv-fullscreen","true"),setTimeout(function(){videoFullscreen=!1},1))}),$(document).on("click",".tv-videos__settings",function(){$(this).toggleClass("tv-videos__settings--active")}),$(document).on("click",".tv-videos__settings-list li",function(){setQuality($(this).parents(".tv-videos").find(".tv-videos__video"),$(this).attr("data-video-quality")),tvVideosPlay()}),$(".tv-videos__slider-title").each(function(){var content=$(this).html();$(this).html('<span class="tv-videos__slider-title-inner">'+content+"</span>")}),$(document).on("mouseenter",".tv-videos__slider-content",function(){var time,titleElement=$(this).find(".tv-videos__slider-title"),titleInnerElement=$(this).find(".tv-videos__slider-title-inner"),boxWidth=$(this).outerWidth()-40,titleInnerElement=titleInnerElement.outerWidth();titleElement.hasClass("tv-videos__slider-title--active")||titleInnerElement<=boxWidth||(time=(titleInnerElement=titleInnerElement-boxWidth)/100*3500,titleElement.addClass("tv-videos__slider-title--active"),titleElement.css("transition","transform "+time+"ms linear"),titleElement.css("transform","translateX("+-titleInnerElement+"px)"),setTimeout(function(){titleElement.css("transform","translateX(0)"),setTimeout(function(){titleElement.removeClass("tv-videos__slider-title--active")},time)},3e3+time))})}$(document).ready(function(){timepicker()}),$(document).ready(function(){topnav()}),$(document).ready(function(){tvVideos()});var uploadImageValues=[],uploadDeletedPhotos="";function dragNDropUpload(uploadID){function uploadWrapChangeVal(inputVal,inputLabel){var uploadWrapFormat;""!==inputVal?"jpg"==(uploadWrapFormat=inputVal.split("."))[1]||"png"==uploadWrapFormat[1]||"jpeg"==uploadWrapFormat[1]||"tiff"==uploadWrapFormat[1]||"raw"==uploadWrapFormat[1]||"bmp"==uploadWrapFormat[1]||"pdf"==uploadWrapFormat[1]?(inputLabel.parent().find(".uploadWrapIcon").animate({opacity:"0"},animateSpeed),inputLabel.parent().find(".uploadWrapFormat").html('<img src="/build/desktop/images/icons/file.svg" alt="#" class="uploadWrapIcon icon svg primary">').animate({opacity:"1"},animateSpeed),inputLabel.find(".uploadWrapText").hide(),inputLabel.find(".uploadWrapValue").html(inputVal),inputLabel.parent().find(".uploadWrapDone").clearQueue(),inputLabel.parent().find(".uploadWrapDone").stop(),inputLabel.parent().find(".uploadWrapDone").css({opacity:"0"}),inputLabel.parent().find(".uploadWrapDone").animate({opacity:"1"},animateSpeed),svg()):inputLabel.find("input").val(""):(inputLabel.parent().find(".uploadWrapIcon").animate({opacity:"1"},animateSpeed),inputLabel.parent().find(".uploadWrapFormat").html("").animate({opacity:"0"},animateSpeed),inputLabel.find(".uploadWrapText").show(),inputLabel.find(".uploadWrapValue").html(""),inputLabel.parent().find(".uploadWrapDone").clearQueue(),inputLabel.parent().find(".uploadWrapDone").stop(),inputLabel.parent().find(".uploadWrapDone").css({opacity:"0"}))}$("#"+uploadID).length&&(document.getElementById(uploadID).ondragover=document.getElementById(uploadID).ondragenter=function(evt){evt.preventDefault()},$("#"+uploadID+" label").bind({dragenter:function(ev){$(this).parents("#"+uploadID).addClass("hover"),0<$(this).parents("#"+uploadID).find(".uploadWrapValue").html().length&&($(this).parents("#"+uploadID).find(".uploadWrapIcon").css("opacity","1"),$(this).parents("#"+uploadID).find(".uploadWrapFormat").css("opacity","0"),$(this).parents("#"+uploadID).find(".uploadWrapClose").css({opacity:"0"}),$(this).parents("#"+uploadID).find(".uploadWrapDone").css({opacity:"0"}))},dragleave:function(){$(this).parents("#"+uploadID).removeClass("hover"),$(this).parents("#"+uploadID).find(".uploadWrapValue").length<=0&&($(this).parents("#"+uploadID).find(".uploadWrapIcon").css("opacity","0"),$(this).parents("#"+uploadID).find(".uploadWrapFormat").css("opacity","1"))}}),$("#"+uploadID).mouseleave(function(){$(this).removeClass("hover")}),document.getElementById(uploadID).ondragend=function(evt){$(this).removeClass("hover")},document.getElementById(uploadID).ondrop=function(evt){$(this).find("input").val(""),uploadWrapChangeVal("",$(this).find("label")),document.getElementById($(this).find("input").attr("id")).files=evt.dataTransfer.files,$(this).removeClass("hover");var test=$(this).find("input").val().split("\\");uploadWrapChangeVal(test[test.length-1],$(this).find("label")),$(this).find("input").change(),evt.preventDefault()},$("#"+uploadID+" input").change(function(){var test=$(this).val().split("\\");uploadWrapChangeVal(test[test.length-1],$(this).parent())}))}function dragNDropUploadMultiple(uploadID){$("#"+uploadID).length&&(document.getElementById(uploadID).ondragover=document.getElementById(uploadID).ondragenter=function(evt){evt.preventDefault()},$("#"+uploadID+" label").bind({dragenter:function(ev){$(this).parents("#"+uploadID).addClass("hover")},dragleave:function(){$(this).parents("#"+uploadID).removeClass("hover")}}),$("#"+uploadID).mouseleave(function(){$(this).removeClass("hover")}),document.getElementById(uploadID).ondragend=function(evt){$(this).removeClass("hover")},document.getElementById(uploadID).ondrop=function(evt){document.getElementById($(this).find("input").attr("id")).files=evt.dataTransfer.files,$(this).find("input").change(),evt.preventDefault()},$("#"+uploadID+" input").change(function(){(uploadID=>{uploadImageValues=[],uploadDeletedPhotos="",$('[data-uploader-photos="'+uploadID+'"]').html("");for(var i=0;i<$("#"+uploadID).find("input")[0].files.length;i++){var reader=new FileReader;reader.onload=function(e){$('[data-uploader-photos="'+uploadID+'"]').append('<div class="uploaderPhotosImg"><img src="'+e.target.result+'" alt="#"><span class="uploaderPhotosImgDelete"><img src="/build/mobile/images/icons/close.svg" class="svg white"></span></div>'),svg(),uploadImageValues.push(e.target.result)},reader.readAsDataURL($("#"+uploadID).find("input")[0].files[i])}})(uploadID)}))}function dragNDropUploadMultipleDelete(){$(document).on("click",".uploaderPhotosImgDelete",function(){var uploadID=$(this).parents("[data-uploader-photos]").attr("data-uploader-photos");uploadDeletedPhotos+=uploadImageValues.indexOf($(this).parents(".uploaderPhotosImg").find("img").attr("src"))+"-",$("#"+uploadID+"FakeInput").val(uploadDeletedPhotos.slice(0,-1)),$(this).parents(".uploaderPhotosImg").remove()})}function yearselect(){$(".yearselect > li > span").on("click",function(){$(".yearselect > li").removeClass("active"),$(this).parents("li").addClass("active")}),$(document).on("click",function(e){0===$(e.target).closest(".yearselect > li").length&&$(".yearselect > li").removeClass("active")})}
/* ------------------ Components - END ------------------ */
/* ----------------------- Plugin ----------------------- */
/*
_ _ _ _
___| (_) ___| | __ (_)___
/ __| | |/ __| |/ / | / __|
\__ \ | | (__| < _ | \__ \
|___/_|_|\___|_|\_(_)/ |___/
|__/
Version: 1.6.0
Author: Ken Wheeler
Website: http://kenwheeler.github.io
Docs: http://kenwheeler.github.io/slick
Repo: http://github.com/kenwheeler/slick
Issues: http://github.com/kenwheeler/slick/issues
*/function jqueryAutocomplete(data,url){$("#search-autocomplete").autocomplete({lookup:data,
// serviceUrl: 'https://www.mototechna.cz/get-suggestions',
// dataType: 'json',
// params: urlData.params,
triggerSelectOnValidInput:!1,autoSelectFirst:!0,showNoSuggestionNotice:!0,width:"flex",deferRequestBy:200,noSuggestionNotice:$("[data-autocomplete-notfound]").attr("data-autocomplete-notfound"),formatResult:function(suggestion,currentValue){var pattern="("+currentValue.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&")+")",currentValue=(suggestion.order=suggestion.value.toLowerCase().indexOf(currentValue.toLowerCase()),suggestion.value.replace(new RegExp(pattern,"gi"),"<strong>$1</strong>").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/<(\/?strong)>/g,"<$1>")),pattern=suggestion.dataMakeId,modelId=suggestion.dataModelId,[urlWithoutHash,hash]=url.split("#"),[urlWithoutHash,queryString]=urlWithoutHash.split("?"),queryString=new URLSearchParams(queryString),hash=(queryString.append("make",pattern),queryString.append("model",modelId),new URLSearchParams(hash)),pattern=(hash.append("make",pattern),hash.append("model",modelId),urlWithoutHash+"?"+queryString.toString());return'<a href="'+(pattern+="#"+hash.toString())+'" '+suggestion.data+' class="search-result '+(suggestion.active?"search-result--active":"")+'">'+currentValue+"</a>"},onSelect:function(suggestion){$(".header__search-tags").addClass("header__search-tags--active").append('<span class="tag mv0 notranslate">'+suggestion.value+' <span class="tagClose" data-autocomplete-remove="'+suggestion.modelid+"-"+suggestion.makeid+'"><img src="/build/desktop/images/tag-close.svg" alt="" class="svg"></span></span>');for(var i=0;i<data.length;i++)data[i].modelid==suggestion.modelid&&data[i].makeid==suggestion.makeid&&(data[i].active=!0);
//$('#search-autocomplete').val('');
svg()}}),$(document).on("click","[data-autocomplete-remove]",function(){$(this).parents(".tag").remove(),0==$(".header__search-tags .tag").length&&$(".header__search-tags").removeClass("header__search-tags--active");for(var modelMake=$(this).attr("data-autocomplete-remove").split("-"),i=0;i<data.length;i++)data[i].modelid==modelMake[0]&&data[i].makeid==modelMake[1]&&(data[i].active=!1)})}
/* -------------------- Plugin - END -------------------- */function smoothScrollInitArrows(thisElement){var marginBottom=thisElement.css("margin-bottom"),paddingBottom=thisElement.find(".smoothScrollItems").css("padding-bottom"),marginBottom=marginBottom?parseInt(marginBottom):0,paddingBottom=paddingBottom?parseInt(paddingBottom):0;marginBottom&&marginBottom<0&&paddingBottom&&thisElement.find(".arrow").css("bottom",paddingBottom+"px");
// thisElement.find('.arrow.right').addClass('arrow--active');
}function smoothScrollInitId(id){$(".smoothScroll"+id).each(function(){$(this).find(".arrow").length||($(this).prepend('<div class="arrow left"><img src="/build/desktop/images/icons/arrowAngle.svg" class="svg iconMin primaryAlt"></div>'),$(this).append('<div class="arrow right"><img src="/build/desktop/images/icons/arrowAngle.svg" class="svg iconMin primaryAlt"></div>'),smoothScrollInitArrows($(this))),$(this).find(".smoothScrollInner").width()<$(this).find(".smoothScrollItems").width()?$(this).find(".arrow.right").show().addClass("arrow--active"):$(this).find(".arrow.right").hide().removeClass("arrow--active")});$(".smoothScroll"+id+" .arrow").unbind(),$(".smoothScroll"+id+" .arrow").on("click",function(e){var smoothScrollPosition=$(this).parents(".smoothScroll").find(".smoothScrollInner").scrollLeft(),smoothScrollInner=$(this).parents(".smoothScroll").find(".smoothScrollInner").width();$(this).hasClass("left")?$(this).parents(".smoothScroll").find(".smoothScrollInner").animate({scrollLeft:smoothScrollPosition-smoothScrollInner},1e3):$(this).parents(".smoothScroll").find(".smoothScrollInner").animate({scrollLeft:smoothScrollPosition+smoothScrollInner},1e3)}),$(".smoothScroll"+id+" .smoothScrollInner").unbind(),$(".smoothScroll"+id+" .smoothScrollInner").scroll(function(){var smoothScrollPosition=$(this).parents(".smoothScroll").find(".smoothScrollInner").scrollLeft(),smoothScrollInner=$(this).parents(".smoothScroll").find(".smoothScrollInner").width(),smoothScrollItems=$(this).parents(".smoothScroll").find(".smoothScrollItems").width();0==smoothScrollPosition?$(this).parents(".smoothScroll").find(".arrow.left").removeClass("arrow--active"):$(this).parents(".smoothScroll").find(".arrow.left").addClass("arrow--active"),parseInt(smoothScrollPosition+smoothScrollInner)+1>=parseInt(smoothScrollItems)?$(this).parents(".smoothScroll").find(".arrow.right").removeClass("arrow--active"):$(this).parents(".smoothScroll").find(".arrow.right").addClass("arrow--active")})}function getUrlParameter(sParam){var url=window.location.href;return-1!=url.indexOf("?"+sParam)||-1!=url.indexOf("&"+sParam)}function initCollapsible(el){$(".collapsible:not(.collapsible--active)").find(".collapsible__content").css("display"," none"),$(".collapsible--active").find(".collapsible__content").css("display"," block"),$(".collapsible__title").click(function(){$(this).parents(".collapsible").toggleClass("collapsible--active").find(".collapsible__content").slideToggle(200)})}function tooltipHTMLInit(){$(".tooltipHTML:not(.tooltipHTMLActive)").each(function(){$(this).addClass("tooltipHTMLActive"),$(this).prepend('<span class="tooltipHTMLContent">'+$(this).attr("data-tooltip")+"</span>")})}function tooltipPopup(){$("[data-tooltip-popup]").click(function(){$(".tooltipPopup").remove();var content=$(this).data("tooltip-popup");$("body").append('<div class="tooltipPopup"><div class="tooltipPopup__content">'+content+'<span class="tooltipPopup__close"><img src="/build/desktop/images/icons/close.svg" class="svg"></span></div></div>'),setTimeout(function(){$(".tooltipPopup").addClass("tooltipPopup--active")},10),svg()}),$(document).on("click",".tooltipPopup__close",function(){$(".tooltipPopup").removeClass("tooltipPopup--active"),setTimeout(function(){$(".tooltipPopup").remove()},250)})}function pulseAnimation(){var isScrolling,callback=function(){setTimeout(function(){$(".animation--pulse").removeClass("animate")},500)};window.addEventListener("scroll",function(event){setTimeout(function(){$(".animation--pulse").addClass("animate")},500),window.clearTimeout(isScrolling),isScrolling=setTimeout(function(){callback()},300)},!1)}function inputRowValidation(){$(".inputRowValidation__btn").click(function(){var rowsValidated=0,rowsToValidate=$(this).parents(".inputRowValidation").find(".inputRowValidation__row").length;$(this).parents(".inputRowValidation").find(".inputRowValidation__row").each(function(){$(this).find(".inputRowValidation__error").remove(),$(this).removeClass("inputRowValidation__row--error"),1<=$(this).find("input:checked").length||$(this).find("textarea").length&&""!=$(this).find("textarea").val()||$(this).find('input[type="text"]').length&&""!=$(this).find('input[type="text"]').val()?rowsValidated++:($(this).addClass("inputRowValidation__row--error"),$(this).append('<div class="inputRowValidation__error">'+$(this).attr("data-validation-error-message")+"</div>"))}),rowsToValidate!=rowsValidated?$(this).removeClass("nextStep"):$(this).addClass("nextStep").css("display","table")}),$(".inputRowValidation__row input:not(:checked)").click(function(){$(this).parents(".inputRowValidation__row").removeClass("inputRowValidation__row--error").find(".inputRowValidation__error").remove()}),$('.inputRowValidation__row textarea, .inputRowValidation__row input[type="text"]').on("input",function(){$(this).parents(".inputRowValidation__row").removeClass("inputRowValidation__row--error").find(".inputRowValidation__error").remove()})}function inputLengthLimit(){$("[data-length-limit]").each(function(){var el=$(this),parentEl=el.parent(),limit=el.attr("data-length-limit"),inputUiCount=(parentEl.append("<div data-length-limit-ui><span>0</span>/"+limit+"</div>"),parentEl.find("[data-length-limit-ui] span"));el.on("input",function(){el.val().length>limit&&el.val(el.val().substr(0,limit)),inputUiCount.html(el.val().length)})})}$(document).ready(function(){$(".uploadWrap:not(.uploadWrapMultiple)").each(function(){dragNDropUpload($(this).attr("id"))}),$(".uploadWrapMultiple").each(function(){dragNDropUploadMultiple($(this).attr("id"))}),dragNDropUploadMultipleDelete()}),$(document).ready(function(){yearselect()}),(a=>{"function"==typeof define&&define.amd?define(["jquery"],a):"undefined"!=typeof exports?module.exports=a(require("jquery")):a(jQuery)})(function(a){var b=window.Slick||{};(b=(()=>{var b=0;return function(c,d){var e=this;e.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:a(c),appendDots:a(c),arrows:!0,asNavFor:null,prevArrow:'<button type="button" data-role="none" class="slickPrev" aria-label="Previous" tabindex="0" role="button">Previous</button>',nextArrow:'<button type="button" data-role="none" class="slickNext" aria-label="Next" tabindex="0" role="button">Next</button>',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:"50px",cssEase:"ease",customPaging:function(b,c){return a('<button type="button" data-role="none" role="button" tabindex="0" />').text(c+1)},dots:!1,dotsClass:"sliderNav slickDots",draggable:!0,easing:"linear",edgeFriction:.35,fade:!1,focusOnSelect:!1,infinite:!0,initialSlide:0,lazyLoad:"ondemand",mobileFirst:!1,pauseOnHover:!0,pauseOnFocus:!0,pauseOnDotsHover:!1,respondTo:"window",responsive:null,rows:1,rtl:!1,slide:"",slidesPerRow:1,slidesToShow:1,slidesToScroll:1,speed:500,swipe:!0,swipeToSlide:!1,touchMove:!0,touchThreshold:5,useCSS:!0,useTransform:!0,variableWidth:!1,vertical:!1,verticalSwiping:!1,waitForAnimate:!0,zIndex:1e3},e.initials={animating:!1,dragging:!1,autoPlayTimer:null,currentDirection:0,currentLeft:null,currentSlide:0,direction:1,$dots:null,listWidth:null,listHeight:null,loadIndex:0,$nextArrow:null,$prevArrow:null,slideCount:null,slideWidth:null,$slideTrack:null,$slides:null,sliding:!1,slideOffset:0,swipeLeft:null,$list:null,touchObject:{},transformsEnabled:!1,unslicked:!1},a.extend(e,e.initials),e.activeBreakpoint=null,e.animType=null,e.animProp=null,e.breakpoints=[],e.breakpointSettings=[],e.cssTransitions=!1,e.focussed=!1,e.interrupted=!1,e.hidden="hidden",e.paused=!0,e.positionProp=null,e.respondTo=null,e.rowCount=1,e.shouldClick=!0,e.$slider=a(c),e.$slidesCache=null,e.transformType=null,e.transitionType=null,e.visibilityChange="visibilitychange",e.windowWidth=0,e.windowTimer=null,c=a(c).data("slick")||{},e.options=a.extend({},e.defaults,d,c),e.currentSlide=e.options.initialSlide,e.originalSettings=e.options,void 0!==document.mozHidden?(e.hidden="mozHidden",e.visibilityChange="mozvisibilitychange"):void 0!==document.webkitHidden&&(e.hidden="webkitHidden",e.visibilityChange="webkitvisibilitychange"),e.autoPlay=a.proxy(e.autoPlay,e),e.autoPlayClear=a.proxy(e.autoPlayClear,e),e.autoPlayIterator=a.proxy(e.autoPlayIterator,e),e.changeSlide=a.proxy(e.changeSlide,e),e.clickHandler=a.proxy(e.clickHandler,e),e.selectHandler=a.proxy(e.selectHandler,e),e.setPosition=a.proxy(e.setPosition,e),e.swipeHandler=a.proxy(e.swipeHandler,e),e.dragHandler=a.proxy(e.dragHandler,e),e.keyHandler=a.proxy(e.keyHandler,e),e.instanceUid=b++,e.htmlExpr=/^(?:\s*(<[\w\W]+>)[^>]*)$/,e.registerBreakpoints(),e.init(!0)}})()).prototype.activateADA=function(){this.$slideTrack.find(".active").attr({"aria-hidden":"false"}).find("a, input, button, select").attr({tabindex:"0"})},b.prototype.addSlide=b.prototype.slickAdd=function(b,c,d){var e=this;if("boolean"==typeof c)d=c,c=null;else if(c<0||c>=e.slideCount)return!1;e.unload(),"number"==typeof c?0===c&&0===e.$slides.length?a(b).appendTo(e.$slideTrack):d?a(b).insertBefore(e.$slides.eq(c)):a(b).insertAfter(e.$slides.eq(c)):!0===d?a(b).prependTo(e.$slideTrack):a(b).appendTo(e.$slideTrack),e.$slides=e.$slideTrack.children(this.options.slide),e.$slideTrack.children(this.options.slide).detach(),e.$slideTrack.append(e.$slides),e.$slides.each(function(b,c){a(c).attr("data-slick-index",b)}),e.$slidesCache=e.$slides,e.reinit()},b.prototype.animateHeight=function(){var b,a=this;1===a.options.slidesToShow&&!0===a.options.adaptiveHeight&&!1===a.options.vertical&&(b=a.$slides.eq(a.currentSlide).outerHeight(!0),a.$list.animate({height:b},a.options.speed))},b.prototype.animateSlide=function(b,c){var d={},e=this;e.animateHeight(),!0===e.options.rtl&&!1===e.options.vertical&&(b=-b),!1===e.transformsEnabled?!1===e.options.vertical?e.$slideTrack.animate({left:b},e.options.speed,e.options.easing,c):e.$slideTrack.animate({top:b},e.options.speed,e.options.easing,c):!1===e.cssTransitions?(!0===e.options.rtl&&(e.currentLeft=-e.currentLeft),a({animStart:e.currentLeft}).animate({animStart:b},{duration:e.options.speed,easing:e.options.easing,step:function(a){a=Math.ceil(a),!1===e.options.vertical?d[e.animType]="translate("+a+"px, 0px)":d[e.animType]="translate(0px,"+a+"px)",e.$slideTrack.css(d)},complete:function(){c&&c.call()}})):(e.applyTransition(),b=Math.ceil(b),!1===e.options.vertical?d[e.animType]="translate3d("+b+"px, 0px, 0px)":d[e.animType]="translate3d(0px,"+b+"px, 0px)",e.$slideTrack.css(d),c&&setTimeout(function(){e.disableTransition(),c.call()},e.options.speed))},b.prototype.getNavTarget=function(){var c=this.options.asNavFor;return c=c&&null!==c?a(c).not(this.$slider):c},b.prototype.asNavFor=function(b){var d=this.getNavTarget();null!==d&&"object"==typeof d&&d.each(function(){var c=a(this).slick("getSlick");c.unslicked||c.slideHandler(b,!0)})},b.prototype.applyTransition=function(a){var b=this,c={};!1===b.options.fade?c[b.transitionType]=b.transformType+" "+b.options.speed+"ms "+b.options.cssEase:c[b.transitionType]="opacity "+b.options.speed+"ms "+b.options.cssEase,(!1===b.options.fade?b.$slideTrack:b.$slides.eq(a)).css(c)},b.prototype.autoPlay=function(){var a=this;a.autoPlayClear(),a.slideCount>a.options.slidesToShow&&(a.autoPlayTimer=setInterval(a.autoPlayIterator,a.options.autoplaySpeed))},b.prototype.autoPlayClear=function(){this.autoPlayTimer&&clearInterval(this.autoPlayTimer)},b.prototype.autoPlayIterator=function(){var a=this,b=a.currentSlide+a.options.slidesToScroll;a.paused||a.interrupted||a.focussed||(!1===a.options.infinite&&(1===a.direction&&a.currentSlide+1===a.slideCount-1?a.direction=0:0===a.direction&&(b=a.currentSlide-a.options.slidesToScroll,a.currentSlide-1==0)&&(a.direction=1)),a.slideHandler(b))},b.prototype.buildArrows=function(){var b=this;!0===b.options.arrows&&(b.$prevArrow=a(b.options.prevArrow).addClass("slickArrow"),b.$nextArrow=a(b.options.nextArrow).addClass("slickArrow"),b.slideCount>b.options.slidesToShow?(b.$prevArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),b.$nextArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),b.htmlExpr.test(b.options.prevArrow)&&b.$prevArrow.prependTo(b.options.appendArrows),b.htmlExpr.test(b.options.nextArrow)&&b.$nextArrow.appendTo(b.options.appendArrows),!0!==b.options.infinite&&b.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true")):b.$prevArrow.add(b.$nextArrow).addClass("slick-hidden").attr({"aria-disabled":"true",tabindex:"-1"}))},b.prototype.buildDots=function(){var c,d,b=this;if(!0===b.options.dots&&b.slideCount>b.options.slidesToShow){for(b.$slider.addClass("slick-dotted"),d=a("<ul />").addClass(b.options.dotsClass),c=0;c<=b.getDotCount();c+=1)d.append(a("<li />").append(b.options.customPaging.call(this,b,c)));b.$dots=d.appendTo(b.options.appendDots),b.$dots.find("li").first().addClass("active").attr("aria-hidden","false")}},b.prototype.buildOut=function(){var b=this;b.$slides=b.$slider.children(b.options.slide+":not(.slick-cloned)").addClass("slick-slide"),b.slideCount=b.$slides.length,b.$slides.each(function(b,c){a(c).attr("data-slick-index",b).data("originalStyling",a(c).attr("style")||"")}),b.$slider.addClass("slick-slider"),b.$slideTrack=0===b.slideCount?a('<div class="slick-track"/>').appendTo(b.$slider):b.$slides.wrapAll('<div class="slick-track"/>').parent(),b.$list=b.$slideTrack.wrap('<div aria-live="polite" class="slick-list"/>').parent(),b.$slideTrack.css("opacity",0),!0!==b.options.centerMode&&!0!==b.options.swipeToSlide||(b.options.slidesToScroll=1),a("img[data-lazy]",b.$slider).not("[src]").addClass("slick-loading"),b.setupInfinite(),b.buildArrows(),b.buildDots(),b.updateDots(),b.setSlideClasses("number"==typeof b.currentSlide?b.currentSlide:0),!0===b.options.draggable&&b.$list.addClass("draggable")},b.prototype.buildRows=function(){var b,f,h,a=this,e=document.createDocumentFragment(),g=a.$slider.children();if(1<a.options.rows){for(h=a.options.slidesPerRow*a.options.rows,f=Math.ceil(g.length/h),b=0;b<f;b++){for(var i=document.createElement("div"),c=0;c<a.options.rows;c++){for(var j=document.createElement("div"),d=0;d<a.options.slidesPerRow;d++){var k=b*h+(c*a.options.slidesPerRow+d);g.get(k)&&j.appendChild(g.get(k))}i.appendChild(j)}e.appendChild(i)}a.$slider.empty().append(e),a.$slider.children().children().children().css({width:100/a.options.slidesPerRow+"%",display:"inline-block"})}},b.prototype.checkResponsive=function(b,c){var e,f,g,d=this,h=!1,i=d.$slider.width(),j=window.innerWidth||a(window).width();if("window"===d.respondTo?g=j:"slider"===d.respondTo?g=i:"min"===d.respondTo&&(g=Math.min(j,i)),d.options.responsive&&d.options.responsive.length&&null!==d.options.responsive){for(e in f=null,d.breakpoints)d.breakpoints.hasOwnProperty(e)&&(!1===d.originalSettings.mobileFirst?g<d.breakpoints[e]&&(f=d.breakpoints[e]):g>d.breakpoints[e]&&(f=d.breakpoints[e]));null!==f?null!==d.activeBreakpoint&&f===d.activeBreakpoint&&!c||(d.activeBreakpoint=f,"unslick"===d.breakpointSettings[f]?d.unslick(f):(d.options=a.extend({},d.originalSettings,d.breakpointSettings[f]),!0===b&&(d.currentSlide=d.options.initialSlide),d.refresh(b)),h=f):null!==d.activeBreakpoint&&(d.activeBreakpoint=null,d.options=d.originalSettings,!0===b&&(d.currentSlide=d.options.initialSlide),d.refresh(b),h=f),b||!1===h||d.$slider.trigger("breakpoint",[d,h])}},b.prototype.changeSlide=function(b,c){var f,d=this,e=a(b.currentTarget);switch(e.is("a")&&b.preventDefault(),e.is("li")||(e=e.closest("li")),f=d.slideCount%d.options.slidesToScroll!=0?0:(d.slideCount-d.currentSlide)%d.options.slidesToScroll,b.data.message){case"previous":g=0==f?d.options.slidesToScroll:d.options.slidesToShow-f,d.slideCount>d.options.slidesToShow&&d.slideHandler(d.currentSlide-g,!1,c);break;case"next":g=0==f?d.options.slidesToScroll:f,d.slideCount>d.options.slidesToShow&&d.slideHandler(d.currentSlide+g,!1,c);break;case"index":var g=0===b.data.index?0:b.data.index||e.index()*d.options.slidesToScroll;d.slideHandler(d.checkNavigable(g),!1,c),e.children().trigger("focus");break;default:return}},b.prototype.checkNavigable=function(a){var c=this.getNavigableIndexes(),d=0;if(a>c[c.length-1])a=c[c.length-1];else for(var e in c){if(a<c[e]){a=d;break}d=c[e]}return a},b.prototype.cleanUpEvents=function(){var b=this;b.options.dots&&null!==b.$dots&&a("li",b.$dots).off("click.slick",b.changeSlide).off("mouseenter.slick",a.proxy(b.interrupt,b,!0)).off("mouseleave.slick",a.proxy(b.interrupt,b,!1)),b.$slider.off("focus.slick blur.slick"),!0===b.options.arrows&&b.slideCount>b.options.slidesToShow&&(b.$prevArrow&&b.$prevArrow.off("click.slick",b.changeSlide),b.$nextArrow)&&b.$nextArrow.off("click.slick",b.changeSlide),b.$list.off("touchstart.slick mousedown.slick",b.swipeHandler),b.$list.off("touchmove.slick mousemove.slick",b.swipeHandler),b.$list.off("touchend.slick mouseup.slick",b.swipeHandler),b.$list.off("touchcancel.slick mouseleave.slick",b.swipeHandler),b.$list.off("click.slick",b.clickHandler),a(document).off(b.visibilityChange,b.visibility),b.cleanUpSlideEvents(),!0===b.options.accessibility&&b.$list.off("keydown.slick",b.keyHandler),!0===b.options.focusOnSelect&&a(b.$slideTrack).children().off("click.slick",b.selectHandler),a(window).off("orientationchange.slick.slick-"+b.instanceUid,b.orientationChange),a(window).off("resize.slick.slick-"+b.instanceUid,b.resize),a("[draggable!=true]",b.$slideTrack).off("dragstart",b.preventDefault),a(window).off("load.slick.slick-"+b.instanceUid,b.setPosition),a(document).off("ready.slick.slick-"+b.instanceUid,b.setPosition)},b.prototype.cleanUpSlideEvents=function(){var b=this;b.$list.off("mouseenter.slick",a.proxy(b.interrupt,b,!0)),b.$list.off("mouseleave.slick",a.proxy(b.interrupt,b,!1))},b.prototype.cleanUpRows=function(){var b,a=this;1<a.options.rows&&((b=a.$slides.children().children()).removeAttr("style"),a.$slider.empty().append(b))},b.prototype.clickHandler=function(a){!1===this.shouldClick&&(a.stopImmediatePropagation(),a.stopPropagation(),a.preventDefault())},b.prototype.destroy=function(b){var c=this;c.autoPlayClear(),c.touchObject={},c.cleanUpEvents(),a(".slick-cloned",c.$slider).detach(),c.$dots&&c.$dots.remove(),c.$prevArrow&&c.$prevArrow.length&&(c.$prevArrow.removeClass("slick-disabled slickArrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),c.htmlExpr.test(c.options.prevArrow))&&c.$prevArrow.remove(),c.$nextArrow&&c.$nextArrow.length&&(c.$nextArrow.removeClass("slick-disabled slickArrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),c.htmlExpr.test(c.options.nextArrow))&&c.$nextArrow.remove(),c.$slides&&(c.$slides.removeClass("slick-slide active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each(function(){a(this).attr("style",a(this).data("originalStyling"))}),c.$slideTrack.children(this.options.slide).detach(),c.$slideTrack.detach(),c.$list.detach(),c.$slider.append(c.$slides)),c.cleanUpRows(),c.$slider.removeClass("slick-slider"),c.$slider.removeClass("slick-initialized"),c.$slider.removeClass("slick-dotted"),c.unslicked=!0,b||c.$slider.trigger("destroy",[c])},b.prototype.disableTransition=function(a){var b=this,c={};c[b.transitionType]="",(!1===b.options.fade?b.$slideTrack:b.$slides.eq(a)).css(c)},b.prototype.fadeSlide=function(a,b){var c=this;!1===c.cssTransitions?(c.$slides.eq(a).css({zIndex:c.options.zIndex}),c.$slides.eq(a).animate({opacity:1},c.options.speed,c.options.easing,b)):(c.applyTransition(a),c.$slides.eq(a).css({opacity:1,zIndex:c.options.zIndex}),b&&setTimeout(function(){c.disableTransition(a),b.call()},c.options.speed))},b.prototype.fadeSlideOut=function(a){var b=this;!1===b.cssTransitions?b.$slides.eq(a).animate({opacity:0,zIndex:b.options.zIndex-2},b.options.speed,b.options.easing):(b.applyTransition(a),b.$slides.eq(a).css({opacity:0,zIndex:b.options.zIndex-2}))},b.prototype.filterSlides=b.prototype.slickFilter=function(a){var b=this;null!==a&&(b.$slidesCache=b.$slides,b.unload(),b.$slideTrack.children(this.options.slide).detach(),b.$slidesCache.filter(a).appendTo(b.$slideTrack),b.reinit())},b.prototype.focusHandler=function(){var b=this;b.$slider.off("focus.slick blur.slick").on("focus.slick blur.slick","*:not(.slickArrow)",function(c){c.stopImmediatePropagation();var d=a(this);setTimeout(function(){b.options.pauseOnFocus&&(b.focussed=d.is(":focus"),b.autoPlay())},0)})},b.prototype.getCurrent=b.prototype.slickCurrentSlide=function(){return this.currentSlide},b.prototype.getDotCount=function(){var a=this,b=0,c=0,d=0;if(!0===a.options.infinite)for(;b<a.slideCount;)++d,b=c+a.options.slidesToScroll,c+=a.options.slidesToScroll<=a.options.slidesToShow?a.options.slidesToScroll:a.options.slidesToShow;else if(!0===a.options.centerMode)d=a.slideCount;else if(a.options.asNavFor)for(;b<a.slideCount;)++d,b=c+a.options.slidesToScroll,c+=a.options.slidesToScroll<=a.options.slidesToShow?a.options.slidesToScroll:a.options.slidesToShow;else d=1+Math.ceil((a.slideCount-a.options.slidesToShow)/a.options.slidesToScroll);return d-1},b.prototype.getLeft=function(a){var d,b=this,e=0;return b.slideOffset=0,d=b.$slides.first().outerHeight(!0),!0===b.options.infinite?(b.slideCount>b.options.slidesToShow&&(b.slideOffset=b.slideWidth*b.options.slidesToShow*-1,e=d*b.options.slidesToShow*-1),b.slideCount%b.options.slidesToScroll!=0&&a+b.options.slidesToScroll>b.slideCount&&b.slideCount>b.options.slidesToShow&&(e=a>b.slideCount?(b.slideOffset=(b.options.slidesToShow-(a-b.slideCount))*b.slideWidth*-1,(b.options.slidesToShow-(a-b.slideCount))*d*-1):(b.slideOffset=b.slideCount%b.options.slidesToScroll*b.slideWidth*-1,b.slideCount%b.options.slidesToScroll*d*-1))):a+b.options.slidesToShow>b.slideCount&&(b.slideOffset=(a+b.options.slidesToShow-b.slideCount)*b.slideWidth,e=(a+b.options.slidesToShow-b.slideCount)*d),b.slideCount<=b.options.slidesToShow&&(e=b.slideOffset=0),!0===b.options.centerMode&&!0===b.options.infinite?b.slideOffset+=b.slideWidth*Math.floor(b.options.slidesToShow/2)-b.slideWidth:!0===b.options.centerMode&&(b.slideOffset=0,b.slideOffset+=b.slideWidth*Math.floor(b.options.slidesToShow/2)),d=!1===b.options.vertical?a*b.slideWidth*-1+b.slideOffset:a*d*-1+e,!0===b.options.variableWidth&&(e=b.slideCount<=b.options.slidesToShow||!1===b.options.infinite?b.$slideTrack.children(".slick-slide").eq(a):b.$slideTrack.children(".slick-slide").eq(a+b.options.slidesToShow),d=!0===b.options.rtl?e[0]?-1*(b.$slideTrack.width()-e[0].offsetLeft-e.width()):0:e[0]?-1*e[0].offsetLeft:0,!0===b.options.centerMode)&&(e=b.slideCount<=b.options.slidesToShow||!1===b.options.infinite?b.$slideTrack.children(".slick-slide").eq(a):b.$slideTrack.children(".slick-slide").eq(a+b.options.slidesToShow+1),d=!0===b.options.rtl?e[0]?-1*(b.$slideTrack.width()-e[0].offsetLeft-e.width()):0:e[0]?-1*e[0].offsetLeft:0,d+=(b.$list.width()-e.outerWidth())/2),d},b.prototype.getOption=b.prototype.slickGetOption=function(a){return this.options[a]},b.prototype.getNavigableIndexes=function(){for(var a=this,b=0,c=0,d=[],e=!1===a.options.infinite?a.slideCount:(b=-1*a.options.slidesToScroll,c=-1*a.options.slidesToScroll,2*a.slideCount);b<e;)d.push(b),b=c+a.options.slidesToScroll,c+=a.options.slidesToScroll<=a.options.slidesToShow?a.options.slidesToScroll:a.options.slidesToShow;return d},b.prototype.getSlick=function(){return this},b.prototype.getSlideCount=function(){var d,b=this,e=!0===b.options.centerMode?b.slideWidth*Math.floor(b.options.slidesToShow/2):0;return!0===b.options.swipeToSlide?(b.$slideTrack.find(".slick-slide").each(function(c,f){return f.offsetLeft-e+a(f).outerWidth()/2>-1*b.swipeLeft?(d=f,!1):void 0}),Math.abs(a(d).attr("data-slick-index")-b.currentSlide)||1):b.options.slidesToScroll},b.prototype.goTo=b.prototype.slickGoTo=function(a,b){this.changeSlide({data:{message:"index",index:parseInt(a)}},b)},b.prototype.init=function(b){var c=this;a(c.$slider).hasClass("slick-initialized")||(a(c.$slider).addClass("slick-initialized"),c.buildRows(),c.buildOut(),c.setProps(),c.startLoad(),c.loadSlider(),c.initializeEvents(),c.updateArrows(),c.updateDots(),c.checkResponsive(!0),c.focusHandler()),b&&c.$slider.trigger("init",[c]),!0===c.options.accessibility&&c.initADA(),c.options.autoplay&&(c.paused=!1,c.autoPlay())},b.prototype.initADA=function(){var b=this;b.$slides.add(b.$slideTrack.find(".slick-cloned")).attr({"aria-hidden":"true",tabindex:"-1"}).find("a, input, button, select").attr({tabindex:"-1"}),b.$slideTrack.attr("role","listbox"),b.$slides.not(b.$slideTrack.find(".slick-cloned")).each(function(c){a(this).attr({role:"option","aria-describedby":"slick-slide"+b.instanceUid+c})}),null!==b.$dots&&b.$dots.attr("role","tablist").find("li").each(function(c){a(this).attr({role:"presentation","aria-selected":"false","aria-controls":"navigation"+b.instanceUid+c,id:"slick-slide"+b.instanceUid+c})}).first().attr("aria-selected","true").end().find("button").attr("role","button").end().closest("div").attr("role","toolbar"),b.activateADA()},b.prototype.initArrowEvents=function(){var a=this;!0===a.options.arrows&&a.slideCount>a.options.slidesToShow&&(a.$prevArrow.off("click.slick").on("click.slick",{message:"previous"},a.changeSlide),a.$nextArrow.off("click.slick").on("click.slick",{message:"next"},a.changeSlide))},b.prototype.initDotEvents=function(){var b=this;!0===b.options.dots&&b.slideCount>b.options.slidesToShow&&a("li",b.$dots).on("click.slick",{message:"index"},b.changeSlide),!0===b.options.dots&&!0===b.options.pauseOnDotsHover&&a("li",b.$dots).on("mouseenter.slick",a.proxy(b.interrupt,b,!0)).on("mouseleave.slick",a.proxy(b.interrupt,b,!1))},b.prototype.initSlideEvents=function(){var b=this;b.options.pauseOnHover&&(b.$list.on("mouseenter.slick",a.proxy(b.interrupt,b,!0)),b.$list.on("mouseleave.slick",a.proxy(b.interrupt,b,!1)))},b.prototype.initializeEvents=function(){var b=this;b.initArrowEvents(),b.initDotEvents(),b.initSlideEvents(),b.$list.on("touchstart.slick mousedown.slick",{action:"start"},b.swipeHandler),b.$list.on("touchmove.slick mousemove.slick",{action:"move"},b.swipeHandler),b.$list.on("touchend.slick mouseup.slick",{action:"end"},b.swipeHandler),b.$list.on("touchcancel.slick mouseleave.slick",{action:"end"},b.swipeHandler),b.$list.on("click.slick",b.clickHandler),a(document).on(b.visibilityChange,a.proxy(b.visibility,b)),!0===b.options.accessibility&&b.$list.on("keydown.slick",b.keyHandler),!0===b.options.focusOnSelect&&a(b.$slideTrack).children().on("click.slick",b.selectHandler),a(window).on("orientationchange.slick.slick-"+b.instanceUid,a.proxy(b.orientationChange,b)),a(window).on("resize.slick.slick-"+b.instanceUid,a.proxy(b.resize,b)),a("[draggable!=true]",b.$slideTrack).on("dragstart",b.preventDefault),a(window).on("load.slick.slick-"+b.instanceUid,b.setPosition),a(document).on("ready.slick.slick-"+b.instanceUid,b.setPosition)},b.prototype.initUI=function(){var a=this;!0===a.options.arrows&&a.slideCount>a.options.slidesToShow&&(a.$prevArrow.show(),a.$nextArrow.show()),!0===a.options.dots&&a.slideCount>a.options.slidesToShow&&a.$dots.show()},b.prototype.keyHandler=function(a){var b=this;a.target.tagName.match("TEXTAREA|INPUT|SELECT")||(37===a.keyCode&&!0===b.options.accessibility?b.changeSlide({data:{message:!0===b.options.rtl?"next":"previous"}}):39===a.keyCode&&!0===b.options.accessibility&&b.changeSlide({data:{message:!0===b.options.rtl?"previous":"next"}}))},b.prototype.lazyLoad=function(){function g(c){a("img[data-lazy]",c).each(function(){var c=a(this),d=a(this).attr("data-lazy"),e=document.createElement("img");e.onload=function(){c.animate({opacity:0},100,function(){c.attr("src",d).animate({opacity:1},200,function(){c.removeAttr("data-lazy").removeClass("slick-loading")}),b.$slider.trigger("lazyLoaded",[b,c,d])})},e.onerror=function(){c.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),b.$slider.trigger("lazyLoadError",[b,c,d])},e.src=d})}var e,f,b=this;!0===b.options.centerMode?f=!0===b.options.infinite?(e=b.currentSlide+(b.options.slidesToShow/2+1))+b.options.slidesToShow+2:(e=Math.max(0,b.currentSlide-(b.options.slidesToShow/2+1)),b.options.slidesToShow/2+1+2+b.currentSlide):(e=b.options.infinite?b.options.slidesToShow+b.currentSlide:b.currentSlide,f=Math.ceil(e+b.options.slidesToShow),!0===b.options.fade&&(0<e&&e--,f<=b.slideCount)&&f++),g(b.$slider.find(".slick-slide").slice(e,f)),b.slideCount<=b.options.slidesToShow?g(b.$slider.find(".slick-slide")):b.currentSlide>=b.slideCount-b.options.slidesToShow?g(b.$slider.find(".slick-cloned").slice(0,b.options.slidesToShow)):0===b.currentSlide&&g(b.$slider.find(".slick-cloned").slice(-1*b.options.slidesToShow))},b.prototype.loadSlider=function(){var a=this;a.setPosition(),a.$slideTrack.css({opacity:1}),a.$slider.removeClass("slick-loading"),a.initUI(),"progressive"===a.options.lazyLoad&&a.progressiveLazyLoad()},b.prototype.next=b.prototype.slickNext=function(){this.changeSlide({data:{message:"next"}})},b.prototype.orientationChange=function(){this.checkResponsive(),this.setPosition()},b.prototype.pause=b.prototype.slickPause=function(){this.autoPlayClear(),this.paused=!0},b.prototype.play=b.prototype.slickPlay=function(){var a=this;a.autoPlay(),a.options.autoplay=!0,a.paused=!1,a.focussed=!1,a.interrupted=!1},b.prototype.postSlide=function(a){var b=this;b.unslicked||(b.$slider.trigger("afterChange",[b,a]),b.animating=!1,b.setPosition(),b.swipeLeft=null,b.options.autoplay&&b.autoPlay(),!0===b.options.accessibility&&b.initADA())},b.prototype.prev=b.prototype.slickPrev=function(){this.changeSlide({data:{message:"previous"}})},b.prototype.preventDefault=function(a){a.preventDefault()},b.prototype.progressiveLazyLoad=function(b){b=b||1;var e,f,c=this,d=a("img[data-lazy]",c.$slider);d.length?(e=d.first(),f=e.attr("data-lazy"),(d=document.createElement("img")).onload=function(){e.attr("src",f).removeAttr("data-lazy").removeClass("slick-loading"),!0===c.options.adaptiveHeight&&c.setPosition(),c.$slider.trigger("lazyLoaded",[c,e,f]),c.progressiveLazyLoad()},d.onerror=function(){b<3?setTimeout(function(){c.progressiveLazyLoad(b+1)},500):(e.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),c.$slider.trigger("lazyLoadError",[c,e,f]),c.progressiveLazyLoad())},d.src=f):c.$slider.trigger("allImagesLoaded",[c])},b.prototype.refresh=function(b){var c=this,e=c.slideCount-c.options.slidesToShow;!c.options.infinite&&c.currentSlide>e&&(c.currentSlide=e),c.slideCount<=c.options.slidesToShow&&(c.currentSlide=0),e=c.currentSlide,c.destroy(!0),a.extend(c,c.initials,{currentSlide:e}),c.init(),b||c.changeSlide({data:{message:"index",index:e}},!1)},b.prototype.registerBreakpoints=function(){var c,d,e,b=this,f=b.options.responsive||null;if("array"===a.type(f)&&f.length){for(c in b.respondTo=b.options.respondTo||"window",f)if(e=b.breakpoints.length-1,d=f[c].breakpoint,f.hasOwnProperty(c)){for(;0<=e;)b.breakpoints[e]&&b.breakpoints[e]===d&&b.breakpoints.splice(e,1),e--;b.breakpoints.push(d),b.breakpointSettings[d]=f[c].settings}b.breakpoints.sort(function(a,c){return b.options.mobileFirst?a-c:c-a})}},b.prototype.reinit=function(){var b=this;b.$slides=b.$slideTrack.children(b.options.slide).addClass("slick-slide"),b.slideCount=b.$slides.length,b.currentSlide>=b.slideCount&&0!==b.currentSlide&&(b.currentSlide=b.currentSlide-b.options.slidesToScroll),b.slideCount<=b.options.slidesToShow&&(b.currentSlide=0),b.registerBreakpoints(),b.setProps(),b.setupInfinite(),b.buildArrows(),b.updateArrows(),b.initArrowEvents(),b.buildDots(),b.updateDots(),b.initDotEvents(),b.cleanUpSlideEvents(),b.initSlideEvents(),b.checkResponsive(!1,!0),!0===b.options.focusOnSelect&&a(b.$slideTrack).children().on("click.slick",b.selectHandler),b.setSlideClasses("number"==typeof b.currentSlide?b.currentSlide:0),b.setPosition(),b.focusHandler(),b.paused=!b.options.autoplay,b.autoPlay(),b.$slider.trigger("reInit",[b])},b.prototype.resize=function(){var b=this;a(window).width()!==b.windowWidth&&(clearTimeout(b.windowDelay),b.windowDelay=window.setTimeout(function(){b.windowWidth=a(window).width(),b.checkResponsive(),b.unslicked||b.setPosition()},50))},b.prototype.removeSlide=b.prototype.slickRemove=function(a,b,c){var d=this;return a="boolean"==typeof a?!0===(b=a)?0:d.slideCount-1:!0===b?--a:a,!(d.slideCount<1||a<0||a>d.slideCount-1)&&(d.unload(),(!0===c?d.$slideTrack.children():d.$slideTrack.children(this.options.slide).eq(a)).remove(),d.$slides=d.$slideTrack.children(this.options.slide),d.$slideTrack.children(this.options.slide).detach(),d.$slideTrack.append(d.$slides),d.$slidesCache=d.$slides,void d.reinit())},b.prototype.setCSS=function(a){var d,e,b=this,c={};!0===b.options.rtl&&(a=-a),d="left"==b.positionProp?Math.ceil(a)+"px":"0px",e="top"==b.positionProp?Math.ceil(a)+"px":"0px",c[b.positionProp]=a,!1!==b.transformsEnabled&&(!(c={})===b.cssTransitions?c[b.animType]="translate("+d+", "+e+")":c[b.animType]="translate3d("+d+", "+e+", 0px)"),b.$slideTrack.css(c)},b.prototype.setDimensions=function(){var a=this,b=(!1===a.options.vertical?!0===a.options.centerMode&&a.$list.css({padding:"0px "+a.options.centerPadding}):(a.$list.height(a.$slides.first().outerHeight(!0)*a.options.slidesToShow),!0===a.options.centerMode&&a.$list.css({padding:a.options.centerPadding+" 0px"})),a.listWidth=a.$list.width(),a.listHeight=a.$list.height(),!1===a.options.vertical&&!1===a.options.variableWidth?(a.slideWidth=Math.ceil(a.listWidth/a.options.slidesToShow),a.$slideTrack.width(Math.ceil(a.slideWidth*a.$slideTrack.children(".slick-slide").length))):!0===a.options.variableWidth?a.$slideTrack.width(5e3*a.slideCount):(a.slideWidth=Math.ceil(a.listWidth),a.$slideTrack.height(Math.ceil(a.$slides.first().outerHeight(!0)*a.$slideTrack.children(".slick-slide").length))),a.$slides.first().outerWidth(!0)-a.$slides.first().width());!1===a.options.variableWidth&&a.$slideTrack.children(".slick-slide").width(a.slideWidth-b)},b.prototype.setFade=function(){var c,b=this;b.$slides.each(function(d,e){c=b.slideWidth*d*-1,!0===b.options.rtl?a(e).css({position:"relative",right:c,top:0,zIndex:b.options.zIndex-2,opacity:0}):a(e).css({position:"relative",left:c,top:0,zIndex:b.options.zIndex-2,opacity:0})}),b.$slides.eq(b.currentSlide).css({zIndex:b.options.zIndex-1,opacity:1})},b.prototype.setHeight=function(){var b,a=this;1===a.options.slidesToShow&&!0===a.options.adaptiveHeight&&!1===a.options.vertical&&(b=a.$slides.eq(a.currentSlide).outerHeight(!0),a.$list.css("height",b))},b.prototype.setOption=b.prototype.slickSetOption=function(){var c,d,e,f,h,b=this,g=!1;if("object"===a.type(arguments[0])?(e=arguments[0],g=arguments[1],h="multiple"):"string"===a.type(arguments[0])&&(e=arguments[0],f=arguments[1],g=arguments[2],"responsive"===arguments[0]&&"array"===a.type(arguments[1])?h="responsive":void 0!==arguments[1]&&(h="single")),"single"===h)b.options[e]=f;else if("multiple"===h)a.each(e,function(a,c){b.options[a]=c});else if("responsive"===h)for(d in f)if("array"!==a.type(b.options.responsive))b.options.responsive=[f[d]];else{for(c=b.options.responsive.length-1;0<=c;)b.options.responsive[c].breakpoint===f[d].breakpoint&&b.options.responsive.splice(c,1),c--;b.options.responsive.push(f[d])}g&&(b.unload(),b.reinit())},b.prototype.setPosition=function(){var a=this;a.setDimensions(),a.setHeight(),!1===a.options.fade?a.setCSS(a.getLeft(a.currentSlide)):a.setFade(),a.$slider.trigger("setPosition",[a])},b.prototype.setProps=function(){var a=this,b=document.body.style;a.positionProp=!0===a.options.vertical?"top":"left","top"===a.positionProp?a.$slider.addClass("slick-vertical"):a.$slider.removeClass("slick-vertical"),void 0===b.WebkitTransition&&void 0===b.MozTransition&&void 0===b.msTransition||!0!==a.options.useCSS||(a.cssTransitions=!0),a.options.fade&&("number"==typeof a.options.zIndex?a.options.zIndex<3&&(a.options.zIndex=3):a.options.zIndex=a.defaults.zIndex),void 0!==b.OTransform&&(a.animType="OTransform",a.transformType="-o-transform",a.transitionType="OTransition",void 0===b.perspectiveProperty)&&void 0===b.webkitPerspective&&(a.animType=!1),void 0!==b.MozTransform&&(a.animType="MozTransform",a.transformType="-moz-transform",a.transitionType="MozTransition",void 0===b.perspectiveProperty)&&void 0===b.MozPerspective&&(a.animType=!1),void 0!==b.webkitTransform&&(a.animType="webkitTransform",a.transformType="-webkit-transform",a.transitionType="webkitTransition",void 0===b.perspectiveProperty)&&void 0===b.webkitPerspective&&(a.animType=!1),void 0!==b.msTransform&&(a.animType="msTransform",a.transformType="-ms-transform",a.transitionType="msTransition",void 0===b.msTransform)&&(a.animType=!1),void 0!==b.transform&&!1!==a.animType&&(a.animType="transform",a.transformType="transform",a.transitionType="transition"),a.transformsEnabled=a.options.useTransform&&null!==a.animType&&!1!==a.animType},b.prototype.setSlideClasses=function(a){var e,c,b=this,d=b.$slider.find(".slick-slide").removeClass("active slick-center slick-current").attr("aria-hidden","true");b.$slides.eq(a).addClass("slick-current"),!0===b.options.centerMode?(c=Math.floor(b.options.slidesToShow/2),!0===b.options.infinite&&((c<=a&&a<=b.slideCount-1-c?b.$slides.slice(a-c,a+c+1):(e=b.options.slidesToShow+a,d.slice(e-c+1,e+c+2))).addClass("active").attr("aria-hidden","false"),0===a?d.eq(d.length-1-b.options.slidesToShow).addClass("slick-center"):a===b.slideCount-1&&d.eq(b.options.slidesToShow).addClass("slick-center")),b.$slides.eq(a).addClass("slick-center")):(0<=a&&a<=b.slideCount-b.options.slidesToShow?b.$slides.slice(a,a+b.options.slidesToShow):d.length<=b.options.slidesToShow?d:(c=b.slideCount%b.options.slidesToShow,e=!0===b.options.infinite?b.options.slidesToShow+a:a,b.options.slidesToShow==b.options.slidesToScroll&&b.slideCount-a<b.options.slidesToShow?d.slice(e-(b.options.slidesToShow-c),e+c):d.slice(e,e+b.options.slidesToShow))).addClass("active").attr("aria-hidden","false"),"ondemand"===b.options.lazyLoad&&b.lazyLoad()},b.prototype.setupInfinite=function(){var c,d,e,b=this;if(!0===b.options.fade&&(b.options.centerMode=!1),!0===b.options.infinite&&!1===b.options.fade&&(d=null,b.slideCount>b.options.slidesToShow)){for(e=!0===b.options.centerMode?b.options.slidesToShow+1:b.options.slidesToShow,c=b.slideCount;c>b.slideCount-e;--c)a(b.$slides[d=c-1]).clone(!0).attr("id","").attr("data-slick-index",d-b.slideCount).prependTo(b.$slideTrack).addClass("slick-cloned");for(c=0;c<e;c+=1)d=c,a(b.$slides[d]).clone(!0).attr("id","").attr("data-slick-index",d+b.slideCount).appendTo(b.$slideTrack).addClass("slick-cloned");b.$slideTrack.find(".slick-cloned").find("[id]").each(function(){a(this).attr("id","")})}},b.prototype.interrupt=function(a){a||this.autoPlay(),this.interrupted=a},b.prototype.selectHandler=function(b){var c=this,b=a(b.target).is(".slick-slide")?a(b.target):a(b.target).parents(".slick-slide"),b=(b=parseInt(b.attr("data-slick-index")))||0;return c.slideCount<=c.options.slidesToShow?(c.setSlideClasses(b),void c.asNavFor(b)):void c.slideHandler(b)},b.prototype.slideHandler=function(a,b,c){var d,e,g,i=this;return b=b||!1,!0===i.animating&&!0===i.options.waitForAnimate||!0===i.options.fade&&i.currentSlide===a||i.slideCount<=i.options.slidesToShow?void 0:(!1===b&&i.asNavFor(a),d=a,b=i.getLeft(d),g=i.getLeft(i.currentSlide),i.currentLeft=null===i.swipeLeft?g:i.swipeLeft,!1===i.options.infinite&&!1===i.options.centerMode&&(a<0||a>i.getDotCount()*i.options.slidesToScroll)||!1===i.options.infinite&&!0===i.options.centerMode&&(a<0||a>i.slideCount-i.options.slidesToScroll)?void(!1===i.options.fade&&(d=i.currentSlide,!0!==c?i.animateSlide(g,function(){i.postSlide(d)}):i.postSlide(d))):(i.options.autoplay&&clearInterval(i.autoPlayTimer),e=d<0?i.slideCount%i.options.slidesToScroll!=0?i.slideCount-i.slideCount%i.options.slidesToScroll:i.slideCount+d:d>=i.slideCount?i.slideCount%i.options.slidesToScroll!=0?0:d-i.slideCount:d,i.animating=!0,i.$slider.trigger("beforeChange",[i,i.currentSlide,e]),a=i.currentSlide,i.currentSlide=e,i.setSlideClasses(i.currentSlide),i.options.asNavFor&&(g=(g=i.getNavTarget()).slick("getSlick")).slideCount<=g.options.slidesToShow&&g.setSlideClasses(i.currentSlide),i.updateDots(),i.updateArrows(),!0===i.options.fade?(!0!==c?(i.fadeSlideOut(a),i.fadeSlide(e,function(){i.postSlide(e)})):i.postSlide(e),void i.animateHeight()):void(!0!==c?i.animateSlide(b,function(){i.postSlide(e)}):i.postSlide(e))))},b.prototype.startLoad=function(){var a=this;!0===a.options.arrows&&a.slideCount>a.options.slidesToShow&&(a.$prevArrow.hide(),a.$nextArrow.hide()),!0===a.options.dots&&a.slideCount>a.options.slidesToShow&&a.$dots.hide(),a.$slider.addClass("slick-loading")},b.prototype.swipeDirection=function(){var e=this,a=e.touchObject.startX-e.touchObject.curX,b=e.touchObject.startY-e.touchObject.curY,b=Math.atan2(b,a),a=Math.round(180*b/Math.PI);return(a=a<0?360-Math.abs(a):a)<=45&&0<=a||a<=360&&315<=a?!1===e.options.rtl?"left":"right":135<=a&&a<=225?!1===e.options.rtl?"right":"left":!0===e.options.verticalSwiping?35<=a&&a<=135?"down":"up":"vertical"},b.prototype.swipeEnd=function(a){var c,d,b=this;if(b.dragging=!1,b.interrupted=!1,b.shouldClick=!(10<b.touchObject.swipeLength),void 0===b.touchObject.curX)return!1;if(!0===b.touchObject.edgeHit&&b.$slider.trigger("edge",[b,b.swipeDirection()]),b.touchObject.swipeLength>=b.touchObject.minSwipe){switch(d=b.swipeDirection()){case"left":case"down":c=b.options.swipeToSlide?b.checkNavigable(b.currentSlide+b.getSlideCount()):b.currentSlide+b.getSlideCount(),b.currentDirection=0;break;case"right":case"up":c=b.options.swipeToSlide?b.checkNavigable(b.currentSlide-b.getSlideCount()):b.currentSlide-b.getSlideCount(),b.currentDirection=1}"vertical"!=d&&(b.slideHandler(c),b.touchObject={},b.$slider.trigger("swipe",[b,d]))}else b.touchObject.startX!==b.touchObject.curX&&(b.slideHandler(b.currentSlide),b.touchObject={})},b.prototype.swipeHandler=function(a){var b=this;if(!(!1===b.options.swipe||"ontouchend"in document&&!1===b.options.swipe||!1===b.options.draggable&&-1!==a.type.indexOf("mouse")))switch(b.touchObject.fingerCount=a.originalEvent&&void 0!==a.originalEvent.touches?a.originalEvent.touches.length:1,b.touchObject.minSwipe=b.listWidth/b.options.touchThreshold,!0===b.options.verticalSwiping&&(b.touchObject.minSwipe=b.listHeight/b.options.touchThreshold),a.data.action){case"start":b.swipeStart(a);break;case"move":b.swipeMove(a);break;case"end":b.swipeEnd(a)}},b.prototype.swipeMove=function(a){var d,f,b=this,h=void 0!==a.originalEvent?a.originalEvent.touches:null;return!(!b.dragging||h&&1!==h.length)&&(d=b.getLeft(b.currentSlide),b.touchObject.curX=void 0!==h?h[0].pageX:a.clientX,b.touchObject.curY=void 0!==h?h[0].pageY:a.clientY,b.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(b.touchObject.curX-b.touchObject.startX,2))),!0===b.options.verticalSwiping&&(b.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(b.touchObject.curY-b.touchObject.startY,2)))),"vertical"!==(h=b.swipeDirection())?(void 0!==a.originalEvent&&4<b.touchObject.swipeLength&&a.preventDefault(),a=(!1===b.options.rtl?1:-1)*(b.touchObject.curX>b.touchObject.startX?1:-1),!0===b.options.verticalSwiping&&(a=b.touchObject.curY>b.touchObject.startY?1:-1),f=b.touchObject.swipeLength,(b.touchObject.edgeHit=!1)===b.options.infinite&&(0===b.currentSlide&&"right"===h||b.currentSlide>=b.getDotCount()&&"left"===h)&&(f=b.touchObject.swipeLength*b.options.edgeFriction,b.touchObject.edgeHit=!0),!1===b.options.vertical?b.swipeLeft=d+f*a:b.swipeLeft=d+f*(b.$list.height()/b.listWidth)*a,!0===b.options.verticalSwiping&&(b.swipeLeft=d+f*a),!0!==b.options.fade&&!1!==b.options.touchMove&&(!0===b.animating?(b.swipeLeft=null,!1):void b.setCSS(b.swipeLeft))):void 0)},b.prototype.swipeStart=function(a){var c,b=this;return b.interrupted=!0,1!==b.touchObject.fingerCount||b.slideCount<=b.options.slidesToShow?!(b.touchObject={}):(void 0!==a.originalEvent&&void 0!==a.originalEvent.touches&&(c=a.originalEvent.touches[0]),b.touchObject.startX=b.touchObject.curX=void 0!==c?c.pageX:a.clientX,b.touchObject.startY=b.touchObject.curY=void 0!==c?c.pageY:a.clientY,void(b.dragging=!0))},b.prototype.unfilterSlides=b.prototype.slickUnfilter=function(){var a=this;null!==a.$slidesCache&&(a.unload(),a.$slideTrack.children(this.options.slide).detach(),a.$slidesCache.appendTo(a.$slideTrack),a.reinit())},b.prototype.unload=function(){var b=this;a(".slick-cloned",b.$slider).remove(),b.$dots&&b.$dots.remove(),b.$prevArrow&&b.htmlExpr.test(b.options.prevArrow)&&b.$prevArrow.remove(),b.$nextArrow&&b.htmlExpr.test(b.options.nextArrow)&&b.$nextArrow.remove(),b.$slides.removeClass("slick-slide active slick-visible slick-current").attr("aria-hidden","true").css("width","")},b.prototype.unslick=function(a){var b=this;b.$slider.trigger("unslick",[b,a]),b.destroy()},b.prototype.updateArrows=function(){var a=this;Math.floor(a.options.slidesToShow/2);!0===a.options.arrows&&a.slideCount>a.options.slidesToShow&&!a.options.infinite&&(a.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false"),a.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false"),0===a.currentSlide?(a.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true"),a.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false")):(a.currentSlide>=a.slideCount-a.options.slidesToShow&&!1===a.options.centerMode||a.currentSlide>=a.slideCount-1&&!0===a.options.centerMode)&&(a.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true"),a.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")))},b.prototype.updateDots=function(){var a=this;null!==a.$dots&&(a.$dots.find("li").removeClass("active").attr("aria-hidden","true"),a.$dots.find("li").eq(Math.floor(a.currentSlide/a.options.slidesToScroll)).addClass("active").attr("aria-hidden","false"))},b.prototype.visibility=function(){var a=this;a.options.autoplay&&(document[a.hidden]?a.interrupted=!0:a.interrupted=!1)},a.fn.slick=function(){for(var g,a=this,c=arguments[0],d=Array.prototype.slice.call(arguments,1),e=a.length,f=0;f<e;f++)if("object"==typeof c||void 0===c?a[f].slick=new b(a[f],c):g=a[f].slick[c].apply(a[f].slick,d),void 0!==g)return g;return a}}),
/*! nouislider - 11.1.0 - 2018-04-02 11:18:13 */
(factory=>{"function"==typeof define&&define.amd?
// AMD. Register as an anonymous module.
define([],factory):"object"==typeof exports?
// Node/CommonJS
module.exports=factory():
// Browser globals
window.noUiSlider=factory()})(function(){var VERSION="11.1.0";function isSet(value){return null!=value}
// Bindable version
function preventDefault(e){e.preventDefault()}
// Removes duplicates from an array.
// Checks whether a value is numerical.
function isNumeric(a){return"number"==typeof a&&!isNaN(a)&&isFinite(a)}
// Sets a class and removes it after [duration] ms.
function addClassFor(element,className,duration){0<duration&&(addClass(element,className),setTimeout(function(){removeClass(element,className)},duration))}
// Limits a value to 0 - 100
function limit(a){return Math.max(Math.min(a,100),0)}
// Wraps a variable as an array, if it isn't one yet.
// Note that an input array is returned by reference!
function asArray(a){return Array.isArray(a)?a:[a]}
// Counts decimals
function countDecimals(numStr){numStr=(numStr=String(numStr)).split(".");return 1<numStr.length?numStr[1].length:0}
// http://youmightnotneedjquery.com/#add_class
function addClass(el,className){el.classList?el.classList.add(className):el.className+=" "+className}
// http://youmightnotneedjquery.com/#remove_class
function removeClass(el,className){el.classList?el.classList.remove(className):el.className=el.className.replace(new RegExp("(^|\\b)"+className.split(" ").join("|")+"(\\b|$)","gi")," ")}
// https://plainjs.com/javascript/attributes/adding-removing-and-testing-for-classes-9/
// https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollY#Notes
function getPageOffset(doc){var supportPageOffset=void 0!==window.pageXOffset,isCSS1Compat="CSS1Compat"===(doc.compatMode||"");return{x:supportPageOffset?window.pageXOffset:(isCSS1Compat?doc.documentElement:doc.body).scrollLeft,y:supportPageOffset?window.pageYOffset:(isCSS1Compat?doc.documentElement:doc.body).scrollTop}}
// we provide a function to compute constants instead
// of accessing window.* as soon as the module needs it
// so that we do not compute anything if not needed
// Value calculation
// Determine the size of a sub-range in relation to a full range.
function subRangeRatio(pa,pb){return 100/(pb-pa)}
// (percentage) How many percent is this value of this range?
function fromPercentage(range,value){return 100*value/(range[1]-range[0])}
// (percentage) Where is this value on this range?
// Range conversion
function getJ(value,arr){for(var j=1;value>=arr[j];)j+=1;return j}
// (percentage) Input a value, find where, on a scale of 0-100, it applies.
function toStepping(xVal,xPct,value){var j,va,pa;return value>=xVal.slice(-1)[0]?100:(va=xVal[(j=getJ(value,xVal))-1],pa=xPct[j-1],xPct=xPct[j],pa+((range,value)=>fromPercentage(range,range[0]<0?value+Math.abs(range[0]):value-range[0])
// (value) How much is this percentage on this range?
)([va,xVal[j]],value)/(100/(xPct-pa)))}
// (value) Input a percentage, find where it is on the specified range.
function fromStepping(xVal,xPct,value){
// There is no range group that fits 100
var j,va,pa;return 100<=value?xVal.slice(-1)[0]:(va=xVal[(j=getJ(value,xPct))-1],pa=xPct[j-1],((range,value)=>value*(range[1]-range[0])/100+range[0])([va,xVal[j]],100/(xPct[j]-pa)*(value-pa)))}
// (percentage) Get the step that applies at a certain value.
function getStep(xPct,xSteps,snap,value){var j,a,b;return 100===value?value:(
// If 'snap' is set, steps are used as fixed points on the slider.
a=xPct[(j=getJ(value,xPct))-1],b=xPct[j],snap?
// Find the closest position, a or b.
(b-a)/2<value-a?b:a:xSteps[j-1]?xPct[j-1]+(
// Round a value to the closest 'to'.
(value,to)=>Math.round(value/to)*to
// Current position of an element relative to the document.
)(value-xPct[j-1],xSteps[j-1]):value)}
// Entry parsing
// Interface
function Spectrum(entry,snap,singleStep){this.xPct=[],this.xVal=[],this.xSteps=[singleStep||!1],this.xNumSteps=[!1],this.xHighestCompleteStep=[],this.snap=snap;var index,i,n,that,ordered=[];// [0, 'min'], [1, '50%'], [2, 'max']
// Map the object keys to an array.
for(index in entry)entry.hasOwnProperty(index)&&ordered.push([entry[index],index]);
// Sort all entries by value (numeric sort).
// Convert all entries to subranges.
for(ordered.length&&"object"==typeof ordered[0][0]?ordered.sort(function(a,b){return a[0][0]-b[0][0]}):ordered.sort(function(a,b){return a[0]-b[0]}),index=0;index<ordered.length;index++)((index,value,that)=>{
// Reject any invalid input, by testing whether value is an array.
if(
// Wrap numerical input in an array.
"number"==typeof value&&(value=[value]),!Array.isArray(value))throw new Error("noUiSlider ("+VERSION+"): 'range' contains invalid value.");
// Covert min/max syntax to 0 and 100.
// Check for correct input.
if(!isNumeric(index="min"===index?0:"max"===index?100:parseFloat(index))||!isNumeric(value[0]))throw new Error("noUiSlider ("+VERSION+"): 'range' value isn't numeric.");
// Store values.
that.xPct.push(index),that.xVal.push(value[0]),
// NaN will evaluate to false too, but to keep
// logging clear, set step explicitly. Make sure
// not to override the 'step' setting with false.
index?that.xSteps.push(!isNaN(value[1])&&value[1]):isNaN(value[1])||(that.xSteps[0]=value[1]),that.xHighestCompleteStep.push(0)})(ordered[index][1],ordered[index][0],this);
// Store the actual step values.
// xSteps is sorted in the same order as xPct and xVal.
// Convert all numeric steps to the percentage of the subrange they represent.
for(this.xNumSteps=this.xSteps.slice(0),index=0;index<this.xNumSteps.length;index++)i=index,n=this.xNumSteps[index],that=this,
// Ignore 'false' stepping.
n&&(
// Factor to range ratio
that.xSteps[i]=fromPercentage([that.xVal[i],that.xVal[i+1]],n)/subRangeRatio(that.xPct[i],that.xPct[i+1]),n=(that.xVal[i+1]-that.xVal[i])/that.xNumSteps[i],n=Math.ceil(Number(n.toFixed(3))-1),n=that.xVal[i]+that.xNumSteps[i]*n,that.xHighestCompleteStep[i]=n)}Spectrum.prototype.getMargin=function(value){var step=this.xNumSteps[0];if(step&&value/step%1!=0)throw new Error("noUiSlider ("+VERSION+"): 'limit', 'margin' and 'padding' must be divisible by step.");return 2===this.xPct.length&&fromPercentage(this.xVal,value)},Spectrum.prototype.toStepping=function(value){return value=toStepping(this.xVal,this.xPct,value)},Spectrum.prototype.fromStepping=function(value){return fromStepping(this.xVal,this.xPct,value)},Spectrum.prototype.getStep=function(value){return value=getStep(this.xPct,this.xSteps,this.snap,value)},Spectrum.prototype.getNearbySteps=function(value){value=getJ(value,this.xPct);return{stepBefore:{startValue:this.xVal[value-2],step:this.xNumSteps[value-2],highestStep:this.xHighestCompleteStep[value-2]},thisStep:{startValue:this.xVal[value-1],step:this.xNumSteps[value-1],highestStep:this.xHighestCompleteStep[value-1]},stepAfter:{startValue:this.xVal[+value],step:this.xNumSteps[+value],highestStep:this.xHighestCompleteStep[+value]}}},Spectrum.prototype.countStepDecimals=function(){var stepDecimals=this.xNumSteps.map(countDecimals);return Math.max.apply(null,stepDecimals)},
// Outside testing
Spectrum.prototype.convert=function(value){return this.getStep(this.toStepping(value))};
/* Every input option is tested and parsed. This'll prevent
endless validation in internal methods. These tests are
structured with an item for every option available. An
option can be marked as required by setting the 'r' flag.
The testing function is provided with three arguments:
- The provided value for the option;
- A reference to the options object;
- The name for the option;
The testing function returns false when an error is detected,
or true when everything is OK. It can also modify the option
object, to make sure all values can be correctly looped elsewhere. */
var defaultFormatter={to:function(value){return void 0!==value&&value.toFixed(2)},from:Number};function validateFormat(entry){
// Any object with a to and from method is supported.
if(!(entry=>"object"==typeof entry&&"function"==typeof entry.to&&"function"==typeof entry.from)(entry))throw new Error("noUiSlider ("+VERSION+"): 'format' requires 'to' and 'from' methods.")}function testStep(parsed,entry){if(!isNumeric(entry))throw new Error("noUiSlider ("+VERSION+"): 'step' is not numeric.");
// The step option can still be used to set stepping
// for linear sliders. Overwritten if set in 'range'.
parsed.singleStep=entry}function testRange(parsed,entry){
// Filter incorrect input.
if("object"!=typeof entry||Array.isArray(entry))throw new Error("noUiSlider ("+VERSION+"): 'range' is not an object.");
// Catch missing start or end.
if(void 0===entry.min||void 0===entry.max)throw new Error("noUiSlider ("+VERSION+"): Missing 'min' or 'max' in 'range'.");
// Catch equal start or end.
if(entry.min===entry.max)throw new Error("noUiSlider ("+VERSION+"): 'range' 'min' and 'max' cannot be equal.");parsed.spectrum=new Spectrum(entry,parsed.snap,parsed.singleStep)}function testStart(parsed,entry){
// Validate input. Values aren't tested, as the public .val method
// will always provide a valid location.
if(entry=asArray(entry),!Array.isArray(entry)||!entry.length)throw new Error("noUiSlider ("+VERSION+"): 'start' option is incorrect.");
// Store the number of handles.
parsed.handles=entry.length,
// When the slider is initialized, the .val method will
// be called with the start options.
parsed.start=entry}function testSnap(parsed,entry){if("boolean"!=typeof(
// Enforce 100% stepping within subranges.
parsed.snap=entry))throw new Error("noUiSlider ("+VERSION+"): 'snap' option must be a boolean.")}function testAnimate(parsed,entry){if("boolean"!=typeof(
// Enforce 100% stepping within subranges.
parsed.animate=entry))throw new Error("noUiSlider ("+VERSION+"): 'animate' option must be a boolean.")}function testAnimationDuration(parsed,entry){if("number"!=typeof(parsed.animationDuration=entry))throw new Error("noUiSlider ("+VERSION+"): 'animationDuration' option must be a number.")}function testConnect(parsed,entry){var i,connect=[!1];
// Handle boolean options
if(
// Map legacy options
"lower"===entry?entry=[!0,!1]:"upper"===entry&&(entry=[!1,!0]),!0===entry||!1===entry){for(i=1;i<parsed.handles;i++)connect.push(entry);connect.push(!1)}
// Reject invalid input
else{if(!Array.isArray(entry)||!entry.length||entry.length!==parsed.handles+1)throw new Error("noUiSlider ("+VERSION+"): 'connect' option doesn't match handle count.");connect=entry}parsed.connect=connect}function testOrientation(parsed,entry){
// Set orientation to an a numerical value for easy
// array selection.
switch(entry){case"horizontal":parsed.ort=0;break;case"vertical":parsed.ort=1;break;default:throw new Error("noUiSlider ("+VERSION+"): 'orientation' option is invalid.")}}function testMargin(parsed,entry){if(!isNumeric(entry))throw new Error("noUiSlider ("+VERSION+"): 'margin' option must be numeric.");
// Issue #582
if(0!==entry&&(parsed.margin=parsed.spectrum.getMargin(entry),!parsed.margin))throw new Error("noUiSlider ("+VERSION+"): 'margin' option is only supported on linear sliders.")}function testLimit(parsed,entry){if(!isNumeric(entry))throw new Error("noUiSlider ("+VERSION+"): 'limit' option must be numeric.");if(parsed.limit=parsed.spectrum.getMargin(entry),!parsed.limit||parsed.handles<2)throw new Error("noUiSlider ("+VERSION+"): 'limit' option is only supported on linear sliders with 2 or more handles.")}function testPadding(parsed,entry){if(!isNumeric(entry)&&!Array.isArray(entry))throw new Error("noUiSlider ("+VERSION+"): 'padding' option must be numeric or array of exactly 2 numbers.");if(Array.isArray(entry)&&2!==entry.length&&!isNumeric(entry[0])&&!isNumeric(entry[1]))throw new Error("noUiSlider ("+VERSION+"): 'padding' option must be numeric or array of exactly 2 numbers.");if(0!==entry){if(Array.isArray(entry)||(entry=[entry,entry]),!(
// 'getMargin' returns false for invalid values.
parsed.padding=[parsed.spectrum.getMargin(entry[0]),parsed.spectrum.getMargin(entry[1])])===parsed.padding[0]||!1===parsed.padding[1])throw new Error("noUiSlider ("+VERSION+"): 'padding' option is only supported on linear sliders.");if(parsed.padding[0]<0||parsed.padding[1]<0)throw new Error("noUiSlider ("+VERSION+"): 'padding' option must be a positive number(s).");if(100<=parsed.padding[0]+parsed.padding[1])throw new Error("noUiSlider ("+VERSION+"): 'padding' option must not exceed 100% of the range.")}}function testDirection(parsed,entry){
// Set direction as a numerical value for easy parsing.
// Invert connection for RTL sliders, so that the proper
// handles get the connect/background classes.
switch(entry){case"ltr":parsed.dir=0;break;case"rtl":parsed.dir=1;break;default:throw new Error("noUiSlider ("+VERSION+"): 'direction' option was not recognized.")}}function testBehaviour(parsed,entry){
// Make sure the input is a string.
if("string"!=typeof entry)throw new Error("noUiSlider ("+VERSION+"): 'behaviour' must be a string containing options.");
// Check if the string contains any keywords.
// None are required.
var tap=0<=entry.indexOf("tap"),drag=0<=entry.indexOf("drag"),fixed=0<=entry.indexOf("fixed"),snap=0<=entry.indexOf("snap"),entry=0<=entry.indexOf("hover");if(fixed){if(2!==parsed.handles)throw new Error("noUiSlider ("+VERSION+"): 'fixed' behaviour must be used with 2 handles");
// Use margin to enforce fixed state
testMargin(parsed,parsed.start[1]-parsed.start[0])}parsed.events={tap:tap||snap,drag:drag,fixed:fixed,snap:snap,hover:entry}}function testTooltips(parsed,entry){if(!1!==entry)if(!0===entry){parsed.tooltips=[];for(var i=0;i<parsed.handles;i++)parsed.tooltips.push(!0)}else{if(parsed.tooltips=asArray(entry),parsed.tooltips.length!==parsed.handles)throw new Error("noUiSlider ("+VERSION+"): must pass a formatter for all handles.");parsed.tooltips.forEach(function(formatter){if("boolean"!=typeof formatter&&("object"!=typeof formatter||"function"!=typeof formatter.to))throw new Error("noUiSlider ("+VERSION+"): 'tooltips' must be passed a formatter or 'false'.")})}}function testAriaFormat(parsed,entry){validateFormat(parsed.ariaFormat=entry)}function testFormat(parsed,entry){validateFormat(parsed.format=entry)}function testCssPrefix(parsed,entry){if("string"!=typeof entry&&!1!==entry)throw new Error("noUiSlider ("+VERSION+"): 'cssPrefix' must be a string or `false`.");parsed.cssPrefix=entry}function testCssClasses(parsed,entry){if("object"!=typeof entry)throw new Error("noUiSlider ("+VERSION+"): 'cssClasses' must be an object.");if("string"==typeof parsed.cssPrefix)for(var key in parsed.cssClasses={},entry)entry.hasOwnProperty(key)&&(parsed.cssClasses[key]=parsed.cssPrefix+entry[key]);else parsed.cssClasses=entry}
// Test all developer settings and parse to assumption-safe values.
function testOptions(options){
// To prove a fix for #537, freeze options here.
// If the object is modified, an error will be thrown.
// Object.freeze(options);
var parsed={margin:0,limit:0,padding:0,animate:!0,animationDuration:300,ariaFormat:defaultFormatter,format:defaultFormatter},tests={step:{r:!1,t:testStep},start:{r:!0,t:testStart},connect:{r:!0,t:testConnect},direction:{r:!0,t:testDirection},snap:{r:!1,t:testSnap},animate:{r:!1,t:testAnimate},animationDuration:{r:!1,t:testAnimationDuration},range:{r:!0,t:testRange},orientation:{r:!1,t:testOrientation},margin:{r:!1,t:testMargin},limit:{r:!1,t:testLimit},padding:{r:!1,t:testPadding},behaviour:{r:!0,t:testBehaviour},ariaFormat:{r:!1,t:testAriaFormat},format:{r:!1,t:testFormat},tooltips:{r:!1,t:testTooltips},cssPrefix:{r:!0,t:testCssPrefix},cssClasses:{r:!0,t:testCssClasses}},defaults={connect:!1,direction:"ltr",behaviour:"tap",orientation:"horizontal",cssPrefix:"noUi-",cssClasses:{target:"target",base:"base",origin:"origin",handle:"handle",handleLower:"handle-lower",handleUpper:"handle-upper",horizontal:"horizontal",vertical:"vertical",background:"background",connect:"connect",connects:"connects",ltr:"ltr",rtl:"rtl",draggable:"draggable",drag:"state-drag",tap:"state-tap",active:"active",tooltip:"tooltip",pips:"pips",pipsHorizontal:"pips-horizontal",pipsVertical:"pips-vertical",marker:"marker",markerHorizontal:"marker-horizontal",markerVertical:"marker-vertical",markerNormal:"marker-normal",markerLarge:"marker-large",markerSub:"marker-sub",value:"value",valueHorizontal:"value-horizontal",valueVertical:"value-vertical",valueNormal:"value-normal",valueLarge:"value-large",valueSub:"value-sub"}},d=(
// AriaFormat defaults to regular format, if any.
options.format&&!options.ariaFormat&&(options.ariaFormat=options.format),
// Run all options through a testing mechanism to ensure correct
// input. It should be noted that options might get modified to
// be handled properly. E.g. wrapping integers in arrays.
Object.keys(tests).forEach(function(name){
// If the option isn't set, but it is required, throw an error.
if(!isSet(options[name])&&void 0===defaults[name]){if(tests[name].r)throw new Error("noUiSlider ("+VERSION+"): '"+name+"' is required.");return!0}tests[name].t(parsed,(isSet(options[name])?options:defaults)[name])}),
// Forward pips options
parsed.pips=options.pips,document.createElement("div")),msPrefix=void 0!==d.style.msTransform,d=void 0!==d.style.transform;
// Tests are executed in the order they are presented here.
parsed.transformRule=d?"transform":msPrefix?"msTransform":"webkitTransform";return parsed.style=[["left","top"],["right","bottom"]][parsed.dir][parsed.ort],parsed}function scope(target,options,originalOptions){var scope_Base,scope_Handles,scope_Connects,scope_Self,scope_Pips,behaviour,tips,actions=window.navigator.pointerEnabled?{start:"pointerdown",move:"pointermove",end:"pointerup"}:window.navigator.msPointerEnabled?{start:"MSPointerDown",move:"MSPointerMove",end:"MSPointerUp"}:{start:"mousedown touchstart",move:"mousemove touchmove",end:"mouseup touchend"},supportsPassive=window.CSS&&CSS.supports&&CSS.supports("touch-action","none")&&(
// https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md
// Issue #785
()=>{var supportsPassive=!1;try{var opts=Object.defineProperty({},"passive",{get:function(){supportsPassive=!0}});window.addEventListener("test",null,opts)}catch(e){}return supportsPassive})(),scope_Target=target,scope_Locations=[],scope_HandleNumbers=[],scope_ActiveHandlesCount=0,scope_Spectrum=options.spectrum,scope_Values=[],scope_Events={},scope_Document=target.ownerDocument,scope_DocumentElement=scope_Document.documentElement,scope_Body=scope_Document.body,scope_DirOffset="rtl"===scope_Document.dir||1===options.ort?0:100;
/*! In this file: Construction of DOM elements; */
// Creates a node, adds it to target, returns the new node.
function addNodeTo(addTarget,className){var div=scope_Document.createElement("div");return className&&addClass(div,className),addTarget.appendChild(div),div}
// Append a origin to the base
// Insert nodes for connect elements
function addConnect(base,add){return!!add&&addNodeTo(base,options.cssClasses.connect)}
// Add handles to the slider base.
function addTooltip(handle,handleNumber){return!!options.tooltips[handleNumber]&&addNodeTo(handle.firstChild,options.cssClasses.tooltip)}
// The tooltips option is a shorthand for using the 'update' event.
function addMarking(spread,filterFunc,formatter){var element=scope_Document.createElement("div"),valueSizeClasses=[options.cssClasses.valueNormal,options.cssClasses.valueLarge,options.cssClasses.valueSub],markerSizeClasses=[options.cssClasses.markerNormal,options.cssClasses.markerLarge,options.cssClasses.markerSub],valueOrientationClasses=[options.cssClasses.valueHorizontal,options.cssClasses.valueVertical],markerOrientationClasses=[options.cssClasses.markerHorizontal,options.cssClasses.markerVertical];function getClasses(type,source){var a=source===options.cssClasses.value;return source+" "+(a?valueOrientationClasses:markerOrientationClasses)[options.ort]+" "+(a?valueSizeClasses:markerSizeClasses)[type]}return addClass(element,options.cssClasses.pips),addClass(element,0===options.ort?options.cssClasses.pipsHorizontal:options.cssClasses.pipsVertical),
// Append all points.
Object.keys(spread).forEach(function(a){var values,node;
// Apply the filter function, if it is set.
(values=spread[a=a])[1]=values[1]&&filterFunc?filterFunc(values[0],values[1]):values[1],(node=addNodeTo(element,!1)).className=getClasses(values[1],options.cssClasses.marker),node.style[options.style]=a+"%",
// Values are only appended for points marked '1' or '2'.
values[1]&&((node=addNodeTo(element,!1)).className=getClasses(values[1],options.cssClasses.value),node.setAttribute("data-value",values[0]),node.style[options.style]=a+"%",node.innerText=formatter.to(values[0]))}),element}function removePips(){var el;scope_Pips&&((el=scope_Pips).parentElement.removeChild(el),scope_Pips=null)}function pips(grid){
// Fix #669
removePips();var mode=grid.mode,density=grid.density||1,filter=grid.filter||!1,group=((mode,values,stepped)=>{
// Use the range.
if("range"===mode||"steps"===mode)return scope_Spectrum.xVal;if("count"===mode){if(values<2)throw new Error("noUiSlider ("+VERSION+"): 'values' (>= 2) required for mode 'count'.");
// Divide 0 - 100 in 'count' parts.
var interval=values-1,spread=100/interval;
// List these parts and have them handled as 'positions'.
for(values=[];interval--;)values[interval]=interval*spread;values.push(100),mode="positions"}return"positions"===mode?values.map(function(value){return scope_Spectrum.fromStepping(stepped?scope_Spectrum.getStep(value):value)}):"values"===mode?
// If the value must be stepped, it needs to be converted to a percentage first.
stepped?values.map(function(value){
// Convert to percentage, apply step, return to value.
return scope_Spectrum.fromStepping(scope_Spectrum.getStep(scope_Spectrum.toStepping(value)))}):values:void 0})(mode,grid.values||!1,grid.stepped||!1),density=((density,mode,group)=>{var indexes={},firstInRange=scope_Spectrum.xVal[0],lastInRange=scope_Spectrum.xVal[scope_Spectrum.xVal.length-1],ignoreFirst=!1,ignoreLast=!1,prevPct=0;
// Make sure the range starts with the first element.
// Create a copy of the group, sort it and filter away all duplicates.
return(group=group.slice().sort(function(a,b){return a-b}).filter(function(a){return!this[a]&&(this[a]=!0)},{}))[0]!==firstInRange&&(group.unshift(firstInRange),ignoreFirst=!0),
// Likewise for the last one.
group[group.length-1]!==lastInRange&&(group.push(lastInRange),ignoreLast=!0),group.forEach(function(current,index){
// Get the current step and the lower + upper positions.
var i,q,newPct,pctDifference,realSteps,stepsize,high=group[index+1],
// Default to a 'full' step.
step=(
// When using 'steps' mode, use the provided steps.
// Otherwise, we'll step on to the next subrange.
step="steps"===mode?scope_Spectrum.xNumSteps[index]:step)||high-current;
// Low can be 0, so test for false. If high is undefined,
// we are at the last subrange. Index 0 is already handled.
if(!1!==current&&void 0!==high)
// Find all steps in the subrange.
for(
// Make sure step isn't 0, which would cause an infinite loop (#654)
step=Math.max(step,1e-7),i=current;i<=high;i=+(i+step).toFixed(7)){
// Divide all points evenly, adding the correct number to this subrange.
// Run up to <= so that 100% gets a point, event if ignoreLast is set.
for(
// Get the percentage value for the current step,
// calculate the size for the subrange.
// This ratio represents the amount of percentage-space a point indicates.
// For a density 1 the points/percentage = 1. For density 2, that percentage needs to be re-devided.
// Round the percentage offset to an even number, then divide by two
// to spread the offset on both sides of the range.
stepsize=(pctDifference=(newPct=scope_Spectrum.toStepping(i))-prevPct)/(realSteps=Math.round(pctDifference/density)),q=1;q<=realSteps;q+=1)
// The ratio between the rounded value and the actual size might be ~1% off.
// Correct the percentage offset by the number of points
// per subrange. density = 1 will result in 100 points on the
// full range, 2 for 50, 4 for 25, etc.
indexes[(prevPct+q*stepsize).toFixed(5)]=["x",0];
// Determine the point type.
pctDifference=-1<group.indexOf(i)?1:"steps"===mode?2:0,
// Enforce the 'ignoreFirst' option by overwriting the type for 0.
!index&&ignoreFirst&&(pctDifference=0),i===high&&ignoreLast||(
// Mark the 'type' of this point. 0 = plain, 1 = real value, 2 = step value.
indexes[newPct.toFixed(5)]=[i,pctDifference]),
// Update the percentage count.
prevPct=newPct}}),indexes})(density,mode,group),mode=grid.format||{to:Math.round};return scope_Pips=scope_Target.appendChild(addMarking(density,filter,mode))}
/*! In this file: Browser events (not slider events like slide, change); */
// Shorthand for base dimensions.
function baseSize(){var rect=scope_Base.getBoundingClientRect(),alt="offset"+["Width","Height"][options.ort];return 0===options.ort?rect.width||scope_Base[alt]:rect.height||scope_Base[alt]}
// Handler for attaching events trough a proxy.
function attachEvent(events,element,callback,data){function method(e){
// fixEvent returns false if this event has a different target
// when handling (multi-) touch events;
var el,className;
// doNotReject is passed by all end events to make sure released touches
// are not rejected, leaving the slider "stuck" to the cursor;
return!!(e=(
// Provide a clean event with standardized offset values.
(e,pageOffset,eventTarget)=>{
// Filter the event to register the type, which can be
// touch, mouse or pointer. Offset changes need to be
// made on an event specific basis.
var x,touch=0===e.type.indexOf("touch"),mouse=0===e.type.indexOf("mouse"),pointer=0===e.type.indexOf("pointer");
// In the event that multitouch is activated, the only thing one handle should be concerned
// about is the touches that originated on top of it.
if(
// IE10 implemented pointer events with a prefix;
0===e.type.indexOf("MSPointer")&&(pointer=!0),touch){
// Returns true if a touch originated on the target.
touch=function(checkTouch){return checkTouch.target===eventTarget||eventTarget.contains(checkTouch.target)};
// In the case of touchstart events, we need to make sure there is still no more than one
// touch on the target so we look amongst all touches.
if("touchstart"===e.type){var targetTouches=Array.prototype.filter.call(e.touches,touch);
// Do not support more than one touch per handle.
if(1<targetTouches.length)return!1;x=targetTouches[0].pageX,targetTouches=targetTouches[0].pageY}else{
// In the other cases, find on changedTouches is enough.
touch=Array.prototype.find.call(e.changedTouches,touch);
// Cancel if the target touch has not moved.
if(!touch)return!1;x=touch.pageX,targetTouches=touch.pageY}}// Fix #435
return pageOffset=pageOffset||getPageOffset(scope_Document),(mouse||pointer)&&(x=e.clientX+pageOffset.x,targetTouches=e.clientY+pageOffset.y),e.pageOffset=pageOffset,e.points=[x,targetTouches],e.cursor=mouse||pointer,e}
// Translate a coordinate in the document to a percentage on the slider
)(e,data.pageOffset,data.target||element))&&!(scope_Target.hasAttribute("disabled")&&!data.doNotReject||(
// Stop if an active 'tap' transition is taking place.
el=scope_Target,className=options.cssClasses.tap,(el.classList?el.classList.contains(className):new RegExp("\\b"+className+"\\b").test(el.className))&&!data.doNotReject)||events===actions.start&&void 0!==e.buttons&&1<e.buttons||data.hover&&e.buttons)&&(
// 'supportsPassive' is only true if a browser also supports touch-action: none in CSS.
// iOS safari does not, so it doesn't get to benefit from passive scrolling. iOS does support
// touch-action: manipulation, but that allows panning, which breaks
// sliders after zooming/on non-responsive pages.
// See: https://bugs.webkit.org/show_bug.cgi?id=133112
supportsPassive||e.preventDefault(),e.calcPoint=e.points[options.ort],void
// Call the event handler with the event [ and additional data ].
callback(e,data))}
// This function can be used to 'filter' events to the slider.
// element is a node, not a nodeList
var methods=[];
// Bind a closure on the target for every event type.
return events.split(" ").forEach(function(eventName){element.addEventListener(eventName,method,!!supportsPassive&&{passive:!0}),methods.push([eventName,method])}),methods}function calcPointToPercentage(calcPoint){var rect,docElem,
// Clamp proposal between 0% and 100%
// Out-of-bound coordinates may occur when .noUi-base pseudo-elements
// are used (e.g. contained handles feature)
orientation=limit(100*(calcPoint-(calcPoint=scope_Base,orientation=options.ort,rect=calcPoint.getBoundingClientRect(),docElem=(calcPoint=calcPoint.ownerDocument).documentElement,calcPoint=getPageOffset(calcPoint),
// getBoundingClientRect contains left scroll in Chrome on Android.
// I haven't found a feature detection that proves this. Worst case
// scenario on mis-match: the 'tap' feature on horizontal sliders breaks.
/webkit.*Chrome.*Mobile/i.test(navigator.userAgent)&&(calcPoint.x=0),orientation?rect.top+calcPoint.y-docElem.clientTop:rect.left+calcPoint.x-docElem.clientLeft))/baseSize());return options.dir?100-orientation:orientation}
// Find handle closest to a certain percentage on the slider
// Fire 'end' when a mouse or pen leaves the document.
function documentLeave(event,data){"mouseout"===event.type&&"HTML"===event.target.nodeName&&null===event.relatedTarget&&eventEnd(event,data)}
// Handle movement on document for handle and range drag.
function eventMove(event,data){
// Fix #498
// Check value of .buttons in 'start' to work around a bug in IE10 mobile (data.buttonsProperty).
// https://connect.microsoft.com/IE/feedback/details/927005/mobile-ie10-windows-phone-buttons-property-of-pointermove-event-always-zero
// IE9 has .buttons and .which zero on mousemove.
// Firefox breaks the spec MDN defines.
if(-1===navigator.appVersion.indexOf("MSIE 9")&&0===event.buttons&&0!==data.buttonsProperty)return eventEnd(event,data);
// Check if we are moving up or down
event=(options.dir?-1:1)*(event.calcPoint-data.startCalcPoint);
// Convert the movement into a percentage of the slider width/height
moveHandles(0<event,100*event/data.baseSize,data.locations,data.handleNumbers)}
// Unbind move events on document, call callbacks.
function eventEnd(event,data){
// The handle is no longer active, so remove the class.
data.handle&&(removeClass(data.handle,options.cssClasses.active),--scope_ActiveHandlesCount),
// Unbind the move and end events, which are added on 'start'.
data.listeners.forEach(function(c){scope_DocumentElement.removeEventListener(c[0],c[1])}),0===scope_ActiveHandlesCount&&(
// Remove dragging class.
removeClass(scope_Target,options.cssClasses.drag),setZindex(),event.cursor)&&(scope_Body.style.cursor="",scope_Body.removeEventListener("selectstart",preventDefault)),data.handleNumbers.forEach(function(handleNumber){fireEvent("change",handleNumber),fireEvent("set",handleNumber),fireEvent("end",handleNumber)})}
// Bind move events on document.
function eventStart(event,data){if(1===data.handleNumbers.length){var handleOrigin=scope_Handles[data.handleNumbers[0]];
// Ignore 'disabled' handles
if(handleOrigin.hasAttribute("disabled"))return!1;handleOrigin=handleOrigin.children[0],scope_ActiveHandlesCount+=1,
// Mark the handle as 'active' so it can be styled.
addClass(handleOrigin,options.cssClasses.active)}
// A drag should never propagate up to the 'tap' event.
event.stopPropagation();
// Record the event listeners.
var listeners=[],moveEvent=attachEvent(actions.move,scope_DocumentElement,eventMove,{
// The event target has changed so we need to propagate the original one so that we keep
// relying on it to extract target touches.
target:event.target,handle:handleOrigin,listeners:listeners,startCalcPoint:event.calcPoint,baseSize:baseSize(),pageOffset:event.pageOffset,handleNumbers:data.handleNumbers,buttonsProperty:event.buttons,locations:scope_Locations.slice()}),endEvent=attachEvent(actions.end,scope_DocumentElement,eventEnd,{target:event.target,handle:handleOrigin,listeners:listeners,doNotReject:!0,handleNumbers:data.handleNumbers}),handleOrigin=attachEvent("mouseout",scope_DocumentElement,documentLeave,{target:event.target,handle:handleOrigin,listeners:listeners,doNotReject:!0,handleNumbers:data.handleNumbers});
// Attach the move and end events.
// We want to make sure we pushed the listeners in the listener list rather than creating
// a new one as it has already been passed to the event handlers.
listeners.push.apply(listeners,moveEvent.concat(endEvent,handleOrigin)),
// Text selection isn't an issue on touch devices,
// so adding cursor styles can be skipped.
event.cursor&&(
// Prevent the 'I' cursor and extend the range-drag cursor.
scope_Body.style.cursor=getComputedStyle(event.target).cursor,
// Mark the target with a dragging state.
1<scope_Handles.length&&addClass(scope_Target,options.cssClasses.drag),
// Prevent text selection when dragging the handles.
// In noUiSlider <= 9.2.0, this was handled by calling preventDefault on mouse/touch start/move,
// which is scroll blocking. The selectstart event is supported by FireFox starting from version 52,
// meaning the only holdout is iOS Safari. This doesn't matter: text selection isn't triggered there.
// The 'cursor' flag is false.
// See: http://caniuse.com/#search=selectstart
scope_Body.addEventListener("selectstart",preventDefault,!1)),data.handleNumbers.forEach(function(handleNumber){fireEvent("start",handleNumber)})}
// Move closest handle to tapped location.
function eventTap(event){
// The tap event shouldn't propagate up
event.stopPropagation();var proposal=calcPointToPercentage(event.calcPoint),handleNumber=(proposal=>{var closest=100,handleNumber=!1;return scope_Handles.forEach(function(handle,index){
// Disabled handles are ignored
!handle.hasAttribute("disabled")&&((handle=Math.abs(scope_Locations[index]-proposal))<closest||100===handle&&100===closest)&&(handleNumber=index,closest=handle)}),handleNumber})(proposal);
// Tackle the case that all handles are 'disabled'.
if(!1===handleNumber)return!1;
// Flag the slider as it is now in a transitional state.
// Transition takes a configurable amount of ms (default 300). Re-enable the slider after that.
options.events.snap||addClassFor(scope_Target,options.cssClasses.tap,options.animationDuration),setHandle(handleNumber,proposal,!0,!0),setZindex(),fireEvent("slide",handleNumber,!0),fireEvent("update",handleNumber,!0),fireEvent("change",handleNumber,!0),fireEvent("set",handleNumber,!0),options.events.snap&&eventStart(event,{handleNumbers:[handleNumber]})}
// Fires a 'hover' event for a hovered mouse/pen position.
function eventHover(event){var event=calcPointToPercentage(event.calcPoint),event=scope_Spectrum.getStep(event),value=scope_Spectrum.fromStepping(event);Object.keys(scope_Events).forEach(function(targetEvent){"hover"===targetEvent.split(".")[0]&&scope_Events[targetEvent].forEach(function(callback){callback.call(scope_Self,value)})})}
// Attach events to several slider parts.
/*! In this file: Slider events (not browser events); */
// Attach an event to this slider, possibly including a namespace
function bindEvent(namespacedEvent,callback){scope_Events[namespacedEvent]=scope_Events[namespacedEvent]||[],scope_Events[namespacedEvent].push(callback),
// If the event bound is 'update,' fire it immediately for all handles.
"update"===namespacedEvent.split(".")[0]&&scope_Handles.forEach(function(a,index){fireEvent("update",index)})}
// Undo attachment of event
// External event handling
function fireEvent(eventName,handleNumber,tap){Object.keys(scope_Events).forEach(function(targetEvent){var eventType=targetEvent.split(".")[0];eventName===eventType&&scope_Events[targetEvent].forEach(function(callback){callback.call(
// Use the slider public API as the scope ('this')
scope_Self,
// Return values as array, so arg_1[arg_2] is always valid.
scope_Values.map(options.format.to),
// Handle index, 0 or 1
handleNumber,
// Unformatted slider values
scope_Values.slice(),
// Event is fired by tap, true or false
tap||!1,
// Left offset of the handle, in relation to the slider
scope_Locations.slice())})})}
/*! In this file: Mechanics for slider operation */
// Split out the handle positioning logic so the Move event can use it, too
function checkHandlePosition(reference,handleNumber,to,lookBackward,lookForward,getValue){
// Return false if handle can't move
// For sliders with multiple handles, limit movement to the other handle.
// Apply the margin option by adding it to the handle positions.
return 1<scope_Handles.length&&(lookBackward&&0<handleNumber&&(to=Math.max(to,reference[handleNumber-1]+options.margin)),lookForward)&&handleNumber<scope_Handles.length-1&&(to=Math.min(to,reference[handleNumber+1]-options.margin)),
// The limit option has the opposite effect, limiting handles to a
// maximum distance from another. Limit must be > 0, as otherwise
// handles would be unmoveable.
1<scope_Handles.length&&options.limit&&(lookBackward&&0<handleNumber&&(to=Math.min(to,reference[handleNumber-1]+options.limit)),lookForward)&&handleNumber<scope_Handles.length-1&&(to=Math.max(to,reference[handleNumber+1]-options.limit)),
// The padding option keeps the handles a certain distance from the
// edges of the slider. Padding must be > 0.
options.padding&&(0===handleNumber&&(to=Math.max(to,options.padding[0])),handleNumber===scope_Handles.length-1)&&(to=Math.min(to,100-options.padding[1])),!((
// Limit percentage to the 0 - 100 range
to=limit(to=scope_Spectrum.getStep(to)))===reference[handleNumber]&&!getValue)&&to}
// Uses slider orientation to create CSS rules. a = base value;
function inRuleOrder(v,a){var o=options.ort;return(o?a:v)+", "+(o?v:a)}
// Moves handle(s) by a percentage
// (bool, % to move, [% where handle started, ...], [index in scope_Handles, ...])
function moveHandles(upward,proposal,locations,handleNumbers){var proposals=locations.slice(),b=[!upward,upward],f=[upward,!upward],state=(
// Copy handleNumbers so we don't change the dataset
handleNumbers=handleNumbers.slice(),
// Check to see which handle is 'leading'.
// If that one can't move the second can't either.
upward&&handleNumbers.reverse(),
// Step 1: get the maximum percentage that any of the handles can move
1<handleNumbers.length?handleNumbers.forEach(function(handleNumber,o){o=checkHandlePosition(proposals,handleNumber,proposals[handleNumber]+proposal,b[o],f[o],!1);
// Stop if one of the handles can't move.
!1===o?proposal=0:(proposal=o-proposals[handleNumber],proposals[handleNumber]=o)}):b=f=[!0],!1);
// Step 2: Try to set the handles with the found percentage
handleNumbers.forEach(function(handleNumber,o){state=setHandle(handleNumber,locations[handleNumber]+proposal,b[o],f[o])||state}),
// Step 3: If a handle moved, fire events
state&&handleNumbers.forEach(function(handleNumber){fireEvent("update",handleNumber),fireEvent("slide",handleNumber)})}
// Takes a base value and an offset. This offset is used for the connect bar size.
// In the initial design for this feature, the origin element was 1% wide.
// Unfortunately, a rounding bug in Chrome makes it impossible to implement this feature
// in this manner: https://bugs.chromium.org/p/chromium/issues/detail?id=798223
function transformDirection(a,b){return options.dir?100-a-b:a}
// Updates scope_Locations and scope_Values, updates visual state
// Handles before the slider middle are stacked later = higher,
// Handles after the middle later is lower
// [[7] [8] .......... | .......... [5] [4]
function setZindex(){scope_HandleNumbers.forEach(function(handleNumber){var dir=50<scope_Locations[handleNumber]?-1:1,dir=3+(scope_Handles.length+dir*handleNumber);scope_Handles[handleNumber].style.zIndex=dir})}
// Test suggested values and apply margin, step.
function setHandle(handleNumber,to,lookBackward,lookForward){return!1!==(to=checkHandlePosition(scope_Locations,handleNumber,to,lookBackward,lookForward,!1))&&(((handleNumber,to)=>{
// Update locations.
scope_Locations[handleNumber]=to,
// Convert the value to the slider stepping/range.
scope_Values[handleNumber]=scope_Spectrum.fromStepping(to),to="translate("+inRuleOrder(transformDirection(to,0)-scope_DirOffset+"%","0")+")",scope_Handles[handleNumber].style[options.transformRule]=to,updateConnect(handleNumber),updateConnect(handleNumber+1)})(handleNumber,to),!0)}
// Updates style attribute for connect nodes
function updateConnect(index){
// Skip connects set to false
var l,h;scope_Connects[index]&&(h=100,l="translate("+inRuleOrder(transformDirection(l=(l=0)!==index?scope_Locations[index-1]:l,h=(h=index!==scope_Connects.length-1?scope_Locations[index]:h)-l)+"%","0")+")",h="scale("+inRuleOrder(h/100,"1")+")",scope_Connects[index].style[options.transformRule]=l+" "+h)}
/*! In this file: All methods eventually exposed in slider.noUiSlider... */
// Parses value passed to .set method. Returns current value if not parse-able.
// Set the slider value.
function valueSet(input,fireSetEvent){var values=asArray(input),input=void 0===scope_Locations[0];
// Event fires by default
fireSetEvent=void 0===fireSetEvent||!!fireSetEvent,
// Animation is optional.
// Make sure the initial values were set before using animated placement.
options.animate&&!input&&addClassFor(scope_Target,options.cssClasses.tap,options.animationDuration),
// First pass, without lookAhead but with lookBackward. Values are set from left to right.
scope_HandleNumbers.forEach(function(handleNumber){setHandle(handleNumber,((to,handleNumber)=>
// Setting with null indicates an 'ignore'.
// Inputting 'false' is invalid.
null===to||!1===to||void 0===to||(
// If a formatted number was passed, attempt to decode it.
"number"==typeof to&&(to=String(to)),to=options.format.from(to),!1===(to=scope_Spectrum.toStepping(to)))||isNaN(to)?scope_Locations[handleNumber]:to)(values[handleNumber],handleNumber),!0,!1)}),
// Second pass. Now that all base values are set, apply constraints
scope_HandleNumbers.forEach(function(handleNumber){setHandle(handleNumber,scope_Locations[handleNumber],!0,!0)}),setZindex(),scope_HandleNumbers.forEach(function(handleNumber){fireEvent("update",handleNumber),
// Fire the event only for handles that received a new value, as per #579
null!==values[handleNumber]&&fireSetEvent&&fireEvent("set",handleNumber)})}
// Reset slider to initial values
// Get the slider value.
function valueGet(){var values=scope_Values.map(options.format.to);
// If only one handle is used, return a single value.
return 1===values.length?values[0]:values}
// Removes classes from the root and empties it.
// Apply classes and data to the target.
addClass(
/*! In this file: Calls to functions. All other scope_ files define functions only; */
// Create the base element, initialize HTML and set classes.
// Add handles and connect elements.
target=scope_Target,options.cssClasses.target),addClass(target,0===options.dir?options.cssClasses.ltr:options.cssClasses.rtl),addClass(target,0===options.ort?options.cssClasses.horizontal:options.cssClasses.vertical),scope_Base=addNodeTo(target,options.cssClasses.base);var connectOptions=options.connect,base=scope_Base,connectBase=addNodeTo(base,options.cssClasses.connects);scope_Handles=[],(scope_Connects=[]).push(addConnect(connectBase,connectOptions[0]));
// [::::O====O====O====]
// connectOptions = [0, 1, 1, 1]
for(var i=0;i<options.handles;i++)
// Keep a list of all added handles.
scope_Handles.push(((base,handleNumber)=>{var base=addNodeTo(base,options.cssClasses.origin),handle=addNodeTo(base,options.cssClasses.handle);return handle.setAttribute("data-handle",handleNumber),
// https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex
// 0 = focusable and reachable
handle.setAttribute("tabindex","0"),handle.setAttribute("role","slider"),handle.setAttribute("aria-orientation",options.ort?"vertical":"horizontal"),0===handleNumber?addClass(handle,options.cssClasses.handleLower):handleNumber===options.handles-1&&addClass(handle,options.cssClasses.handleUpper),base})(base,i)),scope_HandleNumbers[i]=i,scope_Connects.push(addConnect(connectBase,connectOptions[i+1]));
// Attach user events.
// Attach the standard drag event to the handles.
return(behaviour=options.events).fixed||scope_Handles.forEach(function(handle,index){
// These events are only bound to the visual handle
// element, not the 'real' origin element.
attachEvent(actions.start,handle.children[0],eventStart,{handleNumbers:[index]})}),
// Attach the tap event to the slider base.
behaviour.tap&&attachEvent(actions.start,scope_Base,eventTap,{}),
// Fire hover events
behaviour.hover&&attachEvent(actions.move,scope_Base,eventHover,{hover:!0}),
// Make the range draggable.
behaviour.drag&&scope_Connects.forEach(function(connect,index){var handleBefore,handleAfter,eventHolders;!1!==connect&&0!==index&&index!==scope_Connects.length-1&&(handleBefore=scope_Handles[index-1],handleAfter=scope_Handles[index],eventHolders=[connect],addClass(connect,options.cssClasses.draggable),
// When the range is fixed, the entire range can
// be dragged by the handles. The handle in the first
// origin will propagate the start event upward,
// but it needs to be bound manually on the other.
behaviour.fixed&&(eventHolders.push(handleBefore.children[0]),eventHolders.push(handleAfter.children[0])),eventHolders.forEach(function(eventHolder){attachEvent(actions.start,eventHolder,eventStart,{handles:[handleBefore,handleAfter],handleNumbers:[index-1,index]})}))}),
// Use the public value method to set the start values.
valueSet(options.start),scope_Self={destroy:function(){for(var key in options.cssClasses)options.cssClasses.hasOwnProperty(key)&&removeClass(scope_Target,options.cssClasses[key]);for(;scope_Target.firstChild;)scope_Target.removeChild(scope_Target.firstChild);delete scope_Target.noUiSlider}
// Get the current step size for the slider.
,steps:function(){
// Check all locations, map them to their stepping point.
// Get the step point, then find it in the input list.
return scope_Locations.map(function(location,index){var nearbySteps=scope_Spectrum.getNearbySteps(location),index=scope_Values[index],increment=nearbySteps.thisStep.step,decrement=null,index=(
// If the next value in this step moves into the next step,
// the increment is the start of the next step - the current value
!1!==increment&&index+increment>nearbySteps.stepAfter.startValue&&(increment=nearbySteps.stepAfter.startValue-index),
// If the value is beyond the starting point
decrement=index>nearbySteps.thisStep.startValue?nearbySteps.thisStep.step:!1!==nearbySteps.stepBefore.step&&index-nearbySteps.stepBefore.highestStep,
// Now, if at the slider edges, there is not in/decrement
100===location?increment=null:0===location&&(decrement=null),scope_Spectrum.countStepDecimals());
// Round per #391
return null!==increment&&!1!==increment&&(increment=Number(increment.toFixed(index))),[decrement=null!==decrement&&!1!==decrement?Number(decrement.toFixed(index)):decrement,increment]})}
// Updateable: margin, limit, padding, step, range, animate, snap
,on:bindEvent,off:function(namespacedEvent){var event=namespacedEvent&&namespacedEvent.split(".")[0],namespace=event&&namespacedEvent.substring(event.length);Object.keys(scope_Events).forEach(function(bind){var tEvent=bind.split(".")[0],tNamespace=bind.substring(tEvent.length);event&&event!==tEvent||namespace&&namespace!==tNamespace||delete scope_Events[bind]})},get:valueGet,set:valueSet,reset:function(fireSetEvent){valueSet(options.start,fireSetEvent)},
// Exposed for unit testing, don't use this in your application.
__moveHandles:function(a,b,c){moveHandles(a,b,scope_Locations,c)},options:originalOptions,// Issue #600, #678
updateOptions:function(optionsToUpdate,fireSetEvent){
// Spectrum is created using the range, snap, direction and step options.
// 'snap' and 'step' can be updated.
// If 'snap' and 'step' are not passed, they should remain unchanged.
var v=valueGet(),updateAble=["margin","limit","padding","range","animate","snap","step","format"],newOptions=(
// Only change options that we're actually passed to update.
updateAble.forEach(function(name){void 0!==optionsToUpdate[name]&&(originalOptions[name]=optionsToUpdate[name])}),testOptions(originalOptions));
// Load new options into the slider state
updateAble.forEach(function(name){void 0!==optionsToUpdate[name]&&(options[name]=newOptions[name])}),scope_Spectrum=newOptions.spectrum,
// Limit, margin and padding depend on the spectrum but are stored outside of it. (#677)
options.margin=newOptions.margin,options.limit=newOptions.limit,options.padding=newOptions.padding,
// Update pips, removes existing.
options.pips&&pips(options.pips),
// Invalidate the current positioning so valueSet forces an update.
scope_Locations=[],valueSet(optionsToUpdate.start||v,fireSetEvent)},target:scope_Target,// Issue #597
removePips:removePips,pips:pips},options.pips&&pips(options.pips),options.tooltips&&(tips=scope_Handles.map(addTooltip),bindEvent("update",function(values,handleNumber,unencoded){tips[handleNumber]&&(values=values[handleNumber],!0!==options.tooltips[handleNumber]&&(values=options.tooltips[handleNumber].to(unencoded[handleNumber])),tips[handleNumber].innerHTML=values)})),bindEvent("update",function(values,handleNumber,unencoded,tap,positions){
// Update Aria Values for all handles, as a change in one changes min and max values for the next.
scope_HandleNumbers.forEach(function(index){var handle=scope_Handles[index],min=checkHandlePosition(scope_Locations,index,0,!0,!0,!0),max=checkHandlePosition(scope_Locations,index,100,!0,!0,!0),now=positions[index],index=options.ariaFormat.to(unencoded[index]);handle.children[0].setAttribute("aria-valuemin",min.toFixed(1)),handle.children[0].setAttribute("aria-valuemax",max.toFixed(1)),handle.children[0].setAttribute("aria-valuenow",now.toFixed(1)),handle.children[0].setAttribute("aria-valuetext",index)})}),scope_Self}
// Run the standard initializer
// Use an object instead of a function for future expandability;
return{version:VERSION,create:function(target,originalOptions){if(!target||!target.nodeName)throw new Error("noUiSlider ("+VERSION+"): create requires a single element, got: "+target);
// Throw an error if the slider was already initialized.
if(target.noUiSlider)throw new Error("noUiSlider ("+VERSION+"): Slider was already initialized.");
// Test the options and create the slider environment;
return originalOptions=scope(target,testOptions(originalOptions),originalOptions),target.noUiSlider=originalOptions}}}),((window,$)=>{function Datepicker(el,options){this.el=el,this.$el=$(el),this.opts=$.extend(!0,{},defaults,options,this.$el.data()),null==$body&&($body=$("body")),this.opts.startDate||(this.opts.startDate=new Date),"INPUT"==this.el.nodeName&&(this.elIsInput=!0),this.opts.altField&&(this.$altField="string"==typeof this.opts.altField?$(this.opts.altField):this.opts.altField),this.inited=!1,this.visible=!1,this.silent=!1,// Need to prevent unnecessary rendering
this.currentDate=this.opts.startDate,this.currentView=this.opts.view,this._createShortCuts(),this.selectedDates=[],this.views={},this.keys=[],this.minRange="",this.maxRange="",this._prevOnSelectValue="",this.init()}var $body,$datepickersContainer,containerBuilt,defaults,hotKeys,datepicker;defaults={classes:"",inline:containerBuilt=!1,language:"ru",startDate:new Date,firstDay:"",weekends:[6,0],dateFormat:"",altField:"",altFieldDateFormat:"@",toggleSelected:!0,keyboardNav:!0,position:"bottom left",offset:12,view:"days",minView:"days",showOtherMonths:!0,selectOtherMonths:!0,moveToOtherMonthsOnSelect:!0,showOtherYears:!0,selectOtherYears:!0,moveToOtherYearsOnSelect:!0,minDate:"",maxDate:"",disableNavWhenOutOfRange:!0,multipleDates:!1,// Boolean or Number
multipleDatesSeparator:",",range:!1,todayButton:!1,clearButton:!1,showEvent:"focus",autoClose:!1,
// navigation
monthsField:"monthsShort",prevHtml:'<svg><path d="M 17,12 l -5,5 l 5,5"></path></svg>',nextHtml:'<svg><path d="M 14,12 l 5,5 l -5,5"></path></svg>',navTitles:{days:"MM, <i>yyyy</i>",months:"yyyy",years:"yyyy1 - yyyy2"},
// timepicker
timepicker:!1,onlyTimepicker:!1,dateTimeSeparator:" ",timeFormat:"",minHours:0,maxHours:24,minMinutes:0,maxMinutes:59,hoursStep:1,minutesStep:1,
// events
onSelect:"",onShow:"",onHide:"",onChangeMonth:"",onChangeYear:"",onChangeDecade:"",onChangeView:"",onRenderCell:""},hotKeys={ctrlRight:[17,39],ctrlUp:[17,38],ctrlLeft:[17,37],ctrlDown:[17,40],shiftRight:[16,39],shiftUp:[16,38],shiftLeft:[16,37],shiftDown:[16,40],altUp:[18,38],altRight:[18,39],altLeft:[18,37],altDown:[18,40],ctrlShiftUp:[16,17,38]},(datepicker=Datepicker).prototype={VERSION:"2.2.3",viewIndexes:["days","months","years"],init:function(){containerBuilt||this.opts.inline||!this.elIsInput||this._buildDatepickersContainer(),this._buildBaseHtml(),this._defineLocale(this.opts.language),this._syncWithMinMaxDates(),this.elIsInput&&(this.opts.inline||(
// Set extra classes for proper transitions
this._setPositionClasses(this.opts.position),this._bindEvents()),this.opts.keyboardNav&&!this.opts.onlyTimepicker&&this._bindKeyboardEvents(),this.$datepicker.on("mousedown",this._onMouseDownDatepicker.bind(this)),this.$datepicker.on("mouseup",this._onMouseUpDatepicker.bind(this))),this.opts.classes&&this.$datepicker.addClass(this.opts.classes),this.opts.timepicker&&(this.timepicker=new $.fn.datepicker.Timepicker(this,this.opts),this._bindTimepickerEvents()),this.opts.onlyTimepicker&&this.$datepicker.addClass("-only-timepicker-"),this.views[this.currentView]=new $.fn.datepicker.Body(this,this.currentView,this.opts),this.views[this.currentView].show(),this.nav=new $.fn.datepicker.Navigation(this,this.opts),this.view=this.currentView,this.$el.on("clickCell.adp",this._onClickCell.bind(this)),this.$datepicker.on("mouseenter",".datepicker--cell",this._onMouseEnterCell.bind(this)),this.$datepicker.on("mouseleave",".datepicker--cell",this._onMouseLeaveCell.bind(this)),this.inited=!0},_createShortCuts:function(){this.minDate=this.opts.minDate||new Date(-86399999136e5),this.maxDate=this.opts.maxDate||new Date(86399999136e5)},_bindEvents:function(){this.$el.on(this.opts.showEvent+".adp",this._onShowEvent.bind(this)),this.$el.on("mouseup.adp",this._onMouseUpEl.bind(this)),this.$el.on("blur.adp",this._onBlur.bind(this)),this.$el.on("keyup.adp",this._onKeyUpGeneral.bind(this)),$(window).on("resize.adp",this._onResize.bind(this)),$("body").on("mouseup.adp",this._onMouseUpBody.bind(this)),$(".datepickerConfirm, .datepickerCancel").on("click",this._onMouseUpBody.bind(this))},_bindKeyboardEvents:function(){this.$el.on("keydown.adp",this._onKeyDown.bind(this)),this.$el.on("keyup.adp",this._onKeyUp.bind(this)),this.$el.on("hotKey.adp",this._onHotKey.bind(this))},_bindTimepickerEvents:function(){this.$el.on("timeChange.adp",this._onTimeChange.bind(this))},isWeekend:function(day){return-1!==this.opts.weekends.indexOf(day)},_defineLocale:function(lang){"string"==typeof lang?(this.loc=$.fn.datepicker.language[lang],this.loc||(console.warn("Can't find language \""+lang+'" in Datepicker.language, will use "ru" instead'),this.loc=$.extend(!0,{},$.fn.datepicker.language.ru)),this.loc=$.extend(!0,{},$.fn.datepicker.language.ru,$.fn.datepicker.language[lang])):this.loc=$.extend(!0,{},$.fn.datepicker.language.ru,lang),this.opts.dateFormat&&(this.loc.dateFormat=this.opts.dateFormat),this.opts.timeFormat&&(this.loc.timeFormat=this.opts.timeFormat),""!==this.opts.firstDay&&(this.loc.firstDay=this.opts.firstDay),this.opts.timepicker&&(this.loc.dateFormat=[this.loc.dateFormat,this.loc.timeFormat].join(this.opts.dateTimeSeparator)),this.opts.onlyTimepicker&&(this.loc.dateFormat=this.loc.timeFormat);lang=this._getWordBoundaryRegExp;(this.loc.timeFormat.match(lang("aa"))||this.loc.timeFormat.match(lang("AA")))&&(this.ampm=!0)},_buildDatepickersContainer:function(){containerBuilt=!0,$body.append('<div class="addedElement"><div class="datepickers-container" id="datepickers-container"></div></div>'),$datepickersContainer=$("#datepickers-container")},_buildBaseHtml:function(){var $inline=$('<div class="datepicker-inline">'),$inline="INPUT"==this.el.nodeName?this.opts.inline?$inline.insertAfter(this.$el):$datepickersContainer:$inline.appendTo(this.$el);this.$datepicker=$('<div class="datepicker"><div class="datepickerContainer"><nav class="datepicker--nav"></nav><div class="datepicker--content"></div></div><div class="datepickerButtons"><button class="datepicker--button datepickerCancel btn bordered m0" data-action="clear">Zrušit</button> <button class="datepickerConfirm btn m0">Potvrdit</button></div></div>').appendTo($inline),this.$content=$(".datepicker--content",this.$datepicker),this.$nav=$(".datepicker--nav",this.$datepicker)},_triggerOnChange:function(){if(!this.selectedDates.length)
// Prevent from triggering multiple onSelect callback with same argument (empty string) in IE10-11
return""===this._prevOnSelectValue?void 0:(this._prevOnSelectValue="",this.opts.onSelect("","",this));var selectedDates=this.selectedDates,parsedSelected=datepicker.getParsedDate(selectedDates[0]),_this=this,parsedSelected=new Date(parsedSelected.year,parsedSelected.month,parsedSelected.date,parsedSelected.hours,parsedSelected.minutes),formattedDates=selectedDates.map(function(date){return _this.formatDate(_this.loc.dateFormat,date)}).join(this.opts.multipleDatesSeparator);
// Create new dates array, to separate it from original selectedDates
(this.opts.multipleDates||this.opts.range)&&(parsedSelected=selectedDates.map(function(date){date=datepicker.getParsedDate(date);return new Date(date.year,date.month,date.date,date.hours,date.minutes)})),this._prevOnSelectValue=formattedDates,this.opts.onSelect(formattedDates,parsedSelected,this)},next:function(){var d=this.parsedDate,o=this.opts;switch(this.view){case"days":this.date=new Date(d.year,d.month+1,1),o.onChangeMonth&&o.onChangeMonth(this.parsedDate.month,this.parsedDate.year);break;case"months":this.date=new Date(d.year+1,d.month,1),o.onChangeYear&&o.onChangeYear(this.parsedDate.year);break;case"years":this.date=new Date(d.year+10,0,1),o.onChangeDecade&&o.onChangeDecade(this.curDecade)}},prev:function(){var d=this.parsedDate,o=this.opts;switch(this.view){case"days":this.date=new Date(d.year,d.month-1,1),o.onChangeMonth&&o.onChangeMonth(this.parsedDate.month,this.parsedDate.year);break;case"months":this.date=new Date(d.year-1,d.month,1),o.onChangeYear&&o.onChangeYear(this.parsedDate.year);break;case"years":this.date=new Date(d.year-10,0,1),o.onChangeDecade&&o.onChangeDecade(this.curDecade)}},formatDate:function(string,date){date=date||this.date;var result=string,boundary=this._getWordBoundaryRegExp,locale=this.loc,leadingZero=datepicker.getLeadingZeroNum,decade=datepicker.getDecade(date),d=datepicker.getParsedDate(date),fullHours=d.fullHours,hours=d.hours,string=string.match(boundary("aa"))||string.match(boundary("AA")),dayPeriod="am",replacer=this._replacer;switch(this.opts.timepicker&&this.timepicker&&string&&(fullHours=leadingZero((leadingZero=this.timepicker._getValidHoursFromDate(date,string)).hours),hours=leadingZero.hours,dayPeriod=leadingZero.dayPeriod),!0){case/@/.test(result):result=result.replace(/@/,date.getTime());case/aa/.test(result):result=replacer(result,boundary("aa"),dayPeriod);case/AA/.test(result):result=replacer(result,boundary("AA"),dayPeriod.toUpperCase());case/dd/.test(result):result=replacer(result,boundary("dd"),d.fullDate);case/d/.test(result):result=replacer(result,boundary("d"),d.date);case/DD/.test(result):result=replacer(result,boundary("DD"),locale.days[d.day]);case/D/.test(result):result=replacer(result,boundary("D"),locale.daysShort[d.day]);case/mm/.test(result):result=replacer(result,boundary("mm"),d.fullMonth);case/m/.test(result):result=replacer(result,boundary("m"),d.month+1);case/MM/.test(result):result=replacer(result,boundary("MM"),this.loc.months[d.month]);case/M/.test(result):result=replacer(result,boundary("M"),locale.monthsShort[d.month]);case/ii/.test(result):result=replacer(result,boundary("ii"),d.fullMinutes);case/i/.test(result):result=replacer(result,boundary("i"),d.minutes);case/hh/.test(result):result=replacer(result,boundary("hh"),fullHours);case/h/.test(result):result=replacer(result,boundary("h"),hours);case/yyyy/.test(result):result=replacer(result,boundary("yyyy"),d.year);case/yyyy1/.test(result):result=replacer(result,boundary("yyyy1"),decade[0]);case/yyyy2/.test(result):result=replacer(result,boundary("yyyy2"),decade[1]);case/yy/.test(result):result=replacer(result,boundary("yy"),d.year.toString().slice(-2))}return result},_replacer:function(str,reg,data){return str.replace(reg,function(match,p1,p2,p3){return p1+data+p3})},_getWordBoundaryRegExp:function(sign){var symbols="\\s|\\.|-|/|\\\\|,|\\$|\\!|\\?|:|;";return new RegExp("(^|>|"+symbols+")("+sign+")($|<|"+symbols+")","g")},selectDate:function(date){var _this=this,opts=_this.opts,d=_this.parsedDate,len=_this.selectedDates.length,newDate="";if(Array.isArray(date))date.forEach(function(d){_this.selectDate(d)});else if(date instanceof Date){if(this.lastSelectedDate=date,
// Set new time values from Date
this.timepicker&&this.timepicker._setTime(date),
// On this step timepicker will set valid values in it's instance
_this._trigger("selectDate",date),
// Set correct time values after timepicker's validation
// Prevent from setting hours or minutes which values are lesser then `min` value or
// greater then `max` value
this.timepicker&&(date.setHours(this.timepicker.hours),date.setMinutes(this.timepicker.minutes)),"days"==_this.view&&date.getMonth()!=d.month&&opts.moveToOtherMonthsOnSelect&&(newDate=new Date(date.getFullYear(),date.getMonth(),1)),(newDate="years"==_this.view&&date.getFullYear()!=d.year&&opts.moveToOtherYearsOnSelect?new Date(date.getFullYear(),0,1):newDate)&&(_this.silent=!0,_this.date=newDate,_this.silent=!1,_this.nav._render()),opts.multipleDates&&!opts.range){
// Set priority to range functionality
if(len===opts.multipleDates)return;_this._isSelected(date)||_this.selectedDates.push(date)}else opts.range?2==len?(_this.selectedDates=[date],_this.minRange=date,_this.maxRange=""):1==len?(_this.selectedDates.push(date),_this.maxRange?_this.minRange=date:_this.maxRange=date,
// Swap dates if they were selected via dp.selectDate() and second date was smaller then first
datepicker.bigger(_this.maxRange,_this.minRange)&&(_this.maxRange=_this.minRange,_this.minRange=date),_this.selectedDates=[_this.minRange,_this.maxRange]):(_this.selectedDates=[date],_this.minRange=date):_this.selectedDates=[date];_this._setInputValue(),opts.onSelect&&_this._triggerOnChange(),opts.autoClose&&!this.timepickerIsActive&&(!opts.multipleDates&&!opts.range||opts.range&&2==_this.selectedDates.length)&&_this.hide(),_this.views[this.currentView]._render()}},removeDate:function(date){var selected=this.selectedDates,_this=this;if(date instanceof Date)return selected.some(function(curDate,i){if(datepicker.isSame(curDate,date))return selected.splice(i,1),_this.selectedDates.length?_this.lastSelectedDate=_this.selectedDates[_this.selectedDates.length-1]:(_this.minRange="",_this.maxRange="",_this.lastSelectedDate=""),_this.views[_this.currentView]._render(),_this._setInputValue(),_this.opts.onSelect&&_this._triggerOnChange(),!0})},today:function(){this.silent=!0,this.view=this.opts.minView,this.silent=!1,this.date=new Date,this.opts.todayButton instanceof Date&&this.selectDate(this.opts.todayButton)},clear:function(){this.selectedDates=[],this.minRange="",this.maxRange="",this.views[this.currentView]._render(),this._setInputValue(),this.opts.onSelect&&this._triggerOnChange()},
/**
* Updates datepicker options
* @param {String|Object} param - parameter's name to update. If object then it will extend current options
* @param {String|Number|Object} [value] - new param value
*/
update:function(param,value){var len=arguments.length,lastSelectedDate=this.lastSelectedDate;return 2==len?this.opts[param]=value:1==len&&"object"==typeof param&&(this.opts=$.extend(!0,this.opts,param)),this._createShortCuts(),this._syncWithMinMaxDates(),this._defineLocale(this.opts.language),this.nav._addButtonsIfNeed(),this.opts.onlyTimepicker||this.nav._render(),this.views[this.currentView]._render(),this.elIsInput&&!this.opts.inline&&(this._setPositionClasses(this.opts.position),this.visible)&&this.setPosition(this.opts.position),this.opts.classes&&this.$datepicker.addClass(this.opts.classes),this.opts.onlyTimepicker&&this.$datepicker.addClass("-only-timepicker-"),this.opts.timepicker&&(lastSelectedDate&&this.timepicker._handleDate(lastSelectedDate),this.timepicker._updateRanges(),this.timepicker._updateCurrentTime(),lastSelectedDate)&&(lastSelectedDate.setHours(this.timepicker.hours),lastSelectedDate.setMinutes(this.timepicker.minutes)),this._setInputValue(),this},_syncWithMinMaxDates:function(){var curTime=this.date.getTime();this.silent=!0,this.minTime>curTime&&(this.date=this.minDate),this.maxTime<curTime&&(this.date=this.maxDate),this.silent=!1},_isSelected:function(checkDate,cellType){var res=!1;return this.selectedDates.some(function(date){if(datepicker.isSame(date,checkDate,cellType))return res=date,!0}),res},_setInputValue:function(){var _this=this,opts=_this.opts,format=_this.loc.dateFormat,altFormat=opts.altFieldDateFormat,value=_this.selectedDates.map(function(date){return _this.formatDate(format,date)});opts.altField&&_this.$altField.length&&(opts=(opts=this.selectedDates.map(function(date){return _this.formatDate(altFormat,date)})).join(this.opts.multipleDatesSeparator),this.$altField.val(opts)),value=value.join(this.opts.multipleDatesSeparator),this.$el.val(value)},
/**
* Check if date is between minDate and maxDate
* @param date {object} - date object
* @param type {string} - cell type
* @returns {boolean}
* @private
*/
_isInRange:function(date,type){var time=date.getTime(),date=datepicker.getParsedDate(date),min=datepicker.getParsedDate(this.minDate),max=datepicker.getParsedDate(this.maxDate),dMinTime=new Date(date.year,date.month,min.date).getTime(),dMaxTime=new Date(date.year,date.month,max.date).getTime(),time={day:time>=this.minTime&&time<=this.maxTime,month:dMinTime>=this.minTime&&dMaxTime<=this.maxTime,year:date.year>=min.year&&date.year<=max.year};return type?time[type]:time.day},_getDimensions:function($el){var offset=$el.offset();return{width:$el.outerWidth(),height:$el.outerHeight(),left:offset.left,top:offset.top}},_getDateFromCell:function(cell){var curDate=this.parsedDate,year=cell.data("year")||curDate.year,curDate=null==cell.data("month")?curDate.month:cell.data("month"),cell=cell.data("date")||1;return new Date(year,curDate,cell)},_setPositionClasses:function(pos){var main=(pos=pos.split(" "))[0],pos="datepicker -"+main+"-"+pos[1]+"- -from-"+main+"-";this.visible&&(pos+=" active"),this.$datepicker.removeAttr("class").addClass(pos)},setPosition:function(position){position=position||this.opts.position;var top,left,dims=this._getDimensions(this.$el),selfDims=this._getDimensions(this.$datepicker),position=position.split(" "),offset=this.opts.offset,main=position[0],position=position[1];switch(main){case"top":top=dims.top-selfDims.height-offset-60;break;case"right":left=dims.left+dims.width+offset;break;case"bottom":top=dims.top+dims.height+offset;break;case"left":left=dims.left-selfDims.width-offset}switch(position){case"top":top=dims.top;break;case"right":left=dims.left+dims.width-selfDims.width;break;case"bottom":top=dims.top+dims.height-selfDims.height;break;case"left":left=dims.left;break;case"center":/left|right/.test(main)?top=dims.top+dims.height/2-selfDims.height/2:left=dims.left+dims.width/2-selfDims.width/2}this.$datepicker.css({left:left,top:top})},show:function(){var onShow=this.opts.onShow;this.setPosition(this.opts.position),this.$datepicker.addClass("active"),this.visible=!0,onShow&&this._bindVisionEvents(onShow)},hide:function(){var onHide=this.opts.onHide;this.$datepicker.removeClass("active").css({left:"-100000px"}),this.focused="",this.keys=[],this.inFocus=!1,this.visible=!1,this.$el.blur(),onHide&&this._bindVisionEvents(onHide)},down:function(date){this._changeView(date,"down")},up:function(date){this._changeView(date,"up")},_bindVisionEvents:function(event){this.$datepicker.off("transitionend.dp"),event(this,!1),this.$datepicker.one("transitionend.dp",event.bind(this,this,!0))},_changeView:function(date,dir){date=date||this.focused||this.date;dir="up"==dir?this.viewIndex+1:this.viewIndex-1;(dir=2<dir?2:dir)<0&&(dir=0),this.silent=!0,this.date=new Date(date.getFullYear(),date.getMonth(),1),this.silent=!1,this.view=this.viewIndexes[dir]},_handleHotKey:function(key){var newDate,date=datepicker.getParsedDate(this._getFocusedDate()),o=this.opts,monthChanged=!1,yearChanged=!1,decadeChanged=!1,y=date.year,m=date.month,date=date.date;switch(key){case"ctrlRight":case"ctrlUp":m+=1,monthChanged=!0;break;case"ctrlLeft":case"ctrlDown":--m,monthChanged=!0;break;case"shiftRight":case"shiftUp":yearChanged=!0,y+=1;break;case"shiftLeft":case"shiftDown":yearChanged=!0,--y;break;case"altRight":case"altUp":decadeChanged=!0,y+=10;break;case"altLeft":case"altDown":decadeChanged=!0,y-=10;break;case"ctrlShiftUp":this.up()}key=datepicker.getDaysCount(new Date(y,m)),newDate=new Date(y,m,date),
// Check if newDate is in valid range
newDate.getTime()<this.minTime?newDate=this.minDate:newDate.getTime()>this.maxTime&&(newDate=this.maxDate),this.focused=newDate,key=datepicker.getParsedDate(newDate),monthChanged&&o.onChangeMonth&&o.onChangeMonth(key.month,key.year),yearChanged&&o.onChangeYear&&o.onChangeYear(key.year),decadeChanged&&o.onChangeDecade&&o.onChangeDecade(this.curDecade)},_registerKey:function(key){this.keys.some(function(curKey){return curKey==key})||this.keys.push(key)},_unRegisterKey:function(key){key=this.keys.indexOf(key);this.keys.splice(key,1)},_isHotKeyPressed:function(){var currentHotKey,hotKey,found=!1,pressedKeys=this.keys.sort();for(hotKey in hotKeys)pressedKeys.length==(currentHotKey=hotKeys[hotKey]).length&¤tHotKey.every(function(key,i){return key==pressedKeys[i]})&&(this._trigger("hotKey",hotKey),found=!0);return found},_trigger:function(event,args){this.$el.trigger(event,args)},_focusNextCell:function(keyCode,type){type=type||this.cellType;var date=datepicker.getParsedDate(this._getFocusedDate()),y=date.year,m=date.month,d=date.date;if(!this._isHotKeyPressed()){switch(keyCode){case 37:// left
"day"==type&&--d,"month"==type&&--m,"year"==type&&--y;break;case 38:// up
"day"==type&&(d-=7),"month"==type&&(m-=3),"year"==type&&(y-=4);break;case 39:// right
"day"==type&&(d+=1),"month"==type&&(m+=1),"year"==type&&(y+=1);break;case 40:// down
"day"==type&&(d+=7),"month"==type&&(m+=3),"year"==type&&(y+=4)}date=new Date(y,m,d);date.getTime()<this.minTime?date=this.minDate:date.getTime()>this.maxTime&&(date=this.maxDate),this.focused=date}},_getFocusedDate:function(){var focused=this.focused||this.selectedDates[this.selectedDates.length-1],d=this.parsedDate;if(!focused)switch(this.view){case"days":focused=new Date(d.year,d.month,(new Date).getDate());break;case"months":focused=new Date(d.year,d.month,1);break;case"years":focused=new Date(d.year,0,1)}return focused},_getCell:function(date,type){type=type||this.cellType;var d=datepicker.getParsedDate(date),selector='.datepicker--cell[data-year="'+d.year+'"]';switch(type){case"month":selector='[data-month="'+d.month+'"]';break;case"day":selector+='[data-month="'+d.month+'"][data-date="'+d.date+'"]'}return(date=this.views[this.currentView].$el.find(selector)).length?date:$("")},destroy:function(){this.$el.off(".adp").data("datepicker",""),this.selectedDates=[],this.focused="",this.views={},this.keys=[],this.minRange="",this.maxRange="",(this.opts.inline||!this.elIsInput?this.$datepicker.closest(".datepicker-inline"):this.$datepicker).remove()},_handleAlreadySelectedDates:function(alreadySelected,selectedDate){this.opts.range?this.opts.toggleSelected?this.removeDate(selectedDate):
// Add possibility to select same date when range is true
2!=this.selectedDates.length&&this._trigger("clickCell",selectedDate):this.opts.toggleSelected&&this.removeDate(selectedDate),
// Change last selected date to be able to change time when clicking on this cell
this.opts.toggleSelected||(this.lastSelectedDate=alreadySelected,this.opts.timepicker&&(this.timepicker._setTime(alreadySelected),this.timepicker.update()))},_onShowEvent:function(e){this.visible||this.show()},_onBlur:function(){!this.inFocus&&this.visible&&this.hide()},_onMouseDownDatepicker:function(e){this.inFocus=!0},_onMouseUpDatepicker:function(e){this.inFocus=!1,e.originalEvent.inFocus=!0,e.originalEvent.timepickerFocus||this.$el.focus()},_onKeyUpGeneral:function(e){this.$el.val()||this.clear()},_onResize:function(){this.visible&&this.setPosition()},_onMouseUpBody:function(e){e.originalEvent.inFocus||this.visible&&!this.inFocus&&this.hide()},_onMouseUpEl:function(e){e.originalEvent.inFocus=!0,setTimeout(this._onKeyUpGeneral.bind(this),4)},_onKeyDown:function(e){var code=e.which;
// Enter
if(this._registerKey(code),
// Arrows
37<=code&&code<=40&&(e.preventDefault(),this._focusNextCell(code)),13==code&&this.focused){if(this._getCell(this.focused).hasClass("-disabled-"))return;if(this.view!=this.opts.minView)this.down();else{e=this._isSelected(this.focused,this.cellType);if(!e)return this.timepicker&&(this.focused.setHours(this.timepicker.hours),this.focused.setMinutes(this.timepicker.minutes)),void this.selectDate(this.focused);this._handleAlreadySelectedDates(e,this.focused)}}
// Esc
27==code&&this.hide()},_onKeyUp:function(e){e=e.which;this._unRegisterKey(e)},_onHotKey:function(e,hotKey){this._handleHotKey(hotKey)},_onMouseEnterCell:function(e){var e=$(e.target).closest(".datepicker--cell"),date=this._getDateFromCell(e);
// Prevent from unnecessary rendering and setting new currentDate
this.silent=!0,this.focused&&(this.focused=""),e.addClass("-focus-"),this.focused=date,this.silent=!1,this.opts.range&&1==this.selectedDates.length&&(this.minRange=this.selectedDates[0],this.maxRange="",datepicker.less(this.minRange,this.focused)&&(this.maxRange=this.minRange,this.minRange=""),this.views[this.currentView]._update())},_onMouseLeaveCell:function(e){$(e.target).closest(".datepicker--cell").removeClass("-focus-"),this.silent=!0,this.focused="",this.silent=!1},_onTimeChange:function(e,h,m){var date=new Date,selected=!1;this.selectedDates.length&&(selected=!0,date=this.lastSelectedDate),date.setHours(h),date.setMinutes(m),selected||this._getCell(date).hasClass("-disabled-")?(this._setInputValue(),this.opts.onSelect&&this._triggerOnChange()):this.selectDate(date)},_onClickCell:function(e,date){this.timepicker&&(date.setHours(this.timepicker.hours),date.setMinutes(this.timepicker.minutes)),this.selectDate(date)},set focused(val){var $cell;!val&&this.focused&&($cell=this._getCell(this.focused)).length&&$cell.removeClass("-focus-"),this._focused=val,this.opts.range&&1==this.selectedDates.length&&(this.minRange=this.selectedDates[0],this.maxRange="",datepicker.less(this.minRange,this._focused))&&(this.maxRange=this.minRange,this.minRange=""),this.silent||(this.date=val)},get focused(){return this._focused},get parsedDate(){return datepicker.getParsedDate(this.date)},set date(val){if(val instanceof Date)return this.currentDate=val,this.inited&&!this.silent&&(this.views[this.view]._render(),this.nav._render(),this.visible)&&this.elIsInput&&this.setPosition(),val},get date(){return this.currentDate},set view(val){if(this.viewIndex=this.viewIndexes.indexOf(val),!(this.viewIndex<0))return this.prevView=this.currentView,this.currentView=val,this.inited&&(this.views[val]?this.views[val]._render():this.views[val]=new $.fn.datepicker.Body(this,val,this.opts),this.views[this.prevView].hide(),this.views[val].show(),this.nav._render(),this.opts.onChangeView&&this.opts.onChangeView(val),this.elIsInput)&&this.visible&&this.setPosition(),val},get view(){return this.currentView},get cellType(){return this.view.substring(0,this.view.length-1)},get minTime(){var min=datepicker.getParsedDate(this.minDate);return new Date(min.year,min.month,min.date).getTime()},get maxTime(){var max=datepicker.getParsedDate(this.maxDate);return new Date(max.year,max.month,max.date).getTime()},get curDecade(){return datepicker.getDecade(this.date)}},
// Utils
// -------------------------------------------------
datepicker.getDaysCount=function(date){return new Date(date.getFullYear(),date.getMonth()+1,0).getDate()},datepicker.getParsedDate=function(date){return{year:date.getFullYear(),month:date.getMonth(),fullMonth:date.getMonth()+1<10?"0"+(date.getMonth()+1):date.getMonth()+1,// One based
date:date.getDate(),fullDate:date.getDate()<10?"0"+date.getDate():date.getDate(),day:date.getDay(),hours:date.getHours(),fullHours:date.getHours()<10?"0"+date.getHours():date.getHours(),minutes:date.getMinutes(),fullMinutes:date.getMinutes()<10?"0"+date.getMinutes():date.getMinutes()}},datepicker.getDecade=function(date){date=10*Math.floor(date.getFullYear()/10);return[date,9+date]},datepicker.template=function(str,data){return str.replace(/#\{([\w]+)\}/g,function(source,match){if(data[match]||0===data[match])return data[match]})},datepicker.isSame=function(date1,date2,type){return!(!date1||!date2)&&(date1=datepicker.getParsedDate(date1),date2=datepicker.getParsedDate(date2),{day:date1.date==date2.date&&date1.month==date2.month&&date1.year==date2.year,month:date1.month==date2.month&&date1.year==date2.year,year:date1.year==date2.year}[type||"day"])},datepicker.less=function(dateCompareTo,date,type){return!(!dateCompareTo||!date)&&date.getTime()<dateCompareTo.getTime()},datepicker.bigger=function(dateCompareTo,date,type){return!(!dateCompareTo||!date)&&date.getTime()>dateCompareTo.getTime()},datepicker.getLeadingZeroNum=function(num){return parseInt(num)<10?"0"+num:num},
/**
* Returns copy of date with hours and minutes equals to 0
* @param date {Date}
*/
datepicker.resetTime=function(date){if("object"==typeof date)return date=datepicker.getParsedDate(date),new Date(date.year,date.month,date.date)},$.fn.datepicker=function(options){return this.each(function(){var _this;$.data(this,"datepicker")?((_this=$.data(this,"datepicker")).opts=$.extend(!0,_this.opts,options),_this.update()):$.data(this,"datepicker",new Datepicker(this,options))})},$.fn.datepicker.Constructor=Datepicker,$.fn.datepicker.language={cs:{days:["Neděle","Pondělí","Úterý","Středa","Čtvrtek","Pátek","Sobota"],daysShort:["Ne","Po","Út","St","Čt","Pá","So"],daysMin:["Ne","Po","Út","St","Čt","Pá","So"],months:["Leden","Únor","Březen","Duben","Květen","Červen","Červenec","Srpen","Září","Říjen","Listopad","Prosinec"],monthsShort:["Led","Úno","Bře","Dub","Kvě","Čvn","Čvc","Srp","Zář","Říj","Lis","Pro"],today:"Dnes",clear:"Vymazat",dateFormat:"dd.mm.yyyy",timeFormat:"hh:ii",firstDay:1}},$(function(){$(".datepickerSelect").datepicker().data("datepicker")}),(()=>{var templates={days:'<div class="datepicker--days datepicker--body"><div class="datepicker--days-names"></div><div class="datepicker--cells datepicker--cells-days"></div></div>',months:'<div class="datepicker--months datepicker--body"><div class="datepicker--cells datepicker--cells-months"></div></div>',years:'<div class="datepicker--years datepicker--body"><div class="datepicker--cells datepicker--cells-years"></div></div>'},datepicker=$.fn.datepicker,dp=datepicker.Constructor;datepicker.Body=function(d,type,opts){this.d=d,this.type=type,this.opts=opts,this.$el=$(""),this.opts.onlyTimepicker||this.init()},datepicker.Body.prototype={init:function(){this._buildBaseHtml(),this._render(),this._bindEvents()},_bindEvents:function(){this.$el.on("click",".datepicker--cell",$.proxy(this._onClickCell,this))},_buildBaseHtml:function(){this.$el=$(templates[this.type]).appendTo(this.d.$content),this.$names=$(".datepicker--days-names",this.$el),this.$cells=$(".datepicker--cells",this.$el)},_getDayNamesHtml:function(firstDay,curDay,html,i){return html=html||"",7<(i=null!=i?i:0)?html:7==(curDay=null!=curDay?curDay:firstDay)?this._getDayNamesHtml(firstDay,0,html,++i):(html+='<div class="datepicker--day-name'+(this.d.isWeekend(curDay)?" -weekend-":"")+'">'+this.d.loc.daysMin[curDay]+"</div>",this._getDayNamesHtml(firstDay,++curDay,html,++i))},_getCellContents:function(date,type){var classes="datepicker--cell datepicker--cell-"+type,currentDate=new Date,parent=this.d,minRange=dp.resetTime(parent.minRange),maxRange=dp.resetTime(parent.maxRange),opts=parent.opts,d=dp.getParsedDate(date),render={},html=d.date;switch(type){case"day":parent.isWeekend(d.day)&&(classes+=" -weekend-"),d.month!=this.d.parsedDate.month&&(classes+=" -other-month-",opts.selectOtherMonths||(classes+=" -disabled-"),opts.showOtherMonths||(html=""));break;case"month":html=parent.loc[parent.opts.monthsField][d.month];break;case"year":var decade=parent.curDecade,html=d.year;(d.year<decade[0]||d.year>decade[1])&&(classes+=" -other-decade-",opts.selectOtherYears||(classes+=" -disabled-"),opts.showOtherYears||(html=""))}return opts.onRenderCell&&(html=(render=opts.onRenderCell(date,type)||{}).html||html,classes+=render.classes?" "+render.classes:""),opts.range&&(dp.isSame(minRange,date,type)&&(classes+=" -range-from-"),dp.isSame(maxRange,date,type)&&(classes+=" -range-to-"),1==parent.selectedDates.length&&parent.focused?((dp.bigger(minRange,date)&&dp.less(parent.focused,date)||dp.less(maxRange,date)&&dp.bigger(parent.focused,date))&&(classes+=" -in-range-"),dp.less(maxRange,date)&&dp.isSame(parent.focused,date)&&(classes+=" -range-from-"),dp.bigger(minRange,date)&&dp.isSame(parent.focused,date)&&(classes+=" -range-to-")):2==parent.selectedDates.length&&dp.bigger(minRange,date)&&dp.less(maxRange,date)&&(classes+=" -in-range-")),dp.isSame(currentDate,date,type)&&(classes+=" -current-"),parent.focused&&dp.isSame(date,parent.focused,type)&&(classes+=" -focus-"),parent._isSelected(date,type)&&(classes+=" -selected-"),parent._isInRange(date,type)&&!render.disabled||(classes+=" -disabled-"),{html:html,classes:classes}},
/**
* Calculates days number to render. Generates days html and returns it.
* @param {object} date - Date object
* @returns {string}
* @private
*/
_getDaysHtml:function(date){for(var m,y,totalMonthDays=dp.getDaysCount(date),firstMonthDay=new Date(date.getFullYear(),date.getMonth(),1).getDay(),lastMonthDay=new Date(date.getFullYear(),date.getMonth(),totalMonthDays).getDay(),firstMonthDay=firstMonthDay-this.d.loc.firstDay,lastMonthDay=6-lastMonthDay+this.d.loc.firstDay,html="",i=1-(firstMonthDay<0?7+firstMonthDay:firstMonthDay),max=totalMonthDays+(6<lastMonthDay?lastMonthDay-7:lastMonthDay);i<=max;i++)y=date.getFullYear(),m=date.getMonth(),html+=this._getDayHtml(new Date(y,m,i));return html},_getDayHtml:function(date){var content=this._getCellContents(date,"day");return'<div class="'+content.classes+'" data-date="'+date.getDate()+'" data-month="'+date.getMonth()+'" data-year="'+date.getFullYear()+'">'+content.html+"</div>"},
/**
* Generates months html
* @param {object} date - date instance
* @returns {string}
* @private
*/
_getMonthsHtml:function(date){for(var html="",d=dp.getParsedDate(date),i=0;i<12;)html+=this._getMonthHtml(new Date(d.year,i)),i++;return html},_getMonthHtml:function(date){var content=this._getCellContents(date,"month");return'<div class="'+content.classes+'" data-month="'+date.getMonth()+'">'+content.html+"</div>"},_getYearsHtml:function(date){dp.getParsedDate(date);for(var decade=dp.getDecade(date),html="",i=decade[0]-1;i<=decade[1]+1;i++)html+=this._getYearHtml(new Date(i,0));return html},_getYearHtml:function(date){var content=this._getCellContents(date,"year");return'<div class="'+content.classes+'" data-year="'+date.getFullYear()+'">'+content.html+"</div>"},_renderTypes:{days:function(){var dayNames=this._getDayNamesHtml(this.d.loc.firstDay),days=this._getDaysHtml(this.d.currentDate);this.$cells.html(days),this.$names.html(dayNames)},months:function(){var html=this._getMonthsHtml(this.d.currentDate);this.$cells.html(html)},years:function(){var html=this._getYearsHtml(this.d.currentDate);this.$cells.html(html)}},_render:function(){this.opts.onlyTimepicker||this._renderTypes[this.type].bind(this)()},_update:function(){var $cell,date,$cells=$(".datepicker--cell",this.$cells),_this=this;$cells.each(function(cell,i){$cell=$(this),date=_this.d._getDateFromCell($(this)),date=_this._getCellContents(date,_this.d.cellType),$cell.attr("class",date.classes)})},show:function(){this.opts.onlyTimepicker||(this.$el.addClass("active"),this.acitve=!0)},hide:function(){this.$el.removeClass("active"),this.active=!1},
// Events
// -------------------------------------------------
_handleClick:function(el){var date=el.data("date")||1,month=el.data("month")||0,el=el.data("year")||this.d.parsedDate.year,dp=this.d;
// Change view if min view does not reach yet
dp.view!=this.opts.minView?dp.down(new Date(el,month,date)):(el=new Date(el,month,date),(month=this.d._isSelected(el,this.d.cellType))?dp._handleAlreadySelectedDates.bind(dp,month,el)():dp._trigger("clickCell",el));
// Select date if min view is reached
},_onClickCell:function(e){e=$(e.target).closest(".datepicker--cell");e.hasClass("-disabled-")||this._handleClick.bind(this)(e)}}})(),(()=>{var datepicker=$.fn.datepicker,dp=datepicker.Constructor;datepicker.Navigation=function(d,opts){this.d=d,this.opts=opts,this.$buttonsContainer="",this.init()},datepicker.Navigation.prototype={init:function(){this._buildBaseHtml(),this._bindEvents()},_bindEvents:function(){this.d.$nav.on("click",".datepicker--nav-action",$.proxy(this._onClickNavButton,this)),this.d.$nav.on("click",".datepicker--nav-title",$.proxy(this._onClickNavTitle,this)),this.d.$datepicker.on("click",".datepicker--button",$.proxy(this._onClickNavButton,this))},_buildBaseHtml:function(){this.opts.onlyTimepicker||this._render(),this._addButtonsIfNeed()},_addButtonsIfNeed:function(){this.opts.todayButton&&this._addButton("today"),this.opts.clearButton&&this._addButton("clear")},_render:function(){var title=this._getTitle(this.d.currentDate),title=dp.template('<div class="datepicker--nav-action" data-action="prev">#{prevHtml}</div><div class="datepicker--nav-title">#{title}</div><div class="datepicker--nav-action" data-action="next">#{nextHtml}</div>',$.extend({title:title},this.opts));this.d.$nav.html(title),"years"==this.d.view&&$(".datepicker--nav-title",this.d.$nav).addClass("-disabled-"),this.setNavStatus()},_getTitle:function(date){return this.d.formatDate(this.opts.navTitles[this.d.view],date)},_addButton:function(type){this.$buttonsContainer.length||this._addButtonsContainer();var data={action:type,label:this.d.loc[type]},data=dp.template('<span class="datepicker--button" data-action="#{action}">#{label}</span>',data);$("[data-action="+type+"]",this.$buttonsContainer).length||this.$buttonsContainer.append(data)},_addButtonsContainer:function(){this.d.$datepicker.append('<div class="datepicker--buttons"></div>'),this.$buttonsContainer=$(".datepicker--buttons",this.d.$datepicker)},setNavStatus:function(){if((this.opts.minDate||this.opts.maxDate)&&this.opts.disableNavWhenOutOfRange){var date=this.d.parsedDate,m=date.month,y=date.year,d=date.date;switch(this.d.view){case"days":this.d._isInRange(new Date(y,m-1,1),"month")||this._disableNav("prev"),this.d._isInRange(new Date(y,m+1,1),"month")||this._disableNav("next");break;case"months":this.d._isInRange(new Date(y-1,m,d),"year")||this._disableNav("prev"),this.d._isInRange(new Date(y+1,m,d),"year")||this._disableNav("next");break;case"years":var decade=dp.getDecade(this.d.date);this.d._isInRange(new Date(decade[0]-1,0,1),"year")||this._disableNav("prev"),this.d._isInRange(new Date(decade[1]+1,0,1),"year")||this._disableNav("next")}}},_disableNav:function(nav){$('[data-action="'+nav+'"]',this.d.$nav).addClass("-disabled-")},_activateNav:function(nav){$('[data-action="'+nav+'"]',this.d.$nav).removeClass("-disabled-")},_onClickNavButton:function(e){e=$(e.target).closest("[data-action]").data("action");this.d[e]()},_onClickNavTitle:function(e){if(!$(e.target).hasClass("-disabled-"))return"days"==this.d.view?this.d.view="months":void(this.d.view="years")}}})(),(()=>{var datepicker=$.fn.datepicker,dp=datepicker.Constructor;datepicker.Timepicker=function(inst,opts){this.d=inst,this.opts=opts,this.init()},datepicker.Timepicker.prototype={init:function(){var input="input";this._setTime(this.d.date),this._buildHTML(),navigator.userAgent.match(/trident/gi)&&(input="change"),this.d.$el.on("selectDate",this._onSelectDate.bind(this)),this.$ranges.on(input,this._onChangeRange.bind(this)),this.$ranges.on("mouseup",this._onMouseUpRange.bind(this)),this.$ranges.on("mousemove focus ",this._onMouseEnterRange.bind(this)),this.$ranges.on("mouseout blur",this._onMouseOutRange.bind(this))},_setTime:function(date){var _date=dp.getParsedDate(date);this._handleDate(date),this.hours=_date.hours<this.minHours?this.minHours:_date.hours,this.minutes=_date.minutes<this.minMinutes?this.minMinutes:_date.minutes},
/**
* Sets minHours and minMinutes from date (usually it's a minDate)
* Also changes minMinutes if current hours are bigger then @date hours
* @param date {Date}
* @private
*/
_setMinTimeFromDate:function(date){this.minHours=date.getHours(),this.minMinutes=date.getMinutes(),
// If, for example, min hours are 10, and current hours are 12,
// update minMinutes to default value, to be able to choose whole range of values
this.d.lastSelectedDate&&this.d.lastSelectedDate.getHours()>date.getHours()&&(this.minMinutes=this.opts.minMinutes)},_setMaxTimeFromDate:function(date){this.maxHours=date.getHours(),this.maxMinutes=date.getMinutes(),this.d.lastSelectedDate&&this.d.lastSelectedDate.getHours()<date.getHours()&&(this.maxMinutes=this.opts.maxMinutes)},_setDefaultMinMaxTime:function(){var opts=this.opts;this.minHours=opts.minHours<0||23<opts.minHours?0:opts.minHours,this.minMinutes=opts.minMinutes<0||59<opts.minMinutes?0:opts.minMinutes,this.maxHours=opts.maxHours<0||23<opts.maxHours?23:opts.maxHours,this.maxMinutes=opts.maxMinutes<0||59<opts.maxMinutes?59:opts.maxMinutes},
/**
* Looks for min/max hours/minutes and if current values
* are out of range sets valid values.
* @private
*/
_validateHoursMinutes:function(date){this.hours<this.minHours?this.hours=this.minHours:this.hours>this.maxHours&&(this.hours=this.maxHours),this.minutes<this.minMinutes?this.minutes=this.minMinutes:this.minutes>this.maxMinutes&&(this.minutes=this.maxMinutes)},_buildHTML:function(){var lz=dp.getLeadingZeroNum,lz={hourMin:this.minHours,hourMax:lz(this.maxHours),hourStep:this.opts.hoursStep,hourValue:this.hours,hourVisible:lz(this.displayHours),minMin:this.minMinutes,minMax:lz(this.maxMinutes),minStep:this.opts.minutesStep,minValue:lz(this.minutes)},lz=dp.template('<div class="datepicker--time"><div class="datepicker--time-current"> <span class="datepicker--time-current-hours">#{hourVisible}</span> <span class="datepicker--time-current-colon">:</span> <span class="datepicker--time-current-minutes">#{minValue}</span></div><div class="datepicker--time-sliders"> <div class="datepicker--time-row"> <input type="range" name="hours" value="#{hourValue}" min="#{hourMin}" max="#{hourMax}" step="#{hourStep}"/> </div> <div class="datepicker--time-row"> <input type="range" name="minutes" value="#{minValue}" min="#{minMin}" max="#{minMax}" step="#{minStep}"/> </div></div></div>',lz);this.$timepicker=$(lz).appendTo(this.d.$datepicker),this.$ranges=$('[type="range"]',this.$timepicker),this.$hours=$('[name="hours"]',this.$timepicker),this.$minutes=$('[name="minutes"]',this.$timepicker),this.$hoursText=$(".datepicker--time-current-hours",this.$timepicker),this.$minutesText=$(".datepicker--time-current-minutes",this.$timepicker),this.d.ampm&&(this.$ampm=$('<span class="datepicker--time-current-ampm">').appendTo($(".datepicker--time-current",this.$timepicker)).html(this.dayPeriod),this.$timepicker.addClass("-am-pm-"))},_updateCurrentTime:function(){var h=dp.getLeadingZeroNum(this.displayHours),m=dp.getLeadingZeroNum(this.minutes);this.$hoursText.html(h),this.$minutesText.html(m),this.d.ampm&&this.$ampm.html(this.dayPeriod)},_updateRanges:function(){this.$hours.attr({min:this.minHours,max:this.maxHours}).val(this.hours),this.$minutes.attr({min:this.minMinutes,max:this.maxMinutes}).val(this.minutes)},
/**
* Sets minHours, minMinutes etc. from date. If date is not passed, than sets
* values from options
* @param [date] {object} - Date object, to get values from
* @private
*/
_handleDate:function(date){this._setDefaultMinMaxTime(),date&&(dp.isSame(date,this.d.opts.minDate)?this._setMinTimeFromDate(this.d.opts.minDate):dp.isSame(date,this.d.opts.maxDate)&&this._setMaxTimeFromDate(this.d.opts.maxDate)),this._validateHoursMinutes(date)},update:function(){this._updateRanges(),this._updateCurrentTime()},
/**
* Calculates valid hour value to display in text input and datepicker's body.
* @param date {Date|Number} - date or hours
* @param [ampm] {Boolean} - 12 hours mode
* @returns {{hours: *, dayPeriod: string}}
* @private
*/
_getValidHoursFromDate:function(date,ampm){var hours=date;date instanceof Date&&(hours=dp.getParsedDate(date).hours);var dayPeriod="am";if(ampm||this.d.ampm)switch(!0){case 0==hours:hours=12;break;case 12==hours:dayPeriod="pm";break;case 11<hours:hours-=12,dayPeriod="pm"}return{hours:hours,dayPeriod:dayPeriod}},set hours(val){this._hours=val;val=this._getValidHoursFromDate(val);this.displayHours=val.hours,this.dayPeriod=val.dayPeriod},get hours(){return this._hours},
// Events
// -------------------------------------------------
_onChangeRange:function(e){var e=$(e.target),name=e.attr("name");this.d.timepickerIsActive=!0,this[name]=e.val(),this._updateCurrentTime(),this.d._trigger("timeChange",[this.hours,this.minutes]),this._handleDate(this.d.lastSelectedDate),this.update()},_onSelectDate:function(e,data){this._handleDate(data),this.update()},_onMouseEnterRange:function(e){e=$(e.target).attr("name");$(".datepicker--time-current-"+e,this.$timepicker).addClass("-focus-")},_onMouseOutRange:function(e){e=$(e.target).attr("name");this.d.inFocus||// Prevent removing focus when mouse out of range slider
$(".datepicker--time-current-"+e,this.$timepicker).removeClass("-focus-")},_onMouseUpRange:function(e){this.d.timepickerIsActive=!1}}})()})(window,jQuery),
/*!
* 360 degree Image Slider v2.0.4
* http://gaurav.jassal.me
*
* Copyright 2015, gaurav@jassal.me
* Dual licensed under the MIT or GPL Version 3 licenses.
*
*/
($=>{
/**
* @class ThreeSixty
* **The ThreeSixty slider class**.
*
* This as jQuery plugin to create 360 degree product image slider.
* The plugin is full customizable with number of options provided. The plugin
* have the power to display images in any angle 360 degrees. This feature can be
* used successfully in many use cases e.g. on an e-commerce site to help customers
* look products in detail, from any angle they desire.
*
* **Features**
*
* - Smooth Animation
* - Plenty of option parameters for customization
* - Api interaction
* - Simple mouse interaction
* - Custom behavior tweaking
* - Support for touch devices
* - Easy to integrate
* - No flash
*
* Example code:
* var product1 = $('.product1').ThreeSixty({
* totalFrames: 72,
* endFrame: 72,
* currentFrame: 1,
* imgList: '.threesixty_images',
* progress: '.spinner',
* imagePath:'/assets/product1/',
* filePrefix: 'ipod-',
* ext: '.jpg',
* height: 265,
* width: 400,
* navigation: true
* });
* **Note:** There are loads other options that you can override to customize
* this plugin.
* @extends jQuery
* @singleton
* @param {String} [el] jQuery selector string for the parent container
* @param {Object} [options] An optional config object
*
* @return this
*/
$.ThreeSixty=function(el,options){
// To avoid scope issues, use 'base' instead of 'this'
// to reference this class from internal events and functions.
var AppConfig,base=this,frames=[];
// Access to jQuery and DOM versions of element
/**
* @property {$el}
* jQuery Dom node attached to the slider inherits all jQuery public functions.
*/base.$el=$(el),base.el=el,
// Add a reverse reference to the DOM object
base.$el.data("ThreeSixty",base),
/**
* @method init
* The function extends the user options with default settings for the
* slider and initilize the slider.
* **Style Override example**
*
* var product1 = $('.product1').ThreeSixty({
* totalFrames: 72,
* endFrame: 72,
* currentFrame: 1,
* imgList: '.threesixty_images',
* progress: '.spinner',
* imagePath:'/assets/product1/',
* filePrefix: 'ipod-',
* ext: '.jpg',
* height: 265,
* width: 400,
* navigation: true,
* styles: {
* border: 2px solide #b4b4b4,
* background: url(http://example.com/images/loader.gif) no-repeat
* }
* });
*/
base.init=function(){(AppConfig=$.extend({},$.ThreeSixty.defaultOptions,options)).disableSpin&&(AppConfig.currentFrame=1,AppConfig.endFrame=1),base.initProgress(),base.loadImages()},
/*
* Function to resize the height of responsive slider.
*/
base.resize=function(){
// calculate height
},
/**
* @method initProgress
* The function sets initial styles and start the progress indicator
* to show loading of images.
*
* @private
*/
base.initProgress=function(){base.$el.css({width:AppConfig.width+"px",height:AppConfig.height+"px","background-image":"none !important"}),AppConfig.styles&&base.$el.css(AppConfig.styles),base.responsive(),base.$el.find(AppConfig.progress).css({marginTop:AppConfig.height/2-15+"px"}),base.$el.find(AppConfig.progress).fadeIn("slow"),base.$el.find(AppConfig.imgList).hide()},
/**
* @method loadImages
* @private
* The function asynchronously loads images and inject into the slider.
*/
base.loadImages=function(){var li=document.createElement("li"),baseIndex=AppConfig.zeroBased?0:1,baseIndex=AppConfig.imgArray?AppConfig.imgArray[AppConfig.loadedImages]:AppConfig.domain+AppConfig.imagePath+AppConfig.filePrefix+base.zeroPad(AppConfig.loadedImages+baseIndex)+AppConfig.ext+(base.browser.isIE()?"?"+(new Date).getTime():""),baseIndex=$("<img>").attr("src",baseIndex).addClass("previous-image").appendTo(li);frames.push(baseIndex),base.$el.find(AppConfig.imgList).append(li),$(baseIndex).load(function(){base.imageLoaded()})},
/**
* @method loadImages
* @private
* The function gets triggers once the image is loaded. We also update
* the progress percentage in this function.
*/
base.imageLoaded=function(){AppConfig.loadedImages+=1,$(AppConfig.progress+" span").text(Math.floor(AppConfig.loadedImages/AppConfig.totalFrames*100)+"%"),AppConfig.loadedImages>=AppConfig.totalFrames?(AppConfig.disableSpin&&frames[0].removeClass("previous-image").addClass("current-image"),$(AppConfig.progress).fadeOut("slow",function(){$(this).hide(),base.showImages(),base.showNavigation()})):base.loadImages()},
/**
* @method loadImages
* @private
* This function is called when all the images are loaded.
* **The function does following operations**
* - Removes background image placeholder
* - Displays the 360 images
* - Initilizes mouse intraction events
*/
base.showImages=function(){base.$el.find(".txtC").fadeIn(),base.$el.find(AppConfig.imgList).fadeIn(),base.ready=!0,AppConfig.ready=!0,AppConfig.drag&&base.initEvents(),base.refresh(),base.initPlugins(),AppConfig.onReady(),setTimeout(function(){base.responsive()},50)},
/**
* The function to initilize external plugin
*/
base.initPlugins=function(){$.each(AppConfig.plugins,function(i,plugin){if("function"!=typeof $[plugin])throw new Error(plugin+" not available.");$[plugin].call(base,base.$el,AppConfig)})},
/**
* @method showNavigation
* Creates a navigation panel if navigation is set to true in the
* settings.
*/
base.showNavigation=function(){var nav_bar,next,previous,play_stop;AppConfig.navigation&&!AppConfig.navigation_init&&(nav_bar=$("<div/>").attr("class","nav_bar"),next=$("<a/>").attr({href:"#",class:"nav_bar_next"}).html("next"),previous=$("<a/>").attr({href:"#",class:"nav_bar_previous"}).html("previous"),play_stop=$("<a/>").attr({href:"#",class:"nav_bar_play"}).html("play"),nav_bar.append(previous),nav_bar.append(play_stop),nav_bar.append(next),base.$el.prepend(nav_bar),next.bind("mousedown touchstart",base.next),previous.bind("mousedown touchstart",base.previous),play_stop.bind("mousedown touchstart",base.play_stop),AppConfig.navigation_init=!0)},
/**
* @method play_stop
* @private
* Function toggles the autoplay rotation of 360 slider
* @param {Object} [event] jQuery events object.
*
*/
base.play_stop=function(event){event.preventDefault(),AppConfig.autoplay?(AppConfig.autoplay=!1,$(event.currentTarget).removeClass("nav_bar_stop").addClass("nav_bar_play"),clearInterval(AppConfig.play),AppConfig.play=null):(AppConfig.autoplay=!0,AppConfig.play=setInterval(base.moveToNextFrame,AppConfig.playSpeed),$(event.currentTarget).removeClass("nav_bar_play").addClass("nav_bar_stop"))},
/**
* @method next
* Using this function you can rotate 360 to next 5 frames.
* @param {Object} [event] jQuery events object.
*
*/
base.next=function(event){event&&event.preventDefault(),AppConfig.endFrame-=5,base.refresh()},
/**
* @method previous
* Using this function you can rotate 360 to previous 5 frames.
* @param {Object} [event] jQuery events object.
*
*/
base.previous=function(event){event&&event.preventDefault(),AppConfig.endFrame+=5,base.refresh()},
/**
* @method play
* You are start the auto rotaion for the slider with this function.
*
*/
base.play=function(speed,direction){speed=speed||AppConfig.playSpeed,direction=direction||AppConfig.autoplayDirection;AppConfig.autoplayDirection=direction,AppConfig.autoplay||(AppConfig.autoplay=!0,AppConfig.play=setInterval(base.moveToNextFrame,speed))},
/**
* @method stop
* You can stop the auto rotation of the 360 slider with this function.
*
*/
base.stop=function(){AppConfig.autoplay&&(AppConfig.autoplay=!1,clearInterval(AppConfig.play),AppConfig.play=null)},
/**
* @method endFrame
* @private
* Function animates to previous frame
*
*/
base.moveToNextFrame=function(){1===AppConfig.autoplayDirection?--AppConfig.endFrame:AppConfig.endFrame+=1,base.refresh()},
/**
* @method gotoAndPlay
* @public
* Function animates to previous frame
*
*/
base.gotoAndPlay=function(n){var multiplier,currentFromEnd,newEndFrame;AppConfig.disableWrap?(AppConfig.endFrame=n,base.refresh()):(multiplier=1<(multiplier=0===(multiplier=Math.ceil(AppConfig.endFrame/AppConfig.totalFrames))?1:multiplier)?AppConfig.endFrame-(multiplier-1)*AppConfig.totalFrames:AppConfig.endFrame,currentFromEnd=AppConfig.totalFrames-multiplier,newEndFrame=(newEndFrame=0)<n-multiplier?
// Faster to move the difference ahead?
n-multiplier<multiplier+(AppConfig.totalFrames-n)?AppConfig.endFrame+(n-multiplier):AppConfig.endFrame-(multiplier+(AppConfig.totalFrames-n)):
// Faster to move the distance back?
multiplier-n<currentFromEnd+n?AppConfig.endFrame-(multiplier-n):AppConfig.endFrame+(currentFromEnd+n),
// Now set the end frame
multiplier!==n&&(AppConfig.endFrame=newEndFrame,base.refresh()))},
/**
* @method initEvents
* @private
* Function initilizes all the mouse and touch events for 360 slider movement.
*
*/
base.initEvents=function(){base.$el.bind("mousedown touchstart touchmove touchend mousemove click",function(event){event.preventDefault(),"mousedown"===event.type&&1===event.which||"touchstart"===event.type?(AppConfig.pointerStartPosX=base.getPointerEvent(event).pageX,AppConfig.dragging=!0,AppConfig.onDragStart(AppConfig.currentFrame)):"touchmove"===event.type?base.trackPointer(event):"touchend"===event.type&&(AppConfig.dragging=!1,AppConfig.onDragStop(AppConfig.endFrame))}),$(document).bind("mouseup",function(event){AppConfig.dragging=!1,AppConfig.onDragStop(AppConfig.endFrame),$(this).css("cursor","none")}),$(window).bind("resize",function(event){base.responsive()}),$(document).bind("mousemove",function(event){AppConfig.dragging?(event.preventDefault(),!base.browser.isIE&&AppConfig.showCursor&&base.$el.css("cursor","url(assets/images/hand_closed.png), auto")):!base.browser.isIE&&AppConfig.showCursor&&base.$el.css("cursor","url(assets/images/hand_open.png), auto"),base.trackPointer(event)}),$(window).resize(function(){base.resize()})},
/**
* @method getPointerEvent
* @private
* Function returns touch pointer events
*
* @params {Object} [event]
*/
base.getPointerEvent=function(event){return event.originalEvent.targetTouches?event.originalEvent.targetTouches[0]:event},
/**
* @method trackPointer
* @private
* Function calculates the distance between the start pointer and end pointer/
*
* @params {Object} [event]
*/
base.trackPointer=function(event){AppConfig.ready&&AppConfig.dragging&&(AppConfig.pointerEndPosX=base.getPointerEvent(event).pageX,AppConfig.monitorStartTime<(new Date).getTime()-AppConfig.monitorInt)&&(AppConfig.pointerDistance=AppConfig.pointerEndPosX-AppConfig.pointerStartPosX,0<AppConfig.pointerDistance?AppConfig.endFrame=AppConfig.currentFrame+Math.ceil((AppConfig.totalFrames-1)*AppConfig.speedMultiplier*(AppConfig.pointerDistance/base.$el.width())):AppConfig.endFrame=AppConfig.currentFrame+Math.floor((AppConfig.totalFrames-1)*AppConfig.speedMultiplier*(AppConfig.pointerDistance/base.$el.width())),AppConfig.disableWrap&&(AppConfig.endFrame=Math.min(AppConfig.totalFrames-(AppConfig.zeroBased?1:0),AppConfig.endFrame),AppConfig.endFrame=Math.max(AppConfig.zeroBased?0:1,AppConfig.endFrame)),base.refresh(),AppConfig.monitorStartTime=(new Date).getTime(),AppConfig.pointerStartPosX=base.getPointerEvent(event).pageX)},
/**
* @method refresh
* @public
* Function refeshes the timer and set interval for render cycle.
*
*/
base.refresh=function(){0===AppConfig.ticker&&(AppConfig.ticker=setInterval(base.render,Math.round(1e3/AppConfig.framerate)))},
/**
* @method refresh
* @private
* Function render the animation frames on the screen with easing effect.
*/
base.render=function(){var frameEasing;AppConfig.currentFrame!==AppConfig.endFrame?(frameEasing=AppConfig.endFrame<AppConfig.currentFrame?Math.floor(.1*(AppConfig.endFrame-AppConfig.currentFrame)):Math.ceil(.1*(AppConfig.endFrame-AppConfig.currentFrame)),base.hidePreviousFrame(),AppConfig.currentFrame+=frameEasing,base.showCurrentFrame(),base.$el.trigger("frameIndexChanged",[base.getNormalizedCurrentFrame(),AppConfig.totalFrames])):(window.clearInterval(AppConfig.ticker),AppConfig.ticker=0)},
/**
* @method hidePreviousFrame
* @private
* Function hide the previous frame in the animation loop.
*/
base.hidePreviousFrame=function(){frames[base.getNormalizedCurrentFrame()].removeClass("current-image").addClass("previous-image")},
/**
* @method showCurrentFrame
* @private
* Function shows the current frame in the animation loop.
*/
base.showCurrentFrame=function(){frames[base.getNormalizedCurrentFrame()].removeClass("previous-image").addClass("current-image")},
/**
* @method getNormalizedCurrentFrame
* @private
* Function normalize and calculate the current frame once the user release the mouse and release touch event.
*/
base.getNormalizedCurrentFrame=function(){var c,e;return AppConfig.disableWrap?(c=Math.min(AppConfig.currentFrame,AppConfig.totalFrames-(AppConfig.zeroBased?1:0)),e=Math.min(AppConfig.endFrame,AppConfig.totalFrames-(AppConfig.zeroBased?1:0)),c=Math.max(c,AppConfig.zeroBased?0:1),e=Math.max(e,AppConfig.zeroBased?0:1),AppConfig.currentFrame=c,AppConfig.endFrame=e):(c=Math.ceil(AppConfig.currentFrame%AppConfig.totalFrames))<0&&(c+=AppConfig.totalFrames-(AppConfig.zeroBased?1:0)),c},
/*
* @method getCurrentFrame
* Function returns the current active frame.
*
* @return Number
*/
base.getCurrentFrame=function(){return AppConfig.currentFrame},
/*
* @method responsive
* Function calculates and set responsive height and width
*
*/
base.responsive=function(){AppConfig.responsive&&base.$el.css({height:base.$el.find(".current-image").first().css("height"),width:"100%"})},
/**
* Function to return with zero padding.
*/
base.zeroPad=function(num){var approximateLog=Math.log(AppConfig.totalFrames)/Math.LN10,approximateLog=Math.round(1e3*approximateLog)/1e3,length=Math.floor(approximateLog)+1,str=num.toString();if(AppConfig.zeroPadding)for(;str.length<length;)str="0"+str;return str},base.browser={},
/**
* Function to detect if the brower is IE
* @return {boolean}
*
* http://msdn.microsoft.com/en-gb/library/ms537509(v=vs.85).aspx
*/
base.browser.isIE=function(){var ua,rv=-1;return-1!==(rv="Microsoft Internet Explorer"===navigator.appName&&(ua=navigator.userAgent,null!==new RegExp("MSIE ([0-9]{1,}[\\.0-9]{0,})").exec(ua))?parseFloat(RegExp.$1):rv)},
/**
* @method getConfig
* The function returns the extended version of config object the plugin is going to
* user.
*
* @public
*
* @return Object
*/
base.getConfig=function(){return AppConfig},$.ThreeSixty.defaultOptions={
/**
* @cfg {Boolean} dragging [dragging=false]
* @private
* Private propery contains a flags if users is in dragging mode.
*/
dragging:!1,
/**
* @cfg {Boolean} ready [ready=false]
* @private
* Private propery is set to true is all assets are loading and application is
* ready to render 360 slider.
*/
ready:!1,
/**
* @cfg {Number} pointerStartPosX
* @private
* private property mouse pointer start x position when user starts dragging slider.
*/
pointerStartPosX:0,
/**
* @cfg {Number} pointerEndPosX
* @private
* private property mouse pointer start x position when user end dragging slider.
*/
pointerEndPosX:0,
/**
* @cfg {Number} pointerDistance
* @private
* private property contains the distance between the pointerStartPosX and pointerEndPosX
*/
pointerDistance:0,
/**
* @cfg {Number} monitorStartTime
* @private
* private property contains time user took in dragging mouse from pointerStartPosX and pointerEndPosX
*/
monitorStartTime:0,monitorInt:10,
/**
* @cfg {Number} ticker
* @private
* Timer event that renders the 360
*/
ticker:0,
/**
* @cfg {Number} speedMultiplier
* This property controls the sensitivity for the 360 slider
*/
speedMultiplier:7,
/**
* @cfg {Number} totalFrames
* Set total number for frames used in the 360 rotation
*/
totalFrames:180,
/**
* @cfg {Number} currentFrame
* Current frame of the slider.
*/
currentFrame:0,
/**
* @cfg {Array} endFrame
* Private perperty contains information about the end frame when user slides the slider.
*/
endFrame:0,
/**
* @cfg {Number} loadedImages
* Private property contains count of loaded images.
*/
loadedImages:0,
/**
* @cfg {Array} framerate
* Set framerate for the slider animation
*/
framerate:60,
/**
* @cfg {String} domains
* Set comma seprated list of all parallel domain from where 360 assets needs to be loaded.
*/
domains:null,
/**
* @cfg {String} domain
* Domain from where assets needs to be loaded. Use this propery is you want to load all assets from
* single domain.
*/
domain:"",
/**
* @cfg {Boolean} parallel
* Set to true if you want to load assets from parallel domain. Default false
*/
parallel:!1,
/**
* @cfg {Number} queueAmount
* Set number of calls to be made on parallel domains.
*/
queueAmount:8,
/**
* @cfg {Number} idle
* Mouse Inactivite idle time in seconds. If set more than 0 will auto spine the slider
*/
idle:0,
/**
* @cfg {String} filePrefix
* Prefix for the image file name before the numeric value.
*/
filePrefix:"",
/**
* @cfg {String} ext [ext=.png]
* Slider image extension.
*/
ext:"png",
/**
* @cfg {Object} height [300]
* Height of the slider
*/
height:300,
/**
* @cfg {Number} width [300]
* Width of the slider
*/
width:300,
/**
* @cfg {Object} styles
* CSS Styles for the 360 slider
*/
styles:{},
/**
* @cfg {Boolean} navigation[false]
* State if navigation controls are visible or not.
*/
navigation:!1,
/**
* @cfg {Boolean} autoplay[false]
* Autoplay the 360 animation
*/
autoplay:!1,
/**
* @cfg {number} autoplayDirection [1]
* Direction for autoplay the 360 animation. 1 for right spin, and -1 for left spin.
*/
autoplayDirection:1,
/**
* Property to disable auto spin
* @type {Boolean}
*/
disableSpin:!1,
/**
* Property to disable infinite wrap
* @type {Boolean}
*/
disableWrap:!1,
/**
* Responsive width
* @type {Boolean}
*/
responsive:!1,
/**
* Zero Padding for filenames
* @type {Boolean}
*/
zeroPadding:!1,
/**
* Zero based for image filenames starting at 0
* @type {Boolean}
*/
zeroBased:!1,
/**
* @type {Array}
* List of plugins
*/
plugins:[],
/**
* @type {Boolean}
* Show hand cursor on drag
*/
showCursor:!1,
/**
* @cfg {Boolean} drag
* Set it to false if you want to disable mousedrag or touch events
*/
drag:!0,
/**
* @cfg {Function} onReady
* Callback triggers once all images are loaded and ready to render on the screen
*/
onReady:function(){},
/**
* @cfg {Function} onDragStart
* Callback triggers when a user initiates dragging
*/
onDragStart:function(){},
/**
* @cfg {Function} onDragStop
* Callback triggers when a user releases after dragging
*/
onDragStop:function(){},
/**
* @cfg {String} imgList
* Set ul element where image will be loaded
*/
imgList:".threesixty_images",
/**
* @cfg {Array} imgArray
* Use set of images in array to load images
*/
imgArray:null,
/**
* @cfg {Number} playSpeed
* Value to control the speed of play button rotation
*/
playSpeed:100},base.init()},$.fn.ThreeSixty=function(options){return Object.create(new $.ThreeSixty(this,options))}})(jQuery),
/**
*
* Object.create method for perform as a fallback if method not available.
* The syntax just takes away the illusion that JavaScript uses Classical Inheritance.
*/
"function"!=typeof Object.create&&(Object.create=function(o){function F(){}return F.prototype=o,new F}),
/**
* Ajax Autocomplete for jQuery, version %version%
* (c) 2017 Tomas Kirda
* HOOOOOOOOOOOOOOOOOOOOOOOOOOO
* Ajax Autocomplete for jQuery is freely distributable under the terms of an MIT-style license.
* For details, see the web site: https://github.com/devbridge/jQuery-Autocomplete
*/
/*jslint browser: true, white: true, single: true, this: true, multivar: true */
/*global define, window, document, jQuery, exports, require */
// Expose plugin as an AMD module if AMD loader is present:
(factory=>{"function"==typeof define&&define.amd?
// AMD. Register as an anonymous module.
define(["jquery"],factory):"object"==typeof exports&&"function"==typeof require?
// Browserify
factory(require("jquery")):
// Browser globals
factory(jQuery)})(function($){var utils={escapeRegExChars:function(value){return value.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&")},createNode:function(containerClass){var div=document.createElement("div");return div.className=containerClass,div.style.position="fixed",div.style.display="none",div}},keys_ESC=27,keys_TAB=9,keys_RETURN=13,keys_UP=38,keys_RIGHT=39,keys_DOWN=40,noop=$.noop;function Autocomplete(el,options){
// Shared variables:
this.element=el,this.el=$(el),this.suggestions=[],this.badQueries=[],this.selectedIndex=-1,this.currentValue=this.element.value,this.timeoutId=null,this.cachedResponse={},this.onChangeTimeout=null,this.onChange=null,this.isLocal=!1,this.suggestionsContainer=null,this.noSuggestionsContainer=null,this.options=$.extend({},Autocomplete.defaults,options),this.classes={selected:"autocomplete-selected",suggestion:"autocomplete-suggestion"},this.hint=null,this.hintValue="",this.selection=null,
// Initialize and set options:
this.initialize(),this.setOptions(options)}Autocomplete.utils=utils,($.Autocomplete=Autocomplete).defaults={ajaxSettings:{},autoSelectFirst:!1,appendTo:"body",serviceUrl:null,lookup:null,onSelect:null,width:"auto",minChars:1,maxHeight:312,deferRequestBy:0,params:{},formatResult:function(suggestion,currentValue){
// Do not replace anything if the current value is empty
return currentValue?(currentValue="("+utils.escapeRegExChars(currentValue)+")",suggestion.value.replace(new RegExp(currentValue,"gi"),"<strong>$1</strong>").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/<(\/?strong)>/g,"<$1>")):suggestion.value},formatGroup:function(suggestion,category){return'<div class="autocomplete-group">'+category+"</div>"},delimiter:null,zIndex:1000003,type:"GET",noCache:!1,onSearchStart:noop,onSearchComplete:noop,onSearchError:noop,preserveInput:!1,containerClass:"autocomplete-suggestions autocomplete-suggestions--hideNoResult notranslate",tabDisabled:!1,dataType:"text",currentRequest:null,triggerSelectOnValidInput:!0,preventBadQueries:!0,lookupFilter:function(suggestion,originalQuery,queryLowerCase){return-1!==suggestion.value.toLowerCase().indexOf(queryLowerCase)},paramName:"query",transformResult:function(response){return"string"==typeof response?$.parseJSON(response):response},showNoSuggestionNotice:!1,noSuggestionNotice:"No results",orientation:"bottom",forceFixPosition:!1},Autocomplete.prototype={initialize:function(){var container,that=this,suggestionSelector="."+that.classes.suggestion,selected=that.classes.selected,options=that.options;
// Remove autocomplete attribute to prevent native suggestions:
that.element.setAttribute("autocomplete","off"),
// html() deals with many types: htmlString or Element or Array or jQuery
that.noSuggestionsContainer=$('<div class="autocomplete-no-suggestion"></div>').html(this.options.noSuggestionNotice).get(0),that.suggestionsContainer=Autocomplete.utils.createNode(options.containerClass),(container=$(that.suggestionsContainer)).appendTo(options.appendTo||"body"),
// Only set width if it was provided:
"auto"!==options.width&&container.css("width",options.width),
// Listen for mouse over event on suggestions list:
container.on("mouseover.autocomplete",suggestionSelector,function(){that.activate($(this).data("index"))}),
// Deselect active element when mouse leaves suggestions container:
container.on("mouseout.autocomplete",function(){that.selectedIndex=-1,container.children("."+selected).removeClass(selected)}),
// Listen for click event on suggestions list:
container.on("click.autocomplete",suggestionSelector,function(){that.select($(this).data("index"))}),container.on("click.autocomplete",function(){clearTimeout(that.blurTimeoutId)}),that.fixPositionCapture=function(){that.visible&&that.fixPosition()},$(window).on("resize.autocomplete",that.fixPositionCapture),that.el.on("keydown.autocomplete",function(e){that.onKeyPress(e)}),that.el.on("keyup.autocomplete",function(e){that.onKeyUp(e)}),that.el.on("blur.autocomplete",function(){that.onBlur()}),that.el.on("focus.autocomplete",function(){that.onFocus()}),that.el.on("change.autocomplete",function(e){that.onKeyUp(e)}),that.el.on("input.autocomplete",function(e){that.onKeyUp(e)})},onFocus:function(){this.fixPosition(),this.el.val().length>=this.options.minChars&&this.onValueChange()},onBlur:function(){var that=this;
// If user clicked on a suggestion, hide() will
// be canceled, otherwise close suggestions
that.blurTimeoutId=setTimeout(function(){that.hide()},200)},abortAjax:function(){this.currentRequest&&(this.currentRequest.abort(),this.currentRequest=null)},setOptions:function(suppliedOptions){var options=this.options;this.options=$.extend({},options,suppliedOptions),this.isLocal=$.isArray(options.lookup),this.isLocal&&(options.lookup=this.verifySuggestionsFormat(options.lookup)),options.orientation=this.validateOrientation(options.orientation,"bottom"),
// Adjust height, width and z-index:
$(this.suggestionsContainer).css({"max-height":options.maxHeight+"px",width:options.width+"px","z-index":options.zIndex})},clearCache:function(){this.cachedResponse={},this.badQueries=[]},clear:function(){this.clearCache(),this.currentValue="",this.suggestions=[]},disable:function(){this.disabled=!0,clearTimeout(this.onChangeTimeout),this.abortAjax()},enable:function(){this.disabled=!1},fixPosition:function(){
// Use only when container has already its content
var containerHeight,styles,topOverflow,viewPortHeight,orientation,scrollTop,offset,height,$container=$(this.suggestionsContainer),containerParent=$container.parent().get(0);
// Fix position automatically when appended to body.
// In other cases force parameter must be given.
containerParent!==document.body&&!this.options.forceFixPosition||(orientation=this.options.orientation,containerHeight=$container.outerHeight(),height=this.el.outerHeight(),styles={top:78,left:(offset=this.el.offset()).left},"auto"===orientation&&(viewPortHeight=$(window).height(),topOverflow=-(scrollTop=$(window).scrollTop())+offset.top-containerHeight,viewPortHeight=scrollTop+viewPortHeight-(offset.top+height+containerHeight),orientation=Math.max(topOverflow,viewPortHeight)===topOverflow?"top":"bottom"),scrollTop=0-window.pageYOffset||document.documentElement.scrollTop,styles.top+=scrollTop=scrollTop<0?0:scrollTop,
// If container is not positioned to body,
// correct its position using offset parent offset
containerParent!==document.body&&(offset=$container.css("opacity"),this.visible||$container.css("opacity",0).show(),height=$container.offsetParent().offset(),styles.top-=height.top+9999,styles.left-=height.left,this.visible||$container.css("opacity",offset).hide()),"auto"===this.options.width&&(styles.width=this.el.outerWidth()+"px"),$container.css(styles));
// Choose orientation
},isCursorAtEnd:function(){var valLength=this.el.val().length,selectionStart=this.element.selectionStart;return"number"==typeof selectionStart?selectionStart===valLength:!document.selection||((selectionStart=document.selection.createRange()).moveStart("character",-valLength),valLength===selectionStart.text.length)},onKeyPress:function(e){
// If suggestions are hidden and user presses arrow down, display suggestions:
if(this.disabled||this.visible||e.which!==keys_DOWN||!this.currentValue){if(!this.disabled&&this.visible){switch(e.which){case keys_ESC:this.el.val(this.currentValue),this.hide();break;case keys_RIGHT:if(this.hint&&this.options.onHint&&this.isCursorAtEnd()){this.selectHint();break}return;case keys_TAB:if(this.hint&&this.options.onHint)return void this.selectHint();if(-1===this.selectedIndex)return void this.hide();if(this.select(this.selectedIndex),!1===this.options.tabDisabled)return;break;case keys_RETURN:if(-1===this.selectedIndex)return void this.hide();this.select(this.selectedIndex),$(".autocomplete-selected").find("a").trigger("mouseup");break;case keys_UP:this.moveUp();break;case keys_DOWN:this.moveDown();break;default:return}
// Cancel event if function did not return:
e.stopImmediatePropagation(),e.preventDefault()}}else this.suggest()},onKeyUp:function(e){var that=this;if(!that.disabled){switch(e.which){case keys_UP:case keys_DOWN:return}clearTimeout(that.onChangeTimeout),that.currentValue!==that.el.val()&&(that.findBestHint(),0<that.options.deferRequestBy?
// Defer lookup in case when value changes very quickly:
that.onChangeTimeout=setTimeout(function(){that.onValueChange()},that.options.deferRequestBy):that.onValueChange())}},onValueChange:function(){var options=this.options,value=this.el.val(),query=this.getQuery(value);this.selection&&this.currentValue!==query&&(this.selection=null,(options.onInvalidateSelection||$.noop).call(this.element)),clearTimeout(this.onChangeTimeout),this.currentValue=value,this.selectedIndex=-1,
// Check existing suggestion for the match before proceeding:
options.triggerSelectOnValidInput&&this.isExactMatch(query)?this.select(0):query.length<options.minChars?this.hide():this.getSuggestions(query)},isExactMatch:function(query){var suggestions=this.suggestions;return 1===suggestions.length&&suggestions[0].value.toLowerCase()===query.toLowerCase()},getQuery:function(value){var delimiter=this.options.delimiter;return delimiter?(delimiter=value.split(delimiter),$.trim(delimiter[delimiter.length-1])):value},getSuggestionsLocal:function(query){var options=this.options,queryLowerCase=query.toLowerCase(),filter=options.lookupFilter,limit=parseInt(options.lookupLimit,10),options={suggestions:$.grep(options.lookup,function(suggestion){return filter(suggestion,query,queryLowerCase)})};return limit&&options.suggestions.length>limit&&(options.suggestions=options.suggestions.slice(0,limit)),options},getSuggestions:function(q){var params,cacheKey,response,that=this,options=that.options,serviceUrl=options.serviceUrl;options.params[options.paramName]=q,!1!==options.onSearchStart.call(that.element,options.params)&&(params=options.ignoreParams?null:options.params,$.isFunction(options.lookup)?options.lookup(q,function(data){that.suggestions=data.suggestions,that.suggest(),options.onSearchComplete.call(that.element,q,data.suggestions)}):(response=that.isLocal?that.getSuggestionsLocal(q):($.isFunction(serviceUrl)&&(serviceUrl=serviceUrl.call(that.element,q)),cacheKey=serviceUrl+"?"+$.param(params||{}),that.cachedResponse[cacheKey]))&&$.isArray(response.suggestions)?(that.suggestions=response.suggestions,that.suggest(),options.onSearchComplete.call(that.element,q,response.suggestions)):that.isBadQuery(q)?options.onSearchComplete.call(that.element,q,[]):(that.abortAjax(),response={url:serviceUrl,data:params,type:options.type,dataType:options.dataType},$.extend(response,options.ajaxSettings),that.currentRequest=$.ajax(response).done(function(data){that.currentRequest=null,data=options.transformResult(data,q),that.processResponse(data,q,cacheKey),options.onSearchComplete.call(that.element,q,data.suggestions)}).fail(function(jqXHR,textStatus,errorThrown){options.onSearchError.call(that.element,q,jqXHR,textStatus,errorThrown)})))},isBadQuery:function(q){if(this.options.preventBadQueries)for(var badQueries=this.badQueries,i=badQueries.length;i--;)if(0===q.indexOf(badQueries[i]))return!0;return!1},hide:function(){var container=$(this.suggestionsContainer);$.isFunction(this.options.onHide)&&this.visible&&this.options.onHide.call(this.element,container),this.visible=!1,this.selectedIndex=-1,clearTimeout(this.onChangeTimeout),$(this.suggestionsContainer).hide(),this.signalHint(null)},suggest:function(){var options,groupBy,formatResult,value,className,classSelected,container,noSuggestionsContainer,beforeRender,html,category;this.suggestions.length?(options=this.options,groupBy=options.groupBy,formatResult=options.formatResult,value=this.getQuery(this.currentValue),className=this.classes.suggestion,classSelected=this.classes.selected,container=$(this.suggestionsContainer),noSuggestionsContainer=$(this.noSuggestionsContainer),beforeRender=options.beforeRender,html="",options.triggerSelectOnValidInput&&this.isExactMatch(value)?this.select(0):(
// Build suggestions inner HTML:
$.each(this.suggestions,function(i,suggestion){groupBy&&(html+=(suggestion=>{var currentCategory=suggestion.data[groupBy];return category===currentCategory?"":(category=currentCategory,options.formatGroup(suggestion,category))})(suggestion)),html+='<div class="'+className+'" data-index="'+i+'">'+formatResult(suggestion,value,i)+"</div>"}),this.adjustContainerWidth(),noSuggestionsContainer.detach(),container.html(html),$.isFunction(beforeRender)&&beforeRender.call(this.element,container,this.suggestions),this.fixPosition(),container.show(),
// Select first value by default:
options.autoSelectFirst&&(this.selectedIndex=0,container.scrollTop(0),container.children("."+className).first().addClass(classSelected)),this.visible=!0,this.findBestHint())):this.options.showNoSuggestionNotice?this.noSuggestions():this.hide()},noSuggestions:function(){var beforeRender=this.options.beforeRender,container=$(this.suggestionsContainer),noSuggestionsContainer=$(this.noSuggestionsContainer);this.adjustContainerWidth(),
// Some explicit steps. Be careful here as it easy to get
// noSuggestionsContainer removed from DOM if not detached properly.
noSuggestionsContainer.detach(),
// clean suggestions if any
container.empty(),container.append(noSuggestionsContainer),$.isFunction(beforeRender)&&beforeRender.call(this.element,container,this.suggestions),this.fixPosition(),container.show(),this.visible=!0},adjustContainerWidth:function(){var width,options=this.options,container=$(this.suggestionsContainer);
// If width is auto, adjust width before displaying suggestions,
// because if instance was created before input had width, it will be zero.
// Also it adjusts if input width has changed.
"auto"===options.width?(width=this.el.outerWidth(),container.css("width",0<width?width:300)):"flex"===options.width&&
// Trust the source! Unset the width property so it will be the max length
// the containing elements.
container.css("width","")},findBestHint:function(){var value=this.el.val().toLowerCase(),bestMatch=null;value&&($.each(this.suggestions,function(i,suggestion){var foundMatch=0===suggestion.value.toLowerCase().indexOf(value);return foundMatch&&(bestMatch=suggestion),!foundMatch}),this.signalHint(bestMatch))},signalHint:function(suggestion){var hintValue="";suggestion&&(hintValue=this.currentValue+suggestion.value.substr(this.currentValue.length)),this.hintValue!==hintValue&&(this.hintValue=hintValue,this.hint=suggestion,(this.options.onHint||$.noop)(hintValue))},verifySuggestionsFormat:function(suggestions){
// If suggestions is string array, convert them to supported format:
return suggestions.length&&"string"==typeof suggestions[0]?$.map(suggestions,function(value){return{value:value,data:null}}):suggestions},validateOrientation:function(orientation,fallback){return orientation=$.trim(orientation||"").toLowerCase(),orientation=-1===$.inArray(orientation,["auto","bottom","top"])?fallback:orientation},processResponse:function(result,originalQuery,cacheKey){var options=this.options;result.suggestions=this.verifySuggestionsFormat(result.suggestions),
// Cache results if cache is not disabled:
options.noCache||(this.cachedResponse[cacheKey]=result,options.preventBadQueries&&!result.suggestions.length&&this.badQueries.push(originalQuery)),
// Return if originalQuery is not matching current query:
originalQuery===this.getQuery(this.currentValue)&&(this.suggestions=result.suggestions,this.suggest())},activate:function(index){var selected=this.classes.selected,container=$(this.suggestionsContainer),children=container.find("."+this.classes.suggestion);return container.find("."+selected).removeClass(selected),this.selectedIndex=index,-1!==this.selectedIndex&&children.length>this.selectedIndex?(container=children.get(this.selectedIndex),$(container).addClass(selected),container):null},selectHint:function(){var i=$.inArray(this.hint,this.suggestions);this.select(i)},select:function(i){this.hide(),this.onSelect(i)},moveUp:function(){0===this.selectedIndex&&(this.selectedIndex=this.suggestions.length)
/*if (that.selectedIndex === 0) {
//$(that.suggestionsContainer).children().first().removeClass(that.classes.selected);
that.selectedIndex = that.suggestions.length;
//that.el.val(that.currentValue);
//that.findBestHint();
return;
}*/,this.adjustScroll(this.selectedIndex-1)},moveDown:function(){this.selectedIndex===this.suggestions.length-1&&(this.selectedIndex=-1),this.adjustScroll(this.selectedIndex+1)},adjustScroll:function(index){var heightDelta,upperBound,lowerBound,activeItem=this.activate(index);activeItem&&(heightDelta=$(activeItem).outerHeight(),activeItem=activeItem.offsetTop,lowerBound=(upperBound=$(this.suggestionsContainer).scrollTop())+this.options.maxHeight-heightDelta,activeItem<upperBound?$(this.suggestionsContainer).scrollTop(activeItem):lowerBound<activeItem&&$(this.suggestionsContainer).scrollTop(activeItem-this.options.maxHeight+heightDelta),this.options.preserveInput||this.el.val(this.getValue(this.suggestions[index].value)),this.signalHint(null))},onSelect:function(index){var onSelectCallback=this.options.onSelect,index=this.suggestions[index];this.currentValue=this.getValue(index.value),this.currentValue===this.el.val()||this.options.preserveInput||this.el.val(this.currentValue),this.signalHint(null),this.suggestions=[],this.selection=index,$.isFunction(onSelectCallback)&&onSelectCallback.call(this.element,index)},getValue:function(value){var currentValue,delimiter=this.options.delimiter;return!delimiter||1===(delimiter=(currentValue=this.currentValue).split(delimiter)).length?value:currentValue.substr(0,currentValue.length-delimiter[delimiter.length-1].length)+value},dispose:function(){this.el.off(".autocomplete").removeData("autocomplete"),$(window).off("resize.autocomplete",this.fixPositionCapture),$(this.suggestionsContainer).remove()}},
// Create chainable jQuery plugin:
$.fn.devbridgeAutocomplete=function(options,args){
// If function invoked without argument return
// instance of the first matched element:
return arguments.length?this.each(function(){var inputElement=$(this),instance=inputElement.data("autocomplete");"string"==typeof options?instance&&"function"==typeof instance[options]&&instance[options](args):(
// If instance already exists, destroy it:
instance&&instance.dispose&&instance.dispose(),instance=new Autocomplete(this,options),inputElement.data("autocomplete",instance))}):this.first().data("autocomplete")},
// Don't overwrite if it already exists
$.fn.autocomplete||($.fn.autocomplete=$.fn.devbridgeAutocomplete)}),$(document).ready(function(){tooltipPopup(),pulseAnimation(),inputRowValidation(),inputLengthLimit(),initCollapsible(),$(".slick-default").slick({slidesToShow:1,slideToScroll:1,arrows:!1,dots:!0,infinite:!0}),$(".slider--basic").slick({slidesToScroll:1,slidesToShow:2,arrows:!1,dots:!0,variableWidth:!0,infinite:!1,responsive:[{breakpoint:1200,settings:{slidesToShow:1}}]}),getUrlParameter("newPassword=newPassword")&&popupOpen("#newPassPopup"),getUrlParameter("authAcc=authAcc")&&popupOpen("#authAccPopup"),getUrlParam("show-popup")&&popupOpen("#"+getUrlParam("show-popup")),window.addEventListener("message",function(event){event.data.message&&"popupOpen"==event.data.message&&popupOpen("#"+event.data.value)});var defaultProgressParagraph=$(".progressbarContent .progressbarParagraph").html();var principesCol=1,principesH3=0,indexShow=($("#principles-of-protection h3, #principles-of-protection h4, #principles-of-protection h5").each(function(index){"ua"==$("#principles-of-protection").attr("data-terms-of-use-language")?$(this).attr("id","terms-of-use-anchor-"+index):$(this).attr("id",$(this).html().replace(/<\/?[^>]+(>|$)/g,"").toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g,"").match(/[^_\W]+/g).join(" ").replace(/ /g,"-"));index=$(this).clone();$(this).is("h3")&&10==++principesH3&&(principesCol=2),$("#principles-of-protection-content-col-"+principesCol).append(index)}),$("#principles-of-protection-content h3, #principles-of-protection-content h4, #principles-of-protection-content h5").each(function(){$(this).html('<a href="#'+$(this).attr("id")+'">'+$(this).html()+"</a>"),$(this).removeAttr("id")}),$(".rightboxAnchor, .rightboxContentClose").on("click",function(){$(this).parents(".rightbox").toggleClass("active")}),$(".progressbarSteps li").hover(function(){var progressFinal=parseInt($(".progressbar .active").attr("data-progressactive"))+parseInt($(this).attr("data-progress"));$(".progressbar .activeM").clearQueue(),$(".progressbar .activeM").stop(),$(".progressbar .activeM").css({width:progressFinal+"%",opacity:1}),$(".progressbarContent .progressbarParagraph").html($(this).attr("data-progress-paragraph"))},function(){$(".progressbar .activeM").clearQueue(),$(".progressbar .activeM").stop(),$(".progressbar .activeM").css({width:0,opacity:0}),$(".progressbarContent .progressbarParagraph").html(defaultProgressParagraph)}),$(".progressbarThanksClose").click(function(){$(this).parents(".tabCollapseContent").parent().slideUp(250)}),$("[data-tab-nav]").on("click",function(){$("[data-tab-nav]").removeClass("active"),$(this).addClass("active"),$("[data-tab-page]").hide(),$('[data-tab-page="'+$(this).attr("data-tab-nav")+'"]').show()}),$(document).on("click",'form input[type="submit"], form button[type="submit"]',function(){$(this).parents("form").find("[data-checkbox-validation]").each(function(){$(this).parents(".checkbox").find(".formErrorCheckbox").remove(),1==!$(this).is(":checked")?($(this).parents(".checkbox").addClass("hasError"),$(this)[0].hasAttribute("data-checkbox-validation-message")&&$(this).parents(".checkbox").addClass("formErrorHasMessage").append('<span class="formErrorCheckbox">'+$(this).attr("data-checkbox-validation-message")+"</span>")):($(this).parents(".checkbox").removeClass("hasError"),$(this).parents(".checkbox").removeClass("formErrorHasMessage").find(".formErrorCheckbox").remove())}),$(this).parents("form").find("[data-timpepicker-validation]").each(function(){0==$(this).find('input[type="radio"]:checked').length?($(this).addClass("hasError"),$(this)[0].hasAttribute("data-timpepicker-validation-message")&&$(this).append('<span class="formError">'+$(this).attr("data-timpepicker-validation-message")+"</span>")):$(this).removeClass("hasError")})}),$(document).on("change","form [data-checkbox-validation]",function(){$(this).parents(".checkbox").find(".formErrorCheckbox").remove(),1==!$(this).is(":checked")?($(this).parents(".checkbox").addClass("hasError"),$(this)[0].hasAttribute("data-checkbox-validation-message")&&$(this).parents(".checkbox").addClass("formErrorHasMessage").append('<span class="formErrorCheckbox">'+$(this).attr("data-checkbox-validation-message")+"</span>")):($(this).parents(".checkbox").removeClass("hasError"),$(this).parents(".checkbox").removeClass("formErrorHasMessage").find(".formErrorCheckbox").remove())}),$('[data-timpepicker-validation] input[type="radio"]').on("change",function(){$(this).parents("[data-timpepicker-validation]").removeClass("hasError"),$(this).parents("[data-timpepicker-validation]").find(".formError").remove()}),$(".carouselGallery > *").css("opacity",1),0);!function swapC(){$(".textSwitch").each(function(){$(".textSwitch .textSwitchItem").hide(),$(".textSwitch .textSwitchItem").eq(indexShow).fadeIn(animateSpeed),++indexShow>=$(this).find(".textSwitchItem").length&&(indexShow=0)});window.setTimeout(function(){swapC(indexShow)},5e3)}(),$(".textSwitch").removeClass("none"),$(".countdown").each(function(){var thisElement=$(this),secs=60*$(this).attr("data-countdown-time"),currentSeconds=0,currentMinutes=0;setTimeout(function Decrement(){currentMinutes=Math.floor(secs/60);currentSeconds=secs%60;currentSeconds<=9&&(currentSeconds="0"+currentSeconds);secs--;thisElement.html(currentMinutes+" minut "+currentSeconds+" sekund");-1!==secs&&setTimeout(Decrement,1e3)},1e3)}),$(".card .carInfo .carInfoImg figure img").fadeIn(animateSpeed);var id,nVer=navigator.appVersion,nAgt=navigator.userAgent,os="-",clientStrings=[{s:"Windows 10",r:/(Windows 10.0|Windows NT 10.0)/},{s:"Windows 8.1",r:/(Windows 8.1|Windows NT 6.3)/},{s:"Windows 8",r:/(Windows 8|Windows NT 6.2)/},{s:"Windows 7",r:/(Windows 7|Windows NT 6.1)/},{s:"Windows Vista",r:/Windows NT 6.0/},{s:"Windows Server 2003",r:/Windows NT 5.2/},{s:"Windows XP",r:/(Windows NT 5.1|Windows XP)/},{s:"Windows 2000",r:/(Windows NT 5.0|Windows 2000)/},{s:"Windows ME",r:/(Win 9x 4.90|Windows ME)/},{s:"Windows 98",r:/(Windows 98|Win98)/},{s:"Windows 95",r:/(Windows 95|Win95|Windows_95)/},{s:"Windows NT 4.0",r:/(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/},{s:"Windows CE",r:/Windows CE/},{s:"Windows 3.11",r:/Win16/},{s:"Android",r:/Android/},{s:"Open BSD",r:/OpenBSD/},{s:"Sun OS",r:/SunOS/},{s:"Linux",r:/(Linux|X11)/},{s:"iOS",r:/(iPhone|iPad|iPod)/},{s:"Mac OS X",r:/Mac OS X/},{s:"Mac OS",r:/(MacPPC|MacIntel|Mac_PowerPC|Macintosh)/},{s:"QNX",r:/QNX/},{s:"UNIX",r:/UNIX/},{s:"BeOS",r:/BeOS/},{s:"OS/2",r:/OS\/2/},{s:"Search Bot",r:/(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\/Teoma|ia_archiver)/}];for(id in clientStrings){var cs=clientStrings[id];if(cs.r.test(nAgt)){os=cs.s;break}}var osVersion="-";switch(/Windows/.test(os)&&(osVersion=/Windows (.*)/.exec(os)[1],os="Windows"),os){case"Mac OS X":osVersion=/Mac OS X (10[\.\_\d]+)/.exec(nAgt)[1];break;case"Android":osVersion=/Android ([\.\_\d]+)/.exec(nAgt)[1];break;case"iOS":osVersion=(osVersion=/OS (\d+)_(\d+)_?(\d+)?/.exec(nVer))[1]+"."+osVersion[2]+"."+(0|osVersion[3])}"Linux"!=os&&os+osVersion!="Windows8.1"&&os+osVersion!="Windows8"&&os+osVersion!="Windows7"&&os+osVersion!="WindowsVista"&&os+osVersion!="WindowsXP"||$("g-emoji").each(function(){$(this).html('<img src="'+$(this).attr("fallback-src")+'" alt="emoji">')}),$(".callusBtn").on("click",function(){$(this).parents(".callus").find(".callusContent").slideToggle(animateSpeed)}),$(".callusContentClose").on("click",function(){$(this).parents(".callus").find(".callusContent").slideUp(animateSpeed)}),$(".callusBtn").mouseenter(function(){$(this).parents(".callus").addClass("active")}).mouseleave(function(){$(this).parents(".callus").removeClass("active")}),$(".copyUrl").on("click",function(){hotToast($(this).attr("data-copy-message"));var $temp=$("<input>"),$url=$(this).parents("#share").attr("data-url");$(this).append($temp),$temp.val($url).select(),document.execCommand("copy"),$temp.remove()}),$(".copyVin").on("click",function(){hotToast($(this).attr("data-copy-message"));var $temp=$("<input>"),$vin=$(this).parents("#vin").attr("data-vin");$(this).append($temp),$temp.val($vin).select(),document.execCommand("copy"),$temp.remove()}),$("[data-text-replace]").on("click",function(){var text=$(this).text();$(this).text($(this).attr("data-text-replace")),$(this).attr("data-text-replace",text)}),$(".filterTitle .btn").on("click",function(){var parentElement=$(this).parents(".filterTitle");$(this).parents(".filterTitle").find(".btn");parentElement.find(".filterTitleInfo").slideToggle(animateSpeed),parentElement.find(".btn").hide(),parentElement.hasClass("active")?setTimeout(function(){parentElement.find(".btn").css("bottom","").show(),parentElement.toggleClass("active")},animateSpeed):(setTimeout(function(){parentElement.find(".btn").css("bottom",45-parentElement.find(".filterTitleInfo").height()-40).show()},animateSpeed),parentElement.toggleClass("active"))}),$("[data-smoothscroll-link]").on("click",function(){var smoothscrollAnchor=$(this).attr("data-smoothscroll-link"),smoothscrollPosition=$('[data-smoothscroll-content="'+smoothscrollAnchor+'"]').offset().left,smoothscrollActual=$('[data-smoothscroll-content="'+smoothscrollAnchor+'"]').parents(".smoothScroll").find(".smoothScrollInner").scrollLeft(),smoothscrollOffset=$('[data-smoothscroll-content="'+smoothscrollAnchor+'"]').parents(".smoothScrollInner").offset().left;$('[data-smoothscroll-content="'+smoothscrollAnchor+'"]').parents(".smoothScroll").find(".smoothScrollInner").animate({scrollLeft:smoothscrollActual+smoothscrollPosition-smoothscrollOffset-19},1e3)}),$(".smoothScroll").each(function(){$(this).prepend('<button class="arrow left"><img src="/build/desktop/images/icons/arrowAngle.svg" class="svg iconMin primaryAlt"></button>'),$(this).append('<button class="arrow right"><img src="/build/desktop/images/icons/arrowAngle.svg" class="svg iconMin primaryAlt"></button>'),smoothScrollInitArrows($(this))}),svg(),$(".smoothScroll").each(function(){$(this).find(".smoothScrollInner").width()<$(this).find(".smoothScrollItems").width()&&$(this).find(".arrow.right").addClass("arrow--active")});var headerHeight,breadcrumbHeight;$(".smoothScroll .arrow").on("click",function(e){var smoothScrollPosition=$(this).parents(".smoothScroll").find(".smoothScrollInner").scrollLeft(),smoothScrollInner=$(this).parents(".smoothScroll").find(".smoothScrollInner").width();$(this).hasClass("left")?$(this).parents(".smoothScroll").find(".smoothScrollInner").animate({scrollLeft:smoothScrollPosition-smoothScrollInner},1e3):$(this).parents(".smoothScroll").find(".smoothScrollInner").animate({scrollLeft:smoothScrollPosition+smoothScrollInner},1e3)}),$(window).resize(function(){$(".smoothScroll").each(function(){$(this).find(".smoothScrollInner").width()<$(this).find(".smoothScrollItems").width()?$(this).find(".arrow.right").addClass("arrow--active"):($(this).find(".arrow.right").removeClass("arrow--active"),$(this).find(".arrow.left").removeClass("arrow--active"))})}),$(".smoothScrollInner").scroll(function(){var smoothScrollPosition=$(this).parents(".smoothScroll").find(".smoothScrollInner").scrollLeft(),smoothScrollInner=$(this).parents(".smoothScroll").find(".smoothScrollInner").width(),smoothScrollItems=$(this).parents(".smoothScroll").find(".smoothScrollItems").width();0==smoothScrollPosition?$(this).parents(".smoothScroll").find(".arrow.left").removeClass("arrow--active"):$(this).parents(".smoothScroll").find(".arrow.left").addClass("arrow--active"),parseInt(smoothScrollPosition+smoothScrollInner)+1>=parseInt(smoothScrollItems)?$(this).parents(".smoothScroll").find(".arrow.right").removeClass("arrow--active"):$(this).parents(".smoothScroll").find(".arrow.right").addClass("arrow--active")}),$(".filterBtn").length&&($(window).scrollTop()+$(window).height()<$(".filterBtn").offset().top+$(".filterBtn").outerHeight()?$(".filterBtn .filterBtnWrap").addClass("fixed"):$(".filterBtn .filterBtnWrap").removeClass("fixed"),$(window).scroll(function(){$(window).scrollTop()+$(window).height()<$(".filterBtn").offset().top+$(".filterBtn").outerHeight()?$(".filterBtn .filterBtnWrap").addClass("fixed"):$(".filterBtn .filterBtnWrap").removeClass("fixed")})),$(".showHide.active").each(function(){$(this).find(".showHideContent").css({display:"block"})}),$(".showHideAnchor").on("click",function(){$(this).parents(".showHide").find(".showHideContent").toggle(),$(window).scrollTop()+$(window).height()<$(".filterBtn").offset().top+$(".filterBtn").outerHeight()?($(".filterBtn .filterBtnWrap").hasClass("fixed")||$(".filterBtn .filterBtnWrap").css("opacity",0).animate({opacity:1},animateSpeed),$(".filterBtn .filterBtnWrap").addClass("fixed")):$(".filterBtn .filterBtnWrap").removeClass("fixed"),$(this).parents(".showHide").find(".showHideContent").toggle(),$(this).parents(".showHide").find(".showHideContent").slideToggle(animateSpeed),$(this).parents(".showHide").toggleClass("active")}),$.fn.tooltip=function(hide){"hide"==hide?$(this).attr("data-tooltip-hide","true"):"show"==hide?$(this).attr("data-tooltip-hide","false"):"toggle"==hide&&$(this).attr("data-tooltip-hide","true"==$(this).attr("data-tooltip-hide")?"false":"true")},tooltipHTMLInit(),$(".tooltipHasContent").on("click",function(e){$(e.target).hasClass("tooltipHasContent")&&($(".tooltipContent").hide(),$(this).find(".tooltipContent").show())}),$(".tooltipContentClose").on("click",function(e){$(this).parents(".tooltipContent").hide()}),$(".galleryGridIcon.download").click(function(){var a=$("<a>").attr("href",$(this).attr("href")).attr("download",$(this).attr("href")).appendTo("body");return a[0].click(),a.remove(),!1}),$(".photoswipe a").click(function(){$(".pswp__miniPhotosWrap *").remove(),window.imgNumber=0,$(this).parents(".photoswipe").find("figure").removeClass("figure-active"),$(this).parents("figure").addClass("figure-active");var imgActive=$(this).parents(".galleryFigureWrapper").length?$(this).parents(".slickItem").index():$(this).parents(".photoswipe").find("figure").index($(".figure-active"));window.imgPosition=imgActive;for(var i=0;i<$(this).parents(".photoswipe").find("figure:not(.carouselGalleryPlaceholder):not(.slick-cloned) a").length;i++)imgActive==i?$(this).parents(".photoswipe").find("figure:not(.carouselGalleryPlaceholder) a").eq(i).clone().appendTo(".pswp__miniPhotosWrap").addClass("active"):$(this).parents(".photoswipe").find("figure:not(.carouselGalleryPlaceholder) a").eq(i).clone().appendTo(".pswp__miniPhotosWrap"),window.imgNumber++;$(".pswp__miniPhotosWrap a").css({opacity:0}),setTimeout(function(){$(".pswp__miniPhotosWrap a").css({opacity:1});var m=$(".pswp__zoom-wrap").css("transform"),m=m.substring(m.indexOf("(")+1,m.indexOf(")")).split(","),imgSize=$(".pswp__container .pswp__img").not("pswp__img--placeholder").outerWidth(),imgPoisition=imgActive-3;imgActive-3<0?imgPoisition=0:window.imgNumber-imgActive<4&&(imgPoisition=window.imgNumber-7),$(".pswp__miniPhotosWrap").css({width:window.imgNumber/7*100+"%",left:"-"+14.2857142857*imgPoisition+"%"}),$(".pswp__miniPhotosWrap a").removeAttr("href").css({width:100/window.imgNumber+"%"}),$(".pswp__miniPhotos").css({width:imgSize*m[0]+26+"px"})},500)}),$(document).on("click",".pswp__photo",function(e){window.miniimgPos=$(this).parents("a").index()-$(this).parents(".pswp__miniPhotosWrap").find(".active").index()}),$(".google-reviews").slick({slidesToShow:3,slideToScroll:1,arrows:!0,dots:!0,infinite:!0,centerMode:!0,variableWidth:!0}),$(".progressBarSlider").on("init",function(event,slick){let $slider=$(this);var slidesCount=slick.slideCount,slidesToShow=slick.options.slidesToShow||1,slidesToScroll=slick.options.slidesToScroll||1;let step=slick.options.infinite?Math.ceil(slidesCount/slidesToScroll):Math.ceil((slidesCount-slidesToShow)/slidesToScroll)+1;slick=$('<div class="progressBarSlider__nav"></div>');let controls=$(`
<div class="progressBarSlider__controls">
<div class="progressBarSlider__arrow progressBarSlider__arrow--prev"></div>
<div class="progressBarSlider__arrow progressBarSlider__arrow--next"></div>
</div>
`),$prevArrow=controls.find(".progressBarSlider__arrow--prev"),$nextArrow=controls.find(".progressBarSlider__arrow--next");slidesCount=$('<div class="progressBarSlider__progressBar-wrapper"><div class="progressBarSlider__progressBar"></div></div>');function updateProgress(index){index=(index+1)/step*100;$slider.find(".progressBarSlider__progressBar").css("width",index+"%")}function updateArrows(index,count){controls.find(".progressBarSlider__arrow").removeClass("progressBarSlider__arrow--disabled"),0===index&&$prevArrow.addClass("progressBarSlider__arrow--disabled"),index===count-1&&$nextArrow.addClass("progressBarSlider__arrow--disabled")}slick.append(controls).append(slidesCount),$slider.append(slick),updateProgress(0),updateArrows(0,step),controls.find(".progressBarSlider__arrow--next").on("click",function(){$slider.slick("slickNext")}),controls.find(".progressBarSlider__arrow--prev").on("click",function(){$slider.slick("slickPrev")}),$slider.on("beforeChange",function(event,slick,current,next){updateProgress(next),updateArrows(next,step),$(slick.$slides).blur()}),$slider.on("afterChange",function(event,slick,currentSlide){updateArrows(currentSlide,step),updateProgress(currentSlide),$(slick.$slides.get(currentSlide)).focus()})}),$(".progressBarSlider").each(function(){slidesToShow=$(this).data("slick-slides-to-show")||1,variableWidth=$(this).data("slick-variable-width")||!1,$(this).slick({slidesToShow:slidesToShow,slidesToScroll:1,variableWidth:variableWidth,dots:!1,arrows:!1,infinite:!1})}),$(".defaultSlider").slick({slidesToShow:5.8,slidesToScroll:1,dots:!1,arrows:!0,infinite:!0,centerMode:!0}),$(".defaultSliderNew").slick({infinite:!1,centerMode:!1,slidesToShow:4.4,slideToScroll:1,arrows:!0,dots:!1,swipeToSlide:!0,responsive:[{breakpoint:640,settings:{slidesToShow:1}},{breakpoint:1e3,settings:{slidesToShow:2}},{breakpoint:1220,settings:{slidesToShow:3}},{breakpoint:1600,settings:{slidesToShow:4}}]}),$(".imagerowSlider").slick({variableWidth:!0,slidesToShow:6,slidesToScroll:1,swipeToSlide:!0,infinite:!0}),$(".peopleSlider").slick({infinite:!0,slidesToShow:1,slidesToScroll:1,swipeToSlide:!0}),
// ____B2B info banner____
$.cookie("b2bVisited")&&!$.cookie("b2bBannerClosed")&&(headerHeight=$("header").length?$("header").outerHeight():0,breadcrumbHeight=$(".breadcrumb").length?$(".breadcrumb").outerHeight():0,$(".b2b-banner").css("top",headerHeight+breadcrumbHeight),$("header.static").length&&$(".b2b-banner").css("position","absolute"),$.cookie("b2bBannerClosed")||$(".b2b-banner").css("display","flex")),$(".b2b-banner__close").click(function(){$(".b2b-banner").hide(),$.cookie("b2bBannerClosed",!0,{path:"/",domain:".aaaauto."+window.location.hostname.split(".")[2]})}),
// ____B2B info banner - end____
//_____article history back_____
$(".article-slider__item-main").on("click",function(e){$.cookie("historyBack",window.location.pathname,{path:"/",domain:".aaaauto."+window.location.hostname.split(".")[2]})}),$(".settingsContentMainBack").each(function(){var hostUrl=$(this).attr("href");$.cookie("historyBack")&&$(this).attr("href",hostUrl+$.cookie("historyBack")+"?scrollOffset=true")}),$("#articleSlider").length&&window.parent.postMessage({message:"scrollOffset",value:$("#articleSlider").offset().top},"*")});
/**
* Homepage Blocks - Tab functionality for Buying block
*/
$(document).ready(function(){
// Initialize Slick carousel for selling block with autoplay
$(".selling-block__carousel").length&&void 0!==$.fn.slick&&$(".selling-block__carousel").slick({slidesToShow:3.2,infinite:!1,arrows:!0,dots:!1,pauseOnHover:!0,variableWidth:!1,centerMode:!1,responsive:[{breakpoint:1440,settings:{slidesToShow:2.5}},{breakpoint:1024,settings:{slidesToShow:2}},{breakpoint:768,settings:{slidesToShow:1.2}}]}),
// Initialize Slick carousel for financing block with autoplay
$(".financing-block__carousel").length&&void 0!==$.fn.slick&&$(".financing-block__carousel").slick({slidesToShow:3.2,infinite:!1,arrows:!0,dots:!1,variableWidth:!1,centerMode:!1,responsive:[{breakpoint:1440,settings:{slidesToShow:2.5}},{breakpoint:1024,settings:{slidesToShow:2}},{breakpoint:768,settings:{slidesToShow:1.2}}]})});