<script>
$( document ).ready(function() {
//Присваиваем класс нашим ZeroBlock
$('.product_title').closest('.t-rec').addClass('prodblock');
let productImg = '.product_img';
let arrWeight = [];
let arrSize = [];
let optionSize = 'input[name="option__Размер"]';
let optionDough = 'input[name="option__Тесто"]';
let pizzaPrice = 'input[name="pizza_price"]';
let placeSize = 0; placeDough = 0;
//Изменения размера продукта**
function productSize(el,bl){
$(bl).find(productImg).removeClass('middle large');
switch (el) {
case 1: $(bl).find(productImg).addClass('middle');break;
case 2: $(bl).find(productImg).addClass('large'); break;
};
};
//Формирование цены и надписи
function showResult(el){
doughWeight(el);
writeSubtitle(el);
totalSumm(el);
};
//Стартовый настройки
function startPriceBlock(){
setTimeout(function(){
$('.prodblock').each(function( index ) {
showResult($(this));
});
$('.form__filling .t-input').attr('tabindex','-1');
}, 3500);
};
startPriceBlock();
//При ресайзе страницы
$( window ).resize(function() {
startPriceBlock();
$(productImg).removeClass('middle large');
});
//Раскртие опций в блоке**
$('.button__fillopen').click(function(){
$(this).closest('.t-rec').toggleClass('padding_filling').find('.arrow__dop').toggleClass('rotate_arrow');
let btnCaption = $(this).find('.tn-atom').text();
$(this).find('.tn-atom').text(btnCaption == "Добавить начинки" ? "Удалить начинки" : "Добавить начинки");
clearFill($(this));
});
//Удаление начинки**
function clearFill(el){
let blockmain = $(el).closest('.t-rec');
blockmain.find('.form__filling').find('input').val(0);
showResult(blockmain);
};
//Выбор веса продукта по толщине теста**?
function doughWeight(bl){
placeDough = $(bl).find(optionDough).index( $(bl).find(optionDough+':checked'));
let prWeight = $(bl).find(optionDough).closest('.t-input-group').find('.t-input-subtitle').html();
if(placeDough==0){ arrWeight = prWeight.split('||')[0].split(',');
}else{ arrWeight = prWeight.split('||')[1].split(',');
};
};
//Вывод информации в подзаголовок**
function writeSubtitle(bl){
let prSize = $(bl).find(optionSize).closest('.t-input-group').find('.t-input-subtitle').html();
arrSize = prSize.split(',');
placeSize = $(bl).find(optionSize).index( $(bl).find(optionSize+':checked'));
let textJoin = `${$(bl).find(optionSize+':checked').val()}: ${arrSize[placeSize]} см,
${$(bl).find(optionDough+':checked').val()}: ${arrWeight[placeSize]} г
`;
$(bl).find('.product_subtitle .tn-atom').text(textJoin);
};
//Вывод конечной цены и веса
function totalSumm(bl){
let completeFilling = checkFill(bl);
let pricePiz = parseFloat($(bl).find(pizzaPrice).val())+parseFloat(completeFilling[0][1]);
pricePiz = pricePiz.toFixed(1);
$(bl).find('.total__price .tn-atom').html( pricePiz +'₽');
$(bl).find('.total__weight .tn-atom').html( parseFloat(arrWeight[placeSize]) +completeFilling[0][0]+'г');
};
//Проверка наполнения доп опций**
function checkFill(bl){
let arrFilling=[];
let arrFillPriceWeightSum=[0,0]
let sumPosition = 0;
$(bl).find('.form__filling .t-input-group_qn').each(function( index ) {
if ($(this).find('.t-input').val() > 0 ) {
arrFilling[sumPosition] = [];
arrFilling[sumPosition][0] = $(this).find('.t-input-title').text();
arrFilling[sumPosition][1] = parseFloat($(this).find('.t-input').val());
arrFilling[sumPosition][2] = parseFloat($(this).find('.t-input-subtitle').text().split(',')[0]) * arrFilling[sumPosition][1];
arrFilling[sumPosition][3] = parseFloat($(this).find('.t-input-subtitle').text().split(',')[1]) * arrFilling[sumPosition][1];
arrFillPriceWeightSum[0] += arrFilling[sumPosition][2];
arrFillPriceWeightSum[1] += arrFilling[sumPosition][3];
sumPosition++;
};
});
return [arrFillPriceWeightSum , arrFilling];
};
//Раскртие опций в корзине**
$(document).on('click','.t706__product-title div',function(e){
$(this).toggleClass('cartshowOption');
});
//При выборе размера продукта
$(".tn-atom__form").on('change', optionSize , function() {
placeSize = $(this).closest('form').find(optionSize).index(this);
let blockmain = $(this).closest('.t-rec');
setTimeout(function(){
productSize(placeSize,blockmain);
showResult(blockmain);
},100);
let urlprodimg = $(this).next('.t-bgimg').css('background-image');
urlprodimg = urlprodimg.replace('url(','').replace(')','').replace(/\"/gi, "");
$(blockmain).find('.product_img .tn-atom').css('background-image', 'url('+urlprodimg+')').attr('data-original', urlprodimg);
});
//При выборе теста
$(".tn-atom__form").on('change ', optionDough , function() {
let blockmain = $(this).closest('.t-rec');
showResult(blockmain);
});
//Увеличение кол-ва начинки
$(document).on('click','.form__filling .t-inputquantity__btn-plus',function(e){
//Ограничение кол-ва в поле ввода до 4 штук
let maxNum = $(this).siblings('.t-input').val();
if (maxNum >= 4) $(this).siblings('.t-input').val(4);
let blockmain = $(this).closest('.t-rec');
showResult(blockmain);
});
//Уменьшение кол-ва начинки
$(document).on('click','.form__filling .t-inputquantity__btn-minus',function(e){
let blockmain = $(this).closest('.t-rec');
showResult(blockmain);
});
//Отправка товара в корзину**
$(document).on('click','.add_tocart',function(e){
let currentBlock = $(this).closest('.t-rec');
//Передача картинки
let urlprodimg = currentBlock.find('.product_img .tn-atom').css('background-image');
urlprodimg = urlprodimg.replace('url(','').replace(')','').replace(/\"/gi, "");
$('#rec259980741 .t744 .t-slds__bgimg').css('background-image', 'url('+urlprodimg+')').attr('data-original', urlprodimg);
$('#rec259980741 .t744__title').text( currentBlock.find('.product_title .tn-atom').text());//Заголовок
$('#rec259980741 .t744__title_small').text( currentBlock.find('.product_subtitle .tn-atom').text());//Артикул
$('#rec259980741 .t744__price-value').text(parseFloat(currentBlock.find('.total__price .tn-atom').text()));//Цена
//ПАРАМЕТРЫ ФИКС
//Вес с начинкой
$('#rec259980741 .t744 select:eq(0) option:selected').val(currentBlock.find('.total__weight .tn-atom').text());
$('#rec259980741 .t744 .t-product__option:not(:first)').remove();
//ПАРАМЕТРЫ С НАЧИНКОЙ
let newSelect = 0;
currentBlock.find('.form__filling input').each(function(index) {
let elVal = parseFloat($(this).val());
if(elVal) {newSelect++;
$('#rec259980741 .t744 .t-product__option:first').clone().appendTo('#rec259980741 .t744 .js-product-controls-wrapper');
$('#rec259980741 .t744 .t-product__option:last .t-product__option-title').text($(this).attr('name'));
$('#rec259980741 .t744 .t-product__option:last option:selected').val(elVal+' шт');
};
});
//Отправка
$('#rec259980741 .t744__btn')[0].click();
});
});
</script>