var egyeb_ar1_netto = new Array();
var egyeb_ar1_brutto = new Array();
var egyeb_ar2_netto = new Array();
var egyeb_ar2_brutto = new Array();
var egyeb_ar3_netto = new Array();
var egyeb_ar3_brutto = new Array();
var egyeb_ar1_orig_netto = new Array();
var egyeb_ar1_orig_brutto = new Array();
var egyeb_ar2_orig_netto = new Array();
var egyeb_ar2_orig_brutto = new Array();
var egyeb_ar3_orig_netto = new Array();
var egyeb_ar3_orig_brutto = new Array();

var price_shop_netto = new Array();
var price_shop_brutto = new Array();
var price_net_netto = new Array();
var price_net_brutto = new Array();
var price_net_afa = new Array();
var price_akcio_netto = new Array();
var price_akcio_brutto = new Array();
var price_akcio_afa = new Array();
var price_unit_netto = new Array();
var price_unit_brutto = new Array();
var price_unit_div = new Array();

var price_net_akt = 0;
var price_akcio_akt = 0;
var price_save = 0;

var recaptcha_rendered;
var page_artdet;
var price_kedv = new Array();
var price_kedv_netto = new Array();
var percent_kedv = new Array();
var kedv_num = -1;

if (price_nullcut_disable == undefined) var price_nullcut_disable = 0;
if (price_decimal_sup == undefined) var price_decimal_sup = 0;
if (typeof google_analytics == undefined) var google_analytics = 0;
if (typeof google_ads == undefined) var google_ads = 0;
if (typeof google_consent == undefined) var google_consent = 0;
if (typeof facebook_pixel == undefined) var facebook_pixel = 0;

var marketing_settings={
    width: 660,
    height: "content",
    offsetHeight: -80,
    contentId:"page_marketing_content",
    popupId:"marketing",
    modal:0.6,
    overflow: "scroll"
}

/////////////////////////////////////////////////////////////////////
//popup
var allow_shop_popup=true;
var popup_open = false;

(function($) {
    var ajax = null;
    var popup_id = null;

    $.shop_popup = function(method,options) {
        if (method=="open") {
            var settings = $.extend({
                ajax_url: null,
                ajax_data: null,
                ajax_loader: true,
                iframe_url: null,
                width: null,
                height: null,
                minWidth: null,
                minHeight: null,
                offsetWidth: null,
                offsetHeight: null,
                offsetMaxWidth: -70,
                offsetMinHeight: -70,
                top: null,
                left: null,
                overflow: "hidden",
                close: true,
                closeEsc: (config_plus['overlay_close_on_esc_forced'] === 1 ? true : null),
                closeClick: (config_plus['overlay_close_on_click_forced'] === 1 ? true : null),
                modal:0,
                id:"PopupContainer",
                class:"",
                contentId:null,
                popupId:'common',
                onEmpty:null,
                onLoad:null,
                onForbidden:null,
                onClose:null
            }, options);

            if (allow_shop_popup==false) {
                if($.isFunction(settings.onForbidden)) settings.onForbidden.apply();
                return;
            }

            /////////////////////////////////////////////
            ////setting
            popup_id=settings.id;

            if ($('#page_'+settings.id).length==0) {
                if (unas_design_ver>=3) {
                    var container = $('<div id="page_'+settings.id+'" class="'+settings.class+'" style="z-index:10000;"><div id="page_'+settings.id+'_inner"></div></div>');
                } else {
                    var container = $('<div id="page_'+settings.id+'" class="bg_color_dark3 '+settings.class+'" style="z-index:10000;"><div id="page_'+settings.id+'_inner" class="bg_color_light2"></div></div>');
                }
                $('body').append(container);

                $("#page_"+settings.id).overlay({
                    load: false
                });
            } else {
                if (unas_design_ver<3) {
                    $('#page_'+settings.id).attr("class","bg_color_dark3");
                } else {
                    $('#page_'+settings.id).attr("class","");
                }
                if (settings.class!="") $('#page_'+settings.id).addClass(settings.class);
            }

            $('#page_'+settings.id).css("display","none");
            if (settings.ajax_url!=null) $('#page_'+settings.id+'_inner').html('<div id="page_'+settings.id+'_ajax"></div>');

            if (settings.overflow!="" && settings.overflow!=null) $('#page_'+settings.id+'_inner').css("overflow",settings.overflow);

            /////////////////////////////////////////////
            ////content
            if (settings.ajax_url!=null && settings.ajax_url!='no') {
                if (ajax) {
                    ajax.abort();
                    ajax = null;
                }

                ajax = $.ajax({
                    type: 'GET',
                    url: settings.ajax_url,
                    data: settings.ajax_data,
                    success: function(data) {
                        $('#page_'+settings.id+'_inner').html(data);
                        if(typeof input_checkbox_alter !== 'undefined' && $.isFunction(input_checkbox_alter)) input_checkbox_alter();
                        if (settings.ajax_loader==false) {
                            if (data!="") {
                                $.shop_popup("load",settings);
                                if (settings.width=="content" || settings.height=="content") {
                                    $.shop_popup("size",settings);
                                }
                                if ( parseInt(unas_base_design_code) >= 2500 ) {
                                    $('#page_'+settings.id).css("display","flex");
                                } else {
                                    $('#page_'+settings.id).css("display","block");
                                }
                            } else {
                                if($.isFunction(settings.onClose)) settings.onClose.apply();

                                popup_open=false;
                                popupCloseTrigger(popup_id, "empty");
                                if($.isFunction(settings.onEmpty)) settings.onEmpty.apply();
                            }
                        } else {
                            if (settings.width=="content" || settings.height=="content") {
                                $.shop_popup("size",settings);
                            }
                            if ( parseInt(unas_base_design_code) >= 2500 ) {
                                $('#page_'+settings.id).css("display","flex");
                            } else {
                                $('#page_'+settings.id).css("display","block");
                            }
                        }

                        var temp_popup_array = {};
                        temp_popup_array['popupId']=settings['popupId'];
                        $(document).trigger("popupContentLoaded", temp_popup_array);

                        popup_open=true;
                    }
                });
            } else if (settings.iframe_url!=null) {
                if (unas_design_ver>=3) {
                    $('#page_'+settings.id+'_inner').html('<iframe style="position:relative;" src="'+settings.iframe_url+'" id="page_'+settings.id+'_iframe" width="'+(settings.width-10)+'" height="'+(settings.height-10)+'" frameborder="0" marginwidth="0" marginheight="0" allowtransparency="true"></iframe>');
                } else {
                    $('#page_'+settings.id+'_inner').html('<iframe style="position:relative; top:-10px; left:-10px;" src="'+settings.iframe_url+'" id="page_'+settings.id+'_iframe" width="'+(settings.width-10)+'" height="'+(settings.height-10)+'" frameborder="0" marginwidth="0" marginheight="0" allowtransparency="true"></iframe>');
                }
            }

            if (settings.ajax_url!='no' && $('#page_'+settings.id).css("display")!="none") {
                //$('body').css("overflow","hidden");
            }
            if(typeof input_checkbox_alter !== 'undefined' && $.isFunction(input_checkbox_alter)) input_checkbox_alter();

            if (settings.ajax_loader==true || settings.ajax_url==null) {
                /////////////////////////////////////////////
                ////size
                var temp_settings_width=settings.width;
                var temp_settings_height=settings.height;
                if (settings.width=="content") settings.width=300;
                if (settings.height=="content") settings.height=300;
                $.shop_popup("size",settings);
                settings.width=temp_settings_width;
                settings.height=temp_settings_height;

                /////////////////////////////////////////////
                ////load
                $.shop_popup("load",settings);
            }
        }

        if (method=="load") {
            var settings = $.extend({
                ajax_url: null,
                ajax_data: null,
                ajax_loader: true,
                iframe_url: null,
                width: null,
                height: null,
                minWidth: null,
                minHeight: null,
                offsetWidth: null,
                offsetHeight: null,
                offsetMaxWidth: -70,
                offsetMinHeight: -70,
                top: null,
                left: null,
                overflow: "hidden",
                close: true,
                closeEsc: (config_plus['overlay_close_on_esc_forced'] === 1 ? true : null),
                closeClick: (config_plus['overlay_close_on_click_forced'] === 1 ? true : null),
                modal:0,
                id:"PopupContainer",
                contentId:null,
                popupId:'common',
                onLoad:null,
                onForbidden:null,
                onClose:null
            }, options);

            if (unas_design_ver>=3) {
                settings.width=null;
                settings.height=null;
                settings.offsetWidth=null;
                settings.offsetHeight=null;
            }

            /////////////////////////////////////////////
            /////close
            if (settings.closeEsc==null) settings.closeEsc=settings.close;
            if (settings.closeClick==null) settings.closeClick=settings.close;

            /////////////////////////////////////////////
            ////load
            if (settings.modal!=0) {
                $(document).mask({
                    color: '#000000',
                    loadSpeed: 100,
                    maskId: settings.exposeMaskID,
                    opacity: settings.modal,
                    closeOnEsc:settings.closeEsc,
                    closeOnClick:settings.closeClick,
                    onBeforeClose: function(event) { /* maskra kattintva overlay bezarasa  */
                        $('#page_'+settings.id).overlay().close();
                        if($.isFunction(settings.onClose)) settings.onClose.apply();
                        $('body').css("overflow","");

                        popup_open=false;
                        popupCloseTrigger(popup_id,"mask");
                    }
                });
            } else if (settings.closeClick) {
                $(document).click(function(e) {
                    if( e.target.id !== 'page_'+settings.id && !$('#page_'+settings.id).has(e.target).length) {
                        $('#page_'+settings.id).overlay().close();
                        $('#page_'+settings.id).css("display","none");
                        $('body').css("overflow","");
                    }
                });
            }

            $('#page_'+settings.id).overlay().getConf().closeOnEsc=settings.closeEsc;
            $('#page_'+settings.id).overlay().getConf().closeOnClick=settings.closeClick;

            $('#page_'+settings.id).overlay().load();

            //$('#page_'+settings.id).css("left",Math.ceil(($(window).width()-$('#page_'+settings.id).width()) / 2)+"px");
            $('#page_'+settings.id).css("left","50%");
            $('#page_'+settings.id).css("top","50%");
            $('#page_'+settings.id).css("transform","translate(-50%,-50%)");

            var temp_popup_array = {};
            temp_popup_array['popupId']=settings['popupId'];
            $(document).trigger("popupOpen", temp_popup_array);
        }

        if (method=="size") {
            var size_settings = $.extend({
                ajax_url: null,
                ajax_data: null,
                ajax_loader: true,
                iframe_url: null,
                width: null,
                height: null,
                minWidth: null,
                minHeight: null,
                offsetWidth: null,
                offsetHeight: null,
                offsetMaxWidth: -70,
                offsetMinHeight: -70,
                top: null,
                left: null,
                overflow: "hidden",
                close: true,
                modal:0,
                id:"PopupContainer",
                contentId:null,
                popupId:'common'
            }, options);

            if (unas_design_ver>=3) {
                size_settings.width=null;
                size_settings.height=null;
                size_settings.offsetWidth=null;
                size_settings.offsetHeight=null;
            }

            if (size_settings.width=="max" || size_settings.height=="max" || size_settings.width=="content" || size_settings.height=="content") {
                var maxWidth = 0, maxHeight = 0;
                if( typeof( window.innerWidth ) == 'number' ) {
                    //Non-IE
                    maxWidth = window.innerWidth;
                    maxHeight = window.innerHeight;
                } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
                    //IE 6+ in 'standards compliant mode'
                    maxWidth = document.documentElement.clientWidth;
                    maxHeight = document.documentElement.clientHeight;
                } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
                    //IE 4 compatible
                    maxWidth = document.body.clientWidth;
                    maxHeight = document.body.clientHeight;
                }
                maxWidth=maxWidth+size_settings.offsetMaxWidth;
                maxHeight=maxHeight+size_settings.offsetMinHeight;
            }
            if (size_settings.width=="max") size_settings.width=maxWidth;
            if (size_settings.height=="max") size_settings.height=maxHeight;

            //content
            if (size_settings.width=="content" || size_settings.height=="content") {
                if (size_settings.contentId==null) size_settings.contentId='page_'+size_settings.id+'_content';
            }
            if (size_settings.width=="content") {
                if (size_settings.offsetWidth==null) size_settings.offsetWidth=0;
                size_settings.width=Math.round(($('#'+size_settings.contentId).width()+49+size_settings.offsetWidth)/2)*2;
                if (size_settings.width>maxWidth) size_settings.width=maxWidth;
            }
            if (size_settings.height=="content") {
                if (size_settings.offsetHeight==null) size_settings.offsetHeight=0;
                size_settings.height=Math.round(($('#'+size_settings.contentId).height()+129+size_settings.offsetHeight)/2)*2;
                if (size_settings.height>maxHeight) size_settings.height=maxHeight;
            }

            //min
            if (size_settings.minWidth!=null && size_settings.width!=null) {
                if (size_settings.width<size_settings.minWidth) size_settings.width=size_settings.minWidth;
            }
            if (size_settings.minHeight!=null && size_settings.height!=null) {
                if (size_settings.height<size_settings.minHeight) size_settings.height=size_settings.minHeight;
            }

            //set
            if (size_settings.width!=null) {
                $('#page_'+size_settings.id).css("width",size_settings.width+"px");
                $('#page_'+size_settings.id+'_inner').css("width",(size_settings.width-30)+"px");
                if (size_settings.ajax_url!=null) $('#page_'+size_settings.id+'_ajax').css("width",(size_settings.width-50)+"px");
            }
            if (size_settings.height!=null) {
                $('#page_'+size_settings.id).css("height",size_settings.height);
                $('#page_'+size_settings.id+'_inner').css("height",(size_settings.height-30)+"px");
                if (size_settings.ajax_url!=null) $('#page_'+size_settings.id+'_ajax').css("height",(size_settings.height-50)+"px");
            }

            if (size_settings.left==null) {
                //$('#page_'+size_settings.id).css("left",Math.ceil(($(window).width()-$('#page_'+size_settings.id).width()) / 2)+"px");
                $('#page_'+size_settings.id).css("left","50%");
                $('#page_'+size_settings.id).css("transform","translateX(-50%)");
            } else {
                $('#page_'+size_settings.id).css("left",size_settings.left+"px");
                $('#page_'+size_settings.id).css("transform","");
            }
            if (size_settings.top==null) {
                //$('#page_'+size_settings.id).css("top",Math.ceil(($(window).height()-$('#page_'+size_settings.id).height()) / 2)+"px");
                $('#page_'+size_settings.id).css("top","50%");
                if (size_settings.left==null) {
                    $('#page_'+size_settings.id).css("transform","translate(-50%,-50%)");
                } else {
                    $('#page_'+size_settings.id).css("transform","translateY(-50%)");
                }
            } else {
                $('#page_'+size_settings.id).css("top",size_settings.top+"px");
                if (size_settings.left!=null) $('#page_'+size_settings.id).css("transform","");
            }

            if($.isFunction(size_settings.onLoad)) size_settings.onLoad.apply();
        }

        if (method=="close") {
            $('#page_'+popup_id).overlay().close();
            $('#page_'+popup_id).css("display","none");
            $.mask.close();
            $('body').css("overflow","");

            popup_open=false;

            popupCloseTrigger(popup_id,"close");
        }

        /* intelligens ajanlat bezarasa gombbal */
        $("[id^='page_PopupContainer'] .close").click(function(){
            $('#page_'+popup_id).overlay().close();
            $('#page_'+popup_id).css("display","none");
            $.mask.close();
            $('body').css("overflow","");

            popup_open=false;
            popupCloseTrigger(popup_id, "exitpopup");
        });
    }
})(jQuery);

