All ')\r\n $('.tab-select').click(function () {\r\n $('.tabs, .tab-select').toggleClass('active');\r\n });\r\n $('.tabs li a').click(function () {\r\n var selectTitle = $(this).text();\r\n $('.tab-select span').text(selectTitle);\r\n $('.tabs, .tab-select').removeClass('active')\r\n });\r\n\r\n //$('.dropdown-brochure').cabSelect();\r\n //$('.cab-select').prepend('
');\r\n //$('.career-search input').before('
');\r\n\r\n /* Tabs */\r\n var $tabsContainer = $('.offerslisting .tabs');\r\n var $tabs = $tabsContainer.find('li');\r\n var width = 33.33;\r\n $tabsContainer.css('width', width * $tabs.length + '%').css('margin-left', width + '%');\r\n $tabs.css('width', (100 / $tabs.length) + '%');\r\n\r\n $('.tabs li a').click(function () {\r\n $('.tabs li').removeClass('visible');\r\n $(this).parent().addClass('visible');\r\n });\r\n\r\n /* Tab Swipe */\r\n $('.brochurelisting nav').cabSwipe({\r\n left: function () {\r\n var $next = $tabsContainer.find('.visible').next();\r\n if ($next.length > 0) {\r\n $next.find('a')[0].click();\r\n }\r\n },\r\n right: function () {\r\n var $prev = $tabsContainer.find('.visible').prev();\r\n if ($prev.length > 0) {\r\n $prev.find('a')[0].click();\r\n }\r\n }\r\n });\r\n\r\n /* Apply height of tallest element to all so layout doesn't break */\r\n\r\n var BrochureHeights = $('.categories .brochure').map(function () {\r\n return $(this).height();\r\n }).get();\r\n\r\n var maxHeight = Math.max.apply(null, BrochureHeights);\r\n\r\n $('.categories .brochure').height(maxHeight);\r\n\r\n /* Position Tabs */\r\n function positionTabs() {\r\n var index = $tabsContainer.find('.visible').index();\r\n if (index >= 0) {\r\n $tabsContainer.css('margin-left', -((width * index) - width) + '%');\r\n }\r\n }\r\n\r\n /* Handle Hash Change */\r\n function hashChange() {\r\n $tabs.removeClass('visible');\r\n\r\n var hash = window.location.hash.replace(/^#/, '');\r\n if (hash == 'all' || hash == '') {\r\n $('.brochurelisting .category').addClass('visible');\r\n $tabs.first().addClass('visible');\r\n }\r\n else {\r\n var $category = $('.brochurelisting .category[data-hash=\"' + hash + '\"]');\r\n if ($category.length > 0) {\r\n $('.brochurelisting .category').removeClass('visible');\r\n $category.addClass('visible');\r\n $tabs.find('a[href=\"#' + hash + '\"]').closest('li').addClass('visible');\r\n }\r\n }\r\n positionTabs();\r\n };\r\n hashChange();\r\n $(window).bind('hashchange', function () {\r\n hashChange();\r\n });\r\n});","$(function () {\r\n if ($('.journallisting').length <= 0) return false;\r\n\r\n var property = getParameterByName('property');\r\n var category = getParameterByName('category');\r\n \r\n\r\n $('#journal-filter-button').on('click', function () {\r\n\r\n property = $('.journal-filter select[name=propertyList]').val()\r\n category = $('.journal-filter select[name=categories]').val()\r\n\r\n updateParameter('property', property);\r\n updateParameter('category', category);\r\n\r\n filterJournals(property, category);\r\n });\r\n \r\n // Set the dropdown values to the querystring values.\r\n setDropdownValues(property, category);\r\n\r\n // Load journals when page loads.\r\n filterJournals(property, category);\r\n\r\n\r\n\r\n // FUNCTIONS\r\n\r\n function setDropdownValues(property, category) {\r\n if (property != null && property != undefined) {\r\n $('.journal-filter select[id=propertyList]').val(property);\r\n $('.journal-filter select[id=propertyList] option').removeClass('selected');\r\n $('.journal-filter select[id=propertyList] option[value=' + property + ']').addClass('selected');\r\n $('.property-dropdown .cab-select-box').text($('.property-dropdown li[rel=' + property + ']').text())\r\n }\r\n if (category != null && category != undefined) {\r\n $('.journal-filter select[id=categories]').val(category);\r\n $('.journal-filter select[id=categories] option').removeClass('selected');\r\n $('.journal-filter select[id=categories] option[value=' + category + ']').addClass('selected');\r\n $('.category-dropdown .cab-select-box').text($('.category-dropdown li[rel=' + category + ']').text())\r\n }\r\n };\r\n\r\n function filterJournals(property, category) {\r\n getFilteredJournals(property, category, function (data) {\r\n\r\n if (data != null && data.Journals.length > 0) {\r\n var template = Handlebars.compile($('#JournalListingTemplate').html());\r\n }\r\n else {\r\n var template = Handlebars.compile($('#JournalsUnavailableTemplate').html());\r\n console.log('INFO: Filtering failed - ' + data);\r\n }\r\n\r\n var html = template(data);\r\n $('#journals-list').html(html);\r\n });\r\n };\r\n\r\n function getFilteredJournals(property, category, callback) {\r\n var params = {\r\n Property: property,\r\n Category: category\r\n };\r\n\r\n $.ajax({\r\n type: \"GET\",\r\n datatype: \"application/json\",\r\n data: params,\r\n url: \"/umbraco/api/journals/filterjournals\",\r\n success: function (data) {\r\n callback(data);\r\n },\r\n error: function (request, status, error) {\r\n console.log(\"ERROR: [/api/journals/filterjournals] Unable to filter journals - \" + error);\r\n callback(null);\r\n }\r\n });\r\n };\r\n\r\n function getParameterByName(name, url) {\r\n if (!url) url = window.location.href;\r\n name = name.replace(/[\\[\\]]/g, \"\\\\$&\");\r\n var regex = new RegExp(\"[?&]\" + name + \"(=([^]*)|&|#|$)\"),\r\n results = regex.exec(url);\r\n if (!results) return null;\r\n if (!results[2]) return '';\r\n return decodeURIComponent(results[2].replace(/\\+/g, \" \"));\r\n };\r\n\r\n function updateParameter(key, value) {\r\n if (history.pushState) {\r\n var newurl = '';\r\n var uri = window.location.href;\r\n var re = new RegExp(\"([?&])\" + key + \"=.*?(&|$)\", \"i\");\r\n var separator = uri.indexOf('?') !== -1 ? \"&\" : \"?\";\r\n if (uri.match(re)) {\r\n if (value == null || value == undefined || value == \"\") {\r\n if (uri.indexOf('&') > -1) {\r\n newurl = uri.replace(new RegExp(\"[&]?\" + key + \"=.*?(&|$)\", \"i\"), '');\r\n }\r\n else {\r\n newurl = uri.replace(re, '');\r\n }\r\n }\r\n else {\r\n newurl = uri.replace(re, '$1' + key + \"=\" + value + '$2');\r\n }\r\n }\r\n else if (value != null && value != undefined && value != \"\") {\r\n newurl = uri + separator + key + \"=\" + value;\r\n }\r\n window.history.pushState({ path: newurl }, '', newurl);\r\n }\r\n };\r\n\r\n Handlebars.registerHelper('coalesce', function (a, b) { return a || b; });\r\n\r\n\r\n\r\n\r\n\r\n});\r\n","$(function () {\r\n\r\n //if ($('.meetingroom').length == 0) return false;\r\n var $meetingRoomSlider = $('.meetingroom-slider');\r\n var $tabsContainer = $meetingRoomSlider.find('.tabs');\r\n var $tabs = $meetingRoomSlider.find('.tabs li');\r\n\r\n /* Room Plan Tabs */\r\n var width = 33.33;\r\n $('.meetingroom-slider').tabbed({\r\n afterChange: function () {\r\n $('#ContactDropdown .contacts').height($('#ContactDropdown .slides .visible').height());\r\n\r\n var $tabsContainer = $meetingRoomSlider.find('.tabs');\r\n var $tab = $tabsContainer.find('.visible');\r\n if ($(window).width() < 768) {\r\n $tabsContainer.css('margin-left', -((width * $tab.index()) - width) + '%');\r\n }\r\n }\r\n });\r\n\r\n if ($(window).width() < 768) {\r\n $meetingRoomSlider.children('.tabs').css('width', width * $tabs.length + '%').css('margin-left', width + '%');\r\n $tabs.css('width', (100 / $tabs.length) + '%');\r\n }\r\n\r\n\r\n setTimeout(function () {\r\n var slideHeight = $meetingRoomSlider.find('.slides img').height();\r\n $meetingRoomSlider.find('.slides').height(slideHeight);\r\n }, 2000);\r\n\r\n\r\n /* Room Plan Swipe */\r\n $meetingRoomSlider.cabSwipe({\r\n left: function () {\r\n $meetingRoomSlider.trigger('next');\r\n },\r\n right: function () {\r\n $meetingRoomSlider.trigger('prev');\r\n }\r\n });\r\n\r\n\r\n /* Full Screen Meeting Room Popup */\r\n\r\n var $container = $('.meeting-carousel');\r\n //var $inline = $('.inline-carousel');\r\n //var $full = $('.full-carousel');\r\n\r\n //if ($inline.length == 0 || $full.length == 0) return false;\r\n\r\n $('.meeting-layouts .expand-carousel, .meeting-layouts .contract-carousel').click(function () {\r\n if (!$container.hasClass('fixed')) {\r\n var scroll = (($('.meetingroom-slider ul').offset().top - ($(window).height() / 2)) + ($container.height() / 2));\r\n $('html, body').animate({ scrollTop: scroll }, 400, function () {\r\n $container.addClass('fixed');\r\n });\r\n $('#siteWrap').addClass('lock');\r\n }\r\n else {\r\n $container.removeClass('fixed');\r\n $('#siteWrap').removeClass('lock');\r\n }\r\n });\r\n\r\n\r\n $container.children('.inner').slick({\r\n dots: true,\r\n autoplay: false,\r\n touchThreshold: 25,\r\n arrows: false,\r\n centerMode: true,\r\n centerPadding: '20%',\r\n initialSlide: $('.meetingroom-slider .slides .visible').index() + 1\r\n });\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n $('.date-picker').datepicker({\r\n defaultDate: null,\r\n dateFormat: \"dd-mm-yy\",\r\n //-dayNamesMin: [\"M\", \"T\", \"W\", \"T\", \"F\", \"S\", \"S\"],\r\n minDate: 0\r\n });\r\n\r\n if ($('.eventslisting').length) {\r\n $('body').addClass('events-listing');\r\n }\r\n\r\n if ($('.eventssearchresults').length) {\r\n $('body').addClass('events-eventssearchresults');\r\n $('.events-eventssearchresults .eventssearchresults button').addClass('animated-button dark')\r\n }\r\n \r\n \r\n \r\n\r\n\t\t$('#meetingsAccordion').accordiom({\t\t\t\r\n\t\t\tshowFirstItem: false,\r\n\t\t\tautoClosing: true\t\t\t\r\n\t\t});\r\n\r\n\r\n});","$(function () {\r\n if ($('.location').length == 0) return false;\r\n\r\n var $propertySelector = $('.location .property-selector');\r\n\r\n /* Map Height */\r\n var height = $(window).height();\r\n $('#LocationsMap').height(height);\r\n $propertySelector.css('height', height + 'px');\r\n\r\n /* Tabs Height */\r\n var $children = $('.location .tabs').children();\r\n var tabHeight = 100;\r\n\r\n if (window.matchMedia('(min-width: 768px) and (max-width: 1000px)').matches) {\r\n tabHeight = (100 / ($children.length / 2));\r\n }\r\n else {\r\n tabHeight = (100 / $children.length);\r\n }\r\n $children.css('height', tabHeight + '%');\r\n\r\n /* Property Selector Dropdown Tabs */\r\n var $tabs = $('.location .property-selector').find('.tabs');\r\n var $contents = $('.location .property-selector .locations');\r\n $propertySelector.tabbed({\r\n tabs: $tabs,\r\n initialTab: null,\r\n contents: $contents,\r\n afterChange: function () {\r\n $propertySelector.removeClass('tabs-visible').removeClass('all-visible');\r\n\r\n var label = $tabs.find('.visible .middle').html();\r\n var type = label.replace(/(
.*?<\\/b>)/igm, '').trim();\r\n $('.tabs-button span:nth-child(2)').text(type);\r\n\r\n deleteMarkers();\r\n\r\n bounds = new google.maps.LatLngBounds();\r\n addMarkers($contents.find('.visible'));\r\n\r\n map.fitBounds(bounds);\r\n if (markers.length > 1) {\r\n }\r\n else {\r\n map.setZoom(14);\r\n }\r\n }\r\n });\r\n\r\n /* Property Selector Button */\r\n $('.tabs-button').click(function () {\r\n $('.location .property-selector').toggleClass('tabs-visible');\r\n $('.locations-list').get(0).slick.setPosition();\r\n });\r\n\r\n $('.location .tabs li').click(function () {\r\n $('.locations-list').slick('setPosition');\r\n $('.locations-list').resize();\r\n });\r\n\r\n /* All Locations */\r\n var $allLocations = $('.location .all-locations');\r\n $('.location .locations [data-type=\"property\"]').each(function () {\r\n $allLocations.append($(this).clone());\r\n });\r\n\r\n /* Multiple Product Tabs */\r\n function tabEvents() {\r\n $('.product-tabs span').on('click', function () {\r\n $(this).parent().find('span').removeClass('active');\r\n $(this).addClass('active');\r\n var $content = $(this).parent().next('.product-tabs-content');\r\n $content.find('> div').removeClass('active');\r\n $content.find('> div:nth-child(' + ($(this).index() + 1) + ')').addClass('active');\r\n });\r\n }\r\n tabEvents();\r\n\r\n /* Logo Carousel */\r\n $('.location .all-locations, .location .locations > ul').slick({\r\n centerMode: true,\r\n slidesToShow: 1,\r\n infinite: false,\r\n touchThreshold: 25,\r\n mobileFirst: true,\r\n responsive: [\r\n {\r\n breakpoint: 0,\r\n settings: {\r\n slidesToShow: 1,\r\n centerPadding: '2%'\r\n }\r\n },\r\n {\r\n breakpoint: 480,\r\n settings: {\r\n centerPadding: '7%'\r\n } \r\n },\r\n {\r\n breakpoint: 768,\r\n settings: {\r\n centerPadding: '15%'\r\n } \r\n },\r\n {\r\n breakpoint: 1000,\r\n settings: 'unslick'\r\n }\r\n ],\r\n centerPadding: '2%'\r\n });\r\n\r\n /* Logo Click: Centre on Map */\r\n $('.locations-list').on('click', 'li', function () {\r\n var position = { lat: parseFloat($(this).attr('data-lat')), lng: parseFloat($(this).attr('data-lng')) };\r\n map.setCenter(position);\r\n map.setZoom(13);\r\n });\r\n\r\n\r\n /*\r\n * ----------------------------------------\r\n * Google Maps\r\n * ----------------------------------------\r\n */\r\n var map,\r\n bounds = null\r\n markers = [],\r\n ib = null;\r\n\r\n /* Init Map */\r\n var initMap = function () {\r\n \r\n var center = { lat: 51.507302, lng: -0.127429 };\r\n var zoom = 9\r\n var singleProperty = false;\r\n\r\n if (typeof initialLat != \"undefined\" && typeof initialLng != \"undefined\") {\r\n center = { lat: initialLat, lng: initialLng };\r\n zoom = 15;\r\n singleProperty = true\r\n }\r\n\r\n map = new google.maps.Map(document.getElementById('LocationsMap'), {\r\n zoom: zoom,\r\n center: center,\r\n disableDefaultUI: true,\r\n scrollwheel: false,\r\n draggable: (window.matchMedia('(max-width: 1000px)').matches ? false : true)\r\n });\r\n\r\n \r\n\r\n /* Window Resize Event */\r\n google.maps.event.addDomListener(window, 'resize', function () {\r\n map.fitBounds(bounds);\r\n closeInfoBox();\r\n $('#LocationsMap, .location .property-selector, .finduslocation .property-selector').outerHeight($(window).height() - $('#TopNav').height());\r\n });\r\n\r\n if (!singleProperty) {\r\n bounds = new google.maps.LatLngBounds();\r\n map.fitBounds(bounds);\r\n }\r\n\r\n addMarkers($('.location .locations'), 'property');\r\n\r\n map.fitBounds(bounds);\r\n\r\n }();\r\n\r\n /* Add Markers Based on Visible Data Attributes */\r\n function addMarkers($container, type) {\r\n\r\n $container.find('[data-lat]' + (typeof type !== 'undefined' ? '[data-type=\"' + type + '\"]' : '')).each(function () {\r\n\r\n var iconWidth = 37;\r\n\r\n var position = { lat: parseFloat($(this).attr('data-lat')), lng: parseFloat($(this).attr('data-lng')) };\r\n var marker = new google.maps.Marker({\r\n position: position,\r\n map: map,\r\n icon: new google.maps.MarkerImage($(this).attr('data-marker'), null, null, null, new google.maps.Size(iconWidth, 46)),\r\n html: $(this).html(),\r\n pos: position,\r\n loc: $(this).attr('data-location')\r\n });\r\n marker.addListener('click', function () {\r\n closeInfoBox();\r\n\r\n if (window.matchMedia('(min-width: 1001px)').matches) {\r\n var ibOptions = {\r\n content: this.html,\r\n alignBottom: true,\r\n disableAutoPan: false,\r\n maxWidth: 0,\r\n pixelOffset: new google.maps.Size(20, 250),\r\n zIndex: null,\r\n closeBoxURL: \"\",\r\n infoBoxClearance: new google.maps.Size(50, 50),\r\n isHidden: false,\r\n pane: \"floatPane\",\r\n enableEventPropagation: false\r\n };\r\n ib = new InfoBox(ibOptions);\r\n ib.open(map, this);\r\n ib.addListener(\"domready\", function () {\r\n $('.infoBox .close').on('click', function (e) {\r\n $(this).closest('.infoBox').css('visibility', 'hidden');\r\n });\r\n tabEvents();\r\n });\r\n }\r\n else {\r\n $('.location .locations-list li[data-lat=\"' + this.pos.lat + '\"][data-lng=\"' + this.pos.lng + '\"]').each(function () {\r\n var $slider = $(this).closest('.slick-slider');\r\n if ($slider.length > 0) {\r\n //$('html, body').animate({ scrollTop: $('.locations-list').position().top + 325}, 600);\r\n $slider.slick('slickGoTo', $(this).attr('data-slick-index'));\r\n }\r\n });\r\n }\r\n });\r\n\r\n markers.push(marker);\r\n if (bounds !== null) {\r\n bounds.union(new google.maps.LatLngBounds(new google.maps.LatLng(position.lat, position.lng)));\r\n }\r\n });\r\n }\r\n\r\n /* Close Info Box */\r\n function closeInfoBox() {\r\n if (ib !== null) {\r\n ib.close();\r\n ib = null;\r\n }\r\n }\r\n\r\n /* Delete All Map Markers */\r\n function deleteMarkers() {\r\n closeInfoBox();\r\n for (var i = 0; i < markers.length; i++) {\r\n markers[i].setMap(null);\r\n }\r\n markers = [];\r\n }\r\n\r\n /* Pre Select a Property */\r\n var preSelect = $('#LocationsMap').data('pre-select');\r\n if (preSelect !== '') {\r\n var $property = $('.all-locations [data-node=\"' + preSelect + '\"]');\r\n if ($property.length > 0) {\r\n var $slide = $property.closest('li');\r\n\r\n if (window.matchMedia('(max-width: 1000px)').matches) {\r\n $('.property-selector').removeClass('tabs-visible');\r\n }\r\n\r\n if ($slide.length > 0) {\r\n for (var i in markers) {\r\n if (markers[i].loc == $slide.data('location')) {\r\n new google.maps.event.trigger(markers[i], 'click');\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n});","$(function() {\r\n\r\n initAnimateInView();\r\n initMaps();\r\n \r\n function initAnimateInView() {\r\n $(window).on('DOMContentLoaded load resize scroll', animateElementsInView);\r\n animateElementsInView();\r\n }\r\n\r\n function animateElementsInView() {\r\n $('[data-animate-in-view]').each(function () {\r\n if ( $(this).hasClass('in-view') ) {\r\n return; \r\n }\r\n \r\n if ( isElementInViewport($(this)) ) {\r\n var elementToAnimate = this;\r\n \r\n $(elementToAnimate).addClass('in-view'); // log that this element has been seen\r\n \r\n \r\n setTimeout(function () {\r\n $(elementToAnimate).addClass( $(elementToAnimate).data('animate-in-view') ); // apply the animation class\r\n }, 300);\r\n \r\n \r\n if ( typeof $(elementToAnimate).data('map-load-on-view') != 'undefined' ) { // only load this map once it's in view\r\n buildMap(elementToAnimate);\r\n }\r\n }\r\n });\r\n }\r\n\r\n function isElementInViewport (el) {\r\n if (typeof jQuery === \"function\" && el instanceof jQuery) {\r\n el = el[0];\r\n }\r\n \r\n var rect = el.getBoundingClientRect();\r\n \r\n var t = rect.y;\r\n var b = window.innerHeight - rect.y - rect.height;\r\n var h = window.innerHeight;\r\n \r\n if (\r\n ( (t >= 0) && (t <= h) ) ||\r\n ( (b >= 0) && (b <= h) )\r\n ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n\r\n\r\n function initMaps() {\r\n $('#map').each(function () {\r\n buildMap(this);\r\n });\r\n }\r\n\r\n\r\n function buildMap(mapElement) {\r\n\r\n\r\n // Get the HTML DOM element that will contain your map\r\n // We are using a div with id=\"map\" seen below in the \r\n var mapElement = document.getElementById('map');\r\n\r\n if (mapElement !== null) {\r\n // When the window has finished loading create our google map below\r\n google.maps.event.addDomListener(window, 'load', init);\r\n\r\n function init() {\r\n // Basic options for a simple Google Map\r\n // For more options see: https://developers.google.com/maps/documentation/javascript/reference#MapOptions\r\n var mapOptions = {\r\n // How zoomed in you want the map to start at (always required)\r\n zoom: 8,\r\n mapTypeControl: false,\r\n fullscreenControl: false,\r\n\r\n // The latitude and longitude to center the map (always required)\r\n center: new google.maps.LatLng(51.285436, -1.344206), // central point for all properties\r\n\r\n // How you would like to style the map.\r\n // This is where you would paste any style found on Snazzy Maps.\r\n styles: [\r\n { featureType: 'all', elementType: 'geometry.fill', stylers: [{ weight: '2.00' }] },\r\n { featureType: 'all', elementType: 'geometry.stroke', stylers: [{ color: '#9c9c9c' }] },\r\n { featureType: 'all', elementType: 'labels.text', stylers: [{ visibility: 'on' }] },\r\n { featureType: 'landscape', elementType: 'all', stylers: [{ color: '#f2f2f2' }] },\r\n { featureType: 'landscape', elementType: 'geometry.fill', stylers: [{ color: '#ffffff' }] },\r\n { featureType: 'landscape.man_made', elementType: 'geometry.fill', stylers: [{ color: '#ffffff' }] },\r\n { featureType: 'poi', elementType: 'all', stylers: [{ visibility: 'off' }] },\r\n { featureType: 'road', elementType: 'all', stylers: [{ saturation: -100 }, { lightness: 45 }] },\r\n { featureType: 'road', elementType: 'geometry.fill', stylers: [{ color: '#eeeeee' }] },\r\n { featureType: 'road', elementType: 'labels.text.fill', stylers: [{ color: '#7b7b7b' }] },\r\n { featureType: 'road', elementType: 'labels.text.stroke', stylers: [{ color: '#ffffff' }] },\r\n { featureType: 'road.highway', elementType: 'all', stylers: [{ visibility: 'simplified' }] },\r\n { featureType: 'road.arterial', elementType: 'labels.icon', stylers: [{ visibility: 'off' }] },\r\n { featureType: 'transit', elementType: 'all', stylers: [{ visibility: 'off' }] },\r\n { featureType: 'water', elementType: 'all', stylers: [{ color: '#b0bdc8' }, { visibility: 'on' }] },\r\n { featureType: 'water', elementType: 'geometry.fill', stylers: [{ color: '#b0bdc8' }] },\r\n { featureType: 'water', elementType: 'labels.text.fill', stylers: [{ color: '#070707' }] },\r\n { featureType: 'water', elementType: 'labels.text.stroke', stylers: [{ color: '#ffffff' }] }\r\n ]\r\n };\r\n\r\n // Create the Google Map using our element and options defined above\r\n var map = new google.maps.Map(mapElement, mapOptions);\r\n\r\n if ($(window).width() < 600) {\r\n map.setZoom(6);\r\n }\r\n\r\n // markers\r\n var markers = [];\r\n\r\n $('#properties div[data-marker]').each(function(i, el) {\r\n var $el = $(el);\r\n\r\n var marker = new google.maps.Marker({\r\n position: new google.maps.LatLng($el.data('lat'), $el.data('lng')),\r\n map: map,\r\n title: $el.data('name'),\r\n icon: {\r\n url: $el.data('marker')\r\n },\r\n panel: '#' + $el.attr('id'),\r\n categories: $el.data('categories').split(',')\r\n });\r\n\r\n markers.push(marker);\r\n });\r\n\r\n // panels\r\n\r\n markers.forEach(function(marker) {\r\n if (marker.categories.contains('hide-pin')) {\r\n marker.setVisible(false);\r\n }\r\n\r\n marker.addListener('click', function() {\r\n if (marker.categories.contains('double-pin')) {\r\n map.panTo(marker.getPosition());\r\n map.setZoom(14);\r\n marker.setVisible(false);\r\n\r\n markers.forEach(function(marker) {\r\n if (marker.categories.contains('hide-pin')) {\r\n marker.setVisible(true);\r\n\r\n if ($(window).width() > 600) {\r\n $('#the-manor-house').show();\r\n }\r\n\r\n $('#map').css({ height: $(marker.panel).height() + 'px' });\r\n\r\n marker.addListener('click', function() {\r\n //alert ('hi');\r\n map.panTo(marker.getPosition());\r\n map.setZoom(20);\r\n $('.panel').hide();\r\n $(marker.panel).show();\r\n $('#map').css({ height: $(marker.panel).height() + 'px' });\r\n });\r\n }\r\n });\r\n } else if (marker.categories.contains('hide-pin')) {\r\n if ($(window).width() < 600) {\r\n $('html,body').animate(\r\n {\r\n scrollTop: $('#properties').offset().top - 67\r\n },\r\n 'slow'\r\n );\r\n }\r\n } else {\r\n $('.panel').hide();\r\n $(marker.panel).show();\r\n $('#map').css({ height: $(marker.panel).height() + 'px' });\r\n map.panTo(marker.getPosition());\r\n map.setZoom(12);\r\n\r\n if ($(window).width() < 600) {\r\n $('html,body').animate(\r\n {\r\n scrollTop: $('#properties').offset().top - 67\r\n },\r\n 'slow'\r\n );\r\n }\r\n }\r\n });\r\n });\r\n\r\n $('.panel .close').click(function(event) {\r\n\r\n event.preventDefault();\r\n\r\n \t \t$('.contact-1').show();\r\n $('.contact-2').hide();\r\n $('.contact-2-link').removeClass('selected');\r\n $('.contact-1-link').addClass('selected'); \r\n \r\n \r\n \r\n \r\n \r\n /* $('.restaurant-1').hide();\r\n \t\t\t\t\t$('.restaurant-2').hide();\r\n \t\t\t\t\t$('.restaurant-3').hide();\r\n \t\t\t\t\t$('.restaurant-4').hide();\r\n $('.restaurant-1-link').removeClass('selected');\r\n \t\t\t\t\t$('.restaurant-2-link').removeClass('selected');\r\n \t\t\t\t\t$('.restaurant-3-link').removeClass('selected');\r\n \t\t\t\t\t$('.restaurant-4-link').addClass('selected'); */\r\n \t\t\t\t\t\r\n \t\t\t\t\t\r\n if ($('#map').css('display') == 'none') {\r\n $('.panel').hide();\r\n $('#map').hide();\r\n $('#mobile-list').show();\r\n $('main').css({ height: 'auto' });\r\n \r\n \t\t\t\t\t\r\n } else {\r\n markers.forEach(function(marker) {\r\n \t \r\n if (marker.categories.contains('hide-pin')) {\r\n marker.setVisible(false);\r\n } \r\n /* if (marker.categories.contains('double-pin')) {\r\n \t\t\t\t\t\t\tmarker.setVisible(true);\r\n \t\t\t\t\t\t} */\r\n });\r\n\r\n $('.panel').hide();\r\n map.setZoom(8);\r\n\r\n if ($(window).width() < 600) {\r\n $('html,body').animate(\r\n {\r\n scrollTop: $('.siteWrap').offset().top\r\n },\r\n 'slow'\r\n );\r\n }\r\n }\r\n });\r\n\r\n $('.panel .contact-1-link').click(function() {\r\n $('.contact-1').show();\r\n $('.contact-2').hide();\r\n $('.contact-2-link').removeClass('selected');\r\n $('.contact-1-link').addClass('selected');\r\n $('#map').css({\r\n height:\r\n $(this)\r\n .closest('.panel')\r\n .height() + 'px'\r\n });\r\n if ($(window).width() < 600) {\r\n $('html,body').animate(\r\n {\r\n scrollTop: $('#properties').offset().top - 67\r\n },\r\n 'slow'\r\n );\r\n }\r\n });\r\n\r\n $('.panel .contact-2-link').click(function() {\r\n $('.contact-2').show();\r\n $('.contact-1').hide();\r\n $('.contact-1-link').removeClass('selected');\r\n $('.contact-2-link').addClass('selected');\r\n $('#map').css({\r\n height:\r\n $(this)\r\n .closest('.panel')\r\n .height() + 'px'\r\n });\r\n if ($(window).width() < 600) {\r\n $('html,body').animate(\r\n {\r\n scrollTop: $('#properties').offset().top - 67\r\n },\r\n 'slow'\r\n );\r\n }\r\n });\r\n \r\n \r\n $('.panel .restaurant-1-link').click(function() {\r\n $('.restaurant-1').show();\r\n $('.restaurant-2').hide();\r\n $('.restaurant-3').hide();\r\n $('.restaurant-4').hide();\r\n $('.restaurant-2-link').removeClass('selected');\r\n $('.restaurant-3-link').removeClass('selected');\r\n $('.restaurant-4-link').removeClass('selected');\r\n $('.restaurant-1-link').addClass('selected');\r\n $('#map').css({\r\n height:\r\n $(this)\r\n .closest('.panel')\r\n .height() + 'px'\r\n });\r\n if ($(window).width() < 600) {\r\n $('html,body').animate(\r\n {\r\n scrollTop: $('#properties').offset().top - 67\r\n },\r\n 'slow'\r\n );\r\n }\r\n });\r\n\r\n $('.panel .restaurant-2-link').click(function() {\r\n $('.restaurant-2').show();\r\n $('.restaurant-1').hide();\r\n $('.restaurant-3').hide();\r\n $('.restaurant-4').hide();\r\n $('.restaurant-1-link').removeClass('selected');\r\n $('.restaurant-3-link').removeClass('selected');\r\n $('.restaurant-4-link').removeClass('selected');\r\n $('.restaurant-2-link').addClass('selected');\r\n $('#map').css({\r\n height:\r\n $(this)\r\n .closest('.panel')\r\n .height() + 'px'\r\n });\r\n if ($(window).width() < 600) {\r\n $('html,body').animate(\r\n {\r\n scrollTop: $('#properties').offset().top - 67\r\n },\r\n 'slow'\r\n );\r\n }\r\n });\r\n \r\n $('.panel .restaurant-3-link').click(function() {\r\n $('.restaurant-3').show();\r\n $('.restaurant-1').hide();\r\n $('.restaurant-2').hide();\r\n $('.restaurant-4').hide();\r\n $('.restaurant-1-link').removeClass('selected');\r\n $('.restaurant-2-link').removeClass('selected');\r\n $('.restaurant-4-link').removeClass('selected');\r\n $('.restaurant-3-link').addClass('selected');\r\n $('#map').css({\r\n height:\r\n $(this)\r\n .closest('.panel')\r\n .height() + 'px'\r\n });\r\n if ($(window).width() < 600) {\r\n $('html,body').animate(\r\n {\r\n scrollTop: $('#properties').offset().top - 67\r\n },\r\n 'slow'\r\n );\r\n }\r\n });\r\n \r\n $('.panel .restaurant-4-link').click(function() {\r\n $('.restaurant-4').show();\r\n $('.restaurant-1').hide();\r\n $('.restaurant-2').hide();\r\n $('.restaurant-3').hide();\r\n $('.restaurant-1-link').removeClass('selected');\r\n $('.restaurant-2-link').removeClass('selected');\r\n $('.restaurant-3-link').removeClass('selected');\r\n $('.restaurant-4-link').addClass('selected');\r\n $('#map').css({\r\n height:\r\n $(this)\r\n .closest('.panel')\r\n .height() + 'px'\r\n });\r\n if ($(window).width() < 600) {\r\n $('html,body').animate(\r\n {\r\n scrollTop: $('#properties').offset().top - 67\r\n },\r\n 'slow'\r\n );\r\n }\r\n });\r\n\r\n // Filters\r\n \r\n \r\n\r\n $('.spa-filter').click(function() {\r\n $('.filter').removeClass('filter--active');\r\n $(this).addClass('filter--active');\r\n\r\n $('.panel').removeClass('restaurant');\r\n $('.panel').hide();\r\n map.setZoom(8);\r\n\r\n markers.forEach(function(marker) {\r\n if (marker.categories.contains('spa')) {\r\n marker.setVisible(true);\r\n $('.contact-2-link').trigger('click');\r\n } else {\r\n marker.setVisible(false);\r\n }\r\n });\r\n });\r\n \r\n \r\n $('.panel .close').click(function(event) {\r\n \r\n event.preventDefault();\r\n \t \r\n \t if ( $('.spa-filter').hasClass( \"filter--active\" ) ) {\r\n \t\t \r\n \t\t //alert('spa');\r\n \r\n \t\t\t $('.panel').removeClass('restaurant');\r\n \t\t\t\t\t$('.panel').hide();\r\n \t\t\t\t\tmap.setZoom(8);\r\n \t\t\t\t\t\r\n \t\t\t\t\t\r\n \t\t\t\t\tmarkers.forEach(function(marker) {\r\n if (marker.categories.contains('spa')) {\r\n marker.setVisible(true);\r\n $('.contact-2-link').trigger('click');\r\n \t } else {\r\n \t marker.setVisible(false);\r\n \t }\r\n \t});\r\n\r\n \t\t\t \r\n \t\t\t } \r\n \t\t\t \r\n \t\t\t \r\n\r\n\r\n \t \r\n \t });\r\n \r\n \r\n\r\n $('.golf-filter').click(function() {\r\n $('.filter').removeClass('filter--active');\r\n $(this).addClass('filter--active');\r\n\r\n $('.panel').removeClass('restaurant');\r\n $('#the-manor-house .close').addClass('filter-result');\r\n $('.panel').hide();\r\n map.setZoom(8);\r\n\r\n markers.forEach(function(marker) {\r\n if (marker.categories.contains('golf')) {\r\n marker.setVisible(true);\r\n marker.addListener('click', function() {\r\n map.panTo(marker.getPosition());\r\n map.setZoom(12);\r\n $('.panel').hide();\r\n $(marker.panel).show();\r\n $('#map').css({ height: $(marker.panel).height() + 'px' });\r\n });\r\n // $('.contact-2-link').trigger('click');\r\n $('.contact-1').show();\r\n } else {\r\n marker.setVisible(false);\r\n }\r\n });\r\n });\r\n\r\n $('.properties-filter').click(function() {\r\n $('.filter').removeClass('filter--active');\r\n $(this).addClass('filter--active');\r\n\r\n /* if (marker.categories.contains('double-pin')) {\r\n \t\t\t\tmarker.setVisible(true);\r\n \t\t\t\t}\t*/\r\n\r\n $('.contact-1').show();\r\n $('.contact-2').hide();\r\n $('.contact-2-link').removeClass('selected');\r\n $('.contact-1-link').addClass('selected');\r\n\r\n $('.panel').removeClass('restaurant');\r\n $('.panel').hide();\r\n map.setZoom(8);\r\n\r\n markers.forEach(function(marker) {\r\n if (marker.categories.contains('properties')) {\r\n marker.setVisible(true);\r\n $('.contact-1-link').trigger('click');\r\n } else {\r\n marker.setVisible(false);\r\n }\r\n });\r\n\r\n markers.forEach(function(marker) {\r\n if (marker.categories.contains('hide-pin')) {\r\n marker.setVisible(false);\r\n }\r\n if (marker.categories.contains('double-pin')) {\r\n marker.setVisible(true);\r\n }\r\n });\r\n });\r\n\r\n $('.restaurant-filter').click(function() {\r\n $('.filter').removeClass('filter--active');\r\n $(this).addClass('filter--active');\r\n\r\n $('.panel').addClass('restaurant');\r\n $('.panel').hide();\r\n map.setZoom(8);\r\n\r\n markers.forEach(function(marker) {\r\n if (marker.categories.contains('restaurant')) {\r\n marker.setVisible(true);\r\n } else {\r\n marker.setVisible(false);\r\n }\r\n\r\n if (marker.categories.contains('hide-pin')) {\r\n marker.setVisible(false);\r\n }\r\n if (marker.categories.contains('double-pin')) {\r\n marker.setVisible(true);\r\n }\r\n });\r\n });\r\n\r\n $('.cookery-filter').click(function() {\r\n $('.filter').removeClass('filter--active');\r\n $(this).addClass('filter--active');\r\n\r\n $('.panel').removeClass('restaurant');\r\n $('.panel').hide();\r\n map.setZoom(8);\r\n\r\n markers.forEach(function(marker) {\r\n if (marker.categories.contains('cookery')) {\r\n marker.setVisible(true);\r\n $('.contact-2-link').trigger('click');\r\n } else {\r\n marker.setVisible(false);\r\n }\r\n });\r\n });\r\n\r\n $('.pub-filter').click(function() {\r\n $('.filter').removeClass('filter--active');\r\n $(this).addClass('filter--active');\r\n\r\n $('.panel').removeClass('restaurant');\r\n $('#the-castle-inn .close').addClass('filter-result');\r\n $('.panel').hide();\r\n \r\n if ($(window).width() < 600) {\r\n map.setZoom(7);\r\n } else {\r\n \t map.setZoom(8);\r\n }\r\n \r\n\r\n markers.forEach(function(marker) {\r\n if (marker.categories.contains('pub')) {\r\n marker.setVisible(true);\r\n marker.addListener('click', function() {\r\n $('.panel').hide();\r\n $(marker.panel).show();\r\n $('#map').css({ height: $(marker.panel).height() + 'px' });\r\n $('.contact-1-link').trigger('click');\r\n });\r\n } else {\r\n marker.setVisible(false);\r\n }\r\n });\r\n });\r\n\r\n $('#the-manor-house .close').click(function() {\r\n if ($(this).hasClass('filter-result')) {\r\n markers.forEach(function(marker) {\r\n if (marker.categories.contains('golf')) {\r\n marker.setVisible(true);\r\n } \r\n });\r\n\r\n markers.forEach(function(marker) {\r\n if (marker.categories.contains('double-pin')) {\r\n marker.setVisible(false);\r\n }\r\n });\r\n } else {\r\n markers.forEach(function(marker) {\r\n if (marker.categories.contains('golf')) {\r\n marker.setVisible(false);\r\n }\r\n });\r\n\r\n markers.forEach(function(marker) {\r\n if (marker.categories.contains('double-pin')) {\r\n marker.setVisible(true);\r\n }\r\n });\r\n }\r\n });\r\n\r\n $('#the-castle-inn .close').click(function() {\r\n if ($(this).hasClass('filter-result')) {\r\n markers.forEach(function(marker) {\r\n if (marker.categories.contains('pub')) {\r\n marker.setVisible(true);\r\n }\r\n });\r\n\r\n markers.forEach(function(marker) {\r\n if (marker.categories.contains('double-pin')) {\r\n marker.setVisible(false);\r\n }\r\n });\r\n } else {\r\n markers.forEach(function(marker) {\r\n if (marker.categories.contains('pub')) {\r\n marker.setVisible(false);\r\n }\r\n });\r\n\r\n markers.forEach(function(marker) {\r\n if (marker.categories.contains('double-pin')) {\r\n marker.setVisible(true);\r\n }\r\n });\r\n }\r\n });\r\n\r\n \t\t\t$('#the-manor-house-golf-club .close').click(function() {\r\n if ($(this).hasClass('filter-result')) {\r\n markers.forEach(function(marker) {\r\n if (marker.categories.contains('golf')) {\r\n marker.setVisible(true);\r\n }\r\n });\r\n\r\n markers.forEach(function(marker) {\r\n if (marker.categories.contains('double-pin')) {\r\n marker.setVisible(false);\r\n }\r\n });\r\n } else {\r\n markers.forEach(function(marker) {\r\n if (marker.categories.contains('golf')) {\r\n marker.setVisible(false);\r\n }\r\n });\r\n\r\n markers.forEach(function(marker) {\r\n if (marker.categories.contains('double-pin')) {\r\n marker.setVisible(true);\r\n }\r\n });\r\n }\r\n });\r\n\r\n\r\n // mobile\r\n\r\n $('.filters a').click(function() {\r\n if ($(window).width() < 600) {\r\n $('#map').show();\r\n }\r\n });\r\n\r\n $('.map-view').click(function() {\r\n $('#mobile-list').hide();\r\n $('#map').show();\r\n $('.filter').show();\r\n $('.list-view').removeClass('selected');\r\n $('.map-view').addClass('selected');\r\n });\r\n\r\n $('.list-view').click(function() {\r\n $('#mobile-list').show();\r\n $('.filter').hide();\r\n $('#map').hide();\r\n $('.map-view').removeClass('selected');\r\n $('.list-view').addClass('selected');\r\n });\r\n\r\n $('.mobile-filter-title').click(function() {\r\n $('.filters').toggle();\r\n });\r\n\r\n $('.panel .mobile-close').click(function() {\r\n $('.panel').hide();\r\n $('#map').hide();\r\n $('#mobile-list').show();\r\n $('main').css({ height: 'auto' });\r\n });\r\n\r\n $('#mobile-list a').click(function() {\r\n \t\t\tvar id = $(this).attr('href');\r\n \t\t\t$('.panel').hide();\t\r\n \t\t\t$(id).show();\r\n \t\t\t$(\"main\").css({ 'height': ($(id).outerHeight() + 185) + 'px' });\r\n \t\t\t\r\n \t\t\t$('html,body').animate({\r\n \t\t\t\t\tscrollTop: $(\"#properties\").offset().top - 67\r\n \t\t\t\t}, 'slow');\r\n\r\n \t\t\treturn false;\r\n \t\t\t}); \r\n\r\n /* */\r\n\r\n // Pre-filter the hotel location links\r\n // Get the url parameters\r\n var urlParams = {};\r\n var e,\r\n a = /\\+/g, // Regex for replacing addition symbol with a space\r\n r = /([^&=]+)=?([^&]*)/g,\r\n d = function(s) {\r\n return decodeURIComponent(s.replace(a, ' '));\r\n },\r\n q = window.location.search.substring(1);\r\n\r\n while ((e = r.exec(q))) urlParams[d(e[1])] = d(e[2]);\r\n\r\n markers.forEach(function(marker) {\r\n if (urlParams['property'] === marker.panel.substring(1)) {\r\n google.maps.event.trigger(marker, 'click');\r\n return true;\r\n }\r\n });\r\n /* */\r\n }\r\n\r\n Array.prototype.contains = function(obj) {\r\n var i = this.length;\r\n while (i--) {\r\n if (this[i] === obj) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n }\r\n }\r\n});\r\n","$('.people #BookButton span').html('apply');\r\n$('.people #BookButton').attr('href', '/people/vacancies/');\r\n$(function () {\r\n if (!$('.people main').attr('data-background') == \"\") {\r\n $('.people').addClass('nonrepeating-bg');\r\n }\r\n});\r\n","$(function () {\r\n\r\n //$(\"#HolesListData div.holeItem\").each(function (index) {\r\n // if (index != 0) {\r\n // $(this).hide();\r\n // } else {\r\n // $(this).addClass(\"selected\");\r\n // }\r\n \r\n //});\r\n \r\n\r\n //$(\"#HolesList li\").click(function () {\r\n // var holeId = $(this).data(\"hole\");\r\n // $(\"#HolesList li\").each(function (index) {\r\n // $(this).removeClass(\"selected\");\r\n // });\r\n\r\n // $(this).addClass(\"selected\");\r\n \r\n\r\n // $(\"#HolesListData div.holeItem\").each(function (index) {\r\n // $(this).hide();\r\n // });\r\n // $(\".hole\" + holeId).show();\r\n\r\n //});\r\n\r\n});","var players = {};\r\nvar YTAPIReady = false;\r\n\r\nfunction onYouTubeIframeAPIReady() {\r\n YTAPIReady = true;\r\n}\r\n\r\nfunction onPlayerReady(event) {\r\n var mobileDevice = false;\r\n if (typeof window.orientation !== 'undefined') {\r\n var mobileDevice = true;\r\n }\r\n\r\n if (mobileDevice == false) {\r\n event.target.playVideo();\r\n }\r\n}\r\n\r\nfunction playYTVideo(videoID) {\r\n if (players[videoID] == null) {\r\n if (YTAPIReady == true) {\r\n var player = new YT.Player('player-' + videoID, {\r\n height: '100%',\r\n width: '100%',\r\n videoId: videoID,\r\n playerVars: {\r\n controls: 1,\r\n disablekb: 1\r\n },\r\n events: {\r\n 'onReady': onPlayerReady,\r\n 'onStateChange': onPlayerStateChange\r\n }\r\n\r\n });\r\n players[videoID] = player;\r\n }\r\n else {\r\n console.log(\"Error with YT API\");\r\n }\r\n } else {\r\n players[videoID].loadVideoById(videoID);\r\n $('#player-' + videoID).show();\r\n }\r\n}\r\n\r\nfunction pauseYTVideo(videoID) {\r\n players[videoID].pauseVideo();\r\n}\r\n\r\nfunction onPlayerStateChange(event) {\r\n if (event.data === 0) {\r\n hideVideo(event.target.getIframe());\r\n }\r\n}\r\n\r\nfunction hideVideo(video) {\r\n $(video).hide();\r\n var $videoWrap = $(video).closest('.grid-video');\r\n $videoWrap.find('.play-btn').fadeIn();\r\n}\r\n\r\n// Retain 16:9 aspect ratio with YT video\r\nvar resizeTimer;\r\nfunction iframeResize() {\r\n //$('.col-tab-12 .videoWrapper, .col-tab-12 .grid-video').each(function () {\r\n // vidWidth = $(this).width();\r\n // var vidHeight = (vidWidth / 16) * 9;\r\n // $(this).height(vidHeight);\r\n //});\r\n};\r\n\r\n$(window).resize(function () {\r\n clearTimeout(resizeTimer);\r\n resizeTimer = setTimeout(iframeResize, 250);\r\n});\r\n\r\n$(function () {\r\n\r\n iframeResize();\r\n\r\n $('.grid-video .play-btn').on('click', function () {\r\n playYTVideo($(this).attr('data-id'));\r\n $(this).fadeOut();\r\n $(this).closest('.grid-video').addClass('playing');\r\n });\r\n\r\n});","$(function () {\r\n if ($('.events-listing').length <= 0) return false;\r\n\r\n var property = getParameterByName('property');\r\n var selectedDate = getParameterByName('date');\r\n var $eventDatePicker = $('#events-date-picker')\r\n\r\n\r\n $(document).click(function (event) {\r\n // Close Date Picker When Clicked Outside\r\n if (!$(event.target).closest('#events-date-picker').length && !$(event.target).closest('.date-show').length) {\r\n if ($('#events-date-picker').hasClass('active')) {\r\n $eventDatePicker.hide().removeClass('active');\r\n }\r\n }\r\n });\r\n\r\n $('.date-show').click(function () { \r\n $eventDatePicker.show().addClass('active');\r\n });\r\n\r\n\r\n // Setup Date Picker\r\n generateDatePicker();\r\n\r\n // Set the dropdown values to the querystring values.\r\n setDropdownValues(property);\r\n setDatePickerValue();\r\n\r\n\r\n // FUNCTIONS\r\n\r\n function generateDatePicker() {\r\n $('.events-filter #events-date-picker').datepicker({\r\n dateFormat: \"d-mm-yy\",\r\n inline: true,\r\n onSelect: function (dateText) {\r\n var dateVal = $(this).val();\r\n $('.events-filter .date-filter input[name=date]').val(dateVal);\r\n $('.events-filter .date-filter .date-show i').text(dateVal);\r\n $eventDatePicker.hide();\r\n }\r\n });\r\n }\r\n\r\n function setDropdownValues(property) {\r\n if (property != null && property != undefined && property != '') {\r\n if ($('.events-filter select[id=property] option[value=' + property + ']').length > 0) {\r\n $('.events-filter select[id=property]').val(property);\r\n $('.events-filter select[id=property] option').removeClass('selected');\r\n $('.events-filter select[id=property] option[value=' + property + ']').addClass('selected');\r\n $('.property-dropdown .cab-select-box').text($('.property-dropdown li[rel=' + property + ']').text())\r\n }\r\n } else {\r\n\t $('.placeholder-content').show();\r\n }\r\n }\r\n \r\n\r\n\r\n function setDatePickerValue() {\r\n var parsedDate = $.datepicker.parseDate(\"dd-mm-yy\", selectedDate);\r\n $('.events-filter #events-date-picker').datepicker(\"setDate\", parsedDate);\r\n }\r\n\r\n function getParameterByName(name, url) {\r\n if (!url) url = window.location.href;\r\n name = name.replace(/[\\[\\]]/g, \"\\\\$&\");\r\n var regex = new RegExp(\"[?&]\" + name + \"(=([^]*)|&|#|$)\"),\r\n results = regex.exec(url);\r\n if (!results) return null;\r\n if (!results[2]) return '';\r\n return decodeURIComponent(results[2].replace(/\\+/g, \" \"));\r\n }\r\n\r\n});","$( document ).ready(function() {\r\n \r\n});","$(function () {\n\n initBookingBar();\n changeBookingProperty();\n\n // init accordions\n $('.sr__split-intro-features-mobile').accordiom({\n showFirstItem: false\n })\n\n $('.sr__offers-landing-filter-location').accordiom({\n showFirstItem: false\n })\n\n $('.sr__offers-landing-filter-category').accordiom({\n showFirstItem: false\n })\n\n $('.sr__experiences-landing-filter-mobile').accordiom({\n showFirstItem: false\n })\n\n $('.gallery__property-list-dropdown').accordiom({\n showFirstItem: false\n })\n\n $('.gallery__filter-buttons-mobile-accordion').accordiom({\n showFirstItem: false\n })\n\n $('.sr__booking-mobile-accordion').accordiom({\n showFirstItem: false\n })\n\n\n // init sliders\n $('.sr__room-carousel-slider').slick({\n centerMode: true,\n centerPadding: '200px',\n slidesToScroll: 1,\n slidesToShow:1,\n dots: false,\n arrows: false,\n responsive: [\n {\n breakpoint: 1000,\n settings: {\n centerpadding: '0px'\n }\n },\n {\n breakpoint: 767,\n settings: {\n arrows: true,\n centerMode: false\n }\n }\n ]\n })\n\n //init booking bar\n $('.sr__booking-form-type select, .sr__booking-mobile-form-type select').change(function() {\n // Hide all\n $('.sr__booking-form-property, .sr__booking-mobile-form-property').find('.room-select, .table-select, .tea-select, .treatment-select, .class-select, .time-select, .lunch-select').css('display', 'none');\n\n $('.sr__booking-form-room-booking, .sr__booking-form-table-booking, .sr__booking-form-tea-booking, .sr__booking-form-treatment-booking, .sr__booking-form-class-booking, .sr__booking-form-class-booking, .sr__booking-form-time-booking, .sr__booking-form-lunch-booking').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking, .sr__booking-mobile-form-table-booking, .sr__booking-mobile-form-tea-booking, .sr__booking-mobile-form-treatment-booking, .sr__booking-mobile-form-class-booking, .sr__booking-mobile-form-class-booking, .sr__booking-mobile-form-time-booking, .sr__booking-mobile-form-lunch-booking').css('display', 'none');\n\n // Show relevant desktop\n $('.sr__booking-form-property .' + $(this).val().toLowerCase() + '-select').css('display', 'inline-block');\n $('.sr__booking-form-' + $(this).val().toLowerCase() + '-booking').css('display', 'inline-block');\n\n // Show relevant mobile\n $('.sr__booking-mobile-form-property .' + $(this).val().toLowerCase() + '-select').css('display', 'inline-block');\n $('.sr__booking-mobile-form-' + $(this).val().toLowerCase() + '-booking').css('display', 'inline-block');\n\n\n initBookingBar();\n })\n\n var propertySelected = '';\n var tableSelected = '';\n var spaSelected = '';\n\n if ( typeof $('.sr__booking-form-property .room-select select, .sr__booking-mobile-form-property .room-select select').val() !== 'undefined' ) {\n propertySelected = $('.sr__booking-form-property .room-select select, .sr__booking-mobile-form-property .room-select select').val().toLowerCase();\n }\n if ( typeof $('.sr__booking-form-property .table-select select, .sr__booking-mobile-form-property .table-select select').val() !== 'undefined' ) {\n tableSelected = $('.sr__booking-form-property .table-select select, .sr__booking-mobile-form-property .table-select select').val().toLowerCase();\n }\n if ( typeof $('.sr__booking-form-property .treatment-select select, .sr__booking-mobile-form-property .treatment-select select').val() !== 'undefined' ) {\n spaSelected = $('.sr__booking-form-property .treatment-select select, .sr__booking-mobile-form-property .treatment-select select').val().toLowerCase();\n }\n\n\n if ( propertySelected !== undefined ) {\n if( propertySelected == 'pennyhill-park-room' ) {\n $('.sr__booking-form-room-booking .pennyhill-park-room').css('display', 'block');\n $('.sr__booking-form-room-booking .pennyhill-park-room').addClass('active');\n $('.sr__booking-form-room-booking .south-lodge-room').css('display', 'none');\n $('.sr__booking-form-room-booking .south-lodge-room').removeClass('active');\n $('.sr__booking-form-room-booking .lainston-house-room').css('display', 'none');\n $('.sr__booking-form-room-booking .lainston-house-room').removeClass('active');\n $('.sr__booking-form-room-booking .the-manor-house-room').css('display', 'none');\n $('.sr__booking-form-room-booking .the-manor-house-room').removeClass('active');\n $('.sr__booking-form-room-booking .royal-berkshire-room').css('display', 'none');\n $('.sr__booking-form-room-booking .royal-berkshire-room').removeClass('active');\n $('.sr__booking-form-room-booking .fanhams-hall-room').css('display', 'none');\n $('.sr__booking-form-room-booking .fanhams-hall-room').removeClass('active');\n $('.sr__booking-form-room-booking .the-castle-inn-room').css('display', 'none');\n $('.sr__booking-form-room-booking .the-castle-inn-room').removeClass('active');\n\n $('.sr__booking-mobile-form-room-booking .pennyhill-park-room').css('display', 'block');\n $('.sr__booking-mobile-form-room-booking .pennyhill-park-room').addClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .south-lodge-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .south-lodge-room').removeClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .lainston-house-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .lainston-house-room').removeClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .the-manor-house-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .the-manor-house-room').removeClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .royal-berkshire-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .royal-berkshire-room').removeClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .fanhams-hall-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .fanhams-hall-room').removeClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .the-castle-inn-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .the-castle-inn-room').removeClass('mobile-active');\n } else if( propertySelected == 'south-lodge-room' ) {\n $('.sr__booking-form-room-booking .pennyhill-park-room').css('display', 'none');\n $('.sr__booking-form-room-booking .pennyhill-park-room').removeClass('active');\n $('.sr__booking-form-room-booking .south-lodge-room').css('display', 'block');\n $('.sr__booking-form-room-booking .south-lodge-room').addClass('active');\n $('.sr__booking-form-room-booking .lainston-house-room').css('display', 'none');\n $('.sr__booking-form-room-booking .lainston-house-room').removeClass('active');\n $('.sr__booking-form-room-booking .the-manor-house-room').css('display', 'none');\n $('.sr__booking-form-room-booking .the-manor-house-room').removeClass('active');\n $('.sr__booking-form-room-booking .royal-berkshire-room').css('display', 'none');\n $('.sr__booking-form-room-booking .royal-berkshire-room').removeClass('active');\n $('.sr__booking-form-room-booking .fanhams-hall-room').css('display', 'none');\n $('.sr__booking-form-room-booking .fanhams-hall-room').removeClass('active');\n $('.sr__booking-form-room-booking .the-castle-inn-room').css('display', 'none');\n $('.sr__booking-form-room-booking .the-castle-inn-room').removeClass('active');\n\n $('.sr__booking-mobile-form-room-booking .pennyhill-park-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .pennyhill-park-room').removeClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .south-lodge-room').css('display', 'block');\n $('.sr__booking-mobile-form-room-booking .south-lodge-room').addClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .lainston-house-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .lainston-house-room').removeClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .the-manor-house-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .the-manor-house-room').removeClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .royal-berkshire-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .royal-berkshire-room').removeClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .fanhams-hall-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .fanhams-hall-room').removeClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .the-castle-inn-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .the-castle-inn-room').removeClass('mobile-active');\n } else if( propertySelected == 'lainston-house-room' ) {\n $('.sr__booking-form-room-booking .pennyhill-park-room').css('display', 'none');\n $('.sr__booking-form-room-booking .pennyhill-park-room').removeClass('active');\n $('.sr__booking-form-room-booking .south-lodge-room').css('display', 'none');\n $('.sr__booking-form-room-booking .south-lodge-room').removeClass('active');\n $('.sr__booking-form-room-booking .lainston-house-room').css('display', 'block');\n $('.sr__booking-form-room-booking .lainston-house-room').addClass('active');\n $('.sr__booking-form-room-booking .the-manor-house-room').css('display', 'none');\n $('.sr__booking-form-room-booking .the-manor-house-room').removeClass('active');\n $('.sr__booking-form-room-booking .royal-berkshire-room').css('display', 'none');\n $('.sr__booking-form-room-booking .royal-berkshire-room').removeClass('active');\n $('.sr__booking-form-room-booking .fanhams-hall-room').css('display', 'none');\n $('.sr__booking-form-room-booking .fanhams-hall-room').removeClass('active');\n $('.sr__booking-form-room-booking .the-castle-inn-room').css('display', 'none');\n $('.sr__booking-form-room-booking .the-castle-inn-room').removeClass('active');\n\n $('.sr__booking-mobile-form-room-booking .pennyhill-park-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .pennyhill-park-room').removeClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .south-lodge-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .south-lodge-room').removeClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .lainston-house-room').css('display', 'block');\n $('.sr__booking-mobile-form-room-booking .lainston-house-room').addClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .the-manor-house-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .the-manor-house-room').removeClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .royal-berkshire-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .royal-berkshire-room').removeClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .fanhams-hall-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .fanhams-hall-room').removeClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .the-castle-inn-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .the-castle-inn-room').removeClass('mobile-active');\n } else if( propertySelected == 'the-manor-house-room' ) {\n $('.sr__booking-form-room-booking .pennyhill-park-room').css('display', 'none');\n $('.sr__booking-form-room-booking .pennyhill-park-room').removeClass('active');\n $('.sr__booking-form-room-booking .south-lodge-room').css('display', 'none');\n $('.sr__booking-form-room-booking .south-lodge-room').removeClass('active');\n $('.sr__booking-form-room-booking .lainston-house-room').css('display', 'none');\n $('.sr__booking-form-room-booking .lainston-house-room').removeClass('active');\n $('.sr__booking-form-room-booking .the-manor-house-room').css('display', 'block');\n $('.sr__booking-form-room-booking .the-manor-house-room').addClass('active');\n $('.sr__booking-form-room-booking .royal-berkshire-room').css('display', 'none');\n $('.sr__booking-form-room-booking .royal-berkshire-room').removeClass('active');\n $('.sr__booking-form-room-booking .fanhams-hall-room').css('display', 'none');\n $('.sr__booking-form-room-booking .fanhams-hall-room').removeClass('active');\n $('.sr__booking-form-room-booking .the-castle-inn-room').css('display', 'none');\n $('.sr__booking-form-room-booking .the-castle-inn-room').removeClass('active');\n\n $('.sr__booking-mobile-form-room-booking .pennyhill-park-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .pennyhill-park-room').removeClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .south-lodge-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .south-lodge-room').removeClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .lainston-house-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .lainston-house-room').removeClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .the-manor-house-room').css('display', 'block');\n $('.sr__booking-mobile-form-room-booking .the-manor-house-room').addClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .royal-berkshire-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .royal-berkshire-room').removeClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .fanhams-hall-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .fanhams-hall-room').removeClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .the-castle-inn-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .the-castle-inn-room').removeClass('mobile-active');\n } else if( propertySelected == 'royal-berkshire-room' ) {\n $('.sr__booking-form-room-booking .pennyhill-park-room').css('display', 'none');\n $('.sr__booking-form-room-booking .pennyhill-park-room').removeClass('active');\n $('.sr__booking-form-room-booking .south-lodge-room').css('display', 'none');\n $('.sr__booking-form-room-booking .south-lodge-room').removeClass('active');\n $('.sr__booking-form-room-booking .lainston-house-room').css('display', 'none');\n $('.sr__booking-form-room-booking .lainston-house-room').removeClass('active');\n $('.sr__booking-form-room-booking .the-manor-house-room').css('display', 'none');\n $('.sr__booking-form-room-booking .the-manor-house-room').removeClass('active');\n $('.sr__booking-form-room-booking .royal-berkshire-room').css('display', 'block');\n $('.sr__booking-form-room-booking .royal-berkshire-room').addClass('active');\n $('.sr__booking-form-room-booking .fanhams-hall-room').css('display', 'none');\n $('.sr__booking-form-room-booking .fanhams-hall-room').removeClass('active');\n $('.sr__booking-form-room-booking .the-castle-inn-room').css('display', 'none');\n $('.sr__booking-form-room-booking .the-castle-inn-room').removeClass('active');\n\n $('.sr__booking-mobile-form-room-booking .pennyhill-park-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .pennyhill-park-room').removeClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .south-lodge-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .south-lodge-room').removeClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .lainston-house-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .lainston-house-room').removeClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .the-manor-house-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .the-manor-house-room').removeClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .royal-berkshire-room').css('display', 'block');\n $('.sr__booking-mobile-form-room-booking .royal-berkshire-room').addClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .fanhams-hall-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .fanhams-hall-room').removeClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .the-castle-inn-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .the-castle-inn-room').removeClass('mobile-active');\n } else if( propertySelected == 'fanhams-hall-room' ) {\n $('.sr__booking-form-room-booking .pennyhill-park-room').css('display', 'none');\n $('.sr__booking-form-room-booking .pennyhill-park-room').removeClass('active');\n $('.sr__booking-form-room-booking .south-lodge-room').css('display', 'none');\n $('.sr__booking-form-room-booking .south-lodge-room').removeClass('active');\n $('.sr__booking-form-room-booking .lainston-house-room').css('display', 'none');\n $('.sr__booking-form-room-booking .lainston-house-room').removeClass('active');\n $('.sr__booking-form-room-booking .the-manor-house-room').css('display', 'none');\n $('.sr__booking-form-room-booking .the-manor-house-room').removeClass('active');\n $('.sr__booking-form-room-booking .royal-berkshire-room').css('display', 'none');\n $('.sr__booking-form-room-booking .royal-berkshire-room').removeClass('active');\n $('.sr__booking-form-room-booking .fanhams-hall-room').css('display', 'block');\n $('.sr__booking-form-room-booking .fanhams-hall-room').addClass('active');\n $('.sr__booking-form-room-booking .the-castle-inn-room').css('display', 'none');\n $('.sr__booking-form-room-booking .the-castle-inn-room').removeClass('active');\n\n $('.sr__booking-mobile-form-room-booking .pennyhill-park-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .pennyhill-park-room').removeClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .south-lodge-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .south-lodge-room').removeClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .lainston-house-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .lainston-house-room').removeClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .the-manor-house-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .the-manor-house-room').removeClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .royal-berkshire-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .royal-berkshire-room').removeClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .fanhams-hall-room').css('display', 'block');\n $('.sr__booking-mobile-form-room-booking .fanhams-hall-room').addClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .the-castle-inn-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .the-castle-inn-room').removeClass('mobile-active');\n } else if( propertySelected == 'the-castle-inn-room' ) {\n $('.sr__booking-form-room-booking .pennyhill-park-room').css('display', 'none');\n $('.sr__booking-form-room-booking .pennyhill-park-room').removeClass('active');\n $('.sr__booking-form-room-booking .south-lodge-room').css('display', 'none');\n $('.sr__booking-form-room-booking .south-lodge-room').removeClass('active');\n $('.sr__booking-form-room-booking .lainston-house-room').css('display', 'none');\n $('.sr__booking-form-room-booking .lainston-house-room').removeClass('active');\n $('.sr__booking-form-room-booking .the-manor-house-room').css('display', 'none');\n $('.sr__booking-form-room-booking .the-manor-house-room').removeClass('active');\n $('.sr__booking-form-room-booking .royal-berkshire-room').css('display', 'none');\n $('.sr__booking-form-room-booking .royal-berkshire-room').removeClass('active');\n $('.sr__booking-form-room-booking .fanhams-hall-room').css('display', 'none');\n $('.sr__booking-form-room-booking .fanhams-hall-room').removeClass('active');\n $('.sr__booking-form-room-booking .the-castle-inn-room').css('display', 'block');\n $('.sr__booking-form-room-booking .the-castle-inn-room').addClass('active');\n\n $('.sr__booking-mobile-form-room-booking .pennyhill-park-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .pennyhill-park-room').removeClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .south-lodge-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .south-lodge-room').removeClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .lainston-house-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .lainston-house-room').removeClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .the-manor-house-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .the-manor-house-room').removeClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .royal-berkshire-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .royal-berkshire-room').removeClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .fanhams-hall-room').css('display', 'none');\n $('.sr__booking-mobile-form-room-booking .fanhams-hall-room').removeClass('mobile-active');\n $('.sr__booking-mobile-form-room-booking .the-castle-inn-room').css('display', 'block');\n $('.sr__booking-mobile-form-room-booking .the-castle-inn-room').addClass('mobile-active');\n }\n }\n\n if ( tableSelected !== undefined ) {\n if( tableSelected == 'pennyhill-park-table' ) {\n $('.sr__booking-form-table-booking .pennyhill-park-table').css('display', 'block');\n $('.sr__booking-form-table-booking .pennyhill-park-table').addClass('active');\n $('.sr__booking-form-table-booking .south-lodge-table').css('display', 'none');\n $('.sr__booking-form-table-booking .south-lodge-table').removeClass('active');\n $('.sr__booking-form-table-booking .lainston-house-table').css('display', 'none');\n $('.sr__booking-form-table-booking .lainston-house-table').removeClass('active');\n $('.sr__booking-form-table-booking .the-manor-house-table').css('display', 'none');\n $('.sr__booking-form-table-booking .the-manor-house-table').removeClass('active');\n $('.sr__booking-form-table-booking .royal-berkshire-table').css('display', 'none');\n $('.sr__booking-form-table-booking .royal-berkshire-table').removeClass('active');\n $('.sr__booking-form-table-booking .fanhams-hall-table').css('display', 'none');\n $('.sr__booking-form-table-booking .fanhams-hall-table').removeClass('active');\n $('.sr__booking-form-table-booking .the-castle-inn-table').css('display', 'none');\n $('.sr__booking-form-table-booking .the-castle-inn-table').removeClass('active');\n\n $('.sr__booking-mobile-form-table-booking .pennyhill-park-table').css('display', 'block');\n $('.sr__booking-mobile-form-table-booking .pennyhill-park-table').addClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .south-lodge-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .south-lodge-table').removeClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .lainston-house-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .lainston-house-table').removeClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .the-manor-house-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .the-manor-house-table').removeClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .royal-berkshire-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .royal-berkshire-table').removeClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .fanhams-hall-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .fanhams-hall-table').removeClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .the-castle-inn-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .the-castle-inn-table').removeClass('mobile-active');\n } else if( tableSelected == 'south-lodge-table' ) {\n $('.sr__booking-form-table-booking .pennyhill-park-table').css('display', 'none');\n $('.sr__booking-form-table-booking .pennyhill-park-table').removeClass('active');\n $('.sr__booking-form-table-booking .south-lodge-table').css('display', 'block');\n $('.sr__booking-form-table-booking .south-lodge-table').addClass('active');\n $('.sr__booking-form-table-booking .lainston-house-table').css('display', 'none');\n $('.sr__booking-form-table-booking .lainston-house-table').removeClass('active');\n $('.sr__booking-form-table-booking .the-manor-house-table').css('display', 'none');\n $('.sr__booking-form-table-booking .the-manor-house-table').removeClass('active');\n $('.sr__booking-form-table-booking .royal-berkshire-table').css('display', 'none');\n $('.sr__booking-form-table-booking .royal-berkshire-table').removeClass('active');\n $('.sr__booking-form-table-booking .fanhams-hall-table').css('display', 'none');\n $('.sr__booking-form-table-booking .fanhams-hall-table').removeClass('active');\n $('.sr__booking-form-table-booking .the-castle-inn-table').css('display', 'none');\n $('.sr__booking-form-table-booking .the-castle-inn-table').removeClass('active');\n\n $('.sr__booking-mobile-form-table-booking .pennyhill-park-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .pennyhill-park-table').removeClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .south-lodge-table').css('display', 'block');\n $('.sr__booking-mobile-form-table-booking .south-lodge-table').addClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .lainston-house-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .lainston-house-table').removeClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .the-manor-house-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .the-manor-house-table').removeClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .royal-berkshire-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .royal-berkshire-table').removeClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .fanhams-hall-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .fanhams-hall-table').removeClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .the-castle-inn-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .the-castle-inn-table').removeClass('mobile-active');\n } else if( tableSelected == 'lainston-house-table' ) {\n $('.sr__booking-form-table-booking .pennyhill-park-table').css('display', 'none');\n $('.sr__booking-form-table-booking .pennyhill-park-table').removeClass('active');\n $('.sr__booking-form-table-booking .south-lodge-table').css('display', 'none');\n $('.sr__booking-form-table-booking .south-lodge-table').removeClass('active');\n $('.sr__booking-form-table-booking .lainston-house-table').css('display', 'block');\n $('.sr__booking-form-table-booking .lainston-house-table').addClass('active');\n $('.sr__booking-form-table-booking .the-manor-house-table').css('display', 'none');\n $('.sr__booking-form-table-booking .the-manor-house-table').removeClass('active');\n $('.sr__booking-form-table-booking .royal-berkshire-table').css('display', 'none');\n $('.sr__booking-form-table-booking .royal-berkshire-table').removeClass('active');\n $('.sr__booking-form-table-booking .fanhams-hall-table').css('display', 'none');\n $('.sr__booking-form-table-booking .fanhams-hall-table').removeClass('active');\n $('.sr__booking-form-table-booking .the-castle-inn-table').css('display', 'none');\n $('.sr__booking-form-table-booking .the-castle-inn-table').removeClass('active');\n\n $('.sr__booking-mobile-form-table-booking .pennyhill-park-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .pennyhill-park-table').removeClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .south-lodge-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .south-lodge-table').removeClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .lainston-house-table').css('display', 'block');\n $('.sr__booking-mobile-form-table-booking .lainston-house-table').addClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .the-manor-house-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .the-manor-house-table').removeClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .royal-berkshire-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .royal-berkshire-table').removeClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .fanhams-hall-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .fanhams-hall-table').removeClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .the-castle-inn-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .the-castle-inn-table').removeClass('mobile-active');\n } else if( tableSelected == 'the-manor-house-table' ) {\n $('.sr__booking-form-table-booking .pennyhill-park-table').css('display', 'none');\n $('.sr__booking-form-table-booking .pennyhill-park-table').removeClass('active');\n $('.sr__booking-form-table-booking .south-lodge-table').css('display', 'none');\n $('.sr__booking-form-table-booking .south-lodge-table').removeClass('active');\n $('.sr__booking-form-table-booking .lainston-house-table').css('display', 'none');\n $('.sr__booking-form-table-booking .lainston-house-table').removeClass('active');\n $('.sr__booking-form-table-booking .the-manor-house-table').css('display', 'block');\n $('.sr__booking-form-table-booking .the-manor-house-table').addClass('active');\n $('.sr__booking-form-table-booking .royal-berkshire-table').css('display', 'none');\n $('.sr__booking-form-table-booking .royal-berkshire-table').removeClass('active');\n $('.sr__booking-form-table-booking .fanhams-hall-table').css('display', 'none');\n $('.sr__booking-form-table-booking .fanhams-hall-table').removeClass('active');\n $('.sr__booking-form-table-booking .the-castle-inn-table').css('display', 'none');\n $('.sr__booking-form-table-booking .the-castle-inn-table').removeClass('active');\n\n $('.sr__booking-mobile-form-table-booking .pennyhill-park-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .pennyhill-park-table').removeClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .south-lodge-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .south-lodge-table').removeClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .lainston-house-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .lainston-house-table').removeClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .the-manor-house-table').css('display', 'block');\n $('.sr__booking-mobile-form-table-booking .the-manor-house-table').addClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .royal-berkshire-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .royal-berkshire-table').removeClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .fanhams-hall-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .fanhams-hall-table').removeClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .the-castle-inn-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .the-castle-inn-table').removeClass('mobile-active');\n } else if( tableSelected == 'royal-berkshire-table' ) {\n $('.sr__booking-form-table-booking .pennyhill-park-table').css('display', 'none');\n $('.sr__booking-form-table-booking .pennyhill-park-table').removeClass('active');\n $('.sr__booking-form-table-booking .south-lodge-table').css('display', 'none');\n $('.sr__booking-form-table-booking .south-lodge-table').removeClass('active');\n $('.sr__booking-form-table-booking .lainston-house-table').css('display', 'none');\n $('.sr__booking-form-table-booking .lainston-house-table').removeClass('active');\n $('.sr__booking-form-table-booking .the-manor-house-table').css('display', 'none');\n $('.sr__booking-form-table-booking .the-manor-house-table').removeClass('active');\n $('.sr__booking-form-table-booking .royal-berkshire-table').css('display', 'block');\n $('.sr__booking-form-table-booking .royal-berkshire-table').addClass('active');\n $('.sr__booking-form-table-booking .fanhams-hall-table').css('display', 'none');\n $('.sr__booking-form-table-booking .fanhams-hall-table').removeClass('active');\n $('.sr__booking-form-table-booking .the-castle-inn-table').css('display', 'none');\n $('.sr__booking-form-table-booking .the-castle-inn-table').removeClass('active');\n\n $('.sr__booking-mobile-form-table-booking .pennyhill-park-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .pennyhill-park-table').removeClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .south-lodge-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .south-lodge-table').removeClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .lainston-house-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .lainston-house-table').removeClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .the-manor-house-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .the-manor-house-table').removeClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .royal-berkshire-table').css('display', 'block');\n $('.sr__booking-mobile-form-table-booking .royal-berkshire-table').addClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .fanhams-hall-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .fanhams-hall-table').removeClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .the-castle-inn-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .the-castle-inn-table').removeClass('mobile-active');\n } else if( tableSelected == 'fanhams-hall-table' ) {\n $('.sr__booking-form-table-booking .pennyhill-park-table').css('display', 'none');\n $('.sr__booking-form-table-booking .pennyhill-park-table').removeClass('active');\n $('.sr__booking-form-table-booking .south-lodge-table').css('display', 'none');\n $('.sr__booking-form-table-booking .south-lodge-table').removeClass('active');\n $('.sr__booking-form-table-booking .lainston-house-table').css('display', 'none');\n $('.sr__booking-form-table-booking .lainston-house-table').removeClass('active');\n $('.sr__booking-form-table-booking .the-manor-house-table').css('display', 'none');\n $('.sr__booking-form-table-booking .the-manor-house-table').removeClass('active');\n $('.sr__booking-form-table-booking .royal-berkshire-table').css('display', 'none');\n $('.sr__booking-form-table-booking .royal-berkshire-table').removeClass('active');\n $('.sr__booking-form-table-booking .fanhams-hall-table').css('display', 'block');\n $('.sr__booking-form-table-booking .fanhams-hall-table').addClass('active');\n $('.sr__booking-form-table-booking .the-castle-inn-table').css('display', 'none');\n $('.sr__booking-form-table-booking .the-castle-inn-table').removeClass('active');\n\n $('.sr__booking-mobile-form-table-booking .pennyhill-park-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .pennyhill-park-table').removeClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .south-lodge-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .south-lodge-table').removeClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .lainston-house-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .lainston-house-table').removeClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .the-manor-house-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .the-manor-house-table').removeClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .royal-berkshire-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .royal-berkshire-table').removeClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .fanhams-hall-table').css('display', 'block');\n $('.sr__booking-mobile-form-table-booking .fanhams-hall-table').addClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .the-castle-inn-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .the-castle-inn-table').removeClass('mobile-active');\n } else if( tableSelected == 'the-castle-inn-table' ) {\n $('.sr__booking-form-table-booking .pennyhill-park-table').css('display', 'none');\n $('.sr__booking-form-table-booking .pennyhill-park-table').removeClass('active');\n $('.sr__booking-form-table-booking .south-lodge-table').css('display', 'none');\n $('.sr__booking-form-table-booking .south-lodge-table').removeClass('active');\n $('.sr__booking-form-table-booking .lainston-house-table').css('display', 'none');\n $('.sr__booking-form-table-booking .lainston-house-table').removeClass('active');\n $('.sr__booking-form-table-booking .the-manor-house-table').css('display', 'none');\n $('.sr__booking-form-table-booking .the-manor-house-table').removeClass('active');\n $('.sr__booking-form-table-booking .royal-berkshire-table').css('display', 'none');\n $('.sr__booking-form-table-booking .royal-berkshire-table').removeClass('active');\n $('.sr__booking-form-table-booking .fanhams-hall-table').css('display', 'none');\n $('.sr__booking-form-table-booking .fanhams-hall-table').removeClass('active');\n $('.sr__booking-form-table-booking .the-castle-inn-table').css('display', 'block');\n $('.sr__booking-form-table-booking .the-castle-inn-table').addClass('active');\n\n $('.sr__booking-mobile-form-table-booking .pennyhill-park-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .pennyhill-park-table').removeClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .south-lodge-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .south-lodge-table').removeClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .lainston-house-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .lainston-house-table').removeClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .the-manor-house-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .the-manor-house-table').removeClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .royal-berkshire-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .royal-berkshire-table').removeClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .fanhams-hall-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .fanhams-hall-table').removeClass('mobile-active');\n $('.sr__booking-mobile-form-table-booking .the-castle-inn-table').css('display', 'block');\n $('.sr__booking-mobile-form-table-booking .the-castle-inn-table').addClass('mobile-active');\n }\n }\n\n if ( spaSelected !== undefined ) {\n if ( spaSelected == 'the-spa-at-pennyhill-park-treatment') {\n $('.sr__booking .pennyhill-park-spa').css('display', 'block');\n $('.sr__booking .south-lodge-spa').css('display', 'none');\n\n $('.sr__booking-mobile .pennyhill-park-spa').css('display', 'block');\n $('.sr__booking-mobile .south-lodge-spa').css('display', 'none');\n console.log('selected pennyhill');\n } else {\n $('.sr__booking .pennyhill-park-spa').css('display', 'none');\n $('.sr__booking .south-lodge-spa').css('display', 'block');\n\n $('.sr__booking-mobile .pennyhill-park-spa').css('display', 'none');\n $('.sr__booking-mobile .south-lodge-spa').css('display', 'block');\n console.log('selected south lodge');\n }\n }\n\n\n\n // Link the rooms booking widget to the correct property\n $('.sr__booking-form-room-booking form').attr('action', $('.sr__booking-form-property .room-select select').val());\n $('.sr__booking-mobile-form-room-booking form').attr('action', $('.sr__booking-mobile-form-property .room-select select').val());\n\n $('.sr__booking-form-property .room-select select, .sr__booking-mobile-form-property .room-select select').change(function() {\n $('.sr__booking-form-room-booking form, .sr__booking-mobile-form-room-booking form').attr('action', $(this).val());\n\n initBookingBar();\n })\n\n $('.sr__booking-form-property .table-select select, .sr__booking-mobile-form-property .table-select select').change(function() {\n if( $(this).val().toLowerCase() == 'pennyhill-park-table' ) {\n $('.sr__booking-form-table-booking .pennyhill-park-table').css('display', 'block');\n $('.sr__booking-form-table-booking .south-lodge-table').css('display', 'none');\n $('.sr__booking-form-table-booking .lainston-house-table').css('display', 'none');\n $('.sr__booking-form-table-booking .the-manor-house-table').css('display', 'none');\n $('.sr__booking-form-table-booking .royal-berkshire-table').css('display', 'none');\n $('.sr__booking-form-table-booking .fanhams-hall-table').css('display', 'none');\n $('.sr__booking-form-table-booking .the-castle-inn-table').css('display', 'none');\n\n $('.sr__booking-mobile-form-table-booking .pennyhill-park-table').css('display', 'block');\n $('.sr__booking-mobile-form-table-booking .south-lodge-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .lainston-house-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .the-manor-house-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .royal-berkshire-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .fanhams-hall-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .the-castle-inn-table').css('display', 'none');\n } else if( $(this).val().toLowerCase() == 'south-lodge-table' ) {\n $('.sr__booking-form-table-booking .pennyhill-park-table').css('display', 'none');\n $('.sr__booking-form-table-booking .south-lodge-table').css('display', 'block');\n $('.sr__booking-form-table-booking .lainston-house-table').css('display', 'none');\n $('.sr__booking-form-table-booking .the-manor-house-table').css('display', 'none');\n $('.sr__booking-form-table-booking .royal-berkshire-table').css('display', 'none');\n $('.sr__booking-form-table-booking .fanhams-hall-table').css('display', 'none');\n $('.sr__booking-form-table-booking .the-castle-inn-table').css('display', 'none');\n\n $('.sr__booking-mobile-form-table-booking .pennyhill-park-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .south-lodge-table').css('display', 'block');\n $('.sr__booking-mobile-form-table-booking .lainston-house-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .the-manor-house-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .royal-berkshire-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .fanhams-hall-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .the-castle-inn-table').css('display', 'none');\n } else if( $(this).val().toLowerCase() == 'lainston-house-table' ) {\n $('.sr__booking-form-table-booking .pennyhill-park-table').css('display', 'none');\n $('.sr__booking-form-table-booking .south-lodge-table').css('display', 'none');\n $('.sr__booking-form-table-booking .lainston-house-table').css('display', 'block');\n $('.sr__booking-form-table-booking .the-manor-house-table').css('display', 'none');\n $('.sr__booking-form-table-booking .royal-berkshire-table').css('display', 'none');\n $('.sr__booking-form-table-booking .fanhams-hall-table').css('display', 'none');\n $('.sr__booking-form-table-booking .the-castle-inn-table').css('display', 'none');\n\n $('.sr__booking-mobile-form-table-booking .pennyhill-park-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .south-lodge-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .lainston-house-table').css('display', 'block');\n $('.sr__booking-mobile-form-table-booking .the-manor-house-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .royal-berkshire-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .fanhams-hall-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .the-castle-inn-table').css('display', 'none');\n } else if( $(this).val().toLowerCase() == 'the-manor-house-table' ) {\n $('.sr__booking-form-table-booking .pennyhill-park-table').css('display', 'none');\n $('.sr__booking-form-table-booking .south-lodge-table').css('display', 'none');\n $('.sr__booking-form-table-booking .lainston-house-table').css('display', 'none');\n $('.sr__booking-form-table-booking .the-manor-house-table').css('display', 'block');\n $('.sr__booking-form-table-booking .royal-berkshire-table').css('display', 'none');\n $('.sr__booking-form-table-booking .fanhams-hall-table').css('display', 'none');\n $('.sr__booking-form-table-booking .the-castle-inn-table').css('display', 'none');\n\n $('.sr__booking-mobile-form-table-booking .pennyhill-park-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .south-lodge-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .lainston-house-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .the-manor-house-table').css('display', 'block');\n $('.sr__booking-mobile-form-table-booking .royal-berkshire-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .fanhams-hall-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .the-castle-inn-table').css('display', 'none');\n } else if( $(this).val().toLowerCase() == 'royal-berkshire-table' ) {\n $('.sr__booking-form-table-booking .pennyhill-park-table').css('display', 'none');\n $('.sr__booking-form-table-booking .south-lodge-table').css('display', 'none');\n $('.sr__booking-form-table-booking .lainston-house-table').css('display', 'none');\n $('.sr__booking-form-table-booking .the-manor-house-table').css('display', 'none');\n $('.sr__booking-form-table-booking .royal-berkshire-table').css('display', 'block');\n $('.sr__booking-form-table-booking .fanhams-hall-table').css('display', 'none');\n $('.sr__booking-form-table-booking .the-castle-inn-table').css('display', 'none');\n\n $('.sr__booking-mobile-form-table-booking .pennyhill-park-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .south-lodge-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .lainston-house-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .the-manor-house-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .royal-berkshire-table').css('display', 'block');\n $('.sr__booking-mobile-form-table-booking .fanhams-hall-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .the-castle-inn-table').css('display', 'none');\n } else if( $(this).val().toLowerCase() == 'fanhams-hall-table' ) {\n $('.sr__booking-form-table-booking .pennyhill-park-table').css('display', 'none');\n $('.sr__booking-form-table-booking .south-lodge-table').css('display', 'none');\n $('.sr__booking-form-table-booking .lainston-house-table').css('display', 'none');\n $('.sr__booking-form-table-booking .the-manor-house-table').css('display', 'none');\n $('.sr__booking-form-table-booking .royal-berkshire-table').css('display', 'none');\n $('.sr__booking-form-table-booking .fanhams-hall-table').css('display', 'block');\n $('.sr__booking-form-table-booking .the-castle-inn-table').css('display', 'none');\n\n $('.sr__booking-mobile-form-table-booking .pennyhill-park-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .south-lodge-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .lainston-house-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .the-manor-house-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .royal-berkshire-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .fanhams-hall-table').css('display', 'block');\n $('.sr__booking-mobile-form-table-booking .the-castle-inn-table').css('display', 'none');\n } else if( $(this).val().toLowerCase() == 'the-castle-inn-table' ) {\n $('.sr__booking-form-table-booking .pennyhill-park-table').css('display', 'none');\n $('.sr__booking-form-table-booking .south-lodge-table').css('display', 'none');\n $('.sr__booking-form-table-booking .lainston-house-table').css('display', 'none');\n $('.sr__booking-form-table-booking .the-manor-house-table').css('display', 'none');\n $('.sr__booking-form-table-booking .royal-berkshire-table').css('display', 'none');\n $('.sr__booking-form-table-booking .fanhams-hall-table').css('display', 'none');\n $('.sr__booking-form-table-booking .the-castle-inn-table').css('display', 'block');\n\n $('.sr__booking-mobile-form-table-booking .pennyhill-park-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .south-lodge-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .lainston-house-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .the-manor-house-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .royal-berkshire-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .fanhams-hall-table').css('display', 'none');\n $('.sr__booking-mobile-form-table-booking .the-castle-inn-table').css('display', 'block');\n }\n })\n\n $('.sr__booking-form-property .tea-select select, .sr__booking-mobile-form-property .tea-select select').change(function() {\n if( $(this).val().toLowerCase() == 'pennyhill-park-tea' ) {\n $('.sr__booking-form-tea-booking .pennyhill-park-tea').css('display', 'block');\n $('.sr__booking-form-tea-booking .south-lodge-tea').css('display', 'none');\n $('.sr__booking-form-tea-booking .lainston-house-tea').css('display', 'none');\n $('.sr__booking-form-tea-booking .the-manor-house-tea').css('display', 'none');\n $('.sr__booking-form-tea-booking .royal-berkshire-tea').css('display', 'none');\n $('.sr__booking-form-tea-booking .fanhams-hall-tea').css('display', 'none');\n\n $('.sr__booking-mobile-form-tea-booking .pennyhill-park-tea').css('display', 'block');\n $('.sr__booking-mobile-form-tea-booking .south-lodge-tea').css('display', 'none');\n $('.sr__booking-mobile-form-tea-booking .lainston-house-tea').css('display', 'none');\n $('.sr__booking-mobile-form-tea-booking .the-manor-house-tea').css('display', 'none');\n $('.sr__booking-mobile-form-tea-booking .royal-berkshire-tea').css('display', 'none');\n $('.sr__booking-mobile-form-tea-booking .fanhams-hall-tea').css('display', 'none');\n } else if( $(this).val().toLowerCase() == 'south-lodge-tea' ) {\n $('.sr__booking-form-tea-booking .pennyhill-park-tea').css('display', 'none');\n $('.sr__booking-form-tea-booking .south-lodge-tea').css('display', 'block');\n $('.sr__booking-form-tea-booking .lainston-house-tea').css('display', 'none');\n $('.sr__booking-form-tea-booking .the-manor-house-tea').css('display', 'none');\n $('.sr__booking-form-tea-booking .royal-berkshire-tea').css('display', 'none');\n $('.sr__booking-form-tea-booking .fanhams-hall-tea').css('display', 'none');\n\n $('.sr__booking-mobile-form-tea-booking .pennyhill-park-tea').css('display', 'none');\n $('.sr__booking-mobile-form-tea-booking .south-lodge-tea').css('display', 'block');\n $('.sr__booking-mobile-form-tea-booking .lainston-house-tea').css('display', 'none');\n $('.sr__booking-mobile-form-tea-booking .the-manor-house-tea').css('display', 'none');\n $('.sr__booking-mobile-form-tea-booking .royal-berkshire-tea').css('display', 'none');\n $('.sr__booking-mobile-form-tea-booking .fanhams-hall-tea').css('display', 'none');\n } else if( $(this).val().toLowerCase() == 'lainston-house-tea' ) {\n $('.sr__booking-form-tea-booking .pennyhill-park-tea').css('display', 'none');\n $('.sr__booking-form-tea-booking .south-lodge-tea').css('display', 'none');\n $('.sr__booking-form-tea-booking .lainston-house-tea').css('display', 'block');\n $('.sr__booking-form-tea-booking .the-manor-house-tea').css('display', 'none');\n $('.sr__booking-form-tea-booking .royal-berkshire-tea').css('display', 'none');\n $('.sr__booking-form-tea-booking .fanhams-hall-tea').css('display', 'none');\n\n $('.sr__booking-mobile-form-tea-booking .pennyhill-park-tea').css('display', 'none');\n $('.sr__booking-mobile-form-tea-booking .south-lodge-tea').css('display', 'none');\n $('.sr__booking-mobile-form-tea-booking .lainston-house-tea').css('display', 'block');\n $('.sr__booking-mobile-form-tea-booking .the-manor-house-tea').css('display', 'none');\n $('.sr__booking-mobile-form-tea-booking .royal-berkshire-tea').css('display', 'none');\n $('.sr__booking-mobile-form-tea-booking .fanhams-hall-tea').css('display', 'none');\n } else if( $(this).val().toLowerCase() == 'the-manor-house-tea' ) {\n $('.sr__booking-form-tea-booking .pennyhill-park-tea').css('display', 'none');\n $('.sr__booking-form-tea-booking .south-lodge-tea').css('display', 'none');\n $('.sr__booking-form-tea-booking .lainston-house-tea').css('display', 'none');\n $('.sr__booking-form-tea-booking .the-manor-house-tea').css('display', 'block');\n $('.sr__booking-form-tea-booking .royal-berkshire-tea').css('display', 'none');\n $('.sr__booking-form-tea-booking .fanhams-hall-tea').css('display', 'none');\n\n $('.sr__booking-mobile-form-tea-booking .pennyhill-park-tea').css('display', 'none');\n $('.sr__booking-mobile-form-tea-booking .south-lodge-tea').css('display', 'none');\n $('.sr__booking-mobile-form-tea-booking .lainston-house-tea').css('display', 'none');\n $('.sr__booking-mobile-form-tea-booking .the-manor-house-tea').css('display', 'block');\n $('.sr__booking-mobile-form-tea-booking .royal-berkshire-tea').css('display', 'none');\n $('.sr__booking-mobile-form-tea-booking .fanhams-hall-tea').css('display', 'none');\n } else if( $(this).val().toLowerCase() == 'royal-berkshire-tea' ) {\n $('.sr__booking-form-tea-booking .pennyhill-park-tea').css('display', 'none');\n $('.sr__booking-form-tea-booking .south-lodge-tea').css('display', 'none');\n $('.sr__booking-form-tea-booking .lainston-house-tea').css('display', 'none');\n $('.sr__booking-form-tea-booking .the-manor-house-tea').css('display', 'none');\n $('.sr__booking-form-tea-booking .royal-berkshire-tea').css('display', 'block');\n $('.sr__booking-form-tea-booking .fanhams-hall-tea').css('display', 'none');\n\n $('.sr__booking-mobile-form-tea-booking .pennyhill-park-tea').css('display', 'none');\n $('.sr__booking-mobile-form-tea-booking .south-lodge-tea').css('display', 'none');\n $('.sr__booking-mobile-form-tea-booking .lainston-house-tea').css('display', 'none');\n $('.sr__booking-mobile-form-tea-booking .the-manor-house-tea').css('display', 'none');\n $('.sr__booking-mobile-form-tea-booking .royal-berkshire-tea').css('display', 'block');\n $('.sr__booking-mobile-form-tea-booking .fanhams-hall-tea').css('display', 'none');\n } else if( $(this).val().toLowerCase() == 'fanhams-hall-tea' ) {\n $('.sr__booking-form-tea-booking .pennyhill-park-tea').css('display', 'none');\n $('.sr__booking-form-tea-booking .south-lodge-tea').css('display', 'none');\n $('.sr__booking-form-tea-booking .lainston-house-tea').css('display', 'none');\n $('.sr__booking-form-tea-booking .the-manor-house-tea').css('display', 'none');\n $('.sr__booking-form-tea-booking .royal-berkshire-tea').css('display', 'none');\n $('.sr__booking-form-tea-booking .fanhams-hall-tea').css('display', 'block');\n\n $('.sr__booking-mobile-form-tea-booking .pennyhill-park-tea').css('display', 'none');\n $('.sr__booking-mobile-form-tea-booking .south-lodge-tea').css('display', 'none');\n $('.sr__booking-mobile-form-tea-booking .lainston-house-tea').css('display', 'none');\n $('.sr__booking-mobile-form-tea-booking .the-manor-house-tea').css('display', 'none');\n $('.sr__booking-mobile-form-tea-booking .royal-berkshire-tea').css('display', 'none');\n $('.sr__booking-mobile-form-tea-booking .fanhams-hall-tea').css('display', 'block');\n }\n })\n\n $('.sr__booking-form-property .lunch-select select, .sr__booking-mobile-form-property .lunch-select select').change(function() {\n if( $(this).val().toLowerCase() == 'the-manor-house-lunch' ) {\n $('.sr__booking-form-lunch-booking .the-manor-house-lunch').css('display', 'block');\n $('.sr__booking-form-lunch-booking .fanhams-hall-lunch').css('display', 'none');\n\n $('.sr__booking-mobile-form-lunch-booking .the-manor-house-lunch').css('display', 'block');\n $('.sr__booking-mobile-form-lunch-booking .fanhams-hall-lunch').css('display', 'none');\n } else if( $(this).val().toLowerCase() == 'fanhams-hall-lunch' ) {\n $('.sr__booking-form-lunch-booking .the-manor-house-lunch').css('display', 'none');\n $('.sr__booking-form-lunch-booking .fanhams-hall-lunch').css('display', 'block');\n\n $('.sr__booking-mobile-form-lunch-booking .the-manor-house-lunch').css('display', 'none');\n $('.sr__booking-mobile-form-lunch-booking .fanhams-hall-lunch').css('display', 'block');\n }\n })\n\n $('.sr__booking-form-property .treatment-select select, .sr__booking-mobile-form-property .treatment-select select').change(function() {\n if ( $(this).val().toLowerCase() == 'the-spa-at-pennyhill-park-treatment' ) {\n $('.sr__booking .pennyhill-park-spa').css('display', 'block');\n $('.sr__booking .south-lodge-spa').css('display', 'none');\n\n $('.sr__booking-mobile .pennyhill-park-spa').css('display', 'block');\n $('.sr__booking-mobile .south-lodge-spa').css('display', 'none');\n console.log('change pennyhill');\n } else {\n $('.sr__booking .pennyhill-park-spa').css('display', 'none');\n $('.sr__booking .south-lodge-spa').css('display', 'block');\n\n $('.sr__booking-mobile .pennyhill-park-spa').css('display', 'none');\n $('.sr__booking-mobile .south-lodge-spa').css('display', 'block');\n console.log('change south lodge');\n }\n })\n\n $('.primary-nav-items >ul >li').mouseenter(function() {\n if( $(this).has('.primary-nav-sub') ) {\n $(this).find('.primary-nav-sub').addClass('open');\n }\n })\n\n $('.primary-nav-items >ul >li').mouseleave(function() {\n if( $(this).has('.primary-nav-sub') ) {\n $(this).find('.primary-nav-sub').removeClass('open');\n }\n })\n\n $('.nav-wrap > ul > li > a.primary-nav-has-sub').on('click', function(e) {\n $(this).toggleClass('open');\n\n e.preventDefault();\n return false;\n });\n\n if ( $(window).width() > 1000 ) {\n var maxHeightSquaresItem = 0;\n\n $('.sr__squares-item').each( function() {\n if ( $(this).height() > maxHeightSquaresItem ) {\n maxHeightSquaresItem = $(this).height();\n }\n });\n\n $('.sr__squares-item').height(maxHeightSquaresItem);\n\n\n var maxHeightSquaresText = 0;\n\n $('.sr__squares-item-split-text').each( function() {\n if ( $(this).height() > maxHeightSquaresText ) {\n maxHeightSquaresText = $(this).height();\n }\n });\n\n $('.sr__squares-item-split-text').height(maxHeightSquaresText);\n }\n\n var maxHeightOffersText = 0;\n\n\t$('.sr__offers-landing-grid-double-item-info-wrap p').each( function() {\n\t\tif ( $(this).height() > maxHeightOffersText ) {\n\t\t\tmaxHeightOffersText = $(this).height();\n\t\t}\n\t});\n\n\t$('.sr__offers-landing-grid-double-item-info-wrap p').height(maxHeightOffersText);\n\n});\n\n// init bookingbar date selection\nfunction initBookingBar() {\n // Reset the dropdowns to clear autocomplete data for various browser issues\n $('.sr__booking option:selected').each(function() {\n $(this).prop('selected', true);\n });\n\n if ( $(window).width() >= 767 ) {\n var bookingContainer = $('.sr__booking-form-room-booking form');\n } else {\n var bookingContainer = $('.sr__booking-mobile-form-room-booking form');\n }\n\n var nowTemp = new Date();\n var tomorrow = new Date();\n tomorrow.setDate(nowTemp.getDate() + 1);\n\n var minDate = new Date(2021, 4, 17);\n if ( minDate > nowTemp ) {\n nowTemp = minDate;\n tomorrow.setDate(nowTemp.getDate() + 1);\n }\n\n var $checkInField = bookingContainer.find('.check-in');\n var $checkOutField = bookingContainer.find('.check-out');\n\n $checkInField.on('hide.datepicker', function () {\n var checkInDate = $checkInField.datepicker('getDate');\n var checkOutDate = $checkOutField.datepicker('getDate');\n var dayAfterCheckIn = new Date(checkInDate);\n dayAfterCheckIn.setDate(checkInDate.getDate() + 1);\n\n /*var nightsNum = (checkOutDate - checkInDate) / (1000*60*60*24); //get number of nights - comes in as miliseconds\n var nightStr = nightsNum.toString();\n var nights = bookingContainer.find('.nights');\n\n nights.value = nightStr;*/\n\n // Ensure checkout comes after checkin.\n // Otherwise it all gets a bit Restaurant at the End of the Universe-ey.\n if ( checkInDate >= checkOutDate ) {\n $checkOutField.datepicker('setDate', dayAfterCheckIn);\n }\n\n $checkOutField.datepicker('setStartDate', dayAfterCheckIn);\n\n $checkOutField[0].focus();\n });\n\n $checkOutField.on('hide.datepicker', function() {\n var checkInDate = $checkInField.datepicker('getDate');\n var checkOutDate = $checkOutField.datepicker('getDate');\n\n /*var nightsNum = (checkOutDate - checkInDate) / (1000*60*60*24); //get number of nights - comes in as miliseconds\n var nightStr = nightsNum.toString();\n var nights = bookingContainer.find('.nights');\n nights.attr('data-nights', nightStr);*/\n\n var arrival =bookingContainer.find('.check-in');\n arrival.attr('data-date' ,$checkInField.val());\n\n })\n\n var checkin = $checkInField.datepicker({\n format: 'dd/mm/yyyy',\n //autoPick: true,\n autoHide: true,\n date: null,\n startDate: nowTemp\n });\n\n var checkout = $checkOutField.datepicker({\n format: 'dd/mm/yyyy',\n //autoPick: true,\n autoHide: true,\n date: null,\n startDate: tomorrow\n });\n\n bookingContainer.on('submit', function () {\n // Calculate the number of nights between the 2 dates\n if (checkin.val() == '') {\n checkin.val( pad( nowTemp.getDate() , 2) + '/' + pad( nowTemp.getMonth() + 1*1 , 2) + '/' + nowTemp.getFullYear() );\n }\n\n if (checkout.val() == '') {\n checkout.val( pad( tomorrow.getDate() , 2) + '/' + pad( tomorrow.getMonth() + 1*1 , 2) + '/' + tomorrow.getFullYear() );\n }\n\n var checkInDate = $checkInField.datepicker('getDate');\n var checkOutDate = $checkOutField.datepicker('getDate');\n\n var nightsNum = (checkOutDate - checkInDate) / (1000*60*60*24); //get number of nights - comes in as miliseconds\n var nightStr = nightsNum.toString();\n bookingContainer.find('.nights').val(nightStr);\n\n });\n\n}\n\nfunction changeBookingProperty() {\n $('.sr__booking-wrap .room-select select, .sr__booking-mobile-wrap .room-select select').change(function() {\n setTimeout(function() {\n initBookingBar()\n },250)\n })\n\n}\n\n\nfunction pad(n, width, z) {\n z = z || '0';\n n = n + '';\n return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;\n}\n","/*!\r\n * Datepicker v1.0.10\r\n * https://fengyuanchen.github.io/datepicker\r\n *\r\n * Copyright 2014-present Chen Fengyuan\r\n * Released under the MIT license\r\n *\r\n * Date: 2020-09-29T14:46:10.983Z\r\n */\r\n\r\n(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('jquery')) :\r\n typeof define === 'function' && define.amd ? define(['jquery'], factory) :\r\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.jQuery));\r\n}(this, (function ($) { 'use strict';\r\n\r\n $ = $ && $.hasOwnProperty('default') ? $['default'] : $;\r\n\r\n function _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\");\r\n }\r\n }\r\n\r\n function _defineProperties(target, props) {\r\n for (var i = 0; i < props.length; i++) {\r\n var descriptor = props[i];\r\n descriptor.enumerable = descriptor.enumerable || false;\r\n descriptor.configurable = true;\r\n if (\"value\" in descriptor) descriptor.writable = true;\r\n Object.defineProperty(target, descriptor.key, descriptor);\r\n }\r\n }\r\n\r\n function _createClass(Constructor, protoProps, staticProps) {\r\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\r\n if (staticProps) _defineProperties(Constructor, staticProps);\r\n return Constructor;\r\n }\r\n\r\n var DEFAULTS = {\r\n // Show the datepicker automatically when initialized\r\n autoShow: false,\r\n // Hide the datepicker automatically when picked\r\n autoHide: false,\r\n // Pick the initial date automatically when initialized\r\n autoPick: false,\r\n // Enable inline mode\r\n inline: false,\r\n // A element (or selector) for putting the datepicker\r\n container: null,\r\n // A element (or selector) for triggering the datepicker\r\n trigger: null,\r\n // The ISO language code (built-in: en-US)\r\n language: '',\r\n // The date string format\r\n format: 'mm/dd/yyyy',\r\n // The initial date\r\n date: null,\r\n // The start view date\r\n startDate: null,\r\n // The end view date\r\n endDate: null,\r\n // The start view when initialized\r\n startView: 0,\r\n // 0 for days, 1 for months, 2 for years\r\n // The start day of the week\r\n // 0 for Sunday, 1 for Monday, 2 for Tuesday, 3 for Wednesday,\r\n // 4 for Thursday, 5 for Friday, 6 for Saturday\r\n weekStart: 0,\r\n // Show year before month on the datepicker header\r\n yearFirst: false,\r\n // A string suffix to the year number.\r\n yearSuffix: '',\r\n // Days' name of the week.\r\n days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\r\n // Shorter days' name\r\n daysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\r\n // Shortest days' name\r\n daysMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\r\n // Months' name\r\n months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\r\n // Shorter months' name\r\n monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\r\n // A element tag for each item of years, months and days\r\n itemTag: 'li',\r\n // A class (CSS) for muted date item\r\n mutedClass: 'muted',\r\n // A class (CSS) for picked date item\r\n pickedClass: 'picked',\r\n // A class (CSS) for disabled date item\r\n disabledClass: 'disabled',\r\n // A class (CSS) for highlight date item\r\n highlightedClass: 'highlighted',\r\n // The template of the datepicker\r\n template: '',\r\n // The offset top or bottom of the datepicker from the element\r\n offset: 10,\r\n // The `z-index` of the datepicker\r\n zIndex: 1000,\r\n // Filter each date item (return `false` to disable a date item)\r\n filter: null,\r\n // Event shortcuts\r\n show: null,\r\n hide: null,\r\n pick: null\r\n };\r\n\r\n var IS_BROWSER = typeof window !== 'undefined';\r\n var WINDOW = IS_BROWSER ? window : {};\r\n var IS_TOUCH_DEVICE = IS_BROWSER ? 'ontouchstart' in WINDOW.document.documentElement : false;\r\n var NAMESPACE = 'datepicker';\r\n var EVENT_CLICK = \"click.\".concat(NAMESPACE);\r\n var EVENT_FOCUS = \"focus.\".concat(NAMESPACE);\r\n var EVENT_HIDE = \"hide.\".concat(NAMESPACE);\r\n var EVENT_KEYUP = \"keyup.\".concat(NAMESPACE);\r\n var EVENT_PICK = \"pick.\".concat(NAMESPACE);\r\n var EVENT_RESIZE = \"resize.\".concat(NAMESPACE);\r\n var EVENT_SCROLL = \"scroll.\".concat(NAMESPACE);\r\n var EVENT_SHOW = \"show.\".concat(NAMESPACE);\r\n var EVENT_TOUCH_START = \"touchstart.\".concat(NAMESPACE);\r\n var CLASS_HIDE = \"\".concat(NAMESPACE, \"-hide\");\r\n var LANGUAGES = {};\r\n var VIEWS = {\r\n DAYS: 0,\r\n MONTHS: 1,\r\n YEARS: 2\r\n };\r\n\r\n var toString = Object.prototype.toString;\r\n function typeOf(obj) {\r\n return toString.call(obj).slice(8, -1).toLowerCase();\r\n }\r\n function isString(value) {\r\n return typeof value === 'string';\r\n }\r\n var isNaN = Number.isNaN || WINDOW.isNaN;\r\n function isNumber(value) {\r\n return typeof value === 'number' && !isNaN(value);\r\n }\r\n function isUndefined(value) {\r\n return typeof value === 'undefined';\r\n }\r\n function isDate(value) {\r\n return typeOf(value) === 'date' && !isNaN(value.getTime());\r\n }\r\n function proxy(fn, context) {\r\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\r\n args[_key - 2] = arguments[_key];\r\n }\r\n\r\n return function () {\r\n for (var _len2 = arguments.length, args2 = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\r\n args2[_key2] = arguments[_key2];\r\n }\r\n\r\n return fn.apply(context, args.concat(args2));\r\n };\r\n }\r\n function selectorOf(view) {\r\n return \"[data-view=\\\"\".concat(view, \"\\\"]\");\r\n }\r\n function isLeapYear(year) {\r\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\r\n }\r\n function getDaysInMonth(year, month) {\r\n return [31, isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];\r\n }\r\n function getMinDay(year, month, day) {\r\n return Math.min(day, getDaysInMonth(year, month));\r\n }\r\n var formatParts = /(y|m|d)+/g;\r\n function parseFormat(format) {\r\n var source = String(format).toLowerCase();\r\n var parts = source.match(formatParts);\r\n\r\n if (!parts || parts.length === 0) {\r\n throw new Error('Invalid date format.');\r\n }\r\n\r\n format = {\r\n source: source,\r\n parts: parts\r\n };\r\n $.each(parts, function (i, part) {\r\n switch (part) {\r\n case 'dd':\r\n case 'd':\r\n format.hasDay = true;\r\n break;\r\n\r\n case 'mm':\r\n case 'm':\r\n format.hasMonth = true;\r\n break;\r\n\r\n case 'yyyy':\r\n case 'yy':\r\n format.hasYear = true;\r\n break;\r\n }\r\n });\r\n return format;\r\n }\r\n function getScrollParent(element) {\r\n var includeHidden = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\r\n var $element = $(element);\r\n var position = $element.css('position');\r\n var excludeStaticParent = position === 'absolute';\r\n var overflowRegex = includeHidden ? /auto|scroll|hidden/ : /auto|scroll/;\r\n var scrollParent = $element.parents().filter(function (index, parent) {\r\n var $parent = $(parent);\r\n\r\n if (excludeStaticParent && $parent.css('position') === 'static') {\r\n return false;\r\n }\r\n\r\n return overflowRegex.test($parent.css('overflow') + $parent.css('overflow-y') + $parent.css('overflow-x'));\r\n }).eq(0);\r\n return position === 'fixed' || !scrollParent.length ? $(element.ownerDocument || document) : scrollParent;\r\n }\r\n /**\r\n * Add leading zeroes to the given value\r\n * @param {number} value - The value to add.\r\n * @param {number} [length=1] - The expected value length.\r\n * @returns {string} Returns converted value.\r\n */\r\n\r\n function addLeadingZero(value) {\r\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\r\n var str = String(Math.abs(value));\r\n var i = str.length;\r\n var result = '';\r\n\r\n if (value < 0) {\r\n result += '-';\r\n }\r\n\r\n while (i < length) {\r\n i += 1;\r\n result += '0';\r\n }\r\n\r\n return result + str;\r\n }\r\n\r\n var REGEXP_DIGITS = /\\d+/g;\r\n var methods = {\r\n // Show the datepicker\r\n show: function show() {\r\n if (!this.built) {\r\n this.build();\r\n }\r\n\r\n if (this.shown) {\r\n return;\r\n }\r\n\r\n if (this.trigger(EVENT_SHOW).isDefaultPrevented()) {\r\n return;\r\n }\r\n\r\n this.shown = true;\r\n this.$picker.removeClass(CLASS_HIDE).on(EVENT_CLICK, $.proxy(this.click, this));\r\n this.showView(this.options.startView);\r\n\r\n if (!this.inline) {\r\n this.$scrollParent.on(EVENT_SCROLL, $.proxy(this.place, this));\r\n $(window).on(EVENT_RESIZE, this.onResize = proxy(this.place, this));\r\n $(document).on(EVENT_CLICK, this.onGlobalClick = proxy(this.globalClick, this));\r\n $(document).on(EVENT_KEYUP, this.onGlobalKeyup = proxy(this.globalKeyup, this));\r\n\r\n if (IS_TOUCH_DEVICE) {\r\n $(document).on(EVENT_TOUCH_START, this.onTouchStart = proxy(this.touchstart, this));\r\n }\r\n\r\n this.place();\r\n }\r\n },\r\n // Hide the datepicker\r\n hide: function hide() {\r\n if (!this.shown) {\r\n return;\r\n }\r\n\r\n if (this.trigger(EVENT_HIDE).isDefaultPrevented()) {\r\n return;\r\n }\r\n\r\n this.shown = false;\r\n this.$picker.addClass(CLASS_HIDE).off(EVENT_CLICK, this.click);\r\n\r\n if (!this.inline) {\r\n this.$scrollParent.off(EVENT_SCROLL, this.place);\r\n $(window).off(EVENT_RESIZE, this.onResize);\r\n $(document).off(EVENT_CLICK, this.onGlobalClick);\r\n $(document).off(EVENT_KEYUP, this.onGlobalKeyup);\r\n\r\n if (IS_TOUCH_DEVICE) {\r\n $(document).off(EVENT_TOUCH_START, this.onTouchStart);\r\n }\r\n }\r\n },\r\n toggle: function toggle() {\r\n if (this.shown) {\r\n this.hide();\r\n } else {\r\n this.show();\r\n }\r\n },\r\n // Update the datepicker with the current input value\r\n update: function update() {\r\n var value = this.getValue();\r\n\r\n if (value === this.oldValue) {\r\n return;\r\n }\r\n\r\n this.setDate(value, true);\r\n this.oldValue = value;\r\n },\r\n\r\n /**\r\n * Pick the current date to the element\r\n *\r\n * @param {String} _view (private)\r\n */\r\n pick: function pick(_view) {\r\n var $this = this.$element;\r\n var date = this.date;\r\n\r\n if (this.trigger(EVENT_PICK, {\r\n view: _view || '',\r\n date: date\r\n }).isDefaultPrevented()) {\r\n return;\r\n }\r\n\r\n date = this.formatDate(this.date);\r\n this.setValue(date);\r\n\r\n if (this.isInput) {\r\n $this.trigger('input');\r\n $this.trigger('change');\r\n }\r\n },\r\n // Reset the datepicker\r\n reset: function reset() {\r\n this.setDate(this.initialDate, true);\r\n this.setValue(this.initialValue);\r\n\r\n if (this.shown) {\r\n this.showView(this.options.startView);\r\n }\r\n },\r\n\r\n /**\r\n * Get the month name with given argument or the current date\r\n *\r\n * @param {Number} month (optional)\r\n * @param {Boolean} shortForm (optional)\r\n * @return {String} (month name)\r\n */\r\n getMonthName: function getMonthName(month, shortForm) {\r\n var options = this.options;\r\n var monthsShort = options.monthsShort;\r\n var months = options.months;\r\n\r\n if ($.isNumeric(month)) {\r\n month = Number(month);\r\n } else if (isUndefined(shortForm)) {\r\n shortForm = month;\r\n }\r\n\r\n if (shortForm === true) {\r\n months = monthsShort;\r\n }\r\n\r\n return months[isNumber(month) ? month : this.date.getMonth()];\r\n },\r\n\r\n /**\r\n * Get the day name with given argument or the current date\r\n *\r\n * @param {Number} day (optional)\r\n * @param {Boolean} shortForm (optional)\r\n * @param {Boolean} min (optional)\r\n * @return {String} (day name)\r\n */\r\n getDayName: function getDayName(day, shortForm, min) {\r\n var options = this.options;\r\n var days = options.days;\r\n\r\n if ($.isNumeric(day)) {\r\n day = Number(day);\r\n } else {\r\n if (isUndefined(min)) {\r\n min = shortForm;\r\n }\r\n\r\n if (isUndefined(shortForm)) {\r\n shortForm = day;\r\n }\r\n }\r\n\r\n if (min) {\r\n days = options.daysMin;\r\n } else if (shortForm) {\r\n days = options.daysShort;\r\n }\r\n\r\n return days[isNumber(day) ? day : this.date.getDay()];\r\n },\r\n\r\n /**\r\n * Get the current date\r\n *\r\n * @param {Boolean} formatted (optional)\r\n * @return {Date|String} (date)\r\n */\r\n getDate: function getDate(formatted) {\r\n var date = this.date;\r\n return formatted ? this.formatDate(date) : new Date(date);\r\n },\r\n\r\n /**\r\n * Set the current date with a new date\r\n *\r\n * @param {Date} date\r\n * @param {Boolean} _updated (private)\r\n */\r\n setDate: function setDate(date, _updated) {\r\n var filter = this.options.filter;\r\n\r\n if (isDate(date) || isString(date)) {\r\n date = this.parseDate(date);\r\n\r\n if ($.isFunction(filter) && filter.call(this.$element, date, 'day') === false) {\r\n return;\r\n }\r\n\r\n this.date = date;\r\n this.viewDate = new Date(date);\r\n\r\n if (!_updated) {\r\n this.pick();\r\n }\r\n\r\n if (this.built) {\r\n this.render();\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Set the start view date with a new date\r\n *\r\n * @param {Date|string|null} date\r\n */\r\n setStartDate: function setStartDate(date) {\r\n if (isDate(date) || isString(date)) {\r\n this.startDate = this.parseDate(date);\r\n } else {\r\n this.startDate = null;\r\n }\r\n\r\n if (this.built) {\r\n this.render();\r\n }\r\n },\r\n\r\n /**\r\n * Set the end view date with a new date\r\n *\r\n * @param {Date|string|null} date\r\n */\r\n setEndDate: function setEndDate(date) {\r\n if (isDate(date) || isString(date)) {\r\n this.endDate = this.parseDate(date);\r\n } else {\r\n this.endDate = null;\r\n }\r\n\r\n if (this.built) {\r\n this.render();\r\n }\r\n },\r\n\r\n /**\r\n * Parse a date string with the set date format\r\n *\r\n * @param {String} date\r\n * @return {Date} (parsed date)\r\n */\r\n parseDate: function parseDate(date) {\r\n var format = this.format;\r\n var parts = [];\r\n\r\n if (!isDate(date)) {\r\n if (isString(date)) {\r\n parts = date.match(REGEXP_DIGITS) || [];\r\n }\r\n\r\n date = date ? new Date(date) : new Date();\r\n\r\n if (!isDate(date)) {\r\n date = new Date();\r\n }\r\n\r\n if (parts.length === format.parts.length) {\r\n // Set year and month first\r\n $.each(parts, function (i, part) {\r\n var value = parseInt(part, 10);\r\n\r\n switch (format.parts[i]) {\r\n case 'yy':\r\n date.setFullYear(2000 + value);\r\n break;\r\n\r\n case 'yyyy':\r\n // Converts 2-digit year to 2000+\r\n date.setFullYear(part.length === 2 ? 2000 + value : value);\r\n break;\r\n\r\n case 'mm':\r\n case 'm':\r\n date.setMonth(value - 1);\r\n break;\r\n }\r\n }); // Set day in the last to avoid converting `31/10/2019` to `01/10/2019`\r\n\r\n $.each(parts, function (i, part) {\r\n var value = parseInt(part, 10);\r\n\r\n switch (format.parts[i]) {\r\n case 'dd':\r\n case 'd':\r\n date.setDate(value);\r\n break;\r\n }\r\n });\r\n }\r\n } // Ignore hours, minutes, seconds and milliseconds to avoid side effect (#192)\r\n\r\n\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n },\r\n\r\n /**\r\n * Format a date object to a string with the set date format\r\n *\r\n * @param {Date} date\r\n * @return {String} (formatted date)\r\n */\r\n formatDate: function formatDate(date) {\r\n var format = this.format;\r\n var formatted = '';\r\n\r\n if (isDate(date)) {\r\n var year = date.getFullYear();\r\n var month = date.getMonth();\r\n var day = date.getDate();\r\n var values = {\r\n d: day,\r\n dd: addLeadingZero(day, 2),\r\n m: month + 1,\r\n mm: addLeadingZero(month + 1, 2),\r\n yy: String(year).substring(2),\r\n yyyy: addLeadingZero(year, 4)\r\n };\r\n formatted = format.source;\r\n $.each(format.parts, function (i, part) {\r\n formatted = formatted.replace(part, values[part]);\r\n });\r\n }\r\n\r\n return formatted;\r\n },\r\n // Destroy the datepicker and remove the instance from the target element\r\n destroy: function destroy() {\r\n this.unbind();\r\n this.unbuild();\r\n this.$element.removeData(NAMESPACE);\r\n }\r\n };\r\n\r\n var handlers = {\r\n click: function click(e) {\r\n var $target = $(e.target);\r\n var options = this.options,\r\n date = this.date,\r\n viewDate = this.viewDate,\r\n format = this.format;\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n if ($target.hasClass('disabled')) {\r\n return;\r\n }\r\n\r\n var view = $target.data('view');\r\n var viewYear = viewDate.getFullYear();\r\n var viewMonth = viewDate.getMonth();\r\n var viewDay = viewDate.getDate();\r\n\r\n switch (view) {\r\n case 'years prev':\r\n case 'years next':\r\n {\r\n viewYear = view === 'years prev' ? viewYear - 10 : viewYear + 10;\r\n viewDate.setFullYear(viewYear);\r\n viewDate.setDate(getMinDay(viewYear, viewMonth, viewDay));\r\n this.renderYears();\r\n break;\r\n }\r\n\r\n case 'year prev':\r\n case 'year next':\r\n viewYear = view === 'year prev' ? viewYear - 1 : viewYear + 1;\r\n viewDate.setFullYear(viewYear);\r\n viewDate.setDate(getMinDay(viewYear, viewMonth, viewDay));\r\n this.renderMonths();\r\n break;\r\n\r\n case 'year current':\r\n if (format.hasYear) {\r\n this.showView(VIEWS.YEARS);\r\n }\r\n\r\n break;\r\n\r\n case 'year picked':\r\n if (format.hasMonth) {\r\n this.showView(VIEWS.MONTHS);\r\n } else {\r\n $target.siblings(\".\".concat(options.pickedClass)).removeClass(options.pickedClass).data('view', 'year');\r\n this.hideView();\r\n }\r\n\r\n this.pick('year');\r\n break;\r\n\r\n case 'year':\r\n viewYear = parseInt($target.text(), 10); // Set date first to avoid month changing (#195)\r\n\r\n date.setDate(getMinDay(viewYear, viewMonth, viewDay));\r\n date.setFullYear(viewYear);\r\n viewDate.setDate(getMinDay(viewYear, viewMonth, viewDay));\r\n viewDate.setFullYear(viewYear);\r\n\r\n if (format.hasMonth) {\r\n this.showView(VIEWS.MONTHS);\r\n } else {\r\n $target.addClass(options.pickedClass).data('view', 'year picked').siblings(\".\".concat(options.pickedClass)).removeClass(options.pickedClass).data('view', 'year');\r\n this.hideView();\r\n }\r\n\r\n this.pick('year');\r\n break;\r\n\r\n case 'month prev':\r\n case 'month next':\r\n viewMonth = view === 'month prev' ? viewMonth - 1 : viewMonth + 1;\r\n\r\n if (viewMonth < 0) {\r\n viewYear -= 1;\r\n viewMonth += 12;\r\n } else if (viewMonth > 11) {\r\n viewYear += 1;\r\n viewMonth -= 12;\r\n }\r\n\r\n viewDate.setFullYear(viewYear);\r\n viewDate.setDate(getMinDay(viewYear, viewMonth, viewDay));\r\n viewDate.setMonth(viewMonth);\r\n this.renderDays();\r\n break;\r\n\r\n case 'month current':\r\n if (format.hasMonth) {\r\n this.showView(VIEWS.MONTHS);\r\n }\r\n\r\n break;\r\n\r\n case 'month picked':\r\n if (format.hasDay) {\r\n this.showView(VIEWS.DAYS);\r\n } else {\r\n $target.siblings(\".\".concat(options.pickedClass)).removeClass(options.pickedClass).data('view', 'month');\r\n this.hideView();\r\n }\r\n\r\n this.pick('month');\r\n break;\r\n\r\n case 'month':\r\n viewMonth = $.inArray($target.text(), options.monthsShort);\r\n date.setFullYear(viewYear); // Set date before month to avoid month changing (#195)\r\n\r\n date.setDate(getMinDay(viewYear, viewMonth, viewDay));\r\n date.setMonth(viewMonth);\r\n viewDate.setFullYear(viewYear);\r\n viewDate.setDate(getMinDay(viewYear, viewMonth, viewDay));\r\n viewDate.setMonth(viewMonth);\r\n\r\n if (format.hasDay) {\r\n this.showView(VIEWS.DAYS);\r\n } else {\r\n $target.addClass(options.pickedClass).data('view', 'month picked').siblings(\".\".concat(options.pickedClass)).removeClass(options.pickedClass).data('view', 'month');\r\n this.hideView();\r\n }\r\n\r\n this.pick('month');\r\n break;\r\n\r\n case 'day prev':\r\n case 'day next':\r\n case 'day':\r\n if (view === 'day prev') {\r\n viewMonth -= 1;\r\n } else if (view === 'day next') {\r\n viewMonth += 1;\r\n }\r\n\r\n viewDay = parseInt($target.text(), 10); // Set date to 1 to avoid month changing (#195)\r\n\r\n date.setDate(1);\r\n date.setFullYear(viewYear);\r\n date.setMonth(viewMonth);\r\n date.setDate(viewDay);\r\n viewDate.setDate(1);\r\n viewDate.setFullYear(viewYear);\r\n viewDate.setMonth(viewMonth);\r\n viewDate.setDate(viewDay);\r\n this.renderDays();\r\n\r\n if (view === 'day') {\r\n this.hideView();\r\n }\r\n\r\n this.pick('day');\r\n break;\r\n\r\n case 'day picked':\r\n this.hideView();\r\n this.pick('day');\r\n break;\r\n }\r\n },\r\n globalClick: function globalClick(_ref) {\r\n var target = _ref.target;\r\n var element = this.element,\r\n $trigger = this.$trigger;\r\n var trigger = $trigger[0];\r\n var hidden = true;\r\n\r\n while (target !== document) {\r\n if (target === trigger || target === element) {\r\n hidden = false;\r\n break;\r\n }\r\n\r\n target = target.parentNode;\r\n }\r\n\r\n if (hidden) {\r\n this.hide();\r\n }\r\n },\r\n keyup: function keyup() {\r\n this.update();\r\n },\r\n globalKeyup: function globalKeyup(_ref2) {\r\n var target = _ref2.target,\r\n key = _ref2.key,\r\n keyCode = _ref2.keyCode;\r\n\r\n if (this.isInput && target !== this.element && this.shown && (key === 'Tab' || keyCode === 9)) {\r\n this.hide();\r\n }\r\n },\r\n touchstart: function touchstart(_ref3) {\r\n var target = _ref3.target;\r\n\r\n // Emulate click in touch devices to support hiding the picker automatically (#197).\r\n if (this.isInput && target !== this.element && !$.contains(this.$picker[0], target)) {\r\n this.hide();\r\n this.element.blur();\r\n }\r\n }\r\n };\r\n\r\n var render = {\r\n render: function render() {\r\n this.renderYears();\r\n this.renderMonths();\r\n this.renderDays();\r\n },\r\n renderWeek: function renderWeek() {\r\n var _this = this;\r\n\r\n var items = [];\r\n var _this$options = this.options,\r\n weekStart = _this$options.weekStart,\r\n daysMin = _this$options.daysMin;\r\n weekStart = parseInt(weekStart, 10) % 7;\r\n daysMin = daysMin.slice(weekStart).concat(daysMin.slice(0, weekStart));\r\n $.each(daysMin, function (i, day) {\r\n items.push(_this.createItem({\r\n text: day\r\n }));\r\n });\r\n this.$week.html(items.join(''));\r\n },\r\n renderYears: function renderYears() {\r\n var options = this.options,\r\n startDate = this.startDate,\r\n endDate = this.endDate;\r\n var disabledClass = options.disabledClass,\r\n filter = options.filter,\r\n yearSuffix = options.yearSuffix;\r\n var viewYear = this.viewDate.getFullYear();\r\n var now = new Date();\r\n var thisYear = now.getFullYear();\r\n var year = this.date.getFullYear();\r\n var start = -5;\r\n var end = 6;\r\n var items = [];\r\n var prevDisabled = false;\r\n var nextDisabled = false;\r\n var i;\r\n\r\n for (i = start; i <= end; i += 1) {\r\n var date = new Date(viewYear + i, 1, 1);\r\n var disabled = false;\r\n\r\n if (startDate) {\r\n disabled = date.getFullYear() < startDate.getFullYear();\r\n\r\n if (i === start) {\r\n prevDisabled = disabled;\r\n }\r\n }\r\n\r\n if (!disabled && endDate) {\r\n disabled = date.getFullYear() > endDate.getFullYear();\r\n\r\n if (i === end) {\r\n nextDisabled = disabled;\r\n }\r\n }\r\n\r\n if (!disabled && filter) {\r\n disabled = filter.call(this.$element, date, 'year') === false;\r\n }\r\n\r\n var picked = viewYear + i === year;\r\n var view = picked ? 'year picked' : 'year';\r\n items.push(this.createItem({\r\n picked: picked,\r\n disabled: disabled,\r\n text: viewYear + i,\r\n view: disabled ? 'year disabled' : view,\r\n highlighted: date.getFullYear() === thisYear\r\n }));\r\n }\r\n\r\n this.$yearsPrev.toggleClass(disabledClass, prevDisabled);\r\n this.$yearsNext.toggleClass(disabledClass, nextDisabled);\r\n this.$yearsCurrent.toggleClass(disabledClass, true).html(\"\".concat(viewYear + start + yearSuffix, \" - \").concat(viewYear + end).concat(yearSuffix));\r\n this.$years.html(items.join(''));\r\n },\r\n renderMonths: function renderMonths() {\r\n var options = this.options,\r\n startDate = this.startDate,\r\n endDate = this.endDate,\r\n viewDate = this.viewDate;\r\n var disabledClass = options.disabledClass || '';\r\n var months = options.monthsShort;\r\n var filter = $.isFunction(options.filter) && options.filter;\r\n var viewYear = viewDate.getFullYear();\r\n var now = new Date();\r\n var thisYear = now.getFullYear();\r\n var thisMonth = now.getMonth();\r\n var year = this.date.getFullYear();\r\n var month = this.date.getMonth();\r\n var items = [];\r\n var prevDisabled = false;\r\n var nextDisabled = false;\r\n var i;\r\n\r\n for (i = 0; i <= 11; i += 1) {\r\n var date = new Date(viewYear, i, 1);\r\n var disabled = false;\r\n\r\n if (startDate) {\r\n prevDisabled = date.getFullYear() === startDate.getFullYear();\r\n disabled = prevDisabled && date.getMonth() < startDate.getMonth();\r\n }\r\n\r\n if (!disabled && endDate) {\r\n nextDisabled = date.getFullYear() === endDate.getFullYear();\r\n disabled = nextDisabled && date.getMonth() > endDate.getMonth();\r\n }\r\n\r\n if (!disabled && filter) {\r\n disabled = filter.call(this.$element, date, 'month') === false;\r\n }\r\n\r\n var picked = viewYear === year && i === month;\r\n var view = picked ? 'month picked' : 'month';\r\n items.push(this.createItem({\r\n disabled: disabled,\r\n picked: picked,\r\n highlighted: viewYear === thisYear && date.getMonth() === thisMonth,\r\n index: i,\r\n text: months[i],\r\n view: disabled ? 'month disabled' : view\r\n }));\r\n }\r\n\r\n this.$yearPrev.toggleClass(disabledClass, prevDisabled);\r\n this.$yearNext.toggleClass(disabledClass, nextDisabled);\r\n this.$yearCurrent.toggleClass(disabledClass, prevDisabled && nextDisabled).html(viewYear + options.yearSuffix || '');\r\n this.$months.html(items.join(''));\r\n },\r\n renderDays: function renderDays() {\r\n var $element = this.$element,\r\n options = this.options,\r\n startDate = this.startDate,\r\n endDate = this.endDate,\r\n viewDate = this.viewDate,\r\n currentDate = this.date;\r\n var disabledClass = options.disabledClass,\r\n filter = options.filter,\r\n months = options.months,\r\n weekStart = options.weekStart,\r\n yearSuffix = options.yearSuffix;\r\n var viewYear = viewDate.getFullYear();\r\n var viewMonth = viewDate.getMonth();\r\n var now = new Date();\r\n var thisYear = now.getFullYear();\r\n var thisMonth = now.getMonth();\r\n var thisDay = now.getDate();\r\n var year = currentDate.getFullYear();\r\n var month = currentDate.getMonth();\r\n var day = currentDate.getDate();\r\n var length;\r\n var i;\r\n var n; // Days of prev month\r\n // -----------------------------------------------------------------------\r\n\r\n var prevItems = [];\r\n var prevViewYear = viewYear;\r\n var prevViewMonth = viewMonth;\r\n var prevDisabled = false;\r\n\r\n if (viewMonth === 0) {\r\n prevViewYear -= 1;\r\n prevViewMonth = 11;\r\n } else {\r\n prevViewMonth -= 1;\r\n } // The length of the days of prev month\r\n\r\n\r\n length = getDaysInMonth(prevViewYear, prevViewMonth); // The first day of current month\r\n\r\n var firstDay = new Date(viewYear, viewMonth, 1); // The visible length of the days of prev month\r\n // [0,1,2,3,4,5,6] - [0,1,2,3,4,5,6] => [-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6]\r\n\r\n n = firstDay.getDay() - parseInt(weekStart, 10) % 7; // [-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6] => [1,2,3,4,5,6,7]\r\n\r\n if (n <= 0) {\r\n n += 7;\r\n }\r\n\r\n if (startDate) {\r\n prevDisabled = firstDay.getTime() <= startDate.getTime();\r\n }\r\n\r\n for (i = length - (n - 1); i <= length; i += 1) {\r\n var prevViewDate = new Date(prevViewYear, prevViewMonth, i);\r\n var disabled = false;\r\n\r\n if (startDate) {\r\n disabled = prevViewDate.getTime() < startDate.getTime();\r\n }\r\n\r\n if (!disabled && filter) {\r\n disabled = filter.call($element, prevViewDate, 'day') === false;\r\n }\r\n\r\n prevItems.push(this.createItem({\r\n disabled: disabled,\r\n highlighted: prevViewYear === thisYear && prevViewMonth === thisMonth && prevViewDate.getDate() === thisDay,\r\n muted: true,\r\n picked: prevViewYear === year && prevViewMonth === month && i === day,\r\n text: i,\r\n view: 'day prev'\r\n }));\r\n } // Days of next month\r\n // -----------------------------------------------------------------------\r\n\r\n\r\n var nextItems = [];\r\n var nextViewYear = viewYear;\r\n var nextViewMonth = viewMonth;\r\n var nextDisabled = false;\r\n\r\n if (viewMonth === 11) {\r\n nextViewYear += 1;\r\n nextViewMonth = 0;\r\n } else {\r\n nextViewMonth += 1;\r\n } // The length of the days of current month\r\n\r\n\r\n length = getDaysInMonth(viewYear, viewMonth); // The visible length of next month (42 means 6 rows and 7 columns)\r\n\r\n n = 42 - (prevItems.length + length); // The last day of current month\r\n\r\n var lastDate = new Date(viewYear, viewMonth, length);\r\n\r\n if (endDate) {\r\n nextDisabled = lastDate.getTime() >= endDate.getTime();\r\n }\r\n\r\n for (i = 1; i <= n; i += 1) {\r\n var date = new Date(nextViewYear, nextViewMonth, i);\r\n var picked = nextViewYear === year && nextViewMonth === month && i === day;\r\n var _disabled = false;\r\n\r\n if (endDate) {\r\n _disabled = date.getTime() > endDate.getTime();\r\n }\r\n\r\n if (!_disabled && filter) {\r\n _disabled = filter.call($element, date, 'day') === false;\r\n }\r\n\r\n nextItems.push(this.createItem({\r\n disabled: _disabled,\r\n picked: picked,\r\n highlighted: nextViewYear === thisYear && nextViewMonth === thisMonth && date.getDate() === thisDay,\r\n muted: true,\r\n text: i,\r\n view: 'day next'\r\n }));\r\n } // Days of current month\r\n // -----------------------------------------------------------------------\r\n\r\n\r\n var items = [];\r\n\r\n for (i = 1; i <= length; i += 1) {\r\n var _date = new Date(viewYear, viewMonth, i);\r\n\r\n var _disabled2 = false;\r\n\r\n if (startDate) {\r\n _disabled2 = _date.getTime() < startDate.getTime();\r\n }\r\n\r\n if (!_disabled2 && endDate) {\r\n _disabled2 = _date.getTime() > endDate.getTime();\r\n }\r\n\r\n if (!_disabled2 && filter) {\r\n _disabled2 = filter.call($element, _date, 'day') === false;\r\n }\r\n\r\n var _picked = viewYear === year && viewMonth === month && i === day;\r\n\r\n var view = _picked ? 'day picked' : 'day';\r\n items.push(this.createItem({\r\n disabled: _disabled2,\r\n picked: _picked,\r\n highlighted: viewYear === thisYear && viewMonth === thisMonth && _date.getDate() === thisDay,\r\n text: i,\r\n view: _disabled2 ? 'day disabled' : view\r\n }));\r\n } // Render days picker\r\n // -----------------------------------------------------------------------\r\n\r\n\r\n this.$monthPrev.toggleClass(disabledClass, prevDisabled);\r\n this.$monthNext.toggleClass(disabledClass, nextDisabled);\r\n this.$monthCurrent.toggleClass(disabledClass, prevDisabled && nextDisabled).html(options.yearFirst ? \"\".concat(viewYear + yearSuffix, \" \").concat(months[viewMonth]) : \"\".concat(months[viewMonth], \" \").concat(viewYear).concat(yearSuffix));\r\n this.$days.html(prevItems.join('') + items.join('') + nextItems.join(''));\r\n }\r\n };\r\n\r\n var CLASS_TOP_LEFT = \"\".concat(NAMESPACE, \"-top-left\");\r\n var CLASS_TOP_RIGHT = \"\".concat(NAMESPACE, \"-top-right\");\r\n var CLASS_BOTTOM_LEFT = \"\".concat(NAMESPACE, \"-bottom-left\");\r\n var CLASS_BOTTOM_RIGHT = \"\".concat(NAMESPACE, \"-bottom-right\");\r\n var CLASS_PLACEMENTS = [CLASS_TOP_LEFT, CLASS_TOP_RIGHT, CLASS_BOTTOM_LEFT, CLASS_BOTTOM_RIGHT].join(' ');\r\n\r\n var Datepicker = /*#__PURE__*/function () {\r\n function Datepicker(element) {\r\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\r\n\r\n _classCallCheck(this, Datepicker);\r\n\r\n this.$element = $(element);\r\n this.element = element;\r\n this.options = $.extend({}, DEFAULTS, LANGUAGES[options.language], $.isPlainObject(options) && options);\r\n this.$scrollParent = getScrollParent(element, true);\r\n this.built = false;\r\n this.shown = false;\r\n this.isInput = false;\r\n this.inline = false;\r\n this.initialValue = '';\r\n this.initialDate = null;\r\n this.startDate = null;\r\n this.endDate = null;\r\n this.init();\r\n }\r\n\r\n _createClass(Datepicker, [{\r\n key: \"init\",\r\n value: function init() {\r\n var $this = this.$element,\r\n options = this.options;\r\n var startDate = options.startDate,\r\n endDate = options.endDate,\r\n date = options.date;\r\n this.$trigger = $(options.trigger);\r\n this.isInput = $this.is('input') || $this.is('textarea');\r\n this.inline = options.inline && (options.container || !this.isInput);\r\n this.format = parseFormat(options.format);\r\n var initialValue = this.getValue();\r\n this.initialValue = initialValue;\r\n this.oldValue = initialValue;\r\n date = this.parseDate(date || initialValue);\r\n\r\n if (startDate) {\r\n startDate = this.parseDate(startDate);\r\n\r\n if (date.getTime() < startDate.getTime()) {\r\n date = new Date(startDate);\r\n }\r\n\r\n this.startDate = startDate;\r\n }\r\n\r\n if (endDate) {\r\n endDate = this.parseDate(endDate);\r\n\r\n if (startDate && endDate.getTime() < startDate.getTime()) {\r\n endDate = new Date(startDate);\r\n }\r\n\r\n if (date.getTime() > endDate.getTime()) {\r\n date = new Date(endDate);\r\n }\r\n\r\n this.endDate = endDate;\r\n }\r\n\r\n this.date = date;\r\n this.viewDate = new Date(date);\r\n this.initialDate = new Date(this.date);\r\n this.bind();\r\n\r\n if (options.autoShow || this.inline) {\r\n this.show();\r\n }\r\n\r\n if (options.autoPick) {\r\n this.pick();\r\n }\r\n }\r\n }, {\r\n key: \"build\",\r\n value: function build() {\r\n if (this.built) {\r\n return;\r\n }\r\n\r\n this.built = true;\r\n var $this = this.$element,\r\n options = this.options;\r\n var $picker = $(options.template);\r\n this.$picker = $picker;\r\n this.$week = $picker.find(selectorOf('week')); // Years view\r\n\r\n this.$yearsPicker = $picker.find(selectorOf('years picker'));\r\n this.$yearsPrev = $picker.find(selectorOf('years prev'));\r\n this.$yearsNext = $picker.find(selectorOf('years next'));\r\n this.$yearsCurrent = $picker.find(selectorOf('years current'));\r\n this.$years = $picker.find(selectorOf('years')); // Months view\r\n\r\n this.$monthsPicker = $picker.find(selectorOf('months picker'));\r\n this.$yearPrev = $picker.find(selectorOf('year prev'));\r\n this.$yearNext = $picker.find(selectorOf('year next'));\r\n this.$yearCurrent = $picker.find(selectorOf('year current'));\r\n this.$months = $picker.find(selectorOf('months')); // Days view\r\n\r\n this.$daysPicker = $picker.find(selectorOf('days picker'));\r\n this.$monthPrev = $picker.find(selectorOf('month prev'));\r\n this.$monthNext = $picker.find(selectorOf('month next'));\r\n this.$monthCurrent = $picker.find(selectorOf('month current'));\r\n this.$days = $picker.find(selectorOf('days'));\r\n\r\n if (this.inline) {\r\n $(options.container || $this).append($picker.addClass(\"\".concat(NAMESPACE, \"-inline\")));\r\n } else {\r\n $(document.body).append($picker.addClass(\"\".concat(NAMESPACE, \"-dropdown\")));\r\n $picker.addClass(CLASS_HIDE).css({\r\n zIndex: parseInt(options.zIndex, 10)\r\n });\r\n }\r\n\r\n this.renderWeek();\r\n }\r\n }, {\r\n key: \"unbuild\",\r\n value: function unbuild() {\r\n if (!this.built) {\r\n return;\r\n }\r\n\r\n this.built = false;\r\n this.$picker.remove();\r\n }\r\n }, {\r\n key: \"bind\",\r\n value: function bind() {\r\n var options = this.options,\r\n $this = this.$element;\r\n\r\n if ($.isFunction(options.show)) {\r\n $this.on(EVENT_SHOW, options.show);\r\n }\r\n\r\n if ($.isFunction(options.hide)) {\r\n $this.on(EVENT_HIDE, options.hide);\r\n }\r\n\r\n if ($.isFunction(options.pick)) {\r\n $this.on(EVENT_PICK, options.pick);\r\n }\r\n\r\n if (this.isInput) {\r\n $this.on(EVENT_KEYUP, $.proxy(this.keyup, this));\r\n }\r\n\r\n if (!this.inline) {\r\n if (options.trigger) {\r\n this.$trigger.on(EVENT_CLICK, $.proxy(this.toggle, this));\r\n } else if (this.isInput) {\r\n $this.on(EVENT_FOCUS, $.proxy(this.show, this));\r\n } else {\r\n $this.on(EVENT_CLICK, $.proxy(this.show, this));\r\n }\r\n }\r\n }\r\n }, {\r\n key: \"unbind\",\r\n value: function unbind() {\r\n var $this = this.$element,\r\n options = this.options;\r\n\r\n if ($.isFunction(options.show)) {\r\n $this.off(EVENT_SHOW, options.show);\r\n }\r\n\r\n if ($.isFunction(options.hide)) {\r\n $this.off(EVENT_HIDE, options.hide);\r\n }\r\n\r\n if ($.isFunction(options.pick)) {\r\n $this.off(EVENT_PICK, options.pick);\r\n }\r\n\r\n if (this.isInput) {\r\n $this.off(EVENT_KEYUP, this.keyup);\r\n }\r\n\r\n if (!this.inline) {\r\n if (options.trigger) {\r\n this.$trigger.off(EVENT_CLICK, this.toggle);\r\n } else if (this.isInput) {\r\n $this.off(EVENT_FOCUS, this.show);\r\n } else {\r\n $this.off(EVENT_CLICK, this.show);\r\n }\r\n }\r\n }\r\n }, {\r\n key: \"showView\",\r\n value: function showView(view) {\r\n var $yearsPicker = this.$yearsPicker,\r\n $monthsPicker = this.$monthsPicker,\r\n $daysPicker = this.$daysPicker,\r\n format = this.format;\r\n\r\n if (format.hasYear || format.hasMonth || format.hasDay) {\r\n switch (Number(view)) {\r\n case VIEWS.YEARS:\r\n $monthsPicker.addClass(CLASS_HIDE);\r\n $daysPicker.addClass(CLASS_HIDE);\r\n\r\n if (format.hasYear) {\r\n this.renderYears();\r\n $yearsPicker.removeClass(CLASS_HIDE);\r\n this.place();\r\n } else {\r\n this.showView(VIEWS.DAYS);\r\n }\r\n\r\n break;\r\n\r\n case VIEWS.MONTHS:\r\n $yearsPicker.addClass(CLASS_HIDE);\r\n $daysPicker.addClass(CLASS_HIDE);\r\n\r\n if (format.hasMonth) {\r\n this.renderMonths();\r\n $monthsPicker.removeClass(CLASS_HIDE);\r\n this.place();\r\n } else {\r\n this.showView(VIEWS.YEARS);\r\n }\r\n\r\n break;\r\n // case VIEWS.DAYS:\r\n\r\n default:\r\n $yearsPicker.addClass(CLASS_HIDE);\r\n $monthsPicker.addClass(CLASS_HIDE);\r\n\r\n if (format.hasDay) {\r\n this.renderDays();\r\n $daysPicker.removeClass(CLASS_HIDE);\r\n this.place();\r\n } else {\r\n this.showView(VIEWS.MONTHS);\r\n }\r\n\r\n }\r\n }\r\n }\r\n }, {\r\n key: \"hideView\",\r\n value: function hideView() {\r\n if (!this.inline && this.options.autoHide) {\r\n this.hide();\r\n }\r\n }\r\n }, {\r\n key: \"place\",\r\n value: function place() {\r\n if (this.inline) {\r\n return;\r\n }\r\n\r\n var $this = this.$element,\r\n options = this.options,\r\n $picker = this.$picker;\r\n var containerWidth = $(document).outerWidth();\r\n var containerHeight = $(document).outerHeight();\r\n var elementWidth = $this.outerWidth();\r\n var elementHeight = $this.outerHeight();\r\n var width = $picker.width();\r\n var height = $picker.height();\r\n\r\n var _$this$offset = $this.offset(),\r\n left = _$this$offset.left,\r\n top = _$this$offset.top;\r\n\r\n var offset = parseFloat(options.offset);\r\n var placement = CLASS_TOP_LEFT;\r\n\r\n if (isNaN(offset)) {\r\n offset = 10;\r\n }\r\n\r\n if (top > height && top + elementHeight + height > containerHeight) {\r\n top -= height + offset;\r\n placement = CLASS_BOTTOM_LEFT;\r\n } else {\r\n top += elementHeight + offset;\r\n }\r\n\r\n if (left + width > containerWidth) {\r\n left += elementWidth - width;\r\n placement = placement.replace('left', 'right');\r\n }\r\n\r\n $picker.removeClass(CLASS_PLACEMENTS).addClass(placement).css({\r\n top: top,\r\n left: left\r\n });\r\n } // A shortcut for triggering custom events\r\n\r\n }, {\r\n key: \"trigger\",\r\n value: function trigger(type, data) {\r\n var e = $.Event(type, data);\r\n this.$element.trigger(e);\r\n return e;\r\n }\r\n }, {\r\n key: \"createItem\",\r\n value: function createItem(data) {\r\n var options = this.options;\r\n var itemTag = options.itemTag;\r\n var item = {\r\n text: '',\r\n view: '',\r\n muted: false,\r\n picked: false,\r\n disabled: false,\r\n highlighted: false\r\n };\r\n var classes = [];\r\n $.extend(item, data);\r\n\r\n if (item.muted) {\r\n classes.push(options.mutedClass);\r\n }\r\n\r\n if (item.highlighted) {\r\n classes.push(options.highlightedClass);\r\n }\r\n\r\n if (item.picked) {\r\n classes.push(options.pickedClass);\r\n }\r\n\r\n if (item.disabled) {\r\n classes.push(options.disabledClass);\r\n }\r\n\r\n return \"<\".concat(itemTag, \" class=\\\"\").concat(classes.join(' '), \"\\\" data-view=\\\"\").concat(item.view, \"\\\">\").concat(item.text, \"\").concat(itemTag, \">\");\r\n }\r\n }, {\r\n key: \"getValue\",\r\n value: function getValue() {\r\n var $this = this.$element;\r\n return this.isInput ? $this.val() : $this.text();\r\n }\r\n }, {\r\n key: \"setValue\",\r\n value: function setValue() {\r\n var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\r\n var $this = this.$element;\r\n\r\n if (this.isInput) {\r\n $this.val(value);\r\n } else if (!this.inline || this.options.container) {\r\n $this.text(value);\r\n }\r\n }\r\n }], [{\r\n key: \"setDefaults\",\r\n value: function setDefaults() {\r\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\r\n $.extend(DEFAULTS, LANGUAGES[options.language], $.isPlainObject(options) && options);\r\n }\r\n }]);\r\n\r\n return Datepicker;\r\n }();\r\n\r\n if ($.extend) {\r\n $.extend(Datepicker.prototype, render, handlers, methods);\r\n }\r\n\r\n if ($.fn) {\r\n var AnotherDatepicker = $.fn.datepicker;\r\n\r\n $.fn.datepicker = function jQueryDatepicker(option) {\r\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\r\n args[_key - 1] = arguments[_key];\r\n }\r\n\r\n var result;\r\n this.each(function (i, element) {\r\n var $element = $(element);\r\n var isDestroy = option === 'destroy';\r\n var datepicker = $element.data(NAMESPACE);\r\n\r\n if (!datepicker) {\r\n if (isDestroy) {\r\n return;\r\n }\r\n\r\n var options = $.extend({}, $element.data(), $.isPlainObject(option) && option);\r\n datepicker = new Datepicker(element, options);\r\n $element.data(NAMESPACE, datepicker);\r\n }\r\n\r\n if (isString(option)) {\r\n var fn = datepicker[option];\r\n\r\n if ($.isFunction(fn)) {\r\n result = fn.apply(datepicker, args);\r\n\r\n if (isDestroy) {\r\n $element.removeData(NAMESPACE);\r\n }\r\n }\r\n }\r\n });\r\n return !isUndefined(result) ? result : this;\r\n };\r\n\r\n $.fn.datepicker.Constructor = Datepicker;\r\n $.fn.datepicker.languages = LANGUAGES;\r\n $.fn.datepicker.setDefaults = Datepicker.setDefaults;\r\n\r\n $.fn.datepicker.noConflict = function noConflict() {\r\n $.fn.datepicker = AnotherDatepicker;\r\n return this;\r\n };\r\n }\r\n\r\n})));\r\n\r\n\r\nfunction disableField(field) {\r\n console.log(field)\r\n}\r\n\r\ndisableField($('.datepicker'))","/*!\n * JavaScript Cookie v2.2.1\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader;\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction decode (s) {\n\t\treturn s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api() {}\n\n\t\tfunction set (key, value, attributes) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattributes = extend({\n\t\t\t\tpath: '/'\n\t\t\t}, api.defaults, attributes);\n\n\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t}\n\n\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\ttry {\n\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\tvalue = result;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\n\t\t\tvalue = converter.write ?\n\t\t\t\tconverter.write(value, key) :\n\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\n\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)\n\t\t\t\t.replace(/[\\(\\)]/g, escape);\n\n\t\t\tvar stringifiedAttributes = '';\n\t\t\tfor (var attributeName in attributes) {\n\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Considers RFC 6265 section 5.2:\n\t\t\t\t// ...\n\t\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t// character:\n\t\t\t\t// Consume the characters of the unparsed-attributes up to,\n\t\t\t\t// not including, the first %x3B (\";\") character.\n\t\t\t\t// ...\n\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t}\n\n\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t}\n\n\t\tfunction get (key, json) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar jar = {};\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all.\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\tdecode(cookie);\n\n\t\t\t\t\tif (json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tjar[name] = cookie;\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn key ? jar[key] : jar;\n\t\t}\n\n\t\tapi.set = set;\n\t\tapi.get = function (key) {\n\t\t\treturn get(key, false /* read as raw */);\n\t\t};\n\t\tapi.getJSON = function (key) {\n\t\t\treturn get(key, true /* read as json */);\n\t\t};\n\t\tapi.remove = function (key, attributes) {\n\t\t\tset(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.defaults = {};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n","$(document).ready(function() {\r\n\r\n // || $('.gallery__item.portrait').length > 0)\r\n\r\n// Dynamically load the gallery image into a reveal popup\r\n$('.gallery__item a').on('click', function (e) {\r\n\r\n\t\te.preventDefault();\r\n\r\n\t\tvar $clickedThumbnail = $(this);\r\n\r\n\t\tvar imagelink = $(this).attr('href');\r\n\t\tvar titletext = $(this).data('title');\r\n\r\nif (Cookies.get('hasSeenRotateMessage')) {\r\n\t\t// alert('seen');\r\n\t\tvar modal = 'Close Previous Next ';\r\n} else {\r\n\t\t// alert('not seen')\r\n\t\tvar modal = '
Close Previous Next ';\r\n}\r\n\r\n\tCookies.set('hasSeenRotateMessage', 'true', {expires: 1});\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\tvar $modal = $(modal);\r\n\r\n $('body').append($modal);\r\n\r\n\r\n\r\n $('.gallery-modal__close').on('click', function () {\r\n\t //$modal.foundation('reveal', 'close');\r\n\t $modal.remove();\r\n\r\n });\r\n\r\n\t\t\t\t$('.gallery-rotate__close').on('click', function () {\r\n\t\t\t\t\t$('.gallery-rotate').remove();\r\n\t\t\t\t});\r\n\r\n\r\n\r\n $('.gallery-modal__next').on('click', function () {\r\n\t //$modal.foundation('reveal', 'close');\r\n\t $modal.remove();\r\n\t if ( $clickedThumbnail.parent().next(':visible').length > 0 ) { // is the next thumb visible?\r\n\t\t $clickedThumbnail.parent().next(':visible').find('a').trigger('click');\r\n\t\t // $(document).foundation('equalizer', 'reflow');\r\n\t\t\t\t$(window).trigger('resize');\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t \t$(window).trigger('resize');\r\n\t\t\t\t}, 500);\r\n\t } else if ( $clickedThumbnail.parent().nextUntil(':visible').length > 0 ) { // no, so find the next visible one\r\n\t\t $clickedThumbnail.parent().nextAll(':visible').first().find('a').trigger('click');\r\n\t\t //$modal.foundation('reveal', 'close');\r\n\t }\r\n });\r\n\r\n $('.gallery-modal__prev').on('click', function () {\r\n\t //$modal.foundation('reveal', 'close');\r\n\t $modal.remove();\r\n\t if ( $clickedThumbnail.parent().prev(':visible').length > 0 ) { // is the previous thumb visible?\r\n\t\t $clickedThumbnail.parent().prev(':visible').find('a').trigger('click');\r\n\t\t // $(document).foundation('equalizer', 'reflow');\r\n\t\t\t\t$(window).trigger('resize');\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t \t$(window).trigger('resize');\r\n\t\t\t\t}, 500);\r\n\t } else if ( $clickedThumbnail.parent().prevUntil(':visible').length > 0 ) { // no, so find the next visible one that comes before this\r\n\t\t $clickedThumbnail.parent().prevAll(':visible').first().find('a').trigger('click');\r\n\t\t //$modal.foundation('reveal', 'close');\r\n\t }\r\n });\r\n return false;\r\n\t});\r\n\r\n\r\n\r\n\r\n\t// Filter the gallery items\r\n\tvar $_filterButtons = $('.gallery__filter-buttons button, .gallery__filter-buttons-mobile button');\r\n\tvar $_filterItems = $('.gallery__item');\r\n\r\n $_filterButtons.on('click', function() {\r\n\t if ($(this).hasClass('all')) {\r\n\t\t\t$('.gallery__filter-buttons button.on').removeClass('on');\r\n\t\t\t$(this).addClass('on');\r\n\t\t\t$_filterItems.fadeIn();\r\n\t\t\t//refreshMasonry();\r\n\t\t\tsetTimeout(function () {\r\n\t\t \t $('.gallery__grid').masonry();\r\n\t\t\t}, 500);\r\n\t\t return;\r\n\t }\r\n\r\n\t if ($(this).hasClass('on')) {\r\n\t\t $(this).removeClass('on');\r\n\t } else {\r\n\t\t $('.gallery__filter-buttons button.on').removeClass('on');\r\n\t\t $(this).addClass('on');\r\n\t }\r\n\r\n var currentCats = '';\r\n\r\n // Loop through the \"on\" buttons and build a class selector string of the active\r\n $_filterButtons.each(function() {\r\n if ($(this).hasClass('on')) {\r\n currentCats += '.' + $(this).data('category') + ', ';\r\n }\r\n });\r\n currentCats = currentCats.substr(0, currentCats.length - 2); // Remove the last comma and space from the string, otherwise jQuery borks\r\n\t\t\t\t// console.log(currentCats);\r\n // No categories selected so show them all\r\n if (currentCats == '.undefined') {\r\n\t\t\t$_filterItems.fadeIn();\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t \t $('.gallery__grid').masonry();\r\n\t\t\t\t}, 500);\r\n return;\r\n }\r\n\r\n\r\n\r\n // Hide or show the elements that match the class\r\n $_filterItems.each(function() {\r\n if ($(this).is(currentCats)) {\r\n $(this).fadeIn();\r\n } else {\r\n $(this).fadeOut();\r\n }\r\n\t\t});\r\n\r\n\t\tsetTimeout(function () {\r\n\t\t\tvar count = $('.gallery__item:visible').length;\r\n\t\t\t//alert (\"There are \" + count + \" divs.\");\r\n\r\n\t\t\tif (count > 3) {\r\n\t\t\t// if (count > 1) {\r\n\r\n\r\n\t \t //alert(\"more than 3... specificially \" + count);\r\n\r\n\t\t\t\t$('.gallery__grid').masonry();\r\n\r\n\t \t}\r\n\t\t\telse {\r\n\r\n\t\t\t\t//alert(\"less than 3... specificially \" + count);\r\n\r\n\t\t\t\t$('.gallery__item:visible').each(function() {\r\n\t\t $(this).removeAttr(\"style\");\r\n\t\t $(this).css('float','left');\r\n\t\t $('.gallery__grid').masonry( 'destroy' );\r\n\t\t\t\t});\r\n\r\n\t \t}\r\n\r\n\r\n\t\t}, 500);\r\n\r\n\r\n\t});\r\n\r\n\r\n\r\n\t// set masonry layout for visible items\r\n\r\n\tvar $grid = $('.gallery__grid').masonry({\r\n\t\tcolumnWidth: '.gallery__item-sizer',\r\n\t\t// itemSelector: '.gallery__item:not(.gallery__item--hidden)',\r\n\t\titemSelector: '.gallery__item',\r\n\t\tpercentPosition: true,\r\n\t\thorizontalOrder: false\r\n\t});\r\n\r\n\t$( window ).load( function() {\r\n\t\tsetTimeout(function () {\r\n\t\t $('.gallery__grid').masonry();\r\n\t\t}, 500);\r\n });\r\n\r\n\r\n\t//layout Masonry after each image loads\r\n\t$grid.imagesLoaded().progress( function() {\r\n\t $grid.masonry('layout');\r\n\t});\r\n\r\n\r\n\tvar refreshMasonry = function() {\r\n\t\tsetTimeout(function () {\r\n\t\t $('.gallery__grid').masonry();\r\n\t\t}, 500);\r\n\t};\r\n\r\n\t$('#load').click(function() {\r\n\t\t$('.gallery__grid .gallery__item').not(':visible').slice(0, 10).slideDown();\r\n\t\tsetTimeout(function () {\r\n\t\t $('.gallery__grid').masonry();\r\n\t\t}, 500);\r\n\r\n\t});\r\n\r\n\r\n\t$('button.all').click(function() {\r\n\t\tsetTimeout(function () {\r\n\t\t $('.gallery__grid').masonry();\r\n\t\t}, 500);\r\n\r\n\t});\r\n\r\n\r\n\t$('.gallery__filter-buttons .arrow-down').click(function() {\r\n\t\t$('.gallery__filter-buttons button').show();\r\n\t\t$('.gallery__filter-buttons .arrow-up').show();\r\n\t\t$(this).hide();\r\n\t});\r\n\r\n\t$('.gallery__filter-buttons .arrow-up').click(function() {\r\n\t\t$('.gallery__filter-buttons button').hide();\r\n\t\t$('.gallery__filter-buttons button.on').show();\r\n\t\t$('.gallery__filter-buttons .arrow-down').show();\r\n\t\t$(this).hide();\r\n\t});\r\n\r\n\t// display hidden gallery images\r\n\t// $('.gallery__load-more').on('click', function () {\r\n\t// \tvar btn = $(this);\r\n\t// \tvar galleryGrid = btn.prev('.gallery__grid');\r\n\t// \tvar hiddenGalleryItems = galleryGrid.find('.gallery__item--hidden');\r\n\r\n\t\t// show next 15 items\r\n\t\t// hiddenGalleryItems.slice(0, 15).fadeIn().promise().done(function () {\r\n\t\t// \t$(this).removeClass('gallery__item--hidden');\r\n\r\n\t\t\t// refresh masonry\r\n\t\t// \tgalleryGrid.masonry('reloadItems');\r\n\t\t// \tgalleryGrid.masonry('layout');\r\n\t\t// });\r\n\r\n\t\t// hide load more button if there is nothing more to load\r\n\t// \tif (hiddenGalleryItems.length <= 15) {\r\n\t// \t\tbtn.fadeOut();\r\n\t// \t}\r\n\t// });\r\n\r\n\t// Pre-filter the offers\r\n\t// Get the url parameters\r\n\tvar urlParams = {};\r\n\tvar e,\r\n\t\t\ta = /\\+/g, // Regex for replacing addition symbol with a space\r\n\t\t\tr = /([^&=]+)=?([^&]*)/g,\r\n\t\t\td = function(s) {\r\n\t\t\t\t\treturn decodeURIComponent(s.replace(a, ' '));\r\n\t\t\t},\r\n\t\t\tq = window.location.search.substring(1);\r\n\r\n\twhile ((e = r.exec(q))) urlParams[d(e[1])] = d(e[2]);\r\n\r\n\tif (urlParams['category']) {\r\n\t\t\t$('.gallery__filter-buttons button[data-category=\"' + urlParams['category'] + '\"]').trigger('click');\r\n\t}\r\n\r\n});\r\n\r\n$( window ).resize(function() {\r\n\tsetTimeout(function () {\r\n\t $('.gallery__grid').masonry();\r\n\t}, 500);\r\n\r\n});\r\n"],"sourceRoot":"/source/"}