
(function($){
    let page = $('body').attr('id');
    if (page === 'page-logoff') {
        localStorage.removeItem("cart");
        localStorage.removeItem("wishlist");
    }

    $(".btn_log_out").click(function (e) {
        localStorage.removeItem("cart");
        localStorage.removeItem("wishlist");
    });

    mergeLocalStorageWithCart();
    mergeLocalStorageWithWishlist();

    //először tüntessük el a szükségtelen form-okat
    $forms = $('button.addShoppingCart');
    $.each($forms, function(i,item) {
       $form = $(item).parent("form");
       $content = $form.contents().clone();
       $form.replaceWith($content);
    });


    $('a[href^="mailto:"]').each(function() {
      this.href = this.href.replace('(kukac)', '@').replace(/\(pont\)/g, '.');
      // Remove this line if you don't want to set the email address as link text:
      this.innerHTML = this.href.replace('mailto:', '');
     });

    // keresés elküldése, üres string ellenőrzés
    $('form#fSearch').submit(function() {
        if ($('#keyword', this).val() == '') {
            return false;
        }
    });

    $('body').on('submit', 'form.search_by', function() {
       var options = new Array();
       $.each($('select', this), function(i, item) {
        if ($(item).val() != "-1") {
            options.push($(item).data('name') + '_' + $(item).val());
        }
       });
       if (options.length == 0) {

        var alert = $('<p/>').text('Legalább egy szűkítési feltételt meg kell adj!').addClass('gamesearch-error');
        if ($(this).parent().hasClass('gamesearch')) {
            $(alert).addClass('fix');
        }
        var line = $(alert).appendTo(this);
        $(line).delay(7000).fadeOut(700);
        return false;
       }

       $('input[name=f]', this).val(options.join('-'));
       return true;
    });

    var menu_timer;
    window.addEventListener('scroll', function(event) {
        var top = (document.documentElement && document.documentElement.scrollTop) || document.body.scrollTop;
        if (top > 15) {
            $('.header-navbar').addClass('scrolled');

            menu_timer = setTimeout(function(){
                if ($('.header-navbar').hasClass('scrolled')) {
                    $('.header-navbar').addClass('tablet-cart');
                }
            }, 2000);
        } else {
            clearTimeout(menu_timer);
            $('.header-navbar').removeClass('scrolled');
            $('.header-navbar').removeClass('tablet-cart');
        }
    });


    $('#profile a').hover(
        function() {
            $('#account_submenu').css({display: 'block'});
        },
        function() {
            setTimeout(function() {checkHover('#account_submenu', '#profile a')}, 300);
        }
    );

    $('#account_submenu').hover(
        function() {
            $(this).css({display: 'block'});
        },
        function() {
            setTimeout(function() {checkHover('#account_submenu', '#profile a')}, 300);
        }
    );

    $('#cs a').hover(
        function() {
            $('#info_submenu').css({display: 'block'});
        },
        function() {
            setTimeout(function() {checkHover('#info_submenu', '#cs a')}, 300);
        }
    );

    $('#info_submenu').hover(
        function() {
            $(this).css({display: 'block'});
        },
        function() {
            setTimeout(function() {checkHover('#info_submenu', '#cs a')}, 300);
        }
    );

    //ebben van egy csomó fontos analytics-es cucc is!!!!
    var oldal = $('body').attr('id');
    var oldal_type = $('body').attr('data-type');
    if(typeof oldal_type != 'undefined'){
        oldal += '-'+oldal_type;
    }
    $('body').on('click', '.addShoppingCart', function(event) {
        var item = $(this).closest('[data-pid]');
        var product_id = $(item).data('pid');
        var netto_price = $(item).data('unit-netto');
        var name = $(item).data('name');
        var product_url = '';
        var position = parseInt($('div.all-content').find('.addShoppingCart').index($(this))) + 1;
        var place = $(this).closest('[data-place]').data('place');
        var info = {name: name, position: position, place: place, page: oldal};
        var product_quantity = $(item).find('#cart_quantity').val();
        if(typeof product_quantity == "undefined"){
            product_quantity = 1;
        }

        let relatedMarketingProductsShoppingCartActionCallback = null;
        let activeRelatedMarketingPromotionProducts = $('.marketing-promotion-product-quantity-handle-contents:not(".disabled") input[name="product_id"]')
        if (activeRelatedMarketingPromotionProducts.length){      
          if (activeRelatedMarketingPromotionProducts.val() != product_id) {
            relatedMarketingProductsShoppingCartActionCallback = function(){
              ShoppingCartAction(
                "add",
                activeRelatedMarketingPromotionProducts.val(),
                1,
                null,
                null,
                true
              );
            };  
          }
        }

        var shopping_cart = ShoppingCartAction('add', product_id, product_quantity, netto_price, info, true, true, relatedMarketingProductsShoppingCartActionCallback);

        if(product_quantity != '') {
            // Pl termék oldalon innen jön, a többin hfef-ből, termék oldalon azért mert az admin termék link a hrefben van.
            product_url = $(item).data('url');
            if (!product_url) {
                var product_url = $(item).find('a').attr('href');
            }

            if (typeof window.prefixboxAnalytics === "function") { 
                window.prefixboxAnalytics(
                'cart', 'serp', {
                pattern: search_keyword,
                position: position,
                productId: product_id,
                title: name,
                url: product_url,
                price: netto_price,
                currency: currency,
                itemCount: product_quantity
                });
            }

            if ($('body.mobile').length > 0 && $(this).closest('div.product-box').length > 0) {
                window.location = $(this).closest('div.product-box').data('mobile-url');
                return false;
            } else if ($('body.mobile').length > 0 && $(this).closest('div.product-add').length > 0) {
                window.location = $(this).closest('div.product-add').data('mobile-url');
                return false;
            }

            refreshQuantityIcon(shopping_cart.in_cart_qty);
            refreshSmallCart(shopping_cart.in_cart_qty);
            if(shopping_cart.overflow) {
                showShoppingCartAlert('<li>'+ name + ' (' +product_id+'): '+shopping_cart.in_container+' '+lang_text_quantity+'</li>');
            }
            else {
                if (oldal != 'page_cart') {
                    showShoppingCartHover();
                }
            }
        }
        else {
            event.stopPropagation();
        }
        $(item).find('#cart_quantity').val($(item).find('#cart_quantity').prop( 'defaultValue' ));
    });

    //.animate_scroll legörget ahova kell
    $('.animate_scroll').click(function() {
        if ($(this).attr('data-target-id')) {
            var id = '#' + $(this).data('target-id');
        } else {
            return false;
        }
        if ($(this).attr('data-padding-top')) {
            var padding_top = parseInt($(this).data('padding-top'));
        } else {
            var padding_top = 130;
        }
        if ($(this).attr('data-speed')) {
            var speed = parseInt($(this).data('speed'));
        } else {
            var speed = 500;
        }
        $('html, body').animate({
            scrollTop: $(id).offset().top - padding_top
         }, speed);
        return false;
    });


    // bejelentkezett felhasználó bejelentkezési módjának küldése Analytics-ba
    var login_type_match = document.cookie.match(/login_type=(\d+)/);
    if (login_type_match) {
        document.cookie = "login_type=; secure; expires=Thu, 01 Jan 1970 00:00:00 UTC";
    }

// részletek gomb class-a
    $('.button-info').on('click', function() {
        $(this).toggleClass('button-info-active');
        return false;
    });

    $(window).on("orientationchange",function(){
      setBoxesHeight();
    });
})(jQuery);

