1719 Military Street, Port Huron, MI, 48060 (2024)

2&&void 0!==arguments[2]?arguments[2]:{},i="string"==typeof e?[e]:Array.isArray(e)?e:[e];null!==(a=window.Homesnap.mlsVersionNumber)&&void 0!==a||window.Homesnap.versionNumber;i.forEach(function(e){var a,i=window.Homesnap.versionNumber;if(-1==e.indexOf("https://")&&0!=e.indexOf("//")){var s=e.toLowerCase();e=t.cssAppHashes&&!t.cssAppHashes["".concat(s)]?"".concat(t.cssMainRootPath,"/").concat(e):"".concat(t.cssRootPath,"/").concat(e)}if(t.cssAppHashes&&t.cssRootPath&&0===e.indexOf(t.cssRootPath)){var c=e.replace("".concat(t.cssRootPath,"/"),"").toLowerCase();a=t.cssAppHashes[c]||r}else if(t.cssHashes&&t.cssMainRootPath&&0===e.indexOf(t.cssMainRootPath)){var l=e.replace("".concat(t.cssMainRootPath,"/"),"").toLowerCase();a=t.cssHashes[l]||r}else if(t.cssHashes&&t.cssRootPath&&0===e.indexOf(t.cssRootPath)){var u=e.replace("".concat(t.cssRootPath,"/"),"").toLowerCase();a=t.cssHashes[u]||r}void 0!==a&&""!==a&&(e+="".concat(-1===e.indexOf("?")?"?":"&","hash=").concat(a,"&v=").concat(i)),require(["jquery"],function(t){if(!t("link[href='".concat(e,"']")).length){var r=t("head");if(r.length){var a=t('').attr("href",e);r.append(a),null!==o&&void 0!==o&&o.key&&null!==o&&void 0!==o&&o.value&&a.attr(o.key,o.value)}}"function"==typeof n&&n()})})}},a.ui={getWindowSize:function(e){return e>=1200?"lg":e>=992?"md":e>=768?"sm":"xs"},belowthefold:function(e,t,r,n){return(n&&n.offset()?n.offset().top+n.height():(t[0].innerHeight?t[0].innerHeight:t.height())+t.scrollTop())<=e.offset().top-(r||0)},rightoffold:function(e,t,r,n){return(n&&n.offset()?n.offset().left+n.width():t.width()+t.scrollLeft())<=e.offset().left-(r||0)},abovethetop:function(e,t,r,n){return(n&&n.offset()?n.offset().top:t.scrollTop())>=e.offset().top+(r||0)+e.height()},leftofbegin:function(e,t,r,n){return(n&&n.offset()?n.offset().left:t.scrollLeft())>=e.offset().left+(r||0)+e.width()},inviewport:function(e,t,r,n){return!(!e||!e.length)&&!(this.rightoffold(e,t,r,n)||this.leftofbegin(e,t,r,n)||this.belowthefold(e,t,r,n)||this.abovethetop(e,t,r,n))},findEdges:function(e){var t;if(e&&e.length){var r=e.offset();r&&(t={top:r.top,left:r.left,bottom:r.top+e.height(),right:r.left+e.width()})}return t}},a.string={reverse:function(e){for(var t=e.length-1,r="";t>=0;r+=e[t--]);return r},getPrice:function(e){return e||0===e?{raw:e,short:"$"+this.getShortNumber(e),dollars:"$"+parseInt(e).toLocaleString(),dollarsWithoutCommas:"$"+parseInt(e,10),dollarsWithCents:"$"+e.toLocaleString(void 0,{style:"decimal",maximumFractionDigits:2,minimumFractionDigits:2})}:null},getShortNumber:function(e){if(e||0===e){var t,r=!1;return e<0&&(r=!0,e*=-1),e<1e4?t=e.toLocaleString():e<999500?(t=Math.round(e/1e3).toString(),t+="K"):e<105e4?t="1M":e<9995e4?(t=(Math.round(e/1e5)/10).toFixed(1).toString(),t+="M"):(t=Math.round(e/1e6).toString(),t+="M"),r?"-".concat(t):t}return null},getNumber:function(e){return e||0===e?{raw:e,commas:e.toLocaleString(),short:this.getShortNumber(e),decimal0:e.toLocaleString(void 0,{style:"decimal",maximumFractionDigits:0}),decimal1:e.toLocaleString(void 0,{style:"decimal",maximumFractionDigits:1,minimumFractionDigits:1}),decimal2:e.toLocaleString(void 0,{style:"decimal",maximumFractionDigits:2,minimumFractionDigits:2}),decimal3:e.toLocaleString(void 0,{style:"decimal",maximumFractionDigits:3,minimumFractionDigits:3})}:null},getPercent:function(e,t){if(e||0===e){var r=t||1,n=this.getNumber(Math.abs(e*r));return{raw:e*r,abs:n.raw,commas:n.commas+"%",decimal0:n.decimal0+"%",decimal1:n.decimal1+"%",decimal2:n.decimal2+"%",decimal3:n.decimal3+"%",isPositive:e>0}}return null},getPhoneNumber:function(e,t){if(!e)return null;var r=e.replace(/\D/g,"").replace(/^1/,""),n=null!==t&&void 0!==t?t:r.substr(10,100),a="(".concat(r.substr(0,3),") ").concat(r.substr(3,3),"-").concat(r.substr(6,4)),o="".concat(r.substr(0,3),"-").concat(r.substr(3,3),"-").concat(r.substr(6,4)),i="".concat(r.substr(0,3),".").concat(r.substr(3,3),".").concat(r.substr(6,4)),s=a,c=a;return n.length>0&&(s="".concat(a," ext ").concat(n),c="".concat(a,",").concat(n)),{raw:e,digits:r,ext:n,withParentheses:a,withDashes:o,withDots:i,withExtension:s,withExtensionAsLink:c}},getPercentChange:function(e,t){if(e&&t){var r=(e-t)/t*100;return this.getPercent(r)}},firstLetterToUpper:function(e){if(e)return e.toLowerCase().charAt(0).toUpperCase()+e.toLowerCase().slice(1)},findUrls:function(e){var t=/((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=+$,\w]+@)?[A-Za-z0-9.-]+|(?:www\.|[-;:&=+$,\w]+@)[A-Za-z0-9.-]+)((?:\/[+~%/.\w\-_]*)?\??(?:[-+=&;%@.\w_]*)#?(?:[.!/\\\w]*))?)/g;return"string"==typeof e?e.match(t):null}},a.date={getDateInfo:function(e){if(e){var t,r=new Date(e),n={weekday:"long",year:"numeric",month:"long",day:"numeric"},o={weekday:"long",year:"numeric",month:"long",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric"},i=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],s=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],c=["January","February","March","April","May","June","July","August","September","October","November","December"];return{raw:r.getTime(),date:r,month:r.getMonth()+1,day:r.getDate(),year:r.getFullYear(),monthDayYear:r.getMonth()+1+"/"+r.getDate()+"/"+r.getFullYear().toString().substr(2,2),formattedDate:r.toLocaleString("en-us",n),formattedDateTime:r.toLocaleString("en-us",o),shortMonth:s[r.getMonth()],longMonth:c[r.getMonth()],formattedTime:r.toLocaleTimeString("en-us",{hour:"2-digit",minute:"2-digit"}),ago:a.date.getAgo(r),agoFriendly:a.date.getAgoFriendly(r),shortDay:i[r.getDay()],longDay:null===(t=a.date.getDayOfWeek(r.getDay()))||void 0===t?void 0:t.dayFull}}return null},getAgo:function(e){var t=Date.now();if(e){var r=t-e.getTime(),n=Math.round(r/1e3),a=Math.round(n/60),o=Math.round(a/60),i=Math.round(o/24),s=Math.round(i/7),c=Math.round(i/30);return n<=0?"now":n<60?n.toString()+"s":a<60?a.toString()+"m":o<24?o.toString()+"h":i<7?i.toString()+"d":s<5?s.toString()+"w":c.toString()+"mo"}},getAgoFriendly:function(e){var t=Date.now();if(e){var r=t-e.getTime(),n=Math.round(r/1e3),a=Math.round(n/60),o=Math.round(a/60),i=Math.round(o/24);return n<=0?"Today":n<60?"Today":a<60?"Today":o<24?"Today":o>=24&&o<48?"Yesterday":i<7?"Last 7 Days":i>=7&&i<14?"Last 14 Days":i>=14&&i<30?"Last 30 Days":i>=30&&i<90?"Last 90 Days":i>=90&&i<365?"This Year":"All Time"}},getTicks:function(e){if(e)return parseFloat(e.toString().replace(/\D/g,""))},getDuration:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if(!("number"!=typeof e||e<0)){var t=new Date(null);t.setSeconds(e);var r=t.toISOString().substr(11,8),n=r.split(":");return{raw:e,hours:+n[0],minutes:+n[1],seconds:+n[2],formatted:r,formattedTrimmed:r.replace(/^0(?:0:0?)?/,""),roundedMinutes:Math.round(e/60)}}},getDayOfWeekArray:function(){return[{dayFull:"Sunday",dayAbbr:"Sun",dayLongAbbr:"Sun"},{dayFull:"Monday",dayAbbr:"M",dayLongAbbr:"Mon"},{dayFull:"Tuesday",dayAbbr:"T",dayLongAbbr:"Tues"},{dayFull:"Wednesday",dayAbbr:"W",dayLongAbbr:"Wed"},{dayFull:"Thursday",dayAbbr:"Th",dayLongAbbr:"Thurs"},{dayFull:"Friday",dayAbbr:"F",dayLongAbbr:"Fri"},{dayFull:"Saturday",dayAbbr:"S",dayLongAbbr:"Sat"}]},getDayOfWeek:function(e){return a.date.getDayOfWeekArray()[e]},getTimeOptions:function(){for(var e=[],t=function(e){return e.toString().padStart(2,"0")},r=0;r<2;r++)for(var n=r?"PM":"AM",a=0;a<12;a++)for(var o=0;o<60;o+=15){var i=r?a+12:a;e.push({label:"".concat(a||12,":").concat(t(o)," ").concat(n),value:"".concat(t(i),":").concat(t(o),":00"),minutes:60*i+o})}return e}},a.user={getFileID:function(e){return e.toString().split("").reverse().join("")},getProfileImage:function(e,t,r){var n=e>0?"homesnap.users":"homesnap.noimage",o="//s3.amazonaws.com/"+n+"/",i=e>0?o+a.string.reverse(e.toString())+"_":o+"user_",s="";return t&&(s="?"+t),{small:r||i+"50.jpg"+s,medium:r||i+"150.jpg"+s,large:r||i+"300.jpg"+s,photoVersion:t}},updateProfileImage:function(e,t){if(e)return e.status.raw+=1,e.status.hasPhoto=!0,e.photoVersion=t,e.profileImage=this.getProfileImage(e.userID,e.photoVersion),e},getName:function(e,t,r){if(!e&&!t&&!r)return null;var n,e=e?e.trim():null,t=t?t.trim():null;return n=e||(t||(r||" ")),{first:e,last:t,firstOrLast:n,full:e&&t?e+" "+t:n,initials:e&&t?e.charAt(0).toUpperCase()+t.charAt(0).toUpperCase():n.charAt(0).toUpperCase()}},getFriendlyName:function(e,t){return t?e.name&&e.name.full?e.name.full:"Homesnap User":e.name&&e.name.first?e.name.first:"Homesnap User"},getProfileURL:function(e,t,r){return e?"/"+e:"/entity/"+r+(t?"/"+t:"")},getBackgroundImageURL:function(e){var t="https://s3.amazonaws.com/homesnap.backgrounds/";return t+=a.string.reverse(e.toString()),{listingAds:"".concat(t,"_2064x1080.jpg"),large:"".concat(t,"_2000x640.jpg"),medium:"".concat(t,"_1000x320.jpg"),small:"".concat(t,"_500x160.jpg")}},getRatingStars:function(e,t){for(var r="",n="",a=(Math.round(2*e)/2).toFixed(1),o=t?Math.floor(5-a):Math.ceil(5-a),i=a%1!=0&&t?'star_half':"",s=0;sstar';for(var c=0;cstar_outline';return"".concat(r).concat(i).concat(n)}},a.brand={getImage:function(e,t,r){var n="//s3.amazonaws.com/homesnap.brands/"+a.string.reverse(e.toString())+"_";return{aspectRatio:t,url:{default:n+"aspect.png",light:n+"light_aspect.png",dark:r?n+"dark_aspect.png":null}}}},a.conversationMessageItem={filterHTML:function(e){function t(e){return n.innerHTML=e,e=n.textContent,n.textContent="",e}var r=document.implementation.createHTMLDocument(""),n=r.createElement("div");return function(e){if(e&&"string"==typeof e){for(var r=t(e);e!==r;)e=r,r=t(r);return r}}(e)}},a.conversation={getDate:function(t){if(t){var r=new Date,n=a.date.getDateInfo(t),o=new Date(t);if(r.getFullYear()===o.getFullYear()&&r.getMonth()===o.getMonth()&&r.getDate()===o.getDate())return n.conversationLong=n.formattedTime,n.conversationShort=n.formattedTime,n;if(r.setDate(r.getDate()-1),r.getFullYear()===o.getFullYear()&&r.getMonth()===o.getMonth()&&r.getDate()===o.getDate())return n.conversationLong="Yesterday ".concat(n.formattedTime),n.conversationShort="Yesterday",n;return o>new Date(r.getFullYear(),r.getMonth(),r.getDate()-6)?(n.conversationLong="".concat(e[o.getDay()]," ").concat(n.formattedTime),n.conversationShort=e[o.getDay()],n):(n.conversationLong="".concat(n.monthDayYear," ").concat(n.formattedTime),n.conversationShort=n.monthDayYear,n)}return null},getSummary:function(e){var t="";return e.text&&(t=e.text),e.propertyAddress?(t.length&&(t+=" "),t+="[".concat(e.propertyAddress.address.fullStreetAddress,", ").concat(e.propertyAddress.address.cityStateZip,"]")):e.image?(t.length&&(t+=" "),t+="[1 Image Attached]"):e.entity&&(t.length&&(t+=" "),t+="[".concat(a.user.getFriendlyName(e.entity,!0),"]")),t},getTitle:function(e){var t="Me";if(e&&e.members&&e.members.length){var r=e.members.length,n=e.members.map(function(e,t){return a.user.getFriendlyName(e,1===r||1===e.entityID)});1===r?t=n[0]:2===r?t="".concat(n[0]," & ").concat(n[1]):3===r?t="".concat(n[0],", ").concat(n[1]," & ").concat(n[2]):(t="".concat(n[0],", ").concat(n[1],", ").concat(n[2]),t+=" & ".concat((r-3).toString()," more"))}return t},isEqual:function(e,t){return!!((null===e||void 0===e?void 0:e.type_)===(null===t||void 0===t?void 0:t.type_)&&"HSConversationItem"===(null===e||void 0===e?void 0:e.type_)&&e.id===t.id&&e.status.raw===t.status.raw&&e.recentMessage&&t.recentMessage&&e.recentMessage.id===t.recentMessage.id&&e.recentMessage.status.raw===t.recentMessage.status.raw&&(e.recentMessage.readTimestamp&&t.recentMessage.readTimestamp&&e.recentMessage.readTimestamp.raw===t.recentMessage.readTimestamp.raw||!e.recentMessage.readTimestamp&&!t.recentMessage.readTimestamp))},getMessageImage:function(e,t){var r="https://s3.amazonaws.com/homesnap.messages/";return r+="".concat(a.string.reverse(e.toString()),"_"),{small:"".concat(r).concat(t,"_192.jpg"),medium:"".concat(r).concat(t,"_576.jpg"),original:"".concat(r).concat(t,"_original.jpg")}}},a.listing={mapping:{mini:303,listing:302,large:301,original:301},getImage:function(e,t,r){var o,i,s=null===(o=window.Homesnap)||void 0===o?void 0:null===(i=o.rootURLs)||void 0===i?void 0:i.akamaiListingImagesURLFormat.toLowerCase();return s?(s=s.replace("{sizeid}",e.toString()),s=s.replace("{mediaidreversed}",a.string.reverse(r.toString())),s=s.replace("{listingidreversed}",a.string.reverse(t.toString()))):(n("RootURL AkamaiListingImagesURLFormat is undefined"),"")},getImageSet:function(e,t){var r=this,n={};return Object.entries(this.mapping).forEach(function(a){var o=_slicedToArray(a,2),i=o[0],s=o[1];n[i]=r.getImage(s,e,t)}),n},getPrimaryImage:function(e,t){return this.getImageSet(e,t)},getSecondaryImages:function(e,t){for(var r=[],n=0;n')}else if(o){var g;u.priority=20,u.color="purple",u.pinName="purple",u.primaryColor="purple",u.pinHex="00B100",u.text="Open House",i&&(u.text="Open ".concat(i)),l&&null!==(g=l.method)&&void 0!==g&&g.virtual&&(u.text="Live ",a.listing.isOpenHouseNow(l)?u.text+="Now ":i&&(u.text+="".concat(i," ")),u.text+='')}else u.priority=30,u.color="green",u.pinName="green",u.primaryColor="green",u.pinHex="00B100",u.text=p?"For Rent":"For Sale";return u},getMonthlyPayment:function(e,t,r){return t||r?0==r?e/t:e*r*Math.pow(1+r,t)/(Math.pow(1+r,t)-1):0},getAffordabilityHomePrice:function(e){if(!e||"Object"==typeof e)return null;var t=+e.interestRate.toFixed(10),r=e.loanTerm,n=e.income/12*e.debtToIncome-e.monthlyDebts;n=n.toFixed(10);var a=+(e.annualPropertyTax/12).toFixed(10)+ +(e.annualHomeownersInsurance/12).toFixed(10)+ +(e.annualMortgageInsurance/12).toFixed(10)+e.hoaFees;a=parseInt(a,10);var o=Math.pow(1+t,r);o=+o.toFixed(10);var i=(o-1)/(t*o)||0;return i=+i.toFixed(10),e.downPayment+(n-a)*i},isOpenHouseNow:function(e){var t,r,n,a;if(!e||"object"!=typeof e)return!1;var o=(null===(t=e.startDateUtc)||void 0===t?void 0:t.raw)||e.startDate.raw,i=(null===(r=e.endDateUtc)||void 0===r?void 0:r.raw)||e.endDate.raw,s=new Date,c=s.getTime();null!==(n=e.startDateUtc)&&void 0!==n&&n.raw&&null!==(a=e.endDateUtc)&&void 0!==a&&a.raw&&(c+=6e4*s.getTimezoneOffset());var l=new Date(o).getTime(),u=new Date(i).getTime();return c>=l&&c<=u}},a.themes={_locked:!1,_current:null,get current(){var e;return null!==(e=this._current)&&void 0!==e?e:this.preset},key:"data-theme",preset:"hswa",mapping:{none:"hswa",nyc:"empire"},set:function(e,t){var r;if(this._locked)return"locked";var n=null!==(r=Object.keys(e).filter(function(t){return!0===e[t]})[0])&&void 0!==r?r:"none",a=this.mapping[n];return(2!==window.Homesnap.coStarBrand||a!==this.mapping.nyc)&&(this.load(a),this._current=a,t&&(this._locked=!0),!0)},load:function(e){$("html").attr("data-theme",e),e===this.preset||$("link[".concat(this.key,"='").concat(e,"']")).length||a.handlebars.loadCSS("themes/".concat(e,".css"),null,{key:this.key,value:e})},unload:function(e){$("html").attr("data-theme")===e&&($("html").attr("data-theme",this.preset),this._current=this.preset,$("link[".concat(this.key,"='").concat(e,"']")).remove())},paint:{load:function(e){a.handlebars.loadCSS(e?"".concat(e):"paint/paint.css")},set:function(e,t,r,n,a){var o=document.documentElement.style;e&&t&&o&&(o.setProperty("--".concat(e,"-hex"),t),"number"==typeof r&&"number"==typeof n&&"number"==typeof a&&(o.setProperty("--".concat(e,"-hue"),"".concat(r)),o.setProperty("--".concat(e,"-sat"),"".concat(n,"%")),o.setProperty("--".concat(e,"-lte"),"".concat(a,"%"))))}},converters:{rgb2hsl:function(e,t,r){var n=Math.max(e,t,r),a=n-Math.min(e,t,r),o=1-Math.abs(n+n-a-1),i=a&&(n===e?(t-r)/a:n===t?2+(r-e)/a:4+(e-t)/a);return[60*(i<0?i+6:i),o?a/o:0,(n+n-a)/2]}}},a.propertyAddress={getAddress:function(e,t,r,n,a){var o,i,s,c,l;return{fullStreetAddress:e,fullStreetAddressWithoutUnit:this.getFullStreetAddressWithoutUnit(e,t),unitNumber:t?{raw:t,string:"#"+t}:null,city:r,state:n,zip:a,cityState:(r?r+", ":"")+(n?n+" ":""),cityStateZip:(r?r+", ":"")+(n?n+" ":"")+(a||""),streetNumber:null===(o=this.getFullStreetAddressWithoutUnit(e,t))||void 0===o?void 0:null===(i=o.split(" "))||void 0===i?void 0:i[0],streetNameWithoutNumber:null===(s=this.getFullStreetAddressWithoutUnit(e,t))||void 0===s?void 0:null===(c=s.split(" "))||void 0===c?void 0:null===(l=c.splice(1))||void 0===l?void 0:l.join(" ")}},getFullStreetAddressWithoutUnit:function(e,t){return t&&t.toString().length>0?e.split(" #")[0]:e},getBeds:function(e){return e?{raw:e,string:e.toString(),label:1==e?"Bed":"Beds"}:null},getBaths:function(e,t){var r;return e&&(r={raw:{full:e,half:t||0},string:e.toString(),label:"Baths"},t&&t>0&&(r.string+=1==t?".5":".5+"),1!=e||t&&0!=t||(r.label="Bath")),r},getSqFt:function(e){return e?{raw:e,string:e.toLocaleString()}:null},getLotSize:function(e){return e?{raw:e,string:e.toLocaleString(),label:"Acres"}:null},getPrice:function(e,t){if(e||0===e){var r=Math.round(e),n="$"+r.toLocaleString();t&&2==t&&(n+="/mo");var a;return r<1e4?a=r.toLocaleString():r<999500?(a=Math.round(r/1e3).toString(),a+="K"):r<105e4?a="1M":r<9995e4?(a=(Math.round(r/1e5)/10).toFixed(1).toString(),a+="M"):(a=Math.round(r/1e6).toString(),a+="M"),t&&2==t&&(a+="/mo"),{raw:e,dollars:n,short:"$"+a}}return null},getPropertyStatus:function(e,t,r){var n={color:"blue",pinName:"blue_pin",primaryColor:"blue",secondaryColor:null,text:t||"Off-Market",pinHex:"006DC7"};if(r)switch(!0){case r.expired:n.text="Expired";break;case r.canceled:n.text="Canceled";break;case r.withdrawn:n.text="Withdrawn";break;case r.hold:n.text="Hold"}return n},getSPropertyType:function(e){if(e){var t;switch(e){case 1:t="Detached";break;case 2:t="Townhouse";break;case 4:t="Condo";break;case 16:t="Multi-Family";break;case 32:t="Lots/Land";break;case 64:t="Mobile/Manufactured";break;case 128:t="Commercial";break;case 256:t="Co-op";break;case 8:default:t="Other"}return{raw:e,string:t}}return null},getClusterColors:function(e,t,r){var n={fill:"#4392CE",stroke:"#3589CF"};return e&&(t?(n.fill="#F1CC39",n.stroke="#E5BE37"):2==(2&e)?(n.fill="#F37F21",n.stroke="#D76C25"):4==(4&e)?(n.fill="#E02844",n.stroke="#9A1B1E"):1==(1&e)&&(r?(n.fill="#00B100",n.stroke="#00B100"):(n.fill="#71bf44",n.stroke="#538c32"))),n},getSingleEntityTypeAndID:function(e){if(e){var t,r;return e.listing?(t=7,r=e.listing.id):e.propertyID?(t=6,r=e.propertyID):e.id&&(t=5,r=e.id),{type:t,id:r}}},getPageTitle:function(e){var t=e.address?"".concat(e.address.fullStreetAddress,", ").concat(e.address.cityStateZip):"",r=a.coStarBrand.is("citysnap");return e.listing&&e.listing.sourceNumber&&r?t+=" | RLS #".concat(e.listing.sourceNumber):e.listing&&e.listing.sourceNumber&&!r&&(t+=" | MLS #".concat(e.listing.sourceNumber)),t},getGraphImage:function(e){return{raw:e,large:e.replace("{w}","1000").replace("{h}","120")}},getPieChartImage:function(e,t){var r="";for(var n in t)t.hasOwnProperty(n)&&(r+=t[n].Value+" - "+t[n].Label,r+="|");return{raw:e,small:e.replace("{w}","320").replace("{h}","160").replace("{color0}","00A3E1").replace("{color1}","56BBE1").replace("{color2}","abddf0").replace("{color3}","cccccc")+"&chdl="+r.slice(0,-1)}},getStatusBadges:function(e){function t(e,t,r){this.text=e,this.color=t,this.secondaryColor=r}var r=[];if(e.listing){if(e.listing.specialFeatures.comingSoon){var n=new t("Coming Soon","#fac332","");r.push(n)}else{var o,i,s=2===e.transactionType.raw;if(e.listing.sListingStatus.active)o=s?"For Rent":"For Sale",i="#00b100";else if(e.listing.sListingStatus.contract)o=s?"Pending":"Contract",i="#ff7f17";else if(e.listing.sListingStatus.sold)o=s?"Rented":"Sold",i="#f71200";else if((e.listing.sListingStatus.inactive||e.listing.sListingStatus.removed)&&(i="#006DC7",o="Off-Market",e.listing.mlsStatus)){var c=e.listing.offMarketDate?" ".concat(e.listing.offMarketDate.shortMonth," ").concat(e.listing.offMarketDate.day):"";switch(!0){case e.listing.mlsStatus.expired:o="Expired".concat(c);break;case e.listing.mlsStatus.canceled:o="Canceled".concat(c);break;case e.listing.mlsStatus.withdrawn:o="Withdrawn".concat(c);break;case e.listing.mlsStatus.hold:o="Hold".concat(c)}}var l=new t(o,i,null);r.push(l)}if(e.listing.specialFeatures.brokerOpen||e.listing.specialFeatures.openHouse){var u,p,d=e.listing.openHouse&&e.listing.openHouse.times?"Open ".concat(e.listing.openHouse.times):"Open House";null!==(u=e.listing.openHouse.method)&&void 0!==u&&u.virtual&&(d="Live ",a.listing.isOpenHouseNow(e.listing.openHouse)?d+="Now ":e.listing.openHouse.times&&(d+="".concat(e.listing.openHouse.times," ")),d+='');var g=new t(d,"#00B100",null);if(r.push(g),null!==e&&void 0!==e&&e.transactionType.forSale&&null!==e&&void 0!==e&&null!==(p=e.listing)&&void 0!==p&&p.openHouse.method.byAppointmentOnly){var m=a.coStarBrand.is("citysnap")?"#b0b0b0":"#6b758a",h=new t("Appointment Only",m,null);r.push(h),3===r.length&&r.shift()}}if(e.listing.specialFeatures.contingent){var f=new t("Contingent","#00B100",null);r.push(f)}else if(e.listing.specialFeatures.shortSale){var y=new t("Short Sale","#00b100",null);r.push(y)}else if(e.listing.specialFeatures.auction){var b=new t("Auction","#00b100",null);r.push(b)}else if(e.listing.specialFeatures.realEstateOwned){var v=new t("Real Estate Owned","#f71200",null);r.push(v)}else if(e.listing.specialFeatures.foreclosure){var w=new t("Foreclosure","#00b100",null);r.push(w)}}else if(e&&e.propertyID){var S="Off-Market";if(e.attributes&&e.attributes.mlsStatus){var x=e.attributes.offMarketDate?" ".concat(e.attributes.offMarketDate.shortMonth," ").concat(e.attributes.offMarketDate.day):"";switch(!0){case e.attributes.mlsStatus.expired:S="Expired".concat(x);break;case e.attributes.mlsStatus.canceled:S="Canceled".concat(x);break;case e.attributes.mlsStatus.withdrawn:S="Withdrawn".concat(x);break;case e.attributes.mlsStatus.hold:S="Hold".concat(x)}}var k=new t(S,"#006DC7",null);r.push(k)}return r},getOwnershipTypeAttributeDescription:function(e,t){switch(e){case 1:return t?"In state":"Absentee - In state";case 2:return t?"Out of state":"Absentee - Out of state";case 4:return"Corporate";case 8:return"Owner Occupied";default:return null}},getDistressedAttributeDescription:function(e,t){switch(e){case 1:return"Lis Pendens";case 2:return"Notice Of Default";case 4:return t?"Foreclosure Notice":"Notice Of Foreclosure Sale";case 8:return t?"Notice of Sale":"Notice Of Trustee Sale";case 32:return"Affidavit Notice of Sale Published or Mailed";case 64:return"Cancelled";case 128:return"Certificate of Purchase / Certificate of Foreclosure Recorded";case 256:return"Order Rescheduling Foreclosure Sale Date";case 512:return"Foreclosure Judgment Entered";case 2048:return"Newly Filed Complaint";case 4096:return"Order of Dismissal/Cancellation/Release of Lis Pendens";case 8192:return"Power of Attorney to Foreclose Mortgage";case 16384:return"Re-Recorded Notice of Default";case 32768:return"Re-Recorded Final Judgment of Foreclosure";case 65536:return"Re-Recorded Notice of Lis Pendens";case 131072:return"Re-Recorded Order of Dismissal";case 524288:return"NFNS Updated with Sale Information Rescheduled";case 1048576:return"Re-Recorded Notice of Trustees Sale";case 2097152:return"Sold";case 4194304:return"Re-Recorded Notice of Sale";case 8388608:return"Standalone Mortgage";case 1073741824:return"Other";default:return null}}},a.js={dedupeHashTables:function(e,t,r){var n={add:[],keep:[],remove:[]};return e&&0!=e.length?t&&0!=t.length?(e.each(function(e,a){t.hasItem(e)?r&&!r(a,t.getItem(e))?(n.remove.push(e),n.add.push(e)):n.keep.push(e):n.remove.push(e)}),t.each(function(t,r){e.hasItem(t)||n.add.push(t)})):n.remove=e.keys():t&&t.length>0&&(n.add=t.keys()),n},round:function(e,t){return Number(Math.round(e+"e"+t)+"e-"+t)}},a.map={getXYbyLatLng:function(e,t,r){if(isNaN(parseFloat(e))||isNaN(parseFloat(t))||isNaN(parseInt(r,10)))return null;var n=parseInt(256*Math.pow(2,r-1)+t*(256*Math.pow(2,r)/360)),a=Math.sin(e*Math.PI/180);return a<-.9999&&(a=-.9999),a>.9999&&(a=.9999),{x:n,y:parseInt(256*Math.pow(2,r-1)+.5*Math.log((1+a)/(1-a))*(-256*Math.pow(2,r)/(2*Math.PI)))}},getLatLngByPixel:function(e,t,r){if(isNaN(parseInt(e,10))||isNaN(parseInt(t,10))||isNaN(parseInt(r,10)))return null;var n=e*(360/(256*Math.pow(2,r)))-180,o=t*(2/(256*Math.pow(2,r)));return o=1-o,o*=Math.PI,o=a.map.getRadiansByDegrees(Math.atan(Math.sinh(o))),{lat:o,lng:n}},getRadiansByDegrees:function(e){return e*(180/Math.PI)},getDistance:function(e,t,r,n,a){if(isNaN(parseFloat(e))||isNaN(parseFloat(t))||isNaN(parseFloat(r))||isNaN(parseFloat(n)))return null;var o=Math.PI*e/180,i=Math.PI*r/180,s=t-n,c=Math.PI*s/180,l=Math.sin(o)*Math.sin(i)+Math.cos(o)*Math.cos(i)*Math.cos(c);return l=Math.acos(l.toPrecision(14)),l=180*l/Math.PI,l=60*l*1.1515,"K"==a&&(l*=1.609344),"N"==a&&(l*=.8684),l},getDecodedPolygon:function(e){var t=function(e){for(var t=e.split("$"),r=[],n=0;n-1&&e.push(t+5e3);for(;t<1e6;)t+=25e3,e.push(t);for(;t<2e6;)t+=1e5,e.push(t);for(;t<3e6;)t+=25e4,e.push(t);for(;t<5e6;)t+=5e5,e.push(t);for(;t<1e7;)t+=1e6,e.push(t);for(;t<=25e6;)t+=25e5,e.push(t);a.coStarBrand.is("citysnap")&&(e=e.filter(function(e){return 0===e||e>19e4}));for(var n=e.map(function(e){return{value:e,label:e<=1e6?"$".concat(a.string.getShortNumber(e)):"$".concat((e/1e6).toString(),"M")}}),o=[],i=0;i<=1e4;i+=100)o.push(i);for(var s=10500;s<15e3;s+=500)o.push(s);for(var c=15e3;c<=2e4;c+=1e3)o.push(c);o.push(1e8),a.coStarBrand.is("citysnap")&&(o=o.filter(function(e){return 0===e||e>900}));var l=o.map(function(e){return{value:e,label:e<1e4?"$".concat(a.string.getShortNumber(e)):"$".concat((e/1e3).toString(),"K")}}),u={sale:{min:n.slice(0,-1),max:n.slice(1)},rent:{min:l.slice(0,-1),max:l.slice(1)}};return u.sale.max[u.sale.max.length-1]={label:"$25M+",value:1e8},u.rent.max[u.rent.max.length-1].label="$20K+",u},getYearBuiltOptions:function(){for(var e=new Date,t=e.getFullYear(),r=[];t>=2014;)r.push(t),t-=1;r=r.concat([2010,2005,2e3,1990,1980,1970,1960,1950,1925,1900]);var n=r.map(function(e){return{value:e,label:e}}),a={min:_toConsumableArray(n).reverse(),max:n};return a.max.unshift({label:"Any",value:3e3}),a.min.unshift({label:"Any",value:0}),a}},a.savedSearches={getSavedSearchUrl:function(e){var t,r=e.sd.getUrl(),n="",a="";if(null!==(t=e.boundaryEntities)&&void 0!==t&&t.length){if(a="/p_",1===e.boundaryEntities.length){var o=e.boundaryEntities[0];a+="".concat(o.entityType,",").concat(o.entityID)}else e.boundaryEntities.forEach(function(e){a+="(".concat(e.entityType,",").concat(e.entityID,")")});n=1===e.boundaryEntities.length?e.boundaryEntities[0].url:"/areas"}else if(e.boundaryEntity){switch(e.boundaryEntity.type_){case"HSAreaItem":a="/p_(21,".concat(e.boundaryEntity.areaID,")");break;case"HSSchool":a="/p_(26,".concat(e.boundaryEntity.id,")");break;case"HSStreetArea":a="/p_(51,".concat(e.boundaryEntity.id,")")}n=e.boundaryEntity.url}var i="";if(e.bounds&&e.bounds.center){var s=e.bounds.center();i="/c_".concat(s.lat.toString(),",").concat(s.lng.toString())}var c="/b_".concat(e.bounds.north,",").concat(e.bounds.east,"-").concat(e.bounds.south,",").concat(e.bounds.west),l="";e.criteria&&e.criteria.filters&&e.criteria.filters.shape&&e.criteria.filters.shape.encodedPolygons&&void 0!==e.criteria.filters.shape.encodedPolygons&&(l="/cp_".concat(encodeURIComponent(e.criteria.filters.shape.encodedPolygons)));var u="";if(e.commuteTimePlaces){u="";for(var p=0;p0?t.push("".concat(n.minimum.toString(),"+ Beds")):n.maximum===n.minimum?t.push("".concat(n.minimum.toString()," Beds")):n.minimum>0&&n.maximum<100&&t.push("".concat(n.minimum.toString(),"-").concat(n.maximum.toString()," Beds"));var a=r.filters&&r.filters.baths?r.filters.baths:{};0===a.minimum&&1===a.maximum?t.push("0-1 Baths"):1===a.minimum&&2===a.maximum?t.push("1-2 Baths"):2===a.minimum&&3===a.maximum?t.push("2-3 Baths"):3===a.minimum&&4===a.maximum?t.push("3-4 Baths"):4===a.minimum&&5===a.maximum?t.push("4-5 Baths"):5===a.minimum&&50===a.maximum?t.push("5+ Baths"):0===a.minimum&&0===a.maximum?t.push("0 Baths"):50===a.maximum&&a.minimum>0?t.push("".concat(a.minimum.toString(),"+ Baths")):void 0!==a.minimum&&a.maximum===a.minimum?t.push("".concat(a.minimum.toString()," Baths")):a.minimum>0&&a.maximum<50&&t.push("".concat(a.minimum.toString(),"-").concat(a.maximum.toString()," Baths"));var o=r.filters&&r.filters.price?r.filters.price:{};if(o.minimum&&o.minimum.raw>0&&o.maximum&&o.maximum.raw<1e8?t.push("".concat(o.minimum.short," - ").concat(o.maximum.short)):o.maximum&&o.maximum.raw<1e8?t.push("<".concat(o.maximum.short)):o.minimum&&o.minimum.raw>0&&t.push(">".concat(o.minimum.short)),r&&r.filters&&r.filters.date)switch(r.filters.date){case 1:t.push("Today");break;case 2:t.push("Over 1 Week");break;case 3:t.push("Over 1 Month");break;case 4:t.push("Over 3 Months");break;case 5:t.push("Over 6 Months");break;case 6:t.push("Over a Year");break;case 7:t.push("Past Week");break;case 8:t.push("Past Month");break;case 9:t.push("Past 3 Months");break;case 10:t.push("Past 6 Months");break;case 11:t.push("Past Year");break;case 12:t.push("Tomorrow");break;case 13:t.push("This Week");break;case 14:t.push("Saturday");break;case 15:t.push("Sunday");break;case 16:t.push("This Weekend");break;case 17:t.push("This Week");break;case 18:t.push("Next Weekend")}return t=t.join(", "),e&&e.boundaryEntity?"HSAreaItem"===e.boundaryEntity.type_?t+=" in ".concat(e.boundaryEntity.name):"HSSchool"===e.boundaryEntity.type_?t+=" near ".concat(e.boundaryEntity.name):"HSStreetArea"===e.boundaryEntity.type_&&(t+=" on ".concat(e.boundaryEntity.name)):e&&e.encodedPolygons&&(t+=" in custom area "),t}},a.data={base64ToArrayBuffer:function(e){if(e){for(var t=e.replace(/^data\:([^\;]+)\;base64,/gim,""),r=atob(t),n=r.length,a=new Uint8Array(n),o=0;o0&&"{"===e.substring(0,1)&&"}"===e.substring(r-1,r))try{t=JSON.parse(e)}catch(e){}return t},deleteNullProperties:function(e){return e?(Object.keys(e).forEach(function(e){var t=this[e];t&&"object"==typeof t?(a.data.deleteNullProperties(t),0===Object.keys(t).length&&delete this[e]):null===t&&delete this[e]},e),e):{}},update:function(e,t,r){e&&Object.keys(e).forEach(function(n){var o="string"==typeof e[n]?e[n].replace(/^\s+|\s+$/g,""):e[n];"object"==typeof o?a.data.update(o,t,r):o===t&&(e[n]=r)})}},a.byte={length:function(e){return void 0!==e?decodeURIComponent(encodeURIComponent(JSON.stringify(e))).length||0:0},size:function(e,t){if(!e)return 0;var r=t?t.toUpperCase():"MB",n=0;switch(e.forEach(function(e){n+=a.byte.length(e)}),r){case"B":return n;case"KB":return+(n/1024).toFixed(3);default:return+(n/1024/1024).toFixed(3)}}},a.entityContent={getKeyFrameUrl:function(e,t){return"https://s3.amazonaws.com/homesnap.entitycontents/".concat(a.string.reverse(e.toString()),"_").concat(t,".jpg")},getDataUrl:function(e,t){return"https://s3.amazonaws.com/homesnap.entitycontents/".concat(a.string.reverse(e.toString()),"_").concat(t,".mp4")}},a.ads={getPlatformType:function(e){if(!e)return null;var t={raw:e,id:e};return 1===e?(t.facebook=!0,t.name="Facebook",t.color={text:"#3b5998",background:"#4b6dad",rgb:"75,109,173",gradient:"radial-gradient(at bottom right, #87BAFF 0%, #005EA8 100%)"},t.icon={color:a.path.getImageUrl("/listing-promos/fb-colored-256px.png"),colorSM:a.path.getImageUrl("/listing-promos/fb-colored-70px-2x.png"),white:a.path.getImageUrl("/listing-promos/fb-white-70px-2x.png"),grey:a.path.getImageUrl("/listing-promos/fb-grey-70px-2x.png")}):2===e?(t.instagram=!0,t.name="Instagram",t.color={text:"#c93a9b",background:"#c9399b",rgb:"201,57,155",gradient:"radial-gradient(at bottom right, #7D3CAF 0%, #B33393 100%)"},t.icon={color:a.path.getImageUrl("/listing-promos/ig-colored-256px.png"),colorSM:a.path.getImageUrl("/listing-promos/ig-colored-70px-2x.png"),white:a.path.getImageUrl("/listing-promos/ig-white-70px-2x.png"),grey:a.path.getImageUrl("/listing-promos/ig-grey-70px-2x.png")}):3===e?(t.google=!0,t.name="Google",t.color={text:"#db3236",background:"#ef5c42",rgb:"239,92,66",gradient:"radial-gradient(at bottom right, #E07C3D 0%, #E23A3A 100%)"},t.icon={color:a.path.getImageUrl("/listing-promos/google-colored-256px.png"),colorSM:a.path.getImageUrl("/listing-promos/google-colored-70px-2x.png"),white:a.path.getImageUrl("/listing-promos/google-white-70px-2x.png"),grey:a.path.getImageUrl("/listing-promos/google-grey-70px-2x.png")}):4===e&&(t.waze=!0,t.name="Waze",t.color={text:"#00b7d6",background:"#00b8d2",rgb:"0, 184, 210",gradient:"linear-gradient(313.13deg, #22E0FF 0%, #1CD6F6 15.8%, #15C9EA 35.86%, #15CAEB 36.43%, #15CAEB 36.44%, #15CAEB 36.44%, #15CAEB 37.2%, #15C9EA 37.36%, #15C9EA 37.52%, #15C9EA 38.16%, #14C8E9 39.89%, #14C8E9 39.89%, #13C6E7 43.86%, #10C0E2 53.61%, #00A4C8 100%)"},t.icon={color:a.path.getImageUrl("/listing-promos/waze-colored-256px-1.png"),colorSM:a.path.getImageUrl("/listing-promos/waze-colored-70px-2x-1.png"),white:a.path.getImageUrl("/listing-promos/waze-white-70px-2x.png"),grey:a.path.getImageUrl("/listing-promos/waze-grey-70px-2x.png")}),t},getPlatformIDByName:function(e){if(!e)return null;var t;switch(e.toLowerCase()){case"facebook":t=1;break;case"instagram":t=2;break;case"google":case"googlesearch":case"googlediscovery":t=3;break;case"waze":t=4}return t}},a.leads={getNetwork:function(e,t){var r=Object.assign({},a.ads.getPlatformType(a.ads.getPlatformIDByName(t)));if(r.id=e,r.raw=e,r[t])return r;switch(r.color={text:"#000000",background:"#ffffff",rgb:"0, 0, 0",gradient:null},r.icon={color:"",colorSM:"",white:"",grey:""},e){case 0:r.name="Unknown";break;case 1:r.name="Homesnap";break;case 32:r.name="YouTube";break;case 64:case 256:r.name="Google Ads";break;case 128:r.name="Google's Local Services Ads"}return r},getPlatform:function(e){var t,r={};return r.match=null!==(t=Object.keys(e).filter(function(t){return!0===e[t]})[0])&&void 0!==t?t:"",r.name=(r.match.charAt(0).toUpperCase()+r.match.substr(1)).match(/([A-Z]?[^A-Z]*)/g).slice(0,-1).join(" "),r.name?(r.id=e.raw,r):null}},a.styles={getProp:function(e){var t;return!(!window||null===(t=document)||void 0===t||!t.documentElement)&&window.getComputedStyle(document.documentElement).getPropertyValue(e)}},a.application={parseQueryString:function(e){for(var t,r,n=/(?:\?|\&)([^(\=|\&)]+)(?:\=([^&]+))?/g;t=n.exec(e);)r=r||{},"string"==typeof t[2]?r[decodeURIComponent(t[1].toLowerCase())]=decodeURIComponent(t[2]):"="!==e.charAt(e.indexOf(t[1])+t[1].length)&&(r[decodeURIComponent(t[1].toLowerCase())]=!0);return r},parseUrl:function(e){if(!e||"string"!=typeof e)return null;var t=/^(http:|https:)?(?:\/\/)?(([^\/\:]+)?(?:(?:\:)([\d]+))?)?(\/[^\s\?]*)(\?[^\#\s]+)?(\#\S+)?$/i,r=e.match(t);return r?{protocol:r[1]||location.protocol,host:r[2]||location.host,hostname:r[3]||location.hostname,port:r[4]||location.port,pathname:r[5],search:r[6],hash:r[7]}:null},isiOS:function(){return/iPad|iPhone|iPod/.test(navigator.userAgent||navigator.vendor||window.opera)&&!window.MSStream},isAndroid:function(){return/android/i.test(navigator.userAgent||navigator.vendor||window.opera)},isChromeiOS:function(){return/CriOS/i.test(navigator.userAgent||navigator.vendor||window.opera)},isWebView:function(){return/wv/i.test(navigator.userAgent||navigator.vendor||window.opera)},isHSPuppeteer:function(){return/HSPuppeteer/i.test(navigator.userAgent||navigator.vendor||window.opera)}},a.path={getImageUrl:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return t.imageRootPath+e},getJSUrl:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return t.jsRootPath+e},getHandlebarUrl:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return t.handlebarRootPath+e},getDomain:function(e){var t=e.split(".");return t.slice(t.length-2).join(".").toLowerCase()}},a.brokerage={originateUrl:function(e){var t,r;if(null!==e&&void 0!==e&&null!==(t=e.url)&&void 0!==t&&t.input&&(r={url:"".concat(e.url.input),withBrokerageID:!1},e.queryString)){if(e.queryString.brokerageid)return r.withBrokerageID=!0,r;Object.keys(e.queryString).length&&(r.url="".concat(r.url,"?"),Object.keys(e.queryString).forEach(function(t){"brokerageID"===t&&(r.withBrokerageID=!0),r.url=r.url.concat("".concat(t,"="),e.queryString[t],"&")}))}return r},reloadWithBrokerage:function(e,t){var r,n,a=null===e||void 0===e?void 0:null===(r=e.agentDetails)||void 0===r?void 0:null===(n=r.brokerageDetails)||void 0===n?void 0:n.entityID;if((null===t||void 0===t||!t.withBrokerageID)&&null!==t&&void 0!==t&&t.url&&a)return t.url.indexOf("&")>-1&&!t.url.endsWith("&")?t.url="".concat(t.url,"&"):-1!==t.url.indexOf("&")||t.url.endsWith("?")||(t.url="".concat(t.url,"?")),t.url=t.url.concat("brokerageid=",a),a&&window.location.replace("".concat(window.location.origin).concat(t.url)),!1}},a.reload={withUtmTags:function(e){if(!e||"object"!=typeof e||e.constructor!==Object)return!1;var t={promoCampaign:"utm_campaign",promoSource:"utm_source",promoMedium:"utm_medium",promoTerm:"utm_term",promoContent:"utm_content",promoDate:"date",salesUserID:"sdr",triggerEmailSubject:"subj"},r=Object.keys(e).map(function(r){if(e[r])return"".concat(t[r],"=").concat(e[r])}).filter(Boolean).join("&"),n="".concat(window.location.origin).concat(window.location.pathname,"?").concat(r);window.location.replace(n)}},a.showing={getStylesBasedOnStatus:function(e){var t=a.coStarBrand.is("citysnap"),r={mapMarkerFill:t?"#000000":"#006DC7"};if(e.status.cancelled)r.dataStatusBadge="red",r.spanTextColor="bs4--text-google-red",r.spanIcon="cancel",r.pText="Canceled";else if(e.status.completed)r.dataStatusBadge="gray",r.spanTextColor="bs4--text-gray-300",r.spanIcon="check_circle",r.pText="Toured",r.mapMarkerFill="#6B758A";else if(e.status.confirmed)r.dataStatusBadge="green",r.spanTextColor="bs4--text-google-green",r.spanIcon="check_circle",r.pText="Confirmed";else if(e.status.external){var n,o=e.service||(null===(n=e.listing)||void 0===n?void 0:n.service)||{},i="Unknown";o.homesnap?i="Homesnap":o.showingTime?i="ShowingTime":o.sentriKey&&(i="SentriKey"),r.dataStatusBadge="blue",r.spanTextColor="bs4--text-hs-blue",r.spanIcon="watch_later",r.pText="Unknown"===i?"Managed Outside Homesnap":"Managed in ".concat(i),r.externalService=i}else e.status.pending||e.status.unscheduled?(r.dataStatusBadge="orange",r.spanTextColor="bs4--text-google-orange",r.spanIcon="watch_later",r.pText=e.status.pending?"Pending":"Unscheduled"):e.status.rejected?(r.dataStatusBadge="red",r.spanTextColor="bs4--text-google-red",r.spanIcon="cancel",r.pText="Declined"):e.status.none&&(r.dataStatusBadge="gray",r.spanTextColor="bs4--text-gray-300",r.spanIcon="watch_later",r.pText="No Status");return r}},a.coStarBrand={_current:window.Homesnap&&window.Homesnap.coStarBrand,_internalDictionary:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";if("number"==typeof e)return 2940===e?4:2;switch(e.toLowerCase()){case"citysnap":return 4;case"homesnap":default:return 2}},is:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";if(e){var t=this._internalDictionary(e);return t&&this._current===t}},getCurrent:function(e){var t=e?this._internalDictionary(e):this._current;switch(t){case 4:return{name:"Citysnap",supportEmail:"support@citysnap.com",listingService:"RLS",raw:t,appleApp:"https://apps.apple.com/us/app/citysnap-nyc-rentals-homes/id1603890256",googlePlay:"https://play.google.com/store/apps/details?id=com.homesnap.citysnap",includedMLSIds:[511e3]};default:return{name:"Homesnap",supportEmail:"support@homesnap.com",listingService:"MLS",raw:t,appleApp:"https://apps.apple.com/us/app/homesnap-real-estate-rentals/id506563991",googlePlay:"https://play.google.com/store/apps/details?id=com.homesnap",includedMLSIds:[]}}}},a}),String.prototype.endsWith||(String.prototype.endsWith=function(e,t){return(void 0===t||t>this.length)&&(t=this.length),this.substring(t-e.length,t)===e}),Object.assign&&"function"==typeof Object.assign||Object.defineProperty(Object,"assign",{value:function(e,t){"use strict";if(null===e)throw new TypeError("Cannot convert undefined or null to object");for(var r=Object(e),n=1;n>16),s((65280&n)>>8),s(255&n);return 2==o?s(255&(n=c(e.charAt(t))<<2|c(e.charAt(t+1))>>4)):1==o&&(s((n=c(e.charAt(t))<<10|c(e.charAt(t+1))<<4|c(e.charAt(t+2))>>2)>>8&255),s(255&n)),i},e.fromByteArray=function(e){var t,n,r,o,i=e.length%3,u="";function a(e){return"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e)}for(t=0,r=e.length-i;t>18&63)+a(o>>12&63)+a(o>>6&63)+a(63&o);switch(i){case 1:u+=a((n=e[e.length-1])>>2),u+=a(n<<4&63),u+="==";break;case 2:u+=a((n=(e[e.length-2]<<8)+e[e.length-1])>>10),u+=a(n>>4&63),u+=a(n<<2&63),u+="="}return u}}(void 0===f?this.base64js={}:f)}).call(this,e("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/base64-js/lib/b64.js","/node_modules/gulp-browserify/node_modules/base64-js/lib")},{buffer:3,lYpoI2:10}],3:[function(O,e,H){(function(e,t,g,n,r,o,i,u,a){var s=O("base64-js"),f=O("ieee754");function g(e,t,n){if(!(this instanceof g))return new g(e,t,n);var r,o,i,u,a,s=typeof e;if("base64"===t&&"string"==s)for(e=(r=e).trim?r.trim():r.replace(/^\s+|\s+$/g,"");e.length%4!=0;)e+="=";if("number"==s)o=x(e);else if("string"==s)o=g.byteLength(e,t);else{if("object"!=s)throw new Error("First argument needs to be a number, array or string.");o=x(e.length)}if(g._useTypedArrays?i=g._augment(new Uint8Array(o)):((i=this).length=o,i._isBuffer=!0),g._useTypedArrays&&"number"==typeof e.byteLength)i._set(e);else if(S(a=e)||g.isBuffer(a)||a&&"object"==typeof a&&"number"==typeof a.length)for(u=0;u>8,r=t%256,o.push(r),o.push(n);return o}(t),e,n,r)}function c(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;o>>0)):(t+1>>0),o}function h(e,t,n,r){if(r||(D("boolean"==typeof n,"missing or invalid endian"),D(null!=t,"missing offset"),D(t+1>>8*(r?u:1-u)}function _(e,t,n,r,o){o||(D(null!=t,"missing value"),D("boolean"==typeof r,"missing or invalid endian"),D(null!=n,"missing offset"),D(n+3>>8*(r?u:3-u)&255}function E(e,t,n,r,o){o||(D(null!=t,"missing value"),D("boolean"==typeof r,"missing or invalid endian"),D(null!=n,"missing offset"),D(n+1this.length&&(r=this.length),e.length-t=this.length))return this[e]},g.prototype.readUInt16LE=function(e,t){return l(this,e,!0,t)},g.prototype.readUInt16BE=function(e,t){return l(this,e,!1,t)},g.prototype.readUInt32LE=function(e,t){return d(this,e,!0,t)},g.prototype.readUInt32BE=function(e,t){return d(this,e,!1,t)},g.prototype.readInt8=function(e,t){if(t||(D(null!=e,"missing offset"),D(e=this.length))return 128&this[e]?-1*(255-this[e]+1):this[e]},g.prototype.readInt16LE=function(e,t){return h(this,e,!0,t)},g.prototype.readInt16BE=function(e,t){return h(this,e,!1,t)},g.prototype.readInt32LE=function(e,t){return p(this,e,!0,t)},g.prototype.readInt32BE=function(e,t){return p(this,e,!1,t)},g.prototype.readFloatLE=function(e,t){return b(this,e,!0,t)},g.prototype.readFloatBE=function(e,t){return b(this,e,!1,t)},g.prototype.readDoubleLE=function(e,t){return m(this,e,!0,t)},g.prototype.readDoubleBE=function(e,t){return m(this,e,!1,t)},g.prototype.writeUInt8=function(e,t,n){n||(D(null!=e,"missing value"),D(null!=t,"missing offset"),D(t=this.length||(this[t]=e)},g.prototype.writeUInt16LE=function(e,t,n){v(this,e,t,!0,n)},g.prototype.writeUInt16BE=function(e,t,n){v(this,e,t,!1,n)},g.prototype.writeUInt32LE=function(e,t,n){_(this,e,t,!0,n)},g.prototype.writeUInt32BE=function(e,t,n){_(this,e,t,!1,n)},g.prototype.writeInt8=function(e,t,n){n||(D(null!=e,"missing value"),D(null!=t,"missing offset"),D(t=this.length||(0<=e?this.writeUInt8(e,t,n):this.writeUInt8(255+e+1,t,n))},g.prototype.writeInt16LE=function(e,t,n){E(this,e,t,!0,n)},g.prototype.writeInt16BE=function(e,t,n){E(this,e,t,!1,n)},g.prototype.writeInt32LE=function(e,t,n){I(this,e,t,!0,n)},g.prototype.writeInt32BE=function(e,t,n){I(this,e,t,!1,n)},g.prototype.writeFloatLE=function(e,t,n){A(this,e,t,!0,n)},g.prototype.writeFloatBE=function(e,t,n){A(this,e,t,!1,n)},g.prototype.writeDoubleLE=function(e,t,n){B(this,e,t,!0,n)},g.prototype.writeDoubleBE=function(e,t,n){B(this,e,t,!1,n)},g.prototype.fill=function(e,t,n){if(e=e||0,t=t||0,n=n||this.length,"string"==typeof e&&(e=e.charCodeAt(0)),D("number"==typeof e&&!isNaN(e),"value is not a number"),D(t<=n,"end < start"),n!==t&&0!==this.length){D(0<=t&&t"},g.prototype.toArrayBuffer=function(){if("undefined"==typeof Uint8Array)throw new Error("Buffer.toArrayBuffer not supported in this browser");if(g._useTypedArrays)return new g(this).buffer;for(var e=new Uint8Array(this.length),t=0,n=e.length;t=t.length||o>=e.length);o++)t[o+n]=e[o];return o}function M(e){try{return decodeURIComponent(e)}catch(e){return String.fromCharCode(65533)}}function N(e,t){D("number"==typeof e,"cannot write a non-number as a number"),D(0<=e,"specified a negative value for writing an unsigned value"),D(e<=t,"value is larger than maximum value for type"),D(Math.floor(e)===e,"value has a fractional component")}function Y(e,t,n){D("number"==typeof e,"cannot write a non-number as a number"),D(e<=t,"value larger than maximum allowed value"),D(n<=e,"value smaller than minimum allowed value"),D(Math.floor(e)===e,"value has a fractional component")}function F(e,t,n){D("number"==typeof e,"cannot write a non-number as a number"),D(e<=t,"value larger than maximum allowed value"),D(n<=e,"value smaller than minimum allowed value")}function D(e,t){if(!e)throw new Error(t||"Failed assertion")}g._augment=function(e){return e._isBuffer=!0,e._get=e.get,e._set=e.set,e.get=L.get,e.set=L.set,e.write=L.write,e.toString=L.toString,e.toLocaleString=L.toString,e.toJSON=L.toJSON,e.copy=L.copy,e.slice=L.slice,e.readUInt8=L.readUInt8,e.readUInt16LE=L.readUInt16LE,e.readUInt16BE=L.readUInt16BE,e.readUInt32LE=L.readUInt32LE,e.readUInt32BE=L.readUInt32BE,e.readInt8=L.readInt8,e.readInt16LE=L.readInt16LE,e.readInt16BE=L.readInt16BE,e.readInt32LE=L.readInt32LE,e.readInt32BE=L.readInt32BE,e.readFloatLE=L.readFloatLE,e.readFloatBE=L.readFloatBE,e.readDoubleLE=L.readDoubleLE,e.readDoubleBE=L.readDoubleBE,e.writeUInt8=L.writeUInt8,e.writeUInt16LE=L.writeUInt16LE,e.writeUInt16BE=L.writeUInt16BE,e.writeUInt32LE=L.writeUInt32LE,e.writeUInt32BE=L.writeUInt32BE,e.writeInt8=L.writeInt8,e.writeInt16LE=L.writeInt16LE,e.writeInt16BE=L.writeInt16BE,e.writeInt32LE=L.writeInt32LE,e.writeInt32BE=L.writeInt32BE,e.writeFloatLE=L.writeFloatLE,e.writeFloatBE=L.writeFloatBE,e.writeDoubleLE=L.writeDoubleLE,e.writeDoubleBE=L.writeDoubleBE,e.fill=L.fill,e.inspect=L.inspect,e.toArrayBuffer=L.toArrayBuffer,e}}).call(this,O("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},O("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/buffer/index.js","/node_modules/gulp-browserify/node_modules/buffer")},{"base64-js":2,buffer:3,ieee754:11,lYpoI2:10}],4:[function(l,d,e){(function(e,t,u,n,r,o,i,a,s){var u=l("buffer").Buffer,f=4,c=new u(f);c.fill(0);d.exports={hash:function(e,t,n,r){return u.isBuffer(e)||(e=new u(e)),function(e,t,n){for(var r=new u(t),o=n?r.writeInt32BE:r.writeInt32LE,i=0;ih?t=e(t):t.length>5]|=128<>>9<<4)]=t;for(var n=1732584193,r=-271733879,o=-1732584194,i=271733878,u=0;u>>32-a,n);var u,a}function d(e,t,n,r,o,i,u){return l(t&n|~t&r,e,t,o,i,u)}function h(e,t,n,r,o,i,u){return l(t&r|n&~r,e,t,o,i,u)}function p(e,t,n,r,o,i,u){return l(t^n^r,e,t,o,i,u)}function g(e,t,n,r,o,i,u){return l(n^(t|~r),e,t,o,i,u)}function y(e,t){var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}b.exports=function(e){return f.hash(e,c,16)}}).call(this,w("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},w("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/md5.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{"./helpers":4,buffer:3,lYpoI2:10}],7:[function(e,l,t){(function(e,t,n,r,o,i,u,a,s){var f,c;c=function(e){for(var t,n=new Array(e),r=0;r>>((3&r)<<3)&255;return n},l.exports=f||c}).call(this,e("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/rng.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{buffer:3,lYpoI2:10}],8:[function(l,d,e){(function(e,t,n,r,o,i,u,a,s){var f=l("./helpers");function c(e,t){e[t>>5]|=128<<24-t%32,e[15+(t+64>>9<<4)]=t;for(var n,r,o,i,u,a=Array(80),s=1732584193,f=-271733879,c=-1732584194,l=271733878,d=-1009589776,h=0;h>16)+(t>>16)+(n>>16)<<16|65535&n}function E(e,t){return e<>>32-t}d.exports=function(e){return f.hash(e,c,20,!0)}}).call(this,l("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},l("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/sha.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{"./helpers":4,buffer:3,lYpoI2:10}],9:[function(l,d,e){(function(e,t,n,r,o,i,u,a,s){function B(e,t){var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}function L(e,t){return e>>>t|e<<32-t}function f(e,t){var n,r,o,i,u,a,s,f,c,l,d=new Array(1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298),h=new Array(1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225),p=new Array(64);e[t>>5]|=128<<24-t%32,e[15+(t+64>>9<<4)]=t;for(var g,y,w,b,m,v,_,E,I=0;I>>10),p[A-7]),(_=p[A-15],L(_,7)^L(_,18)^_>>>3)),p[A-16]),c=B(B(B(B(f,L(v=u,6)^L(v,11)^L(v,25)),(m=u)&a^~m&s),d[A]),p[A]),l=B(L(b=n,2)^L(b,13)^L(b,22),(g=n)&(y=r)^g&(w=o)^y&w),f=s,s=a,a=u,u=B(i,c),i=o,o=r,r=n,n=B(c,l);h[0]=B(n,h[0]),h[1]=B(r,h[1]),h[2]=B(o,h[2]),h[3]=B(i,h[3]),h[4]=B(u,h[4]),h[5]=B(a,h[5]),h[6]=B(s,h[6]),h[7]=B(f,h[7])}return h}var c=l("./helpers");d.exports=function(e){return c.hash(e,f,32,!0)}}).call(this,l("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},l("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/sha256.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{"./helpers":4,buffer:3,lYpoI2:10}],10:[function(e,c,t){(function(e,t,n,r,o,i,u,a,s){function f(){}(e=c.exports={}).nextTick=function(){var e="undefined"!=typeof window&&window.setImmediate,t="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(e)return function(e){return window.setImmediate(e)};if(t){var n=[];return window.addEventListener("message",function(e){var t=e.source;t!==window&&null!==t||"process-tick"!==e.data||(e.stopPropagation(),0>1,c=-7,l=n?o-1:0,d=n?-1:1,h=e[t+l];for(l+=d,i=h&(1<<-c)-1,h>>=-c,c+=a;0>=-c,c+=r;0>1,d=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,h=r?0:i-1,p=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,u=c):(u=Math.floor(Math.log(t)/Math.LN2),t*(s=Math.pow(2,-u))<1&&(u--,s*=2),2<=(t+=1<=u+l?d/s:d*Math.pow(2,1-l))*s&&(u++,s/=2),c<=u+l?(a=0,u=c):1<=u+l?(a=(t*s-1)*Math.pow(2,o),u+=l):(a=t*Math.pow(2,l-1)*Math.pow(2,o),u=0));8<=o;e[n+h]=255&a,h+=p,a/=256,o-=8);for(u=u<0&&void 0!==arguments[0]&&arguments[0],n="";n=x?"hs-pro-plus":N?"hs-pro":"hs",x?U.divLogo.addClass("navbar-pro-plus-logo"):U.divLogo.removeClass("navbar-pro-plus-logo"),U.divLogo.parent().data("data-logo",n).attr("data-logo",n),U.divLogo.parent().data("data-logo-transparent",e).attr("data-logo-transparent",e)}function c(){D.add("mobileTabs",new y.ChildController({type:"controllers/MobileTabBar",namespace:k.get(),register:{bubble:o}}),!0),M.updateController("mobileTabs",{$dom:U.divNavbarMobile,data:{pro:N}})}function u(){R.newsFeedDropdown||(D.get("newsFeed")||D.add("newsFeed",new y.ChildController({type:"controllers/NewsFeedDropdown",namespace:k.get(),register:{bubble:o}})),M.updateController("newsFeed",{$dom:U.liNewsFeed}),R.newsFeedDropdown=!0)}function p(){R.messagesDropdown||(D.get("conversations")||D.add("conversations",new y.ChildController({type:"controllers/ConversationsDropdown",namespace:k.get(),register:{bubble:o}})),M.updateController("conversations",{$dom:U.liMessages}),R.messagesDropdown=!0)}function m(){R.agentsDropdown||(D.add("agents",new y.ChildController({type:"controllers/AgentsDropdown",namespace:k.get(),register:{bubble:o}}),!0),M.updateController("agents",{$dom:U.liAgents,data:{pro:N}}),R.agentsDropdown=!0)}function g(){R.meDropdown||(D.add("currentUser",new y.ChildController({type:"controllers/CurrentUserDropdown",namespace:k.get(),register:{bubble:o}}),!0),M.updateController("currentUser",{$dom:U.liCurrentUser}),R.meDropdown=!0)}function v(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];R.brand||(D.add("brand",new y.ChildController({type:"controllers/BrandItem",namespace:k.get(),register:{bubble:o}}),!0),w.getIDXBrand(function(n){var o=n;if(0!==(null===o||void 0===o?void 0:o.id)||3433!==I.brand.id){var r=3433===I.brand.id&&(null===o||void 0===o?void 0:o.id)>=0?o:I.brand;M.updateController("brand",{$dom:U.divBrandLogo,data:{brand:r,inverse:e}}),e||U.divBrandLogo.css({backgroundColor:"#ffffff"}),r.primaryColor&&U.nav.parents("nav").css("border-top-color",r.primaryColor),R.brand=!0}}))}function f(){R.proPlusDropdown||(D.add("proPlus",new y.ChildController({type:"controllers/Header/ProPlusDropdown",namespace:k.get(),register:{bubble:o}}),!0),M.updateController("proPlus",{$dom:U.liProPlus,data:{}}),R.proPlusDropdown=!0)}function b(){R.impersonationHeader||w.getCurrentUser(function(e){var n,r;null!==e&&void 0!==e&&null!==(n=e.user)&&void 0!==n&&null!==(r=n.permissions)&&void 0!==r&&r.homeSnapAdminTools&&(w.getImpersonation(function(n){if(n){var r,a=$("").addClass("bg-sold");M.$dom.addClass("impersonating-user"),U.nav.prepend(a),a.css({"border-bottom":"5px solid ".concat((null===(r=e.user.brand)||void 0===r?void 0:r.primaryColor)||"#006DC7")}),D.add("impersonationHeader",new y.ChildController({type:"controllers/ImpersonationHeader",namespace:k.get(),register:{bubble:o}})),M.updateController("impersonationHeader",{$dom:a,data:{impersonatedUser:n}})}}),R.impersonationHeader=!0)},!0)}function h(e){D.add("stickyNotification",new y.ChildController({type:"controllers/StickyNotification",namespace:k.get(),register:{bubble:o}}),!0);var n={};e&&(n={colorClass:e.colorClass,showIcon:e.showIcon,icon:e.icon,text:e.text,delayTime:e.delayTime}),M.updateController("stickyNotification",{$dom:U.divStickyNotification,data:n})}function C(e,n){if("window.scroll"===e&&H.transparent&&U&&I&&(n.fold.top>51?(U.nav.addClass("affix"),l(!1),R.brand&&(D.get("brand").event("updateLogo",{transparent:!1}),U.divBrandLogo.css("backgroundColor","#ffffff"))):0===n.fold.top&&(U.nav.removeClass("affix"),l(!0),R.brand&&(D.get("brand").event("updateLogo",{transparent:!0}),U.divBrandLogo.css("backgroundColor","transparent")))),"window.newSize"===e&&n&&n.size&&("xs"===n.size.new||"xs"===n.size.previous)&&d(n.size.new),"stickyNotification.show"===e)return void h(null===n||void 0===n?void 0:n.notificationSettings);"headerBrand.showByTenX"!==e||q||(q=!0,s(!0)),D.event(e,n)}var w=e("Application"),y=e("ControllerObjects"),B=e("Utilities");e("bootstrap");var k=new y.Unique(n),S=new y.Callbacks,D=new y.ChildControllerManager,M=new y.StateManager(D);D.add("search",new y.ChildController({type:"controllers/MultiAreaSearch/Manager",namespace:k.get(),register:{bubble:o}}));var U,T,L,N,x,A,P,F={template:new y.Getter({namespace:k.get(),template:{url:"controllers/Header.html",dom:["nav","divContainer","formSearch","aNavbarBrand","liMyAgent","btnMyAgent","liRegister","aRegister","liSignIn","aSignIn","aMobileSignUp","liAgents","liNewsFeed","liMessages","liCurrentUser","liProPlus","divBrandLogo","divMobileSignUp","divNavbarMobile","divLogo","divStickyNotification"]}})},I={},H={simple:!1,fluid:!1,transparent:!1,search:!0,hide:!1,commuteTimeBanner:!1},z=!0,R={newsFeedDropdown:!1,messagesDropdown:!1,agentsDropdown:!1,meDropdown:!1,brand:!1,proPlusDropdown:!1,impersonationHeader:!1},q=!1,O=3433,j=B.coStarBrand.is("citysnap"),E={on:function(){U.nav.find("div.main-navbar-hs").addClass("bs4--d-none").removeClass("bs4--d-flex")},off:function(){U.nav.find("div.main-navbar-hs").addClass("bs4--d-flex").removeClass("bs4--d-none")}},X={on:function(){U&&U.divContainer.hasClass("container")&&U.divContainer.addClass("container-fluid").removeClass("container")},off:function(){U&&U.divContainer.hasClass("container-fluid")&&U.divContainer.addClass("container").removeClass("container-fluid")}},G={on:function(){M.$dom.find("nav").addClass("transparent-nav"),l(!0),R.brand&&(D.event("updateLogo",{transparent:!0}),U.divBrandLogo.css("backgroundColor","transparent"))},off:function(){M.$dom.find("nav").removeClass("transparent-nav"),l(!1),R.brand&&(D.event("updateLogo",{transparent:!1}),U.divBrandLogo.css("backgroundColor","#ffffff"))}},J={on:function(){U.formSearch.show(),U.aNavbarBrand.find("svg").addClass("bs4--d-lg-none").removeClass("hidden"),U.divLogo.addClass("bs4--d-none bs4--d-lg-block")},off:function(){U.formSearch.hide(),U.aNavbarBrand.find("svg").removeClass("bs4--d-lg-none").addClass("hidden"),U.divLogo.removeClass("bs4--d-none bs4--d-lg-block")}},K={on:function(){M.$dom.hide()},off:function(){M.$dom.show()}},Q={on:function(){D.get("search").event("commuteTimeBanner.status",!0)},off:function(){D.get("search").event("commuteTimeBanner.status",!1)}};return w.getAppMode(function(e){B.themes.set(e)}),{update:r,restore:function(e){M.restore(e,a)},uninit:function(){D.uninit()},getState:M.getState.bind(M),register:S.register.bind(S),event:C}}});//# sourceMappingURL=https://assets.homesnap.com/app/js_min/controllers/Header.js.map?hash=472dccee1e085f50bc5d3c4e6f25b97ddefine("controllers/Footer",["require","ControllerObjects","Application"],function(e){return function(t){function n(e){c.call("bubble",e)}function o(e){s.update(e),r()}function r(){p=void 0;var e=(new Date).getFullYear();s.$dom&&f.get({$dom:s.$dom,data:{hide:s.get("hide",!1),year:e,showIDXDisclaimer:s.get("showIDXDisclaimer")}})}function a(e){var t=e.$dom,o=e.data;t.divContainer.find("a").on("click",function(e){var t=$(e.target).attr("href"),o="_blank"==$(e.target).attr("target")||$(e.target).data("ignore");if(t&&-1===t.indexOf("http")&&-1===t.indexOf("mailto:")&&!o)return n({type:"url.unhandled",url:t}),!1}),t.aFooterRegister.off("click").on("click",function(e){return n({type:"account.mode",data:"default"}),!1}),t.aDownloadMobileApp.off("click").on("click",function(e){return n({type:"account.mode",data:"app"}),!1}),l.getCurrentUser(function(e){var o,r=e.user;r&&r.registrationStatus&&!r.registrationStatus.notRegistered&&(t.divSupport.removeClass("bs4--d-none"),t.aFooterRegister.addClass("bs4--d-none")),null!==r&&void 0!==r&&null!==(o=r.permissions)&&void 0!==o&&o.paidAgent?(t.spanSupportPhone.removeClass("bs4--d-none"),t.aFindAnAgent.off("click").on("click",function(e){return n({type:"url.unhandled",url:"/agents"}),!1}).attr("href","/agents")):t.aFindAnAgent.off("click").on("click",function(e){return n({type:"account.mode",data:"myAgent"}),!1})},!0),p=function(e){l.getIDXBrand(function(n){e&&!n&&o.showIDXDisclaimer&&t.idxDisclaimer.removeClass("bs4--d-none")})},p(),t.aDoNotSell.on("click",function(e){return n({type:"url.unhandled",url:$(e.currentTarget).attr("href")}),!1}),s.updateController("seoFooter",{$dom:e.$dom.divSeo,data:{}})}var i=e("ControllerObjects"),l=e("Application"),d=new i.Unique(t),c=new i.Callbacks,u=new i.ChildControllerManager,s=new i.StateManager(u,{hide:!0});u.add("seoFooter",new i.ChildController({type:"controllers/SeoFooter",namespace:d.get(),register:{bubble:n}}));var p,f=new i.Getter({namespace:d.get(),success:function(e){try{a(e)}catch(e){throw s&&console.info(s),e}},template:{url:"controllers/Footer.html",dom:["divSeo","divContainer","idxDisclaimer","aFooterRegister","aDownloadMobileApp","divSupport","spanSupportPhone","aSupportEmail","aFindAnAgent","aDoNotSell"]}});return{update:o,restore:function(e){s.restore(e,r)},uninit:function(){u.uninit()},getState:s.getState.bind(s),register:c.register.bind(c),event:function(e,t){"headerBrand.showByTenX"===e&&p&&p(!0),u.event(e,t)}}}});//# sourceMappingURL=https://assets.homesnap.com/app/js_min/controllers/Footer.js.map?hash=9d33811c6675575b12ff2844acf24bb0define("controllers/generic",["require","ControllerObjects","Objects","controllers/Variable","Application"],function(e){return function(t){function r(e){b.call("bubble",e)}function o(e){p.update(e),n()}function n(){C?a():p.$dom&&m.content.get({$dom:p.$dom,data:{}})}function a(e){e&&e.$dom&&(C=e.$dom),p.updateController("header",{$dom:C.divHeader,data:p&&p.controllers&&p.controllers.header?p.controllers.header.data:{}}),p.updateController("footer",{$dom:C.divFooter,data:p&&p.controllers&&p.controllers.footer?p.controllers.footer.data:{}}),p.updateController("content",p.get("name"),{$dom:C.divContent,data:p&&p.controllers&&p.controllers.content?p.controllers.content.data:{}}),h.done(function(){v&&v.registrationStatus&&v.registrationStatus.registered&&C.divFooter.addClass("user-logged-in"),v&&v.brand&&C.divFooter.addClass("user-has-brand")}),C.skipNav.off().on("click keyup",l)}function l(e){return("click"===e.type||"keyup"===e.type&&"Enter"===e.key)&&($("html,body").animate({scrollTop:C.divContent.offset().top},350),C.divContent.attr("tabindex","0").trigger("focus"),C.divContent.removeAttr("tabindex")),!1}function i(){g.uninit()}function d(e,t){g.event(e,t)}var c=e("ControllerObjects"),s=(e("Objects"),e("controllers/Variable")),u=e("Application"),f=new c.Unique(t),b=new c.Callbacks,g=new c.ChildControllerManager,p=new c.StateManager(g);g.add("header",new c.ChildController({type:"controllers/Header",namespace:f.get(),register:{bubble:r}})),g.add("footer",new c.ChildController({type:"controllers/Footer",namespace:f.get(),register:{bubble:r}})),g.add("content",new c.ChildController({type:s,namespace:f.get(),register:{bubble:r}}));var C,v,m={content:new c.Getter({namespace:f.get(),template:{url:"controllers/generic.html",dom:["divHeader","divContent","divFooter","skipNav"]},success:function(e){try{a(e)}catch(e){throw p&&console.info(p),e}},failure:function(){console.log("addGetter failure")}})},h=function(){var e=$.Deferred();return u.getCurrentUser(function(t){v=t.user,e.resolve()}),e}();return{update:o,restore:function(e){p.restore(e,n)},uninit:i,getState:p.getState.bind(p),register:b.register.bind(b),event:d}}});//# sourceMappingURL=https://assets.homesnap.com/app/js_min/controllers/generic.js.map?hash=e0b946063f8921924b59330432cea1e7define("controllers/Property/PropertyAddressItem",["require","ControllerObjects","Objects","Utilities","Application","sly","jquery","lodash"],function(e){return function(t){function r(){S=void 0,B=void 0,I=void 0,k=0,x=-1,C=!1,P=void 0,A=void 0,T=void 0,D=0,G={paging:!1,corner:!1,statusBar:!0,price:!0,units:{total:null,listings:null},openHouses:!1,address:!1,gradient:!0,statusText:!1,statusCssClass:null,detailsButton:!1,buildingSummary:!1,buildingUnit:!1,priceAddressGroup:!1,placardVersion:1},L=void 0,F=H.getBrowser()}function i(){G.corner=V.get("showCorner",!1),G.statusBar=V.get("showStatusBar",!0),G.statusCssClass=V.get("statusCssClass",!1),G.price=!V.get("showAddress",!1)&&V.get("showPrice",!0),G.placardVersion=V.get("placardVersion",1);var e=V.get("showDistance",null);if(G.price&&B.propertyCount&&B.propertyCount.raw&&B.propertyCount.raw>1?(G.openHouses=B.listing&&(B.listing.isOpenHouse||B.listing.isAgentOpen),G.units.total=B.propertyCount.commas,G.buildingSummary=!0,V.set("paging",!1)):G.price||(G.units=!1),G.address=B.address&&V.get("showAddress",!1)&&!G.price,V.get("showAddressAndPrice",!1)&&(G.address=!0,G.price=!0),G.gradient=(G.price||G.address||G.units.total)&&!(2===G.placardVersion),V.get("showAgo",!1)&&B.listing&&B.listing.ago)G.statusText=B.listing.ago;else if(e&&e.latitude&&e.longitude&&B.latitude&&B.longitude){var t=U.map.getDistance(e.latitude,e.longitude,B.latitude,B.longitude);t>0&&(G.statusText="".concat(U.string.getNumber(t).decimal1," Miles Away"))}else V.get("showUnit",!1)&&B.address&&B.address.unitNumber&&(G.statusText=B.address.unitNumber.string);V.get("statusCssClass",null)&&B.customStatus&&""!==B.customStatus&&(G.statusText=B.customStatus),G.paging=V.get("paging",!0),(V.get("link",!0)||V.get("detailsButton"))&&(G.detailsButton=!0),(G.corner||G.address)&&(G.paging=!1),G.priceAddressGroup=V.get("showPriceAddressGroup",!1),(G.units.total||G.units.listings)&&(G.price=!1,G.address=!1,G.statusBar=!1,G.statusText=!1),V.get("showBuildingUnit",!1)&&B.address&&B.address.unitNumber&&(G.buildingUnit="Unit ".concat(B.address.unitNumber.string),G.gradient=!0),V.set("paging",G.paging)}function a(e){"propertyFavoriteStatus.updated"===(null===e||void 0===e?void 0:e.type)&&h(e.data),O.call("bubble",e)}function s(e){V.update(e),r(),P=V.get("$container"),!1===V.get("lazy")?o():setTimeout(g,100)}function o(){try{if(V.requireDom(),!V.get("propertyAddressItem")&&!V.get("ids"))throw new Error("Requires state.data.propertyAddressItem OR state.data.ids")}catch(e){throw e}if(V.get("propertyAddressItem"))n();else{var e=V.get("ids");X.itemByIds.get({data:{propertyAddressID:e.propertyAddressID||0,propertyID:e.propertyID||0,listingID:e.listingID||0}})}}function n(e){if(e&&e.data&&V.set("propertyAddressItem",e.data),B=V.get("propertyAddressItem")){if(Array.isArray(B)&&B[0]){var t=B.filter(function(e){return e.listing&&(e.listing.isOpenHouse||e.listing.isAgentOpen)});G.openHouses=t.length===B.length,B.length>1&&(G.units.listings=U.string.getNumber(B.length).commas,G.units.total=M.get(B[0],"building.propertyCount.commas"),G.buildingSummary=!0,V.set("paging",!1)),V.set("propertyAddressItem",B[0]),B=B[0]}i(),G.statusBar&&!B.listing?H.getCurrentUser(function(e){var t,r,i;if(null===(t=(e.user||{}).currentDetails)||void 0===t?void 0:null===(r=t.products)||void 0===r?void 0:null===(i=r.pro)||void 0===i?void 0:i.availableForUse)if(B.attributes&&B.attributes.likelihoodToList&&!B.attributes.likelihoodToList.none)if(B.attributes.likelihoodToList.leastLikely)d();else{var a="",s="likely-status";B.attributes.likelihoodToList.mostLikely&&(a="Most ",s="most-likely-status"),a+="Likely To List",d({title:a,customClass:s})}else d();else d()}):d()}}function l(){(B=V.get("propertyAddressItem"))&&V&&V.$dom&&V.$dom.html("").concat(B.address.fullStreetAddress,"").concat(B.address.cityStateZip,""))}function d(e){if(D++,(I=Math.floor(V.$dom.width()))>0){var t=2===G.placardVersion?{}:c(I);X.template.get({$dom:V.$dom,data:{item:B,paging:G.paging,link:V.get("link",!0),corner:G.corner,statusBar:G.statusBar,price:G.price,units:G.units,openHouses:G.openHouses,address:G.address,gradient:G.gradient,statusText:G.statusText,statusCssClass:G.statusCssClass,fonts:t,detailsButton:G.detailsButton,priceAddressGroup:G.priceAddressGroup,openInNewTab:V.get("openInNewTab",!1),puppeteer:!(!Homesnap||!Homesnap.puppeteer),singleFamilyResidence:!(!(B&&B.sPropertyType2&&B.sPropertyType2.raw)||1!==B.sPropertyType2.raw&&2!==B.sPropertyType2.raw&&4!==B.sPropertyType2.raw&&64!==B.sPropertyType2.raw),buildingSummary:G.buildingSummary,buildingUnit:G.buildingUnit,likelihoodStatus:e,secondaryBanner:V.get("secondaryBanner",!1),showFavoriteIcon:V.get("showFavoriteIcon",!1),showAddressAndPrice:V.get("showAddressAndPrice",!1),placardVersion:G.placardVersion,keyStats:y(B,G.placardVersion),siteRootUrl:q?window.Homesnap.siteRootUrl:"https://www.homesnap.com",onMap:V.get("onMap")}}),C=!0}else D<10&&setTimeout(d,100)}function u(r){var i,s,o,n=r.data||{};S=r.$dom;var l={},d=n.item||V.get("propertyAddressItem")||B,u=r.$dom;if(!d)throw void 0!==V&&null!==V&&window.TrackJS&&window.TrackJS.console&&window.TrackJS.console.log({pa:d,state:V}),new Error("PropertyAddressItem controller: No Property address item");if(!u)throw void 0!==V&&null!==V&&window.TrackJS&&window.TrackJS.console.log({state:V}),new Error("PropertyAddressItem controller: No $dom");if(G.buildingSummary&&u.buildingPageLink.on("click mousedown mouseup dblclick",function(){return a({type:"url.unhandled",url:d.building.url,data:d.building}),!1}),n.secondaryBanner&&S.divLikelihoodStatusBar.length){var c=S.divLikelihoodStatusBar.find("div").find("div");c.html(n.secondaryBanner.text).css("--banner-bg-color",n.secondaryBanner.color).addClass("secondary-banner-bar"),2===n.placardVersion&&c.attr("title",n.secondaryBanner.text),n.secondaryBanner.textColor&&c.css("--banner-text-color",n.secondaryBanner.textColor)}if(V.get("link",!0)&&d&&d.url){var g=V.get("href",null),m=g||d.url;u.aFrame.on("click",function(e){return!V.get("openInNewTab",!1)&&(a({type:"url.unhandled",url:m,data:g?null:B}),O.exists("click")&&O.call("click"),!1)}).attr("href",m)}if(d&&d.primaryImage&&!n.buildingSummary){var h=V.$dom.width(),y=d.primaryImage.mini;h>150&&(y=d.primaryImage.listing),h>384&&(y=d.primaryImage.large),Homesnap&&Homesnap.puppeteer?(u.liPrimary.css({"background-image":"url(".concat(y,")")}),u.imgFinal.attr("HSPuppeteer-src",y)):(u.liPrimary.css({"background-image":"url(".concat(y,")")}),u.imgFinal.attr("src",y))}else if(null!==(i=d.building)&&void 0!==i&&i.imageUrl||d.skyView){var w=u.liPrimary[0],b="";if(!w)return!1;d.skyView?(b=d.skyView.imageUrl,w.style.setProperty("background-position","center center")):d.building.imageUrl&&(b=d.building.imageUrl.replace("/{size}/","/115/")),w.style.setProperty("background-size","cover"),w.style.setProperty("background-image","url(".concat(b,")"),"important")}else Homesnap&&!Homesnap.puppeteer&&e(["modules/StaticMap"],function(e){return!!e&&(e.get({$dom:u.liPrimary,type:d.status&&d.status.suppressGoogleStreetView?"satellite":"street",lat:d.latitude,lng:d.longitude,address:d.building?d.address:null}),!1)});if(n.paging||G.buildingSummary){I=Math.floor(u.aFrame.width()),u.ul.children("li").width(I),d&&d.secondaryImages&&(k=d.secondaryImages.length),void 0===L&&u.slyContainer.length?L=new window.Sly(u.slyContainer,{horizontal:1,itemNav:"basic",smart:1,mouseDragging:1,touchDragging:1,releaseSwing:1,swingSpeed:.1,scrollTrap:!0,speed:300,prevPage:u.iPrevious,nextPage:u.iNext,disabledClass:"slyDisabled",activeClass:"active",pagesBar:u.ulSliderPager,pageBuilder:function(e){return'

  • '.concat(e+1,"
  • ")}},{load:function(e){u.ulSliderPager.find("li").length>1?u.ulSliderPager.removeClass("hidden"):u.ulSliderPager.addClass("hidden")},move:function(e){var t,i;i=t=this.pos.cur=this.pos.end-I?this.pos.end-I-this.pos.cur:0,u.divOverlay.css("content").toLowerCase().indexOf("scroll")>-1&&2!==n.placardVersion&&(u.divOverlay.css("transform","translateX("+t+"px)"),r.data&&r.data.statusBar&&(u.divStatusBar.length>0&&u.divStatusBar.css("transform","translateX( ".concat(i,"px)")),u.divSecondaryStatusBar.length>0&&u.divSecondaryStatusBar.css("transform","translateX( ".concat(i,"px)")),u.divLikelihoodStatusBar.length>0&&u.divLikelihoodStatusBar.css("transform","translateX( ".concat(i,"px)"))));var a=Math.floor(this.pos.cur/I);a>x&&p(a,u),u.ulSliderPager.find(".active").prev().removeClass("dot_small_2").addClass("dot_small_1"),u.ulSliderPager.find(".active").prev().prev().removeClass("dot_small_1").addClass("dot_small_2"),u.ulSliderPager.find(".active").prev().prev().prevAll().removeClass("dot_small_2 dot_small_1"),u.ulSliderPager.find(".active").removeClass("dot_small_2 dot_small_1")},moveEnd:function(e){u.ulSliderPager.find(".active").nextAll().removeClass("dot_small_2").removeClass("dot_small_1")}}).init():"object"==typeof L&&"function"==typeof L.reload&&L.reload(),l=H.getBrowser();var C,P;V.get("noHoverEffect",!1)||u.aFrame.mouseenter(function(){C||R()}).mouseleave(function(){R.cancel()}),l.mouseover&&u.aFrame.mouseover(function(e){return P=!0,C||L.set("keyboardNavBy","pages"),!1}).mouseout(function(e){return P=!1,C||L.set("keyboardNavBy",0),!1}).mousedown(function(e){C=!0,_(document).on("mouseup.".concat(t),function(e){_(document).off("mouseup.".concat(t)),C=!1})}),u.iPrevious.add(u.iNext).on("click mousedown mouseup dblclick",function(e){return!1})}if(!l.iOS&&!l.android&&n.paging&&!V.get("onMap")){var A;V.$dom.on("touchstart",function(e){A={x:e.originalEvent.changedTouches[0].pageX,y:e.originalEvent.changedTouches[0].pageY},V.$dom.on("touchmove.".concat(t),function(e){var t={x:e.originalEvent.changedTouches[0].pageX,y:e.originalEvent.changedTouches[0].pageY};Math.abs(A.x-t.x)>Math.abs(A.y-t.y)&&e.preventDefault()}),V.$dom.on("touchend.".concat(t),function(e){V.$dom.off("touchmove.".concat(t)),V.$dom.off("touchend.".concat(t))})})}if(r.data&&r.data.statusBar&&(u.divSecondaryStatusBar.length>0||u.divLikelihoodStatusBar.length>0)){var T=u.divStatusBar.width(),D=0,F=0,$=u.divStatusBar.length>0?1:0;u.divSecondaryStatusBar.length>0&&(D=u.divSecondaryStatusBar.width(),$+=1),u.divLikelihoodStatusBar.length>0&&(F=u.divLikelihoodStatusBar.width(),$+=1);var z=Math.max(T,D,F);u.divStatusBar.css("width",z).attr("data-status-bar-count",$),D&&u.divSecondaryStatusBar.css("width",z).attr("data-status-bar-count",$),F&&u.divLikelihoodStatusBar.css("width",z).attr("data-status-bar-count",$),T=A.bottom+j,n=t.left>=A.right+j;i||a||s||n?D||l():o()}else l()}function m(){var e;null!==(e=B)&&void 0!==e&&e.id&&a({type:"listing.hover.show",data:{pa:B}})}function v(e,t){e&&e.spanFavorite.length&&t&&t.item&&(E.add("propertyFavorite",new $.ChildController({type:"controllers/Property/PropertyFavorite",namespace:N.get(),register:{bubble:a}}),!0),V.updateController("propertyFavorite",{$dom:e.spanFavorite,data:{propertyAddressItem:t.item,showText:!1}}))}function h(e){var t,r,i,a=(null===(t=B)||void 0===t?void 0:null===(r=t.listing)||void 0===r?void 0:r.id)===(null===e||void 0===e?void 0:null===(i=e.ids)||void 0===i?void 0:i.listingID),s=B&&!B.listing&&(null===e||void 0===e?void 0:e.ids)&&!e.ids.listingID&&B.propertyID===e.ids.propertyID,o=B&&!B.listing&&(null===e||void 0===e?void 0:e.ids)&&!e.ids.listingID&&!B.propertyID&&!e.ids.propertyID&&B.id===e.ids.propertyAddressID;(a||s||o)&&(!0===(null===e||void 0===e?void 0:e.favoriteStatus)?(B.status.raw|=1,B.status.isFavorited=!0):!1===(null===e||void 0===e?void 0:e.favoriteStatus)&&(B.status.raw&=-2,B.status.isFavorited=!1),V.get("propertyAddressItem")&&V.set("propertyAddressItem",B),v(S,{item:B}))}function y(e,t){var r=[];return e?(e.beds&&r.push({label:e.beds.label,value:e.beds.string}),e.baths&&r.push({label:e.baths.label,value:e.baths.string}),e.sqFt&&r.push({label:"Sq Ft",value:e.sqFt.string}),e.lotSize&&r.push({label:e.lotSize.label,value:e.lotSize.string}),e.yearBuilt&&r.push({label:"Year Built",value:e.yearBuilt}),r.slice(0,2===t?3:2)):r}function f(t,r){e(["modules/MLSIDXInfo"],function(e){e.getMLSInfo(t,function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.idxBits||{},i=e.features||{};if(t.showIdxLogo&&r.divIDXLogo.length){var s=_('1719 Military Street, Port Huron, MI, 48060 (1)').attr("src",e.brand.image.url.default).attr("alt",e.longName).attr("loading","lazy");s.addClass("bs4--img-fluid bs4--h-auto"),s.css({"aspect-ratio":e.brand.image.aspectRatio,"max-height":"40px",width:"auto","max-width":"75px"}),r.divIDXLogo.html(s).removeClass("bs4--d-none").addClass(" bs4--position-absolute").css({bottom:"18px",right:"14px"})}i.showByTenXOnHomesnap&&H.getCurrentUser(function(e){var t,r=(null===e||void 0===e?void 0:e.user)||{};null!==(t=r.permissions)&&void 0!==t&&t.mlsAgent||r.clientDetails||a({type:"reflect",name:"headerBrand.showByTenX"})})})})}function w(){if(S&&S.slyContainer.length&&V.get("paging",!1)&&V.$dom.width()){if(Math.floor(S.aFrame.width())!==I&&(I=Math.floor(S.aFrame.width()),S.ul.children("li").width(I),"object"==typeof L&&"function"==typeof L.reload)){var e=L.rel.centerItem;L.reload(),L.toCenter(e,!0)}}}function b(e,t){switch(e){case"$container.scroll":P||(P=t.$container),g(null,null,!0);break;case"window.newSize":case"window.resize":J(),g(t.$window,t.fold);break;case"modal.scroll":g(t.$window,t.fold,!0);break;case"window.scroll":g(t.$window,t.fold);break;case"dropdown.opened":g();break;case"propertyFavoriteStatus.updated":h(t)}E.event(e,t)}var S,B,I,k,x,C,P,A,T,D,F,L,$=e("ControllerObjects"),z=e("Objects"),U=e("Utilities"),H=e("Application"),_=(e("sly"),e("jquery")),M=e("lodash"),N=new $.Unique(t),O=new $.Callbacks,E=new $.ChildControllerManager,V=new $.StateManager(E,{}),X={template:new $.Getter({namespace:N.get(),success:function(e){try{u(e)}catch(e){throw void 0!==V&&null!==V&&console.info(V),e}},failure:function(){try{throw new Error("PropertyAddressItem controller: Unhandled Error")}catch(e){throw void 0!==V&&null!==V&&console.info(V),e}},template:{url:"controllers/Property/PropertyAddressItem.html",dom:["aFrame","slyContainer","ul","liPrimary",["liSecondary"],"divStatusBar","divSecondaryStatusBar","divOverlay","imgFinal","iPrevious","iNext","ulSliderPager","divLikelihoodStatusBar","buildingPageLink","spanFavorite","divIDXLogo"]}}),itemByIds:new $.Getter({namespace:N.get(),type:z.HSPropertyAddressItem,webService:"/service/PropertyAddresses/GetByIDs",success:function(e){try{n(e)}catch(e){throw void 0!==V&&null!==V&&console.info(V),e}},failure:function(){try{throw new Error("PropertyAddressItem controller: GetByIDs. Unhandled Webservice Error")}catch(e){throw void 0!==V&&null!==V&&console.info(V),e}}})},G={},q=U.coStarBrand.is("citysnap"),j=300,R=M.debounce(function(){m()},450),J=M.debounce(w,200,{maxWait:400});return{update:s,restore:function(e){V.restore(e,o)},uninit:function(){J.cancel(),E.uninit()},getState:V.getState.bind(V),register:O.register.bind(O),event:b}}});//# sourceMappingURL=https://assets.homesnap.com/app/js_min/controllers/Property/PropertyAddressItem.js.map?hash=029ef2f1414c76b194f39c2433f1ca8ddefine("controllers/Property/PropertyFavorite",["require","ControllerObjects","Objects","Application"],function(e){return function(t){function r(e){v.call("bubble",e)}function o(){try{p.requireDom(),p.require("propertyAddressItem"),p.optional("showText")}catch(e){throw e}y.template.get({$dom:p.$dom,data:{propertyAddressItem:p.get("propertyAddressItem"),showText:p.get("showText",!0)}})}function n(e){var t,r=e.$dom,o=e.data.propertyAddressItem,n={propertyAddressID:o.id,propertyID:o.propertyID?o.propertyID:0,listingID:null!==o&&void 0!==o&&null!==(t=o.listing)&&void 0!==t&&t.id?o.listing.id:null},s=g.get(!1,"favoriteItems",60),c=n.propertyAddressID;c+=n.propertyID?"::".concat(n.propertyID):"",c+=n.listingID?"::".concat(n.listingID):"",s&&(s.favorites.indexOf(c)>-1?a(!0,n,o,r,c,!1):s.notFavorites.indexOf(c)>-1&&a(!1,n,o,r,c,!1)),r.buttonFavorite.on("click",function(){return i(r,n,o,c),!1}),r.spanFavoriteText.on("click",function(){return i(r,n,o,c),!1})}function i(t,o,n,c){F.done(function(){return s.registrationStatus.registered?(!0===t.buttonFavorite.data("favorite-status")?y.unFavorite.get({data:o,success:function(e){e.data&&a(!1,o,n,t,c,!0)}}):y.favorite.get({data:o,success:function(r){!r.data||!0!==r.data.success&&!0!==r.data.alreadyFavorited||(a(!0,o,n,t,c,!0),e(["modules/FBDare"],function(e){void 0!==e&&e.fbDareEvent("InitiateCheckout",[o.listingID])})),"function"==typeof gtag&&gtag("event","listing_favorited")}}),!1):(r({type:"account.mode",callback:function(){d.getCurrentUser(function(e){var r,a;null!==e&&void 0!==e&&null!==(r=e.user)&&void 0!==r&&null!==(a=r.registrationStatus)&&void 0!==a&&a.registered&&i(t,o,n,c)},!0)}}),!1)})}function a(e,t,o,n,i,a){var s=g.get(!1,"favoriteItems",60);if(n.buttonFavorite.data("favorite-status",e).find("span").text(e?"star":"star_border"),n.buttonFavorite.attr("aria-label",e?"Click to Unfavorite":"Click to Favorite"),n.spanFavoriteText.text(e?"UnFavorite":"Favorite"),a){if(r({type:"reflect",name:"propertyFavoriteStatus.updated",data:{favoriteStatus:e,ids:t,propertyAddressItem:o}}),s){var c=s.favorites.indexOf(i),u=s.notFavorites.indexOf(i);c>-1&&s.favorites.splice([c],1),u>-1&&s.notFavorites.splice([u],1)}else s={favorites:[],notFavorites:[]};s[e?"favorites":"notFavorites"].push(i),g.set(!1,"favoriteItems",s)}!a&&!e&&s&&s.notFavorites.indexOf(i)>-1&&r({type:"favoriteProperty.remove",data:{favoriteStatus:e,ids:t,propertyAddressItem:o}})}var s,c=e("ControllerObjects"),u=e("Objects"),d=e("Application"),l=new c.Unique(t),v=new c.Callbacks,f=new c.ChildControllerManager,p=new c.StateManager(f,{}),y={template:new c.Getter({namespace:l.get(),success:function(e){try{n(e)}catch(e){throw p&&console.info(p),e}},failure:function(){throw p&&console.info(p),new Error("PropertyFavorite controller: Unhandled Error")},template:{url:"controllers/Property/PropertyFavorite.html",dom:["spanFavoriteText","buttonFavorite"]}}),favorite:new c.Getter({type:u.HSPropertyAddressesFavoriteErrorCodeEnum,webService:"/service/PropertyAddresses/Favorite_2",namespace:l.get(),success:function(e){try{n(e)}catch(e){throw p&&console.info(p),e}},failure:function(){try{throw new Error("PropertyFavorite controller: Favorite. Unhandled Webservice Error")}catch(e){throw void 0!==p&&null!==p&&console.info(p),e}},cache:{expire:0}}),unFavorite:new c.Getter({type:Boolean,webService:"/service/PropertyAddresses/Unfavorite",namespace:l.get(),success:function(e){try{n(e)}catch(e){throw p&&console.info(p),e}},failure:function(){try{throw new Error("PropertyFavorite controller: Unfavorite. Unhandled Webservice Error")}catch(e){throw void 0!==p&&null!==p&&console.info(p),e}},cache:{expire:0}})},g=new u.LocalStorage("Property/PropertyFavorite"),F=function(){var e=$.Deferred();return d.getCurrentUser(function(t){s=t.user,e.resolve()}),e}();return{update:function(e){p.update(e),o()},restore:function(e){p.restore(e,o)},uninit:function(){f.uninit()},getState:p.getState.bind(p),register:v.register.bind(v),event:function(e,t){f.event(e,t)}}}});//# sourceMappingURL=https://assets.homesnap.com/app/js_min/controllers/Property/PropertyFavorite.js.map?hash=b6192efd5cf931cf4f57144065c9eec7define("controllers/Variable",["require","ControllerObjects"],function(e){return function(n){function t(e,n){if((n||l&&l.name!=e)&&(l.uninit(),l=null),!l){var t={};c.hashTable.each(function(e,n){for(var r=0;r0&&F.length<1?(a({type:"url.unhandled",url:"/search",data:{type_:"HSSearchQuery",searchText:e}}),!1):z.get("multiArea",!1)?(a({type:"multiArea.submit"}),!1):(z.$dom.input.parent(".form-group").addClass("has-error"),!1)})}function o(){z.$dom.container.addClass("open")}function i(){z.$dom.container.removeClass("open")}function c(){i(),z.$dom.input.val("")}function l(e){var t=z.$dom.input.val().toLowerCase();t&&t.length&&t.length>0?q&&t===q&&!0!==e?o():!0===e?(w&&clearTimeout(w),d(t,e)):q&&t===q||(q=t,w&&clearTimeout(w),w=setTimeout(function(){d(t)},200)):(q="",s())}function u(e){var t=j.get(10);J.done(function(){if(Y){var t=Object.keys(Y).some(function(e){return Y[e].hasListingCarts}),a=Object.keys(Y).some(function(e){return Y[e].hasSavedSearches}),n=[];(t||a)&&(a&&n.push({type_:"SavedSearches"}),t&&n.push({type_:"ListingCarts"}),e.unshift({header:"MLS",items:n,divider:!0}))}}),!z.get("multiArea",!1)&&(t&&t.length>0||e&&e.length>0)?(t.length&&e.push({header:"Recent Searches",items:t}),z.get("commuteTimeBanner",!1)&&e.unshift({items:[{type_:"CommuteTimeBanner"}]}),N.template.get({$dom:z.$dom.ul,data:e})):i()}function s(){var e=[];K&&e.push({items:[{latitude:null,longitude:null,type_:"HSIPLocation"}],divider:!0}),N.savedSearchesList.get({data:{skip:0,take:6},success:function(t){t.data&&t.data.length>0&&(6===t.data.length?(_=!0,t.data.pop()):_=!1,e.push({header:"Saved Searches",items:t.data,divider:!0})),u(e)}})}function d(e,t){if(I.handlebars.getPartialHTML("hsLoadingGraphic",function(e){z.$dom.ul.html('

    '.concat(e,"

    "))}),z.$dom&&z.$dom.ul){var a;M&&(a={headers:{HSLocation:"lat=".concat(M.latitude.toString(),"&lng=").concat(M.longitude.toString())}}),z.get("multiArea",!1)?N.autocomplete.get({data:{text:e,polygonType:1,skip:0,take:8,submit:!0===t,geographyFilters:F,latitude:B,longitude:H},webServiceOptions:a,pass:e}):N.data.get({data:{text:e,polygonType:1,skip:0,take:8,submit:!0===t},webServiceOptions:a,pass:e})}}function p(e){var t=[];return e.length&&e.forEach(function(e){if(!h(e.item)){var a,n=null!==(a=e.item)&&void 0!==a?a:e;e.status&&(n.autocompleteStatus=e.status),t.push(n)}}),t}function h(e){return F.filter(function(t){return"object"==typeof e&&(t.Id===e.entityID||t.Id===e.id)}).length>0}function m(e){if(e&&e.pass&&e.pass===q){var t=[],a=e.data,n=F.length>0;if(K&&t.push({items:[{latitude:null,longitude:null,type_:"HSIPLocation"}],divider:!0,multiAreaReset:n}),a)if(a.recent&&a.recent.length)t.push({header:"Recent Searches",items:a.recent,multiAreaReset:n});else{if(a.savedSearches&&a.savedSearches.length&&t.push({header:"Saved Searches",items:p(a.savedSearches),multiAreaReset:n}),a[0]&&a[0].type_&&"HSSavedSearch"===a[0].type_&&t.push({header:"Saved Searches",items:a.savedSearches,multiAreaReset:n}),a.areas&&a.areas.length&&F.length<5&&t.push({header:"Places",items:p(a.areas)}),a.streetAreas&&a.streetAreas.length&&F.length<5&&t.push({header:"Streets",items:p(a.streetAreas)}),a.properties&&a.properties.length){var r=[],o=[];a.properties.forEach(function(e){var t;e.building||null!==e&&void 0!==e&&null!==(t=e.item)&&void 0!==t&&t.building?o.push(e):r.push(e)}),r.length&&t.push({header:"Homes",items:p(r),multiAreaReset:n}),o.length&&t.push({header:"Buildings",items:p(o),multiAreaReset:n})}a.schools&&a.schools.length&&F.length<5&&t.push({header:"Schools",items:p(a.schools)})}z.get("commuteTimeBanner",!1)&&t.unshift({items:[{type_:"CommuteTimeBanner"}]}),F.length>=1&&t.unshift({items:[{name:"".concat(F.length>=5?"Sorry, you can only":"You can"," search up to 5 areas"),type_:"notClickable"}]});for(var i=0;i-1&&(a.searchMode=2);var n=/p_\(?(\d{2}),\d+(\)\(\d{2},\d+)*/i,r=e.match(n);return"26"!==(null===r||void 0===r?void 0:r[1])||r[2]?e.indexOf("/cp_")>-1?a.polygonType=2:e.indexOf("/ct_")>-1?a.polygonType=1:"21"!==(null===r||void 0===r?void 0:r[1])||r[2]||(a.polygonType=4):a.polygonType=3,e.indexOf("hm_")>-1&&(a.heatmapOption=e.match(/.*\/hm_(\w*)_\d*\/.*/i)[1],a.searchMode=4),"function"!=typeof t?a:(t(a),!1)}function y(e){return!z.get("multiArea",!1)&&(D.getDeviceSize(function(t){var n=e.heatmapOption?R.getHeatMapEnum(e.heatmapOption):null;a({type:"trackUserEvent",data:{webServiceName:"analytics",serviceMethod:"TrackEvent",data:{eventType:"PropertiesAndAreasSearched",data:{utm:{medium:"web-".concat(t)},searchType:e.searchType,polygonType:e.polygonType,searchMode:e.searchMode||1,heatmapOption:n,autocompleteSourceType:e.autocompleteSourceType}}}})}),!1)}function b(){G.add("listingCarts",new O.ChildController({type:"controllers/MLS/Integrations/ListingCarts",namespace:U.get(),register:{bubble:a}}),!0),z.updateController("listingCarts",{data:{accounts:Y}})}function T(){G.add("savedSearches",new O.ChildController({type:"controllers/MLS/Integrations/SavedSearches",namespace:U.get(),register:{bubble:a}})),z.updateController("savedSearches",{data:{accounts:Y}})}function k(){G.uninit()}function A(e,t){var a;switch(e){case"location.new":t.lat&&t.lng&&(M={latitude:t.lat,longitude:t.lng,type_:"HSIPLocation"});break;case"commuteTimeBanner.status":z.set("commuteTimeBanner",t);break;case"geographies.update":if(Array.isArray(null===(a=t.data)||void 0===a?void 0:a.id)){var n={21:1,26:2,51:3},r=[],o=t.data,i=o.id,c=o.longitude,l=o.latitude;i.forEach(function(e){var t;null!==e&&void 0!==e&&null!==(t=e[2])&&void 0!==t&&t.hasNoPolygon&&(Q=!0),r.push({Type:n[e[0]],Id:e[1]})}),F=r,B=l&&c?l:null,H=l&&c?c:null}return!1}return G.event(e,t),!1}var C,w,M,L,_,B,H,O=e("ControllerObjects"),x=e("Objects"),D=e("Application"),I=e("Utilities"),R=e("SearchDefinitions"),j=e("modules/SearchRecentSearches"),P=e("modules/MLSAccounts"),U=new O.Unique(t),E=new O.Callbacks,G=new O.ChildControllerManager,z=new O.StateManager(G),N={data:new O.Getter({namespace:U.get(),type:x.HSSearchResult,webService:"/service/Misc/Search",failure:function(){"object"==typeof z&&console.info(z)},cache:{expire:2},success:m}),autocomplete:new O.Getter({namespace:U.get(),type:x.HSAutocompleteResult,webService:"/service/Misc/Autocomplete",failure:function(){"object"==typeof z&&console.info(z)},cache:{expire:2},success:m}),savedSearchesList:new O.Getter({namespace:U.get(),type:[x.HSSavedSearch],webService:"/service/SavedSearches/List",failure:function(){"object"==typeof z&&console.info(z)},cache:{expire:2}}),template:new O.Getter({namespace:U.get(),success:function(e){try{v(e)}catch(e){"object"==typeof z&&console.info(z)}},template:{url:"controllers/SearchDropdown.html",dom:["liMoreSavedSearches","liListingService"]}})},q="",F=[],Q=!1;D.getLocation(function(e){e&&(M=e)});var Y={},J=function(){var e=$.Deferred();return P.getAccounts(function(t){Y=t,e.resolve()}),e}(),K=!(null===(C=navigator)||void 0===C||!C.geolocation);return{update:n,restore:function(e){z.restore(e,r)},uninit:k,getState:z.getState.bind(z),register:E.register.bind(E),event:A}}});//# sourceMappingURL=https://assets.homesnap.com/app/js_min/controllers/SearchDropdown.js.map?hash=fe0916444e058e927889b8409c1f498ddefine("controllers/UserItem",["require","ControllerObjects"],function(e){return function(t){function n(e){s.call("bubble",e)}function r(e){d.update(e),a()}function a(){var e;try{d.requireDom(),d.require("userItem"),d.require("userItem","IUserItem"),d.optional("link"),d.optional("useConsumerViewDisplayPhone"),d.optional("showUserLocation")}catch(e){throw e}var t,n=d.get("userItem");if(d.get("subhead",!0)){var r,a,o;"string"==typeof d.get("subhead",!0)?t=d.get("subhead"):null!==(r=n.agentDetails)&&void 0!==r&&r.brokerage?t=n.agentDetails.brokerage:null!==(a=n.agentDetails)&&void 0!==a&&null!==(o=a.office)&&void 0!==o&&o.name&&(t=n.agentDetails.office.name)}var i;d.get("brand",!1)&&(i=n.brand),c.template.get({$dom:d.$dom,data:{image:d.get("image"),user:n,subhead:t,showUserLocation:d.get("showUserLocation"),thermometer:d.get("thermometer",!1),badges:d.get("badges"),note:d.get("note"),brand:i,chevron:d.get("chevron"),license:d.get("license",!1),useConsumerViewDisplayPhone:d.get("useConsumerViewDisplayPhone",!1)&&!(null===(e=n.agentDetails)||void 0===e||!e.consumerViewDisplayPhone)}})}function o(e){var t,r,a=e.$dom,o=e.data||{},s=o.user||{},c=o.useConsumerViewDisplayPhone;if(!d.get("link",!0)||s.status.doesNotHaveProfile||c)a.aName.length&&a.aName.on("click",function(e){return n({type:"url.unhandled",url:$(e.currentTarget).attr("href"),data:s}),!1});else{var m,g,h=null!==s.entityType||null!==s.entityID&&0!==s.entityID?s.entityType:2;g=60===h?s.entityGuid:s.entityID?s.entityID:s.userID;var b;b=null!==(m=s.agentDetails)&&void 0!==m&&m.urlName?"/".concat(s.agentDetails.urlName):"/entity/".concat(h,"/").concat(g).concat(d.get("promoSource")?"?utm_source=".concat(d.get("promoSource")):""),a.a.on("click",function(e){return n({type:"url.unhandled",url:b,data:s}),!1}).attr("href",b)}o.image&&(u.add("image",new i.ChildController({type:"controllers/UserProfileImage",namespace:l.get(),register:{bubble:n}}),!0),d.updateController("image",{$dom:a.divImage,data:{userItem:s,cssClass:"paint-second-background",link:!!c}})),o.badges&&(u.add("badges",new i.ChildController({type:"controllers/Badges",namespace:l.get(),register:{bubble:n}}),!0),d.updateController("badges",{$dom:a.divBadges,data:{badges:o.badges,classes:"small"}})),d.get("brand",!1),o.thermometer&&null!==(t=s.agentDetails)&&void 0!==t&&null!==(r=t.activity)&&void 0!==r&&r.percentages&&(u.add("thermometer",new i.ChildController({type:"controllers/UserThermometer",namespace:l.get(),register:{bubble:n}}),!0),d.updateController("thermometer",{$dom:a.divThermometer,data:{thermometer:s.agentDetails.activity.percentages}})),a.divPhoneNumber.length&&a.divPhoneNumber.on("click",function(){n({type:"userItem.phoneNumberClicked"})})}var i=e("ControllerObjects"),l=new i.Unique(t),s=new i.Callbacks,u=new i.ChildControllerManager,d=new i.StateManager(u,{}),c={template:new i.Getter({namespace:l.get(),success:function(e){try{o(e)}catch(e){throw d&&console.info(d),e}},template:{url:"controllers/UserItem.html",dom:["a","aName","divImage","divText","divThermometer","divBrand","divBadges","divPhoneNumber"]}})};return{update:r,restore:function(e){d.restore(e,a)},uninit:function(){u.uninit()},getState:d.getState.bind(d),register:s.register.bind(s),event:function(e,t){u.event(e,t)}}}});//# sourceMappingURL=https://assets.homesnap.com/app/js_min/controllers/UserItem.js.map?hash=e62a817c3f9f35c4fd269e08a1bc224ddefine("modules/ErrorLogging",["require"],function(i){function o(i){var o,n,d,r,l,t,v=[null!==(o=null===i||void 0===i?void 0:null===(n=i.userID)||void 0===n?void 0:n.toString())&&void 0!==o?o:"",null!==(d=null===i||void 0===i?void 0:null===(r=i.entityID)||void 0===r?void 0:r.toString())&&void 0!==d?d:"",null!==(l=null===i||void 0===i?void 0:null===(t=i.entityType)||void 0===t?void 0:t.toString())&&void 0!==l?l:""],u={userId:v.join(" | ")};void 0!==window.TrackJS?window.TrackJS.configure(u):(window._trackJs&&(u.token=window._trackJs.token),window._trackJs=u)}return{errorLogConfig:o}});//# sourceMappingURL=https://assets.homesnap.com/app/js_min/modules/ErrorLogging.js.map?hash=901eda350904ec30d42718991d31df53define("modules/SearchRecentSearches",["require","Objects","Utilities"],function(e){function t(){return c||(c=r()||[]),c}function r(){return d.get(!0,n,525600)}function i(){var e=t();d.set(!0,n,e)}function a(e){var r=t();if("object"==typeof e&&e.type_){for(var a,s=0;so&&(r.length=o),i(),!0}}return!1}function s(e){return t().slice(0,e)}var c,S=e("Objects"),n=(e("Utilities"),"Searches"),o=25,d=new S.LocalStorage("SearchRecentSearches");return{save:a,get:s}});//# sourceMappingURL=https://assets.homesnap.com/app/js_min/modules/SearchRecentSearches.js.map?hash=d94413680150e9c1019ebc5348325f67define("controllers/ActionBar",["require","ControllerObjects","Application","jquery"],function(e){return function(t){function r(e){m.call("bubble",e)}function o(e){y.update(e),n()}function n(){try{y.requireDom(),y.require("propertyAddressItem"),y.optional("showFavorite"),y.optional("showShare"),y.optional("showContactAgent"),y.optional("showInverseColors")}catch(e){throw e}p=!1,v=function(){return w.Deferred()}(),A.template.get({$dom:y.$dom,data:{propertyAddressItem:y.get("propertyAddressItem"),showSendInAMessage:y.get("showFavorite",!1),showFavorite:y.get("showFavorite",!1),showShare:y.get("showShare",!1),showContactAgent:y.get("showContactAgent",!1),showInverseColors:y.get("showInverseColors",!1)}})}function i(e){var t;u=e.$dom;var o=e.data,n=["win32","win64","windows"],i=-1!==n.indexOf(null===(t=navigator)||void 0===t?void 0:t.platform.toLowerCase());u.liShare.on("show.bs.dropdown",function(e){var t;I.add("share",new g.ChildController({type:"controllers/ActionBarShare",namespace:f.get(),register:{bubble:r,actionBarShareHide:function(){u.liShare.removeClass("open")}}}),!0),null!==(t=navigator)&&void 0!==t&&t.share&&!i&&u.ulShare.addClass("hidden"),y.updateController("share",{$dom:u.ulShare,data:{propertyAddressItem:o.propertyAddressItem}}),p=!0}),u.liSendInAMessage.on("click",function(e){C.done(function(){return c.registrationStatus.registered?v.done(function(e){s(e,o.propertyAddressItem)}):r({type:"account.mode"}),!1})}),null!==o&&void 0!==o&&o.showFavorite&&a()}function s(e,t){I.add("sendInAMessageMaster",new g.ChildController({type:"controllers/SendInAMessageMaster",namespace:f.get(),register:{bubble:r}}),!0),y.updateController("sendInAMessageMaster",{data:{paItem:t,listingDetails:e}})}function a(){u&&u.liFavorite.length&&y.get("propertyAddressItem")&&(I.add("favorite",new g.ChildController({type:"controllers/Property/PropertyFavorite",namespace:f.get(),register:{bubble:r}}),!0),y.updateController("favorite",{$dom:u.liFavorite,data:{propertyAddressItem:y.get("propertyAddressItem")}}))}function l(e){var t,r,o=y.get("propertyAddressItem"),n=(null===o||void 0===o?void 0:null===(t=o.listing)||void 0===t?void 0:t.id)===(null===e||void 0===e?void 0:null===(r=e.ids)||void 0===r?void 0:r.listingID),i=o&&!o.listing&&(null===e||void 0===e?void 0:e.ids)&&!e.ids.listingID&&o.propertyID===e.ids.propertyID,s=o&&!o.listing&&(null===e||void 0===e?void 0:e.ids)&&!e.ids.listingID&&!o.propertyID&&!e.ids.propertyID&&o.id===e.ids.propertyAddressID;(n||i||s)&&(null!==e&&void 0!==e&&e.favoriteStatus&&null!==o&&void 0!==o&&o.status?(o.status.raw|=1,o.status.isFavorited=!0):null!==e&&void 0!==e&&e.favoriteStatus||(o.status.raw&=-2,o.status.isFavorited=!1),o&&y.set("propertyAddressItem",o),a())}function d(e,t){"listingDetails.loaded"===e&&v.resolve(t),"propertyFavoriteStatus.updated"===e&&l(t),I.event(e,t)}var u,p,c,v,g=e("ControllerObjects"),h=e("Application"),w=e("jquery"),f=new g.Unique(t),m=new g.Callbacks,I=new g.ChildControllerManager,y=new g.StateManager(I,{}),A={template:new g.Getter({namespace:f.get(),success:function(e){try{i(e)}catch(e){throw void 0!==y&&null!==y&&console.info(y),e}},failure:function(){try{throw new Error("ActionBar controller: Unhandled Error")}catch(e){throw void 0!==y&&null!==y&&console.info(y),e}},template:{url:"controllers/ActionBar.html",dom:["liFavorite","liSendInAMessage","liShare","ulShare","btnSocialShare"]}})},C=function(){var e=w.Deferred();return h.getCurrentUser(function(t){c=t.user,e.resolve()},!0),e}();return{update:o,restore:function(e){y.restore(e,n)},uninit:function(){I.uninit()},getState:y.getState.bind(y),register:m.register.bind(m),event:d}}});//# sourceMappingURL=https://assets.homesnap.com/app/js_min/controllers/ActionBar.js.map?hash=1ae103eb33dd18df93875c5c285588d3define("controllers/Badges",["require","ControllerObjects"],function(e){return function(t){function n(e){g.update(e),r()}function r(){try{if(g.requireDom(),g.require("badges"),g.optional("classes"),g.optional("style"),!Array.isArray(g.get("badges")))throw new Error("state.data.badges must be an array")}catch(e){throw e}d.template.get({$dom:g.$dom,data:{badges:g.get("badges"),classes:g.get("classes"),style:g.get("style")}})}function a(e){e.$dom}function o(){u.uninit()}function s(e,t){u.event(e,t)}var i=e("ControllerObjects"),l=new i.Unique(t),c=new i.Callbacks,u=new i.ChildControllerManager,g=new i.StateManager(u,{}),d={template:new i.Getter({namespace:l.get(),success:function(e){try{a(e)}catch(e){throw g&&console.info(g),e}},template:{url:"controllers/Badges.html"}})};return{update:n,restore:function(e){g.restore(e,r)},uninit:o,getState:g.getState.bind(g),register:c.register.bind(c),event:s}}});//# sourceMappingURL=https://assets.homesnap.com/app/js_min/controllers/Badges.js.map?hash=6ccfe9577fb6a70f14aaa1b2a8bc8dc9define("controllers/GenericObservableArray",["require","ControllerObjects","Utilities"],function(e){return function(t){function n(){d=void 0,g=[],b.length&&(b.forEach(function(e){e.uninit()}),b.length=0),m.$dom.empty()}function r(e,t){if(e){var n=p.get(),r="".concat(n,"_divItem"),a=l(e),o=$(""),s=new f.ChildController({type:a.controller.type,namespace:n,register:{bubble:i,itemAdded:function(){h.call("itemAdded")}}});if(v.add(n,s),void 0!==t&&t0){var d=g[t];d&&(a.displayReverse?d.after(o):d.before(o),g.splice(t,0,o),b.splice(t,0,s))}}else a.displayReverse?m.$dom.prepend(o):m.$dom.append(o),g.push(o),b.push(s);c(e,function(t){var n=$(t({data:e,dom:{divItem:r}}));o.replaceWith(n),g.splice(g.indexOf(o),1,n);var i=$("#".concat(r));s.update({$dom:i,data:a.controller.dataFn(e)})})}}function a(e){if(void 0!==e){var t=g[e],n=b[e];t&&n&&(t.remove(),g.splice(e,1),n.uninit(),v.remove(n.namespace),b.splice(e,1),h.call("itemRemoved"))}}function i(e){h.call("bubble",e)}function o(){n(),d=m.get("settings");var e=m.get("items")||null;e&&(e.on("push shift pop unshift splice reverse concat",s),s("concat",e))}function l(e){return d&&"function"==typeof d?d(e):d}function c(e,t){var n=l(e);n.getter.template.html?u.handlebars.getHtml(n.getter.template.name,n.getter.template.html,t):u.handlebars.getTemplate(n.getter.template.name||n.getter.template.url,n.getter.template.url,t)}function s(){var e=Array.prototype.slice.call(arguments);switch(e[0]){case"push":e.slice(1).forEach(function(e){r(e)});break;case"shift":a(0);break;case"pop":a(g.length-1);break;case"unshift":e.shift(),e.reverse(),e.forEach(function(e){r(e,0)});break;case"splice":var t=e[1];t<0&&(t=g.length+t-1);var n=e[2]||g.length-t;n>g.length-t&&(n=g.length-t);for(var i=t;i0)for(var s=0;s").appendTo(c.ulListingImageSlidee).css({width:"548px",height:"416px",float:"left"});b.off("click").on("click",function(e){t({type:"media.clicked",data:{mediaType:"map",source:"imageSlider"}})}).addClass("pointer"),e(["modules/StaticMap"],function(e){e.get({$dom:b,type:"roadmap",lat:s.latitude,lng:s.longitude,zoom:16,marker:!0})}),l.addClass("container").css({margin:"0 auto",width:""})}else"object"==typeof n&&"function"==typeof n.reload&&S(),void 0===n&&(l.sly("destroy"),n=new window.Sly(l,{horizontal:1,itemNav:"basic",smart:1,mouseDragging:1,touchDragging:0,releaseSwing:1,speed:300,prevPage:y[0],nextPage:g[0],disabledClass:"slyDisabled"},{load:function(){var e=this;setTimeout(function(){o.call(e)},0)},change:function(){var e=this;setTimeout(function(){o.call(e),w=!0},0)},moveEnd:function(){w=!1}}).init(),v.unregister("imageSlider.window.resize"),v.unregister("imageSlider.destroy"),v.register("imageSlider.window.resize",function(){S()}),v.register("imageSlider.destroy",function(){"object"==typeof n&&"function"==typeof n.destroy&&n.destroy()})),c.divListingImageFrame.find("img").on("error",function(e){u(e.currentTarget).addClass("bs4--invisible").off("error")});f.getDeviceSize(function(e){if("lg"===e){var i=0;d.find("li").each(function(){i+=u(r).outerWidth(!0)}),i=e.length?e.length-1:i+1,a=e[t],r=this.items,n=0;n'.concat(e," Loading..."))}),h.register("loadDisclaimer",r,t))}function r(){var e=o(b.get("modificationTimestamp"));p.main.get({$dom:b.$dom,data:{listingID:b.get("listingID")},map:function(t){return{listingCourtesyOf:t,sourceNumber:b.get("sourceNumber"),modificationTimestamp:e,coStarBrand:d.coStarBrand.getCurrent()}}})}function o(e){if(!e||!Object.keys(e).length)return!1;var t,n=new Date(e.raw);try{t=n.toLocaleString("en-us",{weekday:"long",year:"numeric",month:"long",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",timeZone:"America/New_York"})}catch(e){var i=n.getUTCHours()-(4+(a(n)?0:1)),r=n.getMinutes(),o=n.getSeconds(),c=i>=12?"PM":"AM";i%=12,i=i||12,r="0".concat(r).slice(-2),o="0".concat(o).slice(-2),t=n.toLocaleString("en-us",{weekday:"long",year:"numeric",month:"long",day:"numeric"}),t+=", ".concat(i,":").concat(r,":").concat(o," ").concat(c)}return t}function a(e){var t=new Date(e.getFullYear(),0,1),n=new Date(e.getFullYear(),6,1);return e.getTimezoneOffset()n-2e3&&h.callOnce("loadDisclaimer")}function s(){h.unregister("loadDisclaimer",r),w.uninit()}function l(e,t){switch(e){case"modal.scroll":case"window.scroll":h.exists("loadDisclaimer")&&v(t.fold)}w.event(e,t)}var u=e("ControllerObjects"),m=e("Objects"),d=e("Utilities"),g=e("lodash"),f=new u.Unique(t),h=new u.Callbacks,w=new u.ChildControllerManager,b=new u.StateManager(w,{}),p={main:new u.Getter({namespace:f.get(),success:function(e){},webService:"/service/Listings/GetCourtesyOf",failure:function(){throw b&&console.info(b),new Error("Listing Disclaimer controller: Unhandled Error")},type:m.HSListingCourtesyOf,template:{url:"controllers/ListingDisclaimer.html"}})},v=g.debounce(c,500,{maxWait:2500});return{update:n,restore:function(e){b.restore(e,i)},uninit:s,getState:b.getState.bind(b),register:h.register.bind(h),event:l}}});//# sourceMappingURL=https://assets.homesnap.com/app/js_min/controllers/ListingDisclaimer.js.map?hash=41f88606e7ff06a07c7f2724e5281a53define("controllers/ListingHistoryCapsule",["require","ControllerObjects","Utilities"],function(t){return function(e){function r(t){g.update(t),n()}function n(){try{g.requireDom(),g.require("propertyAddressItem"),g.require("listing")}catch(t){throw t}var t=a();t&&t.length&&g.$dom.html(t)}function a(){var t=(g.get("propertyAddressItem"),g.get("listing")),e=c.coStarBrand.getCurrent().name,r="";if(t&&t.sListingStatus&&t.sListingStatus.active){if(t.status&&!t.status.suppressDaysOnMarket){if(t.days&&0===t.days.raw)return t.status.showDaysOnHomesnap?"Today on ".concat(e):"Brand new! Just listed today";t.status.showDaysOnHomesnap?t.days?r+="".concat(t.days.commas," ").concat(1===t.days.raw?"day":"days"," on ").concat(e):r+="On ".concat(e," since ").concat(t.listDate.monthDayYear):(r+="Listed",t.days?r+=" ".concat(t.days.commas," ").concat(1===t.days.raw?"day":"days"," ago"):r+=" on ".concat(t.listDate.monthDayYear))}if(t.currentPrice&&t.originalPrice&&t.currentPrice.raw!==t.originalPrice.raw){t.status&&t.status.suppressDaysOnMarket&&(r+="Originally listed"),r+=" for ".concat(t.originalPrice.dollars,"");var n=s(t);n&&(r+=" (".concat(n,")"))}}return r}function s(t){var e=i(t.history);if(e){var r=e.items.filter(function(t){return 2===t.updateTypeID});if(r[0]&&r[0].price&&r[0].previousPrice){var n=r[0].price.raw>r[0].previousPrice.raw,a=Math.abs(r[0].price.raw-r[0].previousPrice.raw);return"".concat(n?"increased":"dropped"," ").concat(c.string.getPrice(a).dollars," on ").concat(r[0].date.monthDayYear)}}return null}function i(t){return t.filter(function(t){return t.status.isCurrentListing})[0]}var o=t("ControllerObjects"),c=t("Utilities"),u=new o.Unique(e),d=new o.Callbacks,l=new o.ChildControllerManager,g=new o.StateManager(l,{});new o.Getter({namespace:u.get(),success:function(t){},template:{name:"controllers/ListingHistoryCapsule",html:""}});return{update:r,restore:function(t){g.restore(t,n)},uninit:function(){l.uninit()},getState:g.getState.bind(g),register:d.register.bind(d),event:function(t,e){l.event(t,e)}}}});//# sourceMappingURL=https://assets.homesnap.com/app/js_min/controllers/ListingHistoryCapsule.js.map?hash=f7386c84ed059032a51c65b6ccdb5b7dfunction ownKeys(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),o.push.apply(o,a)}return o}function _objectSpread(e){for(var t=1;t=16&&We.heatMaps&&We.heatMaps.sectionKey&&(Ge.heatMaps.sectionKey=We.heatMaps.sectionKey,Ge.heatMaps.sectionValues=We.heatMaps.sectionValues,We.heatMaps.sectionKey=null,We.heatMaps.sectionValues=null)))}var a=ce.getBounds();if(a&&(!Ge.bounds||d(Ge.bounds,a))){We.bounds=Ge.bounds,Ge.bounds=a;var n=c(Ge.bounds),s=Ge.bounds.getNorthEast(),i=Ge.bounds.getSouthWest(),u=!1;if(Ge.polygon.polygon&&Ge.polygon.bounds&&"HSPropertyAddressItem"!==Ge.polygon.type){new google.maps.LatLng({lat:s.lat(),lng:i.lng()}),new google.maps.LatLng({lat:i.lat(),lng:s.lng()});Ge.bounds.intersects(Ge.polygon.bounds)||(u=!0)}u&&b();var p=new ve.Bounds(s.lat(),i.lat(),s.lng(),i.lng());p&&e&&n&&Ce.call("change",{bounds:{bounds:p,zoom:e,pixels:n},clearPolygon:u}),1==Ge.isSavedSearch?Ge.isSavedSearch=!1:Ge.ui.saveSearch.$dom&&Ge.ui.saveSearch.$dom.find(".polygon-btn").html("Save Search"),Ge.ui.heatMaps.status&&e<18&&Ge.heatMaps.polygon&&ie(!0),Ge.localContext.mapShown&&ue&&!Ge.localContext.contextBubbleVisible&&(ue.locationRestriction=null,ue.isTransitioningMapBounds=!1,ue.isTransitioningMapBounds&&We.bounds!==Ge.bounds||ue.search())}}function l(e){var t="homesnap",o=Pe.get("type");if(o&&o.homesnap&&1===o.homesnap.min&o.homesnap.max>=20&&Ge.type)return Ge.type;if(o&&e)for(var a in o)if(o.hasOwnProperty(a)&&o[a].min&&o[a].max&&e>=o[a].min&&e<=o[a].max){t=a;break}return t}function r(e){ce.setMapTypeId(e),"hybrid"===e?ce.setOptions({styles:Fe.hide}):ce.setOptions({styles:Fe.default})}function d(e,t){var o={topRight:ce.getProjection().fromLatLngToPoint(e.getNorthEast()),bottomLeft:ce.getProjection().fromLatLngToPoint(e.getSouthWest())};o.diagonal=Math.sqrt(Math.pow(o.topRight.x-o.bottomLeft.x,2)+Math.pow(o.topRight.y-o.bottomLeft.y,2));var a={topRight:ce.getProjection().fromLatLngToPoint(t.getNorthEast()),bottomLeft:ce.getProjection().fromLatLngToPoint(t.getSouthWest())},n={topRight:Math.sqrt(Math.pow(o.topRight.x-a.topRight.x,2)+Math.pow(o.topRight.y-a.topRight.y,2)),bottomLeft:Math.sqrt(Math.pow(o.bottomLeft.x-a.bottomLeft.x,2)+Math.pow(o.bottomLeft.y-a.bottomLeft.y,2))};return n.topRight>.05*o.diagonal||n.bottomLeft>.05*o.diagonal}function c(e){var t=p(e.getNorthEast()),o=p(e.getSouthWest());return(o.y-t.y)*(t.x-o.x)}function u(e){var t={top:0,bottom:0,left:0,right:0},o=p(e),a=p(Ge.bounds.getNorthEast()),n=p(Ge.bounds.getSouthWest());return t.top=Math.round(Math.abs(a.y-o.y)),t.bottom=Math.round(Math.abs(n.y-o.y)),t.right=Math.round(Math.abs(a.x-o.x)),t.left=Math.round(Math.abs(n.x-o.x)),t}function p(e){var t=ce.getProjection().fromLatLngToPoint(ce.getBounds().getNorthEast()),o=ce.getProjection().fromLatLngToPoint(ce.getBounds().getSouthWest()),a=Math.pow(2,ce.getZoom()),n=ce.getProjection().fromLatLngToPoint(e);return new google.maps.Point((n.x-o.x)*a,(n.y-t.y)*a)}function g(){Ce.call("changing",{bounds:!0})}function m(e,t){if("object"!=typeof e)switch(e.toLowerCase()){case"zoom":"number"==typeof t&&(g(),ce.setZoom(t));break;case"center":"object"==typeof t&&t.lat&&t.lng&&(g(),ce.setCenter({lat:t.lat,lng:t.lng}));break;case"tilt":if("number"==typeof t){var o=45===t?45:0;ce.setTilt(o)}break;case"type":"string"==typeof t&&r(t);break;case"customboundingbox":if("object"==typeof t&&t.north&&t.east&&t.south&&t.west){Ge.ui.saveSearch.$dom&&Ge.ui.saveSearch.$dom.find(".polygon-btn").html(' Saved Search'),Ge.isSavedSearch=!0;var a=new google.maps.LatLngBounds;a.extend({lat:t.south,lng:t.west}),a.extend({lat:t.north,lng:t.east}),ce.fitBounds(E(a,-.3)),m("zoom",ce.getZoom())}}else for(var n in e)e.hasOwnProperty(n)&&m(n,e[n])}function y(e,t){var o;if("object"!=typeof e)switch(e){case"polygon":case"area":case"school":if("MultiAreaItem"==(null===(o=Ge.polygon)||void 0===o?void 0:o.type)&&S(),Ge.polygon.polygon&&"HSPropertyAddressItem"!==Ge.polygon.type){b();break}case"streetArea":if("HSPropertyAddressItem"!==Ge.polygon.type){b();break}case"propertyTiles":break;case"drivingDirections":C()}else for(var a in e)e.hasOwnProperty(a)&&y(a,e[a])}function h(t,a){if("object"!=typeof t){switch(t){case"HSStreetArea":if(a&&a.data&&!Array.isArray(a.data)){var n="HSStreetArea"===a.data.type_?a.data:a.data.item,s=a.data.fit||void 0;if(b(),s&&g(),n.segments&&n.segments.length){var i=n.segments.map(function(e){return google.maps.geometry.encoding.decodePath(e)});Ge.polygon.polygon=P({paths:i})}else I("Remove Street");n.north&&n.south&&n.east&&n.west&&(Ge.polygon.bounds=new google.maps.LatLngBounds,Ge.polygon.bounds.extend({lat:n.south,lng:n.west}),Ge.polygon.bounds.extend({lat:n.north,lng:n.east}),s&&ce.fitBounds(E(Ge.polygon.bounds,s.percent))),Ge.polygon.type=t,Ge.polygon.data=n}break;case"HSAreaItem":if(a&&a.data&&!Array.isArray(a.data)){var l="HSAreaItem"===a.data.type_?a.data:a.data.item;if(Ge.polygon&&Ge.polygon.type===t&&Ge.polygon.data.areaID===l.areaID)break;var r=a.data.fit||void 0;b(),r&&g();var d=O(l.polygon);Ge.polygon.polygon=x({paths:d,fit:r}),l.north&&l.south&&l.east&&l.west?(Ge.polygon.bounds=new google.maps.LatLngBounds,Ge.polygon.bounds.extend({lat:l.south,lng:l.west}),Ge.polygon.bounds.extend({lat:l.north,lng:l.east})):Ge.polygon.bounds=A(Ge.polygon.polygon),Ge.polygon.type=t,Ge.polygon.data=l,v()}break;case"MultiAreaItem":var c,u,p;if(null===a||void 0===a||!a.data||Array.isArray(a.data))return;var m=a.data.item,y=null===a||void 0===a?void 0:null===(c=a.data)||void 0===c?void 0:c.fit;b(),T(Ge.polygon.marker),y&&g();var M=[],H=[];if(Ge.polygon.bounds=new google.maps.LatLngBounds,Ge.polygon.polygon=null!==m&&void 0!==m&&m.length&&Ge.polygon.polygon?Ge.polygon.polygon:[],Array.isArray(m)&&m.forEach(function(e){var t,o;if("HSStreetArea"===(null===e||void 0===e?void 0:e.type_)&&null!==(t=e.segments)&&void 0!==t&&t.length){var a=null===e||void 0===e?void 0:e.segments.map(function(e){return e});H=H.concat(a)}else if(null!==e&&void 0!==e&&e.polygon)M.push(e.polygon);else if(null!==e&&void 0!==e&&null!==(o=e.zones)&&void 0!==o&&o.length){var n=e.zones.map(function(e){return e.polygon})[0];n&&M.push(n)}e.north&&e.south&&e.east&&e.west&&(Ge.polygon.bounds.extend({lat:e.south,lng:e.west}),Ge.polygon.bounds.extend({lat:e.north,lng:e.east}))}),H.length){var z=H.map(function(e){return google.maps.geometry.encoding.decodePath(e)});Ge.polygon.polygon=Ge.polygon.polygon.concat(P({paths:z}))}if(M.length){var D=O(M);Ge.polygon.polygon=Ge.polygon.polygon.concat(x({paths:D,fit:y}))}y&&ce.fitBounds(E(Ge.polygon.bounds,y.percent));var B=a.data.item.filter(function(e){return 26===e.entityType});if(B.length){var R;We.multiAreasSchools.data=Ge.multiAreasSchools.data,Ge.multiAreasSchools.data=new ve.HashTable,B.forEach(function(e){Ge.multiAreasSchools.data.setItem(e.id.toString(),e)});var j=fe.js.dedupeHashTables(We.multiAreasSchools.data,Ge.multiAreasSchools.data);null!==j&&void 0!==j&&null!==(R=j.remove)&&void 0!==R&&R.length&&j.remove.forEach(function(e,t){var o=Ge.multiAreasSchools.markers.getItem(e);o&&(T(o),Ge.multiAreasSchools.markers.removeItem(e))}),e(["modules/MapCustomMarker"],function(e){var t;if(void 0===e||null===e)return!1;if((null===j||void 0===j?void 0:null===(t=j.add)||void 0===t?void 0:t.length)>0){var n,s=function(t,a){function n(e,t){_({latLng:t,marker:Ge.multiAreasSchools.markers.getItem(e.id.toString()),data:e,onClick:function(e,t,a){o({type:"url.unhandled",url:e&&e.hasPolygon&&t?e.polygonUrl:e.url,data:e,polygon:t,details:a})}})}var s=new google.maps.LatLng(t.latitude,t.longitude);return new e.School(s,a,t,!0,n)};null===j||void 0===j||null===(n=j.add)||void 0===n||n.forEach(function(e){var t=Ge.multiAreasSchools.data.getItem(e);if(!1!==a.marker&&t.latitude&&t.longitude){var o=s(t,ce);Ge.multiAreasSchools.markers.setItem(t.id.toString(),o)}})}})}else Ge.multiAreasSchools.data.length&&S();1===m.length&&fe.ajax.isType(m[0],"HSSchool")&&(null===(u=m[0])||void 0===u||null===(p=u.zones)||void 0===p||!p.length)&&m[0].latitude&&m[0].longitude&&(ce.setCenter({lat:m[0].latitude,lng:m[0].longitude}),ce.setZoom(Pe.get("nonPolygonZoom",18))),Ge.polygon.type=t,Ge.polygon.data=m;break;case"HSSchool":if(a&&a.data&&Array.isArray(a.data)){We.schools.data=Ge.schools.data,a.ui&&a.ui.schools&&(Ge.ui.schools=a.ui.schools),Ge.schools.data=new ve.HashTable;for(var K=0;K0;Ge.polygon.polygon.forEach(function(o){google.maps.geometry.poly.containsLocation(t,o)&&!n&&Ge.schools.data.setItem(e.id.toString(),e)})}}();var N=fe.js.dedupeHashTables(We.schools.data,Ge.schools.data);if(N&&N.remove&&N.remove.length>0)for(var V=0;V0&&e(["modules/MapCustomMarker"],function(e){if(void 0===e||null===e)return!1;for(var t=0;t0){var X=U.zones.reduce(function(e,t){return t.polygon&&(e=e||[],e.push(t.polygon)),e},void 0),Y=O(X);Ge.polygon.polygon=x({paths:Y,fit:q}),U.north&&U.south&&U.east&&U.west?(Ge.polygon.bounds=new google.maps.LatLngBounds,Ge.polygon.bounds.extend({lat:U.south,lng:U.west}),Ge.polygon.bounds.extend({lat:U.north,lng:U.east})):Ge.polygon.bounds=A(Ge.polygon.polygon),Ge.polygon.type=t,Ge.polygon.data=U}!1!==a.marker&&U.latitude&&U.longitude&&e(["modules/MapCustomMarker"],function(e){var t;if(void 0===e||null===e)return!1;var o=e.GenericMapMarker.generateSchoolSVGCode(null,Le.get()),a=new google.maps.Marker({position:new google.maps.LatLng(U.latitude,U.longitude),map:ce,title:U.name,icon:{anchor:new google.maps.Point(12,34),url:"data:image/svg+xml;utf-8, ".concat(encodeURIComponent(o.outerHTML)),scaledSize:new google.maps.Size(22,38.5),size:new google.maps.Size(22,38.5)},optimized:!1});Ge.polygon.marker=a,pe=pe||new google.maps.InfoWindow,a.addListener("click",function(t){var o=e.GenericMapMarker.generateSchoolSVGCode(null,Le.get(),!0);this.setIcon({anchor:new google.maps.Point(12,34),url:"data:image/svg+xml;utf-8, ".concat(encodeURIComponent(o.outerHTML)),scaledSize:new google.maps.Size(22,38.5),size:new google.maps.Size(22,38.5)}),pe.setContent(U.name),pe.open(ce,a)}),google.maps.event.addListener(pe,"closeclick",function(e){a.setIcon({anchor:new google.maps.Point(12,34),url:"data:image/svg+xml;utf-8, ".concat(encodeURIComponent(o.outerHTML)),scaledSize:new google.maps.Size(22,38.5),size:new google.maps.Size(22,38.5)})}),null!==U&&void 0!==U&&null!==(t=U.zones)&&void 0!==t&&t.length||!U.latitude||!U.longitude||(ce.setCenter({lat:U.latitude,lng:U.longitude}),ce.setZoom(18))})}break;case"HSSchoolDistrict":var J="HSSchoolDistrict"===a.data.type_?a.data:a.data.item;if(Ge.polygon&&Ge.polygon.type===t&&Ge.polygon.data.id===J.id)break;var Q=a.data.fit||void 0;if(b(),Q&&g(),J.polygon){var ee=O(J.polygon);Ge.polygon.polygon=x({paths:ee,fit:Q}),J.north&&J.south&&J.east&&J.west?(Ge.polygon.bounds=new google.maps.LatLngBounds,Ge.polygon.bounds.extend({lat:J.south,lng:J.west}),Ge.polygon.bounds.extend({lat:J.north,lng:J.east})):Ge.polygon.bounds=A(Ge.polygon.polygon),Ge.polygon.type=t,Ge.polygon.data=J}!Ge.polygon.polygon&&J.latitude&&J.longitude&&(ce.setCenter({lat:J.latitude,lng:J.longitude}),ce.setZoom(18));break;case"HSPropertyAddressListingItem":case"HSPropertyAddressItem":if(a&&a.data&&Array.isArray(a.data)){w();var te,oe,ae,ne=!1;if(void 0!==a.transactionType&&a.transactionType!==Ge.transactionType&&(We.transactionType=Ge.transactionType,Ge.transactionType=a.transactionType),ne=2===Ge.transactionType&&2!==We.transactionType||2===We.transactionType&&2!==Ge.transactionType,"HSPropertyAddressListingItem"===t?(We.listingGroups.data=Ge.listingGroups.data,Ge.listingGroups.data=$(a.data),oe=We.listingGroups,ae=Ge.listingGroups):(We.paItems.data=Ge.paItems.data,Ge.paItems.data=$(a.data.filter(function(e){return!Ge.listingGroups.data.hasItem(e.id)})),oe=We.paItems,ae=Ge.paItems),(te=fe.js.dedupeHashTables(oe.data,ae.data,function(e,t){return!ne&&(e.length===t.length&&(!e[0].listing||!t[0].listing||e[0].listing.id===t[0].listing.id))}))&&te.remove&&te.remove.length>0)for(var re=0;re0&&e(["modules/MapCustomMarker"],function(n){if(void 0===n||null===n)return!1;for(var s=0;s1){var s="controllers/PickerPropertyAddressLite";Homesnap.jsAppHashes&&!Homesnap.jsAppHashes["".concat(s.replace("controllers/","").js)]&&(s="".concat(Homesnap.jsMainRootPath,"/").concat(s,".js")),e([s],function(e){var a=new e((new Date).getTime().toString());a.update({data:{items:t,title:n,showUnit:!1,showFavoriteIcon:!0,placardVersion:2}}),a.register("bubble",o)})}else{o({type:"url.unhandled",url:t[0].url,data:t[0]})}}}})}var d=i.latitude,c=i.longitude,u=new google.maps.LatLng(d,c);return G=new n.MarkerWithOverLay(u,l,s,a.showMini,"HSPropertyAddressListingItem"!==t||null,a.notClickable?null:r)}(l,r,ce);ae.markers.setItem(i,d)}}}De&&ce.getZoom()>=17&&a.allHomesMode&&(Ge.heatMaps&&Ge.heatMaps.sectionKey&&Ge.heatMaps.sectionValues?se(Ge.heatMaps):a.heatMaps&&a.heatMaps.data&&se(a.heatMaps.data)),Ce.callOnce("clickWhenMapReady_")})}else if(a&&a.data&&a.data.latitude&&a.data.longitude){var ye=a.data;if(Ge.singlePropertyAddressItem=a.data,Ge.polygon&&Ge.polygon.type===t&&Ge.polygon.data.id===ye.id)break;b(),w(),g();var he=function(){if(a.marker){var t=ye&&ye.propertyStatus?ye.propertyStatus.color:"",o=ye&&ye.propertyStatus&&ye.propertyStatus.secondaryColor?ye.propertyStatus.secondaryColor:"",n="#fff",s="#006DC7",i="#0b4256";switch(t){case"green":s="#00B100",i="#00775B";break;case"orange":s="#f27f21",i="#A84800";break;case"red":s="#ee3223",i="#9a1b1e";break;case"yellow":s="#edb42b",i="#b07d2a";break;case"purple":o&&"goldenrod"===o.toLowerCase()&&(n="#F9C949"),s="#00B100",i="#ffffff"}e(["modules/MapCustomMarker"],function(e){var t=e.GenericMapMarker.generateSVGCode(null,s,i,n),o=new google.maps.Marker({position:new google.maps.LatLng(ye.latitude,ye.longitude),map:ce,title:ye.address.fullStreetAddress,icon:{anchor:new google.maps.Point(12,34),url:"data:image/svg+xml;utf-8, ".concat(encodeURIComponent(t.outerHTML)),scaledSize:new google.maps.Size(22,38.5),size:new google.maps.Size(22,38.5)},optimized:!1,zIndex:1});Ge.polygon.marker=o,a.marker.open&&(pe=pe||new google.maps.InfoWindow,o.addListener("click",function(){pe.setContent(ye.address.fullStreetAddress),pe.open(ce,o)}))})}Ge.polygon.polygon||(ce.setCenter({lat:ye.latitude,lng:ye.longitude}),ce.setZoom(Pe.get("zoom",18)))},be=function(e){var t=Ge.polygon.polygon,o=Ge.polygon.marker;return t||!o||Array.isArray(o)||o.getMap()?o||!t||t.getMap()?void(t&&o&&!Array.isArray(o)&&(o.getMap()||o.setMap(ce),e>=16?t.getMap()||t.setMap(ce):t.getMap()&&t.setMap(null))):void t.setMap(ce):void o.setMap(ce)};a.lotPolygon?e(["modules/DMPManager"],function(e){e.getPolygon(ye.latitude,ye.longitude,function(e){e&&(a.lotPolygon.paths=e,Ge.polygon.polygon=x(a.lotPolygon),Ge.polygon.bounds=A(Ge.polygon.polygon)),Ge.polygon.polygon||(ce.setCenter({lat:ye.latitude,lng:ye.longitude}),ce.setZoom(Pe.get("zoom",18))),Ge.polygon.type=t,Ge.polygon.data=ye,he(),be(ce.getZoom()),Ge.polygon.listeners.zoom=google.maps.event.addListener(ce,"zoom_changed",function(){be(ce.getZoom())})})}):(he(),be(ce.getZoom())),Ge.localContext&&ue&&(ue.directionsOptions={origin:{lat:a.data.latitude,lng:a.data.longitude}}),v()}break;case"HSPropertyAddressCluster":if(a&&a.data&&a.data.clusters&&Array.isArray(a.data.clusters)){var Se=a.data.clusters,Te=a.data.searchDefinition,xe=ce.getZoom();w(),k();var Ie=function(){if(xe<17||xe<=17&&a.data.allHomesMode)for(var e=0;e999?"map-cluster-marker larger-marker":"map-cluster-marker",text:0===e.count.raw?" ":e.count.commas,color:"#ffffff",fontSize:"12px",fontFamily:'"Lucida Grande", "Arial", sans-serif',width:e.count.raw>999?"33px":"30px"},icon:z(o.fill,o.stroke,a,new google.maps.Point(15,7))});return google.maps.event.addListener(s,"click",function(){ce.fitBounds(n),fe.coStarBrand.is("citysnap")&&!Pe.get("noMapRestriction",!1)&&ce.setCenter(n.getCenter())}),s}function b(){if(Ge.polygon.polygon){if(Array.isArray(Ge.polygon.polygon))for(var e=0;e4||Math.abs(u.y-o)>4){var a=fe.map.getLatLngByPixel(l.x+(t-r.left),l.y+(o-r.top),c);d.getPath().push(new google.maps.LatLng(a.lat,a.lng)),u=u||{},u.x=t,u.y=o}return!1},n=function t(n){n.stopPropagation(),n.preventDefault(),document.removeEventListener("touchend"===n.type?"touchmove":"mousemove",a),document.removeEventListener("touchend"===n.type?"touchend":"mouseup",t),document.removeEventListener("touchmove",o),je(),je=null;var s=d.getPath();e(["simplify"],function(e){var t=ce.getBounds().toSpan().lat(),o=e(s.getArray().map(function(e){return{x:e.lng(),y:e.lat()}}),t/100).map(function(e){return{latitude:Math.round(1e5*e.y)/1e5,longitude:Math.round(1e5*e.x)/1e5}});d.setMap(null);var a=o.map(function(e){return new google.maps.LatLng(e.latitude,e.longitude)});Ce.call("change",{customPolygon:{paths:[o],encoded:google.maps.geometry.encoding.encodePath(a)}})})};Re=!0;var s=Date.now();N(s),D(),ce.setOptions({draggable:!1}),G().show();var i=ce.getDiv();i.style.cursor="crosshair";var l,r,d,c=ce.getZoom();i.addEventListener("mousedown",t),i.addEventListener("touchstart",t),je=function(){i.removeEventListener("mousedown",t),i.removeEventListener("touchstart",t),G().hide(),V(s),i.style.cursor="",ce.setOptions({draggable:!0}),Re=!1};var u}}function G(){if(!Ke){Ke=we("

    Draw your custom search area on the map

    "),Ke.addClass("draw-instructions");var e=we("

    Cancel

    ");e.click(function(e){return je&&je(),!1}),Ke.append(e),Pe.$dom.parent().append(Ke)}return Ke}function W(){if(!Ne){Ne=we("

    Don't miss out!
    Save your search for quick access to new listings and price cuts

    "),Ne.addClass("registration-reminder pos-abs text-white paint-first-background-before");var e=we("");e.addClass("btn pull-right registration-reminder-save text-white bs4--position-relative"),e.on("click",function(e){return Ce.call("saveSearch",{}),!1});var t=we('');t.addClass("registration-reminder-cancel bs4--position-relative"),t.on("click",function(e){return $e.set(Oe,!0),Ne.hide(),!1}),Ne.append(e),Ne.append(t),Pe.$dom.parent().append(Ne)}return Ne}function F(){if(!Ve){Ve=we("

    Save your commute location(s)
    Sign up to access commute times on every property and save them for future updates

    "),Ve.addClass("registration-reminder pos-abs text-white paint-first-background-before");var e=we("");e.addClass("btn pull-right registration-reminder-save text-white bs4--position-relative"),e.on("click",function(e){return o({type:"account.mode",mode:"default"}),!1});var t=we('');t.addClass("registration-reminder-cancel bs4--position-relative"),t.on("click",function(e){return ke.setReminder(),Ve.hide(),!1}),Ve.append(e).append(t),Pe.$dom.parent().append(Ve)}return Ve}function U(e,t){var o=document.createElement("div");o.className="bs4--rounded-circle mr-20",be.getBrowser().touch?o.classList.add("draw-polygon-mobile-btn"):o.classList.add("draw-polygon-btn"),e.appendChild(o);var a=document.createElement("button");a.className="bs4--mt-auto bs4--border-0 bs4--bg-transparent paint-base-font",a.title="Draw a custom area",a.innerHTML="Draw",o.appendChild(a),a.addEventListener("click",Z)}function q(e,t){var o=document.createElement("div");o.className="layers-btn bs4--rounded-circle mr-20",e.appendChild(o);var a=document.createElement("button");a.className="bs4--mt-auto bs4--border-0 bs4--bg-transparent paint-base-font",a.innerHTML="Layers",o.appendChild(a);var n;a.addEventListener("click",function(){var e=a.parentElement.parentElement,t=e.querySelectorAll("button");n?(clearTimeout(n),n=null,e.classList.remove("layers-expanded"),t&&t.length&&(t[1]&&(t[1].tabIndex=-1),t[2]&&(t[2].tabIndex=-1))):(e.classList.add("layers-expanded"),t&&t.length&&(t[1]&&(t[1].tabIndex=-1),t[2]&&(t[2].tabIndex=-1)),n=setTimeout(function(){e.classList.remove("layers-expanded")},3e4))})}function X(e,t,o){var a=document.createElement("div");a.className="school-btn bs4--rounded-circle mr-20",o&&a.classList.add("layers-fab-btn"),e.appendChild(a);var n=document.createElement("button");o&&(n.tabIndex="-1"),n.className="bs4--mt-auto bs4--border-0 bs4--bg-transparent paint-base-font",n.innerHTML="Schools",a.appendChild(n),n.title="Show/Hide schools",n.addEventListener("click",function(){var e,o,n=(null===Ge||void 0===Ge?void 0:null===(e=Ge.schools)||void 0===e?void 0:null===(o=e.data)||void 0===o?void 0:o.length)<=0;if(n){t.getZoom()<14&&t.setZoom(14)}a.classList.toggle("school-btn-selected"),a.classList.toggle("paint-first-background"),a.firstElementChild.classList.toggle("paint-first-background"),Ce.call("schoolChange",n)}),google.maps.event.addListener(t,"zoom_changed",function(){var e,o,n=t.getZoom();(null===Ge||void 0===Ge?void 0:null===(e=Ge.schools)||void 0===e?void 0:null===(o=e.data)||void 0===o?void 0:o.length)>0&&n<14&&(a.classList.remove("school-btn-selected"),a.classList.remove("paint-first-background"),a.firstElementChild.classList.remove("paint-first-background"),Ce.call("schoolChange",!1))})}function Y(e,t,o){var a=document.createElement("div");a.className="map-type-btn bs4--rounded-circle mr-20",o&&a.classList.add("layers-fab-btn"),e.appendChild(a);var n=document.createElement("button");o&&(n.tabIndex="-1"),n.className="bs4--mt-auto bs4--border-0 bs4--bg-transparent paint-base-font font-red-hat",n.innerHTML="Satellite",a.appendChild(n),n.title="Toggle Map Hybrid Mode",n.addEventListener("click",function(){Ge.type=Ge&&"hybrid"===Ge.type?"homesnap":"hybrid",a.classList.toggle("map-type-btn-selected"),a.classList.toggle("paint-first-background"),a.firstElementChild.classList.toggle("paint-first-background"),r(Ge.type)}),google.maps.event.addListener(t,"zoom_changed",function(){Ge&&"hybrid"!==Ge.type&&a.classList.remove("map-type-btn-selected")}),google.maps.event.addListenerOnce(t,"tilesloaded",function(){Ge&&"hybrid"===Ge.type&&(a.className+=" img-circle map-type-btn-selected")})}function J(e,t){var o=document.createElement("div");o.className=" polygon-control-wrapper pointer",e.appendChild(o);var a=document.createElement("div");a.className="polygon-btn paint-base-font",a.innerHTML="Save Search",o.appendChild(a),a.addEventListener("click",function(){Ce.call("saveSearch",{})})}function Q(e,t){var o=document.createElement("div");o.className="mr-20 commute-times-btn bs4--rounded-circle",e.appendChild(o);var a=document.createElement("button");a.className="bs4--mt-auto bs4--border-0 bs4--bg-transparent paint-base-font",a.innerHTML="Commute",a.title="Search by commute",o.appendChild(a),a.addEventListener("click",function(){Ce.call("commuteTimeModal",{})})}function ee(e,t){google.maps.event.addListenerOnce(t,"tilesloaded",function(){Te.add("heatMaps",new he.ChildController({type:"controllers/Search/OffMarketOpportunities",namespace:Le.get(),register:{bubble:o,change:function(e){Ce.call("change",e)}}}),!0),Pe.updateController("heatMaps",{$dom:we(e),data:{currentHeatMaps:Ge.heatMaps}}),o({type:"heatMaps.requestTransactionType"})})}function te(e,t){var a=document.createElement("div");a.className=" heat-maps-control-wrapper pointer bs4--text-hs-blue bs4--text-center ",e.appendChild(a);var n=document.createElement("div");if(n.className="heat-maps-modal ",n.innerHTML='Heatmaps PRO',a.appendChild(n),Ge.heatMaps&&Ge.heatMaps.sectionKey){var s=Me.heatMapsSearchDefinitions.map(function(e){return e.sectionKey}).indexOf(Ge.heatMaps.sectionKey);if(null!==s){var i=Me.heatMapsSearchDefinitions[s],l=Homesnap.imageRootPath;fe.coStarBrand.is("citysnap")&&(l=l.replace("app_mls_website","app"));var r='1719 Military Street, Port Huron, MI, 48060 (2)');r+="".concat(i.sectionHeader),i.requires&&i.requires===Me.permissionLevel.PROPLUS&&(r+='1719 Military Street, Port Huron, MI, 48060 (3)')),n.innerHTML=r}}n.addEventListener("click",function(){var e=t.getCenter(),a=t.getZoom();Te.add("heatMapsMobile",new he.ChildController({type:"controllers/Search/HeatMapsMobile",namespace:Le.get(),register:{bubble:o,change:function(e){Ce.call("change",e)},updateLabel:function(e){n.innerHTML=e}}}),!0),Pe.updateController("heatMapsMobile",{data:{currentHeatMaps:Ge.heatMaps,latitude:e.lat(),longitude:e.lng(),zoom:a>17?a:18}})})}function oe(e,t){var o=document.createElement("div");o.classList.add("mb-20"),e.appendChild(o);var a=document.createElement("button");a.className="bs4--bg-white text-hs-blue map-list-toggle text-right hidden-xs hidden-sm bs4--border-0 paint-first-font",a.title="Hide List";var n=document.createElement("span");n.innerText="Hide List",hideListIcon=document.createElement("i"),hideListIcon.classList.add("material-icons"),hideListIcon.setAttribute("aria-hidden","true"),hideListIcon.innerText="arrow_right",n.appendChild(hideListIcon);var s=document.createElement("span");s.innerText="Show List";var i=document.createElement("i");i.classList.add("material-icons"),i.innerText="arrow_left",i.setAttribute("aria-hidden","true"),s.insertBefore(i,s.childNodes[0]),a.appendChild(n),o.appendChild(a),a.addEventListener("click",function(){var e=!0;"Hide List"==a.title?(a.title="Show List",a.replaceChild(s,n),a.style.paddingRight="5px"):(e=!1,a.title="Hide List",a.replaceChild(n,s),a.style.paddingRight="0"),Ce.call("listToggle",e)})}function ae(e,t){var o=document.createElement("div");o.className="mobile-list-toggle-btn bs4--rounded-circle mr-20",e.appendChild(o);var a=document.createElement("button");a.className="bs4--mt-auto bs4--border-0 bs4--bg-transparent paint-base-font",a.innerHTML="List",a.title="Toggle Search List",a.setAttribute("data-hide-status",!1),o.appendChild(a),a.addEventListener("click",function(){var e=a.getAttribute("data-hide-status");a.setAttribute("data-hide-status","false"===e),Ce.call("listToggle","false"===e)})}function ne(e){if(Ie){var t=Ge.paItems.markers.getItem(e.toString());t||(t=Ge.listingGroups.markers.getItem(e.toString())),t&&t.listingMarker.click()}else Ce.register("clickWhenMapReady_",function(){var t=Ge.paItems.markers.getItem(e.toString());t&&t.listingMarker.click()})}function se(e){if(ce&&ce.getZoom()<16)return!1;if(e&&e.group&&e.value){var t=Me.getHeatMapCriteria(e.group,e.value)||{};e.sectionKey=t.sectionKey,e.colors=t.colors,e.sectionValues=t.sectionValues}if(e&&e.sectionKey!=Ge.heatMaps.sectionKey&&Ge.heatMaps.polygon&&Ge.paItems.markers.each(function(e,t){var o=t;o.polygon&&o.setVisibility(!1)}),e&&null===e.sectionKey&&Ge.heatMaps.polygon)ie();else{var o=0;for(var a in Ge.paItems.data.items){if(!Ge.paItems.data.items.hasOwnProperty(a))return;var n=Ge.paItems.data.items[a],s=n[0]||null,i=null,l=null;if(!(Ge.heatMaps.sectionKey||e&&e.sectionKey))return;var r=s.polygon?O(s.polygon):null,d=e&&e.sectionKey?e.sectionKey:Ge.heatMaps.sectionKey,c=e&&e.sectionValues?e.sectionValues:Ge.heatMaps.sectionValues;for(var u in Me.heatMapsSearchDefinitions)if(Me.heatMapsSearchDefinitions.hasOwnProperty(u)){var p=Me.heatMapsSearchDefinitions[u];if(p.sectionKey==d){i=p.handleFilter,l=p.options;break}}var g=Ge.paItems.markers.getItem(s.id);g&&"function"==typeof g.testOverlay&&(g.testOverlay(c,i,r,l),g.polygon&&(Ge.heatMaps.polygon=!0)),o++}}e&&"object"==typeof e&&null!=e.sectionKey&&(Ge.heatMaps.sectionKey=e.sectionKey,Ge.heatMaps.colors=e.colors,Ge.heatMaps.sectionValues=e.sectionValues)}function ie(e,t){Ge.heatMaps.polygon&&(t?t&&t.polygon&&(e?t.removeOverlay():t.setVisibility(!1)):(Ge.paItems.markers.each(function(t,o){var a=o;a&&a.polygon&&(e?a.removeOverlay():a.setVisibility(!1))}),Ge.heatMaps={polygon:null,sectionKey:null,sectionValues:null,colors:null}))}function le(e,o,a){return'')}function re(){Te.uninit()}function de(e,t){var o;switch(e){case"window.scroll":case"window.resize":B(t.$window);break;case"window.newSize":ye=t.size.new.toString();break;case"savedSearchSuccess":Ge.ui.saveSearch.$dom&&Ge.ui.saveSearch.$dom.find(".polygon-btn").html(" Saved Search");break;case"searchHeaderChanged":(1==Ge.isSavedSearch||Ge.ui.saveSearch.$dom&&Ge.ui.saveSearch.$dom.find(".hs-check"))&&(Ge.isSavedSearch=!1,Ge.ui.saveSearch.$dom&&Ge.ui.saveSearch.$dom.find(".polygon-btn").html("Save Search"));break;case"saveSearchBtn.toggle":t&&"hide"===t.visibility?(Ge.ui.saveSearch.$dom&&Ge.ui.saveSearch.$dom.addClass("hidden"),Ge.ui.polygon.status&&Ge.ui.polygon.$dom&&Ge.ui.polygon.$dom.find(".polygon-btn").css("border-radius","20px")):(Ge.ui.saveSearch.$dom&&Ge.ui.saveSearch.$dom.removeClass("hidden"),Ge.ui.polygon.status&&Ge.ui.polygon.$dom&&Ge.ui.polygon.$dom.find(".polygon-btn").css("border-radius","")),ce&&ce.controls&&setTimeout(function(){ce.controls[2].push(""),ce.controls[2].pop()},5);break;case"heatMapSelectionChanged":var a=Ge.heatMaps.sectionKey!==t.sectionKey;if(Ie?se(t):t.sectionKey&&t.sectionValues&&(Ge.heatMaps.sectionKey=t.sectionKey,Ge.heatMaps.colors=t.colors,Ge.heatMaps.sectionValues=t.sectionValues),1==Ge.isSavedSearch?Ge.isSavedSearch=!1:Ge.ui.saveSearch.$dom&&Ge.ui.saveSearch.$dom.find(".polygon-btn").html("Save Search"),null!==(o=Ge.bubble.marker)&&void 0!==o&&o.listingMarker&&a){var n=Ge.bubble.marker.pa[0].id;Ge.paItems.markers.getItem(n).listingMarker.click()}Te.event("HeatMapSelection.Changed",t);break;case"heatMapsSelectionClear":ie(!0,null);break;case"heatMapsBtn.toggle":4===t?(Ge.ui.heatMaps.$dom&&Ge.ui.heatMaps.$dom.removeClass("hidden"),Ge.ui.heatMaps2.$dom&&Ge.ui.heatMaps2.$dom.removeClass("hidden")):(Ge.ui.heatMaps.$dom&&Ge.ui.heatMaps.$dom.addClass("hidden"),Ge.ui.heatMaps2.$dom&&Ge.ui.heatMaps2.$dom.addClass("hidden"));break;case"heatMapsBtn.UpdateMargin":Ge.ui.heatMaps2.$dom&&Ge.ui.heatMaps2.$dom.css("margin-bottom",t)}Te.event(e,t)}var ce,ue,pe,ge,me,ye,he=e("ControllerObjects"),ve=e("Objects"),fe=e("Utilities"),be=e("Application"),we=e("jquery"),ke=e("modules/CommuteTimePlaces"),Me=e("SearchDefinitions"),Se=e("lodash"),Le=new he.Unique(t),Ce=new he.Callbacks,Te=new he.ChildControllerManager,Pe=new he.StateManager(Te,{}),xe=!1,Ie=!1,Ae=[],Ee=[],He=[],Oe="hideRegistrationReminder",$e=new ve.CacheWithLocalStorage(50,"Map_Register_Reminder",!0,0),ze="localContextPlaceTypes",_e=new ve.CacheWithLocalStorage(50,"Map_Local_Context_Place_Types",!1,0),De=!1,Be=function(){var e=we.Deferred();return be.getCurrentUser(function(t){me=t.user,De=Se.get(me,"currentDetails.products.pro.availableForUse"),e.resolve()}),e}();be.getDeviceSize(function(e){ye=e});var Re,je,Ke,Ne,Ve,Ze=function(e){this.status=e,this.$dom=null},Ge={clusters:{markers:[]},listingGroups:{markers:new ve.HashTable,data:new ve.HashTable},paItems:{markers:new ve.HashTable,data:new ve.HashTable},singlePropertyAddressItem:null,schools:{markers:new ve.HashTable,data:new ve.HashTable},multiAreasSchools:{markers:new ve.HashTable,data:new ve.HashTable},commuteTimePlaces:{markers:[]},listingMapDots:{markers:[]},polygon:{polygon:null,bounds:null,marker:null,type:null,data:null,listeners:{zoom:null}},bounds:null,propertyTiles:!1,offMarketTiles:!1,type:null,zoom:null,bubble:{overlay:null,marker:null},isSavedSearch:null,ui:{schools:new Ze(!1),polygon:new Ze(!0),zoom:new Ze(!0),lotPolygons:new Ze(!0),draw:new Ze(!1),saveSearch:new Ze(!1),commuteTime:new Ze(!1),heatMaps:new Ze(!1),heatMaps2:new Ze(!1),listToggle:new Ze(!1),mobileListToggle:new Ze(!1),mapTypeToggle:new Ze(!1),layersFab:new Ze(!1),localContextPlaces:new Ze(!1)},heatMaps:{polygon:null,sectionKey:null,sectionValues:null,colors:null},transactionType:null,localContext:{mapShown:!1,contextBubbleVisible:!1},drivingDirections:{renderer:null,markers:[]}},We=(we.extend(!0,{},Ge),{listingGroups:{data:new ve.HashTable},paItems:{data:new ve.HashTable},schools:{data:new ve.HashTable},multiAreasSchools:{data:new ve.HashTable},bounds:null,heatMaps:{polygon:null,sectionKey:null,sectionValues:null,colors:null},transactionType:null}),Fe={default:null,hide:[{featureType:"poi",stylers:[{visibility:"off"}]},{featureType:"transit",elementType:"labels.icon",stylers:[{visibility:"off"}]}]};return{show:function(e,t){Ie?h(e,t):Ae.push({type:e,settings:t})},set:function(e,t){Ie?m(e,t):He.push({type:e,settings:t})},clear:function(e,t){Ie?y(e,t):Ee.push({type:e,settings:t})},click:function(e){e&&ne(e)},hideBubble:function(){D()},update:a,restore:function(e){Pe.restore(e,n)},uninit:re,getState:Pe.getState.bind(Pe),register:Ce.register.bind(Ce),event:de}}});//# sourceMappingURL=https://assets.homesnap.com/app/js_min/controllers/Map.js.map?hash=c3c839f8562d56cc1d5bad68dcb0e1dedefine("controllers/MortgageCalculatorCollapse",["require","ControllerObjects"],function(e){return function(t){function a(e){p.call("bubble",e)}function r(){c=!1;try{g.requireDom(),g.require("price"),g.optional("propertyAddressItem")}catch(e){throw e}d.template.get({$dom:g.$dom,data:{}})}function o(r){var o;n=r.$dom,e(["modules/collapse"],function(e){if(void 0===e)return!1;new e({$label:n.divMortgageCalculatorLabel,$chevron:n.spanMortgageCalculatorCollapseChevron,$collapseContainer:n.divMortgageCalculatorCollapse,open:!(!r.pass||!r.pass.accordionOpen)&&r.pass.accordionOpen}).register("shown",function(){if(c)return!1;u.add("mortgageCalculator2",new i.ChildController({type:"controllers/MortgageCalculator",namespace:s.get(),register:{bubble:a}}),!0),g.updateController("mortgageCalculator2",{$dom:n.divMortgageCalculatorCollapse,data:{price:g.get("price"),propertyAddressItem:g.get("propertyAddressItem"),propertyDetails:g.get("propertyDetails")}}),c=!0})}),null!==(o=g.get("propertyDetails"))&&void 0!==o&&o.taxes&&a({type:"reflect",name:"MortgageCalculator.update.propertyTax",data:{namespace:t,value:g.get("propertyDetails").taxes}})}function l(e,t){var a;switch(e){case"Mortgage.MonthlyPayment":null!==t&&void 0!==t&&null!==(a=t.data)&&void 0!==a&&a.monthlyPayment&&g.set("monthlyPayment",t.data.monthlyPayment)}u.event(e,t)}var n,c,i=e("ControllerObjects"),s=new i.Unique(t),p=new i.Callbacks,u=new i.ChildControllerManager,g=new i.StateManager(u,{}),d={template:new i.Getter({namespace:s.get(),success:function(e){try{o(e)}catch(e){throw g&&console.info(g),e}},template:{url:"controllers/MortgageCalculatorCollapse.html",dom:["divMortgageCalculatorLabel","spanMortgageCalculatorCollapseChevron","divMortgageCalculatorCollapse"]}})};return{update:function(e){g.update(e),r()},restore:function(e){g.restore(e,r)},uninit:function(){u.uninit()},getState:g.getState.bind(g),register:p.register.bind(p),event:l}}});//# sourceMappingURL=https://assets.homesnap.com/app/js_min/controllers/MortgageCalculatorCollapse.js.map?hash=844098dc749459a7d784b0910ea15aa9define("controllers/MortgagePayment",["require","ControllerObjects","Objects"],function(e){return function(t){function r(e){m.call("bubble",e)}function o(){try{y.requireDom(),y.require("price"),y.optional("propertyAddressItem")}catch(e){throw e}c=y.get("price"),u=y.get("propertyAddressItem"),d=y.get("propertyTax"),n(),y.$dom.on("click keyup",function(e){if(13===e.keyCode||"click"===e.type)return v.add("calc",new s.ChildController({type:"controllers/MortgageCalculator",namespace:g.get(),register:{bubble:r}}),!0),y.updateController("calc",{data:{price:c,propertyAddressItem:u,propertyTax:d}}),!1})}function n(){var e,t,r,o,n,l,s,g;i=new p.MortgageCalculation(f.get(!0,"calculation"));var m=null===(e=u)||void 0===e?void 0:null===(t=e.monthlyPropertyTax)||void 0===t?void 0:t.raw,v=null!==(r=d||12*m)&&void 0!==r?r:0,C=null!==(o=null===(n=u)||void 0===n?void 0:null===(l=n.listing)||void 0===l?void 0:null===(s=l.fees)||void 0===s?void 0:null===(g=s.monthlyFee)||void 0===g?void 0:g.raw)&&void 0!==o?o:0;c&&i.setDollarAmount(c,"price"),i.setAmountOrPercent(v,"propertyTax","isPropertyTaxPercent_"),i.setDollarAmount(C,"hoaCondoFees"),y.$dom.text(i.payment.dollars),y.$dom.attr("title",a())}function a(){var e="$".concat(i.down.amount.short," down; ");return 0===i.term.months?e="total monthly fees (tax, insurance, common charge)":(e+="".concat(i.rate.decimal3,"% "),e+=i.term.name),e}function l(e,t){switch(e){case"MortgageCalculator.update":n();break;case"MortgageCalculator.update.propertyTax":y.set("propertyTax",t.value)}v.event(e,t)}var i,c,u,d,s=e("ControllerObjects"),p=e("Objects"),g=new s.Unique(t),m=new s.Callbacks,v=new s.ChildControllerManager,y=new s.StateManager(v,{}),f=new p.LocalStorage("MortgageCalculator");return{update:function(e){y.update(e),o()},restore:function(e){y.restore(e,o)},uninit:function(){v.uninit()},getState:y.getState.bind(y),register:m.register.bind(m),event:l}}});//# sourceMappingURL=https://assets.homesnap.com/app/js_min/controllers/MortgagePayment.js.map?hash=51099d8b2e1cad4965fdc3c510c455e3define("controllers/MyAgent/Form",["require","ControllerObjects","Objects","Application","Utilities"],function(e){return function(t){function n(e){x.call("bubble",e)}function i(e){T.update(e),r()}function r(){try{T.requireDom(),T.require("item","HSMyAgent")}catch(e){throw e}w=T.get("item"),q=T.get("propertyAddressItem"),T.get("currentUser")?(v=T.get("currentUser"),a()):M.getCurrentUser(function(e){v=e.user,a()},!0)}function a(){k.template.get({$dom:T.$dom,data:{}})}function o(t){g=t.$dom,g.inputMessage.on("focus",function(e){return d(),!1}),g.inputMessage.on("change",function(e){g.inputMessage.val()!==b&&(y=!0)}),g.inputNumber.on("blur",function(e){var t=$(e.currentTarget);t.val(t.val().trim())}),g.form.on("submit",function(t){return T.get("viewAsPublic",!1)?(alert("This is a preview for demonstration purposes only"),!1):(d()&&(g.fieldset.attr("disabled",!0),C=g.inputName.val()||(v.name?v.name.full:void 0),D=g.inputEmail.val()||v.email,A=g.inputNumber.val()||(v.phone?v.phone.withDashes:void 0),f?k.conversationsCreate.get({data:{entities:[{entityType:w.entity.entityType,entityID:w.entity.entityID}],propertyAddressID:q?q.id:void 0,propertyID:q?q.propertyID:void 0,listingID:q&&q.listing?q.listing.id:void 0,text:g.inputMessage.val(),source:10}}):k.leadGenRequest.get({data:{entityType:w.entity.entityType,entityID:w.entity.entityID,text:g.inputMessage.val(),name:C,email:D,phone:A,propertyAddressID:q?q.id:void 0,propertyID:q?q.propertyID:void 0,listingID:q&&q.listing?q.listing.id:void 0,url:window.location.href,source:T.get("source",0)}}),e(["modules/FBDare"],function(e){void 0!==e&&e.fbDareEvent("Purchase",q&&q.listing?[q.listing.id]:null)})),!1)}),l()}function s(e){e.data&&e.data.errorCode&&e.data.errorCode.success?n({type:"sent",data:{item:w,method:"message",name:C,email:D,phone:A}}):g.fieldset.attr("disabled",!1)}function u(e){e.data&&e.data.errorCode&&e.data.errorCode.success?(n({type:"sent",data:{item:w,method:"lead",name:C,email:D,phone:A}}),"function"==typeof gtag&&gtag("event","listing_lead_form_submitted")):(g.divError.removeClass("bs4--d-none"),e.data&&e.data.errorCode?e.data.errorCode.nameRequired?g.divError.text("Your name is required"):e.data.errorCode.emailRequired?g.divError.text("Your email is required"):e.data.errorCode.phoneRequired&&g.divError.text("Your phone is required"):g.divError.text("Ack! An error occurred"),g.fieldset.attr("disabled",!1))}function d(){var e,t=["name","email","phone"];g.inputMessage.prop("rows","3");for(var n=0;n-1,details:h.get("propertyDetails")}}})}):t.get({$dom:h.$dom,data:e,map:function(e){return{items:Array.isArray(e)?e:[e],details:h.get("propertyDetails")}}}):m.call("display",!1)},!0)}function o(e){f=e.$dom;var t=e.data.details,n=e.data.items,r=n.filter(function(e){return e&&e.relationType&&e.relationType.aboveTheFold}).sort(function(e,t){return e.rank>t.rank?-1:e.rank",dom:["divItem"]}},controller:{type:"controllers/MyAgent/Item",dataFn:function(e){var t;return{item:e,checkbox:r&&r.length>1,checked:e===w,radio:!0,brand:!0,propertyAddressItem:A,note:!0,link:D&&2===(null===e||void 0===e?void 0:null===(t=e.entity)||void 0===t?void 0:t.entityType)}}}}}}),h.updateController("form",{$dom:f.divForm,data:{item:w,propertyAddressItem:A,viewAsPublic:h.get("viewAsPublic",!1),source:h.get("source",0)}}),null!==t&&void 0!==t&&null!==(d=t.status)&&void 0!==d&&d.enableCoExclusiveListing&&(v.add("listingRelatedListings",new g.ChildController({type:"controllers/Property/ListingRelatedListings",namespace:c.get(),register:{bubble:i}}),!0),h.updateController("listingRelatedListings",{$dom:f.divRelatedListings,data:{propertyDetails:t,listingID:A.listing.id}}))}o.length&&(m.call("display",!0),f.divPanel.removeClass("bs4--d-none"),r.length||f.divPending.removeClass("border-top-grey"),v.add("pending",new g.ChildController({type:"controllers/MyAgent/PendingItems",namespace:c.get(),register:{bubble:i}}),!0),h.updateController("pending",{$dom:f.divPending,data:{items:o,showHeads:!0,also:!0}}),f.divPending.removeClass("bs4--d-none"))}else m.call("display",!1)}function a(e){return e.reduce(function(e,t){return-1===e.indexOf("HSUserItem")&&u.ajax.isType(t.entity,"HSUserItem")?e.push("HSUserItem"):-1===e.indexOf("HSBrokerage")&&u.ajax.isType(t.entity,"HSBrokerage")&&e.push("HSBrokerage"),e},[])}function l(e){w=e,v.event("selected",w)}function s(e){v.add("sent",new g.ChildController({type:"controllers/MyAgent/Sent",namespace:c.get(),register:{bubble:i}}),!0),h.updateController("sent",{$dom:h.$dom,data:{item:e.item,propertyAddressItem:A,method:e.method,name:e.name,email:e.email,phone:e.phone}}),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"HSLeadFormSubmit"})}function d(e,t){"window.newSize"===e&&h.get("twoColumnLayout",!1)&&r(),v.event(e,t)}var g=e("ControllerObjects"),y=e("Objects"),u=e("Utilities"),p=e("Application"),c=new g.Unique(t),m=new g.Callbacks,v=new g.ChildControllerManager,h=new g.StateManager(v,{});v.add("items",new g.ChildController({type:"controllers/GenericObservableArray",namespace:c.get(),register:{bubble:i}})),v.add("form",new g.ChildController({type:"controllers/MyAgent/Form",namespace:c.get(),register:{bubble:i}}));var f,b,w,A,C={myAgentsListRelevant:new g.Getter({namespace:c.get(),success:function(e){try{o(e)}catch(e){throw h&&console.info(h),e}},failure:function(){throw h&&console.info(h),new Error("My Agent Master controller: MyAgentsListRelevant Unhandled Error")},template:{url:"controllers/MyAgent/Master.html",dom:["divPanel","divHeader","divItems","divForm","divPending","divRelatedListings"]},webService:"/service/MyAgents/ListRelevant",type:[y.HSMyAgent],cache:{expire:0}}),myAgentsGet:new g.Getter({namespace:c.get(),success:function(e){try{o(e)}catch(e){throw h&&console.info(h),e}},failure:function(){throw h&&console.info(h),new Error("My Agent Master controller: MyAgentGet Unhandled Error")},template:{url:"controllers/MyAgent/Master.html",dom:["divPanel","divHeader","divItems","divForm","divPending","divRelatedListings"]},webService:"/service/MyAgents/Get",type:y.HSMyAgent,cache:{expire:0}})};return window.dataLayer=window.dataLayer||[],window.dataLayer.push({"gtm.start":(new Date).getTime(),event:"gtm.js"}),e(["gtm"],function(){},function(){}),{update:function(e){h.update(e),r()},restore:function(e){h.restore(e,r)},uninit:function(){v.uninit()},getState:h.getState.bind(h),register:m.register.bind(m),event:d}}});//# sourceMappingURL=https://assets.homesnap.com/app/js_min/controllers/MyAgent/Master.js.map?hash=6aa0f8df62ddf7d7654c2967aa0a1d22define("controllers/Property/PropertyAddressHeader",["require","ControllerObjects"],function(e){return function(i){function t(e){g.call("bubble",e)}function l(e){m.update(e),r()}function r(){var e,i,t;try{m.requireDom(),m.require("propertyAddressItem")}catch(e){throw e}var l=m.get("propertyAddressItem"),r=(l.propertyID,!l.primaryImage&&l.propertyID&&l.listing,(null===(e=l.building)||void 0===e?void 0:null===(i=e.buildingMedia)||void 0===i?void 0:i.length)>2||(null===(t=l.buildingMedia)||void 0===t?void 0:t.length)>2);p.get({$dom:m.$dom,data:{propertyAddressItem:l,showImageSlider:l.primaryImage||r,hasBuildingMedia:r,buildingMedia:r?null:a(l)}})}function n(i){var t=i.$dom,l=i.data||{},r=l.propertyAddressItem||{};if(r.primaryImage)d(r,t);else if(l.hasBuildingMedia)d(r,t);else{var n;if(null!==(n=r.status)&&void 0!==n&&n.suppressGoogleStreetView)e(["modules/StaticMap"],function(e){e&&e.get({$dom:t.divPrimaryImage,type:"satellite",lat:r.latitude,lng:r.longitude,polygon:"lot"})}),e(["modules/StaticMap"],function(e){e&&e.get({$dom:t.divHeaderMapContainer,type:"roadmap",lat:r.latitude,lng:r.longitude,zoom:16,marker:!0})});else{var a,o,u;null!==(a=r.building)&&void 0!==a&&a.imageUrl||e(["modules/StaticMap"],function(e){void 0!==e&&e.get({$dom:t.divPrimaryImage,type:"street",polygon:"lot",lat:r.latitude,lng:r.longitude,address:r.building?r.address:null})}),null!==(o=r.building)&&void 0!==o&&null!==(u=o.buildingMedia)&&void 0!==u&&u[1]||e(["modules/StaticMap"],function(e){void 0!==e&&e.get({$dom:t.divHeaderMapContainer,type:"satellite",lat:r.latitude,lng:r.longitude,zoom:16,polygon:"lot"})})}}}function d(e,i){s.add("slider",new o.ChildController({type:"controllers/ImageSlider",namespace:u.get(),register:{bubble:t}}),!0),m.updateController("slider",{$dom:i.divImageSlider,data:{propertyAddressItem:e,listingID:m.get("listingID")}})}function a(e){var i,t=[];return null!==(i=e.building)&&void 0!==i&&i.imageUrl?(t.push(e.building.imageUrl.replace("/{size}/","/114/")),e.building.buildingMedia&&e.building.buildingMedia.forEach(function(i){e.building.imageUrl!==i.url&&t.push(i.url.replace("/{size}/","/114/"))})):e.imageUrl&&(t.push(e.imageUrl.replace("/{size}/","/114/")),null===e||void 0===e||e.buildingMedia.forEach(function(i){e.imageUrl!==i.url&&t.push(i.url.replace("/{size}/","/114/"))})),t}var o=e("ControllerObjects"),u=new o.Unique(i),g=new o.Callbacks,s=new o.ChildControllerManager,m=new o.StateManager(s,{}),p=new o.Getter({namespace:u.get(),success:function(e){try{n(e)}catch(e){throw void 0!==m&&null!==m&&console.info(m),e}},template:{url:"controllers/Property/PropertyAddressHeader.html",dom:["video","divPrimaryImageRow","divPrimaryImage","divImageSlider","divHeaderMapContainer","divJumbotron"]}});return{update:l,restore:function(e){m.restore(e,r)},uninit:function(){s.uninit()},getState:m.getState.bind(m),register:g.register.bind(g),event:function(e,i){s.event(e,i)}}}});//# sourceMappingURL=https://assets.homesnap.com/app/js_min/controllers/Property/PropertyAddressHeader.js.map?hash=3c3433865e61166a6f3d977551cc774dfunction ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}function _objectSpread(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{};f.getIDXBrand(function(t){if(!t){var a;null!==(a=e.features)&&void 0!==a&&a.showByTenXOnHomesnap&&f.getCurrentUser(function(e){var t,a=(null===e||void 0===e?void 0:e.user)||{};null!==(t=a.permissions)&&void 0!==t&&t.mlsAgent||a.clientDetails||(P.idxDisclaimer.removeClass("bs4--d-none"),r({type:"reflect",name:"headerBrand.showByTenX"}))})}})})}),e(["ga"],function(e){if("function"!=typeof e)return!1;if(D.get("listingID")||D.get("propertyID")){var t=H.beds?H.beds.raw:null,r=H.sPropertyType2?H.sPropertyType2.string:null,a=H.price?H.price.raw:null;if(a){var i=a/5e4,o=Math.round(i);a=o>0?5e4*o:a}D.get("listingID")&&e("set","dimension4",D.get("listingID")),e("set","dimension1",t),e("set","dimension2",r),e("set","dimension3",a),e("send","pageview"),e("set",{dimension1:null,dimension2:null,dimension3:null,dimension4:null})}}),t.data.badges&&P.divBadges&&D.updateController("badges",{$dom:P.divBadges,data:{badges:t.data.badges,classes:"pr-20 pl-20"}}),(t.data.actionBar&&P.divActionBar||D.$dom.actionBar)&&(S=D.$dom&&D.$dom.actionBar?D.$dom.actionBar:P.divActionBar,T=!0),S&&(w.add("actionBar",new v.ChildController({type:"controllers/ActionBar",namespace:I.get(),register:{bubble:r}}),!0),D.updateController("actionBar",{$dom:S,data:{propertyAddressItem:H,showShare:!0,showFavorite:!0,showContactAgent:!0,showContact:!0,showSendInAMessage:!0,showInverseColors:T}})),D.updateController("searchBreadCrumbs",{$dom:P.divBreadCrumbs,data:{propertyAddressItem:H,searchDefinition:D.get("searchDefinition")}}),H.listing&&H.transactionType&&H.transactionType.forSale&&H.price&&(w.add("payment",new v.ChildController({type:"controllers/MortgagePayment",namespace:I.get(),register:{bubble:r}}),!0),D.updateController("payment",{$dom:P.spanEstMortgage,data:{price:t.data.propertyAddressItem.price.raw,propertyAddressItem:t.data.propertyAddressItem}})),D.updateController("header",{$dom:t.$dom.divHeader,data:{propertyAddressItem:H,listingID:D.get("listingID")}});var C=0,A=(null===(a=H)||void 0===a?void 0:a.address)&&!H.address.unitNumber;if((null===(i=H)||void 0===i?void 0:null===(o=i.unitCount)||void 0===o?void 0:o.raw)>1&&A&&C++,null!==(s=H)&&void 0!==s&&s.beds&&C++,null!==(n=H)&&void 0!==n&&n.baths&&C++,null!==(d=H)&&void 0!==d&&d.lotSize&&A&&C++,null!==(p=H)&&void 0!==p&&p.sqFt&&C++,null!==(c=H)&&void 0!==c&&c.yearBuilt&&C++,0===C)P.divKeyStats.addClass("hidden");else{var B=P.divKeyStats.width(),M=B/C;P.divKeyStats.find("span").each(function(){$(this).css("max-width",M)})}var L=D.$dom&&D.$dom.content?D.$dom.content:D.$dom;D.updateController("propertyCommuteTimes",{$dom:P.divPropertyCommuteTimes,data:{propertyAddressItem:H}}),t.data.searchMatches&&(w.add("buildingSearchMatches",new v.ChildController({type:"controllers/Property/SearchMatches",namespace:I.get(),register:{bubble:r}}),!0),D.updateController("buildingSearchMatches",{$dom:P.buildingSearchMatches,data:t.data}));var k=D.get("searchDefinition"),O=y(D.get("qs",{}));if(D.get("listingID")>0)j.getListingDetails.get({$dom:L,data:{listingID:D.get("listingID"),parts:506,schoolsPolygonType:1,impersonateAs:D.get("preview",!1)?4:void 0,promo:O},pass:{propertyStatus:H&&H.propertyStatus?H.propertyStatus:void 0}});else if(D.get("propertyID")>0){var _;j.getPropertyDetails.get({$dom:L,data:{propertyID:D.get("propertyID"),parts:26,transactionType:k&&2==(null===(_=k.transactionType)||void 0===_?void 0:_.value)?k.transactionType.value:1,promo:O}})}else if(D.get("propertyAddressID")>0){var E;j.getPropertyAddressDetails.get({$dom:L,data:{propertyAddressID:D.get("propertyAddressID"),parts:26,transactionType:k&&2==(null===(E=k.transactionType)||void 0===E?void 0:E.value)?k.transactionType.value:1,promo:O}})}}function l(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;"function"==typeof gtag&&(r?gtag("set",{listingID:"".concat(r)}):gtag("set",{listingID:void 0}),gtag("event","Listing viewed",{event_category:e,event_label:t,send_to:Homesnap.citySnapGTagID}))}function p(e){var t,r=D.get("currentHeatMap"),a=h.propertyAddress.getStatusBadges(H);r&&"function"==typeof r.getBannerColorAndLabel&&(t=r.getBannerColorAndLabel.call(r,H))&&t.textColor&&(t.style="color: ".concat(t.textColor)),t?a.push(t):e&&a.push(e),j.main.get({$dom:D.$dom&&D.$dom.content?D.$dom.content:D.$dom,data:{propertyAddressItem:H,badges:a,actionBar:D.get("actionBar")||!1,searchMatches:D.get("searchMatches"),appMode:O,isCitysnap:h.coStarBrand.is("citysnap")}})}function c(t,a){var i,o,s,n,d,l,p,c,m,g,b,C,f,S,T,B,$,M=null!==(i=t.data)&&void 0!==i?i:{};null!==(o=M.defaultParentArea)&&void 0!==o&&o.cityModeID&&e(["modules/AppMode"],function(e){if(void 0!==e){var t;e().parse(null===(t=M.defaultParentArea)||void 0===t?void 0:t.cityModeID,!1,a)}});var k={propertyAddressItem:H,detailsData:M,image:H.primaryImage?H.primaryImage.large:null,url:H.url,description:M.remarks?M.remarks:null!==(s=M.metaDescription)&&void 0!==s?s:"",name:"".concat(H.address.fullStreetAddress,", ").concat(H.address.cityStateZip),address:H.address,propertyType:M.propertyType?M.propertyType:null,productId:H.id,sqFt:H.sqFt,latitude:H.latitude,longitude:H.longitude,price:M.currentPrice?M.currentPrice.raw:null!==(n=null===(d=H.price)||void 0===d?void 0:d.raw)&&void 0!==n?n:null,secondaryImages:H.secondaryImages&&H.secondaryImages.length>2?H.secondaryImages.slice(0,2):H.secondaryImages,transactionType:H.transactionType,openHouse:M.openHouses?M.openHouses:null,singleFamilyResidence:M.sPropertyType2&&M.sPropertyType2.raw&&(1===M.sPropertyType2.raw||2===M.sPropertyType2.raw||4===M.sPropertyType2.raw||64===M.sPropertyType2.raw)};D.updateController("schema",{$dom:P.divSchema,data:{schemaData:k}}),w.get("actionBar").event("listingDetails.loaded",M);var O=M&&M.price?M.price:null;if(H.price&&O&&O.raw!==H.price.raw&&P.divPriceContainer.text(O.dollars),w.add("propertySidebar",new v.ChildController({type:"controllers/Property/PropertySidebar",namespace:I.get(),register:{bubble:r}})),H){var _=D.get("qs",{});D.updateController("propertySidebar",{$dom:P.divSideBar,data:{details:M,propertyAddressItem:H,sticky:["md","lg"],ref:D.get("ref"),preview:D.get("preview",!1),mlsFeedbackParams:D.get("mlsFeedbackParams")?D.get("mlsFeedbackParams"):U.get("MLSFeedbackParams"),mobileActionsContainer:P.divMobileActionsContainer,mobileConversationsContainer:P.divMobileConversations,mobileAgentsContainer:P.divMobileAgents,entityID:M.id,qs:_,promo:y(_)}})}!H.listing&&H.propertyID&&D.updateController("likelihoodToList",{$dom:P.divLikelihoodToList,data:{propertyAddressItem:H}}),H&&H.propertyID&&D.updateController("ownershipSnapshot",{$dom:P.divOwnershipSnapshot,data:{isListing:H.listing,propertyID:H.propertyID,attributes:H.attributes}});var x={};if(M&&"HSPropertyAddressDetail"===M.type_?x.propertyAddress=M:M&&"HSPropertyAddressItem"===M.type_?x.property=M:x.listing=M,H.building&&(x.building=H.building),M&&M.listingID&&(w.add("listingRemarks",new v.ChildController({type:"controllers/Property/ListingRemarks",namespace:I.get(),register:{bubble:r}}),!0),D.updateController("listingRemarks",{$dom:P.divListingRemarks,data:x})),null!==(l=L)&&void 0!==l&&null!==(p=l.status)&&void 0!==p&&p.isAdmin&&(w.add("propertyAdminPanel",new v.ChildController({type:"controllers/Property/PropertyAdminPanel",namespace:I.get(),register:{bubble:r}}),!0),D.updateController("propertyAdminPanel",{$dom:P.divPropertyAdminPanel,data:x})),w.add("propertySummary",new v.ChildController({type:"controllers/Property/PropertySummary",namespace:I.get(),register:{bubble:r}})),D.updateController("propertySummary",{$dom:P.divPropertySummary,data:_objectSpread(_objectSpread({},x),{},{propertyAddressItem:H})}),x&&(x.listing&&(null!==(c=x.listing.buildingAmenities)&&void 0!==c&&c.length||null!==(m=x.listing.amenities)&&void 0!==m&&m.length)||x.propertyAddress&&(null!==(g=x.propertyAddress.amenities)&&void 0!==g&&g.length||null!==(b=x.propertyAddress.buildingAmenities)&&void 0!==b&&b.length)||x.property&&(null!==(C=x.property.amenities)&&void 0!==C&&C.length||null!==(f=x.property.buildingAmenities)&&void 0!==f&&f.length))&&(P.divPropertyAmenities.removeClass("bs4--d-none"),w.add("propertyAmenities",new v.ChildController({type:"controllers/Property/PropertyAmenities",namespace:I.get(),register:{bubble:r}}),!0),D.updateController("propertyAmenities",{$dom:P.divPropertyAmenities,data:x})),M.defaultParentAreaID&&(null!==(S=M.defaultParentArea)&&void 0!==S&&null!==(T=S.areaTypeFlag)&&void 0!==T&&T.neighborhoods||null!==(B=M.defaultParentArea)&&void 0!==B&&null!==($=B.areaTypeFlag)&&void 0!==$&&$.zips)&&(P.divExploreNeighborhoodContainer.removeClass("bs4--d-none"),P.aExploreNeighborhood.attr("href","/area".concat(M.defaultParentArea.url,"/").concat(M.defaultParentAreaID)).on("click",function(e){var t=Object.assign({},M.defaultParentArea,{showAreaPage:!0});return r({type:"url.unhandled",url:e.currentTarget.getAttribute("href"),data:t}),!1})),P.divThrobber.remove(),P.listingMediaCardsContainer.removeClass("hidden"),"HSListingDetail"===M.type_&&(w.add("listingHistoryCapsule",new v.ChildController({type:"controllers/ListingHistoryCapsule",namespace:I.get(),register:{bubble:r}}),!0),D.updateController("listingHistoryCapsule",{$dom:P.divListingHistoryCapsule,data:{propertyAddressItem:H,listing:M}})),M&&M.openHouses&&M.openHouses.length>0){var F,G;j.getOpenHouse=new v.Getter({namespace:I.get(),template:{name:"controllers/Property/PropertyAddressMaster_OpenHouse",html:'

    \t

    Open House

    \t

    \t{{#each this}} \t

    " "1"}} bs4--col-sm-6{{/compare}} bs4--col-12">

    \t{{/each}} \t

    ',dom:[["divOpenHouse"]]}}),j.getOpenHouse.get({$dom:P.divOpenHouses,data:M.openHouses,success:function(e){w.add("openHouse",new v.ChildControllerArray({type:"controllers/ListingOpenHouse",namespace:I.get(),register:{bubble:r}}),!0),D.updateController("openHouse",{$dom:e.$dom.divOpenHouse,data:e.data.map(function(e){return{openHouse:e,propertyAddressItem:H}})})}}),M&&null!==(F=M.openHouses[0])&&void 0!==F&&null!==(G=F.method)&&void 0!==G&&G.virtual&&w.event("media.available",{mediaType:"openHouseLink",linkURL:M.openHouses[0].virtualURL,posterImageURL:H.primaryImage?H.primaryImage.large:null})}if(w.add("history",new v.ChildController({type:"controllers/Property/PropertyHistory",namespace:I.get(),register:{bubble:r}}),!0),D.updateController("history",{$dom:P.divHistory,data:{propertyAddressItem:H,history:M.history,propertyStatus:H&&H.propertyStatus?H.propertyStatus:null}}),M.propertyCount&&M.propertyCount.raw>0){w.add("propertyUnits",new v.ChildController({type:"controllers/Property/PropertyUnits",namespace:I.get(),register:{bubble:r}}));var q=M.supportsPublicRecordDocuments;D.updateController("propertyUnits",{$dom:P.divUnits,data:{propertyAddressID:M.id,supportsACRIS:q}}),r({type:"trackUserEvent",data:{webServiceName:"propertyAddresses",userEventType:1,associatedEntityType:5,associatedEntityID:M.id}})}if(M&&(M.valuePercentChange||M.rentPercentChange||M.rent&&M.rentLow&&M.rentHigh||M.value&&M.valueLow&&M.valueHigh)?(w.add("analysis",new v.ChildController({type:"controllers/Property/PropertyAnalysis",namespace:I.get(),register:{bubble:r}}),!0),D.updateController("analysis",{$dom:P.divAnalysis,data:{propertyDetails:M}})):P.divAnalysis.remove(),D.updateController("collapses",{$dom:P.divCollapses,data:{propertyDetails:M,propertyAddressItem:H,accordionOpen:!(D.$dom&&D.$dom.content)}}),M&&M.listingID){var N=M;w.add("listingDisclaimer",new v.ChildController({type:"controllers/ListingDisclaimer",namespace:I.get(),register:{bubble:r}}),!0),D.updateController("listingDisclaimer",{$dom:P.divListingDisclaimer,data:{mlsID:N.mlsID,sourceNumber:N.sourceNumber,listingID:N.listingID,modificationTimestamp:N.modificationTimestamp}})}M&&M.schools.length>0&&(w.add("schoolDisclaimer",new v.ChildController({type:"controllers/SchoolDisclaimer",namespace:I.get(),register:{bubble:r}}),!0),D.updateController("schoolDisclaimer",{$dom:P.divSchoolDisclaimer})),D.updateController("nearByAreas",{$dom:P.divNearByAreas,data:{propertyAddressID:D.get("propertyAddressID"),propertyID:D.get("propertyID"),listingID:M.listingID?M.listingID:null,propertyAddressItem:M,searchDefinition:D.get("searchDefinition")}}),P.btnSuggestEdit.length&&H.propertyID&&P.btnSuggestEdit.on("click",function(e){return u(H.propertyID),!1}),H.url&&(D.url=new v.ControllerStateUrl(H.url,h.propertyAddress.getPageTitle(H),M.metaDescription)),E&&(E=!1,A.call("bubble",{type:"url.handled",data:H})),A.call("bubble",{type:"url.update"})}function u(e){w.add("userSuggestedEdit",new v.ChildController({type:"controllers/UserSuggestedEdit",namespace:I.get(),register:{bubble:r}}),!0),D.updateController("userSuggestedEdit",{data:{entityID:e,entityType:3}})}function y(e){return{promoCampaign:(null===e||void 0===e?void 0:e.utm_campaign)||null,promoSource:(null===e||void 0===e?void 0:e.utm_source)||null,promoMedium:"web-".concat(k),promoTerm:(null===e||void 0===e?void 0:e.utm_term)||null,promoContent:(null===e||void 0===e?void 0:e.utm_content)||null,promoDate:(null===e||void 0===e?void 0:e.date)||null}}function m(){w.uninit()}function g(e,t){switch(e){case"window.newSize":A.call("window.resize",t),k=t.size.new}w.event(e,t)}var v=e("ControllerObjects"),b=e("Objects"),h=e("Utilities"),C=e("controllers/Variable"),f=e("Application"),I=new v.Unique(t),A=new v.Callbacks,w=new v.ChildControllerManager,D=new v.StateManager(w,{propertyAddressItem:[["listingID","listing.id"],["propertyID","propertyID"],["propertyAddressID","id"]],listingID:!0,propertyID:!0,propertyAddressID:!0,actionBar:!0});w.add("mediaMaster",new v.ChildController({type:"controllers/MediaCenter/MediaMaster",namespace:I.get(),register:{bubble:r}})),w.add("schema",new v.ChildController({type:"controllers/Property/PropertyAddressSchema",namespace:I.get(),register:{bubble:r}})),w.add("searchBreadCrumbs",new v.ChildController({type:"controllers/SearchBreadcrumbs",namespace:I.get(),register:{bubble:r}})),w.add("header",new v.ChildController({type:"controllers/Property/PropertyAddressHeader",namespace:I.get(),register:{bubble:r}})),w.add("badges",new v.ChildController({type:"controllers/Badges",namespace:I.get(),register:{bubble:r}})),w.add("details",new v.ChildController({type:C,namespace:I.get(),register:{bubble:r}})),w.add("propertyCommuteTimes",new v.ChildController({type:"controllers/PropertyCommuteTimes",namespace:I.get(),register:{bubble:r}})),w.add("nearByAreas",new v.ChildController({type:"controllers/Property/NearByAreas",namespace:I.get(),register:{bubble:r}})),w.add("collapses",new v.ChildController({type:"controllers/Property/PropertyCollapses",namespace:I.get(),register:{bubble:r}})),w.add("likelihoodToList",new v.ChildController({type:"controllers/Property/LikelihoodToList",namespace:I.get(),register:{bubble:r}})),w.add("ownershipSnapshot",new v.ChildController({type:"controllers/Property/OwnershipSnapshot",namespace:I.get(),register:{bubble:r}}));var P,S,T,B,H,M,L,k,O,j={main:new v.Getter({namespace:I.get(),success:function(e){try{d(e)}catch(e){throw D&&console.info(D),e}},template:{url:"controllers/Property/PropertyAddressMaster.html",dom:["divSchema","divActionBar","divHeader","divBadges","divPriceContainer","spanEstMortgage","divListingHistoryCapsule","divBreadCrumbs","divKeyStats","divSideBar","divThrobber","divDetails","divListingRemarks","divPropertySummary","divPropertyAdminPanel","divOpenHouses","divHistory","divAnalysis","divMobileActionsContainer","divMobileConversations","divMobileAgents","divCollapses","divListingDisclaimer","divSchoolDisclaimer","divPropertyCommuteTimes","listingMediaCardsContainer","listingMediaCards","listingMediaCircles","divNearByAreas","divLikelihoodToList","divOwnershipSnapshot","divUnits","buildingSearchMatches","btnSuggestEdit","divPropertyAmenities","aExploreNeighborhood","divExploreNeighborhoodContainer","idxDisclaimer","spanEstTax","spanEstHOA"]}}),itemByIds:new v.Getter({namespace:I.get(),type:b.HSPropertyAddressItem,webService:"/service/PropertyAddresses/GetByIDs",success:n,cache:{expire:5}}),getByUrl:new v.Getter({namespace:I.get(),type:b.HSPropertyAddressItem,webService:"/service/PropertyAddresses/GetByUrl",cache:{expire:5}}),getListingDetails:new v.Getter({namespace:I.get(),type:b.HSListingDetail,webService:"/service/Listings/GetDetails",success:function(e){try{c(e,"/Listings/GetDetails")}catch(e){throw D&&console.info(D),e}},cache:{expire:5}}),getPropertyAddressDetails:new v.Getter({namespace:I.get(),type:b.HSPropertyAddressDetail,webService:"/service/PropertyAddresses/GetDetails",success:function(e){try{c(e,"/PropertyAddresses/GetDetails")}catch(e){throw D&&console.info(D),e}},cache:{expire:5}}),getPropertyDetails:new v.Getter({namespace:I.get(),type:b.HSPropertyDetail,webService:"/service/Properties/GetDetails",success:function(e){try{c(e,"/Properties/GetDetails")}catch(e){throw D&&console.info(D),e}},cache:{expire:5}})},E=!1,U=new b.LocalStorage("MLSFeedbackParams");f.getDeviceSize(function(e){k=e}),f.getAppMode(function(e){O=e});!function(){var e=$.Deferred();f.getCurrentUser(function(t){L=t.user,e.resolve()})}();return{update:o,restore:function(e){D.restore(e,s)},uninit:m,getState:D.getState.bind(D),register:A.register.bind(A),event:g}}});//# sourceMappingURL=https://assets.homesnap.com/app/js_min/controllers/Property/PropertyAddressMaster.js.map?hash=335fed43b443a8b675b7f53ef7208481define("controllers/Property/PropertyAddressSchema",["require","ControllerObjects","Utilities"],function(t){return function(e){function n(){try{l.requireDom()}catch(t){throw t}u.template.get({$dom:l.$dom,data:{schema:l.get("schemaData"),siteRootUrl:i.coStarBrand.is("citysnap")?window.Homesnap.siteRootUrl:"https://www.homesnap.com"}})}function r(t){t.$dom}var o=t("ControllerObjects"),i=t("Utilities"),a=new o.Unique(e),c=new o.Callbacks,s=new o.ChildControllerManager,l=new o.StateManager(s,{}),u={template:new o.Getter({namespace:a.get(),success:function(t){try{r(t)}catch(t){throw l&&console.info(l),t}},template:{url:"controllers/Property/PropertyAddressSchema.html"}})};return{update:function(t){l.update(t),n()},restore:function(t){l.restore(t,n)},uninit:function(){s.uninit()},getState:l.getState.bind(l),register:c.register.bind(c),event:function(t,e){s.event(t,e)}}}});//# sourceMappingURL=https://assets.homesnap.com/app/js_min/controllers/Property/PropertyAddressSchema.js.map?hash=f24f0fab7737d092a6f360a5e063db61define("controllers/Property/PropertyFavorite",["require","ControllerObjects","Objects","Application"],function(e){return function(t){function r(e){v.call("bubble",e)}function o(){try{p.requireDom(),p.require("propertyAddressItem"),p.optional("showText")}catch(e){throw e}y.template.get({$dom:p.$dom,data:{propertyAddressItem:p.get("propertyAddressItem"),showText:p.get("showText",!0)}})}function n(e){var t,r=e.$dom,o=e.data.propertyAddressItem,n={propertyAddressID:o.id,propertyID:o.propertyID?o.propertyID:0,listingID:null!==o&&void 0!==o&&null!==(t=o.listing)&&void 0!==t&&t.id?o.listing.id:null},s=g.get(!1,"favoriteItems",60),c=n.propertyAddressID;c+=n.propertyID?"::".concat(n.propertyID):"",c+=n.listingID?"::".concat(n.listingID):"",s&&(s.favorites.indexOf(c)>-1?a(!0,n,o,r,c,!1):s.notFavorites.indexOf(c)>-1&&a(!1,n,o,r,c,!1)),r.buttonFavorite.on("click",function(){return i(r,n,o,c),!1}),r.spanFavoriteText.on("click",function(){return i(r,n,o,c),!1})}function i(t,o,n,c){F.done(function(){return s.registrationStatus.registered?(!0===t.buttonFavorite.data("favorite-status")?y.unFavorite.get({data:o,success:function(e){e.data&&a(!1,o,n,t,c,!0)}}):y.favorite.get({data:o,success:function(r){!r.data||!0!==r.data.success&&!0!==r.data.alreadyFavorited||(a(!0,o,n,t,c,!0),e(["modules/FBDare"],function(e){void 0!==e&&e.fbDareEvent("InitiateCheckout",[o.listingID])})),"function"==typeof gtag&&gtag("event","listing_favorited")}}),!1):(r({type:"account.mode",callback:function(){d.getCurrentUser(function(e){var r,a;null!==e&&void 0!==e&&null!==(r=e.user)&&void 0!==r&&null!==(a=r.registrationStatus)&&void 0!==a&&a.registered&&i(t,o,n,c)},!0)}}),!1)})}function a(e,t,o,n,i,a){var s=g.get(!1,"favoriteItems",60);if(n.buttonFavorite.data("favorite-status",e).find("span").text(e?"star":"star_border"),n.buttonFavorite.attr("aria-label",e?"Click to Unfavorite":"Click to Favorite"),n.spanFavoriteText.text(e?"UnFavorite":"Favorite"),a){if(r({type:"reflect",name:"propertyFavoriteStatus.updated",data:{favoriteStatus:e,ids:t,propertyAddressItem:o}}),s){var c=s.favorites.indexOf(i),u=s.notFavorites.indexOf(i);c>-1&&s.favorites.splice([c],1),u>-1&&s.notFavorites.splice([u],1)}else s={favorites:[],notFavorites:[]};s[e?"favorites":"notFavorites"].push(i),g.set(!1,"favoriteItems",s)}!a&&!e&&s&&s.notFavorites.indexOf(i)>-1&&r({type:"favoriteProperty.remove",data:{favoriteStatus:e,ids:t,propertyAddressItem:o}})}var s,c=e("ControllerObjects"),u=e("Objects"),d=e("Application"),l=new c.Unique(t),v=new c.Callbacks,f=new c.ChildControllerManager,p=new c.StateManager(f,{}),y={template:new c.Getter({namespace:l.get(),success:function(e){try{n(e)}catch(e){throw p&&console.info(p),e}},failure:function(){throw p&&console.info(p),new Error("PropertyFavorite controller: Unhandled Error")},template:{url:"controllers/Property/PropertyFavorite.html",dom:["spanFavoriteText","buttonFavorite"]}}),favorite:new c.Getter({type:u.HSPropertyAddressesFavoriteErrorCodeEnum,webService:"/service/PropertyAddresses/Favorite_2",namespace:l.get(),success:function(e){try{n(e)}catch(e){throw p&&console.info(p),e}},failure:function(){try{throw new Error("PropertyFavorite controller: Favorite. Unhandled Webservice Error")}catch(e){throw void 0!==p&&null!==p&&console.info(p),e}},cache:{expire:0}}),unFavorite:new c.Getter({type:Boolean,webService:"/service/PropertyAddresses/Unfavorite",namespace:l.get(),success:function(e){try{n(e)}catch(e){throw p&&console.info(p),e}},failure:function(){try{throw new Error("PropertyFavorite controller: Unfavorite. Unhandled Webservice Error")}catch(e){throw void 0!==p&&null!==p&&console.info(p),e}},cache:{expire:0}})},g=new u.LocalStorage("Property/PropertyFavorite"),F=function(){var e=$.Deferred();return d.getCurrentUser(function(t){s=t.user,e.resolve()}),e}();return{update:function(e){p.update(e),o()},restore:function(e){p.restore(e,o)},uninit:function(){f.uninit()},getState:p.getState.bind(p),register:v.register.bind(v),event:function(e,t){f.event(e,t)}}}});//# sourceMappingURL=https://assets.homesnap.com/app/js_min/controllers/Property/PropertyFavorite.js.map?hash=b6192efd5cf931cf4f57144065c9eec7define("controllers/Property/PropertyFeatures",["require","ControllerObjects"],function(e){return function(n){function t(e){g.update(e),o()}function o(){try{g.requireDom(),g.require("listing")}catch(e){throw e}m.get({$dom:g.$dom,data:g.get("listing"),pass:{accordionOpen:g.get("accordionOpen")}})}function r(n){l=n.$dom,c=n.data,e(["modules/collapse"],function(e){new e({$label:n.$dom.divFeaturesLabel,$chevron:n.$dom.spanFeaturesCollapseChevron,$collapseContainer:n.$dom.divFeaturesCollapse,open:!(!n.pass||!n.pass.accordionOpen)&&n.pass.accordionOpen}).register("shown",a)})}function a(){e(["masonry"],function(e){if(void 0===e)return!1;new e(l.divFeaturesCollapse[0])})}function i(){f.uninit()}function s(e,n){f.event(e,n)}var l,c,u=e("ControllerObjects"),d=new u.Unique(n),p=new u.Callbacks,f=new u.ChildControllerManager,g=new u.StateManager(f,{}),m=new u.Getter({namespace:d.get(),success:function(e){try{r(e)}catch(e){throw g&&console.info(g),e}},template:{url:"controllers/Property/PropertyFeatures.html",dom:["divFeaturesLabel","divFeaturesCollapse","spanFeaturesCollapseChevron"]}});return{update:t,restore:function(e){g.restore(e,o)},uninit:i,getState:g.getState.bind(g),register:p.register.bind(p),event:s}}});//# sourceMappingURL=https://assets.homesnap.com/app/js_min/controllers/Property/PropertyFeatures.js.map?hash=f7e3034db515714acb53c7e7691a876ddefine("controllers/Property/PropertyFollow",["require","ControllerObjects","Application"],function(e){return function(t){function r(e){g.call("bubble",e)}function o(e){y.update(e),n()}function n(){if(!y.$dom)throw"No state.$dom";if(!y.get("propertyAddressItem"))throw"No state.data.propertyAddressItem";d=y.get("propertyAddressItem").status.isFollowed,m.showFavorite.get({$dom:y.$dom,data:y.get("propertyAddressItem")})}function s(e){l=e.$dom;var t={propertyAddressID:y.get("propertyAddressItem").id,propertyID:y.get("propertyAddressItem").propertyID?y.get("propertyAddressItem").propertyID:0,listingID:y.get("propertyAddressItem").listing?y.get("propertyAddressItem").listing.id:null};b.done(function(){l.btnFollow.click(function(e){c&&c.registrationStatus&&!c.registrationStatus.registered?r({type:"account.mode"}):d?m.unFollow.get({data:t,success:function(e){e.data&&(d=!1,l.btnFollow.text("Notify Me of Price Changes").addClass("btn-notify-off"))}}):m.follow.get({data:t,success:function(e){e.data&&(d=!0,l.btnFollow.text("Turn off notifications").removeClass("btn-notify-off"))}})})})}function i(){w.uninit()}function a(e,t){w.event(e,t)}var l,d,c,p=e("ControllerObjects"),u=e("Application"),f=new p.Unique(t),g=new p.Callbacks,w=new p.ChildControllerManager,y=new p.StateManager(w,{}),m={showFavorite:new p.Getter({namespace:f.get(),success:s,template:{url:"controllers/Property/PropertyFollow.html",dom:["btnFollow"]}}),follow:new p.Getter({type:Boolean,webService:"/service/PropertyAddresses/Follow",namespace:f.get(),success:s,cache:{expire:0}}),unFollow:new p.Getter({type:Boolean,webService:"/service/PropertyAddresses/Unfollow",namespace:f.get(),success:s,cache:{expire:0}})},b=function(){var e=$.Deferred();return u.getCurrentUser(function(t){c=t.user,e.resolve()},!0),e}();return{update:o,restore:function(e){y.restore(e,n)},uninit:i,getState:y.getState.bind(y),register:g.register.bind(g),event:a}}});//# sourceMappingURL=https://assets.homesnap.com/app/js_min/controllers/Property/PropertyFollow.js.map?hash=57bbd3d5b161213def98d5a895a419e9define("controllers/Property/PropertyHistory",["require","ControllerObjects","Application","lodash","Objects"],function(e){return function(t){function r(e){if(0!==e.data.length){var t=e.data;C.add("mortgages",new u.ChildController({type:"controllers/Property/PropertyHistoryMortgages",namespace:b.get(),register:{bubble:s}}),!0),w.updateController("mortgages",{$dom:v.mortgagesContent,data:{mortgages:t,allExpanded:A,propertyStatus:S}}),v.mortgagesTab.parent().removeClass("hidden")}}function o(e){if(0!==e.data.length){var t=e.data;C.add("taxes",new u.ChildController({type:"controllers/Property/PropertyHistoryTaxes",namespace:b.get(),register:{bubble:s}}),!0),w.updateController("taxes",{$dom:v.taxContent,data:{taxes:t,allExpanded:A,propertyStatus:S}}),v.taxTab.parent().removeClass("hidden")}}function a(e){if(0!==e.data.length){var t=e.data;C.add("deeds",new u.ChildController({type:"controllers/Property/PropertyHistoryDeeds",namespace:b.get(),register:{bubble:s}}),!0),w.updateController("deeds",{$dom:v.deedContent,data:{deeds:t,allExpanded:A,propertyStatus:S}}),v.deedTab.parent().removeClass("hidden")}}function n(){A=null}function s(e){f.call("bubble",e)}function d(e){w.update(e),i()}function i(){try{w.requireDom(),w.optional("listing")}catch(e){throw e}var e=w.get("listing");S=w.get("propertyStatus"),e&&e.sListingStatus&&e.sListingStatus.removed&&S&&(S.text="Off-Market"),x=w.get("history"),e&&(x=e.history),x&&(n(),g.getCurrentUser(function(e){h=e.user,T.main.get({$dom:w.$dom,data:{propertyAddressItem:w.get("propertyAddressItem"),history:x,propertyStatus:S,pro:m.get(h,"currentDetails.products.pro.availableForUse")}})},!0))}function l(e){v=e.$dom;var t=e.data,r={promoMedium:"web-".concat(P)};if(w.updateController("summaryRows",{$dom:v.summaryRow,data:x.map(function(t,r){return{historyItems:t,dataIndex:r,propertyStatus:S,pro:e.data.pro,open:A,proPlus:m.get(h,"currentDetails.products.proPlus.availableForUse"),propertyListingID:e.data.propertyAddressItem.listing&&e.data.propertyAddressItem.listing.id}})}),e.data.pro){var o=e.data.propertyAddressItem.propertyID;T.mortgages.get({$dom:v.mortgagesContent,data:{propertyID:o}}),T.taxes.get({$dom:v.taxContent,data:{propertyID:o}}),T.deeds.get({$dom:v.deedContent,data:{propertyID:o}}),v.expandAll.on("click",function(){A=!A,v.expandAll.text(A?"Close All":"Expand All"),C.event(A?"expandAll":"collapseAll")}),v.summaryTab.on("click",function(e){"true"!==e.target.ariaSelected&&c(v.summaryTab)}),v.mortgagesTab.one("click",function(){p(t,r,o,10)}).on("click",function(e){"true"!==e.target.ariaSelected&&c(v.mortgagesTab)}),v.taxTab.one("click",function(){p(t,r,o,11)}).on("click",function(e){"true"!==e.target.ariaSelected&&c(v.taxTab)}),v.deedTab.one("click",function(){p(t,r,o,12)}).on("click",function(e){"true"!==e.target.ariaSelected&&c(v.deedTab)})}w.updateController("follow",{$dom:v.divFollow,data:{propertyAddressItem:w.get("propertyAddressItem")}})}function p(e,t,r,o){s({type:"trackUserEvent",data:{webServiceName:"properties",userEventType:o,associatedEntityType:e.propertyAddressItem.listing?7:6,associatedEntityID:e.propertyAddressItem.listing?e.propertyAddressItem.listing.id:r,promo:t}})}function c(e){var t="paint-second-border-b paint-item-selected";e.parent().parent().children().children().attr("aria-selected",!1).removeClass(t),e.attr("aria-selected",!0).addClass(t)}var u=e("ControllerObjects"),g=e("Application"),m=e("lodash"),y=e("Objects"),b=new u.Unique(t),f=new u.Callbacks,C=new u.ChildControllerManager,w=new u.StateManager(C,{});C.add("follow",new u.ChildController({type:"controllers/Property/PropertyFollow",namespace:b.get(),register:{bubble:s}})),C.add("summaryRows",new u.ChildControllerArray({type:"controllers/Property/PropertyHistorySummaryRow",namespace:b.get(),register:{bubble:s}}));var v,h,x,S,P,T={main:new u.Getter({namespace:b.get(),success:l,template:{url:"controllers/Property/PropertyHistory.html",dom:["divFollow",["summaryRow"],"summary","summaryTab","expandAll","mortgages","mortgagesContent","mortgagesTab","tax","taxContent","taxTab","deed","deedTab","deedContent"]}}),mortgages:new u.Getter({namespace:b.get(),type:[y.HSPropertyHistoryMortgage],webService:"/service/Properties/ListMortgages",success:r,failure:function(){throw w&&console.info(w),new Error("Property History Mortgages controller: Unhandled Web Service Error")}}),taxes:new u.Getter({namespace:b.get(),type:[y.HSPropertyHistoryTax],webService:"/service/Properties/ListTaxes",success:o,failure:function(){throw w&&console.info(w),new Error("Property History Taxes controller: Unhandled Web Service Error")}}),deeds:new u.Getter({namespace:b.get(),type:[y.HSPropertyHistoryDeed],webService:"/service/Properties/ListDeeds",success:a,failure:function(){throw w&&console.info(w),new Error("Property History Deeds controller: Unhandled Web Service Error")}})},A=null;return g.getDeviceSize(function(e){P=e}),{update:d,restore:function(e){w.restore(e,i)},uninit:function(){C.uninit()},getState:w.getState.bind(w),register:f.register.bind(f),event:function(e,t){C.event(e,t)}}}});//# sourceMappingURL=https://assets.homesnap.com/app/js_min/controllers/Property/PropertyHistory.js.map?hash=53722bb8868c68a572839d9acfc75120define("controllers/Property/PropertyMap",["require","ControllerObjects"],function(e){return function(t){function o(){y=!1,f=null,h=null}function r(e){d.call("bubble",e)}function n(e){c.update(e),a()}function a(){o();try{c.requireDom(),c.require("listing"),c.optional("accordionOpen"),c.optional("propertyStatus")}catch(e){throw void 0!==c&&null!==c&&(console.info("PropertyMap Controller"),console.info(c)),e}b.get({$dom:c.$dom,data:c.get("listing"),pass:{accordionOpen:c.get("accordionOpen"),propertyStatus:c.get("propertyStatus")}})}function s(t){g=t.$dom,m=t.data,h=t.pass.propertyStatus,e(["modules/collapse"],function(e){if(void 0===e)return!1;new e({$label:t.$dom.h3MapLabel,$chevron:t.$dom.spanMapCollapseChevron,$collapseContainer:t.$dom.divMapCollapse,open:!(!t.pass||!t.pass.accordionOpen)&&t.pass.accordionOpen}).register("shown",l)})}function l(){m&&m.latitude&&m.longitude&&!y&&(c.updateController("map",{$dom:g.divMapItem,data:{type:{hybrid:{min:100,max:100},homesnap:{min:1,max:100}},XXXlatitude:m.latitude,XXXlongitude:m.longitude,lazyLoad:!1,show:{propertyTiles:{color:"FFFFFF"},offMarketTiles:!0,HSPropertyAddressItem:{data:{latitude:m.latitude,longitude:m.longitude,address:m.address,id:m.propertyAddressID?m.propertyAddressID:m.propertyID,propertyStatus:h},lotPolygon:{fit:{percent:.1}},marker:!0},HSSchool:{data:m.schools||void 0}},ui:{polygon:{status:!1},mapTypeToggle:{status:!0},localContextPlaces:{status:!1}},localContext:{increaseBounds:!0,mapPlacement:"Collapse"}}}),y=!0,e(["modules/SearchManager"],function(e){if(void 0===e||null===e)return!1;if(!(f=f||new e)||!f.update)return!1;var t=u.get("map");if(!t)return!1;t.register("change",function(e){e&&e.bounds&&Object.keys(e.bounds).length>0&&f&&f.update&&f.update({set:{bounds:e.bounds}})}),f.update({set:{layer:{propertyAddresses:{min:18,max:100}}},search:!1,register:{new:function(e){if(!e)return!1;var t=u.get("map").controller;if(!t)return!1;e.listings&&t.show("HSPropertyAddressListingItem",{data:e.listings}),e.propertyAddresses&&t.show("HSPropertyAddressItem",{data:e.propertyAddresses,showMini:!0})}}})}))}var i=e("ControllerObjects"),p=new i.Unique(t),d=new i.Callbacks,u=new i.ChildControllerManager,c=new i.StateManager(u);u.add("map",new i.ChildController({type:"controllers/Map",namespace:p.get(),register:{bubble:r}}));var g,m,f,y,h,b=new i.Getter({namespace:p.get(),success:function(e){try{s(e)}catch(e){throw void 0!==c&&null!==c&&console.info(c),e}},failure:function(){try{throw new Error("PropertyMap controller: Unhandled Error")}catch(e){throw void 0!==c&&null!==c&&console.info(c),e}},template:{url:"controllers/Property/PropertyMap.html",dom:["h3MapLabel","divMapCollapse","spanMapCollapseChevron","divMapItem"]}});return{update:n,restore:function(e){c.restore(e,a)},uninit:function(){u.uninit()},getState:c.getState.bind(c),register:d.register.bind(d),event:function(e,t){u.event(e,t)}}}});//# sourceMappingURL=https://assets.homesnap.com/app/js_min/controllers/Property/PropertyMap.js.map?hash=bc05b24faea861a4bcfac852e3ef334fdefine("controllers/Property/PropertySchools",["require","jquery","ControllerObjects"],function(e){return function(o){function t(e){d.call("bubble",e)}function n(e){p.update(e),l()}function l(){if(!p.$dom)throw"No state.$dom";if(!p.get("schools"))throw"No state.data.schools";m.get({$dom:p.$dom,data:p.get("schools"),pass:{accordionOpen:p.get("accordionOpen")}})}function r(o){h=o.$dom,e(["modules/collapse"],function(e){new e({$label:h.divSchoolsLabel,$chevron:h.spanSchoolsCollapseChevron,$collapseContainer:h.divSchoolsCollapse,open:!(!o.pass||!o.pass.accordionOpen)&&o.pass.accordionOpen})}),p.updateController("schoolItem",{$dom:h.divSchoolItem,data:o.data.map(function(e){return{item:e}})})}function a(){u.uninit()}function s(e,o){u.event(e,o)}var c=(e("jquery"),e("ControllerObjects")),i=new c.Unique(o),d=new c.Callbacks,u=new c.ChildControllerManager,p=new c.StateManager(u,{});u.add("schoolItem",new c.ChildControllerArray({type:"controllers/SchoolItem",namespace:i.get(),register:{bubble:t}}));var h,m=new c.Getter({namespace:i.get(),success:r,template:{url:"controllers/Property/PropertySchools.html",dom:[["divSchoolItem"],"spanSchoolsCollapseChevron","divSchoolsCollapse","divSchoolsLabel"]}});return{update:n,restore:function(e){p.restore(e,l)},uninit:a,getState:p.getState.bind(p),register:d.register.bind(d),event:s}}});//# sourceMappingURL=https://assets.homesnap.com/app/js_min/controllers/Property/PropertySchools.js.map?hash=5238f8113b26cea135a982a5e4e74862define("controllers/Property/PropertySidebar",["require","ControllerObjects","Application","Objects","Utilities"],function(e){return function(t){function n(e){switch(e.type){case"trackUserEvent":e.data&&(e.data.viewSourceID=3);break;case"leadgenForm.show":d();break;case"sellspeed.show":return B.exists("showSellSpeed")&&B.call("showSellSpeed"),!1;case"sellspeed.open":return B.exists("openSellSpeed")&&B.call("openSellSpeed"),!1;case"getAvailability.success":return D&&j.get("myListingAdminPanel").event("getAvailability.data",e.data.getAvailabilityData),!1;case"getAvailability.failure":return D&&j.get("myListingAdminPanel").event("getAvailability.failure"),!1;case"userItem.phoneNumberClicked":return"function"==typeof gtag&&gtag("event","listing_lead_gen_phone_click"),!1}return B.call("bubble",e),!1}function o(e){W.update(e),i()}function i(){try{W.requireDom(),W.require("details"),W.require("propertyAddressItem"),W.optional("mlsFeedbackParams"),W.optional("qs")}catch(e){throw e}q.getCurrentUser(function(e){var t,n,o,i;A=e.user,S=null===(t=A)||void 0===t?void 0:null===(n=t.currentDetails)||void 0===n?void 0:null===(o=n.products)||void 0===o?void 0:null===(i=o.pro)||void 0===i?void 0:i.availableForUse,H.template.get({$dom:W.$dom,data:{details:W.get("details"),pro:S,permissions:A.permissions,coStarBrand:_,isCitysnap:E},pass:{$mobileActionsContainer:W.get("mobileActionsContainer"),$mobileConversationsContainer:W.get("mobileConversationsContainer"),$mobileAgentsContainer:W.get("mobileAgentsContainer")}})})}function r(e){var t,o,r,u,v,m;h=e.$dom,y=e.data.details,null!==(t=y)&&void 0!==t&&null!==(o=t.status)&&void 0!==o&&o.enableCoExclusiveListing&&(j.add("listingRelatedListings",new x.ChildController({type:"controllers/Property/ListingRelatedListings",namespace:N.get(),register:{bubble:n}}),!0),W.updateController("listingRelatedListings",{$dom:h.divRelatedListings,data:{listingID:y.listingID}}));var C=W.get("propertyAddressItem"),b=W.get("mlsFeedbackParams");if(D=!1,A&&A.permissions&&A.permissions.mlsAgent){var M,L=y&&y.agentOnly&&y.agentOnly.agents.filter(function(e){return e.agent.entityID===A.entityID&&e});if(D=L&&L.length>=1,D&&(I=L.role),L&&A.permissions.homeSnapAdminTools&&null!==(M=Homesnap)&&void 0!==M&&M.environmentType&&1!=(1&Homesnap.environmentType)){var k=$("").addClass("font-12").text("to toggle the My Listing Admin Panel"),R=$("").addClass("bs4--border-0 bs4--bg-transparent bs4--text-hs-blue").text("Click Here");k.prepend(R),h.divFloatingContainer.append(k),R.on("click",function(e){return W.set("currentUserRelatedToListing",!D),i(),!1}),D=W.get("currentUserRelatedToListing")}a(e.pass.$mobileActionsContainer)}if(y&&y.conversations&&l(e.pass.$mobileConversationsContainer),(null!==(r=A)&&void 0!==r&&null!==(u=r.permissions)&&void 0!==u&&u.mlsAgent||S)&&p(),y.status&&y.status.canGenerateRapidCMA&&!D&&(j.add("requestCMA",new x.ChildController({type:"controllers/ListingRequestCMA",namespace:N.get(),register:{bubble:n}}),!0),W.updateController("requestCMA",{$dom:h.divRequestCMA,data:{listing:y,pro:S}}),h.divAgentActions.removeClass("hidden")),y.agentOnly&&(y.agentOnly.status&&y.agentOnly.status.checkForShowingUrl&&(D?g(C):(j.add("scheduleShowing",new x.ChildController({type:"controllers/ListingScheduleShowing",namespace:N.get(),register:{bubble:n,showingUrlSuccess:function(){h.divAgentActions.removeClass("hidden")},showingUrlHomesnapSuccess:function(){g(C)}}}),!0),W.updateController("scheduleShowing",{$dom:h.divScheduleShowing,data:{propertyAddressItem:W.get("propertyAddressItem")}}))),y.agentOnly.agents&&!D)){h.divRelatedAgentsPanel.length>0&&h.divRelatedAgentsPanel.removeClass("bs4--d-none"),c(e.pass.$mobileAgentsContainer);var F=y.agentOnly.agents.length>1;j.add("relatedAgents",new x.ChildControllerArray({type:"controllers/ListingRelatedAgent",namespace:N.get(),register:{bubble:n,listingRelatedAgentCheck:function(e){j.get("relatedAgents").event("check",e.data),j.get("conversationInlineSend").event("relatedAgentsRecipient",e.data)},listingRelatedAgentUnCheck:function(e){j.get("relatedAgents").event("uncheck",e.data)}}}),!0),W.updateController("relatedAgents",{$dom:h.divRelatedAgents,data:y.agentOnly.agents.map(function(e,t){return{relatedAgent:e,showCheckBox:F&&e.status.showWithMessageTextBox,checked:0===t}})}),j.add("conversationInlineSend",new x.ChildController({type:"controllers/ConversationInlineSend",namespace:N.get(),register:{bubble:n}}),!0),W.updateController("conversationInlineSend",{$dom:h.divInlineConversation,data:{relatedAgent:y.agentOnly.agents[0],listing:y}})}if(y&&!y.listingID&&S&&C&&C.propertyID&&H.getOwner.get({$dom:W.$dom,data:{propertyID:C.propertyID},success:s,failure:function(){throw W&&console.info(W),new Error("Property Sidebar controller: Unhandled Error in GetOwnershipSnapshot web service")}}),null!==(v=A)&&void 0!==v&&null!==(m=v.permissions)&&void 0!==m&&m.agent){var P;null!==C&&void 0!==C&&null!==(P=C.transactionType)&&void 0!==P&&P.forSale&&!y.listingID&&h.btnNetSheet.on("click",function(){return j.add("netSheetCalculator",new x.ChildController({type:"controllers/NetSheetCalculator",namespace:N.get(),register:{bubble:n}}),!0),W.updateController("netSheetCalculator",{data:{propertyAddressItem:C,propertyDetails:y}}),!1}).removeClass("hidden"),j.add("advertiseUnits",new x.ChildController({type:"controllers/AdvertiseUnits",namespace:N.get(),register:{bubble:n}}),!0),W.updateController("advertiseUnits",{$dom:h.divAdvertiseUnits,data:{placementType:C&&C.listing?3:4,currentUser:A}})}var U=b&&"object"==typeof b&&Object.keys(b).length>0;C&&h.divLeadGenForm&&!U&&d(e.pass.$mobileAgentsContainer),y.conversations&&y.conversations.length>0&&h.divRelatedConversations&&(j.add("conversationItem",new x.ChildControllerArray({type:"controllers/ConversationItem",namespace:N.get(),register:{bubble:n}}),!0),W.updateController("conversationItem",{$dom:h.divRelatedConversations,data:y.conversations.map(function(e){return{conversationItem:e,relatedConversation:!0}})}),h.btnSendInAMessage.on("click",function(){return j.add("sendInAMessageMaster",new x.ChildController({type:"controllers/SendInAMessageMaster",namespace:N.get(),register:{bubble:n}}),!0),W.updateController("sendInAMessageMaster",{data:{paItem:y}}),!1})),A&&A.currentDetails&&(A.currentDetails.clientAppType&&!A.currentDetails.clientAppType.isAppUser?(j.add("downloadMobileApp",new x.ChildController({type:"controllers/DownloadMobileApp",namespace:N.get(),register:{bubble:n}}),!0),W.updateController("downloadMobileApp",{$dom:h.divDownloadMobileApp,data:{}})):h.divDownloadMobileApp.remove()),U&&(j.add("MLSFeedback",new x.ChildController({type:"controllers/MyAgent/MLSFeedback",namespace:N.get(),register:{bubble:n,display:function(e){f=!!e&&W.get("sticky",!1)}}}),!0),W.updateController("MLSFeedback",{$dom:h.divMLSFeedback,data:{propertyAddressItem:C,mlsFeedbackParams:b}})),q.getDeviceSize(function(e){w=e})}function s(e){e.data.length>0&&(h.btnContactOwner.on("click",function(){n({type:"scrollToCurrentOwner"})}),h.divContactOwner.removeClass("hidden"))}function a(t){D?(j.add("myListingAdminPanel",new x.ChildController({type:"controllers/Property/MyListingAdminPanel",namespace:N.get(),register:{bubble:n}}),!0),W.updateController("myListingAdminPanel",{$dom:h.divMyListingAdmin,data:{propertyAddressItem:W.get("propertyAddressItem"),details:y,currentUser:A,mobilePanelContainer:t,currentUserAgentRole:I}})):A&&A.permissions&&A.permissions.paidAgent&&e(["modules/MoveController"],function(e){return void 0!==e&&null!==e&&(M=new e({locations:{xs:t,sm:h.divAgentActionsContainer,md:h.divAgentActionsContainer,lg:h.divAgentActionsContainer},success:function(e){h.divAgentActions.appendTo(e)}}),!1)})}function l(t){e(["modules/MoveController"],function(e){return void 0!==e&&null!==e&&(L=new e({locations:{xs:t,sm:h.divConversationsContainer,md:h.divConversationsContainer,lg:h.divConversationsContainer},success:function(e){h.divConversationsContent.appendTo(e)}}),!1)})}function d(t){e(["modules/MoveController"],function(e){return void 0!==e&&null!==e&&(k=new e({locations:{xs:t,sm:h.divLeadGenContainer,md:h.divLeadGenContainer,lg:h.divLeadGenContainer},success:function(e){h.divLeadGenForm.appendTo(e)}}),!1)}),j.add("leadGenForm",new x.ChildController({type:"controllers/MyAgent/Master",namespace:N.get(),register:{bubble:n,display:function(e){f=!!e&&W.get("sticky",!1)}}}),!0),W.updateController("leadGenForm",{$dom:h.divLeadGenForm,data:{propertyAddressItem:W.get("propertyAddressItem"),propertyDetails:y,twoColumnLayout:["sm"],ref:W.get("ref"),preview:W.get("preview",!1),source:"xs"===w?1024:64}})}function c(t){e(["modules/MoveController"],function(e){return void 0!==e&&null!==e&&(R=new e({locations:{xs:t,sm:h.divRelatedAgentsContainer,md:h.divRelatedAgentsContainer,lg:h.divRelatedAgentsContainer},success:function(e){h.divRelatedAgentsPanel.appendTo(e)}}),!1)})}function p(){var e,t,o,i,r,s;if(E)return!1;var a=null!==(e=y)&&void 0!==e&&e.listingID&&null!==(t=y.transactionType)&&void 0!==t&&t.forSale&&null!==(o=y.sListingStatus)&&void 0!==o&&o.active&&null!==(i=y.currentPrice)&&void 0!==i&&i.raw?7:6,l=7===a?null===(r=y)||void 0===r?void 0:r.listingID:null===(s=y)||void 0===s?void 0:s.propertyID;if(!l)return!1;var d=W.get("qs",{});j.add("sellSpeed",new x.ChildController({type:"controllers/SellSpeed/Manager",namespace:N.get(),register:{bubble:n}}),!0);var c=function(){return j.get("sellSpeed").event("sellspeed.open"),!1};return B.register("showSellSpeed",function(){D?(B.register("openSellSpeed",c),j.get("myListingAdminPanel").event("sellspeed.show")):(h.divSellSpeed.on("click",c),h.divAgentActions.add(h.divSellSpeed).removeClass("bs4--d-none")),null!==d&&void 0!==d&&d.lts&&c()}),W.updateController("sellSpeed",{data:{entityType:a,entityID:l,qs:d,currentUserRelatedToListing:D}}),!1}function g(e){var t=!!W.get("qs",{}).bookshowing,o=!1;D&&(o=!0),j.add("scheduleTour",new x.ChildController({type:"controllers/Property/ScheduleTour",namespace:N.get(),register:{bubble:n}}),!0),W.updateController("scheduleTour",{$dom:h.divScheduleTour,data:{propertyAddressItem:e,inSideBar:!0,inListingAdminPanel:o,showingData:{bookingType:"listing",listingId:e.listing.id,listingAddress:"".concat(e.address.fullStreetAddress,", ").concat(e.address.cityStateZip),itineraryName:e.address.streetNameWithoutNumber},triggerOpenModal:t,promo:u()}})}function u(){var e=W.get("promo",{}),t=e.promoMedium,n=e.promoContent,o=e.promoTerm,i=e.promoDate,r=e.promoSource;return"mls"!==r&&(r=W.get("qs",{}).bookshowing?"booking_url":"ListingPage"),{campaign:"showings",source:r,medium:t,content:n,term:o,date:i}}function v(){P=parseFloat(h.divFloatingContainer.css("margin-top"))-Z,U=void 0,O=void 0,T=void 0,U=void 0,f&&f.indexOf(w)>-1&&h.divFloatingContainer.css({width:"",position:"",top:"",bottom:""})}function m(e,t,n){if(h&&f&&!(f.indexOf(w)<0)){if(F||(F=n?50:100),P||(P=parseFloat(h.divFloatingContainer.css("margin-top"))-Z),!U||n){var o=W.$dom.offset();U=o&&o.top?o.top:0}if(O=U+W.$dom.height(),(!T||T<50)&&(T=W.$dom.width()),"top"===K){U-t.topO-J;a&&C("bottom")}else C("top")}else if("bottom"===K){var l=O-J-t.top680?n.btnCollapseRemarks.on("click",function(){n.pRemarks.toggleClass("listing-remarks-faded");var e=n.btnCollapseRemarks;return e.html().indexOf("expand_more")>-1?e.attr("aria-expanded",!0).html('Collapse expand_less'):e.attr("aria-expanded",!1).html('Read More expand_more'),!1}):(n.btnCollapseRemarks.hide(),n.pRemarks.removeClass("listing-remarks-faded"))}var l=e("ControllerObjects"),s=new l.Unique(t),o=new l.Callbacks,d=new l.ChildControllerManager,m=new l.StateManager(d,{}),u={template:new l.Getter({namespace:s.get(),success:function(e){try{a(e)}catch(e){throw m&&console.info(m),e}},template:{url:"controllers/Property/ListingRemarks.html",dom:["divVisibility","btnCollapseRemarks","pRemarks"]}})};return{update:n,restore:function(e){m.restore(e,r)},uninit:function(){d.uninit()},getState:m.getState.bind(m),register:o.register.bind(o),event:function(e,t){d.event(e,t)}}}});//# sourceMappingURL=https://assets.homesnap.com/app/js_min/controllers/Property/ListingRemarks.js.map?hash=13e1644af7b5d7377161b277050000fcdefine("controllers/Property/PropertySummary",["require","ControllerObjects","Application","Utilities"],function(e){return function(t){function n(e){var t,n;"acris.show"===e.type&&null!==(t=m)&&void 0!==t&&null!==(n=t.divAcris)&&void 0!==n&&n.length&&m.divAcris.removeClass("bs4--d-none"),c.call("bubble",e)}function r(){try{v.requireDom(),v.optional("listing"),v.optional("property"),v.optional("propertyAddress"),v.optional("building")}catch(e){throw e}b.done(function(){var e,t,n,r,i;f.template.get({$dom:v.$dom,data:{building:v.get("building"),entityItem:null!==(e=null!==(t=v.get("property"))&&void 0!==t?t:v.get("listing"))&&void 0!==e?e:v.get("propertyAddress"),pro:g&&(null===(n=g.currentDetails)||void 0===n?void 0:null===(r=n.products)||void 0===r?void 0:null===(i=r.pro)||void 0===i?void 0:i.availableForUse),noHideAdmin:!v.get("hideAdmin",!1),coStarBrand:y}})})}function i(e){m=e.$dom;var t=e.data||{},r=t.entityItem;t.noHideAdmin&&null!==r&&void 0!==r&&r.agentOnly&&((r.agentOnly.details.length||r.agentOnly.remarks)&&(p.add("agentOnly",new d.ChildController({type:"controllers/ListingDetailsAgentOnly",namespace:s.get(),register:{bubble:n}}),!0),v.updateController("agentOnly",{$dom:m.divConfidentialInformation,data:{agentOnly:r.agentOnly}})),p.add("confidentialDocuments",new d.ChildController({type:"controllers/Property/ConfidentialDocuments",namespace:s.get(),register:{bubble:n,showDocuments:function(){m.divConfidentialDocumentsContainer.removeClass("hidden")}}}),!0),v.updateController("confidentialDocuments",{$dom:m.divConfidentialDocuments,data:{listingID:r.listingID,listingAddress:r.address.fullStreetAddress}}));var i=!1;null!==r&&void 0!==r&&r.propertyID||(i=!0);var l=null===r||void 0===r?void 0:r.supportsPublicRecordDocuments,a="";if(r.propertyID){var u,c,g;a="".concat(null===(u=t.entityItem)||void 0===u?void 0:u.url,"/ad_").concat(null===(c=t.entityItem)||void 0===c?void 0:null===(g=c.building)||void 0===g?void 0:g.id)}else{var f;a="".concat(null===(f=t.building)||void 0===f?void 0:f.url,"/acris")}if(!i&&l){var y,b;v.updateController("acris",{$dom:m.divAcris,data:{paItem:r,propertyAddressId:i?null===(y=t.entityItem)||void 0===y?void 0:null===(b=y.building)||void 0===b?void 0:b.id:r.propertyAddressID,propertyId:i?null:r.propertyID,pro:t.pro}})}else m.divAcris.addClass("bs4--d-none");$.each(m.aSummaryPropertyLink,function(e,r){var i;o(r.attr("href"))&&r.removeAttr("rel");var d,u=!1;null!==(i=r[e])&&void 0!==i&&i.href&&(d=r[e].href.lastIndexOf("/"),u="/acris"==r[e].href.substr(d)),u&&!l&&$(r).parent().parent().addClass("bs4--d-none"),u&&l&&$(r).removeAttr("target"),$(r).on("click",function(e){if(o(e.currentTarget.href)&&u&&l){var r,i;return n({type:"url.unhandled",url:a,data:{type_:"HSRealPropertyAddressItem",propertyAddressID:null===(r=t.entityItem)||void 0===r?void 0:null===(i=r.building)||void 0===i?void 0:i.id,paItem:v.get("propertyAddressItem")}}),!1}return t.building&&o(e.currentTarget.href)?n({type:"url.unhandled",url:t.building.url,data:t.building}):window.open(e.currentTarget.href,"rel=nofollow"),!1})})}function o(e){return!!(e.indexOf("homesnap.com")>-1&&-1===e.indexOf("pdf"))}function l(e,t){p.event(e,t)}var d=e("ControllerObjects"),a=e("Application"),u=e("Utilities"),s=new d.Unique(t),c=new d.Callbacks,p=new d.ChildControllerManager,v=new d.StateManager(p,{});p.add("acris",new d.ChildController({type:"controllers/Property/AcrisListing",namespace:s.get(),register:{bubble:n}}));var g,m,f={template:new d.Getter({namespace:s.get(),success:function(e){try{i(e)}catch(e){throw v&&console.info(v),e}},template:{url:"controllers/Property/PropertySummary.html",dom:["divConfidentialInformation","divConfidentialDocumentsContainer","divAcris","divConfidentialDocuments","buildingLink",["aSummaryPropertyLink"],"aAcrisLink"]}})},y=u.coStarBrand.getCurrent(),b=function(){var e=$.Deferred();return a.getCurrentUser(function(t){g=t.user,e.resolve()}),e}();return{update:function(e){v.update(e),r()},restore:function(e){v.restore(e,r)},uninit:function(){p.uninit()},getState:v.getState.bind(v),register:c.register.bind(c),event:l}}});//# sourceMappingURL=https://assets.homesnap.com/app/js_min/controllers/Property/PropertySummary.js.map?hash=6acbcd67d3737b36bef3a4828cb03f45define("controllers/Property/PropertyCollapses",["require","ControllerObjects"],function(e){return function(t){function r(e){if("massTransitCollapse.show"===(null===e||void 0===e?void 0:e.type))return n.divMassTransit.show(),!1;c.call("bubble",e)}function o(e){m.update(e),a()}function a(){try{m.requireDom(),m.optional("propertyAddressItem"),m.optional("propertyDetails"),m.optional("accordionOpen")}catch(e){throw e}y.template.get({$dom:m.$dom,data:{propertyAddressItem:m.get("propertyAddressItem"),propertyDetails:m.get("propertyDetails"),accordionOpen:m.get("accordionOpen"),exclusions:m.get("exclusions",[])}})}function s(e){n=e.$dom;var t=e.data,o=t.propertyAddressItem,a=t.propertyDetails;if(-1===t.exclusions.indexOf("schools")&&a&&a.schools&&a.schools.length>0?(u.add("schools",new p.ChildController({type:"controllers/Property/PropertySchools",namespace:d.get(),register:{bubble:r}}),!0),m.updateController("schools",{$dom:n.divSchools,data:{schools:a.schools,accordionOpen:e.data.accordionOpen}})):n.divSchools.remove(),-1===t.exclusions.indexOf("features")&&a&&a.type_&&"HSListingDetail"==a.type_?(u.add("propertyFeatures",new p.ChildController({type:"controllers/Property/PropertyFeatures",namespace:d.get(),register:{bubble:r}}),!0),m.updateController("propertyFeatures",{$dom:n.divFeatures,data:{listing:a,accordionOpen:e.data.accordionOpen}})):n.divFeatures.remove(),-1===t.exclusions.indexOf("map")?(u.add("propertyMap",new p.ChildController({type:"controllers/Property/PropertyMap",namespace:d.get(),register:{bubble:r}}),!0),m.updateController("propertyMap",{$dom:n.divMap,data:{listing:a,propertyStatus:o&&o.propertyStatus?o.propertyStatus:""}})):n.divMap.remove(),-1===t.exclusions.indexOf("transit")?(n.divMassTransit.hide(),u.add("massTransitCollapse",new p.ChildController({type:"controllers/Property/MassTransitCollapse",namespace:d.get(),register:{bubble:r}}),!0),m.updateController("massTransitCollapse",{$dom:n.divMassTransit,data:{propertyAddressId:o.id}})):n.divMassTransit.remove(),-1===t.exclusions.indexOf("commute")?(u.add("commuteTimesCollapse",new p.ChildController({type:"controllers/PropertyCommuteTimesCollapse",namespace:d.get(),register:{bubble:r}}),!0),m.updateController("commuteTimesCollapse",{$dom:n.divCommuteTimes,data:{propertyAddressItem:o}})):n.divCommuteTimes.remove(),-1===t.exclusions.indexOf("mortgage")&&a&&a.type_&&"HSListingDetail"==a.type_&&a.transactionType&&a.transactionType.forSale?(u.add("mortgageCalculatorCollapse",new p.ChildController({type:"controllers/MortgageCalculatorCollapse",namespace:d.get(),register:{bubble:r}}),!0),a&&a.currentPrice&&m.updateController("mortgageCalculatorCollapse",{$dom:n.divMortgageCalculator,data:{price:a.currentPrice.raw,propertyAddressItem:o,propertyDetails:a}})):n.divMortgageCalculator.remove(),-1===t.exclusions.indexOf("similar")&&a&&(!a.type_||"HSPropertyAddressDetail"!=a.type_)&&a.status&&a.status.canGetSimilarListings){u.add("similar",new p.ChildController({type:"controllers/SimilarListings",namespace:d.get(),register:{bubble:r}}),!0);var s={};a.type_&&"HSListingDetail"==a.type_&&(s.listingID=a.listingID),s.propertyID=a.propertyID,s.transactionType=a.transactionType,s.count=8,s.baths=a.baths?a.baths.raw.full:void 0,s.beds=a.beds?a.beds.raw:void 0,a.type_&&"HSListingDetail"==a.type_?(s.price=a.currentPrice?a.currentPrice.raw:void 0,s.sPropertyType2=a.sPropertyType2.raw):(s.price=a.value?a.value.raw:void 0,s.sPropertyType2=a.mappedSPropertyType),s.yearBuilt=a.yearBuilt,s.latitude=a.latitude,s.longitude=a.longitude,m.updateController("similar",{$dom:n.divSimilar,data:s})}else n.divSimilar.remove()}function i(){u.uninit()}function l(e,t){u.event(e,t)}var n,p=e("ControllerObjects"),d=new p.Unique(t),c=new p.Callbacks,u=new p.ChildControllerManager,m=new p.StateManager(u,{}),y={template:new p.Getter({namespace:d.get(),success:function(e){try{s(e)}catch(e){throw m&&console.info(m),e}},template:{url:"controllers/Property/PropertyCollapses.html",dom:["divSchools","divMap","divMassTransit","divFeatures","divMortgageCalculator","divSimilar","divCommuteTimes"]}})};return{update:o,restore:function(e){m.restore(e,a)},uninit:i,getState:m.getState.bind(m),register:c.register.bind(c),event:l}}});//# sourceMappingURL=https://assets.homesnap.com/app/js_min/controllers/Property/PropertyCollapses.js.map?hash=8ac09e49d6f290c9411f26251fdd000bdefine("controllers/SchoolItem",["require","ControllerObjects"],function(e){return function(t){function n(e){i.call("bubble",e)}function r(){try{u.requireDom(),u.require("item")}catch(e){throw e}m.template.get({$dom:u.$dom,data:u.get("item")})}function o(e){var t=e.$dom,r=e.data;t.aSchoolName.length&&t.aSchoolName.on("click",function(e){return n({type:"url.unhandled",url:$(e.currentTarget).attr("href"),data:r}),!1})}var a=e("ControllerObjects"),c=new a.Unique(t),i=new a.Callbacks,l=new a.ChildControllerManager,u=new a.StateManager(l,{}),m={template:new a.Getter({namespace:c.get(),success:function(e){try{o(e)}catch(e){throw u&&console.info(u),e}},template:{url:"controllers/SchoolItem.html",dom:["aSchoolName"]}})};return{update:function(e){u.update(e),r()},restore:function(e){u.restore(e,r)},uninit:function(){l.uninit()},getState:u.getState.bind(u),register:i.register.bind(i),event:function(e,t){l.event(e,t)}}}});//# sourceMappingURL=https://assets.homesnap.com/app/js_min/controllers/SchoolItem.js.map?hash=7c9279c4c15b178aae94fd7708c55f17define("controllers/SearchBreadcrumbs",["require","ControllerObjects","Objects","Utilities"],function(e){return function(r){function t(e){m.call("bubble",e)}function a(){try{v.requireDom(),v.optional("entityType"),v.optional("entityID"),v.optional("propertyAddressItem"),v.optional("searchDefinition"),v.optional("callAppMode"),v.optional("hidePropertyAddress")}catch(e){throw e}var e=v.get("propertyAddressItem"),r=v.get("hidePropertyAddress",!1);if(c=v.get("searchDefinition")||c,v.get("entityType")&&v.get("entityID")){var t;A.listHierarchy.get({data:{entityType:v.get("entityType"),entityID:v.get("entityID"),polygonType:1},pass:{callAppMode:null===(t=v.get("callAppMode"))||void 0===t||t,propertyAddressItem:e,hidePropertyAddress:v.get("hidePropertyAddress")},map:function(e){return d(e,null,r)}})}else if(e){var a;A.areas.get({data:{propertyAddressID:e.id,skip:0,take:50,polygonType:1,areaTypes:61},pass:{callAppMode:null===(a=v.get("callAppMode"))||void 0===a||a,propertyAddressItem:e},map:function(t){return d(t,e,r)}})}else v.$dom.empty()}function n(r,a){var n,o=r.pass.propertyAddressItem||{};null!==r&&void 0!==r&&null!==(n=r.pass)&&void 0!==n&&n.callAppMode?e(["modules/AppMode"],function(e){void 0!==e&&e().parse(null===r||void 0===r?void 0:r.data,!0,a)}):t({type:"breadcrumbDataLoad",data:null===r||void 0===r?void 0:r.data}),A.template.get({$dom:v.$dom,data:{area:r.data,isOpenHouse:!(!o||!o.listing)&&o.listing.isOpenHouse,isForSale:!(!o||!o.transactionType)&&o.transactionType.forSale,isForRent:!(!o||!o.transactionType)&&o.transactionType.forRent,siteRootUrl:g?window.Homesnap.siteRootUrl:"https://www.homesnap.com",propertyAddressItem:o}})}function o(e){var r,a,n=e.data||{};l=e.$dom;var o=n.propertyAddressItem,d=null!==(r=null===(a=c)||void 0===a?void 0:a.getUrl())&&void 0!==r?r:{};l.ulBreadcrumbs.find("li").children().each(function(r,a){var n=$(a),l=n.data("type"),p=n.data("index");if("area"===l&&n.is("a")){var u,f,m,h,v,A,g=e.data.area[p].item,b=(null===o||void 0===o?void 0:null===(u=o.transactionType)||void 0===u?void 0:u.forRent)||2===(null===(f=c)||void 0===f?void 0:null===(m=f.transactionType)||void 0===m?void 0:m.value),w=null===(h=c)||void 0===h?void 0:null===(v=h.specialFeatures)||void 0===v?void 0:v.isOn(1);A=b&&w?y.area.getAreaForRentOpenHouseUrl(g):b?y.area.getAreaForRentUrl(g):w?y.area.getAreaOpenHouseUrl(g):y.area.getAreaSearchUrl(g),n.attr("href",i(A,d.suffix)).on("click",function(e){return t({type:"url.unhandled",url:$(e.currentTarget).attr("href"),data:g}),!1})}else"propertyAddress"===l&&s(n,o)})}function i(e,r){return r&&-1!==r.indexOf("f_1")&&e&&-1!==e.indexOf("f_1")?e+r.replace("/f_1",""):r?e+r:e}function s(e,r){var a;null!==r&&void 0!==r&&null!==(a=r.status)&&void 0!==a&&a.belongsToMultiUnitAddress&&A.itemByIds.get({data:{propertyAddressID:r.id},success:function(r){try{var a=null===r||void 0===r?void 0:r.data;if(null!==a&&void 0!==a&&a.id&&!a.propertyID){var n=$("");n.attr("href",a.url).addClass("paint-first-font"),n.on("click",function(){return t({type:"url.unhandled",url:a.url,data:a}),!1}),e.before(n),n.append(e)}}catch(e){throw v&&console.info(v),e}}})}function d(e,r,t){var a=!1,n=!1,o={1:!1,2:!1,3:!0},i=[];return Array.isArray(e)&&e.forEach(function(e){switch(e.areaTypeID){case 1:case 2:n=!0,i.push({name:e.name,type:"area",item:e});break;case 3:i.push({name:n?e.shortName:e.name,type:"area",item:e});break;case 4:a=!0,i.push({name:e.shortName,type:"area",item:e});break;case 5:i.push({name:a?e.shortName:e.name,type:"area",item:e});break;case 6:e.subTypeID&&(o[e.subTypeID.toString()]||i.push({name:e.name,type:"area",item:e}),o[e.subTypeID.toString()]=!0)}}),r&&!t&&(i.push({name:r.address.fullStreetAddressWithoutUnit,type:"propertyAddress",url:r.url}),r.address.unitNumber&&i.push({name:r.address.unitNumber.string,type:"unit",url:r.url})),i}var l,c,p=e("ControllerObjects"),u=e("Objects"),y=e("Utilities"),f=new p.Unique(r),m=new p.Callbacks,h=new p.ChildControllerManager,v=new p.StateManager(h,{}),A={listHierarchy:new p.Getter({type:[u.HSAreaItem],webService:"/service/Areas/ListHierarchy",success:function(e){try{n(e,"/service/Areas/ListHierarchy")}catch(e){throw v&&console.info(v),e}},failure:function(){throw v&&console.info(v),new Error("Search Breadcrumbs List Hierarchy controller: Unhandled Error")}}),areas:new p.Getter({type:[u.HSAreaItem],webService:"/service/Areas/ListByPropertyAddress",success:function(e){try{n(e,"/Areas/ListByPropertyAddress")}catch(e){throw v&&console.info(v),e}},failure:function(){throw v&&console.info(v),new Error("Search Breadcrumbs Areas List controller: Unhandled Error")}}),template:new p.Getter({namespace:f.get(),success:function(e){try{o(e)}catch(e){throw v&&console.info(v),e}},template:{url:"controllers/SearchBreadCrumbs.html",dom:["ulBreadcrumbs"]}}),itemByIds:new p.Getter({namespace:f.get(),type:u.HSPropertyAddressItem,webService:"/service/PropertyAddresses/GetByIDs",failure:function(){throw v&&console.info(v),new Error("Search Breadcrumbs Item by IDs controller: Unhandled Error")}})},g=y.coStarBrand.is("citysnap");return{update:function(e){v.update(e),a()},restore:function(e){v.restore(e,a)},uninit:function(){h.uninit()},getState:v.getState.bind(v),register:m.register.bind(m),event:function(e,r){h.event(e,r)}}}});//# sourceMappingURL=https://assets.homesnap.com/app/js_min/controllers/SearchBreadcrumbs.js.map?hash=be5d79a53b8947ba51173f8f6cb8b763define("controllers/SimilarListings",["require","ControllerObjects","Objects","Application"],function(t){return function(e){function n(){y="",h=!1,f=!1}function i(t){m.call("bubble",t)}function s(t){v.update(t),a()}function a(){n();var t={};t.listingID=v.get("listingID",0),t.propertyID=v.get("propertyID",0),32===v.get("sPropertyType2")||128===v.get("sPropertyType2")?(t.baths=-1,t.beds=-1):(t.baths=v.get("baths"),t.beds=v.get("beds")),t.price=v.get("price"),t.sPropertyType2=v.get("sPropertyType2"),t.yearBuilt=v.get("yearBuilt"),t.latitude=v.get("latitude"),t.longitude=v.get("longitude"),t.count=v.get("count"),t.transactionType=v.get("transactionType").raw,v.$dom&&C.main.get({$dom:v.$dom,data:{transactionType:v.get("transactionType")},pass:{propertyObj:t,accordionOpen:v.get("accordionOpen")}})}function r(e){var n=e.$dom,i=e.pass||{};t(["modules/collapse"],function(t){if(void 0===t)return!1;new t({$label:n.divSimilarListingsLabel,$chevron:n.spanSimilarListingsCollapseChevron,$collapseContainer:n.divSimilarListingsCollapse,open:!!i.accordionOpen&&i.accordionOpen}).register("shown",function(){o(i.propertyObj,"similar",n)}),new t({$label:n.divRecentListingsLabel,$chevron:n.spanRecentListingsCollapseChevron,$collapseContainer:n.divRecentListingsCollapse,open:!!i.accordionOpen&&i.accordionOpen}).register("shown",function(){o(i.propertyObj,"recent",n)})})}function o(t,e,n){y?l(e,n):C.getListings.get({data:t,success:function(t){try{y=t.data,l(e,n)}catch(t){throw v&&console.info(v),t}}})}function l(t,e){"similar"!=t||h?f||L.done(function(){var t,n;null!==(t=b)&&void 0!==t&&null!==(n=t.registrationStatus)&&void 0!==n&&n.registered?(C.recentListings.get({$dom:e.divRecentListingsCollapse,data:y.recentSales,success:function(t){var n=t.data||[];n.length>0?v.updateController("recent",{$dom:t.$dom.divRecent,data:n.map(function(t){return{propertyAddressItem:t,showDistance:{latitude:v.get("latitude"),longitude:v.get("longitude")},showFavoriteIcon:!0,placardVersion:2}})}):e.divRecentListingsCollapse.html("

    No Results Found
    No recent sales found

    ")}}),f=!0):(e.divRecentListingsCollapse.html("

    Please Sign up
    To view recent sales, please connect to your agent.

    "),$(".recent-listings-empty-set",e.divRecentListingsCollapse).length&&$(".recent-listings-empty-set",e.divRecentListingsCollapse).on("click",function(){return i({type:"account.mode",data:"myAgent"}),!1}).attr("href","/account/signup"))}):(C.similarListings.get({$dom:e.divSimilarListingsCollapse,data:y.similarListings,success:function(t){var n=t.data||[];n.length>0?v.updateController("similar",{$dom:t.$dom.divSimilar,data:n.map(function(t){return{propertyAddressItem:t,showDistance:{latitude:v.get("latitude"),longitude:v.get("longitude")},showFavoriteIcon:!0,placardVersion:2}})}):e.divSimilarListingsCollapse.html("

    No Results Found
    No similar listings found.

    ")}}),h=!0)}var c=t("ControllerObjects"),d=t("Objects"),p=t("Application"),g=new c.Unique(e),m=new c.Callbacks,u=new c.ChildControllerManager,v=new c.StateManager(u);u.add("similar",new c.ChildControllerArray({type:"controllers/Property/PropertyAddressItem",namespace:g.get(),register:{bubble:i}})),u.add("recent",new c.ChildControllerArray({type:"controllers/Property/PropertyAddressItem",namespace:g.get(),register:{bubble:i}}));var b,y,h,f,L=function(){var t=$.Deferred();return p.getCurrentUser(function(e){b=e.user,t.resolve()}),t}(),C={main:new c.Getter({namespace:g.get(),success:function(t){try{r(t)}catch(t){throw v&&console.info(v),t}},template:{url:"controllers/SimilarListings.html",dom:["spanSimilarListingsCollapseChevron","divSimilarListingsCollapse","spanRecentListingsCollapseChevron","divRecentListingsCollapse","divSimilarListingsLabel","divRecentListingsLabel","spanHeadingText"]}}),getListings:new c.Getter({namespace:g.get(),type:d.HSSimilarListingsResult,webService:"/service/Listings/ListSimilar"}),similarListings:new c.Getter({namespace:g.get(),template:{name:"controllers/SimilarListingItems",html:'

    \n\t\t\t\t\t\t{{#each data}}

    \n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t

    {{/each}}\n\t\t\t\t\t\t

    ',dom:[["divSimilar"]]}}),recentListings:new c.Getter({namespace:g.get(),template:{name:"controllers/RecentListingItems",html:'

    \n\t\t\t\t\t\t{{#each data}}

    \n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t

    {{/each}}\n\t\t\t\t\t\t

    ',dom:[["divRecent"]]}})};return{update:s,restore:function(t){v.restore(t,a)},uninit:function(){u.uninit()},getState:v.getState.bind(v),register:m.register.bind(m),event:function(t,e){u.event(t,e)}}}});//# sourceMappingURL=https://assets.homesnap.com/app/js_min/controllers/SimilarListings.js.map?hash=0b398735764d12bdb1990b95688e8b25define("controllers/UserItem",["require","ControllerObjects"],function(e){return function(t){function n(e){s.call("bubble",e)}function r(e){d.update(e),a()}function a(){var e;try{d.requireDom(),d.require("userItem"),d.require("userItem","IUserItem"),d.optional("link"),d.optional("useConsumerViewDisplayPhone"),d.optional("showUserLocation")}catch(e){throw e}var t,n=d.get("userItem");if(d.get("subhead",!0)){var r,a,o;"string"==typeof d.get("subhead",!0)?t=d.get("subhead"):null!==(r=n.agentDetails)&&void 0!==r&&r.brokerage?t=n.agentDetails.brokerage:null!==(a=n.agentDetails)&&void 0!==a&&null!==(o=a.office)&&void 0!==o&&o.name&&(t=n.agentDetails.office.name)}var i;d.get("brand",!1)&&(i=n.brand),c.template.get({$dom:d.$dom,data:{image:d.get("image"),user:n,subhead:t,showUserLocation:d.get("showUserLocation"),thermometer:d.get("thermometer",!1),badges:d.get("badges"),note:d.get("note"),brand:i,chevron:d.get("chevron"),license:d.get("license",!1),useConsumerViewDisplayPhone:d.get("useConsumerViewDisplayPhone",!1)&&!(null===(e=n.agentDetails)||void 0===e||!e.consumerViewDisplayPhone)}})}function o(e){var t,r,a=e.$dom,o=e.data||{},s=o.user||{},c=o.useConsumerViewDisplayPhone;if(!d.get("link",!0)||s.status.doesNotHaveProfile||c)a.aName.length&&a.aName.on("click",function(e){return n({type:"url.unhandled",url:$(e.currentTarget).attr("href"),data:s}),!1});else{var m,g,h=null!==s.entityType||null!==s.entityID&&0!==s.entityID?s.entityType:2;g=60===h?s.entityGuid:s.entityID?s.entityID:s.userID;var b;b=null!==(m=s.agentDetails)&&void 0!==m&&m.urlName?"/".concat(s.agentDetails.urlName):"/entity/".concat(h,"/").concat(g).concat(d.get("promoSource")?"?utm_source=".concat(d.get("promoSource")):""),a.a.on("click",function(e){return n({type:"url.unhandled",url:b,data:s}),!1}).attr("href",b)}o.image&&(u.add("image",new i.ChildController({type:"controllers/UserProfileImage",namespace:l.get(),register:{bubble:n}}),!0),d.updateController("image",{$dom:a.divImage,data:{userItem:s,cssClass:"paint-second-background",link:!!c}})),o.badges&&(u.add("badges",new i.ChildController({type:"controllers/Badges",namespace:l.get(),register:{bubble:n}}),!0),d.updateController("badges",{$dom:a.divBadges,data:{badges:o.badges,classes:"small"}})),d.get("brand",!1),o.thermometer&&null!==(t=s.agentDetails)&&void 0!==t&&null!==(r=t.activity)&&void 0!==r&&r.percentages&&(u.add("thermometer",new i.ChildController({type:"controllers/UserThermometer",namespace:l.get(),register:{bubble:n}}),!0),d.updateController("thermometer",{$dom:a.divThermometer,data:{thermometer:s.agentDetails.activity.percentages}})),a.divPhoneNumber.length&&a.divPhoneNumber.on("click",function(){n({type:"userItem.phoneNumberClicked"})})}var i=e("ControllerObjects"),l=new i.Unique(t),s=new i.Callbacks,u=new i.ChildControllerManager,d=new i.StateManager(u,{}),c={template:new i.Getter({namespace:l.get(),success:function(e){try{o(e)}catch(e){throw d&&console.info(d),e}},template:{url:"controllers/UserItem.html",dom:["a","aName","divImage","divText","divThermometer","divBrand","divBadges","divPhoneNumber"]}})};return{update:r,restore:function(e){d.restore(e,a)},uninit:function(){u.uninit()},getState:d.getState.bind(d),register:s.register.bind(s),event:function(e,t){u.event(e,t)}}}});//# sourceMappingURL=https://assets.homesnap.com/app/js_min/controllers/UserItem.js.map?hash=e62a817c3f9f35c4fd269e08a1bc224ddefine("controllers/UserProfileImage",["require","ControllerObjects","Application","Utilities"],function(t){return function(e){function n(t){y.call("bubble",t)}function a(t){w.update(t),i()}function i(){try{w.requireDom(),w.require("userItem","IUserProfileImage"),w.optional("type"),w.optional("link"),w.optional("showProPlusBadge"),w.optional("cssClass")}catch(t){throw t}m=w.get("userItem"),C=w.get("disableLink")||!1,B.done(function(){m&&m.entityID===f.entityID&&v.register("pusherProfileUpdated",o,e)}),D.template.get({$dom:w.$dom,data:{user:m,cssClass:w.get("cssClass",!1),link:w.get("link",!0),type:w.get("type",null)}})}function r(t){var e,a,i;p=t.$dom;var r=t.data;P=w.$dom.width(),U=w.$dom.height(),u(r.type||null);var o="";(g=w.get("utms"))&&(o="?utm_campaign=".concat(g.utmCampaign,"&utm_source=").concat(g.utmSource,"&utm_medium=").concat(g.utmMedium,"&utm_term=").concat(g.utmTerm,"&utm_content=").concat(g.utmContent));var c=l();if(c&&(p.spanInitials.addClass("bs4--d-none"),p.link.css("background-image","url(".concat(c,")"))),m.profileUrl&&w.get("link",!0)){var d,f=null!==m.entityType||null!==m.entityID&&0!==m.entityID?m.entityType:2;d=60===f?m.entityGuid:m.entityID?m.entityID:m.userID;var h;h=m.agentDetails&&m.agentDetails.urlName?"/".concat(m.agentDetails.urlName).concat(o):"/entity/".concat(f,"/").concat(d),C?p.link.attr("href","javascript:void(0)").attr("aria-hidden","true").attr("tabindex",-1).off("click").css("cursor","default"):p.link.on("click",function(t){return n({type:"url.unhandled",url:h,data:m}),!1}).attr("href",h)}w.get("showProPlusBadge")&&null!==r&&void 0!==r&&null!==(e=r.user)&&void 0!==e&&null!==(a=e.currentDetails)&&void 0!==a&&null!==(i=a.status)&&void 0!==i&&i.hasRunningProPlusSubscription&&s(r.user)}function l(){if(m.profileImage)return P>150&&U>150?m.profileImage.large:P>=50&&U>=50?m.profileImage.medium:P>0&&U>0?m.profileImage.small:m.profileImage.large;if(m.facebookID){var t="https://graph.facebook.com/".concat(m.facebookID,"/picture");return P>150&&U>150?t+="?type=large":P>50&&U>50&&(t+="?type=normal"),t}return!1}function o(t){var e="";e=P>150&&U>150?t.large:P>50&&U>50?t.medium:t.small,t&&p.spanInitials.addClass("bs4--d-none"),p.link.css("background-image","url(".concat(e,")"))}function s(t){if(p.spanProPlusBadge.length){var e,n,a=.2*P,i=.2*U,r="#4285f4";"empire"===k.themes.current?r="#000000":null!==t&&void 0!==t&&null!==(e=t.agentDetails)&&void 0!==e&&null!==(n=e.status)&&void 0!==n&&n.goldCheckMark&&(r="#fac332");var l='');l+='",p.spanProPlusBadge.html(l).removeClass("hidden")}}function u(t){"HSLeadPhoneCall"===t&&(x=3),p.spanInitials.css("font-size","".concat(parseInt(U/x,10),"px"))}function c(){m&&m.currentDetails&&v.unregister(e),b.uninit()}function d(t,e){"initials.resize"===t&&(U=w.$dom.height(),u()),b.event(t,e)}var p,m,g,f,h=t("ControllerObjects"),v=t("Application"),k=t("Utilities"),I=new h.Unique(e),y=new h.Callbacks,b=new h.ChildControllerManager,w=new h.StateManager(b,{}),D={template:new h.Getter({namespace:I.get(),success:function(t){try{r(t)}catch(t){throw w&&console.info(w),t}},template:{url:"controllers/UserProfileImage.html",dom:["link","spanInitials","spanProPlusBadge"]}})},C=!1,P=0,U=0,x=2,B=function(){var t=$.Deferred();return v.getCurrentUser(function(e){f=e.user,t.resolve()}),t}();return{update:a,restore:function(t){w.restore(t,i)},uninit:c,getState:w.getState.bind(w),register:y.register.bind(y),event:d}}});//# sourceMappingURL=https://assets.homesnap.com/app/js_min/controllers/UserProfileImage.js.map?hash=c7d3a300adfa49838f497948be0b988ddefine("modules/Collapse",["require","ControllerObjects","jquery","bootstrap"],function(e){return function(n){function l(){n.$collapseContainer.collapse("show"),s.attr("aria-expanded",!0),n.$chevron&&n.$chevron.text(n.chevronShowText||"expand_less"),n.openLabel&&n.$label.text(n.closeLabel)}function o(){n.$collapseContainer.collapse("hide"),n.$chevron&&n.$chevron.text(n.chevronHideText||"expand_more"),n.closeLabel&&n.$label.text(n.openLabel),s.attr("aria-expanded",!1)}function t(){return n.$collapseContainer.hasClass("in")}var a=e("ControllerObjects"),r=e("jquery"),c=(e("bootstrap"),new a.Callbacks),s=r("").attr("tabIndex",0).attr("aria-expanded",n.open);if(s.css({"background-color":"transparent","text-align":"inherit"}).addClass("bs4--border-0 bs4--w-100 bs4--px-0"),n&&n.$collapseContainer&&n.$collapseContainer.length&&n.$collapseContainer.on("show.bs.collapse",function(){c.call("show")}).on("shown.bs.collapse",function(){c.call("shown")}).on("hide.bs.collapse",function(){c.call("hide")}).on("hidden.bs.collapse",function(){c.call("hidden")}),n){if(n.$label&&n.$label.length){s=n.$label.parent("button").length?n.$label.parent("button"):n.$label.children("button").length?n.$label.first("button"):n.$label.wrapInner(s).find("button");var i=n.$label.css("color");s.css("color",i),function(){var e,l;n.$collapseContainer.attr("aria-labelledby",null===(e=n.$label)||void 0===e?void 0:null===(l=e[0])||void 0===l?void 0:l.id)}(),n.$label.on("click keypress",function(e){if("Enter"===e.Code||"click"===e.type)return t()?o():l(),!1})}n.open&&l()}return{register:c.register.bind(c)}}});//# sourceMappingURL=https://assets.homesnap.com/app/js_min/modules/Collapse.js.map?hash=2196cdc0093dad53a3376befe34005fb

    Download The App

    Or text me link

    {{/with}}';Homesnap.templates["controllers/DownloadMobileAppForm.html"] = '{{#with data}}{{/with}}';Homesnap.templates["controllers/Footer.html"] = '{{#with data}}

    Homesnap is operated by Ten-X. Ten-X holds real estate licenses in all 50 states and D.C.

    § 442-H New York Standard Operating Procedures

    New York Fair Housing Notice

    TREC: Information about brokerage services,Consumer protection notice

    California DRE #01937601

    Contact Ten-XBrokerage

    {{/with}}';Homesnap.templates["controllers/generic.html"] = 'Skip to main content
    ';Homesnap.templates["controllers/Header.html"] = '{{#with data}}{{/with}}';Homesnap.templates["controllers/Property/PropertyAddressItem.html"] = '{{#with data}}

    {{#and item.latitude item.longitude}} {{/and}}{{#if item.primaryImage }}1719 Military Street, Port Huron, MI, 48060 (4){{/if}}

    • {{#if gradient}} {{/if}} {{#if corner}} {{/if}} {{#unless paging}} {{#or price buildingUnit}}

      {{#if price}}

      {{item.price.short}}

      {{/if}} {{#if buildingUnit}}

      {{buildingUnit}}

      {{/if}}

      {{/or}} {{/unless}} {{#if address}}

      {{item.address.fullStreetAddress}}
      {{~#if item.address.city}}{{item.address.city}}, {{/if~}} {{~#if item.address.state}}{{item.address.state}} {{/if~}} {{~#if item.address.zip}}{{item.address.zip}}{{/if~}}

      {{/if}}
    • {{#if paging}} {{#each item.secondaryImages}}
    • {{/each}} {{/if}} {{#and (or paging buildingSummary)(compare placardVersion "!=" 2)}}
    • 1719 Military Street, Port Huron, MI, 48060 (5)

      {{#or units.total buildingSummary}} {{units.total}} Total Units {{else}} {{~#if item.price}}{{item.price.dollars}}{{/if}}
      {{~#if item.propertyStatus}}{{{item.propertyStatus.text}}}{{/if}}
      {{/or}}

      {{#unless buildingSummary}} {{~item.address.fullStreetAddress}} • {{item.address.cityStateZip}}
      {{~#if item.beds}}{{item.beds.string}} {{item.beds.label}}{{/if~}} {{~#if item.baths}} {{~#if item.beds}} • {{/if~}} {{{item.baths.string}}} {{item.baths.label}} {{~/if~}} {{~#if item.sqFt}} {{~#or item.beds item.baths}} • {{/or~}} {{item.sqFt.string}} sq ft {{~/if~}} {{~#if item.yearBuilt}} {{~#or item.beds item.baths item.sqFt}} • {{/or~}} Built {{item.yearBuilt}} {{~/if~}} {{~#if item.lotSize}}{{#and item.beds item.baths item.sqFt item.yearBuilt}}{{else}} {{~#or item.beds item.baths item.sqFt item.yearBuilt}} • {{/or~}} {{item.lotSize.string}} {{item.lotSize.label}} {{/and}} {{/if~}} {{/unless}}
      {{#if detailsButton}}

      Learn More

      {{/if}}

    • {{/and}}
    {{#or paging buildingSummary}}
      {{/or}}
      {{#and (compare placardVersion "==" 2) item.price (compare buildingSummary "==" false) }}

      {{item.price.dollars}}

      {{/and}} {{#if statusBar}}

      {{~{item.propertyStatus.text}~}} {{~#and item.listing.sListingStatus.contract item.listing.contractDate}} {{item.listing.contractDate.shortMonth}} {{item.listing.contractDate.day}} {{~else and item.listing.sListingStatus.sold item.listing.closeDate}} {{item.listing.closeDate.shortMonth}} {{item.listing.closeDate.day}} {{else}} {{~#or item.attributes.mlsStatus.expired item.attributes.mlsStatus.canceled item.attributes.mlsStatus.withdrawn item.attributes.mlsStatus.hold}} {{#if item.attributes.offMarketDate}} {{item.attributes.offMarketDate.shortMonth}} {{item.attributes.offMarketDate.day}} {{/if}} {{/or~}} {{/and~}}

      {{~#or item.listing.specialFeatures.contingent item.listing.specialFeatures.auction item.listing.specialFeatures.shortSale item.listing.specialFeatures.foreclosure ~}} {{!-- item.listing.specialFeatures.newHome --}} {{#with item.listing.specialFeatures ~}}

      {{~#if contingent~}} Contingent {{~else if shortSale~}} Short Sale {{~else if auction~}} Auction {{~else if foreclosure~}} Foreclosure {{~else if newHome~}} New Construction {{~/if~}}

      {{~/with}} {{/or}} {{#or likelihoodStatus secondaryBanner ~}}

      {{likelihoodStatus.title}}

      {{/or}}

      {{/if}} {{#if paging}}

      {{#if gradient}}

      {{/if}}

      {{#and item.price (compare placardVersion "!==" 2)}}

      {{item.price.short}}

      {{/and}}

      {{item.address.fullStreetAddress}}
      {{~#if item.address.city}}{{item.address.city}}, {{/if~}} {{~#if item.address.state}}{{item.address.state}} {{/if~}} {{~#if item.address.zip}}{{item.address.zip}}{{/if~}}
      {{#if units.total}}{{units.total}} Units{{/if}} {{#and item.listing.attribution (compare placardVersion "==" 2) }}

      {{item.listing.attribution}}

      {{/and}}

      {{#each keyStats}}

      {{{this.value}}} {{#compare @root/data/placardVersion "!==" 2}}
      {{/compare}} {{this.label}} {{~#unless @last~}} {{~#compare @root/data/placardVersion "==" 2}}•{{/compare~}} {{~/unless~}}

      {{/each}}

      {{/if}} {{#if buildingSummary}}

      {{#if gradient}}

      {{/if}}

      {{#and units.listings (compare @root/data/placardVersion "!==" 2)}} {{units.listings}} Listings {{/and}}

      {{#if units.total}}{{item.address.fullStreetAddressWithoutUnit}}{{else}}{{item.address.fullStreetAddress}}{{/if}}
      {{~#if item.address.city}}{{item.address.city}}, {{/if~}} {{~#if item.address.state}}{{item.address.state}} {{/if~}} {{~#if item.address.zip}}{{item.address.zip}}{{/if~}}
      {{#and units.listings (compare @root/data/placardVersion "==" 2)}} {{units.listings}} Listings {{#and units.total (compare @root/data/placardVersion "==" 2)}} | {{/and}} {{/and}} {{#if units.total}} {{units.total}} Units {{/if}}

      {{/if}} {{#if showFavoriteIcon}} {{/if}} {{#compare placardVersion "==" 2 }} {{/compare}}

      {{#if singleFamilyResidence}}<script type="application/ld+json"> {{#if item.listing.openHouse}}[{{/if}} {"@context":"https://schema.org","@type":"SingleFamilyResidence","address": {"@type": "PostalAddress","@context":"https://schema.org","streetAddress": "{{item.address.fullStreetAddress}}","addressLocality": "{{item.address.city}}","addressRegion": "{{item.address.state}}","addressCountry": "USA","postalCode": "{{item.address.zip}}"},{{#if item.primaryImage}}"photo": {"@type": "ImageObject","url": "{{item.primaryImage.large}}" }, {{/if}}"geo": {"@type": "GeoCoordinates","latitude": "{{item.longitude}}","longitude": "{{item.longitude}}"},"description": "{{item.remarks}}","name": "{{item.address.fullStreetAddress}}, {{item.address.cityStateZip}}","url": "{{@root/data/siteRootUrl}}{{item.url}}" } {{#if item.listing.openHouse}},{ "@context": "https://schema.org", "@type": "Event", "name": "Open House {{item.listing.openHouse.times}}", "description": "{{item.remarks}}", "url": "{{@root/data/siteRootUrl}}{{item.url}}", {{#if item.primaryImage}} "image": [ {{#if item.primaryImage.large}}"{{item.primaryImage.large}}"{{/if}} {{#each item.secondaryImages}} ,"{{listing}}" {{/each}} ], {{/if}} "startDate": "{{item.listing.openHouse.startDateString}}", {{#if item.price}} "offers": { "@type": "Offer", "@id": "{{@root/data/siteRootUrl}}{{item.url}}", "image": [ {{#if item.primaryImage.large}}"{{ item.primaryImage.large}}"{{/if}} {{#each item.secondaryImages}} ,"{{listing}}" {{/each}} ], "url": "{{@root/data/siteRootUrl}}{{item.url}}", "description": "{{item.remarks}}", "price": "{{item.price.raw}}", "priceCurrency": "USD", "BusinessFunction": "https://purl.org/goodrelations/v1#{{#if item.transactionType.forSale}}Sell{{else if item.transactionType.forRent}}LeaseOut{{/if}}" }, {{/if}} {{#with item.address}} "location": { "@type": "Place", "name": "{{fullStreetAddress}}", "address": { "@type": "PostalAddress", "addressCountry": "USA", "addressLocality": "{{city}}", "addressRegion": "{{state}}", "postalCode": "{{zip}}", "streetAddress": "{{fullStreetAddress}}" } } {{/with}} } {{/if}} {{#if item.listing.openHouse}}]{{/if}}</script>{{/if}}

      {{/with}}';Homesnap.templates["controllers/Property/PropertyFavorite.html"] = '{{#with data}}{{#if showText}} {{#if propertyAddressItem.status.isFavorited}}Unfavorite{{else}}Favorite{{/if}}{{/if}}{{/with}}';Homesnap.templates["controllers/SearchDropdown.html"] = '{{#with data}}{{#each this}}{{#if header}}
    • {{header}}
    • {{/if}}{{#each items}}
    • {{#compare type_ "HSAreaItem"}} {{name}} {{#compare areaTypeID 1}}
      State {{/compare}} {{#compare areaTypeID 2}} {{#if state}}
      {{state}} {{else}}
      Metro Area {{/if}} {{/compare}} {{#compare areaTypeID 3}}
      {{state}} {{/compare}} {{#compare areaTypeID 4}}
      City/Town {{/compare}} {{#compare areaTypeID 5}}
      Zip {{/compare}} {{#compare areaTypeID 6}}
      {{#if uspsCity}}{{uspsCity}}, {{/if}}{{state}} {{/compare}} {{#unless status.hasMLSCoverage}}
      Notify Me When Available{{/unless}}{{else compare type_ "HSPropertyAddressItem"}}{{#if building.name}}{{building.name}}
      {{/if}}{{address.fullStreetAddress}}{{#compare propertyStatus.color "red"}}{{/compare}}{{#compare propertyStatus.color "orange"}}{{/compare}}{{#compare propertyStatus.color "yellow"}}{{/compare}}{{#compare propertyStatus.color "purple"}}{{/compare}}{{#compare propertyStatus.color "green"}}{{/compare}}
      {{address.cityStateZip}}{{else compare type_ "HSSchool"}}{{name}}
      {{address.city}}, {{address.state}}{{else compare type_ "HSStreetArea"}}{{name}}
      {{area.name}}{{else compare type_ "HSSavedSearch"}}{{name}}{{#if summary}}
      {{{summary}}}{{/if}}{{else compare type_ "CommuteTimeBanner"}}Find Homes by Commute Time{{else compare type_ "HSIPLocation"}}Current Location{{else compare type_ "notClickable"}}{{name}}{{else compare type_ "ListingCarts"}}listImported Listing Carts{{else compare type_ "SavedSearches"}}searchImported Saved Searches{{/compare}}{{#if autocompleteStatus.farFromBoundary}}
      Too far away. {{else if autocompleteStatus.notCombinable}}
      Area not combinable. {{else if ../multiAreaReset}}
      Clear and run this search{{/if}}
    • {{#if @last}}{{#compare type_ "HSSavedSearch"}}
    • More Saved Searches
    • {{/compare}}{{/if}}{{/each}}{{#if divider}}
    • {{/if}}{{else}}
    • No Results

      Try one of these:

      • Address
      • City/Town
      • Zip Code
      • Neighborhood
      • Street Name
      • MLS#
    • {{/each}}{{/with}}';Homesnap.templates["controllers/UserItem.html"] = '{{#with data}}{{#if useConsumerViewDisplayPhone}}

      {{#if image}}

      {{/if}}

      {{#if useConsumerViewDisplayPhone}}

      {{#if agentDetails.doingBusinessAs}} {{user.agentDetails.doingBusinessAs}} {{else if user.agentDetails.agentDisplayName}} {{user.agentDetails.agentDisplayName}} {{else}} {{user.name.full}} {{/if}} {{#if useConsumerViewDisplayPhone}}a{{else}}div{{/if}}>{{#and license user.agentDetails.license}}{{user.agentDetails.license}}{{/and}} {{#if thermometer}} {{/if}} {{#if useConsumerViewDisplayPhone}}

      {{user.agentDetails.consumerViewDisplayPhone.phone.withExtension}}{{/if}} {{#if subhead}}

      {{{subhead}}}

      {{/if}} {{#and showUserLocation user.agentDetails.office.address.cityState}}

      {{{user.agentDetails.office.address.cityState}}}

      {{/and}} {{#if badges}}

      {{/if}}

      {{#if brand}}

      1719 Military Street, Port Huron, MI, 48060 (6)

      {{else if chevron}}

      keyboard_arrow_right

      {{/if}} {{#if note}}

      {{note}}

      {{/if}}{{#if useConsumerViewDisplayPhone}}div{{else}}a{{/if}}>{{/with}}';Homesnap.templates["controllers/ActionBar.html"] = '{{#with data}}

        {{#if showSendInAMessage}}
      • {{/if}}{{#if showFavorite}}
      • {{/if}}{{#if showShare}}{{/if}}{{#if showContact}}
      • phonecontact agent
      • {{/if}}

      {{/with}}';Homesnap.templates["controllers/Badges.html"] = '{{#with data}} {{#each badges~}}{{{text}}} {{~/each}}{{/with}}';Homesnap.templates["controllers/ImageSlider.html"] = '{{#with data}}

      • 1719 Military Street, Port Huron, MI, 48060 (7)
      • {{#each pairs}}
      • {{#if upper}}

        1719 Military Street, Port Huron, MI, 48060 (8)

        {{/if}} {{#if lower}}

        1719 Military Street, Port Huron, MI, 48060 (9)

        {{/if}}
      • {{/each}}

      {{#compare pairs.length ">" 0}} chevron_left chevron_right{{/compare}}

      {{/with}}';Homesnap.templates["controllers/ListingDisclaimer.html"] = '{{#with data}}

      Listing Information for {{coStarBrand.listingService}}# {{sourceNumber}}

      {{#with listingCourtesyOf}}

      {{#if status.showListingOffice}}Listing Broker:{{~#if listingOffice.name~}}{{listingOffice.name}}{{~else if listingAgent.agentDetails.office.name~}}{{ listingAgent.agentDetails.office.name}}{{~else if listingAgent.agentDetails.brokerage~}}{{listingAgent.agentDetails.brokerage}}{{~/if}}{{/if}}
      {{~#if listingOffice~}}{{#if status.showListingOfficeStreetAddress}}{{listingOffice.address.fullStreetAddress}}{{/if}}{{~#and status.showListingOfficeStreetAddress status.showListingOfficeCityStateZip listingOffice.address.fullStreetAddress listingOffice.address.cityStateZip }}, {{/and~}}{{~#if status.showListingOfficeCityStateZip}}{{listingOffice.address.cityStateZip}}{{/if}}{{#and status.showListingOfficePhone listingOffice.phone}}{{~#or status.showListingOfficeCityStateZip status.showListingOfficeStreetAddress }}
      {{~/or~}}{{listingOffice.phone.withParentheses}}{{/and}}{{~else if listingAgent.agentDetails.office~}}{{#if status.showListingOfficeStreetAddress}}{{listingAgent.agentDetails.office.address.fullStreetAddress}}{{/if}}{{~#and status.showListingOfficeStreetAddress status.showListingOfficeCityStateZip listingAgent.address.fullStreetAddress listingAgent.address.cityStateZip }}, {{/and~}}{{~#if status.showListingOfficeCityStateZip}}{{listingAgent.agentDetails.office.address.cityStateZip}}{{/if}}{{#and status.showListingOfficePhone listingAgent.agentDetails.office.phone}}{{~#or status.showListingOfficeCityStateZip status.showListingOfficeStreetAddress }}
      {{~/or~}}{{listingAgent.agentDetails.office.phone.withParentheses}}{{/and}}{{/if}}

      {{#if status.showListingAgent}}

      Listing Agent: {{~#if listingAgent.agentDetails.mlsAgentFullName~}} {{listingAgent.agentDetails.mlsAgentFullName}} {{~else~}} {{listingAgent.name.full}} {{/if~}} {{~#and status.showListingAgentLicense listingAgent.agentDetails.license}} {{listingAgent.agentDetails.license}}{{/and~}}

      {{/if}}{{#and status.showLastChanged @root/data/modificationTimestamp}}

      Last Changed:{{@root/data/modificationTimestamp}}

      {{/and}}{{/with}}

      {{#if listingCourtesyOf.status.showDisclaimer}}

      {{{listingCourtesyOf.disclaimer}}}

      {{/if}}

      {{/with}}';Homesnap.templates["controllers/MortgageCalculatorCollapse.html"] = '{{#with data}}

      Mortgage & Affordability expand_more

      {{> hsLoadingGraphic}}

      {{/with}}';Homesnap.templates["controllers/MyAgent/Form.html"] = '{{#with data}}

      {{/with}}';Homesnap.templates["controllers/MyAgent/Master.html"] = '{{#with data}}{{#unless twoColumnLayout}}

      Ask a local expert about this home:

      {{else}}

      Ask a local expert about this home:

      {{/unless}}{{/with}}';Homesnap.templates["controllers/Property/PropertyAddressHeader.html"] = '{{#with data.propertyAddressItem}} {{#if @root/data/showImageSlider}}

      {{else}}

      {{#if @root/data/buildingMedia.[0]}} 1719 Military Street, Port Huron, MI, 48060 (10) {{/if}}

      {{#if @root/data/buildingMedia.[1]}} 1719 Military Street, Port Huron, MI, 48060 (11) {{/if}}

      {{/if}} {{#if address}}

      {{/if}}{{/with}}';Homesnap.templates["controllers/Property/PropertyAddressMaster.html"] = '{{#with data}}

      {{#if actionBar}}

      {{/if}}

      {{#with propertyAddressItem}}

      {{#if @root/data/badges}}

      {{/if}}

      {{#if propertyCount}}

      {{propertyCount.commas}} Units

      {{else if price}}

      {{#and listing transactionType.forSale}}

      {{#if @root/data/isCitysnap}}Total Monthly:{{else}}Est. Mortgage:{{/if}}

      {{/and}}

      {{price.dollars}}

      {{#if listing}}

      {{/if}}{{#if @root/data/isCitysnap}}

      {{#if monthlyPropertyTax}}

      Tax: {{{monthlyPropertyTax.dollars}}} /month

      {{/if}}{{#if listing.fees.monthlyFee}}

      {{#compare sPropertyType2.raw "==" 4}}Common Charge{{else}}Maintenance Fees{{/compare}}: {{{listing.fees.monthlyFee.dollars}}} /month

      {{/if}}

      {{/if}}

      {{/if}}

      {{#and listing sPropertyType2 (or (compare sPropertyType2.raw "==" 2) (compare sPropertyType2.raw "==" 4) (compare sPropertyType2.raw "==" 256))}}

      {{sPropertyType2.string}}

      {{/and}}

      {{#if @root/data/searchMatches}}

      Matches your Search

      {{/if}}

      {{#unless address.unitNumber}}{{#compare unitCount.raw ">" 1}}{{unitCount.commas}}Units{{/compare}}{{/unless}}{{#if beds}}{{beds.string}}{{beds.label}}{{/if}}{{#if baths}}{{{baths.string}}}{{baths.label}} {{/if}}{{#unless address.unitNumber}}{{#if lotSize}}{{lotSize.string}}{{lotSize.label}}{{/if}}{{/unless}}{{#if sqFt}}{{sqFt.string}}SQ FT{{/if}}{{#if yearBuilt}}{{yearBuilt}}Year Built{{/if}}

      {{> hsLoadingGraphic}}

      {{#if listing}}Listing{{else if propertyID}}Property{{else}}Building{{/if}} Media

      {{/with}}

      {{#if propertyAddressItem.propertyID}}

      All information listed is assumed to be accurate, but is subject to inaccuracies of our data sources..

      {{/if}}

      {{#unless isCitysnap}}

      Homesnap is operated by Ten-X. Ten-X holds real estate licenses in all 50 states and D.C.

      § 442-H New York Standard Operating Procedures

      New York Fair Housing Notice

      TREC: Information about brokerage services,Consumer protection notice

      California DRE #01937601

      Contact Ten-XBrokerage

      {{/unless}}

      {{/with}}';Homesnap.templates["controllers/Property/PropertyAddressSchema.html"] = '{{#with data.schema}}<script type="application/ld+json">[{"@context": "http://schema.org","@type":"RealEstateListing","@id": "{{@root/data/siteRootUrl}}{{url}}","additionalType": "http://www.productontology.org/id/Real_estate","about": {{{#if singleFamilyResidence}}"@type":["SingleFamilyResidence", "Product"],{{else if detailsData.propertyCount}}"@type":["ApartmentComplex", "LocalBusiness"],{{/if}}"name": "{{cleanEscape address.fullStreetAddress}}, {{address.cityStateZip}}","description": "{{cleanEscape description}}","category": "Real Estate {{#if propertyType}}> {{cleanEscape propertyType}}{{/if}}","productId": "{{productId}}","url": "{{@root/data/siteRootUrl}}{{url}}",{{#if detailsData.propertyType}}"accommodationCategory": "{{cleanEscape detailsData.propertyType}}",{{/if}}{{#if image}}"photo": {"@type":"ImageObject","contentUrl": "https:{{image}}"},{{/if}}{{#if secondaryImages.length}}"image": [{{#each secondaryImages}}"https:{{listing}}"{{#unless @last}},{{/unless}}{{/each}}],{{/if}}{{#if sqFt}}"floorSize":{"@type": "QuantitativeValue","value": "{{sqFt.string}}","unitCode": "FTK"},{{/if}}{{#if propertyAddressItem.beds}}"numberOfBedrooms": {{propertyAddressItem.beds.raw}},{{/if}}{{#if propertyAddressItem.baths}}"numberOfBathroomsTotal": {{math propertyAddressItem.baths.raw.full "+" propertyAddressItem.baths.raw.half}},{{#if propertyAddressItem.baths.raw.full}}"numberOfFullBathrooms": {{propertyAddressItem.baths.raw.full}},{{/if}}{{#if propertyAddressItem.baths.raw.half}}"numberOfPartialBathrooms": {{propertyAddressItem.baths.raw.half}},{{/if}}{{/if}}{{#if detailsData.propertyCount}}"numberOfAccommodationUnits": "detailsData.propertyCount",{{/if}}{{#and latitude longitude}}"geo": {"@type": "GeoCoordinates","latitude": "{{latitude}}","longitude": "{{longitude}}"},{{/and}}"address": {"@type": "PostalAddress","addressCountry": "USA","addressLocality": "{{address.city}}","addressRegion": "{{address.state}}","postalCode": "{{address.zip}}","streetAddress": "{{cleanEscape address.fullStreetAddress}}"}{{#if detailsData.yearBuilt}}, "yearBuilt": {{detailsData.yearBuilt}}{{/if}}{{#if price}},"offers":{"@type": "{{#if transactionType.forSale}}OfferForPurchase{{else if transactionType.forRent}}OfferForLease{{/if}}","availability":{{~#or transactionType.forSale transactionType.forRent~}}"http://schema.org/InStock"{{~else~}}{{~#if detailsData.specialFeatures.comingSoon~}}"http://schema.org/PreOrder"{{~else~}}"http://schema.org/OutOfStock"{{~/if~}}{{~/or}},"@id": "{{@root/data/siteRootUrl}}{{url}}","image":[{{#if image}}"https:{{image}}"{{/if}}{{#if secondaryImages}},{{/if}}{{#each secondaryImages}}"https:{{listing}}"{{#unless @last}},{{/unless}}{{/each}}],"url": "{{@root/data/siteRootUrl}}{{url}}","description": "{{cleanEscape description}}","priceSpecification": {"@type":"UnitPriceSpecification","price": "{{price}}","priceCurrency": "USD"{{#if transactionType.forRent}}, "unitCode": "MON"{{/if}}},"price": "{{price}}","priceCurrency": "USD","BusinessFunction": "http://purl.org/goodrelations/v1#{{#if transactionType.forSale}}Sell{{else if transactionType.forRent}}LeaseOut{{/if}}"}{{/if}}{{#if openHouse}},"event" : [{{~#each openHouse~}}{"@context": "http://schema.org","@type": "Event","name": "Open House {{times}}","description": "{{cleanEscape ../description}}","url": "{{@root/data/siteRootUrl}}{{../url}}",{{#if ../image}}"image": [{{#if ../image}}"https:{{../image}}"{{/if}}{{#each ../secondaryImages}},"https:{{listing}}"{{/each}}],{{/if}}"startDate": "{{startDateString}}", "location": {"@type": "Place","address": {"@type": "PostalAddress","addressCountry": "USA","addressLocality": "{{../address.city}}","addressRegion": "{{../address.state}}","postalCode": "{{../address.zip}}","streetAddress": "{{cleanEscape ../address.fullStreetAddress}}"},"url": "{{@root/data/siteRootUrl}}{{../url}}"}{{#if ../price}}, "offers":{"@type": "Offer","@id": "{{@root/data/siteRootUrl}}{{../url}}",{{#if image}}"photo": {"@type":"ImageObject","contentUrl": "https:{{image}}"},{{/if}}{{#if secondaryImages.length}}"image": [{{#each secondaryImages}}"https:{{listing}}"{{#unless @last}},{{/unless}}{{/each}}],{{/if}}"url": "{{@root/data/siteRootUrl}}{{../url}}","description": "{{cleanEscape ../description}}","price": "{{../price}}","priceSpecification": {"@type":"UnitPriceSpecification","price": "{{../price}}","priceCurrency": "USD"{{#if transactionType.forRent}}, "unitCode": "MON"{{/if}}},"priceCurrency": "USD","BusinessFunction": "http://purl.org/goodrelations/v1#{{#if ../transactionType.forSale}}Sell{{else if ../transactionType.forRent}}LeaseOut{{/if}}"}{{/if}}} {{#unless @last}},{{/unless}}{{/each}}]{{/if}}}}]</script>{{/with}}';Homesnap.templates["controllers/Property/PropertyFavorite.html"] = '{{#with data}}{{#if showText}} {{#if propertyAddressItem.status.isFavorited}}Unfavorite{{else}}Favorite{{/if}}{{/if}}{{/with}}';Homesnap.templates["controllers/Property/PropertyFeatures.html"] = '{{#with data}}{{#if details}}

      Features expand_more

      {{#each details}}

      {{name}}

        {{#each fields}}
      • {{name}}: {{#if dataType.url}} {{#compare name "==" "Virtual Tour"~}} {{~#if valueDisplay}}{{valueDisplay}}{{else}}Open Virtual Tour{{/if~}} {{~else compare name "==" "Broker Page" ~}} {{~#if valueDisplay}}{{valueDisplay}}{{else}}Open Broker Listing Page{{/if~}}{{~else compare valueDisplay "!=" ""~}}{{valueDisplay}}{{else}} {{value}} {{~/compare}} {{else if dataType.email}} {{value}} {{else if dataType.phone}} {{value}} {{else}} {{value}} {{/if}}
      • {{/each}}

      {{/each}}

      {{/if}}{{/with}}';Homesnap.templates["controllers/Property/PropertyFollow.html"] = '{{#with data}}{{/with}}';Homesnap.templates["controllers/Property/PropertyHistory.html"] = '{{#with data}}

      Property History

      {{#if @root/data/pro}} Expand All {{/if}}

      {{#if @root/data/pro}}

      • Summary
      • Mortgages
      • Tax
      • Deed

      {{/if}}

      {{#if history}}

      {{#each history}} {{/each}}
      Date Event Source Price

      {{else}}

      No Information Provided

      {{/if}}

      {{#if @root/data/pro}}

      {{/if}}

      {{/with}}';Homesnap.templates["controllers/Property/PropertyMap.html"] = '{{#with data}}

      Neighborhood Map expand_more

      {{/with}}';Homesnap.templates["controllers/Property/PropertySchools.html"] = '{{#with data}}

      Schools expand_more

      {{#each this}}

      {{/each}}

      {{/with}}';Homesnap.templates["controllers/Property/PropertySidebar.html"] = '{{#with data.details}}

      {{#if conversations}}

      Related Conversations

      {{#each conversations}}

      {{/each}}

      {{/if}}

      {{#or agentOnly status.canGenerateRapidCMA @root/data/pro @root/data/permissions/agent}}

      Agent Actions

      {{#if @root/data/pro}} 1719 Military Street, Port Huron, MI, 48060 (12) {{/if}}

      {{#and @root/data/pro (compare @root/data/isCitysnap "==" false)}}

      Sell Speed {{#and listingID transactionType.forSale sListingStatus.active currentPrice.raw}} {{/and}} chevron_right

      {{/and}} {{#if agentOnly.status.checkForShowingUrl}}

      {{/if}} {{#if status.canGenerateRapidCMA}}

      {{/if}} {{#if @root/data/permissions/agent}}

      Net Sheet Calculator chevron_right

      {{/if}} {{#if @root/data/pro}}

      Contact the Owner chevron_right

      {{/if}}

      {{/or}} {{#if agentOnly.agents}}

      Related Agents {{#if @root/data/pro}}PRO{{/if}}

      {{#each agentOnly.agents}}

      {{/each}} {{#if agentOnly.agents.[0].status.showWithMessageTextBox}}

      {{/if}}

      {{/if}}

      {{/with}}';Homesnap.templates["controllers/Property/ListingRemarks.html"] = '{{#with data.listing}}

      {{~#if remarks}}

      {{remarks}}

      {{/if~}}{{#if brand}}

      {{#unless brand.status.hideIntroText}}

      Listing Powered By

      {{/unless}}

      1719 Military Street, Port Huron, MI, 48060 (14)

      {{/if}}

      {{#if agentOnly}}

      {{/if}}{{/with}}';Homesnap.templates["controllers/Property/PropertySummary.html"] = '{{#with data.entityItem}}{{#if propertySummary}}

      Property Summary

      {{#each propertySummary}} {{#if this.dataType.unknown}}

      {{this.name}}: {{this.valueDisplay}}

      {{/if}} {{#if this.dataType.url}}

      {{this.name}}: {{this.valueDisplay}}

      {{/if}} {{/each}}

      {{/if}}

      {{#and @root/data/noHideAdmin agentOnly (or (compare agentOnly.remarks "!=" "" ) (compare agentOnly.details.length ">" 0)) }}

      Confidential Information

      {{#if @root/data/pro~}} 1719 Military Street, Port Huron, MI, 48060 (15) {{~/if}}

      Confidential Documents

      {{#if @root/data/pro~}} 1719 Military Street, Port Huron, MI, 48060 (16) {{~/if}}

      {{/and}}{{/with}}';Homesnap.templates["controllers/Property/PropertyCollapses.html"] = '{{#with data}}

      {{/with}}';Homesnap.templates["controllers/SchoolItem.html"] = '{{#with data}}

      {{name}}{{gradeRange}}{{district.name}}{{#if rating.raw}}{{else }}RATING NOT AVAILABLE{{/if}}{{#if rating.raw}}{{rating.raw}} / 10{{/if}}

      {{/with}}';Homesnap.templates["controllers/SearchBreadCrumbs.html"] = '{{#with data.area}}<script type="application/ld+json"> [ { "@context": "http://schema.org", "@type": "BreadcrumbList", "itemListElement": [ {{#each this}} {{#compare type "area"}} { "@type": "ListItem", "position": {{@index}}, "name": "{{name}} {{#if @root/data/isOpenHouse}}Open Houses{{else if @root/data/isForSale}}Real Estate and Homes for Sale{{else if @root/data/isForRent}}Real Estate and Homes for Rent{{/if}}", "item": "{{@root/data/siteRootUrl}}/homes/{{#if @root/data/isForRent}}for_rent{{else}}for_sale{{/if}}{{#if @root/data/isOpenHouse}}/open_house{{/if}}{{item.url}}/p_{{item.entityType}},{{item.entityID}}" }{{#unless @last}},{{/unless}} {{else}} { "@type": "ListItem", "position": {{@index}}, "name": "{{name}}", "item": "{{@root/data/siteRootUrl}}{{url}}" }{{#unless @last}},{{/unless}} {{/compare}} {{/each}} ] } ]</script>

        {{#each this}} {{#compare type "area"}}
      • {{name}}
      • {{else}}
      • {{name}}
      • {{/compare}}{{/each}}

      {{/with}}';Homesnap.templates["controllers/SimilarListings.html"] = '{{#with data}}

      Similar Listings expand_more

      {{> hsLoadingGraphic}}

      {{#compare transactionType.raw "==" 2}} Recently Rented {{else}} Recent Sales {{/compare}} expand_more

      {{> hsLoadingGraphic}}

      {{/with}}';Homesnap.templates["controllers/UserItem.html"] = '{{#with data}}{{#if useConsumerViewDisplayPhone}}

      {{#if image}}

      {{/if}}

      {{#if useConsumerViewDisplayPhone}}

      {{#if agentDetails.doingBusinessAs}} {{user.agentDetails.doingBusinessAs}} {{else if user.agentDetails.agentDisplayName}} {{user.agentDetails.agentDisplayName}} {{else}} {{user.name.full}} {{/if}} {{#if useConsumerViewDisplayPhone}}a{{else}}div{{/if}}>{{#and license user.agentDetails.license}}{{user.agentDetails.license}}{{/and}} {{#if thermometer}} {{/if}} {{#if useConsumerViewDisplayPhone}}

      {{user.agentDetails.consumerViewDisplayPhone.phone.withExtension}}{{/if}} {{#if subhead}}

      {{{subhead}}}

      {{/if}} {{#and showUserLocation user.agentDetails.office.address.cityState}}

      {{{user.agentDetails.office.address.cityState}}}

      {{/and}} {{#if badges}}

      {{/if}}

      {{#if brand}}

      1719 Military Street, Port Huron, MI, 48060 (17)

      {{else if chevron}}

      keyboard_arrow_right

      {{/if}} {{#if note}}

      {{note}}

      {{/if}}{{#if useConsumerViewDisplayPhone}}div{{else}}a{{/if}}>{{/with}}';Homesnap.templates["controllers/UserProfileImage.html"] = '{{#with data}}<{{#and user.profileUrl link}}a{{else}}span{{/and}} id="{{@root/dom/link}}" class="bs4--text-center bs4--rounded-circle pull-left entity-photo-circle bg-hs-blue bs4--text-decoration-none bs4--h-100 bs4--w-100 bs4--mw-100 bs4--mh-100 {{#theme "empire"}}paint-second-background{{/theme}} {{#if cssClass}}{{cssClass}}{{/if}}"> {{#and type (compare type "==" "HSLeadPhoneCall")}} call {{else}} {{user.name.initials}} {{/and}} {{#if user.permissions.paidAgent}} {{/if}}{{#and user.profileUrl link}}a{{else}}span{{/and}}>{{/with}}';

      1719 Military Street, Port Huron, MI, 48060 (2024)

      FAQs

      What is Port Huron Michigan known for? ›

      Port Huron is known as the Maritime Capital of the Great Lakes with unique sites such as the Huron Lightship and the Great Lakes Maritime Center. For more information: Blue Water Area Convention and Visitors Bureau.

      What lake is in Port Huron? ›

      Port Huron, city, seat (1871) of St. Clair county, eastern Michigan, U.S. Situated at the lower end of Lake Huron, it lies on the St. Clair River, opposite Sarnia, Ontario, Canada. In 1814 Fort Gratiot was built on the site of the earlier French Fort St.

      Why is the water so blue in Port Huron? ›

      The blue in Lake Michigan and Lake Huron is sediment brought to the surface when strong winds churned the lakes. The green in Lake Erie and in Lake Huron's Saginaw Bay is algae, which builds on the surface when winds are calm.

      Is it expensive to live in Port Huron MI? ›

      Cost of Living in Port Huron, Michigan by Expense Category

      Port Huron's housing expenses are 60% lower than the national average and the utility prices are 6% lower than the national average. Transportation expenses like bus fares and gas prices are about the same as the national average.

      Can you swim in Port Huron? ›

      Lakeside Beach is located in Port Huron, the "Maritime Capital of the Great Lakes." Lakeside Beach has a designated swim area but lifeguards may not be on duty so swim at your own risk. Lakeside Beach - Lake Huron is sampled weekly from May 29th to September 3th.

      How deep is the water in Port Huron? ›

      The lake measures 206 miles across and 183 miles north to south, with an average depth of 195 feet (approximately 750 feet, maximum).

      Is Lake Huron swimmable? ›

      Lake Huron is synonymous with wide, sandy beaches and clear turquoise waters. It's a perfect spot for swimming, splashing and playing in the freshwater surf.

      What is the cleanest lake in Michigan? ›

      Lake Superior

      Whether it's superior to the other Great Lakes is a matter of opinion. However, there is no argument this Michigan lake's water is some of the cleanest and clearest. And, in terms of surface area, it is the Earth's largest body of freshwater!

      What is the cleanest Great Lake? ›

      Watershed's surface: 209,000 square kms. Lake Superior is the largest, cleanest, and wildest of all the Great Lakes.

      What is the clearest blue water in Michigan? ›

      The clearest lake in Michigan is Torch Lake. It is known for its crystal-clear turquoise waters and is often compared to Caribbean seas. Torch Lake is a large inland lake located in the northern part of Michigan's Lower Peninsula, about halfway between the cities of Traverse City and Petoskey.

      How much money do you need to live comfortably in Michigan? ›

      The living wage in Michigan is about $16.36 an hour, which is the primary wage needed to pay for all of the essentials such as housing, food, and necessities for an individual adult. On the other hand, if you have two kids, you would need about $27.46 an hour to live comfortably in this state.

      Where is the least expensive place to live in Michigan? ›

      The top five small Michigan cities in affordability are: Livonia, Troy, Allen Park, Holt and Rochester Hills. The bottom five are: East Lansing, Pontiac, Flint, Saginaw and Southfield. Southfield's median home value is about $10,000 cheaper than Holt's.

      What are some fun facts about Port Huron? ›

      In the years following the Civil War, Port Huron was the second largest immigration point in the United States, trailing only New York City. The first volunteer fire department was established in Port Huron in 1853 and used hand power and bucket brigades.

      Is Port Huron worth a visit? ›

      There's a lot to do in Port Huron. With its location on Lake Huron and the St. Clair River, there are many outdoor activities to participate in. Sandy beaches, friendly parks, and convenient marinas are just a few of the outdoor attractions Port Huron has to offer.

      What makes Lake Huron special? ›

      Lake Huron's shoreline is the longest of any lake worldwide when including its 30,000 islands. Lake Huron also has the largest land drainage area among the Great Lakes. Saginaw Bay (1,070 square miles) and Georgian Bay (2,236 square miles) are the two largest bays on the Great Lakes.

      Why is Lake Huron special? ›

      Lake Huron boasts over 30,000 individual islands — more than any other Great Lake — giving Huron the longest shoreline of all the Great Lakes (over 6,100 km or 3,790 mi). Among these islands is its largest, Manitoulin Island on Georgian Bay.

      What is the tallest building in Port Huron Michigan? ›

      Federal Building (Port Huron, Michigan)

      What is the crime rate in Port Huron Michigan? ›

      The chance of becoming a victim of either violent or property crime in Port Huron is 1 in 37. Based on FBI crime data, Port Huron is not one of the safest communities in America. Relative to Michigan, Port Huron has a crime rate that is higher than 92% of the state's cities and towns of all sizes.

      What day is the float down in Port Huron? ›

      August 21, 2022 @ 10:00 am - 4:00 pm

      Launch your raft from our beach or come watch the floaters from the beautiful lighthouse grounds! Launch your raft from our beach or come watch the floaters from the beautiful lighthouse grounds.

      What is the most forgotten Great Lake? ›

      Despite its remarkable size and pristine waters, Huron has been referred to as the “forgotten” or “orphaned” Great Lake because it lacks some of these distinguishable features.

      What creatures live in Lake Huron? ›

      ruffe, sea lamprey, smallmouth bass, walleye, white bass, white perch, white sucker and yellow perch are some of the predominant fish found in Lake Huron. Lake Huron features some heavily forested areas, including Huron-Manistee National Forests, which boast 10,000 acres of pine, aspen and hardwood forest.

      Which Great Lake has the coldest water? ›

      Lake Superior is the world's largest freshwater lake by area (31,700 mi2 /82,100 km2). It is also the coldest and deepest of the Great Lakes, with a maximum depth of 406 meters (1,332 feet).

      How clean is Lake Huron? ›

      Lakes Huron and Superior received the highest available grade and are considered steady. The report noted Lake Superior's forest watershed and coastal wetlands help maintain high water quality.

      Is Lake Huron deeper than Lake Michigan? ›

      Bathymetry and hydrology

      The connection between Lake Michigan and Lake Huron through the Straits of Mackinac is 5 miles (8 km) wide and 120 feet (37 m) deep. This depth compares with the maximum depths of 750 feet (229 m) in Lake Huron and 923 feet (281 m) in Lake Michigan.

      References

      Top Articles
      Latest Posts
      Article information

      Author: Edwin Metz

      Last Updated:

      Views: 5795

      Rating: 4.8 / 5 (78 voted)

      Reviews: 93% of readers found this page helpful

      Author information

      Name: Edwin Metz

      Birthday: 1997-04-16

      Address: 51593 Leanne Light, Kuphalmouth, DE 50012-5183

      Phone: +639107620957

      Job: Corporate Banking Technician

      Hobby: Reading, scrapbook, role-playing games, Fishing, Fishing, Scuba diving, Beekeeping

      Introduction: My name is Edwin Metz, I am a fair, energetic, helpful, brave, outstanding, nice, helpful person who loves writing and wants to share my knowledge and understanding with you.