1<!doctype html> 2<html class="no-js" lang=""> 3 4<head> 5 <!--Specific Variables (phone, etc)-->
6<script src="https://static.punchlist.com/js/punchlist.min.js" defer></script>
vendor: 1 bytes, line 6
6
7<script src="https://d3ivs86j8l3a5r.cloudfront.net/flexBook.js"></script>
7 8<!--Meta--> 9<meta charset="UTF-8"> 10<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1"> 11 12<!--CSS--> 13<link href="/assets/style/style.min.css" rel="stylesheet" /> 14 15<!-- Favicon --> 16<link rel="apple-touch-icon" sizes="76x76" href="/apple-touch-icon.png"> 17<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> 18<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> 19<meta name="msapplication-TileColor" content="#da532c"> 20<meta name="theme-color" content="#ffffff"> 21 22 23 24 25<!--typekit--> 26<link rel="preconnect" href="https://fonts.googleapis.com"> 27<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 28<link href="https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Sora:[email protected]&display=swap" rel="stylesheet"> 29 <title>Tomalty Dental Care Locations & Contact Details</title> <meta name='description' content='Find the nearest Tomalty Dental Care office near you in Florida! Contact us today to learn more about our services and to book your dental appointment.' /></head> 30<section class="section-banner banner-c-home banner-contact" > 31 <div class="banner-overlay"></div> 32 <!-- Navigation --><nav class="nav-main"> 33 <div class="nav-container"> 34 <div class="nav-logo"> 35 <a href="/"> <img class="logo" src="/assets/img/logos/tomalty-dental-care.svg" alt='Tomalty Dental Care'></a> 36 </div> 37 <div class="nav-items-wrapper"> 38 <div class="nav-links"> 39 <button class="close-menu" aria-label="Close Menu"></button> 40 41 42 <div class="nav-dropdown"> 43 <button class="nav-item dropdown-toggle"> 44 About Us <span class="dropdown-arrow">â¼</span> 45 </button> 46 <div class="dropdown-menu location-picker-menu"> 47<a href="/about" >About Us</a> 48<a href="/meet-our-doctors">Meet the Doctors</a> 49 </div> 50 </div> 51 52 <div class="nav-dropdown"> 53 <button class="nav-item dropdown-toggle"> 54 Services <span class="dropdown-arrow">â¼</span> 55 </button> 56 <div class="dropdown-menu services-menu"> 57 <div class="dropdown-column"> 58 59 <a href="/all-on-x.php">All-on-X</a> 60 <a href="/dental-bridges.php">Dental Bridges</a> 61 <a href="/dental-cleanings.php">Dental Cleanings</a> 62 <a href="/dental-crowns.php">Dental Crowns</a> 63 <a href="/dental-fillings.php">Dental Fillings</a> 64 <a href="/dental-implants.php">Dental Implants</a> 65 <a href="/dentures.php">Dentures</a> 66 <a href="/emergency-dentist.php">Emergency</a> 67 <a href="/family-dentistry.php">Family Dentistry</a> 68 </div> 69 <div class="dropdown-column"> 70 <a href="/invisalign.php">Invisalign®</a> 71 <a href="/periodontics.php">Periodontics</a> 72 <a href="/preventative-care.php">Preventative Care</a> 73 <a href="/root-canal.php">Root Canal Therapy</a> 74 <a href="/sedation-dentistry.php">Sedation Dentistry</a> 75 <a href="/teeth-whitening.php">Teeth Whitening</a> 76 <a href="/tooth-extraction.php">Tooth Extractions</a> 77 <a href="/veneers.php">Veneers</a> 78 </div> 79 </div> 80 </div> 81 82 83 <div class="nav-dropdown"> 84 <button class="nav-item dropdown-toggle"> 85 Patient Resources <span class="dropdown-arrow">â¼</span> 86 </button> 87 <div class="dropdown-menu location-picker-menu"> 88 <a href="/new-patient-information">New Patient Information</a> 89 <a href="/financial-information">Financial Information</a> 90 <!-- <a href="/patient-specials">Patient Specials</a>--> 91 </div> 92 </div> 93 <a href="/contact" class="nav-item">Contact Us</a> 94 <div class="nav-dropdown"> 95 <button class="btn btn-locations nav-item dropdown-toggle"> 96 5 Locations to Serve You <span class="dropdown-arrow">â¼</span> 97 </button> 98 <div id="locationDropdown" class="dropdown-menu location-picker-menu"> 99 <a href="/dentist-boynton-canyon">Canyon Town Center - West Boynton</a> 100 101 <a href="/dentist-west-delray">West Delray Beach</a> 102 <a href="/dentist-central-boynton-beach">Fountains of Boynton - Central Boynton</a> 103 <a href="/dentist-lake-worth">Lantana/Lake Worth</a> 104 <a href="/dentist-coral-springs">Parkland/Coral Springs</a> 105 </div> 106 </div> 107 </div> 108 </div> 109 <button class="mobile-menu-toggle" aria-label="Toggle Menu">
110 <span></span> 111 <span></span> 112 <span></span> 113 </button> 114 </div> 115</nav> 116<div class="mobile-menu-overlay"></div><!-- Navigation --> 117 <!--Banner Content - Left Side With Modal Button--> 118 <div class="flex flex-banner section-top page-top"> 119 <div class="banner-content banner-content-home"> 120 <h1 class="banner-heading c-fff"> 121 <span> 122Contact 123 </span> Tomalty 124Dental Care 125 </h1> 126 <div class="banner-buttons"> 127 <a href="#" class="open-modal" data-modal="modalBooking"> 128 <button class="btn btn-banner btn-white" style=""> 129 Book Appointment 130 </button> 131 </a> 132<a href="/#ourLocations" class="scroll-link"> 133 <button class="btn btn-banner btn-white-outline"> 134 See Locations 135 </button> 136</a> 137 </div> 138 </div> 139 </div> 140 141 <!--Banner Content - Left Side --> 142</section> 143<section class="section-standard"> 144 <div class="container-content"> 145 <h2 class="heading text-center"> 146 <span class="c-lblue text-center">Contact Tomalty Dental Care</span> With Any Questions or Concerns 147 </h2> 148 <p class="text-center"> 149 If you have any questions, concerns, or would simply like more information about our services, the team at Tomalty Dental Care is here to help. We are always happy to assist you and ensure you feel confident and informed about your dental care. Please donât hesitate to reach out. We look forward to hearing from you and welcoming you to our Tomalty Dental Care family! 150 </p> 151 <br/> 152 <h2 class="heading text-center"> 153 Our Locations 154 </h2> 155 </div> 156 <div class="flex-items flex-items-locations flex-items-locations-contact"> 157 <div class="flex-item"> 158 <div class="flex-item-container"> 159 <img src="/assets/img/pages/home/location-central-boynton-beach.jpg"> 160 <h3 class="subheading"> 161 Central Boynton Beach 162 </h3> 163 <p> 164 6617 W. Boynton Beach Blvd.<br /> 165 Boynton Beach, FL 33437 166 </p> 167 <a href="tel:(561) 739-4181"> 168 (561) 739-4181 169 </a> 170 <a class="btn" href="/dentist-central-boynton-beach/"> 171 Learn More 172 </a> 173 </div> 174 </div> 175 176 <div class="flex-item"> 177 <div class="flex-item-container"> 178 <img src="/assets/img/pages/home/location-delray-beach.jpg"> 179 <h3 class="subheading"> 180 Delray Beach 181 </h3> 182 <p> 183 184 7901 Atlantic Ave, Suite 102,<br /> 185 Delray Beach, FL 33446 186 </p> 187 <a href="tel:(561) 450-2131"> 188 (561) 450-2131 189 </a> 190 <a class="btn" href="/dentist-west-delray/"> 191 Learn More 192 </a> 193 </div> 194 </div> 195 196 <div class="flex-item"> 197 <div class="flex-item-container"> 198 <img src="/assets/img/pages/home/location-lake-worth.jpg"> 199 <h3 class="subheading"> 200 Lantana/Lake Worth 201 </h3> 202 <p> 203 204 6346 Lantana Rd Ste 68,<br /> 205 Lake Worth, FL 33463 206 </p> 207 <a href="tel:(561) 566-6632"> 208 (561) 566-6632 209 </a> 210 <a class="btn" href="/dentist-lake-worth/"> 211 Learn More 212 </a> 213 </div> 214 </div> 215 216 <div class="flex-item"> 217 <div class="flex-item-container"> 218 <img src="/assets/img/pages/home/location-coral-springs.jpg"> 219 <h3 class="subheading"> 220 221 Parkland/<br />Coral Springs 222 </h3> 223 <p> 224 225 226 6069 Coral Ridge Dr<br /> Coral Springs, FL 33076 227 </p> 228 <a href="tel:(954) 379-8777"> 229 (954) 379-8777 230 </a> 231 <a class="btn" href="/dentist-coral-springs/"> 232 Learn More 233 </a> 234 </div> 235 </div> 236 237 <div class="flex-item"> 238 <div class="flex-item-container"> 239 <img src="/assets/img/pages/home/location-west-boynton-beach.jpg"> 240 <h3 class="subheading"> 241 West <br />
241Boynton Beach 242 </h3> 243 <p> 244 8794 W. Boynton Beach Blvd. Ste 110<br /> 245 Boynton Beach, FL 33472 246 </p> 247 <a href="tel:(561) 739-4292"> 248 (561) 739-4292 249 </a> 250 <a class="btn" href="/dentist-boynton-canyon/"> 251 Learn More 252 </a> 253 </div> 254 </div> 255 256</section> 257 258 259<footer> 260 261 <div class="flex flex-footer"> 262 <div class="container-logo"> 263 264 <img class="logo" src="/assets/img/logos/tomalty-dental-care.svg" alt='Tomalty Dental Care'> 265 </div> 266 <div class="flex flex-footer-locations"> 267 <ul> 268 <li class="location-header"> 269 5 Locations to Serve You 270 </li> 271 <li> 272 <a href="/dentist-central-boynton-beach">Central Boynton Beach</a> 273 </li> 274 <li> 275 <a href="/dentist-west-delray">Delray Beach</a> 276 </li> 277 278 </ul> 279 <ul class="footer-second-list"> 280 <li> 281 <a href="/dentist-lake-worth">Lantana/Lake Worth</a> 282 </li> 283 <li> 284 <a href="/dentist-coral-springs">Parkland/Coral Springs</a> 285 </li> 286 <li> 287 <a href="/dentist-boynton-canyon">West Boynton Beach</a> 288 </li> 289 </ul> 290 </div> 291 </div> 292 <div class="footer-info"> 293 <small><a href="/#services">Our Services</a></small> 294<small><a href="/about">About Us</a></small> 295<small><a href="/contact">Contact Us</a></small> 296<small><a href="privacy-policy">Privacy Policy</a></small> 297 </div> 298</footer> 299<!-- 300 This file is for site functionality, such as navigation scripts, lazy loading, and any embed scripts that can go in the footer, such as live chat. 301--> 302<link rel="stylesheet" href="https://use.typekit.net/mhj5tat.css"> 303<!--Navigation-->
304<script> 305document.addEventListener('DOMContentLoaded', function() { 306 const dropdowns = document.querySelectorAll('.nav-dropdown'); 307 const mobileToggle = document.querySelector('.mobile-menu-toggle'); 308 const navLinks = document.querySelector('.nav-links'); 309 const overlay = document.querySelector('.mobile-menu-overlay'); 310 const closeButton = document.querySelector('.close-menu'); 311 312 // Function to add hover events for desktop 313 function setupDesktopHover() { 314 if (window.innerWidth > 1024) { 315 dropdowns.forEach(dropdown => { 316 const menu = dropdown.querySelector('.dropdown-menu'); 317 dropdown.removeEventListener('mouseenter', showDropdown); 318 dropdown.removeEventListener('mouseleave', hideDropdown); 319 dropdown.addEventListener('mouseenter', showDropdown); 320 dropdown.addEventListener('mouseleave', hideDropdown); 321 }); 322 } 323 } 324 325 function showDropdown() { 326 if (window.innerWidth > 1024) { 327 const menu = this.querySelector('.dropdown-menu'); 328 menu.classList.add('active'); 329 } 330 } 331 332 function hideDropdown() { 333 if (window.innerWidth > 1024) { 334 const menu = this.querySelector('.dropdown-menu'); 335 menu.classList.remove('active'); 336 } 337 } 338 339 dropdowns.forEach(dropdown => { 340 const toggle = dropdown.querySelector('.dropdown-toggle'); 341 const menu = dropdown.querySelector('.dropdown-menu'); 342 343 toggle.addEventListener('click', (e) => { 344 if (window.innerWidth <= 1024) { 345 e.preventDefault(); 346 // Check if this menu is already active 347 const isActive = menu.classList.contains('active'); 348 closeAllDropdowns(); 349 // Only toggle if it wasn't active before 350 if (!isActive) { 351 menu.classList.add('active'); 352 } 353 } 354 }); 355 }); 356 357 function closeAllDropdowns() { 358 document.querySelectorAll('.dropdown-menu').forEach(menu => { 359 menu.classList.remove('active'); 360 }); 361 } 362 363 mobileToggle.addEventListener('click', () => { 364 navLinks.classList.toggle('active'); 365 overlay.classList.toggle('active'); 366 document.body.style.overflow = navLinks.classList.contains('active') ? 'hidden' : ''; 367 mobileToggle.classList.toggle('active'); 368 closeAllDropdowns(); 369 }); 370 371 closeButton.addEventListener('click', () => { 372 navLinks.classList.remove('active'); 373 overlay.classList.remove('active'); 374 document.body.style.overflow = ''; 375 mobileToggle.classList.remove('active'); 376 closeAllDropdowns(); 377 }); 378 379 overlay.addEventListener('click', () => { 380 navLinks.classList.remove('active'); 381 overlay.classList.remove('active'); 382 document.body.style.overflow = ''; 383 mobileToggle.classList.remove('active'); 384 closeAllDropdowns(); 385 }); 386 387 document.addEventListener('click', (e) => { 388 if (!e.target.closest('.nav-dropdown')) { 389 closeAllDropdowns(); 390 } 391 }); 392 393 window.addEventListener('resize', () => { 394 if (window.innerWidth > 1024) { 395 navLinks.classList.remove('active'); 396 overlay.classList.remove('active'); 397 document.body.style.overflow = ''; 398 closeAllDropdowns(); 399 setupDesktopHover(); 400 mobileToggle.classList.remove('active'); 401 } 402 }); 403 404 setupDesktopHover(); 405}); 406</script>
406 407 408<!--Navigation--> 409 410<!--Modal-->
411<script> 412 class Modal { 413 constructor(trigger) { 414 this.trigger = trigger; 415 this.modalClass = trigger.dataset.modalClass; 416 this.modal = document.querySelector(`.modal.${this.modalClass}`); 417 this.modalContent = this.modal.querySelector('.modal-wrapper'); 418 this.closeButton = this.modal.querySelector('.modal-close'); 419 this.isOpen = false; 420 this.init(); 421 } 422 423 init() { 424 this.trigger.addEventListener('click', () => this.open()); 425 this.closeButton.addEventListener('click', () => this.close()); 426 this.modal.addEventListener('click', (e) => { 427 if (e.target === this.modal) this.close(); 428 }); 429 document.addEventListener('keydown', (e) => { 430 if (e.key === 'Escape' && this.isOpen) this.close(); 431 }); 432 } 433 434 open() { 435 this.isOpen = true; 436 this.modal.classList.add('modal--active'); 437 this.modalContent.classList.add('modal-wrapper--active'); 438 document.body.style.overflow = 'hidden'; 439 } 440 441 close() { 442 this.isOpen = false; 443 this.modal.classList.remove('modal--active'); 444 this.modalContent.classList.remove('modal-wrapper--active'); 445 document.body.style.overflow = ''; 446 } 447} 448 449document.addEventListener('DOMContentLoaded', () => { 450 document.querySelectorAll('.modal-trigger').forEach(trigger => new Modal(trigger)); 451}); 452</script>
452 453 454<!--Contact Modal Import-->
455<script> 456document.addEventListener('DOMContentLoaded', function () { 457 console.log('Contact form script loaded.'); 458 const formLoadTime = Date.now(); 459 460 const officeConfig = {"name":"Tomalty Dental Care","phone":"(561) 532-5830","address":"8794 W. Boynton Beach Blvd. Ste. 110","city":"Boynton Beach","state":"FL","zip":"33472","email":"[email protected]","domain":"www.tomaltydentalcare.com","gtm_id":"GTM-P24RNDR2","logos":{"default":"\/assets\/img\/logos\/tomalty-dental-care.svg","white":"\/assets\/img\/logos\/tomalty-dental-care-white.svg"},"videos":{"implants":"XXXXX","extractions":"XXXXX","emergency":"XXXXX","invisalign":"XXXXX"},"email_settings":{"primary":"[email protected]","cc":"[email protected]","bcc":"[email protected]"},"social":{"facebook":"https:\/\/facebook.com\/tomaltydentalcare","instagram":"https:\/\/instagram.com\/tomaltydentalcare","google":"https:\/\/g.page\/tomaltydentalcare"}}; 461 const currentHost = "tomaltydentalcare.net"; 462 463 let officeLocation = 'Default'; 464 let officeSheetURL = ''; 465 let officeSheetName = ''; 466 let officeName = ''; 467 let officeContact = ''; 468 let officeContactCC = ''; 469 let officeContactBCC= ''; 470 let officeContactURL= ''; 471 472 if (officeConfig[currentHost]) { 473 const cfg = officeConfig[currentHost]; 474 officeLocation = cfg.officeLocation || officeLocation; 475 officeSheetURL = cfg.officeSheetURL || officeSheetURL; 476 officeSheetName = cfg.officeSheetName || officeSheetName; 477 officeName = cfg.officeName || officeName; 478 officeContact = cfg.officeContact || officeContact; 479 officeContactCC = cfg.officeContactCC || officeContactCC; 480 officeContactBCC = cfg.officeContactBCC|| officeContactBCC; 481 officeContactURL = cfg.officeContactURL|| officeContactURL; 482 } 483 484 // Define hidden page assignment map 485 const hiddenLocationMap = { 486 'dentist-coral-springs': 'CS', 487 'dentist-lake-worth': 'LA', 488 'dentist-central-boynton-beach': 'BF', 489 'dentist-west-delray': 'WDB', 490 'dentist-boynton-canyon': 'WB' 491 }; 492 493 // Get current page slug 494 const currentPage = window.location.pathname 495 .replace(/^\/|\/$/g, '') 496 .split('/').pop() 497 .replace('.html','') 498 .replace('.php',''); 499 500 const autoAssignedLocation = hiddenLocationMap[currentPage] || ''; 501 502 document.querySelectorAll('.contact-form').forEach(function (form) { 503 form.addEventListener('submit', function (event) { 504 event.preventDefault(); 505 506 const messageBox = form.querySelector('.message-box'); 507 const submitButton = form.querySelector('button[type="submit"]'); 508 const loader = form.querySelector('.loader img'); 509 510 messageBox.textContent = ''; 511 512 const firstName = form.querySelector('[name="firstName"]').value.trim(); 513 const lastName = form.querySelector('[name="lastName"]').value.trim(); 514 const email = form.querySelector('[name="email"]').value.trim(); 515 const phone = form.querySelector('[name="phone"]').value.trim(); 516 const selectEl = form.querySelector('#preferredOffice'); 517 518 // basic validations 519 if (!firstName || !lastName) { 520 messageBox.textContent = 'First name and last name cannot be blank.'; 521 messageBox.style.color = 'red'; 522 return; 523 } 524 525 const emailPattern = /^(?=.*[a-zA-Z])[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]*[a-zA-Z][a-zA-Z0-9.-]*\.[a-zA-Z]{2,}$/; 526 const blocked = ['iubridge.com']; 527 const domain = email.split('@')[1] || ''; 528 if (!email || !emailPattern.test(email) || blocked.includes(domain)) { 529 messageBox.textContent = 'Please enter a valid email address.'; 530 messageBox.style.color = 'red'; 531 return; 532 } 533 534 const rawPhone = phone.replace(/[\s\-().]/g, ''); 535if (!/^\d{10,15}$/.test(rawPhone)) { 536 messageBox.textContent = 'Please enter a valid phone number (10â15 digits).'; 537 messageBox.style.color = 'red'; 538 return; 539} 540 541 // Determine location value 542 let mappedOfficeLocation = ''; 543 544if (autoAssignedLocation) { 545 mappedOfficeLocation = autoAssignedLocation; 546 console.log('Auto-assigned location:', mappedOfficeLocation); 547} else if (selectEl && selectEl.value.trim()) { 548 mappedOfficeLocation = selectEl.value.trim(); 549} else { 550 messageBox.textContent = 'Please select a Preferred Office.'; 551 messageBox.style.color = 'red'; 552 return; 553} 554 555 // disable & loader 556 submitButton.disabled = true; 557 submitButton.style.opacity = '0.6'; 558 if (loader) loader.style.display = 'inline-block'; 559 560 const timeToSubmit = (Date.now() - formLoadTime) / 1000; 561 const timeInput = form.querySelector('#timeToSubmit'); 562 if (timeInput) timeInput.value = timeToSubmit; 563 564 const formData = new FormData(form); 565 formData.set('phone', rawPhone); // or formData.append() if not already present 566 formData.append('officeLocation', mappedOfficeLocation); 567 formData.append('timeToSubmit', timeToSubmit); 568 formData.append('type', getPageType()); 569 formData.append('formPageURL', window.location.href); 570 formData.append('officeName', officeName); 571 formData.append('officeSheetURL', officeSheetURL); 572 formData.append('officeSheetName', officeSheetName); 573 formData.append('officeContact', officeContact); 574 formData.append('officeContactCC', officeContactCC); 575 formData.append('officeContactBCC',officeContactBCC); 576 formData.append('officeContactURL',officeContactURL); 577 578 fetch('https://conflux.324creative.us/contact/ajaxCorp.php', { 579 method: 'POST', 580 body: formData 581 }) 582 .then(r => r.json()) 583 .then(data => { 584 submitButton.disabled = false;
585 submitButton.style.opacity = '1'; 586 if (loader) loader.style.display = 'none'; 587 588 if (data.status === 'success') { 589 submitButton.style.display = 'none'; 590 messageBox.style.color = '#9fd6ff'; 591 messageBox.style.fontWeight = 'bold'; 592 messageBox.textContent = 'Thank you for your submission. We will contact you soon.'; 593 if (window.dataLayer) { 594 dataLayer.push({ 595 event: getPageType(), 596 pageType: getPageType(), 597 formAction: 'submit' 598 }); 599 } 600 } else { 601 const msg = data.message || 'An error occurred. Please try again later.'; 602 messageBox.style.color = 'red'; 603 messageBox.style.fontWeight = 'bold'; 604 messageBox.textContent = msg; 605 } 606 }) 607 .catch(err => { 608 console.error(err); 609 messageBox.textContent = 'An error occurred. Please try again.'; 610 messageBox.style.color = 'red'; 611 submitButton.disabled = false; 612 submitButton.style.opacity = '1'; 613 if (loader) loader.style.display = 'none'; 614 }); 615 }); 616 }); 617 618 function getPageType() { 619 let p = window.location.pathname; 620 p = p.endsWith('/') ? p.slice(0,-1) : p; 621 p = p.substring(p.lastIndexOf('/')+1).replace('.html','').replace('.php',''); 622 const map = { 623 'dental-implant-special': 'Implants', 624 // ⦠your other mappings ⦠625 }; 626 return map[p] || 'Default Type'; 627 } 628}); 629</script>
629 630<!--modal--> 631<div id="modalBooking" class="modal-overlay"> 632 <div class="modal-content text-center"> 633 <span class="close-modal">×</span> 634 <div class="text-center"> 635 <img class="logo" src="/assets/img/logos/tomalty-dental-care.svg" alt='Tomalty Dental Care'> 636 </div> 637 <div class="contact-form-holder text-center"> 638 639 640 <h2 class="heading location-heading" style="color:#fff"> 641 Choose your location 642 </h2> 643 644 <!-- BUTTONS --> 645 <div class="location-buttons" id="locationButtons"> 646 <!-- start modal nav --> 647<a href="#" onclick="initFlexBook('https://flexbook.me/canyon/website'); return false;"> 648 <div style="border-radius: 10px; background-color: #48b3ff; padding: 14px 26px; font-size: 16px; font-family: arial; color: #fff;">West Boynton</div> 649</a> 650<a href="#" onclick="initFlexBook('https://flexbook.me/delray/website'); return false;"> 651 <div style="border-radius: 10px; background-color: #48b3ff; padding: 14px 26px; font-size: 16px; font-family: arial; color: #fff;">Delray Beach</div> 652</a> 653<a href="#" onclick="initFlexBook('https://flexbook.me/tomaltyden/website'); return false;"> 654 <div style="border-radius: 10px; background-color: #48b3ff; padding: 14px 26px; font-size: 16px; font-family: arial; color: #fff;">Central Boynton</div> 655</a> 656 <a href="#" onclick="initFlexBook('https://flexbook.me/tomaltylw/website'); return false;"> 657 <div style="border-radius: 10px; background-color: #48b3ff; padding: 14px 26px; font-size: 16px; font-family: arial; color: #fff;">Lantana</div> 658</a> 659 <a href="#" onclick="initFlexBook('https://flexbook.me/parkland/website'); return false;"> 660 <div style="border-radius: 10px; background-color: #48b3ff; padding: 14px 26px; font-size: 16px; font-family: arial; color: #fff;">Parkland</div> 661</a> 662 663 <!-- end modal nav --> 664 </div> 665 666 <!-- FORMS --> 667 <div class="location-forms"> 668 669 <div class="form-wrapper" id="form-boynton"> 670 <iframe 671 src="https://fountainslinks.tomaltydentalcare.com/widget/form/qmGI3yHMl1cSOHWcLLeZ" 672 title="West Boynton Form"> 673 </iframe> 674
674<script src="https://fountainslinks.tomaltydentalcare.com/js/form_embed.js"></script>
674 675 </div> 676 677 <div class="form-wrapper" id="form-canyon"> 678 <iframe 679 src="https://canyonlinks.tomaltydentalcare.com/widget/form/ixNhZqhS2dMjQiJNYVce" 680 title="Delray Beach Form"> 681 </iframe> 682
682<script src="https://canyonlinks.tomaltydentalcare.com/js/form_embed.js"></script>
682 683 </div> 684 685 <div class="form-wrapper" id="form-westdelray"> 686 <iframe 687 src="https://westdelraylinks.tomaltydentalcare.com/widget/form/3tvZKSRoQ2gG7EUf2aAg" 688 title="West Delray Form"> 689 </iframe> 690
690<script src="https://westdelraylinks.tomaltydentalcare.com/js/form_embed.js"></script>
690 691 </div> 692 693 <div class="form-wrapper" id="form-lantana"> 694 <iframe 695 src="https://westdelraylinks.tomaltydentalcare.com/widget/form/3tvZKSRoQ2gG7EUf2aAg" 696 title="Lantana Form"> 697 </iframe> 698 </div> 699 700 </div> 701<style> 702 .location-form-selector { 703 max-width: 900px; 704 margin: 0 auto; 705 text-align: center; 706} 707 708/* HEADING */ 709.location-heading { 710 margin-bottom: 30px; 711 overflow: hidden; 712 max-height: 100px; 713 714 transition: 715 opacity 0.4s ease, 716 max-height 0.4s ease, 717 margin 0.4s ease; 718} 719 720.location-heading.fade-out { 721 opacity: 0; 722 max-height: 0; 723 margin: 0; 724} 725 726/* BUTTONS */ 727.location-buttons { 728 display: flex; 729 gap: 20px; 730 justify-content: center; 731 flex-wrap: wrap; 732 733 overflow: hidden; 734 max-height: 300px; 735 margin-bottom: 30px; 736 737 transition: 738 opacity 0.4s ease, 739 max-height 0.4s ease, 740 margin 0.4s ease; 741} 742 743.location-buttons.fade-out { 744 opacity: 0; 745 max-height: 0; 746 margin: 0; 747 pointer-events: none; 748} 749 750.location-buttons button { 751 padding: 14px 26px; 752 border-radius: 8px; 753 border: none; 754 background: #48b3ff; 755 color: #fff; 756 font-size: 1rem; 757 cursor: pointer; 758 transition:.3s; 759 760} 761 762/* FORMS */ 763.location-forms { 764 margin-top: 0px; 765 max-height:680px; 766} 767 768.form-wrapper { 769 display: none; 770 opacity: 0; 771 transition: opacity 0.4s ease; 772} 773 774.form-wrapper.active { 775 display: block; 776} 777 778.form-wrapper.fade-in { 779 opacity: 1; 780} 781 782.form-wrapper iframe { 783 width: 100%; 784 height: 1095px; 785 border: none; 786 border-radius: 20px; 787} 788 789 </style>
790<script> 791 const buttons = document.querySelectorAll('.location-buttons button'); 792 const buttonContainer = document.getElementById('locationButtons'); 793 const heading = document.querySelector('.location-heading'); 794 const forms = document.querySelectorAll('.form-wrapper'); 795 796 buttons.forEach(button => { 797 button.addEventListener('click', () => { 798 const target = button.dataset.target; 799 800 // Fade out heading + buttons 801 heading.classList.add('fade-out'); 802 buttonContainer.classList.add('fade-out'); 803 804 // Hide all forms 805 forms.forEach(form => { 806 form.classList.remove('active', 'fade-in'); 807 }); 808 809 // Show selected form 810 const activeForm = document.getElementById(`form-${target}`); 811 activeForm.classList.add('active'); 812 813 // Allow display change before fade 814 setTimeout(() => { 815 activeForm.classList.add('fade-in'); 816 }, 50); 817 }); 818 }); 819</script>
819 820 </div> 821 </div> 822</div> 823<style> 824/* Modal Overlay */ 825.modal-overlay { 826 display: none; 827 position: fixed; 828 z-index: 1000; 829 left: 0; 830 top: 0; 831 width: 100%; 832 height: 100%; 833 background-color: rgba(0, 0, 0, 0.6); 834} 835 836/* Modal Content */ 837.modal-content { 838 position: absolute; 839 top: 50%; 840 left: 50%; 841 transform: translate(-50%, -50%); 842 background-color: #144367; 843 padding: 30px; 844 width: 90%; 845 max-width: 500px; 846 box-shadow: 0 4px 8px rgba(0,0,0,0.2); 847 border-radius: 10px; 848} 849 850/* Close Button */ 851.close-modal { 852 position: absolute; 853 top: 10px; 854 right: 15px; 855 font-size: 24px; 856 font-weight: bold; 857 color: #fff; 858 cursor: pointer; 859} 860 861/* Animation for modal */ 862.modal-overlay.show { 863 display: block; 864 animation: fadeIn 0.3s ease-out; 865} 866 867@keyframes fadeIn { 868 from { opacity: 0; } 869 to { opacity: 1; } 870} 871 872</style>
873<script> 874document.addEventListener("DOMContentLoaded", function () { 875 // Get modal and open/close buttons 876 const openModalButtons = document.querySelectorAll(".open-modal"); 877 const closeModalButtons = document.querySelectorAll(".close-modal"); 878 const modals = document.querySelectorAll(".modal-overlay"); 879 880 // Function to open modal 881 openModalButtons.forEach(button => { 882 button.addEventListener("click", function (e) { 883 e.preventDefault(); 884 const modalId = this.getAttribute("data-modal"); 885 const modal = document.getElementById(modalId); 886 if (modal) { 887 modal.classList.add("show"); 888 } 889 }); 890 }); 891 892 // Function to close modal 893 closeModalButtons.forEach(button => { 894 button.addEventListener("click", function () { 895 this.closest(".modal-overlay").classList.remove("show"); 896 }); 897 }); 898 899 // Close modal when clicking outside modal content 900 modals.forEach(modal => { 901 modal.addEventListener("click", function (e) { 902 if (e.target === this) { 903 this.classList.remove("show"); 904 } 905 }); 906 }); 907 908 // Close modal on ESC key press 909 document.addEventListener("keydown", function (e) { 910 if (e.key === "Escape") { 911 modals.forEach(modal => modal.classList.remove("show")); 912 } 913 }); 914}); 915</script>
915 916 917 <!--modal --> 918<style> 919 .nav-main { 920 background-color: transparent; 921 transition: background-color .25s ease; 922 } 923 .nav-main.nav-solid { 924 background-color: #144367; 925 } 926</style> 927
928<script> 929document.addEventListener('DOMContentLoaded', () => { 930 const nav = document.querySelector('.nav-main'); 931 if (!nav) return; 932 933 const THRESHOLD = 0; // make solid after any scroll (>0). Change to 600 for 600px. 934 935 const update = () => { 936 if (window.scrollY > THRESHOLD) nav.classList.add('nav-solid'); 937 else nav.classList.remove('nav-solid'); 938 }; 939 940 window.addEventListener('scroll', update, { passive: true }); 941 window.addEventListener('resize', update, { passive: true }); 942 update(); // set initial state on load 943}); 944</script>
vendor: 2 bytes, line 944
944
945<script> 946document.addEventListener("DOMContentLoaded", function () { 947 // ====== CONFIG ====== 948 const OFFSET = 100; // match your fixed header height 949 const HOME_URL = new URL("/", window.location.origin); // your site's homepage 950 951 // ====== HELPERS ====== 952 function getIdFromHref(href) { 953 if (!href) return ""; 954 try { 955 // Supports "#id", "/#id", "https://site.com/#id" 956 const u = href.startsWith("#") 957 ? new URL(window.location.href) 958 : new URL(href, window.location.origin); 959 return (u.hash || "").replace(/^#/, ""); 960 } catch { 961 return href.replace(/^#/, ""); 962 } 963 } 964 965 function scrollToId(id, behavior = "smooth") { 966 const el = document.getElementById(id); 967 if (!el) return; 968 const y = el.getBoundingClientRect().top + window.pageYOffset - OFFSET; 969 window.scrollTo({ top: y, behavior }); 970 } 971 972 function onHome() { 973 // Treat "/" as home. If your home lives in a subdir, adjust HOME_URL above. 974 return window.location.pathname === HOME_URL.pathname; 975 } 976 977 // ====== CLICK HANDLER ====== 978 document.querySelectorAll(".scroll-link").forEach(link => { 979 link.addEventListener("click", function (e) { 980 const id = getIdFromHref(this.getAttribute("href")); 981 if (!id) return; 982 983 // Always prevent default so we control behavior consistently 984 e.preventDefault(); 985 986 if (onHome()) { 987 // Same-page smooth scroll 988 scrollToId(id); 989 // Keep the hash in the URL without jumping 990 history.pushState(null, "", "#" + id); 991 } else { 992 // Navigate to home with hash; homepage script will do the smooth offset 993 window.location.href = HOME_URL.toString() + "#" + encodeURIComponent(id); 994 } 995 }); 996 }); 997 998 // ====== HANDLE DIRECT VISITS TO HOME WITH A HASH ====== 999 // If someone lands on the homepage with /#someId, do an offset scroll smoothly. 1000 if (onHome() && window.location.hash) { 1001 const id = window.location.hash.replace(/^#/, ""); 1002 // Let images/fonts lay out first so the offset is accurate 1003 setTimeout(() => scrollToId(id, "smooth"), 50); 1004 } 1005 1006 // Optional: respond to manual hash changes (e.g., back/forward) 1007 window.addEventListener("hashchange", () => { 1008 if (!onHome()) return; 1009 const id = window.location.hash.replace(/^#/, ""); 1010 setTimeout(() => scrollToId(id, "smooth"), 0); 1011 }); 1012}); 1013</script>
vendor: 2 bytes, line 1013
1013
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.