$(window).on("orientationchange",function(){
    setBoxesHeight();
});


function ShoppingCartAction(action, product_id, cart_quantity, netto_price, info, do_third_party_multi, renderResponse = true, callback = undefined) {
    var csrf_token = $('meta[name="csrf-token"]').attr('content');
    var response = '';
    var $marketingPromotionOptionsContainer = $('#marketing-promotion-options-container');
 
    jQuery.ajax({
        headers: {'CsrfToken': csrf_token},
        url: '/ajax.php',
        async: false,
        type: 'POST',
        dataType: 'json',
        data: {page: 'shopping_cart', action: action, product_id: product_id, cart_quantity: cart_quantity},
        success: function (msg) {
            response = msg;
            if (response.hasOwnProperty("message")) {
                showMessageStack(response.message, "caution");
            }
            if (action == 'add') {
                if (response.marketing_added == 1) {
                    $('.added_to_cart_promotion').css('display', 'block');
                } else {
                    $('.added_to_cart_promotion').css('display', 'none');
                }

                if (response.availale_marketing_promotions) {
                    $marketingPromotionOptionsContainer.find('.marketing-promotion-option-text').html(response.availale_marketing_promotions);
                    $marketingPromotionOptionsContainer.show()
                } else {
                    $marketingPromotionOptionsContainer.find('.marketing-promotion-option-text').html('');
                    $marketingPromotionOptionsContainer.hide();
                }
            }

            let cartItems = {};
            $.each(response.cart, function(index, value) {
                if (value.status === 1) {
                    cartItems[index] = value;
                }
            });
            localStorage.setItem('cart', JSON.stringify(cartItems));

        
            if (renderResponse){
                jQuery.ajax({
                    headers:  {'CsrfToken': csrf_token},
                    url: '/ajax.php',
                    async: false,
                    type: 'POST',
                    dataType: 'json',
                    data: {page: 'render_cart'},
                    success: function (resp) {
                        if (resp['full_cart_html']) {
                            response.full_cart_html = resp['full_cart_html'];
                        }

                        if (typeof callback == "function") {
                            callback();
                        }
                    },
                    error: function(resp2) {
                        // console.log(resp2);
                    }
                });
            } else {
                if (typeof callback == "function") {
                    callback();
                }
            }
        }
    });
    /*
    console.log([action, product_id, cart_quantity, netto_price, 'info', do_third_party_multi, 'response']);
    console.log(info);
    console.log(response);
    */
    try {
        var brutto_price = Math.round(1.27 * netto_price),
            OptiMonkOnReady = function () {
                var adapter = OptiMonk.Visitor.createAdapter();
                adapter.Cart.add(product_id, {quantity: 1, price: brutto_price});
            };
        // console.log("OptiMonk üzeni: rulez. Ár: " + brutto_price);
    } catch (err) {
        // console.log("OptiMonk üzeni: whatever.");
    }

    // TODO: #1292 - render
    renderCart(response.full_cart_html);

    return response;
}

