{"id":953,"date":"2025-09-17T11:31:26","date_gmt":"2025-09-17T11:31:26","guid":{"rendered":"https:\/\/23ombr.dev.komanda.dev\/pidrozdily\/repair-and-restoration\/"},"modified":"2025-10-02T19:39:28","modified_gmt":"2025-10-02T19:39:28","slug":"repair-and-restoration","status":"publish","type":"subdivisions","link":"https:\/\/23ombr.dev.komanda.dev\/en\/pidrozdily\/repair-and-restoration\/","title":{"rendered":"Repair and Restoration"},"content":{"rendered":"\r\n<section class=\"custom_classes block-1 align wp-block-acf-pic-left\">\r\n\r\n    <div class=\"flex-pic-left-container\">\r\n                    <img decoding=\"async\" src=\"https:\/\/23ombr.dev.komanda.dev\/wp-content\/uploads\/2025\/09\/repair1.jpeg\" alt=\"\u0440\u0435\u043c\u043e\u043d\u0442\" class=\"flex-image\"\/>\r\n        \r\n                    <div class=\"flex-text\">\r\n                <p>Restoration and repair of equipment is the daily hard work of the soldiers of the repair and restoration battalion of the 23rd Motorized Rifle Brigade.<\/p>\n<p>They return everything to service &#8211; from old Soviet equipment to modern Western-made armored vehicles. Thanks to their skill, damaged MaxxPro, tanks, and artillery installations are put back into service.<\/p>\n            <\/div>\r\n            <\/div>\r\n\r\n<\/section>\n\n\r\n<section class=\"custom_classes block-1 align wp-block-acf-pic-right\" >\r\n\r\n    <div class=\"flex-pic-right-container\">\r\n                    <div class=\"flex-text\">\r\n                <p>Field conditions, lack of spare parts and limited deadlines do not scare our specialists. They work around the clock, because they know: without serviceable and protected equipment, effective combat is impossible.<\/p>\n<p>The repair and restoration battalion is a reliable foundation for the brigade&#8217;s combat capability. Each of their successes means lives saved and enemies destroyed.<\/p>\n            <\/div>\r\n        \r\n                    <img decoding=\"async\" src=\"https:\/\/23ombr.dev.komanda.dev\/wp-content\/uploads\/2025\/09\/repair2.jpeg\" alt=\"\u0440\u0435\u043c\u043e\u043d\u0442\" class=\"flex-image\"\/>\r\n            <\/div>\r\n\r\n<\/section>\r\n\n\n\r\n<section class=\"custom_classes block-1 align wp-block-acf-gallery\">\r\n\t<div class=\"slider-wrapper\">\r\n\t\t<div class=\"slider-container\" id=\"infinite-slider\">\r\n\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/23ombr.dev.komanda.dev\/wp-content\/uploads\/2025\/09\/repair1.jpg\" alt=\"repair1\" class=\"slider-image\"\/>\r\n\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/23ombr.dev.komanda.dev\/wp-content\/uploads\/2025\/09\/repair2.jpg\" alt=\"repair2\" class=\"slider-image\"\/>\r\n\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/23ombr.dev.komanda.dev\/wp-content\/uploads\/2025\/09\/repair3.jpg\" alt=\"repair3\" class=\"slider-image\"\/>\r\n\t\t\t\t\t\t<\/div>\r\n\t<\/div>\r\n<\/section>\r\n\r\n\r\n<script>\r\ndocument.addEventListener('DOMContentLoaded', function () {\r\n  const slider = document.querySelector('#infinite-slider');\r\n  if (!slider) return;\r\n\r\n  let slides = Array.from(slider.children);\r\n  let index = 0;\r\n\r\n  \/\/ \u041a\u043b\u043e\u043d\u0443\u0454\u043c\u043e \u043f\u0435\u0440\u0448\u0438\u0439 \u0456 \u043e\u0441\u0442\u0430\u043d\u043d\u0456\u0439 \u0441\u043b\u0430\u0439\u0434 \u0434\u043b\u044f \u0431\u0435\u0437\u043a\u0456\u043d\u0435\u0447\u043d\u043e\u0441\u0442\u0456\r\n  const firstClone = slides[0].cloneNode(true);\r\n  const lastClone = slides[slides.length - 1].cloneNode(true);\r\n\r\n  slider.appendChild(firstClone);\r\n  slider.insertBefore(lastClone, slides[0]);\r\n\r\n  slides = Array.from(slider.children);\r\n  let currentIndex = 1;\r\n  const slideWidth = slides[0].offsetWidth + 16; \/\/ 16 \u2014 gap\r\n\r\n  slider.style.transform = `translateX(-${slideWidth * currentIndex}px)`;\r\n\r\n  \/\/ \u0424\u0443\u043d\u043a\u0446\u0456\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0443\r\n  function moveToSlide(index) {\r\n    slider.style.transition = 'transform 0.4s ease';\r\n    slider.style.transform = `translateX(-${slideWidth * index}px)`;\r\n  }\r\n\r\n  \/\/ \u041f\u0456\u0441\u043b\u044f \u0430\u043d\u0456\u043c\u0430\u0446\u0456\u0457 \u043f\u0435\u0440\u0435\u0432\u0456\u0440\u044f\u0454\u043c\u043e \u043c\u0435\u0436\u0456\r\n  slider.addEventListener('transitionend', () => {\r\n    if (slides[currentIndex].isSameNode(firstClone)) {\r\n      slider.style.transition = 'none';\r\n      currentIndex = 1;\r\n      slider.style.transform = `translateX(-${slideWidth * currentIndex}px)`;\r\n    }\r\n    if (slides[currentIndex].isSameNode(lastClone)) {\r\n      slider.style.transition = 'none';\r\n      currentIndex = slides.length - 2;\r\n      slider.style.transform = `translateX(-${slideWidth * currentIndex}px)`;\r\n    }\r\n  });\r\n\r\n  \/\/ \u041a\u043b\u0456\u043a \u043f\u043e \u043a\u0430\u0440\u0442\u0438\u043d\u0446\u0456 \u2014 \u0434\u0430\u043b\u0456\r\n  slider.addEventListener('click', () => {\r\n    currentIndex++;\r\n    moveToSlide(currentIndex);\r\n  });\r\n\r\n  \/\/ \u041f\u0456\u0434\u0442\u0440\u0438\u043c\u043a\u0430 \u0441\u0432\u0430\u0439\u043f\u0443 \/ drag\r\n  let startX = 0;\r\n  let isDragging = false;\r\n\r\n  slider.addEventListener('mousedown', (e) => {\r\n    isDragging = true;\r\n    startX = e.pageX;\r\n  });\r\n\r\n  slider.addEventListener('mouseup', (e) => {\r\n    if (!isDragging) return;\r\n    isDragging = false;\r\n    const diff = e.pageX - startX;\r\n    if (Math.abs(diff) > 50) {\r\n      currentIndex += diff > 0 ? -1 : 1;\r\n      moveToSlide(currentIndex);\r\n    }\r\n  });\r\n\r\n  slider.addEventListener('touchstart', (e) => {\r\n    startX = e.touches[0].clientX;\r\n    isDragging = true;\r\n  });\r\n\r\n  slider.addEventListener('touchend', (e) => {\r\n    if (!isDragging) return;\r\n    isDragging = false;\r\n    const diff = e.changedTouches[0].clientX - startX;\r\n    if (Math.abs(diff) > 50) {\r\n      currentIndex += diff > 0 ? -1 : 1;\r\n      moveToSlide(currentIndex);\r\n    }\r\n  });\r\n\r\n  \/\/ \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u0435 \u043e\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044f \u0448\u0438\u0440\u0438\u043d\u0438 \u043f\u0440\u0438 \u0440\u0435\u0441\u0430\u0439\u0437\u0456\r\n  window.addEventListener('resize', () => {\r\n    const newWidth = slides[0].offsetWidth + 16;\r\n    slider.style.transition = 'none';\r\n    slider.style.transform = `translateX(-${newWidth * currentIndex}px)`;\r\n  });\r\n});\r\n\r\n\r\n<\/script>","protected":false},"excerpt":{"rendered":"","protected":false},"featured_media":954,"template":"","class_list":["post-953","subdivisions","type-subdivisions","status-publish","has-post-thumbnail","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/23ombr.dev.komanda.dev\/en\/wp-json\/wp\/v2\/subdivisions\/953","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/23ombr.dev.komanda.dev\/en\/wp-json\/wp\/v2\/subdivisions"}],"about":[{"href":"https:\/\/23ombr.dev.komanda.dev\/en\/wp-json\/wp\/v2\/types\/subdivisions"}],"version-history":[{"count":6,"href":"https:\/\/23ombr.dev.komanda.dev\/en\/wp-json\/wp\/v2\/subdivisions\/953\/revisions"}],"predecessor-version":[{"id":1475,"href":"https:\/\/23ombr.dev.komanda.dev\/en\/wp-json\/wp\/v2\/subdivisions\/953\/revisions\/1475"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/23ombr.dev.komanda.dev\/en\/wp-json\/wp\/v2\/media\/954"}],"wp:attachment":[{"href":"https:\/\/23ombr.dev.komanda.dev\/en\/wp-json\/wp\/v2\/media?parent=953"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}