var map = {
    'q': 'й', 'w': 'ц', 'e': 'у', 'r': 'к', 't': 'е', 'y': 'н', 'u': 'г', 'i': 'ш', 'o': 'щ', 'p': 'з', "[": 'х', "]": 'ъ', 'a': 'ф', 's': 'ы', 'd': 'в', 'f': 'а', 'g': 'п', 'h': 'р', 'j': 'о', 'k': 'л', 'l': 'д', ';': 'ж', '\'': 'э', 'z': 'я', 'x': 'ч', 'c': 'с', 'v': 'м', 'b': 'и', 'n': 'т', 'm': 'ь', ',': 'б', '.': 'ю'
};
document.addEventListener("DOMContentLoaded", function (event) {

    // Функция для показа собственного контекстного меню
    function showCustomContextMenu(event) {
        $('.context-menu-img').remove();
        // Отменяем стандартное контекстное меню браузера
        event.preventDefault();

        // Получаем ссылку на изображение
        var imageUrl = $(event.target).attr('src');

        // Создаем элементы контекстного меню
        var menu = $('<div>').css({
            'position': 'fixed',
            'top': event.clientY + 'px',
            'left': event.clientX + 'px',
            'background': '#ffffff',
            'border': '1px solid #cccccc',
            'padding': '5px',
            'z-index': '99999'
        }).addClass('context-menu-img');

        // Создаем пункт меню для загрузки изображения
        var uploadOption = $('<div>').text('Загрузить изображение').css({
            'cursor': 'pointer',
            'color': '#000000' // Устанавливаем черный цвет текста
        }).click(function () {
            // Вызываем функцию для скачивания изображения с указанной ссылкой
            downloadImage(imageUrl);
            // Закрываем контекстное меню после выбора опции
            menu.remove();
        });

        // Добавляем пункт меню к контекстному меню
        menu.append(uploadOption);

        // Добавляем контекстное меню на страницу
        $('body').append(menu);
    }

    // Добавляем обработчик события для показа контекстного меню при клике правой кнопкой мыши
    $(document).on('contextmenu', 'img', function (event) {
        // Показываем собственное контекстное меню
        showCustomContextMenu(event);
    });
    $(document).on('click', function () {
        $('.context-menu-img').remove();
    });

    // Функция для генерации случайного имени файла
    function generateRandomFilename() {
        var letters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
        var numbers = '0123456789';
        var characters = letters + numbers;
        var filename = '';
        for (var i = 0; i < 10; i++) {
            filename += characters.charAt(Math.floor(Math.random() * characters.length));
        }
        return filename;
    }

    // Функция для скачивания изображения с измененным именем
    function downloadImage(imageUrl) {
        var newFilename = generateRandomFilename() + '.jpg'; // Генерируем случайное имя файла с расширением JPG
        // Создаем временную ссылку
        var link = $('<a>').attr({
            'href': imageUrl,
            'download': newFilename
        });

        // Добавляем ссылку на страницу и эмулируем клик
        $('body').append(link);
        link[0].click();

        // Удаляем ссылку из DOM
        link.remove();
    }


    let older = document.querySelector('td .sale-price');
    if (older) {
        old = parseInt(older.innerText.replace(/,/g, ''));
        let newly = parseInt(document.querySelector('td .regular-price').innerText.replace(/,/g, ''));
        let change = newly - old;
        document.querySelectorAll('.promo-label').forEach(e => {
            e.innerHTML = Math.round((change / old) * 100) + "%";
        });
        setTimeout(() => {
            if (location.hostname === 'krasnodar.dvijenie.agency' || location.hostname === 'volgograd.dvijenie.agency') {
                document.querySelector('.swiper-slide-active').style.width = '100%';
            }
        }, 2000);
    }


    $('.input-file input[type=file]').on('change', function () {
        let file = this.files[0];
        $(this).next().find('.file-name').html(file.name);
    });

    document.getElementById("myInput").addEventListener("input", function () {
        var val = "";
        for (var i = 0; i < this.value.length; i++)
            if (map[this.value[i]])
                val += map[this.value[i]];
            else
                val += this.value[i];
        this.value = val;
    });
});
function myFunction() {
    // Объявлять переменные
    var input, filter, ul, li, a, i, txtValue;
    input = document.getElementById('myInput');
    filter = input.value.toUpperCase();
    document.querySelectorAll('.modal__cities li').forEach(e => {
        li = e.querySelectorAll('li');
        for (i = 0; i < li.length; i++) {
            a = li[i].querySelector('a');
            txtValue = a.textContent || a.innerText;
            if (txtValue.toUpperCase().indexOf(filter) == -1) {
                a.parentNode.parentNode.parentNode.style.display = 'none';
                a.parentNode.parentNode.style.display = 'none';
                a.parentNode.style.display = 'none';
                a.style.fontWeight = "normal";
            } else {
                console.log(a.parentNode.parentNode.parentNode);
                a.parentNode.parentNode.parentNode.style.display = '';
                a.parentNode.parentNode.style.display = '';
                a.parentNode.style.display = '';
                a.style.fontWeight = "bold";
            }
        }
    });
}