function renderCart(full_cart_html)
{
    $('#cartItems').html(full_cart_html);
}

/**
 * Összeolvasztja a kosár tartalmát a localStorage-ben elmentett adatokkal
 */
function mergeLocalStorageWithCart() {
    let savedCart = localStorage.getItem('cart');
    let xhr = new XMLHttpRequest();
    xhr.open('POST', '/ajax.php');
    xhr.setRequestHeader('Content-Type', 'application/json');
    xhr.setRequestHeader('CsrfToken', document.querySelector('meta[name="csrf-token"]').getAttribute('content'));
    xhr.onreadystatechange = function() {
        if (xhr.readyState === 4) {
            if (xhr.status === 200 && xhr.responseText.length > 0) {
                let response = JSON.parse(xhr.responseText);
                let cartItems = {};
                Object.keys(response.cart).forEach(function(index) {
                    let value = response.cart[index];
                    if (value.status === 1) {
                        cartItems[index] = value;
                    }
                });
                localStorage.setItem('cart', JSON.stringify(cartItems));
                if (response.in_cart_qty > 0) {
                    refreshQuantityIcon(response.in_cart_qty);
                }
                renderCart();
            } else {
                localStorage.removeItem('cart');
            }
        }
    }
    xhr.send(JSON.stringify({page: 'shopping_cart', action: 'local_storage_merge', local_storage_content: savedCart}));
}

/**
 * Összeolvasztja a kívánságlista tartalmát a localStorage-ben elmentett adatokkal
 */
function mergeLocalStorageWithWishlist() {
    let savedItems = localStorage.getItem('wishlist');

    jQuery.ajax({
        headers: {'CsrfToken': $('meta[name="csrf-token"]').attr('content')},
        url: '/ajax.php',
        type: 'POST',
        dataType: 'json',
        data: {page: 'wishlist', action: 'local_storage_merge', local_storage_content: savedItems},
        success: function (response) {
            localStorage.setItem('wishlist', JSON.stringify(response.items));
        },
        error: function(resp, msg) {
            localStorage.removeItem('wishlist');
        }
    });
}

function showShoppingCartHover()
{
    showHover('.modal-cart-success', 3500);
}

function showWishListHover()
{
    var modal_name = 'modal-wishlist-success';
    $('.' + modal_name).modal('show');
    showHover(modal_name, 2500);
}

