1<!DOCTYPE html> 2<!--[if IE 9 ]><html class="ie9" lang="en"> <![endif]--> 3<!--[if (gt IE 9)|!(IE)]><!--> <html class="" lang="en"> <!--<![endif]--> 4 <head> 5 <meta charset="utf-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 8 9 10 <meta name="google-site-verification" content="5Mojt8oxVXZ7MRlQJMQSF12YlprOluZ5Ehp5APypX8c" /> 11 12 13 14 <link rel="canonical" href="https://www.oshermd.com/services" /> 15 16 <link rel="shortcut icon" href="https://sa1s3optim.patientpop.com/assets/images/patientpop/favicon.ico" type="image/x-icon"> 17 <link rel="icon" href="https://sa1s3optim.patientpop.com/assets/images/patientpop/favicon.ico" type="image/x-icon"> 18 19 <title>Services - Annette Osher, MD: Internal Medicine Physician Upper East Side New York, NY</title> 20 <meta name="description" content="Trusted Internal Medicine Physician serving Upper East Side New York, NY. Contact us at 917-725-2311 or visit us at 1001 5th Avenue, 1N, New York, NY 10028" /> 21 22 <link rel="stylesheet" href=https://www.oshermd.com/css/practice.atomic.application.css> 23 24 <style> 25.primary-fg{ 26 color:#F40009 !important; 27} 28.primary-bg{ 29 background:#F40009 !important; 30} 31.flex-active{ 32 background:#000 !important; 33} 34.primary-border{ 35 border-color:#F40009 !important; 36} 37.secondary-fg{ 38 color:#002366 !important; 39} 40.secondary-bg{ 41 background:#002366 !important; 42} 43.secondary-border{ 44 border-color:#002366 !important; 45} 46 47section.providers-landing .provider-list-filters .chck-input + label:before, 48#book-online .left ul li input[type="radio"]:checked + label:before{ 49 background-color: #F40009 !important; 50} 51section.testimonials-reviews .paginator ul li a{ 52 color:#1ca8dd; 53} 54section.testimonials-reviews .paginator ul li.active span{ 55 background:#1ca8dd; 56 color:#fff; 57} 58.slider-frame ol li.active input, 59section.blog-hero .row .slider-frame ol li.active input{ 60 background:#656F72; 61} 62 /* latin-ext */ 63 @font-face { 64 font-family: 'Raleway Extra Bold'; 65 font-display: swap; 66 font-style: normal; 67 font-weight: 800; 68 src: local('Raleway ExtraBold'), local('Raleway-ExtraBold'), url(https://fonts.gstatic.com/s/raleway/v11/QoPu455RxV2raYSIFXAMBTG_owQUHpNX9rkRdZ1lhPA.woff) format('woff'); 69 unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; 70 } 71 /* latin */ 72 @font-face { 73 font-family: 'Raleway Extra Bold'; 74 font-display: swap; 75 font-style: normal; 76 font-weight: 800; 77 src: local('Raleway ExtraBold'), local('Raleway-ExtraBold'), url(https://fonts.gstatic.com/s/raleway/v11/1ImRNPx4870-D9a1EBUdPL3hpw3pgy2gAi-Ip7WPMi0.woff) format('woff'); 78 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; 79 } 80.primary-font{ 81font-family: 'Raleway Extra Bold', sans-serif !important; 82} 83 84 /* latin-ext */ 85 @font-face { 86 font-family: 'Raleway Medium'; 87 font-display: swap; 88 font-style: normal; 89 font-weight: 500; 90 src: local('Raleway Medium'), local('Raleway-Medium'), url(https://fonts.gstatic.com/s/raleway/v11/Li18TEFObx_yGdzKDoI_cgsYbbCjybiHxArTLjt7FRU.woff2) format('woff2'); 91 unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; 92 } 93 /* latin */ 94 @font-face { 95 font-family: 'Raleway Medium'; 96 font-display: swap; 97 font-style: normal; 98 font-weight: 500; 99 src: local('Raleway Medium'), local('Raleway-Medium'), url(https://fonts.gstatic.com/s/raleway/v11/CcKI4k9un7TZVWzRVT-T8wzyDMXhdD8sAj6OAJTFsBI.woff2) format('woff2'); 100 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; 101 } 102.secondary-font{ 103font-family: 'Raleway Medium', sans-serif !important; 104} 105 106 body { 107 margin-top: 0; 108} 109body.nav-open{ 110 overflow:hidden; 111} 112body.nav-open section{ 113 position:relative; 114 z-index:0; 115} 116body.nav-open header.header-4 button.nav-slider{ 117 position:fixed; 118} 119body.nav-open .header-backdrop{ 120 display:block; 121 position:fixed; 122 top:0; 123 right:0; 124 bottom:0; 125 left:0; 126 z-index:1; 127 background:rgba(0,0,0,0.3); 128} 129header.header.header-4 nav .nav-full ul li:hover:after{ 130 background-color: #ffffff; 131} 132dummy-header-class{ 133 color: white; 134} 135header.header-4.sticky.scrolling-color{ 136 background-color: #F40009 !important; 137} 138header.header-4.sticky.scrolling.scrolling-color{ 139-webkit-transition: background-color 0.2s ease; 140-moz-transition: background-color 0.2s ease; 141-ms-transition: background-color 0.2s ease; 142-o-transition: background-color 0.2s ease; 143transition: background-color 0.2s ease; 144} 145 .header.header.header-4 nav .nav-full ul li.drop .dropdownContain{ 146 background-color: transparent !important; 147 } 148 .header.header.header-4 nav .nav-full ul li.drop .dropdownContain .dropOut ul li{ 149 background: rgba(244, 0, 9, 1) !important; 150 } 151 152#book-online .right #calendar-block ul li ol li div.slots a{ 153 background: #F40009; 154} 155#book-online .right #calendar-block ul li ol li div.slots a:hover, 156#book-online .right #calendar-block ul li ol li div.slots a.checked{ 157 background: #F40009; 158 opacity:0.75; 159} 160#book-online .right #calendar-block ul li ol li.scroller{ 161 background: #002366; 162} 163#book-online .right #calendar-block ul li ol li.scroller:hover{ 164 background: #002366; 165 opacity:0.75; 166} 167 168.a-bordercolor3 { 169 170 border-color: #ffffff !important; 171 172}
173.a-height150px { 174 175 176 height: 150px !important; 177 178} 179.a-borderradius10pct { 180 181 182 border-radius: 10% !important; 183 184} 185.a-borderwidth1px { 186 187 188 border-width: 1px !important; 189 190} 191.a-backgroundcolor3 { 192 193 background-color: #ffffff !important; 194 195} 196.a-opacity1 { 197 198 199 opacity: 1 !important; 200 201} 202.a-margin10px { 203 204 205 margin: 10px !important; 206 207} 208.a-opacity2 { 209 210 211 opacity: .2 !important; 212 213} 214.a-backgroundcolor2 { 215 216 background-color: #424242 !important; 217 218} 219.a-width50pct { 220 221 222 width: 50% !important; 223 224} 225.a-left0pct { 226 227 228 left: 0% !important; 229 230} 231.a-marginleft0pct { 232 233 234 margin-left: 0% !important; 235 236} 237.a-paddingtop5pct { 238 239 240 padding-top: 5% !important; 241 242} 243.a-paddingright5pct { 244 245 246 padding-right: 5% !important; 247 248} 249.a-paddingbottom5pct { 250 251 252 padding-bottom: 5% !important; 253 254} 255.a-paddingleft5pct { 256 257 258 padding-left: 5% !important; 259 260} 261.a-color3 { 262 263 color: #ffffff !important; 264 265} 266.a-textaligncenter { 267 268 269 text-align: center !important; 270 271} 272.a-fontsize37px { 273 274 275 font-size: 37px !important; 276 277} 278.a-letterspacing0px { 279 280 281 letter-spacing: 0px !important; 282 283} 284.a-texttransformnone { 285 286 287 text-transform: none !important; 288 289} 290.a-textshadownone { 291 292 293 text-shadow: none !important; 294 295} 296.a-fontsize21px { 297 298 299 font-size: 21px !important; 300 301} 302.a-lineheight110pct { 303 304 305 line-height: 110% !important; 306 307} 308.a-backgroundcolor1 { 309 310 background-color: #002366 !important; 311 312} 313.a-bordercolor1 { 314 315 border-color: #002366 !important; 316 317} 318.a-borderradius3px { 319 320 321 border-radius: 3px !important; 322 323} 324.a-width164px { 325 326 327 width: 164px !important; 328 329} 330.a-height46px { 331 332 333 height: 46px !important; 334 335} 336.a-fontsize12px { 337 338 339 font-size: 12px !important; 340 341} 342.a-margin4px { 343 344 345 margin: 4px !important; 346 347} 348.a-texttransformuppercase { 349 350 351 text-transform: uppercase !important; 352 353} 354.a-backgroundcolor0 { 355 356 background-color: #F40009 !important; 357 358} 359.a-bordercolor0 { 360 361 border-color: #F40009 !important; 362 363} 364.a-bordertopwidth0px { 365 366 367 border-top-width: 0px !important; 368 369} 370.a-borderbottomwidth0px { 371 372 373 border-bottom-width: 0px !important; 374 375} 376.a-borderradius0px { 377 378 379 border-radius: 0px !important; 380 381} 382.a-maxwidth940px { 383 384 385 max-width: 940px !important; 386 387} 388.a-paddingtop60px { 389 390 391 padding-top: 60px !important; 392 393} 394.a-paddingbottom60px { 395 396 397 padding-bottom: 60px !important; 398 399} 400.a-fontsize26px { 401 402 403 font-size: 26px !important; 404 405} 406.a-fontsize22px { 407 408 409 font-size: 22px !important; 410 411} 412.a-height56 { 413 414 415 height: 56 !important; 416 417} 418.a-marginleft10 { 419 420 421 margin-left: 10 !important; 422 423} 424.a-margintopmarginbottom10 { 425 426 margin-top: 10 !important; 427 margin-bottom: 10 !important; 428 429} 430.a-maxwidth1120 { 431 432 433 max-width: 1120 !important; 434 435} 436.a-color0 { 437 438 color: #F40009 !important; 439 440} 441.a-opacity01 { 442 443 444 opacity: 0.1 !important; 445 446} 447.a-paddingtop106px { 448 449 450 padding-top: 106px !important; 451 452} 453.a-color2 { 454 455 color: #424242 !important; 456 457} 458.a-fontsize30px { 459 460 461 font-size: 30px !important; 462 463} 464.a-bordercolor4 { 465 466 border-color: transparent !important; 467 468} 469.a-borderradius50pct { 470 471 472 border-radius: 50% !important; 473 474} 475.a-height20px { 476 477 478 height: 20px !important; 479 480} 481.a-marginright14px { 482 483 484 margin-right: 14px !important; 485 486} 487.a-width20px { 488 489 490 width: 20px !important; 491 492} 493.a-minheight100vh { 494 495 496 min-height: 100vh !important; 497 498} 499.a-opacity04 { 500 501 502 opacity: 0.4 !important; 503 504} 505.a-width100pct { 506 507 508 width: 100% !important; 509 510} 511.a-fontsize50px { 512 513 514 font-size: 50px !important; 515 516} 517.a-paddingbottom0pct { 518 519 520 padding-bottom: 0% !important; 521 522} 523.a-paddingtop15pct { 524 525 526 padding-top: 15% !important; 527 528} 529.a-backgroundcolor4 { 530 531 background-color: transparent !important; 532 533}
534.a-height56px { 535 536 537 height: 56px !important; 538 539} 540.a-marginleft10px { 541 542 543 margin-left: 10px !important; 544 545} 546.a-margintopmarginbottom10px { 547 548 margin-top: 10px !important; 549 margin-bottom: 10px !important; 550 551} 552 553 .location-address:after { content: "212-861-1004"; visibility: visible; white-space: pre; line-height: 2;} 554 555section.seo-module { 556background-color: #fff !important; 557border-bottom: none!important; 558} 559 560 561section.seo-module h1{ 562font-size: 30px !important; 563 font-family: 'Raleway Extra Bold', script !important; 564} 565 566section.seo-module h2{ 567font-size: 15px !important; 568 font-family: 'Ralewyt Extra Bold', script !important; 569} 570 571section.slider.pinstripe { 572background-color: #fff !important; 573border-bottom: none!important; 574} 575 576section.meet { 577background-color: #fff !important; 578border-bottom: none!important; 579} 580 581section.services.pinstripe h3.service-title { 582color: #F40009 !important; 583font-size: 40px !important; 584 font-family: 'Raleway Extra Bold', san-serif !important; 585} 586 587 588 div.service-tagline { 589color: #F40009 !important; 590font-size: 20px !important; 591 font-family: 'Raleway Extra Bold', san-serif !important; 592} 593 594Section.services.pinstripe { 595background-color: #fff !important; 596border-bottom: none!important; 597} 598 599 600section.providers { 601background-color: #F40009 !important; 602border-bottom: none!important; 603} 604 605section.providers h3.providers-title { 606color: #fff !important; 607font-size: 40px !important; 608 font-family: 'Raleway Extra Bold', script !important; 609border-bottom: none!important; 610} 611 612section.blog-articles { 613background-color: #fff !important; 614border-bottom: none!important; 615} 616 617section.contact.no_form { 618 background-color: #fff !important; 619} 620 621section.locations.pinstripe { 622background-color: #fff !important; 623border-bottom: none!important; 624} 625 626 627footer { 628 Background-color: #F40009 !important; 629} 630 631 632footer .nap { 633 color: #fff !important; 634} 635 636 637footer a:hover { 638color: #fff !important; 639} 640 641 642footer .copy { 643color: #fff !important; 644} 645 646.web-to-text-iframe { 647 background: transparent; 648 border: none; 649 bottom: 0; 650 height: 0; 651 position: fixed; 652 right: 0; 653 width: 0; 654 /* To not to overlap modals */ 655 z-index: 1039; 656} 657.skip-main-content { 658 position: absolute; 659 width: 1px; 660 height: 1px; 661 margin: -1px; 662 padding: 0; 663 overflow: hidden; 664 clip: rect(0, 0, 0, 0); 665 white-space: nowrap; 666 border: 0; 667} 668.skip-main-content:focus { 669 position: inherit; 670 width: auto; 671 height: auto; 672 margin: 0; 673 overflow: visible; 674 clip: auto; 675 white-space: normal; 676 padding: 6px; 677 font-size: 13px !important; 678} 679</style> 680 681 682 <style> 683 </style> 684 <!--[if lt IE 9]> 685
685<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
685 686
686<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
686 687
687<script type="text/javascript" src="https://sa1co.patientpop.com/assets/old-browser-warning.js"></script>
687 688 <![endif]--> 689 </head> 690 <body class="ATOMIC"> 691 692 693 <!-- Google Tag Manager -->
vendor: 68 bytes, lines 693-694
693 694 <noscript><iframe src="//www.googletagmanager.com/ns.html?id=
694GTM-5QRPS8R
vendor: 95 bytes, lines 694-696
694" 695 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 696
696<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 697 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 698 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.defer=true;j.src= 699 '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 700 })(window,document,'script','dataLayer','GTM-5QRPS8R');</script>
700 701 <!-- End Google Tag Manager --> 702 703 <section class="eyebrow-two a-color3 a-backgroundcolor0"> 704 <div class="inner"> 705 <h3> PLEASE NOTE: MEMBERSHIP IS RECOMMENDED! </h3> 706 </div> 707</section> 708 <header class="header header-4 a-backgroundcolor4 overlap sticky "> 709 <div class="header-backdrop"></div> 710 <nav> 711 <div class="nav-toggle"> 712 <div class="toggle-title a-color3">More</div> 713 <div class="toggle-icon" role="button" aria-label="Toggle navigation"> 714 <span class="a-backgroundcolor3"></span> 715 <span class="a-backgroundcolor3"></span> 716 <span class="a-backgroundcolor3"></span> 717 </div> 718 </div> 719 <div class="navbar-info"> 720 <div class="brand"> 721 <a class="skip-main-content" href="#main-content">Skip to main content</a> 722 <a href="/" class="logo" aria-label="Link to home page"> 723 </a> 724 </div> 725 </div> 726 <div class="nav-full"> 727 <ul> 728 <li class="a-backgroundcolor4"> 729 <a id="home" href="/" class="clickable" target="_self"> 730 <span class=" a-color3">Home</span> 731 </a> 732 </li> 733 <li class="a-backgroundcolor4"> 734 <a id="about-the-practice" href="/contents/about-the-practice" class="clickable" target=""> 735 <span class=" a-color3">About Dr. Osher</span> 736 </a> 737 </li> 738 <li class="drop"> 739 <a id="services" href="/services" class="clickable" target="_self"> 740 <span class=" a-color3">Services</span> 741 </a> 742 <i tabindex="0" aria-label="Collapse submenu" role="button" id="drop-minus-335858-top" class="fa fa-minus a-color3" data-partner="#drop-plus-335858-top" data-drop=".dropdownContain"></i> 743 <i tabindex="0" aria-label="Expand submenu" role="button" id="drop-plus-335858-top" class="fa fa-plus active a-color3" data-partner="#drop-minus-335858-top" data-drop=".dropdownContain"></i> 744 <div class="dropdownContain a-backgroundcolor0" style="display: none"> 745 <div class="dropOut"> 746 <ul> 747 <li class="sideNav a-backgroundcolor0"> 748 <a href="/services/concierge-medicine" class=" child-link clickable" id="Services_Concierge Medicine-top" target="_self"> 749 <span class=" a-color3">Concierge Medicine</span> 750 </a> 751 </li> 752 <li class="sideNav a-backgroundcolor0"> 753 <a href="/services/hypertension" class=" child-link clickable" id="Services_Hypertension-top" target="_self"> 754 <span class=" a-color3">Hypertension</span> 755 </a> 756 </li> 757 <li class="sideNav a-backgroundcolor0"> 758 <a href="/services/palpitations" class=" child-link clickable" id="Services_Palpitations-top" target="_self"> 759 <span class=" a-color3">Palpitations</span> 760 </a> 761 </li> 762 <li class="sideNav a-backgroundcolor0"> 763 <a href="/services/physical-exam" class=" child-link clickable" id="Services_Physical Exam-top" target="_self"> 764 <span class=" a-color3">Physical Exam</span> 765 </a> 766 </li> 767 <li class="sideNav a-backgroundcolor0"> 768 <a href="/services/coronary-artery-disease" class=" child-link clickable" id="Services_Coronary Artery Disease-top" target="_self"> 769 <span class=" a-color3">Coronary Artery Disease</span> 770 </a> 771 </li> 772 <li class="sideNav a-backgroundcolor0"> 773 <a href="/services/cardiac-evaluations" class=" child-link clickable" id="Services_Cardiac Evaluations-top" target="_self">
774 <span class=" a-color3">Cardiac Evaluations</span> 775 </a> 776 </li> 777 <li class="sideNav a-backgroundcolor0"> 778 <a href="/services/wellness" class=" child-link clickable" id="Services_Wellness-top" target="_self"> 779 <span class=" a-color3">Wellness</span> 780 </a> 781 </li> 782 <li class="sideNav a-backgroundcolor0"> 783 <a href="/services/individualized-exercise-programs" class=" child-link clickable" id="Services_Individualized Exercise Programs-top" target="_self"> 784 <span class=" a-color3">Individualized Exercise Programs</span> 785 </a> 786 </li> 787 </ul> 788 </div> 789 </div> 790 </li> 791 <li class="a-backgroundcolor4"> 792 <a id="become-a-member" href="https://pra-njnsxxr6zuqo.hint.com/signup" class="clickable" target="_blank"> 793 <span class=" a-color3">Become A Member</span> 794 </a> 795 </li> 796 <li class="a-backgroundcolor4"> 797 <a id="conciergemedicine" href="https://ccphp.net/osher/" class="clickable" target="_blank"> 798 <span class=" a-color3">Concierge Medicine</span> 799 </a> 800 </li> 801 <li class="a-backgroundcolor4"> 802 <a id="blog" href="/blog" class="clickable" target="_self"> 803 <span class=" a-color3">Blog</span> 804 </a> 805 </li> 806 <li class="drop"> 807 <a id="testimonials" href="/testimonials" class="clickable" target="_self"> 808 <span class=" a-color3">Testimonials</span> 809 </a> 810 <i tabindex="0" aria-label="Collapse submenu" role="button" id="drop-minus-335862-top" class="fa fa-minus a-color3" data-partner="#drop-plus-335862-top" data-drop=".dropdownContain"></i> 811 <i tabindex="0" aria-label="Expand submenu" role="button" id="drop-plus-335862-top" class="fa fa-plus active a-color3" data-partner="#drop-minus-335862-top" data-drop=".dropdownContain"></i> 812 <div class="dropdownContain a-backgroundcolor0" style="display: none"> 813 <div class="dropOut"> 814 <ul> 815 <li class="sideNav a-backgroundcolor0"> 816 <a href="https://reviews.rater8.com/doctor/dr-annette-osher-md-6ffbbad1" class=" child-link clickable" id="Testimonials_More Testimonials-top" target="_blank"> 817 <span class=" a-color3">More Testimonials</span> 818 </a> 819 </li> 820 </ul> 821 </div> 822 </div> 823 </li> 824 <li class="a-backgroundcolor4"> 825 <a id="contact" href="/contactus" class="clickable" target="_self"> 826 <span class=" a-color3">Contact</span> 827 </a> 828 </li> 829 <li class="cta-container"> 830 <a href="tel:9177252311" class="header-cta cta-call-us cta a-backgroundcolor4 a-color3 a-bordercolor3"> 831 <span class="mm-phone-number">917-725-2311</span> 832 </a> 833 </li> 834 835 836 <li class="cta-container"> 837 <a href="javascript:void(0);" role="button" tabindex="0" class="header-cta cta-book-online ppop_bookonline_action cta a-backgroundcolor4 a-color3 a-bordercolor3" data-practiceid="21148" data-locationid="26091" > 838 <span>NEW PATIENTS: BECOME A MEMBER</span> 839 </a> 840 </li> 841 842 </ul> 843 </div> 844 <div class="nav-optimal a-backgroundcolor0"> 845 <ul> 846 <li class="a-backgroundcolor0"> 847 <a id="home" href="/" class="clickable" target="_self"> 848 <span class=" a-color3">Home</span> 849 </a> 850 </li> 851 <li class="a-backgroundcolor0"> 852 <a id="about-the-practice" href="/contents/about-the-practice" class="clickable" target=""> 853 <span class=" a-color3">About Dr. Osher</span> 854 </a> 855 </li> 856 <li class="drop"> 857 <a id="services" href="/services" class="clickable" target="_self">
858 <span class=" a-color3">Services</span> 859 </a> 860 <i tabindex="0" aria-label="Collapse submenu" role="button" id="drop-minus-335858-side" class="fa fa-minus a-color3" data-partner="#drop-plus-335858-side" data-drop=".dropdownContain"></i> 861 <i tabindex="0" aria-label="Expand submenu" role="button" id="drop-plus-335858-side" class="fa fa-plus active a-color3" data-partner="#drop-minus-335858-side" data-drop=".dropdownContain"></i> 862 <div class="dropdownContain a-backgroundcolor0" style="display: none"> 863 <div class="dropOut"> 864 <ul> 865 <li class="sideNav a-backgroundcolor0"> 866 <a href="/services/concierge-medicine" class=" child-link clickable" id="Services_Concierge Medicine-side" target="_self"> 867 <span class=" a-color3">Concierge Medicine</span> 868 </a> 869 </li> 870 <li class="sideNav a-backgroundcolor0"> 871 <a href="/services/hypertension" class=" child-link clickable" id="Services_Hypertension-side" target="_self"> 872 <span class=" a-color3">Hypertension</span> 873 </a> 874 </li> 875 <li class="sideNav a-backgroundcolor0"> 876 <a href="/services/palpitations" class=" child-link clickable" id="Services_Palpitations-side" target="_self"> 877 <span class=" a-color3">Palpitations</span> 878 </a> 879 </li> 880 <li class="sideNav a-backgroundcolor0"> 881 <a href="/services/physical-exam" class=" child-link clickable" id="Services_Physical Exam-side" target="_self"> 882 <span class=" a-color3">Physical Exam</span> 883 </a> 884 </li> 885 <li class="sideNav a-backgroundcolor0"> 886 <a href="/services/coronary-artery-disease" class=" child-link clickable" id="Services_Coronary Artery Disease-side" target="_self"> 887 <span class=" a-color3">Coronary Artery Disease</span> 888 </a> 889 </li> 890 <li class="sideNav a-backgroundcolor0"> 891 <a href="/services/cardiac-evaluations" class=" child-link clickable" id="Services_Cardiac Evaluations-side" target="_self"> 892 <span class=" a-color3">Cardiac Evaluations</span> 893 </a> 894 </li> 895 <li class="sideNav a-backgroundcolor0"> 896 <a href="/services/wellness" class=" child-link clickable" id="Services_Wellness-side" target="_self"> 897 <span class=" a-color3">Wellness</span> 898 </a> 899 </li> 900 <li class="sideNav a-backgroundcolor0"> 901 <a href="/services/individualized-exercise-programs" class=" child-link clickable" id="Services_Individualized Exercise Programs-side" target="_self"> 902 <span class=" a-color3">Individualized Exercise Programs</span> 903 </a> 904 </li> 905 </ul> 906 </div> 907 </div> 908 </li> 909 <li class="a-backgroundcolor0"> 910 <a id="become-a-member" href="https://pra-njnsxxr6zuqo.hint.com/signup" class="clickable" target="_blank"> 911 <span class=" a-color3">Become A Member</span> 912 </a> 913 </li> 914 <li class="a-backgroundcolor0"> 915 <a id="conciergemedicine" href="https://ccphp.net/osher/" class="clickable" target="_blank">
916 <span class=" a-color3">Concierge Medicine</span> 917 </a> 918 </li> 919 <li class="a-backgroundcolor0"> 920 <a id="blog" href="/blog" class="clickable" target="_self"> 921 <span class=" a-color3">Blog</span> 922 </a> 923 </li> 924 <li class="drop"> 925 <a id="testimonials" href="/testimonials" class="clickable" target="_self"> 926 <span class=" a-color3">Testimonials</span> 927 </a> 928 <i tabindex="0" aria-label="Collapse submenu" role="button" id="drop-minus-335862-side" class="fa fa-minus a-color3" data-partner="#drop-plus-335862-side" data-drop=".dropdownContain"></i> 929 <i tabindex="0" aria-label="Expand submenu" role="button" id="drop-plus-335862-side" class="fa fa-plus active a-color3" data-partner="#drop-minus-335862-side" data-drop=".dropdownContain"></i> 930 <div class="dropdownContain a-backgroundcolor0" style="display: none"> 931 <div class="dropOut"> 932 <ul> 933 <li class="sideNav a-backgroundcolor0"> 934 <a href="https://reviews.rater8.com/doctor/dr-annette-osher-md-6ffbbad1" class=" child-link clickable" id="Testimonials_More Testimonials-side" target="_blank"> 935 <span class=" a-color3">More Testimonials</span> 936 </a> 937 </li> 938 </ul> 939 </div> 940 </div> 941 </li> 942 <li class="a-backgroundcolor0"> 943 <a id="contact" href="/contactus" class="clickable" target="_self"> 944 <span class=" a-color3">Contact</span> 945 </a> 946 </li> 947 <li class="cta-container"> 948 <a href="tel:9177252311" class="header-cta cta-call-us cta a-backgroundcolor4 a-color3 a-bordercolor3"> 949 <span class="mm-phone-number">917-725-2311</span> 950 </a> 951 </li> 952 953 954 <li class="cta-container"> 955 <a href="javascript:void(0);" role="button" tabindex="0" class="header-cta cta-book-online ppop_bookonline_action cta a-backgroundcolor4 a-color3 a-bordercolor3" data-practiceid="21148" data-locationid="26091" > 956 <span>NEW PATIENTS: BECOME A MEMBER</span> 957 </a> 958 </li> 959 960 </ul> 961 </div> 962 <div class="nav-measurer"></div> 963 </nav> 964</header> 965 966 967 <main id="main-content"> 968 <section class="herosub herosub-1 a-backgroundcolor1"> 969 <div class="hero " > 970 <div id="hero-cloak" 971 class="cloak a-backgroundcolor2 972 a-opacity01"></div> 973 <div id="hero-titles" 974 class="hero-titles a-maxwidth940px 975 a-paddingtop106px 976 a-paddingbottom60px"> 977 <div id="hero-titles-inner" class="hero-titles-inner"> 978 <h1 class="main-text 979 primary-font no-text-shadow 980 a-fontsize26px 981 a-textaligncenter 982 a-color3" 983 id="sub-primary-title">About Services</h1> 984 </div> 985 </div> 986 </div> 987</section> 988 <section class="service-header"> 989 <div class="row"> 990 <div id="social-crumb"> 991 <div class="breadcrumb"> 992 <a href="/">Annette Osher, MD</a> <i class="fa fa-angle-right"></i> 993 <a href="/services">Our Services</a> 994 </div> 995 </div> 996 </div> 997 </section> 998 <section class="services pinstripe"> 999 <div class="row"> 1000 <div class="span12"> 1001 <div class="service-tagline"> What we offer </div> 1002 <h3 class="service-title"> Services </h3> 1003 1004 1005 <div class="service-block with-thumbs "> 1006 <ul class="grid8"> 1007 <li class="service"> 1008 <div class="service-bg"><img class="lazy" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://sa1s3optim.patientpop.com/231x200/assets/images/provider/photos/2209932.jpg" alt=""/></div> 1009 <a href="/services/concierge-medicine"> 1010 <div class="service-border primary-border"></div> 1011 <div class="service-info"> 1012 <div class="service-name">Concierge Medicine<i class="fa fa-angle-right fa-2x "></i></div> 1013 <div class="service-more ">more info<i class="fa fa-chevron-circle-right "></i></div> 1014 </div> 1015 </a> 1016 </li> 1017 <li class="service"> 1018 <div class="service-bg"><img class="lazy" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://sa1s3optim.patientpop.com/231x200/assets/images/provider/photos/2215334.jpg" alt=""/></div> 1019 <a href="/services/hypertension"> 1020 <div class="service-border primary-border"></div> 1021 <div class="service-info"> 1022 <div class="service-name">Hypertension<i class="fa fa-angle-right fa-2x "></i></div> 1023 <div class="service-more ">more info<i class="fa fa-chevron-circle-right "></i></div> 1024 </div> 1025 </a> 1026 </li> 1027 <li class="service"> 1028 <div class="service-bg"><img class="lazy" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://sa1s3optim.patientpop.com/231x200/assets/images/provider/photos/2215337.png" alt=""/></div> 1029 <a href="/services/palpitations"> 1030 <div class="service-border primary-border"></div> 1031 <div class="service-info"> 1032 <div class="service-name">Palpitations<i class="fa fa-angle-right fa-2x "></i></div> 1033 <div class="service-more ">more info<i class="fa fa-chevron-circle-right "></i></div> 1034 </div> 1035 </a> 1036 </li> 1037 <li class="service"> 1038 <div class="service-bg"><img class="lazy" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://sa1s3optim.patientpop.com/231x200/assets/images/provider/photos/2215329.jpg" alt=""/></div> 1039 <a href="/services/physical-exam"> 1040 <div class="service-border primary-border"></div> 1041 <div class="service-info"> 1042 <div class="service-name">Physical Exam<i class="fa fa-angle-right fa-2x "></i></div> 1043 <div class="service-more ">more info<i class="fa fa-chevron-circle-right "></i></div> 1044 </div> 1045 </a> 1046 </li> 1047 <li class="service"> 1048 <div class="service-bg"><img class="lazy" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://sa1s3optim.patientpop.com/231x200/assets/images/provider/photos/2215331.jpg" alt=""/></div> 1049 <a href="/services/coronary-artery-disease"> 1050 <div class="service-border primary-border"></div> 1051 <div class="service-info"> 1052 <div class="service-name">Coronary Artery Disease<i class="fa fa-angle-right fa-2x "></i></div> 1053 <div class="service-more ">more info<i class="fa fa-chevron-circle-right "></i></div> 1054 </div> 1055 </a> 1056 </li> 1057 <li class="service"> 1058 <div class="service-bg"><img class="lazy" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://sa1s3optim.patientpop.com/231x200/assets/images/provider/photos/2215338.jpg" alt=""/></div> 1059 <a href="/services/cardiac-evaluations"> 1060 <div class="service-border primary-border"></div> 1061 <div class="service-info"> 1062 <div class="service-name">Cardiac Evaluations<i class="fa fa-angle-right fa-2x "></i></div> 1063 <div class="service-more ">more info<i class="fa fa-chevron-circle-right "></i></div> 1064 </div> 1065 </a> 1066 </li> 1067 <li class="service"> 1068 <div class="service-bg"><img class="lazy" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://sa1s3optim.patientpop.com/231x200/assets/images/provider/photos/2215335.jpg" alt=""/></div> 1069 <a href="/services/wellness"> 1070 <div class="service-border primary-border"></div> 1071 <div class="service-info"> 1072 <div class="service-name">Wellness<i class="fa fa-angle-right fa-2x "></i></div> 1073 <div class="service-more ">more info<i class="fa fa-chevron-circle-right "></i></div> 1074 </div> 1075 </a> 1076 </li> 1077 <li class="service"> 1078 <div class="service-bg"><img class="lazy" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://sa1s3optim.patientpop.com/231x200/assets/images/provider/photos/2215333.png" alt=""/></div> 1079 <a href="/services/individualized-exercise-programs"> 1080 <div class="service-border primary-border"></div> 1081 <div class="service-info"> 1082 <div class="service-name">Individualized Exercise Programs<i class="fa fa-angle-right fa-2x "></i></div> 1083 <div class="service-more ">more info<i class="fa fa-chevron-circle-right "></i></div> 1084 </div> 1085 </a> 1086 </li> 1087 </div> 1088 <div id="service-list"> </div> 1089 1090 </div> 1091 </div> 1092 </section> 1093 <section class="testimonials pinstripe with_image_background"> 1094 <div class="row light"> 1095 <div class="span12"> 1096 <div about="0" typeof='{"type":"MODULE", "secondary_type": "TESTIMONIAL", "type_id": null, "fieldname": "title"}'> 1097 <div class="testimonials-tagline" property='fieldtext'>Testimonials</div> 1098 </div> 1099 <div about="0" typeof='{"type":"MODULE", "secondary_type": "TESTIMONIAL", "type_id": null, "fieldname": "words-from-our-patients"}'> 1100 <h3 class="testimonials-title" property='fieldtext'>Words from our patients</h3> 1101 </div> 1102 <div id="testimonial-slider" class="flexslider" tabindex="0" role="region" aria-roledescription="carousel"> 1103 <ul class="slides"> 1104 <li role="group" aria-roledescription="slide"> 1105 <div class="slider-content "> 1106 <img class="lazy" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://sa1s3optim.patientpop.com/assets/images/provider/photos/1793746.png" width="134" height="124" alt="Google"> 1107 <p>"Everything went very smoothly, she addressed all of my questions and gave very good medical advice... I will definitely continue seeing this physician."</p> 1108 <div class="testimonial-author">Samantha L.</div> 1109 </div> 1110 </li> 1111 <li role="group" aria-roledescription="slide"> 1112 <div class="slider-content "> 1113 <div class="spacer"></div> 1114 <p>"Dr. Osher is a caring doctor who treats the whole individual. She is knowledgeable and experienced and a pleasure to see. I would recommend her to anybody."</p> 1115 <div class="testimonial-author">Ellen B.</div> 1116 </div> 1117 </li> 1118 <li role="group" aria-roledescription="slide"> 1119 <div class="slider-content "> 1120 <div class="spacer"></div> 1121 <p>"Dr. Osher answered my call to her immediately and was able to prescribe the appropriate medication to relieve my problem."</p> 1122 <div class="testimonial-author">Ruth L.</div> 1123 </div> 1124 </li> 1125 </ul> 1126 </div> 1127 </div> 1128 </div> 1129 </section> 1130 <section class="contact pinstripe no_form"> 1131 <div class="row"> 1132 <div class="span4 left"> 1133 <div about="0" typeof='{"type":"MODULE", "secondary_type": "CONTACT", "type_id": 26091, "fieldname": "location"}'> 1134 <h2 class="contact-header primary-fg" property="fieldtext">Location</h2> 1135 </div> 1136 <address>
1137 <span property="name">Annette Osher, MD</span><br/> 1138 <span> 1139 1001 5th Avenue, 1N <br/>Upper East Side 1140 </span><br/> 1141 <span property="addressLocality">New York</span>, <span>NY</span> <span>10028</span><br/> 1142 Phone: <span property="telephone" class="mm-phone-number">917-725-2311</span> 1143 </address> 1144 </div> 1145 <div class="span4 middle"> 1146 <div about="0" typeof='{"type":"MODULE", "secondary_type": "CONTACT", "type_id": 26091, "fieldname": "office-hours"}'> 1147 <h2 class="contact-header primary-fg" property="fieldtext">Office Hours</h2> 1148 </div> 1149 <p> 1150 <label>Monday 1151 <span aria-hidden="true"> 1152 9:00 am 1153 - 5:00 pm 1154 </span> 1155 <span class="hidden-open-hours"> 1156 9:00 am 1157 to 5:00 pm 1158 </span> 1159 </label> 1160 <label>Tuesday 1161 <span aria-hidden="true"> 1162 9:00 am 1163 - 5:00 pm 1164 </span> 1165 <span class="hidden-open-hours"> 1166 9:00 am 1167 to 5:00 pm 1168 </span> 1169 </label> 1170 <label>Wednesday 1171 <span aria-hidden="true"> 1172 9:00 am 1173 - 5:00 pm 1174 </span> 1175 <span class="hidden-open-hours"> 1176 9:00 am 1177 to 5:00 pm 1178 </span> 1179 </label> 1180 <label>Thursday 1181 <span aria-hidden="true"> 1182 9:00 am 1183 - 5:00 pm 1184 </span> 1185 <span class="hidden-open-hours"> 1186 9:00 am 1187 to 5:00 pm 1188 </span> 1189 </label> 1190 <label>Friday 1191 <span aria-hidden="true"> 1192 9:00 am 1193 - 5:00 pm 1194 </span> 1195 <span class="hidden-open-hours"> 1196 9:00 am 1197 to 5:00 pm 1198 </span> 1199 </label> 1200 <label>Saturday 1201 <span aria-hidden="true"> 1202 Closed 1203 </span> 1204 <span class="hidden-open-hours"> 1205 Closed 1206 </span> 1207 </label> 1208 <label>Sunday 1209 <span aria-hidden="true"> 1210 Closed 1211 </span> 1212 <span class="hidden-open-hours"> 1213 Closed 1214 </span> 1215 </label> 1216 </p> 1217 </div> 1218 <div class="span4 right"> 1219 <div about="0" typeof='{"type":"MODULE", "secondary_type": "CONTACT", "type_id": 26091, "fieldname": "get-in-touch"}'> 1220 <h2 class="contact-header primary-fg" property="fieldtext">Get in touch</h2> 1221 </div> 1222 <p> 1223 <a href="tel:9177252311" aria-label="Phone number" class="btn-call primary-border primary-fg"> 1224 <i class="fa fa-phone"></i><span class="mm-phone-number">917-725-2311</span> 1225 </a> 1226 <button type="button" class="btn-book-online ppop_bookonline_action small primary-bg primary-btn" data-locationid="26091"> 1227 NEW PATIENTS: BECOME A MEMBER 1228 </button> 1229 </p> 1230 </div> 1231 </div> 1232 </section>
1232<script type="application/ld+json"> 1233 {"@context":"http:\/\/schema.org","@type":"Physician","@id":"http:\/\/www.oshermd.com\/d66dc95455641ac5440e6e537b5317af432ae43c","url":"http:\/\/www.oshermd.com","brand":{"name":[]},"name":["Annette Osher, MD"],"image":"https:\/\/sa1s3optim.patientpop.com\/assets\/images\/provider\/photos\/2209950.jpg","potentialAction":{"@type":"ReserveAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/www.oshermd.com\/schedule?utm_medium=markup","inLanguage":"en-US","actionPlatform":["http:\/\/schema.org\/DesktopWebPlatform","http:\/\/schema.org\/IOSPlatform","http:\/\/schema.org\/AndroidPlatform"]},"result":{"@type":"Reservation","name":"NEW PATIENTS: BECOME A MEMBER"}},"telephone":"+1 917-725-2311","contactPoint":[{"@type":"ContactPoint","telephone":"+1 917-725-2311","contactType":"reservations"},{"@type":"ContactPoint","telephone":"+1 212-861-6161","contactType":"customer service"}],"address":{"@type":"PostalAddress","streetAddress":"1001 5th Avenue 1N","addressLocality":"New York","addressRegion":"NY","postalCode":"10028","addressCountry":"USA"}} 1234</script>
1234 1235 </main> 1236 <footer> 1237 <div class="row"> 1238 <div class="span12"> 1239 <ul> 1240 <li> 1241 <div class="copy"><p>© Copyright 2026 <a style="color:inherit;" href="https://www.tebra.com/marketing/practice-websites/">Tebra Inc</a>.</p></div> 1242 </li> 1243 <li> 1244 <a href="https://www.oshermd.com/your-privacy" rel="nofollow" >Privacy Policy</a> 1245 </li> 1246 <li> 1247 <a href="https://www.oshermd.com/our-terms" rel="nofollow" >Terms & Conditions</a> 1248 </li> 1249 <li><a href="https://www.oshermd.com/accessibility-statement" rel="nofollow" id="footer-link-accessibility-notice">Accessibility Notice</a></li> 1250 <li><a href="https://www.oshermd.com/contactus">Contact Us</a></li> 1251 </ul> 1252 </div> 1253 1254 <div class="span12"> 1255 <div class="nap"> 1256 <div class="fn org"> Annette Osher, MD, New York, NY</div> 1257 Phone (appointments): <span class="tel mm-phone-number" content="9177252311">917-725-2311</span> 1258 <span class="divider">|</span> 1259 Phone (general inquiries): 212-861-6161 1260 <div class="adr"> 1261 Address: <span class="street-address">1001 5th Avenue, 1N, </span> 1262 <span class="locality">New York</span>, <span class="region">NY</span> <span>10028</span> 1263 </div> 1264 </div> 1265 </div> 1266 <div class="span12"> 1267 <section class="aggregate-ratings"> 1268 <ul role="presentation"> 1269 <li role="presentation"> 1270 <div class="average"> 1271 5<sup><span>/</span>5</sup> 1272 </div> 1273 </li> 1274 <li role="presentation"> 1275 <div class="star-rating"> 1276 <div class="top" style="width:100.00%"> 1277 <div class="hidden-aggregate-rating">5/5 Star Rating</div> 1278 <i title="Star Rating" role="img" class="fa fa-star"></i><i title="Star Rating" role="img" class="fa fa-star"></i><i title="Star Rating" role="img" class="fa fa-star"></i><i title="Star Rating" role="img" class="fa fa-star"></i><i title="Star Rating" role="img" class="fa fa-star"></i> 1279 </div> 1280 <div class="bottom"> 1281 <i title="Star Rating" role="img" class="fa fa-star"></i><i title="Star Rating" role="img" class="fa fa-star"></i><i title="Star Rating" role="img" class="fa fa-star"></i><i title="Star Rating" role="img" class="fa fa-star"></i><i title="Star Rating" role="img" class="fa fa-star"></i> 1282 </div> 1283 </div> 1284 <div class="total-aggregate-reviews">(15 reviews) </div> 1285 </li> 1286 </ul> 1287</section> 1288 </div> 1289 1290 <div class="span12 powered-by"><p>Medical website powered by <a style="color:inherit;" href="https://www.tebra.com/marketing/practice-websites/">Tebra</a></p></div> 1291 </div> 1292</footer> 1293
1293<script type="application/ld+json"> 1294 {"@context":"http:\/\/schema.org","@type":"Physician","@id":"http:\/\/www.oshermd.com\/d66dc95455641ac5440e6e537b5317af432ae43c","url":"http:\/\/www.oshermd.com","brand":{"name":[]},"name":["Annette Osher, MD"],"image":"https:\/\/sa1s3optim.patientpop.com\/assets\/images\/provider\/photos\/2209950.jpg","potentialAction":{"@type":"ReserveAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/www.oshermd.com\/schedule?utm_medium=markup","inLanguage":"en-US","actionPlatform":["http:\/\/schema.org\/DesktopWebPlatform","http:\/\/schema.org\/IOSPlatform","http:\/\/schema.org\/AndroidPlatform"]},"result":{"@type":"Reservation","name":"NEW PATIENTS: BECOME A MEMBER"}},"telephone":"+1 917-725-2311","contactPoint":[{"@type":"ContactPoint","telephone":"+1 917-725-2311","contactType":"reservations"},{"@type":"ContactPoint","telephone":"+1 212-861-6161","contactType":"customer service"}],"address":{"@type":"PostalAddress","streetAddress":"1001 5th Avenue 1N","addressLocality":"New York","addressRegion":"NY","postalCode":"10028","addressCountry":"USA"}} 1295</script>
1295 1296 1297 <div class="yt-player"> 1298 <div class="inner"> 1299 <button type="button" class="close-yt-player" aria-label="Close video">×</button> 1300 <iframe title="Video container" aria-label="Video container" width="680" height="377" src="" allowFullScreen mozallowfullscreen webkitAllowFullScreen></iframe> 1301 </div> 1302 </div> 1303 1304
1304<script> 1305 var recaptcha_public_key = '6Lf-Vs4qAAAAANLS4SUm8FQ4bNRnHyhfes-bsXz2'; 1306 </script>
1306 1307 1308
1308<script type="text/javascript" src="https://www.oshermd.com/js/practice.application.js" async defer></script>
1308 1309 1310 1311
1311<script> 1312 function loadScript(src, globalVar) { 1313 if (src) { 1314 if (globalVar) { 1315 window[globalVar] = {'d': 1 * new Date()}; 1316 } 1317 const script = document.createElement('script'); 1318 script.async = true; 1319 script.defer = true; 1320 script.src = src; 1321 document.getElementsByTagName('script')[0].parentNode.insertBefore(script, document.getElementsByTagName('script')[0]); 1322 } 1323 } 1324 1325 window.onload = function () { 1326 pop.header4 = (function(){ 1327 var nav = { 1328 navCount : 0, 1329 navLogoImgWidth: 0, 1330 totalVisibleWidth: 0, 1331 toggleNav : function(){ 1332 $('.nav-toggle').toggleClass('expanded'); 1333 $('body').toggleClass('nav-open'); 1334 $('.nav-optimal').toggleClass('expanded'); 1335 }, 1336 calculateVisible : function(){ 1337 var growingWidth = 0; 1338 for(var i=0; i < nav.navCount; i++){ 1339 growingWidth += $('.nav-measurer > ul > li').eq(i).outerWidth() + 1; // outerWidth seems to do a math.floor on decimals 1340 if(growingWidth < nav.totalVisibleWidth){ 1341 $('.nav-full > ul > li').eq(i).show(); 1342 } 1343 } 1344 }, 1345 checkBucket : _.debounce(function(){ 1346 if($('.nav-full > ul > li:visible').length == nav.navCount){ 1347 $('.nav-full').removeClass('hiding'); 1348 $('.nav-toggle').hide(); 1349 }else{ 1350 $('.nav-toggle').show(); 1351 $('.nav-full').addClass('hiding'); 1352 } 1353 1354 var imgElement = $('nav a.logo img'); 1355 if(imgElement.length) { 1356 nav.navLogoImgWidth = imgElement.outerWidth(true); 1357 } 1358 1359 if($('.nav-full').outerWidth() >= ($('nav').outerWidth() - nav.navLogoImgWidth) && $('.nav-full > ul > li:visible').length){ 1360 $('.nav-full > ul > li:visible:last').hide(); 1361 nav.checkBucket(); 1362 }else if(($('.nav-full').outerWidth() + $('.nav-measurer > ul > li').eq($('.nav-full > ul > li:visible').length).outerWidth()) < ($('nav').outerWidth() - nav.navLogoImgWidth)){ 1363 if($('.nav-full > ul > li').eq($('.nav-full > ul > li:visible').length)){ 1364 $('.nav-full > ul > li').eq($('.nav-full > ul > li:visible').length).show(10, function(){ 1365 if($('.nav-full > ul > li').eq($('.nav-full > ul > li:visible').length + 1)){ 1366 nav.checkBucket(); 1367 } 1368 }); 1369 } 1370 } 1371 }, 2), 1372 init : function(){ 1373 nav.navCount = $('.nav-full > ul > li').length; 1374 nav.totalVisibleWidth = $('nav').outerWidth() - 20; 1375 var imgElement = $('nav a.logo img'); 1376 if(imgElement.length) { 1377 nav.navLogoImgWidth = imgElement.outerWidth(true); 1378 nav.totalVisibleWidth -= nav.navLogoImgWidth; 1379 } 1380 $('.nav-full > ul').clone().appendTo('.nav-measurer'); 1381 $('.nav-measurer i').removeAttr('id'); 1382 $('.nav-measurer a').removeAttr('id'); 1383 $('.nav-toggle').click(nav.toggleNav); 1384 $('.nav-optimal a.nav-item').click(function(){ 1385 $('.nav-toggle').click(); 1386 }); 1387 $('.header-backdrop').click(function(){ 1388 $('.nav-toggle').click(); 1389 }); 1390 nav.calculateVisible(); 1391 nav.checkBucket(); 1392 $(window).on('resize orientationChange', function(event) { 1393 nav.checkBucket(); 1394 }); 1395 1396 $('header.header-4 nav .nav-full ul li').on('mouseenter mouseleave', function (e) { 1397 var $elm=null; 1398 1399 if ($('.dropdownContain', this).length) { 1400 $elm = $('.dropdownContain:first', this); 1401 }else if($('.sideNavContain', this).length){ 1402 $elm = $('.sideNavContain:first', this); 1403 } 1404 1405 if ($elm) { 1406 var off = $elm.offset(); 1407 var l = off.left; 1408 var w = $elm.width(); 1409 var docW = $('.header-4').outerWidth(); 1410 var isEntirelyVisible = (l + w <= docW); 1411 1412 if (!isEntirelyVisible) { 1413 $(this).addClass('edge'); 1414 } else { 1415 $(this).removeClass('edge'); 1416 } 1417 } 1418 }); 1419 1420 } 1421 }; 1422 1423 return{ 1424 init : nav.init 1425 }; 1426 1427}()); 1428 1429pop.header4.init(); 1430 1431var eyebrowTwo = { 1432 checkMotions: function(){ 1433 if($('header').hasClass('overlap')) { 1434 var $langBar = $('.language-bar'); 1435 var combinedHeight = $('.eyebrow-two').height() + ($langBar.length ? $langBar.height() : 0); 1436 if($langBar.length){ 1437 if ($('.eyebrow-two').elementVisible(true) && !$('header').hasClass('scrolling')) { 1438 $('header').css('margin-top', combinedHeight + 'px'); 1439 }else{ 1440 $('header').css('margin-top','0'); 1441 } 1442 }else{ 1443 if ($('.eyebrow-two').elementVisible(true)) { 1444 $('header').css('margin-top', combinedHeight + 'px'); 1445 }else{ 1446 $('header').css('margin-top','0'); 1447 } 1448 } 1449 } 1450 }, 1451 debounce: function(func, wait, immediate) { 1452 var timeout; 1453 return function() { 1454 var context = this, args = arguments; 1455 var later = function() { 1456 timeout = null;
1457 if (!immediate) func.apply(context, args); 1458 }; 1459 var callNow = immediate && !timeout; 1460 clearTimeout(timeout); 1461 timeout = setTimeout(later, wait); 1462 if (callNow) func.apply(context, args); 1463 }; 1464 }, 1465 init: function(){ 1466 eyebrowTwo.checkMotions(); 1467 $(window).scroll(eyebrowTwo.debounce(eyebrowTwo.checkMotions, 10)); 1468 $(window).resize(eyebrowTwo.debounce(eyebrowTwo.checkMotions, 10)); 1469 } 1470}; 1471$( document ).ready(function() { 1472 if($('.eyebrow-two').length) { 1473 eyebrowTwo.init(); 1474 } 1475}); 1476 1477 var stickyNav = { 1478 headerOffset: $('header').offset().top, 1479 checkStickiness: function(){ 1480 if ($(document).scrollTop() >= stickyNav.headerOffset) { 1481 $('header').addClass('scrolling'); 1482 if(!$('header').hasClass('overlap')){ 1483 $('body').css({'padding-top': $('header').outerHeight() + 'px'}); 1484 } 1485 } else { 1486 $('header').removeClass('scrolling'); 1487 $('body').css({'padding-top': '0'}); 1488 } 1489 if ($(document).scrollTop() >= $('header').height()) { 1490 $('header').addClass('scrolling-color'); 1491 }else{ 1492 $('header').removeClass('scrolling-color'); 1493 } 1494 }, 1495 debounce: function(func, wait, immediate) { 1496 var timeout; 1497 return function() { 1498 var context = this, args = arguments; 1499 var later = function() { 1500 timeout = null; 1501 if (!immediate) func.apply(context, args); 1502 }; 1503 var callNow = immediate && !timeout; 1504 clearTimeout(timeout); 1505 timeout = setTimeout(later, wait); 1506 if (callNow) func.apply(context, args); 1507 }; 1508 }, 1509 init: function(){ 1510 stickyNav.checkStickiness(); 1511 $(window).scroll(stickyNav.debounce(stickyNav.checkStickiness, 10)); 1512 $(window).resize(stickyNav.debounce(stickyNav.checkStickiness, 10)); 1513 } 1514}; 1515stickyNav.init(); 1516 1517 1518 // JS Hero 2 1519 1520//console.warn('TODO: Move $.animateTransform to main library'); 1521(function($){ 1522 $.fn.animateTransform = function(/* [start,] end [, duration] [, callback] */){ 1523 var start = null, end = null, duration = 400, callback = function(){}; 1524 for(var i=0; i<arguments.length; i++){ 1525 if(typeof(arguments[i]) == 'string'){ 1526 if(!start) start = arguments[i]; 1527 else end = arguments[i]; 1528 } else if(typeof(arguments[i]) == 'number'){ 1529 duration = arguments[i]; 1530 } else if(typeof(arguments[i]) == 'function'){ 1531 callback = arguments[i]; 1532 } 1533 } 1534 if(start && !end){ 1535 end = start; 1536 start = null; 1537 } 1538 if(!end) return; 1539 if(start){ 1540 this.css("transform", start); 1541 } 1542 if(duration < 16) duration = 16; 1543 var transitionB4 = this.css('transition'); 1544 this.css('transition', 'transform ' + duration + 'ms'); 1545 this.css('transform', end); 1546 var $el = this; 1547 setTimeout(function(){ 1548 $el.css('transition', transitionB4 || ''); 1549 $el.css('transform', end); 1550 callback(); 1551 }, duration); 1552 }; 1553})(jQuery); 1554 1555(function($){ 1556 $.fn.swipeHandler = function(options) { 1557 var $container = this; 1558 var swipeThreshold = options.swipeThreshold || null; 1559 var onSwipeLeft = options.onSwipeLeft || null; 1560 var onSwipeRight = options.onSwipeRight || null; 1561 $container.on('touchstart', function(event) { 1562 var previousSwipeX = event.originalEvent.touches[0].clientX; 1563 $container.on('touchend', removeSwipeListeners); 1564 $container.on('touchcancel', removeSwipeListeners); 1565 $container.on('touchmove', function(event) { 1566 currentSwipeX = event.originalEvent.touches[0].clientX; 1567 if(currentSwipeX-swipeThreshold > previousSwipeX){ 1568 removeSwipeListeners(); 1569 if ( onSwipeRight ){ 1570 event.preventDefault(); 1571 onSwipeRight(event); 1572 } 1573 }else if(currentSwipeX+swipeThreshold < previousSwipeX){ 1574 removeSwipeListeners(); 1575 if ( onSwipeLeft ){ 1576 event.preventDefault(); 1577 onSwipeLeft(event); 1578 } 1579 } 1580 previousSwipeX = currentSwipeX; 1581 }); 1582 }); 1583 function removeSwipeListeners() { 1584 $container.off('touchmove'); 1585 $container.off('touchend'); 1586 $container.off('touchcancel'); 1587 } 1588 }; 1589})(jQuery); 1590 1591 1592//console.warn('TODO: Move $.smartresize to main library'); 1593(function($,sr){ 1594 // debouncing function from John Hann 1595 // http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/ 1596 var debounce = function (func, threshold, execAsap) { 1597 var timeout; 1598 return function debounced () { 1599 var obj = this, args = arguments; 1600 function delayed () { 1601 if (!execAsap) 1602 func.apply(obj, args); 1603 timeout = null; 1604 }; 1605 if (timeout) 1606 clearTimeout(timeout); 1607 else if (execAsap) 1608 func.apply(obj, args); 1609 timeout = setTimeout(delayed, threshold || 100); 1610 }; 1611 } 1612 // smartresize 1613 jQuery.fn[sr] = function(fn){ return fn ? this.bind('resize', debounce(fn)) : this.trigger(sr); }; 1614})(jQuery,'smartresize'); 1615 1616 1617(function($){ 1618 $.fn.heroCarousel = function( options ){ 1619 1620 var settings = $.extend({ 1621 transitionType: 'fade-over', 1622 transitionSpeedFactor: 1, 1623 transitionDelay: 4000, 1624 }, options); 1625 1626 var $container = $(this); 1627 var $list = $(this).find('ul.carousel-items').eq(0); 1628 var $slides = $list.find('li.carousel-item');
1629 var $navBar = $container.find('ol.carousel-nav'); 1630 var $leftBtn = $(this).find('i.carousel-left-btn'); 1631 var $rightBtn = $(this).find('i.carousel-right-btn'); 1632 var totalSlides = $slides.length; 1633 var sliding = false; 1634 var currentSlide = settings.openingSlideIndex > -1 ? settings.openingSlideIndex : 0; 1635 var traverse = null; 1636 var defaultColorClass = 'a-'+$navBar.data('default-color-class'); 1637 var activeColorClass = 'a-'+$navBar.data('active-color-class'); 1638 1639 function slide(isRewinding) { 1640 if(!sliding){ 1641 $container.find('iframe[src*="www.youtube.com/embed/"]').each(function(i) { 1642 this.contentWindow.postMessage( JSON.stringify({ event:'command', func: 'pauseVideo', args:'' }), '*'); 1643 }); 1644 $container.find('ol li.bullet') 1645 .removeClass('active') 1646 .removeClass(activeColorClass) 1647 .addClass(defaultColorClass); 1648 $container.find('ol li.bullet').eq(currentSlide) 1649 .addClass('active') 1650 .removeClass(defaultColorClass) 1651 .addClass(activeColorClass); 1652 sliding = true; 1653 setCurrentBgUrl( $( $container.find('li.carousel-item').eq(currentSlide) ) ); 1654 switch(settings.transitionType) { 1655 case 'slide': doTransitionSlide(false, isRewinding); break; 1656 case 'slide-over': doTransitionSlide(true, isRewinding); break; 1657 case 'slide-reveal': doTransitionSlideReveal(false, isRewinding); break; 1658 case 'slide-over-reveal': 1659 case 'slide-reveal-over': doTransitionSlideReveal(true, isRewinding); break; 1660 case 'fade-reveal': doTransitionFadeReveal(); break; 1661 case 'fade-over': doTransitionFadeOver(); break; 1662 case 'fade' : 1663 default: doTransitionFade(); break; 1664 } 1665 } 1666 } 1667 1668 function setCurrentBgUrl($el) { 1669 var bgUrl = $el.css('background-image'); 1670 bgUrl = bgUrl.replace('url(','').replace(')','').replace(/\"/gi, ''); 1671 var dataSrc = $el.data('src'); 1672 if ( dataSrc != bgUrl ) { 1673 $el.css( 'background-image', 'url("'+dataSrc+'")'); 1674 } 1675 } 1676 1677 function doTransitionFade() { 1678 var speed = 500 * settings.transitionSpeedFactor; 1679 $slides.removeClass('active') 1680 $slides.eq(currentSlide).addClass('active') 1681 $list.animate({ 1682 opacity : 0 1683 }, speed,function(){ 1684 $slides.hide(); 1685 $slides.eq(currentSlide).show(); 1686 $list.animate({opacity : 1}, speed, function(){ 1687 $container.find('li.carousel-item').eq(currentSlide).find('.overlay').slideDown(); 1688 afterTransition(); 1689 }); 1690 }); 1691 } 1692 1693 function doTransitionFadeOver() { 1694 var speed = 500 * settings.transitionSpeedFactor; 1695 $slides.removeClass('active'); 1696 $slides.eq(currentSlide).addClass('active'); 1697 $slides.css('zIndex', 1); 1698 $slides.eq(currentSlide).css({'z-index': 2, opacity: 0}).show().animate({opacity: 1}, speed, function(){ 1699 $slides.not('.active').hide(); 1700 afterTransition(); 1701 }); 1702 } 1703 1704 function doTransitionSlideReveal(isOver, isRewinding) { 1705 var slideSpeed = window.innerWidth / 2.5 * settings.transitionSpeedFactor; // adjust speed per size screen 1706 if ( !isOver ) { 1707 $list.find('li.carousel-item.active').animateTransform('translate('+(isRewinding?100:-100)+'%)', slideSpeed); 1708 } 1709 var speed = 500 * settings.transitionSpeedFactor; 1710 $slides.removeClass('active'); 1711 $slides.eq(currentSlide).addClass('active'); 1712 $slides.css('zIndex', 1); 1713 var $new = $slides.eq(currentSlide); 1714 $new.find('.reveal-element').each(function(index){ $(this).data('opacity', $(this).css('opacity')).css('cssText', 'transition:none; opacity:0 !important;'); }); 1715 $new.css({ zIndex: 2, opacity: 1, transform: 'translate('+(isRewinding?-100:100)+'%)'}).show().animateTransform('translate(0%)', slideSpeed, function(){ 1716 $new.find('.reveal-element').each(function(index){ 1717 $(this).css('cssText', 'transition:opacity '+speed+'ms linear '+(index*speed*.7)+'ms; opacity:'+$(this).data('opacity')+' !important;'); 1718 }); 1719 var $old = $slides.not('.active'); 1720 $old.hide(); 1721 afterTransition(); 1722 }); 1723 } 1724 1725 function doTransitionFadeReveal() { 1726 var speed = 500 * settings.transitionSpeedFactor; 1727 $slides.removeClass('active'); 1728 $slides.eq(currentSlide).addClass('active'); 1729 $slides.css('zIndex', 1); 1730 var $new = $slides.eq(currentSlide); 1731 $new.find('.reveal-element').each(function(index){ $(this).data('opacity', $(this).css('opacity')).css('cssText', 'transition:none; opacity:0 !important;'); }); 1732 $new.css({ zIndex: 2, opacity: 0}).show().animate({opacity: 1}, speed, function(){ 1733 $new.find('.reveal-element').each(function(index){ 1734 $(this).css('cssText', 'transition:opacity '+speed+'ms linear '+(index*speed*.7)+'ms; opacity:'+$(this).data('opacity')+' !important;'); 1735 }); 1736 var $old = $slides.not('.active'); 1737 $old.hide(); 1738 afterTransition(); 1739 }); 1740 } 1741 1742 function doTransitionSlide(isOver, isRewinding) { 1743 var speed = window.innerWidth / 2.5 * settings.transitionSpeedFactor; // adjust speed per size screen 1744 $slides.css('zIndex', 1); 1745 if ( !isOver ) { 1746 $list.find('li.carousel-item.active').animateTransform('translate('+(isRewinding?100:-100)+'%)', speed); 1747 } 1748 $slides.removeClass('active'); 1749 $slides.eq(currentSlide).addClass('active'); 1750 $slides.eq(currentSlide).css({ zIndex: 2, opacity: 1, transform: 'translate('+(isRewinding?-100:100)+'%)'}).show().animateTransform('translate(0%)', speed, function(){ 1751 $slides.not('.active').hide(); 1752 afterTransition(); 1753 }); 1754 } 1755 1756 function afterTransition () { 1757 sliding = false;
1758 if($container.find('li.carousel-item').eq(currentSlide).find('iframe').length > 0){ 1759 window.clearInterval(traverse); 1760 } 1761 } 1762 1763 function slideNext() { 1764 if(!sliding){ 1765 currentSlide = ++currentSlide % totalSlides; 1766 slide(false); 1767 } 1768 } 1769 1770 function slidePrevious() { 1771 if(!sliding){ 1772 currentSlide = (--currentSlide+totalSlides) % totalSlides; 1773 slide(true); 1774 } 1775 } 1776 1777 function handleResize(){ 1778 var height = 0; 1779 $slides.each(function(){ 1780 height = Math.max(height, $(this).height()) 1781 }) 1782 $container.outerHeight(height); 1783 $slides.each(function() { 1784 $(this).outerHeight( height ); 1785 $(this).find('.margin-wrapper').outerHeight( height ); 1786 }); 1787 } 1788 1789 function resetTransitionInterval() { 1790 window.clearInterval(traverse); 1791 traverse = setInterval(slideNext, settings.transitionDelay); 1792 } 1793 1794 function initialize() { 1795 1796 setCurrentBgUrl( $( $container.find('li.carousel-item').eq(currentSlide) ) ); 1797 1798 var height = 0; 1799 $slides.each(function(){ 1800 height = Math.max(height, $(this).height()) 1801 }) 1802 $container.animate( { 'height': height + 'px' }, 500 ); 1803 $slides.each(function() { 1804 $(this).outerHeight( height ); 1805 $(this).find('.margin-wrapper').outerHeight( height ); 1806 }); 1807 1808 // change slides CSS properties to enable animations 1809 $slides.each(function(){ 1810 $(this).css({ 1811 position: 'absolute', 1812 overflow: 'hidden', 1813 top: 0, 1814 left: 0, 1815 width: '100%', 1816 }).outerHeight(height); 1817 }); 1818 1819 $list.addClass('transition-'+settings.transitionType) 1820 1821 // bind navigation events: 1822 if($container.find('li.bullet').length > 1){ 1823 $container.find('li.bullet').eq(currentSlide) 1824 .addClass('active') 1825 .removeClass(defaultColorClass) 1826 .addClass(activeColorClass); 1827 $container.on('click', 'ol li.bullet', function() { 1828 currentSlide=$container.find('ol li.bullet').index(this); 1829 var previousIndex = $container.find('li.carousel-item.active').index(); 1830 if(!sliding && currentSlide != previousIndex){ 1831 slide(currentSlide < previousIndex); 1832 } 1833 }); 1834 // bind enter keyboard event for bullet navigation: 1835 $(document).keydown(function(e) { 1836 if (e.which == 13) { // 13 is the key code for Enter 1837 currentSlide=$container.find('ol li.bullet').index(e.target); 1838 var previousIndex = $container.find('li.carousel-item.active').index(); 1839 if(!sliding && currentSlide != previousIndex){ 1840 slide(currentSlide < previousIndex); 1841 } 1842 } 1843 }); 1844 } 1845 1846 /* HIDE ALL BUT FIRST ONE */ 1847 $container.find('li.carousel-item:gt('+currentSlide+')').hide(); 1848 1849 $container.on('click', '.carousel-left-btn', slidePrevious); 1850 $container.on('click', '.carousel-right-btn', slideNext); 1851 1852 $container.on('mouseenter',function(){ 1853 window.clearInterval(traverse); 1854 }); 1855 $container.on('mouseleave',function(){ 1856 resetTransitionInterval() 1857 }); 1858 resetTransitionInterval(); 1859 1860 /* SHOW FIRST ONE */ 1861 $list.find('li.carousel-item').eq(currentSlide).show().addClass('active'); 1862 1863 $container.swipeHandler({ 1864 swipeThreshold: 20, 1865 onSwipeLeft: slideNext, 1866 onSwipeRight: slidePrevious 1867 }); 1868 1869 $(window).smartresize(handleResize); 1870 1871 $.when($.ready).then(function() { 1872 setTimeout(function() { 1873 $slides.each(function() { 1874 setCurrentBgUrl( $(this) ); 1875 }); 1876 $navBar.fadeTo('slow', $navBar.data('opacity')); 1877 $leftBtn.fadeTo('slow', $leftBtn.data('opacity')); 1878 $rightBtn.fadeTo('slow', $rightBtn.data('opacity')); 1879 }, 2000); 1880 }); 1881 } 1882 1883 // exit if no more than one slide 1884 if ( totalSlides > 1 ) initialize() 1885 1886 } 1887})(jQuery); 1888 1889$(function(){ 1890 1891 var openingSlideIndex = -1; 1892 var chunks = window.location.href.split('?') 1893 if ( chunks.length > 1 ) { 1894 var vars = chunks[1].split('&') 1895 for ( var i=0,l=vars.length; i<l; i++ ) { 1896 // set slide lock flag 1897 if ( vars[i].substr(0, 10) == 'slideLock=' ) { 1898 openingSlideIndex = parseInt(vars[i].split('=')[1]) 1899 } 1900 } 1901 } 1902 1903 var $carousel = $('.carousel'); 1904 if ( $carousel && $('ul.carousel-items li.carousel-item').length ) { 1905 var options = { 1906 transitionType: $carousel.data('transition-type'), 1907 transitionSpeedFactor: $carousel.data('transition-speed-factor'), 1908 transitionDelay: parseFloat($carousel.data('transition-delay')) * 1000, 1909 } 1910 if ( openingSlideIndex > -1 ) { 1911 options.openingSlideIndex = openingSlideIndex; 1912 options.transitionSpeedFactor = 1 1913 options.transitionDelay = 100000000 1914 } 1915 $carousel.heroCarousel(options); 1916 } 1917 1918}); 1919 1920 pop.csrf = 'xCwEXF5jZ1Hytgn2HVmTF2ozh1uQzUsPnUu4BOi7'; 1921 (function(d){ 1922var f = d.getElementsByTagName('SCRIPT')[0], p = d.createElement('SCRIPT'); 1923p.type = 'text/javascript'; 1924p.async = true; 1925p.src = '//assets.pinterest.com/js/pinit.js'; 1926f.parentNode.insertBefore(p, f); 1927}(document)); 1928 1929 pop.googleMapsApiKey = "AIzaSyDUMat8GDn95azhEeD8olQLAnc-PoouKxY"; 1930 1931 1932 1933 PPoppracticeId = 21148;
1934 PPoppracticeUuid = 'c99f86e6-acda-4078-b06c-c0af020038b5'; 1935 if ('https://widgets.patientpop.com/bookonlinev2/router/21148') { 1936 (function (f, c, o, g, n, a, t) { 1937 f[n] = {'d': 1 * new Date()}; 1938 a = c.createElement(o), t = c.getElementsByTagName(o)[0]; 1939 a.async = 1; 1940 a.defer = 1; 1941 a.src = g; 1942 t.parentNode.insertBefore(a, t) 1943 })(window, document, 'script', 'https://widgets.patientpop.com/bookonlinev2/router/21148', 'PPop'); 1944 } 1945 1946 if ($("div[id^='recaptcha']").length) { 1947 loadScript('https://www.google.com/recaptcha/api.js?onload=recaptchaCallback&render=explicit'); 1948 } 1949 1950 const gtagScript = document.createElement('script'); 1951 gtagScript.type = 'text/javascript'; 1952 gtagScript.async = true; 1953 gtagScript.src = 'https://www.googletagmanager.com/gtag/js?id=G-Z197VM6NWL'; 1954 1955 const firstScript = document.getElementsByTagName('script')[0]; 1956 firstScript.parentNode.insertBefore(gtagScript, firstScript); 1957 1958 window.dataLayer = window.dataLayer || []; 1959 function gtag(){dataLayer.push(arguments);} 1960 window.gtag = gtag; 1961 1962 gtag('js', new Date()); 1963 gtag('config', 'G-Z197VM6NWL'); 1964 1965 // wrapper on top of gtag function used for UA and GA4 tracking 1966 function ppTrackEvent (category, action, label, additionalProps) { 1967 if ('1' !== '1' || typeof gtag === "undefined") { 1968 return; 1969 } 1970 // mapping to convert UA event to GA4 1971 const UA_TO_GA4_ACTION_MAPPING = { 1972 'button:click:contact us - comment': 'contact_us_submit_success', 1973 'button:click:book online button': 'click_book_online', 1974 'button:click:header custom cta': 'click_header_cta', 1975 'button:click:hero custom cta': 'click_hero_cta', 1976 'button:click:eyebrow link': 'click_eyebrow_link', 1977 'button:click:leave review': 'click_leave_review', 1978 'phone:call': 'click_phone_call' 1979 }; 1980 1981 const eventProperties = Object.assign({ 1982 send_to: 'G-Z197VM6NWL', 1983 event_category: category 1984 }, additionalProps); 1985 1986 if (ppGA4Enabled) { 1987 action = 1988 UA_TO_GA4_ACTION_MAPPING[`${category}:${action}:${label}`] || 1989 UA_TO_GA4_ACTION_MAPPING[`${category}:${action}`] || 1990 action 1991 } else { 1992 eventProperties.event_label = label 1993 } 1994 1995 gtag('event', action, eventProperties); 1996 } 1997 1998 window.ppTrackEvent = ppTrackEvent 1999 window.ppGA4Enabled = '1' === '1'; 2000 }; 2001 2002 //lazy load images 2003 (function () { 2004 "use strict";var d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},yall=function(e){var a=function(a){if("IMG"===a.tagName){var e=a.parentNode;if("PICTURE"===e.tagName&&[].slice.call(e.querySelectorAll("source")).forEach(function(e){return t(e)}),!0===n.asyncDecodeSupport&&!0===n.replaceWithSupport){var o=new Image;t(o,a),o.decode().then(function(){for(var e=0;e<a.attributes.length;e++){var t=a.attributes[e].name,r=a.attributes[e].value;-1===n.ignoredImgAttributes.indexOf(t)&&o.setAttribute(t,r)}a.replaceWith(o)})}else t(a)}"VIDEO"===a.tagName&&([].slice.call(a.querySelectorAll("source")).forEach(function(e){return t(e)}),a.load()),"IFRAME"===a.tagName&&(a.src=a.dataset.src,a.removeAttribute("data-src")),a.classList.contains(i.lazyBackgroundClass)&&(a.classList.remove(i.lazyBackgroundClass),a.classList.add(i.lazyBackgroundLoaded))},t=function(e){var t=(1<arguments.length&&void 0!==arguments[1]&&arguments[1]).dataset||e.dataset;for(var r in t)-1!==n.acceptedDataAttributes.indexOf("data-"+r)&&(e.setAttribute(r,t[r]),e.removeAttribute("data-"+r))},r=function yallBack(){var e=!1;!1===e&&0<l.length&&(e=!0,setTimeout(function(){l.forEach(function(t){t.getBoundingClientRect().top<=window.innerHeight+i.threshold&&t.getBoundingClientRect().bottom>=-i.threshold&&"none"!==getComputedStyle(t).display&&(!0===i.idlyLoad&&!0===n.idleCallbackSupport?requestIdleCallback(function(){a(t)},c):a(t),t.classList.remove(i.lazyClass),l=l.filter(function(e){return e!==t}))}),e=!1,0===l.length&&!1===i.observeChanges&&n.eventsToBind.forEac
2004h(function(e){return e[0].removeEventListener(e[1],yallBack)})},i.throttleTime))},o=new Image,n={intersectionObserverSupport:"IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype,mutationObserverSupport:"MutationObserver"in window,idleCallbackSupport:"requestIdleCallback"in window,asyncDecodeSupport:"decode"in o,replaceWithSupport:"replaceWith"in o,ignoredImgAttributes:["data-src","data-sizes","data-media","data-srcset","src","srcset"],acceptedDataAttributes:["data-src","data-sizes","data-media","data-srcset"],eventsToBind:[[document,"scroll"],[document,"touchmove"],[window,"resize"],[window,"orientationchange"]]},i=d({lazyClass:"lazy",lazyBackgroundClass:"lazy-bg",lazyBackgroundLoaded:"lazy-bg-loaded",throttleTime:200,idlyLoad:!1,idleLoadTimeout:100,threshold:200,observeChanges:!1,observeRootSelector:"body",mutationObserverOptions:{childList:!0}},e),s="img."+i.lazyClass+",video."+i.lazyClass+",iframe."+i.lazyClass+",."+i.lazyBackgroundClass,c={timeout:i.idleLoadTimeout},l=[].slice.call(document.querySelectorAll(s));if(!0===n.intersectionObserverSupport){var u=new IntersectionObserver(function(e,r){e.forEach(function(e){if(!0===e.isIntersecting||0<e.intersectionRatio){var t=e.target;!0===i.idlyLoad&&!0===n.idleCallbackSupport?requestIdleCallback(function(){a(t)},c):a(t),t.classList.remove(i.lazyClass),r.unobserve(t),l=l.filter(function(e){return e!==t})}})},{rootMargin:i.threshold+"px 0%"});l.forEach(function(e){return u.observe(e)})}else n.eventsToBind.forEach(function(e){return e[0].addEventListener(e[1],r)}),r();!0===n.mutationObserverSupport&&!0===i.observeChanges&&new MutationObserver(function(e){e.forEach(function(e){[].slice.call(document.querySelectorAll(s)).forEach(function(e){-1===l.indexOf(e)&&(l.push(e),!0===n.intersectionObserverSupport?u.observe(e):r())})})}).observe(document.querySelector(i.observeRootSelector),i.mutationObserverOptions)}; 2005 document.addEventListener("DOMContentLoaded", yall); 2006 })(); 2007 </script>
2007 2008 2009 2010
2010<script type="text/javascript">!function(){var b=function(){window.__AudioEyeSiteHash = "fe15fd990595ca22eefdd5a7993fcc02"; var a=document.createElement("script");a.src="https://wsmcdn.audioeye.com/aem.js";a.type="text/javascript";a.setAttribute("async","");document.getElementsByTagName("body")[0].appendChild(a)};"complete"!==document.readyState?window.addEventListener?window.addEventListener("load",b):window.attachEvent&&window.attachEvent("onload",b):b()}();</script>
2010 2011 </body> 2012 </html>
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.