$(document).ready(function () {
    if (UNAS.design!=undefined && UNAS.design.page!="") {
        $(document).trigger("loadPage", {page:UNAS.design.page});
    }
});

function popupCloseTrigger(popup_id, close_reason) {
    var temp_popup_array = {};
    temp_popup_array['popupId']=popup_id;
    temp_popup_array['reason']=close_reason;
    $(document).trigger("popupClosed", temp_popup_array);
}

function number_format( number, decimals, dec_point, thousands_sep ) {
    var n = number, prec = decimals;
    n = !isFinite(+n) ? 0 : +n;
    prec = !isFinite(+prec) ? 0 : Math.abs(prec);
    var sep = (typeof thousands_sep == "undefined") ? ',' : thousands_sep;
    var dec = (typeof dec_point == "undefined") ? '.' : dec_point;

    var s = (prec > 0) ? n.toFixed(prec) : Math.round(n).toFixed(prec); //fix for IE parseFloat(0.55).toFixed(0) = 0;

    var abs = Math.abs(n).toFixed(prec);
    var _, i;

    if (abs >= 1000) {
        _ = abs.split(/\D/);
        i = _[0].length % 3 || 3;

        _[0] = s.slice(0,i + (n < 0)) +
            _[0].slice(i).replace(/(\d{3})/g, sep+'$1');
        s = _.join(dec);
    } else {
        s = s.replace('.', dec);
    }

    if (price_decimal_sup==1) price_nullcut_disable=1;
    if (decimals>0 && price_nullcut_disable!=1) s=s.replace(/0*$/, '');

    if (price_decimal_sup==1) {
        if (s.indexOf(dec_point)) {
            s=s.replace(dec_point,'<sup>')+'</sup>';
        }
    }

    if (s[s.length-1]==dec) s=s.substr(0,s.length-1);

    return s;
}

function unas_number_format( number, decimals, dec_point, thousands_sep ) {
    var n = number, prec = decimals;
    n = !isFinite(+n) ? 0 : +n;
    prec = !isFinite(+prec) ? 0 : Math.abs(prec);
    var sep = (typeof thousands_sep == "undefined") ? ',' : thousands_sep;
    var dec = (typeof dec_point == "undefined") ? '.' : dec_point;

    var s = (prec > 0) ? n.toFixed(prec) : Math.round(n).toFixed(prec); //fix for IE parseFloat(0.55).toFixed(0) = 0;

    var abs = Math.abs(n).toFixed(prec);
    var _, i;

    if (abs >= 1000) {
        _ = abs.split(/\D/);
        i = _[0].length % 3 || 3;

        _[0] = s.slice(0,i + (n < 0)) +
            _[0].slice(i).replace(/(\d{3})/g, sep+'$1');
        s = _.join(dec);
    } else {
        s = s.replace('.', dec);
    }

    if (price_decimal_sup==1) price_nullcut_disable=1;
    if (decimals>0 && price_nullcut_disable!=1) s=s.replace(/0*$/, '');

    if (price_decimal_sup==1) {
        if (s.indexOf(dec_point)) {
            s=s.replace(dec_point,'<sup>')+'</sup>';
        }
    }

    if (s[s.length-1]==dec) s=s.substr(0,s.length-1);

    return s;
}

/*** VARIANTS ***/
function select_base_price(cikk,artdet) {
    egyeb_ar1_netto[cikk]=new Array();
    egyeb_ar1_brutto[cikk]=new Array();
    egyeb_ar2_netto[cikk]=new Array();
    egyeb_ar2_brutto[cikk]=new Array();
    egyeb_ar3_netto[cikk]=new Array();
    egyeb_ar3_brutto[cikk]=new Array();
    egyeb_ar1_orig_netto[cikk]=new Array();
    egyeb_ar1_orig_brutto[cikk]=new Array();
    egyeb_ar2_orig_netto[cikk]=new Array();
    egyeb_ar2_orig_brutto[cikk]=new Array();
    egyeb_ar3_orig_netto[cikk]=new Array();
    egyeb_ar3_orig_brutto[cikk]=new Array();

    if (money_thousend=="") money_thousend=" ";
    if (money_dec=="") money_dec=",";

    if (money_thousend==".") {
        var re_thousend = /\./g;
    } else {
        var re_thousend = new RegExp(money_thousend, "g");
    }
    if (money_dec==".") {
        var re_dec = new RegExp("---unas---", "g");
    } else {
        var re_dec = new RegExp(money_dec, "g");
    }

    if ($(".price_shop_netto_"+cikk).length > 0 ) price_shop_netto[cikk]=parseFloat($(".price_shop_netto_"+cikk).html().replace(re_thousend,'').replace(re_dec,'.'));
    if ($(".price_shop_brutto_"+cikk).length > 0 ) price_shop_brutto[cikk]=parseFloat($(".price_shop_brutto_"+cikk).html().replace(re_thousend,'').replace(re_dec,'.'));
    if ($(".price_net_netto_"+cikk).length > 0 ) price_net_netto[cikk]=parseFloat($(".price_net_netto_"+cikk).html().replace(re_thousend,'').replace(re_dec,'.'));
    if ($(".price_net_brutto_"+cikk).length > 0 ) price_net_brutto[cikk]=parseFloat($(".price_net_brutto_"+cikk).html().replace(re_thousend,'').replace(re_dec,'.'));
    if ($(".price_net_afa_"+cikk).length > 0 ) price_net_afa[cikk]=parseFloat($(".price_net_afa_"+cikk).html().replace(re_thousend,'').replace(re_dec,'.'));
    if ($(".price_akcio_netto_"+cikk).length > 0 ) price_akcio_netto[cikk]=parseFloat($(".price_akcio_netto_"+cikk).html().replace(re_thousend,'').replace(re_dec,'.'));
    if ($(".price_akcio_brutto_"+cikk).length > 0 ) price_akcio_brutto[cikk]=parseFloat($(".price_akcio_brutto_"+cikk).html().replace(re_thousend,'').replace(re_dec,'.'));
    if ($(".price_akcio_afa_"+cikk).length > 0 ) price_akcio_afa[cikk]=parseFloat($(".price_akcio_afa_"+cikk).html().replace(re_thousend,'').replace(re_dec,'.'));

    if ($("#price_unit_div_"+cikk).length > 0 ) price_unit_div[cikk]=parseFloat($("#price_unit_div_"+cikk).html().replace(re_thousend,'').replace(re_dec,'.'));
    price_unit_brutto[cikk]=price_shop_brutto[cikk];
    price_unit_netto[cikk]=price_shop_netto[cikk];
    if (price_net_brutto[cikk]>0) {
        price_unit_brutto[cikk]=price_net_brutto[cikk];
        price_unit_netto[cikk]=price_net_netto[cikk];
    }
    if (price_akcio_brutto[cikk]>0) {
        price_unit_brutto[cikk]=price_akcio_brutto[cikk];
        price_unit_netto[cikk]=price_akcio_netto[cikk];
    }

    if (artdet==1) {
        do {
            kedv_num=kedv_num+1;
            if ($("#price_kedv_" + cikk + "_" +kedv_num).length > 0 || $("#price_kedv_netto_" + cikk + "_" +kedv_num).length > 0) {
                if ($("#price_kedv_" + cikk + "_" +kedv_num).length > 0) price_kedv[kedv_num]=parseFloat($("#price_kedv_" + cikk + "_" +kedv_num).html().replace(re_thousend,'').replace(re_dec,'.'));
                if ($("#price_kedv_netto_" + cikk + "_" +kedv_num).length > 0) price_kedv_netto[kedv_num]=parseFloat($("#price_kedv_netto_" + cikk + "_" +kedv_num).html().replace(re_thousend,'').replace(re_dec,'.'));
            } else {
                kedv_num=kedv_num-1;
                break;
            }
        } while(true);
        page_artdet=1;
    } else {
        page_artdet=0;
    }
}

