{"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/scrollAnimation.js","webpack:///./scripts/app.js","webpack:///./scripts/components/thom_advanced_search.js","webpack:///./scripts/components/thom_form.js","webpack:///./scripts/components/thom_map.js","webpack:///./scripts/components/THOM/THOM.global.js","webpack:///./scripts/components/THOM/THOM.wishlist.js","webpack:///./scripts/components/wishlist.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","$","addClass","find","unbind","click","e","preventDefault","not","removeClass","hasClass","scrollbar","on","text","this","elems","elems_n","elems_H","elems_max","close","isNumeric","each","outerHeight","height","css","mCustomScrollbar","dropdown","document","getElementsByClassName","_","navbar","navbarToggler","querySelectorAll","forEach","item","addEventListener","event","show","hide","navbarElement","querySelector","classList","contains","navbarShowHidetPixels","clientHeight","func","timeout","wait","arguments","undefined","immediate","context","args","later","callNow","clearTimeout","setTimeout","debounce","scrollingElement","scrollTop","offsetTop","add","remove","searchOverlay","navbarSearchToggler","tl","gsap","registerPlugin","EasePack","CustomEase","scrollAnimation","locoScroll","desktopEverInit","mobileEverInit","isMobile","console","log","ScrollTrigger","refresh","initMobileWebsite","body","style","hero","hero_step_2","set","autoAlpha","y","trigger","end","scroller","invalidateOnRefresh","scrub","onEnter","videosBlockStart","onEnterBack","onLeave","videosBlockStop","onLeaveBack","step_2_anim","to","duration","paused","self","progress","play","then","kill","blocksImages","utils","toArray","image","anim","initWebSite","startMobileWebsite","startWebSite","animationContent","blocks","totalPixelScrollable","innerWidth","innerHeight","heroImgTiming","timeline","defaults","ease","scrollTrigger","start","pin","pinSpacing","anticipatePin","opacity","yPercent","scale","onComplete","block","index","allImg","subgrid","txt_1","img_1","img_2","img_3","img_4","scrollableImg","scrollableImgRight","scrollableImgLeft","scrollableTxt","semiFastScrollableImg","fastScrollableImg","firstTiming","onStart","onReverseComplete","top","left","bottom","width","is","x","right","xPercent","update","media","videoElement","videoSrc","dataset","src","load","pause","loadingTimeline","siteReady","runSite","Promise","resolve","reject","targets","getChildren","target","selector","clearProps","clearScene","_regeneratorRuntime","a","iterator","asyncIterator","u","define","configurable","writable","wrap","Generator","Context","makeInvokeMethod","tryCatch","type","arg","h","f","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","v","values","g","defineIteratorMethods","_invoke","AsyncIterator","invoke","_typeof","__await","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","constructor","mark","setPrototypeOf","__proto__","awrap","async","keys","reverse","pop","prev","charAt","stop","rval","handle","complete","finish","catch","delegateYield","asyncGeneratorStep","gen","_next","_throw","info","error","_asyncToGenerator","fn","err","_defineProperty","obj","toPrimitive","String","Number","_toPrimitive","jQuery","require","jQueryBridget","Packery","bridget","imagesLoaded","config","force3D","ignoreMobileResize","LocomotiveScroll","el","smooth","tablet","smartphone","setCookie","days","date","Date","setTime","getTime","expires","toGMTString","cookie","MyThomFormResponseAction","title","myHtml","appendTo","modal","scrollerProxy","scrollTo","scroll","instance","getBoundingClientRect","pinType","transform","exists","clickClose","escapeClose","fadeDuration","fadeDelay","showClose","spinnerHtml","blockerClass","flktyHomeFocus","flktyProjectsPreviewBk","CarouselParallax","carousel","cell","imgs","transformProp","documentElement","slides","slide","img","Math","abs","slidesWidth","outerWidth","myThomMapMarkerIcon","isDett","category","params","default","icon","stores","myLazyLoad","finishesLoaded","loadAllFinishes","url","append","postdata","selectedFilters","itemsXPage","orderByPosition","JSON","stringify","ajax","contentType","dataType","success","html","items","ThomFinishesSearch","thomsearch","filterClass","filtersContent","itemsPerPage","resultsCallback","urlContent","filterFinishes","ThomAdvancedSearch","myGoogleMaps","jobControl","content","attr","id","parseInt","slideDown","resetForm","val","offset","callback","myapp","myMapKey","_gmapkey","loader","Loader","apiKey","version","libraries","LazyLoad","container","unobserve_entered","elements_selector","callback_loaded","thom_wishlist","THOM","WISHLIST","list_wishlist","Init","icons_wishlist","shareButtonsInit","link","$temp","select","execCommand","toggleClass","shareButtons","firstLL","flktyHomeOptions","autoPlay","cellSelector","pauseAutoPlayOnHover","prevNextButtons","pageDots","bgLazyLoad","lazyLoad","fade","wrapAround","draggable","cellElement","matchMedia","matches","flktyHome","Flickity","$cellButtonGroup","$cellButtons","filter","eq","selectedIndex","selectedElements","attributes","textContent","flktyProduct","$this","slideToggle","tabChange","ready","previous","subtitle","_ref","_callee","google","myGoogleMapsProject","myMarker","bounds","_context","maps","Map","center","lat","latitude","lng","longitude","zoom","maxZoom","streetViewControl","mapTypeControl","scrollwheel","zoomControlOptions","position","ControlPosition","RIGHT_TOP","size","Size","Marker","map","LatLngBounds","extend","getPosition","fitBounds","_x","packeryGalleryList","itemSelector","transitionDuration","percentPosition","layout","$hiddenEl","$moreBtn","$lessBtn","gallery","lightGallery","plugins","lgZoom","lgVideo","licenseKey","counter","download","getCaptionFromTitleOrAlt","vimeoPlayerParams","byline","portrait","dnt","youTubePlayerParams","modestbranding","showinfo","controls","rel","packeryCompanyStoryList","_createResizeClass","element","createMethods","infinitContainer","FlickityResize","resize","$list","elms","parent","slideUp","OPEN","AFTER_CLOSE","contactForm","thomForm","errorMsg","errorCallback","myTitle","myMessage","fadeIn","myCallback","_ref2","_callee2","_context2","_x2","newsletterForm","animate","loginForm","registrationForm","jobForm","packeryNewsList","newsPackery","nextURL","infinitContainerScrollTrigger","updateNextURL","doc","updateInfiniteScroll","newHTML","textStatus","jqXHR","nextPag","appended","errorThrown","THOM_searchItemsPerPage","infScroll","destroy","THOM_searchUrlContent","packeryDownloadList","downloadPackery","subDropdown","newDropdown","region","_ref3","_callee3","_context3","thomMap","autocomplete","sendJson","fitbounds","getMarkerIcon","searchCallback","styled","StyledMapType","thomMap_url","zoomControl","zoomControlPosition","zoomToMarker","_x3","_ref4","_callee4","_context4","autocompleteOnly","fadeOut","_x4","galleryList","$lggallery","first","btnVideo","blur","change","filename","replace","restart","volume","state","hover","currentTime","muted","itemOnEnter","itemOnLeave","playerOptions","loop","autoplay","player","Player","setCurrentTime","seconds","setMuted","analyticsUpdate","PointerEvent","navigator","maxTouchPoints","TouchEvent","location","href","closest","nameEQ","ca","split","substring","indexOf","getCookie","CLOSE","factory","Thomsearch","settings","onFilterClick","resultsNumber","submit","initials","$el","resizing","options","htmlExpr","init","creation","setlisteners","loadingShow","selected_val","_thisId","THOM_searchFilters","getObjects","getFiltered","getFilteredContents","createElement","setAttribute","innerHTML","loadingHide","refreshFilters","Filters","Id","Name","filters","filter_Id","filter_isSelected","Selected","filter_isActive","Active","keyToModify","newVal","newValue","objects","concat","ret","opt","Array","validator","addMethod","methods","unobtrusive","adapters","addBool","a0","steps","stepsCallback","$inputFile","$inputFileLabel","inputFileLabelVal","Plugin","_classCallCheck","listeners","formClass","parse","prop","response","keypress","which","fileName","files","getAttribute","mydate","datepicker","language","replaceForm","action","valid","formdata","currId","token","mtcaptcha","getVerifiedToken","ajaxSubmit","beforeSubmit","formData","jqForm","responseText","statusText","xhr","$form","myStatus","Status","Message","Title","myUrl","Url","nextStep","isFunction","ThomFormSuccessCallback","clearForm","grecaptcha","resetUI","res","goNextStep","currAction","resAction","currStep","ThomMap","backgroundColor","geolocation_btn","getClusterIcons","getDistance","otherdatas","searchBtn","RIGHT_BOTTOM","infowindow","infowindowW","infowindowH","_bounds","mapContainer","marker","markers","markerCluster","overlay","positions","_this","getCenter","setCenter","input","getElementById","places","Autocomplete","fields","strictBounds","addListener","getPlace","searchPoints","geometry","geocoder","Geocoder","latlng","parseFloat","geocode","results","status","alert","geolocate","geolocation","getCurrentPosition","coords","LatLng","geocodeLatLng","formatted_address","spinner","panControl","fullscreenControl","mapTypes","setMapTypeId","markersClear","clearMarkers","mapPositions","radius","param","crossDomain","fail","always","isNation","address_components","types","ico","ico_h","markersCreate","count","thiselem","distance","cat","currentposition","latLngA","latLngB","spherical","computeDistanceBetween","toFixed","createPosition","setMap","proxy","icon_h","txt","MarkerClusterer","styles","OverlayView","draw","markerListeners","itemOpenOverlay","markerOverlay","fitToMarker","markerBounds","markerlatlng","getNorthEast","equals","getSouthWest","extendPoint1","extendPoint2","markerOverlay_reposition","lenght","point","getProjection","fromLatLngToContainerPixel","filterMarkers","setVisible","selectAllChecked","checkedCaregory","allCheckedElem","getElementsByName","checked","filterChecker","categories","mymarker","inArray","listmarker","GLOBAL","ACTION","RESPONSE","culture","statusEnum","noPermission","contentTypeNotEnabled","genericError","modelStateError","notAvailable","extensionNotAllowed","schemaErrors","fileLoadException","json","arr","str","eval","uniqueId","debug","Debug","Days","UniqueId","Items","GetCookieItems","ARRcookies","substr","ex","SetCookieItems","expiryDate","setDate","getDate","toUTCString","Index","num","Add","Remove","Count","COUNT","BTN_ADD","BTN_REMOVE","product_ID","product_NAME","product_IMAGE","product_IMAGEHOVER","product_URL","product_Wishlist_Dialog","EventAdd","EventRemove","Refresh","PrintCount","ImageId","ImageHoverId","Dialog","LIST","LIST_DESCRIPTION"],"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([30,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).addClass('init');\n\t\t$(elem).find('.thom-dropdown--label').unbind(\"click\");\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\n\t\tif($(elem).hasClass('replaceVal')){\n\t\t\t$(elem).find('.thom-dropdown--options-item').on('click', function(){\n\t\t\t\t$(elem).find('.thom-dropdown--label-item').text($(this).text()); \n\t\t\t});\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\n\tvar newdropdowns = function () {\n\t\tlet dropdown = $('thom-dropdown').not('.init');\n\t\tfor( var i = 0; i <= dropdown.length; i++) {\n\t\t\tvar _ = dropdown[i];\n\n\t\t\tif (_) {\n\t\t\t\t/* resize(_);\n\t\t\t\t$(window).on('resizeend', 250, function () {\n\t\t\t\t\tresize(_);\n\t\t\t\t}); */\n\t\t\t\tmob_nav(_);\n\t\t\t}\n\t\t}\n\n\t}\n}\nexport default thomDropdown\n","/* eslint-disable no-inner-declarations */\n/**\n * Navbar\n */\n// import LocomotiveScroll from 'locomotive-scroll';\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 let scrollPos = 0;\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.querySelectorAll('.js-navbar-toggler');\n var windowScrollTop = 0;\n // menu button\n if (navbarToggler) {\n navbarToggler.forEach(function(item) {\n item.addEventListener('click', function (event) {\n event.preventDefault(); \n if($('body').hasClass('navbar--opened')){\n $('body').removeClass('navbar--opened');\n // resetPosition (windowScrollTop)\n $('.c-scrollbar').show();\n\n } else if ($('body').hasClass('navbar--search-opened')) {\n $('body').removeClass('navbar--search-opened');\n // resetPosition (windowScrollTop)\n $('.c-scrollbar').show();\n } else {\n windowScrollTop = scrollPos;\n $('body').removeClass('navbar--search-opened');\n $('body').addClass('navbar--opened');\n $('.c-scrollbar').hide();\n // manteinPosition (windowScrollTop);\n }\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 // locoScroll.scrollTo(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\n function navbarShowHide () {\n var scrolled = document.scrollingElement.scrollTop;\n var position = navbarElement.offsetTop;\n if (scrollPos > position + navbarShowHidetPixels) {\n navbarElement.classList.add('on-stage')\n } else {\n navbarElement.classList.remove('on-stage')\n }\n }\n\n window.addEventListener('scroll', debounce(navbarShowHide))\n\n // locoScroll.on('scroll', debounce(navbarShowHide));\n\n // locoScroll.on('scroll', (obj) => {\n // // do something\n // scrollPos = obj.scroll.y;\n // debounce(navbarShowHide())\n // });\n\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","/* eslint-disable no-dupe-keys */\n/* eslint-disable no-unused-vars */\nimport { gsap } from 'gsap';\nimport { ScrollTrigger } from 'gsap/ScrollTrigger';\nimport { EasePack } from 'gsap/EasePack';\nimport { CustomEase } from 'gsap/CustomEase';\n// import imagesLoaded from 'imagesloaded';\n\ngsap.registerPlugin(EasePack, CustomEase);\nlet tl;\nconst scrollAnimation = (locoScroll) => {\n \n let desktopEverInit = false, \n mobileEverInit = false,\n isMobile = false,\n elsToClear = '',\n firstTime = true;\n const breakpointWidth = 640;\n\n console.log('scrollAnimation')\n\n ScrollTrigger.refresh();\n\n const initMobileWebsite = () => {\n // console.log('initMobileWebsite')\n \n isMobile = true;\n document.body.style.height = \"unset\";\n \n let hero = document.querySelector('.hero');\n let hero_step_2 = document.querySelector('.hero_step_2');\n \n \n // console.log('mobileEverInit = ' + mobileEverInit)\n if(mobileEverInit === false) {\n mobileEverInit = true;\n\n if(hero){\n gsap.set('.hero-top, .hero-imgs', {\n autoAlpha: 0, \n y: 100\n });\n\n // Use callbacks to control the state of the animation\n ScrollTrigger.create({\n trigger: '.hero-intro',\n end: \"bottom bottom\",\n scroller: \".smooth-scroll\",\n invalidateOnRefresh: true,\n scrub: true,\n //once: true,\n // markers: true,\n onEnter: () => {\n //console.log('onEnter');\n videosBlockStart(hero)\n },\n onEnterBack: function(){\n videosBlockStart(hero)\n },\n onLeave: function(){\n videosBlockStop(hero)\n },\n onLeaveBack: function(){\n videosBlockStop(hero)\n }\n });\n }\n\n if(hero_step_2){\n gsap.set(hero_step_2, {\n autoAlpha: 0, \n y: 100\n });\n\n const step_2_anim = gsap.to(hero_step_2, {duration: 1, autoAlpha: 1, y: 0, paused: true});\n \n // Use callbacks to control the state of the animation\n ScrollTrigger.create({\n trigger: hero_step_2,\n end: \"bottom bottom\",\n scroller: \".smooth-scroll\",\n //once: true,\n // markers: true,\n invalidateOnRefresh: true,\n scrub: true,\n onEnter: self => {\n // console.log('onEnter STEP 2');\n if(step_2_anim.progress() === 0) {\n //console.log('onEnter play');\n step_2_anim.play().then(() => self.kill())\n }\n }\n });\n }\n \n const blocksImages = gsap.utils.toArray('.imgWrp');\n \n // Set things up\n gsap.set(blocksImages, {\n autoAlpha: 0,\n y: 100\n });\n \n blocksImages.forEach((image, i) => {\n // console.log('boxes', image);\n // Set up your animation\n let anim = gsap.to(image, {duration: 1, autoAlpha: 1, y: 0, paused: true});\n \n // Use callbacks to control the state of the animation\n ScrollTrigger.create({\n trigger: image,\n end: \"bottom bottom\",\n scroller: \".smooth-scroll\",\n //once: true,\n // markers: true,\n onEnter: self => {\n // console.log('onEnter anim IMAGE ' + image);\n if(anim.progress() === 0) {\n //console.log('onEnter play');\n anim.play().then(() => {\n self.kill()\n videosBlockStart(image)\n })\n }\n },\n onEnterBack: function(){\n videosBlockStart(image)\n },\n onLeave: function(){\n videosBlockStop(image)\n },\n onLeaveBack: function(){\n videosBlockStop(image)\n }\n });\n });\n }\n }\n\n const initWebSite = () => {\n isMobile = false;\n \n if(desktopEverInit === false) {\n desktopEverInit = true;\n }\n }\n \n const startMobileWebsite = () => {\n // console.log('startMobileWebsite')\n\n gsap.to('.hero-top, .hero-imgs', {\n duration: 1, \n autoAlpha: 1, \n y: 0\n });\n \n }\n \n const startWebSite = () => {\n console.log('startWebSite')\n \n let animationContent = document.querySelector('.scrollAnim');\n let hero = document.querySelector('.hero');\n let hero_step_2 = animationContent.querySelector('.hero_step_2');\n let blocks = gsap.utils.toArray('.block');\n let totalPixelScrollable = 4 * window.innerWidth + 6 * window.innerHeight;\n let heroImgTiming = \"<+=1.5\";\n\n if(hero){\n elsToClear += '.hero,';\n }\n if(hero_step_2){\n elsToClear += '.hero_step_2,';\n }\n if(blocks){\n elsToClear += '.block,';\n }\n\n tl = gsap.timeline({\n paused: true,\n defaults: { duration: 3, ease: 'none' },\n scrollTrigger: {\n trigger: animationContent,\n scroller: \".smooth-scroll\",\n start: 'top top',\n end: 'top+=' + totalPixelScrollable,\n scrub: true,\n pin: true,\n pinSpacing: true,\n invalidateOnRefresh: true,\n anticipatePin: 1,\n // markers: true\n }\n })\n \n // Hero - SET\n if(hero){\n gsap.to(hero, {\n opacity: 1,\n duration: 0.1\n })\n\n if(hero.querySelector('.hero-bottom')){\n gsap.set('.hero-bottom', {\n opacity:0, \n yPercent: 10\n })\n elsToClear += '.hero-bottom,'\n }\n if(hero.querySelector('.hero-imgs')){\n gsap.set('.hero-imgs', {\n scale: 1.25, \n yPercent: 30\n });\n\n elsToClear += '.hero-imgs,'\n }\n if(hero.querySelector('.hero-bottom')){\n gsap.to('.hero-bottom', {\n duration: 0.6,\n opacity:1,\n yPercent: 0,\n onComplete: function(){\n videosBlockStart(hero)\n }\n })\n } \n }\n \n // Hero Step 2 - image + text - SET\n if(hero_step_2){\n if(hero_step_2.querySelector('.col_1_img')){\n gsap.set('.hero_step_2 .col_1_img', {y: window.innerHeight, yPercent: 100})\n\n elsToClear += '.hero_step_2 .col_1_img,'\n }\n if(hero_step_2.querySelector('.col_2')){\n gsap.set('.hero_step_2 .col_2', {yPercent: 100});\n \n elsToClear += '.hero_step_2 .col_2,'\n }\n\n heroImgTiming = \">-=8\";\n }\n\n // Hero - PLAY [start] \n if(hero){\n tl\n .to('.hero-txt', {\n yPercent: -50,\n duration: 1.9,\n ease: \"power1.in\"\n })\n .to(\".hero-top\", {\n yPercent: -100,\n duration: 1.8,\n ease: \"power1.in\"\n }, \"<\")\n .to('.hero-imgs', {\n scale: 1,\n duration: 1.8,\n ease: \"power1.out\"\n }, \"<\")\n .to('.hero-imgs', {\n yPercent: 0,\n duration: 1.8,\n ease: \"power1.out\"\n }, \"<\")\n\n }\n\n // Hero Step 2 - image + text - PLAY\n if (hero_step_2) {\n tl.to('.hero_step_2 .col_2_txt', {\n yPercent: -100,\n y: -window.innerHeight,\n duration: 5\n }, \">-=0.5\")\n\n if(blocks.length != 0){\n \n tl.to('.hero_step_2 .col_1_img', {\n yPercent: -100,\n scale: 1.8,\n y: -window.innerHeight,\n duration: 14\n }, \"<-=2\")\n }\n }\n\n // Hero - PLAY [end]\n if(hero && blocks.length != 0){\n tl\n .to('.hero-imgs', { \n yPercent: -15,\n scale: 1.25,\n ease: CustomEase.create(\"custom\", \"M0,0 C0.188,0 0.33,0.175 0.476,0.322 0.74,0.587 0.95,0.91 1,1 \"),\n duration: 2.5\n }, heroImgTiming)\n .to('.hero-bottom', {\n height: 0,\n // opacity:0,\n ease: CustomEase.create(\"custom\", \"M0,0 C0.188,0 0.33,0.175 0.476,0.322 0.74,0.587 0.95,0.91 1,1 \"),\n duration: 2.5\n }, \"<\")\n }\n \n // BLOCKS\n if(blocks){\n\n blocks.forEach((block, index) => {\n\n let allImg = block.querySelectorAll('.imgWrp');\n let subgrid = block.querySelector('.subgrid');\n let txt_1 = block.querySelector('.txtWrp_1');\n let img_1 = block.querySelector('.imgWrp_1');\n let img_2 = block.querySelector('.imgWrp_2');\n let img_3 = block.querySelector('.imgWrp_3');\n let img_4 = block.querySelector('.imgWrp_4');\n let scrollableImg = block.querySelector('.scrollableImg');\n let scrollableImgRight = block.querySelector('.scrollableImgRight');\n let scrollableImgLeft = block.querySelector('.scrollableImgLeft');\n let scrollableTxt = block.querySelector('.scrollableTxt');\n let semiFastScrollableImg = block.querySelector('.semiFastScrollableImg');\n let fastScrollableImg = block.querySelector('.fastScrollableImg');\n let firstTiming = \">+=0.5\";\n\n if(allImg){\n elsToClear += '.imgWrp,'\n }\n if(subgrid){\n elsToClear += '.subgrid,'\n }\n if(txt_1){\n elsToClear += '.txtWrp_1,'\n }\n if(img_1){\n elsToClear += '.imgWrp_1,'\n }\n if(img_2){\n elsToClear += '.imgWrp_2,'\n }\n if(img_3){\n elsToClear += '.imgWrp_3,'\n }\n if(img_4){\n elsToClear += '.imgWrp_4,'\n }\n if(scrollableImg){\n elsToClear += '.scrollableImg,'\n }\n if(scrollableImgRight){\n elsToClear += '.scrollableImgRight,'\n }\n if(scrollableImgLeft){\n elsToClear += '.scrollableImgLeft,'\n }\n if(scrollableTxt){\n elsToClear += '.scrollableTxt,'\n }\n if(semiFastScrollableImg){\n elsToClear += '.semiFastScrollableImg,'\n }\n if(fastScrollableImg){\n elsToClear += '.fastScrollableImg,'\n }\n\n if($(block).index() == 1){\n firstTiming = \">-=0.7\";\n } \n\n // if($(block).index() === blocks.length){\n // // console.log('3 blocchi')\n // tl.eventCallback(\"onStart\", function(){\n // // console.log('tl on start')\n // // $('.scrollAnim').parent().css({\n // // 'height': totalPixelScrollable - window.innerHeight / blocks.length,\n // // 'padding-bottom': totalPixelScrollable - window.innerHeight / blocks.length\n // // }) \n // });\n \n // }\n\n // block opacity\n tl\n .to(block, {\n opacity: 1,\n duration: 0.1,\n onStart: function(){\n block.classList.add('anim')\n videosBlockStart(block)\n },\n onReverseComplete: function(){\n block.classList.remove('anim')\n videosBlockStop(block)\n }\n }, firstTiming)\n\n if(block.classList.contains('block_A')){\n \n gsap.set(allImg, { scale: 1, y: window.innerHeight});\n gsap.set(txt_1, { scale: 1, y: window.innerHeight});\n\n gsap.set(img_1, { \n top: \"10%\",\n left: '40%',\n })\n gsap.set(txt_1, {\n bottom: \"20%\",\n left: '5%',\n })\n gsap.set(img_2, {\n top: \"-5%\",\n left: '8%',\n })\n gsap.set(img_3, {\n top: \"30%\",\n left: '-40%',\n })\n gsap.set(img_4, {\n bottom: 0,\n left: '-50%',\n })\n gsap.set(subgrid, {\n width: \"85%\",\n height: \"100%\",\n yPercent: 50\n })\n\n tl\n // go into viewport\n .to(txt_1, {\n y: 0,\n duration: 0.8,\n ease: \"power1.out\"\n }, \"<\")\n .to(img_2, {\n y: 0,\n duration: 1,\n ease: \"power1.out\",\n }, \"<-=0.2\")\n .to(img_1, {\n y: 0,\n duration: 1,\n ease: \"power1.out\",\n }, \"<+=0.2\")\n .to(img_3, {\n y: 0,\n duration: 0.8,\n ease: \"power1.out\",\n }, \"<+=0.4\")\n .to(subgrid, {\n duration: 2,\n height: \"auto\",\n yPercent: 0,\n ease: \"power1.out\",\n }, \"<\")\n .to(img_4, {\n y: 0,\n duration: 1,\n ease: \"power1.out\",\n onStart: function(){\n block.classList.add('active');\n },\n onReverseComplete: function(){\n block.classList.remove('active');\n }\n }, \"<+=0.3\")\n\n // allargo\n .to(img_1, { \n top: \"0%\",\n left: \"0%\",\n scale: .75,\n ease: \"power4.out\",\n duration: 2\n }, \">+=1\")\n .to(txt_1, {\n top: \"0%\",\n left: \"0%\",\n scale: .75,\n duration: 1.8,\n ease: \"power4.out\",\n }, \"<\")\n .to(img_2, {\n top: \"0%\",\n left: \"0%\",\n scale: 1.15,\n ease: \"power4.out\",\n duration: 2\n }, \"<\")\n .to(img_3, {\n top: \"0%\",\n left: \"0%\",\n scale: .75,\n ease: \"power4.out\",\n duration: 2\n }, \"<\")\n .to(img_4, {\n bottom: \"0%\",\n left: \"0%\",\n scale: .75,\n ease: \"power4.out\",\n duration: 2\n }, \"<\")\n .to(subgrid, {\n width: \"100%\",\n ease: \"power4.out\",\n duration: 2\n }, \"<\")\n\n // go away\n if(!$(block).is(':last-child')){\n tl\n .to(scrollableImg, {\n y: -window.innerHeight,\n ease: CustomEase.create(\"custom\", \"M0,0 C0.188,0 0.33,0.175 0.476,0.322 0.74,0.587 0.95,0.91 1,1 \"),\n duration: 4,\n onStart: function(){\n block.classList.remove('active');\n }\n }, \">+=0.2\")\n .to(scrollableImgRight, {\n y: -window.innerHeight,\n ease: CustomEase.create(\"custom\", \"M0,0 C0.188,0 0.33,0.175 0.476,0.322 0.74,0.587 0.95,0.91 1,1 \"),\n duration: 2.5,\n }, \"<\")\n .to(scrollableTxt, {\n y: -window.innerHeight,\n ease: CustomEase.create(\"custom\", \"M0,0 C0.188,0 0.33,0.175 0.476,0.322 0.74,0.587 0.95,0.91 1,1 \"),\n duration: 2,\n onReverseComplete: function(){\n block.classList.add('active');\n }\n }, \"<\") \n .to(semiFastScrollableImg, {\n y: -window.innerHeight,\n ease: CustomEase.create(\"custom\", \"M0,0 C0.188,0 0.33,0.175 0.476,0.322 0.74,0.587 0.95,0.91 1,1 \"),\n duration: 3.2,\n }, \"<\") \n .to(fastScrollableImg, {\n y: -window.innerHeight,\n ease: CustomEase.create(\"custom\", \"M0,0 C0.188,0 0.33,0.175 0.476,0.322 0.74,0.587 0.95,0.91 1,1 \"),\n duration: 2.4,\n }, \"<\")\n .to(subgrid, {\n duration: 1.8,\n yPercent: -25,\n ease: CustomEase.create(\"custom\", \"M0,0 C0.188,0 0.33,0.175 0.476,0.322 0.74,0.587 0.95,0.91 1,1 \"),\n }, \"<\")\n }\n \n }else if(block.classList.contains('block_B')){\n\n gsap.set(allImg, { scale: 1, x: window.innerWidth});\n gsap.set(txt_1, { scale: 1, x: window.innerWidth});\n\n gsap.set(img_1, { \n left: \"40%\", \n bottom: \"20%\",\n })\n gsap.set(txt_1, {\n left: \"15%\",\n top: \"20%\",\n })\n gsap.set(img_2, { \n left: \"10%\", \n top: \"5%\"\n })\n gsap.set(img_3, { \n right: \"40%\", \n top: \"25%\"\n })\n gsap.set(img_4, { \n right: \"50%\", \n bottom: \"0%\"\n })\n gsap.set(subgrid, {\n width: \"85%\",\n xPercent: 50\n })\n\n tl\n // go into viewport\n .to(img_2, {\n x: 0,\n duration: 1,\n ease: \"power1.out\"\n }, \"<\")\n .to(img_3, {\n x: 0,\n duration: 0.8,\n ease: \"power1.out\",\n }, \"<+=0.8\")\n .to(subgrid, {\n duration: 2,\n xPercent: 0,\n ease: \"power1.out\",\n }, \"<\")\n .to(txt_1, {\n x: 0,\n duration: 1.3,\n ease: \"power1.out\",\n }, \"<+=0.2\")\n .to(img_4, {\n x: 0,\n duration: 1,\n ease: \"power1.out\",\n }, \"<+=0.3\")\n .to(img_1, {\n x: 0,\n duration: 1,\n ease: \"power1.out\",\n onStart: function(){\n block.classList.add('active');\n },\n onReverseComplete: function(){\n block.classList.remove('active');\n }\n }, \"<+=0.2\")\n \n // allargo\n .to(img_1, { \n left: \"0%\", \n bottom: \"0%\",\n scale: .75,\n ease: \"power4.out\",\n duration: 2\n }, \">+=1\")\n .to(txt_1, {\n left: \"0%\", \n top: \"0%\",\n scale: .75,\n duration: 1.8,\n ease: \"power4.out\",\n }, \"<\")\n .to(img_2, { \n left: \"0%\", \n top: \"5%\",\n scale: 1.15,\n ease: \"power4.out\",\n duration: 2\n }, \"<\")\n .to(img_3, { \n right: \"0%\", \n top: \"0%\",\n scale: .75,\n ease: \"power4.out\",\n duration: 2\n }, \"<\")\n .to(img_4, { \n right: \"0%\", \n bottom: \"0%\",\n scale: .75,\n ease: \"power4.out\",\n duration: 2\n }, \"<\")\n .to(subgrid, {\n width: \"100%\",\n ease: \"power4.out\",\n duration: 2\n }, \"<\")\n\n // go away\n if(!$(block).is(':last-child')){\n tl\n .to(scrollableImg, {\n y: -window.innerHeight,\n ease: CustomEase.create(\"custom\", \"M0,0 C0.188,0 0.33,0.175 0.476,0.322 0.74,0.587 0.95,0.91 1,1 \"),\n duration: 4,\n onStart: function(){\n block.classList.remove('active');\n }\n }, \">+=0.2\")\n .to(scrollableImgLeft, {\n y: -window.innerHeight,\n ease: CustomEase.create(\"custom\", \"M0,0 C0.188,0 0.33,0.175 0.476,0.322 0.74,0.587 0.95,0.91 1,1 \"),\n duration: 2.5,\n }, \"<\")\n .to(scrollableTxt, {\n y: -window.innerHeight,\n ease: CustomEase.create(\"custom\", \"M0,0 C0.188,0 0.33,0.175 0.476,0.322 0.74,0.587 0.95,0.91 1,1 \"),\n duration: 2,\n onReverseComplete: function(){\n block.classList.add('active');\n }\n }, \"<\") \n .to(semiFastScrollableImg, {\n y: -window.innerHeight,\n ease: CustomEase.create(\"custom\", \"M0,0 C0.188,0 0.33,0.175 0.476,0.322 0.74,0.587 0.95,0.91 1,1 \"),\n duration: 2.8,\n }, \"<\") \n .to(fastScrollableImg, {\n y: -window.innerHeight,\n ease: CustomEase.create(\"custom\", \"M0,0 C0.188,0 0.33,0.175 0.476,0.322 0.74,0.587 0.95,0.91 1,1 \"),\n duration: 2.4,\n }, \"<\")\n .to(subgrid, {\n duration: 1.8,\n yPercent: -25,\n ease: CustomEase.create(\"custom\", \"M0,0 C0.188,0 0.33,0.175 0.476,0.322 0.74,0.587 0.95,0.91 1,1 \"),\n }, \"<\")\n } \n }else if(block.classList.contains('block_C')){\n\n gsap.set(allImg, { scale: 1, y: window.innerHeight});\n gsap.set(txt_1, { scale: 1, y: window.innerHeight});\n\n gsap.set(img_1, { \n left: \"20%\",\n top: \"10%\"\n })\n gsap.set(img_2, { \n left: \"30%\",\n bottom: \"0%\"\n })\n gsap.set(img_3, { \n left: \"-5%\",\n top: \"-5%\"\n })\n gsap.set(txt_1, {\n right: \"15%\",\n top: \"10%\"\n })\n gsap.set(img_4, { \n right: \"40%\",\n bottom: \"5%\"\n })\n gsap.set(subgrid, {\n width: \"85%\",\n height: \"100%\",\n yPercent: 50\n })\n\n tl\n // go into viewport\n .to(txt_1, {\n y: 0,\n duration: 0.8,\n ease: \"power1.out\"\n }, \"<\")\n .to(img_2, {\n y: 0,\n duration: 1,\n ease: \"power1.out\",\n }, \"<-=0.2\")\n .to(img_1, {\n y: 0,\n duration: 1,\n ease: \"power1.out\",\n }, \"<+=0.2\")\n .to(img_3, {\n y: 0,\n duration: 0.8,\n ease: \"power1.out\",\n }, \"<+=0.4\")\n .to(subgrid, {\n duration: 2,\n height: \"auto\",\n yPercent: 0,\n ease: \"power1.out\",\n }, \"<\")\n .to(img_4, {\n y: 0,\n duration: 1,\n ease: \"power1.out\",\n onStart: function(){\n block.classList.add('active');\n },\n onReverseComplete: function(){\n block.classList.remove('active');\n }\n }, \"<+=0.3\")\n\n // allargo\n .to(img_1, { \n left: \"0%\",\n top: \"0%\",\n scale: .75,\n ease: \"power4.out\",\n duration: 2\n }, \">+=0.8\")\n .to(img_2, { \n left: \"0%\",\n bottom: \"0%\",\n scale: .75,\n ease: \"power4.out\",\n duration: 0.8\n }, \"<\")\n .to(img_3, { \n left: \"0%\",\n top: \"0%\",\n scale: 1.15,\n ease: \"power4.out\",\n duration: 1.2\n }, \"<\")\n .to(txt_1, {\n right: \"0%\",\n top: \"0%\",\n scale: .75,\n ease: \"power4.out\",\n duration: 1.5\n }, \"<\")\n .to(img_4, { \n right: \"0%\",\n bottom: \"0%\",\n scale: .75,\n ease: \"power4.out\",\n duration: 0.8\n }, \"<\")\n .to(subgrid, {\n width: \"100%\",\n ease: \"power4.out\",\n duration: 2\n }, \"<\")\n\n // go away\n if(!$(block).is(':last-child')){\n tl\n .to(scrollableImg, {\n y: -window.innerHeight,\n ease: CustomEase.create(\"custom\", \"M0,0 C0.188,0 0.33,0.175 0.476,0.322 0.74,0.587 0.95,0.91 1,1 \"),\n duration: 4,\n onStart: function(){\n block.classList.remove('active');\n }\n }, \">+=0.2\")\n .to(scrollableImgLeft, {\n y: -window.innerHeight,\n ease: CustomEase.create(\"custom\", \"M0,0 C0.188,0 0.33,0.175 0.476,0.322 0.74,0.587 0.95,0.91 1,1 \"),\n duration: 2.5,\n }, \"<\")\n .to(scrollableTxt, {\n y: -window.innerHeight,\n ease: CustomEase.create(\"custom\", \"M0,0 C0.188,0 0.33,0.175 0.476,0.322 0.74,0.587 0.95,0.91 1,1 \"),\n duration: 2,\n }, \"<\") \n .to(semiFastScrollableImg, {\n y: -window.innerHeight,\n ease: CustomEase.create(\"custom\", \"M0,0 C0.188,0 0.33,0.175 0.476,0.322 0.74,0.587 0.95,0.91 1,1 \"),\n duration: 2.8,\n }, \"<\") \n .to(fastScrollableImg, {\n y: -window.innerHeight,\n ease: CustomEase.create(\"custom\", \"M0,0 C0.188,0 0.33,0.175 0.476,0.322 0.74,0.587 0.95,0.91 1,1 \"),\n duration: 2.4,\n onReverseComplete: function(){\n block.classList.add('active');\n }\n }, \"<\")\n .to(subgrid, {\n duration: 1.8,\n yPercent: -25,\n ease: CustomEase.create(\"custom\", \"M0,0 C0.188,0 0.33,0.175 0.476,0.322 0.74,0.587 0.95,0.91 1,1 \"),\n }, \"<\")\n }\n } \n });\n }\n\n console.log('finish all animations')\n \n // ScrollTrigger.refresh();\n\n setTimeout(function(){\n locoScroll.update();\n }, 50);\n }\n\n // video start\n const videosBlockStart = (block) => {\n var medias = block.querySelectorAll('.media');\n medias.forEach((media, index) => {\n if(media.querySelector('.video')){\n var videoElement = media.querySelector('.video');\n var videoSrc = videoElement.dataset.src;\n\n if(media.classList.contains('is-playing')){\n videoElement.play();\n }else{\n videoElement.src = videoSrc;\n videoElement.load();\n videoElement.addEventListener('canplay', (e) => {\n media.classList.add('is-playing');\n videoElement.play();\n });\n }\n }\n })\n }\n\n // video pause\n const videosBlockStop = (block) => {\n var medias = block.querySelectorAll('.media');\n medias.forEach((media, index) => {\n if(media.querySelector('.video')){\n var videoElement = media.querySelector('.video');\n videoElement.pause();\n }\n })\n }\n\n /***********************************/\n /********** Preload stuff **********/\n\n // Preload images\n const preloadImages = () => {\n // console.log('preloadImages')\n return new Promise((resolve, reject) => {\n // imagesLoaded(document.querySelectorAll(\".scrollAnim img\"), resolve);\n resolve()\n });\n };\n\n const resizeStuff = () => {\n // console.log('preloadresizeStuffImages')\n // console.log('resizeStuff tl : ', tl);\n if (tl) {\n clearScene(tl);\n }\n if (breakpointWidth < window.innerWidth) {\n console.log('resizeStuff desk')\n initWebSite();\n startWebSite();\n } else if (isMobile === false) {\n // console.log('resizeStuff isMobile')\n isMobile = true;\n // ScrollTrigger.defaults({ scroller: window });\n initMobileWebsite();\n startMobileWebsite();\n //to mobile stuff\n }\n };\n\n function clearScene(timeline) {\n console.log('clearScene')\n\n var targets = timeline.getChildren();\n for (var i = 0; i < targets.length; i++) {\n if (targets[i].target != null && targets[i].target != undefined) {\n gsap.set(targets[i].target.selector, { \n clearProps: \"all\"\n });\n }\n }\n // if (elsToClear) {\n // gsap.set(elsToClear, { clearProps: \"all\" });\n // }\n if (timeline.scrollTrigger) {\n timeline.scrollTrigger.kill(true);\n }\n timeline.pause(0).kill(true);\n }\n\n $(\"#spinner_timeline\").addClass(\"show\");\n\n function loadingTimeline() {\n console.log('loadingTimeline')\n\n // let loadingTl = gsap.timeline({\n // repeat: -1, \n // delay: .75\n // });\n \n // console.log(siteReady)\n // $(\"#spinner_timeline\").addClass(\"show\");\n // loadingTl.to('#spinner_timeline', {\n // opacity: 1,\n // zIndex: 1000\n // })\n // loadingTl.call(() => {\n // console.log('loadingTl CALL')\n \n // if(siteReady) {\n // console.log('site IS Ready')\n // loadingTl.kill();\n // $(\"#spinner_timeline\").removeClass(\"show\");\n // gsap.to('.scrollAnim', {\n // opacity: 1,\n // duration: 1\n // })\n // runSite();\n // } else {\n // console.log('site NO Ready')\n // }\n // })\n\n if(siteReady) {\n console.log('site IS Ready')\n // loadingTl.kill();\n $(\"#spinner_timeline\").removeClass(\"show\");\n gsap.to('.scrollAnim', {\n opacity: 1,\n duration: 1\n })\n runSite();\n } \n }\n\n function runSite() { \n if (breakpointWidth < window.innerWidth) {\n console.log('runSite desktop')\n startWebSite();\n } else {\n // console.log('runSite mobile');\n startMobileWebsite();\n }\n document.body.classList.remove(\"loading\");\n }\n\n let imgLoaded = false,\n domLoaded = false,\n siteReady = false;\n\n console.log('DOMContentLoaded done');\n domLoaded = true;\n // if (imgLoaded) {\n // siteReady = true;\n // } \n\n if (breakpointWidth < window.innerWidth) {\n initWebSite();\n } else {\n initMobileWebsite();\n }\n\n preloadImages().then(() => {\n console.log('preloadImages done');\n // locoScroll.update();\n // ScrollTrigger.refresh();\n\n imgLoaded = true;\n if (domLoaded) {\n siteReady = true;\n }\n\n loadingTimeline();\n });\n\n window.addEventListener(\"resize\", resizeStuff);\n\n}\n\nexport { scrollAnimation };","/**\n * @title App\n * @description Application entry point\n */\n\n\n// Jquery\nimport $ from \"jquery\";\nwindow.jQuery = $;\nwindow.$ = $;\n// Barba - pages transition\n// import barba from \"@barba/core\";\n// import barbaCss from \"@barba/css\";\n\nimport Flickity from \"flickity\";\nimport \"flickity/css/flickity.css\";\nrequire(\"flickity-fade\");\nrequire(\"flickity-bg-lazyload\");\nrequire(\"flickity-as-nav-for\");\n\nimport lightGallery from 'lightgallery';\nimport lgZoom from 'lightgallery/plugins/zoom';\nimport lgVideo from 'lightgallery/plugins/video';\n\n// Modal\nimport modal from \"jquery-modal\";\n\n// Lazyload image\nimport LazyLoad from \"vanilla-lazyload\";\n\nvar jQueryBridget = require(\"jquery-bridget\");\n// Infinite scroll\nvar InfiniteScroll = require(\"infinite-scroll\");\njQueryBridget( 'infiniteScroll', InfiniteScroll, $ );\n\n// Google maps api\nimport { Loader } from \"@googlemaps/js-api-loader\";\n\n// Components\n// import spinner from \"./components/spinner\";\n\nrequire(\"./components/thom_advanced_search\");\n\nvar Packery = require(\"packery\");\n$.bridget(\"packery\", Packery, $);\n\nvar imagesLoaded = require(\"imagesloaded\");\n\nrequire(\"jquery.resizeend\");\n\n// Thom Form\nrequire(\"./components/thom_form\");\n\n// Thom Map\nrequire(\"./components/thom_map\");\n// require(\"./components/thom_mapping\");\n\n// Modules\nimport navbar from \"../modules/navbar/navbar\";\nimport searchOverlay from \"../modules/navbar/search-overlay\";\nimport thomDropdown from \"../modules/dropdown/dropdown\";\n\n// wishlist\nrequire(\"./components/THOM/THOM.global\");\nrequire(\"./components/THOM/THOM.wishlist\");\nrequire(\"./components/wishlist\");\n\nimport \"@chenfengyuan/datepicker/dist/datepicker.min.js\";\nimport \"@chenfengyuan/datepicker/i18n/datepicker.it-IT\";\n// import \"@chenfengyuan/datepicker/i18n/datepicker.de-DE\";\n// import \"@chenfengyuan/datepicker/i18n/datepicker.fr-FR\";\n// import \"@chenfengyuan/datepicker/i18n/datepicker.pl-PL\";\n// import \"@chenfengyuan/datepicker/i18n/datepicker.es-ES\";\n// import \"@chenfengyuan/datepicker/i18n/datepicker.pt-BR\";\n// import \"@chenfengyuan/datepicker/i18n/datepicker.ru-RU\";\n// import \"@chenfengyuan/datepicker/i18n/datepicker.zh-CN\";\n// import \"@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);\ngsap.config({\n force3D: true,\n});\nScrollTrigger.config({ ignoreMobileResize: true });\n\nimport { scrollAnimation } from './components/scrollAnimation';\nimport LocomotiveScroll from 'locomotive-scroll';\n\nlet locoScroll = new LocomotiveScroll({\n el: document.querySelector(\".smooth-scroll\"),\n smooth: true,\n // lerp: 0.05,\n // initPosition: { x: 0, y: 0 },\n tablet: { smooth: false },\n smartphone: { smooth: false }\n});\n\nlocoScroll.on(\"scroll\", ScrollTrigger.update);\n\nScrollTrigger.scrollerProxy(\".smooth-scroll\", {\n scrollTop(value) {\n return arguments.length\n ? locoScroll.scrollTo(value, 0, 0)\n : locoScroll.scroll.instance.scroll.y;\n },\n getBoundingClientRect() {\n return {\n top: 0,\n left: 0,\n width: window.innerWidth,\n height: window.innerHeight\n };\n },\n pinType: document.querySelector(\".smooth-scroll\").style.transform ? \"transform\" : \"fixed\"\n});\n\nScrollTrigger.addEventListener(\"refresh\", () => {\n locoScroll.update()\n});\nScrollTrigger.defaults({ scroller: \".smooth-scroll\" });\n\nimport Player from '@vimeo/player';\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\nfunction setCookie (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 var expires = ''\n document.cookie = name + '=' + value + expires + '; path=/'\n}\n\nfunction getCookie (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\nfunction deleteCookie (name) {\n setCookie(name, '', -1)\n}\n\nfunction detectTouchscreen() {\n var result = false;\n if (window.PointerEvent && ('maxTouchPoints' in navigator)) {\n // if Pointer Events are supported, just check maxTouchPoints\n if (navigator.maxTouchPoints > 0) {\n result = true;\n }\n } else {\n // no Pointer Events...\n if (window.matchMedia && window.matchMedia(\"(any-pointer:coarse)\").matches) {\n // check for any-pointer:coarse which mostly means touchscreen\n result = true;\n } else if (window.TouchEvent || ('ontouchstart' in window)) {\n // last resort - check for exposed touch events API / event handler\n result = true;\n }\n }\n return result;\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 flktyHomeFocus,\n flktyProjectsPreviewBk = null;\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 let startProgressbar = function() {\n resetProgressbar();\n percentTime = 0;\n isPaused = false;\n tick = window.setInterval(increase, interval);\n }\n\n let increase = function() {\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 let resetProgressbar = function() {\n progressBar.width(0 + \"%\");\n clearTimeout(tick);\n }\n\n startProgressbar();\n\n instance.on(\"change\", function () {\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 let shareButtonsInit = () => {\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 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 $(\".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 if (params.type != undefined) {\n category = params.type\n }\n\n var markerIcon = {\n default: {\n icon: \"/img/marker.png\",\n height: 24,\n width: 18,\n },\n stores: {\n icon: \"/img/marker-dealers.png\",\n height: 59,\n width: 50,\n },\n };\n\n return markerIcon[category]\n}\n\nlet elsToClear = '';\nfunction clearScene(timeline) {\n\n var targets = timeline.getChildren();\n for (var i=0; i 0) {\n myLazyLoad.update();\n }\n\n if((i + 1) == (items.length)){\n // spinner().hide();\n // console.log('all finieshes are loaded');\n setTimeout(function(){\n locoScroll.update();\n $(\"#spinner\").removeClass(\"trans\");\n $(\"#spinner\").remove();\n }, 150);\n }\n }\n\n filterFinishes(url);\n finishesLoaded = 1;\n }\n })\n }\n}\n\nfunction filterFinishes(url){\n ThomFinishesSearch = null;\n ThomFinishesSearch = $('.product-finishes .thom-search').thomsearch({\n filterClass: '.product-finishes .thom-search--filter-btn',\n filtersContent: '.product-finishes .thom-search--filter-block',\n itemsPerPage: 0,\n resultsCallback: function (data) {\n \n $('.product-finishes .thom-search--results').html(data); \n var items = $('.product-finishes .thom-search--results').find('.finishes-list--item');\n\n for(var i = 0; i < items.length; i++){\n var item = items[i];\n\n if ($(item).find(\".lazy\").length > 0) {\n myLazyLoad.update();\n }\n\n if((i + 1) == (items.length)){\n ThomFinishesSearch.thomsearch('loadingHide');\n locoScroll.update();\n }\n }\n },\n urlContent: url\n });\n}\n\nlet myLazyLoad;\nvar ThomAdvancedSearch = null;\nvar ThomFinishesSearch = null;\n\nlet myGoogleMaps = null;\n\n$(document).on($.modal.AFTER_CLOSE, function (event, modal) {\n $(\".ajax-load.modal\").remove();\n});\n \n// Analytics Modal 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// Job form append\nfunction jobControl(item) {\n \n if(item.hasClass('jobs--item')){\n \n var content = item.find('.jobs--item--content');\n var title = item.attr('data-job-title');\n var id = parseInt(item.attr(\"data-job-id\"));\n\n $(\"#formJob\").hide().appendTo(content).slideDown(100, function(){\n // Reset form\n $(\"#formJobOpportunities\").resetForm();\n $(\"#formJobOpportunities .thom-form__error\").hide(0);\n\n if ($(\"#formJobOpportunities\").find('input[type=file]').exists()) {\n $(\"#formJobOpportunities .thom-form-selectfile__label span\").html($(\"#formJobOpportunities\").find('input[type=file]').attr('placeholder'))\n } \n \n // Passo valori a campi nascosti\n $(\"#formJobOpportunities #TitoloLavoro\").val(title);\n $(\"#formJobOpportunities #JobId\").val(id);\n\n // Se id 0 mostro campi per Candidatura spontanea\n if(id == 0){\n $('#formJob').find('.only-for-free-application').show();\n $('#formJob').find('.only-for-free-application-el').attr('data-val-required', true);\n } else {\n $('#formJob').find('.only-for-free-application').hide();\n $('#formJob').find('.only-for-free-application-el').attr('data-val-required', false);\n }\n\n // Scroll update e riposizionamento\n setTimeout(function(){\n // $('html,body').animate({\n // scrollTop: item.offset().top - $('.navbar').height() * 2\n // }, 300);\n locoScroll.scrollTo(item[0], {\n offset: - $('.navbar').height() * 2,\n callback: locoScroll.update(),\n duration: 250\n })\n }, 200);\n });\n }\n}\n\n// Start APP\nfunction myapp() {\n\n \n //console.log('MY APP - START - ad ogni nuova pagina, dopo transizione BARBA');\n let myMapKey = 'AIzaSyCFWQ5W77T1Zpc1AL77MQpXhQfUpIeCQ_U';\n\n if (typeof _gmapkey !== 'undefined') {\n myMapKey = _gmapkey\n }\n\n let loader = new Loader({\n apiKey: myMapKey,\n version: \"weekly\",\n libraries: [\"places\", \"geometry\"]\n });\n\n navbar();\n\n // reset navigation set\n // $(\"body\")\n // .removeClass(\"navbar--search-opened\")\n // .removeClass(\"navbar--opened\");\n\n // $(\".navbar\").removeClass(\"out-stage\");\n\n // $(\".wrapper\").removeAttr(\"style\");\n // $(\".main\").removeAttr(\"style\");\n \n // let packeryInstance = null;\n // myLazyLoad = null;\n \n myLazyLoad = new LazyLoad({\n container: document,\n unobserve_entered: true,\n elements_selector: \".lazy\",\n callback_loaded: function(el){\n locoScroll.update();\n }\n });\n\n finishesLoaded = 0;\n\n // wishlist\n var thom_wishlist = new THOM.WISHLIST('gallotti_wishlist', 60, 'Id', false)\n\n if ($('.wishlist-list').exists()) {\n new list_wishlist(thom_wishlist).Init()\n } else {\n new icons_wishlist(thom_wishlist).Init()\n }\n\n ThomAdvancedSearch = null;\n ThomFinishesSearch = null;\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\n var flktyHomeOptions = {\n autoPlay: 3500,\n cellSelector: \".carousel-home .carousel-cell\",\n pauseAutoPlayOnHover: true,\n prevNextButtons: false,\n pageDots: true,\n bgLazyLoad: true,\n lazyLoad: 2,\n fade: false,\n wrapAround: true,\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 if ( matchMedia('screen and (min-width: 768px)').matches ) {\n flktyHomeOptions.fade = true;\n flktyHomeOptions.wrapAround = false;\n }\n\n flktyHome = new Flickity(\".carousel-home\", flktyHomeOptions);\n }\n\n // Home Focus On\n if ($(\".carousel-focuson\").exists()) {\n flktyHomeFocus = new Flickity(\".carousel-focuson\", {\n autoPlay: 0,\n cellSelector: \".carousel-focuson .carousel-cell\",\n pauseAutoPlayOnHover: true,\n prevNextButtons: false,\n pageDots: false,\n bgLazyLoad: true,\n lazyLoad: 2,\n // fade: true,\n draggable: true\n });\n\n CarouselParallax(\".carousel-focuson\", flktyHomeFocus);\n\n // elements\n var $cellButtonGroup = $('.carousel-focuson--dots');\n var $cellButtons = $cellButtonGroup.find('.dot');\n\n // update selected cellButtons\n flktyHomeFocus.on( 'select', function() {\n $cellButtons.filter('.is-selected')\n .removeClass('is-selected');\n $cellButtons.eq(flktyHomeFocus.selectedIndex)\n .addClass('is-selected');\n\n $(\".home-focus--over .label\").addClass(\"hide\");\n setTimeout(function () {\n $(\".home-focus--over .label\").text(\n flktyHomeFocus.selectedElements[0].attributes.title\n .textContent\n );\n $(\".home-focus--over .label\").removeClass(\n \"hide\"\n );\n \n }, 400);\n });\n\n // select cell on button click\n $cellButtonGroup.on( 'click', '.dot', function() {\n var index = $(this).index();\n flktyHomeFocus.select( index );\n });\n }\n \n // Product Dett\n // Carousel\n if ($(\".carousel-product\").exists()) {\n flktyProduct = new Flickity(\".carousel-product\", {\n autoPlay: 0,\n cellSelector: \".carousel-product .carousel-cell\",\n pauseAutoPlayOnHover: true,\n prevNextButtons: false,\n pageDots: true,\n lazyLoad: true,\n fade: true,\n draggable: true\n });\n\n // CarouselParallax(\".carousel-product\", flktyProduct);\n }\n\n // Product dett accordion\n if($('.product_dett .acc').exists()){\n $('.product_dett .acc').each(function(){\n var $this = $(this);\n $this.find('.acc--title').on('click', function(){\n $this.toggleClass('open');\n $this.find('.acc--content').stop().slideToggle(300, function(){\n setTimeout(function(){\n locoScroll.update();\n }, 100);\n });\n })\n })\n }\n\n // Product dett tabs\n if($('.product-tabs').exists()){\n var tabChange = function(n){\n $('.product-tabs .tabs--nav .item').removeClass('selected');\n $('.product-tabs .tabs--nav .item').eq(n).addClass('selected');\n \n $('.product-tabs .tabs--content .item').removeClass('selected');\n $('.product-tabs .tabs--content .item').eq(n).addClass('selected');\n\n $('.tabs--nav__dropdown .item').removeClass('selected');\n $('.tabs--nav__dropdown .item').eq(n).addClass('selected');\n $('.tabs--nav__dropdown .thom-dropdown--label-item').text($('.tabs--nav__dropdown .item').eq(n).text())\n\n setTimeout(function(){\n locoScroll.update();\n }, 100);\n \n if($('.product-tabs .tabs--nav .item').eq(n).hasClass('tab-finishes')){\n loadAllFinishes($('.product-tabs .tabs--nav .item').eq(n).data('url'));\n }\n }\n\n $('.product-tabs .tabs--nav .item').on('click', function(e){\n e.preventDefault();\n var n = $(this).index();\n tabChange(n);\n });\n\n $('.tabs--nav__dropdown .item').on('click', function(e){\n e.preventDefault();\n var n = $(this).index();\n tabChange(n);\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 pageDots: 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 // Project Map\n if ($(\".project-dett--info__map\").exists() && $(\".project-dett--info__map #map\").exists()) {\n loader.load().then(async (google) => {\n\n let myGoogleMapsProject = new google.maps.Map(document.querySelector(\"#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: \"/img/marker-dealers.png\",\n size: new google.maps.Size(59, 50),\n };\n var myMarker = new google.maps.Marker({\n position: { lat: params.latitude, lng: params.longitude },\n map: myGoogleMapsProject,\n icon: image,\n });\n var bounds = new google.maps.LatLngBounds();\n bounds.extend(myMarker.getPosition());\n myGoogleMapsProject.fitBounds(bounds);\n })\n .catch((e) => {\n // do something\n console.log(e)\n });\n }\n\n // Gallery\n if ($('.gallery-list').exists()) {\n let packeryGalleryList = null;\n\n if($('.gallery-list .gallery-list--item').length > 2){\n var elem = document.querySelector('.gallery-list--inner');\n var items = elem.querySelector(\".gallery-list--item:not(.hidden)\");\n packeryGalleryList = new Packery( elem, {\n // options\n itemSelector: '.gallery-list--item',\n transitionDuration: 0,\n percentPosition: true\n }); \n\n imagesLoaded( elem ).on( 'progress', function() {\n packeryGalleryList.layout();\n locoScroll.update();\n });\n\n var $this = $('.gallery-list');\n var $hiddenEl = $this.find('.hidden');\n var $moreBtn = $this.find('.show-more');\n var $lessBtn = $this.find('.show-less');\n\n $moreBtn.on('click', function(){\n $moreBtn.addClass('is-hidden');\n\n $hiddenEl.show();\n $hiddenEl.removeClass('out').addClass('active');\n\n packeryGalleryList.layout();\n locoScroll.update();\n $lessBtn.removeClass('is-hidden');\n });\n\n $lessBtn.on('click', function(){\n $lessBtn.addClass('is-hidden');\n \n $hiddenEl.removeClass('active').addClass('out');\n\n setTimeout(function(){\n $hiddenEl.hide();\n packeryGalleryList.layout();\n locoScroll.update();\n // $('html,body').animate({\n // scrollTop: $('.gallery-list--inner').offset().top - $('.navbar').height() * 2\n // }, 300);\n\n locoScroll.scrollTo(document.querySelector('.gallery-list--inner'), {\n offset: - $('.navbar').height() * 2\n })\n }, 400); //Same time as animation\n \n $moreBtn.removeClass('is-hidden');\n packeryGalleryList.layout(); \n });\n }\n\n // console.log(Spotlight)\n // $(\".gallery-list\").lightGallery({\n // selector: \".gallery-list--item\",\n // download: false,\n // counter: false,\n // getCaptionFromTitleOrAlt: false,\n // videoMaxWidth: \"80%\",\n // youtubePlayerParams: {\n // modestbranding: 1,\n // showinfo: 0,\n // rel: 0,\n // controls: 0,\n // },\n // vimeoPlayerParams: {\n // byline: 0,\n // portrait: 0,\n // dnt: true\n // }\n // });\n let gallery = document.querySelector(\".gallery-list\");\n lightGallery(gallery, {\n plugins: [lgZoom, lgVideo],\n licenseKey: 'EB342F23-EEA8-48C2-B726-0CFCE5A4AECF', \n selector: \".gallery-list--item\",\n counter: false,\n download: false,\n getCaptionFromTitleOrAlt: false,\n vimeoPlayerParams: {\n byline : 0,\n portrait : 0,\n dnt: true\n },\n youTubePlayerParams: {\n modestbranding : 1,\n showinfo : 0,\n controls : 0,\n rel: 0\n }\n }); \n\n }\n \n // Company Story\n if ($('.company-story').exists()) {\n let packeryCompanyStoryList = null;\n\n let elem = document.querySelector('.company-story--inner');\n packeryCompanyStoryList = new Packery( elem, {\n // options\n itemSelector: '.company-story--item',\n percentPosition: true,\n });\n\n imagesLoaded( elem ).on( 'progress', function() {\n packeryCompanyStoryList.layout();\n locoScroll.update();\n });\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 var el = $(this);\n\n if($(this).hasClass('open')){\n $(this).find(\".accordion-content\").slideDown(300, function(){\n locoScroll.update();\n \n jobControl(el);\n });\n }\n }); \n\n elms.find('.accordion-title').on('click', function(){\n var $this = $(this).parent();\n\n if($list.hasClass('close-all')){\n if($this.hasClass('open')){\n $this.find(\".accordion-content\").stop().slideUp(300, function(){\n locoScroll.update();\n $this.removeClass('open');\n });\n } else {\n elms.find(\".accordion-content\").stop().slideUp(300);\n elms.removeClass('open');\n\n $this.find(\".accordion-content\").stop().slideDown(300, function(){\n locoScroll.update();\n\n jobControl($this);\n });\n\n $this.toggleClass(\"open\");\n }\n\n } else {\n $this.find(\".accordion-content\").stop().slideToggle(300, function(){\n locoScroll.update();\n });\n\n $this.toggleClass(\"open\");\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 // 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, function(){\n // $('html,body').animate({\n // scrollTop: contactForm.offset().top - $('.navbar').height() * 2\n // }, 300);\n locoScroll.scrollTo(document.querySelector('#contactForm'), {\n offset: - $('.navbar').height() * 2\n })\n locoScroll.update()\n\n // $('html,body').animate({\n // scrollTop: document.querySelector('#contactForm').offset().top - $('.navbar').height() * 2\n // }, 300);\n });\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 // Contacts Map\n if ($(\".contact-map\").exists() && $(\".contact-map #map\").exists()) {\n\n loader.load().then(async (google) => {\n myGoogleMaps = new google.maps.Map(document.querySelector(\"#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: \"/img/marker.png\",\n size: new google.maps.Size(130, 110),\n };\n var myMarker = new google.maps.Marker({\n position: { lat: params.latitude, lng: params.longitude },\n map: myGoogleMaps,\n icon: image,\n });\n var bounds = new google.maps.LatLngBounds();\n bounds.extend(myMarker.getPosition());\n myGoogleMaps.fitBounds(bounds);\n })\n .catch((e) => {\n // do something\n });\n }\n\n // Newsletter Form\n if ($(\"#newsletterForm\").exists()) {\n var newsletterForm = $(\"#newsletterForm\");\n newsletterForm.thomForm({\n errorMsg: newsletterForm.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 newsletterForm.find(\".thom-form__error\").html(myTitle + myMessage);\n }\n\n newsletterForm.find(\".thom-form__error\").fadeIn(300);\n\n $('html,body').animate({\n scrollTop: newsletterForm.offset().top - $('.navbar').height()\n }, 600);\n },\n myCallback: function(myTitle, myMessage) {\n MyThomFormResponseAction(myTitle, myMessage);\n }\n });\n }\n\n // Login Form\n if ($(\"#loginForm\").exists()) {\n var loginForm = $(\"#loginForm\");\n loginForm.thomForm({\n errorMsg: loginForm.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 loginForm.find(\".thom-form__error\").html(myTitle + myMessage);\n }\n\n loginForm.find(\".thom-form__error\").fadeIn(300, function(){\n locoScroll.update()\n });\n\n // $('html,body').animate({\n // scrollTop: loginForm.offset().top - $('.navbar').height() * 2\n // }, 300);\n\n locoScroll.scrollTo(document.querySelector(\"#loginForm\"), {\n offset: - $('.navbar').height() * 2\n })\n },\n myCallback: function(myTitle, myMessage) {\n MyThomFormResponseAction(myTitle, myMessage);\n }\n });\n }\n\n // Login Form\n if ($(\"#registrationForm\").exists()) {\n var registrationForm = $(\"#registrationForm\");\n registrationForm.thomForm({\n errorMsg: registrationForm.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 registrationForm.find(\".thom-form__error\").html(myTitle + myMessage);\n }\n\n registrationForm.find(\".thom-form__error\").fadeIn(300, function(){\n locoScroll.update()\n });\n\n // $('html,body').animate({\n // scrollTop: $(\"#registrationForm\").offset().top - $('.navbar').height() * 2\n // }, 300);\n\n locoScroll.scrollTo(document.querySelector(\"#registrationForm\"), {\n offset: - $('.navbar').height() * 2\n })\n },\n myCallback: function(myTitle, myMessage) {\n MyThomFormResponseAction(myTitle, myMessage);\n }\n });\n }\n\n // Job Form\n if ($(\"#formJobOpportunities\").exists()) {\n var jobForm = $(\"#formJobOpportunities\");\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\n jobForm.find(\".thom-form__error\").fadeIn(300, function(){\n // $('html,body').animate({\n // scrollTop: jobForm.offset().top - $('.navbar').height() * 2\n // }, 300);\n locoScroll.scrollTo(document.querySelector('#contactForm'), {\n offset: - $('.navbar').height() * 2\n })\n locoScroll.update()\n });\n },\n myCallback: function(myTitle, myMessage) {\n MyThomFormResponseAction(myTitle, myMessage);\n }\n });\n }\n\n // News\n // News list\n if ($('.thom-search--results .news-list').exists()) {\n // console.log('news')\n var packeryNewsList;\n\n let newsPackery = function(){\n let elem = document.querySelector('.news-list--inner');\n let newsPackeryOptions = {\n itemSelector: '.news-list--item',\n percentPosition: true,\n transitionDuration: 0\n };\n packeryNewsList = new Packery( elem, newsPackeryOptions);\n imagesLoaded( elem ).on( 'progress', function(item) {\n packeryNewsList.layout();\n locoScroll.update();\n });\n }\n\n newsPackery();\n \n // News list infinitescroll / pagination / filters\n if ($(\".thom-search--filter-block\").exists() && (typeof ThomAdvancedSearch === 'undefined' || ThomAdvancedSearch === null)) {\n let infinitContainerScrollTrigger = null;\n var nextURL;\n\n let updateNextURL = (doc) => {\n nextURL = $(doc).find(\".pagination__next\").attr('href');\n }\n updateNextURL(document);\n\n let updateInfiniteScroll = () => {\n let infinitContainer = document.querySelector('.infinite-content');\n infinitContainerScrollTrigger = ScrollTrigger.create({\n trigger: infinitContainer,\n scroller: \".smooth-scroll\",\n end: 'bottom bottom',\n // markers: true,\n onLeave: self => { \n if(nextURL != undefined && nextURL != '' && nextURL != null){\n $('.page-load-status').show().addClass('active');\n $.ajax({\n url: nextURL,\n success: function (newHTML, textStatus, jqXHR) {\n var myHtml = $(newHTML);\n var items = myHtml.find('.news-list--item');\n var nextPag = myHtml.find('.pagination__next').attr('href');\n $('.pagination__next').attr('href', nextPag);\n updateNextURL(document);\n for(var i = 0; i < items.length; i++){\n var item = items[i];\n\n infinitContainer.append(item)\n\n if (matchMedia(\"screen and (min-width: 768px)\").matches) {\n packeryNewsList.appended(item);\n setTimeout(function(){\n packeryNewsList.layout();\n packeryNewsList.on( 'layoutComplete', function( items ) {\n self.refresh();\n locoScroll.update();\n })\n }, 50);\n\n }\n \n if ($(item).find(\".lazy\").length > 0) {\n myLazyLoad.update();\n }\n\n if((i + 1) == (items.length)){\n $('.page-load-status').hide().removeClass('active');\n \n setTimeout(function () {\n self.refresh();\n locoScroll.update();\n }, 50);\n }\n\n }\n },\n error: function (jqXHR, textStatus, errorThrown) {\n // Handle AJAX errors\n $(\".page-load-status\").hide().removeClass('active');\n },\n complete: function () {\n },\n // More AJAX customization goes here.\n });\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 var infScroll = $('.thom-search--results .news-list .infinite-content').data('infiniteScroll');\n if(infScroll) {\n infScroll.destroy();\n }\n if(infinitContainerScrollTrigger != null){\n infinitContainerScrollTrigger.kill();\n }\n $('.thom-search--results').html(data); \n var items = $('.thom-search--results').find('.news-list--item');\n\n packeryNewsList.destroy();\n\n for(var i = 0; i < items.length; i++){\n var item = items[i];\n\n if ($(item).find(\".lazy\").length > 0) {\n myLazyLoad.update();\n }\n\n if((i + 1) == (items.length)){\n ThomAdvancedSearch.thomsearch('loadingHide');\n newsPackery();\n // self.refresh();\n locoScroll.update();\n }\n }\n\n updateNextURL(document);\n if ( $('.pagination__next').length ) {\n updateInfiniteScroll();\n }\n },\n urlContent: THOM_searchUrlContent\n });\n }\n\n }\n \n // Press\n // Press list infinitescroll / pagination / filters\n if ($(\".thom-search--filter-block\").exists() && $('.thom-search--results .press-list').exists() &&\n (typeof ThomAdvancedSearch === 'undefined' || ThomAdvancedSearch === null)) {\n let nextURL;\n let infinitContainerScrollTrigger = null;\n let updateNextURL = (doc) => {\n nextURL = $(doc).find(\".pagination__next\").attr('href');\n }\n // get initial nextURL\n updateNextURL(document);\n\n let updateInfiniteScroll = () => {\n let infinitContainer = document.querySelector('.infinite-content');\n infinitContainerScrollTrigger = ScrollTrigger.create({\n trigger: infinitContainer,\n scroller: \".smooth-scroll\",\n end: 'bottom bottom',\n // markers: true,\n onLeave: self => {\n if(nextURL != undefined && nextURL != '' && nextURL != null){\n $('.page-load-status').show().addClass('active');\n $.ajax({\n url: nextURL,\n success: function (newHTML, textStatus, jqXHR) {\n // console.log(newHTML.querySelector('.thom-search--pagination'))\n var myHtml = $(newHTML);\n var items = myHtml.find('.item');\n var nextPag = myHtml.find('.pagination__next').attr('href');\n $('.pagination__next').attr('href', nextPag);\n updateNextURL(document);\n \n for(var i = 0; i < items.length; i++){\n var item = items[i];\n\n infinitContainer.append(item)\n\n if ($(item).find(\".lazy\").length > 0) {\n myLazyLoad.update();\n }\n\n if((i + 1) == (items.length)){\n $('.page-load-status').hide().removeClass('active');\n \n setTimeout(function () {\n self.refresh();\n locoScroll.update();\n }, 50);\n }\n }\n },\n error: function (jqXHR, textStatus, errorThrown) {\n // Handle AJAX errors\n $(\".page-load-status\").hide().removeClass('active');\n $(\".pagination__next\").hide();\n },\n complete: function () {\n },\n // More AJAX customization goes here.\n });\n }\n // self.kill()\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 var infScroll = $('.thom-search--results .press-list .infinite-content').data('infiniteScroll');\n if(infScroll) {\n infScroll.destroy();\n }\n if(infinitContainerScrollTrigger != null){\n infinitContainerScrollTrigger.kill();\n }\n $('.thom-search--results').html(data); \n var items = $('.thom-search--results .item');\n\n for(var i = 0; i < items.length; i++){\n var item = items[i];\n\n if ($(item).find(\".lazy\").length > 0) {\n myLazyLoad.update();\n }\n\n if((i + 1) == (items.length)){\n ThomAdvancedSearch.thomsearch('loadingHide');\n setTimeout(function () {\n locoScroll.update();\n }, 50);\n }\n }\n\n updateNextURL(document);\n \n if($('.pagination__next').length) {\n updateInfiniteScroll();\n }\n },\n urlContent: THOM_searchUrlContent\n });\n }\n\n // Download list\n if ($('.download-list').exists()) {\n \n let packeryDownloadList;\n\n var downloadPackery = function(){\n var elem = document.querySelector('.download-list--inner');\n\n var downloadPackeryOptions = {\n itemSelector: '.download-list--item',\n percentPosition: true,\n transitionDuration: 0\n };\n\n packeryDownloadList = new Packery( elem, downloadPackeryOptions);\n\n imagesLoaded(elem).on( 'progress', function(instance, image) {\n packeryDownloadList.layout();\n });\n }\n if (matchMedia(\"screen and (min-width: 768px)\").matches) {\n downloadPackery();\n }\n\n // Download list infinitescroll / pagination\n if ($('.download-list .infinite-content').exists()) {\n let nextURL;\n \n let updateNextURL = (doc) => {\n nextURL = $(doc).find(\".pagination__next:last-child\").attr('href');\n }\n updateNextURL(document);\n\n let updateInfiniteScroll = () => {\n let infinitContainer = document.querySelector('.infinite-content');\n ScrollTrigger.create({\n trigger: infinitContainer,\n scroller: \".smooth-scroll\",\n end: 'bottom bottom',\n // markers: true,\n onLeave: self => { \n if(nextURL != undefined && nextURL != '' && nextURL != null){\n $('.page-load-status').show().addClass('active');\n $.ajax({\n url: nextURL,\n success: function (newHTML, textStatus, jqXHR) {\n // console.log(newHTML.querySelector('.thom-search--pagination'))\n var myHtml = $(newHTML);\n var items = myHtml.find('.download-list--item');\n var nextPag = myHtml.find('.pagination__next').attr('href');\n $('.pagination__next').attr('href', nextPag);\n updateNextURL(document);\n // $(myHtml).appendTo(\"body\").modal();\n for(var i = 0; i < items.length; i++){\n var item = items[i];\n\n infinitContainer.append(item)\n\n if (matchMedia(\"screen and (min-width: 768px)\").matches) {\n packeryDownloadList.appended(item);\n setTimeout(function(){\n packeryDownloadList.layout();\n packeryDownloadList.on( 'layoutComplete', function( items ) {\n self.refresh();\n locoScroll.update();\n })\n }, 50);\n }\n \n if ($(item).find(\".lazy\").length > 0) {\n myLazyLoad.update();\n }\n\n if((i + 1) == (items.length)){\n $('.page-load-status').hide().removeClass('active');\n \n setTimeout(function () {\n self.refresh();\n locoScroll.update();\n }, 50);\n }\n }\n },\n error: function (jqXHR, textStatus, errorThrown) {\n // Handle AJAX errors\n $(\".page-load-status\").hide().removeClass('active');\n },\n complete: function () {\n },\n // More AJAX customization goes here.\n });\n }\n // self.kill()\n }\n });\n }\n\n if ($('.pagination__next').length) {\n updateInfiniteScroll();\n }\n }\n }\n\n // Projects\n // Projects list infinitescroll / pagination\n if ($('.projects-list').exists() &&\n (typeof ThomAdvancedSearch === 'undefined' || ThomAdvancedSearch === null)) {\n // console.log('project')\n let infinitContainerScrollTrigger = null;\n let nextURL;\n\n let updateNextURL = (doc) => {\n nextURL = $(doc).find(\".pagination__next:last-child\").attr('href');\n }\n updateNextURL(document);\n\n let updateInfiniteScroll = () => {\n let infinitContainer = document.querySelector('.infinite-content');\n infinitContainerScrollTrigger = ScrollTrigger.create({\n trigger: infinitContainer,\n scroller: \".smooth-scroll\",\n end: \"bottom bottom\",\n // markers: true,\n onLeave: (self) => {\n if (nextURL != undefined && nextURL != \"\" && nextURL != null) {\n $(\".page-load-status\").show().addClass('active');\n $.ajax({\n url: nextURL,\n success: function (newHTML, textStatus, jqXHR) {\n // console.log(newHTML.querySelector('.thom-search--pagination'))\n var myHtml = $(newHTML);\n var items = myHtml.find(\".projects-list--item\");\n var nextPag = myHtml.find(\".pagination__next\").attr(\"href\");\n $(\".pagination__next\").attr(\"href\", nextPag);\n updateNextURL(document);\n // $(myHtml).appendTo(\"body\").modal();\n for (var i = 0; i < items.length; i++) {\n var item = items[i];\n\n infinitContainer.append(item);\n\n if ($(item).find(\".lazy\").length > 0) {\n myLazyLoad.update();\n }\n\n if (i + 1 == items.length) {\n $(\".page-load-status\").hide().removeClass('active');\n\n setTimeout(function () {\n self.refresh();\n locoScroll.update();\n }, 50);\n }\n }\n },\n error: function (jqXHR, textStatus, errorThrown) {\n // Handle AJAX errors\n $(\".page-load-status\").hide();\n $(\".pagination__next\").hide();\n },\n complete: function () {},\n // More AJAX customization goes here.\n });\n }\n },\n });\n }\n\n if ( $('.pagination__next').length ) {\n updateInfiniteScroll();\n }\n }\n\n // Store list\n // Store list infinitescroll / pagination / filters\n if ($(\".thom-search--filter-block\").exists() && $('.stores-list').exists() &&\n (typeof ThomAdvancedSearch === 'undefined' || ThomAdvancedSearch === null)) {\n // console.log('store')\n var subDropdown = $('.thom-search').find('.sub-dropdown');\n \n ThomAdvancedSearch = $('.thom-search').thomsearch({\n filterClass: '.thom-search--filter-btn',\n filtersContent: '.thom-search--filter-block',\n resultsCallback: function (data) {\n\n subDropdown.html('');\n \n $('.thom-search--results').html(data);\n \n var items = $('.thom-search--results').find('.stores-list--item');\n for(var i = 0; i < items.length; i++){\n if((i + 1) == (items.length)){\n ThomAdvancedSearch.thomsearch('loadingHide');\n locoScroll.update();\n }\n }\n\n var dropdown = $('.thom-search--results').find('.thom-dropdown');\n subDropdown.append(dropdown);\n var newDropdown = subDropdown.find('.thom-dropdown');\n \n thomDropdown('newdropdowns');\n\n newDropdown.find('.thom-dropdown--options-item').on('click', function(){\n newDropdown.find('.thom-dropdown--options-item').removeClass('is-selected');\n $(this).addClass('is-selected');\n var region = $(this).data('region');\n for(var i = 0; i < items.length; i++){\n var elRegion = $(items[i]).data('region');\n if(elRegion == region | region == 0) {\n $(items[i]).css({'opacity': 1, 'transform': 'translate(0px,0px)'}).show()\n } else {\n $(items[i]).attr('style', '').hide();\n }\n }\n }); \n },\n urlContent: THOM_searchUrlContent\n });\n }\n\n // Stores\n if ($(\".stores\").exists() && !$(\".agents\").exists()) {\n loader.load().then(async (google) => {\n // Thom Map INIT\n myGoogleMaps = $(\"#map\").thomMap({\n autocomplete: 1,\n sendJson: true,\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 locoScroll.update()\n // $('.stores-search-preview').hide();\n // $('.stores-results').show();\n },\n styled: new google.maps.StyledMapType(\n [\n {\n \"featureType\": \"administrative\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#444444\"\n }\n ]\n },\n {\n \"featureType\": \"landscape\",\n \"elementType\": \"all\",\n \"stylers\": [\n {\n \"color\": \"#f2f2f2\"\n }\n ]\n },\n {\n \"featureType\": \"poi\",\n \"elementType\": \"all\",\n \"stylers\": [\n {\n \"visibility\": \"off\"\n }\n ]\n },\n {\n \"featureType\": \"poi\",\n \"elementType\": \"labels.text\",\n \"stylers\": [\n {\n \"visibility\": \"off\"\n }\n ]\n },\n {\n \"featureType\": \"road\",\n \"elementType\": \"all\",\n \"stylers\": [\n {\n \"saturation\": -100\n },\n {\n \"lightness\": 45\n }\n ]\n },\n {\n \"featureType\": \"road.highway\",\n \"elementType\": \"all\",\n \"stylers\": [\n {\n \"visibility\": \"simplified\"\n }\n ]\n },\n {\n \"featureType\": \"road.arterial\",\n \"elementType\": \"labels.icon\",\n \"stylers\": [\n {\n \"visibility\": \"off\"\n }\n ]\n },\n {\n \"featureType\": \"transit\",\n \"elementType\": \"all\",\n \"stylers\": [\n {\n \"visibility\": \"off\"\n }\n ]\n },\n {\n \"featureType\": \"water\",\n \"elementType\": \"all\",\n \"stylers\": [\n {\n \"color\": \"#dbdbdb\"\n },\n {\n \"visibility\": \"on\"\n }\n ]\n }\n ],\n {\n name: 'Styled Map'\n }\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\n // Stores Agents\n if ($(\".agents\").exists()) {\n loader.load().then(async (google) => {\n // Thom Map INIT\n myGoogleMaps = $(\"#map\").thomMap({\n autocomplete: 1,\n autocompleteOnly: true,\n sendJson: true,\n content: $(\".stores\"),\n params: params,\n url: thomMap_url,\n searchCallback: function(){\n // console.log('searchCallback')\n var elems = $('.map-item');\n var count = elems.length;\n\n if (count != 0) {\n $('.map-msg').fadeOut(300, function () {\n $(this).hide(0, function(){\n locoScroll.update();\n });\n });\n } else {\n $('.map-msg').fadeIn(300, function () {\n locoScroll.update()\n });\n }\n }\n }); \n })\n .catch((e) => {\n // do something\n });\n }\n\n // scroll to div\n if ($(\".scrollto\").exists()) {\n $(\".scrollto\").on('click', function (e) {\n e.preventDefault();\n var link = $(this).data(\"link\");\n // $(\"html,body\").animate(\n // {\n // scrollTop: $(\"#\" + link).offset().top - $(\".navbar\").height() * 2,\n // },\n // 300\n // );\n locoScroll.scrollTo(document.querySelector(\"#\" + link), {\n offset: - $('.navbar').height() * 2\n })\n });\n }\n\n if ($('.gallery--list').exists()) {\n let galleryList = document.querySelector(\".gallery--list\");\n lightGallery(galleryList, {\n plugins: [lgZoom, lgVideo],\n licenseKey: 'EB342F23-EEA8-48C2-B726-0CFCE5A4AECF', \n selector: \".item\",\n counter: false,\n download: false,\n getCaptionFromTitleOrAlt: false,\n vimeoPlayerParams: {\n byline : 0,\n portrait : 0,\n dnt: true\n },\n youTubePlayerParams: {\n modestbranding : 1,\n showinfo : 0,\n controls : 0,\n rel: 0\n }\n });\n\n if($('.gallery--list .item').length > 2 && $('.gallery--list').find('.show-more').length > 0){\n let $this = $('.gallery--list');\n let $hiddenEl = $this.find('.hidden');\n let $moreBtn = $this.find('.show-more');\n let $lessBtn = $this.find('.show-less');\n\n $moreBtn.on('click', function(){\n $moreBtn.addClass('is-hidden');\n\n $hiddenEl.show();\n $hiddenEl.removeClass('out').addClass('active');\n\n $lessBtn.removeClass('is-hidden');\n\n locoScroll.update();\n });\n\n $lessBtn.on('click', function(){\n $lessBtn.addClass('is-hidden');\n \n $hiddenEl.removeClass('active').addClass('out');\n\n setTimeout(function(){\n $hiddenEl.hide();\n\n setTimeout(function(){\n // $(\"html,body\").animate(\n // {\n // scrollTop: document.querySelector(\".gallery--list\").offset().top - $(\".navbar\").height() * 2,\n // },\n // 300\n // );\n locoScroll.scrollTo(document.querySelector(\".gallery--list\"), {\n offset: - $('.navbar').height() * 2\n })\n }, 1);\n\n\n locoScroll.update();\n\n }, 400); //Same time as animation\n \n $moreBtn.removeClass('is-hidden');\n });\n }\n\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 lightGallery($lggallery, {\n plugins: [lgZoom, lgVideo],\n licenseKey: 'EB342F23-EEA8-48C2-B726-0CFCE5A4AECF', \n selector: \"img\",\n counter: false,\n download: false,\n getCaptionFromTitleOrAlt: false,\n vimeoPlayerParams: {\n byline : 0,\n portrait : 0,\n dnt: true\n },\n youTubePlayerParams: {\n modestbranding : 1,\n showinfo : 0,\n controls : 0,\n rel: 0\n }\n });\n\n $this.click(function (e) {\n e.preventDefault();\n $lggallery.find(\"img\").first().trigger(\"click\");\n });\n });\n }\n\n let btnVideo = document.querySelector(\".btn-video\");\n lightGallery(btnVideo, {\n plugins: [lgZoom, lgVideo],\n licenseKey: 'EB342F23-EEA8-48C2-B726-0CFCE5A4AECF', \n selector: \"this\",\n counter: false,\n download: false,\n getCaptionFromTitleOrAlt: false,\n vimeoPlayerParams: {\n byline : 0,\n portrait : 0,\n dnt: true\n },\n youTubePlayerParams: {\n modestbranding : 1,\n showinfo : 0,\n controls : 0,\n rel: 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 // Inline modal \n if ($('.inline-modal[data-modal]').exists()){\n $('.inline-modal[data-modal]').click(function (event) { \n \n event.preventDefault();\n this.blur();\n\n var filesmodal = $($(this).data(\"modal\"));\n\n filesmodal.modal();\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 // video media / Scrolltrigger\n if($('.media-content').exists()){\n $('.media-content').each(function(){\n var $this = $(this).find('.media');\n if($this.find(\".video\").length > 0){\n let videoElement = $this.find(\".video\")[0];\n let videoSrc = $this.find(\".video\").data('src');\n\n videoElement.src = videoSrc;\n videoElement.load();\n\n if($this.find('.video--controls').length > 0){\n var controls = $this.find('.video--controls');\n var restart = controls.find('.skip-start');\n var volume = controls.find('.volume');\n var state = controls.find('.state');\n var progress = controls.find('.progress-bar');\n \n if(window.matchMedia(\"(min-width: 920px)\").matches){\n setTimeout(function(){\n controls.fadeOut();\n }, 2000);\n \n $this.hover(function(){\n controls.fadeIn();\n }, function(){\n controls.fadeOut();\n })\n }\n \n restart.on('click', function(){\n videoElement.pause();\n videoElement.currentTime = '0';\n videoElement.play();\n state.removeClass('stop');\n });\n \n volume.on('click', function(){\n $(this).toggleClass('on');\n if($(this).hasClass('on')){\n videoElement.muted = false;\n } else {\n videoElement.muted = true;\n }\n });\n \n state.on('click', function(){\n $(this).toggleClass('stop');\n if($(this).hasClass('stop')){\n videoElement.pause();\n } else {\n videoElement.play();\n }\n });\n }\n \n let itemOnEnter = () => {\n $this.addClass('is-playing');\n videoElement.play();\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 80%\",\n end: \"bottom 10%\",\n scroller: \".smooth-scroll\",\n // markers: true,\n onEnter: itemOnEnter,\n onEnterBack: itemOnEnter,\n onLeave: itemOnLeave,\n onLeaveBack: itemOnLeave,\n }\n });\n } else if($this.find(\".video-vimeo\").length > 0){\n let videoElement = $this.find(\".video-vimeo\");\n let vimeoId = videoElement.data('src');\n\n var playerOptions = {\n id: vimeoId,\n loop: true,\n controls: false,\n autoplay: false\n }\n\n let player = new Player(videoElement, playerOptions);\n\n if($this.find('.video--controls').length > 0){\n let controls = $this.find('.video--controls');\n let restart = controls.find('.skip-start');\n let volume = controls.find('.volume');\n let state = controls.find('.state');\n // let progress = controls.find('.progress-bar');\n \n if(window.matchMedia(\"(min-width: 920px)\").matches){\n setTimeout(function(){\n controls.fadeOut();\n }, 2000);\n \n $this.hover(function(){\n controls.fadeIn();\n }, function(){\n controls.fadeOut();\n })\n }\n\n volume.addClass('on');\n \n restart.on('click', function(){\n player.pause();\n player.setCurrentTime(0).then(function(seconds) {\n player.play();\n state.removeClass('stop');\n });\n });\n\n volume.on('click', function(){\n $(this).toggleClass('on');\n if($(this).hasClass('on')){\n player.setMuted(false);\n } else {\n player.setMuted(true);\n }\n });\n \n state.on('click', function(){\n $(this).toggleClass('stop');\n if($(this).hasClass('stop')){\n player.pause();\n } else {\n player.play();\n }\n });\n }\n\n let itemOnEnter = () => {\n $this.addClass('is-playing');\n player.play();\n }\n let itemOnLeave = () => {\n $this.removeClass('is-playing');\n player.pause();\n }\n\n var mediaTl = gsap.timeline({\n scrollTrigger: {\n trigger: $this[0],\n start: \"top 80%\",\n end: \"bottom 10%\",\n scroller: \".smooth-scroll\",\n // markers: true,\n onEnter: itemOnEnter,\n onEnterBack: itemOnEnter,\n onLeave: itemOnLeave,\n onLeaveBack: itemOnLeave,\n }\n });\n }\n })\n }\n \n // update analytics\n if (typeof analyticsUpdate === \"function\") {\n analyticsUpdate();\n }\n\n if($('.scrollAnim').exists()){\n console.log('CALL scrollAnimation FUNCTION');\n\n scrollAnimation(locoScroll);\n }\n\n if($('.homeBlockLink').exists()){\n if ( matchMedia('screen and (max-width: 768px)').matches && detectTouchscreen()) {\n\n // $('.homeBlockLink .link').each(function(){\n // $(this).attr('data-barba-prevent', 'self');\n // })\n $('.homeBlockLink .link').on('click', function(e){\n e.preventDefault();\n var link = $(this).attr('href');\n $('.homeBlockLink .link').not(this).removeClass('link-active')\n if($(this).hasClass('link-active')){\n window.location.href = link;\n } else {\n $(this).addClass('link-active')\n }\n })\n\n $(document).on(\"click\", function(event){\n if(!$(event.target).closest(\".link\").length){\n $('.homeBlockLink .link').removeClass('link-active');\n }\n });\n }\n }\n\n if($('.main').attr('data-barba-namespace') === \"newsletter\"){\n setCookie('displayedPopupNewsletter', 'yes', 365);\n }\n\n // Popup Newsletter visibile dopo 3 minuti\n // se il cookie \"displayedPopupNewsletter\" ha valore diverso da \"yes\"\n if (getCookie('displayedPopupNewsletter') != \"yes\" && $('#NewsletterModal').exists()) {\n\n setTimeout(function(){\n $('#NewsletterModal').modal({\n clickClose: false,\n fadeDuration: 400\n })\n }, 2000);\n\n $('#NewsletterModal').on($.modal.CLOSE, function (event, modal) {\n setCookie('displayedPopupNewsletter', 'yes', 365);\n });\n }\n\n myLazyLoad.update();\n\n // update recaptcha\n // if($('.thom-form__recaptcha').exists()){\n // if (!$('.thom-form__recaptcha').is('[data-widget-id]')) {\n // recaptchaLoad();\n // }\n // }\n\n // locoScroll.start();\n}\n\n/* CONTENT \nLOADED */\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n // console.log(event);\n // locoScroll.stop();\n // loadingHide();\n myapp();\n});\n\n// function loadingHide() {\n// $(\"#spinner\").removeClass(\"default\").removeClass(\"show\");\n// }\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 var elClicked = this;\n\n if (_.options.onFilterClick != null) {\n _.options.onFilterClick(elClicked);\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 $('.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 '
';\n\n $('.thom-search .thom-dropdown').append(elem);\n $('.thom-search .thom-dropdown').removeClass('is-open');\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 = $inputFile.attr('placeholder');\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 } else if (e.target.value) {\n fileName = e.target.value.split('\\\\').pop();\n } else {\n fileName = inputFileLabelVal;\n }\n\n setTimeout(function(){\n $inputFileLabel.find('span').html(fileName);\n }, 100)\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 });\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\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\n /* RESIZE */\n resize() {\n var _ = this;\n }\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 \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 beforeSubmit: function (formData, jqForm, options) {\n },\n success: function (responseText, statusText, xhr, $form) {\n // console.log('SUCCESS')\n\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 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 if (myUrl) {\n window.location.href = myUrl\n } else {\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.find('span').html($inputFile.attr('placeholder'))\n }\n }\n // Replace form\n replaceForm(res, goNextStep) {\n var _ = this;\n // console.log(res)\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","/* eslint-disable no-unused-vars */\n/* eslint-disable no-undef */\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 autocompleteOnly: false,\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 sendJson: false,\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 if(_this.s.autocompleteOnly == false){\n _this.create();\n }\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 window.addEventListener('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 let autocompleteOptions = {\n fields: [\"formatted_address\", \"place_id\", \"types\", \"geometry\", \"name\", \"address_components\"],\n strictBounds: false,\n };\n var autocomplete = new google.maps.places.Autocomplete(input, autocompleteOptions);\n \n autocomplete.addListener('place_changed', function () {\n\n var places = autocomplete.getPlace();\n \n if (places != 0 || places != undefined || places != null) {\n if(_this.s.sendJson == true){\n _this.searchPoints(places);\n } else {\n params.latitude = places.geometry.location.lat;\n params.longitude = places.geometry.location.lng;\n _this.searchPoints();\n }\n\n }\n })\n }\n\n if($('#Radius').length){\n $('#Radius').on( \"change\", function() {\n\n var places = autocomplete.getPlace(); \n \n if (places != 0 && places != undefined && places != \"undefined\" && places != null) {\n if(_this.s.sendJson == true){\n _this.searchPoints(places);\n } else {\n params.latitude = places.geometry.location.lat;\n params.longitude = places.geometry.location.lng;\n _this.searchPoints();\n }\n } else {\n if(_this.s.sendJson == true){\n var geocoder = new google.maps.Geocoder()\n\n var latlng = { lat: parseFloat(_this.s.params.latitude), lng: parseFloat(_this.s.params.longitude) }\n geocoder.geocode({ location: latlng }, function (results, status) {\n if (status === 'OK') {\n if (results[0]) {\n _this.searchPoints(results[0]);\n } else {\n window.alert('No results found')\n }\n } else {\n window.alert('Geocoder failed due to: ' + status)\n }\n })\n \n } else {\n params.latitude = places.geometry.location.lat;\n params.longitude = places.geometry.location.lng;\n _this.searchPoints();\n }\n \n }\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 \n navigator.geolocation.getCurrentPosition(function (position) {\n params.latitude = position.coords.latitude;\n params.longitude = position.coords.longitude;\n if(_this.s.sendJson == true){\n var geocoder = new google.maps.Geocoder();\n var latlng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);\n geocoder\n .geocode({ location: latlng })\n .then((response) => {\n _this.searchPoints(response.results[0]);\n })\n } else {\n _this.searchPoints();\n }\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-under-nav');\n }\n\n if (action === 'hide') {\n // _this.s.content.find('.map-spinner').fadeOut();\n $('#spinner').removeClass('show-under-nav');\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 params.latitude,\n 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.autocompleteOnly == false){\n // _this.searchPoints();\n if(_this.s.sendJson == true){\n var geocoder = new google.maps.Geocoder();\n var latlng = new google.maps.LatLng(params.latitude, params.longitude);\n geocoder\n .geocode({ location: latlng })\n .then((response) => {\n _this.searchPoints(response.results[0]);\n })\n } else {\n _this.searchPoints();\n }\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($('#Radius').length){\n params.radius = $('#Radius').val();\n }\n\n var data;\n\n if(_this.s.sendJson == false){\n\n data = typeof _this.s.params !== 'undefined' && _this.s.params != null ? jQuery.param(_this.s.params) : {};\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 if(_this.s.autocompleteOnly == false){\n _this.mapPositions();\n }\n })\n } else {\n data = { places: value };\n \n var isNation = false;\n\n if(value != undefined && value.address_components[0].types[0] === \"country\"){\n isNation = true;\n }\n\n if($('#Radius').length){\n data = { places: value, radius: params.radius };\n if(isNation){\n $('#Radius').parent().hide()\n } else {\n $('#Radius').parent().show()\n }\n }\n\n data = JSON.stringify(data); \n \n jQuery\n .ajax({\n type: 'POST',\n crossDomain: true,\n contentType: 'application/json; charset=utf-8',\n url: _this.s.url,\n data: data\n })\n .done(function (response) {\n $('.map-list-wrap').html(response);\n })\n .fail(function () {\n // console.log( \"error\" );\n })\n .always(function () {\n _this.spinner('hide');\n if(_this.s.autocompleteOnly == false){\n _this.mapPositions();\n }\n })\n } \n } else {\n _this.spinner('hide');\n if(_this.s.autocompleteOnly == false){\n _this.mapPositions();\n }\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, function(){\n if(_this.s.searchCallback !== null){\n _this.s.searchCallback();\n }\n });\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, function(){\n if(_this.s.searchCallback !== null){\n _this.s.searchCallback();\n }\n })\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 if(_this.s.searchCallback !== null){\n _this.s.searchCallback();\n }\n }\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\t@NAMESPACES:\n\tTHOM\n\tTHOM.GLOBAL\n\tTHOM.ACTION\n*/\n\n// NAMESPACE => (in pratica è un oggetto che serve per creare un contesto nelle quali var e function esistono)\n\n/***********************************************************\n@NAMESPACES\n***********************************************************/\n\nif (typeof THOM == 'undefined') {\n\tTHOM = {\n\t\tGLOBAL: {},\n\t\tACTION: {\n\t\t\tRESPONSE: {}\n\t\t}\n\t}\n};\n\n/***********************************************************\n@NAMESPACE: THOM\n***********************************************************/\n\n/*\n@FUNCTION: Chiamata iniziale\n*/\nTHOM.Init = function (culture) {\n\talert(\"top\")\n\tTHOM.GLOBAL.culture = culture;\n}\n\n/***********************************************************\n@NAMESPACE: THOM.GLOBAL\n***********************************************************/\n\n// GLOBAL VARS default values\nTHOM.GLOBAL.culture = null;\n\n\n/***********************************************************\n@NAMESPACE: THOM.ACTION\n***********************************************************/\n\n// JSON RESPONSE STATUS\n\nTHOM.ACTION.RESPONSE.statusEnum = function() {\n\tvar values = {\n\t\tsuccess: 0,\n\t\tnoPermission: 1,\n\t\tcontentTypeNotEnabled: 4,\n\t\tgenericError: 5,\n\t\tmodelStateError: 6,\n\t\tnotAvailable: 7,\n\t\textensionNotAllowed: 8,\n\t\tschemaErrors: 9,\n\t\tfileLoadException: 10\n\t};\n\treturn values;\n};\n\n/***********************************************************\n@NAMESPACE: JSON\n***********************************************************/\n/*\n * Usage:\n *\n * http://www.sitepoint.com/javascript-json-serialization/\n *\n * // serialize a JavaScript object to a JSON string\n * var str = JSON.stringify(object);\n *\n * // de-serialize a JSON string to a JavaScript object\n * var obj = JSON.parse(str);\n */\n\n\nvar JSON = JSON || {};\n\n// implement JSON.stringify serialization\nJSON.stringify = JSON.stringify || function (obj) {\n\n\tvar t = typeof (obj);\n\tif (t != \"object\" || obj === null) {\n\t\t// simple data type\n\t\tif (t == \"string\") obj = '\"' + obj + '\"';\n\t\treturn String(obj);\n\t}\n\telse {\n\t\t// recurse array or object\n\t\tvar n, v, json = [], arr = (obj && obj.constructor == Array);\n\t\tfor (n in obj) {\n\t\t\tv = obj[n]; t = typeof (v);\n\n\t\t\tif (t == \"string\") v = '\"' + v + '\"';\n\t\t\telse if (t == \"object\" && v !== null) v = JSON.stringify(v);\n\n\t\t\tjson.push((arr ? \"\" : '\"' + n + '\":') + String(v));\n\t\t}\n\t\treturn (arr ? \"[\" : \"{\") + String(json) + (arr ? \"]\" : \"}\");\n\t}\n};\n// implement JSON.parse de-serialization\nJSON.parse = JSON.parse || function (str) {\n\tif (str === \"\") str = '\"\"';\n\teval(\"var p=\" + str + \";\");\n\treturn p;\n};","/// \n\n/*\n@NAMESPACES:\nTHOM.WISHLIST\n*/\n\n/***********************************************************\n@NAMESPACES\n***********************************************************/\n\nif (typeof THOM.WISHLIST == 'undefined') {\n\tTHOM.WISHLIST = {}\n};\n\n/* \n@CLASS: THOM.WISHLIST\n@RETURN: oggetto base wishlist\n*\n* name : nome della wishlist\n* days : giorni di validità\n* uniqueId : nome della roprietà chiave\n*/\nTHOM.WISHLIST = function (name, days, uniqueId, debug) {\n\tthis.Debug = debug;\n\tthis.Days = days;\n\tthis.Name = name;\n\tthis.UniqueId = uniqueId;\n\tthis.Items = this.GetCookieItems();\n\tif (this.Debug) console.log('THOM.WISHLIST');\n\tif (this.Debug) console.log(this);\n};\n\n// METHODS\n\n// get items (cookie)\nTHOM.WISHLIST.prototype.GetCookieItems = function () {\n\tif (this.Debug) console.log('THOM.WISHLIST.GetCookieItems');\n\tvar res = []; // empty array type\n\ttry {\n\t\tvar i, x, y, ARRcookies = document.cookie.split(\";\");\n\t\tfor (i = 0; i < ARRcookies.length; i++) {\n\t\t\tx = ARRcookies[i].substr(0, ARRcookies[i].indexOf(\"=\"));\n\t\t\ty = ARRcookies[i].substr(ARRcookies[i].indexOf(\"=\") + 1);\n\t\t\tx = x.replace(/^\\s+|\\s+$/g, \"\");\n\t\t\tif (x == this.Name) {\n\t\t\t\tif (typeof y != 'undefined') res = JSON.parse(y); /* dovrebbe essere un array! */\n\t\t\t\tbreak;\n\t\t\t}\n\t\t} // end for\n\t} catch (ex) { console.log(ex); }\n\treturn res;\n};\n\n// set items (cookie)\nTHOM.WISHLIST.prototype.SetCookieItems = function (items) {\n\tif (this.Debug) console.log('THOM.WISHLIST.SetCookieItems');\n\tif (this.Debug) console.log(items);\n\ttry{\n\t\tvar expiryDate = new Date();\n\t\texpiryDate.setDate(expiryDate.getDate() + this.Days);\n\t\tvar value = JSON.stringify(items) + ((this.Days == null) ? \"\" : \"; expires=\" + expiryDate.toUTCString() + \";path=/\");\n\t\tdocument.cookie = this.Name + \"=\" + value;\n\t} catch (ex) { console.log(ex); }\n};\n\n// return index in wishlist items array\nTHOM.WISHLIST.prototype.Index = function (value) {\n\tif (this.Debug) console.log('THOM.WISHLIST.Index');\n\tvar res = -1;\n\t// rileggo i dati dal cookie per tenermi aggiornato\n\tthis.Items = this.GetCookieItems();\n\tnum = this.Items.length\n\tfor (var i = 0; i < num; i++) {\n\t\tif (this.Items[i][this.UniqueId] == value) {\n\t\t\tres = i;\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn res;\n};\n\n// add product to wishlist\nTHOM.WISHLIST.prototype.Add = function (obj) {\n\tif (this.Debug) console.log('THOM.WISHLIST.Add');\n\tvar res = false;\n\t// verifico se hià inserito\n\tif (this.Index(obj[this.UniqueId]) > -1) {\n\t\tif (this.Debug) console.log(obj[this.UniqueId] + ' already exists');\n\t} else {\n\t\ttry {\n\t\t\t// rileggo i dati dal cookie per tenermi aggiornato\n\t\t\tthis.Items = this.GetCookieItems();\n\t\t\t// aggiungo alla collezione\n\t\t\tthis.Items.push(obj);\n\t\t\t// salvo nel cookie\n\t\t\tthis.SetCookieItems(this.Items);\n\t\t\tres = true;\n\t\t} catch (ex) { console.log(ex); }\n\n\t} // end if\n\tif (this.Debug) console.log(this);\n\treturn res;\n};\n\n// remove product from wishlist\nTHOM.WISHLIST.prototype.Remove = function (value) {\n\tif (this.Debug) console.log('THOM.WISHLIST.Remove');\n\tvar res = false;\n\tvar i = this.Index(value);\n\tif (i > -1) {\n\t\ttry {\n\t\t\t// rileggo i dati dal cookie per tenermi aggiornato\n\t\t\t//this.Items = this.GetCookieItems(); => già this.Index() rilegge items\n\t\t\t// elimino dalla collezione\n\t\t\tthis.Items.splice(i, 1);\n\t\t\t// salvo nel cookie\n\t\t\tthis.SetCookieItems(this.Items);\n\t\t\tres = true;\n\t\t}\n\t\tcatch (ex) { console.log(ex); }\n\t}\n\tif (this.Debug) console.log(this);\n\treturn res;\n};\n\n// count products wishlist\nTHOM.WISHLIST.prototype.Count = function () {\n\tif (this.Debug) console.log('THOM.WISHLIST.Count');\n\tres = 0;\n\ttry {\n\t\t// rileggo i dati dal cookie per tenermi aggiornato\n\t\tthis.Items = this.GetCookieItems();\n\t\tres = this.Items.length;\n\t} catch (ex) { console.log(ex); }\n\treturn res;\n};","/* oggetto per la gestione degli eventi wishlist nella pagina*/\n// eslint-disable-next-line no-undef\nicons_wishlist = function (thom_wishlist) {\n\t/* riferimenti elementi pagina*/\n\tthis.COUNT = $('.wishlist-btn').length > 0 ? $('.wishlist-btn') : null;\n\tthis.BTN_ADD = $('.wishlist-add').length > 0 ? $('.wishlist-add').first() : null;\n\tthis.BTN_REMOVE = $('.wishlist-remove').length > 0 ? $('.wishlist-remove').first() : null;\n\tthis.product_ID = $('.product_dett').length > 0 ? $('.product_dett').first().data('id') : null;\n\tthis.product_NAME = $('.product_dett').length > 0 ? $('.product_dett').first().find('h1').html() : null;\n\tthis.product_IMAGE = $('.product_dett').length > 0 ? $('.product_dett').first().data('image') : null;\n\tthis.product_IMAGEHOVER = $('.product_dett').length > 0 ? $('.product_dett').first().data('imageHover') : null;\n\tthis.product_URL = window.location.href;\n\tthis.product_Wishlist_Dialog = $('#product--wishlist-dialog').length > 0 ? $('#product--wishlist-dialog').first() : null;\n\n\t/* inizializza registro eventi */\n\tthis.Init = function () {\n\t\t/* binding evento add */\n\t\tif (this.BTN_ADD) {\n\t\t\tthis.EventAdd();\n\t\t}\n\t\t/* binding evento remove */\n\t\tif (this.BTN_REMOVE) {\n\t\t\tthis.EventRemove();\n\t\t}\n\t\t/* inizializzo elementi pagina */\n\t\tthis.Refresh();\n\t};\n\n\t/*verifica prodotto in wishlist e seleziona le opportune azioni rispetto agli elementi di pagina */\n\tthis.Refresh = function () {\n\t\tif (thom_wishlist.Index(this.product_ID) > -1) {\n\t\t\tif (this.BTN_ADD) {\n\t\t\t\tthis.BTN_ADD.hide(0);\n\t\t\t}\n\t\t\tif (this.BTN_REMOVE) {\n\t\t\t\tthis.BTN_REMOVE.show(0);\n\t\t\t}\n\t\t} else {\n\t\t\tif (this.BTN_ADD) {\n\t\t\t\tthis.BTN_ADD.show(0);\n\t\t\t}\n\t\t\tif (this.BTN_REMOVE) {\n\t\t\t\tthis.BTN_REMOVE.hide(0);\n\t\t\t}\n\t\t}\n\t\tthis.PrintCount();\n\t};\n\n\t/* registra l'evento Add per un certo elemento di pagina*/\n\tthis.EventAdd = function () {\n\t\tvar _this = this;\n\n\t\t_this.BTN_ADD.click(function (e) {\n\t\t\te.preventDefault();\n\t\t\tvar obj = new Object();\n\t\t\tobj.Id = _this.product_ID;\n\t\t\tobj.Name = _this.product_NAME;\n\t\t\tobj.ImageId = _this.product_IMAGE;\n\t\t\tobj.ImageHoverId = _this.product_IMAGEHOVER;\n\t\t\tobj.Url = _this.product_URL;\n\t\t\t// console.log(obj.ImageHoverId);\n\t\t\t_this.Dialog(obj.Name, obj.ImageHoverId);\n\n\t\t\t/*aggiungo l'oggetto*/\n\t\t\tthom_wishlist.Add(obj);\n\t\t\t_this.Refresh();\n\t\t});\n\n\n\t};\n\n\t/* registra l'evento Remove per un certo elemento di pagina*/\n\tthis.EventRemove = function () {\n\t\tvar _this = this;\n\t\t_this.BTN_REMOVE.click(function (e) {\n\t\t\te.preventDefault();\n\t\t\t/*rimuovo oggetto per pt.Id */\n\t\t\tthom_wishlist.Remove(_this.product_ID);\n\t\t\t_this.Refresh();\n\t\t});\n\n\t};\n\n\t/*scrive il numero di elementi nella wishlist in un certo elemento di pagina */\n\tthis.PrintCount = function () {\n\t\tif (this.COUNT != null) {\n\t\t\tvar num = thom_wishlist.Count();\n\t\t\t// console.log(num)\n\t\t\tthis.COUNT.find('.wishlist-count').html(num);\n\t\t\tif (num <= 0) {\n\t\t\t\t// this.COUNT.hide();\n\t\t\t\tthis.COUNT.removeClass('show')\n\t\t\t\tthis.COUNT.find('.wishlist-count').html('');\n\t\t\t} else {\n\t\t\t\t// this.COUNT.show();\n\t\t\t\tthis.COUNT.find('.wishlist-count').html(num);\n\t\t\t\tthis.COUNT.addClass('show');\n\t\t\t}\n\t\t}\n\t};\n\n\n\tthis.Dialog = function(title, image){\n\t\tvar _this = this;\n\n\t\t_this.product_Wishlist_Dialog.find('.image img').attr('src', image);\n\t\t_this.product_Wishlist_Dialog.find('.tit').text(title);\n\n\t\t_this.product_Wishlist_Dialog.addClass('show');\n\n\t\tsetTimeout(function(){\n\t\t\t_this.product_Wishlist_Dialog.removeClass('show');\n\t\t}, 2000);\n\n\t\t_this.product_Wishlist_Dialog.find('.close').on('click', function(){\n\t\t\t_this.product_Wishlist_Dialog.removeClass('show');\n\t\t});\n\n\t}\n};\n\n\n// eslint-disable-next-line no-undef\nlist_wishlist = function (thom_wishlist) {\n\t// riferiementi elementi pagina\n\tthis.LIST = $('.wishlist-list').length > 0 ? $('.wishlist-list').first() : null;\n\tthis.LIST_DESCRIPTION = $('.wishlist-empty').length > 0 ? $('.wishlist-empty').first() : null;\n\tthis.COUNT = $('.wishlist-btn').length > 0 ? $('.wishlist-btn').first() : null;\n\t// inizializza registro eventi\n\tthis.Init = function () {\n\t\t// binding evento count\n\t\tthis.PrintCount();\n\t\t// binding evento remove\n\t\tthis.EventRemove();\n\t};\n\t// registra l'evento Remove per certi elementi di pagina\n\tthis.EventRemove = function () {\n\t\tvar _this = this;\n\t\t_this.LIST.find('.item').each(function (i, elem) {\n\t\t\t$(elem).find('.wishlist-remove').click(function (e) {\n\t\t\t\te.preventDefault();\n\t\t\t\t// rimuovo oggetto per pt.Id\n\t\t\t\tthom_wishlist.Remove($(elem).data('id'));\n\t\t\t\t$(elem).fadeOut('400', function () {\n\t\t\t\t\t$(this).remove();\n\t\t\t\t});\n\t\t\t\t_this.PrintCount();\n\n\t\t\t}); // end click\n\t\t}); // end each\n\t};\n\t// scrive il numero di elementi nella wishlist in un certo elemento di pagina\n\tthis.PrintCount = function () {\n\t\tif (this.COUNT != null) {\n\t\t\tvar num = thom_wishlist.Count();\n\t\t\tthis.COUNT.find('.wishlist-count').html(num);\n\t\t\tif (num <= 0) {\n\t\t\t\t// this.COUNT.hide();\n\t\t\t\t// this.COUNT.find('.wishlist-count').hide().html('');\n\t\t\t\tthis.LIST_DESCRIPTION.fadeIn();\n\t\t\t} else {\n\t\t\t\t// this.COUNT.parent().show();\n\t\t\t\t// this.COUNT.find('.wishlist-count').show().html('(' + num + ')');\n\t\t\t\tthis.LIST_DESCRIPTION.hide(0);\n\t\t\t}\n\t\t}\n\t};\n};\n\n"],"sourceRoot":""}