var addToCartModalTimer;
function showHover(class_name, timeout) {

    $('.modal-title').show();
    $('.modal-title-alert').hide();
    clearTimeout(addToCartModalTimer);
    addToCartModalTimer = setTimeout(function(){
        $(class_name).modal('hide');
        clearTimeout(addToCartModalTimer);
    }, timeout);


    $(class_name + ' .modal-content').hover(
        function() {
            clearTimeout(addToCartModalTimer);
        },
        function() {
            addToCartModalTimer = setTimeout(function(){
                $(class_name).modal('hide');
                clearTimeout(addToCartModalTimer);
            }, timeout);
        }
    );

}

function showShoppingCartAlert(shopping_cart_alert)
{
    $('.modal-title').hide();
    $('#modal-title-alert-details').html('<ul>' + shopping_cart_alert + '</ul>');
    $('.modal-title-alert').show();
}


function checkHover(id, link) {
    if (!jQuery(id).is(':hover') && !jQuery(link).is(':hover')) {
        jQuery(id).css({display: 'none'});
    }
}

/** scarab null-content check **/
    var sc = {
        bigbox          :   jQuery('#scarab-related-container').closest('.product_bigbox'),
        bigbox_counter  :   0,
        bigbox_timer    :   setInterval(function() {
                                if (jQuery('div.box', sc.bigbox).length) {
                                    clearInterval(sc.bigbox_timer);
                                    sc.bigbox
                                        .removeClass('hidden')
                                        .animate({height: 303}, 800, function() {
                                            var maxBoxHeight = 0;
                                            jQuery('div.box', sc.bigbox).each(function() {
                                                var currentBoxHeight = jQuery('div.boxhover', this).height() + 20;
                                                if (currentBoxHeight > maxBoxHeight) maxBoxHeight = currentBoxHeight;
                                            });
                                            sc.bigbox.css('height', maxBoxHeight + 'px');
                                            $('.box.sale').css('height', maxBoxHeight + 'px');
                                        });
                                } else {
                                    if(++sc.bigbox_counter > 15) {
                                        clearInterval(sc.bigbox_timer);
                                    };
                                }
                            }, 200),
        sidebox         :   jQuery('#scarab-sidebox-container').closest('.product_smallbox'),
        sidebox_counter :   0,
        sidebox_timer   :   setInterval(function() {
                                if (jQuery('div.box', sc.sidebox).length) {
                                    $('#scarab-sidebox-container').css('position', 'relative');
                                    jQuery('div.box', sc.sidebox).css('position', 'absolute');
                                    clearInterval(sc.sidebox_timer);
                                    sc.sidebox
                                        .removeClass('hidden')
                                        .animate({height: 330}, 800, function() {
                                            var boxHeight = 0;
                                            jQuery('div.box', sc.sidebox).each(function() {
                                                $(this).css('top', boxHeight + 'px');
                                                boxHeight += jQuery('div.boxhover', this).height() + 20;
                                            });
                                            sc.sidebox.css('height', boxHeight + 100 + 'px');
                                        });
                                } else {
                                    if(++sc.sidebox_counter > 15) {
                                        clearInterval(sc.sidebox_timer);
                                    };
                                }
                            }, 200)};