function change_price(cikk,orig,type,result,value) {
    //alert(result.indexOf("_net_"));
    if (result.indexOf("_net_")!=-1) {
        if (type=='netto') {
            temp_ar1=egyeb_ar1_orig_netto[cikk];
            temp_ar2=egyeb_ar2_orig_netto[cikk];
            temp_ar3=egyeb_ar3_orig_netto[cikk];
        } else if (type=='afa') {
            temp_ar1=new Array();
            egyeb_ar1_orig_brutto[cikk].forEach(function(item, index){
                temp_ar1[index]=egyeb_ar1_orig_brutto[cikk][index]-egyeb_ar1_orig_netto[cikk][index];
            });
            temp_ar2=new Array();
            egyeb_ar2_orig_brutto[cikk].forEach(function(item, index){
                temp_ar2[index]=egyeb_ar2_orig_brutto[cikk][index]-egyeb_ar2_orig_netto[cikk][index];
            });
            temp_ar3=new Array();
            egyeb_ar3_orig_brutto[cikk].forEach(function(item, index){
                temp_ar3[index]=egyeb_ar3_orig_brutto[cikk][index]-egyeb_ar3_orig_netto[cikk][index];
            });
        } else {
            temp_ar1=egyeb_ar1_orig_brutto[cikk];
            temp_ar2=egyeb_ar2_orig_brutto[cikk];
            temp_ar3=egyeb_ar3_orig_brutto[cikk];
        }
    } else {
        if (type=='netto') {
            temp_ar1=egyeb_ar1_netto[cikk];
            temp_ar2=egyeb_ar2_netto[cikk];
            temp_ar3=egyeb_ar3_netto[cikk];
        } else if (type=='afa') {
            temp_ar1=new Array();
            egyeb_ar1_brutto[cikk].forEach(function(item, index){
                temp_ar1[index]=egyeb_ar1_brutto[cikk][index]-egyeb_ar1_netto[cikk][index];
            });
            temp_ar2=new Array();
            egyeb_ar2_brutto[cikk].forEach(function(item, index){
                temp_ar2[index]=egyeb_ar2_brutto[cikk][index]-egyeb_ar2_netto[cikk][index];
            });
            temp_ar3=new Array();
            egyeb_ar3_brutto[cikk].forEach(function(item, index){
                temp_ar3[index]=egyeb_ar3_brutto[cikk][index]-egyeb_ar3_netto[cikk][index];
            });
        } else {
            temp_ar1=egyeb_ar1_brutto[cikk];
            temp_ar2=egyeb_ar2_brutto[cikk];
            temp_ar3=egyeb_ar3_brutto[cikk];
        }
    }

    var akt=orig;
    var percent2=(100-value)/100;
    if (jQuery.fn.jquery<'1.6.0') {
        if ($("#egyeb_list1_"+cikk).length > 0 ) akt=akt+(temp_ar1[$("#egyeb_list1_"+cikk).attr("selectedIndex")]*percent2);
        if ($("#egyeb_list2_"+cikk).length > 0 ) akt=akt+(temp_ar2[$("#egyeb_list2_"+cikk).attr("selectedIndex")]*percent2);
        if ($("#egyeb_list3_"+cikk).length > 0 ) akt=akt+(temp_ar3[$("#egyeb_list3_"+cikk).attr("selectedIndex")]*percent2);
    } else {
        if ($("#egyeb_list1_"+cikk).length > 0 ) akt=akt+(temp_ar1[$("#egyeb_list1_"+cikk).prop("selectedIndex")]*percent2);
        if ($("#egyeb_list2_"+cikk).length > 0 ) akt=akt+(temp_ar2[$("#egyeb_list2_"+cikk).prop("selectedIndex")]*percent2);
        if ($("#egyeb_list3_"+cikk).length > 0 ) akt=akt+(temp_ar3[$("#egyeb_list3_"+cikk).prop("selectedIndex")]*percent2);
    }
    if (type!='netto') {
        if (type=='unit_brutto' && price_unit_div[cikk]>0) akt=akt/price_unit_div[cikk];
        if (type=='unit_netto' && price_unit_div[cikk]>0) akt=akt/price_unit_div[cikk];
    }
    if (akt>0 || (typeof config_plus['variant_price_change_allow_null']!=='undefined' && akt>=0)) {
        var money_len_act=money_len;
        if ((type=="unit_netto" || type=="unit_brutto") && typeof unit_price_len !== "undefined") money_len_act=unit_price_len;

        $(result).html(unas_number_format(akt,money_len_act,money_dec,money_thousend));
        return akt;
    }
}

function change_egyeb(cikk, ajax = 0) {
    let temp_product_array = {};
    if ($(".price_shop_netto_"+cikk).length > 0 ) change_price(cikk,price_shop_netto[cikk],'netto','.price_shop_netto_'+cikk,0);
    if ($(".price_shop_brutto_"+cikk).length > 0 ) change_price(cikk,price_shop_brutto[cikk],'brutto','.price_shop_brutto_'+cikk,0);

    if ($(".price_net_netto_" + cikk).length > 0) {
        price_net_akt = change_price(cikk, price_net_netto[cikk], 'netto', '.price_net_netto_' + cikk, 0);
        temp_product_array['price_net'] = price_net_akt;
    }
    if ($(".price_net_brutto_" + cikk).length > 0) {
        price_net_akt = change_price(cikk, price_net_brutto[cikk], 'brutto', '.price_net_brutto_' + cikk, 0);
        temp_product_array['price_gross'] = price_net_akt;
    }
    if ($(".price_net_afa_" + cikk).length > 0) change_price(cikk, price_net_afa[cikk], 'afa', '.price_net_afa_' + cikk, 0);

    if ($(".price_akcio_netto_" + cikk).length > 0) {
        price_akcio_akt = change_price(cikk, price_akcio_netto[cikk], 'netto', '.price_akcio_netto_' + cikk, 0);
        temp_product_array['price_sale_net'] = price_akcio_akt;
    }
    if ($(".price_akcio_brutto_" + cikk).length > 0) {
        price_akcio_akt = change_price(cikk, price_akcio_brutto[cikk], 'brutto', '.price_akcio_brutto_' + cikk, 0);
        temp_product_array['price_sale_gross'] = price_akcio_akt;
    }
    if ($(".price_akcio_afa_"+cikk).length > 0 ) change_price(cikk,price_akcio_afa[cikk],'afa','.price_akcio_afa_'+cikk,0);

    if ($("#price_unit_brutto_"+cikk).length > 0 ) change_price(cikk,price_unit_brutto[cikk],'unit_brutto','#price_unit_brutto_'+cikk,0);
    if ($("#price_unit_netto_"+cikk).length > 0 ) change_price(cikk,price_unit_netto[cikk],'unit_netto','#price_unit_netto_'+cikk,0);

    for (i = 0; i <= kedv_num; i++) {
        if ($("#price_kedv_" + cikk + "_" + i).length > 0) change_price(cikk, price_kedv[i], 'brutto', '#price_kedv_' + cikk + "_" + i, percent_kedv[i]);
        if ($("#price_kedv_netto_" + cikk + "_" + i).length > 0) change_price(cikk, price_kedv_netto[i], 'netto', '#price_kedv_netto_' + cikk + "_" + i, percent_kedv[i]);
    }

    let price_save_badge_element = $("#price_save_"+cikk);
    let price_save_percent_element = $(".js-sale-percent-"+cikk);

    if ( price_akcio_akt>0 && price_net_akt>0 && (price_save_badge_element.length > 0 || price_save_percent_element.length > 0) ) {
        if (typeof config_plus['price_save_len']!=='undefined') {
            price_save_len=config_plus['price_save_len'];
        } else {
            price_save_len=0;
        }

        //price_save=100-Math.round(price_akcio_akt/price_net_akt*100);
        price_save=number_format(100-price_akcio_akt/price_net_akt*100, price_save_len,".","");
        if (price_save>0) {
            if ( (price_save_badge_element.length > 0 && price_save_badge_element.html().indexOf("%")!=-1) || (price_save_percent_element.length > 0 && price_save_percent_element.html().indexOf("%")!=-1) ) {
                price_save=price_save+"%";
            }
            price_save_badge_element.html(price_save);
            price_save_percent_element.html(price_save);
        }
    }

    //custom event call for retargeting.biz
    temp_product_array['sku'] = cikk;
    temp_product_array['ajax'] = ajax;

    if ($("#egyeb_list1_"+cikk).length > 0 ) {
        temp_product_array['variant_name1']=$("#egyeb_nev1_"+cikk).val();
        temp_product_array['variant_list1']=$("#egyeb_list1_"+cikk).val();

        var variant_gross1 = parseFloat($(`#egyeb_list1_${cikk} option:selected`).data("price-gross"));
        var variant_net1 = parseFloat($(`#egyeb_list1_${cikk} option:selected`).data("price-net"));

        temp_product_array['variant_price_gross1']=(isNaN(variant_gross1) ? 0 : variant_gross1);
        temp_product_array['variant_price_net1']=(isNaN(variant_net1) ? 0 : variant_net1);
    }

    if ($("#egyeb_list2_"+cikk).length > 0 ) {
        temp_product_array['variant_name2']=$("#egyeb_nev2_"+cikk).val();
        temp_product_array['variant_list2']=$("#egyeb_list2_"+cikk).val();

        var variant_gross2 = parseFloat($(`#egyeb_list2_${cikk} option:selected`).data("price-gross"));
        var variant_net2 = parseFloat($(`#egyeb_list2_${cikk} option:selected`).data("price-net"));

        temp_product_array['variant_price_gross2']=(isNaN(variant_gross2) ? 0 : variant_gross2);
        temp_product_array['variant_price_net2']=(isNaN(variant_net2) ? 0 : variant_net2);
    }

    if ($("#egyeb_list3_"+cikk).length > 0 ) {
        temp_product_array['variant_name3']=$("#egyeb_nev3_"+cikk).val();
        temp_product_array['variant_list3']=$("#egyeb_list3_"+cikk).val();

        var variant_gross3 = parseFloat($(`#egyeb_list3_${cikk} option:selected`).data("price-gross"));
        var variant_net3 = parseFloat($(`#egyeb_list3_${cikk} option:selected`).data("price-net"));

        temp_product_array['variant_price_gross3']=(isNaN(variant_gross3) ? 0 : variant_gross3);
        temp_product_array['variant_price_net3']=(isNaN(variant_net3) ? 0 : variant_net3);
    }

    $(document).trigger("changeVariant", temp_product_array);
}

function select_get(select_num,cikk,prefix) {
    temp_egyeb1="!!!unas-no-data!!!";
    temp_egyeb2="!!!unas-no-data!!!";
    temp_egyeb3="!!!unas-no-data!!!";

    if ($("#egyeb_list1_"+cikk).length > 0 ) temp_egyeb1=$("#egyeb_list1_"+cikk).val();
    if ($("#egyeb_list2_"+cikk).length > 0 ) temp_egyeb2=$("#egyeb_list2_"+cikk).val();
    if ($("#egyeb_list3_"+cikk).length > 0 ) temp_egyeb3=$("#egyeb_list3_"+cikk).val();

    if ((select_num==1 && $("#egyeb_list2_"+cikk).length > 0 ) || (select_num==2 && $("#egyeb_list3_"+cikk).length > 0 )) {
        $.ajax({
            type: "GET",
            async: true,
            dataType: 'json',
            url: shop_url_main+'/shop_artdet.php',
            data: {
                action:"select_get",
                cikk:cikk,
                list1:temp_egyeb1,
                list2:temp_egyeb2,
                list3:temp_egyeb3,
                select_num:select_num,
                prefix:prefix
            },
            success: function(result) {
                if (select_num==1 && $("#egyeb_list2_"+cikk).length > 0 ) {
                    $("#egyeb_list2_"+cikk+" option").each(function(){
                        if (result.select2_enable.includes($(this).val())) {
                            $(this).prop("disabled",false);
                            $(this).css("display","block");
                        }
                        if (result.select2_disable.includes($(this).val())) {
                            $(this).prop("disabled",true);
                            $(this).css("display","none");
                        }
                    });

                    if ($("#egyeb_list2_"+cikk+" option:selected").attr("value")!="") $("#egyeb_list2_"+cikk).val(result.list2);
                }
                if ((select_num==1 || select_num==2) && $("#egyeb_list3_"+cikk).length > 0 ) {
                    $("#egyeb_list3_"+cikk+" option").each(function(){
                        if (result.select3_enable.includes($(this).val())) {
                            $(this).prop("disabled",false);
                            $(this).css("display","block");
                        }
                        if (result.select3_disable.includes($(this).val())) {
                            $(this).prop("disabled",true);
                            $(this).css("display","none");
                        }
                    });

                    if ($("#egyeb_list3_"+cikk+" option:selected").attr("value")!="") $("#egyeb_list3_"+cikk).val(result.list3);
                }
                change_egyeb(cikk, 1);

                if (unas_design_ver>=3) {
                    $('.select-styled-variants').each(function(){
                        var $temp_variant_items=$(this);
                        $(this).find("option").each(function(){
                            if ($(this).prop("disabled")==true) {
                                $temp_variant_items.find("li[rel='"+$(this).attr("value")+"']").css("display","none");
                            } else {
                                $temp_variant_items.find("li[rel='"+$(this).attr("value")+"']").css("display","block");
                            }
                        });
                        $temp_variant_items.find(".select-styled").html($temp_variant_items.find("select option:checked").text());
                    });
                }
            }
        });
    }
}

