{"version":3,"file":"site.min.js","sources":["../../site/js/_preloads/functions.js","../../site/js/_preloads/getsVisible.js","../../site/js/_preloads/polyfills.js","../../site/js/siteContext.js","../../site/js/directives/fancybox-mediaslide.js","../../site/js/directives/gotoLink.js","../../site/js/directives/slider.js","../../site/js/directives/sticky-after.js","../../site/js/directives/sticky-bottom.js","../../site/js/services/gaq.js","../../site/js/services/HttpClient.js","../../site/js/services/PageEvents.js","../../site/js/modules/accos-block.js","../../site/js/modules/enquiry-form.js","../../site/js/modules/navbar.js","../../site/js/modules/newsletter.js","../../site/js/modules/scrollto.js","../../site/js/modules/showmore.js","../../site/js/modules/site-expander.js"],"sourcesContent":["\r\n\r\n// Needed for pluton\r\nfunction gotoLink(htmlElement) {\r\n\r\n var destinationUrl = \"\";\r\n var target = \"\";\r\n\r\n if (htmlElement.href) {\r\n destinationUrl = htmlElement.href;\r\n target = htmlElement.getAttribute(\"target\");\r\n }\r\n else {\r\n if (htmlElement.childNodes) {\r\n if (htmlElement.getElementsByTagName(\"a\")) {\r\n destinationUrl = htmlElement.getElementsByTagName(\"a\")[0].href;\r\n target = htmlElement.getElementsByTagName(\"a\")[0].getAttribute(\"target\");\r\n }\r\n }\r\n }\r\n\r\n if (/MSIE (\\d+\\.\\d+);/.test(navigator.userAgent)) {\r\n var referLink = document.createElement('a');\r\n referLink.href = destinationUrl;\r\n referLink.target = target;\r\n document.body.appendChild(referLink);\r\n referLink.click();\r\n } else if (target === \"_blank\") {\r\n window.open(destinationUrl);\r\n }\r\n else {\r\n location.href = destinationUrl;\r\n }\r\n}\r\n\r\n\r\n// ie fix (add class ie{version} to )\r\n(function (document) {\r\n /**\r\n * documentMode is an IE-only property\r\n * http://msdn.microsoft.com/en-us/library/ie/cc196988(v=vs.85).aspx\r\n */\r\n var msie = parseInt(document.documentMode);\r\n if (msie) {\r\n document.getElementsByTagName(\"html\")[0].className += \" ie\" + msie;\r\n }\r\n})(document);\r\n\r\n\r\n// detect touch devices\r\n(function (window) {\r\n window.isTouchDevice = false;\r\n\r\n // https://codeburst.io/the-only-way-to-detect-touch-with-javascript-7791a3346685\r\n $(window).one(\"touchstart\", function () {\r\n window.isTouchDevice = true;\r\n });\r\n\r\n})(window);\r\n","(function (window) {\r\n \"use strict\";\r\n\r\n window.getsVisible = function (elem) {\r\n var rect = elem.getBoundingClientRect();\r\n\r\n var height = (window.innerHeight || document.documentElement.clientHeight);\r\n var width = (window.innerWidth || document.documentElement.clientWidth);\r\n return (\r\n (\r\n xAxisIsInviewport(rect, width) &&\r\n yAxisIsInviewport(rect, height)\r\n ) || (\r\n isViewInRect(rect, width, height)\r\n )\r\n );\r\n }\r\n function isViewInRect(rect, width, height) {\r\n return (\r\n (\r\n rect.top <= 0 &&\r\n rect.bottom >= height\r\n ) || (\r\n rect.left <= 0 &&\r\n rect.right >= width\r\n )\r\n );\r\n }\r\n function yAxisIsInviewport(rect, height) {\r\n return (\r\n (\r\n rect.top >= 0 &&\r\n rect.top <= height\r\n ) || (\r\n rect.bottom >= 0 &&\r\n rect.bottom <= height\r\n )\r\n );\r\n }\r\n function xAxisIsInviewport(rect, width) {\r\n return (\r\n (\r\n rect.left >= 0 &&\r\n rect.left <= width\r\n ) || (\r\n rect.right >= 0 &&\r\n rect.right <= width\r\n )\r\n );\r\n }\r\n\r\n})(window);\r\n\r\n\r\n// $.fn.isElementInViewport\r\n(function ($) {\r\n $.fn.isElementInViewport = function () {\r\n return window.getsVisible(this[0]);\r\n }\r\n})(jQuery);","\r\n(function () {\r\n var f = function () { };\r\n if (!window.console) {\r\n window.console = {\r\n log: f, info: f, warn: f, debug: f, error: f\r\n };\r\n }\r\n}());\r\n\r\n\r\n// requestAnimationFrame polyfill\r\n(function () {\r\n \"use strict\";\r\n\r\n var lastTime = 0;\r\n var vendors = ['ms', 'moz', 'webkit', 'o'];\r\n for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\r\n window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];\r\n window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame']\r\n || window[vendors[x] + 'CancelRequestAnimationFrame'];\r\n }\r\n\r\n if (!window.requestAnimationFrame)\r\n window.requestAnimationFrame = function (callback, element) {\r\n var currTime = new Date().getTime();\r\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\r\n var id = window.setTimeout(function () { callback(currTime + timeToCall); },\r\n timeToCall);\r\n lastTime = currTime + timeToCall;\r\n return id;\r\n };\r\n\r\n if (!window.cancelAnimationFrame)\r\n window.cancelAnimationFrame = function (id) {\r\n clearTimeout(id);\r\n };\r\n\r\n})();\r\n\r\n\r\n\r\n(function () {\r\n \"use strict\";\r\n\r\n if (!Array.prototype.flat) {\r\n Object.defineProperty(Array.prototype, 'flat', {\r\n configurable: true,\r\n value: function flat() {\r\n var depth = isNaN(arguments[0]) ? 1 : Number(arguments[0]);\r\n\r\n return depth ? Array.prototype.reduce.call(this, function (acc, cur) {\r\n if (Array.isArray(cur)) {\r\n acc.push.apply(acc, flat.call(cur, depth - 1));\r\n } else {\r\n acc.push(cur);\r\n }\r\n\r\n return acc;\r\n }, []) : Array.prototype.slice.call(this);\r\n },\r\n writable: true\r\n });\r\n }\r\n\r\n if (!Array.prototype.flatMap) {\r\n Object.defineProperty(Array.prototype, 'flatMap', {\r\n configurable: true,\r\n value: function flatMap(callback) {\r\n return Array.prototype.map.apply(this, arguments).flat();\r\n },\r\n writable: true\r\n });\r\n }\r\n})();\r\n\r\n\r\n// Object.assign(...) polyfill for all versions of IE\r\n(function () {\r\n if (typeof Object.assign !== 'function') {\r\n // Must be writable: true, enumerable: false, configurable: true\r\n Object.defineProperty(Object, \"assign\", {\r\n value: function assign(target, varArgs) { // .length of function is 2\r\n 'use strict';\r\n if (target === null || target === undefined) {\r\n throw new TypeError('Cannot convert undefined or null to object');\r\n }\r\n\r\n var to = Object(target);\r\n\r\n for (var index = 1; index < arguments.length; index++) {\r\n var nextSource = arguments[index];\r\n\r\n if (nextSource !== null && nextSource !== undefined) {\r\n for (var nextKey in nextSource) {\r\n // Avoid bugs when hasOwnProperty is shadowed\r\n if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\r\n to[nextKey] = nextSource[nextKey];\r\n }\r\n }\r\n }\r\n }\r\n return to;\r\n },\r\n writable: true,\r\n configurable: true\r\n });\r\n }\r\n})();\r\n\r\n\r\n\r\n// Array.prototype.find polyfill for all IE versions\r\n(function () {\r\n \"use strict\";\r\n\r\n // https://tc39.github.io/ecma262/#sec-array.prototype.find\r\n if (!Array.prototype.find) {\r\n Object.defineProperty(Array.prototype, 'find', {\r\n value: function (predicate) {\r\n // 1. Let O be ? ToObject(this value).\r\n if (this == null) {\r\n throw new TypeError('\"this\" is null or not defined');\r\n }\r\n\r\n var o = Object(this);\r\n\r\n // 2. Let len be ? ToLength(? Get(O, \"length\")).\r\n var len = o.length >>> 0;\r\n\r\n // 3. If IsCallable(predicate) is false, throw a TypeError exception.\r\n if (typeof predicate !== 'function') {\r\n throw new TypeError('predicate must be a function');\r\n }\r\n\r\n // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.\r\n var thisArg = arguments[1];\r\n\r\n // 5. Let k be 0.\r\n var k = 0;\r\n\r\n // 6. Repeat, while k < len\r\n while (k < len) {\r\n // a. Let Pk be ! ToString(k).\r\n // b. Let kValue be ? Get(O, Pk).\r\n // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).\r\n // d. If testResult is true, return kValue.\r\n var kValue = o[k];\r\n if (predicate.call(thisArg, kValue, k, o)) {\r\n return kValue;\r\n }\r\n // e. Increase k by 1.\r\n k++;\r\n }\r\n\r\n // 7. Return undefined.\r\n return undefined;\r\n },\r\n configurable: true,\r\n writable: true\r\n });\r\n }\r\n\r\n})();\r\n\r\n\r\n// Array.prototype.includes polyfill\r\n(function () {\r\n \"use strict\";\r\n if (!Array.prototype.includes) {\r\n Array.prototype.includes = function (search) {\r\n return !!~this.indexOf(search);\r\n };\r\n }\r\n})();","// ReSharper disable once InconsistentNaming\r\n(function (window, $) {\r\n \"use strict\";\r\n\r\n function SiteContext() {\r\n // overwritten in _Layout.cshtml\r\n this.language = 'de';\r\n this.environment = 'Live';\r\n this.privacyLink = null;\r\n this.imprintLink = null;\r\n\r\n // bootstrap 4 breakpoints\r\n this.breakpoints = {\r\n de: { min: 0, max: 576 - .2 },\r\n xs: { min: 576, max: 768 - .2 },\r\n sm: { min: 768, max: 992 - .2 },\r\n md: { min: 992, max: 1200 - .2 },\r\n lg: { min: 1200, max: 1400 - .2 },\r\n xl: { min: 1400, max: Infinity }\r\n };\r\n\r\n // a simple services container:\r\n this.services = {};\r\n }\r\n\r\n\r\n SiteContext.prototype.registerService = function (name, factory) {\r\n this.services[name] = factory;\r\n };\r\n\r\n SiteContext.prototype.getService = function (name) {\r\n var factoryName = name;\r\n var instanceName = name + '_Ø';\r\n\r\n var service = this.services[instanceName];\r\n if (!service) {\r\n var factory = this.services[factoryName];\r\n if (!factory) throw new Error(\"No service for '\" + name + \"' registered!\");\r\n this.services[instanceName] = service = factory();\r\n }\r\n\r\n return service;\r\n };\r\n\r\n\r\n SiteContext.prototype.ready = function(cb) {\r\n if (document.readyState !== 'loading') cb();\r\n else document.addEventListener('DOMContentLoaded', cb);\r\n }\r\n\r\n\r\n SiteContext.prototype.mapBylang = function (de, it, en) {\r\n switch (this.language) {\r\n default:\r\n case 'de':\r\n return de;\r\n case 'it':\r\n return it;\r\n case 'en':\r\n return en;\r\n }\r\n };\r\n\r\n\r\n SiteContext.prototype.triggerReflow = function () {\r\n // use 'site' instead of 'this' because $(..).slideUp(site.triggerReflow) binds the element as this 😢\r\n window.site.getService('PageEvents').trigger('html-reflow');\r\n };\r\n\r\n\r\n SiteContext.prototype.debounce = function(func, wait, immediate) {\r\n var timeout;\r\n return function () {\r\n var context = this, args = arguments;\r\n var later = function () {\r\n timeout = null;\r\n if (!immediate) func.apply(context, args);\r\n };\r\n var callNow = immediate && !timeout;\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n if (callNow) func.apply(context, args);\r\n };\r\n };\r\n\r\n\r\n SiteContext.prototype.scrollOffset = function () { return (window.innerWidth ? 60 : 120); };\r\n SiteContext.prototype.scrollToHash = function (hash, delay, offset) {\r\n var _ = this;\r\n offset = offset || 0;\r\n delay = delay || 0;\r\n if (hash && hash !== \"#\" && !/&/.test(hash)) {\r\n\r\n // hash campaign tracking\r\n if (/utm_/.test(hash)) {\r\n return false;\r\n }\r\n\r\n var e = $(hash);\r\n if (e.length) {\r\n\r\n setTimeout(function () {\r\n offset = offset + _.scrollOffset();\r\n\r\n $(document).scrollTo(e, 600, { offset: -offset });\r\n }, delay);\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n // export instance\r\n var defaults = new SiteContext();\r\n window.site = $.extend(defaults, window.site || {});\r\n\r\n\r\n})(window, jQuery);\r\n\r\n\r\n$(function ($) {\r\n \"use strict\";\r\n\r\n $(document).ready(function () {\r\n site.scrollToHash(window.location.hash.replace(\"/\", \"\"), 500);\r\n\r\n $(document).on(\"click\", \"a[href^='#'], a[href^='\" + window.location.pathname + \"#']\", function (e) {\r\n\r\n if ($(e.currentTarget).attr('css-target')) {\r\n return undefined;\r\n }\r\n\r\n var hash = e.currentTarget.getAttribute('href').replace(/^[^#]*/i, '');\r\n var offset = +e.currentTarget.getAttribute('offset') || 0;\r\n\r\n if (site.scrollToHash(hash, 0, offset)) {\r\n e.preventDefault();\r\n return false;\r\n }\r\n\r\n return undefined;\r\n });\r\n });\r\n});","$(function($) {\r\n \"use strict\";\r\n\r\n $('.mediaslide').each(function() {\r\n var $element = $(this);\r\n\r\n var slides = $element.find('.swiper-slide').length;\r\n if (slides <= 1) {\r\n return;\r\n }\r\n\r\n var update = function(swiper) {\r\n //$element.find('.slider-counter').text((swiper.activeIndex + 1) + '/' + swiper.slides.length);\r\n\r\n //var caption = $(swiper.slides[swiper.activeIndex]).find('figcaption').html();\r\n //$element.find('.mediaslide__caption').html(caption);\r\n };\r\n\r\n var slider = new Swiper($element.find('.swiper-container')[0],\r\n {\r\n slidesPerView: 'auto',\r\n initialSlide: 0,\r\n navigation: {\r\n nextEl: '.slider-next',\r\n prevEl: '.slider-prev',\r\n },\r\n\r\n // cssMode: true,\r\n // swipeHandler: string | HTMLElement\r\n\r\n // for better swipe / click\r\n resistance: true,\r\n resistanceRatio: 0.99,\r\n\r\n pagination: {\r\n el: $element.find('.swiper-pagination')[0],\r\n clickable: true,\r\n dynamicBullets: true,\r\n dynamicMainBullets: 3\r\n },\r\n\r\n on: {\r\n init: function() {\r\n update(this);\r\n $element.find('.lazyloading').removeClass('lazyloading').addClass('lazyload');\r\n },\r\n slideChange: function() {\r\n update(this);\r\n }\r\n }\r\n });\r\n\r\n });\r\n\r\n // makes a distinct list of all images in the fancybox every time it is opened.\r\n var open = $.fancybox.open;\r\n $.fancybox.open = function(items, opts, index) {\r\n var inst = open(items, opts, index);\r\n if (inst) {\r\n var group = [], o = {};\r\n for (var i in inst.group) {\r\n var img = inst.group[i];\r\n if (!o[img.src]) {\r\n o[img.src] = true;\r\n group.push(img);\r\n }\r\n }\r\n\r\n // console.log('update group', inst.group, group);\r\n inst.group = group;\r\n }\r\n return inst;\r\n };\r\n\r\n $('[data-fancybox]').fancybox({\r\n caption: function(inst, item) {\r\n try {\r\n return $(this).parents('figure').find('figcaption').html();\r\n } catch (e) {\r\n console.error(e);\r\n return null;\r\n }\r\n }\r\n });\r\n\r\n var options = {\r\n animationEffect: \"zoom\", // \"fade\"\r\n transitionDuration: 550,\r\n\r\n preventCaptionOverlap: true,\r\n\r\n protect: true, // Disable right-click and use simple image protection for images\r\n\r\n media: {\r\n // ICDAM providers\r\n peer: {\r\n matcher: /https?:\\/\\/(player\\.peer\\.tv)\\/(js)\\/([0-9a-z]+)/i,\r\n type: \"inline\",\r\n url: function(match, params, item) {\r\n var id = match[3];\r\n var url = 'https://player.peer.tv/js/' +\r\n id +\r\n '/?w=liquid-proportional'; // + '&a=1'; <- to auto play\r\n item.opts.smallBtn = false; // hide close btn\r\n return '
';\r\n }\r\n },\r\n feratel: {\r\n matcher: /https?:\\/\\/(webtv\\.feratel\\.com)\\/(webtv)\\/?\\?.*&cam=([0-9]+)/i,\r\n type: \"iframe\",\r\n url: 'https://webtv.feratel.com/webtv/?design=v3&cam=$3'\r\n },\r\n dailymotion: {\r\n matcher: /https?:\\/\\/(?:www\\.)?(dailymotion\\.com)\\/video\\/([^_]+)/i,\r\n type: \"iframe\",\r\n url: 'https://www.dailymotion.com/embed/video/$2?autoplay=1'\r\n },\r\n inetcons: { // obsolete\r\n matcher: /https?:\\/\\/(media\\.inetcons\\.it)\\/(videos)\\/(.+)\\.(de|it|en)\\.([0-9a-z]+)\\.mp4/i,\r\n type: \"iframe\",\r\n url: 'https://media.inetcons.it/video/embed/$5?languageCode=$4&autoplay=true'\r\n },\r\n virtualSuedtirol: {\r\n matcher: /.*virtualsuedtirol\\.com.*/i,\r\n type: 'iframe',\r\n url: '$0'\r\n },\r\n movingPictures: {\r\n matcher: /.*moving-pictures\\.com.*/i,\r\n type: 'iframe',\r\n url: '$0'\r\n }\r\n },\r\n\r\n buttons: [\r\n \"zoom\",\r\n \"share\",\r\n \"slideShow\",\r\n //\"fullScreen\",\r\n //\"download\",\r\n \"thumbs\",\r\n \"close\"\r\n ],\r\n arrows: true,\r\n infobar: true, // window.innerWidth >= site.breakpoints.md.min, // on desktop\r\n thumbs: {autoStart: window.innerWidth >= site.breakpoints.md.min, // on desktop, // Display thumbnails on opening\r\n hideOnClose: true, // Hide thumbnail grid when closing animation starts\r\n parentEl: \".fancybox-container\", // Container is injected into this element\r\n //axis: \"x\" // Vertical (y) or horizontal (x) scrolling\r\n },\r\n lang: site.language,\r\n i18n: {\r\n en: {\r\n CLOSE: \"Close\",\r\n NEXT: \"Next\",\r\n PREV: \"Previous\",\r\n ERROR: \"The requested content cannot be loaded.
Please try again later.\",\r\n PLAY_START: \"Start slideshow\",\r\n PLAY_STOP: \"Pause slideshow\",\r\n FULL_SCREEN: \"Full screen\",\r\n THUMBS: \"Thumbnails\",\r\n DOWNLOAD: \"Download\",\r\n SHARE: \"Share\",\r\n ZOOM: \"Zoom\"\r\n },\r\n de: {\r\n CLOSE: \"Schliessen\",\r\n NEXT: \"Weiter\",\r\n PREV: \"Zurück\",\r\n ERROR: \"Die angeforderten Daten konnten nicht geladen werden.
Bitte versuchen Sie es später nochmal.\",\r\n PLAY_START: \"Diaschau starten\",\r\n PLAY_STOP: \"Diaschau beenden\",\r\n FULL_SCREEN: \"Vollbild\",\r\n THUMBS: \"Vorschaubilder\",\r\n DOWNLOAD: \"Herunterladen\",\r\n SHARE: \"Teilen\",\r\n ZOOM: \"Maßstab\"\r\n },\r\n it: {\r\n CLOSE: \"Chiudi\",\r\n NEXT: \"Avanti\",\r\n PREV: \"Indietro\",\r\n ERROR: \"Il contenuto richiesto non è disponibile.
Si prega di riprovare più tardi.\",\r\n PLAY_START: \"Inizia presentazione\",\r\n PLAY_STOP: \"Ferma presentazione\",\r\n FULL_SCREEN: \"Schermo intero\",\r\n THUMBS: \"Anteprime\",\r\n DOWNLOAD: \"Scarica\",\r\n SHARE: \"Condividi\",\r\n ZOOM: \"Ingrandisci\"\r\n }\r\n }\r\n };\r\n\r\n // set global options\r\n $.extend($.fancybox.defaults, options);\r\n\r\n});","$(function($) {\r\n\r\n $('[goto-link]').each(function() {\r\n var $element = $(this);\r\n\r\n var links = $element.find('a[href]:not([href=\"\"])');\r\n links.bind('click', function(e) { e.stopPropagation(); });\r\n\r\n var a = links[0];\r\n if (!a) {\r\n $element.css('cursor', 'auto');\r\n return;\r\n }\r\n\r\n $element.css('cursor', 'pointer');\r\n\r\n $element.one(\"click\",\r\n function() {\r\n\r\n var href = a.href;\r\n var target = a.getAttribute(\"target\");\r\n\r\n if (/MSIE (\\d+\\.\\d+);/.test(navigator.userAgent)) {\r\n var referLink = document.createElement('a');\r\n referLink.href = href;\r\n referLink.target = target;\r\n document.body.appendChild(referLink);\r\n referLink.click();\r\n } else if (target === \"_blank\") {\r\n window.open(href);\r\n } else {\r\n location.href = href;\r\n }\r\n\r\n });\r\n });\r\n\r\n});","$(function($) {\r\n\r\n // ===================================================\r\n // overwrite swiper to trigger a global event on init!\r\n var base = window.Swiper;\r\n\r\n function Swiper($element, options) {\r\n options = options || {};\r\n options.init = false;\r\n base.call(this, $element, options);\r\n this.on('init',\r\n function() {\r\n site.triggerReflow();\r\n });\r\n this.init();\r\n }\r\n\r\n Swiper.prototype = Object.create(base.prototype);\r\n Swiper.prototype.constructor = Swiper;\r\n window.Swiper = Swiper;\r\n\r\n // ===================================================\r\n window.CreateSlider = function (){\r\n $('[slider]').each(function() {\r\n var $element = $(this);\r\n var name = $element.attr('slider');\r\n initSlider(name, $element);\r\n });\r\n }\r\n window.CreateSlider();\r\n\r\n function initSlider(name, $element) {\r\n switch (name) {\r\n case \"acco-item\":\r\n\r\n if ($element.find('.swiper-wrapper').children().length <= 1) {\r\n $element.find('.slider-arrows').remove();\r\n return;\r\n }\r\n if ($element[0].swiper) {\r\n $element[0].swiper.destroy(true, true);\r\n $element[0].swiper = null;\r\n }\r\n new Swiper($element[0],\r\n {\r\n // for better swipe / click\r\n resistance: true,\r\n resistanceRatio: 0.99,\r\n\r\n navigation: {\r\n nextEl: $element.find('.slider-next')[0],\r\n prevEl: $element.find('.slider-prev')[0],\r\n },\r\n\r\n pagination: {\r\n el: $element.find('.swiper-pagination')[0],\r\n clickable: true\r\n //dynamicBullets: true,\r\n //dynamicMainBullets: 10\r\n },\r\n\r\n loop: true,\r\n autoplay: { delay: 7000 },\r\n effect: 'fade',\r\n\r\n init: function () {\r\n $element.find('.lazyloading').removeClass('lazyloading').addClass('lazyload');\r\n }\r\n\r\n });\r\n\r\n break;\r\n\r\n //case \"room-images\":\r\n // $('[slider=\"room-images\"]').each(function () {\r\n // var $element = $(this);\r\n\r\n // var swiper = new Swiper($element[0], {\r\n // // for better swipe / click\r\n // resistance: true,\r\n // resistanceRatio: 0.99,\r\n\r\n // loop: true,\r\n // autoplay: { delay: 7000 },\r\n\r\n // effect: 'fade',\r\n\r\n // pagination: {\r\n // el: $element.find('.swiper-pagination')[0],\r\n // dynamicBullets: true,\r\n // },\r\n\r\n // on: {\r\n // init: function () {\r\n // $element.find('.lazyloading').removeClass('lazyloading').addClass('lazyload');\r\n // }\r\n // }\r\n // });\r\n //});\r\n\r\n default:\r\n console.error(new Error(\"slider '\" + name + \"' not defined!\"));\r\n }\r\n }\r\n\r\n\r\n function media(mediaBreakpoint, obj) {\r\n var breakpoint = window.matchMedia(mediaBreakpoint);\r\n var match = false;\r\n var check = function() {\r\n if (breakpoint.matches === true) {\r\n if (!match) {\r\n obj.onMatch();\r\n match = true;\r\n }\r\n } else if (breakpoint.matches === false) {\r\n if (match) {\r\n obj.onUnmatch();\r\n match = false;\r\n }\r\n }\r\n };\r\n breakpoint.addListener(check);\r\n check();\r\n }\r\n\r\n});","$(function($) {\r\n \"use strict\";\r\n\r\n var $win = $(window);\r\n var $body = $(document.body);\r\n\r\n $('[sticky-after]').each(function() {\r\n var $element = $(this);\r\n\r\n var base = $element.parent();\r\n var block = $element;\r\n\r\n var previos = $($element.attr('sticky-after'));\r\n var bodyclass = $element.attr('on-fixed-bodyClass');\r\n\r\n // prepare base:\r\n base.height($element.height());\r\n\r\n function render() {\r\n\r\n var prevHeight = previos.outerHeight();\r\n\r\n var baseTop = base.offset().top;\r\n var scrollTop = $win.scrollTop() + prevHeight;\r\n\r\n var blockBottom = (scrollTop - baseTop);\r\n\r\n if (blockBottom >= 0) {\r\n block.addClass(\"fixed\").css('top', prevHeight);\r\n $body.addClass(bodyclass);\r\n } else {\r\n block.removeClass(\"fixed\").css('top', 0);\r\n base.height($element.height());\r\n $body.removeClass(bodyclass);\r\n }\r\n }\r\n\r\n $(document).on('scroll',\r\n function() {\r\n render();\r\n });\r\n render();\r\n\r\n // window.test = render;\r\n\r\n });\r\n\r\n});","$(function($) {\r\n \"use strict\";\r\n\r\n var $win = $(window);\r\n var $body = $(document.body);\r\n\r\n $('[sticky-bottom]').each(function() {\r\n var $element = $(this);\r\n\r\n var $base = $element.parent();\r\n var $block = $element;\r\n\r\n var old = null;\r\n function render() {\r\n\r\n var blockheight = $block.outerHeight();\r\n if (blockheight !== old) {\r\n $base.height(blockheight);\r\n old = blockheight;\r\n }\r\n\r\n var baseTop = $base.offset().top;\r\n //var blockTop = block.offset().top;\r\n var height = window.innerHeight;\r\n var scrollTop = $win.scrollTop();\r\n\r\n var blockBottom = (scrollTop - baseTop) + height - blockheight;\r\n\r\n //if (baseTop === 0) {\r\n // //requestAnimationFrame(render);\r\n // return;\r\n //}\r\n\r\n if (blockBottom >= 0) {\r\n $block.addClass(\"stay\");\r\n } else {\r\n if (/stay/.test($block[0].className)) {\r\n $block.removeClass(\"stay\");\r\n }\r\n }\r\n }\r\n\r\n $win.on('scroll', render);\r\n render();\r\n\r\n });\r\n\r\n});","// ReSharper disable once InconsistentNaming\r\n(function(window) {\r\n \"use strict\";\r\n\r\n window.bindGaq = function ($document) {\r\n\r\n $document.find('[data-gaq]').each(function () {\r\n var $element = $(this);\r\n var mouseWheelButton = 1;\r\n\r\n $element.bind('click', gaTrackEvent);\r\n\r\n // auxclick is experimental technology, but it is the only way to detect the mouse wheel button\r\n $element.bind('auxclick',\r\n function (e) {\r\n if (e.button === mouseWheelButton) {\r\n gaTrackEvent.apply(this, arguments);\r\n }\r\n });\r\n });\r\n\r\n function gaTrackEvent() {\r\n var data = $(this).data('gaq').split('|');\r\n var cat = data[0];\r\n var act = data[1];\r\n var lab = data[2];\r\n window.siteEvent(cat, act, lab);\r\n }\r\n\r\n }\r\n\r\n bindGaq($(document));\r\n\r\n})(window);","site.registerService('HttpClient', function () {\r\n \"use strict\";\r\n\r\n /**\r\n * @class\r\n */\r\n function HttpClient() {\r\n this.cache = {};\r\n }\r\n\r\n HttpClient.prototype.get = function (url, data) {\r\n var controller = new AbortController();\r\n\r\n var query = Object.entries(data || {}).map(function (pair) { return pair.map(encodeURIComponent).join('='); }).join('&');\r\n if (query) {\r\n query = '?' + query;\r\n }\r\n\r\n var request = window.fetch(url + query, { method: 'GET', signal: controller.signal })\r\n .then(function (response) {\r\n if (!response.ok) {\r\n throw response;\r\n }\r\n\r\n return response.json();\r\n });\r\n\r\n return cancelableify(request, controller);\r\n };\r\n\r\n HttpClient.prototype.post = function (url, data) {\r\n var controller = new AbortController();\r\n\r\n var request = window.fetch(url, {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify(data),\r\n signal: controller.signal\r\n })\r\n .then(function (response) {\r\n if (!response.ok) {\r\n throw response;\r\n }\r\n\r\n return response.json();\r\n });\r\n\r\n return cancelableify(request, controller);\r\n };\r\n\r\n // cache response\r\n HttpClient.prototype.getCached = function (url, data) {\r\n var cacheKey = JSON.stringify(arguments);\r\n if (this.cache[cacheKey]) return this.cache[cacheKey];\r\n\r\n return this.cache[cacheKey] = this.get(url, data)\r\n .catch(function (e) {\r\n delete this.cache[cacheKey];\r\n throw e;\r\n });\r\n };\r\n\r\n HttpClient.prototype.postCached = function (url, data) {\r\n var cacheKey = JSON.stringify(arguments);\r\n if (this.cache[cacheKey]) return this.cache[cacheKey];\r\n\r\n return this.cache[cacheKey] = this.post(url, data)\r\n .catch(function (e) {\r\n delete this.cache[cacheKey];\r\n throw e;\r\n });\r\n };\r\n\r\n\r\n // ====== cancelable promise ====== //\r\n function cancelableify(promise, controller) {\r\n promise.cancel = function() {\r\n controller.abort();\r\n };\r\n\r\n var thenFn = promise.then;\r\n promise.then = function () {\r\n var newPromise = thenFn.apply(this, arguments);\r\n return cancelableify(newPromise, controller);\r\n };\r\n\r\n var catchFn = promise.catch;\r\n if (catchFn) {\r\n promise.catch = function () {\r\n var newPromise = catchFn.apply(this, arguments);\r\n return cancelableify(newPromise, controller);\r\n };\r\n }\r\n\r\n var finallyFn = promise.finally;\r\n if (finallyFn) {\r\n promise.finally = function () {\r\n var newPromise = finallyFn.apply(this, arguments);\r\n return cancelableify(newPromise, controller);\r\n };\r\n }\r\n\r\n return promise;\r\n }\r\n // ====== cancelable promise ====== //\r\n\r\n\r\n // export\r\n return new HttpClient();\r\n\r\n});","site.registerService('PageEvents', function () {\r\n \"use strict\";\r\n\r\n function PageEvents() {\r\n this.events = {};\r\n }\r\n\r\n PageEvents.prototype.trigger = function (name) {\r\n var handlers = this.events[name];\r\n if (handlers) {\r\n for (var i = 0; i < handlers.length; i++) {\r\n var handler = handlers[i];\r\n handler();\r\n }\r\n }\r\n };\r\n\r\n PageEvents.prototype.on = function (name, handler) {\r\n this.events[name] = this.events[name] || [];\r\n this.events[name].push(handler);\r\n };\r\n\r\n PageEvents.prototype.off = function (name, handler) {\r\n var handlers = this.events[name];\r\n if (handlers) {\r\n var index = handlers.indexOf(handler);\r\n if (index !== -1) {\r\n handlers.splice(index, 1);\r\n }\r\n }\r\n };\r\n\r\n\r\n PageEvents.prototype.onDebounced = function(name, handler, delay) {\r\n var debounced = site.debounce(handler, delay);\r\n this.on(name, debounced);\r\n };\r\n\r\n\r\n // export\r\n return new PageEvents();\r\n\r\n});","$(function($) {\r\n \"use strict\";\r\n\r\n $('.module-accos').each(function() {\r\n var $module = $(this);\r\n\r\n var $list = $module.find(\".acco-list\");\r\n var $accos = $list.children();\r\n\r\n //variables\r\n var $btnResetFilter = $module.find(\".btn-reset-filter\");\r\n var $btnFilterMobile = $module.find(\".btn-filter-mobile\");\r\n var $accosFilter = $module.find('.accosFilter');\r\n var $filterFlyingblock = $module.find('.filter-flyingblock');\r\n var $filterFlyingblockMobile = $module.find(\".filter-flyingblock-mobile-base\");\r\n var $filterClose = $module.find('.filter-close');\r\n var $btnFilterNow = $module.find('.btn-filter-now');\r\n var $mobilSelects = $module.find('.mobil-selects');\r\n var $dropdownsPc = $module.find('.dropdownsPc');\r\n var $btnDropRegions = $module.find(\".btn-drop-regions\");\r\n var $btnDropThemes = $module.find(\".btn-drop-themes\");\r\n\r\n var $iconExpandMoreRegions = $module.find(\".expandMoreRegions\");\r\n var $iconExpandMoreThemes = $module.find(\".expandMoreThemes\");\r\n var $regionLink = $module.find(\".regionLink\");\r\n var $themeLink = $module.find(\".themeLink\");\r\n\r\n //filter-reset\r\n var $checkbox = $module.find(\".dropdown-filter input[type=checkbox]\");\r\n\r\n var filter = { amenityIds: [], stars: [], boardingIds: [], page: 1};\r\n try {\r\n var json = getCookie(\"AccosFilter\");\r\n filter = Object.assign(filter, JSON.parse(json));\r\n if (typeof filter.stars[0] !== 'object') filter.stars = []; // <- this line fixes legacy values in cookie! TODO remove this legacy compatibility code after 26.07.2022\r\n } catch (e) {\r\n //ignore\r\n }\r\n filterlist(filter.page);\r\n //filter PC\r\n $module.find(\".dropdown-filter-stars .dropdown-filter-content input[type=checkbox]\").on('change',\r\n function () {\r\n var $input = $(this);\r\n var value = $input.val();\r\n var splitStars = value.split(\"-\");\r\n if ($input.prop(\"checked\")) {\r\n filter.stars.push({\r\n value: value,\r\n from: +splitStars[0],\r\n to: +splitStars[1],\r\n });\r\n\r\n } else {\r\n filter.stars = filter.stars.filter(function (x) {\r\n return x.value !== value;\r\n });\r\n }\r\n if ($(window).width() >= 767) {\r\n filterlist(filter.page);\r\n }\r\n refreshCount();\r\n });\r\n $module.find(\".dropdown-filter-stars .dropdown-filter-content input[type=checkbox]\").each(function() {\r\n var idStars = $(this).attr('value');\r\n var checkbox = $(this);\r\n filter.stars.forEach(function(x) {\r\n if (x.value == idStars) {\r\n checkbox.prop(\"checked\", true);\r\n }\r\n });\r\n });\r\n\r\n $module.find(\".dropdown-filter-amenities .dropdown-filter-content input[type=checkbox]\").each(function () {\r\n var idEquiptments = $(this).attr('value');\r\n if (filter.amenityIds.includes(idEquiptments)) {\r\n $(this).prop(\"checked\", true);\r\n\r\n } else {\r\n $(this).prop(\"checked\", false);\r\n }\r\n $(this).on('change',\r\n function() {\r\n var $input = $(this);\r\n var value = $input.val();\r\n if ($input.prop(\"checked\")) {\r\n filter.amenityIds.push(value);\r\n } else {\r\n const index = filter.amenityIds.indexOf(value);\r\n if (index > -1) {\r\n filter.amenityIds.splice(index, 1); //after clicking, all accos come back\r\n }\r\n }\r\n if ($(window).width() >= 767) {\r\n filterlist(filter.page);\r\n }\r\n\r\n refreshCount();\r\n });\r\n });\r\n $module.find(\".dropdown-filter-amenities .dropdown-filter-content label[name=checkbox]\").each(function () {\r\n var idEquiptments = $(this).attr('value');\r\n if (filter.amenityIds.includes(idEquiptments)) {\r\n $(this).parents(\".equiptCheckbox\").prepend($(this));\r\n $(this).show();\r\n }\r\n });\r\n $module.find(\".accos-filter-boardings input[type=checkbox]\").each(function () {\r\n var idBoardings = $(this).attr('value');\r\n if (filter.boardingIds.includes(idBoardings)) {\r\n $(this).prop(\"checked\", true);\r\n } else {\r\n $(this).prop(\"checked\", false);\r\n }\r\n $(this).on('change',\r\n function () {\r\n var $input = $(this);\r\n var value = $input.val();\r\n if ($input.prop(\"checked\")) {\r\n filter.boardingIds.push(value);\r\n } else {\r\n const index = filter.boardingIds.indexOf(value);\r\n if (index > -1) {\r\n filter.boardingIds.splice(index, 1); //after clicking, all accos come back\r\n }\r\n }\r\n if ($(window).width() >= 767) {\r\n filterlist(filter.page);\r\n }\r\n refreshCount();\r\n });\r\n });\r\n function filterlist(page) {\r\n $list.html('');\r\n var filterAccos = [];\r\n\r\n $accos.each(function () {\r\n var $acco = $(this);\r\n var amenityIds = $acco.data(\"amenityids\").toString().split(',');\r\n var accoStars = $acco.data(\"stars\");\r\n var boardingIds = $acco.data(\"boardingids\").toString().split(',');\r\n var foundAmenityIds = 0;\r\n filter.amenityIds.forEach(function(x) {\r\n var success = false;\r\n amenityIds.forEach(function(y) {\r\n if (x === y) {\r\n success = true;\r\n }\r\n });\r\n\r\n if (success) {\r\n foundAmenityIds++;\r\n }\r\n });\r\n\r\n function checkStar(star) {\r\n return star.from <= accoStars && accoStars <= star.to;\r\n }\r\n function checkBoard(board) {\r\n return filter.boardingIds.includes(board) && boardingIds.includes(board);\r\n }\r\n\r\n var matchStars = filter.stars.some(checkStar) || filter.stars.length === 0;\r\n var matchAmenities = filter.amenityIds.length === foundAmenityIds;\r\n var matchBoardings = filter.boardingIds.some(checkBoard)|| filter.boardingIds.length === 0;\r\n if (matchStars && matchAmenities && matchBoardings) {\r\n filterAccos.push($acco);\r\n }\r\n });\r\n var totalCount = filterAccos.length;\r\n updatePaging(totalCount, page);\r\n var pageSize = 15;\r\n var take = pageSize;\r\n var skip = (page - 1) * pageSize;\r\n var pageAccos = filterAccos.slice(skip, skip + take);\r\n pageAccos.forEach(function (acco) {\r\n $list.append(acco.show());\r\n });\r\n window.CreateSlider();\r\n window.bindGaq($list);\r\n refreshCount();\r\n $list.children().length ? $module.find(\".error\").css(\"display\", \"none\") : $module.find(\".error\").css(\"display\", \"block\");\r\n\r\n //- -------------------enquirybar-----------------------------\r\n $(\".enquirybar input[name=AmenityIds]\").val(filter.amenityIds.join(\",\"));\r\n var valueStar = filter.stars.map(function (val) { return val.value; });\r\n $(\".enquirybar input[name=Stars]\").val(valueStar);\r\n $(\".enquirybar input[name=BoardingIds]\").val(filter.boardingIds.join(\",\"));\r\n //- -----------------------cookie-----------------------------\r\n\r\n const object = { amenityIds: filter.amenityIds, stars: filter.stars, boardingIds: filter.boardingIds}\r\n\r\n var json = JSON.stringify(object);\r\n try {\r\n setCookie(\"AccosFilter\", json, 1);\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n\r\n\r\n //btn reset\r\n $btnResetFilter.on('click',\r\n function() {\r\n filter.stars = [];\r\n filter.amenityIds = [];\r\n filterlist(filter.page);\r\n $checkbox.prop('checked', false);\r\n });\r\n\r\n //Filter-mobile\r\n $btnFilterMobile.on('click',\r\n function () {\r\n $accosFilter.show();\r\n $filterFlyingblock.show();\r\n $filterFlyingblockMobile.show();\r\n $module.find(\".region-dropdown\").hide();\r\n $module.find(\".theme-dropdown\").hide();\r\n $mobilSelects.show();\r\n $('body').css(\"overflow\", \"hidden\");\r\n $accosFilter.css(\"overflow\", \"auto\");\r\n });\r\n\r\n //filter-close\r\n $filterClose.on('click',\r\n function () {\r\n $accosFilter.hide();\r\n $filterFlyingblock.hide();\r\n $dropdownsPc.show();\r\n $mobilSelects.hide();\r\n $('body').css(\"overflow\", \"auto\");\r\n $accosFilter.css(\"overflow\", \"hidden\");\r\n });\r\n\r\n //window-resize\r\n //$(window).on('resize',\r\n // function() {\r\n // var win = $(this);\r\n // if (win.width() >= 768) {\r\n // $accosFilter.show();\r\n // $filterFlyingblock.hide();\r\n // }\r\n // if (win.width() >= 768) {\r\n // $filterFlyingblock.show();\r\n // $accosFilter.show();\r\n // }\r\n // });\r\n\r\n // --- Button dropdowns ---\r\n //regions\r\n $(document).ready(function ($) {\r\n var open = false;\r\n var openSidebar = function () {\r\n $('.dropdown-filter-regions').addClass('is-active');\r\n $iconExpandMoreRegions.addClass(\"rotate\");\r\n open = true;\r\n }\r\n var closeSidebar = function () {\r\n $('.dropdown-filter-regions').removeClass('is-active');\r\n $iconExpandMoreRegions.removeClass(\"rotate\");\r\n open = false;\r\n }\r\n\r\n $btnDropRegions.click(function (event) {\r\n event.stopPropagation();\r\n var toggle = open ? closeSidebar : openSidebar;\r\n toggle();\r\n });\r\n\r\n $iconExpandMoreRegions.click(function (event) {\r\n event.stopPropagation();\r\n var toggle = open ? closeSidebar : openSidebar;\r\n toggle();\r\n });\r\n\r\n $(document).click(function (event) {\r\n if (!$(event.target).closest('.drodown-filter-regions').length) {\r\n closeSidebar();\r\n }\r\n });\r\n });\r\n //themes\r\n $(document).ready(function ($) {\r\n var open = false;\r\n var openSidebar = function () {\r\n $('.dropdown-filter-themes').addClass('is-active');\r\n $iconExpandMoreThemes.addClass(\"rotate\");\r\n open = true;\r\n }\r\n var closeSidebar = function () {\r\n $('.dropdown-filter-themes').removeClass('is-active');\r\n $iconExpandMoreThemes.removeClass(\"rotate\");\r\n open = false;\r\n }\r\n\r\n $btnDropThemes.click(function (event) {\r\n event.stopPropagation();\r\n var toggle = open ? closeSidebar : openSidebar;\r\n toggle();\r\n });\r\n\r\n $iconExpandMoreThemes.click(function (event) {\r\n event.stopPropagation();\r\n var toggle = open ? closeSidebar : openSidebar;\r\n toggle();\r\n });\r\n\r\n $(document).click(function (event) {\r\n if (!$(event.target).closest('.drodown-filter-themes').length) {\r\n closeSidebar();\r\n }\r\n });\r\n });\r\n\r\n // .dropdown-filter - open/close\r\n $module.find('.dropdown-filter').each(function () {\r\n var $btn = $(this).find('.icon-chevron');\r\n var $content = $(this).find('.dropdown-filter-content');\r\n\r\n $(this).find('.dropdown-filter-text, .icon-chevron').on('click', function () {\r\n $content.animate({ height: \"toggle\" }, { duration: 500, easing: 'swing' });\r\n $btn.toggleClass(\"rotate\");\r\n });\r\n });\r\n\r\n\r\n // select one region or theme\r\n $module.find(\".regionOption select[name=regionMobilId]\").on(\"change\",\r\n function() {\r\n $module.find(\"#themeMobilId\").val(0);\r\n });\r\n $module.find(\".themeOption select[name=themeMobilId]\").on(\"change\",\r\n function() {\r\n $module.find(\"#regionMobilId\").val(0);\r\n });\r\n\r\n //btn-filter-now\r\n if ($(window).width() <= 767) {\r\n var link = \"\";\r\n $module.find(\".regionOption select[name=regionMobilId]\").on(\"change\",\r\n function() {\r\n link = $(this).find(':selected').data('url');\r\n refreshCount();\r\n });\r\n $module.find(\".themeOption select[name=themeMobilId]\").on('change',\r\n function() {\r\n link = $(this).find(':selected').data('url');\r\n refreshCount();\r\n });\r\n\r\n $btnFilterNow.on('click',\r\n function() {\r\n $('body').css(\"overflow\", \"auto\");\r\n $accosFilter.css(\"overflow\", \"hidden\");\r\n $accosFilter.hide();\r\n $filterFlyingblockMobile.hide();\r\n $filterFlyingblock.hide();\r\n if (link == \"\") {\r\n filterlist(filter.page);\r\n } else {\r\n filterlist(filter.page);\r\n location.href = link;\r\n }\r\n });\r\n }\r\n\r\n // show more Button\r\n\r\n // TODO create [showmore] directive component!\r\n $module.find('.dropdown-filter-amenities .dropdown-filter-content').each(function() {\r\n var $module = $(this);\r\n\r\n var $btn = $module.find('[showmore-btn]');\r\n\r\n var $container = $module.find('[showmore-items]');\r\n var maxCount = +$btn.attr('showmore-btn');\r\n\r\n $btn.click(function() {\r\n var count = 0;\r\n var all = $container.children();\r\n all.each(function() {\r\n var e = $(this);\r\n if (!e.is(\":visible\")) {\r\n if (count < maxCount) {\r\n e.show();\r\n }\r\n count++;\r\n }\r\n });\r\n if ($container.find(\">:visible\").length === all.length) {\r\n $btn.hide();\r\n }\r\n });\r\n });\r\n //btn-booking\r\n //$btnBooking.each(function() {\r\n // var href = $(this).prop('href');\r\n // if (href.indexOf('?') > -1) {\r\n // $btnBooking.show();\r\n // } else {\r\n // $btnBooking.hide();\r\n // }\r\n //});\r\n\r\n // paging\r\n function updatePaging(totalCount, pageNumber) {\r\n var pageSize = 15;\r\n var pageCount = (parseInt(Math.ceil(totalCount)) / parseFloat(pageSize));\r\n\r\n var pagination = $module.find(\".pagination\").html(\"\");\r\n for (var i = 1; i <= Math.ceil(pageCount); i++) {\r\n addPaging(i);\r\n }\r\n var aElement;\r\n function addPaging(page) {\r\n if (pageCount > 1) {\r\n aElement = $('' + page + '').on(\"click\",\r\n function() {\r\n filterlist(page);\r\n });\r\n if (page == pageNumber) {\r\n aElement.addClass(\"active\");\r\n }\r\n\r\n pagination.append(aElement);\r\n }\r\n }\r\n }\r\n\r\n //$(window).on(\"load\", function () {\r\n // refreshCount();\r\n //});\r\n\r\n function loading(isLoading) {\r\n // TODO fix loading spinner !!! it doesn't work!\r\n $module.find('.load-spinner').toggleClass('spin', isLoading);\r\n $module.find(':submit').prop('disabled', isLoading);\r\n $module.find('.accos-count b').hide();\r\n }\r\n\r\n var oneCompanyCount = $(\".filter-companycount span1\");\r\n\r\n function refreshCount() {\r\n var areaId, themeId;\r\n areaId = parseInt($(\".regionsNav\").filter(\".active\").attr(\"id\")) || 0;\r\n themeId = parseInt($(\".themesNav\").filter(\".active\").attr(\"id\")) || 0;\r\n // fix (undefined | \"\" | string | string[]) to string[]\r\n var makeArray = function (value) { return !$.isArray(value) && value ? [value] : value || []; }\r\n\r\n var accosFilter = {\r\n themeId: themeId,\r\n areaId: areaId,\r\n stars: makeArray(filter.stars),\r\n boardingIds: makeArray(filter.boardingIds),\r\n amenityIds: makeArray(filter.amenityIds)\r\n };\r\n\r\n loading(true);\r\n $.ajax({\r\n cache: false,\r\n url: '/api/accos/count',\r\n type: 'POST',\r\n data: JSON.stringify(accosFilter),\r\n dataType: 'json',\r\n contentType: 'application/json',\r\n success: function(data) {\r\n setTimeout(timeout, 300);\r\n function timeout() {\r\n loading(false);\r\n var count = data.count;\r\n $(\"#enquiry-small-box-send b\").addClass(\"count\");\r\n $(\".count\").html(count);\r\n\r\n $module.find(\".accos-count\").html(\"\" + count + \"\");\r\n $module.find('.accos-count b').show();\r\n if (count == 1) {\r\n $module.find(\".filter-companycount span\").hide();\r\n $module.find(\".accos-count b\").html(count) && oneCompanyCount.show();\r\n $module.find('.accos-count b').show();\r\n } else {\r\n $module.find(\".filter-companycount span\").show();\r\n oneCompanyCount.hide();\r\n }\r\n if (count == 0) {\r\n $module.find(\".errorFilter\").show();\r\n $module.find($btnFilterNow).hide();\r\n $(\".date-picker__position button\").css(\"opacity\", \"0.7\").attr(\"disabled\", true);\r\n\r\n } else {\r\n $module.find(\".errorFilter\").hide();\r\n $module.find($btnFilterNow).show();\r\n $(\".date-picker__position button\").attr(\"disabled\", false);\r\n $(\".date-picker__position button\").css(\"opacity\", \"1\");\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n });\r\n\r\n\r\n function getCookie(name) {\r\n var i,\r\n x,\r\n y,\r\n cookies = document.cookie.split(\";\");\r\n\r\n for (i = 0; i < cookies.length; i++) {\r\n x = cookies[i].substr(0, cookies[i].indexOf(\"=\"));\r\n y = cookies[i].substr(cookies[i].indexOf(\"=\") + 1);\r\n x = x.replace(/^\\s+|\\s+$/g, \"\");\r\n\r\n if (x === name) {\r\n return unescape(y);\r\n }\r\n }\r\n }\r\n\r\n function setCookie(name, value, exdays) {\r\n var cookieValue = escape(value);\r\n if (exdays) {\r\n var exdate = new Date();\r\n exdate.setDate(exdate.getDate() + exdays);\r\n cookieValue += \"; expires=\" + exdate.toUTCString();\r\n }\r\n document.cookie = name + \"=\" + cookieValue + \"; path=/\";\r\n }\r\n});","$(function($) {\r\n \"use strict\";\r\n\r\n // serializeObject\r\n $.fn.serializeObject = function() {\r\n\r\n var o = {};\r\n var a = this.serializeArray();\r\n $.each(a,\r\n function() {\r\n if (o[this.name]) {\r\n if (!o[this.name].push) {\r\n o[this.name] = [o[this.name]];\r\n }\r\n o[this.name].push(this.value || \"\");\r\n } else {\r\n o[this.name] = this.value || \"\";\r\n }\r\n });\r\n return o;\r\n };\r\n\r\n $('.enquiry-form').each(function() {\r\n var $module = $(this);\r\n var $form = $('form#enquiry-form');\r\n enquirycount();\r\n bindValidation($form);\r\n //bindAvailability($form);\r\n\r\n $module.find('.js-trigger-filteravailability').on('change', () => {\r\n if ($module.find('[name=\"filteravailability\"]').prop('checked'))\r\n enquirycountdebounced();\r\n });\r\n $module.find('#childrenages-cont').hide();\r\n $module.find('#children').on(\"change\",\r\n function() {\r\n var childrenCount = this.value;\r\n if (childrenCount > 0) {\r\n $module.find('#childrenages-cont').show();\r\n } else {\r\n $module.find('#childrenages-cont').hide();\r\n }\r\n\r\n $('#dropdown-ages').html(\"\");\r\n\r\n for (var j = 0; j < childrenCount; j++) {\r\n var $select = $('