{"id":3542,"date":"2026-10-01T19:12:19","date_gmt":"2026-10-01T19:12:19","guid":{"rendered":"https:\/\/lestresorsdutcg.fr\/rachat\/"},"modified":"2026-10-01T19:12:19","modified_gmt":"2026-10-01T19:12:19","slug":"rachat","status":"publish","type":"page","link":"https:\/\/lestresorsdutcg.fr\/en\/rachat\/","title":{"rendered":"Free valuation &amp; buyback"},"content":{"rendered":"<div class=\"ltdt-home ltdt-rc ltdt-rb\">\n  <section class=\"ltdt-rc__intro\">\n    <h1 class=\"ltdt-rc__title\">Estimation gratuite &amp; Rachat<\/h1>\n    <p class=\"ltdt-rc__lead\">Revends tes cartes Pok\u00e9mon et One Piece : obtiens un prix de rachat indicatif en quelques clics, puis envoie-nous tes photos pour recevoir une proposition pr\u00e9cise et personnalis\u00e9e.<\/p>\n    <ol class=\"ltdt-rb__steps\">\n      <li><span>1<\/span> Ajoute tes cartes et vois leur prix indicatif<\/li>\n      <li><span>2<\/span> Choisis argent ou bon d\u2019achat<\/li>\n      <li><span>3<\/span> Re\u00e7ois ton offre ferme sous 48 h<\/li>\n    <\/ol>\n  <\/section>\n  <form class=\"ltdt-rc__form\" novalidate>\n    <div class=\"ltdt-rc__card\">\n      <h2 class=\"ltdt-rc__h2\"><span>1<\/span> Ajoute tes cartes<\/h2>\n      <div class=\"ltdt-rc__games\" role=\"tablist\" aria-label=\"Jeu\">\n        <button type=\"button\" class=\"ltdt-rc__game is-active\" data-game=\"pokemon\" role=\"tab\" aria-selected=\"true\">Pok\u00e9mon<\/button>\n        <button type=\"button\" class=\"ltdt-rc__game\" data-game=\"onepiece\" role=\"tab\" aria-selected=\"false\">One Piece<\/button>\n      <\/div>\n      <div class=\"ltdt-rc__langs\">\n        <label><input type=\"radio\" name=\"ltdt-rb-db\" value=\"fr\" checked> Cartes fran\u00e7aises<\/label>\n        <label><input type=\"radio\" name=\"ltdt-rb-db\" value=\"ja\"> Cartes japonaises<\/label>\n      <\/div>\n      <div class=\"ltdt-rc__row\">\n        <input type=\"search\" class=\"ltdt-rc__q\" placeholder=\"Ex. : 125\/094 ou Dracaufeu\" aria-label=\"Num\u00e9ro ou nom de la carte\" maxlength=\"60\">\n        <button type=\"button\" class=\"ltdt-btn ltdt-rc__go\">Rechercher<\/button>\n      <\/div>\n      <p class=\"ltdt-rc__hint ltdt-rc__hint--s\"><\/p>\n      <div class=\"ltdt-rc__status\" aria-live=\"polite\"><\/div>\n      <div class=\"ltdt-rc__results\"><\/div>\n    <\/div>\n    <div class=\"ltdt-rc__card\">\n      <h2 class=\"ltdt-rc__h2\"><span>2<\/span> Tes cartes et leur prix de rachat<\/h2>\n      <p class=\"ltdt-rc__empty\">Aucune carte pour l\u2019instant. Clique sur une carte dans les r\u00e9sultats pour l\u2019ajouter.<\/p>\n      <ul class=\"ltdt-rc__sel\"><\/ul>\n      <p class=\"ltdt-rb__subtotal\" aria-live=\"polite\" hidden><\/p>\n      <p class=\"ltdt-rb__note\"><strong>Prix indicatif.<\/strong> Le prix affich\u00e9 est une premi\u00e8re estimation : il sera analys\u00e9 et affin\u00e9 \u00e0 r\u00e9ception de tes photos et de ta demande. Il d\u00e9pend de nombreux crit\u00e8res : l\u2019\u00e9tat de la carte (centrage, coins, bords, surface), sa qualit\u00e9, sa version, sa langue et la demande du moment. N\u2019h\u00e9site pas \u00e0 nous envoyer tes photos et toutes les cartes que tu souhaites revendre : on \u00e9tudie chaque demande et on te fait une proposition pr\u00e9cise et personnalis\u00e9e.<\/p>\n    <\/div>\n    <div class=\"ltdt-rc__card\">\n      <h2 class=\"ltdt-rc__h2\"><span>3<\/span> Ton prix de rachat indicatif<\/h2>\n      <div class=\"ltdt-rb__choices\">\n        <label class=\"ltdt-rb__choice\"><input type=\"radio\" name=\"payout\" value=\"argent\" checked><span class=\"ltdt-rb__ctitle\">En argent<\/span><span class=\"ltdt-rb__camount\" data-total=\"argent\">0,00 \u20ac<\/span><span class=\"ltdt-rb__csub\">Virement ou PayPal<\/span><\/label>\n        <label class=\"ltdt-rb__choice\"><input type=\"radio\" name=\"payout\" value=\"bon\"><span class=\"ltdt-rb__ctitle\">En bon d\u2019achat<\/span><span class=\"ltdt-rb__camount\" data-total=\"bon\">0,00 \u20ac<\/span><span class=\"ltdt-rb__csub\">Valable 12 mois sur tout le site<\/span><\/label>\n      <\/div>\n      <p class=\"ltdt-rb__aest\" hidden><\/p>\n      <div class=\"ltdt-rb__methods ltdt-rb__methods--pay\">\n        <span>Paiement :<\/span>\n        <label><input type=\"radio\" name=\"methode\" value=\"virement\" checked> Virement<\/label>\n        <label><input type=\"radio\" name=\"methode\" value=\"paypal\"> PayPal<\/label>\n      <\/div>\n      <div class=\"ltdt-rb__methods\">\n        <span>Tes cartes :<\/span>\n        <label><input type=\"radio\" name=\"remise\" value=\"poste\" checked> Envoi postal suivi<\/label>\n        <label><input type=\"radio\" name=\"remise\" value=\"boutique\"> D\u00e9p\u00f4t en boutique \u00e0 Jacou<\/label>\n      <\/div>\n    <\/div>\n    <div class=\"ltdt-rc__card\">\n      <h2 class=\"ltdt-rc__h2\"><span>4<\/span> Photos et coordonn\u00e9es<\/h2>\n      <p class=\"ltdt-rc__hint\">Ajoute une photo nette du recto et du verso de tes cartes (JPG ou PNG, 10 photos maximum). Pour une carte grad\u00e9e, montre bien l\u2019\u00e9tiquette.<\/p>\n      <label class=\"ltdt-btn ltdt-rb__add\">Ajouter des photos<input type=\"file\" class=\"ltdt-rb__file\" accept=\"image\/jpeg,image\/png\" multiple><\/label>\n      <div class=\"ltdt-rb__thumbs\"><\/div>\n      <div class=\"ltdt-rc__grid\">\n        <label>Pr\u00e9nom et nom *<input type=\"text\" name=\"name\" autocomplete=\"name\" required maxlength=\"80\"><\/label>\n        <label>E-mail *<input type=\"email\" name=\"email\" autocomplete=\"email\" required maxlength=\"120\"><\/label>\n        <label>T\u00e9l\u00e9phone<input type=\"tel\" name=\"phone\" autocomplete=\"tel\" maxlength=\"30\"><\/label>\n      <\/div>\n      <label class=\"ltdt-rc__full\">Message (facultatif)<textarea name=\"message\" rows=\"3\" maxlength=\"1000\" placeholder=\"Pr\u00e9cisions sur l\u2019\u00e9tat, \u00e9dition, lot\u2026\"><\/textarea><\/label>\n      <label class=\"ltdt-rc__hp\" aria-hidden=\"true\">Site<input type=\"text\" name=\"site\" tabindex=\"-1\" autocomplete=\"off\"><\/label>\n      <label class=\"ltdt-rc__consent\"><input type=\"checkbox\" name=\"consent\" value=\"1\"> <span>J\u2019accepte que mes donn\u00e9es et mes photos soient utilis\u00e9es pour traiter ma demande de rachat (voir la <a href=\"https:\/\/lestresorsdutcg.fr\/en\/politique-confidentialite\/\" target=\"_blank\" rel=\"noopener\">politique de confidentialit\u00e9<\/a>).<\/span><\/label>\n      <button type=\"submit\" class=\"ltdt-btn ltdt-rc__send\">Recevoir mon offre<\/button>\n      <div class=\"ltdt-rc__msg\" aria-live=\"polite\"><\/div>\n    <\/div>\n  <\/form>\n<\/div>\n<script nowprocket>\n(function () {\n  function init() {\n    var root = document.querySelector('.ltdt-rb');\n    if (!root || root.getAttribute('data-ready')) { return; }\n    root.setAttribute('data-ready', '1');\n    var API = \"https:\\\/\\\/lestresorsdutcg.fr\\\/en\\\/wp-json\\\/ltdt\\\/v1\\\/\", TAUX = 0.7, BONUS = 0.1;\n    var COEF = {\"op_fr\":0.75,\"op_ja_1\":0.6,\"op_ja_2\":0.52,\"op_ja_3\":0.41,\"op_ja_4\":0.26,\"pk_fr\":1,\"pk_ja_1\":0.61,\"pk_ja_2\":0.34,\"pk_ja_3\":0.48,\"pk_ja_4\":0.58,\"pk_ja_med\":0.5};\n    var game = 'pokemon', sel = [], photos = [], MAX = 20, MAXP = 10;\n    var ETATS = [['Mint', 'Mint (parfaite)'], ['Near Mint', 'Near Mint (quasi parfaite)'], ['Excellent', 'Excellent'], ['Good', 'Good (bon \u00e9tat)'], ['Light Played', 'Light Played (l\u00e9g\u00e8rement jou\u00e9e)'], ['Played', 'Played (jou\u00e9e)'], ['Poor', 'Poor (ab\u00eem\u00e9e)']], ETAT_COEF = { 'Mint': 1, 'Near Mint': 1, 'Excellent': 0.8, 'Good': 0.55, 'Light Played': 0.4, 'Played': 0.3, 'Poor': 0.15 }, GRADES = ['Non grad\u00e9e', 'PSA', 'CGC', 'Beckett', 'PCA', 'Collect Aura', 'Autre'];\n    var LANGS = { fr: 'Fran\u00e7ais', en: 'Anglais', ja: 'Japonais' };\n    function $(s) { return root.querySelector(s); }\n    function el(tag, cls, txt) { var e = document.createElement(tag); if (cls) { e.className = cls; } if (txt != null) { e.textContent = txt; } return e; }\n    function eur(n) { return (Math.round(n * 100) \/ 100).toLocaleString('fr-FR', { minimumFractionDigits: 2, maximumFractionDigits: 2 }) + '\\u00a0\u20ac'; }\n    var q = $('.ltdt-rc__q'), res = $('.ltdt-rc__results'), status = $('.ltdt-rc__status'), hint = $('.ltdt-rc__hint--s'), msg = $('.ltdt-rc__msg');\n    var ph = { pokemon: 'Ex. : 125\/094 ou Dracaufeu', onepiece: 'Ex. : OP01-001 ou Luffy' };\n    var hints = { pokemon: 'Tape le num\u00e9ro inscrit en bas de la carte (ex. 125\/094) ou son nom. Pour les cartes japonaises, cherche plut\u00f4t par num\u00e9ro (ex. 201\/165).', onepiece: 'Tape le code de la carte (ex. OP01-001) ou son nom en anglais (ex. Luffy). Tu choisiras ensuite la langue de ta carte.' };\n    function setGame(g) {\n      game = g;\n      root.querySelectorAll('.ltdt-rc__game').forEach(function (b) { var on = b.getAttribute('data-game') === g; b.classList.toggle('is-active', on); b.setAttribute('aria-selected', on ? 'true' : 'false'); });\n      $('.ltdt-rc__langs').hidden = (g !== 'pokemon');\n      q.placeholder = ph[g]; hint.textContent = hints[g];\n      res.innerHTML = ''; status.textContent = '';\n    }\n    root.querySelectorAll('.ltdt-rc__game').forEach(function (b) { b.addEventListener('click', function () { setGame(b.getAttribute('data-game')); }); });\n    function dbLang() { var r = root.querySelector('input[name=\"ltdt-rb-db\"]:checked'); return r ? r.value : 'fr'; }\n    root.querySelectorAll('input[name=\"ltdt-rb-db\"]').forEach(function (r) { r.addEventListener('change', function () { res.innerHTML = ''; status.textContent = ''; }); });\n    function links(c) {\n      var pk = c.game === 'pokemon';\n      var s = pk ? (c.name + ' ' + c.number) : (c.number + ' ' + c.name);\n      s = s.replace(\/\\(\\d+\\)\/g, '').replace(\/[()]\/g, ' ').replace(\/\\s+\/g, ' ');\n      return {\n        ebay: 'https:\/\/www.ebay.fr\/sch\/i.html?_nkw=' + encodeURIComponent(s.trim()) + '&LH_Sold=1&LH_Complete=1',\n        cm: 'https:\/\/www.cardmarket.com\/fr\/' + (pk ? 'Pokemon' : 'OnePiece') + '\/Products\/Search?searchString=' + encodeURIComponent(pk ? c.name : (c.number || c.name))\n      };\n    }\n    function search() {\n      var v = q.value.trim();\n      if (v.length < 2) { status.textContent = 'Tape au moins 2 caract\u00e8res.'; return; }\n      status.textContent = 'Recherche en cours\u2026'; res.innerHTML = '';\n      var url = API + 'cartes?game=' + game + (game === 'pokemon' ? '&lang=' + dbLang() : '') + '&q=' + encodeURIComponent(v);\n      fetch(url).then(function (r) { return r.json(); }).then(function (j) {\n        var list = (j && j.results) || [];\n        if (!list.length) { status.textContent = (j && j.error) ? j.error : 'Aucune carte trouv\u00e9e. V\u00e9rifie le num\u00e9ro ou essaie avec le nom.'; return; }\n        status.textContent = list.length + (list.length > 1 ? ' cartes trouv\u00e9es.' : ' carte trouv\u00e9e.') + ' Clique sur une carte pour l\u2019ajouter.';\n        list.forEach(function (c) {\n          var b = el('button', 'ltdt-rc__item'); b.type = 'button'; b.setAttribute('data-key', c.key);\n          if (sel.some(function (s) { return s.key === c.key; })) { b.classList.add('is-picked'); }\n          if (c.image) { var im = el('img'); im.src = c.image; im.alt = c.name; im.loading = 'lazy'; im.width = 245; im.height = 342; b.appendChild(im); } else { b.appendChild(el('span', 'ltdt-rc__noimg', 'Image non disponible')); }\n          b.appendChild(el('strong', null, c.name));\n          b.appendChild(el('span', 'ltdt-rc__meta', (c.number || '') + (c.set ? ' \u00b7 ' + c.set : '')));\n          b.addEventListener('click', function () { toggle(c, b); });\n          res.appendChild(b);\n        });\n      }).catch(function () { status.textContent = 'La base de cartes ne r\u00e9pond pas, r\u00e9essaie dans un instant.'; });\n    }\n    $('.ltdt-rc__go').addEventListener('click', search);\n    q.addEventListener('keydown', function (e) { if (e.key === 'Enter') { e.preventDefault(); search(); } });\n    function toggle(c, b) {\n      var i = -1; sel.forEach(function (s, k) { if (s.key === c.key) { i = k; } });\n      if (i > -1) { sel.splice(i, 1); b.classList.remove('is-picked'); render(); return; }\n      if (sel.length >= MAX) { status.textContent = MAX + ' cartes maximum par demande.'; return; }\n      var pk = c.key.indexOf('pk-') === 0;\n      var lang = pk ? (c.key.indexOf('pk-ja-') === 0 ? 'ja' : 'fr') : 'en';\n      var o = { key: c.key, game: pk ? 'pokemon' : 'onepiece', lang: lang, src: lang, id: pk ? c.key.replace(\/^pk-(fr|ja)-\/, '') : '', name: c.name, number: c.number || '', set: c.set || '', image: c.image || '', etat: 'Near Mint', grade: 'Non grad\u00e9e', note: '', qty: 1, cote: 0, base: '', prix: '', loading: true };\n      sel.push(o); b.classList.add('is-picked'); render();\n      loadCote(o);\n    }\n    function loadCote(o) {\n      fetch(API + 'cote?' + (o.game === 'pokemon' ? 'lang=' + o.lang + '&id=' + encodeURIComponent(o.id) : 'game=onepiece&id=' + encodeURIComponent(o.number) + '&img=' + encodeURIComponent(o.image))).then(function (r) { return r.json(); }).then(function (j) {\n        o.cote = (j && j.cote) ? +j.cote : 0; o.base = (j && j.base) || ''; o.loading = false; render();\n      }).catch(function () { o.loading = false; render(); });\n    }\n    function auto(c) { return c.grade === 'Non grad\u00e9e' && c.cote > 0; }\n    function coef(c, b) { if (c.game === 'onepiece') { if (c.lang === 'fr') { return COEF.op_fr; } if (c.lang === 'ja') { return b < 6 ? COEF.op_ja_1 : (b < 20 ? COEF.op_ja_2 : (b < 60 ? COEF.op_ja_3 : COEF.op_ja_4)); } return 1; } if (c.src === c.lang) { return c.lang === 'fr' ? COEF.pk_fr : 1; } if (c.src === 'fr') { return b < 6 ? COEF.pk_ja_1 : (b < 20 ? COEF.pk_ja_2 : (b < 60 ? COEF.pk_ja_3 : COEF.pk_ja_4)); } var t = [[0, 6, COEF.pk_ja_1], [6, 20, COEF.pk_ja_2], [20, 60, COEF.pk_ja_3], [60, 1e12, COEF.pk_ja_4]]; for (var i = 0; i < t.length; i++) { var x = b \/ t[i][2]; if (x >= t[i][0] && x < t[i][1]) { return COEF.pk_fr \/ t[i][2]; } } return COEF.pk_fr \/ COEF.pk_ja_med; }\n    function ec(c) { return (c.grade === 'Non grad\u00e9e' && ETAT_COEF[c.etat] != null) ? ETAT_COEF[c.etat] : 1; }\n    function unit(c) { if (auto(c)) { return Math.round(c.cote * coef(c, c.cote) * ec(c) * 100) \/ 100; } var p = parseFloat(String(c.prix).replace(',', '.')); return (p > 0 && p < 100000) ? p : 0; }\n    function priceText(c) {\n      var u = unit(c);\n      if (c.loading) { return 'Calcul du prix\u2026'; }\n      if (!u) { return 'Prix sur estimation personnalis\u00e9e : envoie-nous tes photos.'; }\n      return 'Rachat indicatif : ' + eur(u * TAUX * c.qty * (1 + BONUS)) + ' en bon d\u2019achat (ou ' + eur(u * TAUX * c.qty) + ' en argent)' + (auto(c) && ec(c) < 1 ? ' \u00b7 \u00e9tat ' + c.etat + ' (\u2212' + Math.round((1 - ec(c)) * 100) + ' % sur la cote)' : '');\n    }\n    function totals() {\n      var t = 0, n = 0;\n      sel.forEach(function (c) { var u = unit(c); if (u) { t += u * TAUX * c.qty; } else { n++; } });\n      root.querySelector('[data-total=\"argent\"]').textContent = eur(t);\n      root.querySelector('[data-total=\"bon\"]').textContent = eur(t * (1 + BONUS));\n      var stl = $('.ltdt-rb__subtotal'), nb = 0; sel.forEach(function (c) { if (unit(c)) { nb += c.qty; } }); if (stl) { stl.hidden = !sel.length; stl.textContent = !sel.length ? '' : (nb ? 'Total ' + (nb > 1 ? 'de tes ' + nb + ' cartes' : 'de ta carte') + ' : ' + eur(t * (1 + BONUS)) + ' en bon d\u2019achat (ou ' + eur(t) + ' en argent)' + (n ? ', hors cartes \u00e0 estimer.' : '.') : 'Tes cartes seront chiffr\u00e9es dans ton offre ferme.'); }\n      var a = $('.ltdt-rb__aest'); a.hidden = !n; a.textContent = n ? n + (n > 1 ? ' cartes \u00e0 estimer : on les chiffrera' : ' carte \u00e0 estimer : on la chiffrera') + ' dans ton offre ferme.' : '';\n      root.querySelectorAll('.ltdt-rc__line').forEach(function (li, i) { var p = li.querySelector('.ltdt-rb__price'); if (p && sel[i]) { p.textContent = priceText(sel[i]); } });\n    }\n    function selBox(label, vals, cur, cb) {\n      var l = el('label', null, label), s = el('select');\n      vals.forEach(function (v) { var o = el('option', null, typeof v === 'string' ? v : v[1]); o.value = typeof v === 'string' ? v : v[0]; if (o.value === cur) { o.selected = true; } s.appendChild(o); });\n      s.addEventListener('change', function () { cb(s.value); });\n      l.appendChild(s); return l;\n    }\n    function render() {\n      var ul = $('.ltdt-rc__sel'); ul.innerHTML = '';\n      $('.ltdt-rc__empty').hidden = sel.length > 0;\n      sel.forEach(function (c, i) {\n        var li = el('li', 'ltdt-rc__line');\n        if (c.image) { var im = el('img'); im.src = c.image; im.alt = ''; im.width = 60; im.height = 84; li.appendChild(im); }\n        else { li.appendChild(el('span', 'ltdt-rc__noimg ltdt-rc__noimg--s', c.game === 'pokemon' ? 'Pok\u00e9mon' : 'One Piece')); }\n        var info = el('div', 'ltdt-rc__info');\n        info.appendChild(el('strong', null, c.name));\n        info.appendChild(el('span', 'ltdt-rc__meta', (c.game === 'pokemon' ? 'Pok\u00e9mon' : 'One Piece') + ' \u00b7 ' + LANGS[c.lang] + (c.number ? ' \u00b7 ' + c.number : '') + (c.set ? ' \u00b7 ' + c.set : '')));\n        info.appendChild(el('span', 'ltdt-rb__price', priceText(c)));\n        li.appendChild(info);\n        var box = el('div', 'ltdt-rc__opts');\n        if (c.game === 'onepiece') { box.appendChild(selBox('Langue', [['en', 'Anglais'], ['fr', 'Fran\u00e7ais'], ['ja', 'Japonais']], c.lang, function (v) { c.lang = v; render(); })); } else { box.appendChild(selBox('Langue', [['fr', 'Fran\u00e7ais'], ['ja', 'Japonais']], c.lang, function (v) { c.lang = v; render(); })); }\n        box.appendChild(selBox('Gradation', GRADES, c.grade, function (v) { c.grade = v; render(); }));\n        if (c.grade === 'Non grad\u00e9e') { box.appendChild(selBox('\u00c9tat', ETATS, c.etat, function (v) { c.etat = v; totals(); })); }\n        else { var ln = el('label', null, 'Note'); var nn = el('input'); nn.type = 'text'; nn.maxLength = 10; nn.value = c.note; nn.placeholder = 'Ex. : 10'; nn.addEventListener('input', function () { c.note = nn.value; }); ln.appendChild(nn); box.appendChild(ln); }\n        var lq = el('label', null, 'Quantit\u00e9'); var nq = el('input'); nq.type = 'number'; nq.min = 1; nq.max = 20; nq.value = c.qty;\n        nq.addEventListener('input', function () { c.qty = Math.max(1, Math.min(20, parseInt(nq.value, 10) || 1)); totals(); });\n        lq.appendChild(nq); box.appendChild(lq);\n        li.appendChild(box);\n        var rm = el('button', 'ltdt-rc__rm', 'Retirer'); rm.type = 'button'; rm.setAttribute('aria-label', 'Retirer ' + c.name);\n        rm.addEventListener('click', function () { sel.splice(i, 1); var b = res.querySelector('[data-key=\"' + c.key.replace(\/\"\/g, '') + '\"]'); if (b) { b.classList.remove('is-picked'); } render(); });\n        li.appendChild(rm);\n        ul.appendChild(li);\n      });\n      totals();\n    }\n    function shrink(file) {\n      return new Promise(function (ok, ko) {\n        if (!\/^image\\\/(jpeg|png)$\/.test(file.type)) { ko('Format refus\u00e9 : JPG ou PNG uniquement.'); return; }\n        var u = URL.createObjectURL(file), im = new Image();\n        im.onload = function () {\n          var m = 1600, w = im.naturalWidth, h = im.naturalHeight, r = Math.min(1, m \/ Math.max(w, h));\n          var cv = document.createElement('canvas'); cv.width = Math.round(w * r); cv.height = Math.round(h * r);\n          var cx = cv.getContext('2d'); cx.fillStyle = '#fff'; cx.fillRect(0, 0, cv.width, cv.height); cx.drawImage(im, 0, 0, cv.width, cv.height);\n          URL.revokeObjectURL(u);\n          cv.toBlob(function (b) { if (!b) { ko('Photo illisible, r\u00e9essaie avec une autre.'); return; } if (b.size > 5 * 1024 * 1024) { ko('Fichier trop lourd : 5 Mo maximum.'); return; } ok(b); }, 'image\/jpeg', 0.85);\n        };\n        im.onerror = function () { URL.revokeObjectURL(u); ko('Format refus\u00e9 : JPG ou PNG uniquement.'); };\n        im.src = u;\n      });\n    }\n    function thumbs() {\n      var t = $('.ltdt-rb__thumbs'); t.innerHTML = '';\n      photos.forEach(function (p, i) {\n        var d = el('div', 'ltdt-rb__thumb'); var im = el('img'); im.src = p.url; im.alt = 'Photo ' + (i + 1); d.appendChild(im);\n        var x = el('button', 'ltdt-rb__x', '\u00d7'); x.type = 'button'; x.setAttribute('aria-label', 'Retirer la photo ' + (i + 1));\n        x.addEventListener('click', function () { URL.revokeObjectURL(p.url); photos.splice(i, 1); thumbs(); });\n        d.appendChild(x); t.appendChild(d);\n      });\n    }\n    $('.ltdt-rb__file').addEventListener('change', function (e) {\n      var files = Array.prototype.slice.call(e.target.files || []); e.target.value = '';\n      msg.className = 'ltdt-rc__msg'; msg.textContent = '';\n      files.forEach(function (f) {\n        if (photos.length >= MAXP) { msg.className = 'ltdt-rc__msg is-err'; msg.textContent = MAXP + ' photos maximum.'; return; }\n        shrink(f).then(function (b) { if (photos.length < MAXP) { photos.push({ blob: b, url: URL.createObjectURL(b) }); thumbs(); } })\n          .catch(function (er) { msg.className = 'ltdt-rc__msg is-err'; msg.textContent = er; });\n      });\n    });\n    var form = $('.ltdt-rc__form'), send = $('.ltdt-rc__send'), busy = false;\n    form.addEventListener('submit', function (e) {\n      e.preventDefault(); if (busy) { return; }\n      function err(t) { msg.className = 'ltdt-rc__msg is-err'; msg.textContent = t; }\n      if (!sel.length) { err('Ajoute au moins une carte.'); return; }\n      if (!photos.length) { err('Photo manquante : ajoute au moins une photo de tes cartes (recto et verso).'); return; }\n      var fd = new FormData(form);\n      if (String(fd.get('name') || '').trim().length < 2) { err('Indique ton pr\u00e9nom et ton nom.'); return; }\n      if (!\/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(String(fd.get('email') || ''))) { err('Ton adresse e-mail n\u2019est pas valide.'); return; }\n      if (!fd.get('consent')) { err('Coche la case de consentement pour envoyer ta demande.'); return; }\n      var out = new FormData();\n      ['name', 'email', 'phone', 'message', 'site', 'payout', 'methode', 'remise', 'consent'].forEach(function (k) { var v = fd.get(k); if (v != null) { out.append(k, v); } });\n      out.append('cards', JSON.stringify(sel.map(function (c) { return { game: c.game, lang: c.lang, src: c.src || c.lang, id: c.id, name: c.name, number: c.number, set: c.set, image: c.image, etat: c.etat, grade: c.grade, note: c.note, qty: c.qty, prix: auto(c) ? '' : c.prix }; })));\n      photos.forEach(function (p, i) { out.append('photos[]', p.blob, 'photo-' + (i + 1) + '.jpg'); });\n      busy = true; send.disabled = true; msg.className = 'ltdt-rc__msg'; msg.textContent = 'Envoi en cours\u2026';\n      fetch(API + 'rachat', { method: 'POST', body: out }).then(function (r) { return r.json().then(function (j) { return { s: r.status, j: j }; }); }).then(function (x) {\n        busy = false; send.disabled = false;\n        if (x.s === 200 && x.j && x.j.ok) {\n          msg.className = 'ltdt-rc__msg is-ok'; msg.textContent = 'Merci ! Ta demande de rachat est bien envoy\u00e9e. Tu vas recevoir un e-mail r\u00e9capitulatif et ton offre ferme sous 48 h. N\u2019envoie pas encore tes cartes.';\n          sel = []; photos.forEach(function (p) { URL.revokeObjectURL(p.url); }); photos = []; thumbs(); render(); form.reset(); res.querySelectorAll('.is-picked').forEach(function (b) { b.classList.remove('is-picked'); });\n        } else { err((x.j && x.j.error) ? x.j.error : 'L\u2019envoi a \u00e9chou\u00e9, r\u00e9essaie dans un instant.'); }\n      }).catch(function () { busy = false; send.disabled = false; err('L\u2019envoi a \u00e9chou\u00e9, v\u00e9rifie ta connexion et r\u00e9essaie.'); });\n    });\n    var P = new URLSearchParams(window.location.search), pj = P.get('jeu'), pq = P.get('carte');\n    if (pj === 'onepiece') { setGame('onepiece'); } else { setGame('pokemon'); if (pj === 'pokemon-ja') { var rj = root.querySelector('input[name=\"ltdt-rb-db\"][value=\"ja\"]'); if (rj) { rj.checked = true; } } }\n    render();\n    if (pq && pq.trim().length > 1) { q.value = pq.trim().slice(0, 60); search(); var c1 = root.querySelector('.ltdt-rc__card'); if (c1) { window.scrollTo({ top: c1.getBoundingClientRect().top + window.pageYOffset - 110, behavior: 'smooth' }); } }\n  }\n  if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); }\n})();\n<\/script>\n\t\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_seopress_titles_title":"","_seopress_titles_desc":"Revends tes cartes Pok\u00e9mon et One Piece : prix de rachat indicatif gratuit, puis proposition pr\u00e9cise et personnalis\u00e9e \u00e0 partir de tes photos. Boutique \u00e0 Jacou.","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"0","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"","_seopress_redirections_param":"","_seopress_redirections_type":0,"_seopress_analysis_target_kw":"","_seopress_news_disabled":"","_seopress_video_disabled":"","_seopress_video":[],"_seopress_pro_schemas_manual":[],"_seopress_pro_rich_snippets_disable_all":"","_seopress_pro_rich_snippets_disable":[],"_seopress_pro_schemas":[],"footnotes":""},"class_list":["post-3542","page","type-page","status-publish","hentry"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":8}},"_links":{"self":[{"href":"https:\/\/lestresorsdutcg.fr\/en\/wp-json\/wp\/v2\/pages\/3542","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lestresorsdutcg.fr\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/lestresorsdutcg.fr\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/lestresorsdutcg.fr\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lestresorsdutcg.fr\/en\/wp-json\/wp\/v2\/comments?post=3542"}],"version-history":[{"count":0,"href":"https:\/\/lestresorsdutcg.fr\/en\/wp-json\/wp\/v2\/pages\/3542\/revisions"}],"wp:attachment":[{"href":"https:\/\/lestresorsdutcg.fr\/en\/wp-json\/wp\/v2\/media?parent=3542"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}