//boxok magasságánnak beállítója vala
function setBoxesHeight()
{
    //jelenjen meg a dropdown
    jQuery('.header-menu-specials').css({display: 'block'});

    //ezekben a konténerekben lehetnek dobozok amiket ki kell számolni
    var $lists = jQuery('.calc-box-container');
    if (jQuery('.calc-base-class').length > 0 && jQuery('.calc-target-class').length > 0){
        jQuery('.calc-target-class').css({height: 'auto'});
        jQuery.each($lists, function(i, list){
            //dobozok a konténerben aminek ellenőrizzük a méretét
            var $boxes = jQuery('.calc-base-class', jQuery(list));
            // hány darab doboz van egy sorban
            // kell az is, hogy összesen hány doboz van, hátha egyetlen sor az egész
            var box_length = $boxes.length;
            if (box_length > 0){
                var oszto = 0;
                var y_koordinata = false;
                while (oszto != szamlalo){
                    //az első elemnek hol a teteje, és indítsuk el a számlálót is
                    if (y_koordinata === false){
                        var szamlalo = 0;
                        var oszto = 0;
                        y_koordinata = jQuery($boxes[szamlalo]).offset().top;
                    }
                    //ha nem egyezik az aktuális doboz tetejének a poziciója, meg a legelső megnézetté
                    // -> ez egy új sor
                    // vagy a számláló elérte a dobozok számát (egy sor van)
                    // -> itt a vége, ez lesz az osztónk
                    if (y_koordinata != jQuery($boxes[szamlalo]).offset().top || box_length - 1 == szamlalo) {
                        oszto = box_length - 1 == szamlalo ? szamlalo + 1 : szamlalo;
                        break;
                    } else {
                        szamlalo++;
                    }
                }

                //az osztó mutatja hány elem van egy sorban
                //amíg haladunk egy soron, vizslatjuk ki a legmagasabb
                //a sorban minden elemnek adunk egy ideiglenes class-t
                //ha elértük a sor végét, a class-ra rányomjuk a magasságot, majd töröljük a class-t
                var displayed_boxes = 0;

                szamlalo = 0;
                var max_height = 0;
                jQuery.each($boxes, function(i, box){
                    displayed_boxes++;

                    //a sor első eleme előtt nullázzuk a max magasságot
                    if (szamlalo == 0){
                        max_height = 0;
                    }
                    jQuery(box).addClass('height_temporary_class');
                    max_height = Math.max(max_height, jQuery(box).height());
                    var product_box_height = max_height + 33

                    szamlalo++;
                    if (szamlalo == oszto || displayed_boxes == box_length){
                        jQuery('.height_temporary_class.calc-target-class').css({height: max_height + 'px'});
                        jQuery('.height_temporary_class').find('.calc-target-class').css({height: max_height + 'px'});
                        jQuery('.height_temporary_class').parent().closest('.calc-target-class').css({height: product_box_height + 'px'});
                        jQuery('.height_temporary_class').removeClass('height_temporary_class');
                        szamlalo = 0;
                    }
                });
            }
        });

        $special_container_element = $('.module-specials .product-box');
        $special_container = $special_container_element.parent();
        $special_container.css({height: ($special_container_element.height()) + 40 + 'px'});
    }

    jQuery('.header-menu-specials').css({display: ''});

}

function increaseBoxesHeight($boxes, plus)
{
    $.each($boxes, function(i, item) {
        var height = $(item).height() + plus;
        $(item).css({height: height + 'px'});

        var $base_box = $('.text-center', item);
        var height = $base_box.height() + plus;
        $base_box.css({height: height + 'px'});
    });
}


/** Tooltip aktiválás Bootstraphez **/
document.addEventListener('DOMContentLoaded', function () {
    jQuery('[data-toggle="tooltip"]').tooltip({
        'delay': { show: 500, hide: 0 },
        'container':'body'
    });

    /** Hover fade Bootstrap Dropdownhoz **/
    var clickedOnDropdown = false;
    jQuery('.dropdown')
        .mouseenter(function() {
            jQuery(this).children('.dropdown-toggle').dropdown('toggle');
        })
        .mouseleave(function() {
            if (!clickedOnDropdown) {
                jQuery(this).children('.dropdown-toggle').dropdown('toggle');
            }
        })
        .click(function () {
            clickedOnDropdown = true;
        });

    if(window.innerWidth < 800)
    {
        jQuery("body").addClass("mobile");
        $('body').on('click', ".product-box", function(event) {
            if($(event.target).closest('.no-href').length === 0) {
                window.location = jQuery('a', this).attr('href');
            }
        });
    }
    else
    {
        jQuery("body").addClass("desktop");
    }   

    setBoxesHeight();

    // Carousel slide
    $(".megabanner.visible-lg").removeClass("visible-lg").addClass("banner-visible-xl");
    $(".megabanner.visible-md").removeClass("visible-md").addClass("banner-visible-lg");
})

// Mobile orientation change (TODO: main_page:38)
$( window ).on( "orientationchange", function( event ) {
  setBoxesHeight();
  renderBanners();
});

