1<!DOCTYPE html> 2 3 4<html lang='en'> 5 6<head>
7<script type="text/javascript" data-custom="true">!function(){var cookieName="resolution";var i,key,value,prevSet,cookies=document.cookie.split(";");function isCookieSet(){for(i=0;i<cookies.length;i++){key=cookies[i].substr(0,cookies[i].indexOf("="));value=cookies[i].substr(cookies[i].indexOf("=")+1);key=key.replace(/^\s+|\s+$/g,"");if(key==cookieName)return true}return false}prevSet=isCookieSet();document.cookie=cookieName+"="+screen.width+":"+screen.height+":"+(window.devicePixelRatio?window.devicePixelRatio:1)+"; path=/";if(navigator.cookieEnabled&&!prevSet)document.location.reload(true)}(document,screen);</script>
7 8 9 10 11 12 <link rel="dns-prefetch" href="https://fonts.gstatic.com"> 13 <link rel="dns-prefetch" href="https://js.sentry-cdn.com"> 14 <link rel="dns-prefetch" href="https://static.cloudflareinsights.com"> 15 <link rel="dns-prefetch" href="https://cdnjs.cloudflare.com"> 16 <link rel="dns-prefetch" href="https://cdn.jsdelivr.net"> 17 <link rel="dns-prefetch" href="https://unpkg.com"> 18 <link rel="dns-prefetch" href="https://googleads.g.doubleclick.net"> 19 <link rel="dns-prefetch" href="https://www.google-analytics.com"> 20 21 22 <link rel="preconnect" href="https://fonts.googleapis.com"> 23 <link rel="dns-prefetch" href="https://fonts.googleapis.com"> 24 <link rel="preconnect" href="https://www.googletagmanager.com"> 25 <link rel="dns-prefetch" href="https://www.googletagmanager.com"> 26 <link rel="preconnect" href="https://i.hlres.com"> 27 <link rel="dns-prefetch" href="https://i.hlres.com"> 28 29 30 <link rel="preload" href="/assets/v2/ui/images/logos/HL-name-desc-white-BG-logo.svg" as="image" fetchpriority="high"> 31 <link rel="preload stylesheet" as="style" href="/assets/v2/vendor/tailwind/tailwind-build.css?v=2026-09-25_17-04"> 32 <link rel="preload stylesheet" href="/assets/v2/ui/fonts/rawline.css?display=swap" as="style"> 33 <link rel="preload stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0&display=swap" as="style" fetchpriority="high"> 34 <link rel="preload" href="https://js.sentry-cdn.com/02d27b0f57f04c36a341abcc1213f5de.min.js" as="script"> 35 36 37 38 <meta charset="utf-8"> 39 <title>The Sage House - 4 Lexington Avenue Cooperative in Gramercy Park, Manhattan | NYC Real Estate Brokerage</title> 40 <meta name="viewport" content="width=device-width,initial-scale=1"> 41 <link href="/favicon.ico" rel="shortcut icon" type="image/x-icon"> 42 <link rel="icon" type="image/png" href="/assets/files/favicons/fav_32.png" sizes="32x32"> 43 <link rel="icon" type="image/png" href="/assets/files/favicons/fav_48.png" sizes="48x48"> 44 45
45<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/axios.min.js"></script>
45 46 <meta id="user_data" data-email=""> 47 <link rel="stylesheet" href="/assets/feedback/css/feedback_main.css?v=2026-09-25_17-04"> 48
48<script> 49 function isSafari() { 50 var ua = navigator.userAgent.toLowerCase(); 51 if (ua.indexOf('safari') != -1) { 52 if (ua.indexOf('chrome') > -1) { 53 return false; // Chrome 54 } else { 55 return true; // Safari 56 } 57 } 58 return false; 59 } 60 var s = document.createElement("script"); 61 if (isSafari()) { 62 s.type = "text/javascript"; 63 s.src = "/assets/js/safari_html2canvas.min.js"; 64 } else { 65 s.type = "text/javascript"; 66 s.src = "/assets/js/html2canvas.min.js"; // version html2canvas 1.0.0-rc.7 67 } 68 69 document.head.appendChild(s); 70 </script>
70 71 <link rel="stylesheet" href="/assets/v2/ui/general-css/general.css?v=2026-09-25_17-04"> 72 <link rel="stylesheet" href="/assets/v2/ui/general-css/form.css?v=2026-09-25_17-04"> 73 <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper/swiper-bundle.min.css"> 74
74<script type="module" src="/assets/v2/js/constants.js?v=2026-09-25_17-04"></script>
74 75
75<script type="module" src="/assets/v2/js/utils/script-loader.js?v=2026-09-25_17-04"></script>
75 76
76<script type="module" src="/assets/v2/js/utils/custom-events.js?v=2026-09-25_17-04"></script>
76 77
77<script type="module" src="/assets/v2/js/utils/index.js?v=2026-09-25_17-04"></script>
77 78
78<script type="module" src="/assets/v2/vendor/index.js?v=2026-09-25_17-04"></script>
78 79
79<script type="module" src="/assets/v2/vendor/axios/axios.min.js?v=2026-09-25_17-04"></script>
79 80
80<script type="module" src="/assets/v2/vue-components/ag-grid/grid_options.js?v=2026-09-25_17-04"></script>
80 81
81<script> 82 window.csrf_token = 'diPwG2ZHUpkNmLXt28Kfkbmk9xX1nwHxOIpuUNcGfjDYpw8ozfn3uvPwzXTJNDPP'; 83 </script>
83 84 85<link rel="stylesheet" href="/assets/v2/pages/building_detail/header-style.css?v=2026-09-25_17-04"> 86<style> 87 main { 88 padding: 0px; 89 } 90 .experiment-winner-color{ 91 background-color: var(--experiment-winner-color); 92 color: #fff; 93 } 94 95 .building-detail-inquiry-btn{ 96 background-color: var(--experiment-winner-color) !important; 97 color: #fff !important; 98 } 99 100 .hl-dialog-main { 101 max-height: 88vh !important; 102 } 103 104</style> 105 106 107<meta name="description" content="Steeped in history and situated at 4 Lexington Avenue in the heart of New York City's vibrant Gramercy Park neighborhood, The Sage Page presents a collection of unique and luxurious cooperative residences. This distinguished landmark building exudes charm and elegance, offering a variety of residences, each boasting its own distinctive features.Residents of The Sage Page are afforded a high level of security and service through the presence of a full-time doorman and an on-premises building manager. The building's amenities cater to residents' convenience, encompassing a common laundry room, secure bike storage, and private storage units.The architectural grandeur of The Sage Page is undeniable. Its regal sandstone facade, reminiscent of Italian Renaissance palazzos, sets the stage for the impressive double-height lobby that greets residents upon entry.Beyond its architectural significance, The Sage Page boasts an unbeatable location. Situated just steps away from the verdant expanse of Gramercy Square Park, residents enjoy effortless access to a plethora of desirable destinations. This includes the nearby Madison Square Park and Union Square, the vibrant culinary scene of Eataly, the Flatiron and NoMad districts, and a multitude of trendy restaurants, bars, and cafes.The Sage Page welcomes a variety of ownership arrangements, catering to diverse lifestyles. Pied-a-terre ownership, co-purchasing opportunities, and pet ownership are all permitted. Additionally, the cooperative allows for unlimited subletting after one year of ownership with board approval and offers an attractive 80% financing option.Embodying the perfect blend of historic elegance and modern convenience, The Sage Page presents a unique opportunity to reside in one of New York City's most coveted neighborhoods."> 108<!-- <meta name="viewport" content="width=device-width, initial-scale=1"> --> 109 110
111<script type="application/ld+json"> 112 { 113 "@context": "https://schema.org", 114 "@type": "WebSite", 115 "name": "The Sage House", 116 "alternateName": ["The Sage House", "4 Lexington Avenue", "sagehousenyc.com"], 117 "url": "https://www.sagehousenyc.com" 118 } 119</script>
119 120 121<link rel="canonical" href="https://www.sagehousenyc.com">
122<script> 123 !function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.crossOrigin="anonymous",p.async=!0,p.src=s.api_host.replace(".i.posthog.com","-assets.i.posthog.com")+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="init Ie Ts Ms Ee Es Rs capture Ge calculateEventProperties Os register register_once register_for_session unregister unregister_for_session js getFeatureFlag getFeatureFlagPayload isFeatureEnabled reloadFeatureFlags updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures on onFeatureFlags onSurveysLoaded onSessionId getSurveys getActiveMatchingSurveys renderSurvey canRenderSurvey canRenderSurveyAsync identify setPersonProperties group resetGroups setPersonPropertiesForFlags resetPersonPropertiesForFlags setGroupPropertiesForFlags resetGroupPropertiesForFlags reset get_distinct_id getGroups get_session_id get_session_replay_url alias set_config startSessionRecording stopSessionRecording sessionRecordingStarted captureException loadToolbar get_property getSessionProperty Ds Fs createPersonProfile Ls Ps opt_in_capturing opt_out_capturing has_opted_in_capturing has_opted_out_capturing clear_opt_in_out_capturing Cs debug I As getPageViewId captureTraceFeedback captureTraceMetric".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]); 124 posthog.init('phc_TaUooPb9koeCuWEv7q1lfIhBR0ojKygN0KTcSbpj8IY', { 125 api_host: 'https://us.i.posthog.com', 126 defaults: '2025-05-24', 127 person_profiles: 'identified_only', // or 'always' to create profiles for anonymous users as well 128 }) 129</script>
129 130
131<script> 132 window.POSTHOG_EXPERIMENT_KEY_1 = 'building-page-off-market-listings-section'; 133 window.POSTHOG_EXPERIMENT_1_VARIANT = 'control'; 134 // POSTHOG EXPERIMENT 2 START: stacking-plan-tile-redesign 135 window.POSTHOG_EXPERIMENT_KEY_2 = 'building-detail-page-stacking-plan-tile-redesign'; 136 window.POSTHOG_EXPERIMENT_2_VARIANT = 'control'; 137 // POSTHOG EXPERIMENT 2 END 138 // POSTHOG EXPERIMENT 3 START: building-page-rental-waitlist-cta 139 window.POSTHOG_EXPERIMENT_KEY_3 = 'building-page-rental-waitlist-cta'; 140 window.POSTHOG_EXPERIMENT_3_VARIANT = 'control'; 141 // POSTHOG EXPERIMENT 3 END 142 function setPosthogExperimentVariants() { 143 // Experiment 1 is assigned in OffMarketListings only when opportunity count > 0 144 // POSTHOG EXPERIMENT 2 START: stacking-plan-tile-redesign 145 window.POSTHOG_EXPERIMENT_2_VARIANT = window.posthog.getFeatureFlag(window.POSTHOG_EXPERIMENT_KEY_2) || 'control'; 146 // POSTHOG EXPERIMENT 2 END 147 // POSTHOG EXPERIMENT 3 START: building-page-rental-waitlist-cta 148 window.POSTHOG_EXPERIMENT_3_VARIANT = window.posthog.getFeatureFlag(window.POSTHOG_EXPERIMENT_KEY_3) || 'control'; 149 // POSTHOG EXPERIMENT 3 END 150 window.dispatchEvent(new CustomEvent('posthog-feature-flags-ready')); 151 } 152 if (window.posthog?.onFeatureFlags) { 153 window.posthog.onFeatureFlags(setPosthogExperimentVariants); 154 } 155 const specialist = "None"; 156 window.building_address = "4 Lexington Avenue"; 157 window.default_img = '/assets/v2/ui/images/default/default-listing.png'; 158 const data_url = "/buildings/ajax/es-data?pk=302919"; 159 window.placekey = "223@627-s8h-ty9"; 160 window.floor_plan_count = 89; 161 window.photos_count = 6; 162 window.stacking_plan_count = 0; 163 const stacking_url = "/buildings/ajax/stacking-plan?pk=302919"; 164 const coming_soon = false; 165 const subscribe_url = "/ajax/subscribe/building/302919"; 166 window.common_charge_label = 'Maintenance' 167 // Django data for Vue template 168 window.djangoData = { 169 name: 'The Sage House', 170 floor_plan_count: 89, 171 building_unit_count: 162, 172 available_sales_num: 3, 173 available_rentals_num: 2, 174 building_id: '302919', 175 off_market_bg: '/assets/v2/ui/images/building_detail/off-market-bg.webp', 176 opportunity_count_url: '/api/v1/buildings/opportunity-count', 177 lead_form_url: '/leads/lead-form-building', 178 remarketing_send_to_list: [], 179 is_new_development: true 180 }; 181 let subscriberPK = null; 182 window.saveSubscriberEmail = function saveSubscriberEmail() { 183 const email = document.getElementById('subscriber_email').value; 184 const headers = { 'X-CSRFToken': getCookie('csrftoken') }; 185 const data = new FormData(); 186 data.append('email', email); 187 data.append('floor_plan_count', window.floor_plan_count) 188 data.append('stacking_plan_count', window.stacking_plan_count) 189 axios 190 .post(subscribe_url, data, { headers }) 191 .then((response) => { 192 window.emailSubscribed = true; 193 closeEmailPopup(); 194 gtag('event', 'conversion', { send_to: 'AW-1016337316/XXfeCJ6_jpQZEKSn0OQD' }); 195 // open user preference popup 196 if (response.data.status) { 197 subscriberPK = response.data.pk; 198 showCustomDialog('subscribe-preference-popup-container'); 199 } 200 else { 201 //open success popup 202 $notyf.success('Subscribed successfully!') 203 } 204 }) 205 .catch((error) => { 206 console.log('error occur while saving email', error); 207 }); 208 }; 209 window.saveSubscriberPreference = function saveSubscriberPreference() { 210 const headers = { 'X-CSRFToken': getCookie('csrftoken') }; 211 const realTimeUpdates = document.getElementById('realTimeUpdates');
212 const monthlySnapshot = document.getElementById('monthlySnapshot'); 213 const data = new FormData(); 214 data.append('pk', subscriberPK); 215 data.append('real_time_updates', realTimeUpdates.checked); 216 data.append('monthly_snapshot', monthlySnapshot.checked); 217 axios 218 .post(subscribe_url, data, { headers }) 219 .then((_) => { 220 window.closePreferencePopup(); 221 $notyf.success('Preference updated successfully!') 222 }) 223 } 224 window.menuAnalytics = function menuAnalytics(menuLink) { 225 //Google Analytics 226 gtag('event', 'building_page_menu_links', { 227 category: 'building_page_menu_links', 228 value: menuLink, 229 stacking_plan: window.stacking_plan_count ? 'yes' : 'no', 230 floorplan: window.floor_plan_count ? 'yes' : 'no', 231 top_slider: window.photos_count ? 'yes' : 'no' 232 }); 233 }; 234 window.googleAnalytics = (category, value) => { 235 //Google Analytics 236 gtag('event', 'building_detail_new', { 237 category: category, 238 value: value, 239 agent: specialist, 240 stacking_plan: window.stacking_plan_count ? 'yes' : 'no', 241 floorplan: window.floor_plan_count ? 'yes' : 'no', 242 top_slider: window.photos_count ? 'yes' : 'no' 243 }); 244 }; 245 function updateStackingPlanCount(count) { 246 axios.get(stacking_url) 247 .then((plan) => { 248 window.stacking_plan_count = plan.data.length; 249 }) 250 } 251 updateStackingPlanCount(); 252 function removeVideoIframe(iframe) { 253 const dialog = document.querySelector('#video-popup-container'); 254 const shadow = dialog.shadowRoot; 255 256 if (shadow) { 257 const closePopupTrigger = shadow.querySelector('.close-popup-trigger'); 258 if (closePopupTrigger) { 259 closePopupTrigger.addEventListener('click', () => { 260 const iframe = document.getElementById('embed-video-iframe'); 261 if (iframe) { 262 window.removeIframe?.(iframe); 263 } 264 }); 265 } 266 } 267 } 268 window.createVideoContainer = function createVideoContainer(event) { 269 window.setTimeout(() => { 270 event && event.stopPropagation(); 271 const parentElement = document.getElementById('building-detail-iframe-container'); 272 const iframe = document.createElement('iframe'); 273 iframe.id = 'embed-video-iframe'; 274 iframe.src = window.video_link; 275 iframe.title = 'Video Tour'; 276 iframe.setAttribute('frameborder', '0'); 277 iframe.setAttribute('allow', 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share'); 278 iframe.setAttribute('allowfullscreen', 'true'); 279 iframe.setAttribute('referrerpolicy', 'strict-origin-when-cross-origin'); 280 iframe.width = '100%'; 281 iframe.height = '100%'; 282 iframe.style.border = 'none'; 283 iframe.style.background = 'black'; 284 parentElement.appendChild(iframe); 285 removeVideoIframe(iframe); 286 }, 200); 287 } 288 289 //Toggle menu bar present on Header (on mobile screen) 290 window.toggleMenu = function toggleMenu() { 291 let menu = document.getElementsByClassName('menuBar')[0]; 292 if (menu.style.display === 'none') { 293 menu.style.display = 'block'; 294 } else { 295 menu.style.display = 'none'; 296 } 297 } 298 //expand/collapse recent activity content area 299 window.toggleRecentActivity = function toggleRecentActivity() { 300 const recentActivityArea = document.getElementsByClassName('recent-activity-content')[0]; 301 const toggleView = document.getElementById('recent-activity-view-more'); 302 if (toggleView.innerHTML.includes('View More')) { 303 recentActivityArea.style.maxHeight = 'none'; 304 toggleView.innerHTML = 'View Less'; 305 } else { 306 if (recentActivityArea.offsetWidth < 769) { 307 recentActivityArea.style.maxHeight = '150px'; 308 } else { 309 recentActivityArea.style.maxHeight = '240px'; 310 } 311 toggleView.innerHTML = 'View More'; 312 } 313 }; 314 315 window.stopPropagation = function stopPropagation(event) { 316 event && event.stopPropagation(); 317 }; 318 //prevent scroll down on space button event 319 window.addEventListener('keydown', function (e) { 320 if (e.keyCode == 32 && e.target == document.body) { 321 e.preventDefault(); 322 } 323 }); 324 window.closePreferencePopup = function closePreferencePopup() { 325 hideCustomDialog('subscribe-preference-popup-container'); 326 }; 327 window.closeEmailPopup = function closeEmailPopup() { 328 hideCustomDialog('save-subscriber-dialog'); 329 }; 330 331 window.tabSelected = function tabSelected(tab) { 332 const tabs = { 333 mapTab: document.getElementsByClassName('mapTab')[0], 334 supermarket: document.getElementsByClassName('supermarket')[0], 335 gyms: document.getElementsByClassName('gyms')[0], 336 parks: document.getElementsByClassName('parks')[0], 337 }; 338 // reset previous textDecoration underline style property
339 Object.values(tabs).forEach( 340 (tab) => (tab.children[0].style.textDecoration = 'none') 341 ); 342 const span = tabs[tab].children[0]; 343 span.style.textDecoration = 'underline'; 344 345 // show content according to the Tab selection 346 const map_placeholder = 347 document.getElementsByClassName('map-placeholder')[0]; 348 const coming_soon_feature_placeholder = document.getElementsByClassName( 349 'coming-soon-feature-placeholder' 350 )[0]; 351 352 // custom styles for 'coming soon' feature container 353 if (tab === 'mapTab') { 354 map_placeholder.style.display = 'block'; 355 coming_soon_feature_placeholder.style.display = 'none'; 356 } else { 357 map_placeholder.style.display = 'none'; 358 coming_soon_feature_placeholder.style.display = 'flex'; 359 } 360 // Google Analytics 361 gtag('event', 'building_detail_new', { 362 category: 'map_tabs', 363 value: tab, 364 stacking_plan: window.stacking_plan_count ? 'yes' : 'no', 365 floorplan: window.floor_plan_count ? 'yes' : 'no', 366 top_slider: window.photos_count ? 'yes' : 'no' 367 }); 368 }; 369 370 window.removeIframe = function removeIframe(iframe) { 371 if (iframe) { 372 iframe && iframe.remove(); 373 } 374 }; 375 //Close menu bar, if previously opened 376 window.addEventListener('click', function (e) { 377 if (!document.getElementsByClassName('hamburger')[0].contains(e.target)) { 378 const menu = document.getElementsByClassName('menuBar')[0]; 379 if (menu) menu.style.display = 'none'; 380 } 381 // Remove video Iframe when click oustside of Popup 382 const iframe = document.getElementById('embed-video-iframe'); 383 window.removeIframe(iframe) 384 }); 385 386 // Add source to main inquiry form 387 window.addInquirySource = function addInquirySource(sourceInputId = 'form_source', sourceName = 'Building Detail Page') { 388 const formSourceInput = document.getElementById(sourceInputId); 389 if (formSourceInput) { 390 formSourceInput.value = sourceName; 391 } 392 }; 393 394 window.showCustomDialog = function showCustomDialog(id) { 395 const dialog = document.getElementById(id); 396 if (dialog) { 397 dialog.setAttribute('show-dialog', 'true'); 398 } 399 } 400 window.hideCustomDialog = function hideCustomDialog(id) { 401 const dialog = document.getElementById(id); 402 if (dialog) { 403 dialog.setAttribute('show-dialog', 'false'); 404 } 405 } 406 407 function scrollToSection(id) { 408 id = id && !id.startsWith('#') ? `#${id}` : id; 409 const element = document.querySelector(id); 410 if (element) { 411 element.scrollIntoView({ behavior: 'smooth' }); 412 } else { 413 console.error(`Element with id=${id} not found.`); 414 } 415 } 416 window.onInquiryBtnClick = function onInquiryBtnClick(){ 417 menuAnalytics('inquiry-form'); 418 const element = document.getElementsByClassName('agent-and-form-container')[0]; 419 if(element){ 420 const config = { 421 element, 422 timeout: 300 423 } 424 window.highlightContainer(config) 425 } 426} 427</script>
427 428<!-- Video link script to handle both youtube and vimeo links --> 429 430 431 432<!-- End of video link script --> 433 434 435 436
436<script src='https://js.sentry-cdn.com/02d27b0f57f04c36a341abcc1213f5de.min.js' crossorigin="anonymous"></script>
436 437
437<script> 438 window.addEventListener('load', function() { 439 Sentry.init({ 440 dsn: "https://[email protected]/1218472", 441 environment: "production" , 442 tracesSampleRate: 1.0, 443 enableLogs: true, 444 beforeSend(event, hint) { 445 const error = hint.originalException; 446 if ((error && error.message) && (error.message.match('dbilanlcioamaadkbepcenpombaejbla') || error.message.match('/assets/js/lazysizes.min.js'))) { 447 return null 448 } 449 else if ((error && error.message) && (error.message.match('<object>.getSignal(assets/v2/js/utils/index)'))) { 450 return null 451 } 452 else if ((error && error.message) && (error.message.match('Invalid or unexpected token SyntaxError ?(<unknown module>)'))) { 453 return null 454 } 455 return event; 456 }, 457 ignoreErrors: [ 458 "dbilanlcioamaadkbepcenpombaejbla" 459 ] 460 }); 461 }) 462</script>
462 463 464</head> 465 466<body class="box-border m-0 p-0"> 467 468 469 <a href="#main-content" class="skip-link">Skip to main content</a> 470 471
472<script> 473 window.user = "AnonymousUser"; 474 const next_url='next=/buildings/nyc/the-sage-house-4-lexington-avenue/302919/cooperative' 475 window.VERSIONING = "2026-09-25_17-04"; 476 window.static_url = "/assets/v2"; 477 window.agGridKey = "Using_this_{AG_Grid}_Enterprise_key_{AG-131777}_in_excess_of_the_licence_granted_is_not_permitted___Please_report_misuse_to_legal@ag-grid.com___For_help_with_changing_this_key_please_contact_info@ag-grid.com___{Highline_Residential,_LLC}_is_granted_a_{Single_Application}_Developer_License_for_the_application_{Highline_Residential}_only_for_{1}_Front-End_JavaScript_developer___All_Front-End_JavaScript_developers_working_on_{Highline_Residential}_need_to_be_licensed___{Highline_Residential}_has_been_granted_a_Deployment_License_Add-on_for_{1}_Production_Environment___This_key_works_with_{AG_Grid}_Enterprise_versions_released_before_{1_September_2027}____[v3]_[01]_MTgxOTc1MzIwMDAwMA==d6f8fac391f86d1902ee57a6e3833dfe" 478 window.google_api_key = 'AIzaSyAG0R9vETZDNlr7cjaLkH398eCi8bDhZqQ'; 479 window.lightgalleryKey = "D10822DB-43B0-4254-98A9-9E0F4DD40539"; 480 window.isAdmin = false; 481 window.fixedAgGridHeader = false;
482 window.appLoader = "/assets/v2/ui/images/gifs/loader.gif"; 483 window.userLoggedIn = false; 484 window.default_img = '/assets/v2/ui/images/default/default-listing.png'; 485 window.filterPageDjangoData = {}; 486 window.filterPageDjangoData.pagination = false; 487 window.filterPageDjangoData.rowsPerPageOptions = [20, 50, 100]; 488</script>
488 489 490 <header> 491 492 <div class="header-container box-shadow"> 493 <div class="header-left flex gap-2" tabindex="0"> 494 <a title="Link to home page" href="/"> 495 <img width="62px" height="62px" id="header-v2-company-logo" class="min-h-6 object-contain tabletLarge:w-auto" 496 src="/assets/v2/ui/images/logos/HL-grey-logo.svg" 497 alt="Highline Residential Company Logo"> 498 </a> 499 <div class="flex flex-col"> 500 <h1 class="block subheading-small font-semibold leading-none"> The Sage House </h1> 501 <h2 class="block text-sm ">4 Lexington Avenue Cooperative in Gramercy Park, Manhattan</h2> 502 <span class="block text-sm leading-none">Highline Residential</span> 503 </div> 504 </div> 505 <div class="header-right"> 506 <div> 507 <a href="#building" onclick="menuAnalytics('building')">BUILDING</a> 508 <a href="#availability" onclick="menuAnalytics('availability')">AVAILABILITY</a> 509 <a href="#residences" onclick="menuAnalytics('residences')">RESIDENCES</a> 510 <a href="#activity" onclick="menuAnalytics('activity')">ACTIVITY</a> 511 <a href="#floorplans" 512 onclick="menuAnalytics('floorplans')">FLOORPLANS</a> 513 </div> 514 <div> 515 516 <a href="#inquiry-form" onclick="onInquiryBtnClick()" class="btn-dark border-custom building-detail-inquiry-btn inquiry-form-btn experiment-winner-color" >Inquire</a> 517 518 <button onclick="showCustomDialog('save-subscriber-dialog'), window.menuAnalytics('subscribe-for-updates')" 519 class="btn-dark border-custom subscribe-btn experiment-winner-color" id="email-popup-trigger-id" aria-label="Subscribe for Updates" 520 > 521 <span> Subscribe for Updates </span> 522 </button> 523 </div> 524 </div> 525 </div> 526 <!-- HEADER FOR MOBILE SCREEN --> 527 <div class="mobile-screen-header box-shadow"> 528 <div class="header-left-mobile" tabindex="0"> 529 <h1 class="block building-name"> The Sage House 530 </h1> 531 <h2 class="block building-addr">4 Lexington Avenue</h2> 532 </div> 533 <div class="header-right-mobile"> 534 535 <div class="inquiry-btn-mobile"> 536 <a href="#inquiry-form" onclick="onInquiryBtnClick()">Inquire</a> 537 </div> 538 539 <button onclick="showCustomDialog('save-subscriber-dialog'), menuAnalytics('subscribe-for-updates')" 540 class="subscribe-btn-mobile cursor-pointer" aria-label="Subscribe for Updates" tabindex="0"> 541 <span> Subscribe </span> 542 </button> 543 <button aria-label="Menu" class="hamburger" onclick="toggleMenu(event)" tabindex="0"> 544 <div></div> 545 <div></div> 546 <div></div> 547 </button> 548 <ul class="menuBar dropdown-options-container" aria-label="Menu Items" role="hidden"> 549 <li class="dropdown-option-small"><a href="#building" onclick="menuAnalytics('building')">BUILDING</a></li> 550 <li class="dropdown-option-small"><a href="#availability" onclick="menuAnalytics('availability')">AVAILABILITY</a></li> 551 552 553 <li class="dropdown-option-small"><a href="#residences" onclick="menuAnalytics('residences')">RESIDENCES</a></li> 554 555 <li class="dropdown-option-small"><a href="#activity" onclick="menuAnalytics('activity')">ACTIVITY</a></li> 556 557 <li class="dropdown-option-small"><a href="#floorplans" onclick="menuAnalytics('floorplans')">FLOORPLANS</a></li> 558 559 560 </ul> 561 </div> 562 </div> 563 564 </header> 565 <div class="flex"> 566 567 <div style="width: 100%;"> 568 <main id="main-content"> 569 <div class="w-full px-5 relative z-10 bg-white "> 570 <div class="messages"> 571 572 </div> 573</div> 574 575 576 577 <div class=""> 578 <div class="main-container flex flex-col items-center w-full"> 579 580 <div class="w-full" id="building"> 581 <!-- <div class="loader" style="margin-top: 24px;"></div> --> 582 583 <section class="swiper new-developments-slider" role="slider" aria-label="Photos section for The Sage House" aria-valuemin="1" aria-valuemax="6" aria-valuenow="1"> 584 <div class="swiper-wrapper"> 585 586 <div class="swiper-slide slider-image"> 587
588 <a href="https://www.hlres.com/listings/2790343/sale-gramercy-park?utm_source=building_photos&utm_medium=building_photos&utm_campaign=photos&utm_term=slider" target="_blank" onclick="window.googleAnalytics('slider_click', '')"> 589 <picture> 590 <source media="(max-width:460px)" srcset="https://i2.hlres.com/fit-in/460x10000/listing-photos/2790343/ad/1440801_134945108.jpg"> 591 <img 592 id="slider-image-1" 593 width="auto" 594 height="500px" 595 src="https://i2.hlres.com/fit-in/1200x10000/listing-photos/2790343/ad/1440801_134945108.jpg" 596 loading="eager" fetchpriority="high" 597 alt="Photo for The Sage House - 4 Lexington Avenue Cooperative in Gramercy Park, Manhattan" 598 /> 599 </picture> 600 </a> 601 602 <!-- <div class="swiper-lazy-preloader swiper-lazy-preloader-white"></div> --> 603 604 <div class="img-info-container"> 605 <div class="img-info"> 606 <span class="img-info-primary"> 607 $850,000 608 <span class="img-info-separator" aria-hidden="true"> | </span> 609 <span class="img-info-details">Unit 4K | 1BD | 1BA</span> 610 </span> 611 612 <span class="img-info-courtesy">Listing Courtesy of Compass | RLS by REBNY</span> 613 614 </div> 615 </div> 616 617 </div> 618 619 <div class="swiper-slide slider-image"> 620
621 <a href="https://www.hlres.com/listings/2690373/sale-gramercy-park?utm_source=building_photos&utm_medium=building_photos&utm_campaign=photos&utm_term=slider" target="_blank" onclick="window.googleAnalytics('slider_click', '')"> 622 <picture> 623 <source media="(max-width:460px)" srcset="https://i2.hlres.com/fit-in/460x10000/listing-photos/2690373/ad/1422479_134790991.jpg"> 624 <img 625 id="slider-image-2" 626 width="auto" 627 height="500px" 628 src="https://i2.hlres.com/fit-in/1200x10000/listing-photos/2690373/ad/1422479_134790991.jpg" 629 loading="eager" fetchpriority="high" 630 alt="Photo for The Sage House - 4 Lexington Avenue Cooperative in Gramercy Park, Manhattan" 631 /> 632 </picture> 633 </a> 634 635 <!-- <div class="swiper-lazy-preloader swiper-lazy-preloader-white"></div> --> 636 637 <div class="img-info-container"> 638 <div class="img-info"> 639 <span class="img-info-primary"> 640 $650,000 641 <span class="img-info-separator" aria-hidden="true"> | </span> 642 <span class="img-info-details">Unit 1M | 0BD | 1BA</span> 643 </span> 644 645 <span class="img-info-courtesy">Listing Courtesy of Sothebys International Realty | RLS by REBNY</span> 646 647 </div> 648 </div> 649 650 </div> 651 652 <div class="swiper-slide slider-image"> 653
654 <a href="https://www.hlres.com/listings/2694324/sale-gramercy-park?utm_source=building_photos&utm_medium=building_photos&utm_campaign=photos&utm_term=slider" target="_blank" onclick="window.googleAnalytics('slider_click', '')"> 655 <picture> 656 <source media="(max-width:460px)" srcset="https://i2.hlres.com/fit-in/460x10000/listing-photos/2694324/ad/1423543_134789508.jpg"> 657 <img 658 id="slider-image-3" 659 width="auto" 660 height="500px" 661 src="https://i2.hlres.com/fit-in/1200x10000/listing-photos/2694324/ad/1423543_134789508.jpg" 662 loading="eager" fetchpriority="high" 663 alt="Photo for The Sage House - 4 Lexington Avenue Cooperative in Gramercy Park, Manhattan" 664 /> 665 </picture> 666 </a> 667 668 <!-- <div class="swiper-lazy-preloader swiper-lazy-preloader-white"></div> --> 669 670 <div class="img-info-container"> 671 <div class="img-info"> 672 <span class="img-info-primary"> 673 $429,000 674 <span class="img-info-separator" aria-hidden="true"> | </span> 675 <span class="img-info-details">Unit 2N | 0BD | 1BA</span> 676 </span> 677 678 <span class="img-info-courtesy">Listing Courtesy of Sothebys International Realty | RLS by REBNY</span> 679 680 </div> 681 </div> 682 683 </div> 684 685 <div class="swiper-slide slider-image"> 686 687 <picture> 688 <source media="(max-width:460px)" srcset="https://hl-django-new.s3.amazonaws.com/unit_floorplan/119213/unit%20floorplan/15jk_composed.jpg?AWSAccessKeyId=AKIA3CEYEB6JVPPVBQIU&Signature=X0Z69mSO5A2c1Abce%2BlA%2BxIOif4%3D&Expires=1794160393"> 689 <img 690 id="slider-image-4" 691 width="auto" 692 height="500px" 693 src="https://hl-django-new.s3.amazonaws.com/unit_floorplan/119213/unit%20floorplan/15jk_composed.jpg?AWSAccessKeyId=AKIA3CEYEB6JVPPVBQIU&Signature=X0Z69mSO5A2c1Abce%2BlA%2BxIOif4%3D&Expires=1794160393" 694 loading="lazy" fetchpriority="low" 695 alt="Photo for The Sage House - 4 Lexington Avenue Cooperative in Gramercy Park, Manhattan" 696 /> 697 </picture> 698 699 <!-- <div class="swiper-lazy-preloader swiper-lazy-preloader-white"></div> --> 700 701 </div> 702 703 <div class="swiper-slide slider-image"> 704 705 <picture> 706 <source media="(max-width:460px)" srcset="https://hl-django-new.s3.amazonaws.com/unit_floorplan/119196/unit%20floorplan/15k_composed.jpg?AWSAccessKeyId=AKIA3CEYEB6JVPPVBQIU&Signature=Fqz3LoC4F9WXPCt46sLv7ISjINw%3D&Expires=1794160393"> 707 <img 708 id="slider-image-5" 709 width="auto" 710 height="500px" 711 src="https://hl-django-new.s3.amazonaws.com/unit_floorplan/119196/unit%20floorplan/15k_composed.jpg?AWSAccessKeyId=AKIA3CEYEB6JVPPVBQIU&Signature=Fqz3LoC4F9WXPCt46sLv7ISjINw%3D&Expires=1794160393" 712 loading="lazy" fetchpriority="low" 713 alt="Photo for The Sage House - 4 Lexington Avenue Cooperative in Gramercy Park, Manhattan" 714 /> 715 </picture> 716 717 <!-- <div class="swiper-lazy-preloader swiper-lazy-preloader-white"></div> --> 718 719 </div> 720 721 <div class="swiper-slide slider-image"> 722 723 <picture> 724 <source media="(max-width:460px)" srcset="https://hl-django-new.s3.amazonaws.com/unit_floorplan/119162/unit%20floorplan/15lmn_composed.jpg?AWSAccessKeyId=AKIA3CEYEB6JVPPVBQIU&Signature=DWQ8MOZBuH1R%2Bbs20kmAo8Yivj0%3D&Expires=1794160393"> 725 <img 726 id="slider-image-6" 727 width="auto" 728 height="500px" 729 src="https://hl-django-new.s3.amazonaws.com/unit_floorplan/119162/unit%20floorplan/15lmn_composed.jpg?AWSAccessKeyId=AKIA3CEYEB6JVPPVBQIU&Signature=DWQ8MOZBuH1R%2Bbs20kmAo8Yivj0%3D&Expires=1794160393" 730 loading="lazy" fetchpriority="low" 731 alt="Photo for The Sage House - 4 Lexington Avenue Cooperative in Gramercy Park, Manhattan" 732 /> 733 </picture> 734 735 <!-- <div class="swiper-lazy-preloader swiper-lazy-preloader-white"></div> --> 736 737 </div> 738 739 </div> 740 <div class="swiper-button-next" aria-label="Next slide"> 741 <!-- <img src="/assets/v2/ui/images/swiper/swiper-next-control.svg" width="24px" height="36px" alt="Next slide"> --> 742 </div> 743 <div class="swiper-button-prev" aria-label="Previous slide"> 744 <!-- <img src="/assets/v2/ui/images/swiper/swiper-prev-control.svg" width="24px" height="36px" alt="Previous slide"> --> 745 </div> 746 </section> 747 748 </div> 749 750 <div class="center-container">
751 <span class="subheading-small font-merriweather"> The Sage House at 4 Lexington Avenue Building Details </span> 752 <div class="center-container-content" id="inquiry-form"> 753 <section class="center-container-description" aria-label="The Sage House at 4 Lexington Avenue Building Details" tabindex="0"> 754 <!-- EMBEDED VIDEO CONTAINER --> 755 756 <span class="block text-base">Steeped in history and situated at 4 Lexington Avenue in the heart of New York City's vibrant Gramercy Park neighborhood, The Sage Page presents a collection of unique and luxurious cooperative residences. This distinguished landmark building exudes charm and elegance, offering a variety of residences, each boasting its own distinctive features.<br><br>Residents of The Sage Page are afforded a high level of security and service through the presence of a full-time doorman and an on-premises building manager. The building's amenities cater to residents' convenience, encompassing a common laundry room, secure bike storage, and private storage units.<br><br>The architectural grandeur of The Sage Page is undeniable. Its regal sandstone facade, reminiscent of Italian Renaissance palazzos, sets the stage for the impressive double-height lobby that greets residents upon entry.<br><br>Beyond its architectural significance, The Sage Page boasts an unbeatable location. Situated just steps away from the verdant expanse of Gramercy Square Park, residents enjoy effortless access to a plethora of desirable destinations. This includes the nearby Madison Square Park and Union Square, the vibrant culinary scene of Eataly, the Flatiron and NoMad districts, and a multitude of trendy restaurants, bars, and cafes.<br><br>The Sage Page welcomes a variety of ownership arrangements, catering to diverse lifestyles. Pied-a-terre ownership, co-purchasing opportunities, and pet ownership are all permitted. Additionally, the cooperative allows for unlimited subletting after one year of ownership with board approval and offers an attractive 80% financing option.<br><br>Embodying the perfect blend of historic elegance and modern convenience, The Sage Page presents a unique opportunity to reside in one of New York City's most coveted neighborhoods.</span> 757 </section> 758 <div class="agent-and-form-container"> 759 760 <section class="center-container-form" aria-label="Inquiry Form" tabindex="0"> 761 <div id="lead_gen_form_container"> 762 763 764<style> 765 .agent-form select{ 766 width: 100%; 767 height: 33px; 768 border-radius: 4px; 769 border: 1px solid #000; 770 } 771 .agent-form input{ 772 width: 100%; 773 } 774 .agent-form .inquiry-submit-btn { 775 width: fit-content; 776 background: black; 777 color: white; 778 border: none; 779 } 780 .agent-form textarea{ 781 width: 100%; 782 height: 150px; 783 border: 1px solid #dcdcdc; 784 } 785 /* .agent-form label{ 786 display: block; 787 color: #302f2f; 788 font-weight: normal; 789 } */ 790 .agent-form .form-row{ 791 display: flex; 792 flex-wrap: wrap; 793 justify-content: space-between; 794 } 795 .form-column{ 796 flex-basis: 48%; 797 } 798 .form_error_section{ 799 display: none; 800 width: auto 801 } 802 .errorlist{ 803 background-color: #f15232; 804 color: #fff; 805 padding: 6px; 806 width: auto; 807 font-size: 12px; 808 } 809 .form_footer{ 810 display: flex; 811 flex-direction: column; 812 row-gap: 8px; 813 padding-top: 16px; 814 } 815 .form_footer span { 816 font-size: 8px; 817 color: #666; 818 font-weight: normal; 819 } 820 input.cursor-pointer { 821 cursor: pointer; 822 } 823 input.cursor-pointer:disabled { 824 cursor: not-allowed; 825 } 826</style> 827<form id="lead_form" data-reset-submit-btn="False" action="/leads/lead-form-building" method="POST" class="agent-form"> 828 <input type="hidden" name="csrfmiddlewaretoken" value="diPwG2ZHUpkNmLXt28Kfkbmk9xX1nwHxOIpuUNcGfjDYpw8ozfn3uvPwzXTJNDPP"> 829 830 <div class="form-row"> 831 <div class="form-column required"> 832 <label for="id_name" class="input-label">Your name</label>
833 <input id="id_name" maxlength="255" name="name" type="text" class="required input-small"> 834 <div id="name_error" class="form_error_section">This field is required</div> 835 </div> 836 <div class="form-column required"> 837 <label for="id_email" class="input-label">Your email</label> 838 <input id="id_email" maxlength="255" name="email" type="email" class="required input-small"> 839 <div id="email_error" class="form_error_section">Either email or phone number is required</div> 840 </div> 841</div> 842<div class="form-row" style="margin-top: 16px;"> 843 <div class="form-column required"> 844 <label for="id_phone" class="input-label">Your phone</label> 845 <input id="id_phone" maxlength="255" name="phone" type="tel" autocomplete="tel" class="input-small"> 846 <div id="phone_error" class="form_error_section">Either phone number or email is required</div> 847 </div> 848 <div class="form-column required"> 849 <label for="id_interested_in" class="input-label">Interested in</label> 850 <select id="id_interested_in" name="interested_in" class="input-small"> 851 <option disabled selected value> select an option </option> 852 <option value="buying">Buying</option> 853 <option value="renting">Renting</option> 854 <option value="other">Other</option> 855 </select> 856 <div id="interested_in_error" class="form_error_section">This field is required</div> 857 </div> 858</div> 859<span class="form_request_error"></span> 860 861 862 <div style="opacity: 0; position: absolute; top: 0; left: 0; height: 0; width: 0; z-index: -1;"> 863 <label>Please enter phonenumber 864 <input type="text" name="phonenumber" value="" autocomplete="off" /> 865 </label> 866</div> 867 868 <div style="margin-top: 16px;"> 869 <label for="id_notes" class="input-label">How can we help you?</label> 870 <textarea id="id_notes" name="notes" class="text-area"></textarea> 871 </div> 872 <!-- Hidden input will be dynamically added if 'gclid' is present in URL query--> 873 <input type="hidden" name="building_id" value="302919"> 874 <input type="hidden" name="listing_id" id="form_listing_id" value="" class="form_listing"> 875 <!-- add starting price hidden input --> 876 <input type="hidden" name="starting_price" id="form_starting_price" value=""> 877 <input type="hidden" name="source" id="form_source" value=""> 878 <div class="form_footer"> 879 <button class="cursor-pointer inquiry-submit-btn btn-dark building-detail-inquiry-btn" type="submit" id="lead_inquire" onclick="submitForm(event)"> 880 Schedule viewing 881 </button> 882 <span> 883 By submitting your contact details you agree that a Licensed Real Estate Professional from Highline Residential may call/text/email you about your inquiry, which may involve use of automated means. This Web site has no affiliation to the building, developer, or management company. 884 </span> 885 </div> 886</form> 887
888<script> 889 function submitForm(event){ 890 event.preventDefault() 891 validate_form() 892 } 893 function resetSubmitBtn(btn){ 894 if(document.getElementById('lead_form').dataset.resetSubmitBtn == 'True'){ 895 btn.value = 'Schedule viewing'; 896 btn.disabled = false; 897 } 898 } 899 function validate_form() { 900 let errors = 0; 901 const errors_map = {}; 902 903 const name = document.getElementById('id_name'); 904 const email = document.getElementById('id_email'); 905 const phoneNumber = document.getElementById('id_phone'); 906 const interestedIn = document.getElementById('id_interested_in'); 907 //errors section 908 const name_error = document.getElementById('name_error'); 909 const email_error = document.getElementById('email_error'); 910 const phone_error = document.getElementById('phone_error'); 911 const interested_in_error = document.getElementById('interested_in_error'); 912 // POSTHOG EXPERIMENT 2 START: stacking-plan-tile-redesign 913 const form_schedule_viewing_popup = document.getElementById('form_source_schedule_viewing_popup'); 914 // POSTHOG EXPERIMENT 2 END 915 916 if (name?.value?.length == 0) { 917 name_error.style.display = 'block'; 918 name_error.classList.add('errorlist'); 919 errors_map.name_error = true; 920 } 921 else{ 922 name_error.style.display = 'none'; 923 name_error.classList.remove('errorlist'); 924 errors_map.name_error = false; 925 } 926 if (email?.value?.length == 0 && phoneNumber?.value?.length == 0) { 927 email_error.style.display = 'block'; 928 email_error.classList.add('errorlist'); 929 errors_map.email_error = true; 930 } 931 else{ 932 email_error.style.display = 'none'; 933 email_error.classList.remove('errorlist'); 934 errors_map.email_error = false; 935 } 936 if (email?.value?.length == 0 && phoneNumber?.value?.length == 0) { 937 phone_error.style.display = 'block'; 938 phone_error.classList.add('errorlist'); 939 errors_map.phone_error = true; 940 } 941 else{ 942 phone_error.style.display = 'none'; 943 phone_error.classList.remove('errorlist'); 944 errors_map.phone_error = false; 945 } 946 if (interestedIn?.value?.length == 0) { 947 interested_in_error.style.display = 'block'; 948 interested_in_error.classList.add('errorlist'); 949 errors_map.interested_in_error = true; 950 } 951 else{ 952 interested_in_error.style.display = 'none'; 953 interested_in_error.classList.remove('errorlist'); 954 errors_map.interested_in_error = false; 955 } 956 errors = Object.values(errors_map).filter(error => error == true ).length; 957 if (errors === 0) { 958 const phonenumber = document.querySelector('input[name="phonenumber"]').value; 959 if (phonenumber !== '') { 960 document.querySelector('.main_content').insertAdjacentHTML('afterbegin', '<div class="messages"><ul class="message_list"><li class="info">Thank you for your inquiry, we will contact you shortly!</li></ul></div>'); 961 document.getElementById('lead_form').reset(); 962 // close the popup if it's empty 963 var myModal = new bootstrap.Modal(document.getElementById('myModal')); 964 myModal.hide(); 965 } 966 else { 967 const form = document.getElementById('lead_form'); 968 addGclidToForm(form); 969 const formData = new FormData(form); 970 formData.append('floor_plan_count', window.floor_plan_count) 971 formData.append('stacking_plan_count', window.stacking_plan_count) 972 const actionType = ""; 973 if (actionType) { 974 formData.append('action', actionType.toLowerCase().replace(' ', '_')); 975 } 976 const serialized = new URLSearchParams(formData).toString(); 977 const leadInquire = document.getElementById("lead_inquire"); 978 leadInquire.disabled = true; 979 leadInquire.value = 'SENT'; 980 981 fetch("/leads/lead-form-building", { 982 method: "POST", 983 headers: { 984 'Content-Type': 'application/x-www-form-urlencoded', 985 'X-Requested-With': 'XMLHttpRequest' 986 }, 987 body: serialized 988 }) 989 .then(response => { 990 if (response.ok) { 991 return response.text(); 992 } else { 993 throw new Error('Network response was not ok.'); 994 } 995 }) 996 .then(data => { 997 data = JSON.parse(data); 998 if (data === 'Success') { 999 // POSTHOG EXPERIMENT 2 START: stacking-plan-tile-redesign 1000 if (form_schedule_viewing_popup && form_schedule_viewing_popup.value.toLowerCase() === 'stacking plan') { 1001 window.setTimeout(() => { 1002 window.posthog.capture('stacking_plan_lead_form_submitted', { 1003 variant: window.POSTHOG_EXPERIMENT_2_VARIANT, 1004 }); 1005 }, 5000); 1006 } 1007 // POSTHOG EXPERIMENT 2 END 1008 // FOR POSTHOG EXPERIMENT 1
1009 if(window.POSTHOG_EXPERIMENT_1_VARIANT) { 1010 window.posthog.capture('building_lead_form_submitted', { 1011 variant: window.POSTHOG_EXPERIMENT_1_VARIANT, 1012 }); 1013 } 1014 // POSTHOG EXPERIMENT 3 START: building-page-rental-waitlist-cta 1015 const form_join_waitlist_popup = document.getElementById('form_source_join_waitlist_popup'); 1016 if ( 1017 (form_schedule_viewing_popup && form_schedule_viewing_popup.value.toLowerCase() === 'active rentals') || 1018 (form_join_waitlist_popup && form_join_waitlist_popup.value.toLowerCase() === 'join waitlist') 1019 ) { 1020 window.posthog.capture('rental_waitlist_cta_form_submitted', { 1021 variant: window.POSTHOG_EXPERIMENT_3_VARIANT, 1022 }); 1023 } 1024 // POSTHOG EXPERIMENT 3 END 1025 window.enquiryFormSubmitted = true; 1026 gtag('event', 'building_detail_new', { 1027 category: 'inquiry', 1028 stacking_plan: window.stacking_plan_count ? 'yes' : 'no', 1029 floorplan: window.floor_plan_count ? 'yes' : 'no' 1030 }); 1031 gtag('event', 'Building Contact Form v2', {'category': 'Submitted Building Contact Form v2'}); 1032 gtag('event', 'conversion', {'send_to': 'AW-1016337316/zLS2CJu_jpQZEKSn0OQD'}); 1033 form.reset(); 1034 window.$notyf && window.$notyf.success('Your inquiry was successfully submitted.'); 1035 const errorContainer = document.querySelectorAll('.lead-gen-errors'); 1036 errorContainer.forEach(element => { 1037 element.remove(); 1038 }); 1039 resetSubmitBtn(leadInquire); 1040 } else { 1041 // remove previous error message 1042 document.querySelector('.form_request_error').innerHTML = ''; 1043 setTimeout(() => { 1044 document.querySelector('.form_request_error').insertAdjacentHTML('afterbegin', '<div class="messages lead-gen-errors"><ul class="message_list"><li class="error">There was an error processing your request. Please try again later.</li></ul></div>'); 1045 }, 500); 1046 leadInquire.disabled = false; 1047 leadInquire.value = 'Schedule viewing'; 1048 } 1049 }) 1050 .catch(error => { 1051 // remove previous error message 1052 document.querySelector('.form_request_error').innerHTML = ''; 1053 setTimeout(() => { 1054 document.querySelector('.form_request_error').insertAdjacentHTML('afterbegin', '<div class="messages lead-gen-errors"><ul class="message_list"><li class="error">There was an error processing your request. Please try again later.</li></ul></div>'); 1055 }, 500); 1056 leadInquire.disabled = false; 1057 leadInquire.value = 'Schedule viewing'; 1058 console.error('There was a problem with the fetch operation:', error); 1059 }); 1060 } 1061 } 1062 } 1063 function addGclidToForm(form) { 1064 const params = new URLSearchParams(window.location.search); 1065 // Check if 'gclid' is present in the URL query string 1066 if (params.has('gclid')) { 1067 // Create a hidden input element for gclid 1068 const gclidInput = document.createElement('input'); 1069 gclidInput.type = 'hidden'; 1070 gclidInput.name = 'gclid'; 1071 gclidInput.value = 'y'; 1072 form.appendChild(gclidInput); 1073 } 1074 } 1075</script>
1075 1076 1077 </div> 1078 </section> 1079 </div> 1080 </div> 1081 </div> 1082 1083 <div class="building-amenities"> 1084 <span class="subheading-small font-merriweather"> The Sage House Building Amenities </span> 1085 <hr class="top-border" /> 1086 <ul class="amenities text-base list-disc pl-4" style="overflow: auto"> 1087 1088 <li>Bike room</li> 1089 1090 <li> Full-time doorman</li> 1091 1092 <li> New construction</li> 1093 1094 <li> On-site laundry</li> 1095 1096 <li> Pets - Cats ok</li> 1097 1098 <li> Pets - Dogs ok</li> 1099 1100 <li> Pied-A-Terre Allowed</li> 1101 1102 <li> Elevator</li> 1103 1104 <li> Pre-War</li> 1105 1106 <li> Storage</li> 1107 1108 </ul> 1109 <hr class="bottom-border" style="margin-top: 20px" /> 1110 </div> 1111 1112 1113 1114 <!-- VUE APP PLACEHOLDER --> 1115 <div class="active-listings" id="building-detail-vue"> 1116 <!-- Loader for grid --> 1117 <span class="subheading-small font-merriweather mt-5 block" id="availability"> Active Listings & Units </span> 1118 <div class="skeleton-loader mt-3" style="width: 100%; height: 600px;"></div> 1119 <!-- Loader for other sections --> 1120 <span class="subheading-small font-merriweather mt-2 block" id="residences">The Sage House Residences </span> 1121 <div class="flex flex-col gap-y-2 mt-3"> 1122 <div class="skeleton-loader" style="width: 20%; height: 45px;"></div> 1123 <div class="skeleton-loader" style="width: 20%; height: 45px;"></div> 1124 <div class="skeleton-loader" style="width: 35%; height: 45px;"></div> 1125 <div class="skeleton-loader" style="width: 35%; height: 45px;"></div> 1126 <div class="skeleton-loader" style="width: 40%; height: 45px;"></div> 1127 <div class="skeleton-loader" style="width: 40%; height: 45px;"></div> 1128 <div class="skeleton-loader" style="width: 50%; height: 45px;"></div> 1129 <div class="skeleton-loader" style="width: 60%; height: 45px;"></div> 1130 <div class="skeleton-loader" style="width: 70%; height: 45px;"></div> 1131 </div> 1132 <span class="subheading-small font-merriweather mt-2 block" id="activity">Recent Activity at <em> The Sage House </em> </span> 1133 <div class="flex flex-col gap-y-2 mt-3"> 1134 <div class="skeleton-loader" style="width: 100%; height: 24px;"></div> 1135 <div class="skeleton-loader" style="width: 100%; height: 24px;"></div> 1136 <div class="skeleton-loader" style="width: 100%; height: 24px;"></div> 1137 <div class="skeleton-loader" style="width: 100%; height: 24px;"></div> 1138 <div class="skeleton-loader" style="width: 100%; height: 24px;"></div> 1139 <div class="skeleton-loader" style="width: 100%; height: 24px;"></div> 1140 <div class="skeleton-loader" style="width: 100%; height: 24px;"></div> 1141 <div class="skeleton-loader" style="width: 100%; height: 24px;"></div> 1142 <div class="skeleton-loader" style="width: 100%; height: 24px;"></div> 1143 </div> 1144 <span class="subheading-small font-merriweather mt-2 block"> Apartment Floor Plans </span> 1145 <div class="flex flex-wrap gap-2 mt-3" id="floorplans"> 1146 <div class="skeleton-loader " style="width: 280px; height: 300px;"></div> 1147 <div class="skeleton-loader " style="width: 280px; height: 300px;"></div> 1148 <div class="skeleton-loader " style="width: 280px; height: 300px;"></div> 1149 <div class="skeleton-loader " style="width: 280px; height: 300px;"></div> 1150 <div class="skeleton-loader " style="width: 280px; height: 300px;"></div> 1151 <div class="skeleton-loader " style="width: 280px; height: 300px;"></div> 1152 </div> 1153 </div> 1154 <!-- VUE APP ENDS --> 1155 1156 1157 1158 <div class="building-facts" id="building-facts-id">
1159 <span class="subheading-small font-merriweather"> Building Facts for 4 Lexington Avenue, New York 10010 </span> 1160 <hr class="top-border" /> 1161 <div class="facts-listing"> 1162 <ul class="list-disc pl-4"> 1163 <li id="available-sales-listings"><a href="#availability" style="color: black" role="button" @click="activeTab='ACTIVE SALES'">Available Sales Listings: 3</a></li> 1164 1165 <li>Street Address: 4 Lexington Avenue, New York, NY 10010</li> 1166 1167 <li>Property Type: Cooperative</li> 1168 1169 <li>Elevator Building</li> 1170 1171 <li>New Development</li> 1172 1173 <li>Doorman: Full-time doorman</li> 1174 1175 <li>Neighborhood: Gramercy Park / Manhattan</li> 1176 1177 <li>Building Name: The Sage House</li> 1178 1179 </ul> 1180 <ul> 1181 <li id="available-rental-listings"><a href="#availability" style="color: black" role="button" @click="activeTab='ACTIVE RENTALS'">Available Rental Listings: Please Inquire </a></li> 1182 1183 <li>Year Built: 1931</li> 1184 1185 <li>Floors: 15</li> 1186 1187 <li> 1188 <div style="display: flex; align-items: center"> 1189 Near Subway Lines: 1190 <div class="subway-circle-container"> 1191 1192 <span class="subway_4" style="width: 13px; height: 13px"></span> 1193 1194 <span class="subway_5" style="width: 13px; height: 13px"></span> 1195 1196 <span class="subway_6" style="width: 13px; height: 13px"></span> 1197 1198 <span class="subway_L" style="width: 13px; height: 13px"></span> 1199 1200 <span class="subway_N" style="width: 13px; height: 13px"></span> 1201 1202 <span class="subway_Q" style="width: 13px; height: 13px"></span> 1203 1204 <span class="subway_R" style="width: 13px; height: 13px"></span> 1205 1206 </div> 1207 </div> 1208 </li> 1209 1210 1211 </ul> 1212 </div> 1213 <hr class="bottom-border" /> 1214 </div> 1215 1216 1217 1218 1219 1220 <div class="similar-buildings"> 1221 1222 <span class="subheading-small font-merriweather"> Other Similar Buildings in NYC </span> 1223 <div class="building-cards gap-3"> 1224 1225 <a class="card box-shadow" title=" The Madison Parq - 66 MADISON AVENUE Cooperative in NoMad, Manhattan"
1226 href="https://www.hlres.com/buildings/nyc/the-madison-parq-66-madison-avenue/302654/cooperative"> 1227 <div 1228 class="similar-buildings-img-container" 1229 ><img 1230 alt="Photo for The Madison Parq - 66 MADISON AVENUE Cooperative in NoMad, Manhattan" 1231 src="https://i2.hlres.com/fit-in/1200x10000/listing-photos/1975483/ad/7f0dec2e-10ed-4d3e-983a-b7602669d2c1.jpeg" 1232 loading="lazy" 1233 /></div> 1234 <div class="flex flex-col px-2 py-4"> 1235 1236 <span class="font-normal text-sm">The Madison Parq</span> 1237 1238 <span class="text-sm">66 Madison Avenue, New York, NY 10016</span> 1239 <span class="text-sm">Cooperative in NoMad</span> 1240 </div> 1241 </a> 1242 1243 <a class="card box-shadow" title=" 330 3rd Avenue - 330 3 AVENUE Cooperative in Gramercy Park, Manhattan"
1244 href="https://www.hlres.com/buildings/nyc/330-3rd-avenue-330-third-avenue/302945/cooperative"> 1245 <div 1246 class="similar-buildings-img-container" 1247 ><img 1248 alt="Photo for 330 3rd Avenue - 330 3 AVENUE Cooperative in Gramercy Park, Manhattan" 1249 src="https://i2.hlres.com/fit-in/1200x10000/listing-photos/2125788/ad/64e6d705-b3ab-407f-a7e0-e4e2a27efb0e.jpeg" 1250 loading="lazy" 1251 /></div> 1252 <div class="flex flex-col px-2 py-4"> 1253 1254 <span class="font-normal text-sm">330 3rd Avenue</span> 1255 1256 <span class="text-sm">330 3 Avenue, New York, NY 10010</span> 1257 <span class="text-sm">Cooperative in Gramercy Park</span> 1258 </div> 1259 </a> 1260 1261 <a class="card box-shadow" title=" Gramercy Park Towers - 205 3 AVENUE Cooperative in Gramercy Park, Manhattan"
1262 href="https://www.hlres.com/buildings/nyc/gramercy-park-towers-205-3rd-avenue/303453/cooperative"> 1263 <div 1264 class="similar-buildings-img-container" 1265 ><img 1266 alt="Photo for Gramercy Park Towers - 205 3 AVENUE Cooperative in Gramercy Park, Manhattan" 1267 src="/assets/ui/default/default-building.jpg" 1268 loading="lazy" 1269 /></div> 1270 <div class="flex flex-col px-2 py-4"> 1271 1272 <span class="font-normal text-sm">Gramercy Park Towers</span> 1273 1274 <span class="text-sm">205 3 Avenue, New York, NY 10003</span> 1275 <span class="text-sm">Cooperative in Gramercy Park</span> 1276 </div> 1277 </a> 1278 1279 <a class="card box-shadow" title=" 211 East 18th Street - 211 EAST 18 STREET Cooperative in Gramercy Park, Manhattan"
1280 href="https://www.hlres.com/buildings/nyc/211-east-18th-street-211-east-18th-street/303454/cooperative"> 1281 <div 1282 class="similar-buildings-img-container" 1283 ><img 1284 alt="Photo for 211 East 18th Street - 211 EAST 18 STREET Cooperative in Gramercy Park, Manhattan" 1285 src="https://i2.hlres.com/fit-in/1200x10000/listing-photos/954465/ad/83dcefb7.jpeg" 1286 loading="lazy" 1287 /></div> 1288 <div class="flex flex-col px-2 py-4"> 1289 1290 <span class="font-normal text-sm">211 East 18th Street</span> 1291 1292 <span class="text-sm">211 East 18 Street, New York, NY 10003</span> 1293 <span class="text-sm">Cooperative in Gramercy Park</span> 1294 </div> 1295 </a> 1296 1297 <a class="card box-shadow" title=" Tracy Towers - 421 2 AVENUE Cooperative in Kips Bay, Manhattan"
1298 href="https://www.hlres.com/buildings/nyc/tracy-towers-245-east-24th-street/303542/cooperative"> 1299 <div 1300 class="similar-buildings-img-container" 1301 ><img 1302 alt="Photo for Tracy Towers - 421 2 AVENUE Cooperative in Kips Bay, Manhattan" 1303 src="https://i2.hlres.com/fit-in/1200x10000/listing-photos/1567994/ad/83dcefb7.jpeg" 1304 loading="lazy" 1305 /></div> 1306 <div class="flex flex-col px-2 py-4"> 1307 1308 <span class="font-normal text-sm">Tracy Towers</span> 1309 1310 <span class="text-sm">421 2 Avenue, New York, NY 10010</span> 1311 <span class="text-sm">Cooperative in Kips Bay</span> 1312 </div> 1313 </a> 1314 1315 <a class="card box-shadow" title=" The Peter James - 201 EAST 25 STREET Cooperative in Gramercy Park, Manhattan"
1316 href="https://www.hlres.com/buildings/nyc/the-peter-james-201-east-25-street/303561/cooperative"> 1317 <div 1318 class="similar-buildings-img-container" 1319 ><img 1320 alt="Photo for The Peter James - 201 EAST 25 STREET Cooperative in Gramercy Park, Manhattan" 1321 src="/assets/ui/default/default-building.jpg" 1322 loading="lazy" 1323 /></div> 1324 <div class="flex flex-col px-2 py-4"> 1325 1326 <span class="font-normal text-sm">The Peter James</span> 1327 1328 <span class="text-sm">201 East 25 Street, New York, NY 10010</span> 1329 <span class="text-sm">Cooperative in Gramercy Park</span> 1330 </div> 1331 </a> 1332 1333 <a class="card box-shadow" title=" The Spruce Ridge House - 441 2 AVENUE Cooperative in Kips Bay, Manhattan"
1334 href="https://www.hlres.com/buildings/nyc/the-spruce-ridge-house-245-east-25th-street/303570/cooperative"> 1335 <div 1336 class="similar-buildings-img-container" 1337 ><img 1338 alt="Photo for The Spruce Ridge House - 441 2 AVENUE Cooperative in Kips Bay, Manhattan" 1339 src="https://i2.hlres.com/fit-in/1200x10000/listing-photos/1463880/ad/83dcefb7.jpeg" 1340 loading="lazy" 1341 /></div> 1342 <div class="flex flex-col px-2 py-4"> 1343 1344 <span class="font-normal text-sm">The Spruce Ridge House</span> 1345 1346 <span class="text-sm">441 2 Avenue, New York, NY 10010</span> 1347 <span class="text-sm">Cooperative in Kips Bay</span> 1348 </div> 1349 </a> 1350 1351 <a class="card box-shadow" title=" 305 East 24th Street - 422 2 AVENUE Cooperative in Kips Bay, Manhattan"
1352 href="https://www.hlres.com/buildings/nyc/305-east-24th-street-305-east-24th-street/304070/cooperative"> 1353 <div 1354 class="similar-buildings-img-container" 1355 ><img 1356 alt="Photo for 305 East 24th Street - 422 2 AVENUE Cooperative in Kips Bay, Manhattan" 1357 src="https://i2.hlres.com/fit-in/1200x10000/listing-photos/952362/ad/83dcefb7.jpeg" 1358 loading="lazy" 1359 /></div> 1360 <div class="flex flex-col px-2 py-4"> 1361 1362 <span class="font-normal text-sm">305 East 24th Street</span> 1363 1364 <span class="text-sm">422 2 Avenue, New York, NY 10010</span> 1365 <span class="text-sm">Cooperative in Kips Bay</span> 1366 </div> 1367 </a> 1368 1369 </div> 1370 </div> 1371 1372 1373 1374 1375 <div class="map-container"> 1376 <span class="subheading-small font-merriweather"> Map Location of <em>The Sage House</em> and nearby points of interest </span> 1377 <div class="subway-tabs"> 1378 <button class="mapTab" onclick="tabSelected('mapTab')"> 1379 <span>MAP</span> 1380 </button> 1381 <button class="supermarket" onclick="tabSelected('supermarket')"> 1382 <span>SUPERMARKETS</span> 1383 </button> 1384 <button class="gyms" onclick="tabSelected('gyms')"> 1385 <span>GYMS</span> 1386 </button> 1387 <button class="parks" onclick="tabSelected('parks')"> 1388 <span>PARKS</span> 1389 </button> 1390 <div> 1391 <span></span> 1392 </div> 1393 </div> 1394 <div class="tab-display"> 1395 1396 <div class="tab-item" style="width: 100%"> 1397 <div class="map-placeholder"> 1398 <img 1399 class="img-fluid map_image" 1400 alt="Map of the building location" 1401 loading="lazy" 1402 height="720px" 1403 width="100%" 1404 style="max-height: 720px; object-fit: cover; width: 100%" 1405 src="https://maps.googleapis.com/maps/api/staticmap?size=1298x720&scale=2&zoom=14&markers=color:black%7Clabel:1%7C40.738848,-73.985720&key=AIzaSyAG0R9vETZDNlr7cjaLkH398eCi8bDhZqQ&style=element:geometry%7Ccolor:0xf5f5f5&style=element:labels.icon%7Cvisibility:off&style=element:labels.text.fill%7Ccolor:0x616161&style=element:labels.text.stroke%7Ccolor:0xf5f5f5&style=feature:administrative.land_parcel%7Celement:labels.text.fill%7Ccolor:0xbdbdbd&style=feature:landscape%7Ccolor:0xffffff&style=feature:poi%7Celement:geometry%7Ccolor:0xeeeeee&style=feature:poi%7Celement:labels.text.fill%7Ccolor:0x757575&style=feature:poi.park%7Celement:geometry%7Ccolor:0xe5e5e5&style=feature:poi.park%7Celement:geometry.fill%7Ccolor:0xffffff&style=feature:poi.park%7Celement:labels.text.fill%7Ccolor:0x9e9e9e&style=feature:poi.school%7Celement:geometry%7Cvisibility:off&style=feature:road%7Celement:geometry%7Ccolor:0xffffff&style=feature:road%7Celement:geometry.fill%7Ccolor:0xe9e9e9%7Cweight:3.5&style=feature:road%7Celement:geometry.stroke%7Cweight:0.5&style=feature:road.arterial%7Celement:labels.text.fill%7Ccolor:0x757575&style=feature:road.highway%7Celement:geometry%7Ccolor:0xdadada&style=feature:road.highway%7Celement:labels.text.fill%7Ccolor:0x616161&style=feature:road.local%7Celement:labels.text.fill%7Ccolor:0x9e9e9e&style=feature:transit%7Cvisibility:on&style=feature:transit.line%7Cvisibility:off&style=feature:transit.line%7Celement:geometry%7Ccolor:0xe5e5e5&style=feature:transit.line%7Celement:labels.icon%7Cvisibility:on&style=feature:transit.station%7Cvisibility:on%7Cweight:1&style=feature:transit.station%7Celement:geometry%7Ccolor:0xeeeeee&style=feature:transit.station.airport%7Cvisibility:on&style=feature:transit.station.bus%7Cvisibility:off&style=feature:transit.station.rail%7Cvisibility:on&style=feature:water%7Celement:geometry%7Ccolor:0xc9c9c9&style=feature:water%7Celement:geometry.fill%7Ccolor:0x4285f4%7Clightness:75&style=feature:water%7Celement:labels.text.fill%7Ccolor:0x9e9e9e" 1406 loading="lazy" 1407 /> 1408 <div id="status-spin" class="loader" style="display: none"></div> 1409 <div id="map_container" style="width: 100%; height: 720px; display: none" class="lazyload"></div> 1410 </div> 1411 <div class="coming-soon-feature-placeholder">
1412 <span class="coming-soon">Coming Soon</span> 1413 </div> 1414 </div> 1415 1416
1416<script defer> 1417 var map; 1418 // dom ready 1419 document.addEventListener("load", function () { 1420 if (window.google && google.maps) { 1421 // Map script is already loaded 1422 initMap(); 1423 } else { 1424 // lazyLoadGoogleMap(); 1425 } 1426 document.querySelectorAll('.map_image').forEach(function(element) { 1427 element.addEventListener('click', function() { 1428 this.remove(); 1429 document.getElementById('status-spin').style.display = 'block'; 1430 document.getElementById('map_container').style.display = 'block'; 1431 lazyLoadGoogleMap(); 1432 }); 1433 }); 1434 1435 }); 1436 1437 function initMap() { 1438 setTimeout(function() { 1439 myLatLng = {lat: 40.738848, lng: -73.985720 }; 1440 imageUrl = '/assets/v2/ui/images/map/map-pin-grey.svg'; 1441 markerImage = { 1442 url: imageUrl, 1443 size: new google.maps.Size(50, 66), 1444 anchor: new google.maps.Point(12, 33), 1445 scaledSize: new google.maps.Size(25, 33) 1446 }; 1447 map = new google.maps.Map(document.getElementById('map_container'), { 1448 center: myLatLng, 1449 zoom: 16, 1450 }); 1451 var styles = [ 1452 { 1453 "elementType": "geometry", 1454 "stylers": [ 1455 { 1456 "color": "#f5f5f5" 1457 } 1458 ] 1459 }, 1460 { 1461 "elementType": "labels.icon", 1462 "stylers": [ 1463 { 1464 "visibility": "off" 1465 } 1466 ] 1467 }, 1468 { 1469 "elementType": "labels.text.fill", 1470 "stylers": [ 1471 { 1472 "color": "#616161" 1473 } 1474 ] 1475 }, 1476 { 1477 "elementType": "labels.text.stroke", 1478 "stylers": [ 1479 { 1480 "color": "#f5f5f5" 1481 } 1482 ] 1483 }, 1484 { 1485 "featureType": "administrative.land_parcel", 1486 "elementType": "labels.text.fill", 1487 "stylers": [ 1488 { 1489 "color": "#bdbdbd" 1490 } 1491 ] 1492 }, 1493 { 1494 "featureType": "landscape", 1495 "stylers": [ 1496 { 1497 "color": "#ffffff" 1498 } 1499 ] 1500 }, 1501 { 1502 "featureType": "poi", 1503 "elementType": "geometry", 1504 "stylers": [ 1505 { 1506 "color": "#eeeeee" 1507 } 1508 ] 1509 }, 1510 { 1511 "featureType": "poi", 1512 "elementType": "labels.text.fill", 1513 "stylers": [ 1514 { 1515 "color": "#757575" 1516 } 1517 ] 1518 }, 1519 { 1520 "featureType": "poi.park", 1521 "elementType": "geometry", 1522 "stylers": [ 1523 { 1524 "color": "#e5e5e5" 1525 } 1526 ] 1527 }, 1528 { 1529 "featureType": "poi.park", 1530 "elementType": "geometry.fill", 1531 "stylers": [ 1532 { 1533 "color": "#ffffff" 1534 } 1535 ] 1536 }, 1537 { 1538 "featureType": "poi.park", 1539 "elementType": "labels.text.fill", 1540 "stylers": [ 1541 { 1542 "color": "#9e9e9e" 1543 } 1544 ] 1545 }, 1546 { 1547 "featureType": "poi.school", 1548 "elementType": "geometry", 1549 "stylers": [ 1550 { 1551 "visibility": "off" 1552 } 1553 ] 1554 }, 1555 { 1556 "featureType": "road", 1557 "elementType": "geometry", 1558 "stylers": [ 1559 { 1560 "color": "#ffffff" 1561 } 1562 ] 1563 }, 1564 { 1565 "featureType": "road", 1566 "elementType": "geometry.fill", 1567 "stylers": [ 1568 { 1569 "color": "#e9e9e9" 1570 }, 1571 { 1572 "weight": 3.5 1573 } 1574 ] 1575 }, 1576 { 1577 "featureType": "road", 1578 "elementType": "geometry.stroke", 1579 "stylers": [ 1580 { 1581 "weight": 0.5 1582 } 1583 ] 1584 }, 1585 { 1586 "featureType": "road.arterial", 1587 "elementType": "labels.text.fill", 1588 "stylers": [ 1589 { 1590 "color": "#757575" 1591 } 1592 ] 1593 }, 1594 { 1595 "featureType": "road.highway", 1596 "elementType": "geometry", 1597 "stylers": [ 1598 { 1599 "color": "#dadada" 1600 } 1601 ] 1602 }, 1603 { 1604 "featureType": "road.highway", 1605 "elementType": "labels.text.fill", 1606 "stylers": [ 1607 { 1608 "color": "#616161" 1609 } 1610 ] 1611 }, 1612 { 1613 "featureType": "road.local", 1614 "elementType": "labels.text.fill", 1615 "stylers": [ 1616 { 1617 "color": "#9e9e9e" 1618 } 1619 ] 1620 }, 1621 { 1622 "featureType": "transit", 1623 "stylers": [ 1624 { 1625 "visibility": "on" 1626 } 1627 ] 1628 }, 1629 { 1630 "featureType": "transit.line", 1631 "stylers": [ 1632 { 1633 "visibility": "off" 1634 } 1635 ] 1636 }, 1637 { 1638 "featureType": "transit.line", 1639 "elementType": "geometry", 1640 "stylers": [ 1641 { 1642 "color": "#e5e5e5" 1643 } 1644 ] 1645 }, 1646 { 1647 "featureType": "transit.line", 1648 "elementType": "labels.icon", 1649 "stylers": [ 1650 { 1651 "visibility": "on" 1652 } 1653 ] 1654 }, 1655 { 1656 "featureType": "transit.station", 1657 "stylers": [ 1658 { 1659 "visibility": "on" 1660 }, 1661 { 1662 "weight": 1 1663 } 1664 ] 1665 }, 1666 { 1667 "featureType": "transit.station", 1668 "elementType": "geometry", 1669 "stylers": [ 1670 { 1671 "color": "#eeeeee" 1672 } 1673 ] 1674 }, 1675 { 1676 "featureType": "transit.station.airport", 1677 "stylers": [ 1678 { 1679 "visibility": "on" 1680 } 1681 ] 1682 }, 1683 { 1684 "featureType": "transit.station.bus", 1685 "stylers": [ 1686 { 1687 "visibility": "off" 1688 } 1689 ] 1690 }, 1691 { 1692 "featureType": "transit.station.rail", 1693 "stylers": [ 1694 { 1695 "visibility": "on" 1696 } 1697 ] 1698 }, 1699 { 1700 "featureType": "water", 1701 "elementType": "geometry", 1702 "stylers": [ 1703 { 1704 "color": "#c9c9c9" 1705 } 1706 ] 1707 }, 1708 { 1709 "featureType": "water", 1710 "elementType": "geometry.fill", 1711 "stylers": [ 1712 { 1713 "color": "#4285f4" 1714 }, 1715 { 1716 "lightness": 75 1717 } 1718 ] 1719 }, 1720 { 1721 "featureType": "water", 1722 "elementType": "labels.text.fill", 1723 "stylers": [ 1724 { 1725 "color": "#9e9e9e" 1726 } 1727 ] 1728 } 1729 ] 1730 map.setOptions({ styles: styles }); 1731 1732 transitLayer = new google.maps.TransitLayer();
1733 transitLayer.setMap(map); 1734 marker = new google.maps.Marker({ 1735 position: myLatLng, 1736 map: map, 1737 icon: markerImage, 1738 }); 1739 }, 500); 1740 } 1741 1742 function lazyLoadGoogleMap() { 1743 var script = document.createElement('script'); 1744 script.defer = true; 1745 script.src = "https://maps.google.com/maps/api/js?key=AIzaSyAG0R9vETZDNlr7cjaLkH398eCi8bDhZqQ&sensor=true&callback=initMap&style=element:geometry%7Ccolor:0xf5f5f5&style=element:labels.icon%7Cvisibility:off&style=element:labels.text.fill%7Ccolor:0x616161&style=element:labels.text.stroke%7Ccolor:0xf5f5f5&style=feature:administrative.land_parcel%7Celement:labels.text.fill%7Ccolor:0xbdbdbd&style=feature:landscape%7Ccolor:0xffffff&style=feature:poi%7Celement:geometry%7Ccolor:0xeeeeee&style=feature:poi%7Celement:labels.text.fill%7Ccolor:0x757575&style=feature:poi.park%7Celement:geometry%7Ccolor:0xe5e5e5&style=feature:poi.park%7Celement:geometry.fill%7Ccolor:0xffffff&style=feature:poi.park%7Celement:labels.text.fill%7Ccolor:0x9e9e9e&style=feature:poi.school%7Celement:geometry%7Cvisibility:off&style=feature:road%7Celement:geometry%7Ccolor:0xffffff&style=feature:road%7Celement:geometry.fill%7Ccolor:0xe9e9e9%7Cweight:3.5&style=feature:road%7Celement:geometry.stroke%7Cweight:0.5&style=feature:road.arterial%7Celement:labels.text.fill%7Ccolor:0x757575&style=feature:road.highway%7Celement:geometry%7Ccolor:0xdadada&style=feature:road.highway%7Celement:labels.text.fill%7Ccolor:0x616161&style=feature:road.local%7Celement:labels.text.fill%7Ccolor:0x9e9e9e&style=feature:transit%7Cvisibility:on&style=feature:transit.line%7Cvisibility:off&style=feature:transit.line%7Celement:geometry%7Ccolor:0xe5e5e5&style=feature:transit.line%7Celement:labels.icon%7Cvisibility:on&style=feature:transit.station%7Cvisibility:on%7Cweight:1&style=feature:transit.station%7Celement:geometry%7Ccolor:0xeeeeee&style=feature:transit.station.airport%7Cvisibility:on&style=feature:transit.station.bus%7Cvisibility:off&style=feature:transit.station.rail%7Cvisibility:on&style=feature:water%7Celement:geometry%7Ccolor:0xc9c9c9&style=feature:water%7Celement:geometry.fill%7Ccolor:0x4285f4%7Clightness:75&style=feature:water%7Celement:labels.text.fill%7Ccolor:0x9e9e9e"; 1746 1747 script.onload = function() { 1748 var statusSpin = document.getElementById('status-spin'); 1749 if (statusSpin) { 1750 statusSpin.remove(); 1751 } 1752 }; 1753 1754 script.onerror = function() { 1755 console.error('Failed to load the Google Maps script.'); 1756 }; 1757 1758 document.head.appendChild(script); 1759 } 1760 1761 </script>
1761 1762 1763 </div> 1764 </div> 1765 1766 1767 1768 1769 1770 <div class="building-facts"> 1771 <span class="subheading-small font-merriweather"> Alternate Addresses for The Sage House in NYC </span> 1772 <hr class="top-border" /> 1773 <div> 1774 <ul class="alternate-addresses list-disc pl-4"> 1775 1776 <li class="text-base">128 EAST 22 STREET</li> 1777 1778 <li class="text-base">130 EAST 22 STREET</li> 1779 1780 <li class="text-base">122 EAST 22 STREET</li> 1781 1782 <li class="text-base">124 EAST 22 STREET</li> 1783 1784 <li class="text-base">126 EAST 22 STREET</li> 1785 1786 <li class="text-base">4 LEXINGTON AVENUE</li> 1787 1788 <li class="text-base">6 LEXINGTON AVENUE</li> 1789 1790 <li class="text-base">8 LEXINGTON AVENUE</li> 1791 1792 </ul> 1793 </div> 1794 <hr class="bottom-border" /> 1795 </div> 1796 1797 1798 <div class="building-facts footer"> 1799 <em 1800 >The Sage House is a Cooperative in Gramercy Park, Manhattan, located at 1801 4 Lexington Avenue, New York 10010.<br 1802 /></em> 1803 1804 <h3 class="frequent_ask_questions">Frequently asked questions about <em>The Sage House</em></h3> 1805 <dl style="margin-top: 22px"> 1806 1807 <dt>- Is The Sage House a new development in NYC?</dt> 1808 <dd>Yes, The Sage House is a new development in NYC that was built in 1931</dd> 1809 1810 <dt>- What is the address of The Sage House in NYC?</dt> 1811 <dd>The address of The Sage House is 4 Lexington Avenue, New York, NY 10010<br /></dd> 1812 <dt>- How many residential units does The Sage House have?</dt> 1813 <dd>The Sage House has 0 residential units.</dd> 1814 1815 <dt>- Are there available sales or rental listings at The Sage House?</dt> 1816 <dd>Yes, there are currently several rental and 3 sales listings available at The Sage House</dd> 1817 1818 <dt>- What year was The Sage House built in?</dt> 1819 <dd>The Sage House was built in 1931</dd> 1820 </dl> 1821 1822 1823 <span class="block">Looking for The Sage House sales and new to homebuying? Check out our <a href="https://www.hlres.c
1823om/calculators/nyc-closing-cost-calculator">NYC closing cost calculator</a></span> 1824 <div style="margin-top: 30px" class="more_info"> 1825 All information regarding an apartment or property for sale or rent as well as tax or financing information is deemed to come from reliable sources. No representation or guarantee, however, is made as to the accuracy 1826 thereof, and such information is subject to errors, omission, changes, prior to sale or rental, commission or withdrawal without notice. All square footage, dimensions, or number of rooms are approximate and provided for 1827 guidance and on a best-efforts basis only. Please verify square footage yourself before making any decisions. Exact dimensions and room counts can be obtained by retaining the services of a professional architect or 1828 engineer. 1829 </div> 1830 <div style="margin-top: 22px" class="more_info"> 1831 This information is not verified for authenticity or accuracy and is not guaranteed and may not reflect all real estate activity in the market. ©2026 The Real Estate Board of New York, Inc., All rights reserved. RLS 1832 IDX Data display by Highline Residential, LLC. IDX information is provided exclusively for consumers' personal, non-commercial use and that it may not be used for any purpose other than to identify prospective properties 1833 consumers may be interested in purchasing. The data relating to real estate for sale on this website comes in part from the IDX Program of OneKey™ MLS. The source of the displayed data is either the property owner or public 1834 record provided by non-governmental third parties. It is believed to be reliable but not guaranteed. This information is provided exclusively for consumers’ personal, non-commercial use. Information Copyright 2023, OneKey™ 1835 MLS. All Rights Reserved. 1836 </div> 1837 <div style="margin-top: 22px" class="more_info"> 1838 This Web site is affiliated with Highline Residential, LLC ("Highline"), a licensed Real Estate Broker. Highline makes no warranties or representations concerning the Website, whether (i) as to the accuracy of any descriptions and/or other details of the information contained therein, (ii) as to the prior knowledge or consent by the owners of any of the properties listed therein, or (iii) that it is the exclusive real estate broker for any of the properties listed therein. Any information provided by users of the Website may be utilized by Highline as a lead for sale, leasing or marketing purposes. Highline can be contacted through its website at www.hlres.com. 1839 </div> 1840 <div style="margin-top: 22px" class="more_info"> 1841 RLS Data display by Highline Residential. This advertisement does not suggest that the broker has a listing in this property or properties or that any property is currently available. 1842 </div> 1843 <hr class="bottom-border" style="margin-bottom: 30px" /> 1844 </div> 1845 1846 <div> 1847 <!-- POPUP FOR DISPLAYING YOUTUBE/VIMEO VIDEO --> 1848 <custom-dialog-component id="video-popup-container" title="Building Video" hide-footer="true" onclick="window.stopPropagation(event)" style="width: 720px; background-color: black; color: white"> 1849 <div class="video-popup"> 1850 <div class="" style="height: 80vh" id="building-detail-iframe-container"></div> 1851 </div> 1852 </custom-dialog-component> 1853 <!-- POPUP FOR SUBSCRIBE FOR UPDATES --> 1854 <custom-dialog-component id="save-subscriber-dialog" show-dialog="false" dialog-title="Building Updates" hide-footer="true" style="width: 720px"> 1855 <span slot="title" style="font-weight: bold; font-size: 24px;" class="block" >Stay Updated on The Sage House</span> 1856 <form id="save-subscriber-form" onsubmit="event.preventDefault(); saveSubscriberEmail();"> 1857 <div class="mt-5">
1858 <span class="text-base block">Keep informed about price changes, new listings, sold properties, and other activity in The Sage House by providing your email below.</span> 1859 <input type="email" id="subscriber_email" placeholder="Your email" class="input-small mt-5 w-full" required /> 1860 </div> 1861 <div class="mt-5 flex justify-center"> 1862 <button class="btn-dark tabletSmall:btn-dark-small subscribe-btn experiment-winner-color" type="submit">Subscribe</button> 1863 </div> 1864 </form> 1865 </custom-dialog-component> 1866 <!-- POPUP FOR SUBSCRIBE PREFERENCES --> 1867 <custom-dialog-component id="subscribe-preference-popup-container" title="" show-dialog="false" hide-footer="true" style="width: 720px"> 1868 <div> 1869 <span style="font-weight: bold; font-size: 24px; align-self: start">You have been subscribed to receive the following updates on The Sage House</span> 1870 <!-- Real time updates checkbox --> 1871 <div style="display: flex; column-gap: 12px; align-items: baseline; margin-top: 28px"> 1872 <input type="checkbox" id="realTimeUpdates" checked /> 1873 <label for="realTimeUpdates" style="font-size: 16px; font-weight: normal"> 1874 <span style="font-weight: bold">Real Time Updates</span> 1875 - Receive real time updates on price changes and new listings in The Sage House 1876 </label> 1877 </div> 1878 <!-- Monthly snapshot checkbox --> 1879 <div style="display: flex; column-gap: 12px; align-items: baseline"> 1880 <input type="checkbox" id="monthlySnapshot" checked style="margin-top: 24px" /> 1881 <label for="monthlySnapshot" style="font-size: 16px; font-weight: normal"> 1882 <span style="font-weight: bold">For Sale Inventory Snapshot (Condo/Coop)</span> 1883 - Receive a once a month snapshot of all activity in The Sage House from the prior month, including sold listings, listings entering contract, price changes, and new listings. 1884 </label> 1885 </div> 1886 </div> 1887 <div class="mt-5 flex justify-center"> 1888 <button class="btn-dark tabletSmall:btn-dark-small" onclick="saveSubscriberPreference()">Update Preferences</button> 1889 </div> 1890 </custom-dialog-component> 1891 1892 <!-- POPUP FOR DISPLAYING FORM --> 1893 <custom-dialog-component id="schedule-viewing-popup" dialog-title="Schedule Viewing" show-dialog="false" hide-footer="true" style="width: 34%"> 1894 <div id="lead_gen_form_container_popup"> 1895 1896 1897<style> 1898 .agent-form select{ 1899 width: 100%; 1900 height: 33px; 1901 border-radius: 4px; 1902 border: 1px solid #000; 1903 } 1904 .agent-form input{ 1905 width: 100%; 1906 } 1907 .agent-form .inquiry-submit-btn { 1908 width: fit-content; 1909 background: black; 1910 color: white; 1911 border: none; 1912 } 1913 .agent-form textarea{ 1914 width: 100%; 1915 height: 150px; 1916 border: 1px solid #dcdcdc; 1917 } 1918 /* .agent-form label{ 1919 display: block; 1920 color: #302f2f; 1921 font-weight: normal; 1922 } */ 1923 .agent-form .form-row{ 1924 display: flex; 1925 flex-wrap: wrap; 1926 justify-content: space-between; 1927 } 1928 .form-column{ 1929 flex-basis: 48%; 1930 } 1931 .form_error_section{ 1932 display: none; 1933 width: auto 1934 } 1935 .errorlist{ 1936 background-color: #f15232; 1937 color: #fff; 1938 padding: 6px; 1939 width: auto; 1940 font-size: 12px; 1941 } 1942 .form_footer{ 1943 display: flex; 1944 flex-direction: column; 1945 row-gap: 8px; 1946 padding-top: 16px; 1947 } 1948 .form_footer span { 1949 font-size: 8px; 1950 color: #666; 1951 font-weight: normal; 1952 } 1953 input.cursor-pointer { 1954 cursor: pointer; 1955 }
1956 input.cursor-pointer:disabled { 1957 cursor: not-allowed; 1958 } 1959</style> 1960<form id="lead_form_schedule_viewing_popup" data-reset-submit-btn="True" action="/leads/lead-form-building" method="POST" class="agent-form"> 1961 <input type="hidden" name="csrfmiddlewaretoken" value="diPwG2ZHUpkNmLXt28Kfkbmk9xX1nwHxOIpuUNcGfjDYpw8ozfn3uvPwzXTJNDPP"> 1962 1963 <div class="form-row"> 1964 <div class="form-column required"> 1965 <label for="id_name_schedule_viewing_popup" class="input-label">Your name</label> 1966 <input id="id_name_schedule_viewing_popup" maxlength="255" name="name" type="text" class="required input-small"> 1967 <div id="name_error_schedule_viewing_popup" class="form_error_section">This field is required</div> 1968 </div> 1969 <div class="form-column required"> 1970 <label for="id_email_schedule_viewing_popup" class="input-label">Your email</label> 1971 <input id="id_email_schedule_viewing_popup" maxlength="255" name="email" type="email" class="required input-small"> 1972 <div id="email_error_schedule_viewing_popup" class="form_error_section">Either email or phone number is required</div> 1973 </div> 1974</div> 1975<div class="form-row" style="margin-top: 16px;"> 1976 <div class="form-column required"> 1977 <label for="id_phone_schedule_viewing_popup" class="input-label">Your phone</label> 1978 <input id="id_phone_schedule_viewing_popup" maxlength="255" name="phone" type="tel" autocomplete="tel" class="input-small"> 1979 <div id="phone_error_schedule_viewing_popup" class="form_error_section">Either phone number or email is required</div> 1980 </div> 1981 <div class="form-column required"> 1982 <label for="id_interested_in_schedule_viewing_popup" class="input-label">Interested in</label> 1983 <select id="id_interested_in_schedule_viewing_popup" name="interested_in" class="input-small"> 1984 <option disabled selected value> select an option </option> 1985 <option value="buying">Buying</option> 1986 <option value="renting">Renting</option> 1987 <option value="other">Other</option> 1988 </select> 1989 <div id="interested_in_error_schedule_viewing_popup" class="form_error_section">This field is required</div> 1990 </div> 1991</div> 1992<span class="form_request_error_schedule_viewing_popup"></span> 1993 1994 1995 <div style="opacity: 0; position: absolute; top: 0; left: 0; height: 0; width: 0; z-index: -1;"> 1996 <label>Please enter phonenumber 1997 <input type="text" name="phonenumber" value="" autocomplete="off" /> 1998 </label> 1999</div> 2000 2001 <div style="margin-top: 16px;"> 2002 <label for="id_notes_schedule_viewing_popup" class="input-label">How can we help you?</label> 2003 <textarea id="id_notes_schedule_viewing_popup" name="notes" class="text-area"></textarea> 2004 </div> 2005 <!-- Hidden input will be dynamically added if 'gclid' is present in URL query--> 2006 <input type="hidden" name="building_id" value="302919"> 2007 <input type="hidden" name="listing_id" id="form_listing_id_schedule_viewing_popup" value="" class="form_listing"> 2008 <!-- add starting price hidden input --> 2009 <input type="hidden" name="starting_price" id="form_starting_price_schedule_viewing_popup" value=""> 2010 <input type="hidden" name="source" id="form_source_schedule_viewing_popup" value=""> 2011 <div class="form_footer"> 2012 <button class="cursor-pointer inquiry-submit-btn btn-dark building-detail-inquiry-btn" type="submit" id="lead_inquire_schedule_viewing_popup" onclick="submitForm_schedule_viewing_popup(event)"> 2013 Schedule viewing 2014 </button> 2015 <span> 2016 By submitting your contact details you agree that a Licensed Real Estate Professional from Highline Residential may call/text/email you about your inquiry, which may involve use of automated means. This Web site has no affiliation to the building, developer, or management company. 2017 </span> 2018 </div> 2019</form> 2020
2021<script> 2022 function submitForm_schedule_viewing_popup(event){ 2023 event.preventDefault() 2024 validate_form_schedule_viewing_popup() 2025 } 2026 function resetSubmitBtn_schedule_viewing_popup(btn){ 2027 if(document.getElementById('lead_form_schedule_viewing_popup').dataset.resetSubmitBtn == 'True'){ 2028 btn.value = 'Schedule viewing'; 2029 btn.disabled = false; 2030 } 2031 } 2032 function validate_form_schedule_viewing_popup() { 2033 let errors = 0; 2034 const errors_map = {}; 2035 2036 const name = document.getElementById('id_name_schedule_viewing_popup'); 2037 const email = document.getElementById('id_email_schedule_viewing_popup'); 2038 const phoneNumber = document.getElementById('id_phone_schedule_viewing_popup'); 2039 const interestedIn = document.getElementById('id_interested_in_schedule_viewing_popup'); 2040 //errors section 2041 const name_error = document.getElementById('name_error_schedule_viewing_popup'); 2042 const email_error = document.getElementById('email_error_schedule_viewing_popup'); 2043 const phone_error = document.getElementById('phone_error_schedule_viewing_popup'); 2044 const interested_in_error = document.getElementById('interested_in_error_schedule_viewing_popup'); 2045 // POSTHOG EXPERIMENT 2 START: stacking-plan-tile-redesign 2046 const form_schedule_viewing_popup = document.getElementById('form_source_schedule_viewing_popup'); 2047 // POSTHOG EXPERIMENT 2 END 2048 2049 if (name?.value?.length == 0) { 2050 name_error.style.display = 'block'; 2051 name_error.classList.add('errorlist'); 2052 errors_map.name_error = true; 2053 } 2054 else{ 2055 name_error.style.display = 'none'; 2056 name_error.classList.remove('errorlist'); 2057 errors_map.name_error = false; 2058 } 2059 if (email?.value?.length == 0 && phoneNumber?.value?.length == 0) { 2060 email_error.style.display = 'block'; 2061 email_error.classList.add('errorlist'); 2062 errors_map.email_error = true; 2063 } 2064 else{ 2065 email_error.style.display = 'none'; 2066 email_error.classList.remove('errorlist'); 2067 errors_map.email_error = false; 2068 } 2069 if (email?.value?.length == 0 && phoneNumber?.value?.length == 0) { 2070 phone_error.style.display = 'block'; 2071 phone_error.classList.add('errorlist'); 2072 errors_map.phone_error = true; 2073 } 2074 else{ 2075 phone_error.style.display = 'none'; 2076 phone_error.classList.remove('errorlist'); 2077 errors_map.phone_error = false; 2078 } 2079 if (interestedIn?.value?.length == 0) { 2080 interested_in_error.style.display = 'block'; 2081 interested_in_error.classList.add('errorlist'); 2082 errors_map.interested_in_error = true; 2083 } 2084 else{ 2085 interested_in_error.style.display = 'none'; 2086 interested_in_error.classList.remove('errorlist'); 2087 errors_map.interested_in_error = false; 2088 } 2089 errors = Object.values(errors_map).filter(error => error == true ).length; 2090 if (errors === 0) { 2091 const phonenumber = document.querySelector('input[name="phonenumber"]').value; 2092 if (phonenumber !== '') { 2093 document.querySelector('.main_content').insertAdjacentHTML('afterbegin', '<div class="messages"><ul class="message_list"><li class="info">Thank you for your inquiry, we will contact you shortly!</li></ul></div>'); 2094 document.getElementById('lead_form_schedule_viewing_popup').reset(); 2095 // close the popup if it's empty 2096 var myModal = new bootstrap.Modal(document.getElementById('myModal')); 2097 myModal.hide(); 2098 } 2099 else { 2100 const form = document.getElementById('lead_form_schedule_viewing_popup'); 2101 addGclidToForm_schedule_viewing_popup(form); 2102 const formData = new FormData(form); 2103 formData.append('floor_plan_count', window.floor_plan_count) 2104 formData.append('stacking_plan_count', window.stacking_plan_count) 2105 const actionType = ""; 2106 if (actionType) { 2107 formData.append('action', actionType.toLowerCase().replace(' ', '_')); 2108 } 2109 const serialized = new URLSearchParams(formData).toString(); 2110 const leadInquire = document.getElementById("lead_inquire_schedule_viewing_popup"); 2111 leadInquire.disabled = true; 2112 leadInquire.value = 'SENT'; 2113 2114 fetch("/leads/lead-form-building", { 2115 method: "POST", 2116 headers: { 2117 'Content-Type': 'application/x-www-form-urlencoded', 2118 'X-Requested-With': 'XMLHttpRequest' 2119 }, 2120 body: serialized 2121 }) 2122 .then(response => { 2123 if (response.ok) { 2124 return response.text(); 2125 } else { 2126 throw new Error('Network response was not ok.'); 2127 } 2128 }) 2129 .then(data => { 2130 data = JSON.parse(data); 2131 if (data === 'Success') { 2132 // POSTHOG EXPERIMENT 2 START: stacking-plan-tile-redesign 2133 if (form_schedule_viewing_popup && form_schedule_viewing_popup.value.toLowerCase() === 'stacking plan') { 2134 window.setTimeout(() => { 2135 window.posthog.capture('stacking_plan_lead_form_submitted', { 2136 variant: window.POSTHOG_EXPERIMENT_2_VARIANT, 2137 }); 2138 }, 5000); 2139 } 2140 // POSTHOG EXPERIMENT 2 END 2141 // FOR POSTHOG EXPERIMENT 1
2142 if(window.POSTHOG_EXPERIMENT_1_VARIANT) { 2143 window.posthog.capture('building_lead_form_submitted', { 2144 variant: window.POSTHOG_EXPERIMENT_1_VARIANT, 2145 }); 2146 } 2147 // POSTHOG EXPERIMENT 3 START: building-page-rental-waitlist-cta 2148 const form_join_waitlist_popup = document.getElementById('form_source_join_waitlist_popup'); 2149 if ( 2150 (form_schedule_viewing_popup && form_schedule_viewing_popup.value.toLowerCase() === 'active rentals') || 2151 (form_join_waitlist_popup && form_join_waitlist_popup.value.toLowerCase() === 'join waitlist') 2152 ) { 2153 window.posthog.capture('rental_waitlist_cta_form_submitted', { 2154 variant: window.POSTHOG_EXPERIMENT_3_VARIANT, 2155 }); 2156 } 2157 // POSTHOG EXPERIMENT 3 END 2158 window.enquiryFormSubmitted = true; 2159 gtag('event', 'building_detail_new', { 2160 category: 'inquiry', 2161 stacking_plan: window.stacking_plan_count ? 'yes' : 'no', 2162 floorplan: window.floor_plan_count ? 'yes' : 'no' 2163 }); 2164 gtag('event', 'Building Contact Form v2', {'category': 'Submitted Building Contact Form v2'}); 2165 gtag('event', 'conversion', {'send_to': 'AW-1016337316/zLS2CJu_jpQZEKSn0OQD'}); 2166 form.reset(); 2167 window.$notyf && window.$notyf.success('Your inquiry was successfully submitted.'); 2168 const errorContainer = document.querySelectorAll('.lead-gen-errors'); 2169 errorContainer.forEach(element => { 2170 element.remove(); 2171 }); 2172 resetSubmitBtn_schedule_viewing_popup(leadInquire); 2173 } else { 2174 // remove previous error message 2175 document.querySelector('.form_request_error_schedule_viewing_popup').innerHTML = ''; 2176 setTimeout(() => { 2177 document.querySelector('.form_request_error_schedule_viewing_popup').insertAdjacentHTML('afterbegin', '<div class="messages lead-gen-errors"><ul class="message_list"><li class="error">There was an error processing your request. Please try again later.</li></ul></div>'); 2178 }, 500); 2179 leadInquire.disabled = false; 2180 leadInquire.value = 'Schedule viewing'; 2181 } 2182 }) 2183 .catch(error => { 2184 // remove previous error message 2185 document.querySelector('.form_request_error_schedule_viewing_popup').innerHTML = ''; 2186 setTimeout(() => { 2187 document.querySelector('.form_request_error_schedule_viewing_popup').insertAdjacentHTML('afterbegin', '<div class="messages lead-gen-errors"><ul class="message_list"><li class="error">There was an error processing your request. Please try again later.</li></ul></div>'); 2188 }, 500); 2189 leadInquire.disabled = false; 2190 leadInquire.value = 'Schedule viewing'; 2191 console.error('There was a problem with the fetch operation:', error); 2192 }); 2193 } 2194 } 2195 } 2196 function addGclidToForm_schedule_viewing_popup(form) { 2197 const params = new URLSearchParams(window.location.search); 2198 // Check if 'gclid' is present in the URL query string 2199 if (params.has('gclid')) { 2200 // Create a hidden input element for gclid 2201 const gclidInput = document.createElement('input'); 2202 gclidInput.type = 'hidden'; 2203 gclidInput.name = 'gclid'; 2204 gclidInput.value = 'y'; 2205 form.appendChild(gclidInput); 2206 } 2207 } 2208</script>
2208 2209 2210 </div> 2211 </custom-dialog-component> 2212 <!-- POPUP FOR JOIN WAITLIST FORM --> 2213 <custom-dialog-component id="join-waitlist-popup" title="Join Waitlist" show-dialog="false" hide-footer="true" style="width: 34%"> 2214 <div id="lead_gen_form_container_join_waitlist_popup"> 2215 2216 2217<style> 2218 .agent-form select{ 2219 width: 100%; 2220 height: 33px; 2221 border-radius: 4px; 2222 border: 1px solid #000; 2223 } 2224 .agent-form input{ 2225 width: 100%; 2226 } 2227 .agent-form .inquiry-submit-btn { 2228 width: fit-content; 2229 background: black; 2230 color: white; 2231 border: none; 2232 } 2233 .agent-form textarea{ 2234 width: 100%; 2235 height: 150px; 2236 border: 1px solid #dcdcdc; 2237 } 2238 /* .agent-form label{ 2239 display: block; 2240 color: #302f2f; 2241 font-weight: normal; 2242 } */ 2243 .agent-form .form-row{ 2244 display: flex; 2245 flex-wrap: wrap; 2246 justify-content: space-between; 2247 } 2248 .form-column{ 2249 flex-basis: 48%; 2250 } 2251 .form_error_section{ 2252 display: none; 2253 width: auto 2254 } 2255 .errorlist{ 2256 background-color: #f15232; 2257 color: #fff; 2258 padding: 6px; 2259 width: auto; 2260 font-size: 12px; 2261 } 2262 .form_footer{ 2263 display: flex; 2264 flex-direction: column; 2265 row-gap: 8px; 2266 padding-top: 16px; 2267 } 2268 .form_footer span { 2269 font-size: 8px; 2270 color: #666; 2271 font-weight: normal; 2272 } 2273 input.cursor-pointer { 2274 cursor: pointer; 2275 } 2276 input.cursor-pointer:disabled { 2277 cursor: not-allowed; 2278 } 2279</style> 2280<form id="lead_form_join_waitlist_popup" data-reset-submit-btn="False" action="/leads/lead-form-building" method="POST" class="agent-form"> 2281 <input type="hidden" name="csrfmiddlewaretoken" value="diPwG2ZHUpkNmLXt28Kfkbmk9xX1nwHxOIpuUNcGfjDYpw8ozfn3uvPwzXTJNDPP"> 2282 2283 <div class="form-row"> 2284 <div class="form-column required"> 2285 <label for="id_name_join_waitlist_popup" class="input-label">Your name</label> 2286 <input id="id_name_join_waitlist_popup" maxlength="255" name="name" type="text" class="required input-small"> 2287 <div id="name_error_join_waitlist_popup" class="form_error_section">This field is required</div> 2288 </div> 2289 <div class="form-column required"> 2290 <label for="id_email_join_waitlist_popup" class="input-label">Your email</label> 2291 <input id="id_email_join_waitlist_popup" maxlength="255" name="email" type="email" class="required input-small"> 2292 <div id="email_error_join_waitlist_popup" class="form_error_section">Either email or phone number is required</div> 2293 </div> 2294</div> 2295<div class="form-row" style="margin-top: 16px;"> 2296 <div class="form-column required"> 2297 <label for="id_phone_join_waitlist_popup" class="input-label">Your phone</label> 2298 <input id="id_phone_join_waitlist_popup" maxlength="255" name="phone" type="tel" autocomplete="tel" class="input-small"> 2299 <div id="phone_error_join_waitlist_popup" class="form_error_section">Either phone number or email is required</div> 2300 </div> 2301 <div class="form-column required"> 2302 <label for="id_interested_in_join_waitlist_popup" class="input-label">Interested in</label> 2303 <select id="id_interested_in_join_waitlist_popup" name="interested_in" class="input-small"> 2304 <option disabled selected value> select an option </option> 2305 <option value="buying">Buying</option> 2306 <option value="renting">Renting</option> 2307 <option value="other">Other</option> 2308 </select> 2309 <div id="interested_in_error_join_waitlist_popup" class="form_error_section">This field is required</div> 2310 </div> 2311</div> 2312<span class="form_request_error_join_waitlist_popup"></span> 2313 2314 2315 <div style="opacity: 0; position: absolute; top: 0; left: 0; height: 0; width: 0; z-index: -1;"> 2316 <label>Please enter phonenumber 2317 <input type="text" name="phonenumber" value="" autocomplete="off" /> 2318 </label> 2319</div> 2320 2321 <div style="margin-top: 16px;"> 2322 <label for="id_notes_join_waitlist_popup" class="input-label">How can we help you?</label> 2323 <textarea id="id_notes_join_waitlist_popup" name="notes" class="text-area"></textarea> 2324 </div> 2325 <!-- Hidden input will be dynamically added if 'gclid' is present in URL query--> 2326 <input type="hidden" name="building_id" value="302919"> 2327 <input type="hidden" name="listing_id" id="form_listing_id_join_waitlist_popup" value="" class="form_listing"> 2328 <!-- add starting price hidden input --> 2329 <input type="hidden" name="starting_price" id="form_starting_price_join_waitlist_popup" value=""> 2330 <input type="hidden" name="source" id="form_source_join_waitlist_popup" value=""> 2331 <div class="form_footer"> 2332 <button class="cursor-pointer inquiry-submit-btn btn-dark building-detail-inquiry-btn" type="submit" id="lead_inquire_join_waitlist_popup" onclick="submitForm_join_waitlist_popup(event)"> 2333 Join Waitlist 2334 </button> 2335 <span> 2336 By submitting your contact details you agree that a Licensed Real Estate Professional from Highline Residential may call/text/email you about your inquiry, which may involve use of automated means. This Web site has no affiliation to the building, developer, or management company. 2337 </span> 2338 </div> 2339</form> 2340
2341<script> 2342 function submitForm_join_waitlist_popup(event){ 2343 event.preventDefault() 2344 validate_form_join_waitlist_popup() 2345 } 2346 function resetSubmitBtn_join_waitlist_popup(btn){ 2347 if(document.getElementById('lead_form_join_waitlist_popup').dataset.resetSubmitBtn == 'True'){ 2348 btn.value = 'Schedule viewing'; 2349 btn.disabled = false; 2350 } 2351 } 2352 function validate_form_join_waitlist_popup() { 2353 let errors = 0; 2354 const errors_map = {}; 2355 2356 const name = document.getElementById('id_name_join_waitlist_popup'); 2357 const email = document.getElementById('id_email_join_waitlist_popup'); 2358 const phoneNumber = document.getElementById('id_phone_join_waitlist_popup'); 2359 const interestedIn = document.getElementById('id_interested_in_join_waitlist_popup'); 2360 //errors section 2361 const name_error = document.getElementById('name_error_join_waitlist_popup'); 2362 const email_error = document.getElementById('email_error_join_waitlist_popup'); 2363 const phone_error = document.getElementById('phone_error_join_waitlist_popup'); 2364 const interested_in_error = document.getElementById('interested_in_error_join_waitlist_popup'); 2365 // POSTHOG EXPERIMENT 2 START: stacking-plan-tile-redesign 2366 const form_schedule_viewing_popup = document.getElementById('form_source_schedule_viewing_popup'); 2367 // POSTHOG EXPERIMENT 2 END 2368 2369 if (name?.value?.length == 0) { 2370 name_error.style.display = 'block'; 2371 name_error.classList.add('errorlist'); 2372 errors_map.name_error = true; 2373 } 2374 else{ 2375 name_error.style.display = 'none'; 2376 name_error.classList.remove('errorlist'); 2377 errors_map.name_error = false; 2378 } 2379 if (email?.value?.length == 0 && phoneNumber?.value?.length == 0) { 2380 email_error.style.display = 'block'; 2381 email_error.classList.add('errorlist'); 2382 errors_map.email_error = true; 2383 } 2384 else{ 2385 email_error.style.display = 'none'; 2386 email_error.classList.remove('errorlist'); 2387 errors_map.email_error = false; 2388 } 2389 if (email?.value?.length == 0 && phoneNumber?.value?.length == 0) { 2390 phone_error.style.display = 'block'; 2391 phone_error.classList.add('errorlist'); 2392 errors_map.phone_error = true; 2393 } 2394 else{ 2395 phone_error.style.display = 'none'; 2396 phone_error.classList.remove('errorlist'); 2397 errors_map.phone_error = false; 2398 } 2399 if (interestedIn?.value?.length == 0) { 2400 interested_in_error.style.display = 'block'; 2401 interested_in_error.classList.add('errorlist'); 2402 errors_map.interested_in_error = true; 2403 } 2404 else{ 2405 interested_in_error.style.display = 'none'; 2406 interested_in_error.classList.remove('errorlist'); 2407 errors_map.interested_in_error = false; 2408 } 2409 errors = Object.values(errors_map).filter(error => error == true ).length; 2410 if (errors === 0) { 2411 const phonenumber = document.querySelector('input[name="phonenumber"]').value; 2412 if (phonenumber !== '') { 2413 document.querySelector('.main_content').insertAdjacentHTML('afterbegin', '<div class="messages"><ul class="message_list"><li class="info">Thank you for your inquiry, we will contact you shortly!</li></ul></div>'); 2414 document.getElementById('lead_form_join_waitlist_popup').reset(); 2415 // close the popup if it's empty 2416 var myModal = new bootstrap.Modal(document.getElementById('myModal')); 2417 myModal.hide(); 2418 } 2419 else { 2420 const form = document.getElementById('lead_form_join_waitlist_popup'); 2421 addGclidToForm_join_waitlist_popup(form); 2422 const formData = new FormData(form); 2423 formData.append('floor_plan_count', window.floor_plan_count) 2424 formData.append('stacking_plan_count', window.stacking_plan_count) 2425 const actionType = "Join Waitlist"; 2426 if (actionType) { 2427 formData.append('action', actionType.toLowerCase().replace(' ', '_')); 2428 } 2429 const serialized = new URLSearchParams(formData).toString(); 2430 const leadInquire = document.getElementById("lead_inquire_join_waitlist_popup"); 2431 leadInquire.disabled = true; 2432 leadInquire.value = 'SENT'; 2433 2434 fetch("/leads/lead-form-building", { 2435 method: "POST", 2436 headers: { 2437 'Content-Type': 'application/x-www-form-urlencoded', 2438 'X-Requested-With': 'XMLHttpRequest' 2439 }, 2440 body: serialized 2441 }) 2442 .then(response => { 2443 if (response.ok) { 2444 return response.text(); 2445 } else { 2446 throw new Error('Network response was not ok.'); 2447 } 2448 }) 2449 .then(data => { 2450 data = JSON.parse(data); 2451 if (data === 'Success') { 2452 // POSTHOG EXPERIMENT 2 START: stacking-plan-tile-redesign 2453 if (form_schedule_viewing_popup && form_schedule_viewing_popup.value.toLowerCase() === 'stacking plan') { 2454 window.setTimeout(() => { 2455 window.posthog.capture('stacking_plan_lead_form_submitted', { 2456 variant: window.POSTHOG_EXPERIMENT_2_VARIANT, 2457 }); 2458 }, 5000); 2459 } 2460 // POSTHOG EXPERIMENT 2 END 2461 // FOR POSTHOG EXPERIMENT 1
2462 if(window.POSTHOG_EXPERIMENT_1_VARIANT) { 2463 window.posthog.capture('building_lead_form_submitted', { 2464 variant: window.POSTHOG_EXPERIMENT_1_VARIANT, 2465 }); 2466 } 2467 // POSTHOG EXPERIMENT 3 START: building-page-rental-waitlist-cta 2468 const form_join_waitlist_popup = document.getElementById('form_source_join_waitlist_popup'); 2469 if ( 2470 (form_schedule_viewing_popup && form_schedule_viewing_popup.value.toLowerCase() === 'active rentals') || 2471 (form_join_waitlist_popup && form_join_waitlist_popup.value.toLowerCase() === 'join waitlist') 2472 ) { 2473 window.posthog.capture('rental_waitlist_cta_form_submitted', { 2474 variant: window.POSTHOG_EXPERIMENT_3_VARIANT, 2475 }); 2476 } 2477 // POSTHOG EXPERIMENT 3 END 2478 window.enquiryFormSubmitted = true; 2479 gtag('event', 'building_detail_new', { 2480 category: 'inquiry', 2481 stacking_plan: window.stacking_plan_count ? 'yes' : 'no', 2482 floorplan: window.floor_plan_count ? 'yes' : 'no' 2483 }); 2484 gtag('event', 'Building Contact Form v2', {'category': 'Submitted Building Contact Form v2'}); 2485 gtag('event', 'conversion', {'send_to': 'AW-1016337316/zLS2CJu_jpQZEKSn0OQD'}); 2486 form.reset(); 2487 window.$notyf && window.$notyf.success('Your inquiry was successfully submitted.'); 2488 const errorContainer = document.querySelectorAll('.lead-gen-errors'); 2489 errorContainer.forEach(element => { 2490 element.remove(); 2491 }); 2492 resetSubmitBtn_join_waitlist_popup(leadInquire); 2493 } else { 2494 // remove previous error message 2495 document.querySelector('.form_request_error_join_waitlist_popup').innerHTML = ''; 2496 setTimeout(() => { 2497 document.querySelector('.form_request_error_join_waitlist_popup').insertAdjacentHTML('afterbegin', '<div class="messages lead-gen-errors"><ul class="message_list"><li class="error">There was an error processing your request. Please try again later.</li></ul></div>'); 2498 }, 500); 2499 leadInquire.disabled = false; 2500 leadInquire.value = 'Schedule viewing'; 2501 } 2502 }) 2503 .catch(error => { 2504 // remove previous error message 2505 document.querySelector('.form_request_error_join_waitlist_popup').innerHTML = ''; 2506 setTimeout(() => { 2507 document.querySelector('.form_request_error_join_waitlist_popup').insertAdjacentHTML('afterbegin', '<div class="messages lead-gen-errors"><ul class="message_list"><li class="error">There was an error processing your request. Please try again later.</li></ul></div>'); 2508 }, 500); 2509 leadInquire.disabled = false; 2510 leadInquire.value = 'Schedule viewing'; 2511 console.error('There was a problem with the fetch operation:', error); 2512 }); 2513 } 2514 } 2515 } 2516 function addGclidToForm_join_waitlist_popup(form) { 2517 const params = new URLSearchParams(window.location.search); 2518 // Check if 'gclid' is present in the URL query string 2519 if (params.has('gclid')) { 2520 // Create a hidden input element for gclid 2521 const gclidInput = document.createElement('input'); 2522 gclidInput.type = 'hidden'; 2523 gclidInput.name = 'gclid'; 2524 gclidInput.value = 'y'; 2525 form.appendChild(gclidInput); 2526 } 2527 } 2528</script>
2528 2529 2530 </div> 2531 </custom-dialog-component> 2532 </div> 2533 </div> 2534 </div> 2535 2536 </main> 2537 <footer> 2538 2539<nav class="lazy-bg flex flex-col min-h-[360px] bg-cover bg-no-repeat w-full px-16 py-20 mobileMedium:px-8" 2540 style="background-color: black" data-bg-url="/assets/v2/ui/images/general/black-gradient.avif"> 2541 <!-- FOOTER TOP --> 2542 <div class="flex justify-between flex-wrap gap-y-5 tabletMedium:flex-col"> 2543 <!-- HL LINKS --> 2544 <div class="text-xs text-white "> 2545 <span class="text-xs font-bold">Highline Residential</span> 2546 <div class="flex mt-3 gap-y-4 mobileSmall:flex-wrap"> 2547 <div class="flex flex-col min-w-52 mobileMedium:min-w-36"> 2548 <a href="https://www.hlres.com/about-us" title="About Highline Residential" 2549 class="hover:text-app-blue hover:underline">About</a> 2550 <a href="https://www.hlres.com/team" class="hover:text-app-blue hover:underline">Team</a> 2551 <a href="https://www.hlres.com/our-services" title="Highline Residential Services" 2552 class="hover:text-app-blue hover:underline">Services</a>
2553 <a href="https://www.hlres.com/calculators" 2554 title="Highline Residential NYC Calculators - Mortgage and Closing Cost" 2555 class="hover:text-app-blue hover:underline">Calculators</a> 2556 </div> 2557 <div class="flex flex-col min-w-52 mobileMedium:min-w-36"> 2558 <a href="https://www.hlres.com/nyc-homebuyers-guide" 2559 title="Highline Residential NYC Home Buyer's Guide" class="hover:text-app-blue hover:underline">NYC 2560 Homebuyer's Guide</a> 2561 <a href="https://www.hlres.com/find-roommates-nyc" title="Find Roommates NYC" 2562 class="hover:text-app-blue hover:underline">Find Roommates NYC</a> 2563 <a href="https://www.hlres.com/blog" title="Highline Residential Blog" 2564 class="hover:text-app-blue hover:underline">Blog</a> 2565 <a href="https://www.hlres.com/contact" title="Contact Highline Residential" 2566 class="hover:text-app-blue hover:underline">Contact Us</a> 2567 </div> 2568 </div> 2569 </div> 2570 <!-- OFFICE LOCATIONS --> 2571 <div class="text-xs text-white "> 2572 <span class="text-xs font-bold">Office Locations</span> 2573 <div class="flex mt-3 gap-y-4 mobileLarge:flex-wrap"> 2574 <ul class="min-w-52 mobileMedium:min-w-36"> 2575 <li>MANHATTAN</li> 2576 <li>10 West 37th, 4th Fl</li> 2577 <li>New York, NY 10018 </li> 2578 <li>212.960.8740</li> 2579 </ul> 2580 <ul class="min-w-52 mobileMedium:min-w-36"> 2581 <li>BROOKLYN</li> 2582 <li>144 Decatur St</li> 2583 <li>Brooklyn, NY 11233</li> 2584 <li>718.484.0880</li> 2585 </ul> 2586 </div> 2587 </div> 2588 </div> 2589 <hr class="h-0 border border-solid border-red-600 mt-8"> 2590 <!-- FOOTER BOTTOM --> 2591 <div class="flex gap-x-32 gap-y-12 mt-8 mobileLarge:flex-wrap"> 2592 <img src="/assets/v2/ui/images/logos/HL-white-logo.svg" class="h-20 w-20 object-contain" 2593 alt="HL logo" loading="lazy"> 2594 <div class="flex flex-col gap-y-4"> 2595 <div class="flex gap-x-5 "> 2596 2597 <a href="https://www.facebook.com/HighlineResidential" title="Highline Residential on Facebook" 2598 class="img-cicrle w-6 h-6 bg-white flex items-center justify-center cursor-pointer"><img 2599 src="/assets/v2/ui/images/social-media/facebook.svg" alt="facebook icon" loading="lazy"></a> 2600 2601 2602 <a href="https://www.instagram.com/hlresidential/" title="Highline Residential on Instagram" 2603 class="img-cicrle w-6 h-6 bg-white flex items-center justify-center cursor-pointer"> <img 2604 src="/assets/v2/ui/images/social-media/instagram.svg" alt="instagram icon" loading="lazy"></a> 2605 2606 2607 <a href="https://www.youtube.com/@nycrealestateagents" title="Highline Residential on Youtube" 2608 class="img-cicrle w-6 h-6 bg-white flex items-center justify-center cursor-pointer"><img 2609 src="/assets/v2/ui/images/social-media/youtube.svg" alt="youtube icon" loading="lazy"></a> 2610 2611 </div> 2612 <div class="text-xs text-white flex flex-wrap copyright-container gap-3"> 2613 <div class="flex flex-col"> 2614 <!-- COPYRIGHT --> 2615 <span>Copyright© 2026 Highline Residential LLC. All rights reserved. Created in NYC.</span> 2616 <span>Highline Residential® is a registered trademark of Highline Residential, LLC.</span> 2617 <span>RLS Data display by Highline Residential. Some Listings courtesy of OneKey MLS as distributed by MLS GRID.</span> 2618 </div> 2619 <div class="flex flex-wrap flex-1 gap-x-1" style="align-self: baseline;"> 2620 <a title="Highline Residential Terms and Conditions"
2621 href="https://www.hlres.com/terms-conditions" 2622 class="hover:text-app-blue hover:underline">Terms & 2623 Conditions</a> | <a title="Highline Residential Privacy Policy" 2624 href="https://www.hlres.com/privacy-policy" 2625 class=" hover:text-app-blue hover:underline">Privacy Policy </a> | <a 2626 title="Highline Residential DMCA Notice" href="https://www.hlres.com/dmca-notice" 2627 class=" hover:text-app-blue hover:underline">DMCA 2628 Notice</a> | <a href="https://www.dos.ny.gov/licensing/docs/FairHousingNotice_new.pdf" 2629 title="Highline Residential Fair Housing Notice" class=" hover:text-app-blue hover:underline">Fair 2630 Housing Notice | </a><a href="https://www.hlres.com/buyer-prerequisites" class=" hover:text-app-blue hover:underline">Standardized Operating Procedures</a> 2631 </div> 2632 </div> 2633 </div> 2634 </div> 2635 <hr class="h-0 border border-solid border-red-600 mt-8"> 2636</nav> 2637 2638 </footer> 2639 </div> 2640 </div> 2641 <link rel="stylesheet" href="/assets/v2/vendor/swiper/swiper.css?v=2026-09-25_17-04"> 2642 <link rel="stylesheet" href="/assets/v2/ui/general-css/primevue.css?v=2026-09-25_17-04"> 2643 <link rel="stylesheet" href="/assets/v2/ui/general-css/context-menu.css?v=2026-09-25_17-04"> 2644 <link rel="stylesheet" href="/assets/v2/vue-components/ag-grid/ag-grid-custom.css?v=2026-09-25_17-04"> 2645 2646 <link rel="stylesheet" href="/assets/v2/ui/general-css/subway.css" /> 2647 <link rel="stylesheet" href="/assets/v2/vue-components/dialog/style.css?v=2026-09-25_17-04"> 2648 2649
2649<script src="/assets/v2/custom-components/search-autocomplete.js?v=2026-09-25_17-04" defer></script>
2649 2650
2650<script type="module" src="/assets/v2/vendor/notyf.js?v=2026-09-25_17-04" defer></script>
2650 2651
2651<script src="https://cdn.jsdelivr.net/npm/swiper/swiper-bundle.min.js" defer></script>
2651 2652
2652<script type="module" src="/assets/v2/vendor/hint.js?v=2026-09-25_17-04" defer></script>
2652 2653
2653<script src="/assets/v2/custom-components/dialog/index.js?v=2026-09-25_17-04" defer></script>
2653 2654
2654<script> 2655 document.addEventListener('DOMContentLoaded' , () => { 2656 window.fixedAgGridHeader && window.addEventListener('scroll', window.fixAgGridHeader); 2657 }) 2658 </script>
2658 2659
2659<script src="/assets/feedback/js/feedback_index.js?v=2026-09-25_17-04"></script>
2659 2660 2661 <!-- SCRIPT FOR VUE APP --> 2662
2662<script type="module" src="/assets/v2/vue-components/dialog/index.js?v=2026-09-25_17-04"></script>
2662 2663 <!-- SCRIPT FOR Charts --> 2664
2664<script> 2665 document.addEventListener("DOMContentLoaded", function() { 2666 // change Schedule Viewing text according to condition 2667 if(coming_soon){ 2668 const submit_form_btn = document.getElementById('lead_inquire'); 2669 const submit_form_btn_popup = document.getElementById('lead_inquire_popup'); 2670 if(submit_form_btn) submit_form_btn.value = 'Stay Updated'; 2671 if(submit_form_btn_popup) submit_form_btn_popup.value = 'Stay Updated'; 2672 } 2673 return; //added return for now, remove it when Building Insights enabled 2674 2675 }) 2676 </script>
2676 2677
2677<script type="module"> 2678 import { highlightContainer } from "/assets/v2/js/utils/index.js?v=2026-09-25_17-04"; 2679 import { js_loader, CSS_loader } from "/assets/v2/js/utils/script-loader.js?v=2026-09-25_17-04"; 2680 window.highlightContainer = highlightContainer; 2681 renderVueApp(); 2682 function scrollToGridTab(){ 2683 const urlParams = new URLSearchParams(window.location.search); 2684 // const action = urlParams.get('action'); 2685 const activeTab = urlParams.get('tab'); 2686 // const listingId = urlParams.get('listing_id'); 2687 if (activeTab) { 2688 return activeTab; 2689 } 2690 return false; 2691 } 2692 function checkIfHashInURL(hash) { 2693 return window.location.hash; 2694 } 2695 2696 function renderVueApp() { 2697 document.addEventListener("DOMContentLoaded", function () { 2698 const targetDiv = document.getElementById('building-detail-vue'); 2699 2700 const loadScriptsAndStyles = (config = {}) => { 2701 2702 CSS_loader({ 2703 href: "/assets/v2/pages/building_detail/dist-modern/build/build.css?v=2026-09-25_17-04", 2704 }); 2705 // Load modern JS for browsers that support ES modules 2706 if ('noModule' in HTMLScriptElement.prototype) { 2707 js_loader({ 2708 type: 'module', 2709 onload_callback: () => { 2710 adjustAnchorsScrollMargin(); 2711 config.scrollTo && scrollToSection(config.scrollTo); 2712 }, 2713 src: "/assets/v2/pages/building_detail/dist-modern/build/build.js?v=2026-09-25_17-04", 2714 }); 2715 } else { 2716 // Load legacy JS for browsers that do not support ES modules 2717 js_loader({ 2718 type: 'module', 2719 onload_callback: () => { 2720 adjustAnchorsScrollMargin(); 2721 config.scrollTo && scrollToSection(config.scrollTo); 2722 }, 2723 src: "/assets/v2/pages/building_detail/dist-legacy/build/build.js?v=2026-09-25_17-04", 2724 }); 2725 } 2726 // Unobserve after loading scripts 2727 observer.disconnect(); 2728 }; 2729 2730 const observer = new IntersectionObserver((entries) => { 2731 if (entries[0].isIntersecting) { 2732 loadScriptsAndStyles(); 2733 } 2734 }, { 2735 root: null, // Observe within the viewport 2736 rootMargin: '250px', 2737 threshold: 0 // Trigger when 10% of the div is visible 2738 }); 2739 2740 observer.observe(targetDiv); 2741 const tabName = scrollToGridTab(); // if there are some params (tab="ACTIVE_RENTALS") in URL, then we will load the app eagerly without waiting for user scroll 2742 const sectionId = checkIfHashInURL() //check if there is any hash in URL: #availability, then scroll to that section 2743 if(typeof tabName === 'string' || sectionId.length){ 2744 observer.disconnect(); 2745 loadScriptsAndStyles({ 2746 scrollTo: typeof tabName === 'string' ? 'availability' : sectionId 2747 }); 2748 } 2749 }); 2750 } 2751 // this function fix anchors (scroll) issue with sticky header 2752 function adjustAnchorsScrollMargin() { 2753 const headerElement = 2754 document.getElementsByClassName('header-container')[0].offsetHeight > 0 2755 ? document.getElementsByClassName('header-container') 2756 : document.getElementsByClassName('mobile-screen-header'); 2757 if (headerElement) { 2758 const headerHeight = headerElement[0].offsetHeight; 2759 const anchors = [ 2760 'building', 2761 'availability', 2762 'residences', 2763 'activity', 2764 'floorplans', 2765 'neighborhood', 2766 'inquiry-form', 2767 ];
2768 anchors.forEach((anchor) => { 2769 const element = document.getElementById(anchor); 2770 if (element) { 2771 element.style.scrollMarginTop = headerHeight + 'px'; 2772 } 2773 }); 2774 } 2775 } 2776 2777 // EXIT INTENT POPUP FUNCTIONALITY 2778 const body = document.querySelector('body'); 2779 window.emailSubscribed = false; 2780 window.enquiryFormSubmitted = false; 2781 window.popupEnquiryFormSubmitted = false; 2782 window.isPopupPreviouslyOpened = false; 2783 body.addEventListener('mouseleave', openExitIntentPopup); 2784 2785 function openExitIntentPopup(event) { 2786 let mouseY; 2787 mouseY = event.clientY; 2788 if (mouseY < 0 && event.buttons !== 1) { 2789 if (!window.isPopupPreviouslyOpened && !window.enquiryFormSubmitted && !window.popupEnquiryFormSubmitted && !window.emailSubscribed) { 2790 window.isPopupPreviouslyOpened = true; 2791 showCustomDialog('save-subscriber-dialog') 2792 } 2793 } 2794 } 2795 2796 window.addEventListener('load', () => { 2797 adjustAnchorsScrollMargin(); 2798 window.googleAnalytics('Building page loaded', window.building_address); 2799 window.addInquirySource(); 2800 2801 const swiperContainerId = '.new-developments-slider'; 2802 const swiper = new Swiper(swiperContainerId, { 2803 ...window.SWIPER_OPTIONS, 2804 on: { 2805 // for accessibility related stuff 2806 slideChange: function () { 2807 const currentSlide = this.realIndex + 1; // Swiper's real index 2808 const sliderElement = document.querySelector(swiperContainerId); 2809 if (sliderElement) sliderElement.setAttribute('aria-valuenow', currentSlide); 2810 } 2811 } 2812 }); 2813 }) 2814 </script>
2814 2815 2816 <!-- Google tag (gtag.js) -- GA4 -->
vendor: 64 bytes, lines 2816-2817
2816 2817<script async src="https://www.googletagmanager.com/gtag/js?id=
2817G-GZ1PPF57FW
vendor: 18 bytes, line 2817
2817" defer></script>
2818<script> 2819
vendor: 134 bytes, lines 2819-2823
2819window.dataLayer = window.dataLayer || []; 2820 function gtag(){dataLayer.push(arguments);} 2821 gtag('js', new Date()); 2822 2823 gtag('config', '
2823G-GZ1PPF57FW
vendor: 34 bytes, line 2823
2823', { 'dimension1': 'External' });
2824</script>
2824 2825 2826<!-- Global site tag (gtag.js) - Google Ads: 1016337316 -->
vendor: 64 bytes, lines 2826-2827
2826 2827<script async src="https://www.googletagmanager.com/gtag/js?id=
2827AW-1016337316
vendor: 18 bytes, line 2827
2827" defer></script>
2828<script>
vendor: 127 bytes, line 2828
2828window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', '
2828AW-1016337316
vendor: 4 bytes, line 2828
2828');
2829</script>
2829 2830 2831<!-- Start VWO Async SmartCode --> 2832<!-- <link rel="preconnect" href="https://dev.visualwebsiteoptimizer.com" />
2833<script type='text/javascript' id='vwoCode'> 2834window._vwo_code || (function() { 2835var account_id=858510, 2836version=2.0, 2837settings_tolerance=2000, 2838hide_element='body', 2839hide_element_style = 'opacity:0 !important;filter:alpha(opacity=0) !important;background:none !important', 2840/* DO NOT EDIT BELOW THIS LINE */ 2841f=false,w=window,d=document,v=d.querySelector('#vwoCode'),cK='_vwo_'+account_id+'_settings',cc={};try{var c=JSON.parse(localStorage.getItem('_vwo_'+account_id+'_config'));cc=c&&typeof c==='object'?c:{}}catch(e){}var stT=cc.stT==='session'?w.sessionStorage:w.localStorage;code={use_existing_jquery:function(){return typeof use_existing_jquery!=='undefined'?use_existing_jquery:undefined},library_tolerance:function(){return typeof library_tolerance!=='undefined'?library_tolerance:undefined},settings_tolerance:function(){return cc.sT||settings_tolerance},hide_element_style:function(){return'{'+(cc.hES||hide_element_style)+'}'},hide_element:function(){return typeof cc.hE==='string'?cc.hE:hide_element},getVersion:function(){return version},finish:function(){if(!f){f=true;var e=d.getElementById('_vis_opt_path_hides');if(e)e.parentNode.removeChild(e)}},finished:function(){return f},load:function(e){var t=this.getSettings(),n=d.createElement('script'),i=this;if(t){n.textContent=t;d.getElementsByTagName('head')[0].appendChild(n);if(!w.VWO||VWO.caE){stT.removeItem(cK);i.load(e)}}else{n.fetchPriority='high';n.src=e;n.type='text/javascript';n.onerror=function(){_vwo_code.finish()};d.getElementsByTagName('head')[0].appendChild(n)}},getSettings:function(){try{var e=stT.getItem(cK);if(!e){return}e=JSON.parse(e);if(Date.now()>e.e){stT.removeItem(cK);return}return e.s}catch(e){return}},init:function(){if(d.URL.indexOf('__vwo_disable__')>-1)return;var e=this.settings_tolerance();w._vwo_settings_timer=setTimeout(function(){_vwo_code.finish();stT.removeItem(cK)},e);var t=d.currentScript,n=d.createElement('style'),i=this.hide_element(),r=t&&!t.async&&i?i+this.hide_element_style():'',c=d.getElementsByTagName('head')[0];n.setAttribute('id','_vis_opt_path_hides');v&&n.setAttribute('nonce',v.nonce);n.setAttribute('type','text/css');if(n.styleSheet)n.styleSheet.cssText=r;else n.appendChild(d.createTextNode(r));c.appendChild(n);this.load('https://dev.visualwebsiteoptimizer.com/j.php?a='+account_id+'&u='+encodeURIComponent(d.URL)+'&vn='+version)}};w._vwo_code=code;code.init();})(); 2842</script>
2842 --> 2843<!-- End VWO Async SmartCode --> 2844 2845
2846<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"eeea0216409149f5a9abdde194449a06","r":1,"spa":2}' crossorigin="anonymous"></script>
2846 2847</body> 2848 2849</html> 2850
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.