/*** TOOLTIP + PRODUCT TYPE ***/
function product_type_get() {
    if (arguments[0] === 'trigger') $(document).trigger('ajaxProductTooltipLoading');
    let product_type_select_data=new Object();
    product_type_select_data['action']="get_product_type";
    product_type_select_data['get_type']=arguments[0];
    product_type_select_data['param_id']=new Array();
    product_type_select_data['param_value']=new Array();
    temp_num=-1;
    let selector = ".product_type_select";
    if (arguments[0] === 'trigger' && $(".product_type_select.tooltip").length > 0) selector = ".product_type_select.tooltip";
    $(selector).each(function() {
        temp_num++;
        product_type_select_data['param_id'][temp_num]=$(this).attr('data-param_id');
        if (product_type_select_data['param_id'][temp_num]==undefined) product_type_select_data['param_id'][temp_num]=$(this).attr('rel');
        product_type_select_data['param_value'][temp_num]=$(this).val();
    });
    $.ajax({
        type: "GET",
        dataType: "json",
        async: true,
        data: product_type_select_data,
        url: arguments[1],
        success: function(result){
            if (result.get_type=="trigger") {
                $(document).trigger("productTypeChange",result);
            }
            if (result.get_type=="location_href" && result.url!="") {
                location.href=result.url;
            }
        }
    });
}

function product_type_url() {
    product_type_get("location_href");
}

function product_type_mod(param_id,new_value) {
    $("#param_type_"+param_id).val(new_value);
    $("#tooltip_param_type_"+param_id).val(new_value);
    product_type_get(arguments[2],arguments[3]);
    return false;
}

function product_type_none() {}

$(document).ready(function(){
    $(".product_type_select").change(function() {
        product_type_url();
    });
    $(".page_artdet_product_type_element a").attr("href","javascript:product_type_none();");
});

function ajaxProductTooltip(sku,target){
    $.ajax({
        type: "GET",
        url: shop_url_main + "/shop_artdet.php",
        data: "ajax_tooltip=1&get_ajax=1&ajax_nodesign=1&cikk=" + sku + '&change_lang=' + actual_lang,
        beforeSend: function(){
            $(document).trigger('ajaxProductTooltipLoading');
        },
        success: function(result) {
            $(target).html(result);
            $(document).trigger('ajaxProductTooltipLoaded');
        }
    });
}

/*** OLD TOOLTIP ***/
$(document).ready(function(){
    if ($(".param_desc_popup[title]:not(.param_desc_popup_ver4)").length>0) {
        $(".param_desc_popup[title]:not(.param_desc_popup_ver4)").tooltip({tipClass: "param_desc_tooltip text_normal bg_color_light3 border_1"});
    }
});

/*** DEFER ***/
if (unas_design_ver>=3) {
    var script_defer="";
    $("script[type='text/javascript_defer']").each(function() {
        script_defer=script_defer+"\r\n"+$(this).html();
    });
    if (script_defer!="") eval(script_defer);
} else {
    $(document).ready(function(){
        $("script[type='text/javascript_defer']").each(function() {
            $(this).clone().attr("type","text/javascript").appendTo("body");
        });
    });
}

/*** CART ADD ***/
function cart_file_submit(random, sku_orig) {
    var fd = new FormData();
    $(".cust_input_file").each(function(){
        var $this = $(this);
        var add_to_sku_only = $this.attr("data-add-to-sku-only");
        var file_data = $this[0].files[0];

        if (file_data !== undefined) {
            if ( add_to_sku_only !== undefined && add_to_sku_only !== false ) { /* param has add_to_sku_only attribute */
                if (add_to_sku_only === sku_orig) { /* attribute value is equal with actual product sku which added to cart, so add parameter ONLY to this product! */
                    $this.addClass("cust_input_file_uploading");
                    fd.append($this.attr("id"), file_data);
                }
            } else { /* DEFAULT behavior, param has no attribute */
                $this.addClass("cust_input_file_uploading");
                fd.append($this.attr("id"), file_data);
            }
        }
    });
    fd.append("action", "fileupload");
    fd.append("get_ajax", "1");
    fd.append("rnd_number", random);

    $.ajax({
        url: shop_url_main+"/shop_ajax/ajax_cart.php",
        type: "POST",
        async: false,
        data: fd,
        processData: false,
        contentType: false,
        cache: false,
        enctype: "multipart/form-data",
        complete: function(){
            $(".cust_input_file.cust_input_file_uploading").removeClass("cust_input_file_uploading").addClass('cust_input_file_uploaded');
        }
    });
    return false;
}

/*** OVERLAY ***/
var overlay_type="";
var overlay_title="";
var overlay_text="";
function overlay_load(type,title,text,params) {
    overlay_type=type;
    overlay_title=title;
    overlay_text=text;

    if (typeof params === "undefined") {
        params = {};
    }

    let overlay_id="script";
    if (params.custom === true) {
        overlay_ajax("custom", {"custom": true, "overlay_type": type});
        overlay_id=type;
        overlay_type = "custom";
    } else {
        overlay_ajax(overlay_id);
    }

    $(document).on("overlayAjaxLoaded",function(event, params) {
        if (params['id'] == overlay_id) {
            let overlay_el = $("#overlay_" + overlay_id);
            overlay_el.attr("class", "overlay_common overlay_" + overlay_type);

            if (overlay_title != '') $(".overlay_title", overlay_el).html(overlay_title).addClass('loaded');
            if (text != "") {
                $(".overlay_text", overlay_el).html(overlay_text).show();
            } else {
                $(".overlay_text", overlay_el).hide();
            }
            overlay_el.overlay().load();
        }
    });
}
function overlay_init(id,config) {
    var config_act = $.extend({
        top: 50,
        maskLoadSpeed: 200,
        maskOpacity: 0.7,
        closeOnClick: (config_plus['overlay_close_on_click_forced'] === 1),
        closeOnEsc: true,
        load: false,
        onBeforeLoad: true
    }, config);

    let overlay_el = $("#overlay_"+id);

    if ( overlay_el.length === 0 ) {
        if ($('#overlays').length === 0) {
            $('<div id="overlays"></div>').appendTo('body');
        }
        $('<div id="overlay_'+ id +'"></div>').appendTo('#overlays');
        overlay_el = $("#overlay_"+id);
    }

    overlay_el.overlay({
        onBeforeLoad: function() {
            if (config_act.onBeforeLoad==true && overlay_el.attr("data-content")!=1) {
                overlay_ajax(id);
            }
        },
        onLoad: function(){
            $(document).trigger("overlayOpen",{id:id});
        },
        onClose: function() {
            $(document).trigger("overlayClose",{id:id});
        },
        top: config_act.top,
        mask: {
            color: "#000000",
            loadSpeed: config_act.maskLoadSpeed,
            maskId: "exposeMaskOverlay",
            opacity: config_act.maskOpacity
        },
        closeOnClick: (id === "cookie_alert" ? false : (config_plus['overlay_close_on_click_forced'] === 1 ? true : config_act.closeOnClick)),
        closeOnEsc: (id === "cookie_alert" ? false : (config_plus['overlay_close_on_esc_forced'] === 1 ? true : config_act.closeOnEsc)),
        load: config_act.load
    });

    $(document).trigger("overlayInited",{id:id});
    overlay_el.attr("data-inited",1);
}
function overlay_ajax(id,params) {
    if (typeof params === "undefined") {
        params = [];
    }

    temp_data = {
        lang_master: actual_lang,
        overlay_id: id,
        layout_plus: UNAS.design.page,
        overlay_parameters: params,
        get_ajax: "1"
    }

    if (typeof config_plus['unas_design'] !== 'undefined') {
        temp_data['unas_design'] = config_plus['unas_design'];
    }

    if (service_type == "cms") {
        temp_data['home_id'] = home_id;
        temp_overlay_url = shop_url_main + "/ajax/ajax_overlay.php";
    } else {
        temp_data['shop_id'] = shop_id;
        temp_overlay_url = shop_url_main + "/shop_ajax/ajax_overlay.php";
    }

    if (params.custom === true) {
        id = params.overlay_type;;
    }

    let overlay_el = $("#overlay_"+id);

    if (overlay_el.attr("data-content")!=1) {
        overlay_el.attr("data-content",1);

        $.ajax({
            type: "GET",
            async: true,
            url: temp_overlay_url,
            data: temp_data,
            beforeSend:function(){
                overlay_el.addClass('overlay-loading');
            },
            success: function(data){
                if (data!="") overlay_el.html(data);
                overlay_el.removeClass('overlay-loading').addClass('overlay-loaded');
                $(document).trigger("overlayAjaxLoaded",{id:id,params:params});
            }
        });
    } else {
        $(document).trigger("overlayAjaxLoaded",{id:id,params:params});
    }
}
function overlay_close(id) {
    $(document).ready(function(){
        $("#"+id).overlay().close();
        $(document).trigger("overlayClosed",id);
    });
}

/*** COOKIE ***/
function cookie_alert_action(close,allow_marketing,allow_statistics,allow_personalization) {
    if (typeof allow_statistics === 'undefined') allow_statistics=allow_marketing;
    if (typeof allow_personalization === 'undefined') allow_personalization=allow_marketing;

    $(document).ready(function(){
        /// consent
        if (google_consent==1) {
            /// marketing
            if (allow_marketing==1) {
                gtag('consent', 'update', {
                    'ad_storage': 'granted',
                    'ad_user_data': 'granted',
                    'ad_personalization': 'granted'
                });
            } else {
                gtag('consent', 'update', {
                    'ad_storage': 'denied',
                    'ad_user_data': 'denied',
                    'ad_personalization': 'denied'
                });
            }

            /// statistics
            if (allow_statistics==1) {
                gtag('consent', 'update', {
                    'analytics_storage': 'granted'
                });
            } else {
                gtag('consent', 'update', {
                    'analytics_storage': 'denied'
                });
            }

            /// personalization
            if (allow_personalization==1) {
                gtag('consent', 'update', {
                    'functionality_storage': 'granted',
                    'personalization_storage': 'granted'

                });
            } else {
                gtag('consent', 'update', {
                    'functionality_storage': 'denied',
                    'personalization_storage': 'denied'
                });
            }
        }

        if (close==1) {
            if ($("#cookie_alert").length>0) {
                $("#cookie_alert").slideUp(300, function() {
                    $("#cookie_alert").addClass("cookie_alert_close");
                    $("#cookie_alert").slideDown(150);
                });
            }

            $(document).trigger("closeConsent",{});
            if (google_analytics==1) gtag("event", "cookie_consent_close", { });
        } else if (close==0) {
            if ($("#cookie_alert").length>0) {
                $("#cookie_alert").slideUp(150, function() {
                    $("#cookie_alert").removeClass("cookie_alert_close");
                    $("#cookie_alert").slideDown(300);
                });
            }

            $(document).trigger("openConsent",{});
            if (google_analytics==1) gtag("event", "cookie_consent_open", { });
        }

        /// allow
        if (allow_marketing==1 && allow_statistics==1 && allow_personalization==1) {
            if ($("#cookie_alert").length>0) $("#cookie_alert").addClass("cookie_alert_allow");

            $(document).trigger("grantConsent",{});
            if (google_analytics==1) gtag("event", "cookie_consent_granted", { });
        } else {
            if ($("#cookie_alert").length>0) $("#cookie_alert").removeClass("cookie_alert_allow");

            $(document).trigger("rejectConsent",{});
            if (google_analytics==1) gtag("event", "cookie_consent_denied", { });
        }

        /// save
        $.ajax({
            type: "GET",
            url: shop_url_main+"/shop_ajax/ajax_cookie_alert.php",
            data: {
                service_type:service_type,
                close:close,
                allow_marketing:allow_marketing,
                allow_statistics:allow_statistics,
                allow_personalization:allow_personalization,
                get_ajax:"1"
            },
            success: function(){
                $(document).trigger("consentSaved",{});
            }
        });
    });
}

