{"id":1731,"date":"2026-06-07T03:01:52","date_gmt":"2026-06-06T20:01:52","guid":{"rendered":"https:\/\/sptweave.com\/?page_id=1731"},"modified":"2026-08-08T13:47:14","modified_gmt":"2026-08-08T06:47:14","slug":"products-all","status":"publish","type":"page","link":"https:\/\/sptweave.com\/th\/products-all\/","title":{"rendered":"products all"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1731\" class=\"elementor elementor-1731\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1fc6318 e-flex e-con-boxed e-con e-parent\" data-id=\"1fc6318\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2c35901 elementor-widget elementor-widget-html\" data-id=\"2c35901\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<meta charset=\"UTF-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n<style>\r\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Noto+Sans+Thai:wght@300;400;500;600&display=swap');\r\n*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}\r\n\r\n:root {\r\n  --bg: #fafaf8;\r\n  --surface: #fff;\r\n  --border: #e8e4df;\r\n  --border-active: #1a1a1a;\r\n  --text-primary: #1a1a1a;\r\n  --text-secondary: #888880;\r\n  --tag-bg: #f0ede8;\r\n  --active-bg: #1a1a1a;\r\n  --active-text: #fff;\r\n}\r\n\r\n\/* ===== FULL-WIDTH BREAKOUT \u0e08\u0e32\u0e01 WordPress container ===== *\/\r\n#rope-shop-wrap {\r\n  width: 100vw !important;\r\n  max-width: 100vw !important;\r\n  position: relative !important;\r\n  left: 50% !important;\r\n  transform: translateX(-50%) !important;\r\n  margin-left: 0 !important;\r\n  margin-right: 0 !important;\r\n  overflow-x: hidden;\r\n}\r\n\r\n\/* Override WordPress theme container *\/\r\n#rope-shop-wrap *,\r\n#rope-shop-wrap *::before,\r\n#rope-shop-wrap *::after {\r\n  box-sizing: border-box;\r\n}\r\n\r\n#rope-shop {\r\n  font-family: 'Noto Sans Thai', sans-serif;\r\n  display: grid;\r\n  grid-template-columns: 220px 1fr 230px;\r\n  height: calc(100vh - 80px);\r\n  min-height: 600px;\r\n  width: 100%;\r\n  border: none;\r\n  border-radius: 0;\r\n  overflow: hidden;\r\n  background: var(--surface);\r\n  color: var(--text-primary);\r\n}\r\n\r\n\/* ===================== COL 1 ===================== *\/\r\n#rs-col1 {\r\n  border-right: 1px solid var(--border);\r\n  overflow-y: auto;\r\n  background: var(--surface);\r\n}\r\n\r\n.rs-col-label {\r\n  font-size: 10px;\r\n  letter-spacing: 0.15em;\r\n  text-transform: uppercase;\r\n  color: var(--text-secondary);\r\n  padding: 18px 18px 12px;\r\n  font-weight: 500;\r\n  border-bottom: 1px solid var(--border);\r\n}\r\n\r\n.rs-cat-item {\r\n  display: flex;\r\n  align-items: center;\r\n  gap: 12px;\r\n  padding: 13px 18px;\r\n  cursor: pointer;\r\n  border-left: 3px solid transparent;\r\n  border-bottom: 1px solid var(--border);\r\n  transition: background 0.15s, border-color 0.15s;\r\n  user-select: none;\r\n}\r\n.rs-cat-item:hover { background: var(--tag-bg); }\r\n.rs-cat-item.active {\r\n  border-left-color: var(--border-active);\r\n  background: var(--tag-bg);\r\n}\r\n.rs-cat-item.active .rs-cat-name { font-weight: 600; }\r\n\r\n.rs-cat-thumb {\r\n  width: 46px; height: 46px;\r\n  border-radius: 8px;\r\n  background: var(--border);\r\n  flex-shrink: 0;\r\n  overflow: hidden;\r\n  display: flex; align-items: center; justify-content: center;\r\n  font-size: 20px;\r\n}\r\n.rs-cat-thumb img { width:100%; height:100%; object-fit:cover; }\r\n.rs-cat-name { font-size: 13px; line-height: 1.4; }\r\n.rs-cat-count { font-size: 11px; color: var(--text-secondary); margin-top: 2px; }\r\n\r\n\/* ===================== COL 2 ===================== *\/\r\n#rs-col2 {\r\n  padding: 20px;\r\n  overflow-y: auto;\r\n  background: var(--bg);\r\n}\r\n\r\n.rs-col2-header {\r\n  display: flex;\r\n  align-items: baseline;\r\n  justify-content: space-between;\r\n  margin-bottom: 16px;\r\n  padding-bottom: 10px;\r\n  border-bottom: 1px solid var(--border);\r\n}\r\n\r\n.rs-col2-title { font-size: 15px; font-weight: 500; }\r\n.rs-col2-count { font-size: 11px; color: var(--text-secondary); }\r\n\r\n.rs-grid {\r\n  display: grid;\r\n  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));\r\n  gap: 12px;\r\n}\r\n\r\n.rs-empty {\r\n  grid-column: 1\/-1;\r\n  text-align: center;\r\n  padding: 50px 0;\r\n  color: var(--text-secondary);\r\n  font-size: 13px;\r\n}\r\n\r\n.rs-card {\r\n  cursor: pointer;\r\n  border-radius: 8px;\r\n  overflow: hidden;\r\n  border: 2px solid transparent;\r\n  background: var(--surface);\r\n  box-shadow: 0 1px 4px rgba(0,0,0,0.05);\r\n  transition: border-color 0.15s, transform 0.2s, box-shadow 0.2s;\r\n  animation: rsUp 0.25s ease both;\r\n}\r\n.rs-card:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(0,0,0,0.08); border-color: var(--border); }\r\n.rs-card.active { border-color: var(--border-active); }\r\n\r\n.rs-card-img {\r\n  width: 100%; aspect-ratio: 1;\r\n  background: var(--tag-bg);\r\n  display: flex; align-items: center; justify-content: center;\r\n  font-size: 34px;\r\n  overflow: hidden; position: relative;\r\n}\r\n.rs-card-img img { width:100%; height:100%; object-fit:cover; transition: transform 0.3s; }\r\n.rs-card:hover .rs-card-img img { transform: scale(1.05); }\r\n.rs-card-img .rs-overlay {\r\n  position: absolute; inset: 0;\r\n  opacity: 0; transition: opacity 0.3s;\r\n  mix-blend-mode: multiply; pointer-events: none;\r\n}\r\n.rs-card-img .rs-overlay.on { opacity: 0.3; }\r\n\r\n.rs-card-info { padding: 8px 10px 10px; }\r\n.rs-card-name { font-size: 12px; font-weight: 500; line-height: 1.4; }\r\n.rs-card-sub  { font-size: 10px; color: var(--text-secondary); margin-top: 1px; }\r\n.rs-card-price{ font-size: 12px; font-weight: 700; margin-top: 5px; }\r\n\r\n\/* Detail *\/\r\n.rs-detail { animation: rsUp 0.25s ease both; }\r\n.rs-back {\r\n  background: none; border: none; font-family: inherit;\r\n  font-size: 12px; color: var(--text-secondary); cursor: pointer;\r\n  padding: 4px 0; margin-bottom: 14px; display: flex; align-items: center; gap: 5px;\r\n  transition: color 0.15s;\r\n}\r\n.rs-back:hover { color: var(--text-primary); }\r\n.rs-detail-img {\r\n  width: 100%; aspect-ratio: 1;\r\n  background: var(--tag-bg);\r\n  border-radius: 10px;\r\n  display: flex; align-items: center; justify-content: center;\r\n  font-size: 72px; overflow: hidden; position: relative;\r\n  margin-bottom: 16px;\r\n}\r\n.rs-detail-img img { width:100%; height:100%; object-fit:cover; }\r\n.rs-detail-img .rs-overlay {\r\n  position: absolute; inset: 0; opacity: 0; transition: opacity 0.35s;\r\n  mix-blend-mode: multiply; pointer-events: none;\r\n}\r\n.rs-detail-img .rs-overlay.on { opacity: 0.32; }\r\n.rs-detail-name  { font-size: 17px; font-weight: 600; letter-spacing:-0.02em; margin-bottom: 3px; }\r\n.rs-detail-sub   { font-size: 12px; color: var(--text-secondary); margin-bottom: 8px; }\r\n.rs-detail-price { font-size: 18px; font-weight: 700; margin-bottom: 16px; }\r\n.rs-detail-divider { border: none; border-top: 1px solid var(--border); margin: 12px 0; }\r\n.rs-detail-meta { font-size: 12px; color: var(--text-secondary); line-height: 2.2; }\r\n\r\n\/* ===================== COL 3 ===================== *\/\r\n#rs-col3 {\r\n  border-left: 1px solid var(--border);\r\n  padding: 18px 16px;\r\n  background: var(--surface);\r\n  overflow-y: auto;\r\n}\r\n\r\n.rs-nosel {\r\n  text-align: center;\r\n  padding: 40px 10px;\r\n  color: var(--text-secondary);\r\n  font-size: 12px;\r\n  line-height: 2;\r\n}\r\n.rs-nosel-icon { font-size: 26px; margin-bottom: 8px; }\r\n\r\n.rs-preview-box {\r\n  width: 100%; aspect-ratio: 1;\r\n  background: var(--tag-bg);\r\n  border-radius: 10px;\r\n  display: flex; align-items: center; justify-content: center;\r\n  font-size: 42px; overflow: hidden; position: relative;\r\n  margin-bottom: 14px;\r\n}\r\n.rs-preview-box img { width:100%; height:100%; object-fit:cover; }\r\n.rs-preview-box .rs-overlay {\r\n  position: absolute; inset: 0; opacity: 0; transition: opacity 0.4s;\r\n  mix-blend-mode: multiply; pointer-events: none;\r\n}\r\n.rs-preview-box .rs-overlay.on { opacity: 0.38; }\r\n\r\n.rs-prod-name { font-size: 13px; font-weight: 600; margin-bottom: 2px; }\r\n.rs-prod-sub  { font-size: 11px; color: var(--text-secondary); margin-bottom: 16px; }\r\n\r\n.rs-opt-label {\r\n  font-size: 9px; letter-spacing: 0.14em; text-transform: uppercase;\r\n  color: var(--text-secondary); margin-bottom: 8px; font-weight: 500;\r\n}\r\n.rs-opt-sec { margin-bottom: 16px; }\r\n\r\n.rs-swatches { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 5px; }\r\n.rs-swatch {\r\n  width: 24px; height: 24px; border-radius: 50%;\r\n  cursor: pointer; border: 2px solid transparent;\r\n  transition: transform 0.15s;\r\n}\r\n.rs-swatch:hover { transform: scale(1.2); }\r\n.rs-swatch.on {\r\n  border-color: var(--border-active);\r\n  box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--border-active);\r\n}\r\n.rs-color-label { font-size: 11px; color: var(--text-secondary); min-height: 15px; }\r\n\r\n.rs-sizes { display: flex; flex-wrap: wrap; gap: 6px; }\r\n.rs-size-chip {\r\n  padding: 6px 12px;\r\n  border: 1px solid var(--border); border-radius: 20px;\r\n  cursor: pointer; font-family: inherit; font-size: 11px;\r\n  background: var(--surface); color: var(--text-primary);\r\n  transition: all 0.12s;\r\n}\r\n.rs-size-chip:hover { border-color: var(--border-active); background: var(--tag-bg); }\r\n.rs-size-chip.on { background: var(--active-bg); color: var(--active-text); border-color: var(--active-bg); }\r\n\r\n@keyframes rsUp {\r\n  from { opacity:0; transform:translateY(8px); }\r\n  to   { opacity:1; transform:translateY(0); }\r\n}\r\n\r\n\/* ===================== RESPONSIVE ===================== *\/\r\n@media(max-width:700px){\r\n  #rope-shop { grid-template-columns: 1fr; height: auto; }\r\n  #rs-col1 { display: flex; overflow-x: auto; border-right: none; border-bottom: 1px solid var(--border); }\r\n  .rs-col-label { display: none; }\r\n  .rs-cat-item { flex-direction: column; align-items: center; text-align: center; min-width: 72px; border-left: none; border-bottom: 3px solid transparent; border-right: 1px solid var(--border); }\r\n  .rs-cat-item.active { border-left-color: transparent; border-bottom-color: var(--border-active); }\r\n  #rs-col3 { border-left: none; border-top: 1px solid var(--border); }\r\n}\r\n<\/style>\r\n\r\n<div id=\"rope-shop-wrap\">\r\n  <div id=\"rope-shop\">\r\n\r\n    <!-- COL 1 -->\r\n    <div id=\"rs-col1\"><\/div>\r\n\r\n    <!-- COL 2 -->\r\n    <div id=\"rs-col2\">\r\n      <div class=\"rs-col2-header\">\r\n        <span class=\"rs-col2-title\" id=\"rs-title\">\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32<\/span>\r\n        <span class=\"rs-col2-count\" id=\"rs-count\"><\/span>\r\n      <\/div>\r\n      <div id=\"rs-body\">\r\n        <div class=\"rs-grid\">\r\n          <div class=\"rs-empty\">\u2190 \u0e40\u0e25\u0e37\u0e2d\u0e01\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e01\u0e48\u0e2d\u0e19<\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- COL 3 -->\r\n    <div id=\"rs-col3\">\r\n      <div class=\"rs-col-label\" id=\"rs-custom-label\">\u0e1b\u0e23\u0e31\u0e1a\u0e41\u0e15\u0e48\u0e07<\/div>\r\n      <div id=\"rs-custom\">\r\n        <div class=\"rs-nosel\">\r\n          <div class=\"rs-nosel-icon\">\u2190<\/div>\r\n          \u0e40\u0e25\u0e37\u0e2d\u0e01\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e01\u0e48\u0e2d\u0e19\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n  <\/div>\r\n<\/div>\r\n\r\n<script>\r\n\/* =========================================================\r\n   \u0e20\u0e32\u0e29\u0e32 \/ LANGUAGE \u2014 sync \u0e01\u0e31\u0e1a TranslatePress\r\n   TranslatePress \u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32 <html lang=\"...\"> \u0e02\u0e2d\u0e07\u0e2b\u0e19\u0e49\u0e32\u0e43\u0e2b\u0e49\u0e40\u0e2d\u0e07\u0e15\u0e32\u0e21\r\n   \u0e20\u0e32\u0e29\u0e32\u0e17\u0e35\u0e48\u0e40\u0e25\u0e37\u0e2d\u0e01 (\u0e41\u0e25\u0e30\u0e1b\u0e01\u0e15\u0e34\u0e08\u0e30\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e20\u0e32\u0e29\u0e32\u0e14\u0e49\u0e27\u0e22\u0e01\u0e32\u0e23\u0e19\u0e33\u0e17\u0e32\u0e07\u0e44\u0e1b URL \u0e43\u0e2b\u0e21\u0e48\r\n   \u0e40\u0e0a\u0e48\u0e19 \/en\/... \u0e17\u0e33\u0e43\u0e2b\u0e49\u0e2a\u0e04\u0e23\u0e34\u0e1b\u0e15\u0e4c\u0e23\u0e31\u0e19\u0e43\u0e2b\u0e21\u0e48\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14\u0e2d\u0e22\u0e39\u0e48\u0e41\u0e25\u0e49\u0e27)\r\n   \u0e40\u0e19\u0e37\u0e48\u0e2d\u0e07\u0e08\u0e32\u0e01\u0e0a\u0e37\u0e48\u0e2d\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\/\u0e1b\u0e49\u0e32\u0e22\u0e15\u0e48\u0e32\u0e07 \u0e46 \u0e43\u0e19\u0e27\u0e34\u0e14\u0e40\u0e08\u0e47\u0e15\u0e19\u0e35\u0e49\u0e16\u0e39\u0e01\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e14\u0e49\u0e27\u0e22\r\n   JavaScript \u0e44\u0e21\u0e48\u0e43\u0e0a\u0e48\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e17\u0e35\u0e48\u0e1d\u0e31\u0e07\u0e2d\u0e22\u0e39\u0e48\u0e43\u0e19 HTML \u0e15\u0e2d\u0e19\u0e42\u0e2b\u0e25\u0e14\u0e2b\u0e19\u0e49\u0e32\r\n   TranslatePress \u0e08\u0e30 \"\u0e21\u0e2d\u0e07\u0e44\u0e21\u0e48\u0e40\u0e2b\u0e47\u0e19\" \u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e40\u0e2b\u0e25\u0e48\u0e32\u0e19\u0e35\u0e49\u0e41\u0e25\u0e30\u0e41\u0e1b\u0e25\u0e43\u0e2b\u0e49\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\r\n   \u0e08\u0e36\u0e07\u0e15\u0e49\u0e2d\u0e07\u0e43\u0e2a\u0e48\u0e04\u0e33\u0e41\u0e1b\u0e25\u0e2d\u0e31\u0e07\u0e01\u0e24\u0e29\u0e44\u0e27\u0e49\u0e43\u0e19\u0e2a\u0e04\u0e23\u0e34\u0e1b\u0e15\u0e4c\u0e40\u0e2d\u0e07 \u0e41\u0e25\u0e49\u0e27\u0e43\u0e2b\u0e49\u0e27\u0e34\u0e14\u0e40\u0e08\u0e47\u0e15\u0e40\u0e25\u0e37\u0e2d\u0e01\r\n   \u0e41\u0e2a\u0e14\u0e07\u0e15\u0e32\u0e21\u0e20\u0e32\u0e29\u0e32\u0e1b\u0e31\u0e08\u0e08\u0e38\u0e1a\u0e31\u0e19\u0e02\u0e2d\u0e07\u0e2b\u0e19\u0e49\u0e32\u0e41\u0e17\u0e19\r\n   ========================================================= *\/\r\n\r\nfunction detectLang(){\r\n  const htmlLang = (document.documentElement.lang || '').toLowerCase();\r\n  if(htmlLang.startsWith('en')) return 'en';\r\n  \/\/ \u0e40\u0e1c\u0e37\u0e48\u0e2d\u0e01\u0e23\u0e13\u0e35 TranslatePress \u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e40\u0e1b\u0e47\u0e19\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a URL \/en\/...\r\n  if(\/^\\\/en(\\\/|$)\/.test(window.location.pathname)) return 'en';\r\n  return 'th';\r\n}\r\nlet CURRENT_LANG = detectLang();\r\n\r\nconst UI_STRINGS = {\r\n  th: {\r\n    catLabel: '\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32',\r\n    customLabel: '\u0e1b\u0e23\u0e31\u0e1a\u0e41\u0e15\u0e48\u0e07',\r\n    selectCatFirst: '\u2190 \u0e40\u0e25\u0e37\u0e2d\u0e01\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e01\u0e48\u0e2d\u0e19',\r\n    selectProdFirst: '\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e01\u0e48\u0e2d\u0e19',\r\n    items: '\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23',\r\n    back: '\u2190 \u0e01\u0e25\u0e31\u0e1a',\r\n    selectColor: '\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e2a\u0e35',\r\n    selectSize: '\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e02\u0e19\u0e32\u0e14',\r\n    defaultTitle: '\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32'\r\n  },\r\n  en: {\r\n    catLabel: 'Categories',\r\n    customLabel: 'Customize',\r\n    selectCatFirst: '\u2190 Select a category first',\r\n    selectProdFirst: 'Select a product first',\r\n    items: 'items',\r\n    back: '\u2190 Back',\r\n    selectColor: 'Select Color',\r\n    selectSize: 'Select Size',\r\n    defaultTitle: 'Products'\r\n  }\r\n};\r\nfunction T(){ return UI_STRINGS[CURRENT_LANG]; }\r\n\r\nconst CATS = [\r\n  {\r\n    id:'fine-ribbed', name:'\u0e25\u0e39\u0e01\u0e1f\u0e39\u0e01\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14', sub:'Fine Ribbed Tape', emoji:'\ud83e\uddf5', img:'',\r\n    products:[\r\n      {id:'fr1', name:'\u0e25\u0e39\u0e01\u0e1f\u0e39\u0e01\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14', sub:'Fine Ribbed Tape', emoji:'\ud83e\uddf5', img:'https:\/\/sptweave.com\/wp-content\/uploads\/2026\/08\/b95be3b2-89f7-4cb2-8088-1b30595dea84-removebg-preview.png'},\r\n    ]\r\n  },\r\n  {\r\n    id:'knitted', name:'\u0e41\u0e16\u0e1a\u0e16\u0e31\u0e01', sub:'Knitted Tape', emoji:'\ud83c\udf80', img:'',\r\n    products:[\r\n      {id:'p4', name:'\u0e41\u0e16\u0e1a\u0e16\u0e31\u0e01', sub:'Knitted Tape', emoji:'\ud83c\udf80', img:'https:\/\/sptweave.com\/wp-content\/uploads\/2026\/08\/a5f07ec4-2ed5-4e61-a805-089f7dd03441-removebg-preview.png'},\r\n    ]\r\n  },\r\n  {\r\n    id:'glossy', name:'\u0e2a\u0e32\u0e22\u0e21\u0e31\u0e19', sub:'Glossy Cord \/ Satin Webbing', emoji:'\u2728', img:'',\r\n    products:[\r\n      {id:'gl1', name:'\u0e2a\u0e32\u0e22\u0e21\u0e31\u0e19',      sub:'Glossy Cord',           emoji:'\u2728', img:'https:\/\/sptweave.com\/wp-content\/uploads\/2026\/08\/ddc49760-74c0-4751-b871-793595605e28-removebg-preview.png'},\r\n      {id:'gl2', name:'\u0e2a\u0e32\u0e22\u0e21\u0e31\u0e19\u0e21\u0e35\u0e23\u0e34\u0e21', sub:'Glossy Cord with Edge', emoji:'\u2728', img:'https:\/\/sptweave.com\/wp-content\/uploads\/2026\/08\/6e470e20-3c75-435f-a26c-2377acde1d97-removebg-preview-1.png'},\r\n    ]\r\n  },\r\n  {\r\n    id:'piping', name:'\u0e01\u0e38\u0e49\u0e19\u0e17\u0e35\u0e48\u0e19\u0e2d\u0e19', sub:'Mattress Piping', emoji:'\ud83d\udecf\ufe0f', img:'',\r\n    products:[\r\n      {id:'p9',  name:'\u0e01\u0e38\u0e49\u0e19\u0e17\u0e35\u0e48\u0e19\u0e2d\u0e19',      sub:'Mattress Piping',       emoji:'\ud83d\udecf\ufe0f', img:'https:\/\/sptweave.com\/wp-content\/uploads\/2026\/08\/S__23707653_0-removebg-preview.png'},\r\n      {id:'p10', name:'\u0e01\u0e38\u0e49\u0e19\u0e17\u0e35\u0e48\u0e19\u0e2d\u0e19\u0e40\u0e23\u0e35\u0e22\u0e1a', sub:'Mattress Piping \u00b7 Plain', emoji:'\ud83d\udecf\ufe0f', img:'https:\/\/sptweave.com\/wp-content\/uploads\/2026\/08\/S__23707656_0-removebg-preview.png'},\r\n    ]\r\n  },\r\n  {\r\n    id:'yarn', name:'\u0e40\u0e2a\u0e49\u0e19\u0e14\u0e49\u0e32\u0e22', sub:'Yarn \/ Thread', emoji:'\ud83e\uddf6', img:'',\r\n    products:[\r\n      {id:'p11', name:'\u0e40\u0e2a\u0e49\u0e19\u0e14\u0e49\u0e32\u0e22 PP', sub:'PP Yarn', emoji:'\ud83e\uddf6', img:'https:\/\/sptweave.com\/wp-content\/uploads\/2026\/06\/Untitled-19-scaled.png'},\r\n    ]\r\n  },\r\n  {\r\n    id:'rope', name:'\u0e40\u0e2a\u0e49\u0e19\u0e40\u0e0a\u0e37\u0e2d\u0e01', sub:'Rope \/ Cord', emoji:'\ud83e\udea2', img:'',\r\n    products:[\r\n      {id:'rp1', name:'\u0e40\u0e0a\u0e37\u0e2d\u0e01\u0e25\u0e32\u0e22\u0e43\u0e2b\u0e21\u0e48',     sub:'New Pattern Rope',    emoji:'\ud83e\udea2', img:'https:\/\/sptweave.com\/wp-content\/uploads\/2026\/08\/743699294_905792122558407_2841004466952783078_n-removebg-preview.png'},\r\n      {id:'rp2', name:'\u0e40\u0e0a\u0e37\u0e2d\u0e01\u0e19\u0e01\u0e2b\u0e27\u0e35\u0e14',      sub:'Whistle Cord',        emoji:'\ud83e\udea2', img:'https:\/\/sptweave.com\/wp-content\/uploads\/2026\/08\/744815896_1013895531262106_2123135009986178685_n-removebg-preview.png'},\r\n      {id:'rp3', name:'\u0e40\u0e0a\u0e37\u0e2d\u0e01\u0e40\u0e1b\u0e35\u0e22',        sub:'Braided Rope',        emoji:'\ud83e\udea2', img:'https:\/\/sptweave.com\/wp-content\/uploads\/2026\/08\/743425017_1011664964552632_8603601242249006362_n-removebg-preview.png'},\r\n      {id:'rp4', name:'\u0e40\u0e0a\u0e37\u0e2d\u0e01\u0e40\u0e1b\u0e35\u0e22\u0e42\u0e1e\u0e25\u0e35',    sub:'Poly Braided Rope',   emoji:'\ud83e\udea2', img:'https:\/\/sptweave.com\/wp-content\/uploads\/2026\/08\/745341264_1495065769058995_7714377029364100338_n-removebg-preview.png'},\r\n      {id:'rp5', name:'\u0e40\u0e0a\u0e37\u0e2d\u0e01\u0e40\u0e1b\u0e35\u0e22\u0e21\u0e35\u0e44\u0e2a\u0e49',   sub:'Cored Braided Rope',  emoji:'\ud83e\udea2', img:'https:\/\/sptweave.com\/wp-content\/uploads\/2026\/08\/744169735_1378276664170224_5964643372450137258_n-removebg-preview.png'},\r\n    ]\r\n  },\r\n  {\r\n    id:'computer-cord', name:'\u0e2a\u0e32\u0e22\u0e04\u0e2d\u0e21\u0e1e\u0e34\u0e27\u0e40\u0e15\u0e2d\u0e23\u0e4c (\u0e08\u0e32\u0e04\u0e2d\u0e1a)', sub:'Computer Cord \/ Jacob Cord', emoji:'\ud83d\udd0c', img:'',\r\n    products:[\r\n      {id:'cc1', name:'\u0e2a\u0e32\u0e22\u0e04\u0e2d\u0e21\u0e1e\u0e34\u0e27\u0e40\u0e15\u0e2d\u0e23\u0e4c (\u0e08\u0e32\u0e04\u0e2d\u0e1a)', sub:'Computer Cord \/ Jacob Cord', emoji:'\ud83d\udd0c', img:'https:\/\/sptweave.com\/wp-content\/uploads\/2026\/06\/Untitled-12-scaled.png'},\r\n    ]\r\n  },\r\n];\r\n\r\nconst COLORS = [\r\n  {id:'teal-386a',      label:'\u0e40\u0e02\u0e35\u0e22\u0e27\u0e2b\u0e31\u0e27\u0e40\u0e1b\u0e47\u0e14 (386A)', label_en:'Duck Green (386A)',        hex:'#1a6b56'},\r\n  {id:'khima',          label:'\u0e02\u0e35\u0e49\u0e21\u0e49\u0e32',               label_en:'Olive Grey',                hex:'#5a5f2f'},\r\n  {id:'khima-dark',     label:'\u0e02\u0e35\u0e49\u0e21\u0e49\u0e32\u0e40\u0e02\u0e49\u0e21',           label_en:'Dark Olive Grey',           hex:'#2b2b1e'},\r\n  {id:'purple-169',     label:'\u0e21\u0e48\u0e27\u0e07\u0e2d\u0e48\u0e2d\u0e19 (169)',       label_en:'Light Purple (169)',        hex:'#b39ddb'},\r\n  {id:'purple-381',     label:'\u0e21\u0e48\u0e27\u0e07\u0e40\u0e02\u0e49\u0e21 (381)',       label_en:'Dark Purple (381)',         hex:'#5e1f96'},\r\n  {id:'blue-351',       label:'\u0e1f\u0e49\u0e32\u0e40\u0e02\u0e49\u0e21 (351)',        label_en:'Deep Sky Blue (351)',       hex:'#22b6d9'},\r\n  {id:'blue-159',       label:'\u0e1f\u0e49\u0e32\u0e40\u0e02\u0e49\u0e21 (159)',        label_en:'Deep Blue (159)',           hex:'#1e88c7'},\r\n  {id:'yellow-053',     label:'\u0e40\u0e2b\u0e25\u0e37\u0e2d\u0e07 (053)',         label_en:'Yellow (053)',              hex:'#ffab1f'},\r\n  {id:'green-793',      label:'\u0e40\u0e02\u0e35\u0e22\u0e27\u0e15\u0e2d\u0e07\u0e40\u0e02\u0e49\u0e21 (793)',   label_en:'Dark Banana-leaf Green (793)', hex:'#3fa63f'},\r\n  {id:'maroon-155',     label:'\u0e40\u0e25\u0e37\u0e2d\u0e14\u0e2b\u0e21\u0e39 (155)',       label_en:'Maroon (155)',              hex:'#ad1457'},\r\n  {id:'red-245',        label:'\u0e41\u0e14\u0e07 (245)',            label_en:'Red (245)',                 hex:'#e6342e'},\r\n  {id:'purple-889',     label:'\u0e01\u0e30\u0e1b\u0e34\u0e21\u0e48\u0e27\u0e07 (889)',       label_en:'Deep Violet (889)',         hex:'#5b2a8c'},\r\n  {id:'navy-569',       label:'\u0e01\u0e23\u0e21 (569)',            label_en:'Navy (569)',                hex:'#141e33'},\r\n  {id:'lime-174',       label:'\u0e40\u0e02\u0e35\u0e22\u0e27\u0e15\u0e2d\u0e07 (174)',       label_en:'Banana-leaf Green (174)',   hex:'#9fd11f'},\r\n  {id:'green-465',      label:'\u0e40\u0e02\u0e35\u0e22\u0e27\u0e43\u0e1a\u0e44\u0e21\u0e49 (465)',     label_en:'Leaf Green (465)',          hex:'#2fa14c'},\r\n  {id:'cream-340',      label:'\u0e04\u0e23\u0e35\u0e21\u0e40\u0e07\u0e32 (340)',        label_en:'Glossy Cream (340)',        hex:'#f3ecc4'},\r\n  {id:'pink-350',       label:'\u0e0a\u0e21\u0e1e\u0e39\u0e2d\u0e48\u0e2d\u0e19 (350)',       label_en:'Light Pink (350)',          hex:'#f6a9c6'},\r\n  {id:'blue-light-640', label:'\u0e1f\u0e49\u0e32\u0e2d\u0e48\u0e2d\u0e19 (640)',        label_en:'Light Blue (640)',          hex:'#4fc3e8'},\r\n  {id:'khaki-945',      label:'\u0e01\u0e32\u0e01\u0e35\u0e2d\u0e48\u0e2d\u0e19 (945)',       label_en:'Light Khaki (945)',         hex:'#d8c39d'},\r\n  {id:'brown-279',      label:'\u0e19\u0e49\u0e33\u0e15\u0e32\u0e25\u0e40\u0e02\u0e49\u0e21 (279)',     label_en:'Dark Brown (279)',          hex:'#4a2c1d'},\r\n  {id:'khaki-739',      label:'\u0e01\u0e32\u0e01\u0e35\u0e17\u0e2d\u0e07 (739)',        label_en:'Golden Khaki (739)',        hex:'#c9962c'},\r\n  {id:'gray-597',       label:'\u0e40\u0e17\u0e32\u0e40\u0e02\u0e49\u0e21 (597)',        label_en:'Dark Grey (597)',           hex:'#3d3d3d'},\r\n  {id:'red-181',        label:'\u0e41\u0e14\u0e07\u0e40\u0e02\u0e49\u0e21 (181)',        label_en:'Deep Red (181)',            hex:'#8c1a1a'},\r\n  {id:'blue-812',       label:'\u0e19\u0e49\u0e33\u0e40\u0e07\u0e34\u0e19 (812)',        label_en:'Blue (812)',                hex:'#1565c0'},\r\n  {id:'navy-479',       label:'\u0e01\u0e23\u0e21 (479)',            label_en:'Navy (479)',                hex:'#1b2a52'},\r\n  {id:'navy-707',       label:'\u0e01\u0e23\u0e21\u0e40\u0e02\u0e49\u0e21 (707)',        label_en:'Dark Navy (707)',           hex:'#0c1526'},\r\n  {id:'red-326',        label:'\u0e41\u0e14\u0e07\u0e2a\u0e14 (326)',          label_en:'Bright Red (326)',          hex:'#e30613'},\r\n  {id:'yellow-346a',    label:'\u0e40\u0e2b\u0e25\u0e37\u0e2d\u0e07\u0e40\u0e02\u0e49\u0e21 (346)',     label_en:'Deep Yellow (346)',         hex:'#f2b90c'},\r\n  {id:'yellow-386',     label:'\u0e40\u0e2b\u0e25\u0e37\u0e2d\u0e07\u0e2d\u0e48\u0e2d\u0e19 (386)',     label_en:'Light Yellow (386)',        hex:'#ffe066'},\r\n  {id:'orange-943',     label:'\u0e2a\u0e49\u0e21 (943)',            label_en:'Orange (943)',              hex:'#f4841f'},\r\n  {id:'gold-478',       label:'\u0e41\u0e01\u0e48\u0e19\u0e17\u0e2d\u0e07 (478)',        label_en:'Golden Brown (478)',        hex:'#c07a1f'},\r\n  {id:'gray-078',       label:'\u0e40\u0e17\u0e32\u0e40\u0e07\u0e34\u0e19 (078)',        label_en:'Silver Grey (078)',         hex:'#a8a8a8'},\r\n  {id:'yellow-346b',    label:'\u0e40\u0e2b\u0e25\u0e37\u0e2d\u0e07\u0e02\u0e19\u0e38\u0e19 (346)',     label_en:'Jackfruit Yellow (346)',    hex:'#f5c518'},\r\n];\r\n\r\nconst SIZES = [\r\n  {id:'s1',    label:'1\"',   label_en:'1\"'},\r\n  {id:'s1-2',  label:'1.2\"', label_en:'1.2\"'},\r\n  {id:'s1-5',  label:'1.5\"', label_en:'1.5\"'},\r\n  {id:'s2',    label:'2\"',   label_en:'2\"'},\r\n];\r\n\r\nconst ROPE_SIZES = [\r\n  {id:'r4',   label:'\u0e40\u0e1a\u0e2d\u0e23\u0e4c 4',    label_en:'No. 4'},\r\n  {id:'r6',   label:'\u0e40\u0e1a\u0e2d\u0e23\u0e4c 6',    label_en:'No. 6'},\r\n  {id:'r8',   label:'\u0e40\u0e1a\u0e2d\u0e23\u0e4c 8',    label_en:'No. 8'},\r\n  {id:'r164', label:'\u0e40\u0e1a\u0e2d\u0e23\u0e4c 16\/4', label_en:'No. 16\/4'},\r\n  {id:'r22',  label:'\u0e40\u0e1a\u0e2d\u0e23\u0e4c 22',   label_en:'No. 22'},\r\n];\r\n\r\nconst YARN_SIZES = [\r\n  {id:'y450', label:'\u0e40\u0e1a\u0e2d\u0e23\u0e4c 450', label_en:'No. 450'},\r\n  {id:'y600', label:'\u0e40\u0e1a\u0e2d\u0e23\u0e4c 600', label_en:'No. 600'},\r\n  {id:'y900', label:'\u0e40\u0e1a\u0e2d\u0e23\u0e4c 900', label_en:'No. 900'},\r\n];\r\n\r\nfunction getSizesForCat(catId){\r\n  if(catId==='rope') return ROPE_SIZES;\r\n  if(catId==='yarn') return YARN_SIZES;\r\n  return SIZES;\r\n}\r\n\r\n\/\/ ---- helper: \u0e40\u0e25\u0e37\u0e2d\u0e01\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e15\u0e32\u0e21\u0e20\u0e32\u0e29\u0e32\u0e1b\u0e31\u0e08\u0e08\u0e38\u0e1a\u0e31\u0e19 ----\r\nfunction catName(cat){ return CURRENT_LANG==='en' ? (cat.sub || cat.name) : cat.name; }\r\nfunction catSub(cat){  return CURRENT_LANG==='en' ? '' : cat.sub; }\r\nfunction prodName(p){  return CURRENT_LANG==='en' ? (p.sub || p.name) : p.name; }\r\nfunction prodSub(p){   return CURRENT_LANG==='en' ? '' : p.sub; }\r\nfunction colorLabel(c){ return CURRENT_LANG==='en' ? (c.label_en || c.label) : c.label; }\r\nfunction sizeLabel(s){  return CURRENT_LANG==='en' ? (s.label_en || s.label) : s.label; }\r\n\r\nlet activeCatId = null;\r\nlet activeProd  = null;\r\nlet activeColor = COLORS[0];\r\nlet activeSize  = null;\r\nlet view        = 'grid';\r\n\r\nfunction lighten(hex, n){\r\n  const v = parseInt(hex.replace('#',''),16);\r\n  const r = Math.min(255,(v>>16)+n), g = Math.min(255,((v>>8)&0xff)+n), b = Math.min(255,(v&0xff)+n);\r\n  return '#'+[r,g,b].map(x=>x.toString(16).padStart(2,'0')).join('');\r\n}\r\n\r\nfunction renderCats(){\r\n  const col = document.getElementById('rs-col1');\r\n  col.innerHTML = `<div class=\"rs-col-label\">${T().catLabel}<\/div>`;\r\n  CATS.forEach((cat,i)=>{\r\n    const div = document.createElement('div');\r\n    div.className = 'rs-cat-item'+(activeCatId===cat.id?' active':'');\r\n    div.style.animationDelay = (i*0.05)+'s';\r\n    div.innerHTML = `\r\n      <div>\r\n        <div class=\"rs-cat-name\">${catName(cat)}<\/div>\r\n        <div class=\"rs-cat-count\">${cat.products.length} ${T().items}<\/div>\r\n      <\/div>`;\r\n    div.addEventListener('click',()=>{\r\n      activeCatId = cat.id;\r\n      activeProd  = null;\r\n      activeSize  = null;\r\n      view        = 'grid';\r\n      renderCats();\r\n      renderCol2();\r\n      renderCol3();\r\n    });\r\n    col.appendChild(div);\r\n  });\r\n}\r\n\r\nfunction renderCol2(){\r\n  const cat = CATS.find(c=>c.id===activeCatId);\r\n  if(!cat) return;\r\n  if(view==='detail' && activeProd) renderDetail(cat);\r\n  else renderGrid(cat);\r\n}\r\n\r\nfunction renderGrid(cat){\r\n  document.getElementById('rs-title').textContent = catName(cat);\r\n  document.getElementById('rs-count').textContent = cat.products.length+' '+T().items;\r\n  const body = document.getElementById('rs-body');\r\n  body.innerHTML = '';\r\n  const grid = document.createElement('div');\r\n  grid.className = 'rs-grid';\r\n  cat.products.forEach((prod,i)=>{\r\n    const card = document.createElement('div');\r\n    card.className = 'rs-card';\r\n    card.style.animationDelay = (i*0.05)+'s';\r\n    card.innerHTML = `\r\n      <div class=\"rs-card-img\">\r\n        ${prod.img?`<img decoding=\"async\" src=\"${prod.img}\" alt=\"${prodName(prod)}\" loading=\"lazy\">`:''}\r\n        <div class=\"rs-overlay\"><\/div>\r\n      <\/div>\r\n      <div class=\"rs-card-info\">\r\n        <div class=\"rs-card-name\">${prodName(prod)}<\/div>\r\n        <div class=\"rs-card-sub\">${prodSub(prod)}<\/div>\r\n      <\/div>`;\r\n    if(cat.id!=='computer-cord'){\r\n      card.addEventListener('click',()=>{\r\n        activeProd = prod;\r\n        view = 'detail';\r\n        renderCats();\r\n        renderCol2();\r\n        renderCol3();\r\n      });\r\n    } else {\r\n      card.style.cursor = 'default';\r\n    }\r\n    grid.appendChild(card);\r\n  });\r\n  body.appendChild(grid);\r\n}\r\n\r\nfunction renderDetail(cat){\r\n  document.getElementById('rs-title').textContent = prodName(activeProd);\r\n  document.getElementById('rs-count').textContent = '';\r\n  const body = document.getElementById('rs-body');\r\n  body.innerHTML = `\r\n    <div class=\"rs-detail\">\r\n      <button class=\"rs-back\" id=\"rs-back-btn\">${T().back}<\/button>\r\n      <div class=\"rs-detail-img\">\r\n        ${activeProd.img?`<img decoding=\"async\" src=\"${activeProd.img}\" alt=\"${prodName(activeProd)}\" loading=\"lazy\">`:''}\r\n      <\/div>\r\n      <div class=\"rs-detail-name\">${prodName(activeProd)}<\/div>\r\n      <div class=\"rs-detail-sub\">${prodSub(activeProd)}<\/div>\r\n    <\/div>`;\r\n  document.getElementById('rs-back-btn').addEventListener('click',()=>{\r\n    view = 'grid';\r\n    activeProd = null;\r\n    document.getElementById('rs-title').textContent = catName(cat);\r\n    document.getElementById('rs-count').textContent = cat.products.length+' '+T().items;\r\n    renderGrid(cat);\r\n    renderCol3();\r\n  });\r\n}\r\n\r\nfunction renderCol3(){\r\n  document.getElementById('rs-custom-label').textContent = T().customLabel;\r\n  const el = document.getElementById('rs-custom');\r\n  if(!activeProd){\r\n    el.innerHTML = `<div class=\"rs-nosel\"><div class=\"rs-nosel-icon\">\u2190<\/div>${T().selectProdFirst}<\/div>`;\r\n    return;\r\n  }\r\n  el.innerHTML = `\r\n    <div class=\"rs-prod-name\">${prodName(activeProd)}<\/div>\r\n    <div class=\"rs-prod-sub\">${prodSub(activeProd)}<\/div>\r\n    <div class=\"rs-opt-sec\">\r\n      <div class=\"rs-opt-label\">${T().selectColor}<\/div>\r\n      <div class=\"rs-swatches\">\r\n        ${COLORS.map(c=>`\r\n          <div class=\"rs-swatch${activeColor?.id===c.id?' on':''}\"\r\n               style=\"background:${c.hex}\" title=\"${colorLabel(c)}\"\r\n               data-cid=\"${c.id}\"><\/div>`).join('')}\r\n      <\/div>\r\n      <div class=\"rs-color-label\" id=\"rs-clabel\">${activeColor?colorLabel(activeColor):''}<\/div>\r\n    <\/div>\r\n    <div class=\"rs-opt-sec\">\r\n      <div class=\"rs-opt-label\">${T().selectSize}<\/div>\r\n      <div class=\"rs-sizes\">\r\n        ${getSizesForCat(activeCatId).map(s=>`\r\n          <button class=\"rs-size-chip${activeSize?.id===s.id?' on':''}\" data-sid=\"${s.id}\">${sizeLabel(s)}<\/button>`).join('')}\r\n      <\/div>\r\n    <\/div>`;\r\n\r\n  el.querySelectorAll('.rs-size-chip').forEach(chip=>{\r\n    chip.addEventListener('click',()=>{\r\n      activeSize = getSizesForCat(activeCatId).find(s=>s.id===chip.dataset.sid);\r\n      renderCol3();\r\n    });\r\n  });\r\n\r\n  el.querySelectorAll('.rs-swatch').forEach(sw=>{\r\n    sw.addEventListener('click',()=>{\r\n      activeColor = COLORS.find(c=>c.id===sw.dataset.cid);\r\n      renderCol3();\r\n    });\r\n    sw.addEventListener('mouseenter',()=>{\r\n      const c = COLORS.find(c=>c.id===sw.dataset.cid);\r\n      const lbl = document.getElementById('rs-clabel');\r\n      if(lbl&&c) lbl.textContent = colorLabel(c);\r\n    });\r\n    sw.addEventListener('mouseleave',()=>{\r\n      const lbl = document.getElementById('rs-clabel');\r\n      if(lbl) lbl.textContent = activeColor?colorLabel(activeColor):'';\r\n    });\r\n  });\r\n}\r\n\r\nfunction renderAll(){\r\n  renderCats();\r\n  if(activeCatId){ renderCol2(); } else {\r\n    document.getElementById('rs-title').textContent = T().defaultTitle;\r\n    document.getElementById('rs-count').textContent = '';\r\n    document.getElementById('rs-body').innerHTML =\r\n      `<div class=\"rs-grid\"><div class=\"rs-empty\">${T().selectCatFirst}<\/div><\/div>`;\r\n  }\r\n  renderCol3();\r\n}\r\n\r\n\/* \u0e40\u0e1c\u0e37\u0e48\u0e2d\u0e01\u0e23\u0e13\u0e35 TranslatePress \u0e2a\u0e25\u0e31\u0e1a\u0e20\u0e32\u0e29\u0e32\u0e41\u0e1a\u0e1a AJAX \u0e42\u0e14\u0e22\u0e44\u0e21\u0e48\u0e23\u0e35\u0e42\u0e2b\u0e25\u0e14\u0e2b\u0e19\u0e49\u0e32\r\n   (\u0e1b\u0e01\u0e15\u0e34\u0e1b\u0e38\u0e48\u0e21\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e20\u0e32\u0e29\u0e32\u0e02\u0e2d\u0e07 TranslatePress \u0e08\u0e30\u0e19\u0e33\u0e17\u0e32\u0e07\u0e44\u0e1b URL \u0e43\u0e2b\u0e21\u0e48 \u0e17\u0e33\u0e43\u0e2b\u0e49\r\n   \u0e2a\u0e04\u0e23\u0e34\u0e1b\u0e15\u0e4c\u0e23\u0e31\u0e19\u0e43\u0e2b\u0e21\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e41\u0e25\u0e49\u0e27 \u2014 \u0e42\u0e04\u0e49\u0e14\u0e19\u0e35\u0e49\u0e40\u0e1b\u0e47\u0e19\u0e01\u0e32\u0e23\u0e14\u0e31\u0e01\u0e44\u0e27\u0e49\u0e40\u0e1c\u0e37\u0e48\u0e2d\u0e01\u0e23\u0e13\u0e35\u0e1e\u0e34\u0e40\u0e28\u0e29) *\/\r\nnew MutationObserver(()=>{\r\n  const newLang = detectLang();\r\n  if(newLang !== CURRENT_LANG){\r\n    CURRENT_LANG = newLang;\r\n    renderAll();\r\n  }\r\n}).observe(document.documentElement, { attributes:true, attributeFilter:['lang'] });\r\n\r\n\/\/ \u0e40\u0e1c\u0e37\u0e48\u0e2d\u0e2d\u0e22\u0e32\u0e01\u0e2a\u0e25\u0e31\u0e1a\u0e20\u0e32\u0e29\u0e32\u0e14\u0e49\u0e27\u0e22\u0e15\u0e31\u0e27\u0e40\u0e2d\u0e07\/\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e01\u0e31\u0e1a\u0e1b\u0e38\u0e48\u0e21\u0e2d\u0e37\u0e48\u0e19\u0e20\u0e32\u0e22\u0e2b\u0e25\u0e31\u0e07\r\nwindow.ropeShopSetLang = function(lang){\r\n  CURRENT_LANG = (lang==='en') ? 'en' : 'th';\r\n  renderAll();\r\n};\r\n\r\n\/\/ INIT\r\nactiveCatId = CATS[0].id;\r\nrenderAll();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32 \u2190 \u0e40\u0e25\u0e37\u0e2d\u0e01\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e01\u0e48\u0e2d\u0e19 \u0e1b\u0e23\u0e31\u0e1a\u0e41\u0e15\u0e48\u0e07 \u2190 \u0e40\u0e25\u0e37\u0e2d\u0e01\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e01\u0e48\u0e2d\u0e19<\/p>","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"page-builder","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-1731","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/sptweave.com\/th\/wp-json\/wp\/v2\/pages\/1731","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sptweave.com\/th\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sptweave.com\/th\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sptweave.com\/th\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/sptweave.com\/th\/wp-json\/wp\/v2\/comments?post=1731"}],"version-history":[{"count":28,"href":"https:\/\/sptweave.com\/th\/wp-json\/wp\/v2\/pages\/1731\/revisions"}],"predecessor-version":[{"id":2029,"href":"https:\/\/sptweave.com\/th\/wp-json\/wp\/v2\/pages\/1731\/revisions\/2029"}],"wp:attachment":[{"href":"https:\/\/sptweave.com\/th\/wp-json\/wp\/v2\/media?parent=1731"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}