Quelle Tybelt choisir, et quelle taille ?
Trois questions pour trouver votre modèle, un comparatif pour vérifier, et un guide pour connaître votre taille de ceinture.
Comparer
Les ceintures Tybelt et Tactybelt côte à côte
| Standard | Premium | Black Edition | Tactybelt |
| Type |
Ceinture sangle souple |
Ceinture sangle souple |
Ceinture sangle souple |
Ceinture tactique rigide 42 mm |
| Prix |
59,90 € |
64,90 € |
69,90 € |
104,90 € → 129,90 € |
| Norme |
EN 566 |
EN 566 |
EN 566 |
à vérifier |
| Résistance |
2 200 kg |
2 200 kg |
2 200 kg |
à compléter |
| Boucle |
Non gravée |
Gravée |
Gravée |
Boucle Cobra |
| Livret d’usages |
— |
Oui |
Oui |
à compléter |
| Coloris |
à compléter |
Kaki, orange |
Noir |
à compléter |
| Tailles |
XS → XXXL |
XS → XXXL |
XS → XXXL |
M, L, XL |
Comment connaître sa
taille de ceinture homme ?
La méthode la plus fiable est de partir d’une ceinture que vous portez déjà.
- Posez-la à plat.
- Mesurez de la base de la boucle jusqu’au trou que vous utilisez le plus.
- Reportez cette mesure dans le tableau des tailles.
Sans ceinture sous la main, mesurez votre tour de taille à l’endroit où vous portez votre pantalon, et ajoutez quelques centimètres. Entre deux tailles, prenez la plus grande. Si vous vous trompez, l’échange est simple.
Tableau des tailles Tybelt
Le tableau des tailles (XS → XXXL, en cm et en tailles de pantalon) arrive bientôt.
FAQ
Questions fréquentes
Que veut dire « certifiée EN 566 » ?
EN 566 est la norme européenne des anneaux de sangle utilisés en alpinisme et en escalade. Tybelt est un équipement de protection individuelle de catégorie III, validé par un examen CE, testé à plus de 2 tonnes.
Quelle différence entre Standard, Premium et Black ?
Les trois ont la même sangle certifiée EN 566 (2 200 kg). La Standard a une boucle non gravée. La Premium a une boucle gravée et un livret d’usages, en kaki ou en orange. La Black Edition est noire, avec boucle gravée et livret d’usages.
Quelle différence entre une ceinture sangle et une ceinture tactique ?
La Tybelt est une ceinture à sangle souple, pensée pour se porter tous les jours. La Tactybelt est une ceinture tactique rigide de 42 mm, avec une boucle Cobra, pour le terrain et l’équipement.
.tbq{background:#F4F5F0;margin-inline:0!important;padding:28px 40px 36px;text-align:left;scroll-margin-top:90px}.tbq *{box-sizing:border-box}.tbq button,.tq-ov button{font:inherit;text-transform:none!important;letter-spacing:normal!important;box-shadow:none!important;margin:0;line-height:1.3;min-height:0;height:auto;width:auto}.tq-imgs{display:none!important}.tq-fb{font:400 14px var(--W);color:#2E3631}.tq-who{display:flex;margin-bottom:18px}.tq-seg{display:inline-flex;border:1px solid #DDE1D9;border-radius:999px;background:#fff;padding:3px;gap:2px}.tq-seg button{font:600 13px var(--W);border:0;background:transparent;color:#1C1D1B;padding:8px 18px;border-radius:999px;cursor:pointer}.tq-seg button[aria-pressed="true"]{background:#1F3A2E;color:#F4F5F0}.tq-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:14px 32px;align-items:stretch}.tq-qs{display:flex;flex-direction:column;gap:14px}.tq-q{display:flex;flex-direction:column}.tq-box{flex:1;background:#fff;border:1px solid #DDE1D9;border-radius:6px;padding:14px 16px 16px}.tq-qh{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}.tq-qh+.tq-hint{margin-top:-6px}h3.tq-t{font-family:var(--A)!important;font-stretch:75%;font-weight:800!important;font-size:22px!important;line-height:1.05!important;color:#1C1D1B!important;margin:0 0 4px!important;padding:0!important;text-transform:none!important;text-align:left!important}.tq-qh h3.tq-t{margin:0!important}.tq-hint{margin:0 0 12px;color:#5B645E;font:400 12.5px/1.5 var(--W)}.tq-rowB .tq-hint,.tq-rowC .tq-hint{min-height:1.4em}.tq-opts{display:flex;flex-wrap:wrap;gap:10px}.tq-opts.off{opacity:.45}.tq-opt{flex:1 1 150px;min-width:0;display:flex;gap:10px;align-items:center;text-align:left;color:#1C1D1B;background:#F4F5F0;border:1px solid #DDE1D9;border-radius:4px;padding:10px 12px;cursor:pointer}.tq-opt:disabled{cursor:not-allowed}.tq-opt .tx{min-width:0}.tq-opt b{display:block;font:700 13.5px var(--W);color:#1C1D1B}.tq-opt .tx span{display:block;font:400 11.5px var(--W);color:#5B645E;margin-top:2px}.tq-opt:hover:not(:disabled){border-color:#1F3A2E}.tq-opt[aria-pressed="true"]{background:#E7EEE8;border:2px solid #1F3A2E;padding:9px 11px}.tq-th{flex:0 0 40px;width:40px;height:40px;border-radius:4px;display:flex;align-items:flex-end;padding:3px;background:#2A4D3D repeating-linear-gradient(135deg,#2A4D3D 0 8px,#385B4B 8px 16px) center/cover}.tq-th.ph{background-color:#111;background-repeat:no-repeat}.tq-th i{font:600 8px/1.1 Consolas,Menlo,monospace;font-style:normal;background:#111;color:#fff;border-radius:2px;padding:2px 3px}.tq-rowB{display:flex;flex-direction:column;gap:14px}.tq-rowC{flex:1;display:flex;flex-direction:column}.tq-rowC .tq-q{flex:1}.tq-sw{display:flex;gap:14px;flex-wrap:wrap;margin-top:6px}.tq-s{background:none;border:0;padding:0;cursor:pointer;display:grid;gap:5px;justify-items:center;font:600 12px var(--W);color:#1C1D1B}.tq-s.fixed{cursor:default}.tq-dot{width:40px;height:40px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #DDE1D9;display:block}.tq-s[aria-pressed="true"] .tq-dot,.tq-s.fixed .tq-dot{box-shadow:0 0 0 3px #1F3A2E}.tq-sizes{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.tq-size{font:700 14px var(--W);min-width:56px;text-align:center;color:#1C1D1B;background:#F4F5F0;border:1px solid #DDE1D9;border-radius:4px;padding:10px 12px;cursor:pointer}.tq-size:hover{border-color:#1F3A2E}.tq-size[aria-pressed="true"]{background:#E7EEE8;border:2px solid #1F3A2E;padding:9px 11px}.tq-wait{font:400 12.5px var(--W);color:#5B645E;margin:6px 0 0}.tq-gbtn{display:inline-flex;align-items:center;font:700 12.5px var(--W);background:#E2701C;color:#fff;border:0;border-radius:999px;padding:8px 14px;cursor:pointer}.tq-gbtn:hover{background:#C95F14}.tq-res{display:flex;flex-direction:column;background:#fff;border:1px solid #1C1D1B;border-radius:6px;overflow:hidden}.tq-pack{min-height:130px;flex:1 0 130px;display:flex;align-items:flex-end;padding:10px;background:#2A4D3D repeating-linear-gradient(135deg,#2A4D3D 0 16px,#385B4B 16px 32px) center/cover}.tq-pack.ph{background-color:#EDEFE8;background-repeat:no-repeat}.tq-pack i{font:600 10px Consolas,Menlo,monospace;font-style:normal;background:#111;color:#fff;border-radius:3px;padding:3px 7px}.tq-rb{padding:16px 18px 18px;display:grid;gap:8px;align-content:start}.tq-kick{font:600 11px Consolas,Menlo,monospace;letter-spacing:.16em;text-transform:uppercase;color:#E2701C}h3.tq-n{font-family:var(--A)!important;font-stretch:75%;font-weight:800!important;font-size:26px!important;line-height:1.05!important;margin:0!important;padding:0!important;text-transform:none!important;color:#1C1D1B!important;text-align:left!important}.tq-lead{margin:0;color:#5B645E;font:400 13px/1.5 var(--W);min-height:3.1em}.tq-sp{list-style:none!important;margin:2px 0 0!important;padding:0!important;display:grid;gap:4px;font:400 13px var(--W);color:#1C1D1B;min-height:4.9em;align-content:start}.tq-sp li{list-style:none!important;margin:0;padding:0}.tq-sp li::before{content:"✓";color:#2F6B4A;font-weight:700;margin-right:8px}.tq-chips{display:flex;flex-wrap:wrap;gap:6px}.tq-chips span{font:500 12px Consolas,Menlo,monospace;color:#5B645E;background:#EDEFE8;border-radius:4px;padding:6px 9px}.tq-chips b{color:#1C1D1B}.tq-price{font-family:var(--A);font-stretch:75%;font-weight:800;font-size:28px;line-height:1.1;font-variant-numeric:tabular-nums;color:#1C1D1B;min-height:1.1em}.tq-add{display:block;width:100%!important;text-align:center;font:700 14px var(--W);padding:13px 18px;border:0;border-radius:4px;background:#E2701C;color:#fff;cursor:pointer}.tq-add:hover:not(:disabled){background:#C95F14}.tq-add:disabled{background:#EDEFE8;color:#5B645E;cursor:not-allowed}.tq-st{font:400 12.5px var(--W);color:#2F6B4A;min-height:1.2em}.tq-st.bad{color:#B3261E}.tq-reset{margin-top:12px;background:none;border:0;color:#5B645E;font:500 12px var(--W);text-decoration:underline;cursor:pointer;padding:0}.tq-ov{position:fixed;inset:0;z-index:2147483000;background:rgba(10,14,12,.62);display:flex;align-items:center;justify-content:center;padding:16px}.tq-ov[hidden]{display:none!important}.tq-dlg{background:#fff;color:#1C1D1B;border-radius:8px;width:min(680px,100%);max-height:calc(100% - 8px);overflow:auto;padding:22px 22px 24px;position:relative;text-align:left}h3.tq-gt{font-family:var(--A)!important;font-stretch:75%;font-weight:800!important;font-size:28px!important;line-height:1.05!important;margin:0 36px 12px 0!important;padding:0!important;text-transform:none!important;color:#1C1D1B!important}.tq-x{position:absolute;top:12px;right:12px;width:36px!important;height:36px!important;border-radius:50%;border:1px solid #DDE1D9;background:#F4F5F0;color:#1C1D1B;font:600 18px/1 var(--W);cursor:pointer;padding:0}.tq-tip{margin:0 0 10px;font:400 12.5px var(--W);color:#5B645E}.tq-tw{overflow-x:auto}.tq-tw table{border-collapse:collapse;width:100%;min-width:420px;font-variant-numeric:tabular-nums;margin:0;border:0}.tq-tw th,.tq-tw td{border:1px solid #DDE1D9!important;padding:9px 10px;text-align:center;font:500 13.5px var(--W);color:#1C1D1B;background:#fff}.tq-tw thead th{background:#1F3A2E;color:#F4F5F0;font:800 16px var(--A);font-stretch:75%;padding:0}.tq-tw tbody th{text-align:left;background:#F4F5F0;font-weight:600;color:#5B645E}.tq-pk{display:block;width:100%!important;font:inherit;color:inherit;background:none;border:0;padding:11px 8px;cursor:pointer}.tq-tw thead th:hover{background:#B9DCC6;color:#1C1D1B;box-shadow:inset 0 0 0 2px #1F3A2E}.tq-tw td[data-c]{cursor:pointer}.tq-tw td[data-c]:hover{background:#B9DCC6;box-shadow:inset 0 0 0 2px #1F3A2E;font-weight:700}.tq-tw .col{background:#E7EEE8!important;box-shadow:inset 0 0 0 1px #1F3A2E}.tq-tw thead th.col{background:#E2701C!important;color:#fff}.tq-conf{margin-top:14px;display:flex;flex-wrap:wrap;align-items:center;gap:10px;background:#E7EEE8;border:1px solid #1F3A2E;border-radius:6px;padding:12px 14px}.tq-conf[hidden]{display:none!important}.tq-conf span{flex:1 1 200px;font:600 13.5px var(--W)}.tq-conf button{font:700 13px var(--W);border:0;border-radius:4px;padding:9px 16px;cursor:pointer}.tq-yes{background:#E2701C;color:#fff}.tq-yes:hover{background:#C95F14}.tq-no{background:#fff;color:#1C1D1B;border:1px solid #DDE1D9!important}.tq-ew{margin-top:16px;border:2px dashed #DDE1D9;border-radius:6px;padding:18px;text-align:center;color:#5B645E;font:500 12.5px Consolas,Menlo,monospace;background:#F4F5F0}.tq-opt:focus-visible,.tq-add:focus-visible,.tq-gbtn:focus-visible,.tq-seg button:focus-visible,.tq-s:focus-visible,.tq-size:focus-visible,.tq-conf button:focus-visible,.tq-x:focus-visible,.tq-pk:focus-visible{outline:3px solid #E2701C;outline-offset:2px}@media (max-width:820px){.tbq{padding:24px 16px 30px}.tq-grid{grid-template-columns:minmax(0,1fr)}.tq-rowB{grid-template-columns:minmax(0,1fr);min-height:0}.tq-pack{flex:0 0 200px}.tq-rb{min-height:0}}.tq-sub{font:400 12px var(--W);color:#5B645E;min-height:1.2em}.tq-rowD{display:flex;flex-direction:column;gap:14px}.tq-rowD .tq-q{flex:1}.tq-qs2{display:flex;flex-direction:column}.tq-res2{justify-content:flex-start}.tq-rb2{gap:10px}.tq-ln{display:flex;justify-content:space-between;gap:12px;font:400 13px var(--W);color:#2E3631;border-bottom:1px solid #E6E9E1;padding-bottom:8px}.tq-ln b{font-weight:700;white-space:nowrap}.tq-tot{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--A);font-stretch:75%;font-weight:800;font-size:22px;color:#1C1D1B}.tq-tot b{font-size:30px;font-variant-numeric:tabular-nums}.tq-acc2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.tq-acc2.off{opacity:.5}.tq-accc{display:flex;flex-direction:column;gap:8px}.tq-accc .tq-opt{flex:none}.tq-acch{font:700 12px var(--W);text-transform:uppercase;letter-spacing:.08em;color:#5B645E}.tq-opt{padding:7px 10px}.tq-opt[aria-pressed="true"]{padding:6px 9px}.tq-box{padding:10px 14px 12px}h3.tq-t{font-size:19px!important}.tq-dual{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:16px}.tq-fld{min-width:0}.tq-fld.off,.tq-box.off{opacity:.45}.tq-opts-v{flex-direction:column;flex-wrap:nowrap;gap:8px}.tq-opts-v .tq-opt{flex:none}.tq-qh2{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}.tq-qh2 h3.tq-t{margin:0!important}.tq-hnt{font:400 12px/1.4 var(--W);color:#5B645E;flex:1 1 auto}p.tq-hnt{margin:6px 0 0}.tq-seg.sm button{padding:5px 16px;font-size:12px}.tq-acc2.offc{opacity:.5}.tq-sizes{margin-top:0}.tq-size{padding:7px 12px;min-width:50px}.tq-size[aria-pressed="true"]{padding:6px 11px}.tq-wait{margin:2px 0 0}.tq-acc2{gap:10px}.tq-s:disabled,.tq-opt:disabled{cursor:not-allowed}.tq-rowD .tq-hint{margin:0 0 8px;min-height:0}.tq-qh2 .tq-gbtn:disabled{opacity:.5}.tq-th{flex:0 0 60px;width:60px;height:60px}.tq-opt{gap:12px}.tq-pack{flex:none;min-height:0;aspect-ratio:7/4}.tq-lead{min-height:0}.tq-sp{min-height:0}.tq-st:empty{display:none}.tq-rowC .tq-box{display:flex;flex-direction:column;justify-content:center}.tq-res2 .tq-rb2{flex:1;display:flex;flex-direction:column;justify-content:space-between}.tq-sw-i{display:flex;gap:10px;margin:0;flex-wrap:wrap}.tq-sw-i .tq-s{display:inline-flex;align-items:center;gap:6px;font-size:12px}.tq-sw-i .tq-dot{width:26px;height:26px}.tq-qh2 .tq-hnt{flex:1 1 140px}.tq-pack.tq-pt{aspect-ratio:4/3}.tq-rowA{display:flex;flex-direction:column;gap:14px}.tq-rad{display:flex;gap:20px;flex-wrap:wrap}.tq-r{display:inline-flex;align-items:center;gap:8px;background:none;border:0;padding:4px 2px;font:600 13px var(--W);color:#1C1D1B;cursor:pointer}.tq-rc{width:18px;height:18px;border-radius:50%;border:2px solid #1F3A2E;background:#fff;display:inline-block;position:relative;flex:0 0 18px}.tq-r:hover:not(:disabled) .tq-rc{background:#E7EEE8}.tq-r[aria-pressed="true"] .tq-rc::after{content:"";position:absolute;inset:3px;border-radius:50%;background:#1F3A2E}.tq-r:disabled{cursor:not-allowed}.tq-r:focus-visible{outline:3px solid #E2701C;outline-offset:2px}@media(max-width:820px){.tq-qs{order:1}.tq-qs.tq-qs2{order:2}.tq-res{order:3}.tq-res.tq-res2{order:4}}.tq-ew{display:none}.tq-rad{display:inline-flex;gap:8px;flex-wrap:wrap;justify-content:center}.tq-r{display:inline-flex;align-items:center;justify-content:center;min-width:112px;height:36px;padding:0 20px;border:1px solid #DDE1D9;border-radius:99px;background:#F4F5F0;color:#1C1D1B;font:600 13.5px var(--W);line-height:1;transition:background .15s,border-color .15s,color .15s}.tq-rc{display:none!important}.tq-r:hover:not(:disabled){border-color:#E2701C;background:#fff;color:#E2701C}.tq-r[aria-checked=true],.tq-r[aria-pressed=true]{background:#E2701C;border-color:#E2701C;color:#fff;box-shadow:0 2px 8px rgba(226,112,28,.28)}.tq-r:disabled{opacity:.5}.tq-qh2{justify-content:center;gap:10px 18px;margin-bottom:0}
(function(){var root=document.getElementById("questionnaire");if(!root||!window.prestashop)return; var IM={};[].forEach.call(root.querySelectorAll(".tq-imgs img"),function(i){IM[i.className.replace("tq-i-","")]=i.getAttribute("src")}); var COL={orange:["Orange","#E2701C"],kaki:["Kaki","#6B6F45"],noir:["Noir","#1C1D1B"]}; var ORD=["XS","S","M","L","XL","XXL","XXXL"]; var SP="Sangle certifiée EN 566 · 2 200 kg"; var CAT={std:{id:5,n:"Tybelt Standard",pk:"Standard · Orange",lead:"La ceinture de tous les jours, sans gravure.",sp:[SP,"Boucle non gravée"]}, po:{id:9,c:"orange",n:"Tybelt Premium Orange",pk:"Premium · Orange",lead:"Boucle gravée et livret d’usages, en orange.",sp:[SP,"Boucle gravée","Livret d’usages"]}, pk:{id:9,c:"kaki",n:"Tybelt Premium Kaki",pk:"Premium · Kaki",lead:"Boucle gravée et livret d’usages, en kaki.",sp:[SP,"Boucle gravée","Livret d’usages"]}, bl:{id:8,n:"Tybelt Black Edition",pk:"Black Edition",lead:"La version noire, boucle gravée et livret d’usages.",sp:[SP,"Boucle gravée","Livret d’usages"]}, be:{id:233,n:"Tactybelt Beta",pk:"Tactybelt Beta",lead:"La ceinture tactique rigide, sans maillon Delta.",sp:["Sangle rigide 42 mm","Boucle Cobra AustriAlpine"]}, de:{id:232,n:"Tactybelt Delta",pk:"Tactybelt Delta",lead:"La ceinture tactique rigide, avec maillon Delta.",sp:["Sangle rigide 42 mm","Boucle Cobra AustriAlpine","Maillon Delta"]}, k22:{id:235,n:"Tactybelt 22kN",pk:"Tactybelt 22kN",lead:"La ceinture tactique rigide, avec la boucle de la Tybelt.",sp:["Ceinture tactique rigide","Boucle identique à la Tybelt"]}}; var ACC={a1:{id:3,t:"1 mousqueton acier",s:"Mousqueton à vis"},n1:{id:10,t:"1 mousqueton noir",s:"Mousqueton à vis"},a2:{id:242,t:"2 mousquetons acier",s:"Pack Pro"},n2:{id:243,t:"2 mousquetons noirs",s:"Pack Pro"}}; var AD={}; var G={ty:{t:"Guide des tailles Tybelt",h:["S","M","L","XL","XXL","XXXL"],r:[["Tour de taille (cm)","75–85","85–95","95–105","105–115","115–125","125"],["Taille de pantalon (EUR)","34–38","38–42","42–46","46–50","50–54","54"],["Longueur de la ceinture (cm)","95","105","115","125","135","145"]]}, tac:{t:"Guide des tailles Tactybelt",h:["M","L","XL"],r:[["Taille de pantalon (EUR)","36–40","40–44","44–50"],["Tour de taille mini (cm)","80","95","105"],["Tour de taille maxi (cm)","95","105","125"]]}}; var DEF={who:null,use:null,grav:null,color:null,cobra:null,delta:null,size:null,acc:null,accq:null,ipa:null,stock:null,chk:false,msg:"",busy:false}; var S=Object.assign({},DEF),LD={},LP={},LE={},seq=0,pend=null,cur="ty"; function money(a){return(Math.round(a*100)/100).toFixed(2).replace(".",",")+" €"} function key(){if(S.use===null)return null;if(S.use==="tact"){if(S.cobra===null)return null;if(S.cobra==="non")return"k22";if(S.delta===null)return null;return S.delta==="avec"?"de":"be"}if(S.grav===null)return null;if(S.grav==="sans")return"std";return S.color==="orange"?"po":S.color==="kaki"?"pk":S.color==="noir"?"bl":null} function st1(){return S.use!==null} function st2(){return st1()&&(S.use==="tact"?S.cobra!==null:S.grav!==null)} function st3(){return !!key()} function st4(){return st3()&&S.size!==null} function th(im,t){return im?'<i class="tq-th ph" style="background-image:url('+im+')"></i>':(t===""?"":'<i class="tq-th"><i>'+t+"</i></i>")} function opt(q,v,t,s,img,dis,im){return'<button type="button" class="tq-opt" data-q="'+q+'" data-v="'+v+'"'+(dis?" disabled":"")+' aria-pressed="'+(!dis&&S[q]===v)+'">'+th(im||IM[q+"_"+v],img)+'<span class="tx"><b>'+t+"</b><span>"+s+"</span></span></button>"} function box(t,h,body,x){return'<div class="tq-q"><div class="tq-box"><div class="tq-qh"><h3 class="tq-t">'+t+"</h3>"+(x||"")+"</div>"+(h?'<p class="tq-hint">'+h+"</p>":"")+body+"</div></div>"} function refreshJ(id){var b=new URLSearchParams();b.append("ajax","1");b.append("action","refresh");b.append("quantity_wanted","1");b.append("id_product",id);b.append("id_customization","0");return fetch(prestashop.urls.pages.product,{method:"POST",credentials:"same-origin",headers:{"X-Requested-With":"XMLHttpRequest"},body:b}).then(function(r){return r.json()})} function pdata(R){try{return JSON.parse(new DOMParser().parseFromString(R.product_details||"","text/html").querySelector("#product-details").getAttribute("data-product"))}catch(e){return{}}} function load(k){if(LP[k])return;LP[k]=1;LE[k]=0;refreshJ(CAT[k].id).then(function(R){var j=pdata(R),d=new DOMParser().parseFromString('<div class="product-variants">'+(R.product_variants||"")+"</div>","text/html"),sel=d.querySelector(".product-variants select"),sz=[],g=""; if(sel){g=sel.name;[].forEach.call(sel.options,function(o){sz.push({l:o.textContent.trim(),v:o.value})})}else{[].forEach.call(d.querySelectorAll(".product-variants input[type=radio]"),function(r){g=r.name;var lb=r.closest("label");sz.push({l:(lb?lb.textContent:r.value).trim(),v:r.value})})} sz.sort(function(a,b){var x=ORD.indexOf(a.l),y=ORD.indexOf(b.l);return(x<0?99:x)-(y<0?99:y)}); var th=new DOMParser().parseFromString(R.product_cover_thumbnails||"","text/html"),ci=th.querySelector("img"),c=j.cover||{},im=ci?(ci.getAttribute("data-image-large-src")||ci.getAttribute("src")):((c.bySize&&c.bySize.large_default&&c.bySize.large_default.url)||(c.large&&c.large.url)||""); var cr=[].slice.call(d.querySelectorAll(".product-variants input[type=radio]")),cg=(sel&&cr.length)?cr[0].name:"",cv=(sel&&cr.length)?cr.map(function(r){var lb=r.closest("label");return{l:((lb?lb.textContent:"")||"").trim().toLowerCase(),v:r.value}}):[]; LD[k]={img:im,price:j.price||"",a:j.price_amount||0,sizes:sz,g:g,cg:cg,cv:cv,sv:sel?sel.value:""};if(CAT[k].c&&cg)colorImg(k);if(key()===k){validate();draw()}}).catch(function(e){LP[k]=0;LE[k]=(e&&e.message)||"erreur";try{console.error("questionnaire",k,e)}catch(x){}if(key()===k)draw()})} function colorImg(k){var d=LD[k],o=d.cv.filter(function(c){return c.l.indexOf(CAT[k].c)>-1})[0];if(!o)return;var b=new URLSearchParams();b.append("ajax","1");b.append("action","refresh");b.append("quantity_wanted","1");b.append("id_product",CAT[k].id);b.append("id_customization","0");b.append(d.g,d.sv);b.append(d.cg,o.v);fetch(prestashop.urls.pages.product,{method:"POST",credentials:"same-origin",headers:{"X-Requested-With":"XMLHttpRequest"},body:b}).then(function(r){return r.json()}).then(function(j){var h=new DOMParser().parseFromString(j.product_cover_thumbnails||"","text/html"),i=h.querySelector("img"),s=i&&(i.getAttribute("data-image-large-src")||i.getAttribute("src"));if(s){d.img=s;if(key()===k)drawRes()}}).catch(function(){})} function loadAcc(k){refreshJ(ACC[k].id).then(function(R){var j=pdata(R),bt=new DOMParser().parseFromString(R.product_add_to_cart||"","text/html").querySelector(".add-to-cart"),th=new DOMParser().parseFromString(R.product_cover_thumbnails||"","text/html"),ci=th.querySelector("img"),c=j.cover||{};AD[k]={a:j.price_amount||0,p:j.price||"",ok:!(bt&&bt.disabled),img:(c.bySize&&c.bySize.medium_default&&c.bySize.medium_default.url)||(ci?(ci.getAttribute("data-image-large-src")||ci.getAttribute("src")):"")};draw()}).catch(function(){})} function validate(){var k=key(),d=k&&LD[k];S.ipa=null;S.stock=null;if(!d||!S.size)return;var s=d.sizes.filter(function(x){return x.l===S.size})[0];if(!s){S.size=null;return} var b=new URLSearchParams();b.append("ajax","1");b.append("action","refresh");b.append("quantity_wanted","1");b.append("id_product",CAT[k].id);b.append("id_customization","0");b.append(d.g,s.v);if(d.cg&&CAT[k].c){var co=d.cv.filter(function(c){return c.l.indexOf(CAT[k].c)>-1})[0];if(co)b.append(d.cg,co.v)}var my=++seq;S.chk=true; fetch(prestashop.urls.pages.product,{method:"POST",credentials:"same-origin",headers:{"X-Requested-With":"XMLHttpRequest"},body:b}).then(function(r){return r.json()}).then(function(j){if(my!==seq)return;var h=new DOMParser().parseFromString(j.product_add_to_cart||"","text/html"),bt=h.querySelector(".add-to-cart");S.ipa=j.id_product_attribute;S.stock=!(bt&&bt.disabled);S.chk=false;drawRes()}).catch(function(){if(my!==seq)return;S.chk=false;S.stock=null;drawRes()})} function accBox(){var a1=AD.a1,a2=AD.a2,n1=AD.n1,n2=AD.n2,on=st4(),yes=S.accq==="oui",hint="Le lot de 2 coûte moins cher que deux mousquetons à l’unité.";if(a1&&a2&&2*a1.a>a2.a)hint="Le lot de 2 vous fait économiser "+money(2*a1.a-a2.a)+" en acier"+(n1&&n2&&2*n1.a>n2.a?" et "+money(2*n1.a-n2.a)+" en noir":"")+"."; function sv(k){var x=k==="a2"?[AD.a1,AD.a2]:(k==="n2"?[AD.n1,AD.n2]:null);return x&&x[0]&&x[1]&&2*x[0].a>x[1].a?2*x[0].a-x[1].a:0} function o(k,t){var d=AD[k],dis=!on||!yes||(d?!d.ok:false);return opt("acc",k,t,(ACC[k].s==="Pack Pro"?"Pack Pro · ":"")+(d?"+"+money(d.a):"")+(sv(k)?" · vous économisez "+money(sv(k)):"")+(yes&&d&&!d.ok?" · indisponible":""),"mousqueton",dis,d&&d.img)} function ra(v,t){return'<button type="button" class="tq-r" role="radio" data-q="accq" data-v="'+v+'"'+(on?"":" disabled")+' aria-checked="'+(S.accq===v)+'" aria-pressed="'+(S.accq===v)+'"><span class="tq-rc"></span>'+t+"</button>"}var seg='<div class="tq-rad">'+ra("oui","Oui")+ra("non","Non")+"</div>"; return'<div class="tq-q"><div class="tq-box'+(on?"":" off")+'"><div class="tq-qh2"><h3 class="tq-t">Ajouter des mousquetons ?</h3>'+seg+'</div><div class="tq-acc2'+(yes?"":" offc")+'"><div class="tq-accc"><div class="tq-acch">Acier</div>'+o("a1","1 mousqueton")+o("a2","2 mousquetons")+'</div><div class="tq-accc"><div class="tq-acch">Noir</div>'+o("n1","1 mousqueton")+o("n2","2 mousquetons")+"</div></div></div></div>"} function boxo(t,on,body){return'<div class="tq-q"><div class="tq-box'+(on?"":" off")+'"><h3 class="tq-t">'+t+"</h3>"+body+"</div></div>"} function fld(t,on,body){return'<div class="tq-fld'+(on?"":" off")+'"><h3 class="tq-t">'+t+"</h3>"+body+"</div>"} function qs(){var gift=S.who==="gift",tact=S.use==="tact",k=key(),d=k&&LD[k],on1=st1(),on2=st2(),on3=st3(); var on0=S.who!==null;function rw(v,t){return'<button type="button" class="tq-r" role="radio" data-w="'+v+'" aria-checked="'+(S.who===v)+'" aria-pressed="'+(S.who===v)+'"><span class="tq-rc"></span>'+t+"</button>"} var a='<div class="tq-q"><div class="tq-box"><div class="tq-qh2"><h3 class="tq-t">Pour qui ?</h3><div class="tq-rad">'+rw("self","Pour moi")+rw("gift","Pour offrir")+"</div></div></div></div>"+boxo(gift?"Comment pensez-vous qu’il la portera ?":"Comment allez-vous la porter ?",on0,'<div class="tq-opts">'+opt("use","quot","Au quotidien","Gamme Tybelt · bricolage, sorties, voyage","Tybelt",!on0)+opt("use","tact","Pro ou tactique","Gamme Tactybelt · terrain, équipement","Tactybelt",!on0)+"</div>"); var b1,b2; if(!tact){b1=boxo("Avec ou sans gravure ?",on1,'<div class="tq-opts">'+opt("grav","sans","Sans gravure","L’essentiel : la Standard","boucle lisse",!on1)+opt("grav","avec","Avec gravure + livret","Boucle gravée, livret d’usages","boucle gravée",!on1)+"</div>"); if(S.grav==="sans")b2='<div class="tq-q"><div class="tq-box"><div class="tq-qh2"><h3 class="tq-t">Quelle couleur ?</h3><div class="tq-sw tq-sw-i"><div class="tq-s fixed"><span class="tq-dot" style="background:'+COL.orange[1]+'"></span>Orange</div></div><span class="tq-hnt">Une seule couleur pour la Standard.</span></div></div></div>'; else b2='<div class="tq-q"><div class="tq-box'+(on2?"":" off")+'"><div class="tq-qh2"><h3 class="tq-t">Quelle couleur ?</h3><div class="tq-sw tq-sw-i">'+["orange","kaki","noir"].map(function(c){return'<button type="button" class="tq-s" data-q="color" data-v="'+c+'"'+(on2?"":" disabled")+' aria-pressed="'+(S.color===c)+'"><span class="tq-dot" style="background:'+COL[c][1]+'"></span>'+COL[c][0]+"</button>"}).join("")+'</div><span class="tq-hnt">Orange ou kaki : Premium. Noir : Black Edition.</span></div></div></div>'} else{b1=boxo("Avec ou sans boucle Cobra ?",on1,'<div class="tq-opts">'+opt("cobra","oui","Avec boucle Cobra","Beta ou Delta","Cobra",!on1)+opt("cobra","non","Sans boucle Cobra","Tactybelt 22kN","boucle Tybelt",!on1)+"</div>"); var off=S.cobra==="non";b2=boxo("Avec ou sans maillon Delta ?",on2&&!off,'<div class="tq-opts">'+opt("delta","sans","Sans maillon Delta","Tactybelt Beta","Beta",!on2||off)+opt("delta","avec","Avec maillon Delta","Tactybelt Delta","maillon Delta",!on2||off)+"</div>")} var b=b1+b2; var sb;if(!on3)sb='<p class="tq-wait">Répondez d’abord aux questions ci-dessus.</p>';else if(!d)sb=LE[key()]?'<p class="tq-wait">Les tailles n’ont pas pu être chargées ('+LE[key()]+'). <button type="button" class="tq-reset" data-retry="1">Réessayer</button></p>':'<p class="tq-wait">Chargement des tailles…</p>';else if(!d.sizes.length)sb='<p class="tq-wait">Ce modèle est momentanément indisponible dans toutes les tailles.</p>';else sb='<div class="tq-sizes">'+d.sizes.map(function(s){return'<button type="button" class="tq-size" data-q="size" data-v="'+s.l+'" aria-pressed="'+(S.size===s.l)+'">'+s.l+"</button>"}).join("")+"</div>"; var c4='<div class="tq-q"><div class="tq-box'+(on3?"":" off")+'"><div class="tq-qh2"><h3 class="tq-t">Quelle taille ?</h3><span class="tq-hnt">'+(gift?"Taille inconnue ? Prenez la plus grande : l’échange est simple.":"Mesurez une ceinture que vous portez déjà.")+'</span><button type="button" class="tq-gbtn" data-g="'+(tact?"tac":"ty")+'"'+(on3?"":" disabled")+">Guide des tailles</button></div>"+sb+"</div></div>"; return'<div class="tq-rowA">'+a+'</div><div class="tq-rowB">'+b+'</div><div class="tq-rowC">'+c4+"</div>"} function ctx(){var k=key();return{k:k,d:k&&LD[k],P:k?CAT[k]:{n:"Votre ceinture",pk:"Tybelt · Tactybelt",lead:"Répondez aux questions pour découvrir notre conseil.",sp:[]}}} function res(){var c=ctx(),d=c.d,P=c.P;var col=S.use==="quot"?(S.grav==="avec"?(S.color?COL[S.color][0]:"à choisir"):"Orange"):""; var pk=d&&d.img?'<div class="tq-pack ph'+(c.k&&/^(be|de|k22)$/.test(c.k)?" tq-pt":"")+'" style="background-image:url('+d.img+')"></div>':'<div class="tq-pack"><i>Packshot · '+P.pk+"</i></div>"; return pk+'<div class="tq-rb"><div class="tq-kick">Notre conseil</div><h3 class="tq-n">'+P.n+'</h3><p class="tq-lead">'+P.lead+'</p><ul class="tq-sp">'+P.sp.map(function(x){return"<li>"+x+"</li>"}).join("")+'</ul><div class="tq-chips">'+(col?"<span>Couleur : <b>"+col+"</b></span>":"")+"<span>Taille : <b>"+(S.size||"à choisir")+'</b></span></div><div class="tq-price">'+(d?d.price:"")+"</div></div>"} function res2(){var c=ctx(),k=c.k,d=c.d,P=c.P,chosen=S.acc!==null,ad=(chosen&&S.acc!=="none")?AD[S.acc]:null,accOk=!chosen||S.acc==="none"||(ad&&ad.ok); var ready=k&&S.size&&S.ipa&&S.stock&&!S.chk,ok=ready&&chosen&&accOk; var lb=!k?"Répondez aux questions":(!S.size?"Choisissez une taille":(S.chk?"Vérification…":(S.stock===false?"Indisponible":(!chosen?"Choisissez vos mousquetons":(!accOk?"Mousquetons indisponibles":"Ajouter au panier"))))); if(d&&!d.sizes.length)lb="Modèle indisponible";var st=S.size&&S.stock===false?'<div class="tq-st bad">Cette taille est momentanément indisponible.</div>':'<div class="tq-st'+(S.msg?" bad":"")+'">'+(S.msg||"")+"</div>"; var total=(d?d.a:0)+(ad?ad.a:0); return'<div class="tq-rb tq-rb2"><div class="tq-kick">Votre sélection</div><div class="tq-ln"><span>'+(k?P.n:"Ceinture")+(S.size?" · "+S.size:"")+"</span><b>"+(d?d.price:"—")+'</b></div><div class="tq-ln"><span>'+(chosen?(S.acc==="none"?"Sans mousqueton":ACC[S.acc].t):"Mousquetons : à choisir")+"</span><b>"+(ad?"+ "+ad.p:(chosen?"—":""))+'</b></div><div class="tq-tot"><span>Total</span><b>'+(d&&chosen?money(total):"—")+'</b></div><button type="button" class="tq-add" id="tq-add"'+(ok&&!S.busy?"":" disabled")+">"+(S.busy?"Ajout en cours…":lb)+"</button>"+st+"</div>"} function drawRes(){var e=document.getElementById("tq-res"),e2=document.getElementById("tq-res2");if(e)e.innerHTML=res();if(e2)e2.innerHTML=res2()} function draw(f){var gift=S.who==="gift";root.innerHTML='<div class="tq-grid"><div class="tq-qs">'+qs()+'</div><aside class="tq-res" id="tq-res">'+res()+'</aside><div class="tq-qs tq-qs2"><div class="tq-rowD">'+accBox()+'</div></div><aside class="tq-res tq-res2" id="tq-res2" aria-live="polite">'+res2()+'</aside></div><button type="button" class="tq-reset" id="tq-reset">Recommencer</button>'; if(f){var e=root.querySelector('[data-q="'+f[0]+'"][data-v="'+f[1]+'"]')||root.querySelector('[data-w="'+f[1]+'"]');if(e)e.focus()}var k=key();if(k&&!LD[k])load(k)} var ov;function modal(){if(ov)return;ov=document.createElement("div");ov.className="tq-ov";ov.hidden=true;ov.innerHTML='<div class="tq-dlg" role="dialog" aria-modal="true" aria-labelledby="tq-gt"><button type="button" class="tq-x" id="tq-gx" aria-label="Fermer">×</button><h3 class="tq-gt" id="tq-gt"></h3><p class="tq-tip">Cliquez sur votre taille dans le tableau pour la choisir.</p><div class="tq-tw" id="tq-tab"></div><div class="tq-conf" id="tq-conf" hidden><span id="tq-msg"></span><button type="button" class="tq-yes" id="tq-yes">Oui, choisir</button><button type="button" class="tq-no" id="tq-no">Non</button></div><div class="tq-ew">Texte et photo en attente : comment bien choisir sa taille.</div></div>';document.body.appendChild(ov)} function mark(s){[].forEach.call(ov.querySelectorAll("[data-c]"),function(c){c.classList.toggle("col",!!s&&c.getAttribute("data-c")===s)})} function openG(k){modal();cur=k;var g=G[k];pend=null;document.getElementById("tq-gt").textContent=g.t; document.getElementById("tq-tab").innerHTML="<table><thead><tr><th></th>"+g.h.map(function(x){return'<th data-c="'+x+'"><button type="button" class="tq-pk" data-p="'+x+'">'+x+"</button></th>"}).join("")+"</tr></thead><tbody>"+g.r.map(function(r){return"<tr><th>"+r[0]+"</th>"+r.slice(1).map(function(x,i){return'<td data-p="'+g.h[i]+'" data-c="'+g.h[i]+'">'+x+"</td>"}).join("")+"</tr>"}).join("")+"</tbody></table>"; document.getElementById("tq-conf").hidden=true;mark(S.size);ov.hidden=false;document.getElementById("tq-gx").focus()} function closeG(){if(ov)ov.hidden=true} function reset(){S=Object.assign({},DEF);seq++;draw()} function postAdd(id,ipa){var b=new URLSearchParams();b.append("token",prestashop.static_token);b.append("id_product",id);b.append("id_product_attribute",ipa||0);b.append("id_customization","0");b.append("qty","1");b.append("add","1");b.append("action","update");b.append("ajax","1");return fetch(prestashop.urls.pages.cart,{method:"POST",credentials:"same-origin",headers:{"X-Requested-With":"XMLHttpRequest",Accept:"application/json"},body:b}).then(function(r){return r.json()})} function addAll(){var k=key();S.busy=true;S.msg="";drawRes();postAdd(CAT[k].id,S.ipa).then(function(j){if(!j||j.hasError||j.success===false)throw 1;return S.acc==="none"?j:postAdd(ACC[S.acc].id,0)}).then(function(j){if(!j||j.hasError||j.success===false)throw 2;S.busy=false;drawRes();prestashop.emit("updateCart",{reason:{idProduct:CAT[k].id,idProductAttribute:S.ipa,idCustomization:0,linkAction:"add-to-cart",cart:j.cart},resp:j})}).catch(function(){S.busy=false;S.msg="L’ajout n’a pas pu être terminé : vérifiez votre panier.";drawRes()})} document.addEventListener("keydown",function(e){if(e.key==="Escape"&&ov&&!ov.hidden)closeG()}); document.addEventListener("click",function(e){var t=e.target;if(!t.closest)return; var p=t.closest("[data-p]");if(p&&ov&&ov.contains(p)){pend=p.getAttribute("data-p");mark(pend);var c=document.getElementById("tq-conf");document.getElementById("tq-msg").innerHTML="Choisir la taille <b>"+pend+"</b> ?";document.getElementById("tq-yes").textContent="Oui, choisir "+pend;document.getElementById("tq-yes").hidden=false;c.hidden=false;document.getElementById("tq-yes").focus();return} if(t.id==="tq-no"){pend=null;mark(S.size);document.getElementById("tq-conf").hidden=true;return} if(t.id==="tq-yes"){if(window.tbPick&&pend){window.tbPick(pend);closeG();return}var k=key(),d=k&&LD[k],m=document.getElementById("tq-msg"); if(!k){m.textContent="Choisissez d’abord la couleur dans le questionnaire.";t.hidden=true;return} if(!d||!d.sizes.some(function(x){return x.l===pend})){m.textContent=(d&&!d.sizes.length)?"Ce modèle est momentanément indisponible.":"La taille "+pend+" n’est pas proposée pour ce modèle.";t.hidden=true;return} S.size=pend;pend=null;closeG();validate();draw(["size",S.size]);return} if(t.id==="tq-gx"||t===ov){closeG();return} var g=t.closest("[data-g]");if(g&&root.contains(g)){openG(g.getAttribute("data-g"));return} if(!root.contains(t))return; var w=t.closest("[data-w]");if(w){S.who=w.getAttribute("data-w");draw(["who",S.who]);return} var o=t.closest("[data-q]");if(o){var q=o.getAttribute("data-q"),v=o.getAttribute("data-v");S[q]=v;S.msg="";if(q==="accq"){S.acc=v==="non"?"none":null;draw([q,v]);return}if(q==="acc"){S.accq="oui";draw([q,v]);return}if(q==="grav")S.color=null;if(q==="cobra"&&v==="non")S.delta=null;if(q!=="size"){S.ipa=null;S.stock=null;var k2=key();if(k2&&LD[k2])validate();else if(!k2){S.size=null;S.accq=null;S.acc=null}}else validate();draw([q,v]);return} var rt=t.closest("[data-retry]");if(rt){var kk=key();if(kk){LE[kk]=0;LP[kk]=0;draw()}return}if(t.id==="tq-reset"){reset();return} var a=t.closest("#tq-add");if(a&&!a.disabled){addAll()}}); window.tbGuide={open:openG};draw();load("std");Object.keys(ACC).forEach(loadAcc)})()