function smToggleMenu(btn){
btn.classList.toggle('open');
document.querySelector('#sm-header .sm-nav-links').classList.toggle('open');
}
document.querySelectorAll('#sm-header .sm-nav-links a').forEach(function(link){
link.addEventListener('click',function(){
var nl=document.querySelector('#sm-header .sm-nav-links');
var tg=document.querySelector('#sm-header .sm-nav-toggle');
if(nl.classList.contains('open')){nl.classList.remove('open');tg.classList.remove('open');}
});
});
document.addEventListener('DOMContentLoaded', function () {
var origNav = document.querySelector('.sm-nav');
if (origNav) {
var bar = document.createElement('div');
bar.className = 'sm-nav-fixed';
bar.innerHTML = origNav.innerHTML;
bar.style.cssText = 'position:fixed;top:88px;left:0;right:0;z-index:300;display:none;justify-content:center;flex-wrap:wrap;gap:4px;padding:6px 4%;background:#fff;border-bottom:1px solid #ececec;box-shadow:0 2px 10px rgba(0,0,0,.06);';
document.body.appendChild(bar);
var links = bar.querySelectorAll('a[href^="#g"]');
var targets = [];
links.forEach(function (a) {
a.style.cssText = 'padding:6px 14px;font-size:14px;font-weight:600;color:#5a5a58;text-decoration:none;border-bottom:2px solid transparent;border-radius:4px;white-space:nowrap;transition:.15s;';
a.addEventListener('mouseenter', function(){ if(!a.classList.contains('on')) a.style.color='#d62828'; });
a.addEventListener('mouseleave', function(){ if(!a.classList.contains('on')) a.style.color='#5a5a58'; });
var el = document.querySelector(a.getAttribute('href'));
if (el) targets.push({ link: a, el: el });
});
links.forEach(function (a) {
a.addEventListener('click', function (e) {
var el = document.querySelector(a.getAttribute('href'));
if (el) { e.preventDefault(); window.scrollTo({ top: el.getBoundingClientRect().top + window.scrollY - 150, behavior: 'smooth' }); }
});
});
var firstSection = targets.length ? targets[0].el : null;
function onScroll() {
if (firstSection) {
var show = firstSection.getBoundingClientRect().top < 120; bar.style.display = show ? 'flex' : 'none'; } var pos = window.scrollY + 170, cur = null; targets.forEach(function (t) { if (t.el.offsetTop <= pos) cur = t.link; }); links.forEach(function (a) { a.classList.remove('on'); a.style.color = '#5a5a58'; a.style.borderBottomColor = 'transparent'; }); if (cur) { cur.classList.add('on'); cur.style.color = '#d62828'; cur.style.borderBottomColor = '#d62828'; } } window.addEventListener('scroll', onScroll, { passive: true }); onScroll(); } var wa = document.createElement('a'); wa.href = 'https://wa.me/8613854105019?text=Hello%20Sismar%20Laser%2C%20I%20am%20interested%20in%20your%20laser%20machines.'; wa.target = '_blank'; wa.rel = 'noopener'; wa.setAttribute('aria-label', 'Chat on WhatsApp'); wa.style.cssText = 'position:fixed;left:20px;bottom:20px;z-index:9998;width:54px;height:54px;border-radius:50%;background:#25d366;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(0,0,0,.25);transition:transform .15s;'; wa.onmouseenter = function(){ wa.style.transform='scale(1.08)'; }; wa.onmouseleave = function(){ wa.style.transform='scale(1)'; }; wa.innerHTML = '';
document.body.appendChild(wa);
});
(function(){
function ytThumb(id){return "https://img.youtube.com/vi/"+id+"/hqdefault.jpg";}
const VIDEOS=[
// ---------- Portable 3D Inner Engraving ----------
{sub:"portable",tag:"laser vert",title:"portable machine de gravure laser interne 3D sur cristal",machine:"Gravure écologique portable pour la production photo & cadeau",yt:"-0L8xEezUqM"},
{sub:"portable",tag:"laser vert",title:"Marquage de cristal au laser vert — Démo de gravure portable",machine:"Démo de marque-cadeau en cristal portable",yt:"x5chPPUloMk"},
{sub:"portable",tag:"portrait",title:"portable 3D cristal portrait machine",machine:"Gravure sur cristal 3D",yt:"BGCsYOYHBv8"},
// ---------- Industrial 3D Inner Engraving ----------
{sub:"industrial",tag:"applications",title:"3D cristal gravure Showcase — Shapes & applications",machine:"différentes formes de cristal et produits finis",yt:"3S7300LZ0Kk"},
{sub:"industrial",tag:"processus",title:"Dot Cloud to 3D gravure interne — processus complet",machine:"Transformation en Dot-cloud & conversion 2D-to-3D",yt:"MQ4DmSXUOqU"},
{sub:"industrial",tag:"Dons & trophées",title:"3D cristal Photo cadeaux & trophées gravure machine",machine:"Cadeau photo en cristal, prix & trophées",yt:"Kzx1iFp97U4"},
{sub:"industrial",tag:"Photo personnalisée",title:"personnalisé 3D cristal Gravure photo machine",machine:"Photo personnalisée de cristal et gravure de portrait",yt:"CQ2k3kgRc6s"},
{sub:"industrial",tag:"2D gravure",title:"2D image Laser gravure interne machine",machine:"2D image carving intérieur en cristal",yt:"8Wljqq6Ta6I"},
{sub:"industrial",tag:"portrait",title:"Gravure 3D cristal",machine:"Gravure de portrait 3D à haut volume",yt:"Q65NkZdUuWk"},
{sub:"industrial",tag:"SSLE",title:"Gravure laser 3D (SSLE)",machine:"Gravure laser sub-surface à l'intérieur du cristal",yt:"L_2iXRFq-To"},
// ---------- UV Laser Inner Engraving ----------
{sub:"uv",tag:"Laser UV",title:"machine de gravure en cristal UV 3D",machine:"Gravure laser UV",yt:"ix62a2DGnlU"},
{sub:"uv",tag:"Démo UV",title:"machine de gravure en cristal UV — Démo",machine:"Processus de gravure laser UV & détails",yt:"DEzPEmQE6zo"},
{sub:"uv",tag:"UV",title:"UV 3D cristal Photo Gravure",machine:"Photographie de cristal personnalisé UV",yt:"qCjWojqySJ0"},
{sub:"uv",tag:"UV 2D",title:"Laser UV 2D image gravure interne",machine:"Carving intérieur UV à image plate",yt:"2T8lwxXbiwc"},
{sub:"uv",tag:"Signalisation UV",title:"machine de marquage laser UV pour cristal",machine:"Marquage de surface en cristal UV",yt:"ZuGcLSZxZIw"},
// ---------- Large Format ----------
{sub:"large",tag:"Grand format",title:"machine de gravure laser Grand verre",machine:"Grand format verre & gravure interne en cristal",yt:"IPpjRFgS7no"},
// ---------- Spherical Crystal ----------
{sub:"sphere",tag:"sphère en cristal",title:"machine de gravure laser cristal Sphérique",machine:"Gravure en 3D dans les boules de cristal / sphères",yt:"xolxrNG9RPE"},
];
VIDEOS.forEach(v=>{ if(!v.thumb) v.thumb=ytThumb(v.yt); });
const grid=document.getElementById('smv-grid'),empty=document.getElementById('smv-empty'),
chips=document.getElementById('smv-chips'),
modal=document.getElementById('smv-modal'),player=document.getElementById('smv-player'),
mTitle=document.getElementById('smv-title'),mSub=document.getElementById('smv-sub');
let filter='all';
function card(v,i){return '
+'
'
+'
';}
function render(){
const list=VIDEOS.map((v,i)=>({v,i})).filter(o=>filter==='all'||o.v.sub===filter);
grid.innerHTML=list.map(o=>card(o.v,o.i)).join('');
empty.style.display=list.length?'none':'block';
}
function counts(){
if(!chips)return;
const c=chips.querySelectorAll('.c');
if(c.length<6)return; c[0].textContent=VIDEOS.length; c[1].textContent=VIDEOS.filter(v=>v.sub==='portable').length;
c[2].textContent=VIDEOS.filter(v=>v.sub==='industrial').length;
c[3].textContent=VIDEOS.filter(v=>v.sub==='uv').length;
c[4].textContent=VIDEOS.filter(v=>v.sub==='large').length;
c[5].textContent=VIDEOS.filter(v=>v.sub==='sphere').length;
}
if(chips){chips.addEventListener('click',function(e){var b=e.target.closest('.smv-chip');if(!b)return;chips.querySelectorAll('.smv-chip').forEach(t=>t.classList.remove('active'));b.classList.add('active');filter=b.dataset.f;render();});}
grid.addEventListener('click',function(e){
var c=e.target.closest('.smv-vid');if(!c)return;
var v=VIDEOS[+c.dataset.i];
mTitle.textContent=v.title;mSub.textContent=v.machine;
var ask="Hi Sismar Laser, I'm interested in the "+v.title+" ("+v.tag+"). Please send a price and more details.";
document.getElementById('smv-ask').textContent="Ask us about the "+v.title+".";
document.getElementById('smv-wa').href="https://wa.me/8613854105019?text="+encodeURIComponent(ask);
document.getElementById('smv-email').href="mailto:sales@sismarlaser.com?subject="+encodeURIComponent('Inquiry: '+v.title)+"&body="+encodeURIComponent(ask);
document.getElementById('smv-ytlink').href="https://youtu.be/"+v.yt;
var origin=encodeURIComponent(location.origin);
player.innerHTML='';
modal.classList.add('open');document.body.style.overflow='hidden';
});
function closeM(){modal.classList.remove('open');player.innerHTML='';document.body.style.overflow='';}
document.getElementById('smv-closebtn').addEventListener('click',closeM);
modal.addEventListener('click',function(e){if(e.target===modal)closeM();});
document.addEventListener('keydown',function(e){if(e.key==='Escape')closeM();});
counts();render();
})();
Paramètres des cookies et de la confidentialité
function smToggleMenu(btn){
btn.classList.toggle('open');
document.querySelector('#sm-header .sm-nav-links').classList.toggle('open');
}
document.querySelectorAll('#sm-header .sm-nav-links a').forEach(function(link){
link.addEventListener('click',function(){
var nl=document.querySelector('#sm-header .sm-nav-links');
var tg=document.querySelector('#sm-header .sm-nav-toggle');
if(nl.classList.contains('open')){nl.classList.remove('open');tg.classList.remove('open');}
});
});
document.addEventListener('DOMContentLoaded', function () {
var nav = document.querySelector('#sm-header .sm-nav');
if (!nav) return;
var navTop = nav.getBoundingClientRect().top + window.pageYOffset;
var navHeight = nav.offsetHeight;
var placeholder = null;
function onScroll() {
var adminBar = document.getElementById('wpadminbar');
var offset = adminBar ? adminBar.offsetHeight : 0;
if (window.pageYOffset > navTop - offset) {
if (!nav.classList.contains('sm-nav-stuck')) {
placeholder = document.createElement('div');
placeholder.style.height = navHeight + 'px';
nav.parentNode.insertBefore(placeholder, nav.nextSibling);
nav.classList.add('sm-nav-stuck');
nav.style.cssText += ';position:fixed!important;top:' + offset + 'px!important;left:0!important;right:0!important;width:100%!important;z-index:99999!important;box-shadow:0 2px 12px rgba(14,37,65,0.12)!important;';
} else {
nav.style.top = offset + 'px';
}
} else {
if (nav.classList.contains('sm-nav-stuck')) {
nav.classList.remove('sm-nav-stuck');
nav.style.position = '';
nav.style.top = '';
nav.style.boxShadow = '';
if (placeholder) { placeholder.remove(); placeholder = null; }
}
}
}
window.addEventListener('scroll', onScroll, { passive: true });
onScroll();
});
