{"version":3,"sources":["custom.js"],"names":["_typeof","o","Symbol","iterator","constructor","prototype","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","toPrimitive","call","TypeError","String","Number","lazyLoadInstance","$","jQuery","noConflict","debugMode","pageURL","window","location","href","split","LazyLoad","elements_selector","length","click","preventDefault","fancybox","globalWasAndroid","tagTrimFormFields","submitBtn","closest","find","each","$this","this","val","trim","is_touch_device","navigator","MaxTouchPoints","msMaxTouchPoints","get_browser","browserVersion","userAgent","browserCheck","match","browserDetails","test","name","version","exec","appName","appVersion","splice","setCookiesPopup","days","expireDate","Date","getTime","setDate","getDate","document","cookie","toString","getUrlParameter","urlParam","urlVars","decodeURIComponent","search","substring","paramName","undefined","usPhoneFormat","phoneNumber","country","toLowerCase","indexOf","_this","countryCode","phoneVal","formatPhone","phoneValue","phone","currCountry","replace","digits","join","on","key","setTimeout","uaString","ua","ismobile","wasmobile","iphoneTest","ipodTest","ipadTest","androidMobileTest","androidTest","ieMobileTest","windowsTest","blackberryTest","bb10Test","operaTest","firefoxTest","phabletTest","RegExp","getDeviceInfo","currentDevice","uaSplit","apple","ipod","tablet","device","android","windows","other","blackberry","blackberry10","opera","firefox","seven_inch","any","checkDeviceInfo","deviceInfo","Class","module","exports","define","amd","isMobile","ShareObj","facebook","args","open","encodeURIComponent","url","image","title","content","twitter","pinterest","socialShareItem","shareLink","$socialLink","data","socialArgs","rfMobile","rfMobileText","rfMobileList","rfMobileClose","hide","slideDown","show","slideUp","width","removeAttr","readMore","addClass","fadeIn","parent","removeClass","animate","scrollTop","position","top","moreLess","topTextHeight","outerHeight","css","moreText","text","lessText","readMoreHeight","height","toggle","parents","tabbedContentMoreLess","isOpen","franchiseTabHeight","tabScrollHeight","tabMenuHeight","mobileTabbedContent","hasClass","detaillistheight","load","sliderHeight","siblings","children","listHeight","unwrap","wrap","franchiseLocationList","listCount","$locationList","colClass","colCounts","Array","$items","itemsPer","Math","floor","remainder","h","append","j","k","last","stateTitle","first","before","prevTitle","prev","next","delay","remove","megaMenuMain","showMegaMenu","dropdown","ajaxAction","$dropdownMenu","ajaxData","action","ids","map","attr","get","wpml_lang","ajax","type","ajaxurl","headers","Pragma","cache","success","res","html","menuIndex","$menuPreview","subMenuFirstIndex","dropdownmenuheight","dropdownIpad","target","selectOptionReplace","body","$target","currentTarget","end","bsLightBox","stopPropagation","ekkoLightbox","onContentLoaded","lightboxWidth","promotionPopover","popover","placement","container","viewport","is","has","imageZoom","context","source","sourceOffset","offset","sourcePos","currPos","left","trigger","update","galleryModalSetup","post","result","hash","urlData","modalScroll","isIOS","platform","pop","scroll","stopVideoPlay","iframeSrc","selectCountryFormat","$countrySelect","customFormSetup","zipVal","textVal","bsCarouselSwipe","swipe","swipeLeft","carousel","swipeRight","threshold","addArrowFunctionality","addEventListener","parentElement","slick","createCarouselArrows","stage","customFunctionality","prevArrow","createElement","nextArrow","setAttribute","subroomCarousel","sliderMain","slideOffset","sliderNav","navSlides","isDraggable","firstSwipe","autoplaySpeed","parseInt","slice","accessibility","slidesToShow","slidesToScroll","fade","asNavFor","initialSlide","centerMode","adaptiveHeight","draggable","autoplay","lazyLoad","focusOnSelect","responsive","breakpoint","settings","arrows","event","currentSlide","slideIndex","slide","detailsCarousel","connectedModalCarousel","carouselMain","jcarousel","slideElement","carouselNav","carouselTarget","eq","index","jcarouselControl","modalWidth","innerWidth","viewportWidth","magazineCarousel","$carouselNav","navWidth","jcarouselAutoscroll","interval","autostart","testimonialsCarousel","$carousel","carouselWidth","jcarouselPagination","perPage","item","page","marketHeroCarousel","setInterval","clientStoryCarousel","ifr","src","showModal","galleryToShow","twentytwenty","templateID","modal","urlSlug","browserInfo","ready","scrollUp","scrollName","topDistance","topSpeed","animation","animationInSpeed","animationOutSpeed","scrollText","activeOverlay","dropdownData","toggleClass","menuLink","mouseover","substr","excerptHeight","className","reset","bind","checkbox","prop","charLimit","contents","textContent","trimmedContent","trimmedText","slideToggle","hover","onclick","mobileMenuSearch","querySelector","contains","keydown","keyCode","mouseleave","stop","fadeOut","not","stopImmediatePropagation","$modalBody","memberType","ajaxRequest","response","city","state","dataLayer","push","cityState","locationFinderTerm","urlVal","homeHeroSlider","sliderPrev","child","sliderStage","nextSlide","resize","clearTimeout","resizedFinished","navBarCollapse","lowerNav","classList","add","style","maxHeight","error","focus","mobileNavButton","mobileNavCloseButton","toggleMobileNav","mobileMenuOverlay","innerHeight","screen","orientation","angle","mobileNavDropDownButtons","forEach","mobileNavDropDownButton","parentNode","querySelectorAll","loadOpenState","li","controlText","concat","readyState","getAttribute","resizeFunc","mobileNavSubDropDownButtons","mobileNavSubDropDownButton","childNodes","display","mobileLocationFinder","mobileLocationFinderCloseButton","mobileLocationFinderOpenButton","mobileLocationForm","dataset","mobile","lastChild","UC_UI","showSecondLayer"],"mappings":"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","file":"../custom.js","sourcesContent":["const $ = jQuery.noConflict();\nconst debugMode = true;\n\n/* Global Scripts */\nconst pageURL = window.location.href.split('#');\n\n// Setup lazy load image script\nvar lazyLoadInstance; // global var for use in ajax calls\n\n(function () {\n lazyLoadInstance = new LazyLoad({\n elements_selector: '.lazy-load',\n });\n\n // Initialize fancybox for .gal-pop\n if ($('.gal-pop').length > 0) {\n // Prevents link from opening instead of modal\n $('.gal-pop').click(function (e) {\n e.preventDefault();\n });\n\n $('.gal-pop').fancybox();\n }\n})();\n\nvar globalWasAndroid = false;\n(function () {\n function uaCheck(uaString) {\n return (document.cookie.match('(^|; )' + uaString + '=([^;]*)') || 0)[2];\n }\n\n var ua = navigator.userAgent,\n ismobile = / mobile/i.test(ua),\n wasmobile = uaCheck('wasmobile') === 'was';\n\n if (ismobile && !wasmobile) {\n document.cookie = 'wasmobile=was';\n } else if (!ismobile && wasmobile) {\n globalWasAndroid = true;\n }\n})();\n\n(function () {\n var iphoneTest = /iPhone/i,\n ipodTest = /iPod/i,\n ipadTest = /iPad/i,\n androidMobileTest = /(?=.*\\bAndroid\\b)(?=.*\\bMobile\\b)/i,\n androidTest = /Android/i,\n ieMobileTest = /IEMobile/i,\n windowsTest = /(?=.*\\bWindows\\b)(?=.*\\bARM\\b)/i,\n blackberryTest = /BlackBerry/i,\n bb10Test = /BB10/i,\n operaTest = /Opera Mini/i,\n firefoxTest = /(?=.*\\bFirefox\\b)(?=.*\\bMobile\\b)/i,\n phabletTest = new RegExp('(?:Nexus 7|BNTV250|Kindle Fire|Silk|GT-P1000)', 'i');\n\n var getDeviceInfo = function (currentDevice) {\n var userAgent = currentDevice || navigator.userAgent,\n uaSplit = userAgent.split('[FBAN');\n\n if (undefined !== uaSplit[1]) {\n userAgent = uaSplit[0];\n }\n\n this.apple = {\n phone: iphoneTest.test(userAgent),\n ipod: ipodTest.test(userAgent),\n tablet: !iphoneTest.test(userAgent) && ipadTest.test(userAgent),\n device: iphoneTest.test(userAgent) || ipodTest.test(userAgent) || ipadTest.test(userAgent),\n };\n this.android = {\n phone: androidMobileTest.test(userAgent),\n tablet: !androidMobileTest.test(userAgent) && androidTest.test(userAgent),\n device: androidMobileTest.test(userAgent) || androidTest.test(userAgent),\n };\n this.windows = {\n phone: ieMobileTest.test(userAgent),\n tablet: windowsTest.test(userAgent),\n device: ieMobileTest.test(userAgent) || windowsTest.test(userAgent),\n };\n this.other = {\n blackberry: blackberryTest.test(userAgent),\n blackberry10: bb10Test.test(userAgent),\n opera: operaTest.test(userAgent),\n firefox: firefoxTest.test(userAgent),\n device:\n blackberryTest.test(userAgent) ||\n bb10Test.test(userAgent) ||\n operaTest.test(userAgent) ||\n firefoxTest.test(userAgent),\n };\n this.seven_inch = phabletTest.test(userAgent);\n this.any = this.apple.device || this.android.device || this.windows.device || this.other.device || this.seven_inch;\n this.phone = this.apple.phone || this.android.phone || this.windows.phone;\n this.tablet = this.apple.tablet || this.android.tablet || this.windows.tablet;\n\n return 'undefined' == typeof window ? this : undefined;\n };\n\n var checkDeviceInfo = function () {\n var deviceInfo = new getDeviceInfo();\n deviceInfo.Class = getDeviceInfo;\n return deviceInfo;\n };\n\n if ('undefined' != typeof module && module.exports && 'undefined' == typeof window) {\n module.exports = getDeviceInfo;\n } else if ('undefined' != typeof module && module.exports && 'undefined' != typeof window) {\n module.exports = checkDeviceInfo();\n } else if ('function' == typeof define && define.amd) {\n define('isMobile', [], (window.isMobile = checkDeviceInfo()));\n } else {\n window.isMobile = checkDeviceInfo();\n }\n})(this);\n\n/**\n * Trim text for form fields\n * @param {Object} submitBtn - The form button that was clicked\n */\nfunction tagTrimFormFields(submitBtn) {\n var $form = $(submitBtn).closest('form');\n\n $form.find('input[type=text]').each(function () {\n var $this = $(this);\n $this.val($this.val().trim());\n });\n\n if (debugMode) {\n console.log('tagTrimFormFields');\n }\n}\n\n/**\n * Check if the current device is touch enabled\n * @returns {boolean}\n */\nfunction is_touch_device() {\n if (debugMode) {\n console.log('is_touch_device');\n }\n return 'ontouchstart' in window || navigator.MaxTouchPoints > 0 || navigator.msMaxTouchPoints > 0;\n}\n\n/**\n * Checks the current browser type\n * @returns {Object} browserDetails.name - Browser name, browserDetails.version - Browser version\n */\nfunction get_browser() {\n var browserVersion,\n userAgent = navigator.userAgent,\n browserCheck = userAgent.match(/(opera|chrome|safari|firefox|msie|trident|edge|netscape(?=\\/))\\/?\\s*(\\d+)/i) || [],\n browserDetails = {};\n\n if (/trident/i.test(browserCheck[1])) {\n browserVersion = /\\brv[ :]+(\\d+)/g.exec(userAgent) || [];\n browserDetails = {\n name: 'IE',\n version: browserVersion[1] || '',\n };\n } else if (/msie/i.test(browserCheck[1])) {\n browserVersion = /\\brv[ :]+(\\d+)/g.exec(userAgent) || [];\n browserDetails = {\n name: 'IE',\n version: browserVersion[1] || '',\n };\n } else if (/edge/i.test(userAgent)) {\n browserVersion = /\\brv[ :]+(\\d+)/g.exec(userAgent) || [];\n browserDetails = {\n name: 'Edge',\n version: browserVersion[1] || '',\n };\n } else if (/netscape/i.test(browserCheck[1])) {\n browserVersion = /\\brv[ :]+(\\d+)/g.exec(userAgent) || [];\n browserDetails = {\n name: 'IE',\n version: browserVersion[1] || '',\n };\n } else if ('Chrome' === browserCheck[1] && null != (browserVersion = userAgent.match(/\\bOPR\\/(\\d+)/))) {\n browserDetails = {\n name: 'Opera',\n version: browserVersion[1],\n };\n } else {\n browserCheck = browserCheck[2]\n ? [browserCheck[1], browserCheck[2]]\n : [navigator.appName, navigator.appVersion, '-?'];\n\n if (null != (browserVersion = userAgent.match(/version\\/(\\d+)/i))) {\n browserCheck.splice(1, 1, browserVersion[1]);\n }\n\n browserDetails = {\n name: browserCheck[0],\n version: browserCheck[1],\n };\n }\n\n if (debugMode) {\n console.log('get_browser');\n }\n\n return browserDetails;\n}\n\n/**\n * Sets a browser cookie\n * @param {string} name - The name of the cookie to be stored\n * @param {string} value - The cookie data to be stored\n * @param {number} days - Number of days the cookie should persist for\n */\nfunction setCookiesPopup(name, value, days) {\n var expireDate = new Date(new Date().getTime());\n\n expireDate.setDate(expireDate.getDate() + days);\n document.cookie = name + '=' + value + ';expires=' + expireDate.toString() + ' ;path=/;';\n\n if (debugMode) {\n console.log('setCookiesPopup');\n }\n}\n\n/**\n * Get a url paramter by name\n * @param {string} urlParam - The name of the url parameter to retrieve\n * @returns {boolean|string} Either `true` or the value of the url paramter\n */\nfunction getUrlParameter(urlParam) {\n var pageUrl = decodeURIComponent(window.location.search.substring(1)),\n urlVars = pageUrl.split('&');\n\n var i;\n\n if (debugMode) {\n console.log('getUrlParameter');\n }\n\n for (i = 0; i < urlVars.length; i++) {\n var paramName = urlVars[i].split('=');\n\n if (paramName[0] === urlParam) {\n return paramName[1] === undefined ? true : paramName[1];\n }\n }\n}\n\n/**\n * Format phone numbers based on the user-selected country\n * @param {string} phoneNumber - Class identifier for the phone number to format\n * @param {string} country - Class identifier for the country field to check\n */\nfunction usPhoneFormat(phoneNumber, country) {\n const ua = navigator.userAgent.toLowerCase();\n const isAndroid = ua.indexOf('android') > -1;\n\n if (!isAndroid && !globalWasAndroid) {\n $(phoneNumber).each(function () {\n let countryCode = $(country).val();\n let phoneVal = $(this).val();\n\n const formatPhone = (phoneValue, phone, currCountry) => {\n if (currCountry === 'mx') {\n $(phone).val(phoneValue.replace(/[- )(]/g, ''));\n } else {\n const processedNumber = phoneValue.replace(/[- )(]/g, '');\n\n const digits = processedNumber.split('');\n\n digits.length >= 1 && digits.splice(0, 0, '(');\n digits.length >= 4 && digits.splice(4, 0, ') ');\n digits.length >= 8 && digits.splice(8, 0, '-');\n\n $(phone).val(digits.join(''));\n }\n };\n\n if (phoneVal !== null) {\n formatPhone(phoneVal, this, countryCode);\n }\n\n $(this).on('keydown', e => {\n if (e.key === 'Backspace' || e.key === 'Delete') {\n return;\n }\n setTimeout(() => {\n countryCode = $(country).val();\n phoneVal = $(this).val();\n if (phoneVal !== null) {\n formatPhone(phoneVal, this, countryCode);\n }\n });\n });\n\n $(this).on('focusout', () => {\n setTimeout(() => {\n countryCode = $(country).val();\n phoneVal = $(this).val();\n if (phoneVal !== null) {\n formatPhone(phoneVal, this, countryCode);\n }\n });\n });\n });\n }\n\n if (debugMode) {\n console.log('usPhoneFormat');\n }\n}\n\n/**\n * Social Media sharing functions\n */\nvar ShareObj = {\n /**\n * Facebook share url\n * @param {Object} args - Facebook sharing url parameters (title, url, image, content)\n */\n facebook: function (args) {\n if (debugMode) {\n console.log('ShareObj.facebook');\n }\n window.open(\n 'http://www.facebook.com/dialog/feed?app_id=110686678950994&link=' +\n encodeURIComponent(pageURL[0] + args.url) +\n '&picture=' +\n args.image +\n '&caption=' +\n encodeURIComponent(args.title) +\n '&description=' +\n encodeURIComponent(args.content) +\n '&message=' +\n encodeURIComponent(args.title) +\n '&redirect_uri=' +\n encodeURIComponent(pageURL[0] + args.url),\n '_blank',\n 'height=600,width=800'\n );\n },\n /**\n * Twitter share url\n * @param {Object} args - Twitter sharing url parameters (title, url)\n */\n twitter: function (args) {\n if (debugMode) {\n console.log('ShareObj.twitter');\n }\n window.open(\n 'https://twitter.com/intent/tweet?text=' +\n encodeURIComponent(args.title) +\n ' ' +\n encodeURIComponent(pageURL[0] + args.url) +\n '&hashtags=caclosets&via=caclosets',\n '_blank',\n 'height=600,width=800'\n );\n },\n /**\n * Pinterest share url\n * @param {Object} args - Pinterest sharing url parameters (image, content, url)\n */\n pinterest: function (args) {\n if (debugMode) {\n console.log('ShareObj.pinterest');\n }\n window.open(\n '//www.pinterest.com/pin/create/button/?media=' +\n args.image +\n '&description=' +\n args.content +\n '&url=' +\n encodeURIComponent(pageURL[0] + args.url),\n '_blank',\n 'height=600,width=800'\n );\n },\n};\n\n/**\n * Social media sharing function\n * Used in `onclick=` methods, it triggers @func ShareObj.{data-media},\n * and passes data attributes as arguments\n * @param {element} shareLink - The clicked anchor tag\n */\nfunction socialShareItem(shareLink) {\n var $socialLink = $(shareLink); // get clicked link element as jquery object\n\n if (typeof $socialLink.data('media') === 'undefined') {\n return; // exit if social media destination is undefined (should be facebook, twitter, etc)\n }\n\n var socialArgs = []; // build sharing args based on available data attributes\n if (typeof $socialLink.data('title') !== 'undefined') {\n socialArgs['title'] = $socialLink.data('title');\n }\n if (typeof $socialLink.data('image') !== 'undefined') {\n socialArgs['image'] = $socialLink.data('image');\n }\n if (typeof $socialLink.data('content') !== 'undefined') {\n socialArgs['content'] = $socialLink.data('content');\n }\n if (typeof $socialLink.data('url') !== 'undefined') {\n socialArgs['url'] = $socialLink.data('url');\n }\n\n ShareObj[$socialLink.data('media')](socialArgs); // trigger social sharing function based on data attr args\n\n if (debugMode) {\n console.log('socialShareItem');\n }\n}\n\n/* Formatting and other miscellaneous functionality */\n\n/**\n * Opens and closes mobile read more text\n */\nfunction rfMobile() {\n var rfMobileText = $('.rf-mobile-text'),\n rfMobileList = $('.rf-list'),\n rfMobileClose = $('.rf-close');\n\n rfMobileText.on('click', function () {\n $(this).hide();\n rfMobileList.slideDown(500);\n });\n\n rfMobileClose.on('click', function () {\n rfMobileText.show();\n rfMobileList.slideUp(500);\n });\n\n $(window).width() > 767 && rfMobileList.removeAttr('style');\n\n if (debugMode) {\n console.log('rfMobile');\n }\n}\n\n/**\n * Show and hide alternative read more text\n */\nfunction readMore() {\n $('a.btn-more').on('click', function (e) {\n e.preventDefault();\n\n $(this).hide();\n if ($(window).width() < 992) {\n $('.more-less p:not(:first)').addClass('toggle-ps');\n }\n $('.expanded-text').fadeIn();\n });\n\n $('a.btn-less').on('click', function (e) {\n e.preventDefault();\n\n $(this).parent().slideUp();\n\n if ($(window).width() < 992) {\n $('.more-less p:not(:eq(0))').removeClass('toggle-ps');\n }\n $('a.btn-more').fadeIn();\n $('html, body').animate(\n {\n scrollTop: $('.promotion-block').position().top,\n },\n 400\n );\n });\n\n if (debugMode) {\n console.log('readMore');\n }\n}\n\n/**\n * Top ten listing read more toggle\n * @todo fix / replace\n */\nfunction moreLess() {\n var topTextHeight = $('.top-design-content .top-text').outerHeight();\n $('.top-design-content .design-consultant').css('min-height', topTextHeight + 20);\n\n var collapsedHeight = 254,\n moreText = $('.btn-more-text').text(),\n lessText = $('.btn-less-text').text(),\n readMoreHeight = $('.topten-readmore').height();\n\n if (readMoreHeight >= $('.topten-readless').height() && 0 != readMoreHeight) {\n $('.topten-readmore').css('height', collapsedHeight).css('overflow', 'hidden');\n $('p.continued').removeClass('hide');\n $('a.btn-moreless').text(moreText);\n\n $('.btn-moreless').toggle(\n function () {\n $(this).parents('div:first').find('.topten-readmore').css('height', 'auto').css('overflow', 'visible');\n $(this).parents('div:first').find('p.continued').css('display', 'none');\n $(this).text(lessText);\n },\n function () {\n $(this).parents('div:first').find('.topten-readmore').css('height', collapsedHeight).css('overflow', 'hidden');\n $(this).parents('div:first').find('p.continued').css('display', 'block');\n $(this).text(moreText);\n }\n );\n }\n\n if (debugMode) {\n console.log('moreLess');\n }\n}\n\n/**\n * Franchise custom closet tab read more toggle\n * @todo check if related template files are used\n * this appears to never actually get triggered\n */\nfunction tabbedContentMoreLess() {\n var isOpen = false,\n moreText = $('.btn-more-text').text(),\n lessText = $('.btn-less-text').text(),\n readMoreHeight = $('.tabcontent-readmore').height();\n\n if (readMoreHeight >= $('.tabcontent-readless').height() && 0 != readMoreHeight) {\n $('a.btn-moreless').text(moreText);\n franchiseTabHeight();\n\n $('.btn-moreless').on('click tap', function () {\n if (isOpen == false) {\n $(this).text(lessText);\n $('.custom-closet-tabs').find('.tabcontent-readless').css('display', 'none');\n $('.custom-closet-tabs')\n .find('.tabcontent-readmore')\n .css('display', 'block')\n .css('height', 'auto')\n .css('overflow', 'visible');\n $('.custom-closet-tabs').find('.btn-moreless').text(lessText);\n isOpen = true;\n franchiseTabHeight();\n } else if (isOpen == true) {\n $(this).text(moreText);\n $('.custom-closet-tabs').find('.tabcontent-readmore').css('display', 'none');\n $('.custom-closet-tabs').find('.tabcontent-readless').css('display', 'block');\n $('.custom-closet-tabs').find('.btn-moreless').text(moreText);\n isOpen = false;\n franchiseTabHeight();\n }\n });\n }\n\n if (debugMode) {\n console.log('tabbedContentMoreLess');\n }\n}\n\n/**\n * Set Franchise custom closet tab height\n * @todo check if related template files are used\n * this appears to never actually get triggered\n */\nfunction franchiseTabHeight() {\n var tabScrollHeight = $('.custom-closet-tabs .tab .scroll-cont').height(),\n tabMenuHeight = $('.custom-closet-tabs .tabs-menu ul').height();\n\n if ($(window).width() < 767) {\n $('.custom-closet-tabs .tab .scroll-cont').css('min-height', tabMenuHeight);\n } else {\n $('.custom-closet-tabs .tabs-menu ul').css('height', tabScrollHeight + 50);\n }\n\n if (debugMode) {\n console.log('franchiseTabHeight');\n }\n}\n\n/**\n * Setup mobile accordion tabs\n */\nfunction mobileTabbedContent() {\n $('.mobile-tabbed-content .accordion').on('click tap', function () {\n if ($(this).hasClass('show_tab')) {\n $('.mobile-tabbed-content .accordion.show_tab').each(function () {\n $(this).removeClass('show_tab');\n });\n } else {\n $('.mobile-tabbed-content .accordion.show_tab').each(function () {\n $(this).removeClass('show_tab');\n });\n $(this).addClass('show_tab');\n }\n\n return false;\n });\n\n if (debugMode) {\n console.log('mobileTabbedContent');\n }\n}\n\n/**\n * Dynamically set .halfs-block style\n */\nfunction detaillistheight() {\n $(window).load(function () {\n if ($(window).width() >= 481 && $(window).width() <= 1025) {\n $('.halfs-block .halfs-description.col-sm-6').each(function () {\n var sliderHeight = $(this).siblings('.col-sm-6').children('.slick-slider.slider-for').height(),\n listHeight = $(this).find('ul').height();\n\n if ($(this).height() - listHeight + 50 > sliderHeight) {\n $(this).find('ul').unwrap().wrap('
');\n }\n });\n }\n });\n\n if (debugMode) {\n console.log('detaillistheight');\n }\n}\n\n/**\n * Arrange locations by state and sort into columns\n */\nfunction franchiseLocationList() {\n var listCount = ($('.location-list div.location-info-cont').length, 4),\n $locationList = $('.location-list'),\n childItems = 'div.location-info-cont, h3',\n colClass = 'col-sm-3';\n\n $locationList.each(function () {\n var colCounts = new Array(),\n $items = $(this).find(childItems),\n itemsPer = Math.floor($items.length / listCount),\n remainder = $items.length % listCount;\n\n for (h = 0; h < listCount; h++) {\n colCounts[h] = h < remainder ? itemsPer + 1 : itemsPer;\n }\n\n for (var h = 0; h < listCount; h++) {\n $(this).append($('
').addClass(colClass));\n\n for (var i = 0; i < colCounts[h]; i++) {\n for (var j = 0, k = 0; k < h; k++) {\n j += colCounts[k];\n }\n\n $(this)\n .find('.' + colClass)\n .last()\n .append($items[i + j]);\n }\n }\n });\n\n $('.location-list .col-sm-3 div.location-info-cont').each(function () {\n var stateTitle = $(this).find('p.state').first().text();\n $(this).before('

' + stateTitle + '

');\n });\n\n $('.location-list .col-sm-3 h3').each(function () {\n var prevTitle = $(this).prev().prev('h3').text();\n\n if ($(this).text() == prevTitle) {\n $(this).hide().addClass('hidden-title');\n }\n });\n\n $('.location-list div.col-sm-3').each(function () {\n var stateTitle = $(this).children().last().find('p.state');\n\n if ($(this).next().first().find('h3:first-child').text() == stateTitle.text()) {\n $(this).next().first().find('h3:first-child').addClass('top-title').append('(cont)');\n }\n });\n\n $('.location-list div.col-sm-3 h3.hidden-title').delay(1000).remove();\n\n if (debugMode) {\n console.log('franchiseLocationList');\n }\n}\n\n/* Menu functionality */\n\n/**\n * Enables mega menu functionality\n */\nfunction megaMenuMain() {\n const showMegaMenu = (dropdown, ajaxAction) => {\n const $dropdownMenu = dropdown.parent().children('ul.dropdown-menu');\n\n if ($dropdownMenu !== 'undefined' && !dropdown.hasClass('loaded')) {\n const menuIds = $dropdownMenu\n .find('a')\n .map(function () {\n return $(this).attr('data-index');\n })\n .get()\n .join(',');\n\n const ajaxData = {\n action: ajaxAction,\n ids: menuIds,\n wpml_lang: wpml_lang,\n };\n\n $.ajax({\n type: 'GET',\n url: ajaxurl,\n headers: {\n 'Cache-control': 'max-age=86400, public',\n Pragma: 'cache',\n },\n cache: true,\n data: ajaxData,\n success: function (res) {\n $('.mega-menu-loader').show();\n dropdown.parent().find('.megamenu-preview').html(res);\n dropdown.addClass('loaded');\n },\n });\n }\n };\n\n $('#mainMenu > .mobile-menu-lang-container > .nav > li.type1 > a.dropdown-toggle-main-menu').on(\n 'mouseover touchstart tap',\n function () {\n showMegaMenu($(this), 'megamenu_ids');\n }\n );\n\n $('#mainMenu > .mobile-menu-lang-container > .nav > li.type2 > a.dropdown-toggle-main-menu').on(\n 'mouseover touchstart tap',\n function () {\n showMegaMenu($(this), 'megamenu_ids');\n }\n );\n\n $('#mainMenu > .mobile-menu-lang-container > .nav > li.type4 > a.dropdown-toggle-main-menu').on(\n 'mouseover touchstart tap',\n function () {\n showMegaMenu($(this), 'inspiration_menu');\n }\n );\n\n $('#mainMenu > .mobile-menu-lang-container > .nav > li.type1 > a.dropdown-toggle-main-menu').on(\n 'mouseover touchstart tap',\n function () {\n showMegaMenu($(this), 'megamenu_ids');\n }\n );\n\n $('#mainMenu .type1 a, #mainMenu .type2 a, #mainMenu .type4 a').on('mouseover tap focus', function () {\n const menuIndex = $(this).attr('data-index');\n const $menuPreview = $('.megamenu-preview').find('.page-menu-item-wrap[data=\"' + menuIndex + '\"]');\n\n $(this).parents('.megamenu').find('.page-menu-item-wrap').addClass('hide');\n\n if (!$(this).parent().hasClass('not_first')) {\n $menuPreview.removeClass('hide');\n }\n });\n\n $('#mainMenu .type1 a, #mainMenu .type2 a, #mainMenu .type4 a').on('mouseout', function () {\n const menuIndex = $(this).attr('data-index');\n const subMenuFirstIndex = $(this).parents('.megamenu').find('.dropdown-submenu:first-child a').attr('data-index');\n\n $('.megamenu-preview')\n .find('.page-menu-item-wrap[data=\"' + menuIndex + '\"]')\n .addClass('hide');\n $('.megamenu-preview')\n .find('.page-menu-item-wrap[data=\"' + subMenuFirstIndex + '\"]')\n .removeClass('hide');\n });\n\n if (debugMode) {\n console.log('megaMenuMain');\n }\n}\n\n/**\n * Set menu dropdown height\n */\nfunction dropdownmenuheight() {\n $('.dropdown ul.dropdown-menu > li').each(function () {\n $(this).find(':eq(0)').height();\n $(this).find(':eq(3)').height();\n $('.megamenu-preview').height();\n });\n\n if (debugMode) {\n console.log('dropdownmenuheight');\n }\n}\n\n/**\n * Intended to ensure dropdowns work on tablet\n */\nfunction dropdownIpad() {\n if (isMobile && ((isMobile.apple && isMobile.apple.tablet) || (isMobile.android && isMobile.android.tablet))) {\n $('.nav.navbar-nav').addClass('touch');\n\n $('.nav.navbar-nav > li.dropdown > a').each(function (e) {\n var url = $(this).attr('href');\n\n $(this).attr('value', url).attr('href', 'javascript:void(0)');\n $(this).on('touchstart', function () {\n if ($(this).parent().hasClass('open')) {\n $(this).attr('href', url).removeAttr('value');\n window.location = url;\n } else {\n $(this).parents().find('.nav.navbar-nav').find('li.dropdown.open').removeClass('open');\n $(this).parent().addClass('open');\n }\n });\n });\n\n $('.nav.navbar-nav > li.dropdown > ul.dropdown-menu a').each(function () {\n var url = $(this).attr('href');\n\n $(this).attr('value', url).attr('href', 'javascript:void(0)');\n $(this).on('touchstart ', function () {\n window.location = url;\n });\n });\n\n $('body').on('tap', function (e) {\n if (!$(e.target).closest('.nav.navbar-nav > li.dropdown.open a').length > 0) {\n $('.nav.navbar-nav > li.dropdown').removeClass('open');\n $('.nav.navbar-nav > li.dropdown > ul.dropdown-menu a').removeClass('clicked');\n }\n });\n\n if (debugMode) {\n console.log('dropdownIpad');\n }\n }\n}\n\n/**\n * Toggle custom dropdown menu\n * @todo Check if this is actually in use anywhere\n */\nfunction selectOptionReplace() {\n $(document.body).on('click', '.top-info>.dropdown-menu li', function (e) {\n var $target = $(e.currentTarget);\n $target\n .closest('.btn-group')\n .find('[data-bind=\"label\"]')\n .text($target.text())\n .end()\n .children('.dropdown-toggle')\n .dropdown('toggle');\n\n return false;\n });\n\n if (debugMode) {\n console.log('selectOptionReplace');\n }\n}\n\n/* Modals / image galleries */\n\n$('#branded-video').on('shown.bs.modal', function (e) {\n // do something...\n var ifr = $('#branded-video').find('iframe');\n var src = ifr.attr('data-src');\n ifr.attr('src', src);\n});\n\n/**\n * Enables Ekko Lightbox on Client Story pages\n * @see https://ashleydw.github.io/lightbox/\n */\nfunction bsLightBox() {\n $('[data-toggle=\"lightbox\"]').click(function (e) {\n // Prevent link from opening\n e.preventDefault();\n e.stopPropagation();\n\n $(this).ekkoLightbox({\n type: 'image',\n onContentLoaded: function () {\n var lightboxWidth = $('.ekko-lightbox-container').find('img').width();\n lightboxWidth >= 660 && $('.ekko-lightbox .modal-dialog').css('max-width', lightboxWidth + 22);\n },\n });\n });\n\n if (debugMode) {\n console.log('bsLightBox');\n }\n}\n\n/**\n * Enables Bootstrap Popover on Promo Icons\n * @see https://getbootstrap.com/docs/3.3/javascript/#popovers\n */\nfunction promotionPopover() {\n $('[data-toggle=\"popover\"]')\n .popover({\n placement: 'bottom',\n container: 'body',\n viewport: '.promotion-icons, .container',\n html: true,\n content: function () {\n return $(this).next('.popover_content_wrapper').html();\n },\n })\n .on('click touchstart', function (e) {\n e.preventDefault();\n $(this).popover('toggle');\n });\n\n $('body')\n .on('click touchstart', '.popover .close', function () {\n $(this).parents('.popover').popover('hide');\n })\n .on('click touchstart', function (e) {\n $('[data-toggle=\"popover\"]').each(function () {\n if (!$(this).is(e.target) && 0 === $(this).has(e.target).length && 0 === $('.popover').has(e.target).length) {\n $(this).popover('hide');\n }\n });\n });\n\n if (debugMode) {\n console.log('promotionPopover');\n }\n}\n\n/**\n * Enables Bootstrap Popover on Material Details template pages\n * @see https://getbootstrap.com/docs/3.3/javascript/#popovers\n */\nfunction imageZoom() {\n $('.img-show').popover({\n placement: function (context, source) {\n var sourceOffset = $(source).offset().top,\n sourcePos = $(source).position(),\n currPos = 'bottom';\n\n if (sourceOffset - $(window).scrollTop() > 340) {\n currPos = 'top';\n } else if ($(window).width() > 991 && sourceOffset - $(window).scrollTop() > 120 && sourcePos.left > 415) {\n currPos = 'left';\n } else if ($(window).width() > 991 && sourceOffset - $(window).scrollTop() > 120 && sourcePos.left < 415) {\n currPos = 'right';\n }\n\n return currPos;\n },\n trigger: 'focus hover',\n html: true,\n content: function () {\n return $(this).next('.img-content-preview').html();\n },\n });\n\n $('body').on('click tap', function (e) {\n $('.img-show').each(function () {\n if ($(this).is(e.target) || 0 !== $(this).has(e.target).length || 0 !== $('.popover').has(e.target).length) {\n return;\n }\n\n $(this).popover('hide');\n });\n });\n\n $('.img-show').on('mouseenter', function () {\n $(this).parent().siblings().children('.img-show').popover('hide');\n $(this).popover('show');\n });\n\n $('.img-show').on('shown.bs.popover', function () {\n // update lazy load for ajax images\n if (lazyLoadInstance) {\n lazyLoadInstance.update();\n }\n });\n\n if (debugMode) {\n console.log('imageZoom');\n }\n}\n\n/**\n * Setup ajax gallery modals\n */\nfunction galleryModalSetup() {\n $('.our-gallery-open').on('click', function () {\n var rel = $(this).attr('rel'),\n data = $(this).attr('data'),\n ajaxData = 'galId=' + rel + '&action=get_gal_our_work&galuri=' + data;\n\n $.post(ajaxurl, ajaxData, function (result) {\n $('.modal-body').html(result);\n });\n });\n\n $(document).on('click', '.open-gallery', function () {\n $('.ajax-load-designer').html('');\n $('.loader-modal-img').show();\n\n var ajaxData =\n 'gal_id=' + $(this).attr('rel') + '&post_id=' + $(this).attr('data-post') + '&action=send_gallery_id';\n\n $.post(ajaxurl, ajaxData, function (result) {\n $('.ajax-load-designer').html(result);\n\n if (window.location.hash && window.location.hash.length > 4) {\n var urlData = window.location.hash.split('/');\n\n if ($('.carousel-navigation ul li').length > 1 && urlData.length > 1) {\n $('.carousel-navigation ul li:nth-child(' + urlData[2] + ')').click();\n }\n }\n\n $('.loader-modal-img').hide();\n });\n });\n\n $('.franchise-gallery-open').on('click', function () {\n $('.franchise-modal-body').html(' ');\n\n var rel = $(this).attr('rel'),\n ajaxData = 'gallery_id=' + rel + '&action=get_franchise_gal';\n\n $.post(ajaxurl, ajaxData, function (result) {\n $('.franchise-modal-body').html(result);\n\n if (window.location.hash && window.location.hash.length > 4) {\n var urlData = window.location.hash.split('/');\n\n if ($('.carousel-navigation ul li').length > 1 && urlData.length > 1) {\n $('.carousel-navigation ul li:nth-child(' + urlData[2] + ')').click();\n }\n }\n });\n });\n\n if (debugMode) {\n console.log('galleryModalSetup');\n }\n}\n\n/**\n * Presumably prevented an iOS issue at one point\n * @todo - Determine if this is still needed\n */\nfunction modalScroll() {\n function isIOS() {\n for (var i = ['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod']; i.length; ) {\n if (navigator.platform === i.pop()) return true;\n }\n\n return false;\n }\n\n var scrollTop = $(document).scrollTop();\n\n $(window).scroll(function () {\n scrollTop = $(document).scrollTop();\n });\n\n $('select')\n .on('focus', function () {\n if (isIOS()) {\n $('body').css({\n position: 'relative',\n top: -scrollTop,\n });\n $('html').css('overflow', 'hidden');\n }\n })\n .on('blur', function () {\n if (isIOS()) {\n $('body, html').removeAttr('style');\n $(document).scrollTop(scrollTop);\n }\n });\n\n if (debugMode) {\n console.log('modalScroll');\n }\n}\n\n/**\n * Reset iframe video when modal is closed\n */\nfunction stopVideoPlay() {\n $('.modal-body iframe').attr('src');\n\n $('.modal, .modal-content .close').on('click', function () {\n $('.modal-body iframe').each(function () {\n var iframeSrc = $(this).attr('src');\n $(this).attr('src', ' ');\n $(this).attr('src', iframeSrc);\n });\n });\n\n $('.modal-body').on('click', function (e) {\n e.stopPropagation();\n });\n\n if (debugMode) {\n console.log('stopVideoPlay');\n }\n}\n\n/**\n * Format phone number input field based on country code\n * @param {element} $countrySelect - A jQuery select element to style\n */\nfunction selectCountryFormat($countrySelect) {\n if ($countrySelect !== false && $countrySelect.val().length !== 0) {\n $countrySelect.css({\n 'border-color': '#333333',\n });\n }\n\n if ($(\".rfc-pop-up-form-container .rfc-inner form [name='country']\").length > 0) {\n usPhoneFormat(\n \".rfc-pop-up-form-container .rfc-inner form [name='phone']\",\n \".rfc-pop-up-form-container .rfc-inner form [name='country']\"\n );\n } else if ($('.rfc-pop-up-form-container .rfc-inner form #countryselector').length > 0) {\n usPhoneFormat(\n \".rfc-pop-up-form-container .rfc-inner form [name='phone']\",\n '.rfc-pop-up-form-container .rfc-inner form #countryselector'\n );\n }\n\n if ($(\".pop-up-form-container .rfc-section form [name='country']\").length > 0) {\n usPhoneFormat(\n \".pop-up-form-container .rfc-section form [name='phone']\",\n \".pop-up-form-container .rfc-section form [name='country']\"\n );\n } else if ($('.pop-up-form-container .rfc-section form #countryselector').length > 0) {\n usPhoneFormat(\n \".pop-up-form-container .rfc-section form [name='phone']\",\n '.pop-up-form-container .rfc-section form #countryselector'\n );\n }\n\n if ($('#request-form #request-country').length > 0) {\n usPhoneFormat('#request-form #request-phone', '#request-form #request-country');\n }\n\n if (debugMode) {\n console.log('selectCountryFormat');\n }\n}\n\n/**\n * Various form setup functionality\n */\nfunction customFormSetup() {\n $(\"[name='country']\").on('change', function () {\n selectCountryFormat($(this));\n });\n\n $('#request-country').on('change', function () {\n selectCountryFormat($(this));\n });\n\n var countryCode = $('.select-country-wrap select').val();\n\n if (countryCode) {\n var ajaxData = 'countryslug=' + countryCode + '&action=load_the_state&wpml_lang=' + wpml_lang;\n\n $.post(ajaxurl, ajaxData, function (result) {\n $('.select-state-wrap select').html(result);\n });\n }\n\n $('.select-country-wrap select').on('change', function () {\n var ajaxData = 'countryslug=' + $(this).val() + '&action=load_the_state&wpml_lang=' + wpml_lang;\n\n $.post(ajaxurl, ajaxData, function (result) {\n $('.select-state-wrap select').html(result);\n });\n\n return false;\n });\n\n $(\"[name='city_state_zip']\").on('keyup', function () {\n var zipVal = $(this)\n .val()\n .replace(/[^\\w]+/g, '');\n $('.step2 .zip input').val(zipVal);\n });\n\n $('.step1 textarea').on('keyup', function () {\n var textVal = $(this).val();\n $('.step2 textarea').val(textVal);\n });\n\n $(\".step1 [name='phone']\").on('keyup', function () {\n var phoneVal = $(this).val();\n $('.step2 .phonestep2').val(phoneVal);\n });\n\n if (debugMode) {\n console.log('customFormSetup');\n }\n}\n\n/* Carousels / Sliders */\n\n/**\n * Enable swipe functionality on Bootstrap Carousel\n */\nfunction bsCarouselSwipe() {\n $('.carousel-inner').swipe({\n swipeLeft: function () {\n $(this).parent().carousel('next');\n },\n swipeRight: function () {\n $(this).parent().carousel('prev');\n },\n threshold: 0,\n });\n\n $('.carousel-inner').each(function () {\n if ($(this).children('div').length === 1) {\n $(this).siblings('.carousel-control, .carousel-indicators').hide();\n }\n });\n\n if (debugMode) {\n console.log('bsCarouselSwipe');\n }\n}\n\n/**\n * Setup custom slick arrow functionality\n * @param {element} prev - The element to target as the previous arrow\n * @param {element} next - The element to target as the next arrow\n */\nfunction addArrowFunctionality(prev, next) {\n prev.addEventListener('click', function () {\n $(prev.parentElement).slick('slickPrev');\n });\n\n next.addEventListener('click', function () {\n $(next.parentElement).slick('slickNext');\n });\n\n if (debugMode) {\n console.log('addArrowFunctionality');\n }\n}\n\n/**\n * Generate custom slick arrows\n * @param {element} stage - The carousel element\n * @param {boolean} customFunctionality - If the arrows need to be custom initialized\n * @returns {Array} [next arrow object, previous arrow object]\n */\nfunction createCarouselArrows(stage, customFunctionality) {\n if (customFunctionality === undefined) {\n // set default for customFunctionality param in ie compatible manner\n customFunctionality = false;\n }\n\n var prevArrow = document.createElement('button');\n var nextArrow = document.createElement('button');\n\n prevArrow.setAttribute('class', 'slick-prev anim-arrows');\n prevArrow.setAttribute('name', 'Previous Slide');\n prevArrow.setAttribute('aria-label', 'Previous');\n\n nextArrow.setAttribute('class', 'slick-next anim-arrows');\n nextArrow.setAttribute('name', 'Next Slide');\n nextArrow.setAttribute('aria-label', 'Next');\n\n if (!customFunctionality) {\n addArrowFunctionality(prevArrow, nextArrow);\n }\n\n $(stage).append(prevArrow, nextArrow);\n\n if (debugMode) {\n console.log('createCarouselArrows');\n }\n\n return [nextArrow, prevArrow];\n}\n\n/**\n * Setup slick slider connected carousel for subrooms pages\n * @see https://kenwheeler.github.io/slick/\n */\nfunction subroomCarousel() {\n if (\n $('body').hasClass('page-template-template-homepage') ||\n $('body').hasClass('page-template-template-homepage-august') ||\n $('body').hasClass('page-template-tempate-landing-page-august-2017') ||\n $('body').hasClass('page-template-template-pandora-landing-page') ||\n $('body').hasClass('page-template-template-mariekondo-landing-page') ||\n $('body').hasClass('page-template-template-before-and-after-local-page')\n ) {\n return;\n }\n\n var sliderMain = '.slick-slider-stage';\n\n if ($(sliderMain).length == 0) {\n return;\n }\n\n var slideOffset = 0,\n sliderNav = '.slick-slider-nav',\n navSlides = $(sliderNav).find('.slick-slide'),\n isDraggable = 0 != $(sliderMain).data('draggable'),\n firstSwipe = 0 != $(sliderMain).data('first-item-swipe'),\n autoplaySpeed = 9000;\n\n if (window.location.hash && '#designers' != window.location.hash) {\n slideOffset = parseInt(window.location.hash.slice(8));\n }\n\n if ($(sliderMain).data('autoplay-speed')) {\n autoplaySpeed = $(sliderMain).data('autoplay-speed');\n }\n\n const prevArrow =\n '';\n const nextArrow =\n '';\n\n if (\n $('body.page-template-template_rooms_bedrooms_walkin').length > 0 ||\n $('.page-template-template-everyday-landing').length > 0\n ) {\n $(sliderMain).slick({\n accessibility: true,\n slidesToShow: 1,\n slidesToScroll: 1,\n fade: true,\n asNavFor: '.slick-slider-nav',\n initialSlide: slideOffset,\n centerMode: false,\n adaptiveHeight: false,\n draggable: isDraggable,\n swipe: isDraggable,\n prevArrow:\n '',\n nextArrow: '',\n autoplay: true,\n autoplaySpeed: autoplaySpeed,\n lazyLoad: 'progressive',\n });\n\n $(sliderNav).slick({\n accessibility: true,\n slidesToShow: 4,\n slidesToScroll: 1,\n asNavFor: '.slick-slider-stage',\n initialSlide: slideOffset,\n centerMode: false,\n focusOnSelect: false,\n prevArrow: prevArrow,\n nextArrow: nextArrow,\n lazyLoad: 'progressive',\n responsive: [\n {\n breakpoint: 480,\n settings: {\n slidesToShow: 2,\n },\n breakpoint: 992,\n settings: {\n slidesToShow: 3,\n },\n },\n ],\n });\n } else {\n $(sliderMain).slick({\n accessibility: true,\n slidesToShow: 1,\n slidesToScroll: 1,\n initialSlide: slideOffset,\n centerMode: false,\n adaptiveHeight: false,\n draggable: isDraggable,\n swipe: isDraggable,\n arrows: false,\n autoplay: true,\n autoplaySpeed: autoplaySpeed,\n lazyLoad: 'progressive',\n });\n\n $(sliderNav).slick({\n accessibility: true,\n slidesToShow: 4,\n slidesToScroll: 1,\n initialSlide: slideOffset,\n centerMode: false,\n focusOnSelect: false,\n prevArrow: prevArrow,\n nextArrow: nextArrow,\n lazyLoad: 'progressive',\n responsive: [\n {\n breakpoint: 480,\n settings: {\n slidesToShow: 2,\n },\n },\n ],\n });\n }\n\n // Slider Navigation Settings\n $(sliderMain).on('init', function () {\n createCarouselArrows(sliderMain);\n });\n\n if (!firstSwipe) {\n $('.carousel-stage.slick-slider .slick-prev').addClass('hide');\n\n $(sliderMain).on('afterChange', function (event, slick, currentSlide) {\n if (0 == currentSlide) {\n $('.carousel-stage.slick-slider .slick-prev').addClass('hide');\n } else {\n $('.carousel-stage.slick-slider .slick-prev').removeClass('hide');\n }\n });\n }\n\n $(sliderMain).on('beforeChange', function () {\n $('.carousel-stage.slick-slider .slick-next span').addClass('animate-arrow');\n $('.carousel-stage.slick-slider .slick-prev span').addClass('animate-arrow');\n\n setTimeout(function () {\n $('.carousel-stage.slick-slider .slick-next span').removeClass('animate-arrow');\n $('.carousel-stage.slick-slider .slick-prev span').removeClass('animate-arrow');\n }, 1500);\n });\n\n $(sliderNav).find('.slick-current').addClass('slick-goto');\n\n navSlides.on('click', function () {\n var slide = $(this),\n slideIndex = 0;\n\n if (!slide.attr('data-slick-index')) {\n slide = slide.parents('.slick-slide');\n }\n\n slideIndex = slide.attr('data-slick-index');\n\n $(sliderMain).slick('slickGoTo', slideIndex);\n navSlides.removeClass('slick-goto');\n });\n\n if (debugMode) {\n console.log('subroomCarousel');\n }\n}\n\n/**\n * Setup slick slider connected carousel for Material Details pages\n * @see https://kenwheeler.github.io/slick/\n */\nfunction detailsCarousel() {\n if ($('.slider-for').length == 0) {\n return false;\n }\n\n for (var i = 1; i <= $('.slider-for').length; i++) {\n var sliderMain = '.slider-for-' + i,\n sliderNav = '.slider-nav-' + i;\n\n $(sliderMain).slick({\n accessibility: true,\n slidesToShow: 1,\n slidesToScroll: 1,\n centerMode: false,\n arrows: true,\n prevArrow: '',\n nextArrow: '',\n lazyLoad: 'progressive',\n asNavFor: sliderNav,\n });\n\n $(sliderMain).on('init', function () {\n createCarouselArrows(sliderMain);\n });\n\n $(sliderNav).slick({\n accessibility: true,\n slidesToShow: 4,\n slidesToScroll: 1,\n asNavFor: sliderMain,\n centerMode: false,\n focusOnSelect: true,\n arrows: false,\n responsive: [\n {\n breakpoint: 480,\n settings: {\n slidesToShow: 2,\n },\n },\n ],\n });\n }\n\n if (debugMode) {\n console.log('detailsCarousel');\n }\n}\n\n/**\n * Setup jCarousel gallery modal carousel for Franchise and Designer pages\n * @see https://sorgalla.com/jcarousel/\n */\nfunction connectedModalCarousel() {\n var carouselMain = $('.gallery-modal .carousel-stage')\n .on('jcarousel:create', function () {\n $(this).jcarousel('scroll', slideElement, false);\n })\n .jcarousel();\n\n var carouselNav = $('.gallery-modal .carousel-navigation')\n .on('jcarousel:createend', function () {\n $(this).jcarousel('scroll', slideElement, false);\n })\n .jcarousel();\n\n carouselNav\n .jcarousel('items')\n .each(function () {\n var $this = $(this),\n carouselTarget = carouselMain.jcarousel('items').eq($this.index());\n\n $this\n .on('jcarouselcontrol:active', function () {\n carouselNav.jcarousel('scrollIntoView', this);\n $this.addClass('active');\n })\n .on('jcarouselcontrol:inactive', function () {\n $this.removeClass('active');\n })\n .jcarouselControl({\n target: carouselTarget,\n carousel: carouselMain,\n });\n })\n .on('jcarousel:reload jcarousel:create', function () {\n var modalWidth = $('.gallery-modal .modal-dialog').innerWidth() - 20;\n modalWidth /= modalWidth >= 600 ? 4 : 2;\n carouselNav.jcarousel('items').css('width', modalWidth + 'px');\n })\n .jcarousel();\n\n $('.gallery-modal .prev-stage')\n .on('jcarouselcontrol:inactive', function () {\n $(this).addClass('inactive');\n })\n .on('jcarouselcontrol:active', function () {\n $(this).removeClass('inactive');\n })\n .jcarouselControl({\n target: '-=1',\n });\n\n $('.gallery-modal .next-stage')\n .on('jcarouselcontrol:inactive', function () {\n $(this).addClass('inactive');\n })\n .on('jcarouselcontrol:active', function () {\n $(this).removeClass('inactive');\n })\n .jcarouselControl({\n target: '+=1',\n });\n\n $('.gallery-modal .prev-navigation')\n .on('jcarouselcontrol:inactive', function () {\n $(this).addClass('inactive');\n })\n .on('jcarouselcontrol:active', function () {\n $(this).removeClass('inactive');\n })\n .jcarouselControl({\n target: '-=1',\n });\n\n $('.gallery-modal .next-navigation')\n .on('jcarouselcontrol:inactive', function () {\n $(this).addClass('inactive');\n })\n .on('jcarouselcontrol:active', function () {\n $(this).removeClass('inactive');\n })\n .jcarouselControl({\n target: '+=1',\n });\n\n carouselMain.swipe({\n swipeLeft: function () {\n carouselMain.jcarousel('scroll', '+=1');\n },\n swipeRight: function () {\n carouselMain.jcarousel('scroll', '-=1');\n },\n });\n\n carouselNav.swipe({\n swipeLeft: function () {\n carouselNav.jcarousel('scroll', '+=1');\n },\n swipeRight: function () {\n carouselNav.jcarousel('scroll', '-=1');\n },\n });\n\n var viewportWidth = $(window).width();\n if (viewportWidth < 480) {\n $('.connected-carousels .carousel-stage > ul > li').css('width', viewportWidth - 70 + 'px');\n }\n\n if (debugMode) {\n console.log('connectedModalCarousel');\n }\n}\n\n/**\n * Setup jCarousel magazine logo carousel for Press & News\n * @see https://sorgalla.com/jcarousel/\n */\nfunction magazineCarousel() {\n var $carouselNav = $('.magazine .carousel-navigation');\n\n $carouselNav\n .on('jcarousel:reload jcarousel:create', function () {\n var navWidth = $carouselNav.innerWidth();\n navWidth /= navWidth >= 600 ? 4 : 2;\n $carouselNav.jcarousel('items').css('width', navWidth + 'px');\n })\n .jcarousel({\n wrap: 'circular',\n })\n .jcarouselAutoscroll({\n interval: 3000,\n target: '+=1',\n autostart: true,\n });\n\n $('.magazine .prev.prev-navigation').jcarouselControl({\n target: '-=1',\n });\n\n $('.magazine .next.next-navigation').jcarouselControl({\n target: '+=1',\n });\n\n $carouselNav.swipe({\n swipeLeft: function () {\n $carouselNav.jcarousel('scroll', '+=1');\n },\n swipeRight: function () {\n $carouselNav.jcarousel('scroll', '-=1');\n },\n });\n\n if (debugMode) {\n console.log('magazineCarousel');\n }\n}\n\n/**\n * Setup jCarousel testimonials carousel\n * @see https://sorgalla.com/jcarousel/\n */\nfunction testimonialsCarousel() {\n var $carousel = $('.testimonial-block .jcarousel'),\n carouselWidth = $carousel.innerWidth(),\n itemsPer = 1,\n itemsScroll = 1;\n\n $carousel\n .on('jcarousel:reload jcarousel:create', function () {\n $carousel.jcarousel('items').css('width', carouselWidth + 'px');\n })\n .jcarousel({\n wrap: 'circular',\n });\n\n $('.testimonial-block .jcarousel-pagination')\n .on('jcarouselpagination:active', 'a', function () {\n $(this).addClass('active');\n })\n .on('jcarouselpagination:inactive', 'a', function () {\n $(this).removeClass('active');\n })\n .on('click', function (e) {\n e.preventDefault();\n })\n .jcarouselPagination({\n perPage: itemsPer,\n item: function (page) {\n return '' + page + '';\n },\n });\n\n $('.testimonials-pagination>div.prev').jcarouselControl({\n target: '-=' + itemsScroll,\n });\n\n $('.testimonials-pagination>div.next').jcarouselControl({\n target: '+=' + itemsScroll,\n });\n\n $carousel.swipe({\n swipeLeft: function () {\n $carousel.jcarousel('scroll', '+=' + itemsScroll);\n },\n swipeRight: function () {\n $carousel.jcarousel('scroll', '-=' + itemsScroll);\n },\n });\n\n if (debugMode) {\n console.log('testimonialsCarousel');\n }\n}\n\n/**\n * Setup jCarousel Franchise hero carousel\n * @see https://sorgalla.com/jcarousel/\n */\nfunction marketHeroCarousel() {\n var $carousel = $('.franchise-hero-img .jcarousel'),\n carouselWidth = $carousel.innerWidth(),\n itemsPer = 1,\n itemsScroll = 1;\n\n $carousel\n .on('jcarousel:reload jcarousel:create', function () {\n $carousel.jcarousel('items').css('width', carouselWidth + 'px');\n })\n .jcarousel({\n wrap: 'circular',\n });\n\n $('.franchise-hero-img .jcarousel-pagination')\n .on('jcarouselpagination:active', 'a', function () {\n $(this).addClass('active');\n })\n .on('jcarouselpagination:inactive', 'a', function () {\n $(this).removeClass('active');\n })\n .on('click', function (e) {\n e.preventDefault();\n })\n .jcarouselPagination({\n perPage: itemsPer,\n item: function (page) {\n return '' + page + '';\n },\n });\n\n $('.testimonials-pagination>div.prev').jcarouselControl({\n target: '-=' + itemsScroll,\n });\n\n $('.testimonials-pagination>div.next').jcarouselControl({\n target: '+=' + itemsScroll,\n });\n\n $carousel.swipe({\n swipeLeft: function () {\n $carousel.jcarousel('scroll', '+=' + itemsScroll);\n },\n swipeRight: function () {\n $carousel.jcarousel('scroll', '-=' + itemsScroll);\n },\n });\n\n if ($('.franchise-hero-img .jcarousel').length > 0) {\n setInterval(function () {\n $('.franchise-hero-img .jcarousel').jcarousel('scroll', '+=1');\n }, 4000);\n }\n\n if (debugMode) {\n console.log('marketHeroCarousel');\n }\n}\n\n/**\n * Setup jCarousel Client Story carousel\n * @see https://sorgalla.com/jcarousel/\n */\nfunction clientStoryCarousel() {\n var $carouselNav = $('.client-story .carousel-navigation');\n\n $carouselNav\n .on('jcarousel:reload jcarousel:create', function () {\n var navWidth = $carouselNav.innerWidth();\n navWidth /= navWidth >= 600 ? 4 : 2;\n $carouselNav.jcarousel('items').css('width', navWidth + 'px');\n })\n .jcarousel({\n wrap: 'circular',\n });\n\n $('.client-story .prev.prev-navigation')\n .on('jcarouselcontrol:inactive', function () {\n $(this).addClass('inactive');\n })\n .on('jcarouselcontrol:active', function () {\n $(this).removeClass('inactive');\n })\n .jcarouselControl({\n target: '-=1',\n });\n\n $('.client-story .next.next-navigation')\n .on('jcarouselcontrol:inactive', function () {\n $(this).addClass('inactive');\n })\n .on('jcarouselcontrol:active', function () {\n $(this).removeClass('inactive');\n })\n .jcarouselControl({\n target: '+=1',\n });\n\n $carouselNav.swipe({\n swipeLeft: function () {\n $carouselNav.jcarousel('scroll', '+=1');\n },\n swipeRight: function () {\n $carouselNav.jcarousel('scroll', '-=1');\n },\n });\n\n if (debugMode) {\n console.log('clientStoryCarousel');\n }\n}\n\n/*\n * Initialize functionality / unnamed functions\n */\nvar showModal = getUrlParameter('show'),\n galleryToShow = getUrlParameter('gal'),\n slideElement = getUrlParameter('slide');\n\n$(window).on('load', function () {\n moreLess();\n tabbedContentMoreLess();\n mobileTabbedContent();\n\n if ($('.twentytwenty-container').length > 0) {\n $('.twentytwenty-container').twentytwenty();\n }\n\n if (showModal == true) {\n $('.gallery-modal').on('show.bs.modal', function () {\n var templateID = $('.template_id').val(),\n ajaxData = 'galId=' + galleryToShow + '&action=get_gal_our_work&galURI=' + templateID;\n\n $.post(ajaxurl, ajaxData, function (res) {\n $('.modal-body').html(res);\n });\n });\n\n $('.gallery-modal').modal('show');\n }\n\n $('.gallery-modal').on('hide.bs.modal', function () {\n parent.location.hash = '';\n showModal = getUrlParameter('show');\n galleryToShow = getUrlParameter('gal');\n slideElement = getUrlParameter('slide');\n });\n\n if (window.location.hash && window.location.hash.length > 4) {\n var urlSlug = window.location.hash;\n\n urlSlug = urlSlug.split('/');\n\n if ($('.franchise-gallery-open[rel=\"' + urlSlug[1] + '\"]').length > 0) {\n $('.franchise-gallery-open[rel=\"' + urlSlug[1] + '\"]').click();\n }\n\n if ($('.open-gallery[rel=\"' + urlSlug[1] + '\"]').length > 0) {\n $('.open-gallery[rel=\"' + urlSlug[1] + '\"]')[0].click();\n }\n }\n\n var browserInfo = get_browser();\n\n if ('IE' === browserInfo.name || 'Edge' === browserInfo.name) {\n if ($(window).width() > 768) {\n $('.location-finder p.location-found').css('font-size', '11px');\n $('.location-finder p.location-found a.market-name').css('font-size', '12px');\n $('.location-finder p.location-found a.lf-change').css('font-size', '11px');\n }\n\n $('.hero-text-wrapper').css('max-height', '195px');\n $('.franchise-hero-img').css('margin-top', '-21px');\n }\n\n setTimeout(function () {\n $('.btn-request').removeAttr('disabled');\n }, 0);\n});\n\n$(document).ready(function () {\n 'use strict';\n\n customFormSetup();\n galleryModalSetup();\n franchiseLocationList();\n // dropdownIpad();\n detaillistheight();\n\n if (\n $('.page-template-tempate-landing-page-august-2017').length === 0 &&\n $('.page-template-template-everyday-landing').length === 0 &&\n $('.page-template-template-2020-paid-landing').length === 0\n ) {\n setTimeout(function () {\n if ($('#showroom-id[name=\"showroom_id\"]').val()) {\n $('#country').hide();\n $('label[for=\"country\"]').hide();\n } else {\n $('#country').show();\n $('label[for=\"country\"]').show();\n }\n }, 500);\n\n $('#showroom-id[name=\"showroom_id\"]').on('change', function () {\n if ($(this).val()) {\n $('#country').hide();\n $('label[for=\"country\"]').hide();\n } else {\n $('#country').show();\n $('label[for=\"country\"]').show();\n }\n });\n\n modalScroll();\n megaMenuMain();\n promotionPopover();\n selectOptionReplace();\n imageZoom();\n bsCarouselSwipe();\n readMore();\n stopVideoPlay();\n\n $.scrollUp({\n scrollName: 'scrollUp',\n topDistance: '300',\n topSpeed: 300,\n animation: 'fade',\n animationInSpeed: 200,\n animationOutSpeed: 200,\n scrollText:\n 'Scroll up',\n activeOverlay: false,\n });\n\n bsLightBox();\n\n // delay initializing to fix issue with deferred css loading\n setTimeout(function () {\n detaillistheight();\n subroomCarousel();\n detailsCarousel();\n connectedModalCarousel();\n magazineCarousel();\n testimonialsCarousel();\n marketHeroCarousel();\n clientStoryCarousel();\n rfMobile();\n }, 1500);\n } else if ($('.page-template-template-everyday-landing').length > 0) {\n selectOptionReplace();\n stopVideoPlay();\n\n $.scrollUp({\n scrollName: 'scrollUp',\n topDistance: '300',\n topSpeed: 300,\n animation: 'fade',\n animationInSpeed: 200,\n animationOutSpeed: 200,\n scrollText:\n 'Scroll up',\n activeOverlay: false,\n });\n\n setTimeout(function () {\n megaMenuMain();\n subroomCarousel();\n }, 1500);\n } else if ($('.page-template-template-2020-paid-landing').length > 0) {\n setTimeout(function () {\n megaMenuMain();\n }, 1500);\n }\n\n $('.custom-closet-tabs .tab-content').hide();\n\n if ($(window).width() >= 768) {\n $('.navbar-nav > li.dropdown > a').each(function () {\n $(this).on('hover ', function () {\n var dropdownData = $(this)\n .next('ul.dropdown-menu.megamenu')\n .find('li.dropdown-submenu:nth-child(1) > a.dropdown-toggle-main-menu')\n .attr('data');\n\n $(this)\n .next('ul.dropdown-menu.megamenu')\n .find('li.megamenu-preview div[data=\"' + dropdownData + '\"]')\n .removeClass('hide');\n });\n });\n\n $('.navbar-nav > li.dropdown > ul.dropdown-menu.megamenu.dropdown .dropdown-submenu').each(function () {\n var dropdownData = $(this)\n .parents('ul.dropdown-menu.megamenu.dropdown')\n .find('li.dropdown-submenu:nth-child(1) > a.dropdown-toggle-main-menu')\n .addClass('first-preview')\n .attr('data');\n\n $('li.megamenu-preview div[data=\"' + dropdownData + '\"]').addClass('preview');\n\n $(this).on('mouseleave', function () {\n $(this)\n .parent('ul.dropdown-menu.megamenu.dropdown')\n .find('li.megamenu-preview div[data=\"' + dropdownData + '\"]')\n .toggleClass('hide');\n });\n\n var menuLink = $(this).find('a');\n\n $(menuLink).on('mouseenter', function () {\n if (!$(menuLink).hasClass('first-preview', 'dropdown-toggle')) {\n $(this)\n .parents('ul.dropdown-menu.megamenu.dropdown')\n .find('li.megamenu-preview div[data=\"' + dropdownData + '\"]')\n .addClass('hide');\n }\n });\n });\n\n $('.custom-closet-tabs #tab-0.tab-content').show();\n }\n\n $('.navbar-nav > .menu-item a').mouseover(function () {\n if (!is_touch_device()) {\n $('.navbar-nav > .menu-item > ul').css('display', '');\n }\n });\n\n if ($('.cta-newsletter-content p.signup-label').height() > 40) {\n $('.cta-newsletter-content').addClass('longl');\n }\n\n $('.meet-team-franchise a[href=\"#\"]').hide();\n\n $('.excerpt-wrapper p').each(function () {\n $(this).text(function (index, text) {\n return $(this).text().length > 150 ? text.substr(0, 150) + '...' : text.substr(0, 150);\n });\n\n setTimeout(function () {\n var excerptHeight = 0;\n\n $('.excerpt-wrapper').each(function () {\n if ($(this).height() > excerptHeight) {\n excerptHeight = $(this).height();\n }\n\n $(this).css('position', 'relative');\n });\n\n $('.excerpt-wrapper').height(excerptHeight);\n $('.excerpt-wrapper a.read-more').css('position', 'absolute').css('bottom', '5px');\n }, 1000);\n });\n\n $('.location-input-container').append('
x
');\n\n $('.location-input-container .close').click(function () {\n $('header.site-header').removeClass('mobile-opened');\n });\n\n $('body').on('click tap', function (e) {\n if (\n !$(e.target).parents('.location-input-container').length &&\n !$(e.target).parents('.pac-container').length &&\n 'location-input-container' !== e.target.className\n ) {\n $('header.site-header').removeClass('mobile-opened');\n }\n });\n\n $('.location-title').click(function () {\n if ($(window).width() < 768) {\n $('.location-search-wrap').parent().toggleClass('mobile-location');\n $('.location-search-wrap').parents('.site-header').toggleClass('mobile-opened');\n }\n });\n\n $('.navbar-toggle').click(function () {\n if ($(window).width() < 768) {\n $('header.site-header').removeClass('mobile-opened');\n }\n });\n\n $('.clear-form a').click(function () {\n $('.contact-info')[0].reset();\n $('.visit-type').removeClass('checked');\n $('.visit-type.textarea').slideUp();\n });\n\n $('.room-select .visit-type').bind('click', function (e) {\n var checkbox = $(this).find('input:checkbox');\n\n if ($(e.target).is('input:checkbox') && $(checkbox).is(':checked')) {\n $(this).addClass('checked');\n } else if ($(e.target).is('input:checkbox')) {\n $(this).removeClass('checked');\n } else if ($(checkbox).is(':checked')) {\n $(this).find('input:checkbox').prop('checked', false);\n $(this).removeClass('checked');\n } else {\n $(this).find('input:checkbox').prop('checked', true);\n $(this).addClass('checked');\n }\n });\n\n $('.visit-type.other').bind('click', function () {\n if ($(this).find('input:checkbox').is(':checked')) {\n $(this).find('input:checkbox').parent().addClass('checked').next().slideDown();\n } else {\n $(this).find('input:checkbox').parent().removeClass('checked').next().slideUp();\n }\n });\n\n $('.room-select .visit-type input:checkbox').each(function () {\n if ($(this).is(':checked')) {\n $(this).parent().addClass('checked');\n $('.visit-type.textarea').slideDown();\n } else {\n $(this).parent().removeClass('checked');\n }\n });\n\n $('.optionbox span.subscribe-to-box').bind('click', function () {\n if ($(this).hasClass('checked')) {\n $(this)\n .parents('.optionbox')\n .children('span.no')\n .addClass('checked')\n .find('input:checkbox')\n .attr('checked', true);\n\n $(this).find('input:checkbox').attr('checked', false);\n $(this).removeClass('checked');\n } else {\n $(this)\n .parents('.optionbox')\n .children('span.no')\n .removeClass('checked')\n .find('input:checkbox')\n .attr('checked', false);\n\n $(this).addClass('checked').find('input:checkbox').attr('checked', true);\n }\n });\n\n $('.optionbox span.no').bind('click', function () {\n if ($(this).hasClass('checked')) {\n $(this)\n .parents('.optionbox')\n .children('span.subscribe-to-box')\n .addClass('checked')\n .find('input:checkbox')\n .attr('checked', true);\n\n $(this).find('input:checkbox').attr('checked', false);\n $(this).removeClass('checked');\n } else {\n $(this)\n .parents('.optionbox')\n .children('span.subscribe-to-box')\n .removeClass('checked')\n .find('input:checkbox')\n .attr('checked', false);\n\n $(this).addClass('checked').find('input:checkbox').attr('checked', true);\n }\n });\n\n $('.optionbox span.no input:checkbox').attr('checked', false);\n $('.optionbox span.subscribe-to-box input:checkbox').attr('checked', true);\n\n $('.read-more-hide').each(function () {\n if ($(this).parents('.read-more-mobile-only').length < 1 || $(window).width() < 768) {\n var charLimit = 400;\n\n $(this).find('p').contents().unwrap();\n\n var textContent = $(this).html();\n\n if (textContent.length > charLimit) {\n var trimmedText = textContent.substr(0, charLimit),\n endText = textContent.substr(charLimit, textContent.length - charLimit);\n\n var trimmedContent =\n trimmedText +\n '... ' +\n '' +\n endText +\n '' +\n '  ';\n\n $(this).html(trimmedContent);\n } else {\n $(this).next('.read-more').hide();\n }\n }\n });\n\n $('.read-more').click(function () {\n if ($(this).prev('.read-more-hide').hasClass('less')) {\n $(this).prev('.read-more-hide').removeClass('less');\n } else {\n $(this).prev('.read-more-hide').addClass('less');\n }\n\n $(this).toggleClass('opened');\n $(this).prev('.read-more-hide').find('.moreellipses').toggle();\n\n $(this)\n .prev('.read-more-hide')\n .find('.morecontent')\n .slideToggle('medium', function () {\n if ($(this).is(':visible')) {\n $(this).css('display', 'inline');\n }\n });\n });\n\n $('.faq-qa-row .question-line').each(function () {\n $(this).click(function () {\n $(this).next().slideToggle(250);\n $(this).find('.faq-btn').toggleClass('opened');\n });\n });\n\n $('.navbar-nav .dropdown a').hover(function () {\n if ($(window).width() > 768) {\n dropdownmenuheight();\n }\n });\n\n document.onclick = function (e) {\n const mobileMenuSearch = document.querySelector('.mobile-menu-search');\n if (mobileMenuSearch && !mobileMenuSearch.contains(e.target)) {\n $('.mobile-menu-search').removeClass('open');\n }\n };\n\n // $('.mobile-menu-search .open-search').click(event => {\n // if ($(window).width() > 767) {\n // if ($('.mobile-menu-search').hasClass('open')) {\n // $('.mobile-menu-search').removeClass('open');\n // } else {\n // $('.mobile-menu-search').addClass('open');\n // }\n // $('#s').focus();\n // }\n // });\n\n $('.mobile-menu-search div .open-search').keydown(function (e) {\n if (e.keyCode === 13 || e.keyCode === 32) {\n $('.mobile-menu-search div .open-search').click();\n return false;\n }\n });\n\n $('.navbar-nav .dropdown a').mouseleave(function () {\n if ($(window).width() > 768 && $(this).siblings('.dropdown-menu').hasClass('mega')) {\n $(this).stop(false, false).fadeOut('fast');\n setTimeout(function () {\n $('.dropdown-menu').removeAttr('style');\n }, 500);\n }\n });\n\n // $('li.dropdown-submenu a span').each(function () {\n // $(this).click(function () {\n // console.log(this);\n // if ($(this).parent().hasClass('open')) {\n // $('.dropdown-submenu ul.dropdown-menu.active').removeClass('active');\n // $('.dropdown-submenu .dropdown-toggle-main-menu.open').removeClass('open');\n // $(this).parent().removeClass('active');\n // $(this).parent().next().removeClass('open');\n // } else {\n // $('.dropdown-submenu ul.dropdown-menu.active').removeClass('active');\n // $('.dropdown-submenu .dropdown-toggle-main-menu.open').removeClass('open');\n // $(this).parent().addClass('open');\n // $('ul.dropdown-submenu').removeClass('active');\n // $(this).parent().next().addClass('active');\n // }\n\n // return false;\n // });\n // });\n\n $('.tabs-menu a').click(function (e) {\n e.preventDefault();\n\n var href = $(this).attr('href');\n\n $(this).parent().addClass('active');\n $(this).parent().siblings().removeClass('active');\n\n $('.tab-content').not(href).css('display', 'none'), $(href).fadeIn(), franchiseTabHeight();\n });\n\n $(document).on('touchstart', '.modal', function (e) {\n if ($('body').hasClass('modal-open')) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n\n return false;\n }\n });\n\n $('.member-description .team-read-more--desktop').on('click', function (e) {\n e.preventDefault();\n e.stopPropagation();\n\n var $modalBody = $('.team-member-modal .modal-body');\n var memberType = $('.pers-type').val();\n var ajaxRequest = 'member_id=' + $(this).attr('rel') + '&action=load_member_modal&type=' + memberType;\n\n $modalBody.html('');\n\n $.post(ajaxurl, ajaxRequest, function (response) {\n $modalBody.html(response);\n $('#team-member-modal').modal('show');\n });\n });\n\n $('.member_responsive .team-read-more').on('click', function (e) {\n e.preventDefault();\n\n $(this).fadeOut('400', function () {\n // Wait til fadeout completes\n $(this)\n .parent()\n .find('.expanded-text')\n .each(function () {\n $(this).fadeIn();\n });\n });\n });\n\n $('.member_responsive .team-read-less').on('click', function (e) {\n e.preventDefault();\n\n $(this)\n .parent()\n .fadeOut('400', function () {\n // Wait til fadeout completes\n $('a.team-read-more').fadeIn();\n });\n });\n\n $('select[name=\"state\"]').on('change', function () {\n var city = $('input[name=\"city\"]').val(),\n state = $(this).val();\n\n if (state) {\n dataLayer.push({\n cityState: city ? city + ', ' + state : state,\n });\n }\n });\n\n $('html').on('click', '.location-finder form[name=\"lf-form\"] button', function () {\n dataLayer.push({\n event: 'locationFinder',\n locationFinderTerm: $('.location-finder input[name=\"lf\"].lf').val(),\n });\n });\n\n $('.consultation-search-button').on('click', function (e) {\n e.preventDefault();\n\n $(this).parent().slideUp(250);\n $('.consultation-search-form').slideDown(550);\n });\n\n if ($('.cookie-location').length > 0) {\n $('.top-nav').addClass('selected-location');\n }\n\n $('.cookie-location').on('click', function (e) {\n e.preventDefault();\n\n $(this).slideUp(250);\n $('.location-finder.change').fadeIn();\n });\n\n $('.showroom-search .showroom-cookie a').on('click', function (e) {\n // e.preventDefault();\n\n $('.showroom-search .showroom-finder.change').fadeIn(150).css('display', 'table-cell');\n // $(this).parent().fadeOut(100);\n });\n\n $('.aside-showroom-search .showroom-cookie a').on('click', function (e) {\n e.preventDefault();\n\n $('.aside-showroom-search .showroom-finder.change').fadeIn(150);\n $(this).parent().fadeOut(100);\n });\n\n $('.faq-showroom-search .showroom-cookie a').on('click', function (e) {\n e.preventDefault();\n\n $('.faq-showroom-search .showroom-finder.change').fadeIn(150);\n $(this).parent().hide();\n });\n\n if ($(window).width() < 768 && $(window).scrollTop() > 0) {\n $('body').hasClass('not-small') || $('body').addClass('fixed-mobile');\n } else if ($(window).width() < 768) {\n $('body').removeClass('fixed-mobile');\n } else {\n $('.about_location_request_wrapper a').attr('href', 'javascript:;');\n }\n\n $('.room_filter_client_stories').on('change', function () {\n var roomID = $(this).val(),\n ajaxData = 'roomId=' + roomID + '&action=filter_client_stories';\n\n $('.filter-loader').show();\n\n $.post(ajaxurl, ajaxData, function (res) {\n $('.filter_load').html(res);\n $('.filter-loader').hide();\n });\n\n return false;\n });\n\n var urlVal = window.location.hash.substr(1);\n\n if (urlVal) {\n var ajaxData = 'roomId=' + urlVal + '&action=filter_client_stories';\n $('.room_filter_client_stories').val(urlVal);\n\n $('.filter-loader').show();\n\n $.post(ajaxurl, ajaxData, function (res) {\n $('.filter_load').html(res);\n $('.filter-loader').hide();\n });\n }\n\n if ($('body').is('.page-template-template-homepage, .page-template-template-homepage-august')) {\n var homeHeroSlider = '.hero-slider-section .connected-carousels .slick-slider-stage';\n var sliderPrev = '.hero-slider-section .carousel-stage.slick-slider .slick-prev';\n\n $(homeHeroSlider).slick({\n accessibility: true,\n slidesToShow: 1,\n slidesToScroll: 1,\n initialSlide: 0,\n centerMode: false,\n adaptiveHeight: false,\n draggable: false,\n swipe: false,\n arrows: false,\n autoplay: true,\n autoplaySpeed: 5000,\n });\n\n $(homeHeroSlider).on('init', function () {\n $(sliderPrev).addClass('hide');\n });\n\n $(homeHeroSlider).on('afterChange', function (event, child, data) {\n if (0 == data) {\n $(sliderPrev).addClass('hide');\n } else {\n $(sliderPrev).removeClass('hide');\n }\n });\n\n $(homeHeroSlider).on('init', function () {\n createCarouselArrows(homeHeroSlider);\n });\n\n // update lazy load for ajax images\n if (lazyLoadInstance) {\n lazyLoadInstance.update();\n }\n }\n\n if ($('body').hasClass('page-template-template-story')) {\n var sliderStage = '.story-ba-slider .connected-carousels .slick-slider-stage';\n\n $(sliderStage).slick({\n accessibility: true,\n slidesToShow: 1,\n slidesToScroll: 1,\n initialSlide: 0,\n centerMode: false,\n adaptiveHeight: false,\n draggable: false,\n swipe: false,\n arrows: false,\n autoplay: false,\n autoplaySpeed: 6e4,\n });\n\n $(sliderStage).on('init', function () {\n createCarouselArrows(sliderStage);\n\n $(sliderStage)\n .find(\"[data-slick-index='0'] .twentytwenty-container\")\n .each(function () {\n if ($(this).height() == 0) {\n $(this).twentytwenty();\n }\n });\n });\n\n $(sliderStage).on('beforeChange', function (event, slick, currentSlide, nextSlide) {\n $(sliderStage)\n .find(\"[data-slick-index='\" + nextSlide + \"'] .twentytwenty-container\")\n .each(function () {\n if ($(this).height() == 0) {\n $(this).twentytwenty();\n }\n });\n });\n }\n\n setTimeout(function () {\n selectCountryFormat(false);\n }, 2000);\n});\n\n$(window).resize(function () {\n clearTimeout(window.resizedFinished);\n\n window.resizedFinished = setTimeout(function () {\n franchiseTabHeight();\n }, 250);\n\n detaillistheight();\n rfMobile();\n\n if (window.innerWidth > 767) {\n const navBarCollapse = document.querySelector('.navbar-collapse');\n const lowerNav = document.querySelector('.lower-nav');\n navBarCollapse?.classList.add('collapse');\n document.body.classList.remove('lock-position', 'mobile-menu-open');\n if (navBarCollapse && lowerNav) {\n if (lowerNav.style.maxHeight) {\n lowerNav.style.maxHeight = null;\n }\n }\n }\n});\n\n$(window).on('orientationchange', function () {\n detaillistheight();\n});\n\n$(window).error(function () {\n setTimeout(function () {\n $('.homepage-new-template .ba-sections').removeClass('hideContent');\n\n if ($('.homepage-new-template .slick-slider-stage').length > 0) {\n $('.homepage-new-template .slick-slider-stage').slick('slickPlay');\n }\n }, 5000);\n});\n\n$(document).on('click touchstart', '.rfc-pop-up-form-container.active .close-button', function (e) {\n e.preventDefault();\n e.stopPropagation();\n\n $(this).parents('.rfc-pop-up-form-container').removeClass('active');\n\n return false;\n});\n\n$(document).on('click touchstart', '.cta-request *', function (e) {\n e.preventDefault();\n e.stopPropagation();\n\n $('.rfc-pop-up-form-container').addClass('active');\n $('.rfc-inner.request-form>.close-button').focus();\n\n return false;\n});\n\nconst mobileNavButton = document.querySelector('.mobile-nav-container');\nconst mobileNavCloseButton = document.querySelector('.mobile-nav-close-button');\n\nconst toggleMobileNav = e => {\n e.stopPropagation();\n e.preventDefault();\n const navBarCollapse = document.querySelector('.navbar-collapse');\n const lowerNav = document.querySelector('.lower-nav');\n const html = document.querySelector('html');\n const mobileMenuOverlay = document.querySelector('.mobile-menu-overlay');\n if (lowerNav.style.maxHeight) {\n lowerNav.style.maxHeight = null;\n } else {\n lowerNav.style.maxHeight = window.innerHeight + 'px';\n }\n if (document.body.classList.contains('lock-position')) {\n navBarCollapse?.classList.add('collapse');\n document.body.classList.remove('lock-position', 'mobile-menu-open');\n lowerNav?.classList.add('slide-out');\n lowerNav?.classList.remove('slide-in');\n html.classList.remove('body-hidden');\n mobileMenuOverlay.classList.remove('active');\n } else {\n navBarCollapse?.classList.remove('collapse');\n document.body.classList.add('lock-position', 'mobile-menu-open');\n lowerNav?.classList.remove('slide-out');\n lowerNav?.classList.add('slide-in');\n html.classList.add('body-hidden');\n mobileMenuOverlay?.classList.add('active');\n }\n};\n\ndocument.addEventListener('click', e => {\n const mobileMenuOverlay = document.querySelector('.mobile-menu-overlay');\n if (e.target === mobileMenuOverlay) {\n toggleMobileNav(e);\n }\n});\n\nwindow.addEventListener('orientationchange', event => {\n if (event.target.screen.orientation.angle === 90 && window.innerWidth >= 767) {\n const navBarCollapse = document.querySelector('.navbar-collapse');\n const lowerNav = document.querySelector('.lower-nav');\n const html = document.querySelector('html');\n const mobileMenuOverlay = document.querySelector('.mobile-menu-overlay');\n mobileNavDropDownButtons.forEach(mobileNavDropDownButton => {\n if (mobileNavDropDownButton.parentNode) {\n mobileNavDropDownButton.parentNode.classList.remove('open');\n }\n });\n navBarCollapse?.classList.add('collapse');\n document.body.classList.remove('lock-position', 'mobile-menu-open');\n lowerNav?.classList.remove('slide-out');\n lowerNav?.classList.remove('slide-in');\n html.classList.remove('body-hidden');\n mobileMenuOverlay?.classList.remove('active');\n }\n});\n\nif (mobileNavButton && mobileNavCloseButton) {\n mobileNavButton.addEventListener('click', e => toggleMobileNav(e));\n mobileNavCloseButton.addEventListener('click', e => toggleMobileNav(e));\n}\n\nconst lowerNav = document.querySelector('.lower-nav');\n\nif (lowerNav) {\n lowerNav.addEventListener('animationend', () => lowerNav.classList.toggle('slide-end'));\n}\n\nconst mobileNavDropDownButtons = document.querySelectorAll('.navbar-nav li.menu-item > button.glyphicon');\n\nif (mobileNavDropDownButtons) {\n const loadOpenState = mobileNavDropDownButtons => {\n const li = mobileNavDropDownButtons[0]?.parentNode;\n\n if (mobileNavDropDownButtons) {\n mobileNavDropDownButtons.forEach(mobileNavDropDownButton => {\n const li = mobileNavDropDownButton.parentNode;\n if (li?.classList.contains('menu-item-has-children')) {\n const controlText = li.children[0].textContent.trim().toLowerCase().replace(' ', '-');\n mobileNavDropDownButton.setAttribute('aria-controls', controlText);\n mobileNavDropDownButton.setAttribute('aria-label', `${controlText} open button`);\n mobileNavDropDownButton.setAttribute('aria-expanded', 'false');\n li.children[2].setAttribute('id', controlText);\n }\n });\n }\n\n if (li?.classList.contains('menu-item-has-children')) {\n li.classList.add('open');\n mobileNavDropDownButtons[0].setAttribute('aria-expanded', 'true');\n }\n };\n\n if (document.readyState !== 'loading') {\n if (window.innerWidth <= 767) {\n loadOpenState(mobileNavDropDownButtons);\n }\n } else {\n window.addEventListener(\n 'DOMContentLoaded',\n () => {\n if (window.innerWidth <= 767) {\n loadOpenState(mobileNavDropDownButtons);\n }\n },\n true\n );\n }\n\n // Add event listeners to menu buttons.\n // Removed connection to bootstrap.\n mobileNavDropDownButtons.forEach(mobileNavDropDownButton => {\n mobileNavDropDownButton.addEventListener('click', e => {\n if (e.target.parentNode.classList.contains('open')) {\n e.target.parentNode.classList.remove('open');\n e.target.setAttribute('aria-expanded', 'false');\n } else {\n mobileNavDropDownButtons.forEach(mobileNavDropDownButton => {\n if (mobileNavDropDownButton.parentNode) {\n mobileNavDropDownButton.parentNode.classList.remove('open');\n mobileNavDropDownButton.setAttribute('aria-expanded', 'false');\n }\n });\n if (mobileNavDropDownButton.parentNode.classList.contains('menu-item-has-children')) {\n mobileNavDropDownButton.parentNode.classList.toggle('open');\n mobileNavDropDownButton.setAttribute(\n 'aria-expanded',\n mobileNavDropDownButton.getAttribute('aria-expanded') === 'true' ? 'false' : 'true'\n );\n }\n }\n });\n });\n\n const resizeFunc = () => {\n if (window.innerWidth >= 767) {\n mobileNavDropDownButtons?.forEach(mobileNavDropDownButton => {\n const li = mobileNavDropDownButton?.parentNode;\n li?.classList.remove('open');\n });\n const lowerNav = document.querySelector('.lower-nav');\n if (lowerNav) {\n lowerNav.classList.remove('slide-out');\n lowerNav.classList.remove('slide-in');\n }\n const mobileMenuOverlay = document.querySelector('.mobile-menu-overlay');\n if (mobileMenuOverlay) {\n mobileMenuOverlay.classList.remove('active');\n }\n const navBarCollapse = document.querySelector('.navbar-collapse');\n const html = document.querySelector('html');\n navBarCollapse?.classList.add('collapse');\n document.body.classList.remove('lock-position', 'mobile-menu-open');\n html.classList.remove('body-hidden');\n } else {\n const li = mobileNavDropDownButtons[0]?.parentNode;\n if (li) {\n if (li.classList.contains('menu-item-has-children')) {\n li.classList.add('open');\n }\n }\n }\n };\n\n window.addEventListener('resize', resizeFunc);\n}\n\nconst mobileNavSubDropDownButtons = document.querySelectorAll(\n '.navbar-nav li.menu-item .dropdown-submenu > button.glyphicon'\n);\n\nif (mobileNavSubDropDownButtons) {\n const loadOpenState = mobileNavSubDropDownButtons =>\n mobileNavSubDropDownButtons.forEach(mobileNavSubDropDownButton => {\n const parent = mobileNavSubDropDownButton.parentNode;\n if (parent.childNodes[4]) {\n if (parent) {\n parent.classList.add('has-sub-children');\n const controlText = parent.children[0].textContent.trim().toLowerCase().replace(' ', '-');\n mobileNavSubDropDownButton.setAttribute('aria-controls', controlText);\n mobileNavSubDropDownButton.setAttribute('aria-label', `${controlText} open button`);\n mobileNavSubDropDownButton.setAttribute('aria-expanded', 'false');\n parent.children[2].setAttribute('id', controlText);\n }\n } else {\n mobileNavSubDropDownButton.style.display = 'none';\n }\n });\n\n if (document.readyState !== 'loading') {\n loadOpenState(mobileNavSubDropDownButtons);\n } else {\n window.addEventListener(\n 'DOMContentLoaded',\n () => {\n loadOpenState(mobileNavSubDropDownButtons);\n },\n true\n );\n }\n\n // Add event listeners to menu buttons.\n // Removed connection to bootstrap.\n mobileNavSubDropDownButtons.forEach(mobileNavSubDropDownButton => {\n mobileNavSubDropDownButton.addEventListener('click', e => {\n if (e.target.parentNode.childNodes[4].classList.contains('active')) {\n e.target.parentNode.childNodes[4].classList.remove('active');\n e.target.parentNode.classList.remove('open');\n e.target.setAttribute('aria-expanded', 'false');\n } else {\n mobileNavSubDropDownButtons.forEach(mobileNavSubDropDownButton => {\n if (mobileNavSubDropDownButton.parentNode) {\n mobileNavSubDropDownButton.parentNode.classList.remove('open');\n mobileNavSubDropDownButton.setAttribute('aria-expanded', 'false');\n }\n if (mobileNavSubDropDownButton.parentNode.childNodes[4]) {\n mobileNavSubDropDownButton.parentNode.childNodes[4].classList.remove('active');\n }\n });\n if (mobileNavSubDropDownButton.parentNode.classList.contains('has-sub-children')) {\n mobileNavSubDropDownButton.parentNode.classList.toggle('open');\n mobileNavSubDropDownButton.setAttribute(\n 'aria-expanded',\n mobileNavSubDropDownButton.getAttribute('aria-expanded') === 'true' ? 'false' : 'true'\n );\n }\n if (mobileNavSubDropDownButton.parentNode.childNodes[4]) {\n mobileNavSubDropDownButton.parentNode.childNodes[4].classList.toggle('active');\n }\n }\n });\n });\n}\nconst mobileLocationFinder = document.querySelector('.mobile-location-finder');\nconst mobileLocationFinderCloseButton = document.querySelector('.mobile-header .mobile-location-finder button.close');\nconst mobileLocationFinderOpenButton = document.querySelector('.mobile-header .mobile-search a');\nconst mobileLocationForm = document.querySelector('.mobile-form');\n\nif (mobileLocationFinderCloseButton) {\n mobileLocationFinderCloseButton.addEventListener('click', e => {\n e.stopPropagation();\n e.preventDefault();\n document.body.classList.remove('not-small');\n if (mobileLocationFinder) {\n mobileLocationFinder.style.display = 'none';\n }\n if (mobileLocationForm) {\n mobileLocationForm.style.display = 'block';\n }\n });\n}\n\nif (mobileLocationFinderOpenButton) {\n mobileLocationFinderOpenButton.addEventListener('click', e => {\n e.stopPropagation();\n e.preventDefault();\n document.body.classList.add('not-small');\n if (mobileLocationFinder) {\n mobileLocationFinder.style.display = 'block';\n }\n if (mobileLocationForm) {\n mobileLocationForm.style.display = 'none';\n }\n });\n}\n\n$(document).on('scrollend', function () {\n if ($(window).scrollTop() > 0) {\n $('body').hasClass('not-small') || $('body').addClass('fixed-mobile');\n } else {\n $('body').removeClass('fixed-mobile');\n }\n});\n\n$(document).on('tap', 'body', function (e) {\n if (is_touch_device()) {\n e.stopPropagation();\n\n if (\n e.target.dataset.mobile === undefined &&\n !$(e.target).hasClass('dropdown-menu') &&\n $(e.target).parents('.dropdown-menu').length == 0 &&\n !$(e.target.lastChild).hasClass('pac-logo') &&\n $(e.target).parents('.pac-logo').length == 0\n ) {\n $('[data-mobile]').attr('data-mobile', 'true').siblings('ul.megamenu').css({\n display: '',\n });\n }\n }\n});\n\n$(document).on('click tap', '.btn.go-to-showrooms', function (e) {\n if ($('.location-list').length > 0) {\n e.preventDefault();\n e.stopPropagation();\n\n $('html, body')\n .stop()\n .animate({\n scrollTop: $('.location-list').position().top,\n });\n\n return false;\n }\n});\n\n$(document).on('click tap', '.about_location span a', function () {\n $('html, body')\n .stop()\n .animate({\n scrollTop: $($(this).attr('href')).position().top - 70,\n });\n});\n\n$(document).on('click touchstart', '.about_location_request_wrapper *', function (e) {\n e.preventDefault();\n e.stopPropagation();\n\n if ($(window).width() > 767) {\n $('.rfc-pop-up-form-container').addClass('active');\n return false;\n }\n});\n\n//hide/show hero rfc on OLS dropdown form interaction\n$('.ols-dropdown-form')\n .closest('.dropdown')\n .on('show.bs.dropdown', function () {\n $('.hero__form-section').addClass('hide').removeClass('show');\n })\n .on('hide.bs.dropdown', function () {\n $('.hero__form-section').addClass('show').removeClass('hide');\n });\n\n// Open UserCentrics modal\n$(document).on('click', '.uc_privacy_link', function (e) {\n e.preventDefault();\n window.UC_UI.showSecondLayer();\n});\n"]}