function cookie_alert_overlay() {
    if (!$.mask.isLoaded()) {
        $("#overlay_cookie_alert").overlay().load();
        $('#overlay_cookie_alert').removeClass('cookie-alert-closed');
    } else {
        $('#overlay_cookie_alert').addClass('cookie-alert-closed');
        setTimeout(function () {
            cookie_alert_overlay();
        }, 1000);
    }
}

/*** SET FRONTVAR ***/
function set_front_var(key,value,type) {
    set_front_var_ajax_url=UNAS.shop.base_url+"/shop_ajax/ajax_set_front_var.php";
    if (service_type=="cms") set_front_var_ajax_url=UNAS.shop.base_url+"/ajax/ajax_set_front_var.php";

    $.ajax({
        type: "GET",
        async: true,
        url:set_front_var_ajax_url,
        data: {
            get_ajax:1,
            key:key,
            value:value,
            type:type
        }
    });
}

/*** QTY INPUT ***/
function qty_plus_minus(temp_this,plus_minus) {
    //init
    if (money_dec=="") money_dec=",";
    if (money_dec==".") {
        var re_dec = new RegExp("---unas---", "g");
    } else {
        var re_dec = new RegExp(money_dec, "g");
    }

    //vals
    var temp_input=temp_this.closest(".page_qty_input_outer").find(".page_qty_input");
    var temp_qty_min = parseFloat(temp_input.attr('data-min'));
    var temp_qty_max = parseFloat(temp_input.attr('data-max'));
    var temp_qty_step = parseFloat(temp_input.attr('data-step'));
    var temp_qty_act = parseFloat(String(temp_input.val()).replace(re_dec,'.'));
    var temp_qty_val_change = 0;
    var temp_qty_test = 0;
    var temp_qty_act_temp = 0;

    //action
    if (plus_minus=='plus') {
        temp_qty_test = Math.round((temp_qty_act + temp_qty_step)*100000)/100000;
        if (!isNaN(temp_qty_act) && temp_qty_test <= temp_qty_max) {
            temp_qty_act = temp_qty_test;
            temp_qty_val_change=1;
        }
    }
    if (plus_minus=='minus') {
        temp_qty_test = Math.round((temp_qty_act-temp_qty_step)*100000)/100000;
        if (!isNaN(temp_qty_act) && temp_qty_test >= temp_qty_min) {
            temp_qty_act = temp_qty_test;
            temp_qty_val_change=1;
        }
    }

    //validation
    if (!isNaN(temp_qty_act) && temp_qty_act > temp_qty_max) {
        temp_qty_act = temp_qty_max;
        temp_qty_val_change=1;
    }
    if (!isNaN(temp_qty_act) && temp_qty_act < temp_qty_min) {
        temp_qty_act = temp_qty_min;
        temp_qty_val_change=1;
    }

    temp_qty_act_temp = Math.round((temp_qty_act-temp_qty_min)/temp_qty_step)*temp_qty_step+temp_qty_min;
    temp_qty_act_temp = Math.round(temp_qty_act_temp*100000)/100000;
    if (temp_qty_act_temp>temp_qty_max) {
        temp_qty_act_temp = Math.floor((temp_qty_act-temp_qty_min)/temp_qty_step)*temp_qty_step+temp_qty_min;
        temp_qty_act_temp = Math.round(temp_qty_act_temp*100000)/100000;
    }
    if (temp_qty_act_temp!=temp_qty_act) {
        temp_qty_act=temp_qty_act_temp;
        temp_qty_val_change=1;
    }
    if (isNaN(temp_qty_act)) temp_qty_act=temp_input.prop("defaultValue");

    //disable
    if (!isNaN(temp_qty_act) && Math.round((temp_qty_act + temp_qty_step)*100000)/100000 > temp_qty_max) {
        temp_this.closest(".page_qty_input_outer").find(".qtyplus_common").addClass("qty_disable");
    } else {
        temp_this.closest(".page_qty_input_outer").find(".qtyplus_common").removeClass("qty_disable");
    }
    if (!isNaN(temp_qty_act) && Math.round((temp_qty_act - temp_qty_step)*100000)/100000 < temp_qty_min) {
        temp_this.closest(".page_qty_input_outer").find(".qtyminus_common").addClass("qty_disable");
    } else {
        temp_this.closest(".page_qty_input_outer").find(".qtyminus_common").removeClass("qty_disable");
    }

    //return
    if (temp_qty_val_change==1 && !isNaN(temp_qty_act)) {
        if (temp_input.attr("type")=="number") {
            temp_input.val(temp_qty_act).trigger("change");
        } else {
            temp_input.val(String(temp_qty_act).replace('.', money_dec)).trigger("change");
        }

        temp_input.trigger("changeProductQty", { operation: plus_minus });
    }

    //global change event, +/- and typing
    temp_input.trigger("productQtyMod");
}

function multiplyPackageOfferItemQuantities(target, packageOfferQuantity) {
    const packageOfferID = $(target).attr("data-package-offer-id");
    const cartRoot = $(target).closest(".js-cart-root");
    const cartPackageOfferItemQuantities = cartRoot.find(`.js-cart-item-qty-value-${packageOfferID}`);

    cartPackageOfferItemQuantities.each(function (index, cartPackageOfferItemQuantity) {
        let packageOfferItemQuantityInput = $(cartPackageOfferItemQuantity);
        let packageOfferItemQuantity = parseFloat(packageOfferItemQuantityInput.attr("step"));
        let newPackageOfferItemQuantity = packageOfferItemQuantity * packageOfferQuantity;

        packageOfferItemQuantityInput.val(isNaN(newPackageOfferItemQuantity) ? packageOfferItemQuantity : newPackageOfferItemQuantity);
    });
}

$(document).ready(function(){
    if (unas_design_ver>=3) {
        var hovered_qty_input = null;
        $('body').on("focus", ".page_qty_input", function(e) {
            if ($(this).prop("readonly")!=true) hovered_qty_input = $(this);
        });
        $('body').on("blur", ".page_qty_input", function(e) {
            hovered_qty_input = null;
        });

        $('body').on("click", ".qtyplus_common", function () {
            qty_plus_minus($(this),'plus');
        });
        $('body').on("click", ".qtyminus_common", function () {
            qty_plus_minus($(this),'minus');
        });
        $('body').on("blur", ".page_qty_input", function () {
            qty_plus_minus($(this),'');
        });
        $('.page_qty_input').each(function () {
            qty_plus_minus($(this),'');
        });

        // (PACKAGE-OFFERS)
        $(document).on("changeProductQty", function (event, parameters) {
            multiplyPackageOfferItemQuantities(event.target, $(event.target).val());
        });

        let cartItemQuantityInput = $(".page_qty_input");

        cartItemQuantityInput.on("input change", function (event) {
            let { target } = event;
            let $target = $(target);
            let max = $target.attr("data-max");
            let value = parseFloat($target.val());

            if (value > max) {
                value = max;
                $target.val(max);
            }

            multiplyPackageOfferItemQuantities(target, value);
        });
    }
});

/*** PRODUCT STAT ***/
function get_product_sku(temp_object) {
    var temp_sku_return=temp_object.attr("data-sku");

    if (temp_sku_return=="") {
        var temp_sku = temp_object.attr("class").split(" ");
        temp_sku.forEach(function(temp_sku_val){
            if (temp_sku_val.indexOf("product_sku_")!=-1) {
                temp_sku_return=temp_sku_val.replace("product_sku_","");
            }
        });
    }

    return temp_sku_return;
}

function facebook_event(event,cart,event_id) {
    fbq('track', event, cart, event_id);
}

function analytics_get_cart_items(cart_data_items) {
    var analytics_items=[];
    cart_data_items.forEach((analytics_item) => {
        analytics_items.push({
            "item_id": analytics_item.sku,
            "item_name": analytics_item.name,
            "quantity": analytics_item.qty,
            "price": analytics_item.price_actual
        });
    });

    return analytics_items;
}

$(document).ready(function() {
    if (google_analytics==1) {
        $('.bxSlider a, .nivoSlider a, .js-element a, a.js-element').click(function () {
            var temp_promo_value=$(this).attr("href");
            gtag("event", "select_promotion", { 'creative_name':temp_promo_value, creative_slot:'element' });
        });
        $("a[href^='mailto:']").click(function(){
            gtag("event", "link_mailto", { 'href':$(this).attr("href").replace("mailto:","") });
        });
        $("a[href^='tel:']").click(function(){
            gtag("event", "link_tel", { 'href':$(this).attr("href").replace("tel:","") });
        });
        //VERIFY
        $(document).on("clickOrderButton", function(event,params){
            if (params.id=='initiate') {
                UNAS.getCart(function (data) {
                    gtag('event', "begin_checkout", {
                        "currency": UNAS.shop.currency_code,
                        "value": data.sum,
                        "items": analytics_get_cart_items(data.items)
                    });
                });
            }
            if (params.page=='mods' && params.direction!="back") {
                var analytics_payment_type=params.paymentMethod;
                var analytics_shipping_tier=params.shippingMethod;

                UNAS.getCart(function (data) {
                    var analytics_items=analytics_get_cart_items(data.items);

                    gtag('event', "add_payment_info", {
                        "currency": UNAS.shop.currency_code,
                        "value": data.sum,
                        "payment_type": analytics_payment_type,
                        "items": analytics_items
                    });
                    gtag('event', "add_shipping_info", {
                        "currency": UNAS.shop.currency_code,
                        "value": data.sum,
                        "shipping_tier": analytics_shipping_tier,
                        "items": analytics_items
                    });
                });
            }
        });
        $(document).on("emptyCart", function(event, params){
            gtag("event", "empty_cart", { });
        });
        $(document).on("removeFromCart", function(event, params){
            gtag('event', 'remove_from_cart', {
                "items": [
                    {
                        "item_id": params.sku
                    }
                ]
            });
        });
        $(document).on("addToCart", function(event, product_array){
            gtag('event', 'add_to_cart', {
                "currency": UNAS.shop.currency_code,
                "value": product_array.price*product_array.qty,
                "items": [
                    {
                        "item_id": product_array.sku,
                        "item_name": product_array.name,
                        "item_category": String(product_array.category).replace(/\|/g, "/"),
                        "quantity": product_array.qty,
                        "price": product_array.price
                    }
                ]
            });
        });
        $(document).on("addToFavourites", function(event, product_array){
            gtag('event', 'add_to_wishlist', {
                "currency": UNAS.shop.currency_code,
                "items": [
                    {
                        "item_id": product_array.sku
                    }
                ]
            });
        });
    }
    $('#container').on("click",".product_link_promo",function () {
        var temp_click_sku=get_product_sku($(this));
        $(document).trigger("clickProduct", {sku:temp_click_sku,type:'promo'});
        if (google_analytics==1 && temp_click_sku != "") {
            gtag('event', 'select_promotion', {
                'creative_name': temp_click_sku,
                'creative_slot': 'product',
                "items": [
                    {
                        "item_id": temp_click_sku,
                    }
                ]
            });
        }
    });
    $('#container').on("click",".product_link_normal",function () {
        var temp_click_sku=get_product_sku($(this));
        $(document).trigger("clickProduct", {sku:temp_click_sku,type:'normal'});
        if (google_analytics==1 && temp_click_sku != "") {
            gtag('event', 'select_item', {
                "items": [
                    {
                        "item_id": temp_click_sku,
                    }
                ]
            });
        }
    });
});

/*** SEARCH BOX ***/
$(document).ready(function() {
    $(".js-search-input").on('click',function(){
        let $thisElement = $(this);
        if ($thisElement.prop('readonly')==true) {
            $thisElement.blur();
            $thisElement.prop('readonly',false);
            $thisElement.focus();
        }
    });
});

