<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">var errorfields = {};

var contact = {
    send: function(obj) {
        $('#widget-contact-form .form-group').removeClass('error');

        jQuery.post("/contact-send", jQuery(obj).serialize(), function (data) {
            if (data.error) {
                swal("", data.msg, "error");
                for(e in data.errors) {
                    $('#' + e).parent().addClass('error');
                }
            } else {
                window.location = data.url;
            }
        }, "json");
    }
};
var basket = {
    add: function (obj, data) {
        barionp.addToCart($(obj.qty).val(), data);
        jQuery.post("/basket-add", jQuery(obj).serialize(), function (data) {
            if (data.error) {
                swal("", data.msg, "error");
            }
            else {
                window.location.href = data.url;
                // const dropdownToggleEl = document.querySelector('.basket-toggle')
                // const dropdownList = new bootstrap.Dropdown(dropdownToggleEl);
                // dropdownList.show();
            }
        }, "json");
    },
    modify: function (obj) {
        jQuery.post("/basket-modify", jQuery(obj).serialize(), function (data) {
            if (data.error) {
            }
            else {
                window.location.href = data.url;
            }
        }, "json");
    },
    deleteItem: function (product_id) {
        jQuery.post("/basket-delete-item", 'product_id=' + product_id, function (data) {
            if (data.error) {
            }
            else {
                window.location.href = data.url;
            }
        }, "json");
    },
    deleteAll: function () {
        jQuery.post("/basket-delete-all", '', function (data) {
            if (data.error) {
            }
            else {
                window.location.href = data.url;
            }
        }, "json");
    },
};

var wishlist = {
    add: function(pid) {
        jQuery.post("/wishlist-add", {product_id:pid}, function (data) {
            if (data.error) {
                swal("", data.msg, "error");
            } else {
                swal("", data.msg, "success");
            }
        }, "json");
    },
    deleteitem: function(pid) {
        jQuery.post("/wishlist-delete", {product_id:pid}, function (data) {
            if (data.error) {
            } else {
                window.location.reload();
            }
        }, "json");
    }
};

var comments = {
    send: function(obj) {
        jQuery.post("/comments-add", jQuery(obj).serialize(), function (data) {
            if (data.error) {
                swal("", data.msg, "error");
            } else {
                if( window.location.hash == '' ) {
                    window.location = window.location + '#comments';
                }
                window.location.reload();
            }
        }, "json");
    },
    delete: function(cid) {
        swal({
            title: "",
            text: "Biztos hogy tĂśrlĂśd ezt a vĂŠlemĂŠnyt?",
            type: "warning",
            showCancelButton: true,
            cancelButtonText: "MĂŠgse",
            confirmButtonColor: "#DD6B55",
            confirmButtonText: "Igen, tĂśrlĂśm!",
            closeOnConfirm: false
        }, function() {
            jQuery.post('/comments-delete', {comment_id:cid}, function (data) {
                if( data.error ) {

                } else {
                    if( window.location.hash == '' ) {
                        window.location = window.location + '#comments';
                    }
                    window.location.reload();
                }
            });
        });

    }
};

var ww = {
    closeErrors: function () {
        jQuery('.errors').hide();
    },
    newsletterSubscribe: function (obj) {
        jQuery.post("/newslettersubscribe", jQuery(obj).serialize(), function (data) {
            if (data.error) {
                /*
                jQuery('#nlForm input').addClass('error');
                jQuery('#newsletterMessage').html(data.message);
                jQuery('#newsletterMessage').fadeIn();
                jQuery('#newsletterMessage').addClass('nlError');
                jQuery('#newsletterMessage').removeClass('nlSuccess');
                */
                swal('', data.message, 'error');
            }
            else {
                /*
                jQuery('#newsletterMessage').html(data.message);
                jQuery('#newsletterMessage').fadeIn();
                jQuery('#newsletterMessage').animate({top: '0'}, 400, "easeInOutQuart");
                jQuery('#newsletterMessage').addClass('nlSuccess');
                jQuery('#newsletterMessage').removeClass('nlError');
                */
                swal('', data.message, 'success');
                jQuery('#newsletter_email').val('');
                //jQuery('#nlForm').fadeOut();
            }
        }, "json");
    }
};