// Advert
function renderBannersO() {
    $.each($('.jnbz'), function() {
        if($(this).parent().is(":visible")){
            $(this).attr("src", 'https://netjatek.hu/images/!mainpagebanner/2017/'+this.id.replace('jnbz','')+'.jpg');
        }
    })
}
function renderBannersFG() {
    var image_id = '';
    $.each($('.cjnbz'), function() {
        if($(this).is(":visible")){
            image_id = this.id.replace('cjnbz','jnbz');
            $('#' + image_id).attr("src", 'https://netjatek.hu/images/!mainpagebanner/2017/' + this.id.replace('cjnbz','')+'.jpg');
        }
    })
}
function renderBannersBG() {
    $.each($('.cjnbz'), function() {
        if($(this).is(":visible")){
            $(this).css("background-image", "url(https://netjatek.hu/images/!mainpagebanner/2017/" + this.id.replace('cjnbz','') + ".jpg)");
        }
    })
}
function renderBannersAFG() {
    $.each($('.ajnbz'), function() {
        if($(this).is(":visible")){
            $(this).html("<img src='https://netjatek.hu/images/!mainpagebanner/2017/" + this.id.replace('ajnbz','') + ".jpg'>");
        }
    })
}
function renderBannersABG() {
    $.each($('.ajnbz'), function() {
        $(this).html("");
        $(this).css("background-image", "url(" + $(this).data('img') + ")");
    })
}
function renderBanners() {
    renderBannersABG();
}
document.addEventListener('DOMContentLoaded', function () {
    renderBanners();
});

/*******************************************************/
$('body').on('click', '.addShoppingCartMulti', function(event) {
    var shopping_cart;
    var shopping_cart_alert = '';
    var counter_max = 0;
    var counter_act = 0;
    var do_third_party_multi = false;

    $(this).toggleClass('btn-inprogress');
    $(this).prop('disabled', 'disabled');
    //console.log($("input[name='cart_quantity'][value!='0'].qty").size()); // 0 ertekkel latja a valuet, hiaba irom at
    $.each($("input[name='cart_quantity'].qty"), function(i, quantity){
        if($(quantity).val() > 0) {
            counter_max++;
        }
    });
    $.each($("input[name='cart_quantity'].qty"), function(i, quantity){
        var item = $(this).closest('[data-pid]');
        var product_id = $(item).data('pid');
        var netto_price = $(item).data('unit-netto');
        var name = $(item).data('name');
        var position = $(item).index() + 1;
        var place = 'listmultiadd';
        var info = {name: name, position: position, place: place, page: $('body').attr('id')};
        if($(quantity).val() > 0) {
            if(counter_max == ++counter_act) { do_third_party_multi = true; }
            shopping_cart = ShoppingCartAction('add', product_id, $(quantity).val(), netto_price, info, do_third_party_multi);
            if(shopping_cart.overflow) {
                shopping_cart_alert = shopping_cart_alert + '<li>'+ name + " (" +product_id+'): '+shopping_cart.in_container+' '+lang_text_quantity+'</li>'
            }
            $(quantity).val('');
        }
    });
    if (typeof shopping_cart != 'undefined') {
        refreshQuantityIcon(shopping_cart.in_cart_qty);
        refreshSmallCart(shopping_cart.in_cart_qty);
        if(shopping_cart_alert) {
            showShoppingCartAlert(shopping_cart_alert);
        }
        else if ($('body.mobile').length > 0) {
            window.location = $(this).data('mobile-url');
            return false;
        }
        else {
            showShoppingCartHover();
        }
    }
    else {
        event.stopPropagation();
    }
    $(this).toggleClass('btn-inprogress');
    $(this).prop('disabled', '');
});

$('body').on('mouseover', '.header-icon-cart', function() {
    if($('.mini-cart').is(":hidden")) {
        refreshCart( $('.mini-cart'), 1, 0, 'time');
    }
});

function refreshQuantityIcon(quantity) {
    if(quantity) {
        $('.header-icon-num-cart').removeClass('hidden');
    }
    else {
        $('.header-icon-num-cart').addClass('hidden');
    }
    $('.header-icon-num-cart').html(quantity);
}

function refreshSmallCart(in_cart_qty) {
    if(in_cart_qty === null) {
        $('.small-cart').hide();
        $('.mini-cart').hide();
    }
    else {
        refreshCart($('.small-cart'), 1, 5, 'time');
    }
}

function refreshCart(target, title, limit, order_by) {
    jQuery.ajax({
        headers: {'CsrfToken': $('meta[name="csrf-token"]').attr('content')},
        url: 'ajax.php',
        dataType: 'html',
        data: {page: 'minicart', title: title, limit: limit, order_by: order_by, url: window.location.href, target: $(target).prop('id')},
        success: function(html) {
            if(html) {
                target.html(html);
                target.show();
            }
            return true;
        }
    });
}