/*** TAG FILTER ***/
function filterByTag(config) {
    var $filterByTag = this;
    var $filterTag = "js-filter-by-tag";
    var $filterTagInList = "js-filter-by-tag-in-list";
    var $filterTagActive = "js-active-filter";
    var $filterableElement = "js-filterable";
    if ($("."+$filterableElement).length<0) $filterableElement = "js-fitlerable";
    var $filterableElementWrapper = "js-filterable-elements-wrapper";
    if ($("."+$filterableElementWrapper).length<0) $filterableElementWrapper = "js-fitlerable-elements-wrapper";
    var $filterTagsWrapper = "js-tags";
    var $filterClearTag = "js-clear-tag-filter";
    var $loadingClass = "loading"
    var $page = 1;
    var filterTagPageId = UNAS.shop.page_id;
    if (typeof filterTagPageId === "undefined") filterTagPageId = $("."+$filterableElementWrapper).attr("data-filter-tag-page-id");
    var $filterDo = "js-do-filter";
    var $config = config || {};

    $filterByTag.filterInit = function () {
        $("."+$filterTag).on("click", function () {
            var _this=$(this);
            $filterByTag.filter(null,_this);
        });
    }

    $filterByTag.clearFilterInit = function() {
        $("."+$filterClearTag).on("click", function () {
            var _this=$(this);


            $filterByTag.$page = 1;

            $("."+$filterTag).removeClass($filterTagActive);
            $filterByTag.filter({},_this);

            (unas_design_ver>=4) ? $(_this).addClass("d-none") : $(_this).hide();
        });
    }

    $filterByTag.filterInitTagsInList = function () {
        $(document).on("click", "." + $filterTagInList, function () {
            var _this = $(this);
            var id = _this.data("filter");

            if (typeof id === "undefined") {
                return;
            }

            $("#js-tag-" + _this.data("filter").replace("js-filterable-", "")).trigger("click");

        });
    }

    $filterByTag.filterInitAJAX = function () {
        $("."+$filterTag).on("click", function () {
            var _this=$(this);
            $filterByTag.checkActiveElement(_this);
            $filterByTag.filter($filterByTag.getDataFilter(),_this);
        });
    }

    $filterByTag.checkActiveElement = function (_this) {
        if ($(_this).hasClass($filterTag)) {
            if ($(_this).hasClass($filterTagActive)) {
                $(_this).removeClass($filterTagActive);
            } else {
                $(_this).addClass($filterTagActive);
            }
        }

        if (unas_design_ver>=4) {
            if ($("."+$filterTagActive).length<1) $(".js-clear-tag-filter").addClass("d-none"); else $(".js-clear-tag-filter").removeClass("d-none");
        } else {
            if ($("."+$filterTagActive).length<1) $(".js-clear-tag-filter").css("display","none"); else $(".js-clear-tag-filter").css("display","inline-block");
        }
    }

    $filterByTag.filter = function (dataFilter,_this) {
        switch(config.type) {
            case "category":
                $filterByTag.checkActiveElement(_this);

                $("."+$filterableElement).hide();

                $('.'+$filterTagsWrapper+" ."+$filterTag+"."+$filterTagActive).each(function() {
                    var tag = $(this).attr("data-filter");
                    var classNames = '.' + tag;
                    $("."+$filterableElement).filter(classNames).show();
                });

                if ($('.'+$filterTag+'.'+$filterTagActive).length<1) $("."+$filterableElement).show();
                break;
            case "content":
                if (typeof config.loadingClass !=="undefined" && config.loadingClass!=="") $loadingClass = config.loadingClass;

                filter_tag_ajax_url=UNAS.shop.base_url+"/shop_ajax/ajax_content.php";
                if (service_type=="cms") filter_tag_ajax_url=UNAS.shop.base_url+"/ajax/ajax_content.php";

                if (typeof filterTagPageId === "undefined") {
                    $(document).trigger("filterByTagError",{
                        filter_tags:$("."+$filterTagsWrapper),
                        filterable_elements:$("."+$filterableElementWrapper),
                        error:'no_page_id'
                    });
                    break;
                }

                $.ajax({
                    type: "POST",
                    url: filter_tag_ajax_url,
                    data: {
                        change_lang: actual_lang,
                        get_ajax:1,
                        action:"filter",
                        page: filterTagPageId,
                        ajax_nodesign: 1,
                        ajax_nodesign_element_render: 1,
                        shop_id: shop_id,
                        filter_tags: dataFilter,
                        page_act_ajax: $filterByTag.$page
                    },
                    beforeSend: function () {
                        $("."+$filterableElementWrapper).addClass($loadingClass).html("");
                        $(document).trigger("filterByTagLoading",{
                            filter_tags:$("."+$filterTagsWrapper),
                            filterable_elements:$("."+$filterableElementWrapper),
                            filtered_tags:dataFilter,
                            page_id:filterTagPageId
                        });
                    },
                    success: function (response) {
                        $("."+$filterableElementWrapper).removeClass($loadingClass).html(response);
                        $(document).trigger("filterByTagLoaded",{
                            filter_tags:$filterTagsWrapper,
                            filterable_elements:$filterableElementWrapper,
                            filtered_tags:dataFilter,
                            page_id:filterTagPageId
                        });
                    }
                });
                break;
        }
    }

    $filterByTag.getDataFilter = function () {
        var dataFilter = {};

        $("."+$filterTagActive).each(function(index, el) {
            dataFilter[index] = $(el).attr("data-filter").replace("js-filterable-","").replace("js-fitlerable-");
        });

        return dataFilter;
    }

    $filterByTag.pagination = function (page) {
        $filterByTag.$page = (typeof page === "undefined") ? 1 : page;
        $filterByTag.filter($filterByTag.getDataFilter(),null);
    }
}

/*** SCROLL TO ELEMENT ***/
function scrollToElement(el,offset,scrollIn,container,duration = 400,callback) {
    let element_object;

    if (jQuery.type(el) !== 'object'){
        element_object = {
            element: el,
            offset: offset,
            scrollIn: scrollIn,
            container: container,
            duration: duration,
            callback: callback
        };
    } else {
        element_object = el;
    }
    let $offset = element_object.offset || 10;
    let $window = $(window);
    let $scrollIn, $scrollTop, $container, $element;

    if (element_object.element !== undefined && element_object.element !== null && element_object.element !== '') {
        $element = $(element_object.element);
    }

    if (element_object.scrollIn !== undefined && element_object.scrollIn !== null && element_object.scrollIn !== '') {
        $scrollIn = $(element_object.scrollIn);
    } else {
        $scrollIn = $('html,body');

        if (typeof headerCorrection === "function" ) {
            $offset = headerCorrection($window.scrollTop(), $element.offset().top);
        }
    }

    if (element_object.scrollIn === undefined) {
        $scrollTop = $element.offset().top;

        document.documentElement.style.scrollBehavior = 'auto';
        document.body.style.scrollBehavior = 'auto';
    } else {
        if (element_object.container !== undefined && element_object.container !== null && element_object.container !== '') {
            $container = $(element_object.container);
        }

        $scrollTop = $element.offset().top - $window.scrollTop() + $scrollIn.scrollTop() - ($container !== undefined ? (($window.height() - $container.height())/2) : 0);
    }

    $scrollIn.animate({ scrollTop: $scrollTop - $offset }, element_object.duration, function() {
        if (element_object.callback !== undefined) {
            eval(element_object.callback());
        }
        if (element_object.scrollIn === undefined) {
            document.documentElement.style.scrollBehavior = '';
            document.body.style.scrollBehavior = '';
        }
    });
}

/*** BOX VOTE ***/
function get_month(month) {
    if (service_type=="cms") {
        $.ajax({
            type: "GET",
            async: true,
            url: calendar_ajax_url,
            data: {
                home_id:home_id,
                lang_master:actual_lang,
                get_ajax:1,
                month:month
            },
            success: function(result){
                $("#box_calendar_content").html(result);
            }
        });
    } else {
        $.ajax({
            type: "GET",
            async: true,
            url: calendar_ajax_url,
            data: {
                shop_id:shop_id,
                lang_master:actual_lang,
                get_ajax:1,
                month:month
            },
            success: function(result){
                $("#box_calendar_content").html(result);
            }
        });
    }
}

/*** CART ***/
function cart_empty() {
    $.ajax({
        type: "GET",
        async: true,
        url: shop_url_main+"/shop_ajax/ajax_cart.php",
        dataType: 'json',
        data: {
            get_ajax:1,
            action:"empty"
        },
        success: function(result_empty){
            cart_add_finish(result_empty,"");
            $(document).trigger("emptyCart",{});
        }
    });
}

function cart_delete(item) {
    $.ajax({
        type: "GET",
        async: true,
        url: shop_url_main+"/shop_ajax/ajax_cart.php",
        dataType: 'json',
        data: {
            get_ajax:1,
            action:"delete",
            item:item
        },
        success: function(result_delete){
            cart_add_finish(result_delete,"");
            if (result_delete.sku!="" && result_delete.sku!=undefined) $(document).trigger("removeFromCart",{sku:result_delete.sku});
        }
    });
}

function cartAddFIFO(products, packageOfferID, packageOfferCartID, numberOfCartItems, index) {
    if (products.length) {
        let product = products.shift();

        if (index === 1) {
            $(".js-package-offer-" + packageOfferID + " .js-package-offer-add-to-cart-spinner").show();

            $(document).mask({
                loadSpeed: 0,
                zIndex: 1000,
                opacity: 0,
                color: "#fff",
                closeOnEsc: false,
                closeOnClick: false,
                maskId: "packageOfferAddToCartExposeMask"
            });
        }

        cart_add(product.sku.toString(), `package_offer_${packageOfferID}_`, product.qty, false, {
            variants: product.variants,
            variant_names: product.variant_names,
            package_offer_id: packageOfferID,
            package_offer_cart_id: packageOfferCartID,
            cart_item_index: index,
            number_of_cart_items: numberOfCartItems
        }).then(function () {
            cartAddFIFO(products, packageOfferID, packageOfferCartID, numberOfCartItems, ++index);
        });
    }
}

$(document).ready(function () {
    $(document).on("change", ".page_artlist_other_select", function (event, parameters) {
        let { target } = event;
        let $product_variant_select = $(target);
        let $product_variant_select_id = $product_variant_select.attr("id");

        if ($product_variant_select_id.indexOf("_package_offer_") < 0) {
            return false;
        }

        let $package_offer = $product_variant_select.closest(".package-offer");
        let $package_offer_id = $package_offer.attr("data-id");
        let $package_offer_items = $(`.js-package-offer-item-${$package_offer_id}.js-has-variant`);

        let variants_plus = 0;

        if ($package_offer_items.length) {
            $package_offer_items.each(function (package_offer_item_index, package_offer_item) {
                let package_offer_quantity = parseFloat($(package_offer_item).attr("data-qty"));

                if (isNaN(package_offer_quantity)) {
                    package_offer_quantity = 1;
                }

                $(this).find(".page_artlist_other_select").each(function (variant_select_index, variant_select) {
                    let $variant_selected = $(variant_select).find("option:selected");
                    let gross = parseFloat($variant_selected.attr("data-price-gross"));

                    if (isNaN(gross)) {
                        gross = 0;
                    }

                    variants_plus += gross * package_offer_quantity;
                });
            });

            let package_offer_price = $package_offer.find(".js-package-offer-price");
            let package_offer_original_price = $package_offer.find(".js-package-offer-original-price");
            let package_offer_percent = $package_offer.find(".js-package-offer-percent");
            let package_offer_price_value = parseFloat(package_offer_price.attr("data-price-original"));
            let package_offer_price_original_value = parseFloat(package_offer_original_price.attr("data-price-raw"));

            package_offer_price_value+=variants_plus;

            let percent = Math.round(100 - (package_offer_price_value / package_offer_price_original_value * 100));

            if (percent > 0) {
                package_offer_original_price.show();
                package_offer_percent.attr("data-percent-value", percent).show();
            } else {
                package_offer_original_price.hide();
                package_offer_percent.attr("data-percent-value", 0).hide();
            }

            package_offer_price.attr("data-price", unas_number_format(package_offer_price_value.toFixed(money_len), money_len, money_dec, money_thousend).concat(` ${UNAS.shop.currency_type}`));
            package_offer_price.attr("data-price-raw", package_offer_price_value);
        }
    });
});

function check_cust_input_live(){
    $(".cust_input.required").each(function(){
        var $this = $(this);
        var $thisID = $this.attr("id");
        $this.on('change keyup', function(){
            if ($this.attr("value") === "") {
                $("#page_artdet_product_param_spec_"+$thisID+", #page_artdet_product_param_spec_"+$thisID+"_value").addClass("page_artdet_product_param_spec_fault");
                $this.addClass('is-invalid');
            } else {
                $("#page_artdet_product_param_spec_"+$thisID+", #page_artdet_product_param_spec_"+$thisID+"_value").removeClass("page_artdet_product_param_spec_fault");
                $this.removeClass('is-invalid');
            }
        });
    });
}

