Video Testimonials | Dr. Kathuria's Dentistry
20+ YearsOf Experience
ExpertDental Team
AdvancedTechnology
Sterile & SafeEnvironment
15,000+Happy Smiles
4.9/5 Based on 500+ Reviews
Home
The Practice
Treatments
Credibility
Cases
Charges Smile Analysis Contact Us Book Appointment
Video Testimonials

PATIENT VIDEO TESTIMONIALS

We thanks our patients to show their faith in our dental expertise and provide this video testimonial to encourage more and more people to visit Dr. Kathuria’s Dentistry, New Delhi, India.


Book an Appointment

Fill in your details and we'll call you within 2 hours to confirm.

{ entries.forEach(e => { if (e.isIntersecting) e.target.classList.add('visible'); }); }, { threshold: 0.1, rootMargin: '0px 0px -60px 0px' }); document.querySelectorAll('.reveal, .reveal-left, .reveal-right').forEach(el => revealObs.observe(el)); /* ── ANIMATED COUNTERS ── */ function animCount(el) { if (el.dataset.done) return; el.dataset.done = true; const dec = el.dataset.decimal; const target = dec ? parseFloat(dec) : parseInt(el.dataset.target || 0); const suffix = el.dataset.suffix || ''; const dur = 2200; const start = performance.now(); const tick = (now) => { const p = Math.min((now - start) / dur, 1); const ease = 1 - Math.pow(1 - p, 4); const val = dec ? (target * ease).toFixed(1) : Math.floor(target * ease); el.textContent = val + suffix; if (p < 1) requestAnimationFrame(tick); else el.textContent = (dec || target) + suffix; }; requestAnimationFrame(tick); } const counterObs = new IntersectionObserver((entries) => { entries.forEach(e => { if (e.isIntersecting) animCount(e.target); }); }, { threshold: 0.5 }); document.querySelectorAll('.stat-num').forEach(el => counterObs.observe(el)); /* ── BANNER SLIDER (swipe) ── */ (function() { const track = document.querySelector('.hs-track'); const imgs = document.querySelectorAll('.hs-track .hs-img'); const dots = document.querySelectorAll('.hs-dot'); if (!track || !imgs.length) return; let cur = 0, timer, startX = 0; function goTo(n) { dots[cur]?.classList.remove('on'); cur = (n + imgs.length) % imgs.length; track.style.transform = 'translateX(-' + (cur * 100) + '%)'; dots[cur]?.classList.add('on'); resetTimer(); } function resetTimer() { clearInterval(timer); timer = setInterval(function(){ goTo(cur + 1); }, 5000); } dots.forEach(function(d, i){ d.onclick = function(){ goTo(i); }; }); // Touch swipe track.addEventListener('touchstart', function(e){ startX = e.touches[0].clientX; }, {passive:true}); track.addEventListener('touchend', function(e){ var diff = startX - e.changedTouches[0].clientX; if (Math.abs(diff) > 40) goTo(cur + (diff > 0 ? 1 : -1)); }, {passive:true}); resetTimer(); })(); /* ── TESTIMONIAL SLIDER ── */ (function() { const track = document.getElementById('testiTrack'); const pips = document.querySelectorAll('.testi-pip'); const prev = document.getElementById('testiPrev'); const next = document.getElementById('testiNext'); if (!track) return; const cards = track.children; let cur = 0; function goTo(n) { cur = (n + cards.length) % cards.length; track.style.transform = `translateX(-${cur * 100}%)`; pips.forEach((p, i) => p.classList.toggle('on', i === cur)); } if (prev) prev.onclick = () => goTo(cur - 1); if (next) next.onclick = () => goTo(cur + 1); pips.forEach((p, i) => p.onclick = () => goTo(i)); setInterval(() => goTo(cur + 1), 7000); })(); /* ── BEFORE/AFTER DRAG SLIDER ── */ document.querySelectorAll('.ba-wrap').forEach(wrap => { const divider = wrap.querySelector('.ba-divider'); const panel = wrap.querySelector('.ba-before-panel'); if (!divider || !panel) return; let dragging = false; function setPos(clientX) { const rect = wrap.getBoundingClientRect(); let pct = (clientX - rect.left) / rect.width; pct = Math.max(0.05, Math.min(0.95, pct)); panel.style.width = (pct * 100) + '%'; divider.style.left = (pct * 100) + '%'; } divider.addEventListener('mousedown', e => { dragging = true; e.preventDefault(); }); divider.addEventListener('touchstart', () => { dragging = true; }, { passive: true }); document.addEventListener('mouseup', () => dragging = false); document.addEventListener('touchend', () => dragging = false); document.addEventListener('mousemove', e => { if (dragging) setPos(e.clientX); }); document.addEventListener('touchmove', e => { if (dragging) setPos(e.touches[0].clientX); }, { passive: true }); }); /* ── COST CALCULATOR ── */ (function() { const panel = document.getElementById('calcPanel'); if (!panel) return; const items = panel.querySelectorAll('input[type=checkbox]'); const totalEl = document.getElementById('calcTotal'); const savingsEl= document.getElementById('calcSavings'); function update() { let total = 0, saved = 0; items.forEach(cb => { if (cb.checked) { total += parseInt(cb.dataset.price || 0); saved += parseInt(cb.dataset.savings || 0); } }); if (totalEl) totalEl.textContent = total > 0 ? '₹' + total.toLocaleString('en-IN') : '₹ 0'; if (savingsEl) savingsEl.textContent = saved > 0 ? `You save ₹${saved.toLocaleString('en-IN')} vs international pricing` : ''; } items.forEach(cb => cb.addEventListener('change', update)); update(); })(); /* ── FLOATING APPOINTMENT PANEL ── */ (function() { const floatBtn = document.getElementById('floatBookBtn'); const panel = document.getElementById('floatPanel'); const closeBtn = document.getElementById('fpClose'); if (!floatBtn || !panel) return; floatBtn.onclick = () => panel.classList.toggle('open'); if (closeBtn) closeBtn.onclick = () => panel.classList.remove('open'); })(); /* ── FAQ ACCORDION ── */ document.querySelectorAll('.faq-q').forEach(btn => { btn.addEventListener('click', () => { const item = btn.closest('.faq-item'); const wasOpen = item.classList.contains('open'); document.querySelectorAll('.faq-item.open').forEach(i => i.classList.remove('open')); if (!wasOpen) item.classList.add('open'); }); }); /* ── LIGHTBOX ── */ const lightbox = document.getElementById('lightbox'); const lbImg = document.getElementById('lbImg'); const lbClose = document.getElementById('lbClose'); function openLB(src) { if (!lightbox || !lbImg) return; lbImg.src = src; lightbox.classList.add('open'); document.body.style.overflow = 'hidden'; } function closeLB() { if (lightbox) lightbox.classList.remove('open'); document.body.style.overflow = ''; } if (lbClose) lbClose.onclick = closeLB; if (lightbox) lightbox.addEventListener('click', e => { if (e.target === lightbox) closeLB(); }); document.querySelectorAll('[data-lightbox]').forEach(el => { el.style.cursor = 'zoom-in'; el.addEventListener('click', () => openLB(el.dataset.lightbox)); }); /* ── FORM SUBMIT ── */ document.querySelectorAll('.smart-form').forEach(form => { form.addEventListener('submit', e => { e.preventDefault(); /* Validate required fields */ const requiredFields = form.querySelectorAll('[required]'); let valid = true; requiredFields.forEach(f => { if (!f.value || (f.type === 'checkbox' && !f.checked)) { f.focus(); valid = false; } }); if (!valid) return; const submitBtn = form.querySelector('button[type="submit"]'); const originalText = submitBtn ? submitBtn.innerHTML : ''; if (submitBtn) { submitBtn.disabled = true; submitBtn.innerHTML = ' Sending...'; } /* No backend — show success toast after brief delay */ setTimeout(() => { showToast('Thank you! We\u2019ll call you within 2 hours.'); form.reset(); const panel = document.getElementById('floatPanel'); if (panel) panel.classList.remove('open'); if (submitBtn) { submitBtn.disabled = false; submitBtn.innerHTML = originalText; } }, 600); }); }); /* ── TOAST ── */ function showToast(msg, type = 'success') { const t = document.getElementById('toast'); if (!t) return; t.textContent = msg; t.style.borderLeftColor = type === 'error' ? '#EF4444' : 'var(--olive)'; t.classList.add('show'); setTimeout(() => t.classList.remove('show'), 4500); } /* ── SMOOTH SCROLL ── */ document.querySelectorAll('a[href^="#"]').forEach(a => { a.addEventListener('click', e => { const target = document.querySelector(a.getAttribute('href')); if (target) { e.preventDefault(); target.scrollIntoView({ behavior: 'smooth', block: 'start' }); } }); }); /* ── FILTER TABS ── */ document.querySelectorAll('.filter-bar').forEach(bar => { bar.querySelectorAll('.tab-btn').forEach(btn => { btn.addEventListener('click', () => { bar.querySelectorAll('.tab-btn').forEach(b => b.classList.remove('active')); btn.classList.add('active'); const filter = btn.dataset.filter; const gridSel = bar.dataset.target; const grid = gridSel ? document.querySelector(gridSel) : bar.nextElementSibling; if (!grid) return; grid.querySelectorAll('[data-category]').forEach(item => { const show = filter === 'all' || item.dataset.category.includes(filter); item.style.display = show ? '' : 'none'; }); }); }); }); /* ── FAB SCROLL TO TOP ── */ const fabUp = document.getElementById('fabUp'); if (fabUp) { window.addEventListener('scroll', () => { fabUp.classList.toggle('show', window.scrollY > 400); }, { passive: true }); fabUp.addEventListener('click', e => { e.preventDefault(); window.scrollTo({ top: 0, behavior: 'smooth' }); }); } /* ── ACTIVE NAV LINK ── */ const currentPage = window.location.pathname.split('/').pop() || 'index.html'; document.querySelectorAll('.nav-links a').forEach(a => { const href = a.getAttribute('href') || ''; if (href.split('#')[0] === currentPage || (currentPage === '' && href === 'index.html')) { a.classList.add('active'); } }); /* ── SMILE CONFIDENCE SCORE QUIZ ── */ (function() { const questions = document.querySelectorAll('.scs-q'); const progressFill = document.getElementById('scsProgressFill'); const stepLabel = document.getElementById('scsStepLabel'); const questionsWrap = document.getElementById('scsQuestions'); const resultPanel = document.getElementById('scsResult'); const ringFill = document.getElementById('scsRingFill'); const scoreNum = document.getElementById('scsScoreNum'); const resultBadge = document.getElementById('scsResultBadge'); const resultTitle = document.getElementById('scsResultTitle'); const resultDesc = document.getElementById('scsResultDesc'); const treatmentsEl = document.getElementById('scsTreatments'); const retakeBtn = document.getElementById('scsRetake'); if (!questions.length) return; const scores = {}; const totalQ = questions.length; const circumference = 2 * Math.PI * 52; const results = [ { min: 85, badge: 'Excellent Smile', badgeClass: 'badge-excellent', title: 'Your Smile is in Great Shape!', desc: 'You have a healthy, confident smile. A routine check-up and professional cleaning every 6 months will keep it that way.', treatments: ['Professional Cleaning', 'Zoom Whitening', 'Routine Check-up'] }, { min: 65, badge: 'Good Smile', badgeClass: 'badge-good', title: 'Your Smile Needs a Little Polish', desc: 'You\'re in good shape but there\'s room for improvement. A consultation with our specialists will reveal quick wins.', treatments: ['Zoom Whitening', 'Clear Aligners', 'Dental Cleaning', 'Composite Bonding'] }, { min: 45, badge: 'Needs Attention', badgeClass: 'badge-fair', title: 'Your Smile Deserves an Upgrade', desc: 'Several areas need professional attention. Our experts can transform your smile in as little as 3-5 days.', treatments: ['Smile Makeover', 'Porcelain Veneers', 'Teeth Whitening', 'Clear Aligners', 'Gum Treatment'] }, { min: 0, badge: 'Urgent Care Needed', badgeClass: 'badge-needs', title: 'Your Smile Needs Immediate Care', desc: 'Please don\'t delay - early treatment saves teeth, reduces costs, and restores your confidence. Book a free consultation today.', treatments: ['Full Mouth Rehabilitation', 'Dental Implants', 'Root Canal', 'Smile Makeover', 'Laser Gum Treatment'] } ]; function showQuestion(n) { questions.forEach(q => q.classList.remove('active')); const current = document.querySelector('.scs-q[data-q="' + n + '"]'); if (current) current.classList.add('active'); const pct = (n / totalQ) * 100; if (progressFill) progressFill.style.width = pct + '%'; if (stepLabel) stepLabel.textContent = 'Question ' + n + ' of ' + totalQ; } function showResult() { const total = Object.values(scores).reduce((a, b) => a + b, 0); const maxScore = totalQ * 4; const pct = Math.round((total / maxScore) * 100); const res = results.find(r => pct >= r.min); if (questionsWrap) questionsWrap.style.display = 'none'; if (progressFill) progressFill.style.width = '100%'; if (stepLabel) stepLabel.textContent = 'Your Results'; if (resultPanel) resultPanel.classList.add('show'); if (scoreNum) scoreNum.textContent = pct; const dash = (pct / 100) * circumference; if (ringFill) { const color = pct >= 85 ? '#5B7B3A' : pct >= 65 ? '#C6A94D' : pct >= 45 ? '#fbbf24' : '#f87171'; ringFill.style.stroke = color; setTimeout(() => { ringFill.style.strokeDasharray = dash + ' ' + circumference; }, 100); } if (resultBadge) { resultBadge.textContent = res.badge; resultBadge.className = 'scs-result-badge ' + res.badgeClass; } if (resultTitle) resultTitle.textContent = res.title; if (resultDesc) resultDesc.textContent = res.desc; if (treatmentsEl) { treatmentsEl.innerHTML = res.treatments.map(t => '' + t + '').join(''); } } document.querySelectorAll('.scs-opt').forEach(btn => { btn.addEventListener('click', function() { const qNum = parseInt(this.dataset.q); const score = parseInt(this.dataset.score); scores[qNum] = score; const nextQ = qNum + 1; if (nextQ <= totalQ) showQuestion(nextQ); else showResult(); }); }); if (retakeBtn) { retakeBtn.addEventListener('click', function() { Object.keys(scores).forEach(k => delete scores[k]); if (resultPanel) resultPanel.classList.remove('show'); if (questionsWrap) questionsWrap.style.display = ''; if (ringFill) ringFill.style.strokeDasharray = '0 ' + circumference; showQuestion(1); }); } showQuestion(1); })(); /* ── TESTIMONIALS — AUTO SCROLL + CLICK ── */ (function() { var cards = document.querySelectorAll('.tm-card'); var featText = document.getElementById('tmFeatText'); var featName = document.getElementById('tmFeatName'); var featAv = document.getElementById('tmFeatAv'); var featCountry = document.getElementById('tmFeatCountry'); var featured = document.querySelector('.tm-featured'); if (!cards.length || !featText) return; var current = -1; // start at -1 so first goTo(0) works (Bill Yakimec is default) function showCard(idx) { var card = cards[idx]; // fade out if (featured) featured.style.opacity = '0'; setTimeout(function() { featText.textContent = card.getAttribute('data-text').replace(/"/g, '"'); featName.textContent = card.getAttribute('data-name'); featAv.textContent = card.getAttribute('data-av'); featCountry.innerHTML = 'flag ' + card.getAttribute('data-country'); // highlight active card cards.forEach(function(c) { c.style.borderColor = 'rgba(255,255,255,.08)'; c.style.background = 'rgba(255,255,255,.06)'; }); card.style.borderColor = 'var(--gold)'; card.style.background = 'rgba(255,255,255,.12)'; // fade in if (featured) featured.style.opacity = '1'; }, 300); current = idx; } // click on cards cards.forEach(function(card, i) { card.addEventListener('click', function() { showCard(i); clearInterval(autoT); autoT = setInterval(next, 5000); }); }); function next() { showCard((current + 1) % cards.length); } // auto rotate every 5s var autoT = setInterval(next, 5000); // pause on hover var section = featText.closest('section'); if (section) { section.addEventListener('mouseenter', function() { clearInterval(autoT); }); section.addEventListener('mouseleave', function() { autoT = setInterval(next, 5000); }); } // add transition to featured if (featured) featured.style.transition = 'opacity .3s ease'; // highlight first card cards[0].style.borderColor = 'var(--gold)'; cards[0].style.background = 'rgba(255,255,255,.12)'; })(); /* ── TESTIMONIALS + GOOGLE REVIEWS AUTO SCROLL ── */ (function() { document.querySelectorAll('.testi-hscroll, .google-grid, .tech-hscroll').forEach(function(el) { var paused = false; function autoScroll() { if (paused) return; if (el.scrollLeft + el.clientWidth >= el.scrollWidth - 2) { el.scrollLeft = 0; } else { el.scrollLeft += 0.5; } } var timer = setInterval(autoScroll, 20); el.addEventListener('mouseenter', function() { paused = true; }); el.addEventListener('mouseleave', function() { paused = false; }); el.addEventListener('touchstart', function() { paused = true; }); el.addEventListener('touchend', function() { setTimeout(function() { paused = false; }, 3000); }); }); })(); /* ── TECH HORIZONTAL SCROLL ── */ (function() { var mob = document.getElementById('_x_mob'); if (!mob) return; // Single delegated click handler mob.addEventListener('click', function(e) { var accHead = e.target.closest('.mob-acc-head'); if (accHead) { e.preventDefault(); e.stopImmediatePropagation(); var acc = accHead.parentElement; mob.querySelectorAll('.mob-accordion.open').forEach(function(o) { if (o !== acc) o.classList.remove('open'); }); acc.classList.toggle('open'); return; } var subHead = e.target.closest('.mob-sub-head'); if (subHead) { e.preventDefault(); e.stopImmediatePropagation(); var sub = subHead.parentElement; mob.querySelectorAll('.mob-sub-accordion.open').forEach(function(o) { if (o !== sub) o.classList.remove('open'); }); sub.classList.toggle('open'); return; } }, true); })();