function modifyWishlist(action, product_ids) {
    jQuery.ajax({
        headers: {'CsrfToken': $('meta[name="csrf-token"]').attr('content')},
        url: '/ajax.php',
        data: {
            page: 'wishlist',
            action: action,
            product_ids: product_ids,
        },
        complete: function (data) {
            if (data = JSON.parse(data.responseText)) {
                if (data.success) {
                    localStorage.setItem('wishlist', JSON.stringify(data.items));
                }
            }

            return true;
        }
    });
}

$('body').on('click', '.addWishList', function(e) {
    e.preventDefault();
    e.stopPropagation();

    var item = $(this).closest('[data-pid]');
    var product_id = $(item).data('pid');
    var button = item.find(".addWishList");
    modifyWishlist('add', [product_id]);
    showWishListHover();
    button.find(".heart-icon")
        .removeClass("glyphicon-heart-empty")
        .removeClass("text-bold")
        .addClass("glyphicon-heart");
    button.removeAttr("data-original-title");
    button.find(".add-to-wish-text").addClass("hidden");
    button.find(".on-wish-text").removeClass("hidden");
    $('[data-toggle="tooltip"]').tooltip("hide");
    item.find(".on-wishlist")
        .removeClass("glyphicon-heart-empty")
        .removeClass("text-bold")
        .addClass("glyphicon-heart")
        .removeClass("hidden");
});

$('body').on('click', '.removeWishList', function(e) {
    e.preventDefault();
    e.stopPropagation();

    var item = $(this).closest('[data-pid]');
    var product_id = $(item).data('pid');
    modifyWishlist('remove', [product_id]);
    item.fadeOut();
});

$(".header-menu-toggle").hover(function () {
    $(".header-menu").addClass("force-open");
});

$('.header-menu').on('mouseleave', function() {
   $(this).removeClass('force-open');
});

$( ".product-shipping-toggle" ).click(function() {
  $( ".product-shipping-text" ).slideToggle( "slow", function() {
  });
  return false;
});

$( ".product-ratings-toggle" ).click(function() {
  $( ".product-ratings-items-container" ).slideToggle( "slow", function() {
  });
  return false;
});

$( ".search-toggle-mobile" ).click(function() {
  $( "#header-search-collapse" ).toggleClass("open");
  return false;
});

document.addEventListener('DOMContentLoaded', function () {
    $('#already_in_cart_increased').hide();
    $(document).on("click", ".addShoppingCart", function(){
        if( $(this).closest(".product-box-buttons").attr("data-in_cart") == "true" ){
            $('#already_in_cart_increased').show();
        } else {
            $('#already_in_cart_increased').hide();
            $(this).closest(".product-box").find(".item .product-box-buttons").attr("data-in_cart", "true");
            $(this).closest(".product-box").find(".addShoppingCart").find("p").text(already_in_cart_text);
            $(this).closest(".product-box").on("mouseenter", ".addShoppingCart", function(event) {
                $(event.target).find("p").text(already_in_cart_hover_text);
            });
            $(this).closest(".product-box").on("mouseleave", ".addShoppingCart", function(event) {
                $(event.target).find("p").text(already_in_cart_text);
            });
        }
    });

    $(".product-box").each(function(i, elem){
        if ( $(elem).find(".product-box-buttons").attr("data-in_cart") == "true" ) {
            $(elem).on("mouseenter", ".addShoppingCart", function(event) {
                $(event.target).find("p").text(already_in_cart_hover_text);
            });
            $(elem).on("mouseleave", ".addShoppingCart", function(event) {
                $(event.target).find("p").text(already_in_cart_text);
            });
        } else {
            $("#already_in_cart_increased").hide();
        }
    });
});

function showMessageStack(message, type) {
    let content = `<div class="container"><div class="clearfix messagestack ms-` + type + ` r'">
                <span class="glyphicon glyphicon-exclamation-sign"></span>
                <ul class="list-unstyled">
                    <li>` + message + `</li>
                </ul>
            </div>
        </div>`;
    $("#message_stack").empty().append(content);
}

window.ShoppingCartAction = ShoppingCartAction;
window.refreshQuantityIcon = refreshQuantityIcon;
window.renderCart = renderCart;
window.showMessageStack = showMessageStack;