function delete_package_offer(package_offer_cart_id) {
    $.ajax({
        type: "GET",
        async: true,
        url: shop_url_main + "/shop_ajax/ajax_cart.php",
        dataType: 'json',
        data: {
            get_ajax: 1,
            action: "delete_package_offer",
            package_offer_cart_id: package_offer_cart_id
        },
        success: function (result_delete) {
            cart_add_finish(result_delete, "");

            if (Array.isArray(result_delete.skus)) {
                result_delete.skus.forEach(function (delete_sku) {
                    if (delete_sku !== "" && typeof delete_sku !== "undefined") {
                        $(document).trigger("removeFromCart", { sku: delete_sku });
                    }
                });

                $(document).trigger("removeFromCartBulk", { skus: result_delete.skus });
            }
        }
    });
}

$(document).ready(function(){
    check_cust_input_live();
});

//GLOBAL
function cart_add_fly(main_image) {
    if (typeof config_plus['cart_redirect']!=='undefined' && config_plus['cart_redirect']==1) {
        var main_image_fly="#box_cart_content";
        if (typeof config_plus['cart_fly_id']!=='undefined' && config_plus['cart_fly_id']!="") {
            main_image_fly="#"+config_plus['cart_fly_id'];
            if (!$(main_image_fly).is(':visible') && $("#box_cart_content").is(':visible')) main_image_fly="#box_cart_content";
        }
        if (!$(main_image_fly).is(':visible') && $("#box_cart_content2").is(':visible')) main_image_fly="#box_cart_content2";

        if ($(main_image_fly).length>0) {
            if ($("#"+main_image).length>0) {
                $(document).trigger("addToCartFly");

                var image = $("#"+main_image).offset();
                var cart  = $(main_image_fly).offset();

                $("#image_to_cart").html('<img id="image_to_cart_img" src="'+$("#"+main_image).attr('src')+'" />');
                $("#image_to_cart_img").css("position","absolute");
                $("#image_to_cart_img").css("top",image.top+"px");
                $("#image_to_cart_img").css("left",image.left+"px");
                $("#image_to_cart_img").css("opacity","0.8");
                $("#image_to_cart_img").css("width",$("#"+main_image).width()+"px");
                $("#image_to_cart_img").css("height",$("#"+main_image).height()+"px");
                $("#image_to_cart_img").css("max-width","none");
                $("#image_to_cart_img").css("max-height","none");
                $("#image_to_cart").css("z-index","1000000");
                $("#image_to_cart").css("display","block");
                params = {
                    top : cart.top + "px",
                    left : cart.left + "px",
                    opacity : 0.0,
                    width : "20px",
                    height : "20px",
                    display: "none"
                };
                $("#image_to_cart_img").animate(params, 500, function() { $("#image_to_cart_img").css("display","none"); });
            }
        }
    }
}
var cart_add_warning=0;
function cart_add_overlay() {
    if (cart_add_warning!=1) {
        $('#overlay_cart_add_ok').overlay().load();
        $(document).trigger("addToCartOverlay");
    }
}
function cart_add_redirect() {
    if (cart_add_warning!=1) {
        location.href=unas_shop_url+'/shop_cart.php';
        $(document).trigger("addToCartRedirect");
    }
}
function cart_refresh(type) {
    if (type==1 || typeof type == "undefined") {
        var cart_box_url=shop_url_main+"/shop_ajax/ajax_box_cart.php?get_ajax=1&lang_master="+actual_lang;
        if (typeof config_plus['unas_design']!=='undefined') cart_box_url=cart_box_url+"&unas_design="+config_plus['unas_design'];
        $("#box_cart_content").load(cart_box_url,function(){ $(document).trigger("cartRefreshed"); });
    }

    if (type==2 || typeof type == "undefined") {
        var cart_box_url2=shop_url_main+"/shop_ajax/ajax_box_cart.php?get_ajax=1&lang_master="+actual_lang+"&cart_num=2";
        if (typeof config_plus['unas_design']!=='undefined') cart_box_url2=cart_box_url2+"&unas_design="+config_plus['unas_design'];
        $("#box_cart_content2").load(cart_box_url2);
    }
}
function cart_add_finish(result,main_image) {
    if (typeof config_plus['cart_refresh_force']!=='undefined' && config_plus['cart_refresh_force']=="1") {
        var cart_refresh_force=1;
    } else {
        var cart_refresh_force=0;
    }

    if ($("#box_cart_content").is(':visible') || cart_refresh_force==1) cart_refresh(1);
    if (result.cart_box_more==1 && ($("#box_cart_content2").is(':visible') || cart_refresh_force==1)) cart_refresh(2);
    if (result.cart_add_callback!=null && result.cart_add_callback!="") eval(result.cart_add_callback+"();");

    if ($(".container_shipping_cost").length>0 || $(".container_shipping_free").length>0) {
        var container_shipping_data={
            get_ajax:1,
            shop_id:shop_id,
            lang_master:actual_lang
        }
        if (typeof config_plus['unas_design']!=='undefined') container_shipping_data['unas_design']=config_plus['unas_design'];

        $.ajax({
            type: "GET",
            sync: true,
            url: shop_url_main+"/shop_ajax/ajax_shipping.php",
            dataType: "json",
            data: container_shipping_data,
            success: function(result2){
                $(".container_shipping_cost").html(result2.cost);
                $(".container_shipping_free").html(result2.free);
            }
        });
    }

    if (result.package_offer === null || (result.package_offer != "" && result.is_last_package_offer)) {
        if (result.overlay!="" && result.overlay!=undefined) {
            $("#overlay_cart_add").html(result.overlay);
            if (result.cart_onclose!="" && result.cart_redirect==0) {
                $("#overlay_cart_add").bind("onClose", function () {
                    eval(result.cart_onclose);
                    $(document).trigger("addToCartSuccessEnd",{onClose:result.cart_onclose});
                });
            } else {
                $("#overlay_cart_add").unbind("onClose");
                if (result.qty_add>0) {
                    $("#overlay_cart_add").bind("onClose", function () {
                        $(document).trigger("addToCartSuccessEnd",{onClose:''});
                    });
                }
            }
            $("#overlay_cart_add").overlay().load();
        } else {
            if (result.cart_onclose!=undefined) {
                if (result.cart_onclose!="") {
                    eval(result.cart_onclose);
                    $(document).trigger("addToCartSuccessEnd",{onClose:result.cart_onclose});
                } else {
                    $(document).trigger("addToCartSuccessEnd",{onClose:''});
                }
            }
        }
    }
}

async function cart_add() {
    var sku=arguments[0];
    var cart_prefix=arguments[1]
    var is_artdet=arguments[3]
    if ($("#ud_shop_artdet").length>0 && $("#db_"+cart_prefix+sku).val()!=undefined && is_artdet<1) is_artdet=1;
    var sku_orig=sku.replace(/__unas__/g,"-");

    var main_image="main_image_"+cart_prefix+sku;

    if (!$("#"+main_image).is(":visible")) main_image=main_image+'_mobile';

    var qty=$("#db_"+cart_prefix+sku).val();
    if (arguments[2]!=null) qty=arguments[2];
    if (qty<=0 || qty==null || qty==undefined) qty=1;

    var cart_config=arguments[4];

    var variant_name1=$("#egyeb_nev1_"+cart_prefix+sku).val();
    var variant_list1=$("#egyeb_list1_"+cart_prefix+sku).val();
    var variant_name2=$("#egyeb_nev2_"+cart_prefix+sku).val();
    var variant_list2=$("#egyeb_list2_"+cart_prefix+sku).val();
    var variant_name3=$("#egyeb_nev3_"+cart_prefix+sku).val();
    var variant_list3=$("#egyeb_list3_"+cart_prefix+sku).val();

    if (is_artdet>0 && (document.form_temp2_artdet!=undefined || $("#db_"+cart_prefix+sku).val()==undefined)) {
        variant_name1=document.form_temp_artdet.egyeb_nev1.value;
        variant_list1=document.form_temp_artdet.egyeb_list1.value;
        variant_name2=document.form_temp_artdet.egyeb_nev2.value;
        variant_list2=document.form_temp_artdet.egyeb_list2.value;
        variant_name3=document.form_temp_artdet.egyeb_nev3.value;
        variant_list3=document.form_temp_artdet.egyeb_list3.value;
        qty=document.form_temp_artdet.db.value;
    }

    if (is_artdet>0) {
        if (variant_name1==undefined && $("#temp_egyeb_nev1").val()!="") variant_name1=$("#temp_egyeb_nev1").val();
        if (variant_list1==undefined && $("#temp_egyeb_list1").val()!="") variant_list1=$("#temp_egyeb_list1").val();
        if (variant_name2==undefined && $("#temp_egyeb_nev2").val()!="") variant_name2=$("#temp_egyeb_nev2").val();
        if (variant_list2==undefined && $("#temp_egyeb_list2").val()!="") variant_list2=$("#temp_egyeb_list2").val();
        if (variant_name3==undefined && $("#temp_egyeb_nev3").val()!="") variant_name3=$("#temp_egyeb_nev3").val();
        if (variant_list3==undefined && $("#temp_egyeb_list3").val()!="") variant_list3=$("#temp_egyeb_list3").val();
    }

    let cartConfigIsSet = typeof cart_config !== "undefined";
    let isPackageOfferItem = cartConfigIsSet && typeof cart_config["package_offer_cart_id"] !== "undefined";
    let notPackageOffer = cartConfigIsSet && typeof cart_config["package_offer_cart_id"] === "undefined";

    if (isPackageOfferItem && typeof cart_config["variants"] !== "undefined") {
        variant_list1 = cart_config["variants"][0];
        variant_list2 = cart_config["variants"][1];
        variant_list3 = cart_config["variants"][2];

        variant_name1 = cart_config["variant_names"][0];
        variant_name2 = cart_config["variant_names"][1];
        variant_name3 = cart_config["variant_names"][2];
    }

    var error=0;
    var service_plus="";
    if (is_artdet>0) {
        let artdet_type = "details"
        if (is_artdet == 2) artdet_type = "tooltip";
        error = check_cust_input(sku_orig,artdet_type);
        main_image="main_image";
        service_plus=$(".service_plus_radio input:checked").val();
    }

    if (is_artdet==2){
        main_image="main_image_tooltip";
    }

    let subscription_period="";
    if (is_artdet == 2) {
        subscription_period = $('input[name="tooltip_subscription_period"]:checked').val();
    } else {
        subscription_period = $('input[name="subscription_period"]:checked').val();
    }

    if (error==1){
        if (is_artdet==1) overlay_load("warning",lang_text_warning,lang_text_required_fields_missing);
    } else {
        var cust_input_file_random = Math.floor(Math.random()*(10000-1+1)+1);

        ajax_async = true;
        if (cust_input_file_exists==1) {
            ajax_async = false;
            cart_file_submit(cust_input_file_random, sku_orig);
        }
        if (typeof cart_config !== "undefined" && typeof cart_config["ajax_sync"] !== "undefined" && cart_config["ajax_sync"]==1) ajax_async = false;

        var product_param_temp;
        if(typeof is_artdet!=="undefined"){
            product_param_temp = product_param.filter(Boolean).join("|");
        }

        var is_last_package_offer = false;

        if (typeof cart_config !== "undefined" && typeof cart_config["cart_item_index"] !== "undefined" && typeof cart_config["number_of_cart_items"] !== "undefined" && cart_config["cart_item_index"] === cart_config["number_of_cart_items"]) {
            is_last_package_offer = true;
            $(".js-package-offer-add-to-cart-spinner").hide();
            $.mask.close();
            $('body').css("overflow","");
        }

        let $data = {
            get_ajax:1,
            result_type:"json",
            lang_master:actual_lang,
            action:"add",
            sku:sku,
            qty:qty,
            variant_name1:variant_name1,
            variant_list1:variant_list1,
            variant_name2:variant_name2,
            variant_list2:variant_list2,
            variant_name3:variant_name3,
            variant_list3:variant_list3,
            service_plus:service_plus,
            subscription_period:subscription_period,
            product_param:product_param_temp,
            item_random_number:cust_input_file_random,
            cart_config:cart_config,
            is_last_package_offer: is_last_package_offer
        };

        return await $.ajax({
            type: "POST",
            async: ajax_async,
            url: shop_url_main+"/shop_ajax/ajax_cart.php",
            dataType: 'json',
            data: $data,
            success: function(result){
                let isPackageOfferItemAndLastPackageOfferItem = cartConfigIsSet && $data["cart_config"]["package_offer_cart_id"] !== "" && $data["cart_config"]["cart_item_index"] === $data["cart_config"]["number_of_cart_items"];

                result.is_last_package_offer = isPackageOfferItemAndLastPackageOfferItem;

                let temp_product_array = {
                    error: result.error,
                    sku: sku_orig,
                    master_key: result.master_key,
                    name: result.name,
                    url: result.url,
                    unit: result.unit,
                    event_id: result.event_id,
                    category: result.category,
                    price: result.price,
                    qty: qty,
                    qty_all: result.qty_all,
                    qty_add: result.qty_add,
                    variant_name1: variant_name1,
                    variant_list1: variant_list1,
                    variant_name2: variant_name2,
                    variant_list2: variant_list2,
                    variant_name3: variant_name3,
                    variant_list3: variant_list3,
                    cart_onclose: result.cart_onclose,
                    package_offer: result.package_offer,
                    is_last_package_offer_item: isPackageOfferItemAndLastPackageOfferItem
                };

                $(document).trigger("addToCart", temp_product_array);

                if (result["cart_success"] == 1) {
                    $(document).trigger("addToCartSuccess", temp_product_array);

                    cart_add_fly(main_image);

                    $faultInVariants = false;
                }

                if (result["finish_disabled"] != 1) {
                    cart_add_finish(result, main_image);
                }
            }
        });
    }
}

