Vue.component("vue-accordion-tabs",{template:'<div>            <div class="len-info-tabs-dktp len-tabs-alt clearfix">                <div class="tabs inner">                    <ul>                        <li v-for="(tab, index) in tabs">                            <a v-bind:class="{active: tab.active}" v-on:click="changeTab(tab)" href="javascript:void(0);">{{tab.title}}<\/a>                        <\/li>                    <\/ul>                <\/div>            <\/div>            <div class="len-comm-info clearfix">                <div class="inner clearfix">                    <slot><\/slot>                <\/div>            <\/div>        <\/div>',data:function(){return{tabs:[]}},props:{breakWidth:{type:[String,Number],"default":768}},mounted:function(){window.addEventListener("resize",this.handleResize);this.loadTabs()},beforeDestroy:function(){window.removeEventListener("resize",this.handleResize)},methods:{handleResize:function(){var t,n;if(window.innerWidth>=this.breakWidth){for(t=0,n=this.tabs.length-1;n>=0;--n)this.tabs[n].active&&(t=n),this.tabs[n].active=!1;this.tabs[t].active=!0;this.$emit("tab-change",this.tabs[t])}},loadTabs:function(){for(var n=0;n<this.$children.length;++n)this.tabs.push(this.$children[n]);this.tabs.length>0&&(this.tabs[0].active=!0,this.$emit("tab-change",this.tabs[0]))},changeTab:function(n){for(var t=0;t<this.tabs.length;++t)this.tabs[t].active=!1;n.active=!0;this.$emit("tab-change",n)}}});Vue.component("vue-tab",{template:'<div>            <a class="comm-info-tab-mob" v-bind:class="{open: active}" href="javascript:void(0);" v-on:click="toggleTab()">{{title}}<\/a>            <div v-show="active" v-bind:class="tabStyle">                <slot><\/slot>            <\/div>        <\/div>',data:function(){return{active:!1}},methods:{toggleTab:function(){this.active=!this.active;this.active&&this.$emit("tab-change",this)}},props:{title:{type:[String]},tabStyle:{type:[String],"default":"tab"}}});Vue.component("vue-cao-chat",{template:'<div>        <div class="gl-chat" >            <span tabindex="0" v-on:keydown.enter="openChat" v-on:click="openChat" aria-label="chat" class="t">{{title}}<\/span>            <div class="gl-chat-act-cont">                <transition name="slide-right-enter-only">                    <div class="gl-chat-act" v-show="showStateMarket">                        <div class="get-started">                            <div class="arrow-down"><div><\/div><\/div>                            <img data-src="/images/v9.0/GetStartedAvatar.png" class="lazyload"/>                            <button class="close-btn" v-on:click="closeStateMarket"><i class="fas fa-times"><\/i>Close<\/button>                            <p class="title">We\'re here to help.<\/p>                            <p class="description">Want to meet your Internet New Home Consultant? Select the desired location of your new home:<\/p>                            <vue-search-select v-model="state" v-bind:options="stateOptions" id="ddlState" ref="inputState" name="ddlState" class="search" placeholder="Select a state" title="Select a state" aria-label="Select a state"><\/vue-search-select>                            <vue-search-select v-model="market" v-bind:options="marketOptions" id="ddlCityOfInterest" ref="inputMarket" name="ddlCityOfInterest" class="search" placeholder="Select a city" title="Select a city" aria-label="Select a city"><\/vue-search-select>                            <button v-show="showChatNow" class="btn" tabindex="0" v-on:keydown.enter="startChat();closeStateMarket();" v-on:click="startChat();closeStateMarket();">Chat Now<\/button>                        <\/div>                    <\/div>                <\/transition>            <\/div>        <\/div>    <\/div>',data:function(){return{isMobile:Lennar.Vue.Utils.IsMobile(),showChat:!1,showStateMarket:!1,marketCode:"",state:"",stateOptions:[],market:"",marketOptions:[],referenceId:"",lpVars:[]}},props:{},computed:{title:function(){return"CHAT"},showChatNow:function(){return this.marketCode&&this.referenceId}},watch:{state:function(){this.stateChange()},market:function(){this.marketChange()}},components:{"vue-search-select":VueSearchSelect.ModelSelect},methods:{loadCAOChat:function(){axios.get("/Services/Rest/Profile.svc/GetCAOChatInfoByMarketCode",{params:{marketCode:this.marketCode}}).then(function(n){if(n&&n.data){var t=JSON.parse(n.data);t!=null&&(this.lpVars=typeof t.UserDetails!="undefined"&&t.UserDetails!=""?JSON.parse("["+t.UserDetails+"]"):[],this.referenceId=t.MarketCode+"SALES")}}.bind(this)).catch(function(n){console.log(n)})},startChat:function(){var n={referenceId:this.referenceId,engagementId:1,channel:"chat",isPopOut:!1,lpVars:this.lpVars};lpTag.sdk.exec("caoEngager.startChat",n)},openChat:function(){Lennar.Vue.DataLayer.Event("openChat");this.marketCode!=""?(this.showStateMarket=!1,this.startChat()):this.showStateMarket=!0},stateChange:function(){this.market="";this.marketOptions=[];Lennar.Vue.Utils.GetActiveMarkets(this.marketOptions,this.state)},marketChange:function(){this.marketCode=this.market;this.referenceId="";this.loadCAOChat()},closeStateMarket:function(){this.showStateMarket=!1}},mounted:function(){typeof __len_dl_sInfo!="undefined"&&__len_dl_sInfo.marketcode?(this.marketCode=__len_dl_sInfo.marketcode,this.marketCode!=""&&this.loadCAOChat()):Lennar.Vue.Utils.GetActiveStates(this.stateOptions)}});Vue.component("collapse-button",{template:'<div class="len-fltr-box" v-show="label">                    <a v-on:click="open" href="javascript:void(0);" v-bind:class="{open: isOpen && !(disabled || disabledInternal), active: hasChanges || active, disabled:  (disabled || disabledInternal)}">{{actualLabel}}<\/a>                        <div v-on:mouseup.stop="" v-show="isOpen && !(disabled || disabledInternal)" class="len-fltr-box-in" v-bind:class="internalClass">                            <slot><\/slot>                            <a class="btn-apply" href="javascript:void(0);" v-show="showApply" v-on:click="apply">Apply<\/a>                        <\/div>                <\/div>',data:function(){return{isOpen:!1,showApply:!1,hasChanges:!1,numberOfElements:0,windowWidth:0,disabledInternal:!1}},props:{label:"",internalClass:"",disabled:!1,noContent:!1,active:!1,forceHide:!1},computed:{actualLabel:function(){return this.numberOfElements>0?this.label+": "+this.numberOfElements:this.label},applyOnClose:function(){return this.forceHide||this.windowWidth>=1280},hideOnClick:function(){return this.forceHide||this.windowWidth>=1280}},methods:{open:function(){if(!this.disabled&&!this.disabledInternal){if(this.noContent){this.$emit("click");return}this.isOpen?this.hide():(Lennar.Vue.Utils.EventBus.$emit("collapse-button-open"),this.$nextTick(function(){this.hideOnClick&&document.addEventListener("mouseup",this.hide);this.isOpen=!0;this.refreshChanges()}))}},hide:function(n){n&&n.target&&Lennar.Vue.Utils.IsChildOf(this.$el,n.target)||(this.showApply&&this.applyOnClose?this.apply():(this.isOpen=!1,this.hideOnClick&&document.removeEventListener("mouseup",this.hide)))},refreshChanges:function(){this.showApply=!1;this.hasChanges=!1;this.numberOfElements=0;this.$nextTick(function(){for(var i=!0,r=!1,t,n=0;n<this.$children.length;++n)typeof this.$children[n].refreshChanges=="function"&&this.$children[n].refreshChanges(),this.showApply||typeof this.$children[n].hasUncommitedChanges!="function"||(this.showApply|=this.$children[n].hasUncommitedChanges()),typeof this.$children[n].shouldDisableParent=="function"&&(i&=this.$children[n].shouldDisableParent(),r=!0),typeof this.$children[n].hasChanges=="function"&&(t=this.$children[n].hasChanges(),this.hasChanges|=t,t&&this.$children.length>1&&this.numberOfElements++);this.disabledInternal=i&&r})},apply:function(){if(this.showApply){this.numberOfElements=0;this.showApply=!1;this.hasChanges=!1;for(var n=0;n<this.$children.length;++n)typeof this.$children[n].apply=="function"&&this.$children[n].apply();this.refreshChanges();this.$emit("apply-changes")}this.hide()},hasUncommitedChanges:function(){for(var t=!1,n=0;n<this.$children.length&&!t;++n)typeof this.$children[n].hasUncommitedChanges=="function"&&(t|=this.$children[n].hasUncommitedChanges());return t},shouldDisableParent:function(){for(var t=!0,i=!1,n=0;n<this.$children.length&&!t;++n)typeof this.$children[n].shouldDisableParent=="function"&&(t&=this.$children[n].shouldDisableParent(),i=!0);return t&&i},handleResize:function(){window.innerWidth>=1280&&this.windowWidth<1280&&(this.isOpen=!1);this.windowWidth=window.innerWidth},onKeyUp:function(n){this.isOpen&&n.keyCode==27&&this.hideOnClick&&this.hide()},onButtonOpen:function(n){this.isOpen&&this.$el!=n&&this.hideOnClick&&this.hide()}},mounted:function(){this.handleResize();this.deb=Lennar.Vue.Utils.Debounce(this.handleResize,100,!1);window.addEventListener("resize",this.deb);window.addEventListener("keyup",this.onKeyUp);Lennar.Vue.Utils.EventBus.$on("collapse-button-open",this.onButtonOpen)},beforeDestroy:function(){window.removeEventListener("resize",this.deb);window.removeEventListener("keyup",this.onKeyUp);Lennar.Vue.Utils.EventBus.$off("collapse-button-open")}});Vue.component("collapse-section",{template:'<div class="len-fltr-box" v-show="label">        <a v-on:click="toggle" href="javascript:void(0);" v-bind:class="{open: isOpen && !disabled, active: hasInnerChanges && !disabled, disabled: disabled}">{{label}}<\/a>        <div class="len-fltr-box-in">            <div v-on:click.stop="" v-show="isOpen && !disabled">                <slot><\/slot>            <\/div>        <\/div>    <\/div>',data:function(){return{isOpen:!1,hasInnerChanges:!1,forceUncommitted:!1,disabled:!1}},props:{openLabel:"",closedLabel:""},computed:{label:function(){return this.isOpen&&!this.disabled?this.openLabel:this.closedLabel}},methods:{markUncommitted:function(){this.forceUncommitted=!0},toggle:function(){this.disabled||(this.isOpen=!this.isOpen,this.isOpen&&this.$nextTick(function(){this.refreshChanges()}))},refreshChanges:function(){var t,i,n;for(this.hasInnerChanges=!1,t=!0,i=!1,n=0;n<this.$children.length;++n)typeof this.$children[n].refreshChanges=="function"&&this.$children[n].refreshChanges(),this.hasInnerChanges||typeof this.$children[n].hasChanges!="function"||(this.hasInnerChanges|=this.$children[n].hasChanges()),this.hasInnerChanges||this.$children[n].selectedDate==null||(this.hasInnerChanges=!0),typeof this.$children[n].shouldDisableParent=="function"&&(t&=this.$children[n].shouldDisableParent(),i=!0);this.disabled=t&&i},hasUncommitedChanges:function(){for(var t=this.forceUncommitted,n=0;n<this.$children.length&&!t;++n)typeof this.$children[n].hasUncommitedChanges=="function"&&(t|=this.$children[n].hasUncommitedChanges());return t},shouldDisableParent:function(){for(var t=!0,i=!1,n=0;n<this.$children.length&&!t;++n)typeof this.$children[n].shouldDisableParent=="function"&&(t&=this.$children[n].shouldDisableParent(),i=!0);return t&&i},apply:function(){this.forceUncommitted=!1;this.hasInnerChanges=!1;for(var n=0;n<this.$children.length;++n)typeof this.$children[n].apply=="function"&&this.$children[n].apply(),this.hasInnerChanges||typeof this.$children[n].hasChanges!="function"||(this.hasInnerChanges|=this.$children[n].hasChanges())},hasChanges:function(){return this.hasInnerChanges}}});Vue.component("vue-community-schools",{template:'<div>                    <div v-if="loading" class="loading-form">                        <aside class="lds-bx"><div class="lds-roller"><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><\/div><\/aside>                    <\/div>                    <div v-if="!loading && districts.length == 0">Sorry, we were not able to find schools information for the current community.<\/div>                    <div v-for="district in districts">                        <p class="title2">{{district.nm}}<\/p>                        <table v-if="hasNicheData(district)">                            <thead>                                <tr>                                    <th>Grade<\/th>                                    <th>School<\/th>                                    <th>Ranking<\/th>                                    <th>Address<\/th>                                <\/tr>                            <\/thead>                            <tbody>                                <tr v-for="(school, index) in district.s" v-bind:class="{last : isLastGrade(index, district.s)}">                                    <td v-bind:class="{hidden : hideGrade(index, district.s)}">{{school.gr}}<\/td>                                    <td v-if="school.nd"><a v-bind:href="school.url">{{school.nm}}<\/a><\/td>                                    <td v-else>{{school.nm}}<\/td>                                    <td>{{school.rk}}<\/td>                                    <td>{{school.ad}}<\/td>                                <\/tr>                            <\/tbody>                        <\/table>                        <div v-else>                            <p v-for="school in district.s">{{school.nm}}<\/p>                        <\/div>                        <p class="ft-nt" v-bind:class="{niche : hasNicheData(district)}">                            <span><i class="far fa-info-circle"><\/i><\/span>School information is computer generated and may not be accurate or current. Buyer must independently verify and confirm enrollment. Please contact the school district to determine the schools to which this property is zoned.                        <\/p>                    <\/div>                <\/div>',data:function(){return{districts:{},loading:!1}},props:{id:{type:[String,Number],"default":"0"}},mounted:function(){this.getCommunityServices()},methods:{hasNicheData:function(n){for(var t=0;t<n.s.length;++t)if(n.s[t].nd)return!0;return!1},getCommunityServices:function(){this.loading=!0;axios.get("/Services/Rest/Search.svc/GetCommunitySchools",{params:{communityId:this.id}}).then(function(n){n&&n.data&&(this.districts=n.data);this.loading=!1}.bind(this)).catch(function(n){console.log(n)})},isLastGrade:function(n,t){var i=n+1;return i<t.length&&t[n].gr!=t[i].gr},hideGrade:function(n,t){var i=n-1;return n>0&&t[i].gr==t[n].gr}}});Vue.component("vue-community-services",{template:'<table>                    <tr v-for="service in services">                        <td>{{service.type}}<\/td>                        <td v-if="service.url"><a target="_blank" v-bind:href="service.url">{{service.displayName}}<\/a><\/td>                        <td v-else>{{service.displayName}}<\/td>                        <td>{{service.phone}}<\/td>                    <\/tr>               <\/table>',data:function(){return{services:{}}},props:{id:{type:[String,Number],"default":"0"}},mounted:function(){this.getCommunityServices()},methods:{getCommunityServices:function(){axios.get("/Services/Rest/Search.svc/GetCommunityServices",{params:{communityId:this.id}}).then(function(n){n&&n.data&&(this.services=n.data)}.bind(this)).catch(function(n){console.log(n)})}}});typeof Lennar=="undefined"&&(Lennar={});typeof Lennar.Vue=="undefined"&&(Lennar.Vue={});typeof Lennar.Vue.Compare=="undefined"&&(Lennar.Vue.Compare={compareItems:{community:[],plan:[],qmi:[]},compareInstances:[],contextConst:{community:"com",plan:"plans",qmi:"qmi"},UpdateItems:function(n){var t=n.data,i;if(t!=null&&t.length)for(i=0;i<t.length;i++)t[i].Key=="c"?this.compareItems.community=t[i].Value:t[i].Key=="h"?this.compareItems.plan=t[i].Value:t[i].Key=="q"&&(this.compareItems.qmi=t[i].Value)}});Vue.component("compare-flyout",{template:'<div class="item-cmpr">                            <input type="checkbox" v-model="checked" aria-label="Compare item" value="0" v-bind:id="\'add-compare\' + id" v-on:click="onClick"><\/input>                            <label v-bind:for="\'add-compare\' + id">Add to compare<\/label>                            <div v-on:click.stop="" v-show="show" class="flyout compare show"><span class="closebt-wht" v-on:click.stop="hideFlyout"><\/span><p><strong><span class="count">{{count}}<\/span><\/strong> of <strong>3<\/strong> {{text}} are selected to compare<\/p><p><a v-on:click.stop="linkCompare">View compared {{text}}<\/a><\/p><\/div>                            <div v-on:click.stop="" v-show="error1" class="flyout compare error alert1"><span class="closebt-wht" v-on:click.stop="hideFlyout"><\/span><p>Only <strong>3<\/strong> {{text}} can be compared.<br/><a v-on:click.stop="linkCompare">View compared {{text}}<\/a><br><br><a v-on:click="removeAll">Remove All<\/a><\/p><\/div>                            <div v-on:click.stop="" v-show="error2" class="flyout compare error alert2"><span class="closebt-wht" v-on:click.stop="hideFlyout"><\/span><p>We\'re sorry. You need to select at least two {{text}} to compare.<\/p><\/div>                       <\/div>',data:function(){return{show:!1,error1:!1,error2:!1,checked:!1,items:null,count:0}},props:{type:"",id:"",text:""},mounted:function(){Lennar.Vue.Compare.compareInstances.push(this);this.refresh()},onBeforeDestroy:function(){Lennar.Vue.Compare.compareInstances.pop(this)},methods:{currentContext:function(){var n=null;switch(this.type){case Lennar.Vue.Compare.contextConst.community:n=Lennar.Vue.Compare.compareItems.community;break;case Lennar.Vue.Compare.contextConst.plan:n=Lennar.Vue.Compare.compareItems.plan;break;case Lennar.Vue.Compare.contextConst.qmi:n=Lennar.Vue.Compare.compareItems.qmi}return n},refresh:function(){this.currentContext()!=null&&(this.checked=this.currentContext().indexOf(this.id)>=0,this.count=this.currentContext().length)},showFlyout:function(){this.show=!0;this.error1=!1;this.error2=!1},hideFlyout:function(){this.show=!1;this.error1=!1;this.error2=!1;document.removeEventListener("click",this.hideFlyout)},showError1:function(){this.show=!1;this.error1=!0;this.error2=!1;this.checked=!1},showError2:function(){this.show=!1;this.error1=!1;this.error2=!0},onClick:function(){var n=this;setTimeout(function(){document.addEventListener("click",n.hideFlyout);n.checked?n.addItem():n.removeItem()},1)},addItem:function(){var t,n;this.validate()?(t={},t.type=this.type,t.id=this.id,n=this,Lennar.Vue.DataLayer.CompEvent(!0,this.type,this.id),axios.post("/Services/Rest/SearchMethods.svc/addCompareItem",t).then(function(t){Lennar.Vue.Compare.UpdateItems(t);n.refresh();n.showFlyout()}).catch(function(n){console.log(n)})):(n=this,setTimeout(n.refresh(),1))},removeItem:function(){var n={},t;n.type=this.type;n.id=this.id;t=this;Lennar.Vue.DataLayer.CompEvent(!1,this.type,this.id);axios.post("/Services/Rest/SearchMethods.svc/remCompareItem",n).then(function(n){Lennar.Vue.Compare.UpdateItems(n);t.refresh();t.showFlyout()}).catch(function(n){console.log(n)})},validate:function(){var n=!0;return this.currentContext().length>2&&(n=!1,this.showError1()),n},linkCompare:function(){var n=this.currentContext();if(n.length<2){this.showError2();return}if(n.length>3){this.showError1();return}n.length>1&&n.length<4&&this.addToWebSession(this.redirectToResults)},addToWebSession:function(n){var t={};t.sessionKeyValues=[];t.sessionKeyValues.push({Key:"cmpctx",Value:this.type});t.sessionKeyValues.push({Key:"comcmpitems",Value:Lennar.Vue.Compare.compareItems.community.join(",")});t.sessionKeyValues.push({Key:"planscmpitems",Value:Lennar.Vue.Compare.compareItems.plan.join(",")});t.sessionKeyValues.push({Key:"qmicmpitems",Value:Lennar.Vue.Compare.compareItems.qmi.join(",")});axios.post("/Services/Rest/profile.svc/AddWebSessionItems",t).then(function(){n!=null&&n()}).catch(function(n){console.log(n)})},redirectToResults:function(){top.location.href="/findhome/compare"},removeAll:function(){var t={},n;t.type=this.type;n=this;axios.post("/Services/Rest/SearchMethods.svc/removeAllCompareItems",t).then(function(){switch(n.type){case Lennar.Vue.Compare.contextConst.community:Lennar.Vue.Compare.compareItems.community=[];break;case Lennar.Vue.Compare.contextConst.plan:Lennar.Vue.Compare.compareItems.plan=[];break;case Lennar.Vue.Compare.contextConst.qmi:Lennar.Vue.Compare.compareItems.qmi=[]}Array.prototype.forEach.call(Lennar.Vue.Compare.compareInstances,function(n){n.refresh()});n.showFlyout()}).catch(function(n){console.log(n)})}}});Vue.component("vue-compare-tooltip",{template:'<span class="len-tip-item bottom">                    <span>                        <input type="checkbox" v-bind:id="checkId" v-on:change="compareChange()" v-model="inCompareInternal" />                        <label v-bind:for="checkId" tabindex="0" v-on:keyup.enter="toggleCompare">                            Add to compare                        <\/label>                    <\/span>                    <span class="len-tip-box" v-if="showCompareTooltip">                        <span v-if="added"><i class="fa fa-check" aria-hidden="true"><\/i> {{compareTitle}}<\/span>                        <span>{{comparedItemsTitle}}<\/span>                        <a v-bind:href="\'/findhome/compare?activeTab=\' + type" v-bind:title="linkTitle"><i class="fas fa-arrow-circle-right"><\/i> {{linkTitle}}<\/a>                    <\/span>                    <span class="len-tip-box" v-if="showCompareErrorTooltip">                        <span>Only 3 {{compareType}} can be compared<\/span>                        <a v-bind:href="\'/findhome/compare?activeTab=\' + type" v-bind:title="linkTitle"><i class="fas fa-arrow-circle-right"><\/i> {{linkTitle}}<\/a>                    <\/span>                <\/span>',data:function(){return{inCompareInternal:!1,showCompareTooltip:!1,showCompareErrorTooltip:!1,added:!1,count:0}},props:{type:{type:[String],"default":""},id:{type:[String,Number],"default":"0"},inCompare:{type:[Boolean],"default":!1},name:{type:[String],"default":""},mnm:{type:[String],"default":""},image:{type:[String],"default":""}},computed:{checkId:function(){return"actn-compare-"+this.type+"-"+this.id},compareTitle:function(){switch(this.type){case"h":return this.name+" has been added to your compare list of quick move-in homes.";case"p":return this.name+" has been added to your compare list of plans.";case"c":case"m":return this.name+" has been added to your compare list of communities."}return""},compareType:function(){switch(this.type){case"h":return"Quick Move-In Homes";case"p":return"Floorplans";case"c":case"m":return"Communities"}return""},linkTitle:function(){return"View Compared "+this.compareType},comparedItemsTitle:function(){switch(this.type){case"h":return this.count+" of 3 Quick Move-In Homes are selected to compare.";case"p":return this.count+" of 3 Floorplans are selected to compare.";case"c":case"m":return this.count+" of 3 Communities are selected to compare."}return""}},mounted:function(){this.inCompareInternal=this.inCompare;Lennar.Vue.Utils.EventBus.$on("compare-change",this.refresh)},methods:{compareChange:function(){axios.post("/Services/Rest/Search.svc/ModifyCompareItem",{item:{type:this.type,id:this.id,incmp:this.inCompareInternal}}).then(function(n){n&&(n.data.result?(this.added=n.data.action==1,this.count=n.data.count,this.showCompareTooltip=!0):n.data.action!=1||n.data.result||(this.showCompareErrorTooltip=!0,this.inCompareInternal=!1),Lennar.Vue.DataLayer.CompEvent(this.inCompareInternal,this.type,this.id),Lennar.Vue.Utils.EventBus.$emit("compare-change",{type:this.type,id:this.id,incmp:this.inCompareInternal,mnm:this.mnm,name:this.name,img:this.image}),this.$nextTick(function(){this.hideCompareTTFunc=this.hideCompareTT.bind(this);document.addEventListener("click",this.hideCompareTTFunc)}))}.bind(this)).catch(function(n){console.log(n)})},toggleCompare:function(){this.inCompareInternal=!this.inCompareInternal;this.compareChange()},hideCompareTT:function(){this.showCompareTooltip=!1;this.showCompareErrorTooltip=!1;document.removeEventListener("click",this.hideCompareTTFunc);this.hideCompareTTFunc=null},refresh:function(n){n.id==this.id&&n.type==this.type&&(this.inCompareInternal=n.incmp)}}});Vue.component("vue-confirmation",{template:'<div class="conf src-fc-overlay overlay gray" v-show="active">        <div class="confirmation" v-on:click.self="close">            <div class="centered-container">                <div class="close-btn-container">                    <button ref="closebtn" class="close-btn" v-on:click="close"><i class="fas fa-times"><\/i>Close<\/button>                <\/div>                <div class="overlay-content">                    <slot><p>{{message}}<\/p><\/slot>                    <div v-show="!isInformation" class="btns-section">                        <button class="simple-btn" v-on:click="close">Cancel<\/button>                        <button class="btn" v-on:click="confirm">Confirm<\/button>                    <\/div>                <\/div>            <\/div>        <\/div>    <\/div>',data:function(){return{active:!1,message:null,confirmCallback:null,closeCallback:null}},props:{isInformation:{type:Boolean,"default":!1}},methods:{show:function(n,t,i){this.message=n;this.confirmCallback=t;this.closeCallback=i;this.active=!0;this.$el.parentNode.removeChild(this.$el);document.body.appendChild(this.$el);this.setUpNoScroll();this.$nextTick(function(){this.$refs.closebtn.focus()})},close:function(){typeof this.closeCallback=="function"&&this.closeCallback();this.cleanUpNoScroll();this.active=!1;this.$emit("close")},setUpNoScroll:function(){var n=document.createElement("div"),r,i,t;for(n.className="scrollbar-measure",document.body.appendChild(n),r=n.offsetWidth-n.clientWidth,document.body.removeChild(n),i=document.querySelectorAll(".wrapper, header .deskheader nav, header.hdr-fix, section.header-stky-menu.hdr-fix"),t=0;t<i.length;++t)i[t].style.paddingRight=r+"px";Lennar.Vue.Utils.AddClass(document.body,"noscroll")},cleanUpNoScroll:function(){for(var t=document.querySelectorAll(".wrapper, header .deskheader nav, header.hdr-fix, section.header-stky-menu.hdr-fix"),n=0;n<t.length;++n)t[n].style.paddingRight="0px";Lennar.Vue.Utils.RemoveClass(document.body,"noscroll")},confirm:function(){typeof this.confirmCallback=="function"&&this.confirmCallback();this.cleanUpNoScroll();this.active=!1;this.$emit("confirm")}}});Vue.component("vue-favorite-tooltip",{template:'<span class="len-tip-item bottom">                    <span><a href="javascript:void(0)" v-on:click="favorite" title="Add to favorites"><i class="fa-heart" v-bind:class="{fas: isFavoriteInternal, far: !isFavoriteInternal}"><\/i>Add to favorites<\/a><\/span>                    <span class="len-tip-box" v-if="showFavTooltip">                        <span v-if="added"><i class="fa fa-check" aria-hidden="true"><\/i> {{favTitle}}<\/span>                        <a v-if="!added" href="javascript:void(0)" v-on:click="removeFav" title="Remove from Favorites"><i class="fas fa-times-circle"><\/i> Remove from Favorites<\/a><br />                        <a href="/mylennar/my-favorites" title="Go to my Favorites"><i class="fas fa-arrow-circle-right"><\/i> Go to my Favorites<\/a>                    <\/span>                <\/span>',data:function(){return{isFavoriteInternal:!1,showFavTooltip:!1,added:!1}},props:{type:{type:[String],"default":""},id:{type:[String,Number],"default":"0"},isFavorite:{type:[Boolean],"default":!1},name:{type:[String],"default":""}},computed:{favTitle:function(){switch(this.type){case"h":return this.name+" has been added to your favorite quick move-in homes.";case"p":return this.name+" has been added to your favorite plans.";case"c":case"m":return this.name+" has been added to your favorite communities."}return""}},mounted:function(){this.isFavoriteInternal=this.isFavorite},methods:{favorite:function(){this.isFavoriteInternal?(typeof this.hideFavoriteTTFunc=="function"&&this.hideFavoriteTTFunc(),this.showFavTooltip=!0,this.added=!1):Lennar.Vue.Personalization.toggleFav(!0,this.type,this.id,function(n){n&&(this.isFavoriteInternal=n.data,this.isFavoriteInternal&&(this.showFavTooltip=!0,this.added=!0))}.bind(this));this.$nextTick(function(){this.hideFavoriteTTFunc=this.hideFavoriteTT.bind(this);document.addEventListener("click",this.hideFavoriteTTFunc)})},removeFav:function(){this.isFavoriteInternal&&(typeof this.hideFavoriteTTFunc=="function"&&this.hideFavoriteTTFunc(),Lennar.Vue.Personalization.toggleFav(!1,this.type,this.id,function(n){n&&(this.isFavoriteInternal=n.data)}.bind(this)))},hideFavoriteTT:function(){this.showFavTooltip=!1;document.removeEventListener("click",this.hideFavoriteTTFunc);this.hideFavoriteTTFunc=null}}});Vue.component("format-input",{template:'<input v-bind:disabled="!enabled" v-bind:class="enabled ? \'\' : disabledClass" v-bind:type="inputType" v-model="display" v-on:keydown.enter="enterDown" v-on:keyup.enter="enterUp" v-on:blur="formatValue" v-on:focus="resetValue" v-bind:id="inputId" v-bind:placeholder="placeholder" v-bind:aria-label="placeholder"/>',data:function(){return{display:"",inputType:"text"}},props:{value:{type:[String,Number]},placeholder:{type:[String]},inputId:{type:[String]},type:{type:[String],"default":"currency",validator:function(n){return n==="currency"||n==="percentage"}},decimals:{type:[String,Number],"default":0},enabled:{type:[Boolean],"default":!0},disabledClass:{type:[String],"default":"locked"}},watch:{value:function(){this.value!=null&&this.value!=undefined&&(this.display=this.value.toString(),this.formatValue())},type:function(){this.value!=null&&this.value!=undefined&&(this.display=this.value.toString(),this.formatValue())}},mounted:function(){this.value!=null&&this.value!=undefined&&(this.display=this.value.toString(),this.formatValue())},methods:{formatValue:function(){this.inputType="text";var n=parseFloat(this.display.replace(/[^\d\.]/g,""));isNaN(n)&&(n=0);n==0?this.display="":this.type==="currency"?this.display="$ "+n.toFixed(this.decimals).replace(/(\d)(?=(\d{3})+(?:\.\d+)?$)/g,"$1,"):this.type==="percentage"&&(this.display=n.toFixed(this.decimals).replace(/(\d)(?=(\d{3})+(?:\.\d+)?$)/g,"$1,")+"%");this.value!=n&&this.$emit("input",n)},resetValue:function(){this.inputType="number";this.value!=0&&this.value!=null&&(this.display=this.value.toString())},enterDown:function(){this.enterKeyDown=!0},enterUp:function(){this.enterKeyDown&&(this.enterKeyDown=!1,this.$emit("enter"))},focus:function(){this.$el.focus()}}});Vue.component("generic-modal",{template:'    <div v-bind:class="globalClass">        <transition-group name="fade-fast">            <div v-if="show" class="gen-mdl-overlay" key="overlay" v-on:click.self="closeModal"><\/div>            <div v-if="show" class="gen-mdl" v-bind:class="{ \'gen-mdl-hidden\' : isBackgroundModal }" ref="outerContainer" key="content" v-on:click.self="closeModal">                <div v-bind:class="extClass" ref="container" v-on:click.self="closeModal">                    <div v-if="showHeader && !isBackgroundModal" class="mdl-head">                        <div class="lt">                            <a v-if="!isBackgroundModal" href="/" class="hd-logo">Lennar.com<\/a>                            <span v-else class="hd-logo" v-on:click="closeModal"><\/span>                        <\/div>                        <div class="md">{{title}}<\/div>                        <div class="rt">                            <a v-show="!isBackgroundModal" href="javascript:void(0);" title="close" v-on:click="closeModal" class="cls"><\/a>                        <\/div>                    <\/div>                    <div v-else-if="showHeader && isBackgroundModal" class="mdl-head" v-on:click="closeChildModal">                        <div class="lt">                            <span class="hd-logo"><\/span>                        <\/div>                    <\/div>                    <div v-if="loading" class="loading-form">                        <aside class="lds-bx"><div class="lds-roller"><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><\/div><\/aside>                    <\/div>                    <iframe v-if="isVideo" v-show="!loading" ref="videoIframe" v-bind:src="url" style="width:100%;height:100%;" frameborder="0" vspace="0" hspace="0" scrolling="auto"><\/iframe>                    <iframe v-if="isUrl" v-show="!loading" ref="urlIframe" v-bind:src="url" style="width:100%;" frameborder="0" vspace="0" height="0px" hspace="0" scrolling="auto"><\/iframe>                    <div v-if="isImage">                        <transition name="fade-fast">                            <img ref="image" v-bind:src="url" v-show="!loading" class="mdl-img">                        <\/transition>                    <\/div>                    <div v-if="isHtml" class="html-modal">                        <slot><\/slot>                    <\/div>                <\/div>            <\/div>        <\/transition-group>    <\/div>',data:function(){return{show:!1,showHeader:!0,url:"",title:"",isVideo:!1,isUrl:!1,isImage:!1,isHtml:!1,loading:!1,extClass:"gen-mdl-video",globalClass:"",iframeObserver:null,onCloseCallback:null,isBackgroundModal:!1}},methods:{closeModal:function(){this.show=!1;this.isBackgroundModal=!1;window.removeEventListener("keydown",this.escape);this.$refs.urlIframe&&(this.$refs.urlIframe.onload=null,this.iframeObserver&&this.iframeObserver.disconnect(),this.resizeFunc&&this.$refs.urlIframe.contentWindow.removeEventListener("resize",this.resizeFunc));this.cleanUpNoScroll();typeof this.onCloseCallback=="function"&&(this.onCloseCallback(),this.onCloseCallback=null)},closeChildModal:function(){this.$refs.urlIframe.contentWindow.document.querySelector(".gen-mdl .mdl-head .rt a").click()},showModal:function(){this.show=!0;window.addEventListener("keydown",this.escape);var n=this;this.loading=!0;Vue.nextTick(function(){if(n.$refs.urlIframe&&(n.$refs.urlIframe.onload=function(){n.loading=!1;n.onContentWindowResize(!0);try{if(n.$refs.urlIframe.contentWindow.document.body.children.length){var t=n.findFirstIndexWithContent(n.$refs.urlIframe.contentWindow.document.body.children);n.iframeObserver=new MutationObserver(n.onContentWindowResize);n.iframeObserver.observe(n.$refs.urlIframe.contentWindow.document.body.children[t],{attributes:!0,childList:!0,subtree:!0});n.resizeFunc=n.onContentWindowResize.bind(n);n.$refs.urlIframe.contentWindow.addEventListener("resize",n.resizeFunc)}}catch(i){}}),n.$refs.videoIframe&&(n.$refs.videoIframe.onload=function(){n.loading=!1;n.onContentWindowResize(!0)}),n.$refs.image)if(n.$refs.image.complete){n.loading=!1;n.onContentWindowResize(!0)}else n.$refs.image.onload=function(){n.loading=!1;n.onContentWindowResize(!0)};if(n.isHtml){n.loading=!1;n.onContentWindowResize(!0)}Vue.nextTick(function(){n.onContentWindowResize()})});this.setUpNoScroll()},setUpNoScroll:function(){var n=document.createElement("div"),r,i,t;for(n.className="scrollbar-measure",document.body.appendChild(n),r=n.offsetWidth-n.clientWidth,document.body.removeChild(n),i=document.querySelectorAll(".wrapper, header .deskheader nav, header.hdr-fix, section.header-stky-menu.hdr-fix"),t=0;t<i.length;++t)i[t].style.paddingRight=r+"px";Lennar.Vue.Utils.AddClass(document.body,"noscroll")},cleanUpNoScroll:function(){for(var t=document.querySelectorAll(".wrapper, header .deskheader nav, header.hdr-fix, section.header-stky-menu.hdr-fix"),n=0;n<t.length;++n)t[n].style.paddingRight="0px";Lennar.Vue.Utils.RemoveClass(document.body,"noscroll")},onContentWindowResize:function(n){var i,r,u,f,t;if(!this.isBackgroundModal){try{if(this.$refs.urlIframe&&this.$refs.urlIframe.contentWindow.document.body.children.length)if(i=this.findFirstIndexWithContent(this.$refs.urlIframe.contentWindow.document.body.children),r=this.$refs.urlIframe.contentWindow.document.body.children[i].scrollHeight+1+"px",r!=this.$refs.urlIframe.height)this.$refs.urlIframe.height=r,window!=parent&&parent.Lennar.Vue.Utils.EventBus.$emit("child-modal-resize",this.$refs.urlIframe.contentWindow.document.body.children[i].scrollHeight+1);else return}catch(e){}this.$refs.image&&this.$refs.image.width&&(this.$refs.container.style.maxWidth=this.$refs.image.width+"px");u=this.$refs.container.scrollHeight;f=document.documentElement.clientHeight;u<f?(t=(window.pageYOffset||document.documentElement.scrollTop)+(f-u)/2,this.$refs.outerContainer.style.top=t+"px"):n===!0&&(t=window.pageYOffset||document.documentElement.scrollTop,this.$refs.outerContainer.style.top=t+"px")}},escape:function(n){n.which=="27"&&this.closeModal()},openVideoModal:function(n,t){var i=Lennar.Vue.Utils.GetVideoModalSrc(n);i&&(this.isVideo=!0,this.isImage=!1,this.isUrl=!1,this.isHtml=!1,this.url=i,this.title=t,this.showModal())},openUrlModal:function(n,t,i,r,u,f){if(n){if(this.isUrl=!0,this.isVideo=!1,this.isImage=!1,this.isHtml=!1,this.url=n,this.title=t,this.showHeader=i,this.extClass=r,this.globalClass=f,this.onCloseCallback){var e=this.onCloseCallback;this.onCloseCallback=function(){typeof e=="function"&&e();typeof u=="function"&&u()}}else this.onCloseCallback=u;this.showModal()}},openImageModal:function(n,t){n&&(this.isImage=!0,this.isVideo=!1,this.isUrl=!1,this.isHtml=!1,this.url=n,this.extClass=t,this.showModal())},openHtmlModal:function(){this.extClass="gen-mdl-form";this.isImage=!1;this.isVideo=!1;this.isUrl=!1;this.isHtml=!0;this.showModal()},findFirstIndexWithContent:function(n){for(var i=0,t=0;t<n.length;t++)if(n[t].nodeName=="DIV"){i=t;break}return i},setBackgroundModal:function(n){this.isBackgroundModal=n},onChildModalResize:function(n){if(this.isBackgroundModal)try{var t=this.findFirstIndexWithContent(this.$refs.urlIframe.contentWindow.document.body.children);n=n+140;n>this.$refs.urlIframe.contentWindow.document.body.children[t].scrollHeight+1&&(this.$refs.urlIframe.height=n+"px")}catch(i){}}},mounted:function(){document.body.insertBefore(this.$el,document.body.lastChild);Lennar.Vue.Utils.EventBus.$on("child-modal-resize",this.onChildModalResize)}});Vue.component("vue-global-chat",{template:'<div>        <div class="gl-chat" tabindex="0" v-on:keydown.enter="openChat" v-on:click="openChat" v-show="chatUrl" aria-label="chat" v-bind:class="{open: showChat, minimized: minimized && showChat, expanded: expanded && showChat, proactive: showIdleWindow}">            <span class="t">{{title}}<\/span>            <div class="gl-chat-act-cont">                <transition name="slide-right-enter-only">                    <div class="gl-chat-act" v-show="showIdleWindow">                        <div class="get-started">                            <div class="arrow-down"><div><\/div><\/div>                            <img data-src="/images/v9.0/GetStartedAvatar.png" class="lazyload"/>                            <button class="close-btn" v-on:click.stop="openChat"><i class="fas fa-times"><\/i>Close<\/button>                            <p class="description"><slot><\/slot><\/p>                            <button class="btn" tabindex="0" v-on:keydown.enter="openChat(\'GT\')" v-on:click.stop="openChat(\'GT\')">Get started<\/button>                        <\/div>                    <\/div>                <\/transition>                <transition name="slide-right">                    <div class="gl-chat-act" v-show="showNewMessageInfo">                        <span tabindex="0" v-on:keydown.enter="openChat" v-on:click.stop="openChat">You have new messages<\/span>                    <\/div>                <\/transition>            <\/div>        <\/div>        <div class="global-chat"v-bind:class="{open: showChat, minimized: minimized && showChat, expanded: expanded && showChat}">            <div class="confirm-exit" v-show="confirmExit">                <p>                    You are about to end live chat.                    <br>                    Are you sure you want to exit?                <\/p>                <a href="javascript:void(0);" class="btn" v-on:click="endChat(true)">End Live Chat<\/a>                <a href="javascript:void(0);" class="btn-nobg btn-right-arr blue" v-on:click="continueChat">Continue conversation<\/a>            <\/div>            <iframe v-if="loadChat" ref="chatFrame" v-bind:src="chatUrl" data-hj-allow-iframe=""><\/iframe>            <button title="minimize" class="gl-chat-min" v-on:click="minimizeChat">Minimize<\/button>            <button title="expand" class="gl-chat-exp" v-on:click="expandChat">Expand<\/button>            <button title="close" class="gl-chat-cls" v-on:click="closeChat">Close<\/button>        <\/div>    <\/div>',data:function(){return{showChat:!1,loadChat:!1,minimized:!1,expanded:!1,confirmExit:!1,timeOutId:0,profile:null,actions:null,selectedAction:null,showIdleWindow:!1,showNewMessageInfo:!1,needsReload:!1}},props:{chatUrl:{type:[String]},showIdle:{type:[Boolean],"default":!1},idleTime:{type:[Number],"default":12e4}},computed:{title:function(){return this.showChat||this.showIdleWindow?"":"CHAT"}},methods:{openChat:function(n,t){if(this.showIdleWindow&&typeof n!="string"){this.showIdleWindow=!1;Lennar.Vue.Utils.SetCookie("chat_idle_closed","1",1);return}if(this.showChat&&!this.minimized)this.minimizeChat();else{if(this.needsReload&&this.loadChat){this.needsReload=!1;this.loadChat=!1;this.$nextTick(function(){this.openChat(n,t)});return}if(this.showNewMessageInfo=!1,this.showChat=!0,this.expandChat(this.isMobile()),this.loadChat=!0,t||this.minimizeChat(!1),n&&typeof n=="string")this.selectedAction=n,Lennar.Vue.Utils.SetCookie("chat_hello","1",1);else{var i=Lennar.Vue.Utils.GetCookie("chat_hello","0");i!=="1"?(this.selectedAction="Hello",Lennar.Vue.Utils.SetCookie("chat_hello","1",1)):this.selectedAction=""}this.showIdleWindow=!1;Lennar.Vue.Utils.SetCookie("chat_op","1",1);Lennar.Vue.Utils.SetCookie("chat_idle_closed","1",1);Lennar.Vue.DataLayer.Event("openChat")}},closeChat:function(){this.sendMessage({cmd:"ChatBotEnd"})},chatbotEndResponse:function(n){n.data.response=="bot"?this.endChat(!1):this.confirmExit=!0},continueChat:function(){this.confirmExit=!1},endChat:function(n){Lennar.Vue.Utils.SetCookie("chat_op","0",1);Lennar.Vue.Utils.SetCookie("chat_idle_closed","1",1);n&&(Lennar.Vue.Utils.SetCookie("chat_hello","0",1),this.selectedAction="/conversation_takeover",this.sendChatBotInfo());this.$nextTick(function(){this.confirmExit=!1;this.showChat=!1;this.minimizeChat(!1);this.expandChat(!1);this.needsReload=!0})},minimizeChat:function(n){typeof n=="boolean"?this.minimized=n:(this.minimized=!this.minimized,this.expandChat(!1));Lennar.Vue.Utils.SetCookie("chat_min",this.minimized?"1":"0",1)},expandChat:function(n){typeof n=="boolean"?this.expanded=n:(this.expanded=!this.expanded,this.minimizeChat(!1));Lennar.Vue.Utils.SetCookie("chat_exp",this.expanded?"1":"0",1)},isMobile:function(){return window.innerWidth<=414},sendMessage:function(n){this.loadChat&&!this.needsReload&&this.$refs.chatFrame.contentWindow.postMessage(n,this.chatUrl)},sendChatBotInfo:function(){var n,t;if(!this.profile&&Lennar.Global.actorStatus!=0){this.loadProfile(this.sendChatBotInfo);return}n=this.getChatbotInfo();this.saveChatBotInfo({data:{pay:n}});this.sendMessage({cmd:"PostChatBotInfo",pay:n});t=Lennar.Vue.Utils.GetCookie("chat_fav","0");t==="1"&&(Lennar.Vue.Utils.SetCookie("chat_fav","0",1),this.favoriteCallback(null,!1))},getChatbotInfo:function(){var n=Lennar.Vue.Utils.GetCookie("chat_in",null),t;return n&&(n=JSON.parse(n)),n||(n={chid:Lennar.Vue.Utils.GetUniqueId()}),n.pt=typeof __len_dl_sInfo!="undefined"?__len_dl_sInfo.pt:"Unknown",typeof _pageData!="undefined"&&(n.stn=_pageData.stn,n.man=_pageData.man,n.cmn=_pageData.cmn,n.pln=_pageData.pln,n.cty=_pageData.cityId),n.ac=this.selectedAction,t=Lennar.Global.getGoogleTagValues(),n.cp=t.campaign,n.rd=t.referrerDomain,n.ui={isl:Lennar.Global.actorStatus!=0},n.dty=Lennar.Vue.Utils.IsMobile()?"Mobile":"Desktop",this.profile&&(n.ui.usp=this.profile.Phase,n.ui.fnm=this.profile.FirstName,n.ui.lnm=this.profile.LastName,n.ui.ema=this.profile.Email,n.ui.phn=this.profile.HomePhone||this.profile.CellPhone,n.ui.address=this.profile.Street1,n.ui.city=this.profile.City,n.ui.st=this.profile.State,n.ui.zip=this.profile.ZipCode,n.ui.usp=="Own"&&(n.ui.specs=[{hid:this.profile.HomesiteNumber}])),n},loadProfile:function(n){axios.get("/Services/Rest/Profile.svc/GetUserProfile").then(function(t){if(t&&t.data){var i=JSON.parse(t.data);i.FirstName&&(this.profile=i,typeof n=="function"&&n())}}.bind(this)).catch(function(n){console.log(n)})},openPage:function(n){var t=n.data.pay;t&&(t.startsWith("/")||t.startsWith(window.location.origin+"/"))&&(window.location.href=t)},saveChatBotInfo:function(n){var t=n.data.pay,i=this.getChatbotInfo();t.chid===i.chid&&Lennar.Vue.Utils.SetCookie("chat_in",JSON.stringify(t),1e3)},openLogin:function(){Lennar.Global.actorStatus==0&&(Lennar.Global.callBack_OnLogin="DoNothing",Lennar.Global.openSignInModal(function(){Lennar.Global.actorStatus!==0&&window.location.reload()}.bind(this)))},favorite:function(n){var t=n.data.pay;t&&t.favtype&&t.favid&&(t.favtype==="h"&&(t.favtype="p"),t.favtype==="q"&&(t.favtype="h"),Lennar.Vue.Personalization.toggleFav(!0,t.favtype,t.favid,this.favoriteCallback,!0))},favoriteCallback:function(n,t){t?(Lennar.Vue.Utils.SetCookie("chat_fav","1",1),window.location.reload()):this.sendMessage({cmd:"FavResponse",pay:{favres:!0}})},newMessage:function(){this.showChat&&this.minimized&&(this.showNewMessageInfo=!0)},receiveMessage:function(n){if(this.chatUrl&&this.chatUrl.startsWith(n.origin+"/"))switch(n.data.cmd){case"ChatBotReady":this.sendChatBotInfo();break;case"PostChatBotInfo":this.saveChatBotInfo(n);break;case"ChatbotEndResponse":this.chatbotEndResponse(n);break;case"OpenPage":this.openPage(n);break;case"Favorite":this.favorite(n);break;case"Dismissal":this.closeChat();break;case"Login":this.openLogin();break;case"NewMessage":this.newMessage();break;default:console.log("Unknown command: "+JSON.stringify(n))}},openProactiveWindow:function(){clearTimeout(this.timeOutId);this.stopTimer();this.loadChat||(this.showIdleWindow=!0)},resetTimer:function(){clearTimeout(this.timeOutId);this.showIdleWindow||Lennar.Vue.Utils.GetCookie("chat_idle_closed","0")==="1"||(this.timeOutId=setTimeout(this.openProactiveWindow,this.idleTime))},initializeTimer:function(){this.showIdle&&Lennar.Vue.Utils.GetCookie("chat_idle_closed","0")!=="1"&&(window.addEventListener("load",this.resetTimer),window.addEventListener("mousemove",this.resetTimer),window.addEventListener("mousedown",this.resetTimer),window.addEventListener("touchstart",this.resetTimer),window.addEventListener("click",this.resetTimer),window.addEventListener("keypress",this.resetTimer),window.addEventListener("scroll",this.resetTimer,!0))},stopTimer:function(){this.showIdle&&(window.removeEventListener("load",this.resetTimer),window.removeEventListener("mousemove",this.resetTimer),window.removeEventListener("mousedown",this.resetTimer),window.removeEventListener("touchstart",this.resetTimer),window.removeEventListener("click",this.resetTimer),window.removeEventListener("keypress",this.resetTimer),window.removeEventListener("scroll",this.resetTimer))},formSubmitted:function(n){this.sendMessage({cmd:"FormSubmitted",pay:n})}},mounted:function(){if(this.chatUrl){window.addEventListener("message",this.receiveMessage,!1);var n=Lennar.Vue.Utils.GetCookie("chat_op","0");n==="1"?this.openChat(null,!0):this.initializeTimer();this.minimized=Lennar.Vue.Utils.GetCookie("chat_min","0")==="1";this.expanded=Lennar.Vue.Utils.GetCookie("chat_exp","0")==="1";Lennar.Vue.Utils.EventBus.$on("form-submitted",this.formSubmitted)}},beforeDestroy:function(){this.chatUrl&&(window.removeEventListener("message",this.receiveMessage),this.stopTimer(),Lennar.Vue.Utils.EventBus.$off("form-submitted"))}});Vue.component("horiz-scroll",{template:'        <div class="horiz-scroll">            <span class="arr lft-arr" href="javascript:void(0);" v-on:click="move(scrollAmount)" v-show="showScroll" v-bind:class="{disabled: !enableLeft}"><\/span>            <span class="arr right-arr" href="javascript:void(0);" v-on:click="move(-scrollAmount)" v-show="showScroll" v-bind:class="{disabled: !enableRight}"><\/span>            <div class="horiz-scroll-outer">                <div ref="inner" class="horiz-scroll-inner" style="">                    <slot><\/slot>                <\/div>            <\/div>        <\/div>',data:function(){return{currentX:0,minX:0,maxX:0,preventClick:!1}},props:{scrollDuration:{type:[Number],"default":.4},scrollAmount:{type:[Number],"default":100}},computed:{enableRight:function(){return this.minX<0&&this.minX<this.currentX},enableLeft:function(){return this.currentX<0},showScroll:function(){return this.minX<0}},methods:{move:function(n){this.lastClientX=this.currentX;this.scroll(this.currentX+n,!0)},update:function(){this.minX=this.$refs.inner.parentElement.offsetWidth-this.$refs.inner.offsetWidth;this.maxX=0;this.currentX=Math.min(this.maxX,Math.max(this.minX,this.currentX));this.move(0,!0)},scroll:function(n,t){this.currentX=Math.min(this.maxX,Math.max(this.minX,this.currentX+(n-this.lastClientX)));this.lastClientX=n;this.$refs.inner.style.transition=t?"transform "+this.scrollDuration+"s":"";this.$refs.inner.style.transform="translateX("+this.currentX+"px)"},onMouseDown:function(n){if(this.preventClick=!1,!this.isMouseDown){var t=Lennar.Vue.Utils.GetClientX(n);this.isMouseDown=!0;this.lastClientX=t;this.initialClientX=t;this.currentX=this.currentX||0;this.minX=this.$refs.inner.parentElement.offsetWidth-this.$refs.inner.offsetWidth;this.maxX=0;n.touches||n.preventDefault()}},onMouseMove:function(n){if(this.isMouseDown){var t=Lennar.Vue.Utils.GetClientX(n);Math.abs(t-this.initialClientX)>3&&(this.isMouseDragging=!0,this.scroll(t));n.touches||n.preventDefault()}},onMouseUp:function(n){this.isMouseDown&&(this.isMouseDown=!1);this.isMouseDragging&&(this.isMouseDragging=!1,this.preventClick=!0,n.preventDefault())},onMouseClick:function(n){this.preventClick&&(n.preventDefault(),this.preventClick=!1)}},mounted:function(){this.$refs.inner.addEventListener("mousedown",this.onMouseDown);this.$refs.inner.addEventListener("touchstart",this.onMouseDown);window.addEventListener("mousemove",this.onMouseMove);window.addEventListener("touchmove",this.onMouseMove);window.addEventListener("mouseup",this.onMouseUp);window.addEventListener("touchend",this.onMouseUp);window.addEventListener("click",this.onMouseClick,!0);this.deb=Lennar.Vue.Utils.Debounce(function(){this.update()}.bind(this),300,!1);window.addEventListener("resize",this.deb);this.observer=new MutationObserver(function(){this.update()}.bind(this));this.observer.observe(this.$refs.inner,{childList:!0,subtree:!0});this.intersectionObserver=new IntersectionObserver(function(){this.update()}.bind(this),{rootMargin:"0px"});this.intersectionObserver.observe(this.$refs.inner)},beforeDestroy:function(){this.$refs.inner.removeEventListener("mousedown",this.onMouseDown);this.$refs.inner.removeEventListener("touchstart",this.onMouseDown);window.removeEventListener("mousemove",this.onMouseMove);window.removeEventListener("touchmove",this.onMouseMove);window.removeEventListener("mouseup",this.onMouseUp);window.removeEventListener("touchend",this.onMouseUp);window.removeEventListener("click",this.onMouseClick);window.removeEventListener("resize",this.deb);this.observer.disconnect();this.intersectionObserver.disconnect()}});Vue.component("image-modal",{template:'<div v-if="show" class="mdl-spbk">        <div class="mdl-head">            <div class="lt">                <a href="/" class="hd-logo">Lennar.com<\/a>            <\/div>            <div class="rt">                <a href="javascript:void(0);" title="close" v-on:click="closeModal" class="cls"><\/a>            <\/div>        <\/div>        <div class="mdl-spbk-ctnt">            <div class="mdl-spbk-lrg">                <div id="slider" class="flexslider">                    <tiny-slider ref="imageModal" class="slides" v-on:index-changed="onParentIndexChanged" v-bind:start-index="index" v-bind:datasource="items" v-bind:mouse-drag="true" v-bind:items="1" v-bind:nav-as-thumbnails="true" v-bind:nav-container="\'#carousel-thumbnails-mdl\'" v-bind:controls="true">                        <div v-for="item in items">                            <template v-if="item.vt >= 1">                                <iframe v-bind:src="item.vsrc" style="width:100%;height:100%;" frameborder="0" vspace="0" hspace="0" scrolling="auto"><\/iframe>                            <\/template>                            <template v-else-if="item.vtr">                                <a target="_blank" v-bind:href="item.vu">                                    <img class="lazyload" v-bind:data-src="item.src"/>                                    <span class="the-360-btn">360° View<\/span>                                <\/a>                            <\/template>                            <template v-else-if="item.up">                                <img class="lazyload" v-bind:data-src="item.up"/>                            <\/template>                            <template v-else>                                <img class="lazyload" v-bind:data-src="item.src"/>                            <\/template>                        <\/div>                    <\/tiny-slider>                <\/div>            <\/div>            <div class="mdl-spbk-sldr">                <div class="flexslider">                    <div class="flex-viewport">                        <tiny-slider id="carousel-thumbnails-mdl" ref="thumbs" v-bind:start-index="index" class="slides"  v-on:index-changed="onThumbsIndexChanged"  v-bind:datasource="items" v-bind:mouse-drag="true" v-bind:loop="false" v-bind:items="1" v-bind:nav="false" v-bind:controls="true" fixed-width="205px">                            <div v-for="item in items">                                <template v-if="item.vt == 1">                                    <img class="lazyload force" v-if="item.vtid" v-bind:data-src="\'//i1.ytimg.com/vi/\' + item.vtid + \'/hqdefault.jpg\'" />                                    <template v-else>                                        <img class="lazyload force" v-bind:data-src="alterImageWidth(item.src, 200)" />                                        <span class="vdo-ply-btn">Play Video<\/span>                                    <\/template>                                <\/template>                                <template v-else-if="item.vt > 1">                                    <img class="lazyload force" data-src="/Images/relaunch/gradient-scrapbook-1.jpg" />                                <\/template>                                <template v-else-if="item.vtr">                                    <img class="lazyload" v-bind:data-src="alterImageWidth(item.src, 200)"/>                                    <span class="the-360-btn">360° View<\/span>                                <\/template>                                <template v-else-if="item.up">                                    <img class="lazyload force" v-bind:data-src="alterImageWidth(item.up, 200)" />                                <\/template>                                <template v-else>                                    <img class="lazyload" v-bind:data-src="alterImageWidth(item.src, 200)" />                                <\/template>                            <\/div>                        <\/tiny-slider>                    <\/div>                <\/div>            <\/div>        <\/div>    <\/div>',data:function(){return{show:!1,items:null,index:0}},methods:{alterImageWidth:function(n,t){return Lennar.Vue.Utils.AddQueryStringToUrl(n,"w",t)},closeModal:function(){this.show=!1;this.items=null;this.index=0;window.removeEventListener("keydown",this.escape)},openModal:function(n,t){this.items=t;this.processVideos();this.index=n;this.show=!0;window.addEventListener("keydown",this.escape);this.$nextTick(function(){this.$refs.imageModal.focus()})},escape:function(n){n.which=="27"&&this.closeModal()},onParentIndexChanged:function(n){this.$nextTick(function(){var t=this.$refs.thumbs.getIndex();t!=n.displayIndex&&this.$refs.thumbs.goTo(n.displayIndex-1)})},onThumbsIndexChanged:function(n){this.$nextTick(function(){var t=this.$refs.imageModal.getIndex();t!=n.displayIndex&&this.$refs.imageModal.goTo(n.displayIndex-1)})},processVideos:function(){Array.prototype.forEach.call(this.items,function(n){n.vt>=1&&(n.vsrc=Lennar.Vue.Utils.GetVideoModalSrc(n.vu))})}},components:{"tiny-slider":VueTinySlider,"vue-search-select":VueSearchSelect.ModelSelect},mounted:function(){document.body.insertBefore(this.$el,document.body.lastChild)}});Lennar.DocReady(function(){var n=document.querySelectorAll(".vue-leadership-team");Array.prototype.forEach.call(n,function(n){new Vue({el:n,data:{leadershipTeamData:[],isLoadingData:!0},components:{"tiny-slider":VueTinySlider},methods:{openModal:function(n,t){this.$refs.modal.openModal(n,t,this.leadershipTeamData)},getLeadershipTeamData:function(){var n=this;axios.get("/Services/Rest/LeadershipTeam.svc/GetLeadershipTeamData",{headers:{"Content-Type":"application/json"}}).then(function(t){t&&t.data&&(n.isLoadingData=!1,n.leadershipTeamData=t.data)}).catch(function(n){console.error(n)})}},mounted:function(){this.getLeadershipTeamData()}})})},"VueLeadershipTeam");var VueMapFlyout={template:'<div style="max-height" class="map-flyout" v-if="active">                    <div class="close" v-bind:class="{ \'comm-marker\': results[0] && results[0].extendedMarker }" v-on:click="close"><\/div>                    <slot>                        <vue-refine-results v-model="results" v-bind:has-slider="true"><\/vue-refine-results>                    <\/slot>               <\/div>',data:function(){return{active:!1,results:null}},methods:{open:function(n){this.results=[];this.$nextTick(function(){this.results=n;this.$nextTick(function(){this.active=!0})})},close:function(){this.active&&(this.active=!1,this.results=[],this.$emit("closed"))}}};Vue.component("vue-map",{template:'<div class="len-results-map-box">                    <div ref="mapContainer" class="map-container"><\/div>                    <div v-show="showOverlay" class="map-overlay" v-on:click="closeOverlay"><\/div>                    <map-flyout ref="mapInfoWindow" v-on:closed="closeOverlay">                        <slot v-bind:value="selectedValue"><\/slot>                    <\/map-flyout>               <\/div>',components:{"map-flyout":VueMapFlyout},data:function(){return{showOverlay:!1,isMounted:!1,map:null,markers:[],extendedMarkers:[],markerCluster:null,extendedMarketCluster:null,selectedValue:null,activeMarker:null}},props:{value:{},active:!1,latitude:{type:[String,Number],"default":39.82},longitude:{type:[String,Number],"default":-98.58},statePoints:{type:[Array],"default":null},marketPoints:{type:[Array],"default":null},clustering:{type:[Boolean],"default":!0},markerCallback:{type:[Function],"default":null},extendedClustering:{type:[Boolean],"default":!0},extendedMarkerCallback:{type:[Function,Boolean],"default":null},extendedItems:{type:[Array],"default":null}},watch:{active:function(){this.active&&!this.isMounted&&(this.loadDependencies(),this.isMounted=!0)},value:function(){this.value&&this.value.length&&this.active&&this.isMounted&&this.map&&(this.markers=[],this.extendedMarkers=[],this.fillMarkers())},extendedItems:function(){this.value&&this.value.length&&this.active&&this.isMounted&&this.map&&(this.markers=[],this.extendedMarkers=[],this.fillMarkers())}},methods:{errorOnInitMap:function(n){console.log(n)},addMarker:function(n){var i=new google.maps.LatLng(n.latitude,n.longitude),r={url:n.icon},t=new MarkerWithLabel({position:i,icon:r,title:n.title,labelContent:n.title?n.title:"",labelClass:"map-label"});return n.extendedMarker?this.extendedMarkers.push(t):this.markers.push(t),t},fillMarkers:function(){var i,n,t,r,e,u,f;if(this.value!=null){for(this.markerCluster&&this.markerCluster.clearMarkers(),i=0;i<this.value.length;i++)n=this.value[i],t={},t.icon=n.icon?n.icon:"/images/v9.0/poi-pin-blue.png",t.latitude=n.lat,t.longitude=n.long,t.title=n.mnm?n.mnm+": "+n.name:n.name,r=this.addMarker(t),r.searchItem=n,r.addListener("click",function(n){if(typeof this.markerCallback=="function"){this.markerCallback(this.markers.indexOf(n));return}this.openOverlay([n.searchItem])}.bind(this,r));if(this.extendedItems&&this.extendedItems.length)for(this.extendedMarketCluster&&this.extendedMarketCluster.clearMarkers(),i=0;i<this.extendedItems.length;i++)n=this.extendedItems[i],n.extendedMarker=!0,t={},t.icon=n.exticon?n.exticon:"/images/v9.0/mappin-green.png",t.latitude=n.lat,t.longitude=n.long,t.title=n.mnm?n.mnm+": "+n.name:n.name,t.extendedMarker=!0,r=this.addMarker(t),r.searchItem=n,r.addListener("click",function(n){if(typeof this.extendedMarkerCallback=="function"){if(this.extendedMarkerCallback(0))return}else if(typeof this.extendedMarkerCallback=="boolean"&&!this.extendedMarkerCallback)return;this.openOverlay([n.searchItem])}.bind(this,r));e=[{url:"/images/v9.0/poi-pin-blue-multi.png",height:24,width:22,anchor:[0,0],textColor:"#000000",textSize:1,gridSize:100,cssName:"cluster"}];u={styles:e,zoomOnClick:!1,calculator:function(n,t){for(var r=0,i="",s=n.length.toString(),e,o,f,u=0;u<n.length;++u)if(e=n[u],e.searchItem.mnm)if(o=e.searchItem.mnm,i==="")i=o;else if(i!==o){i="";break}for(f=s;f!==0;)f=parseInt(f/10,10),r++;return r=Math.min(r,t),{text:i,index:r,title:i}}};u.minimumClusterSize=this.clustering?2:9999;f=this.markers;this.markerCluster=new MarkerClusterer(this.map,this.markers,u);google.maps.event.addListener(this.markerCluster,"click",function(n){var t=n.getMarkers();if(typeof this.markerCallback=="function"){this.markerCallback(this.markers.indexOf(t[0]));return}this.openOverlay(t.map(function(n){return n.searchItem}))}.bind(this));this.extendedItems&&this.extendedItems.length&&(u.minimumClusterSize=this.extendedClustering?2:9999,f=f.concat(this.extendedMarkers),this.extendedMarketCluster=new MarkerClusterer(this.map,this.extendedMarkers,u),google.maps.event.addListener(this.extendedMarketCluster,"click",function(n){var t=n.getMarkers();if(typeof this.extendedMarkerCallback=="function"){if(this.extendedMarkerCallback(this.extendedMarkers.indexOf(t[0])))return}else if(typeof this.extendedMarkerCallback=="boolean"&&!this.extendedMarkerCallback)return;this.openOverlay(t.map(function(n){return n.searchItem}))}.bind(this)));this.zoomToBounds(f)}},zoomToBounds:function(n,t){var i,r,c;for(n||(n=this.markers),this.map.boundaries=n,t||(t=15),i=new google.maps.LatLngBounds,r=0,c=this.map.boundaries.length;r<c;r++)i.extend(this.map.boundaries[r].position);if(i){var u=i.getSouthWest(),f=i.getNorthEast(),e=u.lat(),o=u.lng(),s=f.lat(),h=f.lng(),l=(o-h)/2,a=(e-s)/2,v=(o+h)/2,y=(e+s)/2;o=v+l/1;h=v-l/1;e=y+a/1;s=y-a/1;u=new google.maps.LatLng(e,o);f=new google.maps.LatLng(s,h);i=new google.maps.LatLngBounds(u,f);this.map.fitBounds(i);google.maps.event.addListenerOnce(this.map,"bounds_changed",function(){this.map.getZoom()>t&&this.map.setZoom(t)}.bind(this))}},mapSetup:function(){if(typeof google!="undefined"&&typeof google.maps!="undefined"&&typeof MarkerWithLabel!="undefined"){var n={center:new google.maps.LatLng(this.latitude,this.longitude),streetViewControl:!0,scrollwheel:!1,zoom:9,zoomControlOptions:{style:google.maps.ZoomControlStyle.SMALL,position:google.maps.ControlPosition.LEFT_TOP},styles:[{featureType:"landscape",elementType:"geometry",stylers:[{color:"#f6f4ec"}]},{featureType:"poi.park",elementType:"geometry.fill",stylers:[{color:"#cdf0d6",visibility:"off"}]},{featureType:"road.highway",elementType:"geometry.fill",stylers:[{color:"#f0ecde"}]},{featureType:"road.highway",elementType:"geometry.stroke",stylers:[{color:"#c8c2ae"}]},{featureType:"water",elementType:"geometry",stylers:[{color:"#b8d4f4"}]},{featureType:"poi",elementType:"labels",stylers:[{visibility:"off"}]}]};this.map=new google.maps.Map(this.$refs.mapContainer,n);this.fillMarkers();google.maps.event.addListenerOnce(this.map,"tilesloaded",function(){this.$emit("map-ready")}.bind(this))}},loadDependencies:function(){if(typeof google=="undefined"||typeof google.maps=="undefined"){if(Lennar.Vue.Utils.LoadingScripts.indexOf(__len_map_api_url)>=0){setTimeout(this.loadDependencies,100);return}Lennar.Vue.Utils.LoadScript(__len_map_api_url,this.loadDependencies,this.errorOnInitMap)}else if(typeof MarkerWithLabel=="undefined"){if(Lennar.Vue.Utils.LoadingScripts.indexOf("/bundles/js/vue.map?v=1")>=0){setTimeout(this.loadDependencies,100);return}Lennar.Vue.Utils.LoadScript("/bundles/js/vue.map?v=1",this.mapSetup,this.errorOnInitMap)}else this.map==null&&this.mapSetup()},openOverlay:function(n){this.showOverlay&&this.closeOverlay();this.selectedValue=n;this.$refs.mapInfoWindow.open(n);this.showOverlay=!0},closeOverlay:function(){this.$refs.mapInfoWindow.close();this.showOverlay=!1},openFlyout:function(n,t,i,r,u){var f=this.markers[n],o,h,s,e;if(f){for(f.icon.url=f.searchItem.activeIcon?f.searchItem.activeIcon:"/images/v9.0/poi-pin-lightblue.png",this.activeMarker&&(this.activeMarker.icon.url=this.activeMarker.searchItem.icon?this.activeMarker.searchItem.icon:"/images/v9.0/poi-pin-blue.png"),this.activeMarker=f,i>0&&this.map.setZoom(i),r&&(o=this.latLng2Point(this.activeMarker.position,this.map),o.y+=u,h=this.point2LatLng(o,this.map),this.map.panTo(h)),this.$refs.mapInfoWindow.class="map-flyout nearby",s=[],e=0;e<this.markers.length&&e<t;++e)s.push(this.markers[n+e].searchItem);this.openOverlay(s)}},latLng2Point:function(n,t){var u=t.getProjection().fromLatLngToPoint(t.getBounds().getNorthEast()),f=t.getProjection().fromLatLngToPoint(t.getBounds().getSouthWest()),i=Math.pow(2,t.getZoom()),r=t.getProjection().fromLatLngToPoint(n);return new google.maps.Point((r.x-f.x)*i,(r.y-u.y)*i)},point2LatLng:function(n,t){var r=t.getProjection().fromLatLngToPoint(t.getBounds().getNorthEast()),u=t.getProjection().fromLatLngToPoint(t.getBounds().getSouthWest()),i=Math.pow(2,t.getZoom()),f=new google.maps.Point(n.x/i+u.x,n.y/i+r.y);return t.getProjection().fromPointToLatLng(f)},showDirections:function(n,t){var i=new google.maps.DirectionsRenderer;i.setMap(this.map);i.setDirections(n);google.maps.event.trigger(this.map,"resize");this.map.fitBounds(n.routes[0].bounds);typeof t=="function"&&(this.idle=!1,this.tilesLoaded=!1,google.maps.event.addListenerOnce(this.map,"tilesloaded",function(){this.tilesLoaded=!0;this.tilesLoaded&&this.idle&&t()}.bind(this)),google.maps.event.addListenerOnce(this.map,"idle",function(){this.idle=!0;this.tilesLoaded&&this.idle&&t()}.bind(this)))}}});Lennar.DocReady(function(){var n=document.querySelectorAll(".vue-meet-isc");Array.prototype.forEach.call(n,function(n){new Vue({el:n,data:{cityUrl:""},methods:{openModal:function(){this.$refs.selectCity&&this.$refs.selectCity.show("",this.confirm)},confirm:function(){this.cityUrl&&(window.location.href=this.cityUrl)}},mounted:function(){},beforeDestroy:function(){}})})},"VueMeetISC");Vue.component("multi-list",{template:'<div class="multi-list">                <div class="len-fltr-srch" v-show="filter">                    <input type="text" v-model="filterText" placeholder="Enter a value">                    <span><i class="fas fa-search"><\/i><\/span>                <\/div>                <div v-bind:class="{\'len-fltr-box-scrl\': scroll, \'box-scrl\': scroll, \'no-scrl\': !scroll}">                    <horiz-scroll>                        <div class="hscroll-fix" v-bind:class="{\'scrl-innr\': scroll}">                            <ul v-bind:class="{\'chk-horiz\': horizontal}">                                <li v-for="(item, index) in filteredValues" v-bind:class="{selected: item.v == 1}">                                    <input type="checkbox" v-model="item.v" v-bind:id="labelName + \'_\' + index" v-on:change="select(item)" v-bind:disabled="item.s == 1">                                    <label v-bind:for="labelName + \'_\' + index" v-bind:tabindex="item.s == 0 ? 0 : -1" v-html="item.l" v-on:keyup.enter="toggle(item)"><\/label>                                <\/li>                            <\/ul>                        <\/div>                    <\/horiz-scroll>                <\/div>                <slot><\/slot>               <\/div>',data:function(){return{filterText:"",hasPendingChanges:!1}},props:{value:{},labelName:"",filter:!1,scroll:!1,horizontal:!1,single:!1},computed:{filteredValues:function(){if(this.filterText){var n=this;return this.value.filter(function(t){try{return t.l.toLowerCase().indexOf(n.filterText.toLowerCase())>=0}catch(i){return!0}})}return this.value}},methods:{select:function(n){if(n.s!=1){if(n.v=n.v?1:0,n.v&&this.single)for(var t=0;t<this.value.length;t++)this.value[t].k!=n.k&&(this.value[t].v=0);this.hasPendingChanges=!0;this.$emit("index-changed",n)}},toggle:function(n){n.s!=1&&(n.v=n.v?0:1,this.select(n))},hasUncommitedChanges:function(){return this.hasPendingChanges},hasChanges:function(){if(this.value)for(var n=0;n<this.value.length;++n)if(this.value[n].v)return!0;return!1},apply:function(){this.hasPendingChanges=!1}}});Vue.component("vue-pager",{template:'<div class="len-res-paging">                <a href="javascript:void(0);" v-on:click="previous" class="arrow" v-bind:class="{disabled: page == 0}">                    <i class="fas fa-angle-left"><\/i>                <\/a>                <template v-for="n in total">                    <a href="javascript:void(0);" v-if="n == 1 || n == total || ((n - 2) <= page && n >= page)" v-on:click="switchPage(n-1)" v-bind:class="{active: page == (n - 1)}">{{n}}<\/a>                    <template v-if="n != 1 && n != total && (n - 3 == page || n + 1 == page)">..<\/template>                <\/template>                <a href="javascript:void(0);" v-on:click="next" class="arrow" v-bind:class="{disabled: page == (total - 1)}">                    <i class="fas fa-angle-right"><\/i>                <\/a>            <\/div>',data:function(){return{}},props:{page:{type:Number},total:{type:Number}},methods:{previous:function(){this.page>0&&this.$emit("index-changed",this.page-1)},next:function(){this.page<this.total-1&&this.$emit("index-changed",this.page+1)},switchPage:function(n){this.$emit("index-changed",n)}},mounted:function(){}});Vue.component("vue-password",{template:'<div class="cusm-pwd-box" v-on:click.stop="">        <input ref="input" v-model="valueInput" v-on:keyup.enter="onEnter" v-bind:type="inputType" v-bind:id="inputId" maxlength="20" v-bind:title="placeholder" v-bind:placeholder="placeholder" v-bind:aria-label="ariaLabel" v-on:focus="displayHint" v-on:blur="hideHint">        <div class="pwd-rules" style="display:none;" v-show="showHint && showHintInternal">            <span tab-index="0" v-on:click="hideHint"><\/span>            <aside v-show="showStrength">                <div>Weak<\/div>                <div v-bind:class="{red: strength > 0}">&nbsp;<\/div>                <div v-bind:class="{orange: strength > 1}">&nbsp;<\/div>                <div v-bind:class="{yellow: strength > 2}">&nbsp;<\/div>                <div v-bind:class="{fgreen: strength > 3}">&nbsp;<\/div>                <div v-bind:class="{green: strength > 4}">&nbsp;<\/div>                <div>Strong<\/div>            <\/aside>            <p>Passwords are treated as case sensitive.<\/p>            <ul>                <li v-bind:class="{done: validations[0]}">The password must be 8 - 20 characters long.<\/li>                <li>The password must contain at least:<\/li>                <ol>                    <li v-bind:class="{done: validations[1]}">One alpha uppercase character [A-Z];<\/li>                    <li v-bind:class="{done: validations[2]}">One alpha lowercase character [a-z];<\/li>                    <li v-bind:class="{done: validations[3]}">One numeric character [0-9];<\/li>                    <li v-bind:class="{done: validations[4]}">One special character from this set:<br>&nbsp;&nbsp;&nbsp;! @ $ % ^ &amp; * ?<\/li>                <\/ol>                <li v-bind:class="{wrng: validations[5]}">The password must not contain spaces<\/li>            <\/ul>        <\/div>        <div class="eye">            <button v-on:click="toggleShow" v-bind:class="{active: showText, inactive: !showText}"><\/button>        <\/div>    <\/div>',data:function(){return{showHintInternal:!1,showText:!1,validations:[!1,!1,!1,!1,!1,!1],strength:0}},props:{password:{type:[String]},placeholder:{type:[String],"default":"Password"},ariaLabel:{type:[String],"default":"Enter your password"},inputId:{type:[String],"default":"txtPassword"},showHint:{type:[Boolean],"default":!1},showStrength:{type:[Boolean],"default":!1}},computed:{inputType:function(){return this.showText?"text":"password"},valueInput:{get:function(){return this.password},set:function(n){this.$emit("update:password",n)}}},watch:{password:function(){this.validate()}},methods:{onEnter:function(){this.$emit("submit")},toggleShow:function(){this.showText=!this.showText;this.$refs.input.focus()},displayHint:function(){this.showHintInternal=!0;this.$nextTick(function(){this.hideHintFunc=this.hideHint.bind(this);document.addEventListener("click",this.hideHintFunc)})},hideHint:function(){this.showHintInternal=!1;this.hideHintFunc&&(document.removeEventListener("click",this.hideHintFunc),this.hideHintFunc=null)},validate:function(){for(var n=0;n<this.validations.length;++n)this.validations[n]=!1;(this.strength=0,this.password.length!=0)&&(this.validations[0]=this.password.length>=8,this.validations[1]=/[A-Z]/.test(this.password),this.validations[2]=/[a-z]/.test(this.password),this.validations[3]=/[0-9]/.test(this.password),this.validations[4]=/[!@$%^&*?]/.test(this.password),this.validations[5]=/\s/g.test(this.password),this.password.length>=4&&(this.strength=1),this.password.length>=7&&(this.strength=2),this.password.length>=8&&(this.strength=3,this.validations[1]&&this.password.match(/[A-Z]/g).length>=3&&this.validations[3]&&this.password.match(/[0-9]/g).length>=3&&this.validations[4]&&this.password.match(/[!@$%^&*?]/g).length>=3&&(this.strength=4)),this.password.length>=15&&this.validations[1]&&this.password.match(/[A-Z]/g).length>=3&&this.validations[3]&&this.password.match(/[0-9]/g).length>=3&&this.validations[4]&&this.password.match(/[!@$%^&*?]/g).length>=3&&(this.strength=5))}}});Vue.component("vue-pie-chart",{template:'<div class="pie-chart">                <svg width="100%" height="100%" viewBox="0 0 70 70" class="pie">                    <template v-for="chartItem in chartAnimatedData">                        <circle class="pie-segment" cx="35" cy="35" r="15.91549430918954" fill="transparent" stroke-width="32" v-bind:stroke-dasharray="chartItem.percentage + \' \' + (100 - chartItem.percentage)" v-bind:stroke-dashoffset="100 - chartItem.totalOffset + chartItem.initialOffset"><\/circle>                    <\/template>                    <template v-for="chartItem in chartData">                        <line x1="35" y1="35" v-bind:x2="chartItem.x2" v-bind:y2="chartItem.y2" style="stroke:rgb(255,255,255);stroke-width:0.5" />                    <\/template>                <\/svg>            <\/div>',data:function(){return{chartData:[],chartAnimatedData:[],tweenAnimations:[]}},props:{pieValues:{type:Array}},watch:{pieValues:{immediate:!0,handler:function(){this.loadChartData()}}},mounted:function(){},beforeDestroy:function(){},methods:{loadChartData:function(){var n=0,t,i;for(this.chartData=[],this.chartAnimatedData=[],t=0;t<this.pieValues.length;t++)i=this.pieValues[t],this.chartData.push({percentage:i,initialOffset:25,totalOffset:n,x2:35+Math.round(35*Math.sin(n*.02*Math.PI)),y2:35-Math.round(35*Math.cos(n*.02*Math.PI))}),n+=parseFloat(i);this.animateData()},animateData:function(){function r(){TWEEN.update()&&requestAnimationFrame(r)}for(var i,t,n=0;n<this.tweenAnimations.length;++n)this.tweenAnimations[n].isPlaying()&&this.tweenAnimations[n].stop();for(i=500,n=0;n<this.chartData.length;++n)t=25,this.chartAnimatedData.length<=n&&(i=1e3,this.chartAnimatedData.push({percentage:0,initialOffset:t,totalOffset:0}),t+=t);for(this.tweenAnimations=[],n=0;n<this.chartData.length;++n)this.tweenAnimations.push(new TWEEN.Tween(this.chartAnimatedData[n]).to({percentage:this.chartData[n].percentage,initialOffset:this.chartData[n].initialOffset,totalOffset:this.chartData[n].totalOffset},i).start());r()}}});Lennar.DocReady(function(){var n=document.querySelectorAll(".vue-print-map");Array.prototype.forEach.call(n,function(n){new Vue({el:n,data:{floorMapActive:!1,commMapActive:!1,floorMapItems:[],commMapItems:[],commIds:[],floorIds:[],mapCounter:0},methods:{loadFloorplanMapData:function(){axios.post("/Services/Rest/Search.svc/GetSearchItems",{type:"c",ids:this.floorIds}).then(function(n){n&&n.data&&(this.floorMapItems=n.data);this.floorMapActive=!0}.bind(this)).catch(function(n){console.log(n)})},loadCommunityMapData:function(){axios.post("/Services/Rest/Search.svc/GetSearchItems",{type:"c",ids:this.commIds}).then(function(n){n&&n.data&&(this.commMapItems=n.data);this.commMapActive=!0}.bind(this)).catch(function(n){console.log(n)})},mapReady:function(){this.mapCounter--;this.mapCounter==0&&typeof lennarPrint=="function"&&lennarPrint()}},mounted:function(){this.$refs.floorplanMap&&(this.floorIds=this.$el.dataset.floorplanComms.split(","),this.loadFloorplanMapData(),this.mapCounter++);this.$refs.communityMap&&(this.commIds=this.$el.dataset.commapComms.split(","),this.loadCommunityMapData(),this.mapCounter++);this.mapCounter==0&&typeof lennarPrint=="function"&&lennarPrint()}})})},"VuePrintMap");Vue.component("vue-read-more",{template:'    <div class="read-more-box" v-bind:class="{\'read-more-expanded\': expanded || !needsExpand}">        <div ref="slotContainer">            <slot><\/slot>        <\/div>        <a title="Read more" href="javascript:void(0);" v-on:click="expand" class="read-more-lnk" v-show="!expanded && needsExpand">Read more<\/a>    <\/div>',data:function(){return{expanded:!1,needsExpand:!0,maxAttempts:2,currentAttempts:0}},methods:{expand:function(){this.expanded=!0},calculateExpand:function(){var n,t;if(!this.needsExpand){this.refresh();return}if(n=this.$el.clientHeight,n==0&&this.currentAttempts<this.maxAttempts){this.currentAttempts++;this.refresh();return}this.currentAttempts=0;t=this.$refs.slotContainer.clientHeight;this.needsExpand=n==0||t>n},refresh:function(){this.needsExpand=!0;this.$nextTick(this.calculateExpand)}},mounted:function(){this.$nextTick(this.calculateExpand);this.deb=Lennar.Vue.Utils.Debounce(this.calculateExpand,300,!1);window.addEventListener("resize",this.deb);this.observer=new MutationObserver(function(){this.refresh()}.bind(this));this.observer.observe(this.$refs.slotContainer,{childList:!0,subtree:!0})},beforeDestroy:function(){window.removeEventListener("resize",this.deb);this.observer.disconnect()}});Vue.component("vue-recently-viewed",{template:'<div>        <div v-if="loading && showLoader" class="src-fc-overlay">            <div class="no-results">                <div class="centered-container">                    <aside class="lds-bx"><div class="lds-ellipsis"><div><\/div><div><\/div><div><\/div><div><\/div><\/div><\/aside><br />                    <p class="bold">Loading results...<\/p>                <\/div>            <\/div>        <\/div>        <div v-if="!isControlVisible && !loading && showNoResultsMsg" class="len-results-items">            <div class="inner">                <p class="no-results-text">You don\'t have any recently viewed items.<\/p>            <\/div>        <\/div>        <div v-cloak v-if="isControlVisible" class="recently-viewed-container">            <div class="len-tabs-alt clearfix" ref="tabs" v-show="showTabs">                <div class="inner tab-title">                    <h2>{{headerTitle}}<\/h2>                    <horiz-scroll>                        <ul>                            <li v-if="communities !== null && communities.length > 0">                                <a v-bind:class="{active: isResultTabVisible && isCommunityTabActive}" v-on:click.stop="selectCommunityTab" href="javascript:void(0);">                                    {{communityTitle}}                                    <span class="len-tip-item bottom">                                        <i class="far fa-info-circle"><\/i>                                        <span class="len-tip-box" style="display: none;">A well-planned location where Lennar builds new homes in close proximity to conveniences, schools, and recreation.<\/span>                                    <\/span>                                <\/a>                            <\/li>                            <li v-if="inventories !== null && inventories.length > 0">                                <a v-bind:class="{active:isResultTabVisible && isInventoryTabActive}" v-on:click.stop="selectInventoryTab" href="javascript:void(0);">                                    {{inventoryTitle}}                                    <span class="len-tip-item bottom">                                        <i class="far fa-info-circle"><\/i>                                        <span class="len-tip-box" style="display: none;">An inventory home that is either under construction or completed.<\/span>                                    <\/span>                                <\/a>                            <\/li>                            <li v-if="plans !== null && plans.length > 0">                                <a v-bind:class="{active: isResultTabVisible && isPlanTabActive}" v-on:click.stop="selectPlanTab" href="javascript:void(0);">                                    {{planTitle}}                                    <span class="len-tip-item bottom">                                        <i class="far fa-info-circle"><\/i>                                        <span class="len-tip-box" style="display: none;">A well-laid plan for the arrangement of rooms and physical features in a brand-new home.<\/span>                                    <\/span>                                <\/a>                            <\/li>                        <\/ul>                    <\/horiz-scroll>                <\/div>            <\/div>            <div id="res-container">                <div class="len-results-items clearfix">                    <div class="inner clearfix" v-show="isResultTabVisible">                        <h2 class="title" v-if="inventories !== null && inventories.length > 0" v-show="!showTabs">{{inventories.length}} Quick Move-In Homes<\/h2>                        <div v-if="inventories !== null && inventories.length > 0" v-show="isInventoryTabActive || !showTabs" id="inventoryList" class="len-tab-ctnt clearfix">                            <vue-refine-results v-bind:load="isInventoryTabActive || !showTabs" v-model="inventories" v-bind:has-slider="true" v-bind:loop="false" v-bind:responsive="{320: {fixedWidth: 300, slideBy: 1}, 404: {fixedWidth: 383, slideBy: 1}, 768: {fixedWidth: 358, slideBy: 2}, 1024: {fixedWidth: 333, slideBy: 3}, 1280: {fixedWidth: 389, slideBy: 3}}"><\/vue-refine-results>                        <\/div>                        <h2 class="title" v-if="plans !== null && plans.length > 0" v-show="!showTabs">{{plans.length}} Floorplans<\/h2>                        <div v-if="plans !== null && plans.length > 0" v-show="isPlanTabActive || !showTabs" id="planList" class="len-tab-ctnt clearfix">                            <vue-refine-results v-bind:load="isPlanTabActive || !showTabs" v-model="plans" v-bind:has-slider="true" v-bind:loop="false" v-bind:responsive="{320: {fixedWidth: 300, slideBy: 1}, 404: {fixedWidth: 383, slideBy: 1}, 768: {fixedWidth: 358, slideBy: 2}, 1024: {fixedWidth: 333, slideBy: 3}, 1280: {fixedWidth: 389, slideBy: 3}}"><\/vue-refine-results>                        <\/div>                        <h2 class="title" v-if="communities !== null && communities.length > 0" v-show="!showTabs">{{communities.length}} Communities<\/h2>                        <div v-if="communities !== null && communities.length > 0"  v-show="isCommunityTabActive || !showTabs" id="communityList" class="len-tab-ctnt clearfix">                            <vue-refine-results v-bind:load="isCommunityTabActive || !showTabs" v-model="communities" v-bind:has-slider="true" v-bind:loop="false" v-bind:responsive="{320: {fixedWidth: 300, slideBy: 1}, 404: {fixedWidth: 383, slideBy: 1}, 768: {fixedWidth: 358, slideBy: 2}, 1024: {fixedWidth: 333, slideBy: 3}, 1280: {fixedWidth: 389, slideBy: 3}}"><\/vue-refine-results>                        <\/div>                    <\/div>                <\/div>            <\/div>        <\/div>    <\/div>',data:function(){return{inventories:null,plans:null,communities:null,isInventoryTabActive:!1,isPlanTabActive:!1,isCommunityTabActive:!1,isResultTabVisible:!1,isControlVisible:!1,loading:!0}},props:{showTabs:{type:[Boolean],"default":!0},loadData:{type:[Boolean],"default":!0},showLoader:{type:[Boolean],"default":!1},showNoResultsMsg:{type:[Boolean],"default":!1},headerTitle:{type:[String],"default":"Recently viewed"}},watch:{loadData:{immediate:!0,handler:function(){this.loadData&&!this.isControlVisible&&this.retrieveData()}}},computed:{communityTitle:function(){return this.communities.length>1?this.communities.length+" Communities":this.communities.length==1?this.communities.length+" Community":""},planTitle:function(){return this.plans.length>1?this.plans.length+" Floorplans":this.plans.length==1?this.plans.length+" Floorplan":""},inventoryTitle:function(){return this.inventories.length>1?this.inventories.length+" Quick Move-In Homes":this.inventories.length==1?this.inventories.length+" Quick Move-In Home":""}},components:{"tiny-slider":VueTinySlider},methods:{retrieveData:function(){this.loading=!0;axios.get("/Services/Rest/Search.svc/GetRecentlyViewedItems").then(function(n){n!=null&&n.data!=null&&(this.inventories=n.data.filter(function(n){return n.type=="h"}),this.plans=n.data.filter(function(n){return n.type=="p"}),this.communities=n.data.filter(function(n){return n.type=="c"}),this.communities!=null&&this.communities.length>0?(this.isCommunityTabActive=!0,this.isResultTabVisible=!0,this.isControlVisible=!0):this.inventories!=null&&this.inventories.length>0?(this.isInventoryTabActive=!0,this.isResultTabVisible=!0,this.isControlVisible=!0):this.plans!=null&&this.plans.length>0?(this.isPlanTabActive=!0,this.isResultTabVisible=!0,this.isControlVisible=!0):(this.isResultTabVisible=!1,this.isControlVisible=!1));this.loading=!1}.bind(this)).catch(function(n){this.loading=!1;console.log(n)}.bind(this))},selectInventoryTab:function(){this.isInventoryTabActive=!0;this.isPlanTabActive=!1;this.isCommunityTabActive=!1},selectPlanTab:function(){this.isInventoryTabActive=!1;this.isPlanTabActive=!0;this.isCommunityTabActive=!1},selectCommunityTab:function(){this.isInventoryTabActive=!1;this.isPlanTabActive=!1;this.isCommunityTabActive=!0},hideResultTab:function(){this.isResultTabVisible=this.isResultTabVisible?!1:!0}}});Vue.component("vue-refine-results",{template:'    <tiny-slider v-if="loadInternal" ref="slider" class="len-results-slider" v-bind:enable-slider="hasSlider" v-bind:datasource="value" v-bind:loop="loop" v-bind:responsive="responsive" v-bind:items="items" v-bind:fixed-width="fixedWidth" v-bind:swipe-angle="swipeAngle">        <div class="len-item" v-for="(item, index) in value" v-bind:class="{\'inv-item\': item.type == \'h\', \'plan-item\': item.type == \'p\', \'comm-item\': item.type == \'c\', \'mpc-item\': item.type == \'m\'}">            <div class="item-img-box">                <a v-bind:href="item.url" tabindex="-1">                    <img class="lazyload" v-bind:data-src="addQsParams(item.img, \'h=285\')" v-bind:alt="item.name" />                <\/a>                <div v-if="item.type == \'p\' && item.imh" class="mdl-tag"><span>MODEL<\/span><\/div>            <\/div>            <div class="item-img-actions">                <span class="item-save">                    <vue-favorite-tooltip v-bind:type="item.type" v-bind:id="item.id" v-bind:is-favorite="item.isFav" v-bind:name="item.name"><\/vue-favorite-tooltip>                <\/span>                <span class="item-cmpr">                    <vue-compare-tooltip v-bind:type="item.type" v-bind:id="item.id" v-bind:in-compare="item.incmp" v-bind:name="item.name" v-bind:mnm="item.mnm" v-bind:image="item.img"><\/vue-compare-tooltip>                <\/span>            <\/div>            <div class="item-data-box clearfix">                <p class="item-name clamptext2">                    <a v-if="item.mnm" v-bind:href="item.url" v-bind:title="item.mnm + \': \' + item.name"><strong>{{item.mnm}}: {{item.name}}<\/strong><\/a>                    <a v-else v-bind:href="item.url" v-bind:title="item.name"><strong>{{item.name}}<\/strong><\/a>                    <a href="javascript:void(0)" v-if="item.type == \'h\' || item.type == \'p\'" class="item-paymnt" v-on:click="openCalculatorModal(item)">{{item.estpay ? \'Est. \' + item.estpay + \'/month*\' : \'Est. payment*\'}}<\/a>                <\/p>                <p v-bind:class="{\'item-coll\': item.type == \'h\' || item.type == \'p\', \'item-site-addr\': item.type == \'c\'}" class="clamptext1" v-bind:title="item.sub">                    {{item.sub}}                <\/p>                <p class="item-price-sts">                    <span v-if="item.type == \'c\' && item.price" class="item-price-lbl">Price:<\/span>                    <span v-if="item.type == \'p\' && item.price" class="item-price-lbl">from:<\/span>                    <s v-if="item.type == \'h\' && item.wasprice">{{item.wasprice}}<\/s>                    <strong>{{item.price}}<\/strong>                    <span class="item-home-size" v-if="item.size">Size: {{item.size}}<\/span>                    <span class="item-sts" v-if="item.type == \'h\'">{{getAvailText(item)}}<\/span>                    <a href="javascript:void(0)" v-if="item.type == \'h\' || item.type == \'p\'" class="item-paymnt" v-on:click="openCalculatorModal(item)">{{item.estpay ? \'Est. \' + item.estpay + \'/month*\' : \'Est. payment*\'}}<\/a>                <\/p>                <p class="item-com-name clamptext2" v-if="item.cname" v-bind:title="getFullCommunityName(item)">{{getFullCommunityName(item)}}<\/p>                <p class="item-qmi-cnt" v-if="item.qcnt">                    {{item.qcnt}} Quick Move-In Homes Available                <\/p>                <p class="item-site-addr clamptext1" v-bind:title="item.sub" v-if="item.lotid">                    <span class="hmsite">Homesite: {{item.lotid.slice(-4)}} | <\/span>                    {{item.sub}}                <\/p>                <ul class="item-grid" v-if="item.type == \'h\' || item.type == \'p\'">                    <li>{{item.beds}} <span>beds<\/span><\/li>                    <li>{{item.baths}} <span>baths<\/span><\/li>                    <li class="item-grid-story" v-if="item.hbaths != \'0\'">{{item.hbaths}} <span>half baths<\/span><\/li>                    <li>{{item.hsqft}} <span>sq.ft.<\/span> <span>home size<\/span><\/li>                    <li v-if="item.lsqft && item.lsqft != \'0\'" class="item-grid-site">{{item.lsqft}} <span>sq.ft.<\/span> <span>homesite<\/span><\/li>                    <li>{{item.gar}} <span v-if="item.usebay">bay garage<\/span><span v-else>car garage<\/span><\/li>                    <li class="item-grid-story">{{item.st}} <span>stories<\/span><\/li>                <\/ul>                <p class="item-type" v-if="item.ctns && item.ctns.length" v-html="getCommunityTypes(item)"><\/p>                <div class="item-actions">                    <a class="item-actions-tel action-tel-mobile" v-show="isMobile" v-bind:href="\'tel:\' + item.tel"><i class="fas fa-phone"><\/i> Call<span> {{item.tel}}<\/span><\/a>                    <a class="item-actions-tel action-tel-desktop" v-show="!isMobile" href="javascript:void(0);" v-on:click="showTooltip(index)"><i class="fas fa-phone"><\/i> Call<span> {{item.tel}}<\/span><\/a>                    <vue-tooltip class="len-tip-box len-tip-box-auto" v-bind:display="tooltipIndex == index" v-on:closed="hideTooltip">                        <span>Call ahead to schedule an appointment. <br /><b>{{item.tel}}<\/b><\/span>                    <\/vue-tooltip>                <\/div>                <div class="item-logos">                    <img v-if="hasType(item, \'NGE\')" src="/images/v9.0/logo-nextgen.png" alt="NextGen" />                    <span v-if="item.brand">By {{item.brand}}<\/span>                <\/div>            <\/div>        <\/div>    <\/tiny-slider>',data:function(){return{isMobile:Lennar.Vue.Utils.IsMobile(),loadInternal:!1,tooltipIndex:-1}},props:{value:{},hasSlider:{type:[Boolean],"default":!1},loop:{type:[Boolean],"default":!0},responsive:{type:[Object],"default":null},fixedWidth:{type:[Number],"default":null},loop:{type:[Boolean],"default":!0},swipeAngle:{type:[Boolean],"default":!1},responsive:{type:[Boolean,Object],"default":!1},fixedWidth:{type:[Number],"default":null},items:{type:[String,Number],"default":"1"},load:{type:[Boolean],"default":!0}},watch:{load:function(){this.load&&(this.loadInternal=!0)}},methods:{getFullCommunityName:function(n){return n.type=="p"?n.cname+", "+n.sub:n.cname},getCommunityTypes:function(n){return n.ctns.filter(function(n){return n.indexOf("<br>")<0}).join(" | ")},hasType:function(n,t){return n.cts?n.cts.indexOf(t)>=0:!1},openCalculatorModal:function(n){Lennar.Vue.DataLayer.Event("estimatePayment");var t=null;Lennar.Global.actorStatus===0&&(t=function(){Lennar.Global.actorStatus!==0&&window.location.reload()});n.type=="p"?Lennar.Vue.Utils.OpenUrlModal("/modals/EstimatedMonthlyPayment?planid="+n.id,"gen-mdl-form",t):n.type=="h"&&Lennar.Vue.Utils.OpenUrlModal("/modals/EstimatedMonthlyPayment?availid="+n.id,"gen-mdl-form",t)},getAvailText:function(n){var t=Lennar.Vue.Utils.ParseDate(n.ad),i;return t>new Date?(i={year:"numeric",month:"short"},"Available "+t.toLocaleDateString("en-US",i)):"Available Now"},truncateText:function(){var n=document.getElementsByClassName("clampthetext");for(i=0;i<n.length;i++)$clamp(n[i],{clamp:"auto"})},showTooltip:function(n){n!=this.tooltipIndex&&(this.tooltipIndex=-1,this.$nextTick(function(){this.tooltipIndex=n}))},hideTooltip:function(){this.tooltipIndex=-1},addQsParams:function(n,t){return n.indexOf("?")>=0?n+"&"+t:n+"?"+t}},mounted:function(){this.loadInternal=this.load},components:{"tiny-slider":VueTinySlider}});Vue.component("vue-rfi",{template:'    <div class="vue-rfi">        <div v-show="!success" class="svc-rqst-form help-buy-form">            <p class="title-28 blue dft-el" v-show="!success">Need help buying a new home?<\/p><p class="title-28 blue rfi-el" v-show="!success">Request Information<\/p>            <p class="text" v-show="!success">Get up-to-date pricing & availability, special incentives, answers to your questions & more!<\/p>            <p class="required-label all-req" v-show="!success">Asterisk* fields are required.<\/p>\t\t\t<input style="display:none" type="text" name="fakeusernameremembered"/>\t\t\t<input style="display:none" type="password" name="fakepasswordremembered"/>            <aside v-show="!success">                <div><label for="txtFullName">Name*<\/label><\/div>                <div>                    <input v-model="fullName" ref="inputFullName" id="txtFullName" v-bind:class="{error : fullNameErr.length > 0}" type="text" value="" placeholder="First and Last Name" maxlength="50" title="Name" aria-label="Enter your name">                    <span v-show="fullNameErr.length > 0" class="error">{{fullNameErr}}<\/span>                <\/div>            <\/aside>            <aside v-show="!success">                <div><label for="txtEmailAddress">Email*<\/label><\/div>                <div>                    <input v-model="email" v-bind:class="{error : emailErr.length > 0}" ref="inputEmail" id="txtEmailAddress" type="email" maxlength="50" title="Email address" aria-label="Enter your email address">                    <input v-model="email2" type="email" id="txtEmailAddress2" title="Email Address" aria-label="Enter your email address" style="display:none;">                    <span v-show="emailErr.length > 0" class="error">{{emailErr}}<\/span>                <\/div>            <\/aside>            <aside v-show="!success" v-bind:class="{selecterror : phoneErr.length > 0}" class="asm-lbl">                <div><label for="txtPhoneNumber" ref="labelPhone">Cell<\/label><\/div>                <div>                    <vue-tel-input default-country="US" v-bind:disabled-fetching-country="true" v-model="phone" ref="inputPhone" input-id="txtPhoneNumber" placeholder="" maxlength="25" title="Phone number" aria-label="Enter your phone number"><\/vue-tel-input>                    <span v-show="phoneErr.length > 0" class="error">{{phoneErr}}<\/span>                <\/div>            <\/aside>            <div class="space"><\/div>            <p class="title-2 nowrp" v-show="!success">                <strong>Where do you currently live?<\/strong><br>                <span>                    <span class="tt-itm">                        <i class="far fa-exclamation-circle"><\/i>                        <a href="#">Why we need this?<\/a>                        <span class="tt-box">To comply with real estate laws in some states, we require your state of residency before we can respond to your request.<\/span>                    <\/span>                <\/span>            <\/p>            <aside class="frm-p-div" v-show="!success" v-bind:class="{selecterror : countryErr.length > 0}">                <div><label for="ddlCountry" ref="labelCountry">Country*<\/label><\/div>                <div>                    <vue-search-select v-model="countryInternal" v-bind:options="countryOptions" v-on:blur="validate" ref="inputCountry" name="ddlCountry" id="ddlCountry" class="search" title="Country of residence" aria-label="Select your country of residence"><\/vue-search-select>                    <span v-show="countryErr.length > 0" class="error">{{countryErr}}<\/span>                <\/div>            <\/aside>            <div class="frm-p-div" v-show="!success">                <aside v-show="countryInternal == \'US\'" v-bind:class="{selecterror : stateErr.length > 0}">                    <div><label for="ddlState" ref="labelState">State*<\/label><\/div>                    <div>                        <vue-search-select v-model="state" v-bind:options="stateOptions" id="ddlState" name="ddlState" class="search" title="State / Province" aria-label="Select your state / province"><\/vue-search-select>                        <span v-show="stateErr.length > 0" class="error">{{stateErr}}<\/span>                    <\/div>                <\/aside>                <aside v-show="countryInternal != \'US\'">                    <div><label for="txtstateInt" ref="labelStateInt">State/Province<\/label><\/div>                    <div>                        <input v-model="stateInt" v-bind:class="{error : stateIntErr.length > 0}" ref="inputStateInt" id="txtstateInt" type="text" maxlength="25" title="State or province" aria-label="Enter your state or province">                        <span v-show="stateIntErr.length > 0" class="error">{{stateIntErr}}<\/span>                    <\/div>                <\/aside>            <\/div>            <p class="title-2 nowrp" v-show="!success && (stateOfInterestOptions.length || cityOfInterestOptions.length || communityOptions.length)">                <strong>Where do you want to buy a home?<\/strong><br>            <\/p>            <div class="frm-p-div" v-show="!success && stateOfInterestOptions.length">                <aside v-bind:class="{selecterror : stateOfInterestErr.length > 0}">                    <div><label for="ddlStateOfInterest" ref="labelStateOfInterest">State*<\/label><\/div>                    <div>                        <vue-search-select v-model="stateOfInterest" v-bind:options="stateOfInterestOptions" id="ddlStateOfInterest" name="ddlStateOfInterest" class="search" title="State of interest" aria-label="Select your state of interest"><\/vue-search-select>                        <span v-show="stateOfInterestErr.length > 0" class="error">{{stateOfInterestErr}}<\/span>                    <\/div>                <\/aside>            <\/div>            <div class="frm-p-div" v-show="!success && cityOfInterestOptions.length">                <aside v-bind:class="{selecterror : cityOfInterestErr.length > 0}">                    <div><label for="ddlCityOfInterest" ref="labelCityOfInterest">City*<\/label><\/div>                    <div>                        <vue-search-select v-model="cityOfInterest" v-bind:options="cityOfInterestOptions" id="ddlCityOfInterest" name="ddlCityOfInterest" class="search" title="City of interest" aria-label="Select your city of interest"><\/vue-search-select>                        <span v-show="cityOfInterestErr.length > 0" class="error">{{cityOfInterestErr}}<\/span>                    <\/div>                <\/aside>            <\/div>            <div class="frm-p-div" v-show="!success && communityOptions.length">                <aside v-bind:class="{selecterror : communityErr.length > 0}">                    <div><label for="ddlCommunity" ref="labelCommunity">Community*<\/label><\/div>                    <div>                        <vue-search-select v-model="communityIdInternal" v-bind:options="communityOptions" id="ddlCommunity" name="ddlCommunity" class="search" title="Community" aria-label="Select your community of interest"><\/vue-search-select>                        <span v-show="cityOfInterestErr.length > 0" class="error">{{communityErr}}<\/span>                    <\/div>                <\/aside>            <\/div>            <aside v-show="!success" class="nowrap">                <div><label for="txtComments">Comments<\/label><\/div>                <div class="comments-box">                    <textarea v-model="comments" ref="inputComments" id="txtComments" maxlength="4000" rows="2" title="Comments" aria-label="Enter your comments"><\/textarea>                <\/div>            <\/aside>            <div v-if="isVipInterestList || isInterestList" class="lrn-mr" v-show="!success">                <span><slot name="interestText"><\/slot><\/span>                <input type="checkbox" id="chkInterestList" ref="chkInterestList" v-model="interestListChecked" />                <label for="chkInterestList" v-if="isVipInterestList">Please add me to a VIP Interest List<\/label>                <label for="chkInterestList" v-else>Please add me to an Interest List<\/label>            <\/div>            <div class="marketing-comm" v-show="!success">                <p class="disclaimer">                    <slot name="disclaimer">                        <span class="">                            Would you like to receive marketing communications from Lennar\'s affiliated mortgage lender, title insurance, and homeowner\'s insurance about communities, homes, mortgage options, title insurance, and homeowners insurance?                        <\/span>                    <\/slot>                <\/p>                <div class="radio-btn-wrppr">                    <div class="radio-btn">                        <input type="radio" id="subscriptionYes" name="subscription" value="true" v-model="subscription" />                        <label for="subscriptionYes" v-bind:class="{error : subscriptionErr.length > 0}">Yes<\/label>                    <\/div>                    <div class="radio-btn">                        <input type="radio" id="subscriptionNo" name="subscription" value="false" v-model="subscription" />                        <label for="subscriptionNo" v-bind:class="{error : subscriptionErr.length > 0}">No<\/label>                    <\/div>                    <span v-show="subscriptionErr.length > 0" class="error">{{subscriptionErr}}<\/span>                <\/div>            <\/div>            <p v-show="!success">                <input type="submit" class="btn" v-bind:value="submitting ? \'Submitting\': \'Submit request\'" v-on:click="submit">                <slot name="pardot"><\/slot>            <\/p>            <div class="clearfix"><\/div>        <\/div>        <div v-show="success" class="svc-rqst-form help-buy-form-thanks">            <p class="title-28 blue">Thank you {{fullName}}!<\/p>            <div class="sm-space"><\/div>            <p>Thank you for your interest in Lennar homes{{confirmationContext}}. Your request has been submitted, and a Lennar associate will contact you shortly.<\/p>        <\/div>        <div class="svc-rqst-form svc-sub-form" v-show="success && !isLoggedIn && isModal">            <p class="title"><strong>Sign in to myLennar<\/strong><\/p>            <p>Sign in to your myLennar account or fill out the form below.<\/p>            <p>                <label for="txtUsername">Email address*<\/label>                <input v-model="username" v-bind:class="{error : usernameErr.length > 0}" ref="inputUsername" id="txtUsername" type="email" maxlength="50" title="Email address" placeholder="Email address" aria-label="Enter your email address">                <span v-show="usernameErr.length > 0" class="error">{{usernameErr}}<\/span>            <\/p>            <p>                <label for="txtPassword">Password*<\/label>                <vue-password v-bind:password.sync="password" v-on:submit="submit" v-bind:class="{error : passwordErr.length > 0}"><\/vue-password>                <span v-show="passwordErr.length > 0" class="error">{{passwordErr}}<\/span>            <\/p>            <p>Or sign in with a connected social account<\/p>            <div class="jan-rain-bx">                <input class="fbn idpButton" id="facebook" type="button" title="Facebook" aria-label="Login with Facebook">                <input class="twitter idpButton" id="twitter" type="button" title="Twitter" aria-label="Login with Twitter">                <input class="instagram idpButton" id="instagram" type="button" title="instagram" aria-label="Login with Instagram">                <input class="lkin idpButton" id="linkedin" type="button" title="Linkedin" aria-label="Login with Linkedin">            <\/div>            <p class="sign-in-bx">                <input v-on:click="loginUser" type="submit" title="Sign in" aria-label="Sign in" class="btn" v-bind:value="submitting ? \'Signing in\': \'Sign in\'" />                <a href="javascript:void(0);" v-on:click="openForgotPasswordModal" title="Forgot your password?">Forgot your password?<\/a>            <\/p>        <\/div>        <div class="svc-rqst-form" v-show="success && !isLoggedIn && isModal">            <div class="space"><\/div>            <p class="title">                <strong>Don’t have an account? Create one for free!<\/strong>            <\/p>            <p>myLennar simplifies your home purchase and ownership experience by letting you save your favorite floorplans, receive purchase updates, read home-focused articles, save new home documents, and more!<\/p>            <p class="ftr">                <input type="submit" v-on:click="openCreateAccountModal" class="btn half" title="Create an account" aria-label="Create an account" value="Create an account" />            <\/p>            <div class="clearfix"><\/div>        <\/div>    <\/div>',data:function(){return{isLoggedIn:Lennar.Global.actorStatus>0,submitting:!1,success:!1,fullName:"",fullNameErr:"",email:"",email2:"",emailErr:"",phone:"",phoneErr:"",countryInternal:"",countryErr:"",countryOptions:[],state:"",stateErr:"",stateInt:"",stateIntErr:"",stateOptions:[],cityOfInterest:"",cityOfInterestErr:"",cityOfInterestOptions:[],zipCode:"",zipCodeErr:"",stateOfInterest:"",stateOfInterestErr:"",stateOfInterestOptions:[],communityIdInternal:0,communityOptions:[],communityErr:"",comments:"",subscription:"",subscriptionErr:"",username:"",usernameErr:"",password:"",passwordErr:"",isMobile:Lennar.Vue.Utils.IsMobile()}},props:{isVipInterestList:!1,isInterestList:!1,interestListChecked:!1,stateCode:"",marketCode:"",mpcId:0,isCommunityVisible:!0,communityId:0,divisionId:0,communityName:"",communityCity:"",communityState:"",communityZip:"",communityNumber:"",divisionNumber:"",planId:0,planNumber:"",planName:"",inventory:!1,inventoryAddress:"",inventoryPrice:"",homesiteId:"",isModal:!1,country:"",communityFilterType:"",landingPage:"",leadType:"",confirmationContext:""},components:{"vue-tel-input":VueTelInput.VueTelInput,"vue-search-select":VueSearchSelect.ModelSelect},computed:{showCityOfInterest:function(){return!this.marketCode&&(this.stateCode||this.stateOfInterest)},showStateOfInterest:function(){return!this.stateCode}},watch:{stateOfInterest:function(){this.loadCitiesOfInterest()},cityOfInterest:function(){this.communityOptions=[];for(var n=0;n<this.cityOfInterestOptions.length;++n)if(this.cityOfInterestOptions[n].value==this.cityOfInterest){this.cityOfInterestOptions[n].md&&this.loadCommunities();break}}},methods:{fillUserData:function(){this.isLoggedIn&&axios.get("/Services/Rest/Profile.svc/GetUserProfile").then(function(n){if(n&&n.data){var t=JSON.parse(n.data);t.FirstName&&(this.fullName=t.FirstName+" "+t.LastName,this.email=Lennar.Vue.Utils.GetQueryStringParameterByName("email")||t.Email,this.phone=t.CellPhone||t.HomePhone,this.$refs.inputPhone.phone=t.CellPhone||t.HomePhone,this.state=Lennar.Vue.Utils.MapState(t.State),this.zipCode=t.ZipCode)}}.bind(this)).catch(function(n){console.log(n)})},loadCommunities:function(){this.marketCode&&this.isCommunityVisible?axios.get("/Services/Rest/searchmethods.svc/GetCommunitiesByMarketCodeMPCID/"+this.marketCode+"/"+this.mpcId).then(function(n){n&&n.data&&(this.communityOptions=n.data.map(function(n){return{value:n.cid|0,text:n.fulname}}))}.bind(this)).catch(function(n){console.log(n)}):this.cityOfInterest&&axios.get("/Services/Rest/searchmethods.svc/GetCommunitiesByMarketCodeMPCID/"+this.cityOfInterest+"/0").then(function(n){n&&n.data&&(this.communityOptions=n.data.map(function(n){return{value:n.cid|0,text:n.fulname}}))}.bind(this)).catch(function(n){console.log(n)})},loadCitiesOfInterest:function(){this.showCityOfInterest&&(this.cityOfInterest="",Lennar.Vue.Utils.GetActiveMarkets(this.cityOfInterestOptions,this.stateCode||this.stateOfInterest,this.communityFilterType))},loadStatesOfInterest:function(){this.showStateOfInterest&&Lennar.Vue.Utils.GetActiveStates(this.stateOfInterestOptions,this.communityFilterType)},validate:function(){var n=!0,t,i,r;return this.communityErr="",this.communityIdInternal===""&&this.communityOptions.length>0&&this.isCommunityVisible&&(this.communityErr=lr_gb.selectCommunity,t=this.$refs.labelCommunity,n=!1),this.stateOfInterestErr="",this.showStateOfInterest&&this.cityOfInterest===""&&(this.stateOfInterestErr=lr_gb.selectStateOfInterest,t=this.$refs.labelStateOfInterest,n=!1),this.cityOfInterestErr="",this.showCityOfInterest&&this.cityOfInterest===""&&(this.cityOfInterestErr=lr_gb.selectCityOfInterest,t=this.$refs.labelCityOfInterest,n=!1),this.stateIntErr="",this.stateInt===""&&this.countryInternal!="US"&&(this.stateIntErr=lr_gb.enterStateProvince,t=this.$refs.labelStateInt,n=!1),this.stateErr="",this.state===""&&this.countryInternal==="US"&&(this.stateErr=lr_gb.selectState,t=this.$refs.labelState,n=!1),this.countryErr="",this.countryInternal===""&&(this.countryErr=lr_gb.selectCountry,t=this.$refs.labelCountry,n=!1),this.phoneErr="",this.phone==""||this.$refs.inputPhone.phoneObject.isValid||(this.phoneErr=lr_gb.invalidPhone,t=this.$refs.labelPhone,n=!1),this.emailErr="",Lennar.Vue.Utils.ValidateEmail(this.email)||(this.emailErr=lr_gb.validEmail,t=this.$refs.inputEmail,n=!1),this.fullNameErr="",i=this.fullName.split(" "),i.length<2&&(this.fullNameErr=lr_gb.enterFullName,t=this.$refs.inputFullName,n=!1),this.subscriptionErr="",this.subscription===""&&(this.subscriptionErr=lr_gb.selectSubscription,n=!1),!n&&t&&(r={easing:"ease-in-out",offset:-100,onDone:function(){t.focus()}},VueScrollTo.scrollTo(t,300,r)),n},submit:function(){var t,r,u,n,f,i;return Lennar.Vue.Utils.CleanInstanceXss(this),this.validate()&&this.email2===""&&!this.submitting&&(t=this.fullName.split(" "),r=t[0],t.splice(0,1),u=t.join(" "),n={},n.fname=r,n.lname=u,n.email=this.email,n.phone=this.phone,n.country=this.countryInternal,n.country!=="US"?n.state=this.stateInt:(n.state=this.state,n.zip=this.zipCode),n.stateOfInterest=this.stateOfInterest||this.stateCode,n.cityOfInterest=this.marketCode,n.message=this.comments,n.source=this.isMobile?"MOBILE":"",f=Lennar.Global.getGoogleTagValues(),n.campaign=f.campaign,n.referrerDomain=f.referrerDomain,i=Lennar.Global.SetGAValues(),n.GACLIENTID=i.clientId,n.GAUSERID=i.userId,n.GATRACKID=i.trackId,n.cid=this.communityId||this.communityIdInternal,n.did=this.divisionId,n.cname=this.communityName,n.ccty=this.communityCity,n.cstate=this.communityState,n.czip=this.communityZip,n.cnum=this.communityNumber,n.dnum=this.divisionNumber,n.pid=this.planId,n.pnum=this.planNumber,n.pname=this.planName,n.inv=this.inventory==="true",n.iadd=this.inventoryAddress,n.iprice=this.inventoryPrice,n.hid=this.homesiteId,n.intCheck=this.interestListChecked,n.intVip=this.isVipInterestList,n.sub=this.subscription==="true",n.lp=this.landingPage,n.lt=this.leadType,this.showCityOfInterest&&(n.cityOfInterest=this.cityOfInterest),this.submitting=!0,axios.post("/Services/Rest/Profile.svc/SubmitRfiLead",{lead:n}).then(function(n){n&&n.data&&(this.submitting=!1,this.success=!0,Lennar.Vue.DataLayer.Event("rfi",{fname:r,lname:u,email:this.email}),this.username=this.email,Lennar.Global.PardotRfi("hidPardotiframeRfi",this.email))}.bind(this)).catch(function(n){this.submitting=!1;console.log(n)}.bind(this))),!1},loginUser:function(){this.validateSignIn()&&!this.submitting&&(this.submitting=!0,Lennar.Global.loginUser(this.username,this.password,!1,this.loginandRedirectUser_onSuccess))},loginandRedirectUser_onSuccess:function(n){this.submitting=!1;n.sid==="2"?(parent.Lennar.Global.setActorStatus(2),typeof parent.Lennar.Global.callBack_OnLogin=="function"&&parent.Lennar.Global.callBack_OnLogin(),location.reload()):n.sid=="1"?(parent.Lennar.Global.setActorStatus(1),typeof parent.Lennar.Global.callBack_OnLogin=="function"?parent.Lennar.Global.callBack_OnLogin():parent.Lennar.Global.callBack_OnLogin!=undefined,this.isMobile?Lennar.Global.openMobileTermsAndConditionsModal(Lennar.Global.logoutUserWithoutRedirect):Lennar.Global.openTermsAndConditionsModal(Lennar.Global.logoutUserWithoutRedirect)):this.passwordErr=n.sid=="3"?n.msg.replace("#ResetPasswordCallback#","/modals/Login?login=forgotpw"):n.sid=="4"?lr_gb.loginPasswordNotSet:lr_gb.loginErrorMessage},validateSignIn:function(){var n=!0;return this.usernameErr="",this.username.length>0&&!Lennar.Vue.Utils.ValidateEmail(this.username)&&(this.usernameErr=lr_gb.validEmail,n=!1),n},openCreateAccountModal:function(){this.closeModal();parent.Lennar.Global.openAccountModal()},openForgotPasswordModal:function(){this.closeModal();Lennar.Vue.Utils.OpenUrlModal("/modals/Login?login=forgotpw","gen-mdl-form")},closeModal:function(){Lennar.Vue.Utils.CloseUrlModal()}},mounted:function(){this.countryInternal=Lennar.Vue.Utils.MapCountry(this.country);this.email=Lennar.Vue.Utils.GetQueryStringParameterByName("email");this.fillUserData();this.loadCommunities();this.loadStatesOfInterest();this.loadCitiesOfInterest();Lennar.Vue.Utils.GetCountries(this.countryOptions);Lennar.Vue.Utils.GetAllStates(this.stateOptions)}});Vue.component("select-image-modal",{template:'<div v-if="show" class="mdl-spbk slct-img-mdl">        <div class="mdl-head">            <div class="lt">                <a href="/" class="hd-logo">Lennar.com<\/a>            <\/div>            <div v-if="allData.length > 1" class="mt">                <vue-search-select v-model="selectedDropdownItem" v-bind:options="dropdownItems" ref="dropdownItems" id="dropdownItems" name="dropdownItems" title="Dropdowm Items" aria-label="Select your item"><\/vue-search-select>            <\/div>            <div class="rt">                <a href="javascript:void(0);" title="close" v-on:click="closeModal" class="cls"><\/a>            <\/div>        <\/div>        <div v-if="!reload" class="mdl-spbk-ctnt">            <div class="mdl-spbk-lrg">                <div id="slider" class="flexslider">                    <tiny-slider ref="imageModal" class="slides" v-on:index-changed="onParentIndexChanged" v-bind:start-index="index" v-bind:datasource="selectedData" v-bind:mouse-drag="true" v-bind:loop="false" v-bind:items="1" v-bind:nav-as-thumbnails="true" v-bind:nav-container="\'#carousel-thumbnails-mdl\'" v-bind:controls="true">                        <div v-for="item in selectedData">                            <div class="content">                                <div class="picture">                                    <img class="lazyload" v-bind:data-src="item.profileImageURL" />                                <\/div>                                <div class="information">                                    <p class="name">{{ item.name }}<\/p>                                    <p class="title" v-html="item.positions"><\/p>                                    <p class="description" v-html="item.description"><\/p>                                    <\/p>                                <\/div>                            <\/div>                        <\/div>                    <\/tiny-slider>                <\/div>            <\/div>            <div class="mdl-spbk-sldr">                <div class="flexslider">                    <div class="flex-viewport">                        <tiny-slider id="carousel-thumbnails-mdl" ref="thumbs" v-bind:start-index="index" class="slides" v-on:index-changed="onThumbsIndexChanged" v-bind:datasource="selectedData" v-bind:mouse-drag="true" v-bind:loop="false" v-bind:items="1" v-bind:nav="false" v-bind:controls="true" fixed-width="205px">                            <div v-for="item in selectedData">                                <img class="lazyload" v-bind:data-src="alterImageWidth(item.profileImageURL, 200)"/>                            <\/div>                        <\/tiny-slider>                    <\/div>                <\/div>            <\/div>        <\/div>        <div v-else class="mdl-loader">            <div class="lds-roller"><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><\/div>        <\/div>    <\/div>',data:function(){return{show:!1,reload:!1,index:0,selectedData:null,allData:[],dropdownItems:[],selectedDropdownItem:1}},watch:{selectedDropdownItem:function(){this.reload=!0;this.selectedData=null;this.index=0;var n=this;setTimeout(function(){n.selectedData=n.allData[n.selectedDropdownItem-1].items;n.index=0;n.reload=!1},500)}},methods:{alterImageWidth:function(n,t){return Lennar.Vue.Utils.AddQueryStringToUrl(n,"w",t)},closeModal:function(){this.show=!1;this.selectedData=null;this.index=0;window.removeEventListener("keydown",this.escape)},openModal:function(n,t,i){var u,r;for(this.allData=i,u=[],r=0;r<i.length;r++)u.push({value:r+1,text:i[r].title});this.dropdownItems=u;this.selectedDropdownItem=n+1;this.selectedData=i[n].items;this.index=t;this.show=!0;window.addEventListener("keydown",this.escape);this.$nextTick(function(){this.$refs.imageModal&&this.$refs.imageModal.focus()})},escape:function(n){n.which=="27"&&this.closeModal()},onParentIndexChanged:function(n){this.$nextTick(function(){var t=this.$refs.thumbs.getIndex();t!=n.displayIndex&&this.$refs.thumbs.goTo(n.displayIndex-1)})},onThumbsIndexChanged:function(n){this.$nextTick(function(){var t=this.$refs.imageModal.getIndex();t!=n.displayIndex&&this.$refs.imageModal.goTo(n.displayIndex-1)})}},components:{"tiny-slider":VueTinySlider,"vue-search-select":VueSearchSelect.ModelSelect},mounted:function(){document.body.insertBefore(this.$el,document.body.lastChild)}});Vue.component("share-flyout",{template:'    <div class="len-tip-item bottom">        <a href="javascript:void(0)" v-on:click="showFlyout" title="Share" aria-label="Share"><i class="far fa-share"><\/i>Share<\/a>        <div v-on:click.stop="" v-show="show" class="len-tip-box">            <p>                Share on a social network            <\/p>            <span>            <div class="janrainSocialPlaceholder" data-janrain-shorten-url="false"                 data-janrain-description="Lennar is the leading builder of quality new homes in the most desirable real estate markets across the nation." data-janrain-message="Enter your text here!"                 v-bind:data-janrain-image="imageUrl" v-bind:data-janrain-media="imageData" v-bind:data-janrain-url="actualUrl" v-bind:data-janrain-title="title">            <\/div>            <\/span>        <\/div>    <\/div>',data:function(){return{show:!1,innerContent:""}},props:{url:"",image:"",title:""},computed:{imageUrl:function(){if(this.image){var n=updateImagePathExt(this.image);return encodeURI(absoluteUrl(n))}return""},imageData:function(){return this.imageUrl&&this.imageUrl.match(/\.(jpeg|jpg|gif|png)/i)?this.ImageUrl:""},actualUrl:function(){return this.url!=null?absoluteUrl(this.url):""}},mounted:function(){Lennar.SocialShare.renderJanrainShareConfig()},methods:{showFlyout:function(){this.show=!0;this.$nextTick(function(){document.addEventListener("click",this.hideFlyout)})},hideFlyout:function(){this.show=!1;document.removeEventListener("click",this.hideFlyout)}}});Vue.component("single-list",{template:'<div><ul class="single-list">        <li class="ui-single-item" v-for="(item, index) in value" v-bind:class="{selected: index == selectedIndex, disabled: item.s == 1}" v-on:click="select(index)">            <span>{{item.l}}<\/span>        <\/li>    <\/ul><\/div>',data:function(){return{selectedIndex:-1,hasChanges:!1}},props:{value:{}},watch:{value:function(){this.refreshData()}},methods:{select:function(n){this.value[n].s!=1&&n!=this.selectedIndex&&(this.selectedIndex>=0&&(this.value[this.selectedIndex].v=0),this.selectedIndex=n,this.value[this.selectedIndex].v=1,this.hasChanges=!0,this.$emit("index-changed",this.selectedIndex))},hasUncommitedChanges:function(){return this.hasChanges},apply:function(){this.hasChanges=!1},refreshData:function(){this.selectedIndex=0;for(var n=0;n<this.value.length;++n)this.value[n].v&&(this.selectedIndex=n)}},mounted:function(){this.refreshData()}});Vue.component("slide-up-down",{props:{active:Boolean,duration:{type:Number,"default":800},tag:{type:String,"default":"div"},closedClass:{type:String,"default":null},minHeight:{type:Number,"default":0}},render:function(n){return n(this.tag,{style:this.style},this.$slots.default)},data:function(){return{style:{},initial:!1}},watch:{active:function(){this.layout()}},mounted:function(){this.$el.addEventListener("transitionend",function(){this.active?(this.style={},this.$emit("after-enter",this)):(this.style=this.minHeight?{height:this.minHeight+"px",overflow:"hidden"}:{display:"none"},this.$emit("after-leave",this))}.bind(this));this.layout();this.initial=!0},methods:{layout:function(){this.active?this.initial&&(this.setHeight(this.minHeight+"px",function(){return this.getScrollHeight()+"px"}.bind(this)),this.closedClass&&Lennar.Vue.Utils.RemoveClass(this.$el.firstChild,this.closedClass)):(this.initial||this.minHeight?this.setHeight(this.getScrollHeight()+"px",function(){return this.minHeight+"px"}.bind(this)):this.style={display:"none"},this.closedClass&&Lennar.Vue.Utils.AddClass(this.$el.firstChild,this.closedClass))},getScrollHeight:function(n){return(n||(n=this.$el),n.children&&n.children.length)?Math.max(n.scrollHeight,n.children[0].scrollHeight):n.scrollHeight},setHeight:function(n,t){this.style={height:n};this.asap(function(){this.__=this.$el.scrollHeight;this.style={height:t(),overflow:"hidden","transition-property":"height","transition-duration":this.duration+"ms"}}.bind(this))},asap:function(n){this.initial?this.$nextTick(n):n()}}});Vue.component("vue-slider",{template:'<div class="vue-slider" v-bind:class="{ \'side-dots\' : showSideDots }">        <div class="len-fltr-sldr-vals len-n-scroll" v-if="showSelectedValues">            <div class="cl-list">                <span v-on:click="toggleMinLabels" v-on:keyup.enter="toggleMinLabels" tabindex="0">{{currentFormattedMin}}<\/span>                <ul v-if="showMinLabels && value && value.v">                    <li v-for="(item, index) in value.v" v-on:click="selectMinLabel(index)" v-on:keyup.enter="selectMinLabel(index)" v-bind:tabindex="(item.s || index >= currentMaxIndex) ? -1 : 0" v-bind:class="{disabled: item.s || index >= currentMaxIndex}">{{item.l}}<\/li>                <\/ul>            <\/div>            <div class="label">-<\/div>            <div class="cl-list">                <span v-on:click="toggleMaxLabels" v-on:keyup.enter="toggleMaxLabels" tabindex="0">{{currentFormattedMax}}<\/span>                <ul v-if="showMaxLabels && value && value.v">                    <li v-for="(item, index) in value.v" v-on:click="selectMaxLabel(index)" v-on:keyup.enter="selectMaxLabel(index)" v-bind:tabindex="(item.s || index <= currentMinIndex) ? -1 : 0" v-bind:class="{disabled: item.s || index <= currentMinIndex}">{{item.l}}<\/li>                <\/ul>            <\/div>            <div class="label">{{label}}<\/div>        <\/div>        <div class="vue-slider-wrap" v-bind:style="wrapStyle" ref="wrap">            <div class="vue-slider-cmp">                <div class="vue-slider-bar" v-show="width > 0 && showLeftDot" v-bind:style="barStyle[0]"><\/div>                <div class="vue-slider-bar" v-show="width > 0 && showRightDot" v-bind:style="barStyle[1]"><\/div>                <div class="vue-slider-dot" v-show="width > 0 && currentMaxIndex >= 0 && showLeftDot" ref="dot0" tabindex="0" v-bind:style="dotStyles[0]" v-on:mousedown="moveStart($event, 0)" v-on:touchstart="moveStart($event, 0)">                    <div v-show="showLabels" class="vue-slider-label-wrap" v-on:mousedown="moveStart($event, 0)" v-on:touchstart="moveStart($event, 0)">                        <span class="vue-slider-label">{{currentFormattedMin}}<\/span>                    <\/div>                <\/div>                <div class="vue-slider-dot" v-show="width > 0 && currentMaxIndex >= 0 && showRightDot" ref="dot1" tabindex="0" v-bind:style="dotStyles[1]" v-on:mousedown="moveStart($event, 1)" v-on:touchstart="moveStart($event, 1)">                    <div v-show="showLabels" class="vue-slider-label-wrap" v-on:mousedown="moveStart($event, 1)" v-on:touchstart="moveStart($event, 1)">                        <span class="vue-slider-label">{{currentFormattedMax}}<\/span>                    <\/div>                <\/div>            <\/div>        <\/div>    <\/div>',data:function(){return{isMouseDown:!1,isFocused:!1,currentFocus:0,currentSlide:[0,0],isBinded:!1,startPosition:{},threshold:5,width:0,padding:8,hasPendingChanges:!1,showMinLabels:!1,showMaxLabels:!1}},props:{value:{},showSelectedValues:{type:Boolean,"default":!0},showLabels:{type:Boolean,"default":!0},showLeftDot:{type:Boolean,"default":!0},showRightDot:{type:Boolean,"default":!0},dotWidth:{type:Number,"default":12},showSideDots:{type:Boolean,"default":!1}},computed:{label:function(){return this.value?this.value.l:""},totalFormattedMin:function(){return this.value&&this.minIndex>=0?this.value.v[this.minIndex].l:""},totalFormattedMax:function(){return this.value&&this.maxIndex>=0?this.value.v[this.maxIndex].l:""},minIndex:function(){if(this.value&&this.showLeftDot)for(var n=0;n<this.value.v.length;++n)if(this.value.v[n].s==0||n==this.value.min)return n;return-1},maxIndex:function(){if(this.value&&this.showRightDot)for(var n=this.value.v.length-1;n>=0;--n)if(this.value.v[n].s==0||n==this.value.max)return n;return-1},currentMinIndex:function(){return this.value&&this.value.min>=0?Math.max(this.value.min,this.minIndex):this.minIndex},currentMaxIndex:function(){return this.value&&this.value.max>=0?Math.min(this.value.max,this.maxIndex):this.maxIndex},validItems:function(){return this.value?this.value.v.length:0},currentFormattedMin:function(){var n=this.currentMinIndex;return n>=0?this.value.v[n].l:""},currentFormattedMax:function(){var n=this.currentMaxIndex;return n>=0?this.value.v[n].l:""},wrapStyle:function(){return{padding:this.padding+"px"}},barStyle:function(){return this.minIndex===-1&&this.maxIndex===-1?[{left:"0px",width:Math.ceil(this.width-this.padding*2)+"px"},{}]:[{left:"0px",width:this.currentSlide[0]+Math.max(0,this.currentMinIndex)*this.threshold+this.dotWidth/2+"px"},{left:this.currentSlide[1]+this.currentMaxIndex*this.threshold+this.dotWidth/2+"px",width:Math.ceil(this.width-this.padding*2-this.dotWidth/2-(this.currentMaxIndex*this.threshold+this.currentSlide[1]))+"px"}]},dotStyles:function(){return[{left:this.currentSlide[0]+this.currentMinIndex*this.threshold+"px",width:this.dotWidth+"px",height:this.dotWidth+"px"},{left:this.currentSlide[1]+this.currentMaxIndex*this.threshold+"px",width:this.dotWidth+"px",height:this.dotWidth+"px"}]}},methods:{refreshChanges:function(){this.$refs.wrap&&(this.width=this.$refs.wrap.clientWidth,this.validItems>1&&(this.threshold=(this.width-this.padding*2-this.dotWidth)/(this.validItems-1)));this.showMinLabels=!1;this.showMaxLabels=!1},toggleMinLabels:function(){this.showMinLabels=!this.showMinLabels},toggleMaxLabels:function(){this.showMaxLabels=!this.showMaxLabels},selectMinLabel:function(n){this.currentFocus=0;this.changeValue(n-this.currentMinIndex)},selectMaxLabel:function(n){this.currentFocus=1;this.changeValue(n-this.currentMaxIndex)},getPos:function(n){return n=n.targetTouches&&n.targetTouches[0]?n.targetTouches[0]:n,n.clientX},setValueOnPos:function(n){var i=n-this.startPosition,t;this.updateCurrentSlide(i);t=i/this.threshold;t>=1?(this.changeValue(Math.round(t)),this.startPosition=n,Vue.set(this.currentSlide,this.currentFocus,0)):t<=-1&&(this.changeValue(Math.round(t)),this.startPosition=n,Vue.set(this.currentSlide,this.currentFocus,0))},updateCurrentSlide:function(n){this.currentFocus==0&&this.currentMinIndex==this.minIndex&&n<0||this.currentFocus==0&&this.currentMinIndex+1==this.currentMaxIndex&&n>0||this.currentFocus==1&&this.currentMaxIndex==this.maxIndex&&n>0||this.currentFocus==1&&this.currentMaxIndex-1==this.currentMinIndex&&n<0||Vue.set(this.currentSlide,this.currentFocus,n)},moveStart:function(n,t){this.currentFocus=t;this.isMouseDown=!0;this.isFocused=!0;Vue.set(this.currentSlide,this.currentFocus,0);this.startPosition=this.getPos(n);this.bindEvents()},moveEnd:function(n){if(this.isMouseDown){n.stopPropagation();this.isMouseDown=!1;var t=Math.round(this.currentSlide[this.currentFocus]/this.threshold);this.changeValue(t);Vue.set(this.currentSlide,this.currentFocus,0);this.unbindEvents()}},focusStart:function(n){this.currentFocus=n.target==this.$refs.dot0?0:1;this.isFocused=!0;this.bindEvents()},focusEnd:function(){this.isFocused=!1;this.unbindEvents()},moving:function(n){this.isMouseDown&&this.setValueOnPos(this.getPos(n))},handleKeydown:function(n){if(this.isFocused)switch(n.keyCode){case 37:case 40:n.preventDefault();this.changeValue(-1);break;case 38:case 39:n.preventDefault();this.changeValue(1)}},changeValue:function(n){var i=this.currentFocus==0?this.currentMinIndex:this.currentMaxIndex,t=i+n;if((this.currentFocus!=0||!(t>=this.currentMaxIndex))&&(this.currentFocus!=1||!(t<=this.currentMinIndex))&&t>=0&&t<this.value.v.length&&this.value.v[t].s==0){if(this.hasChanged|=n!=0,this.currentFocus==0?this.value.min=t!=this.minIndex?t:-1:this.value.max=t!=this.maxIndex?t:-1,this.isMouseDown||!this.hasChanged)return;this.hasChanged=!1;this.hasPendingChanges=!0;this.$emit("index-changed",this.currentMinIndex,this.currentMaxIndex)}},bindEvents:function(){this.isBinded||(this.isBinded=!0,document.addEventListener("touchmove",this.moving,{passive:!1}),document.addEventListener("mousemove",this.moving),document.addEventListener("touchend",this.moveEnd,{passive:!1}),document.addEventListener("mouseup",this.moveEnd,!0),this.$refs.dot0.addEventListener("blur",this.focusEnd),this.$refs.dot1.addEventListener("blur",this.focusEnd))},unbindEvents:function(){this.isBinded&&(this.isBinded=!1,document.removeEventListener("touchmove",this.moving),document.removeEventListener("mousemove",this.moving),document.removeEventListener("touchend",this.moveEnd),document.removeEventListener("mouseup",this.moveEnd,!0),this.$refs.dot0.removeEventListener("blur",this.focusEnd),this.$refs.dot1.removeEventListener("blur",this.focusEnd))},hasUncommitedChanges:function(){return this.hasPendingChanges},shouldDisableParent:function(){return this.minIndex<0&&this.maxIndex<0},hasChanges:function(){return this.minIndex!=this.currentMinIndex||this.maxIndex!=this.currentMaxIndex},apply:function(){this.hasPendingChanges=!1}},mounted:function(){document.addEventListener("keydown",this.handleKeydown);window.addEventListener("resize",this.refreshChanges);this.$nextTick(function(){this.$refs.dot0&&this.$refs.dot0.addEventListener("focus",this.focusStart);this.$refs.dot1&&this.$refs.dot1.addEventListener("focus",this.focusStart);this.refreshChanges()})},beforeDestroy:function(){document.removeEventListener("keydown",this.handleKeydown);window.removeEventListener("resize",this.refreshChanges);this.$refs.dot0.removeEventListener("focus",this.focusStart);this.$refs.dot1.removeEventListener("focus",this.focusStart)}});Vue.component("vue-tooltip",{template:'<div v-show="showInternal">                    <slot>                    <\/slot>               <\/div>',data:function(){return{showInternal:!1}},props:{display:{type:[Boolean],"default":!1}},computed:{},mounted:function(){},watch:{display:function(){this.display&&this.show()}},methods:{show:function(){this.showInternal=!0;this.$nextTick(function(){this.hideTTFunc=this.hideTT.bind(this);document.addEventListener("click",this.hideTTFunc)})},hideTT:function(){this.showInternal=!1;document.removeEventListener("click",this.hideTTFunc);this.hideTTFunc=null;this.$emit("closed")}}});Vue.component("type-ahead-search",{template:'<div class="vue-type-ahead" v-bind:class="{\'no-res\': showNoResultList && !loading}">        <input autocomplete="type-ahead" ref="input" v-bind:disabled="!enabled" v-bind:class="enabled ? \'\' : disabledClass" v-model="searchText" v-on:focus="focused" v-on:click.stop="" v-on:keyup.up="moveUp" v-on:keyup.down="moveDown" v-on:keydown.enter="enterDown" v-on:keyup.enter="enterUp" class="typeaheadsearchtext tpeahd-txt" maxlength="100" type="text" v-bind:id="inputId" v-bind:placeholder="placeholder" v-bind:aria-label="placeholder" />        <button v-on:click="searchSubmit" v-bind:class="[searchText ? [showNoResultList ? \'typeaheadsearch off\' : \'typeaheadsearch on\'] : \'typeaheadsearch off\']" v-bind:title="placeholder">Search<\/button>        <span class="mob-ph" v-if="isMobile && selectedPhone && selectedPhone.length > 0">Call: <a v-bind:href="\'tel:\'+selectedPhone">{{selectedPhone}}<\/a><\/span>        <span class="ty-no" v-else-if="selectedPhone && selectedPhone.length > 0"><span class="ty-cll">Call: <\/span>{{selectedPhone}}<\/span>        <ul class="ui-autocomplete" v-show="showTypeAheadList || loading" ref="listContainer">            <li v-if="loading"><aside class="lds-bx"><div class="lds-roller"><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><\/div><\/aside><br /><\/li>            <li v-for="(item, index) in searchTerms" v-show="(item.type < 0 || item.expanded) && !loading" class="ui-menu-item" v-bind:class="{disabled: item.type == \'-1\', title: item.type == \'-1\', collapsed: !item.expanded}">                <a v-bind:class="item.isSelected ? \'ui-state-active\' : \'\'" tabindex="-1" class="ui-menu-item-wrapper" v-on:click.stop="onItemClick(index)">                    <i v-if="item.icon" v-bind:class="item.icon"><\/i>{{item.label}}<span v-if="item.phone" class="phone-number">{{item.phone}}<\/span>                <\/a>            <\/li>        <\/ul>        <ul class="ui-autocomplete no-tp-res" v-show="showNoResultList && !loading">            <li class="ui-menu-item disabled">                <a v-if="customErrorMessage" href="javascript:void(0);" tabindex="-1" class="ui-menu-item-wrapper tpahead-noresult">{{customErrorMessage}}<\/a>                <a v-else-if="isMobile" href="javascript:void(0);" tabindex="-1" class="ui-menu-item-wrapper tpahead-noresult">Sorry. We are not currently building in this area.<\/a>                <a v-else href="javascript:void(0);" v-on:click="openMapModal" id="lnkgetusmap" title="Open map to search" tabindex="-1" class="ui-menu-item-wrapper tpahead-noresult">Sorry. We are not currently building in this area.<br> Find us on the <span>map<\/span>.<\/a>            <\/li>        <\/ul>    <\/div>',data:function(){return{searchText:null,searchTerms:[],selectedItem:{},selectedPhone:"",showTypeAheadList:!1,showNoResultList:!1,loading:!1,isMobile:Lennar.Global.IsThisMobile()}},props:{placeholder:{type:[String],"default":Lennar.Global.IsThisMobile()?"Find a home by City, Zip or Community":"Enter City, Zip or Community"},searchUrl:{type:[String],"default":"/Services/Rest/TypeAheadSearch.svc/"},customErrorMessage:{type:[String],"default":null},searchLocation:{type:[String],"default":"useFindHome"},showCurrentLocation:{type:[Boolean],"default":!1},changeText:{type:[Boolean],"default":!1},submitOnSelect:{type:[Boolean],"default":!1},submitCallback:{type:[Function,Boolean],"default":!1},inputId:{type:[String],"default":undefined},minLengthText:{type:[Number],"default":2},enabled:{type:[Boolean],"default":!0},disabledClass:{type:[String],"default":"locked"},loadLocation:{type:[Boolean],"default":!1}},watch:{searchText:function(){this.fromSelection||this.searchTextChange();this.fromSelection=!1}},mounted:function(){document.addEventListener("click",this.hideTypeAhead);this.loadLocation&&this.loadIpLocation()},beforeDestroy:function(){document.removeEventListener("click",this.hideTypeAhead)},methods:{focused:function(){this.showCurrentLocation&&this.addCurrentLocation();this.searchTerms.length>0&&(this.showTypeAheadList=!0,this.showNoResultList=!1)},openMapModal:function(){Lennar.Vue.Utils.OpenUrlModal("/common/SvgMapSearch.aspx","gen-mdl-form no-bkg-dialog mapModal")},loadIpLocation:function(){axios.get("/Services/Rest/TypeAheadSearch.svc/GetIpLocation").then(function(n){if(n&&n.data&&n.data.length){var t=n.data[0].split("|");this.selectedItem={type:t[1],label:t[0],selectLabel:t[0]};this.fromSelection=!0;this.searchText=this.selectedItem.label}}.bind(this)).catch(function(n){this.loading=!1;console.log(n)}.bind(this))},searchTextChange:Lennar.Vue.Utils.Debounce(function(){this.searchText&&this.searchText.length>this.minLengthText?this.typeAheadSearch():this.showCurrentLocation?(this.searchTerms=[],this.addCurrentLocation(),this.showTypeAheadList=!0,this.showNoResultList=!1):this.showNoResultList=!1},300),typeAheadSearch:function(){this.selectedItem&&this.$set(this.selectedItem,"isSelected",!1);this.selectedItem=null;this.loading=!0;axios.get(this.searchUrl,{params:{term:this.searchText}}).then(function(n){this.loading=!1;this.parseTypeAheadResponse(n)}.bind(this)).catch(function(n){this.loading=!1;console.log(n)}.bind(this))},addCurrentLocation:function(){for(var n=0;n<this.searchTerms.length;++n)if(this.searchTerms[0].type===-10)return;this.searchTerms.unshift({type:-10,label:"Use current location",selectLabel:"Use current location",icon:"fas fa-location-arrow"})},parseTypeAheadResponse:function(n){this.searchTerms=n&&n.data?n.data.map(function(n){var t={},i=n.split("|");return t.label=i[0],t.selectLabel=t.label,t.type=i[1],t.type=="6"&&(t.phone=i[2]),t.type=="8"&&(t.cid=i[2]),t.expanded=!0,t}):[];this.showCurrentLocation&&this.searchTerms.length&&this.addCurrentLocation();var t=this.searchTerms.reduce(function(n,t){return t.type=="-1"?n+1:n},0)>1;t&&this.searchTerms.forEach(function(n){n.expanded=!1});this.showTypeAheadList=this.searchTerms.length>0;this.showNoResultList=!this.showTypeAheadList},scrollToSelected:function(){this.cancellScroll!=null&&this.cancelScroll();this.$nextTick(function(){var n=this.$el.querySelector("li a.ui-state-active"),t;n&&(t={container:this.$refs.listContainer,duration:0,force:!1},this.cancelScroll=VueScrollTo.scrollTo(n,0,t))})},moveUp:function(){var n,t;if(this.showTypeAheadList){for(n=this.searchTerms.indexOf(this.selectedItem);n>0;)if(t=this.searchTerms[--n],t.type!="-1"){this.selectItem(t);break}this.scrollToSelected()}},moveDown:function(){var n,t;if(this.showTypeAheadList){for(n=this.searchTerms.indexOf(this.selectedItem);n<this.searchTerms.length-1;)if(t=this.searchTerms[++n],t.type!="-1"){this.selectItem(t);break}this.scrollToSelected()}},selectItem:function(n){n.type!="-1"&&(this.selectedItem&&(this.searchText=n.label,this.$set(this.selectedItem,"isSelected",!1)),this.fromSelection=!0,this.selectedItem=n,this.$set(this.selectedItem,"isSelected",!0),this.changeText&&(this.searchText=this.selectedItem.selectLabel),this.selectedPhone=this.selectedItem.phone,this.$emit("input",this.selectedItem))},onItemClick:function(n){var t=this.searchTerms[n],i;if(t.type!="-1")this.selectItem(t),this.hideTypeAhead();else for(t.expanded=!t.expanded,i=n+1;i<this.searchTerms.length;++i){if(t=this.searchTerms[i],t.type=="-1")break;t.expanded=!t.expanded}},hideTypeAhead:function(n){this.showTypeAheadList&&(this.showTypeAheadList=!1,this.submitOnSelect&&!n&&this.searchSubmit())},searchSubmit:function(){var n,t;if(this.submitOnSelect&&this.showTypeAheadList&&(this.showTypeAheadList=!1),this.showTypeAheadList)this.showTypeAheadList=!1;else if(this.submitCallback&&typeof this.submitCallback=="function"&&(n=this.submitCallback(this.selectedItem),!n))return;Lennar.Vue.DataLayer.Event("fahSearch",{searchVal:this.searchText,submission:this.selectedItem?"automated":"freeform"});this.selectedItem&&this.selectedItem.type==-10?(this.selectedItem&&this.$set(this.selectedItem,"isSelected",!1),this.selectedItem=null,Lennar.Vue.Utils.GetCurrentLocation(function(n){this.loading=!0;axios.get("/Services/Rest/TypeAheadSearch.svc/GetCurrentLocation",{params:{latitude:n.coords.latitude,longitude:n.coords.longitude,searchLocation:this.searchLocation}}).then(function(n){if(this.loading=!1,n&&n.data){if(parent&&parent!=window)try{parent.location.href=n.data;return}catch(t){}window.location.href=n.data}else this.showNoResultList=!0}.bind(this)).catch(function(n){this.loading=!1;console.log(n)}.bind(this))}.bind(this))):(t=this.selectedItem?this.selectedItem.type:0,this.loading=!0,axios.get("/Services/Rest/TypeAheadSearch.svc/GetSearchResultUrl",{params:{searchText:this.selectedItem!=null?this.selectedItem.label:this.searchText,searchType:t,searchLocation:this.searchLocation}}).then(function(n){if(this.loading=!1,n&&n.data){if(parent&&parent!=window)try{parent.location.href=n.data;return}catch(t){}window.location.href=n.data}}.bind(this)).catch(function(n){this.loading=!1;console.log(n)}.bind(this)))},enterDown:function(){this.enterKeyDown=!0},enterUp:function(){this.enterKeyDown&&(this.enterKeyDown=!1,this.searchSubmit(),this.$nextTick(function(){this.$emit("enter")}))},focus:function(){this.$refs.input.focus()}}})