var barionp = {
    acceptCookies: function() {
        bp('consent', 'grantConsent');
    },
    contentView: function(data) {
        bp('track', 'contentView', data);
    },
    addToCart: function(qty, data) {
        data = data || {unitPrice:0};
        data.quantity = parseFloat(qty || '0');
        data.totalItemPrice = data.quantity * data.unitPrice;

        if( data.unitPrice ) {
            bp('track', 'addToCart', data);
        }
    },
    initiateCheckout: function(data) {
        bp('track', 'initiateCheckout', data);
    },
    initiatePurchase: function(data) {
        bp('track', 'initiatePurchase', data);
    }
}

function send_request(f) {
    $('.has-error', f).removeClass('has-error');
    $('.help-block', f).remove();
    $.post('/request-send', $(f).serialize(), function(data){
        if( data.error ) {
            show_errors(data.errors);
        } else {
            swal('', data.msg, 'success');
            f.reset();
        }
    }, 'json');
}

function show_errors(d) {
    if( d ) {
        for(var i in d) {
            //$('#'+i).parents('form').addClass('was-validated');
            for(var j in d[i]) {
                $('#'+i).addClass('is-invalid');
                $('#'+i).parent().append('&lt;span class="invalid-feedback"&gt;' + d[i][j] + '&lt;/span&gt;');
                break;
            }
        }
    }
}

$(document).ready(function (){

    var lightBoxSettings = {
        buttons: [
            "zoom",
            //"share",
            //"slideShow",
            //"fullScreen",
            //"download",
            //"thumbs",
            "close"
        ],
        protect: true,
        infobar: false,
        loop: true,
        animationEffect: "fade",
        transitionEffect: "slide",
        lang: "de",
        hash: false,
        touch: {
            vertical: false
        }
    };
    $('[data-fancybox="gallery"]').fancybox(lightBoxSettings);
    $('a.lb').fancybox(lightBoxSettings);


    // TOOLTIP
    // BOOTSTRAP 3 - deprecated
    // $('[data-toggle="tooltip"]').tooltip({
    //     placement: 'top'
    // });

    /*
    $.each(errorfields, function(i, val){
        $('#' + errorfields[i].field).addClass('error');
        $('#' + errorfields[i].field + '-error').html('&lt;a class="south" href="#" title="' + errorfields[i].message + '"&gt;&lt;/a&gt;').css('display', 'inline-block');
    });

    $('.south').tipsy({
        gravity: 's'
    });
    */

/*
    $('nav#offmenu').mmenu({
        "classes": "mm-slide mm-light",
        "offCanvas": {
            "position": "right"
        }
    }).find(".mm-subopen").addClass( "mm-fullsubopen" );
    $('nav#offcat').mmenu({
        "classes": "mm-slide mm-light",
        "offCanvas": {
            "position": "left"
        }
    }).find(".mm-subopen").addClass( "mm-fullsubopen" );
*/

});

// debounce &amp; throttle
(function($) {

    $.extend({

        /**
         * Debounce's decorator
         * @param {Function} fn original function
         * @param {Number} timeout timeout
         * @param {Boolean} [invokeAsap=false] invoke function as soon as possible
         * @param {Object} [ctx] context of original function
         */
        debounce : function(fn, timeout, invokeAsap, ctx) {

            if(arguments.length == 3 &amp;&amp; typeof invokeAsap != 'boolean') {
                ctx = invokeAsap;
                invokeAsap = false;
            }

            var timer;

            return function() {

                var args = arguments;
                ctx = ctx || this;

                invokeAsap &amp;&amp; !timer &amp;&amp; fn.apply(ctx, args);

                clearTimeout(timer);

                timer = setTimeout(function() {
                    invokeAsap || fn.apply(ctx, args);
                    timer = null;
                }, timeout);

            };

        },

        /**
         * Throttle's decorator
         * @param {Function} fn original function
         * @param {Number} timeout timeout
         * @param {Object} [ctx] context of original function
         */
        throttle : function(fn, timeout, ctx) {

            var timer, args, needInvoke;

            return function() {

                args = arguments;
                needInvoke = true;
                ctx = ctx || this;

                timer || (function() {
                    if(needInvoke) {
                        fn.apply(ctx, args);
                        needInvoke = false;
                        timer = setTimeout(arguments.callee, timeout);
                    }
                    else {
                        timer = null;
                    }
                })();

            };

        }

    });

})(jQuery);

