{"version":3,"sources":["0.0--js-file-start.js","99--js-file-end.js","1.3--global-functions.js","1.1--global-define.js","1.2--mobile-class.js","999--drupal-behaviours.js"],"names":["TipiThemeGetCookie","name","value","document","cookie","parts","split","length","pop","shift","filterblog","e","jQuery","isotope","filter","filteramenity","this","parent","addClass","IE_polyfill","fitie","t","c","call","g","m","a","boxSizing","display","overflow","replace","l","d","border","margin","padding","height","width","opacity","h","videoWidth","s","videoHeight","u","v","createElement","appendChild","parentNode","replaceChild","p","runtimeStyle","b","i","f","o","n","r","Math","round","marginLeft","marginTop","currentStyle","test","clientWidth","clientHeight","nodeName","toLowerCase","addEventListener","attachEvent","removeEventListener","detachEvent","complete","init","body","querySelectorAll","setTimeout","navigator","userAgent","getLastPart","url","lastIndexOf","blog_filters","itemSelector","layoutMode","amenity_filters","amenity_load_more","find","removeClass","create_lead_on_register","dataflow","console","log","usrName","val","usrSurName","usrEmail","usrMobile","usrPostcode","usrHowdidyouHear","usrHowdidyouHearFix","text","usrterms","usrprefEmail","is","usrprefPhone","Source","usrPrefComm","formData","FirstName","LastName","Email","MobilePhone","PostalCode","HowDidYouHearAboutUs","AgreeToToSandPP","PreferredCommunication","css","show","ajax","type","data","success","textStatus","jqXHR","hide","flowObject","JSON","parse","localStorage","getItem","click","append","code","error","errorThrown","user_status_check","post","hasLead","hasViewing","validateEmail","$email","validate_acc_creation_popup","valid","isEmail","attr","match","email","validate_booking_terms","String","prototype","padStart","Object","defineProperty","configurable","writable","targetLength","padString","repeat","slice","ready","$","topFunction","animate","scrollTop","scrollFunction","documentElement","getCookie","cname","decodedCookie","decodeURIComponent","ca","charAt","substring","indexOf","showReadMore","$this","benefitCount","each","cta","next","wrapper","maxHeight","window","innerHeight","reRunBlazy","Blazy","bLazy","revalidate","parents","tmpl","id","cache","encReg","encMap","<",">","&","\"","'","encode","define","amd","module","exports","deviceAgent","toggleClass","prepend","offset","top","scroll","hasClass","selecty","appendTo","element","on","stopPropagation","queryVars","preFilter","location","search","trim","substr","q","toString","qlbF","href","preventDefault","img","innerWidth","modal","onscroll","hash","getUrlParameter","sParam","sParameterName","sPageURL","sURLVariables","undefined","urlparAlt","urlpar","utmcookie","expireCookie","Date","setTime","getTime","expireMinutes","toUTCString","setItem","testSrc","cookieval","cookstrings","stringify","splitter","cookiesrc","cookiemed","combcookie","flowType","unitSize","unitRent","unitFurn","unitBeds","unitImage","unitName","unitNID","str","x","str_split","arr","push","unitNumber","unitBuilding","unitNid","hover","siblings","remove","stickyOffset","sticky","imageCarousel","scrolled","top_of_element","bottom_of_element","outerHeight","bottom_of_screen","top_of_screen","trigger","resize","$sticky","$scrollToTop","stickytop","breakpoints","src","copy","prev","dest","equalheight","container","$el","currentTallest","currentRowStart","topPosition","currentDiv","rowDivs","position","textLength","title","shortText","join","resizeTimer","clearTimeout","obj","filt","fromCTA","filledBar","calc","startSticky","stiky","stikyWrap","stickyButtons","pageYOffset","removeAttr","collapse","datepickerOptions","changeMonth","changeYear","monthNamesShort","dayNamesMin","firstDay","dateFormat","minDate","beforeShow","input","inst","closest","dpDiv","onChangeMonthYear","year","month","margin-bottom","onClose","minDateAttr","datepicker","ajaxSuccess","readyState","Drupal","drupalSettings","behaviors","tipiBootstrapTheme","attach","context","settings","pardotUID","change","blur","dataLayer","event","contents","nodeType","textContent","replaceWith","triggeringElement","relatedTarget","parentUnitCard","tipi","node_type","node_title","unitDataMarkup","unit_markup","insertBefore","first","building","rent","rooms","minRent","floor","maxRent","getElementById","querySelector","removeAttribute","setAttribute","classList","add","innerHTML","parseInt","checked","html","searchFilters","parking","storage","pets","terrace","balcony","gym","furnished","rentMin","rentMax"],"mappings":"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","file":"app.min.js","sourcesContent":["// JAVASCRIPT LAYER [APP.JS] =========================================================================================\n\nfunction TipiThemeGetCookie(name) {\n var value = \"; \" + document.cookie;\n var parts = value.split(\"; \" + name + \"=\");\n if (parts.length == 2) return parts.pop().split(\";\").shift();\n}\n\n// Blog Filters\nfunction filterblog(e) {\n if(e === '*'){\n jQuery('.m-filter-results').isotope({ filter: e });\n jQuery('.m-articles').isotope({ filter: e });\n\n }\n else {\n jQuery('.m-filter-results').isotope({ filter: '.'+e });\n jQuery('.m-articles').isotope({ filter: '.'+e });\n\n }\n}\n\nfunction filteramenity() {\n jQuery(this).parent().addClass('active-filter');\n}\n\nfunction IE_polyfill() {\n // IE OBJECT FIT POLYFILL\n this.fitie=function(t){function e(){c.call(t,g+m,e);var a={boxSizing:\"content-box\",display:\"inline-block\",overflow:\"hidden\"};\"backgroundColor backgroundImage borderColor borderStyle borderWidth bottom fontSize lineHeight height left opacity margin position right top visibility width\".replace(/\\w+/g,function(t){a[t]=l[t]}),d.border=d.margin=d.padding=0,d.display=\"block\",d.height=d.width=\"auto\",d.opacity=1;var h=t.videoWidth||t.width,s=t.videoHeight||t.height,u=h/s,v=document.createElement(\"object-fit\");v.appendChild(t.parentNode.replaceChild(v,t));for(var p in a)v.runtimeStyle[p]=a[p];var b;\"fill\"===i?f?(d.width=o,d.height=n):(d[\"-ms-transform-origin\"]=\"0% 0%\",d[\"-ms-transform\"]=\"scale(\"+o/h+\",\"+n/s+\")\"):(r>u?\"contain\"===i:\"cover\"===i)?(b=n*u,d.width=Math.round(b)+\"px\",d.height=n+\"px\",d.marginLeft=Math.round((o-b)/2)+\"px\"):(b=o/u,d.width=o+\"px\",d.height=Math.round(b)+\"px\",d.marginTop=Math.round((n-b)/2)+\"px\")}var i=t.currentStyle[\"object-fit\"];if(i&&/^(contain|cover|fill)$/.test(i)){var o=t.clientWidth,n=t.clientHeight,r=o/n,a=t.nodeName.toLowerCase(),d=t.runtimeStyle,l=t.currentStyle,h=t.addEventListener||t.attachEvent,c=t.removeEventListener||t.detachEvent,g=t.addEventListener?\"\":\"on\",f=\"img\"===a,m=f?\"load\":\"loadedmetadata\";h.call(t,g+m,e),t.complete&&e()}},this.fitie.init=function(){if(document.body)for(var t=document.querySelectorAll(\"img,video\"),e=-1;t[++e];)fitie(t[e]);else setTimeout(fitie.init)},/MSIE|Trident/.test(navigator.userAgent)&&this.fitie.init();\n}\n\nif (!String.prototype.padStart) {\n Object.defineProperty(String.prototype, 'padStart', {\n configurable: true,\n writable: true,\n value: function (targetLength, padString) {\n targetLength = targetLength >> 0; //floor if number or convert non-number to 0;\n padString = String(typeof padString !== 'undefined' ? padString : ' ');\n if (this.length > targetLength) {\n return String(this);\n } else {\n targetLength = targetLength - this.length;\n if (targetLength > padString.length) {\n padString += padString.repeat(targetLength / padString.length); //append to original to ensure we are longer than needed\n }\n return padString.slice(0, targetLength) + String(this);\n }\n },\n });\n}\n\njQuery(document).ready(function($) {\n\n// IE_polyfill();\n\n\njQuery('.m-sub-menu li a.is-active').parents('li').addClass('is-active'); // ​\n\n// jQuery('.amenity-filter').click(function(){\n//\n// var filterby = jQuery(this).data('filter');\n//\n// jQuery('.m-filters ul li').removeClass('active');\n// jQuery(this).parent().addClass('active');\n//\n// if(filterby === '*'){\n// jQuery('.m-filter-results').isotope({ filter: filterby });\n// jQuery('.m-articles').isotope({ filter: filterby });\n//\n// }\n// else {\n// jQuery('.m-filter-results').isotope({ filter: '.'+filterby });\n// jQuery('.m-articles').isotope({ filter: '.'+filterby });\n//\n// }\n//\n// setTimeout(function(){\n// amenity_load_more();\n// jQuery('.a-load-more').click();\n// console.log('showall');\n// }, 50);\n// });\n","// FILE END +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\nif (getLastPart(window.location.href) === 'blog') {\n setTimeout(function(){\n blog_filters();\n }, 50);\n}\n\nif ($('#amenity-list').length){\n setTimeout(function(){\n amenity_filters();\n }, 50);\n}\n\n});\n\nfunction getLastPart(url) {\n var parts = url.split(\"/\");\n return (url.lastIndexOf('/') !== url.length - 1 ? parts[parts.length - 1] : parts[parts.length - 2]);\n}\n\nfunction blog_filters() {\n jQuery('.m-filter-results').isotope({\n // options\n itemSelector: '.blog-list-card',\n layoutMode: 'fitRows'\n });\n}\n\n\nfunction amenity_filters() {\n jQuery('.m-articles').isotope({\n // options\n itemSelector: '.amenity',\n layoutMode: 'fitRows'\n });\n}\n\nfunction amenity_load_more() {\n jQuery('.m-articles').find(\".dont-show\").removeClass(\"dont-show\");\n\n setTimeout(function(){\n jQuery('.m-articles').isotope({\n itemSelector: '.amenity',\n layoutMode: 'fitRows'\n });\n }, 100);\n\n}\n\nfunction create_lead_on_register(dataflow) {\n console.log(dataflow);\n var usrName = jQuery('.m-acc-register').find('input[name=\"FirstName\"]').val();\n var usrSurName = jQuery('.m-acc-register').find('input[name=\"Surname\"]').val();\n var usrEmail = jQuery('.m-acc-register').find('input[name=\"Email\"]').val();\n var usrMobile = jQuery('.m-acc-register').find('input[name=\"Mobile\"]').val();\n var usrPostcode = jQuery('.m-acc-register').find('input[name=\"Postcode\"]').val();\n var usrHowdidyouHear = jQuery('.m-acc-register').find('select[name=\"HowdidyouHear\"]').val();\n var usrHowdidyouHearFix = jQuery('.reg-lead + .selecty').find('.selecty-options .selected').text();\n usrHowdidyouHear = !usrHowdidyouHear.length && usrHowdidyouHearFix.length > 0 ? usrHowdidyouHearFix : usrHowdidyouHear ;\n var usrterms = jQuery('.m-acc-register').find('input[name=\"cterms\"]').val();\n var usrprefEmail = jQuery('.m-acc-register').find('input#cEmail').is(':checked');\n var usrprefPhone = jQuery('.m-acc-register').find('input#cPhone').is(':checked');\n var Source = jQuery('.m-acc-register').find('input[name=\"custom_source\"]').val();\n\n console.log(usrName);\n console.log(usrSurName);\n console.log(usrEmail);\n console.log(usrMobile);\n console.log(usrPostcode);\n console.log(usrHowdidyouHear);\n console.log(usrterms);\n console.log(usrprefEmail);\n console.log(usrprefPhone);\n console.log(Source);\n\n var usrPrefComm = typeof usrprefEmail != 'undefined' && usrprefEmail ? 'Email' : 'Phone' ;\n\n console.log(usrPrefComm);\n\n var formData = {FirstName:usrName,LastName:usrSurName,Email:usrEmail,MobilePhone:usrMobile,PostalCode:usrPostcode,HowDidYouHearAboutUs:usrHowdidyouHear,AgreeToToSandPP:usrterms, PreferredCommunication: usrPrefComm, Source:Source};\n\n\n jQuery('.o-create-account-tipi .button-text').css('opacity', '0');\n jQuery('.o-create-account-tipi .button-loader').show();\n\n jQuery.ajax({\n url : \"/olj-lead\",\n type: \"POST\",\n data : formData,\n success: function(data, textStatus, jqXHR)\n {\n\n if (data.success){\n jQuery('.o-reserve-process .reservation-step-holder-item').hide('slow');\n\n if (dataflow == 'booking'){\n jQuery('.o-create-account-tipi .button-text').css('opacity', '1');\n jQuery('.o-create-account-tipi .button-loader').hide();\n var flowObject = JSON.parse(localStorage.getItem('flowObject'));\n jQuery('.book-a-viewing-date').show('slow');\n jQuery('.right-desktop .unit-data-rent').text(flowObject['unitRent']);\n jQuery('.right-desktop .unit-data-bedrooms').text(flowObject['unitBeds']);\n jQuery('.right-desktop .unit-data-size').text(flowObject['unitSize']);\n jQuery('.right-desktop .unit-data-building').text(flowObject['unitBuilding']);\n jQuery('.right-desktop .unit-data-unit-number').text(flowObject['unitNumber']);\n jQuery('.left-desktop .unit-image').css('background-image', 'url(' + flowObject['unitImage'] + ')');\n jQuery('.ui-state-active').click();\n } else if(dataflow == 'reservation') {\n jQuery('.o-reserve-step-one').show('slow');\n }\n\n } else {\n jQuery('.o-create-account-tipi .m-acc-register').append('<div class=\"generic-validation\">Something went wrong, we were unable to register your account, please contact us at 020 3918 7350<br />Your error code is '+data.code+'</div>');\n }\n\n },\n error: function (jqXHR, textStatus, errorThrown)\n {\n\n }\n });\n}\n\n// function get_booking_avail_slot(oljdate) {\n//\n// jQuery('.timeslot-help-text').hide();\n//\n// var formData = {Date:oljdate};\n//\n// console.log(formData);\n//\n// jQuery('.timeslot-loader').show();\n// jQuery('.slot').removeClass('active-slot');\n// jQuery('.slot').removeClass('hide-slot');\n// jQuery('.slot').css('visibility', 'hidden');\n//\n// jQuery.ajax({\n// url : \"/olj-slots\",\n// type: \"POST\",\n// data : formData,\n// success: function(data, textStatus, jqXHR)\n// {\n// if (data.success) {\n// console.log(data.slots);\n// jQuery.each(data.slots, function (key, value) {\n// console.log('looping through slots');\n// if (value === false) {\n// console.log('if any slots are false');\n// console.log(key);\n// jQuery('.slot[data-slot=\"'+key+'\"]').addClass('hide-slot');\n// }\n// else {\n// jQuery('.slot[data-slot=\"'+key+'\"]').removeClass('hide-slot');\n// }\n// });\n// jQuery('.book-a-viewing-date .book-a-viewing-info .generic-validation').remove();\n// jQuery('.timeslot-loader').hide();\n// jQuery('.slot').css('visibility', 'visible');\n// }\n// else {\n// jQuery('.book-a-viewing-date .book-a-viewing-info .generic-validation').remove();\n// jQuery('.book-a-viewing-date .book-a-viewing-info').append('<div class=\"generic-validation\">Something went wrong, we were unable to find available slots for your viewing, please contact us at 020 3918 7350<br />Your error code is '+data.code+'</div>');\n// }\n// },\n// error: function (jqXHR, textStatus, errorThrown)\n// {\n//\n// }\n// });\n//\n// }\n\n\n// function createBooking() {\n// var flowObject = JSON.parse(localStorage.getItem('flowObject'));\n// var unitId = jQuery('.bg-flow').attr('data-unitnide');\n// var viewingDataObject = JSON.parse(localStorage.getItem('viewingDataObject'));\n// var activeSlot = jQuery('.active-slot').attr('data-slot');\n// var bookingDate = viewingDataObject.viewingDate.split(' ');\n// console.log(unitId);\n//\n// console.log(bookingDate);\n// console.log(activeSlot);\n// if (typeof activeSlot == 'undefined') {\n// jQuery('.book-a-viewing-date .book-a-viewing-info').append('<div class=\"generic-validation\">Please select a date and time slot to book your viewing.</div>');\n// return;\n// }\n//\n// var formData = { Date:bookingDate[2]+'-'+bookingDate[1]+'-'+bookingDate[0], Time:activeSlot, Type:viewingDataObject.viewingPref, Unit:unitId};\n//\n// console.log(formData);\n//\n// jQuery('.book-a-viewing-date .button-text').css('opacity', '0');\n// jQuery('.book-a-viewing-date .button-loader').show();\n//\n// jQuery.ajax({\n// url : \"/olj-viewing\",\n// type: \"POST\",\n// data : formData,\n// success: function(data, textStatus, jqXHR)\n// {\n// console.log(data.success);\n// if (data.success){\n// console.log(data.slots);\n// jQuery.each( data.slots, function( key, value ) {\n// console.log(value);\n// if(value === false){\n// console.log('one of them is false');\n// if(jQuery('.slot').attr('data-slot') === key){\n// jQuery(this).hide();\n// console.log(jQuery(this));\n// }\n// }\n// });\n// jQuery('.book-a-viewing-date .button-text').css('opacity', '1');\n// jQuery('.book-a-viewing-date .button-loader').hide();\n// jQuery('.o-reserve-process .reservation-step-holder-item').hide('slow');\n// jQuery('.book-a-viewing-confirmation').show('slow');\n// } else {\n// jQuery('.book-a-viewing-date .book-a-viewing-info').append('<div class=\"generic-validation\">Something went wrong, we were unable to create your viewing, please contact us at 020 3918 7350<br />Your error code is '+data.code+'</div>');\n// }\n//\n// },\n// error: function (jqXHR, textStatus, errorThrown)\n// {\n//\n// }\n// });\n//\n// }\n\n\n// function SaveAccDetails() {\n//\n// var FirstName = jQuery('.m-edit-profile').find('input[name=\"FirstName\"]').val();\n// var LastName = jQuery('.m-edit-profile').find('input[name=\"Surname\"]').val();\n// // var Email = jQuery('.m-edit-profile').find('input[name=\"Email\"]').val();\n// var MobilePhone = jQuery('.m-edit-profile').find('input[name=\"Mobile\"]').val();\n// var PreferredCommunication = jQuery('input[name=\"prefMethod\"]:checked').val();\n// var PostalCode = jQuery('.m-edit-profile').find('input[name=\"Postcode\"]').val();\n// var Type = jQuery('.m-edit-profile').find('input[name=\"tO\"]').val();\n//\n// var valid = true;\n//\n// var formData = { FirstName:FirstName, LastName:LastName, MobilePhone:MobilePhone, PreferredCommunication:PreferredCommunication, PostalCode:PostalCode, Type:Type };\n//\n//\n//\n// jQuery('.save-profile .button-text').css('opacity', '0');\n// jQuery('.save-profile .button-loader').show();\n//\n// jQuery.ajax({\n// url : \"/olj-account\",\n// type: \"POST\",\n// data : formData,\n// success: function(data, textStatus, jqXHR)\n// {\n// if (data.success){\n// jQuery('.o-my-account-page .m-acc-register .olj-success-wrapper').remove();\n// console.log('data saved');\n// jQuery('.save-profile .button-text').css('opacity', '1');\n// jQuery('.save-profile .button-loader').hide();\n// jQuery('.o-my-account-page .m-acc-register .generic-validation').remove();\n// jQuery('.o-my-account-page .m-acc-register').prepend('<div class=\"olj-success-wrapper\"><p>Your account has been updated!</p></div>');\n//\n// } else {\n// console.log('data could not be saved');\n// jQuery('.save-profile .button-text').css('opacity', '1');\n// jQuery('.save-profile .button-loader').hide();\n// jQuery('.o-my-account-page .m-acc-register .generic-validation').remove();\n// jQuery('.o-my-account-page .m-acc-register').prepend('<div class=\"generic-validation\">Something went wrong, we were unable to update your account, please contact us at 020 3918 7350<br />Your error code is '+data.code+'</div>');\n// jQuery('.o-my-account-page .m-acc-register .olj-success-wrapper').remove();\n// }\n//\n// },\n// error: function (jqXHR, textStatus, errorThrown)\n// {\n//\n// }\n// });\n//\n// }\n\n\nfunction user_status_check(){\n var login_Status = JSON.parse(localStorage.getItem('loginstatus'));\n\n if(login_Status == 'no'){\n\n } else {\n jQuery('.reservation-step-holder-item').hide();\n jQuery.post(\n '/olj-status' ,\n {} ,\n function(data) {\n console.log(\"Status?\")\n console.log(data);\n if (data.success) {\n console.log('I am logged in now');\n if(data.hasLead){\n var flowObject = JSON.parse(localStorage.getItem('flowObject'));\n console.log('I have a lead now');\n\n if(flowObject['flowType'] == 'reservation') {\n jQuery('.o-reserve-step-one').show();\n } else {\n if(data.hasViewing) {\n jQuery('.o-already-have-booking').show();\n } else {\n jQuery('.book-a-viewing-date').show();\n }\n }\n } else {\n jQuery('.o-create-account-tipi').show();\n console.log('I do not have a lead yet');\n }\n }\n else {\n jQuery('.o-register-with-tipi').show();\n }\n }\n );\n\n }\n\n}\n\n// function get_ancilliries(){\n// jQuery('.show-step-two .button-text').css('opacity', '0');\n// jQuery('.show-step-two .button-loader').show();\n//\n// var flowObject = JSON.parse(localStorage.getItem('flowObject'));\n// var unitId = jQuery('.bg-flow').attr('data-unitnide');\n// var formData = { Unit:unitId };\n//\n// jQuery.ajax({\n// url : \"/olj-ancillaries\",\n// type: \"POST\",\n// data : formData,\n// success: function(data, textStatus, jqXHR)\n// {\n// console.log(data);\n// if (data.success){\n// jQuery('.show-step-two .button-loader').show();\n// jQuery('.show-step-two .button-text').css('opacity', '0');\n// jQuery('.parking-price').text(data.prices.parking);\n// jQuery('.one-cat-val').attr('data-value' , data.prices.cat);\n// jQuery('.two-cat-val').attr('data-value' , data.prices['2 cats']);\n// jQuery('.one-dog-val').attr('data-value' , data.prices.dog);\n// jQuery('.two-dog-val').attr('data-value' , data.prices['2 dogs']);\n// jQuery('.one-small-value').attr('data-value' , data.prices['small animal']);\n// jQuery('.two-small-value').attr('data-value' , data.prices['2 small animals']);\n// jQuery('.o-reserve-process .reservation-step-holder-item').hide('slow');\n// jQuery('.o-reserve-step-two').show('slow');\n// } else {\n// jQuery('.o-reserve-process .reserve-step-one').append('<div class=\"generic-validation\">Something went wrong, we were unable to continue your reservation, please contact us at 020 3918 7350<br />Your error code is '+data.code+'</div>');\n// }\n//\n// },\n// error: function (jqXHR, textStatus, errorThrown)\n// {\n//\n// }\n// });\n//\n// }\n\n\n// function reserve_unit(){\n// jQuery('.show-res-confirmed .button-text').css('opacity', '0');\n// jQuery('.show-res-confirmed .button-loader').show();\n//\n// var Step1Data = JSON.parse(localStorage.getItem('reservationStepOne'));\n// var Step2Data = JSON.parse(localStorage.getItem('reservationStepTwo'));\n// var flowObject = JSON.parse(localStorage.getItem('flowObject'));\n// var Term = Step1Data.leaseTerm.replace(/\\D/g,'');\n// console.log(Step1Data.reservationDate);\n// var bookingDate = Step1Data.reservationDate.split(' ');\n//\n// var parking;\n// if (Step2Data.selectedParking == 'Parking'){\n// parking = 'true';\n// } else {\n// parking = 'false';\n// }\n//\n// var formData = { Unit:flowObject.unitNid, MoveInDate:bookingDate[2]+'-'+bookingDate[1]+'-'+bookingDate[0], Parking:parking, Cats:Step2Data.animalsCat,Dogs:Step2Data.animalsDog,Small:Step2Data.animalsSmall,Term:Term };\n//\n//\n// console.log(formData);\n//\n// jQuery.ajax({\n// url : \"/olj-reserve\",\n// type: \"POST\",\n// data : formData,\n// success: function(data, textStatus, jqXHR)\n// {\n// if (data.success){\n// jQuery('.show-res-confirmed .button-loader').show();\n// jQuery('.show-res-confirmed .button-text').css('opacity', '0');\n//\n// jQuery('.o-reserve-process .reservation-step-holder-item').hide('slow');\n// jQuery('.o-reservation-confirmed').show('slow');\n// } else {\n// jQuery('<div class=\"generic-validation\">Something went wrong, we were unable to complete your reservation, please contact us at 020 3918 7350<br />Your error code is '+data.code+'</div>').insertBefore(jQuery('.o-reserve-process .pay-reserve.show-res-confirmed'));\n// }\n//\n// },\n// error: function (jqXHR, textStatus, errorThrown)\n// {\n//\n// }\n// });\n//\n// }\n\n// function validate_acc_edit() {\n// var valid = true;\n// if(jQuery('.m-edit-profile .reg-postcode').val() === \"\"){\n// jQuery('.m-edit-profile .reg-postcode').addClass('needs-val');\n// valid = false;\n// } else {\n// // jQuery('.reg-postcode').removeClass('needs-val');\n// if (jQuery('.m-edit-profile .reg-postcode').val().replace(' ','').match(/^[0-9a-zA-Z]+$/) == null) {\n// jQuery('.m-edit-profile .reg-postcode').addClass('needs-val');\n// valid = false;\n// }\n// else {\n// jQuery('.m-edit-profile .reg-postcode').removeClass('needs-val');\n// }\n// }\n//\n// if(!valid) {\n// jQuery('.m-edit-profile .form-not-validated').show();\n// return false;\n//\n// } else {\n// jQuery('.m-edit-profile .form-not-validated').hide();\n// return true;\n//\n// }\n// }\n\nfunction validateEmail($email) {\n var emailReg = /^([\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,4})?$/;\n return emailReg.test( $email );\n console.log('why not');\n}\n\nfunction validate_acc_creation_popup() {\n // var usrName = jQuery('.m-acc-register').find('input[name=\"FirstName\"]');\n // var usrSurName = jQuery('.m-acc-register').find('input[name=\"Surname\"]');\n // var usrEmail = jQuery('.m-acc-register').find('input[name=\"Email\"]');\n // var usrMobile = jQuery('.m-acc-register').find('input[name=\"Mobile\"]');\n // var usrPostcode = jQuery('.m-acc-register').find('input[name=\"Postcode\"]');\n var usrHowdidyouHear = jQuery('.m-acc-register').find('select[name=\"HowdidyouHear\"]').val();\n var usrHowdidyouHearFix = jQuery('.reg-lead + .selecty').find('.selecty-options .selected').text();\n var usrterms = jQuery('.m-acc-register').find('input[name=\"cterms\"]');\n // var usrpref = jQuery('.m-acc-register').find('input[name=\"prefMethod\"]');\n\n console.log(usrHowdidyouHear);\n console.log(usrHowdidyouHearFix);\n\n var valid = true;\n\n if (!usrterms.is(':checked')) {\n jQuery('#cterms + .checkmark').addClass('needs-val');\n valid = false;\n } else {\n jQuery('#cterms + .checkmark').removeClass('needs-val');\n }\n\n if(jQuery('.reg-fname').val() === \"\"){\n jQuery('.reg-fname').addClass('needs-val');\n valid = false;\n } else {\n jQuery('.reg-fname').removeClass('needs-val');\n }\n\n if(jQuery('.reg-surname').val() === \"\"){\n jQuery('.reg-surname').addClass('needs-val');\n valid = false;\n } else {\n jQuery('.reg-surname').removeClass('needs-val');\n }\n\n if(jQuery('.reg-email').val() === \"\"){\n jQuery('.reg-email').addClass('needs-val');\n valid = false;\n } else {\n jQuery('.reg-email').removeClass('needs-val');\n }\n\n if (!isEmail(jQuery('.reg-email').val())){\n jQuery('.reg-email').addClass('needs-val');\n valid = false;\n } else {\n jQuery('.reg-email').removeClass('needs-val');\n }\n\n if(jQuery('.reg-mobile').val() === \"\"){\n jQuery('.reg-mobile').addClass('needs-val');\n valid = false;\n } else {\n if (jQuery('.reg-mobile').val() == jQuery('.reg-mobile').attr('data-code')) {\n jQuery('.reg-mobile').addClass('needs-val');\n valid = false;\n }\n else {\n if (jQuery('.reg-mobile').val().length < 8) {\n jQuery('.reg-mobile').addClass('needs-val');\n valid = false;\n }\n jQuery('.reg-mobile').removeClass('needs-val');\n }\n }\n\n console.log(usrHowdidyouHear.length);\n console.log(usrHowdidyouHear.length == 0);\n console.log(usrHowdidyouHearFix.length);\n console.log(usrHowdidyouHearFix.length == 0);\n console.log(usrHowdidyouHear.length == 0 && usrHowdidyouHearFix.length == 0);\n\n if(usrHowdidyouHear.length == 0 && usrHowdidyouHearFix.length == 0){\n jQuery('.selecty-selected').addClass('needs-val');\n valid = false;\n } else {\n jQuery('.selecty-selected').removeClass('needs-val');\n }\n\n if(jQuery('.reg-postcode').val() === \"\"){\n jQuery('.reg-postcode').addClass('needs-val');\n valid = false;\n } else {\n // jQuery('.reg-postcode').removeClass('needs-val');\n if (jQuery('.reg-postcode').val().replace(' ','').match(/^[0-9a-zA-Z]+$/) == null) {\n jQuery('.reg-postcode').addClass('needs-val');\n valid = false;\n }\n else {\n jQuery('.reg-postcode').removeClass('needs-val');\n }\n }\n\n\n if(!valid) {\n jQuery('.form-not-validated').show();\n return false;\n\n } else {\n jQuery('.form-not-validated').hide();\n return true;\n\n }\n\n}\n\n\nfunction isEmail(email) {\n var regex = /^([a-zA-Z0-9_.+-])+\\@(([a-zA-Z0-9-])+\\.)+([a-zA-Z0-9]{2,4})+$/;\n return regex.test(email);\n}\n\n\nfunction validate_booking_terms() {\n var valid = true;\n var usrterms = jQuery('.agree-reservation-fee').find('input[name=\"termsc\"]');\n if (!usrterms.is(':checked')) {\n jQuery('#termsc + .checkmark').addClass('needs-val');\n valid = false;\n } else {\n jQuery('#termsc + .checkmark').removeClass('needs-val');\n }\n if(!valid) {\n jQuery('.form-not-validated').show();\n return false;\n\n } else {\n jQuery('.form-not-validated').hide();\n return true;\n\n }\n}\n\n","// JAVASCRIPT LAYER [APP.JS] =========================================================================================\n\n// ====== INDEX ======================================================================================================\n// ==\n// == A. BURGER MENU\n// == B. HOMEPAGE CAROUSEL\n// ==\n// ====== INDEX ======================================================================================================\n\n// A. SHOW/HIDE +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\n// A.1. BURGER MENU ---------------------------------------------------------------------------------------------------\n\n// $(\".reveal\").click(function (e) {\n// var target = $(this).attr(\"href\");\n//\n// if ($(target).hasClass(\"hidden\")) {\n// $(target).removeClass(\"hidden\");\n// $(\".reveal\").addClass(\"close\");\n// } else {\n// $(target).addClass(\"hidden\");\n// $(\".reveal\").removeClass(\"close\");\n// }\n// e.preventDefault();\n// });\n\n$(\".a-nav-icon\").click(function (e) {\n $(this).toggleClass(\"open\");\n $(\".m-menu\").toggleClass(\"slide-out\", \"slide-in\");\n $(\".o-header\").toggleClass(\"open\");\n});\n\n$(\"div.m-menu-items ul li\").each(function () {\n if ($(this).find(\"ul.m-sub-menu\").length !== 0) {\n //$(this).addClass('has-dropdown');\n $(this).prepend(\n '<button class=\"d-inline-block d-lg-none toggle-submenu a-mobile-caret\">EXPAND</button>'\n );\n }\n});\n\n$(\".a-mobile-caret\").click(function (e) {\n $(this).toggleClass(\"active\");\n});\n\n// A.1. END -----------------------------------------------------------------------------------------------------------\n\n// A.2. GENERAL SHOW --------------------------------------------------------------------------------------------------\n\nvar isIE11 = !!navigator.userAgent.match(/Trident.*rv\\:11\\./);\nif (isIE11) {\n jQuery(\"body\").addClass(\"ie-11\");\n}\n\n// $(\".showhide\").click(function (e) {\n// var target = $(this).attr(\"href\");\n\n// if ($(target).hasClass(\"hidden\")) {\n// $(target).removeClass(\"hidden\");\n// $(\".showhide\").addClass(\"close\");\n// } else {\n// $(target).addClass(\"hidden\");\n// $(\".showhide\").removeClass(\"close\");\n// }\n\n// e.preventDefault();\n// });\n\n// A.2. END -----------------------------------------------------------------------------------------------------------\n\n// A.2. END -----------------------------------------------------------------------------------------------------------\n\n// A.2.1. TOGGLE DIV ----------------------------\n\n// var currentContent = \"\";\n// $(\".toggle-div\").on(\"click\", function () {\n// currentContent = $(this).attr(\"name\");\n// if ($(\"#\" + currentContent).hasClass(\"on\")) {\n// $(\"#\" + currentContent).removeClass(\"on\");\n// $(\"body\").removeClass(\"modal-open\");\n// } else {\n// hideAllContent();\n// showCurrentContent(currentContent);\n// }\n// });\n\n// function hideAllContent() {\n// $(\".toggle-content\").removeClass(\"on\");\n// $(\"body\").removeClass(\"modal-open\");\n// }\n\n// function showCurrentContent(currentContentDiv) {\n// $(\"#\" + currentContentDiv).addClass(\"on\");\n// $(\"body\").addClass(\"modal-open\");\n// }\n\n// A.2.1. END -----------------------------------------\n\n// A.2.2. MODAL POPUPS --------------------------------\n\n// var modalContent = \"\";\n// $(\".modal-open\").on(\"click\", function () {\n// modalContent = $(this).attr(\"name\");\n// if ($(\"#\" + modalContent).hasClass(\"on\")) {\n// $(\"#\" + modalContent).removeClass(\"on\");\n// $(\"body\").removeClass(\"modal-open\");\n// } else {\n// hideAllContent();\n// showmodalContent(modalContent);\n// }\n// });\n\n// function hideAllContent() {\n// $(\".o-modal-full\").removeClass(\"on\");\n// $(\"body\").removeClass(\"modal-open\");\n// }\n\n// function showmodalContent(modalContentDiv) {\n// $(\"#\" + modalContentDiv).addClass(\"on\");\n// $(\"body\").addClass(\"modal-open\");\n// }\n\n// var featureVid = document.getElementById(\"modal--video-player\");\n\n// function pauseFeaturedVid() {\n// featureVid.pause();\n// }\n\n// $(\".a-modal-close\").on(\"click\", function () {\n// $(\"body\").removeClass(\"modal-open\");\n// $(\".o-modal-full\").removeClass(\"on\");\n// pauseFeaturedVid();\n// });\n\n// A.2.2. END -----------------------------------------\n\n// A.2.3. MOBILE SHOWHIDE -----------------------------\n\n//(function ($) {\n// if ($(\"html\").hasClass(\"mobile\")) {\n// $(\".a-config\").on(\"click\", function () {\n// //e.preventDefault();\n// if ($(\".a-config\").hasClass(\"active\")) {\n// $(\".a-config\").removeClass(\"active\");\n// $(\"body\").removeClass(\"fixed\");\n// } else {\n// $(\".a-config\").addClass(\"active\");\n// $(\"body\").addClass(\"fixed\");\n// }\n// });\n// }\n\n// A.2.4. GRID APARTMENTS -----------------------------\n// if($('html').hasClass('mobile')){\n// $('.o-grid-apartments .m-block .m-link').on('click', function(e){\n// if ($(this).hasClass('clicked')) {\n// return true;\n// } else {\n// $(this).addClass('clicked');\n// e.preventDefault();\n// }\n// });\n// }\n\n// A.2.4. END -----------------------------------------\n//})(jQuery);\n\n// A.2.3. END -----------------------------------------\n\n// A.2. END -----------------------------------------------------------------------------------------------------------\n\n// A.3. SCROLL TO LINK ------------------------------------------------------------------------------------------------\n\n// $(\".textLink, .bob-backUp\").click(function (event) {\n// event.preventDefault();\n//\n// //calculate destination place\n// var dest = 0;\n// if ($(this.hash).offset().top > $(document).height() - $(window).height()) {\n// dest = $(document).height() - $(window).height();\n// } else {\n// dest = $(this.hash).offset().top;\n// }\n//\n// //go to destination\n// $(\"html,body\").animate({ scrollTop: dest }, 1000, \"swing\");\n//\n// //add class to burger\n// $(\"#mobi-nav\").addClass(\"hide-nav\");\n// });\n\n// A.3. END -----------------------------------------------------------------------------------------------------------\n\n// $(\".cta-hook a\").click(function (event) {\n// event.preventDefault();\n// //calculate destination place\n// var dest = 0;\n// if ($(this.hash).offset().top > $(document).height() - $(window).height()) {\n// dest = $(document).height() - $(window).height();\n// } else {\n// dest = $(this.hash).offset().top;\n// }\n\n// //go to destination\n// $(\"html,body\").animate(\n// { scrollTop: dest - $(\".o-header\").height() },\n// 1000,\n// \"swing\"\n// );\n// });\n\n// if ($(\".webform-confirmation__message\").length) {\n// dest = $(\".register-interest-form\").offset().top;\n// $(\"html,body\").animate(\n// { scrollTop: dest - $(\".o-header\").height() },\n// 1000,\n// \"swing\"\n// );\n// }\n\n// A.4. SHOW HIDE LOGO ------------------------------------------------------------------------------------------------\n\nvar t = $(\"html\").offset().top;\n\n$(document).scroll(function () {\n if (document.documentElement.clientWidth > 640) {\n // Hide the logo, and show as you scroll\n if ($(this).scrollTop() > t) {\n $(\".logo\").css({ display: \"block\" });\n } else {\n $(\".logo\").css({ display: \"none\" });\n }\n } else {\n }\n});\n\n// A.4. END -----------------------------------------------------------------------------------------------------------\n\n// A.5. SCREEN SIZE CHECK ---------------------------------------------------------------------------------------------\n\nvar screen = $(window).width();\nif ($(\"body\").hasClass(\"adminimal-admin-toolbar\")) {\n // console.log('I am a device, and my width is: ' + screen);\n}\n\n// A.5. END -----------------------------------------------------------------------------------------------------------\n\n// A.6. RESOURCE PATHS ------------------------------------------------------------------------------------------------\n\nvar icons = \"assets/includes/icons/\";\n\n// A.6. END -----------------------------------------------------------------------------------------------------------\n\n// A.7. SELECTY -------------------------------------------------------------------------------------------------------\n$(\".selecty\").each(function () {\n if (!$(this).hasClass(\"selecty-enabled\")) {\n $(this).addClass(\"selecty-enabled\");\n $(this).selecty();\n }\n});\n// A.7. END -----------------------------------------------------------------------------------------------------------\n\n// A.8. CAROUSELS -----------------------------------------------------------------------------------------------------\n\nif ($(window).width() <= 768) {\n jQuery(\".building \").addClass(\"open-building\");\n}\n\nif ($(window).width() <= 990) {\n jQuery(\".main-menu-phone\").parent().css(\"border-bottom\", \"0\");\n jQuery(\".main-menu-phone\").appendTo(\".m-menu-items-right\");\n jQuery(\".main-menu-phone\").addClass(\"mobile-phone-menu\");\n}\n\n// Unit hero mobile counter\n// $(\".unit-hero-carousel, .m-marketing-page-hero\").on(\n// \"initialized.owl.carousel changed.owl.carousel\",\n// function (e) {\n// if (!e.namespace) {\n// return;\n// }\n// var carousel = e.relatedTarget;\n// $(\".slider-counter\").text(\n// carousel.relative(carousel.current()) + 1 + \"/\" + carousel.items().length\n// );\n// }\n// );\n\n// Building gallery mobile counter\n// $(\".m-building-listing-slide\").on(\n// \"initialized.owl.carousel changed.owl.carousel\",\n// function (e) {\n// if (!e.namespace) {\n// return;\n// }\n// console.log(\"this happened\");\n// var carousel = e.relatedTarget;\n// $(\".slider-counter .a-current\").text(\n// carousel.relative(carousel.current()) + 1\n// );\n// $(\".slider-counter .a-total\").text(carousel.items().length);\n// }\n// );\n\n// 2021 - Hero owl carousel progress bar END\n\n// $(\".owl-carousel\").each(function () {\n// var options = false;\n// if ($(this).hasClass(\"unit-apartment-carousel\")) {\n// options = {\n// dots: true,\n// autoplay: false,\n// nav: true,\n// loop: true,\n// items: 1,\n// };\n// }\n// if (options !== false) {\n// $(this).owlCarousel(options);\n// }\n// });\n\n// A.35. 2021 gallery lightbox nav left/right\n\n// 2021 Image carousel twigger prev/next on scroll pad START\n// var timestamp_mousewheel = 0;\n// var Image2021Carousel = $(\".m-2021-image-carousel\");\n// Image2021Carousel.on(\"mousewheel\", \".owl-stage\", function (a) {\n// var d = new Date();\n// if (d.getTime() - timestamp_mousewheel > 1000) {\n// //minimum time difference\n// timestamp_mousewheel = d.getTime();\n// if (a.deltaY < 0) Image2021Carousel.trigger(\"next.owl\");\n// else Image2021Carousel.trigger(\"prev.owl\");\n// a.preventDefault();\n// }\n// });\n\n// A.35. END -----------------------------------------------------------------------------------------------------------\n\nfunction stopOwlPropagation(element) {\n jQuery(element).on(\"to.owl.carousel\", function (e) {\n e.stopPropagation();\n });\n jQuery(element).on(\"next.owl.carousel\", function (e) {\n e.stopPropagation();\n });\n jQuery(element).on(\"prev.owl.carousel\", function (e) {\n e.stopPropagation();\n });\n jQuery(element).on(\"destroy.owl.carousel\", function (e) {\n e.stopPropagation();\n });\n}\n\nstopOwlPropagation(\".owl-carousel\");\n\n// A.27. STAR RATINGS -------------------------------------------------------------------------------------------------------\n// jQuery(\".m-star-rating\").each(function () {\n// var val = jQuery(this).find(\".a-value\").text();\n// var filledBar = jQuery(this).find(\".a-filled\");\n\n// var calc = (val / 5) * 100 + \"%\";\n// filledBar.css(\"width\", calc);\n// });\n// A.27. END -----------------------------------------------------------------------------------------------------------\n\n// $(\".o-2021-hero-image-gallery .m-thumbnail\").click(function () {\n// var slide = $(this).attr(\"data-slide-to\");\n// var owl = $(\".m-2021-gallery-modal\");\n// owl.trigger(\"to.owl.carousel\", [slide, 0]);\n// });\n\n// $(\".o-2021-instagram .m-img\").click(function () {\n// var slide = $(this).attr(\"data-slide-to\");\n// var owl = $(\".m-2021-instagram-modal\");\n// owl.trigger(\"to.owl.carousel\", [slide, 0]);\n// });\n\n// $('.owl-carousel').on('touchstart', 'img', function(e) {\n// \t$(this).closest('.owl-carousel').trigger('stop.owl.autoplay');\n// });\n// $('.owl-carousel').on('touchend', 'img', function(e) {\n// \t$(this).closest('.owl-carousel').trigger('play.owl.autoplay');\n// });\n// $('.owl-carousel').on('click', '.owl-dots, .owl-nav', function(e) {\n// \t$(this).closest('.owl-carousel').trigger('stop.owl.autoplay');\n// \t$(this).closest('.owl-carousel').trigger('play.owl.autoplay');\n// });\n\n// A.8. END -----------------------------------------------------------------------------------------------------------\n\n// A.10 SEARCH UNITS SHOW MORE ---------------------------------------------------------------------------------------\n\n// $(\".o-search-units .more a\").on(\"click\", function () {\n// $(\".o-unit-search-result.hidden\")\n// .slice(0, 8)\n// .css(\"opacity\", \"0\")\n// .removeClass(\"hidden\")\n// .animate({ opacity: \"1\" }, 500);\n// if (!$(\".o-unit-search-result.hidden\").length) {\n// $(this).closest(\"div\").addClass(\"hidden\");\n// $(\"<p>No more filtered results</p>\").insertBefore($(this).closest(\"div\"));\n// }\n// });\n\n// A.10 APARTMENT HERO GALLERY AND TOUR OPEN/CLOSE\n\n// A.10.1 OPEN GALLERY/TOUR\n\n// $(\".js--a-btn-gallery\").click(function () {\n// $(\".o-hero-scaling\").addClass(\"closed\");\n// $(\".o-apartment-gallery\").addClass(\"open\");\n// var owl = $(this).closest(\".o-block\").parent(\"div\").find(\".owl-carousel\");\n// owl.trigger(\"to.owl.carousel\", [0, 0]);\n// });\n// $(\".js--a-virtual-tour\").click(function () {\n// $(\".o-hero-scaling\").addClass(\"closed\");\n// $(\".m-virtual-tour\").addClass(\"open\");\n// });\n\n// A.10.1 END --------------------------------------------------------------------------------------------------------\n\n// A.10.2 CLOSE GALLERY/TOUR\n\n// $(\".js--a-btn-gallery-close\").click(function () {\n// $(\".o-hero-scaling\").removeClass(\"closed\");\n// $(\".o-apartment-gallery\").removeClass(\"open\");\n// var owl = $(this).closest(\".m-container\").prev(\".owl-carousel\");\n// owl.trigger(\"to.owl.carousel\", [0, 0]);\n// });\n\n// $(\".js--a-btn-tour-close\").click(function () {\n// $(\".o-hero-scaling\").removeClass(\"closed\");\n// $(\".m-virtual-tour\").removeClass(\"open\");\n// });\n\n// A.10.2 END ---------------------------------------------------------------------------------------------------------\n\n// A.10 END ----------------------------------------------------------------------------------------------------------\n\n// A.11 BUILDING HERO GALLERY OPEN/CLOSE\n\n// A.11.1 OPEN GALLERY\n\n// $(\".js--a-building-gallery\").click(function () {\n// $(\".o-hero-image-carousel\").addClass(\"closed\");\n// $(\".o-apartment-gallery\").addClass(\"open\");\n// var owl = $(this).closest(\".o-block\").parent(\"div\").find(\".owl-carousel\");\n// owl.trigger(\"to.owl.carousel\", [0, 0]);\n// });\n\n// A.11.1 END ---------------------------------------------------------------------------------------------------------\n\n// A.11.2 CLOSE GALLERY\n\n// $(\".js--a-building-gallery-close\").click(function () {\n// $(\".o-hero-image-carousel\").removeClass(\"closed\");\n// $(\".o-apartment-gallery\").removeClass(\"open\");\n// var owl = $(this).closest(\".m-container\").prev(\".owl-carousel\");\n// owl.trigger(\"to.owl.carousel\", [0, 0]);\n// });\n\n// A.11.2 END ---------------------------------------------------------------------------------------------------------\n\n// A.11 END ----------------------------------------------------------------------------------------------------------\n\n// A.12 TABS TRANSITION\n\n// $(\".o-tab .a-nav-link\").click(function () {\n// if ($(this).attr(\"href\") == \"#available\") {\n// $(\".a-scroll-line\").addClass(\"move\");\n// } else {\n// $(\".a-scroll-line\").removeClass(\"move\");\n// }\n// });\n\n// A.12 END ----------------------------------------------------------------------------------------------------------\n\n// A.13 BODY LOADED --------------------------------------------------------------------------------------------------\n$(\"body\").addClass(\"loaded\");\n// A.13 END ----------------------------------------------------------------------------------------------------------\n\nvar queryVars = {};\nvar preFilter = false;\nif (document.location.search.trim() != \"\") {\n jQuery.each(document.location.search.substr(1).split(\"&\"), function (c, q) {\n var i = q.split(\"=\");\n if (typeof i[1] !== \"undefined\") {\n queryVars[i[0].toString()] = i[1].toString();\n }\n });\n preFilter = typeof queryVars.qlbF !== \"undefined\" && !!queryVars.qlbF == true;\n}\n\n// localStorage.setItem(\"tipi-filters-limit\", \"6\");\n// A.14 RESET FILTERS ON SEARCH CTA ----------------------------------------------------------------------------------\n// $(\"a.a-find-a-home\").on(\"click\", function (e) {\n// localStorage.setItem(\"tipi-filters-limit\", \"6\");\n// var newFilters = {};\n// newFilters = JSON.stringify(newFilters);\n// localStorage.setItem(\"tipi-filters\", newFilters);\n// var expireFilters = new Date(new Date().getTime() + 15 * 60000);\n// localStorage.setItem(\"tipi-filters-expire\", expireFilters / 1);\n// });\n// A.14 END ----------------------------------------------------------------------------------------------------------\n// console.log('split1');\n\n// A.15 SET FILTERS ON SEARCH CTA BAR --------------------------------------------------------------------------------\n// $('.looking-for-cta button[type=\"submit\"]').on(\"click\", function (e) {\n// var newFilters = {};\n// $(this)\n// .closest(\".looking-for-cta\")\n// .find(\"select\")\n// .each(function () {\n// var value = $(this).val();\n// if (value.length) {\n// value = value.split(\"|\");\n// newFilters[value[0]] = value[1] == \"true\" ? true : false;\n// }\n// });\n// newFilters = JSON.stringify(newFilters);\n// localStorage.setItem(\"tipi-filters\", newFilters);\n// var expireFilters = new Date(new Date().getTime() + 15 * 60000);\n// localStorage.setItem(\"tipi-filters-expire\", expireFilters / 1);\n// localStorage.setItem(\"tipi-filters-lfcta\", true);\n// });\n\n// A.15 END ----------------------------------------------------------------------------------------------------------\n\n// A.16 SCROLL TO ON CONTENT WITH BACKGROUND PARAGRAPHS --------------------------------------------------------------\n// $(\".o-content-with-background a.a-link.scroll-to\").on(\"click\", function (e) {\n// e.preventDefault();\n// var target = $($(this).attr(\"data-href\"));\n// var dest = 0;\n// if (target.offset().top > $(document).height() - $(window).height()) {\n// dest = $(document).height() - $(window).height();\n// } else {\n// dest = target.offset().top;\n// }\n// // ensure we leave room for the main menu\n// dest -= $(\".o-header.fixed-top\").outerHeight();\n// //go to destination\n// $(\"html,body\").animate({ scrollTop: dest }, 1000, \"swing\");\n// return false;\n// });\n// A.16 END ----------------------------------------------------------------------------------------------------------\n// A.17 COOKIE MODULE ------------------------------------------------------------------------------------------------\n// setTimeout(function() {\n// $('#ccc #ccc-module #ccc-content #cc-panel #ccc-end #ccc-dismiss-button').animate({opacity: 1}, 500);\n// }, 5000);\n// var sawCookies = TipiThemeGetCookie(\"cookieNotified\");\n// if (typeof sawCookies == \"undefined\") {\n// var oneYearFromNow = new Date();\n// oneYearFromNow.setFullYear(oneYearFromNow.getFullYear() + 1);\n// $(\".o-cookie-notification a.a-cookie-close-link\").fadeOut(0);\n// setTimeout(function () {\n// $(\".o-cookie-notification\").animate({ right: \"0px\" }, 750);\n// }, 250);\n// setTimeout(function () {\n// $(\".o-cookie-notification a.a-cookie-close-link\").fadeIn(750);\n// }, 6000);\n// $(\".o-cookie-notification a\").on(\"click\", function (e) {\n// e.preventDefault();\n// e.stopPropagation();\n// document.cookie =\n// \"cookieNotified=true; expires=\" +\n// oneYearFromNow.toUTCString() +\n// \"; path=/\";\n// $(\".o-cookie-notification\").animate({ right: \"-500px\" }, 500);\n// setTimeout(function () {\n// $(\".o-cookie-notification\").remove();\n// }, 750);\n// return false;\n// });\n// }\n\n// Add class to main navigation on development pages\nif (window.location.href.indexOf(\"development\") > -1) {\n jQuery(\".m-main-menu li:first-child a\").addClass(\"is-active\");\n}\n// A.17 END ----------------------------------------------------------------------------------------------------------\n\n// A.17 SCROLL TO ON CONTENT WITH BACKGROUND PARAGRAPHS --------------------------------------------------------------\n// $('.o-webform .webform-button--submit.button.form-submit').on('click', function(e) {\n// var foundErrors = false;\n// $(this).closest('form').find('.required').each(function() {\n// $(this).removeClass('error');\n// $(this).find('input').removeClass('error');\n// if (!$(this).val().length || ($(this).val() == 'Minimum' && $(this).hasClass('selecty')) || ($(this).val() == 'Maximum' && $(this).hasClass('selecty'))) {\n// foundErrors = true;\n// $(this).addClass('error');\n// $(this).find('input').addClass('error');\n// }\n// });\n// if (foundErrors) {\n// $(this).closest('.o-webform').append('<div data-drupal-messages><div role=\"alert\"><ul><li>Please review the highlighted items below.</li></ul></div></div>');\n// $(this).closest('.o-webform').on('click', context, function() {\n// $(this).find('div[data-drupal-messages]').fadeOut(750, function() {\n// $(this).remove();\n// });\n// });\n// }\n// });\n// A.17 END ----------------------------------------------------------------------------------------------------------\n\n// A.18 WHO IS HERE ARTICLES - LOAD MORE --------------------------------------------------------------\n\n// $(\".a-load-more\").click(function (e) {\n// e.preventDefault();\n// $(\".o-who-is-here-articles\").addClass(\"load-more\");\n// });\n\n// A.18 END ----------------------------------------------------------------------------------------------------------\n\n// A.19 ARTICLE SELECTOR - LOAD MORE --------------------------------------------------------------\n\n// $('.a-read-more').click(function(e) {\n// e.preventDefault();\n// $('.o-article-selector').addClass('load-more');\n// });\n\n// A.19 END ----------------------------------------------------------------------------------------------------------\n\n// A.20 RELATED ARTICLES - LOAD MORE --------------------------------------------------------------\n\n// $(\".o-related-articles article\").slice(0, 3).show();\n// if ($(\".o-related-articles article:hidden\").length != 0) {\n// $(\"#js--loadMore\").show();\n// }\n\n// $(\"#js--loadMore\").on(\"click\", function (e) {\n// e.preventDefault();\n// $(\".o-related-articles article:hidden\").slice(0, 4).slideDown();\n// if ($(\".o-related-articles article:hidden\").length == 0) {\n// $(\"#js--loadMore\").fadeOut(\"slow\");\n// }\n// });\n\n// A.20 END ----------------------------------------------------------------------------------------------------------\n\n// UNIT LEVEL FEATURES - LOAD MORE START --------------------------------------------------------------\n\n// var unitLevelFeatureCards = $(\n// \".o-2021-units-page .m-unit-features .m-features\"\n// );\n\n// if (unitLevelFeatureCards.find(\".m-feature\").length > 8) {\n// $(\".o-2021-units-page .m-unit-features\").append(\n// \"<a class='a-cta _more' href='#'>View more</a>\"\n// );\n// }\n\n// function hideUnitLevelFeatureCards() {\n// $(\".o-2021-units-page .m-unit-features .m-features .m-feature\")\n// .slice(0, 8)\n// .addClass(\"shown\");\n// $(\".o-2021-units-page .m-unit-features .m-features .m-feature\")\n// .not(\".shown\")\n// .hide();\n// }\n// hideUnitLevelFeatureCards();\n\n// $(\".o-2021-units-page .m-unit-features .a-cta._more\").on(\"click\", function (e) {\n// e.preventDefault();\n// $(\".o-2021-units-page .m-unit-features .m-features .m-feature\")\n// .not(\".shown\")\n// .toggle(300);\n// $(this).toggleClass(\"_showless\");\n// if ($(this).hasClass(\"_showless\")) {\n// $(this).text(\"View less\");\n// } else {\n// $(this).text(\"View more\");\n// }\n// });\n// UNIT LEVEL FEATURES - LOAD MORE END --------------------------------------------------------------\n\n// 2021 BUILDING FEATURES - LOAD MORE START --------------------------------------------------------------\n\n// var buildingFeatureCards = $(\".o-building-features .m-features\");\n\n// if (buildingFeatureCards.find(\".m-feature\").length > 8) {\n// $(\".o-building-features\").append(\n// \"<a class='a-cta _more' href='#'>View more</a>\"\n// );\n// }\n\n// function hideBuildingFeatureCards() {\n// $(\".o-2021-units-page .m-unit-features .m-features .m-feature\")\n// .slice(0, 8)\n// .addClass(\"shown\");\n// $(\".o-2021-units-page .m-unit-features .m-features .m-feature\")\n// .not(\".shown\")\n// .hide();\n// }\n// hideBuildingFeatureCards();\n\n// $(\".o-building-features .a-cta._more\").on(\"click\", function (e) {\n// e.preventDefault();\n// $(\".o-building-features .m-feature\").not(\".shown\").toggle(300);\n// $(this).toggleClass(\"_showless\");\n// if ($(this).hasClass(\"_showless\")) {\n// $(this).text(\"View less\");\n// } else {\n// $(this).text(\"View more\");\n// }\n// });\n\n// 2021 BUILDING FEATURES - LOAD MORE END --------------------------------------------------------------\n\n// $('.m-card .a-copy').each(function() {\n// $( this ).parent().addClass( \"a-expand\" );\n// });\n\n// A.20 BUILDING FEATURES MODAL + VIRTUAL TOUR ----------------------------------------------------------------------------------------------------------\n\n$(\n \".o-marketing-page-hero .a-cta-left, .o-features .a-gallery, .a-building-gallery\"\n).on(\"click\", function (e) {\n e.preventDefault();\n $(\"body\").addClass(\"gallery-open\");\n // if($('html').hasClass('mobile')){\n // e.stopPropagation();\n // var featuresContainer = $('.o-features');\n // $('html,body').animate({scrollTop:featuresContainer.offset().top - $('.o-header').height()}, 1000,'swing');\n // }\n //else {\n // var modalFeatures = $('.o-features .m-container-wrap').html();\n // $('#o-features').on('shown.bs.modal', function() {\n // $('#o-features').find('.modal-body').html(modalFeatures);\n //});\n //}\n});\n\n$(\n \"#o-gallery-marketing-modal, #o-gallery-apartment-features-modal, #o-gallery-building-features-modal, #o-gallery-unit-modal\"\n).on(\"hidden.bs.modal\", function (e) {\n $(\"body\").removeClass(\"gallery-open\");\n $(\"body\").removeClass(\"mobile-message\");\n});\n\n$(\".o-2021-modal\").on(\"shown.bs.modal\", function (e) {\n $(\".b-lazy\").each(function () {\n var img = $(this);\n img.attr(\"src\", img.data(\"src\"));\n });\n});\n\n// Show landscape suggestion popup on mobile START\n\nif (window.innerHeight > window.innerWidth) {\n $(\n \"#o-gallery-marketing-modal, #o-gallery-building-features-modal, #o-gallery-unit-modal\"\n ).on(\"shown.bs.modal\", function (e) {\n $(\"#o-mobile-message\").modal(\"show\");\n $(\"body\").addClass(\"mobile-message\");\n });\n\n $(\"#o-mobile-message\").on(\"hidden.bs.modal\", function (e) {\n $(\"body\").removeClass(\"mobile-message\");\n });\n\n $(\".o-video .modal-dialog .modal-content .modal-header .close\").css(\n \"right\",\n \"0\"\n );\n $(\".o-video .modal-dialog .modal-content .modal-header .close\").css(\n \"top\",\n \"0\"\n );\n} else {\n $(\".o-video .modal-dialog .modal-content .modal-header .close\").css(\n \"right\",\n \"-15px\"\n );\n $(\".o-video .modal-dialog .modal-content .modal-header .close\").css(\n \"top\",\n \"15px\"\n );\n}\n\nwindow.addEventListener(\n \"resize\",\n function () {\n // Get screen size (inner/outerWidth, inner/outerHeight)\n if (window.innerHeight < window.innerWidth) {\n $(\"#o-mobile-message\").modal(\"hide\");\n $(\"body\").removeClass(\"mobile-message\");\n $(\".o-video .modal-dialog .modal-content .modal-header .close\").css(\n \"right\",\n \"-15px\"\n );\n $(\".o-video .modal-dialog .modal-content .modal-header .close\").css(\n \"top\",\n \"15px\"\n );\n } else {\n $(\".o-video .modal-dialog .modal-content .modal-header .close\").css(\n \"right\",\n \"0\"\n );\n $(\".o-video .modal-dialog .modal-content .modal-header .close\").css(\n \"top\",\n \"0\"\n );\n }\n },\n false\n);\n\n// Show landscape suggestion popup on mobile END\n\n// $(\".o-marketing-page-hero .a-cta-right:not(.a-virtual-tour)\").on(\"click\", function(e) {\n// $(\".o-marketing-page-hero .a-cta-right.a-features\").on(\"click\", function (e) {\n// e.preventDefault();\n// e.stopPropagation();\n// var featuresContainer = $(\".o-features\");\n// $(\"html,body\").animate(\n// { scrollTop: featuresContainer.offset().top - $(\".o-header\").height() },\n// 1000,\n// \"swing\"\n// );\n// });\n\n// $(\".o-marketing-page-hero .a-cta-right:not(.a-features)\").on(\n// \"click\",\n// function (e) {\n// e.preventDefault();\n// e.stopPropagation();\n// var dest = $(this).attr(\"href\");\n// $(\"html,body\").animate(\n// { scrollTop: $(dest).offset().top - $(\".o-header\").height() },\n// 1000,\n// \"swing\"\n// );\n// }\n// );\n\n// $(\".o-scroll-to .a-scroll\").on(\"click\", function (e) {\n// e.preventDefault();\n// e.stopPropagation();\n// var dest = $(this).attr(\"href\");\n// $(\"html,body\").animate(\n// { scrollTop: $(dest).offset().top - $(\".o-header\").height() },\n// 1000,\n// \"swing\"\n// );\n// });\n\n// $(\".o-marketing-page-hero .a-cta-right\").on(\"click\", function(e) {\n// e.preventDefault();\n// e.stopPropagation();\n// var virtualTourContainer = $('.virtual-tour-intro');\n// $('html,body').animate({scrollTop:virtualTourContainer.offset().top - $('.o-header').height()}, 1000,'swing');\n// });\n\n// $(\".o-marketing-page-hero .a-cta-right.a-virtual-tour\").on(\n// \"click\",\n// function (e) {\n// e.preventDefault();\n\n// if ($(\"html\").hasClass(\"mobile\")) {\n// e.stopPropagation();\n// var virtualTourContainer = $(\".virtual-tour-intro\");\n// $(\"html,body\").animate(\n// {\n// scrollTop:\n// virtualTourContainer.offset().top - $(\".o-header\").height(),\n// },\n// 1000,\n// \"swing\"\n// );\n// } else {\n// $(\"body\").addClass(\"o-virtual\");\n// var modalTour = $(\".virtual-tour-frame\").html();\n// $(\"#o-virtual-tour\").on(\"shown.bs.modal\", function () {\n// $(\"#o-virtual-tour\").find(\".iframe-wrap\").html(modalTour);\n// });\n// }\n// }\n// );\n\n// $(\"#o-virtual-tour .a-close\").on(\"click\", function (e) {\n// $(\"body\").removeClass(\"o-virtual\");\n// });\n\n// $(\"#o-video-search\").on(\"shown.bs.modal\", function (e) {\n// $(\"#o-video-search video\").get(0).play();\n// });\n\n// $(\"#o-video-search\").on(\"hidden.bs.modal\", function (e) {\n// $(\"#o-video-search video\").get(0).pause();\n// $(\"#o-video-search video\").get(0).currentTime = 0;\n// });\n\n// $(\"#o-video-features\").on(\"shown.bs.modal\", function (e) {\n// $(\"#o-video-features video\").get(0).play();\n// });\n\n// $(\"#o-video-features\").on(\"hidden.bs.modal\", function (e) {\n// $(\"#o-video-features video\").get(0).pause();\n// $(\"#o-video-features video\").get(0).currentTime = 0;\n// });\n\n// $(\"#o-video-marketing\").on(\"shown.bs.modal\", function (e) {\n// $(\"#o-video-marketing video\").get(0).play();\n// });\n\n// $(\"#o-video-marketing\").on(\"hidden.bs.modal\", function (e) {\n// $(\"#o-video-marketing video\").get(0).pause();\n// $(\"#o-video-marketing video\").get(0).currentTime = 0;\n// });\n\n// $(\"#o-seo-video\").on(\"shown.bs.modal\", function (e) {\n// $(\"#o-seo-video video\").get(0).play();\n// });\n\n// $(\"#o-seo-video\").on(\"hidden.bs.modal\", function (e) {\n// $(\"#o-seo-video video\").get(0).pause();\n// $(\"#o-seo-video video\").get(0).currentTime = 0;\n// });\n\n// $(\"#o-2021-video-modal\").on(\"shown.bs.modal\", function (e) {\n// $(\"#o-2021-video-modal video\").get(0).play();\n// });\n\n// $(\"#o-2021-video-modal\").on(\"hidden.bs.modal\", function (e) {\n// $(\"#o-2021-video-modal video\").get(0).pause();\n// $(\"#o-2021-video-modal video\").get(0).currentTime = 0;\n// });\n\n// $(\".o-2021-video._building-gallery\").on(\"shown.bs.modal\", function (e) {\n// var videoId = \"#\" + this.id + \" video\";\n// $(videoId).get(0).play();\n// });\n\n// $(\".o-2021-video._building-gallery\").on(\"hidden.bs.modal\", function (e) {\n// var videoId = \"#\" + this.id + \" video\";\n// $(videoId).get(0).pause();\n// $(videoId).get(0).currentTime = 0;\n// });\n\n// $(\".o-video-component .a-video\").controls = false;\n\nsetTimeout(function () {\n $(\".handle-a a\").each(function () {\n if ($(this).attr(\"data-filter-on\") == \"true\") {\n $(this).parents(\"li\").addClass(\"active\");\n }\n });\n}, 5);\n\n$(\".o-search-component .m-filters .handle-a a\").on(\"click\", function (e) {\n var parent = $(this).parents(\"li\");\n\n setTimeout(function () {\n if (parent.find('a[data-filter-on=\"true\"]').length == 0) {\n $(parent).removeClass(\"active\");\n } else {\n $(parent).addClass(\"active\");\n }\n }, 5);\n});\n\n// function windowWidth(maxLength) {\n// var showChar = maxLength;\n// var ellipsestext = \"...\";\n\n// $(\".o-whats-coming .m-container .content-wrap .m-card .m-block .a-copy\").each(\n// function () {\n// var content = $(this).html();\n// if (content.length > showChar) {\n// var c = content.substr(0, showChar);\n// var h = content;\n// var html =\n// '<div class=\"truncate-text\" style=\"display:block\">' +\n// c +\n// '<span class=\"moreellipses\">' +\n// ellipsestext +\n// ' <a href=\"\" class=\"moreless more\">more</a></span></span></div><div class=\"truncate-text\" style=\"display:none\">' +\n// h +\n// '<a href=\"\" class=\"moreless less\">Less</a></span></div>';\n\n// $(this).html(html);\n// }\n// }\n// );\n\n// $(\".moreless\").click(function () {\n// var thisEl = $(this);\n// var cT = thisEl.closest(\".truncate-text\");\n// var tX = \".truncate-text\";\n\n// if (thisEl.hasClass(\"less\")) {\n// cT.prev(tX).toggle();\n// cT.slideToggle();\n// } else {\n// cT.toggle();\n// cT.next(tX).fadeToggle();\n// }\n// return false;\n// });\n\n// // $('.o-whats-coming .m-container .content-wrap .m-card .m-block .a-copy').each(function() {\n\n// // if($(this).text().length >= maxLength) {\n// // var text = $(this).text(),\n// // truncated = text.substr(0,maxLength) +\n// // '<span class=\"a-bold more\">...</span><span class=\"text\" style=\"display:none\">'+text.substr(maxLength)+'</span>';\n// // $(this).html(truncated);\n// // }\n\n// // $($(this) + ' .more').on('click', function(e) {\n// // console.log($(this));\n// // });\n// // });\n// }\n\n// jQuery(\"#inTouch\").on(\"click\", function () {\n// // jQuery('.communication-types').toggle('slow');\n\n// if (jQuery(\"#inTouch\").is(\":checked\")) {\n// jQuery(\".communication-types input\").prop(\"checked\", true);\n// } else {\n// jQuery(\".communication-types input\").prop(\"checked\", false);\n// }\n// });\n\nfunction topFunction() {\n jQuery(\"html, body\").animate({ scrollTop: 0 }, 500);\n}\n\njQuery(\".scroll-to-top\").on(\"click\", function () {\n topFunction();\n});\n\nwindow.onscroll = function () {\n scrollFunction();\n};\n\nfunction scrollFunction() {\n if (\n document.body.scrollTop > 350 ||\n document.documentElement.scrollTop > 350\n ) {\n if (jQuery(\".scroll-to-top\").css(\"visibility\") == \"hidden\") {\n jQuery(\".scroll-to-top\").css(\"visibility\", \"visible\");\n }\n } else {\n jQuery(\".scroll-to-top\").css(\"visibility\", \"hidden\");\n }\n}\n\nif (document.body.clientWidth < 992) {\n jQuery(\".m-menu-items-right\").prepend('<div id=\"mobile-menu-call\"></div>');\n jQuery(\".o-phone-menu\").appendTo(\"#mobile-menu-call\");\n}\n\n// function summarizeText() {\n// if (document.body.clientWidth < 992) {\n// windowWidth(10000);\n// } else if (\n// document.body.clientWidth >= 992 &&\n// document.body.clientWidth < 1092\n// ) {\n// windowWidth(225);\n// } else if (\n// document.body.clientWidth >= 1092 &&\n// document.body.clientWidth < 1200\n// ) {\n// windowWidth(265);\n// } else if (\n// document.body.clientWidth >= 1200 &&\n// document.body.clientWidth < 1300\n// ) {\n// windowWidth(180);\n// } else if (\n// document.body.clientWidth >= 1300 &&\n// document.body.clientWidth < 1450\n// ) {\n// windowWidth(200);\n// } else if (\n// document.body.clientWidth >= 1450 &&\n// document.body.clientWidth < 1550\n// ) {\n// windowWidth(220);\n// } else if (\n// document.body.clientWidth >= 1550 &&\n// document.body.clientWidth < 1650\n// ) {\n// windowWidth(230);\n// } else if (\n// document.body.clientWidth >= 1650 &&\n// document.body.clientWidth < 1750\n// ) {\n// windowWidth(250);\n// } else if (\n// document.body.clientWidth >= 1750 &&\n// document.body.clientWidth < 1850\n// ) {\n// windowWidth(285);\n// } else if (\n// document.body.clientWidth >= 1850 &&\n// document.body.clientWidth < 1950\n// ) {\n// windowWidth(310);\n// }\n// }\n\n// jQuery(window).on(\"load\", summarizeText);\n\n// A.20 END ----------------------------------------------------------------------------------------------------------\n\n// function scrollIt(destination, duration, easing, callback) {\n\n// duration = 200;\n// easing = 'linear';\n\n// const easings = {\n// linear(t) {\n// return t;\n// },\n// easeInQuad(t) {\n// return t * t;\n// },\n// easeOutQuad(t) {\n// return t * (2 - t);\n// },\n// easeInOutQuad(t) {\n// return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n// },\n// easeInCubic(t) {\n// return t * t * t;\n// },\n// easeOutCubic(t) {\n// return (--t) * t * t + 1;\n// },\n// easeInOutCubic(t) {\n// return t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1;\n// },\n// easeInQuart(t) {\n// return t * t * t * t;\n// },\n// easeOutQuart(t) {\n// return 1 - (--t) * t * t * t;\n// },\n// easeInOutQuart(t) {\n// return t < 0.5 ? 8 * t * t * t * t : 1 - 8 * (--t) * t * t * t;\n// },\n// easeInQuint(t) {\n// return t * t * t * t * t;\n// },\n// easeOutQuint(t) {\n// return 1 + (--t) * t * t * t * t;\n// },\n// easeInOutQuint(t) {\n// return t < 0.5 ? 16 * t * t * t * t * t : 1 + 16 * (--t) * t * t * t * t;\n// }\n// };\n\n// const start = window.pageYOffset;\n// const startTime = 'now' in window.performance ? performance.now() : new Date().getTime();\n\n// const documentHeight = Math.max(document.body.scrollHeight, document.body.offsetHeight, document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight);\n// const windowHeight = window.innerHeight || document.documentElement.clientHeight || document.getElementsByTagName('body')[0].clientHeight;\n// const destinationOffset = typeof destination === 'number' ? destination : destination.offsetTop;\n// const destinationOffsetToScroll = Math.round(documentHeight - destinationOffset < windowHeight ? documentHeight - windowHeight : destinationOffset);\n\n// if ('requestAnimationFrame' in window === false) {\n// window.scroll(0, destinationOffsetToScroll);\n// if (callback) {\n// callback();\n// }\n// return;\n// }\n\n// function scroll() {\n// const now = 'now' in window.performance ? performance.now() : new Date().getTime();\n// const time = Math.min(1, ((now - startTime) / duration));\n// const timeFunction = easings[easing](time);\n// window.scroll(0, Math.ceil((timeFunction * (destinationOffsetToScroll - start)) + start));\n\n// if (window.pageYOffset === destinationOffsetToScroll) {\n// if (callback) {\n// callback();\n// }\n// return;\n// }\n\n// requestAnimationFrame(scroll);\n// }\n\n// scroll();\n// }\n\n// A. END ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\nsetTimeout(function () {\n if (window.location.hash == \"#open-form\") {\n jQuery(\".a-btn-text\").click();\n } else {\n // Fragment doesn't exist\n }\n}, 5);\n\n// console.log(module);\n// jQuery('.o-whats-coming .m-container .content-wrap .m-card .m-block .a-copy p').each(function(){\n// console.log(jQuery(this));\n// setTimeout(function(){\n// $clamp(jQuery(this).html(), {\n// clamp: 6\n// });\n// }, 5);\n// });\n\n// setTimeout(function(){\n// if(jQuery('.m-sub-menu').find('.is-active').length !== 0) {\n// var active_sub = jQuery('.m-sub-menu').find('.is-active');\n// var li_men = jQuery(active_sub).parent();\n// var ul_men = jQuery(li_men).parent();\n// var main_li_men = jQuery(ul_men).parent();\n// jQuery(main_li_men + ' a').addClass('is-active');\n// console.log(active_sub);\n// }\n// }, 5);\n\nvar getUrlParameter = function getUrlParameter(sParam) {\n var sPageURL = window.location.search.substring(1),\n sURLVariables = sPageURL.split(\"&\"),\n sParameterName,\n i;\n\n for (i = 0; i < sURLVariables.length; i++) {\n sParameterName = sURLVariables[i].split(\"=\");\n\n if (sParameterName[0] === sParam) {\n return sParameterName[1] === undefined\n ? true\n : decodeURIComponent(sParameterName[1]);\n }\n }\n};\n\nfunction getCookie(cname) {\n var name = cname + \"=\";\n var decodedCookie = decodeURIComponent(document.cookie);\n var ca = decodedCookie.split(\";\");\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) == \" \") {\n c = c.substring(1);\n }\n if (c.indexOf(name) == 0) {\n return c.substring(name.length, c.length);\n }\n }\n return \"\";\n}\n\nvar urlparAlt =\n getUrlParameter(\"outm_source\") + \",\" + getUrlParameter(\"outm_medium\");\nvar urlpar =\n getUrlParameter(\"utm_source\") + \",\" + getUrlParameter(\"utm_medium\");\n\nvar utmcookie = getCookie(\"utmcook\");\n\n// console.log('utmcookie',utmcookie);\n// console.log('urlPar',urlpar);\n// console.log('urlparAlt', urlparAlt);\n\nvar expireCookie = new Date();\nvar expireMinutes = 30;\nexpireCookie.setTime(expireCookie.getTime() + expireMinutes * 60 * 1000);\n\n// do we have url params\nif (urlpar.length > 0 && urlpar.indexOf(\"undefined,undefined\") == -1) {\n // console.log('urlpar');\n // do we have an existing cookie that's different from our new value\n if (utmcookie.length > 0 && utmcookie != urlpar) {\n // console.log('utmcookie.length && utmcookie != urlpar');\n document.cookie =\n \"utmcook=\" + urlpar + \";expires=\" + expireCookie.toUTCString();\n localStorage.setItem(\"usersrc\", urlpar);\n } else if (utmcookie.length > 0) {\n localStorage.setItem(\"usersrc\", utmcookie);\n }\n var testSrc = localStorage.getItem(\"usersrc\");\n if (testSrc === null) {\n localStorage.setItem(\"usersrc\", urlpar);\n document.cookie =\n \"utmcook=\" + urlpar + \";expires=\" + expireCookie.toUTCString();\n }\n} else if (\n urlparAlt.length > 0 &&\n urlparAlt.indexOf(\"undefined,undefined\") == -1\n) {\n // console.log('else urlparAlt');\n // do we have an existing cookie\n if (utmcookie.length > 0 && utmcookie != urlparAlt) {\n // console.log('utmcookie.length && utmcookie != urlparAlt');\n document.cookie =\n \"utmcook=\" + urlparAlt + \";expires=\" + expireCookie.toUTCString();\n localStorage.setItem(\"usersrc\", urlparAlt);\n } else if (utmcookie.length > 0) {\n localStorage.setItem(\"usersrc\", utmcookie);\n }\n var testSrc = localStorage.getItem(\"usersrc\");\n if (testSrc === null) {\n localStorage.setItem(\"usersrc\", urlparAlt);\n document.cookie =\n \"utmcook=\" + urlparAlt + \";expires=\" + expireCookie.toUTCString();\n }\n} else {\n // console.log('else');\n // do we have an existing cookie\n if (utmcookie.length === 0) {\n // console.log('utmcookie.length == 0');\n var cookieval = getCookie(\"__adal_ca\");\n if (cookieval.length > 0) {\n var cookstrings = JSON.stringify(cookieval);\n var splitter = cookstrings.split(\"&\");\n var cookiesrc = splitter[0].split(\"=\");\n var cookiemed = splitter[1].split(\"=\");\n var combcookie = cookiesrc[1] + \",\" + cookiemed[1];\n document.cookie =\n \"utmcook=\" + combcookie + \";expires=\" + expireCookie.toUTCString();\n localStorage.setItem(\"usersrc\", combcookie);\n } else {\n localStorage.setItem(\"usersrc\", \"direct,none\");\n }\n } else {\n localStorage.setItem(\"usersrc\", utmcookie);\n }\n}\n\n// if (utmcookie.length > 0) {\n// } else {\n// var now = new Date();\n// var minutes = 30;\n// now.setTime(now.getTime() + (minutes * 60 * 1000));\n//\n// if(urlpar.length > 0) {\n// if (urlpar.indexOf(\"undefined,undefined\") >= 0) {\n// var cookieval = getCookie('__adal_ca');\n// if(cookieval.length > 0) {\n// var cookstrings = JSON.stringify(cookieval);\n// var splitter = cookstrings.split(\"&\");\n// var cookiesrc = splitter[0].split(\"=\");\n// var cookiemed = splitter[1].split(\"=\");\n// var combcookie = cookiesrc[1] + ',' + cookiemed[1];\n// document.cookie = \"utmcook=\"+combcookie+\";expires=\"+now.toUTCString();\n// }\n// } else {\n// document.cookie = \"utmcook=\"+urlpar+\";expires=\"+now.toUTCString();\n// }\n// }\n//\n// }\n\n// setTimeout(function () {\n// console.log(\"HERE\");\n// var lastVisit = localStorage.getItem('lastvisit');\n// localStorage.setItem('lastvisit', new Date().getTime());\n// var userSrc = localStorage.getItem(\"usersrc\");\n// jQuery('[name=\"custom_source\"]').each(function () {\n// jQuery(this).val(userSrc);\n// });\n// 3600 * 1000 = 1 hour since last visit\n// var newVisit = userSrc === null || userSrc.trim() === '' || lastVisit === null || new Date().getTime() - lastVisit > (3600 * 1000);\n// console.log('newVisit', newVisit);\n// console.log(utmcookie);\n// console.log(utmcookie.indexOf(\"undefined\") >= 0);\n// if (utmcookie.indexOf(\"undefined\") >= 0) {\n// jQuery('[name=\"custom_source\"]').each(function () {\n// if (urlparAlt.length > 0 && urlparAlt.indexOf(\"undefined,undefined\") == -1) {\n// jQuery(this).val(urlparAlt);\n// }\n// else {\n// jQuery(this).val(urlpar);\n// }\n// // if (newVisit) {\n// // localStorage.setItem('usersrc', urlpar);\n// // }\n// });\n// }\n// else {\n// jQuery('[name=\"custom_source\"]').each(function () {\n// jQuery(this).val(utmcookie);\n// // if (newVisit) {\n// // localStorage.setItem('usersrc', utmcookie);\n// // }\n// });\n// }\n// }, 2000);\n\n// @TODO REMOVE THIS ONCE THE CALENDARS ARE MOVED TO THEIR INDIVIDUAL SCREENS JS FILES\n// jQuery(\".slot\").on(\"click\", function () {\n// jQuery(\".timeslots .slot\").removeClass(\"active-slot\");\n// jQuery(this).addClass(\"active-slot\");\n// });\n\n// jQuery(\".parking-item\").on(\"click\", function () {\n// jQuery(\".parking-selector .parking-item\").removeClass(\"active-parking-item\");\n// jQuery(this).addClass(\"active-parking-item\");\n// });\n\n// jQuery(\".selected-pet-quant\").on(\"click\", function (e) {\n// var selector = jQuery(this).parent().find(\".pet-quant-select\");\n// jQuery(selector).show();\n// });\n\n// jQuery(\".pet-quant-select li\").on(\"click\", function (e) {\n// var container = jQuery(\".pet-quant-select\");\n// var selectorVal = jQuery(this).attr(\"data-value\");\n// var selectorTextVal = jQuery(this).text();\n// var quantitytoUpdate = jQuery(this)\n// .parent()\n// .parent()\n// .find(\".selected-pet-quant\");\n// jQuery(quantitytoUpdate).text(selectorTextVal);\n// jQuery(quantitytoUpdate).attr(\"data-pet-amount\", selectorVal);\n// // console.log(selectorVal);\n// jQuery(this).parent().css(\"display\", \"none\");\n\n// if (selectorVal > 0) {\n// jQuery(quantitytoUpdate).addClass(\"selected\");\n// } else {\n// jQuery(quantitytoUpdate).removeClass(\"selected\");\n// }\n\n// jQuery(\".cat-price\").text(jQuery(\".amountCat\").attr(\"data-pet-amount\"));\n// jQuery(\".small-animal-price\").text(\n// jQuery(\".amountSmall\").attr(\"data-pet-amount\")\n// );\n// jQuery(\".dog-price\").text(jQuery(\".amoutDog\").attr(\"data-pet-amount\"));\n// });\n\n// jQuery(document).mouseup(function (e) {\n// var container = jQuery(\".pet-quant-select\");\n\n// // if the target of the click isn't the container nor a descendant of the container\n// if (!container.is(e.target) && container.has(e.target).length === 0) {\n// container.hide();\n// }\n// });\n\n// jQuery(\".cancel-process\").on(\"click\", function (e) {\n// jQuery(\"#reserveModal .close\").click();\n// jQuery(\".o-reserve-process .reservation-step-holder-item\").hide();\n// jQuery(\".book-a-viewing-date\").show();\n// });\n\njQuery(\"#reserveModal .close\").on(\"click\", function (e) {\n jQuery(\".o-reserve-process .reservation-step-holder-item\").hide();\n jQuery(\".book-a-viewing-date\").show();\n});\n\n// jQuery(\".show-acc-create\").on(\"click\", function (e) {\n// jQuery(\".o-reserve-process .reservation-step-holder-item\").hide();\n// jQuery(\".o-create-account-tipi\").show();\n// });\n\n// jQuery('.save-profile').on('click', function(e) {\n//\n// var validation = validate_acc_edit();\n// if (validation) {\n// SaveAccDetails();\n// }\n// });\n\n// jQuery(\".show-step-one\").on(\"click\", function (e) {\n// var validation = validate_acc_creation_popup();\n\n// if (validation == true) {\n// if (window.location.pathname.indexOf(\"viewing\") >= 0) {\n// create_lead_on_register(\"booking\");\n// } else if (window.location.pathname.indexOf(\"reserve\") >= 0) {\n// create_lead_on_register(\"reservation\");\n// }\n// }\n// });\n\n// jQuery('.show-step-two').on('click', function(e){\n// var day = jQuery('#reserve-calendar').datepicker('getDate').getDate();\n// var month = jQuery('#reserve-calendar').datepicker('getDate').getMonth() + 1;\n// var year = jQuery('#reserve-calendar').datepicker('getDate').getFullYear();\n//\n// var reservationDate = day+\" \"+month+\" \"+year;\n// var leaseTerm = jQuery('.active-term strong').text();\n//\n// var reservationStepOne = { 'reservationDate': reservationDate, 'leaseTerm':leaseTerm};\n//\n// // Put the object into storage\n// localStorage.setItem('reservationStepOne', JSON.stringify(reservationStepOne));\n//\n// get_ancilliries();\n//\n// });\n\n// jQuery('.show-payment-step').on('click', function(e){\n// jQuery('.o-reserve-process .reservation-step-holder-item').hide('slow');\n// jQuery('.o-reserve-payment-step').show('slow');\n//\n// var selectedParking = jQuery('.active-parking-item strong').text();\n// var animalsDog = jQuery('.amoutDog').text().split('');\n// var animalsCat = jQuery('.amountCat').text().split('');\n// var animalsSmall = jQuery('.amountSmall').text().split('');\n//\n// var reservationStepTwo = { 'selectedParking': selectedParking, 'animalsDog':animalsDog[0], 'animalsCat':animalsCat[0], 'animalsSmall':animalsSmall[0] };\n//\n// localStorage.setItem('reservationStepTwo', JSON.stringify(reservationStepTwo));\n//\n// var flowObject = JSON.parse(localStorage.getItem('flowObject'));\n// var StepOne = JSON.parse(localStorage.getItem('reservationStepOne'));\n// var StepTwo = JSON.parse(localStorage.getItem('reservationStepTwo'));\n//\n// // jQuery('.selected-apartment-details .unit-name').text(flowObject['unitNumber']+\" \"+flowObject['unitBuilding']);\n// // jQuery('.selected-apartment-details .unit-price strong').text(\"£\"+flowObject['unitRent']);\n// if(StepTwo['animalsDog'] === '0') {\n// dogs = '';\n// } else {\n// if (StepTwo['animalsDog'] > 1) {\n// var dogString = \" Dogs \";\n// } else {\n// var dogString = \" Dog \";\n// }\n// var dogs = \" | \"+StepTwo['animalsDog']+ dogString;\n// }\n//\n// if(StepTwo['animalsCat'] === '0') {\n// cats = '';\n// } else {\n// if (StepTwo['animalsCat'] > 1) {\n// var catString = \" Cats \";\n// } else {\n// var catString = \" Cat \";\n// }\n// var cats = \" | \"+StepTwo['animalsCat']+catString;\n// }\n//\n// if(StepTwo['animalsSmall'] === '0') {\n// smallanimals = '';\n// } else {\n// if (StepTwo['animalsSmall'] > 1) {\n// var smlAnimalString = \" Small Animals \";\n// } else {\n// var smlAnimalString = \" Small Animal \";\n// }\n// var smallanimals = \" | \"+StepTwo['animalsSmall'] + smlAnimalString;\n// }\n//\n//\n// jQuery('.selected-apartment-details .unit-specs').text(flowObject['unitBeds']+\" | \"+flowObject['unitFurn']+\" | \"+flowObject['unitSize']+\"sqm \"+cats+dogs+smallanimals+\" | \"+StepTwo['selectedParking']);\n// // jQuery('.selected-apartment-image').css('background-image', 'url(' + flowObject['unitImage'] + ')');\n// });\n\n// jQuery('.show-viewing-confirmation').on('click', function(e){\n//\n// var day = jQuery('#book-a-viewing-calendar').datepicker('getDate').getDate();\n// var month = jQuery('#book-a-viewing-calendar').datepicker('getDate').getMonth() + 1;\n// var year = jQuery('#book-a-viewing-calendar').datepicker('getDate').getFullYear();\n//\n// if(month < 10) {\n// var newmonth = '0'+month;\n// } else {\n// var newmonth = month;\n// }\n//\n//\n// var viewingDate = day+\" \"+newmonth+\" \"+year;\n// var timeSlot = jQuery('.active-slot').text();\n// var viewingPref = jQuery('input[name=\"viewing-method\"]:checked').val();\n// var flowObject = JSON.parse(localStorage.getItem('flowObject'));\n// var viewingDataObject = { 'viewingDate': viewingDate, 'timeSlot':timeSlot, 'viewingPref':viewingPref};\n//\n// // Put the object into storage\n// localStorage.setItem('viewingDataObject', JSON.stringify(viewingDataObject));\n//\n// // D d M Y\n// $.post(\n// '/olj-date',\n// {\n// Date: year+'-'+newmonth+'-'+day ,\n// Format: 'D d M Y'\n// },\n// function(data) {\n// jQuery('.confirmation-message .selected-date').text(data.date);\n// }\n// );\n// jQuery('.confirmation-message .selected-timeslot').text(timeSlot);\n// createBooking();\n//\n// });\n\n// jQuery('.show-res-confirmed').on('click', function(e){\n// var validation = validate_booking_terms();\n// if (validation) {\n// var flowObject = JSON.parse(localStorage.getItem('flowObject'));\n// jQuery('.desktop-right-column .unit-image').css('background-image', 'url(' + flowObject['unitImage'] + ')');\n// jQuery('.left-col-desltop .unit-image').css('background-image', 'url(' + flowObject['unitImage'] + ')');\n// reserve_unit();\n// });\n\n//Reservation Flow Object\n\njQuery(\".data-flow\").on(\"click\", function () {\n var flowType = jQuery(this).attr(\"data-flow\");\n var unitSize = jQuery(this).attr(\"data-unit-size\");\n var unitRent = jQuery(this).attr(\"data-unit-rent\");\n var unitFurn = jQuery(this).attr(\"data-unit-furnished\");\n var unitBeds = jQuery(this).attr(\"data-unit-beds\");\n var unitImage = jQuery(this).attr(\"data-unit-image\");\n var unitName = jQuery(this).attr(\"data-unit-name\");\n var unitNID = jQuery(this).attr(\"data-nid\");\n\n var r = /\\d+/;\n var str = unitName;\n var x = $.trim(str.match(r).toString());\n var str_split = str.split(x);\n var arr = [];\n $.each(str_split, function (i, val) {\n arr.push($.trim(val));\n arr.push(x.toString());\n });\n arr.pop();\n\n var flowObject = {\n flowType: flowType,\n unitSize: unitSize,\n unitRent: unitRent,\n unitFurn: unitFurn,\n unitBeds: unitBeds,\n unitImage: unitImage,\n unitNumber: arr[1],\n unitBuilding: arr[2],\n unitNid: unitNID,\n };\n\n // Put the object into storage\n localStorage.setItem(\"flowObject\", JSON.stringify(flowObject));\n\n user_status_check();\n});\n\njQuery(\".building\").hover(function () {\n jQuery(this).toggleClass(\"open-building\");\n});\n\n// jQuery(\".show-acc-res\").on(\"click\", function () {\n// jQuery(\".m-profile-blob\").show();\n// jQuery(\".m-upcommings-viewing\").hide();\n// jQuery(\".m-find-a-home\").hide();\n// jQuery(\".m-edit-profile\").hide();\n// jQuery(\".m-finalize-reservation\").show();\n// });\n\n// jQuery(\".show-viewing-res\").on(\"click\", function () {\n// jQuery(\".m-profile-blob\").show();\n// jQuery(\".m-upcommings-viewing\").show();\n// jQuery(\".m-find-a-home\").hide();\n// jQuery(\".m-edit-profile\").hide();\n// jQuery(\".m-finalize-reservation\").hide();\n// });\n\n// jQuery(\".show-acc-find-home\").on(\"click\", function () {\n// jQuery(\".m-profile-blob\").show();\n// jQuery(\".m-upcommings-viewing\").hide();\n// jQuery(\".m-find-a-home\").show();\n// jQuery(\".m-edit-profile\").hide();\n// jQuery(\".m-finalize-reservation\").hide();\n// });\n\n// jQuery(\".show-acc-edit\").on(\"click\", function () {\n// jQuery(\".m-profile-blob\").hide();\n// jQuery(\".m-upcommings-viewing\").hide();\n// jQuery(\".m-find-a-home\").hide();\n// jQuery(\".m-edit-profile\").show();\n// jQuery(\".m-finalize-reservation\").hide();\n// });\n\n// jQuery(\".info-icon\").on(\"click\", function () {\n// jQuery(\".info-icon-content\").hide(\"slow\");\n// var infocontent = jQuery(this).find(\".info-icon-content\");\n// jQuery(infocontent).toggle(\"slow\");\n// });\n\n// jQuery(document).mouseup(function (e) {\n// var container = jQuery(\".info-icon\");\n\n// // if the target of the click isn't the container nor a descendant of the container\n// if (!container.is(e.target) && container.has(e.target).length === 0) {\n// jQuery(\".info-icon-content\").hide(\"slow\");\n// }\n// });\n\njQuery(\"#auth0-login-container\").on(\"DOMNodeInserted\", function (e) {\n // console.log('button is ready');\n\n if (\n jQuery(\n \"button[data-provider=google-oauth2] .auth0-lock-social-button-text\"\n ).text() === \"Log in with Google\"\n ) {\n jQuery(\n \"button[data-provider=google-oauth2] .auth0-lock-social-button-text\"\n ).text(\"Continue with Google\");\n }\n\n if (\n jQuery(\n \"button[data-provider=facebook] .auth0-lock-social-button-text\"\n ).text() === \"Log in with Facebook\"\n ) {\n jQuery(\n \"button[data-provider=facebook] .auth0-lock-social-button-text\"\n ).text(\"Continue with Facebook\");\n }\n\n if (\n jQuery(\n \"button[data-provider=apple] .auth0-lock-social-button-text\"\n ).text() === \"Log in with Apple\"\n ) {\n jQuery(\"button[data-provider=apple] .auth0-lock-social-button-text\").text(\n \"Continue with Apple\"\n );\n }\n});\n\nsetTimeout(function () {\n jQuery(\".auth0-lock-form\").find('.auth-lock-social-buttons-pane').siblings().remove();\n jQuery(\".auth0-lock-widget-container\").find('.auth0-lock-submit').remove();\n}, 3000);\n// if (document.getElementById('book-a-viewing-calendar')) {\n// jQuery( \"#book-a-viewing-calendar\" ).datepicker({\n// minDate: 3,\n// onSelect: function(dateText) {\n// var splitter = this.value.split(\"/\");\n// var oljdate = splitter[2]+'-'+splitter[0]+'-'+splitter[1];\n// get_booking_avail_slot(oljdate);\n// jQuery('body').addClass('calendar-loaded');\n// jQuery('.book-a-viewing-date .book-a-viewing-info .generic-validation').remove();\n// }\n// });\n// } else {\n// // do stuff\n// }\n\n// A.21 STICKY HEADER START ----------------------------------------------------------------------------------------------------------\nvar stickyOffset = $(\".o-header\").offset().top,\n sticky = $(\".o-header\");\nif ($(\".o-header\").length) {\n if (\n $(\"body\").hasClass(\"adminimal-admin-toolbar\") &&\n !$(\"body\").hasClass(\"toolbar-tray-open\")\n ) {\n stickyOffset -= 39;\n } else if (\n $(\"body\").hasClass(\"adminimal-admin-toolbar\") &&\n $(\"body\").hasClass(\"toolbar-tray-open\")\n ) {\n stickyOffset -= 79;\n }\n}\n$(window)\n .on(\"resize\", function () {\n if ($(\".o-header\").length) {\n $(window).scroll(function () {\n var scroll = $(window).scrollTop();\n if (scroll > stickyOffset) {\n $(\"html\").addClass(\"fixed-nav\");\n sticky.addClass(\"fixed-top\");\n } else {\n $(\"html\").removeClass(\"fixed-nav\");\n sticky.removeClass(\"fixed-top\");\n }\n });\n }\n if ($(\".o-2021-image-carousel\").length) {\n var imageCarousel = $(\".o-2021-image-carousel\");\n var scrolled = false;\n $(window).scroll(function () {\n var top_of_element = imageCarousel.offset().top;\n var bottom_of_element =\n imageCarousel.offset().top + imageCarousel.outerHeight();\n var bottom_of_screen = $(window).scrollTop() + $(window).innerHeight();\n var top_of_screen = $(window).scrollTop();\n if (\n bottom_of_screen > top_of_element &&\n top_of_screen < bottom_of_element &&\n !scrolled\n ) {\n scrolled = true;\n setTimeout(function () {\n $(\".o-2021-image-carousel .m-2021-image-carousel\").trigger(\n \"next.owl\"\n );\n }, 350);\n }\n });\n }\n })\n .resize();\n\n// A.21 END ----------------------------------------------------------------------------------------------------------\n\n// 2021 STICKY UNIT PAGE DETAIL CONTROLS START\n\nvar $sticky = $(\".m-block._mobile\");\nvar $scrollToTop = $(\".scroll-to-top\");\nif ($sticky.length && window.innerWidth < 768) {\n var stickytop = $(window).height() + 80; // $sticky.offset().top;\n\n $(window).scroll(function () {\n var scroll = $(window).scrollTop() + $(window).height();\n\n if (scroll >= stickytop) {\n $sticky.addClass(\"sticky\");\n $scrollToTop.css(\"bottom\", \"105px\");\n } else {\n $sticky.removeClass(\"sticky\");\n $scrollToTop.css(\"bottom\", \"5%\");\n }\n });\n}\n\n// 2021 STICKY UNIT PAGE DETAIL CONTROLS END\n\n// A.22 LOAD BLAZY PLUGIN ----------------------------------------------------------------------------------------------------------\n\nvar bLazy = new Blazy({\n breakpoints: [\n {\n width: 767, // max-width\n src: \"data-src-small\",\n },\n {\n width: 768, // max-width\n src: \"data-src-medium\",\n },\n ],\n});\n\njQuery(\".owl-carousel\").on(\"changed.owl.carousel\", bLazy.revalidate);\n\n$(\".o-2021-building-gallery .m-thumbnail\").click(function () {\n bLazy.revalidate();\n});\n// A.22 END ----------------------------------------------------------------------------------------------------------\n\n// A.23 READ MORE/LESS START ----------------------------------------------------------------------------------------------------------\nvar maxHeight;\nfunction showReadMore() {\n $this = jQuery(\".m-copy-wrap .m-copy\");\n var benefitCount = jQuery(\n \".o-seo-benefits-listing .m-block-wrap .m-block\"\n ).length;\n if ($this) {\n jQuery(\".m-copy-wrap .m-copy\").each(function () {\n var parent = jQuery(this).parent();\n var cta = parent.next();\n if (jQuery($this).height() > jQuery($this).parent().height()) {\n cta.css({ display: \"inline-block\" });\n } else {\n cta.css({ display: \"none\" });\n }\n });\n }\n if (benefitCount > 4) {\n var count = 0;\n var wrapper = jQuery(\".o-seo-benefits-listing .m-block-wrap\");\n jQuery(\".o-seo-benefits-listing .m-cta-wrap\").addClass(\"show\");\n if (jQuery(window).width() <= 767) {\n maxHeight =\n jQuery(\".o-seo-benefits-listing .m-block-wrap .m-block\").innerHeight() *\n 2;\n } else {\n maxHeight = jQuery(\n \".o-seo-benefits-listing .m-block-wrap .m-block\"\n ).innerHeight();\n }\n wrapper.css(\"max-height\", maxHeight);\n }\n}\nshowReadMore();\njQuery(window).on(\"load\", function () {\n showReadMore();\n});\n\njQuery(\".o-seo-benefits-listing .a-cta\").on(\"click\", function (e) {\n e.preventDefault();\n if (jQuery(this).text() == \"Show me more\") {\n // //jQuery(\"#expand-copy\").removeAttr('id');\n jQuery(this).text(\"Show me less\");\n jQuery(this).removeClass(\"_down-arrow\");\n jQuery(this).addClass(\"_up-arrow\");\n jQuery(\".o-seo-benefits-listing .m-block-wrap\").css(\n \"max-height\",\n \"inherit\"\n );\n } else {\n jQuery(this).text(\"Show me more\");\n jQuery(this).addClass(\"_down-arrow\");\n jQuery(this).removeClass(\"_up-arrow\");\n jQuery(\".o-seo-benefits-listing .m-block-wrap\").css(\n \"max-height\",\n maxHeight\n );\n }\n});\n\njQuery(\".js--show-more\").on(\"click\", function (e) {\n e.preventDefault();\n var copy = jQuery(this).prev();\n //jQuery(this).text((jQuery(this).text() == 'Show me more') ? 'Show me less' : 'Show me more');\n if (jQuery(this).text() == \"Show me more\") {\n // //jQuery(\"#expand-copy\").removeAttr('id');\n jQuery(this).text(\"Show me less\");\n jQuery(this).removeClass(\"_down-arrow\");\n jQuery(this).addClass(\"_up-arrow\");\n copy.addClass(\"open\");\n } else {\n jQuery(this).text(\"Show me more\");\n jQuery(this).addClass(\"_down-arrow\");\n jQuery(this).removeClass(\"_up-arrow\");\n copy.removeClass(\"open\");\n }\n});\n\n// A.23 END ----------------------------------------------------------------------------------------------------------\n\n// A.24 SEO HEADER SLIDER START ----------------------------------------------------------------------------------------------------------\n\njQuery(\".o-seo-page-hero .m-cta-wrap .a-cta[href*='#']\").each(function () {\n jQuery(this).addClass(\"_down-arrow\");\n jQuery(this).on(\"click\", function (e) {\n e.preventDefault();\n e.stopPropagation();\n var dest = jQuery(this).attr(\"href\");\n jQuery(\"html,body\").animate(\n { scrollTop: $(dest).offset().top - $(\".o-header\").height() },\n 1000,\n \"swing\"\n );\n });\n});\n\n// A.24 END ----------------------------------------------------------------------------------------------------------\n\n// A.25 EQUAL HEIGHTS START ----------------------------------------------------------------------------------------------------------\n\nvar equalheight;\nequalheight = function (container) {\n var currentTallest = 0,\n currentRowStart = 0,\n topPosition = 0,\n currentDiv = 0,\n rowDivs = [],\n $el;\n $(container).each(function () {\n $el = $(this);\n $($el).height(\"auto\");\n topPosition = $el.position().top;\n\n if (currentRowStart !== topPosition) {\n for (currentDiv = 0; currentDiv < rowDivs.length; currentDiv++) {\n rowDivs[currentDiv].height(currentTallest);\n }\n rowDivs.length = 0; // empty the array\n currentRowStart = topPosition;\n currentTallest = $el.height();\n rowDivs.push($el);\n } else {\n rowDivs.push($el);\n currentTallest =\n currentTallest < $el.height() ? $el.height() : currentTallest;\n }\n for (currentDiv = 0; currentDiv < rowDivs.length; currentDiv++) {\n rowDivs[currentDiv].height(currentTallest);\n }\n });\n};\nvar textLength = 0;\nif (jQuery(window).width() > 767 && jQuery(window).width() < 1024) {\n textLength = 75;\n} else if (jQuery(window).width() >= 1024 && jQuery(window).width() < 1100) {\n textLength = 60;\n} else if (jQuery(window).width() >= 1100 && jQuery(window).width() < 1200) {\n textLength = 55;\n} else if (jQuery(window).width() >= 1200) {\n textLength = 95;\n}\n\nif (jQuery(window).width() > 767) {\n jQuery(\".o-seo-landing-page-widgets .m-body .a-copy\").each(function () {\n var title = jQuery(this).text();\n if (title.length > textLength) {\n var shortText =\n jQuery\n .trim(title)\n .substring(0, textLength)\n .split(\" \")\n .slice(0, -1)\n .join(\" \") + \"...\";\n jQuery(this).text(shortText);\n }\n });\n}\n\n// 2021 - Homeviews carousel character limit START\nvar homeviewsTitleLength = 200;\nvar homeviewsDescriptionLength = 200;\njQuery(\".o-2021-homeviews-carousel .m-body .a-title\").each(function () {\n var title = jQuery(this).text();\n if (title.length > homeviewsTitleLength) {\n var shortText =\n jQuery\n .trim(title)\n .substring(0, homeviewsTitleLength)\n .split(\" \")\n .slice(0, -1)\n .join(\" \") + \"...\";\n jQuery(this).text(shortText);\n }\n});\njQuery(\".o-2021-homeviews-carousel .m-body .a-copy\").each(function () {\n var title = jQuery(this).text();\n if (title.length > homeviewsDescriptionLength) {\n var shortText =\n jQuery\n .trim(title)\n .substring(0, homeviewsDescriptionLength)\n .split(\" \")\n .slice(0, -1)\n .join(\" \") + \"...\";\n jQuery(this).text(shortText);\n }\n});\n// 2021 - Homeviews carousel character limit END\n\njQuery(window).on(\"load\", function () {\n if (jQuery(window).width() > 767) {\n equalheight(\".o-seo-landing-page-widgets .m-card .m-body\");\n equalheight(\".o-apartment-listing .o-unit-card .m-card-body\");\n // equalheight(\".o-grid-apartments .m-card .m-body\");\n }\n equalheight(\n \".o-dashboard-viewings .m-cards._multiple .o-unit-card .m-card-body\"\n );\n});\n\nvar resizeTimer;\n$(window).resize(function () {\n clearTimeout(resizeTimer);\n resizeTimer = setTimeout(function () {\n if (window.innerWidth > 767) {\n equalheight(\".o-seo-landing-page-widgets .m-card .m-body\");\n equalheight(\".o-apartment-listing .o-unit-card .m-card-body\");\n // equalheight(\".o-grid-apartments .m-card .m-body\");\n }\n equalheight(\n \".o-dashboard-viewings .m-cards._multiple .o-unit-card .m-card-body\"\n );\n }, 250);\n});\n\n// A.25 END ----------------------------------------------------------------------------------------------------------\n\n// A.26 SEO PAGE UNIT FILTER START ----------------------------------------------------------------------------------------------------------\n\njQuery(\".o-facelift-search-block .o-seo-show-more .a-link\").text(\n \"Show me more\"\n);\n\njQuery(\".m-filter-wrap .a-cta\").on(\"click\", function (e) {\n e.preventDefault();\n e.stopPropagation();\n jQuery(this).parent().toggleClass(\"open\");\n if (jQuery(this).parent().hasClass(\"open\")) {\n jQuery(\".m-filter-wrap .a-cta\").removeClass(\"_down-arrow\");\n jQuery(\".m-filter-wrap .a-cta\").addClass(\"_up-arrow\");\n } else {\n jQuery(\".m-filter-wrap .a-cta\").removeClass(\"_up-arrow\");\n jQuery(\".m-filter-wrap .a-cta\").addClass(\"_down-arrow\");\n }\n});\n\nif (jQuery(window).width() > 767) {\n jQuery(\".features-included span\").on(\"click\", function (e) {\n jQuery(this).toggleClass(\"open\");\n });\n}\n\nsetTimeout(function () {\n if (jQuery(\".preselected-filters\")[0]) {\n jQuery(\".a-btn-clear\").click();\n jQuery(\".pr-filt\").each(function (i, obj) {\n var filt = jQuery(obj).text();\n jQuery(\".o-search-component \" + filt).click();\n });\n } else {\n // are we coming from the CTA bar (TIPIS-755)\n var fromCTA = localStorage.getItem(\"tipi-filters-lfcta\");\n if ((typeof fromCTA == \"undefined\" || !fromCTA) && !preFilter) {\n // console.log('clearing filters');\n jQuery(\".a-btn-clear\").click();\n } else {\n setTimeout(function () {\n localStorage.setItem(\"tipi-filters-lfcta\", false);\n }, 2000);\n }\n }\n}, 1500);\n\n// A.26 END ----------------------------------------------------------------------------------------------------------\n\n// A.27. STAR RATINGS -------------------------------------------------------------------------------------------------------\njQuery(\".m-star-rating\").each(function () {\n var val = jQuery(this).find(\".a-value\").text();\n var filledBar = jQuery(this).find(\".a-filled\");\n\n var calc = (val / 5) * 100 + \"%\";\n filledBar.css(\"width\", calc);\n});\n// A.27. END -----------------------------------------------------------------------------------------------------------\n\n// A.28. STICKY BUTTONS IN UNIT HERO\n\nif (document.body.clientWidth <= 991) {\n var stiky = $(\".o-unit-hero .m-sticky\");\n var stikyWrap = $(\".o-unit-hero .m-sticky-wrap\");\n var startSticky,\n scrollTop = 0;\n var stickyButtons = function () {\n if (stiky.length !== 0) {\n startSticky =\n stikyWrap.offset().top -\n $(\".o-header\").outerHeight() +\n $(\".o-unit-hero .m-sticky-wrap\").outerHeight() +\n 17;\n scrollTop =\n window.pageYOffset !== undefined\n ? window.pageYOffset +\n $(window).height() -\n $(\".o-header\").outerHeight()\n : (\n document.documentElement +\n $(window).height() -\n $(\".o-header\").outerHeight() ||\n document.body.parentNode +\n $(window).height() -\n $(\".o-header\").outerHeight() ||\n document.body\n ).scrollTop +\n $(window).height() -\n $(\".o-header\").outerHeight();\n if (scrollTop > startSticky && $(this).scrollTop() != t) {\n $(\".o-unit-hero .m-sticky\").addClass(\"fixed\");\n $(\".recaptcha-terms\").css(\n \"margin-bottom\",\n $(\".o-unit-hero .m-sticky\").outerHeight()\n );\n if (document.body.clientWidth <= 767) {\n if ($(\"html\").hasClass(\"ios\")) {\n $(\".scroll-to-top\").css(\"bottom\", \"85px\");\n } else {\n $(\".scroll-to-top\").css(\"bottom\", \"75px\");\n }\n } else {\n $(\".scroll-to-top\").css(\"bottom\", \"80px\");\n }\n } else {\n $(\".o-unit-hero .m-sticky\").removeClass(\"fixed\");\n $(\".recaptcha-terms\").removeAttr(\"style\");\n $(\".scroll-to-top\").css(\"bottom\", \"5%\");\n }\n }\n };\n document.addEventListener(\"touchmove\", stickyButtons, false);\n document.addEventListener(\"scroll\", stickyButtons, false);\n document.addEventListener(\"resize\", stickyButtons, false);\n document.addEventListener(\"gesturechange\", stickyButtons, false);\n}\n// A.28. END -----------------------------------------------------------------------------------------------------------\n\n// A.31. SHOW MORE/LESS ON UNIT PAGE HEROS -------------------------------------------------------------------------------------------------------\n\n// function AddReadMore() {\n// var carLmt = 165;\n// var readMoreTxt = \"Show me more\";\n// var readLessTxt = \"Show me less\";\n\n// $(\".addReadMore\").each(function () {\n// if ($(this).find(\".firstSec\").length) return;\n\n// var allstr = $(this).text();\n// if (allstr.length > carLmt) {\n// var firstSet = $.trim(allstr)\n// .substring(0, carLmt)\n// .split(\" \")\n// .slice(0, -1)\n// .join(\" \");\n// var firstSet2 = allstr.substring(0, carLmt);\n// var secdHalf = allstr.substring(carLmt, allstr.length);\n\n// if (document.body.clientWidth <= 976) {\n// var strtoadd =\n// \"<span class='hideMe'>\" +\n// firstSet +\n// \"</span>\" +\n// \"<span class='SecSec'>\" +\n// firstSet2 +\n// secdHalf +\n// \"</span><span class='readMore' title='Click to Show More'>\" +\n// readMoreTxt +\n// \"</span><span class='readLess' title='Click to Show Less'>\" +\n// readLessTxt +\n// \"</span>\";\n// } else {\n// var strtoadd =\n// firstSet +\n// \"<span class='SecSec'>\" +\n// firstSet2 +\n// secdHalf +\n// \"<span class='readLess' title='Click to Show Less'>\" +\n// readLessTxt +\n// \"</span></span><span class='readMore' title='Click to Show More'>\" +\n// readMoreTxt +\n// \"</span>\";\n// }\n// $(this).html(strtoadd);\n// }\n// });\n// //Read More and Read Less Click Event binding\n// $(document).on(\"click\", \".readMore,.readLess\", function () {\n// $(this)\n// .closest(\".addReadMore\")\n// .toggleClass(\"showlesscontent showmorecontent\");\n// if (document.body.clientWidth <= 976) {\n// $(this).closest(\".addReadMore\").toggleClass(\"hideMe\");\n// }\n// });\n\n// if ($(\".o-unit-hero\").find(\".o-unit-features\").length > 0) {\n// $(\".o-unit-hero\").addClass(\"_features\");\n// }\n// }\n// AddReadMore();\n\n// A.31. END -----------------------------------------------------------------------------------------------------------\n\n// A.33. Open concessions accordion if coming from concessions terms link\nif (window.location.href.indexOf(\"#collapse0\") > -1) {\n $(\"#collapse0\").collapse();\n}\n// A.33. END -----------------------------------------------------------------------------------------------------------\n\n// 2021 - Push footer to bottom of screen START\n\n$(\".o-2021-logo-black-strip\")\n .parent()\n .parent()\n .parent()\n .css(\"margin-top\", \"auto\");\n\n// 2021 - Push footer to bottom of screen END\n\n// 2021 - Basic cards character limit START\n\n// var basicCardDescriptionLength = 200;\n// jQuery(\".o-2021-basic-image-cards .m-body .a-copy\").each(function () {\n// var title = jQuery(this).text();\n// if (title.length > basicCardDescriptionLength) {\n// var shortText =\n// jQuery\n// .trim(title)\n// .substring(0, basicCardDescriptionLength)\n// .split(\" \")\n// .slice(0, -1)\n// .join(\" \") + \"...\";\n// jQuery(this).text(shortText);\n// }\n// });\n\n// END -----------------------------------------------------------------------------------------------------------\n\n// MODALS -------------------------------------------------------------------------------------------------------------\n\n// $(\".a-info-icon\").on(\"click\", function (e) {\n// e.preventDefault();\n// e.stopPropagation();\n// console.log(\"this happened\");\n// $(\"body\").toggleClass(\"modal-open\");\n// $(\".o-benefits-modal\").toggleClass(\"_is-open\");\n// });\n\n// $(\".a-modal-close-modal\").on(\"click\", function (e) {\n// e.preventDefault();\n// e.stopPropagation();\n// $(\"body\").removeClass(\"modal-open\");\n// $(\".modal-backdrop\").remove();\n// $(\".o-benefits-modal\").removeClass(\"show\");\n// $(\".o-benefits-modal\").attr(\"aria-hidden\", \"true\");\n// $(\".o-benefits-modal\").css(\"display\", \"none\");\n// });\n\n// END: MODALS --------------------------------------------------------------------------------------------------------\n\n// Cookie PRO scroll to bottom Safari bug fix START\n\n// Cookie PRO scroll to bottom Safari bug fix END\n\n// START: WEBFORM DATEPICKER ------------------------------------------\nvar datepickerOptions = {\n changeMonth: false,\n changeYear: false,\n monthNamesShort: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n dayNamesMin: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n firstDay: 1,\n dateFormat: \"dd/mm/yy\",\n minDate: new Date(),\n beforeShow: function (input, inst) {\n setTimeout(function () {\n if ($(window).width() < 767) {\n $(inst.input)\n .closest(\".js-form-type-date\")\n .css(\"margin-bottom\", inst.dpDiv.outerHeight() + 40 + \"px\");\n }\n inst.dpDiv.css({\n top: $(input).offset().top + 69,\n });\n }, 1);\n },\n onChangeMonthYear: function (year, month, inst) {\n setTimeout(function () {\n if ($(window).width() < 767) {\n $(inst.input)\n .closest(\".js-form-type-date\")\n .css({ \"margin-bottom\": inst.dpDiv.outerHeight() + 40 + \"px\" });\n }\n }, 1);\n },\n onClose: function () {\n $(this).closest(\".js-form-type-date\").css(\"margin-bottom\", \"\");\n },\n};\n\n$(\"form.enquire-about-unit.o-webform .js-form-type-date input.hasDatepicker\").each(function () {\n var minDateAttr = $(this).attr(\"min\");\n datepickerOptions.minDate = minDateAttr.length ? minDateAttr : new Date();\n $(this).datepicker(\"option\", datepickerOptions);\n});\n\n$(document).ajaxSuccess(function () {\n if (\n $(\n \"form.enquire-about-unit.o-webform .js-form-type-date input.hasDatepicker\"\n ).length > 0\n ) {\n $(\n \"form.enquire-about-unit.o-webform .js-form-type-date input.hasDatepicker\"\n ).datepicker(\"option\", datepickerOptions);\n }\n});\n\n// END: WEBFORM DATEPICKER ------------------------------------------\n\n// Re-run blazy\nfunction reRunBlazy() {\n if (typeof Blazy !== \"undefined\") {\n bLazy.revalidate();\n }\n}\n\nif (document.readyState === 'complete') {\n reRunBlazy();\n} else {\n document.addEventListener('readystatechange', function() {\n if (document.readyState === 'complete') {\n reRunBlazy();\n }\n });\n}\n","/*\n * JavaScript Templates Runtime\n * https://github.com/blueimp/JavaScript-Templates\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/* global define */\n\n;(function ($) {\n 'use strict'\n var tmpl = function (id, data) {\n var f = tmpl.cache[id]\n return data ? f(data, tmpl) : function (data) {\n return f(data, tmpl)\n }\n }\n tmpl.cache = {}\n tmpl.encReg = /[<>&\"'\\x00]/g // eslint-disable-line no-control-regex\n tmpl.encMap = {\n '<': '<',\n '>': '>',\n '&': '&',\n '\"': '"',\n \"'\": '''\n }\n tmpl.encode = function (s) {\n return (s == null ? '' : '' + s).replace(\n tmpl.encReg,\n function (c) {\n return tmpl.encMap[c] || ''\n }\n )\n }\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return tmpl\n })\n } else if (typeof module === 'object' && module.exports) {\n module.exports = tmpl\n } else {\n $.tmpl = tmpl\n }\n}(this))\n\n\n\n","// JAVASCRIPT LAYER [APP.JS] =========================================================================================\n\n// ====== INDEX ======================================================================================================\n// ==\n// == A. MOBILE CLASS\n// ==\n// ====== INDEX ======================================================================================================\n\n// A. SHOW/HIDE +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\n// A.1. MOBILE CLASS --------------------------------------------------------------------------------------------------\n\n\n var deviceAgent = navigator.userAgent.toLowerCase();\n\n $('html').addClass('desktop');\n\n if (deviceAgent.match(/(iphone|ipod|ipad)/)) {\n $('html').removeClass('desktop');\n $('html').addClass('ios');\n $('html').addClass('mobile');\n }\n\n\n if (deviceAgent.match(/android/)) {\n $('html').removeClass('desktop');\n $('html').addClass('android');\n $('html').addClass('mobile');\n }\n\n if (deviceAgent.match(/blackberry/)) {\n $('html').removeClass('desktop');\n $('html').addClass('blackberry');\n $('html').addClass('mobile');\n }\n\n if (deviceAgent.match(/(symbianos|^sonyericsson|^nokia|^samsung|^lg)/)) {\n $('html').removeClass('desktop');\n $('html').addClass('mobile');\n }\n\n if (navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Mac') != -1 && navigator.userAgent.indexOf('Chrome') == -1) {\n $('html').addClass('safari-mac'); // provide a class for the safari-mac specific css to filter with\n }\n\n if (navigator.userAgent.indexOf('Chrome') != -1 && navigator.userAgent.indexOf('Mac') != -1) {\n $('html').addClass('chrome-mac'); // provide a class for the safari-mac specific css to filter with\n }\n\n// A.1. END -----------------------------------------------------------------------------------------------------------\n\n// A. END +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n","(function ($, Drupal, drupalSettings) {\n Drupal.behaviors.tipiBootstrapTheme = {\n attach: function (context, settings) {\n $('a[href=\"/message-modal/open?type=council_tax\"]').each(function () {\n var href = $(this).attr('href');\n $(this).attr('href', href + '&screen=' + ((window.innerWidth < 768) ? 'mobile' : 'desktop' ));\n });\n\n $('input[type=\"hidden\"][name=\"pardot_visitor_id\"]').each(function () {\n const pardotUID = TipiThemeGetCookie(\"visitor_id506241\");\n $(this).val(pardotUID).change().blur();\n });\n\n if (TipiThemeGetCookie(\"gtm_custom_cookie\")) {\n // console.log('the gtm cookie now works');\n window.dataLayer.push({\n event: \"tipi_ajax_form_submission\",\n });\n document.cookie =\n \"gtm_custom_cookie=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;\";\n }\n\n // Replace the drupal error messages except the partner's enquire form,\n // we are using the error message content to show error modal on partner's enquire form page.\n if ($('article[about$=\"/partners/enquire-about-unit\"]').length === 0) {\n $(\"div[data-drupal-messages] div[role=alert]\").each(function () {\n $(this)\n .contents()\n .filter(function () {\n return this.nodeType == 3 && this.textContent.trim().length;\n })\n .replaceWith(\n \"Sorry, we found a little problem with your selection. Please update the relevant field below and try again.\"\n );\n });\n }\n\n // selecty for material style select boxes\n $(\"select.selecty\").each(function () {\n if (!$(this).hasClass(\"selecty-enabled\")) {\n $(this).addClass(\"selecty-enabled\");\n $(this).selecty();\n }\n });\n\n // Book a viewing populate hidden dropdown on min/max rent change\n $(\".js-form-item-rent-min .selecty .selecty-options li\").click(\n function () {\n // $('.js-form-item-rent-min')\n $(\".js-form-item-rent-min .a-dropdown\").val(\"\");\n }\n );\n $(\".js-form-item-rent-max .selecty .selecty-options li\").click(\n function () {\n // $('.js-form-item-rent-min')\n $(\".js-form-item-rent-max .a-dropdown\").val(\"\");\n }\n );\n\n $(\".o-modal.cta-modal\").on(\"show.bs.modal\", context, function (e) {\n // pull through the filters\n // tipi_dynamic__unit_name\n\n const triggeringElement = $(e.relatedTarget);\n var parentUnitCard = triggeringElement.closest(\".o-unit-search-card\");\n\n if (settings.tipi.node_type == \"unit\") {\n $(this)\n .find('input[name=\"tipi_dynamic__unit_name\"]')\n .val(settings.tipi.node_title);\n $(this)\n .find(\"span.tipi_dynamic__unit_name\")\n .text(settings.tipi.node_title);\n const unitDataMarkup = settings.tipi.unit_markup;\n $(this)\n .find(\".m-block-content.m-modal-panel.form-wrapper.unit-details\")\n .remove();\n $(unitDataMarkup).insertBefore(\n $(this)\n .find(\n \".m-modal-header + .form-elements.form-wrapper .m-block-content\"\n )\n .first()\n );\n $(this)\n .find(\".m-block-content.m-modal-panel.form-wrapper.unit-details\")\n .next(\".m-block-content\")\n .hide();\n } else if (\n settings.tipi.node_type == \"building_marketing_page\" ||\n settings.tipi.node_type == \"page\"\n ) {\n if (\n settings.tipi.node_type == \"building_marketing_page\" ||\n settings.tipi.node_type == \"page\"\n ) {\n if (!parentUnitCard) {\n parentUnitCard = triggeringElement.closest(\".o-unit-search-card\");\n }\n if (parentUnitCard.length) {\n $(this)\n .find('input[name=\"tipi_dynamic__unit_name\"]')\n .val(parentUnitCard.find(\".a-unit-title a\").text());\n $(this)\n .find(\"span.tipi_dynamic__unit_name\")\n .text(parentUnitCard.find(\".a-unit-title a\").text());\n // if ($(this).find('span.tipi_dynamic__unit_name').text().indexOf(\"Madison\") >= 0) {\n // $(this).find('input[name=\"building\"][value=\"Madison\"]').attr('checked', 'checked');\n // } else if ($(this).find('span.tipi_dynamic__unit_name').text().indexOf(\"Landsby\") >= 0) {\n // $(this).find('input[name=\"building\"][value=\"Landsby\"]').attr('checked', 'checked');\n // } else if ($(this).find('span.tipi_dynamic__unit_name').text().indexOf(\"Montana & Dakota\") >= 0) {\n // $(this).find('input[name=\"building\"][value=\"Montana & Dakota\"]').attr('checked', 'checked');\n // } else if ($(this).find('span.tipi_dynamic__unit_name').text().indexOf(\"Alto\") >= 0) {\n // $(this).find('input[name=\"building\"][value=\"Alto\"]').attr('checked', 'checked');\n // } else if ($(this).find('span.tipi_dynamic__unit_name').text().indexOf(\"Alameda\") >= 0) {\n // $(this).find('input[name=\"building\"][value=\"Alameda\"]').attr('checked', 'checked');\n // } else if ($(this).find('span.tipi_dynamic__unit_name').text().indexOf(\"Ferrum\") >= 0) {\n // $(this).find('input[name=\"building\"][value=\"Ferrum\"]').attr('checked', 'checked');\n // } else if ($(this).find('span.tipi_dynamic__unit_name').text().indexOf(\"Beton\") >= 0) {\n // $(this).find('input[name=\"building\"][value=\"Beton\"]').attr('checked', 'checked');\n // } else if ($(this).find('span.tipi_dynamic__unit_name').text().indexOf(\"Canada Gardens\") >= 0) {\n // $(this).find('input[name=\"building\"][value=\"Canada Gardens\"]').attr('checked', 'checked');\n // } else if ($(this).find('span.tipi_dynamic__unit_name').text().indexOf(\"The Robinson\") >= 0) {\n // $(this).find('input[name=\"building\"][value=\"The Robinson\"]').attr('checked', 'checked');\n // }\n const building = parentUnitCard.data(\"building\");\n const rent = parentUnitCard.data(\"rent\");\n const rooms = parentUnitCard.data(\"beds\");\n\n const minRent = Math.floor(rent / 100) * 100;\n const maxRent = minRent + 100;\n\n $(this)\n .find('input[name=\"building\"][value=\"' + building + '\"]')\n .attr(\"checked\", \"checked\");\n\n document.getElementById(\"edit-rent-min--4\").value = minRent;\n document\n .querySelector(\"#edit-rent-min--4 option\")\n .removeAttribute(\"selected\");\n document\n .querySelector(\n '#edit-rent-min--4 option[value=\"' + minRent + '\"]'\n )\n .setAttribute(\"selected\", \"selected\");\n document\n .querySelector(\"#edit-rent-min--4+.selecty .selecty-options li\")\n .classList.remove(\"selected\");\n document\n .querySelector(\n '#edit-rent-min--4+.selecty .selecty-options li[data-value=\"' +\n minRent +\n '\"]'\n )\n .classList.add(\"selected\");\n document.querySelector(\n \"#edit-rent-min--4+.selecty .selecty-selected\"\n ).innerHTML = minRent + \" pcm\";\n\n document.getElementById(\"edit-rent-max--4\").value = maxRent;\n document\n .querySelector(\"#edit-rent-max--4 option\")\n .removeAttribute(\"selected\");\n document\n .querySelector(\n '#edit-rent-max--4 option[value=\"' + maxRent + '\"]'\n )\n .setAttribute(\"selected\", \"selected\");\n document\n .querySelector(\"#edit-rent-max--4+.selecty .selecty-options li\")\n .classList.remove(\"selected\");\n document\n .querySelector(\n '#edit-rent-max--4+.selecty .selecty-options li[data-value=\"' +\n maxRent +\n '\"]'\n )\n .classList.add(\"selected\");\n document.querySelector(\n \"#edit-rent-max--4+.selecty .selecty-selected\"\n ).innerHTML = maxRent + \" pcm\";\n\n if (parseInt(rooms) === 0) {\n document.getElementById(\n \"edit-bedrooms-studio--4\"\n ).checked = true;\n } else if (parseInt(rooms) === 1) {\n document.getElementById(\n \"edit-bedrooms-1-bed--4\"\n ).checked = true;\n } else if (parseInt(rooms) === 2) {\n document.getElementById(\n \"edit-bedrooms-2-bed--4\"\n ).checked = true;\n } else if (parseInt(rooms) === 3) {\n document.getElementById(\n \"edit-bedrooms-3-bed--4\"\n ).checked = true;\n } else if (parseInt(rooms) === 4) {\n document.getElementById(\n \"edit-bedrooms-4-bed--4\"\n ).checked = true;\n }\n }\n }\n } else {\n // have we clicked on book a viewing on a search result?\n if (!parentUnitCard.length)\n parentUnitCard = triggeringElement.closest(\n \".o-apartment-search-card\"\n );\n if (parentUnitCard.length) {\n $(this)\n .find('input[name=\"tipi_dynamic__unit_name\"]')\n .val(\n parentUnitCard\n .find('.meta div[data-key=\"unit-title\"]')\n .attr(\"data-value\")\n );\n $(this)\n .find(\"span.tipi_dynamic__unit_name\")\n .text(\n parentUnitCard\n .find('.meta div[data-key=\"unit-title\"]')\n .attr(\"data-value\")\n );\n // place the unit data into the form\n const unitDataMarkup = parentUnitCard\n .find(\".meta .unit-form-markup\")\n .html();\n $(this)\n .find(\".m-block-content.m-modal-panel.form-wrapper.unit-details\")\n .remove();\n $(unitDataMarkup).insertBefore(\n $(this)\n .find(\n \".m-modal-header + .form-elements.form-wrapper .m-block-content\"\n )\n .first()\n );\n $(this)\n .find(\".m-block-content.m-modal-panel.form-wrapper.unit-details\")\n .next(\".m-block-content\")\n .hide();\n }\n }\n\n const searchFilters = JSON.parse(localStorage.getItem(\"tipi-filters\"));\n if (typeof searchFilters != \"undefined\" && searchFilters != null) {\n // tipi_filter__has_parking\n const parking =\n typeof searchFilters[\".has-parking\"] != \"undefined\"\n ? searchFilters[\".has-parking\"]\n : false;\n if (parking)\n $(this).find('input[name=\"tipi_filter__has_parking\"]').val(parking);\n // tipi_filter__has_storage\n const storage =\n typeof searchFilters[\".has-storage\"] != \"undefined\"\n ? searchFilters[\".has-storage\"]\n : false;\n if (storage)\n $(this).find('input[name=\"tipi_filter__has_storage\"]').val(storage);\n // tipi_filter__has_pets\n const pets =\n typeof searchFilters[\".has-pets\"] != \"undefined\"\n ? searchFilters[\".has-pets\"]\n : false;\n if (pets)\n $(this).find('input[name=\"tipi_filter__has_pets\"]').val(pets);\n // tipi_filter__has_terrace\n const terrace =\n typeof searchFilters[\".has-terrace\"] != \"undefined\"\n ? searchFilters[\".has-terrace\"]\n : false;\n if (terrace)\n $(this).find('input[name=\"tipi_filter__has_terrace\"]').val(terrace);\n // tipi_filter__has_balcony\n const balcony =\n typeof searchFilters[\".has-balcony\"] != \"undefined\"\n ? searchFilters[\".has-balcony\"]\n : false;\n if (balcony)\n $(this).find('input[name=\"tipi_filter__has_balcony\"]').val(balcony);\n // tipi_filter__has_gym\n const gym =\n typeof searchFilters[\".has-balcony\"] != \"undefined\"\n ? searchFilters[\".has-gym\"]\n : false;\n if (gym) $(this).find('input[name=\"tipi_filter__has_gym\"]').val(gym);\n // tipi_filter__furnished_yes\n const furnished =\n typeof searchFilters[\".furnished-yes\"] != \"undefined\"\n ? searchFilters[\".furnished-yes\"]\n : false;\n if (furnished)\n $(this)\n .find('input[name=\"tipi_filter__furnished_yes\"]')\n .val(furnished);\n // rent\n const rentMin =\n typeof searchFilters[\".rent-min\"] != \"undefined\"\n ? searchFilters[\".rent-min\"]\n : false;\n const rentMax =\n typeof searchFilters[\".rent-max\"] != \"undefined\"\n ? searchFilters[\".rent-max\"]\n : false;\n if (rentMin) {\n $(this)\n .find('select[name=\"rent_min\"] option[value=\"' + rentMin + '\"]')\n .attr(\"selected\", \"selected\");\n $(this)\n .find('select[name=\"rent_min\"]')\n .next(\".selecty\")\n .find('.selecty-options li[data-value=\"' + rentMin + '\"]')\n .addClass(\"selected\");\n $(this)\n .find('select[name=\"rent_min\"]')\n .next(\".selecty\")\n .find(\".selecty-selected\")\n .text(\n $(this)\n .find('select[name=\"rent_min\"]')\n .next(\".selecty\")\n .find('.selecty-options li[data-value=\"' + rentMin + '\"]')\n .text()\n );\n }\n if (rentMax) {\n $(this)\n .find('select[name=\"rent_max\"] option[value=\"' + rentMax + '\"]')\n .attr(\"selected\", \"selected\");\n $(this)\n .find('select[name=\"rent_max\"]')\n .next(\".selecty\")\n .find('.selecty-options li[data-value=\"' + rentMax + '\"]')\n .addClass(\"selected\");\n $(this)\n .find('select[name=\"rent_max\"]')\n .next(\".selecty\")\n .find(\".selecty-selected\")\n .text(\n $(this)\n .find('select[name=\"rent_max\"]')\n .next(\".selecty\")\n .find('.selecty-options li[data-value=\"' + rentMax + '\"]')\n .text()\n );\n }\n }\n });\n },\n };\n})(jQuery, Drupal);\n"]}