<script>
t_onReady(function() {
setTimeout(function() {
t_onFuncLoad('tcart__init', function() {
// Объект соответствий: тип оплаты -> подпись кнопки
var paymentButtonLabels = {
"Наличными": "Оплатить наличными курьеру",
"Оплата картой на сайте": "Оплатить по карте",
"Оплата через СБП": "Оплатить по СБП",
"Выставить счёт": "Сформировать счёт для ИП или ООО",
};
var cartSelector = 'div[data-record-type="706"]';
var buttonSelector = cartSelector + ' button.t-submit span';
var paymentInputsSelector = cartSelector + ' .t-input-group_pm input[name="paymentsystem"]';
var defaultButtonText = null;
function updateSubmitButton() {
var buttonSpan = document.querySelector(buttonSelector);
if (!buttonSpan) return;
if (defaultButtonText === null) {
defaultButtonText = buttonSpan.textContent.trim();
buttonSpan.setAttribute('data-default-text', defaultButtonText);
}
var checkedInput = document.querySelector(paymentInputsSelector + ':checked');
var newText = defaultButtonText;
if (checkedInput) {
var label = checkedInput.closest('label');
if (label) {
var labelText = label.textContent.replace(/\s+/g, ' ').trim();
if (paymentButtonLabels.hasOwnProperty(labelText)) {
newText = paymentButtonLabels[labelText];
}
}
}
if (buttonSpan.textContent.trim() !== newText) {
buttonSpan.textContent = newText;
}
}
function bindPaymentInputs() {
var paymentInputs = document.querySelectorAll(paymentInputsSelector);
if (!paymentInputs.length) return;
paymentInputs.forEach(function(input) {
if (input.dataset.paymentLabelBound === 'y') return;
input.dataset.paymentLabelBound = 'y';
input.addEventListener('change', function() {
updateSubmitButton();
});
});
}
function init() {
bindPaymentInputs();
updateSubmitButton();
}
init();
var cartWindow = document.querySelector(cartSelector + ' .t706__cartwin');
if (cartWindow) {
var cartObserver = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (mutation.type === 'attributes' && mutation.attributeName === 'class') {
var el = mutation.target;
if (el.classList.contains('t706__cartwin_showed')) {
setTimeout(function() {
bindPaymentInputs();
updateSubmitButton();
}, 50);
}
}
});
});
cartObserver.observe(cartWindow, { attributes: true, attributeFilter: ['class'] });
}
document.addEventListener('change', function(e) {
if (e.target && e.target.matches && e.target.matches(paymentInputsSelector)) {
updateSubmitButton();
}
});
var bodyObserver = new MutationObserver(function(mutations) {
var shouldUpdate = false;
mutations.forEach(function(mutation) {
mutation.addedNodes.forEach(function(node) {
if (node.nodeType === 1) {
if (node.matches && (
node.matches(paymentInputsSelector) ||
node.querySelector && node.querySelector(paymentInputsSelector) ||
node.matches('button.t-submit') ||
node.querySelector && node.querySelector('button.t-submit')
)) {
shouldUpdate = true;
}
}
});
});
if (shouldUpdate) {
bindPaymentInputs();
updateSubmitButton();
}
});
bodyObserver.observe(document.body, { childList: true, subtree: true });
});
}, 200);
});
</script>