$(window).load(function() {
    let product_search_v = '';
    $('#product_search').keyup($.debounce(function() {
        let v = $('#product_search').val();
        let r = $('#product_search_body');

        if( product_search_v == v ) {
            return;
        }

        if( v != '' ) {
            $.get('/widget_search', {q:v}, function(result){
                r.html(result);
            })
        } else {
            r.html('');
        }

        product_search_v = v;
    }, 100));
});

document.addEventListener("DOMContentLoaded", () =&gt; {

    let tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
    let tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
        return new bootstrap.Tooltip(tooltipTriggerEl)
    })

    const breakpointsUpLg = window.matchMedia('(min-width: 992px)');
    const breakpointsDownLg = window.matchMedia('(max-width: 991.98px)');

    /* mobile menu */
    const menu = new MmenuLight(document.querySelector("#offmenu" ));
    const navigator = menu.navigation({
        theme: 'dark',
        title: ''
    });
    const drawer = menu.offcanvas({
        position: 'right'
    });
    let mmSelected = document.querySelector( ".mm-selected" );
    if(mmSelected !== null) {
        let selectedUL = mmSelected.closest("ul");
        navigator.openPanel(selectedUL);
    }
    //drawer.open();
    document.querySelector('a[href="#offmenu"]' ).addEventListener('click',(evnt) =&gt; {
        evnt.preventDefault();
        drawer.open();
    });
    document.querySelector('.offcanvas-close' ).addEventListener('click',(evnt) =&gt; {
        evnt.preventDefault();
        drawer.close();
    });

    /* menu dropdown */
    document.querySelectorAll('.navbar .dropdown').forEach(function(e){
        e.addEventListener('shown.bs.dropdown', function () {
            let el_overlay = document.createElement('div');
            el_overlay.className = 'modal-backdrop dropdown-backdrop fade';
            document.body.appendChild(el_overlay);
            setTimeout(function () {
                el_overlay.classList.add('show');
            }, 0);
        });
        e.addEventListener('hidden.bs.dropdown', function () {
            document.body.removeChild(document.querySelector('.dropdown-backdrop'));
        });
    });

    /* menu categories dropdown */
    let catLi = document.querySelectorAll('.dropdown-cat .dropdown-menu-list&gt;li');
    catLi.forEach(function(element){
        if(element.querySelector('.submenu') !== null){
            element.classList.add('has-submenu');
            element.closest('.dropdown-menu').classList.remove('asd');
        }
        element.addEventListener('mouseover', function (e) {
            element.closest('.dropdown-menu').classList.add('active-list');
            element.classList.add('active');
        });
        element.addEventListener('mouseout', function (e) {
            element.closest('.dropdown-menu').classList.remove('active-list');
            element.classList.remove('active');
        });
    });

    /* promobox */
    const promobox = new Swiper('.promobox .swiper', {
        spaceBetween: 0,
        slidesPerView: 1,
        loop: true,
        pagination: {
            el: '.promobox .swiper-pagination',
            type: 'bullets',
            clickable: true
        },
        autoplay: {
            delay: 7000,
            disableOnInteraction: false
        },
    });

    /* search modal */
    let el_searchModal = document.getElementById('searchModal');
    let el_searchInput = el_searchModal.querySelector('.form-control');
    let searchModal = new bootstrap.Modal(el_searchModal);
    //searchModal.show();
    el_searchModal.addEventListener('shown.bs.modal', function () {
        el_searchInput.focus()
    })

    /* filter */
    let filter_el = document.getElementById('filter-offcanvas');
    if(filter_el !== null) {
        let filterOffcanvas = new bootstrap.Offcanvas(filter_el);
        let body = document.querySelector('body');

        filter_el.addEventListener('hide.bs.offcanvas', function () {
            body.classList.toggle('offcanvas-open')
        });
        filter_el.addEventListener('show.bs.offcanvas', function () {
            body.classList.toggle('offcanvas-open')
        });
        window.addEventListener("resize", () =&gt; {
            if (breakpointsUpLg.matches === true &amp;&amp; body.classList.contains('offcanvas-open')) {
                filterOffcanvas.hide();
            }
        });
    }

    /* filter init */
    let range_sliders = document.querySelectorAll(".filter_range_slider");
    for(let range_item in range_sliders){
        let element = range_sliders[range_item];
        if(typeof element == 'object')
        {
            if (!element.classList.contains('noUi-target')) {

                let label_min = element.nextElementSibling.querySelector('.value-min');
                let label_max = element.nextElementSibling.querySelector('.value-max');

                //console.log(label_min);
                //console.log(element);
                //console.log(element.nextSibling.querySelector('.filter_labels');
                let format = wNumb(JSON.parse(element.dataset.sliderFormat));
                let start = JSON.parse(element.dataset.sliderStart);
                let range = JSON.parse(element.dataset.sliderRange);
                //console.log(format.to(start[0]));

                //label_min.innerHTML=format.to(parseFloat(start[0]));
                //label_max.innerHTML=format.to(parseFloat(start[1]));

                label_min.innerHTML=format.to(parseFloat(start[0]));
                label_max.innerHTML=format.to(parseFloat(start[1]));

                let slider = noUiSlider.create(element, {
                    start: start,
                    range: range,
                    connect: true
                });

                slider.on('slide',function(values, handle, unencoded, tap, positions){

                    let format = wNumb(JSON.parse(this.target.dataset.sliderFormat));
                    let label_min = this.target.nextElementSibling.querySelector('.value-min');
                    let label_max = this.target.nextElementSibling.querySelector('.value-max');

                    label_min.innerHTML=format.to(parseFloat(values[0]));
                    label_max.innerHTML=format.to(parseFloat(values[1]));
                });

                slider.on('update',function(values, handle){
                    //console.log(values[handle]);
                    //console.log(values[1]);
                });

                slider.on('change',function(values){
                    $('#filter_pf').val(values[0]);
                    $('#filter_pt').val(values[1]);
                    $('#filter_form').submit();
                });

                /*
                https://refreshless.com/nouislider/events-callbacks/
                'start' &gt; 'slide' &gt; 'drag' &gt; 'update' &gt; 'change' &gt; 'set' &gt; 'end'
                */

            }
        }
    }


    /* product sliders */
    const productSliderInit = ()=&gt;{
        let productSliders = document.querySelectorAll('.product-slider .swiper')
        let prevArrow = document.querySelectorAll('.swiper-button-prev')
        let nextArrow = document.querySelectorAll('.swiper-button-next')
        productSliders.forEach((slider, index)=&gt;{
            let sliderLength = slider.children[0].children.length
            let result = (sliderLength &gt; 1) ? true : false
            const productSlider = new Swiper(slider, {
                spaceBetween: 0,
                slidesPerView: 4,
                slidesPerGroup: 4,
                //loop: result,
                watchSlidesProgress: true,
                loop: true,
                navigation: {
                    nextEl: nextArrow[index],
                    prevEl: prevArrow[index],
                },
                pagination: false,
                breakpoints: {
                    320: {
                        slidesPerView: 1.2,
                        slidesPerGroup: 1,
                        centeredSlides: true,
                    },
                    375: {
                        slidesPerView: 1.4,
                        slidesPerGroup: 1,
                        centeredSlides: true,
                    },
                    520: {
                        slidesPerView: 3,
                        slidesPerGroup: 3,
                    },
                    992: {
                        slidesPerView: 4,
                        slidesPerGroup: 4,
                    }
                }
            });
        })
    };
    productSliderInit();

});
</pre></body></html>