function callbackPriceForm() {
    let formProduct = $('.get-price-map').parent().parent().parent().parent().parent().find('ymaps[class*="content__header"]');
    let formProductCurrent = formProduct.text().replace(/%/gi, "%25").replace(/'/gi, "%27").replace(/&/gi, "%26").replace(/\[/gi, "%5B").replace(/\]/gi, "%5D").replace(/\{/gi, "%7B").replace(/\}/gi, "%7D").replace(/\+/gi, "%2B").replace(/\\/gi, "%5C").replace(/,/gi, "%2C").replace(/!/gi, "%21").replace(/@/gi, "%40").replace(/#/gi, "%23").replace(/\$/gi, "%24").replace(/;/gi, "%3B").replace(/=/gi, "%3D").replace(/"/gi, "%22").replace(/;/gi, "%3A").replace(/\(/gi, "%28").replace(/\)/gi, "%29").replace(/,/gi, "%3A").replace(/\//gi, "%2F").replace(/ /gi, "+");
    /*console.log($('.get-price-map'));
    console.log($('.get-price-map').parent().parent().parent().parent().parent());
    console.log(formProduct);*/

    $('.form-product').val(formProduct.text());
    $('.form-link').val(formProductCurrent);
}

$(document).ready(function () {
    $(".modal__cities li span").click(function () {
        $(this).parent().find('ul').toggle();
    });

    $(".search-cities__clear").on("click", function () {
        $(this).parent().find('input').val('');
        $('.modal__cities li').css('display', '');
    });

    $(".form-get-price").on("click", function () {
        let formProduct = $(this).parent().parent().find('td:nth-child(2) a');
        let formProductCurrent = formProduct.text().replace(/%/gi, "%25").replace(/'/gi, "%27").replace(/&/gi, "%26").replace(/\[/gi, "%5B").replace(/\]/gi, "%5D").replace(/\{/gi, "%7B").replace(/\}/gi, "%7D").replace(/\+/gi, "%2B").replace(/\\/gi, "%5C").replace(/,/gi, "%2C").replace(/!/gi, "%21").replace(/@/gi, "%40").replace(/#/gi, "%23").replace(/\$/gi, "%24").replace(/;/gi, "%3B").replace(/=/gi, "%3D").replace(/"/gi, "%22").replace(/;/gi, "%3A").replace(/\(/gi, "%28").replace(/\)/gi, "%29").replace(/,/gi, "%3A").replace(/\//gi, "%2F").replace(/ /gi, "+");

        $('.form-product').val(formProduct.text());
        $('.form-link').val(formProductCurrent);
    });
    $('input[type="tel"').on("input", function () {
        $('.form-phone').val('tel:' + $(this).val().replace(/[\ \-\(\)]/gi, ""));
    });


    var flag;
    $(".open-description").click(function () {
        if (flag) {
            $(".description").slideToggle("fast");
            $(this).find('.btn__text').text("Дополнительная информация");
            flag = false;
        }
        else {
            $(".description").slideToggle("fast");
            $(this).find('.btn__text').text("Закрыть");
            flag = true;
        }
    });

    var flag2;
    $('.arrow-show-menu').click(function () {
        if (flag2) {
            $(this).removeClass('rotate-triangle');
            $(this).parent().find('.child-menu').css('display', 'none');
            flag2 = false;
        }
        else {
            $(this).addClass('rotate-triangle');
            $(this).parent().find('.child-menu').css('display', 'flex');
            flag2 = true;
        }
    });

    if (location.href.indexOf('//dvijenie.agency/search/' !== -1)) {
        var style = document.createElement('style');

        style.textContent = `
            .search__form-main > fieldset > ul > li:first-child {
                display: none !important
            }
        `;

        document.body.appendChild(style);
    }

    setInterval(function () {
        var balloon_text = document.querySelector('.balloon__text');

        if (balloon_text) {
            var tds = balloon_text.querySelectorAll('td');

            for (var i = 0, l = tds.length; i < l; i++) {
                var td = tds[i];

                if (td.textContent.indexOf('Адрес') !== -1) {
                    var next = td.nextElementSibling;

                    next.innerHTML = '<a style="color:#000000" href="' + balloon_text.dataset.href + '">' + next.innerHTML + '</a>';
                }
            }
        }

        var balloon_cart = document.querySelector('.balloon__content .map__cart-btn');

        if (balloon_cart) {
            if (top10CartIds.includes(balloon_cart.dataset.product_id)) {
                balloon_cart.classList.add('btn--cart-checked');

                top10CartIds.push();
            }
        }

        if (balloon_cart) {
            if (balloon_cart.classList.contains('listener') === false) {
                balloon_cart.classList.add('listener');

                balloon_cart.addEventListener('click', function () {
                    top10CartIds.push(this.dataset.product_id);
                });
            }
        }
    }, 1000);

    (function () {
        if (location.href.indexOf('/product/') !== -1) {
            var tds = document.querySelectorAll('td');

            for (var i = 0, l = tds.length; i < l; i++) {
                var td = tds[i];

                if (td.textContent.indexOf('Тип') !== -1 && td.nextElementSibling.textContent.indexOf('Медиафасад') !== -1) {
                    var description = document.querySelector('.woocommerce-Tabs-panel--description');

                    if (description) {
                        description.innerHTML += '<br /><p>Указанная стоимость имеет информативный характер и может отличиться как в большую, так и в меньшую сторону (в зависимости от сезона и загруженности рекламной конструкции). Точную цену уточняйте у наших менеджеров.</p>';
                    }
                }
            }
        }
    })();
});


function top10BalloonOpen(items) {
    setTimeout(function () {
        //console.log('OPEN');
        var container = document.querySelector('[class$=-balloon-pane] [class$=-balloon-overlay]'),
            storageItems = localStorage.getItem('top10-balloon-watched');

        if (storageItems) {
            try {
                storageItems = JSON.parse(storageItems);
            } catch (err) {
                storageitems = {};
            }
        } else {
            storageItems = {};
        }

        if (container) {
            var elements = container.querySelectorAll('[class$="cluster-tabs__menu"] > *');

            //console.log(items, elements);

            if (elements.length > 0) {
                storageItems[items[0].id + ''] = true;

                localStorage.setItem('top10-balloon-watched', JSON.stringify(storageItems));

                for (var i = 0, l = elements.length; i < l; i++) {
                    var element = elements[i];

                    if (/*!element.classList.contains('top10')*/true) {
                        //element.classList.add('top10');

                        element.dataset.id = items[i].id;

                        //console.log(element.dataset.id, storageItems[element.dataset.id]);

                        if (storageItems[element.dataset.id]) {
                            element.style.opacity = .6;
                        }

                        element.addEventListener('click', function () {
                            var storageItems = localStorage.getItem('top10-balloon-watched');

                            if (storageItems) {
                                try {
                                    storageItems = JSON.parse(storageItems);
                                } catch (err) {
                                    storageItems = {};
                                }
                            } else {
                                storageItems = {};
                            }

                            if (Object.keys(storageItems).length > 100) {
                                delete storageItems[Object.keys(storageItems)[0]];
                            }

                            storageItems[this.dataset.id] = true;

                            this.style.opacity = .6;

                            localStorage.setItem('top10-balloon-watched', JSON.stringify(storageItems));
                        });
                    }
                }
            }
        }
    }, 1000);
}