var quick_order_in_progress = false;
function quick_order_start(eval_script) {
    quick_order_in_progress = true;

    if (eval_script!="") {
        $(document).on("addToCartSuccessEnd",function() {
            location.href=unas_shop_url+"/shop_order_mods.php?quick_order=1";
        });
        eval(eval_script);
    } else {
        location.href=unas_shop_url+"/shop_order_mods.php?quick_order=1";
    }
}

function cart_box_order() {
    $(document).trigger("clickOrderButton", {id:"initiate",page:"cart_box"});
}

/*** PRODUCT PARAM INPUT ***/
var product_param=[];
var cust_input_file_exists=0;

/*check customer inputs*/
function check_cust_input(sku_orig,origin){
    var has_error=0;
    var temp_values = [];
    cust_input_file_exists = 0;

    let prefix = "#page_artdet_content "
    if (origin === "tooltip"){
        prefix = "#page_PopupContainer_tooltip ";
    }

    $(prefix+'.cust_input').each(function(){
        var $this=$(this);
        var id=$this.attr("id");
        var add_to_sku_only = $this.attr("data-add-to-sku-only");
        var value="";

        $("#page_artdet_product_param_spec_"+id).removeClass("page_artdet_product_param_spec_fault");
        $("#page_artdet_product_param_spec_"+id+"_value").removeClass("page_artdet_product_param_spec_fault");
        $this.removeClass("is-invalid"); /*1900*/

        if($this.hasClass('cust_input_select')){ /*cust_input_select*/
            value = $this.find("option:selected").val();
        } else { /*cust_input_text or cust_input_file*/
            value = $this.val();
            if($this.hasClass("cust_input_file")) {
                if ( add_to_sku_only !== undefined && add_to_sku_only !== false) { /* param has 'add_to_sku_only' attribute */
                    if (add_to_sku_only === sku_orig) { /* attribute is equal with actual product which added to cart, set file upload exists ONLY to this! */
                        cust_input_file_exists = 1;
                    }
                } else {
                    cust_input_file_exists = 1; /* DEFAULT behavior, file upload exists */
                }
            }
        }

        if ($this.hasClass("required") && value === "") {
            has_error=1;
            $("#page_artdet_product_param_spec_"+id).addClass("page_artdet_product_param_spec_fault");
            $("#page_artdet_product_param_spec_"+id+"_value").addClass("page_artdet_product_param_spec_fault");
            $this.addClass("is-invalid");
        }
        if (value !== "") {
            if ( add_to_sku_only !== undefined && add_to_sku_only !== false) { /* param has 'add_to_sku_only' attribute */
                if (add_to_sku_only === sku_orig) { /* attribute is equal with actual product which added to cart, so push parameter ONLY to this! */
                    temp_values.push(id+"¤"+value);
                }
            } else {
                temp_values.push(id+"¤"+value); /* DEFAULT behavior, param has no attribute */
            }
        }
    });

    /*if there is no error in input params, temp array becomes real array */
    if (has_error === 0) product_param = temp_values;

    return has_error;
}

/*** JS API ***/
var UNAS = UNAS || {};

UNAS.data=new Array();
function get_ajax_api(handleData,action,data) {
    if (UNAS.data[action]!=undefined && data=="") {
        handleData(UNAS.data[action]);
    } else {
        $.ajax({
            type: "GET",
            async: true,
            dataType: 'json',
            url: shop_url_main+'/shop_ajax/api.php',
            data: {
                get_ajax:1,
                api_auth:UNAS.api_auth,
                action:action,
                data:data
            },
            success: function(result) {
                UNAS.data[action]=result;
                handleData(UNAS.data[action]);
            }
        });
    }
}

function die(message = "") {
    throw(message);
}

UNAS.onLoadPage = function (api_function) { $(document).on("loadPage",api_function); };

UNAS.onAddToCart = function (api_function) { $(document).on("addToCart",api_function); };
UNAS.onRemoveFromCart = function (api_function) { $(document).on("removeFromCart",api_function); };
UNAS.onModifyCart = function (api_function) { $(document).on("modifyCart",api_function); };
UNAS.onEmptyCart = function (api_function) { $(document).on("emptyCart",api_function); };

UNAS.onClickOrderButton = function (api_function) { $(document).on("clickOrderButton",api_function); };
UNAS.onClickProduct = function (api_function) { $(document).on("clickProduct",api_function); };

UNAS.onChangeProductQty = function (api_function) { $(document).on("changeProductQty",api_function); };
UNAS.onChangeVariant = function (api_function) { $(document).on("changeVariant",api_function); };
UNAS.onChangePaymentType = function (api_function) { $(document).on("changePaymentType",api_function); };
UNAS.onChangeShippingType = function (api_function) { $(document).on("changeShippingType",api_function); };

UNAS.onGrantConsent = function (api_function) { $(document).on("grantConsent",api_function); };
UNAS.onRejectConsent = function (api_function) { $(document).on("rejectConsent",api_function); };

UNAS.onPopupOpen = function (api_function) { $(document).on("popupOpen",api_function); };
UNAS.onOverlayOpen = function (api_function) { $(document).on("overlayOpen",api_function); };
//UNAS.onOverlayAjaxLoaded = function (api_function) { $(document).on("overlayAjaxLoaded",api_function); };

//get
UNAS.getShop = function(handleData) { handleData(UNAS.shop); };
UNAS.getCustomer = function(handleData) { get_ajax_api(handleData,"getCustomer",""); };
UNAS.getCart = function(handleData) { get_ajax_api(handleData,"getCart",""); };
UNAS.getOrder = function(handleData) { if (typeof UNAS.shop["last_order_key"] !== 'undefined') get_ajax_api(handleData,"getOrder",""); };
UNAS.getProduct = function(handleData,data) { get_ajax_api(handleData,"getProduct",data); };

/*** RECAPTCHA ***/
function recaptcha_load() {
    if ($("#recaptchaScript").length==0) {
        var head = document.getElementsByTagName('head')[0];
        var recaptchaScript = document.createElement('script');
        recaptchaScript.id = 'recaptchaScript';
        recaptchaScript.type = 'text/javascript';
        recaptchaScript.src = 'https://www.google.com/recaptcha/api.js';
        head.appendChild(recaptchaScript);
    }
}

/*** UTILITY ***/
function embedObject(script_file,script_width,script_height) {
    document.write('<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0\" width=\"'+script_width+'\" height=\"'+script_height+'\" id=\"head_menu\">' +
        '		  <param name=\"movie\" value=\"'+script_file+'\">' +
        '          <param name=\"quality\" value=\"high\">' +
        '          <param name=\"wmode\" value=\"opaque\">' +
        '          <embed src=\"'+script_file+'\" quality=\"high\" wmode=\"opaque\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" type=\"application/x-shockwave-flash\" width=\"'+script_width+'\" height=\"'+script_height+'\"></embed>' +
        '        </object>');

}

function embedObject_trans(script_file,script_width,script_height) {
    document.write('<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0\" width=\"'+script_width+'\" height=\"'+script_height+'\" id=\"head_menu\">' +
        '		  <param name=\"movie\" value=\"'+script_file+'\">' +
        '          <param name=\"quality\" value=\"high\">' +
        '          <param name=\"wmode\" value=\"transparent\">' +
        '          <embed src=\"'+script_file+'\" quality=\"high\"  wmode=\"transparent\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" type=\"application/x-shockwave-flash\" width=\"'+script_width+'\" height=\"'+script_height+'\"></embed>' +
        '        </object>');

}

/////////////////////////////////////////////////////////////////////
//tinymce media embed

function writeFlash(p) {
    writeEmbed(
        'D27CDB6E-AE6D-11cf-96B8-444553540000',
        'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
        'application/x-shockwave-flash',
        p
    );
}

function writeShockWave(p) {
    writeEmbed(
        '166B1BCA-3F9C-11CF-8075-444553540000',
        'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0',
        'application/x-director',
        p
    );
}

function writeQuickTime(p) {
    writeEmbed(
        '02BF25D5-8C17-4B23-BC80-D3488ABDDC6B',
        'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0',
        'video/quicktime',
        p
    );
}

function writeRealMedia(p) {
    writeEmbed(
        'CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA',
        'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
        'audio/x-pn-realaudio-plugin',
        p
    );
}

function writeWindowsMedia(p) {
    p.url = p.src;
    writeEmbed(
        '6BF52A52-394A-11D3-B153-00C04F79FAA6',
        'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701',
        'application/x-mplayer2',
        p
    );
}

function writeEmbed(cls, cb, mt, p) {
    var h = '', n;

    h += '<object classid="clsid:' + cls + '" codebase="' + cb + '"';
    h += typeof(p.id) != "undefined" ? 'id="' + p.id + '"' : '';
    h += typeof(p.name) != "undefined" ? 'name="' + p.name + '"' : '';
    h += typeof(p.width) != "undefined" ? 'width="' + p.width + '"' : '';
    h += typeof(p.height) != "undefined" ? 'height="' + p.height + '"' : '';
    h += typeof(p.align) != "undefined" ? 'align="' + p.align + '"' : '';
    h += '>';

    for (n in p)
        h += '<param name="' + n + '" value="' + p[n] + '">';

    h += '<param name="wmode" value="opaque">';
    h += '<embed type="' + mt + '"';

    for (n in p)
        h += n + '="' + p[n] + '" ';

    h += 'wmode="opaque" ';
    h += '></embed></object>';

    document.write(h);
}

/*** WTF ***/
$(document).ready(function(){
    $('p').filter(function () {
        return ($(this).text() == "" && $(this).html().indexOf("<img")==-1 && $(this).html().indexOf("<object")==-1 && $(this).html().indexOf("<embed")==-1 && $(this).html().indexOf("<iframe")==-1 && $(this).html().indexOf("<script")==-1 && $(this).html().indexOf("<link")==-1 && $(this).html().indexOf("<style")==-1 && $(this).html().indexOf("<audio")==-1 && $(this).html().indexOf("<input")==-1 && $(this).html().indexOf("<textarea")==-1 && $(this).html().indexOf("<video")==-1) }).html("&nbsp;");
    $('.page_txt:not(.type_product) div').filter(function () { return ($(this).text() == "" && $(this).html().indexOf("<img")==-1 && $(this).html().indexOf("<object")==-1 && $(this).html().indexOf("<embed")==-1 && $(this).html().indexOf("<iframe")==-1 && $(this).html().indexOf("<script")==-1 && $(this).html().indexOf("<link")==-1 && $(this).html().indexOf("<style")==-1 && $(this).html().indexOf("<audio")==-1 && $(this).html().indexOf("<input")==-1 && $(this).html().indexOf("<textarea")==-1 && $(this).html().indexOf("<video")==-1) }).html("&nbsp;");
});