{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./modules/dropdown/dropdown.js","webpack:///./modules/navbar/navbar.js","webpack:///./modules/navbar/search-overlay.js","webpack:///./scripts/components/thom_advanced_search.js","webpack:///./scripts/components/thom_form.js","webpack:///./scripts/components/thom_map.js","webpack:///./scripts/components/thom_mapping.js","webpack:///./modules/thomObserveAnimation/toa.js","webpack:///./scripts/components/spinner.js","webpack:///./scripts/components/thom_cookie.js","webpack:///./scripts/app.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","0","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","thomDropdown","mob_nav","elem","$","find","click","e","preventDefault","not","removeClass","hasClass","addClass","scrollbar","elems","elems_n","elems_H","elems_max","close","isNumeric","each","this","outerHeight","height","css","mCustomScrollbar","dropdown","document","getElementsByClassName","_","navbar","navbarToggler","querySelector","windowScrollTop","resetPosition","removeAttr","scrollBy","addEventListener","event","scrollTop","width","manteinPosition","navbarElement","classList","contains","navbarShowHidetPixels","clientHeight","scrollPos","func","timeout","wait","immediate","context","args","arguments","later","callNow","clearTimeout","setTimeout","debounce","scrollingElement","offsetTop","windowY","scrollY","add","remove","searchOverlay","navbarSearchToggler","on","factory","define","Thomsearch","element","settings","defaults","filterClass","filtersContent","infScroll","itemsPerPage","onFilterClick","orderByPosition","resultsCallback","resultsNumber","submit","url","urlContent","extend","initials","$el","resizing","options","htmlExpr","init","creation","trigger","setlisteners","loadingShow","selected_val","_thisId","THOM_searchFilters","toggleClass","getObjects","getFiltered","getFilteredContents","reset","createElement","setAttribute","innerHTML","append","fadeIn","loadingHide","fadeOut","postdata","filter","ajax","dataType","success","selectedFilters","itemsXPage","JSON","stringify","type","contentType","refreshFilters","obj","Filters","Id","Name","filters","filter_Id","filter_isSelected","Selected","filter_isActive","Active","val","keyToModify","newVal","newValue","objects","concat","fn","thomsearch","ret","opt","Array","require","jQuery","validator","addMethod","is","methods","unobtrusive","adapters","addBool","a0","errorMsg","errorCallback","myCallback","steps","stepsCallback","$inputFile","$inputFileLabel","inputFileLabelVal","Plugin","el","listeners","formClass","attr","exists","parse","unbind","prop","response","keypress","which","next","html","fileName","files","getAttribute","replace","target","split","pop","mydate","datepicker","language","format","loader","done","replaceForm","action","valid","formdata","currId","token","mtcaptcha","getVerifiedToken","ajaxSubmit","beforeSubmit","formData","jqForm","responseText","statusText","xhr","$form","myStatus","Status","myMessage","Message","myTitle","Title","myUrl","Url","nextStep","hide","isFunction","ThomFormSuccessCallback","location","href","clearForm","grecaptcha","resetUI","error","res","resetForm","goNextStep","currAction","resAction","currStep","thomForm","err","console","ThomMap","autocomplete","backgroundColor","content","fitbounds","geolocation_btn","getClusterIcons","getMarkerIcon","getDistance","isDett","maxZoom","params","otherdatas","searchBtn","searchCallback","styled","zoom","zoomControl","zoomControlPosition","google","maps","ControlPosition","RIGHT_BOTTOM","zoomToMarker","infowindow","infowindowW","infowindowH","_bounds","map","mapContainer","marker","markers","markerCluster","overlay","positions","_this","resize","addDomListener","center","getCenter","setCenter","fitBounds","input","getElementById","searchBox","places","SearchBox","addListener","getPlaces","undefined","latitude","geometry","lat","longitude","lng","geolocate","navigator","geolocation","getCurrentPosition","position","coords","geocodeLatLng","searchPoints","geocoder","Geocoder","latlng","parseFloat","geocode","results","status","formatted_address","alert","spinner","Map","LatLng","zoomControlOptions","panControl","streetViewControl","mapTypeControl","scrollwheel","fullscreenControl","mapTypes","set","setMapTypeId","markersClear","clearMarkers","mapPositions","radius","param","crossDomain","fail","always","ico","icon","ico_h","markersCreate","count","thiselem","distance","cat","currentposition","latLngA","latLngB","spherical","computeDistanceBetween","text","toFixed","createPosition","forEach","setMap","LatLngBounds","proxy","index","item","Marker","title","icon_h","txt","category","MarkerClusterer","styles","OverlayView","draw","markerListeners","itemOpenOverlay","markerOverlay","id","fitToMarker","markerBounds","markerlatlng","getPosition","getNorthEast","equals","getSouthWest","extendPoint1","extendPoint2","markerOverlay_reposition","lenght","point","getProjection","fromLatLngToContainerPixel","innerWidth","innerHeight","left","x","top","y","filterMarkers","indexOf","setVisible","selectAllChecked","checkedCaregory","allCheckedElem","getElementsByName","checked","filterChecker","categories","mymarker","inArray","listmarker","show","thomMap","dataPlugin","color","destroy","log","changeBG","arg","instance","gsap","registerPlugin","ScrollTrigger","Packery","toa","toaResize","toaInit","observerElements","utils","toArray","ease","section","start","once","onEnter","image","array","toaCallback","newSRC","dataset","src","newImage","onload","offsetLeft","offsetWidth","offsetHeight","parentNode","appendChild","to","opacity","onComplete","removeChild","refresh","pckry","packery","itemSelector","percentPosition","hasAttribute","toaAnimationReveal","className","attributes","stagger","scrollTrigger","toaParallaxMove","elements","batch","toggleActions","anim","delay","duration","overwrite","toaDisable","callback","st","getAll","stE","kill","matchMedia","matches","LazyLoad","unobserve_entered","elements_selector","callback_loaded","parent","div","scrub","bridget","body","thomCookieSet","days","date","Date","setTime","getTime","expires","toGMTString","cookie","flktyHome","flktyProjectsPreviewBk","flktyProjectsSinglepage","myLazyLoad","bodyScrollLock","disableBodyScroll","enableBodyScroll","MyThomFormResponseAction","myHtml","appendTo","modal","CarouselParallax","carousel","cell","imgs","transformProp","documentElement","style","transform","slides","slide","img","Math","abs","slidesWidth","outerWidth","myThomMapMarkerIcon","contact","_root","dealers","clickClose","escapeClose","fadeDuration","fadeDelay","showClose","spinnerHtml","blockerClass","ThomAdvancedSearch","myapp","animate","shareButtonsInit","g","link","$temp","select","execCommand","shareButtons","firstLL","Flickity","autoPlay","cellSelector","pauseAutoPlayOnHover","prevNextButtons","pageDots","bgLazyLoad","lazyLoad","draggable","cellElement","startProgressbar","resetProgressbar","percentTime","isPaused","tick","setInterval","increase","interval","progressBar","selectedIndex","caption","CarouselProgressbar","flktyCollectionsPreview","contain","fade","ready","asNavFor","previous","selectedElements","textContent","subtitle","flktyFeatures","ToggleFeaturesFlickity","groupCells","cellAlign","flktyMinerals","wrapAround","cellsButtonGroup","cellsButtons","makeArray","children","previousSelectedButton","selectedButton","_createResizeClass","createMethods","flktyColorFinishesDesc","FlickityResize","$this","$list","elms","slideToggle","stop","slideUp","slideDown","OPEN","update","AFTER_CLOSE","selects","Loader","apiKey","_gmapkey","version","libraries","load","then","searchFromSelect","thomMap_url","RIGHT_TOP","catch","selectChange","change","selectName","getContents","selectId","changed","selectVal","thomDealersGetFilters_url","searchClick","dealersSearch","GoogleMapsDealersLoader","contactForm","offset","guaranteeForm","size","Size","myMarker","bounds","updateNextURL","doc","nextURL","updateInfiniteScroll","$infiniteContainer","infiniteScroll","path","history","items","THOM_searchItemsPerPage","THOM_searchUrlContent","THOM_orderByPosition","THOM_searchUrlFilters","jobStepsForm","stepForm","jobForm","responseContent","elemToDuplicate","elemLast","insertAfter","recaptchaLoad","carousel_imgs","productScrollElement","eq","fullView","viewer","fullViewModalTitle","fullViewModalTitleFinishes","myModal","fullviewModal","isDesktop","minZoomLevel","maxZoomLevel","unit","setProperty","descWidth","OpenSeadragon","Viewer","constrainDuringPan","preserveImageSizeOnResize","defaultZoomLevel","zoomPerClick","zoomPerScroll","visibilityRatio","showNavigator","navigatorHeight","ratio","navigatorWidth","navigatorId","navigatorAutoFade","showFullPageControl","showHomeControl","showSequenceControl","homeButton","fullPageButton","nextButton","previousButton","toolbar","zoomInButton","zoomOutButton","useCanvas","tileSources","crossOriginPolicy","ajaxWithCredentials","TileCache","maxImageCacheCount","addHandler","eventSource","world","_items","lastDrawn","container","viewport","containerSize","panHorizontal","centerSpringX","resetTo","panVertical","centerSpringY","setMouseNavEnabled","disabled","CLOSE","removeAll","resetItems","removeAllHandlers","imageLoader","clear","_cancelPendingImages","removeReferenceStrip","clearControls","removeControl","videoElement","videoSrc","itemOnEnter","play","itemOnLeave","pause","timeline","end","onEnterBack","onLeave","onLeaveBack","lightGallery","selector","download","counter","getCaptionFromTitleOrAlt","$lggallery","first","videoMaxWidth","youtubePlayerParams","modestbranding","showinfo","rel","controls","vimeoPlayerParams","byline","portrait","blur","newHTML","textStatus","jqXHR","errorThrown","complete","cookieSupportFiles","nameEQ","ca","charAt","substring","thomCookieGet","filesmodal","downloadForm","filesresponsemodal","reload","filename","analyticsUpdate","barba","use","barbaCss","hooks","$anchor","enter","headTags","join","newplaceholdersection","newmenu","js","globalEval","ajaxOptions","thrownError","leave","before","cacheIgnore","prefetchIgnore","debug","views","namespace","afterEnter","mt_jsloadedcb","beforeEnter","ytVideoId","onYouTubeIframeAPIReady","YT","Player","videoId","playerVars","playlist","autoplay","autohide","disablekb","loop","fs","enablejsapi","playsinline","events","onReady","mute","setPlaybackQuality","playVideo","onStateChange","videoHolder","script"],"mappings":"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","file":"app.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([78,1]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","// THOM Dropdown\nimport hoverIntent from \"jquery-hoverintent\";\nimport mCustomScrollbar from \"malihu-custom-scrollbar-plugin\";\nimport mousewheel from \"jquery-mousewheel\";\n\nexport function thomDropdown () {\t\n\n\t/* DESKTOP Action */\n\tvar desk_nav = function (elem) {\t\n\t\t$(elem).unbind(\"click\");\n\t\t\n\t\t$(elem).hoverIntent({\n\t\t\tover: function () {\n\t\t\t\topen(elem);\n\t\t\t},\n\t\t\tout: function () {\n\t\t\t\tclose(elem);\n\t\t\t}\n\t\t});\n\t}\n\n\t/* MOBILE Action */\n\tvar mob_nav = function (elem) {\n\t\t$(elem).find('.thom-dropdown--label').click(function (e) {\n\t\t\te.preventDefault();\n\t\t\t$('.thom-dropdown').not(elem).removeClass('is-open');\n\n\t\t\tif ($(elem).hasClass('is-open')) {\n\t\t\t\t$(elem).removeClass('is-open');\n\t\t\t} else {\n\t\t\t\t$(elem).addClass('is-open');\n\t\t\t}\n\n\t\t\tscrollbar(elem);\n\t\t\treturn false;\n\t\t});\n\t}\n\n\t/* Open Select */\n\tvar open = function (elem) {\n\t\t$(elem).addClass('is-open');\n\t\tscrollbar(elem);\n\t};\n\n\t/* Control for scrollbar */\n\tvar scrollbar = function (elem) {\n\t\tvar elems = $(elem).find('.thom-dropdown--options-item');\n\t\tvar elems_n = elems.length;\n\t\tvar elems_H = 0;\n\t\tvar elems_max = $(elem).data('max');\n\n\t\telems.not('.thom-search--filter-btn').click(function () {\n\t\t\tclose(elem);\n\t\t})\n\n\t\tif ($.isNumeric(elems_max) && elems_n > elems_max) {\n\n\t\t\tif (elems.length > elems_max) {\n\t\t\t\telems.each(function (i) {\n\t\t\t\t\telems_H += $(this).outerHeight(true);\n\t\t\t\t\tif (! --elems_max) {\n\t\t\t\t\t\t$(elem).find('.thom-dropdown--options').height(elems_H).css('overflow', 'hidden');\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tif ($(elem).find('.thom-dropdown--options').hasClass('mCustomScrollbar')) {\n\t\t\t\t$(elem).find('.thom-dropdown--options').mCustomScrollbar(\"update\");\n\t\t\t} else {\n\t\t\t\t$(elem).find('.thom-dropdown--options').mCustomScrollbar();\n\t\t\t}\n\t\t};\n\t}\n\n\t/* Close Select */\n\tvar close = function (elem) {\n\t\t$(elem).removeClass('is-open');\n\t\tif ($(elem).find('.mCustomScrollbar')) {\n\t\t\t$(elem).find('.thom-dropdown--options').mCustomScrollbar(\"destroy\");\n\t\t}\n\t};\n\n\t// resize\n\t/* var resize = function (elem) {\n\t\tif (window.innerWidth > 768) {\n\t\t\tdesk_nav(elem);\n\t\t} else {\n\t\t\tmob_nav(elem);\n\t\t}\n\t}; */\n\n\tlet dropdown = document.getElementsByClassName('thom-dropdown');\n\tfor( var i = 0; i <= dropdown.length; i++) {\n\t\tvar _ = dropdown[i];\n\n\t\tif (_) {\n\t\t\t/* resize(_);\n\t\t\t$(window).on('resizeend', 250, function () {\n\t\t\t\tresize(_);\n\t\t\t}); */\n\t\t\tmob_nav(_);\n\t\t}\n\t}\n}\nexport default thomDropdown\n","/**\n * Navbar\n */\n\nexport function navbar () {\n // Debounce function which waits 10ms before firing. We use it so we don't fire events like crazy during long scroll sessions\n\n function debounce (func, wait = 10, immediate = true) {\n let timeout\n return function () {\n let context = this\n let args = arguments\n let later = function () {\n timeout = null\n if (!immediate) func.apply(context, args)\n }\n let callNow = immediate && !timeout\n clearTimeout(timeout)\n timeout = setTimeout(later, wait)\n if (callNow) func.apply(context, args)\n }\n }\n\n $('.navbar').addClass('tween');\n\n // Show menu overlay when click the navbar toggler\n const navbarToggler = document.querySelector('.js-navbar-toggler');\n var windowScrollTop = 0;\n // menu button\n if (navbarToggler) {\n navbarToggler.addEventListener('click', function (event) {\n event.preventDefault(); \n if($('body').hasClass('navbar--opened')){\n $('body').removeClass('navbar--opened');\n resetPosition (windowScrollTop)\n } else if ($('body').hasClass('navbar--search-opened')) {\n $('body').removeClass('navbar--search-opened');\n resetPosition (windowScrollTop)\n } else {\n windowScrollTop = $(window).scrollTop();\n $('body').removeClass('navbar--search-opened');\n $('body').addClass('navbar--opened');\n manteinPosition (windowScrollTop);\n }\n });\n }\n\n function manteinPosition (windowScrollTop) {\n $('.wrapper').css({\n 'overflow': 'hidden',\n 'height': $(window).height(),\n 'width': $(window).width(),\n 'position': 'fixed'\n });\n\n $('.main').css({\n 'position': 'relative',\n 'top': -windowScrollTop\n });\n\n $(window).scrollTop(0);\n }\n\n function resetPosition (windowScrollTop) {\n $('.wrapper').removeAttr('style');\n $('.main').removeAttr('style');\n window.scrollBy(0, windowScrollTop);\n }\n\n // Add class to navbar after certain amount of pixels are scrolled\n const navbarElement = document.querySelector('.js-navbar')\n\n // Navbar slides out of view when scrolling down and slides back in when scrolling up\n // Based on https://dev.to/changoman/showhide-element-on-scroll-w-vanilla-js-3odm\n\n if (navbarElement) {\n if (navbarElement.classList.contains('navbar--fixed-showhide') && !$('body').hasClass('navbar--opened')) {\n const navbarShowHidetPixels = navbarElement.clientHeight;\n let scrollPos = 0;\n\n function navbarShowHide () {\n var scrolled = document.scrollingElement.scrollTop;\n var position = navbarElement.offsetTop;\n if (scrolled > position + navbarShowHidetPixels) {\n let windowY = window.scrollY\n if (windowY < scrollPos) {\n // Scrolling UP\n navbarElement.classList.add('on-stage')\n navbarElement.classList.remove('out-stage')\n } else {\n // Scrolling DOWN\n navbarElement.classList.add('out-stage')\n navbarElement.classList.remove('on-stage')\n }\n scrollPos = windowY\n } else {\n navbarElement.classList.remove('on-stage')\n }\n }\n\n window.addEventListener('scroll', debounce(navbarShowHide))\n }\n }\n}\n\nexport default navbar\n","/**\n * Search overlay\n */\n\nexport function searchOverlay () {\n const navbarElement = document.querySelector('.js-navbar');\n const navbarSearchToggler = $('.js-navbar-seach-toggler');\n var windowScrollTop = 0; \n // search button\n if (navbarSearchToggler) {\n navbarSearchToggler.each(function(){\n $(this).on('click', function (event) {\n event.preventDefault(); \n if($('body').hasClass('navbar--search-opened')){\n $('body').removeClass('navbar--search-opened');\n window.scrollBy(0, windowScrollTop);\n } else {\n $('body').removeClass('navbar--opened');\n navbarElement.classList.remove('out-stage');\n windowScrollTop = $(window).scrollTop();\n $('body').addClass('navbar--search-opened');\n manteinPosition (windowScrollTop);\n }\n });\n })\n }\n\n function manteinPosition (windowScrollTop) {\n $('.wrapper').css({\n 'overflow': 'hidden',\n 'height': $(window).height(),\n 'width': $(window).width(),\n 'position': 'fixed'\n });\n\n $('.main').css({\n 'position': 'relative',\n 'top': -windowScrollTop\n });\n\n $(window).scrollTop(0);\n }\n\n function resetPosition (windowScrollTop) {\n $('.wrapper').removeAttr('style');\n $('.main').removeAttr('style');\n window.scrollBy(0, windowScrollTop);\n }\n\n\n}\n\nexport default searchOverlay\n","/*! Thom Advanced Search - v2 - 2020-09-17\n* Copyright (c) 2020 THOM */\n\n/* global window, document, define, jQuery, setInterval, clearInterval */\n(function (factory) {\n 'use strict'\n if (typeof define === 'function' && define.amd) {\n define(['jquery'], factory)\n } else if (typeof exports !== 'undefined') {\n module.exports = factory(require('jquery'))\n } else {\n factory(jQuery)\n }\n}(function ($) {\n 'use strict'\n\n // THOM Menu\n var Thomsearch = window.Thomsearch || {}\n\n Thomsearch = (function () {\n function Thomsearch (element, settings) {\n var _ = this\n\n _.defaults = {\n filterClass: '',\n filtersContent: '',\n infScroll: null,\n itemsPerPage: 10,\n onFilterClick: null,\n orderByPosition: false,\n resultsCallback: function () { },\n resultsNumber: '',\n submit: null,\n url: '',\n urlContent: ''\n }\n\n $.extend(_, _.initials)\n\n _.$el = $(element);\n _.infScroll = null;\n _.resizing = false;\n\n _.options = $.extend({}, _.defaults, settings);\n\n // A simple way to check for HTML strings\n // Strict HTML recognition (must start with <)\n // Extracted from jQuery v1.11 source\n _.htmlExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*)$/;\n\n _.init(true);\n }\n\n return Thomsearch;\n }())\n\n Thomsearch.prototype.init = function (creation) {\n var _ = this;\n\n if (creation) {\n _.$el.trigger('init', [_]);\n // Set Listeners\n _.setlisteners();\n }\n }\n\n Thomsearch.prototype.setlisteners = function () {\n var _ = this;\n\n // Filter click\n $(_.options.filterClass).click(function (e) {\n e.preventDefault();\n\n if (_.options.onFilterClick != null) {\n _.options.onFilterClick();\n }\n\n _.loadingShow();\n\n var _thisId = $(this).data('val');\n var selected_val;\n \n if(THOM_searchFilters){\n $(this).toggleClass('is-selected');\n\n if ($(this).hasClass('is-selected')) {\n selected_val = true;\n } else {\n selected_val = false;\n }\n\n $(_.options.filterClass).addClass('is-refreshing');\n\n THOM_searchFilters = _.getObjects(THOM_searchFilters, 'Id', _thisId, 'Selected', selected_val);\n _.getFiltered();\n } else {\n $(_.options.filterClass).removeClass('is-selected');\n $(this).addClass('is-selected');\n _.getFilteredContents(_thisId);\n }\n });\n }\n\n Thomsearch.prototype.reset = function () {\n var _ = this\n $(_.options.filterClass).removeClass('is-refreshing is-selected is-inactive');\n $(_.options.filterClass).each(function () {\n var _thisId = $(this).data('val');\n THOM_searchFilters = _.getObjects(THOM_searchFilters, 'Id', _thisId, 'Selected', false);\n THOM_searchFilters = _.getObjects(THOM_searchFilters, 'Id', _thisId, 'Active', true);\n });\n _.getFiltered();\n }\n\n /* Loading - show */\n Thomsearch.prototype.loadingShow = function () {\n var _ = this;\n\n $('.thom-search--results').addClass('loading');\n\n var elem = document.createElement('div');\n elem.setAttribute('id', 'spinnersearch');\n elem.innerHTML =\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
';\n\n $('.thom-search .thom-dropdown').append(elem);\n $('#spinnersearch').fadeIn();\n }\n\n /* Loading - hide */\n Thomsearch.prototype.loadingHide = function () {\n var _ = this;\n $('#spinnersearch').fadeOut(300, function(){\n $(this).remove();\n $('.thom-search--results').removeClass('loading');\n });\n }\n\n /* Get Contents JSON Object */\n Thomsearch.prototype.getFilteredContents = function (value) {\n var _ = this;\n\n var postdata;\n\n if(!value){\n postdata = { selectedFilters: THOM_searchFilters, itemsXPage: _.options.itemsPerPage, orderByPosition: _.options.orderByPosition }\n postdata = JSON.stringify(postdata);\n \n $.ajax({\n type: 'POST',\n url: _.options.urlContent,\n contentType: 'application/json; charset=utf-8',\n data: postdata,\n dataType: 'html',\n success: function (data) { \n _.options.resultsCallback(data)\n }\n })\n\n } else {\n postdata = { filter: value };\n $.ajax({\n url: _.options.urlContent,\n data: postdata,\n dataType: 'html',\n success: function (data) {\n _.options.resultsCallback(data)\n }\n })\n } \n }\n\n /* Send JSON Object */\n Thomsearch.prototype.getFiltered = function () {\n var _ = this;\n\n $.ajax({\n type: 'POST',\n url: _.options.url,\n contentType: 'application/json; charset=utf-8',\n data: JSON.stringify(THOM_searchFilters),\n dataType: 'json',\n success: function (data) {\n _.refreshFilters(data);\n }\n })\n }\n\n /* Refresh Filters class */\n Thomsearch.prototype.refreshFilters = function (obj) {\n var _ = this;\n // _.pageNumber = 0;\n\n $(_.options.filterClass).removeClass('is-refreshing');\n\n for (var i = 0; i < obj.Filters.length; i++) {\n var id = obj.Filters[i].Id;\n var name = obj.Filters[i].Name;\n var filters = obj.Filters[i].Filters;\n\n for (var j = 0; j < filters.length; j++) { \n \n \n var filter_Id = filters[j].Id;\n var filter_Name = filters[j].Name;\n var filter_isSelected = filters[j].Selected;\n var filter_isActive = filters[j].Active;\n\n\n if (filter_isSelected) {\n $(_.options.filterClass).each(function(){\n if($(this).data('val') === filter_Id) {\n $(this).addClass('is-selected');\n }\n });\n } else {\n $(_.options.filterClass).each(function(){\n if($(this).data('val') === filter_Id) {\n $(this).removeClass('is-selected');\n }\n });\n }\n\n if (filter_isActive) {\n $(_.options.filterClass).each(function(){\n if($(this).data('val') === filter_Id) {\n $(this).removeClass('is-inactive');\n }\n });\n } else {\n $(_.options.filterClass).each(function(){\n if($(this).data('val') === filter_Id) {\n $(this).addClass('is-inactive');\n }\n });\n }\n }\n }\n\n _.getFilteredContents();\n }\n\n /* Get Object - filter and change value */\n Thomsearch.prototype.getObjects = function (obj, key, val, keyToModify, newVal) {\n var _ = this\n\n var newValue = newVal\n var objects = []\n for (var i in obj) {\n if (!obj.hasOwnProperty(i)) continue\n if (typeof obj[i] === 'object') {\n objects = objects.concat(_.getObjects(obj[i], key, val, keyToModify, newValue))\n } else if (i == key && obj[key] == val) {\n obj[keyToModify] = newValue\n }\n }\n\n return obj\n }\n\n // ---------------------------\n // Thommenu - fn\n // ---------------------------\n $.fn.thomsearch = function () {\n var _ = this,\n opt = arguments[0],\n args = Array.prototype.slice.call(arguments, 1),\n l = _.length,\n i,\n ret\n for (i = 0; i < l; i++) {\n if (typeof opt === 'object' || typeof opt === 'undefined') { _[i].thomsearch = new Thomsearch(_[i], opt) } else { ret = _[i].thomsearch[opt].apply(_[i].thomsearch, args) }\n if (typeof ret !== 'undefined') return ret\n }\n return _\n }\n}))\n","/*! Thom Form - v1 - 2017-12-01\n * Copyright (c) 2017 THOM */\n\n// jQuery.validator.unobtrusive.adapters.add('shouldbetrue', new Array(), function (\n// options\n// ) {\n// options.rules['shouldbetrue'] = true\n// if (options.message) options.messages['shouldbetrue'] = options.message\n// })\n\n// jQuery.validator.addMethod('shouldbetrue', function (value, element) {\n// return jQuery(element).is(':checked')\n// })\n// Add client validator functionality for Checkboxes\nrequire('jquery-form');\nrequire('jquery-validation');\nrequire('jquery-validation-unobtrusive');\n// require('./thom_formSteps')\n\n\njQuery.validator.addMethod(\n 'shouldbetruemethod',\n function (value, element) {\n return $(element).is(':checked')\n },\n ''\n);\n\njQuery.validator.methods[\"date\"] = function (value, element) { return true; } \n\njQuery.validator.unobtrusive.adapters.addBool(\n 'shouldbetrue',\n 'shouldbetruemethod',\n 'date'\n);\n\n\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module unless amdModuleId is set\n define(['jquery'], function (a0) {\n return factory(a0)\n })\n } else if (typeof module === 'object' && module.exports) {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory(require('jquery'))\n } else {\n factory(root['jQuery'])\n }\n})(this, function ($) {\n // THOM MAP\n (function () {\n 'use strict'\n\n /* set default variables */\n var defaults = {\n errorMsg: null,\n errorCallback: function () {},\n myCallback: function () {},\n steps: false,\n stepsCallback: function () {}\n }\n\n /* variable */\n var $inputFile = null;\n var $inputFileLabel = '';\n var inputFileLabelVal = '';\n\n /* Plugin fn */\n class Plugin {\n constructor(element, options) {\n // Current select element\n this.el = element;\n // Current jquery element\n this.$el = $(element);\n // select settings\n this.s = $.extend({}, defaults, options);\n\n // select modules\n this.modules = {};\n\n this.init();\n\n return this;\n }\n /* INITIALIZE PLUGIN */\n init() {\n var _ = this;\n // Set Listeners\n _.listeners();\n }\n listeners() {\n var _ = this;\n\n var formClass = _.$el.attr('class'); \n \n if ($('.' + formClass).exists()) {\n jQuery.validator.unobtrusive.parse('.' + formClass);\n }\n\n // Button click\n _.$el.find('.thom-form__submit').unbind('click');\n _.$el.find('.thom-form__submit').click(function (e) {\n e.preventDefault()\n $(this).prop('disabled', true);\n\n // Response Form\n _.response();\n });\n\n // Input + Textarea keyboard button press\n _.$el.find('input').keypress(function (e) {\n // Enter pressed?\n if (e.which == 10 || e.which == 13) {\n _.response();\n }\n });\n\n if (_.$el.find('input[type=file]').exists()) {\n $inputFile = _.$el.find('input[type=file]');\n $inputFileLabel = $inputFile.next('label');\n inputFileLabelVal = $inputFileLabel.html();\n\n $inputFile.on('change', function (e) {\n var fileName = '';\n\n if (this.files && this.files.length > 1) {\n fileName = (\n this.getAttribute('data-multiple-caption') || ''\n ).replace('{count}', this.files.length);\n }\n else if (e.target.value) {\n fileName = e.target.value.split('\\\\').pop();\n }\n\n if (fileName) {\n $inputFileLabel.find('span').html(fileName);\n }\n else {\n $inputFileLabel.html(inputFileLabelVal);\n }\n });\n\n // Firefox bug fix\n $inputFile\n .on('focus', function () {\n $inputFile.addClass('has-focus')\n })\n .on('blur', function () {\n $inputFile.removeClass('has-focus')\n });\n }\n\n // form datepicker\n if (_.$el.find('[data-toggle=\"datepicker\"]').exists()){\n var mydate = _.$el.find('[data-toggle=\"datepicker\"]').val().replace('00:00:00', '');\n _.$el.find('[data-toggle=\"datepicker\"]').val(mydate)\n _.$el.find('[data-toggle=\"datepicker\"]').datepicker({\n language: $('html').attr('lang'),\n format: 'dd/mm/yyyy'\n });\n }\n\n if(_.s.steps){\n if(_.$el.find(\".thom-form__error li\").length > 0){\n // console.log('2')\n _.$el.find(\".thom-form__error\").fadeIn(300);\n }\n\n $('.formSteps-nav-item.is-complete').unbind('click');\n $('.formSteps-nav-item.is-complete').click(function(e){\n e.preventDefault();\n\n $('.formSteps-nav-item').removeClass('is-selected');\n $(this).addClass('is-selected');\n\n _.loader('show');\n $.ajax({\n url: $(this).data('url'),\n })\n .done(function( data ) {\n _.replaceForm(data);\n });\n \n return false;\n });\n }\n }\n loader(action) {\n var _ = this;\n if (action === 'show') {\n var elem = document.createElement('div');\n elem.setAttribute('id', 'spinnerform');\n elem.innerHTML =\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
';\n\n _.$el.append(elem);\n $('#spinnerform').fadeIn();\n }\n\n if (action === 'hide') {\n $('#spinnerform').fadeOut(300, function(){\n $(this).remove();\n });\n }\n }\n /* RESIZE */\n resize() {\n var _ = this;\n }\n /* Submit the form */\n response() {\n var _ = this; \n\n if (_.$el.valid()) {\n _.loader('show');\n var formdata = '';\n var dataType = 'json';\n // captcha\n if (_.$el.find('.mtcaptcha-verifiedtoken').length !== 0) {\n var currId = _.$el.find('.mtcaptcha').attr('id');\n var token = mtcaptcha.getVerifiedToken(currId);\n formdata = { token: token };\n }\n\n if(_.s.steps){\n dataType = null;\n }\n\n // SUBMIT\n _.$el.ajaxSubmit({\n data: formdata,\n dataType: dataType,\n // mimeType: \"multipart/form-data\",\n beforeSubmit: function (formData, jqForm, options) {\n },\n success: function (responseText, statusText, xhr, $form) {\n // console.log('SUCCESS')\n // console.log(responseText)\n\n _.loader('hide');\n var myStatus = responseText.Status;\n var myMessage = responseText.Message;\n var myTitle = responseText.Title;\n var myUrl = responseText.Url;\n\n // console.log(\"myStatus =\" + myStatus)\n // console.log(\"myMessage =\" + myMessage)\n // console.log(\"myTitle =\" + myTitle)\n // console.log(\"myUrl =\" + myUrl)\n\n if(_.s.steps){\n var nextStep = true;\n\n if($(responseText).hasClass('formSteps-end')){\n nextStep = false;\n $('.formSteps-nav').hide();\n\n if ( $.isFunction(window.ThomFormSuccessCallback) ) {\n ThomFormSuccessCallback();\n }\n }\n\n _.replaceForm(responseText, nextStep);\n\n } else {\n\n if (myStatus == true) {\n\n if ( $.isFunction(window.ThomFormSuccessCallback) ) {\n ThomFormSuccessCallback();\n }\n\n // console.log(myUrl)\n if (myUrl) {\n // console.log(\"1\")\n window.location.href = myUrl\n } else {\n // console.log(\"2\")\n _.s.myCallback(myTitle, myMessage);\n }\n\n // Reset form fields\n _.clearForm()\n } else {\n if (_.s.errorMsg != null) { \n _.s.errorCallback(myTitle, myMessage)\n }\n }\n\n // Reset form reCaptcha\n if (_.$el.find('.thom-form__recaptcha').length != 0) {\n grecaptcha.reset(\n _.$el.find('.thom-form__recaptcha').attr('data-widget-id')\n )\n }\n\n if (_.$el.find('.mtcaptcha-verifiedtoken').length != 0) {\n var currId = _.$el.find('.mtcaptcha').attr('id')\n mtcaptcha.resetUI(currId)\n }\n }\n\n _.$el.find('.thom-form__submit').prop('disabled', false);\n },\n error: function(res) {\n // console.log('ERROR');\n }\n })\n }\n else {\n // console.log('VALIDATION ERROR')\n if (_.s.errorMsg != null) {\n _.s.errorCallback()\n _.$el.find('.thom-form__submit').prop('disabled', false);\n }\n }\n }\n /* Reset the form */\n clearForm() {\n var _ = this\n\n _.$el.resetForm()\n\n if (_.s.errorMsg != null) {\n _.s.errorMsg.hide(0)\n }\n\n if (_.$el.find('input[type=file]').exists()) {\n $inputFileLabel.html(inputFileLabelVal)\n }\n }\n // Replace form\n replaceForm(res, goNextStep) {\n var _ = this;\n // console.log(\"replaceForm\")\n\n var currAction = _.$el.attr('action');\n var resAction = $(res).attr('action');\n\n $('.thom-form-response').addClass('is-hidden');\n $('.thom-form-response').html(res);\n\n $('.thom-form-response').removeClass('is-hidden');\n _.loader('hide');\n\n if(goNextStep){\n _.$el.find('.thom-form__submit').prop('disabled', false);\n var currStep = $('.formSteps-nav .formSteps-nav-item.is-selected');\n var nextStep = currStep.next();\n\n if(resAction !== currAction){\n currStep\n .removeClass('is-selected')\n .addClass('is-complete');\n \n nextStep\n .attr('data-url', currAction)\n .addClass('is-selected');\n }\n }\n\n _.s.stepsCallback();\n\n \n }\n }\n\n // ---------------------------\n // thomForm - fn\n // ---------------------------\n $.fn.thomForm = function (options) {\n return this.each(function () {\n if (!$.data(this, 'thomForm')) {\n $.data(this, 'thomForm', new Plugin(this, options))\n } else {\n try {\n $(this)\n .data('thomForm')\n .init()\n } catch (err) {\n console.error('thomForm has not initiated properly')\n }\n }\n })\n }\n\n $.fn.thomForm.modules = {}\n })()\n})\n","/*! Thom Map - v1 - 2017-12-01\n * Copyright (c) 2017 THOM */\n\n(function (factory) {\n 'use strict';\n if (typeof define === 'function' && define.amd) {\n define(['jquery'], factory)\n } else if (typeof exports !== 'undefined') {\n module.exports = factory(require('jquery'))\n } else {\n factory(jQuery)\n }\n})(function ($) {\n 'use strict';\n\n // THOM Menu\n var ThomMap = window.ThomMap || {};\n\n ThomMap = (function () {\n function ThomMap (element, settings) {\n var _this = this\n\n /* set default variables */\n _this.defaults = {\n autocomplete: 0,\n backgroundColor: '#fff',\n content: '',\n fitbounds: false,\n geolocation_btn: false,\n getClusterIcons: null,\n getMarkerIcon: null,\n getDistance: null,\n isDett: false,\n maxZoom: 18,\n params: null,\n otherdatas: null,\n searchBtn: null,\n searchCallback: null,\n styled: null,\n url: '',\n zoom: 1,\n zoomControl: true,\n zoomControlPosition: google.maps.ControlPosition.RIGHT_BOTTOM,\n zoomToMarker: false\n }\n\n $.extend(_this, _this.initials);\n\n _this.$el = $(element);\n\n _this.s = $.extend({}, _this.defaults, settings);\n\n // A simple way to check for HTML strings\n // Strict HTML recognition (must start with <)\n // Extracted from jQuery v1.11 source\n _this.htmlExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*)$/;\n\n _this.init();\n }\n\n return ThomMap;\n })()\n\n var _bounds = '';\n var elems = '';\n var infowindow;\n var infowindowW;\n var infowindowH;\n var map = null;\n var mapContainer = $('.map-list-content');\n var marker = '';\n var markers = [];\n var markerCluster = null;\n var overlay = '';\n var positions = null;\n var resizing = false;\n\n /* INITIALIZE PLUGIN */\n ThomMap.prototype.init = function () {\n var _this = this;\n\n // Set Listeners\n _this.listeners();\n\n // Create MAP\n _this.create();\n };\n\n ThomMap.prototype.listeners = function () {\n var _this = this;\n\n // Window RESIZE\n $(window).on('resize', function () {\n if (!resizing) {\n resizing = true;\n _this.resize();\n setTimeout(function () {\n resizing = false;\n }, 100);\n }\n })\n\n // Map RESIZE\n google.maps.event.addDomListener(window, 'resize', function () {\n var center = map.getCenter();\n google.maps.event.trigger(map, 'resize');\n map.setCenter(center);\n if (_this.s.fitbounds) {\n map.fitBounds(_bounds);\n }\n })\n\n // Autocomplete places\n if (_this.s.autocomplete) {\n var input = document.getElementById('Address');\n var searchBox = new google.maps.places.SearchBox(input);\n searchBox.addListener('places_changed', function () {\n var places = searchBox.getPlaces();\n\n if (places != 0 || places != undefined || places != null) {\n _this.s.params.latitude = places[0].geometry.location.lat;\n _this.s.params.longitude = places[0].geometry.location.lng;\n }\n\n // Ricerco Punti sulla Mappa\n /* if(_this.s.searchBtn === null){\n _this.searchPoints();\n } */\n })\n }\n\n // Geolocation Btn\n if (_this.s.geolocation_btn) {\n _this.s.geolocation_btn.click(function (e) {\n e.preventDefault();\n _this.geolocate();\n })\n }\n\n // Geolocation\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(function (position) {\n _this.s.params.lat = position.coords.latitude;\n _this.s.params.lng = position.coords.longitude;\n })\n }\n\n /* if(_this.s.searchBtn !== null){\n _this.s.searchBtn.click(function(e){\n e.preventDefault();\n _this.searchPoints();\n });\n } */\n }\n\n ThomMap.prototype.geolocate = function () {\n var _this = this;\n\n navigator.geolocation.getCurrentPosition(function (position) {\n _this.geocodeLatLng(position.coords.latitude, position.coords.longitude);\n _this.searchPoints();\n })\n };\n\n ThomMap.prototype.geocodeLatLng = function (lat, lng) {\n var _this = this;\n var geocoder = new google.maps.Geocoder();\n\n var latlng = { \n lat: parseFloat(lat),\n lng: parseFloat(lng)\n }\n geocoder.geocode({ location: latlng }, function (results, status) {\n if (status === 'OK') {\n if (results[0]) {\n $('#Address').val(results[0].formatted_address);\n } else {\n window.alert('No results found');\n }\n } else {\n window.alert('Geocoder failed due to: ' + status);\n }\n })\n };\n\n ThomMap.prototype.spinner = function (action) {\n var _this = this;\n if (action === 'show') {\n // _this.s.content.find('.map-spinner').fadeIn();\n $('#spinner').addClass('show');\n }\n\n if (action === 'hide') {\n // _this.s.content.find('.map-spinner').fadeOut();\n $('#spinner').removeClass('show');\n }\n }\n\n /* RESIZE */\n ThomMap.prototype.resize = function () {\n var _this = this;\n };\n\n /* Create The Map */\n ThomMap.prototype.create = function () {\n var _this = this;\n // create map\n map = new google.maps.Map(document.getElementById('map'), {\n center: new google.maps.LatLng(\n _this.s.params.latitude,\n _this.s.params.longitude\n ),\n zoom: _this.s.zoom,\n maxZoom: _this.s.maxZoom,\n backgroundColor: _this.s.backgroundColor,\n zoomControl: _this.s.zoomControl,\n zoomControlOptions: {\n position: _this.s.zoomControlPosition\n },\n panControl: true,\n streetViewControl: false,\n mapTypeControl: false,\n scrollwheel: false,\n fullscreenControl: false\n })\n\n if (_this.s.styled != null) {\n // add style to map\n map.mapTypes.set('styled_map', _this.s.styled);\n map.setMapTypeId('styled_map');\n }\n\n // Ricerco Punti sulla Mappa\n /* if(_this.s.searchBtn === null){\n _this.searchPoints();\n } */\n };\n\n /* Cerco i punti sulla mappa */\n ThomMap.prototype.searchPoints = function (value) {\n var _this = this;\n\n _this.spinner('show');\n\n // Elimino eventuali marker dalla mappa\n _this.markersClear();\n\n if (markerCluster != null) {\n markerCluster.clearMarkers();\n }\n\n if (!_this.s.isDett) {\n if($('.map-search-radius').length){\n _this.s.params.radius = $('.map-search-radius').val();\n }\n\n var data =\n typeof _this.s.params !== 'undefined' && _this.s.params != null\n ? jQuery.param(_this.s.params)\n : {}\n\n if(value !== 'undefined' && value !== undefined){\n data = jQuery.param(value);\n }\n \n jQuery\n .ajax({\n type: 'GET',\n crossDomain: true,\n url: _this.s.url,\n data: data\n })\n .done(function (response) {\n // console.log( response );\n $('.map-list-wrap').html(response);\n if(_this.s.searchCallback !== null){\n _this.s.searchCallback();\n }\n })\n .fail(function () {\n // console.log( \"error\" );\n })\n .always(function () {\n _this.spinner('hide');\n _this.mapPositions();\n })\n } else {\n _this.spinner('hide');\n _this.mapPositions();\n }\n }\n\n /* Get Points positions */\n ThomMap.prototype.mapPositions = function () {\n var _this = this\n\n positions = []\n\n if (!_this.s.isDett) {\n elems = $('.map-item');\n var count = elems.length;\n\n if (count != 0) {\n $('.map-msg').fadeOut(300, function () {\n $(this).hide(0)\n });\n mapContainer.fadeIn(300);\n $('.thom-map').fadeIn(300);\n\n elems.each(function (i) {\n var thiselem = $(this)\n var distance = 0\n var position = {}\n position.lat = parseFloat($(this).attr('lat'))\n position.lng = parseFloat($(this).attr('lng'))\n position.cat = $(this).attr('cat')\n\n if (_this.s.getDistance != null) {\n navigator.geolocation.getCurrentPosition(\n function (currentposition) {\n var latLngA = new google.maps.LatLng(\n currentposition.coords.latitude,\n currentposition.coords.longitude\n )\n var latLngB = new google.maps.LatLng(\n position.lat,\n position.lng\n )\n distance = google.maps.geometry.spherical.computeDistanceBetween(\n latLngA,\n latLngB\n )\n thiselem\n .find('.map-item-infowindow .distance')\n .text((distance / 1000).toFixed(1) + ' km')\n _this.createPosition(thiselem, position, count)\n },\n function () {\n alert('geolocation not supported!!')\n }\n )\n } else {\n _this.createPosition(thiselem, position, count)\n }\n })\n } else {\n mapContainer.fadeOut(300, function () {\n $(this).hide(0)\n })\n $('.thom-map').fadeOut(300, function () {\n $(this).hide(0)\n })\n\n $('.map-msg').fadeIn(300)\n }\n } else {\n var position = {}\n position.lat = _this.s.params.latitude\n position.lng = _this.s.params.longitude\n\n if (_this.s.getMarkerIcon != null) {\n position.ico = _this.s.getMarkerIcon(this).icon\n position.ico_h = _this.s.getMarkerIcon(this).height\n } else {\n position.ico = '';\n }\n\n positions.push(position)\n\n _this.markersCreate()\n }\n }\n\n ThomMap.prototype.createPosition = function (elem, position, count) {\n var _this = this\n\n if (elem.find('.map-item-infowindow').length) {\n position.text = elem.find('.map-item-infowindow').html()\n }\n\n if (_this.s.getMarkerIcon != null) {\n position.ico = _this.s.getMarkerIcon(elem).icon\n position.ico_h = _this.s.getMarkerIcon(elem).height\n } else {\n position.ico = '';\n }\n\n positions.push(position)\n\n if (positions.length == count) {\n // got to create MAP\n _this.markersCreate()\n }\n }\n\n // Marker clear\n ThomMap.prototype.markersClear = function () {\n markers.forEach(function (marker) {\n marker.setMap(null)\n })\n $('.iw-wrapper').remove()\n markers = []\n\n _bounds = new google.maps.LatLngBounds()\n };\n\n /* Marker create */\n ThomMap.prototype.markersCreate = function () {\n var _this = this\n\n jQuery.each(\n positions,\n $.proxy(function (index, item) {\n marker = new google.maps.Marker({\n position: { lat: item.lat, lng: item.lng },\n title: '',\n icon: item.ico,\n icon_h: item.ico_h,\n txt: item.text,\n map: map,\n // animation: google.maps.Animation.DROP,\n url:\n 'https://www.google.com/maps/dir/?api=1&destination=' +\n item.lat +\n ',' +\n item.lng +\n '',\n category: item.cat\n })\n\n markers.push(marker)\n\n _bounds.extend(marker.position)\n }, this)\n )\n\n // Cluster\n if (_this.s.getClusterIcons != null) {\n // Add a marker clusterer to manage the markers.\n markerCluster = new MarkerClusterer(map, markers, {\n styles: _this.s.getClusterIcons()\n })\n }\n\n // OVERLAY\n overlay = new google.maps.OverlayView()\n overlay.draw = function () {}\n overlay.setMap(map)\n\n // FIT MAP TO ITS MARKERS\n if (_this.s.fitbounds) {\n map.fitBounds(_bounds)\n }\n\n // LISTENERS\n if (!_this.s.isDett) {\n _this.markerListeners()\n _this.itemOpenOverlay()\n }\n }\n\n /* Marker Listeners */\n ThomMap.prototype.markerListeners = function () {\n var _this = this\n\n // Click\n $.each(\n markers,\n $.proxy(function (index, item) {\n item.addListener('click', function (e) {\n if (item.txt !== undefined) {\n _this.markerOverlay(item)\n }\n })\n }, this)\n )\n };\n\n /* Item click Overlay correspondent marker */\n ThomMap.prototype.itemOpenOverlay = function () {\n var _this = this\n\n $('.map-item').click(function () {\n var id = $(this).index()\n google.maps.event.trigger(markers[id], 'click')\n })\n };\n\n /* Marker Overlay Infowindow */\n ThomMap.prototype.markerOverlay = function (item) {\n var _this = this\n\n if ($('.iw-wrapper').length > 0) {\n $('.iw-wrapper').removeClass('in')\n $('.iw-wrapper').remove()\n }\n\n _this.s.content\n .find('.thom-map')\n .append(\n '
' +\n '
' +\n '
' +\n item.txt +\n '
' +\n '
'\n )\n\n infowindow = $('.iw-wrapper')\n\n infowindow.find('.iw-close').click(function () {\n infowindow.removeClass('in')\n infowindow.remove()\n elems.removeClass('active')\n if (_this.s.fitbounds) {\n map.fitBounds(_bounds)\n }\n })\n\n if (_this.s.zoomToMarker) {\n _this.fitToMarker(item)\n } else {\n infowindow.addClass('in')\n }\n }\n\n // Pan & Zoom map to show all markers\n ThomMap.prototype.fitToMarker = function (item) {\n var _this = this\n\n var markerBounds = new google.maps.LatLngBounds()\n\n // Create bounds from marker\n var markerlatlng = item.getPosition()\n markerBounds.extend(markerlatlng)\n\n // Don't zoom in too far on only one marker\n if (markerBounds.getNorthEast().equals(markerBounds.getSouthWest())) {\n var extendPoint1 = new google.maps.LatLng(\n markerBounds.getNorthEast().lat() + 0.01,\n markerBounds.getNorthEast().lng() + 0.01\n )\n var extendPoint2 = new google.maps.LatLng(\n markerBounds.getNorthEast().lat() - 0.01,\n markerBounds.getNorthEast().lng() - 0.01\n )\n markerBounds.extend(extendPoint1)\n markerBounds.extend(extendPoint2)\n }\n\n map.fitBounds(markerBounds)\n\n google.maps.event.addListener(map, 'idle', function () {\n infowindow.addClass('in')\n _this.markerOverlay_reposition(item)\n })\n };\n\n // Reset infowindow on map pan o zoom\n ThomMap.prototype.markerOverlay_reposition = function (item) {\n if ($('.iw-wrapper').lenght != 0 && $('.iw-wrapper').hasClass('in')) {\n var point = overlay\n .getProjection()\n .fromLatLngToContainerPixel(item.getPosition())\n infowindowW = infowindow.innerWidth()\n infowindowH = infowindow.innerHeight()\n infowindow.css({\n left: point.x - infowindowW / 2 + 'px',\n top: point.y - infowindowH - item.icon_h - 10 + 'px'\n })\n }\n }\n\n // Filter Marker by category\n ThomMap.prototype.filterMarkers = function (category) {\n for (var i = 0; i < markers.length; i++) {\n marker = markers[i]\n // If is same category or category not picked\n if (\n (typeof marker.category === 'object' &&\n marker.category.indexOf(category) >= 0) ||\n category.length == 0\n ) {\n marker.setVisible(true)\n }\n // Categories don't match\n else {\n marker.setVisible(false)\n }\n }\n }\n\n ThomMap.prototype.selectAllChecked = function () {\n var _this = this\n var checkedCaregory = []\n var allCheckedElem = document.getElementsByName('filter_checkbox')\n for (var i = 0; i < allCheckedElem.length; i++) {\n if (allCheckedElem[i].checked == true) {\n checkedCaregory.push(allCheckedElem[i].value) // creating array of checked items\n }\n }\n\n // console.log(checkedCaregory)\n _this.filterChecker(checkedCaregory) // passing to function for updating markers\n };\n\n ThomMap.prototype.filterChecker = function (categories) {\n var _this = this\n\n for (var i = 0; i < markers.length; i++) {\n // console.log(i)\n\n var mymarker = markers[i]\n\n // console.log(mymarker.category)\n if (jQuery.inArray(mymarker.category, categories) !== -1) {\n mymarker.setVisible(true)\n } else {\n mymarker.setVisible(false)\n }\n }\n\n for (var n = 0; n < $('.map-item').length; n++) {\n // console.log(i)\n\n var listmarker = $('.map-item')[n]\n\n // console.log(mymarker.category)\n if (jQuery.inArray($(listmarker).attr('cat'), categories) !== -1) {\n $(listmarker).show()\n } else {\n $(listmarker).hide()\n }\n }\n }\n\n // $.fn.thomMap.modules = {}\n $.fn.thomMap = function () {\n var _this = this;\n var opt = arguments[0];\n var args = Array.prototype.slice.call(arguments, 1);\n var l = _this.length;\n var i;\n var ret;\n\n for (i = 0; i < l; i++) {\n if (typeof opt === 'object' || typeof opt === 'undefined') {\n _this[i].thomMap = new ThomMap(_this[i], opt)\n } else {\n ret = _this[i].thomMap[opt].apply(_this[i].thomMap, args)\n }\n if (typeof ret !== 'undefined') return ret\n }\n return _this\n };\n})\n","/*\n * Project:\n * Description:\n * Author:\n * License:\n */\n\n// the semi-colon before function invocation is a safety net against concatenated\n// scripts and/or other plugins which may not be closed properly.\n;(function ( $, window, document, undefined ) {\n\n // undefined is used here as the undefined global variable in ECMAScript 3 is\n // mutable (ie. it can be changed by someone else). undefined isn't really being\n // passed in so we can ensure the value of it is truly undefined. In ES5, undefined\n // can no longer be modified.\n\n // window is passed through as local variable rather than global\n // as this (slightly) quickens the resolution process and can be more efficiently\n // minified (especially when both are regularly referenced in your plugin).\n\n var pluginName = \"thommaping\",\n // the name of using in .data()\n dataPlugin = \"plugin_\" + pluginName,\n // default options\n defaults = {\n color: \"black\"\n };\n\n var privateMethod = function () {\n console.log(\"private method\");\n };\n\n // The actual plugin constructor\n var Plugin = function ( element ) {\n /*\n * Plugin instantiation\n */\n this.options = $.extend( {}, defaults );\n };\n\n Plugin.prototype = {\n\n init: function ( options ) {\n\n // extend options ( http://api.jquery.com/jQuery.extend/ )\n $.extend( this.options, options );\n\n /*\n * Place initialization logic here\n */\n this.element.css( 'color', 'red' );\n },\n\n destroy: function () {\n // unset Plugin data instance\n this.element.data( dataPlugin, null );\n },\n\n // public get method\n href: function (value) {\n console.log('href = ' + value)\n return this.element.attr( 'href' );\n },\n\n // public chaining method\n changeBG: function ( color = null ) {\n color = color || this.options['color'];\n return this.element.each(function () {\n // .css() doesn't need .each(), here just for example\n $(this).css( 'background', color );\n });\n }\n }\n\n /*\n * Plugin wrapper, preventing against multiple instantiations and\n * allowing any public function to be called via the jQuery plugin,\n * e.g. $(element).pluginName('functionName', arg1, arg2, ...)\n */\n $.fn[ pluginName ] = function ( arg ) {\n\n var args, instance;\n\n // only allow the plugin to be instantiated once\n if (!( this.data( dataPlugin ) instanceof Plugin )) {\n\n // if no instance, create one\n this.data( dataPlugin, new Plugin( this ) );\n }\n\n instance = this.data( dataPlugin );\n\n instance.element = this;\n\n // Is the first parameter an object (arg), or was omitted,\n // call Plugin.init( arg )\n if (typeof arg === 'undefined' || typeof arg === 'object') {\n\n if ( typeof instance['init'] === 'function' ) {\n instance.init( arg );\n }\n\n // checks that the requested public method exists\n } else if ( typeof arg === 'string' && typeof instance[arg] === 'function' ) {\n\n // copy arguments & remove function name\n args = Array.prototype.slice.call( arguments, 1 );\n\n // call the method\n return instance[arg].apply( instance, args );\n\n } else {\n\n $.error('Method ' + arg + ' does not exist on jQuery.' + pluginName);\n\n }\n };\n\n}(jQuery, window, document));","/**\n * Thom Observe Animation\n */\n\n import {gsap} from \"gsap\";\n import { ScrollTrigger } from \"gsap/ScrollTrigger\";\n\n gsap.registerPlugin(ScrollTrigger);\n\nimport LazyLoad from \"vanilla-lazyload\";\n\nvar toaLazyLoad;\nvar jQBridget = require(\"jquery-bridget\");\nvar Packery = require(\"packery\");\n$.bridget(\"packery\", Packery, $);\n\n export function toa () {\n\n $(window).on(\"resizeend\", 250, function () {\n toaResize()\n });\n\n toaResize();\n \n}\n\nexport function toaInit(item){\n \n toaLazyLoad = null;\n let observerElements = null;\n observerElements = gsap.utils.toArray('.js-toa');\n\n gsap.defaults({ease: \"power2\"});\n\n if(item) {\n observerElements = gsap.utils.toArray(item);\n }\n observerElements.forEach(section => {\n ScrollTrigger.create({\n trigger: section,\n start: \"-50% bottom\",\n once: true,\n onEnter: () => {\n if($(section).find('.js-toa-lazy').length > 0){\n var images = gsap.utils.toArray($(section).find('.js-toa-lazy'));\n images.forEach((image, index, array) => {\n if(!$(image).hasClass('loaded')){\n let newSRC = image.dataset.src;\n let newImage = document.createElement(\"img\");\n newImage.src = newSRC;\n newImage.onload = () => {\n newImage.onload = null; // avoid recursion\n newImage.src = image.dataset.src; // swap the src\n image.src = newSRC;\n // place the low-res version on TOP and then fade it out.\n gsap.set(newImage, {\n position: \"absolute\", \n top: image.offsetTop, \n left: image.offsetLeft, \n width: image.offsetWidth, \n height: image.offsetHeight\n });\n image.parentNode.appendChild(newImage);\n gsap.to(newImage, {\n opacity: 0, \n onComplete: () => {\n newImage.parentNode.removeChild(newImage);\n image.classList.add('loaded');\n toaUpdate();\n if (index === array.length - 1) {\n toaCallback(section);\n }\n }\n });\n }\n } else {\n toaCallback(section);\n }\n })\n } else {\n toaCallback(section);\n }\n }\n })\n })\n\n}\n\nexport function toaCallback(section) {\n if($(section).hasClass(\"js-toa-grid\")){\n var pckry = $(\".js-toa-grid\").packery({\n // options\n itemSelector: \".grid-item\",\n percentPosition: true,\n });\n }\n\n if(section.hasAttribute(\"data-toa-anim\")){\n var attr = section.getAttribute(\"data-toa-anim\");\n toaAnimationReveal(attr, section);\n } else if(section.hasAttribute(\"data-toa-class\")){\n gsap.to(section, {\n className: section.classList + ' ' + section.attributes[\"data-toa-class\"].value,\n stagger: 0.35,\n scrollTrigger: {\n // trigger: el,\n start: \"top 100%\"\n },\n onComplete: function(){\n if(section.hasAttribute(\"data-toa-parallax\")){\n toaParallaxMove(section);\n }\n }\n });\n } else if(section.hasAttribute(\"data-toa-parallax\")){\n toaParallaxMove(section);\n }\n\n if($(section).find('.js-toa-el').length > 0){\n\n if(!section.hasAttribute(\"data-toa-anim\")){\n gsap.to(section, {\n opacity: 1\n });\n }\n var elements = gsap.utils.toArray($(section).find('.js-toa-el'));\n ScrollTrigger.batch(elements, {\n start: \"top 100%\",\n once: true,\n toggleActions: 'play none play none',\n onEnter: batch => {\n batch.forEach(element => {\n if(element.hasAttribute(\"data-toa-anim\")){\n var attr = element.getAttribute(\"data-toa-anim\");\n toaAnimationReveal(attr, element);\n } else if(element.hasAttribute(\"data-toa-class\")){\n gsap.to(element, {\n className: element.classList + ' ' + element.attributes[\"data-toa-class\"].value,\n stagger: 0.35,\n onComplete: function(){\n if(element.hasAttribute(\"data-toa-parallax\")){\n toaParallaxMove(element);\n } \n\n if($(element).hasClass('grid-item-el')){\n if(pckry !== undefined) {\n pckry.packery('layout');\n }\n }\n }\n }); \n } else if(element.hasAttribute(\"data-toa-parallax\")){\n toaParallaxMove(element);\n } \n });\n }\n });\n }\n}\n\nexport function toaAnimationReveal(anim, el) {\n if(anim === \"slideUp\") {\n gsap.set(el, {y: 100});\n gsap.to(el, {\n scrollTrigger: {\n // trigger: el,\n // markers: true,\n start: \"top 100%\"\n },\n delay: 0.35,\n duration: 1,\n opacity: 1,\n y: 0,\n stagger: 0.35,\n overwrite: true,\n });\n } else if(anim === \"fade\") {\n gsap.to(el, {\n scrollTrigger: {\n // trigger: el,\n start: \"top 100%\"\n },\n delay: 0.35,\n duration: 1,\n opacity: 1,\n stagger: 0.35,\n overwrite: true\n });\n }\n}\n\nexport function toaUpdate() {\n ScrollTrigger.refresh()\n}\nexport function toaDisable(callback) {\n var st = ScrollTrigger.getAll();\n\n if(st.length > 0){\n st.forEach((stE, index, array) => {\n stE.kill();\n if (index === array.length - 1) {\n if(callback){\n callback();\n ScrollTrigger.refresh();\n }\n }\n });\n $('js-toa, .js-toa-el').removeAttr('style');\n }\n}\n\nexport function toaResize(){\n var st = ScrollTrigger.getAll();\n \n if (matchMedia(\"screen and (min-width: 920px)\").matches) {\n if(st.length === 0){\n toaInit();\n } \n // else {\n // toaDisable(toaInit);\n // }\n } else {\n if(st.length > 0){\n toaDisable();\n }\n\n if ($(\".grid\").length > 0 && $('.grid').hasClass('js-toa-grid')){\n var pckry = $(\".js-toa-grid\").packery({\n // options\n itemSelector: \".grid-item\",\n percentPosition: true,\n });\n }\n \n toaLazyLoad = new LazyLoad({\n unobserve_entered: true,\n elements_selector: \".js-toa-lazy\",\n callback_loaded: function(el){\n if($(el).parent().hasClass('grid-item-el')){ \n if(pckry !== undefined) {\n pckry.packery('layout');\n }\n }\n }\n });\n }\n}\n\nexport function toaParallaxMove(div){\n gsap.to(div, {\n y: (i, target) => -div.offsetHeight * div.attributes[\"data-toa-parallax\"].value,\n // yPercent: -100 * div.attributes[\"data-toa-parallax\"].value,\n scrollTrigger: {\n start: \"top 100%\",\n trigger: div,\n scrub: true,\n // markers: true,\n // overwrite: true\n // end: window.innerHeight + section.offsetHeight * 2,\n },\n ease: \"slow\"\n });\n}\n\nexport default toa","/**\n * Spinner\n */\n\nexport function spinner () {\n // Show\n var create = function () {\n var elem = document.createElement('div')\n elem.setAttribute('id', 'spinner')\n elem.innerHTML =\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
';\n\n document.body.appendChild(elem)\n show(elem)\n };\n\n var show = function (elem) {\n // elem.className += 'show'\n var el = document.getElementById('spinner')\n el.classList.add('show')\n };\n\n // Hide\n var hide = function () {\n var el = document.getElementById('spinner')\n // el.parentNode.removeChild(el)\n el.classList.remove('show')\n };\n\n return {\n create: create,\n show: show,\n hide: hide\n }\n}\n\nexport default spinner\n","/**\n * Thom Cookie\n */\n\n // Set\nexport function thomCookieSet (name, value, days) {\n if (days) {\n var date = new Date()\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000)\n var expires = '; expires=' + date.toGMTString();\n } else {\n var expires = '';\n }\n document.cookie = name + '=' + value + expires + '; path=/'\n}\n\n// Get\nexport function thomCookieGet (name) {\n var nameEQ = name + '='\n var ca = document.cookie.split(';')\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i]\n while (c.charAt(0) == ' ') c = c.substring(1, c.length)\n if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length)\n }\n return null\n}\n\n// Delete \nexport function thomCookieDel (name) {\n thomCookieSet(name, '', -1)\n}","/* eslint-disable no-redeclare */\n/* eslint-disable no-undef */\n/* eslint-disable no-inner-declarations */\n/* eslint-disable no-unused-vars */\n/**\n * @title App\n * @description Application entry point\n */\n\n\n// Jquery\nimport $ from \"jquery\";\nwindow.jQuery = $;\nwindow.$ = $;\n// var Modernizr = require(\"browsernizr\");\n\n// Barba - pages transition\nimport barba from \"@barba/core\";\nimport barbaCss from \"@barba/css\";\n\nimport Flickity from \"flickity\";\nimport \"flickity/css/flickity.css\";\nimport utils from \"fizzy-ui-utils/utils\";\nrequire(\"flickity-fade\");\nrequire(\"flickity-bg-lazyload\");\nrequire(\"flickity-as-nav-for\");\n\n// Gallery\nimport lightGallery from \"lightgallery\";\nimport \"lg-video\";\n\n// Modal\nimport modal from \"jquery-modal\";\n\n// Lazyload image\nimport LazyLoad from \"vanilla-lazyload\";\n\n// Infinite scroll\nvar InfiniteScroll = require(\"infinite-scroll\");\n\n// Google maps api\nimport { Loader } from \"@googlemaps/js-api-loader\";\n\n// Components\nimport spinner from \"./components/spinner\";\n// import \"./components/thom_dealers\";\n\n// Cookie\nimport {thomCookieSet, thomCookieGet, thomCookieDel} from \"./components/thom_cookie\";\n\nrequire(\"./components/thom_advanced_search\");\n\nvar jQBridget = require(\"jquery-bridget\");\nvar Packery = require(\"packery\");\n$.bridget(\"packery\", Packery, $);\n\n// var imagesLoaded = require(\"imagesloaded\");\n\nrequire(\"jquery.resizeend\");\n\n// Thom Form\nrequire(\"./components/thom_form\");\n\n// Thom Map\nrequire(\"./components/thom_map\");\n\nrequire(\"./components/thom_mapping\")\n\n// Modules\nimport navbar from \"../modules/navbar/navbar\";\nimport searchOverlay from \"../modules/navbar/search-overlay\";\nrequire(\"../modules/dropdown/dropdown\");\nimport thomDropdown from \"../modules/dropdown/dropdown\";\nimport {toa, toaInit, toaUpdate, toaDisable, toaParallaxMove} from \"../modules/thomObserveAnimation/toa\";\n\n// paginationom \"twbs-pagination\"\n// require(\"twbs-pagination\");\n\nimport \"@chenfengyuan/datepicker/dist/datepicker.min.js\";\nimport \"@chenfengyuan/datepicker/i18n/datepicker.it-IT\";\nimport \"@chenfengyuan/datepicker/i18n/datepicker.de-DE\";\nimport \"@chenfengyuan/datepicker/i18n/datepicker.fr-FR\";\nimport \"@chenfengyuan/datepicker/i18n/datepicker.pl-PL\";\nimport \"@chenfengyuan/datepicker/i18n/datepicker.es-ES\";\nimport \"@chenfengyuan/datepicker/i18n/datepicker.pt-BR\";\nimport \"@chenfengyuan/datepicker/i18n/datepicker.ru-RU\";\nimport \"@chenfengyuan/datepicker/i18n/datepicker.zh-CN\";\nimport \"@chenfengyuan/datepicker/i18n/datepicker.ar-IQ\";\nimport \"@chenfengyuan/datepicker/dist/datepicker.min.css\";\n\nimport {gsap} from \"gsap\";\nimport { ScrollTrigger } from \"gsap/ScrollTrigger\";\n\ngsap.registerPlugin(ScrollTrigger);\n\nimport OpenSeadragon from \"openseadragon\";\n\nvar bodyScrollLock = require('body-scroll-lock');\nvar disableBodyScroll = bodyScrollLock.disableBodyScroll;\nvar enableBodyScroll = bodyScrollLock.enableBodyScroll;\n\n// exist element\n$.fn.exists = function () {\n return this.length !== 0;\n};\n\n// Modal default options\n$.modal.defaults = {\n clickClose: true,\n escapeClose: true,\n fadeDuration: 250,\n fadeDelay: 1.1,\n showClose: false,\n spinnerHtml: '
',\n blockerClass: \"jquery-modal\"\n}\n\n// Form Response Action\nfunction MyThomFormResponseAction(title, text) {\n var mytitle;\n if (title !== undefined && title !== null && title !== \"\") {\n mytitle = \"
\" + title + \"
\";\n } else {\n mytitle = \"\";\n }\n\n var myHtml =\n '
' +\n '' +\n mytitle +\n \"
\" + text + \"
\"; +\n '
';\n\n $(myHtml).appendTo(\"body\").modal();\n}\n\n// Colors modal\nfunction ColorsModal(link) {\n var modaltitle = $(link).find(\".title\").text();\n var modalimage = $(link).data(\"image\");\n\n var myHtml =\n '
' +\n '
' +\n '
' +\n modaltitle +\n '
' +\n '' +\n '
' +\n '
' +\n '\"\"' +\n '
' +\n '
';\n\n $(myHtml).appendTo(\"body\").modal();\n\n $(document).on($.modal.OPEN, function (event, modal) {\n myLazyLoad.update();\n });\n\n $(document).on($.modal.AFTER_CLOSE, function (event, modal) {\n $(\".modal-colors\").remove();\n });\n}\n\n// Carousel instances\nlet flktyHome;\nlet flktyCollectionsPreviewBk;\nlet flktyProjectsPreviewBk;\nlet flktyProjectsSinglepage;\n\n// Carousel Parallax effect\nfunction CarouselParallax(carousel, instance) {\n let cell = $(carousel).find(\".carousel-cell\").length;\n let imgs = $(carousel).find(\".carousel-cell-image\");\n // get transform property\n let docStyle = document.documentElement.style;\n let transformProp =\n typeof docStyle.transform === \"string\" ? \"transform\" : \"WebkitTransform\";\n\n instance.on(\"scroll\", function () {\n instance.slides.forEach(function (slide, j) {\n let img = imgs[j];\n let x = 0;\n if (0 === j && cell > 2) {\n x =\n Math.abs(instance.x) > instance.slidesWidth\n ? instance.slidesWidth +\n instance.x +\n instance.slides[instance.slides.length - 1].outerWidth +\n slide.target\n : slide.target + instance.x;\n } else if (j === instance.slides.length - 1) {\n x =\n Math.abs(instance.x) + instance.slides[j].outerWidth <\n instance.slidesWidth\n ? slide.target -\n instance.slidesWidth +\n instance.x -\n instance.slides[j].outerWidth\n : slide.target + instance.x;\n } else {\n x = slide.target + instance.x;\n }\n img.style[transformProp] = \"translateX(\" + x * (-1 / 3) + \"px)\";\n });\n });\n}\n\n// Carousel Progress bar\nfunction CarouselProgressbar(carousel, instance) {\n let cell = $(carousel).find(\".carousel-cell\").length;\n if (cell > 1) {\n $(carousel).find(\".carousel-progress\").show();\n let caption = $(carousel).find(\".carousel-cell-caption\");\n let duration = 5000;\n let interval = 10;\n let progressBar = $(carousel).find(\".progress\");\n let isPaused = false;\n\n caption.on(\"mouseenter\", function () {\n isPaused = true;\n });\n\n caption.on(\"mouseleave\", function () {\n isPaused = false;\n });\n\n // Main function\n let percentTime;\n let step;\n let tick;\n\n function startProgressbar() {\n resetProgressbar();\n percentTime = 0;\n isPaused = false;\n tick = window.setInterval(increase, interval);\n }\n\n function increase() {\n if (!isPaused) {\n step = duration / interval;\n percentTime += 100 / step;\n progressBar.width(percentTime + \"%\");\n if (percentTime >= 100) {\n if (instance.selectedIndex === instance.slides.length - 1) {\n instance.select(0);\n } else {\n instance.next();\n }\n startProgressbar();\n }\n }\n }\n\n function resetProgressbar() {\n progressBar.width(0 + \"%\");\n clearTimeout(tick);\n }\n\n startProgressbar();\n\n instance.on(\"change\", function (index) {\n startProgressbar();\n });\n } else {\n $(carousel).find(\".carousel-progress\").hide();\n }\n}\n\n// share buttons\nfunction shareButtons() {\n // Section Intro Fade Up\n if ($(\".share\").exists()) {\n \n var g = 0;\n\n function shareButtonsInit(){\n\n if ($(\"html\").hasClass(\"touchevents\")) {\n $(\".share-btn.messenger-desk\").hide();\n $(\".share-btn.messenger-mob\").show(0, function () {\n $(this).css(\"display\", \"block\");\n });\n } else {\n $(\".share-btn.messenger-mob\").hide();\n $(\".share-btn.messenger-desk\").show(0, function () {\n $(this).css(\"display\", \"block\");\n });\n }\n\n \n if (g !== 1) {\n $(\".copy-link\").click(function (e) {\n e.preventDefault();\n var link = $(this).attr(\"href\");\n var $temp = $(\"\");\n $(\"body\").append($temp);\n $temp.val(link).select();\n // $temp.setSelectionRange(0, 99999);\n document.execCommand(\"copy\");\n $temp.remove();\n\n $($(this).data(\"modal\")).modal();\n return false;\n });\n }\n\n if (window.innerWidth <= 990) {\n $(\".btn.share\").click(function () {\n $(this).toggleClass(\"is-active\");\n });\n }\n }\n\n $(window).on(\"resizeend\", 250, function () {\n g = 1;\n shareButtonsInit();\n });\n\n shareButtonsInit();\n } \n}\n\n// TOM map Marker Icon\nfunction myThomMapMarkerIcon(item, isDett) {\n var category = \"default\";\n\n if ($(item).is(\"[cat]\")) {\n category = $(item).attr(\"cat\");\n }\n\n var markerIcon = {\n contact: {\n icon: \"\" + _root + \"ico-marker.svg\",\n height: 23,\n width: 18,\n },\n dealers: {\n icon: \"\" + _root + \"img/marker.png\",\n height: 24,\n width: 18,\n },\n };\n\n return markerIcon.dealers;\n}\n\nfunction jobStepsForm(stepForm){\n let jobForm = '';\n jobForm = $(\".formSteps-content .thom-form\");\n jobForm.thomForm({\n errorMsg: jobForm.find(\".thom-form__error\"),\n errorCallback: function(myTitle, myMessage) {\n if (myTitle) {\n myTitle = \"
\" + myTitle + \"
\";\n }\n if (myMessage) {\n myMessage = \"
\" + myMessage + \"
\";\n }\n\n if (myTitle || myMessage) {\n jobForm.find(\".thom-form__error\").html(myTitle + myMessage);\n \n jobForm.find(\".thom-form__error\").fadeIn(300);\n\n $('html,body').animate({\n scrollTop: jobForm.offset().top - $('.navbar').height()\n }, 600);\n } \n },\n myCallback: function(myTitle, myMessage) {\n MyThomFormResponseAction(myTitle, myMessage);\n },\n responseContent: $(\".thom-form-response\"),\n steps: true,\n stepsCallback: function() {\n jobStepsForm(1);\n }\n });\n\n jobForm.find('.duplicate').each(function(){\n var elemToDuplicate = $(this);\n elemToDuplicate.find('.btn').click(function(){\n var elemLast = elemToDuplicate.find('.duplicate-item:last');\n \n $.ajax({\n url: $(this).data('action'),\n })\n .done(function( data ) {\n $(data).insertAfter(elemLast);\n });\n })\n });\n\n if ($(\".thom-form__recaptcha\").length != 0 && stepForm != 0) {\n recaptchaLoad();\n }\n}\n\nfunction dealersSearch(){\n var MyDealersMap;\n\n const GoogleMapsDealersLoader = new Loader({\n apiKey: _gmapkey,\n version: \"weekly\",\n libraries: [\"places\", \"geometry\"],\n });\n\n var autocomplete = 0;\n var postdata;\n\n GoogleMapsDealersLoader.load()\n .then(() => {\n // Thom Map INIT\n MyDealersMap = $(\"#map\").thomMap({\n autocomplete: autocomplete,\n content: $(\".stores\"),\n fitbounds: true,\n getMarkerIcon: function (item) {\n return myThomMapMarkerIcon(item, true);\n },\n params: params,\n searchFromSelect: true,\n // searchBtn: $(\".stores-search-btn\"),\n searchCallback: function(){\n $('.stores-search-preview').hide();\n $('.stores-results').show();\n },\n url: thomMap_url,\n zoomControl: true,\n zoomControlPosition: google.maps.ControlPosition.RIGHT_TOP,\n zoomToMarker: true,\n });\n })\n .catch((e) => {\n // do something\n });\n \n var selects;\n var selectChange = function() {\n selects = $(\"#dealersSearch .thom-form__select\");\n\n selects.change(function(){\n var selectName = $(this).attr('id');\n getContents(selectName);\n });\n }\n\n selectChange();\n \n var getContents = function(selectId) {\n MyDealersMap = null;\n postdata = {changed: selectId};\n\n // console.log(postdata)\n \n selects.each(function(){\n var selectName = $(this).attr('id');\n var selectVal = $(this).val();\n\n postdata[''+ selectName +''] = selectVal;\n });\n\n // console.log(postdata)\n\n $('#dealersSearch').addClass('loading');\n\n var elem = document.createElement('div');\n elem.setAttribute('id', 'spinnerform');\n elem.innerHTML =\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
';\n\n $('#dealersSearch').append(elem);\n $('#spinnerform').fadeIn();\n\n $.ajax({\n url: thomDealersGetFilters_url,\n data: postdata,\n dataType: 'html'\n })\n .done(function( data ) {\n $('.dealersSearch-content').html(data);\n $('#dealersSearch').find('#spinnerform').fadeOut(300, function(){\n $(this).remove();\n $('#dealersSearch').removeClass('loading');\n });\n\n searchClick(postdata);\n selectChange();\n });\n }\n\n var searchClick = function(postdata) {\n $('.stores-search-btn').click(function(){\n $('#map').thomMap('searchPoints', postdata);\n });\n }\n}\n\nvar myLazyLoad;\nvar ThomAdvancedSearch = null;\n\n// Start APP\nfunction myapp() {\n // reset navigation set\n $(\"body\")\n .removeClass(\"navbar--search-opened\")\n .removeClass(\"navbar--opened\");\n\n $(\".navbar\")\n .removeClass(\"out-stage\")\n\n $(\"html,body\").animate(\n {\n scrollTop: 0,\n },\n 400\n );\n\n $(\".wrapper\").removeAttr(\"style\");\n $(\".main\").removeAttr(\"style\");\n // window.scrollBy(0, 0);\n let packeryInstance = null;\n myLazyLoad = null;\n \n myLazyLoad = new LazyLoad({\n unobserve_entered: true,\n elements_selector: \".lazy\",\n // callback_loaded: function(el){\n // if($(el).parent().hasClass('grid-item')){\n // packeryInstance.packery('layout');\n // }\n // }\n });\n\n // Thom Observer Animation\n if ($(\".js-toa\").exists()) {\n toa();\n }\n\n // search\n searchOverlay();\n\n // Dropdown\n thomDropdown();\n\n // Share\n shareButtons();\n\n // Home Carousel\n if ($(\".carousel-home\").exists()) {\n var firstLL = 0;\n flktyHome = new Flickity(\".carousel-home\", {\n autoPlay: 0,\n cellSelector: \".carousel-home .carousel-cell\",\n pauseAutoPlayOnHover: true,\n prevNextButtons: false,\n pageDots: true,\n bgLazyLoad: true,\n lazyLoad: 2,\n draggable: true,\n on: {\n lazyLoad: function (event, cellElement) {\n if($(cellElement).index() === 0 && firstLL === 0){\n firstLL = 1;\n $('.emotional-home-content').addClass('tween');\n }\n },\n },\n });\n\n CarouselParallax(\".carousel-home\", flktyHome);\n CarouselProgressbar(\".carousel-home\", flktyHome);\n }\n\n // collections preview carousel\n if ($(\".collections-preview\").exists()) {\n $(\".collections-preview--carousel\").removeClass(\"is-hidden\");\n let flktyCollectionsPreview = new Flickity(\n \".collections-preview--carousel\",\n {\n cellSelector: \".collections-preview--carousel .carousel-cell\",\n // asNavFor: '.collections-preview--carousel-bk',\n pageDots: false,\n contain: true,\n lazyLoad: 2,\n prevNextButtons: false,\n fade: true,\n on: {\n ready: function () {\n $(\".collections-preview .overall .slide-n .tot\").html(\n $(\".collections-preview--carousel .carousel-cell\").length\n );\n },\n },\n }\n );\n\n $(\".collections-preview--carousel-bk\").removeClass(\"is-hidden\");\n flktyCollectionsPreviewBk = new Flickity(\n \".collections-preview--carousel-bk\",\n {\n cellSelector: \".collections-preview--carousel-bk .carousel-cell\",\n asNavFor: \".collections-preview--carousel\",\n draggable: false,\n pageDots: false,\n lazyLoad: 2,\n prevNextButtons: false\n }\n );\n CarouselParallax(\n \".collections-preview--carousel-bk\",\n flktyCollectionsPreviewBk\n );\n\n // previous\n $(\".collections-preview .overall .nav-btn-prev\").on(\"click\", function () {\n flktyCollectionsPreview.previous();\n });\n // next\n $(\".collections-preview .overall .nav-btn-next\").on(\"click\", function () {\n flktyCollectionsPreview.next();\n });\n // on change\n flktyCollectionsPreview.on(\"change\", function (index) {\n $(\".collections-preview .overall .slide-n .current\").html(index + 1);\n });\n // on select\n flktyCollectionsPreview.on(\"select\", function () {\n $(\".collections-preview .overall .overall-text-change\").addClass(\"hide\");\n setTimeout(function () {\n $(\".collections-preview .overall .title\").text(\n flktyCollectionsPreview.selectedElements[0].attributes.title\n .textContent\n );\n $(\".collections-preview .overall .subtitle\").text(\n flktyCollectionsPreview.selectedElements[0].attributes.subtitle\n .textContent\n );\n $(\".collections-preview .overall .btn\").attr(\n \"href\",\n flktyCollectionsPreview.selectedElements[0].attributes.link\n .textContent\n );\n $(\".collections-preview .overall .overall-text-change\").removeClass(\n \"hide\"\n );\n }, 350);\n });\n }\n\n // projects preview carousel\n if ($(\".projects-preview\").exists()) {\n\n $(\".projects-preview--carousel-bk\").removeClass(\"is-hidden\");\n flktyProjectsPreviewBk = new Flickity(\".projects-preview--carousel-bk\", {\n cellSelector: \".projects-preview--carousel-bk .carousel-cell\",\n // asNavFor: '.projects-preview--carousel',\n draggable: false,\n pageDots: false,\n lazyLoad: 2,\n prevNextButtons: false,\n on: {\n ready: function () {\n $(\".projects-preview .overall .slide-n .tot\").html(\n $(\".projects-preview--carousel-bk .carousel-cell\").length\n );\n },\n },\n // fade: true\n });\n CarouselParallax(\".projects-preview--carousel-bk\", flktyProjectsPreviewBk);\n\n // previous\n $(\".projects-preview .overall .nav-btn-prev\").on(\"click\", function () {\n flktyProjectsPreviewBk.previous();\n });\n // next\n $(\".projects-preview .overall .nav-btn-next\").on(\"click\", function () {\n flktyProjectsPreviewBk.next();\n });\n // on change\n flktyProjectsPreviewBk.on(\"change\", function (index) {\n $(\".projects-preview .overall .slide-n .current\").html(index + 1);\n });\n // on select\n flktyProjectsPreviewBk.on(\"select\", function () {\n $(\".projects-preview .overall .overall-text-change\").addClass(\"hide\");\n setTimeout(function () {\n $(\".projects-preview .overall .title\").text(\n flktyProjectsPreviewBk.selectedElements[0].attributes.title\n .textContent\n );\n $(\".projects-preview .overall .subtitle\").text(\n flktyProjectsPreviewBk.selectedElements[0].attributes.subtitle\n .textContent\n );\n $(\".projects-preview .overall .btn\").attr(\n \"href\",\n flktyProjectsPreviewBk.selectedElements[0].attributes.link.textContent\n );\n $(\".projects-preview .overall .overall-text-change\").removeClass(\n \"hide\"\n );\n }, 350);\n });\n }\n\n // Lapite Features Carousel\n if ($(\".lapitec-features-carousel\").exists()) {\n $(\".lapitec-features-carousel\").removeClass(\"is-hidden\");\n\n var flktyFeatures;\n\n function ToggleFeaturesFlickity() {\n if (matchMedia(\"screen and (min-width: 768px)\").matches) {\n if ($(\".lapitec-features-carousel\").hasClass(\"flickity-enabled\")) {\n flktyFeatures.destroy();\n }\n } else {\n flktyFeatures = new Flickity(\".lapitec-features-carousel\", {\n autoPlay: 0,\n cellSelector: \".lapitec-features-carousel-cell\",\n pauseAutoPlayOnHover: true,\n prevNextButtons: false,\n pageDots: false,\n draggable: true,\n });\n\n // previous\n $(\".lapitec-features-carousel-btn-prev\").on(\"click\", function () {\n flktyFeatures.previous();\n });\n // next\n $(\".lapitec-features-carousel-btn-next\").on(\"click\", function () {\n flktyFeatures.next();\n });\n }\n }\n\n $(window).on(\"resizeend\", 250, function () {\n ToggleFeaturesFlickity();\n });\n\n ToggleFeaturesFlickity();\n }\n\n // Lapite Awards Carousel\n if ($(\".lapitec-awards-carousel\").exists()) {\n $(\".lapitec-awards-carousel\").each(function(){\n var flktyAward;\n var carousel = $(this)[0];\n flktyAward = new Flickity(carousel, {\n cellSelector: \".carousel-cell\",\n prevNextButtons: false,\n groupCells: true,\n cellAlign: 'left'\n });\n })\n \n }\n\n // Lapite Clients Carousel\n if ($(\".lapitec-clients-carousel\").exists()) {\n var flktyClients;\n flktyClients = new Flickity(\".lapitec-clients-carousel\", {\n cellSelector: \".carousel-cell\",\n prevNextButtons: false,\n groupCells: true,\n cellAlign: 'left'\n });\n }\n\n // Lapite Certification Carousel\n if ($(\".lapitec-certifications-carousel\").exists()) {\n var flktyCertification;\n flktyCertification = new Flickity(\".lapitec-certifications-carousel\", {\n cellSelector: \".carousel-cell\",\n prevNextButtons: false,\n groupCells: true,\n cellAlign: 'left'\n });\n }\n\n // Lapite Finishes Carousel\n if ($(\".finishes-carousel\").exists()) {\n var flktyFinishesGroupCells = false;\n\n var flktyFinishes;\n flktyFinishes = new Flickity(\".finishes-carousel\", {\n cellSelector: \".carousel-cell\",\n prevNextButtons: false,\n groupCells: true,\n lazyLoad: 1,\n });\n }\n\n // Lapite Natural minerals Carousel\n if ($(\".lapitec-minerals--carousel\").exists()) {\n var flktyMinerals = new Flickity(\".lapitec-minerals--carousel\", {\n autoPlay: 5000,\n pauseAutoPlayOnHover: true,\n cellSelector: \".carousel-cell\",\n draggable: true,\n fade: true,\n lazyLoad: true,\n pageDots: false,\n prevNextButtons: false,\n wrapAround: true\n });\n\n // previous\n $(\".lapitec-minerals--carousel .nav-btn-prev\").on(\"click\", function () {\n flktyMinerals.previous();\n });\n // next\n $(\".lapitec-minerals--carousel .nav-btn-next\").on(\"click\", function () {\n flktyMinerals.next();\n });\n }\n\n // Singlepage\n // Projects carousel \n if ($(\".projects-carousel-singlepage .carousel\").exists()) {\n var projectCarousel = document.querySelector('.projects-carousel-singlepage');\n var carousel = projectCarousel.querySelector('.carousel');\n var cellsButtonGroup = document.querySelector('.projects-carousel-singlepage--page-dots');\n var cellsButtons = utils.makeArray( cellsButtonGroup.children );\n \n flktyProjectsSinglepage = new Flickity(carousel, {\n autoPlay: 0,\n cellSelector: \".projects-carousel-singlepage .carousel-cell\",\n pauseAutoPlayOnHover: true,\n prevNextButtons: false,\n pageDots: false,\n bgLazyLoad: true,\n lazyLoad: 2,\n draggable: true\n });\n\n // update buttons on select\n flktyProjectsSinglepage.on( 'select', function() {\n var previousSelectedButton = cellsButtonGroup.querySelector('.is-selected');\n var selectedButton = cellsButtonGroup.children[ flktyProjectsSinglepage.selectedIndex ];\n previousSelectedButton.classList.remove('is-selected');\n selectedButton.classList.add('is-selected');\n });\n\n // cell select\n cellsButtonGroup.addEventListener( 'click', function( event ) {\n // if ( !matchesSelector( event.target, '.button' ) ) {\n // return;\n // }\n var index = cellsButtons.indexOf( event.target );\n flktyProjectsSinglepage.select( index );\n });\n\n CarouselParallax(carousel, flktyProjectsSinglepage);\n }\n\n // add this code\n Flickity.prototype._createResizeClass = function () {\n this.element.classList.add(\"flickity-resize\");\n };\n Flickity.createMethods.push(\"_createResizeClass\");\n\n var FlickityResize = Flickity.prototype.resize;\n if ($(\".flickity-resize\").exists()) {\n Flickity.prototype.resize = function () {\n var $this = this;\n $(\".flickity-resize\").each(function () {\n $this.element.classList.remove(\"flickity-resize\");\n FlickityResize.call($this);\n $this.element.classList.add(\"flickity-resize\");\n });\n };\n }\n\n // Accordion\n if ($(\".accordion-list\").exists()) {\n $(\".accordion-list\").each(function(){\n var $list = $(this);\n var elms = $list.find(\".accordion-item\");\n $(elms).each(function(){\n if($(this).hasClass('active')){\n $(this).find(\".accordion-content\").slideToggle();\n }\n });\n \n\n elms.find('.accordion-title').click(function(){\n var $this = $(this).parent();\n if($list.hasClass('close-all')){\n elms.find(\".accordion-content\").stop().slideUp();\n elms.removeClass('active'); \n $this.find(\".accordion-content\").stop().slideDown();\n $this.toggleClass(\"active\");\n } else {\n $this.find(\".accordion-content\").stop().slideToggle();\n $this.toggleClass(\"active\");\n }\n })\n\n });\n }\n\n // Colors modal\n if ($(\".colors-list-item[data-image]\").exists()) {\n $(\".colors-list-item[data-image]\").click(function (e) {\n e.preventDefault();\n ColorsModal(this);\n });\n }\n\n // Dealers\n if ($(\"#dealersSearch\").exists()) {\n dealersSearch();\n }\n\n // Stores\n if ($(\"#storesSearch\").exists()) {\n var MyStoresMap;\n\n const GoogleMapsDealersLoader = new Loader({\n apiKey: _gmapkey,\n version: \"weekly\",\n libraries: [\"places\", \"geometry\"],\n });\n\n var autocomplete = 0;\n if ($(\"#storesSearch\").is('[data-autocomplete]')) {\n autocomplete = 1;\n }\n\n GoogleMapsDealersLoader.load()\n .then(() => {\n // Thom Map INIT\n MyStoresMap = $(\"#map\").thomMap({\n autocomplete: autocomplete,\n content: $(\".stores\"),\n fitbounds: true,\n getMarkerIcon: function (item) {\n return myThomMapMarkerIcon(item, true);\n },\n params: params,\n // searchBtn: $(\".stores-search-btn\"),\n searchCallback: function(){\n $('.stores-search-preview').hide();\n $('.stores-results').show();\n },\n url: thomMap_url,\n zoomControl: true,\n zoomControlPosition: google.maps.ControlPosition.RIGHT_TOP,\n zoomToMarker: true,\n });\n\n $('.stores-search-btn').click(function(){\n $('#map').thomMap('searchPoints');\n });\n \n })\n .catch((e) => {\n // do something\n });\n\n // $('.map-search-form .thom-dropdown--options-item').click(function(e){\n // $('.map-search-radius .thom-dropdown--options-item').removeClass('is-selected');\n // $(this).addClass('is-selected');\n // });\n }\n\n // Contacts Form\n if ($(\"#contactForm\").exists()) {\n var contactForm = $(\"#contactForm\");\n contactForm.thomForm({\n errorMsg: contactForm.find(\".thom-form__error\"),\n errorCallback: function(myTitle, myMessage) {\n if (myTitle) {\n myTitle = \"
\" + myTitle + \"
\";\n }\n if (myMessage) {\n myMessage = \"
\" + myMessage + \"
\";\n }\n\n if (myTitle || myMessage) {\n contactForm.find(\".thom-form__error\").html(myTitle + myMessage);\n }\n\n contactForm.find(\".thom-form__error\").fadeIn(300);\n\n $('html,body').animate({\n scrollTop: contactForm.offset().top - $('.navbar').height()\n }, 600);\n },\n myCallback: function(myTitle, myMessage) {\n MyThomFormResponseAction(myTitle, myMessage);\n }\n });\n }\n\n // guaranteeForm\n if ($(\"#guaranteeForm\").exists()) {\n var guaranteeForm = $(\"#guaranteeForm\");\n guaranteeForm.thomForm({\n errorMsg: guaranteeForm.find(\".thom-form__error\"),\n errorCallback: function(myTitle, myMessage) {\n if (myTitle) {\n myTitle = \"
\" + myTitle + \"
\";\n }\n if (myMessage) {\n myMessage = \"
\" + myMessage + \"
\";\n }\n\n if (myTitle || myMessage) {\n guaranteeForm.find(\".thom-form__error\").html(myTitle + myMessage);\n }\n\n guaranteeForm.find(\".thom-form__error\").fadeIn(300);\n\n $('html,body').animate({\n scrollTop: guaranteeForm.offset().top - $('.navbar').height()\n }, 600);\n },\n myCallback: function(myTitle, myMessage) {\n MyThomFormResponseAction(myTitle, myMessage);\n }\n });\n }\n\n // Contacts Map\n if ($(\".contact-map\").exists() && $(\".contact-map #map\").exists()) {\n var map;\n const GoogleMapsLoader = new Loader({\n apiKey: _gmapkey,\n version: \"weekly\",\n libraries: [\"places\"],\n });\n\n GoogleMapsLoader.load()\n .then(() => {\n map = new google.maps.Map(document.getElementById(\"map\"), {\n center: { lat: params.latitude, lng: params.longitude },\n zoom: 8,\n maxZoom: 18,\n streetViewControl: false,\n mapTypeControl: false,\n scrollwheel: false,\n zoomControlOptions: {\n position: google.maps.ControlPosition.RIGHT_TOP,\n },\n });\n\n var image = {\n url: \"\" + _root + \"img/marker.png\",\n size: new google.maps.Size(77, 60),\n };\n var myMarker = new google.maps.Marker({\n position: { lat: params.latitude, lng: params.longitude },\n map: map,\n icon: image,\n });\n var bounds = new google.maps.LatLngBounds();\n bounds.extend(myMarker.getPosition());\n map.fitBounds(bounds);\n })\n .catch((e) => {\n // do something\n });\n }\n\n ThomAdvancedSearch = null\n // News\n if ($(\".thom-search--filter-block\").exists() && $('.news-list').exists() &&\n (typeof ThomAdvancedSearch === 'undefined' || ThomAdvancedSearch === null)) {\n\n var nextURL;\n\n function updateNextURL( doc ) {\n nextURL = $( doc ).find('.pagination__next').attr('href');\n }\n // get initial nextURL\n updateNextURL( document );\n\n var $infiniteContainer;\n\n function updateInfiniteScroll(){\n $infiniteContainer = null;\n $infiniteContainer = $('.thom-search--results .news-list .infinite-content').infiniteScroll({\n // options\n path: function() {\n return nextURL;\n },\n append: '.news-list-item',\n history: false,\n status: '.page-load-status',\n // debug: true\n });\n \n // update nextURL on page load\n $infiniteContainer.on( 'load.infiniteScroll', function( event, response ) {\n updateNextURL( response );\n });\n \n $infiniteContainer.on( 'append.infiniteScroll', function( event, response, path, items ) {\n items.forEach(item => {\n if ($(item).find(\".lazy\").length > 0) {\n myLazyLoad.update();\n }\n // Thom Observer Animation\n if ($(item).hasClass(\"js-toa\")) {\n toaInit($(item));\n }\n });\n });\n }\n\n if ( $('.pagination__next').length ) {\n updateInfiniteScroll();\n }\n \n ThomAdvancedSearch = $('.thom-search').thomsearch({\n filterClass: '.thom-search--filter-btn',\n filtersContent: '.thom-search--filter-block',\n itemsPerPage: THOM_searchItemsPerPage,\n resultsCallback: function (data) {\n\n\n var infScroll = $('.thom-search--results .news-list .infinite-content').data('infiniteScroll');\n if(infScroll) {\n infScroll.destroy();\n }\n $('.thom-search--results').html(data); \n ThomAdvancedSearch.thomsearch('loadingHide');\n\n var items = $('.thom-search--results .news-list-item');\n items.each(function(){\n if ($(this).find(\".lazy\").length > 0) {\n myLazyLoad.update();\n }\n // Thom Observer Animation\n if ($(this).hasClass(\"js-toa\")) {\n toaInit($(this));\n }\n });\n\n updateNextURL( document );\n if ( $('.pagination__next').length ) {\n updateInfiniteScroll();\n }\n },\n urlContent: THOM_searchUrlContent\n });\n }\n\n // Projects\n // Filters\n if ($(\".thom-search--filter-block\").exists() && $('.projects-list').exists() &&\n (typeof ThomAdvancedSearch === 'undefined' || ThomAdvancedSearch === null)) {\n\n var nextURL;\n\n function updateNextURL( doc ) {\n nextURL = $( doc ).find('.pagination__next').attr('href');\n }\n // get initial nextURL\n updateNextURL( document );\n\n var $infiniteContainer;\n\n function updateInfiniteScroll(){\n $infiniteContainer = null;\n $infiniteContainer = $('.thom-search--results .projects-list .infinite-content').infiniteScroll({\n // options\n path: function() {\n return nextURL;\n },\n append: '.projects-list-item',\n history: false,\n status: '.page-load-status',\n // debug: true\n });\n \n // update nextURL on page load\n $infiniteContainer.on( 'load.infiniteScroll', function( event, response ) {\n updateNextURL( response );\n });\n \n $infiniteContainer.on( 'append.infiniteScroll', function( event, response, path, items ) {\n items.forEach(item => {\n if ($(item).find(\".lazy\").length > 0) {\n myLazyLoad.update();\n }\n // Thom Observer Animation\n if ($(item).hasClass(\"js-toa\")) {\n toaInit($(item));\n }\n });\n });\n }\n\n if ( $('.pagination__next').length ) {\n updateInfiniteScroll();\n }\n \n ThomAdvancedSearch = $('.thom-search').thomsearch({\n filterClass: '.thom-search--filter-btn',\n filtersContent: '.thom-search--filter-block',\n infScroll: $infiniteContainer,\n itemsPerPage: THOM_searchItemsPerPage,\n orderByPosition: THOM_orderByPosition,\n resultsCallback: function (data) {\n\n var infScroll = $('.thom-search--results .projects-list .infinite-content').data('infiniteScroll');\n if(infScroll) {\n infScroll.destroy();\n }\n\n $('.thom-search--results').html(data);\n ThomAdvancedSearch.thomsearch('loadingHide');\n\n var items = $('.thom-search--results .projects-list-item');\n items.each(function(){\n if ($(this).find(\".lazy\").length > 0) {\n myLazyLoad.update();\n }\n // Thom Observer Animation\n if ($(this).hasClass(\"js-toa\")) {\n toaInit($(this));\n }\n });\n\n updateNextURL( document );\n if ( $('.pagination__next').length ) {\n updateInfiniteScroll();\n }\n\n // Reset All filters\n if($('.filters-list .thom-search--filter-btn.is-selected').length > 0){\n $('.filters-list .thom-search--filter-reset-all').addClass('is-selected');\n }else{\n $('.filters-list .thom-search--filter-reset-all').removeClass('is-selected');\n }\n },\n url: THOM_searchUrlFilters,\n urlContent: THOM_searchUrlContent\n });\n\n // Show Reset All filters btn on init\n if($('.filters-list .thom-search--filter-btn.is-selected').length > 0){\n $('.filters-list .thom-search--filter-reset-all').addClass('is-selected');\n }\n\n // Reset All filters btn Click\n $('.filters-list .thom-search--filter-reset-all').click(function(){\n ThomAdvancedSearch.thomsearch('reset');\n $('.filters-list .thom-search--filter-reset-all').removeClass('is-selected');\n });\n }\n\n // Jobs\n // Form with steps\n // Contacts Form\n if ($(\".formSteps-content .thom-form\").exists()) {\n jobStepsForm(0);\n }\n\n // Lapite Images\n // Projects carousel \n if ($(\".images--carousel .carousel\").exists()) {\n var imagesCarousel = document.querySelector('.images--carousel');\n var carousel_imgs = imagesCarousel.querySelector('.carousel');\n \n var flktyImages = new Flickity(carousel_imgs, {\n autoPlay: 0,\n cellSelector: \".carousel-cell\",\n pauseAutoPlayOnHover: true,\n prevNextButtons: false,\n pageDots: true,\n lazyLoad: 1,\n draggable: true\n }); \n\n CarouselParallax(carousel_imgs, flktyImages);\n }\n\n // Configurator\n if ($('.product-configurator').exists()) {\n var productScrollElement = document.querySelector('.product-configurator');\n $('.product-configurator .scrolling-propagation').on('click', function(){\n $('html').css('overflow-y', 'unset');\n $('.product-configurator').addClass('active');\n disableBodyScroll(productScrollElement);\n });\n $('.product-configurator').on('mouseleave', function(){\n $('html').css('overflow-y', 'scroll');\n $('.product-configurator').removeClass('active');\n enableBodyScroll(productScrollElement);\n })\n }\n\n // Color Dett Finishes Carousel\n if ($(\".color-dett--finishes--carousel\").exists()) {\n\n var flktyColorFinishes;\n flktyColorFinishes = new Flickity(\".color-dett--finishes--carousel\", {\n cellSelector: \".carousel-cell\",\n prevNextButtons: false,\n groupCells: true\n });\n \n flktyColorFinishes.on( 'select', function() {\n $(\".color-dett--finishes--carousel .carousel-cell.is-selected\").removeClass('is-selected');\n }); \n }\n\n if ($(\".color-dett--finishes--descriptions\").exists()) {\n\n var flktyColorFinishesDesc;\n flktyColorFinishesDesc = new Flickity(\".color-dett--finishes--descriptions\", {\n autoPlay: 0,\n cellSelector: \".item\",\n prevNextButtons: false,\n pageDots: false,\n lazyLoad: 2,\n fade: true,\n draggable: false\n });\n\n $(\".color-dett--finishes--carousel .carousel-cell\").eq(0).addClass('active');\n $(\".color-dett--finishes--carousel .carousel-cell\").on('click', function(e){\n e.preventDefault();\n $(\".color-dett--finishes--carousel .carousel-cell\").removeClass('active');\n $(this).addClass('active');\n var i = $(this).index();\n flktyColorFinishesDesc.select(i, false, false);\n })\n }\n\n const fullView = {\"ratio\":1, \"size\":false};\n var viewer = null;\n $('.btn-zoom-closeup').on('click', function(e){\n e.preventDefault();\n var fullViewModalTitle = $('.fullview-title').text();\n var fullViewModalTitleFinishes = $(this).parent().find('.fullview-title_finishes').text();\n var image = $(this).data('image'); \n\n if(image === \"\" || image === null || image === undefined){\n return;\n }\n\n $(\"#spinner\").addClass(\"default\");\n spinner().show();\n \n var myModal =\n '
' +\n '
' +\n '
' +\n '
' +\n fullViewModalTitle + ' | ' + '' + fullViewModalTitleFinishes +'' +\n '
' +\n '' +\n '' +\n '' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '' +\n '' +\n ''+\n '
' +\n '
' +\n '
' +\n '
' +\n '
';\n\n var fullviewModal = $(myModal);\n\n fullviewModal.modal({\n blockerClass: \"modal-fullscreen\"\n });\n\n viewer = null;\n\n var isDesktop = window.matchMedia('(min-width:768px)').matches;\n var minZoomLevel = isDesktop ? 0.5 : 4;\n var maxZoomLevel = isDesktop ? 2 : 6; \n\n fullviewModal.on($.modal.OPEN, function(event, modal) {\n if ((fullView.size || {}).unit) {\n document.querySelector('.full-view--navigation__wrapper').style.setProperty('--in-unit', \"'\" + fullView.size.unit.replace(\"'\", \"\") + \"'\")\n }\n\n var descWidth = document.querySelector('#full-view .full-view--navigationControl').offsetWidth;\n\n viewer = new OpenSeadragon.Viewer({\n id: \"full-view--image\",\n constrainDuringPan: true,\n preserveImageSizeOnResize: true,\n defaultZoomLevel: isDesktop ? 1.8 : 4.5,\n // minZoomImageRatio: 0.75,\n minZoomLevel,\n maxZoomLevel,\n zoomPerClick: 1.4,\n zoomPerScroll: 1.2,\n // autoResize: false,\n visibilityRatio: 1,\n showNavigator: true,\n // showNavigationControl: false,\n navigatorHeight: descWidth / fullView.ratio,\n navigatorWidth: descWidth,\n navigatorId: \"full-view--navigation\",\n navigatorAutoFade: false,\n showFullPageControl: false,\n showHomeControl: false, \n showSequenceControl: false,\n homeButton: \"\",\n fullPageButton: \"\",\n nextButton: \"\", \n previousButton: \"\", \n toolbar: \"\",\n zoomInButton: \"full-view--zoomIn\",\n zoomOutButton: \"full-view--zoomOut\",\n useCanvas: false,\n // prefixUrl: \"./\",\n tileSources: {\n type: 'image',\n url: image,\n crossOriginPolicy: false,\n ajaxWithCredentials: false\n }\n });\n\n var cache = new OpenSeadragon.TileCache({maxImageCacheCount: 1});\n\n viewer.addHandler('animation', function(e){\n try {\n var size = e.eventSource.world._items[0].lastDrawn[0].size;\n var container = e.eventSource.viewport.containerSize;\n\n if(size.x < container.x){\n viewer.panHorizontal = false;\n viewer.viewport.centerSpringX.resetTo(.5)\n } else {\n viewer.panHorizontal = true;\n }\n\n if(size.y < container.y){\n viewer.panVertical = false;\n viewer.viewport.centerSpringY.resetTo(.5)\n } else {\n viewer.panVertical = true;\n }\n\n if(size.x < container.x && size.y < container.y){\n viewer.navigator.setMouseNavEnabled(false)\n } else{\n viewer.navigator.setMouseNavEnabled(true)\n }\n } catch (e) {\n console.error(e)\n } \n });\n\n viewer.addHandler('tile-loaded', e=>{\n spinner().hide();\n setTimeout(function(){\n $(\"#spinner\").removeClass(\"default\");\n }, 500)\n });\n\n viewer.addHandler('zoom', function(e) {\n e.eventSource.zoomInButton.element.disabled = e.zoom >= e.eventSource.maxZoomLevel;\n e.eventSource.zoomOutButton.element.disabled = e.zoom <= e.eventSource.minZoomLevel\n })\n\n $('#full-view--navigator__toggle').on('click', function(){\n $(this).toggleClass('collapse');\n $('.full-view--navigation__wrapper').stop().slideToggle();\n })\n });\n\n fullviewModal.on($.modal.CLOSE, function(event, modal) {\n viewer.world.removeAll()\n viewer.world.resetItems()\n viewer.world.removeAllHandlers()\n viewer.imageLoader.clear();\n viewer.world.update()\n viewer._cancelPendingImages()\n viewer.removeReferenceStrip()\n viewer.clearControls()\n viewer.removeAllHandlers()\n viewer.removeControl()\n viewer.navigator = null;\n viewer.destroy();\n viewer = null;\n\n\n $('#full-view').remove();\n })\n }) \n\n if($('.video-autoplay').exists()){\n $('.video-autoplay').each(function(){\n var $this = $(this);\n var videoElement = $this.find(\".video-autoplay__item\")[0];\n var videoSrc = $this.find(\".video-autoplay__item\").data('src');\n\n videoElement.src = videoSrc;\n videoElement.load();\n\n videoElement.addEventListener('canplay', (e) => {\n\n let itemOnEnter = () => {\n $this.addClass('is-playing');\n videoElement.play();\n }\n \n let itemOnLeave = () => {\n $this.removeClass('is-playing');\n videoElement.pause();\n }\n \n var mediaTl = gsap.timeline({\n scrollTrigger: {\n trigger: $this[0],\n start: \"top 90%\",\n end: \"bottom 15%\",\n // markers: true,\n onEnter: itemOnEnter,\n onEnterBack: itemOnEnter,\n onLeave: itemOnLeave,\n onLeaveBack: itemOnLeave,\n }\n });\n });\n })\n }\n\n // scroll to div\n if ($(\".scrollto\").exists()) {\n $(\".scrollto\").click(function (e) {\n e.preventDefault();\n var link = $(this).data(\"link\");\n $(\"html,body\").animate(\n {\n scrollTop: $(\"#\" + link).offset().top - $(\".navbar\").height(),\n },\n 600\n );\n });\n }\n\n $('.img-zoom').not('.gallery__item').lightGallery({\n selector: 'this',\n download: false,\n counter: false,\n getCaptionFromTitleOrAlt: false\n });\n\n // open image popup\n $(\".gallery__btn\").lightGallery({\n selector: \".gallery__item\",\n download: false,\n counter: false,\n getCaptionFromTitleOrAlt: false\n });\n\n // Open gallery from photogallery button\n if ($(\".btn-gallery\").exists()) {\n $(\".btn-gallery\").each(function () {\n var $this = $(this);\n var $lggallery = $(\"#\" + $this.data(\"gallery\"));\n\n $lggallery.lightGallery({\n selector: \"img\",\n download: false,\n counter: false,\n getCaptionFromTitleOrAlt: false\n });\n\n $this.click(function (e) {\n e.preventDefault();\n $lggallery.find(\"img\").first().trigger(\"click\");\n });\n });\n }\n\n // open video popup\n $(\".btn-video\").lightGallery({\n selector: \"this\",\n download: false,\n counter: false,\n videoMaxWidth: \"80%\",\n getCaptionFromTitleOrAlt: false,\n youtubePlayerParams: {\n modestbranding: 1,\n showinfo: 0,\n rel: 0,\n controls: 1,\n },\n vimeoPlayerParams: {\n byline: 0,\n portrait: 0,\n },\n });\n\n // Ajax modal\n $('a[rel=\"ajax:modal\"]').unbind('click');\n $('a[rel=\"ajax:modal\"]').click(function (event) {\n event.preventDefault();\n\n // console.log(this)\n\n this.blur();\n $.ajax({\n url: $(this).attr(\"href\"),\n success: function (newHTML, textStatus, jqXHR) {\n var myHtml = $(newHTML).find(\".ajax-load\");\n $(myHtml).appendTo(\"body\").modal();\n },\n error: function (jqXHR, textStatus, errorThrown) {\n // Handle AJAX errors\n },\n complete: function () {},\n // More AJAX customization goes here.\n });\n\n return false;\n });\n\n // Packery grid\n if ($(\".grid\").exists() && !$('.grid').hasClass('js-toa-grid')){\n packeryInstance = $(\".grid\").packery({\n // options\n itemSelector: \".grid-item\",\n percentPosition: true,\n });\n }\n\n // Support - files modal + cookie\n if ($('a.files-list-item[data-modal]').exists()){\n $('a.files-list-item[data-modal]').click(function (event) { \n var cookieSupportFiles = thomCookieGet('lapitec-support-files');\n if (cookieSupportFiles != 1 || cookieSupportFiles === null) {\n event.preventDefault();\n this.blur();\n\n var filesmodal = $($(this).data(\"modal\"));\n\n filesmodal.modal();\n\n filesmodal.on($.modal.OPEN, function(event, modal) {\n var downloadForm = filesmodal.find('.thom-form');\n downloadForm.thomForm({\n errorMsg: downloadForm.find(\".thom-form__error\"),\n errorCallback: function(myTitle, myMessage) {\n if (myTitle) {\n myTitle = \"
\" + myTitle + \"
\";\n }\n if (myMessage) {\n myMessage = \"
\" + myMessage + \"
\";\n }\n\n if (myTitle || myMessage) {\n downloadForm.find(\".thom-form__error\").html(myTitle + myMessage);\n }\n \n downloadForm.find(\".thom-form__error\").fadeIn(300);\n },\n myCallback: function(myTitle, myMessage) {\n // MyThomFormResponseAction(myTitle, myMessage);\n if (myTitle !== undefined && myTitle !== null && myTitle !== \"\") {\n myTitle = \"
\" + myTitle + \"
\";\n } else {\n myTitle = \"\";\n }\n\n var myHtml =\n '
' +\n '' +\n myTitle +\n \"
\" + myMessage + \"
\"; +\n '
';\n\n var filesresponsemodal = $(myHtml);\n\n $.modal.close();\n\n filesresponsemodal.modal();\n\n thomCookieSet('lapitec-support-files', '1', 365);\n\n filesresponsemodal.on($.modal.CLOSE, function(event, modal) {\n location.reload();\n })\n }\n });\n });\n\n return false;\n } \n });\n }\n \n // form file\n if ($('.thom-form-selectfile').exists()) {\n $('.thom-form-selectfile').change(function (e) {\n e.preventDefault();\n var filename = $(this).find('.thom-form-selectfile__input_file').val().replace('C:\\\\fakepath\\\\', '')\n // var ext = filename.split('.').pop().toLowerCase()\n $(this).find('.thom-form-selectfile__label span').html(filename)\n })\n }\n\n if ($('.go-to-section').exists()){\n $('.go-to-section').on('click', function(){\n var link = $(this).data('link');\n $('html,body').animate({\n scrollTop: $(link).offset().top - $('.navbar').height()\n }, 600);\n }) \n }\n\n // update analytics\n if (typeof analyticsUpdate === \"function\") {\n analyticsUpdate();\n }\n}\n\n// start script\nbarba.use(barbaCss);\n\n// define a global hook\nbarba.hooks.once((data) => {\n // this hook will be called for each transitions\n navbar();\n myapp();\n\n // Remove appended div to modal after close\n $(document).on($.modal.AFTER_CLOSE, function (event, modal) {\n $(\".ajax-load.modal\").remove();\n });\n\n // Analytics update\n $(document).on($.modal.OPEN, function (event, modal) {\n if (typeof analyticsUpdate === \"function\") {\n analyticsUpdate();\n }\n $(modal.$anchor).find(\".close-modal\").attr(\"data-barba-prevent\", \"self\");\n });\n $(document).on($.modal.CLOSE, function (event, modal) {\n if (typeof analyticsUpdate === \"function\") {\n analyticsUpdate();\n }\n });\n\n $(\"#spinner\").removeClass(\"default\");\n // setTimeout(function() {\n // $(\"#spinner\");.remove()\n // }, 800);\n});\n\nbarba.hooks.enter((data) => {\n $.ajax({\n url: data.next.url.href,\n success: function (newHTML, textStatus, jqXHR) {\n // Meta update\n var headTags = [\n \"meta[name='keywords']\",\n \"meta[name='description']\",\n \"meta[property^='og']\",\n \"meta[name^='twitter']\",\n \"meta[itemprop]\",\n \"link[itemprop]\",\n \"link[rel='prev']\",\n \"link[rel='next']\",\n \"link[rel='canonical']\",\n ].join(\",\");\n $(\"head\").find(headTags).remove();\n $(newHTML).find(headTags).appendTo(\"head\");\n\n // Section placeholder Change\n var newplaceholdersection = $(newHTML)\n .find(\".placeholder-section\")\n .html();\n $(\".navbar .placeholder-section\").html(newplaceholdersection);\n\n // Menu Change\n var newmenu = $(newHTML).find(\".navbar__collapse\").html();\n $(\".navbar .navbar__collapse\").html(newmenu);\n\n // Footer\n // var newfooter = $(newHTML).find('.footer-path').html();\n // $(\".footer .footer-path\").html(newfooter);\n\n // script variables\n var js = $(newHTML).find(\"script\");\n if (js != null) {\n $.globalEval(js.html());\n }\n\n\n if($(newHTML).find(\".js-toa\").length > 0){\n toaDisable();\n }\n\n myapp();\n },\n error: function (xhr, ajaxOptions, thrownError) {\n alert(xhr.status)\n alert(xhr.statusText)\n // alert(thrownError)\n },\n complete: function () {\n spinner().hide();\n },\n });\n});\nbarba.hooks.leave((data) => {\n // this hook will be called for each transitions\n // console.log(\"LEAVE - global hook\");\n spinner().show();\n\n document.body.classList.remove(\"navbar--opened\");\n\n // close an open modal\n $.modal.close();\n\n \n});\n\nbarba.hooks.before((data) => {\n\n // $('.navbar').fadeOut()\n\n});\n\n// Basic default transition, with no rules and minimal hooks…\nbarba.init({\n timeout: 5000,\n cacheIgnore: true,\n prefetchIgnore: true,\n debug: false,\n views: [\n {\n namespace: \"form\",\n afterEnter(data) {\n if ($(\".thom-form__recaptcha\").length != 0) {\n recaptchaLoad();\n }\n\n if ($(\".mtcaptcha\").length != 0) {\n mt_jsloadedcb();\n }\n },\n },\n {\n namespace: 'homepage',\n beforeEnter({ next }) {\n if(ytVideoId != null || ytVideoId != undefined) {\n // prevent Google Map API script from being loaded multiple times\n if (typeof window.onYouTubeIframeAPIReady === 'function') {\n window.onYouTubeIframeAPIReady();\n } else {\n window.onYouTubeIframeAPIReady = () => {\n var player;\n player = new YT.Player('carouselHomeVideoPlayer', {\n videoId: ytVideoId, // YouTube Video ID\n width: 1280, // Player width (in px)\n height: 720, // Player height (in px)\n playerVars: {\n playlist: '{$loadYouTubeVideoID}',\n autoplay: 1, // Auto-play the video on load\n autohide: 1,\n disablekb: 1,\n controls: 0, // Hide pause/play buttons in player\n showinfo: 0, // Hide the video title\n modestbranding: 1, // Hide the Youtube Logo\n loop: 1, // Run the video in a loop\n fs: 0, // Hide the full screen button\n rel: 0,\n enablejsapi: 1,\n playsinline: 1\n },\n events: {\n onReady: function (e) {\n e.target.mute();\n e.target.setPlaybackQuality('hd1080');\n e.target.playVideo();\n var emotionalContent = document.getElementsByClassName('emotional-home-content')[0];\n emotionalContent.classList.add('tween');\n },\n onStateChange: function (e) {\n if (e && e.data === 1) {\n var videoHolder = document.getElementById('carouselHomeVideo');\n if (videoHolder && videoHolder.id) {\n videoHolder.classList.remove('loading');\n }\n } else if (e && e.data === 0) {\n e.target.playVideo();\n }\n }\n }\n });\n };\n \n // load the Youtube Iframe API script\n let script = document.createElement('script');\n script.src = 'https://www.youtube.com/iframe_api';\n next.container.appendChild(script);\n }\n }\n }\n }\n ],\n});\n"],"sourceRoot":""}