Uforpligtende · Ingen binding · 4,9★ på Trustpilot · +400 virksomheder
Næsten færdig!
✓
Tak!
Din rådgivning er booket.
📅
💻 Online via Microsoft Teams — link i invitationen
✉️
(function(){
var root=document.getElementById('mcm-book');if(!root||root.dataset.init)return;root.dataset.init='1';
var CAL='https://cal.com/marcello-cilea-mobilcenter-midt-hcxfbm/30min';
var days=['søndag','mandag','tirsdag','onsdag','torsdag','fredag','lørdag'];
function addBiz(from,n){var x=new Date(from);while(n>0){x.setDate(x.getDate()+1);if(x.getDay()!==0&&x.getDay()!==6)n--;}return x;}
function lbl(d){var t=new Date();t.setDate(t.getDate()+1);return d.toDateString()===t.toDateString()?'i morgen':days[d.getDay()]+' '+d.getDate()+'/'+(d.getMonth()+1);}
function mkDate(d,t){var p=t.split(':');var x=new Date(d);x.setHours(+p[0],+p[1],0,0);return x;}
var slots=[];
var chosen=0,loc='teams';
var el=function(id){return document.getElementById(id);};
function renderSlots(){var c=el('mcm-slots');c.innerHTML='';if(!slots.length){c.innerHTML='
';el('mcm-chip').textContent='Fuldt booket';var g=el('mcm-go2');g.disabled=false;g.style.opacity='';g.textContent='Se kalender & book →';g.onclick=function(){if(window.Cal&&Cal.ns&&Cal.ns['30min']){Cal.ns['30min']('modal',{calLink:'marcello-cilea-mobilcenter-midt-hcxfbm/30min'});}else{window.open(CAL,'_blank');}};}
renderSlots();
fetch('/wp-json/mcm/v1/slots').then(function(r){return r.ok?r.json():null;}).then(function(j){if(j&&j.length){slots=j.slice(0,3).map(function(s){var d=new Date(s.start);return{d:d,t:d.toTimeString().slice(0,5),start:s.start};});chosen=0;renderSlots();}else{showEmpty();}}).catch(function(){showEmpty();});
function goTo(n){['mcm-s1','mcm-s2','mcm-s3'].forEach(function(id,i){el(id).classList.toggle('on',i===n-1);});var cfg={1:['60%','Tid valgt'],2:['85%','Kun kontaktinfo tilbage'],3:['100%','Booket']}[n];el('mcm-pfill').style.width=cfg[0];el('mcm-ppct').textContent=cfg[0];el('mcm-ptext').textContent=cfg[1];}
el('mcm-go2').onclick=function(){var s=slots[chosen];var L=lbl(s.d);el('mcm-sum').textContent=L.charAt(0).toUpperCase()+L.slice(1)+' kl. '+s.t+' · 30 min · Med Marcello';window.dataLayer=window.dataLayer||[];window.dataLayer.push({event:'mcm_booking_tid_valgt'});goTo(2);el('mcm-name').focus();};
el('mcm-back').onclick=function(){goTo(1);};
document.querySelectorAll('#mcm-locs .mcm-loc').forEach(function(b){b.onclick=function(){document.querySelectorAll('#mcm-locs .mcm-loc').forEach(function(x){x.classList.remove('on');});b.classList.add('on');loc=b.dataset.loc;};});
function fallback(name,email,phone){window.dataLayer=window.dataLayer||[];window.dataLayer.push({event:'mcm_booking_fallback'});var s=slots[chosen];var url=CAL+'?name='+encodeURIComponent(name)+'&email='+encodeURIComponent(email)+'&attendeePhoneNumber='+encodeURIComponent(phone)+'&date='+s.d.toISOString().slice(0,10);window.open(url,'_blank');}
el('mcm-go3').onclick=function(){var n=el('mcm-name'),e=el('mcm-email'),ph=el('mcm-phone'),ok=true;
[n,e,ph].forEach(function(f){f.classList.remove('err');});
if(!n.value.trim()){n.classList.add('err');ok=false;}
if(!e.value.trim()||e.value.indexOf('@')<0){e.classList.add('err');ok=false;}
var digits=ph.value.replace(/[^0-9]/g,'');
if(digits.length<8){ph.classList.add('err');ok=false;}
if(!ok)return;
var btn=el('mcm-go3');btn.disabled=true;btn.textContent='Booker…';
var s=slots[chosen];var payload={start:(s.start||s.d.toISOString()),name:n.value.trim(),email:e.value.trim(),phone:ph.value.trim(),location:loc};
fetch('/wp-json/mcm/v1/book',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(payload)}).then(function(r){if(!r.ok)throw 0;return r.json();}).then(function(){btn.disabled=false;btn.textContent='Bekræft booking →';var L=lbl(s.d);el('mcm-thanks').textContent='Tak, '+n.value.trim().split(' ')[0]+'!';el('mcm-fslot').textContent=L.charAt(0).toUpperCase()+L.slice(1)+' kl. '+s.t+' · 30 minutter';el('mcm-floc').innerHTML=(loc==='teams')?'💻 Online via Microsoft Teams — link i invitationen':'📍 I butikken i Viborg — adressen står i bekræftelsen';el('mcm-femail').textContent='Bekræftelse sendt til '+e.value.trim();window.dataLayer=window.dataLayer||[];window.dataLayer.push({event:'mcm_booking_completed',booking_moedested:(loc==='teams'?'teams':'butik')});goTo(3);}).catch(function(){btn.disabled=false;btn.textContent='Bekræft booking →';fallback(n.value.trim(),e.value.trim(),ph.value.trim());});};
el('mcm-again').onclick=function(){el('mcm-name').value='';el('mcm-email').value='';el('mcm-phone').value='';goTo(1);};
})();
Vi bruger cookies til statistik og marketing, så vi kan forbedre siden og måle hvad der virker. Nødvendige cookies er altid aktive. Læs vores cookiepolitik.