// source --> https://www.chriss.de/wp-content/plugins/opening-hours/wp/js/js.js?ver=6.9.4 
// JavaScript Document

function we_are_open(action, index) {
	if (typeof action == 'undefined') {
		var action = 'init';
	}
	
	if (typeof index == 'object' && index != null) {
		var indexes = index;
		index = null;
	}
	else if (typeof index != 'number') {
		var index = null;
	}
	
	var data = {},
		ajax_data = {},
		html = '',
		e = null,
		indexes = (typeof indexes == 'object') ? indexes : [],
		elements = [],
		reload_check = false;
	
	if (index != null && jQuery('.opening-hours.update, .opening-hours-conditional.update').length) {
		e = jQuery('.opening-hours.update, .opening-hours-conditional.update').eq(index);
		data = (typeof e == 'object' && e != null && jQuery(e).length && typeof jQuery(e).data('data') == 'object' && jQuery(e).data('data') != null) ? jQuery(e).data('data') : {};
	}

	switch (action)
	{
	case 'init':
		if (!jQuery('.opening-hours.update, .opening-hours-conditional.update').length) {
			return;
		}
		
		indexes = [];
		
		jQuery('.opening-hours.update, .opening-hours-conditional.update').each(function(index) {
			indexes[index] = null;
			
			if (typeof jQuery(this).data('data') != 'object' || jQuery(this).data('data') == null) {
				return;
			}

			if (!reload_check && typeof jQuery(this).data('data') == 'object' && (jQuery(this).hasClass('reload') || typeof jQuery(this).data('data').reload == 'boolean' && jQuery(this).data('data').reload)) {
				reload_check = true;
				data = jQuery(this).data('data');
				setTimeout(function() { we_are_open('reload', index); }, data.change * 1000);
				return false;
			}
			
			data = jQuery(this).data('data');
			
			if (jQuery(this).hasClass('opening-hours-conditional')) {
				if (typeof data.immediate == 'boolean' && data.immediate) {
					indexes[index] = 1;
				}
				else if (typeof data.change == 'number' && data.change > 0 && data.change <= 129600) {
					indexes[index] = (data.change >= 3600) ? 3600000 : data.change * 1000;
				}
				
				return;
			}
			
			if (typeof data.immediate == 'boolean' && data.immediate) {
				indexes[index] = 1;
			}
			else if (typeof data.change == 'number' && data.change > 0 && data.change <= 86400) {
				indexes[index] = data.change * 1000;
			}

			return;
		});
		
		if (reload_check) {
			return;
		}
		
		for (index in indexes) {
			if (indexes[index] != null) {
				setTimeout(function() { we_are_open('update', indexes); }, Math.min.apply(null, indexes.filter(Boolean)));
				break;
			}
		}
		
		return;
	case 'reload':
		if (e == null || index == null || !jQuery('.opening-hours.update, .opening-hours-conditional.update').length || index > jQuery('.opening-hours.update, .opening-hours-conditional.update').length - 1 || typeof data != 'object' || (!jQuery(e).hasClass('reload') && (typeof data.reload != 'boolean' || typeof data.reload == 'boolean' && !data.reload))) {
			return;
		}
	
		document.location.reload();
		return;
	case 'update':
		if (typeof indexes != 'object' || indexes == null || !indexes.length || !jQuery('.opening-hours.update, .opening-hours-conditional.update').length || indexes.length != jQuery('.opening-hours.update, .opening-hours-conditional.update').length) {
			return;
		}

		jQuery('.opening-hours.update, .opening-hours-conditional.update').each(function(index) {
			if (!(index in indexes) || indexes[index] == null) {
				return;
			}
			
			data = (typeof jQuery(this).data('data') == 'object' && jQuery(this).data('data') != null) ? jQuery(this).data('data') : {};
			
			if (!reload_check && jQuery(this).hasClass('reload') || typeof data.reload == 'boolean' && data.reload) {
				reload_check = true;
				we_are_open('reload', index);
				return false;
			}

			if (jQuery(this).hasClass('opening-hours-conditional')) {
				elements[index] = {
					action: 'update',
					classes: (typeof data.classes == 'object') ? data.classes : [],
					parameters: null,
					content: null
				};
				return;
			}
			
			elements[index] = {
				action: 'refresh',
				classes: jQuery(this).attr('class').split(' '),
				parameters: (typeof data.parameters == 'object') ? data.parameters : {},
				content: (typeof data.content == 'string') ? data.content : null
			};
		});
		
		if (reload_check) {
			return;
		}
		
		ajax_data = {
			action: 'we_are_open_wp_ajax',
			type: action,
			elements: elements
		};
		 
		jQuery.post(we_are_open_wp_ajax.url, ajax_data, function(response) {
			data = {};
			html = '';
			
			if (response.success) {
				indexes = [];
				
				jQuery('.opening-hours.update, .opening-hours-conditional.update').each(function(index) {
					indexes[index] = null;
					
					if (!(index in response.elements)) {
						return;
					}
					
					if (jQuery(this).hasClass('opening-hours-conditional')) {
						if (typeof jQuery(this).data('data') != 'object' || typeof jQuery(this).data('data') == 'object' && jQuery(this).data('data') == null) {
							return;
						}
							
						data = jQuery(this).data('data');
						
						if (typeof data.html == 'undefined') {
							return;
						}
						
						html = (typeof data.html == 'string' && data.html.length) ? data.html : null;
		
						data.change = parseInt(response.elements[index].seconds_to_change);
						data.closed_now = response.closed_now;
						data.content = (typeof response.content == 'string') ? response.content : null;
						data.open_now = response.open_now;
						
						if ((data.closed != response.closed_now || data.open != response.open_now) && (html == null || !data.remove_html)) {
							if (data.remove_html) {
								data.html = jQuery(this).html();
								jQuery(this).html('');
							}
							
							if (data.hide && !jQuery(this).hasClass('hide')) {
								jQuery(this).removeClass('show');
								jQuery(this).addClass('hide');
							}
						}
						else if ((data.open == response.open_now || data.closed == response.closed_now) && (html != null || !data.remove_html)) {
							if (data.remove_html) {
								data.html = null;
								jQuery(this).html('');
							}
							
							jQuery(this).data('data', data);

							if (data.hide && jQuery(this).hasClass('hide')) {
								jQuery(this).removeClass('hide');
								jQuery(this).addClass('show');
							}
						}
						
						if (typeof data.change == 'number' && data.change > 0 && data.change <= 86400) {
							indexes[index] = (data.change >= 3600) ? 3600000 : data.change * 1000;
						}
						
						return;
					}
					
					if (jQuery(this).hasClass('opening-hours')) {
						data = (typeof response.elements[index] == 'object') ? response.elements[index] : {};
						jQuery(this)
							.data('data', {
								change: data.seconds_to_change,
								closed_now: !response.open_now,
								content: (typeof data.html == 'string') ? data.content.replace(/\\(\')/gi, '$1') : null,
								parameters: data.parameters,
								open_now: response.open_now,
								reload: data.reload
							})
							.html((typeof data.html == 'string') ? data.html.replace(/\\(\')/gi, '$1') : '');
							
							if (response.open_now) {
								jQuery(this).removeClass('closed-now').addClass('open-now');
							}
							else {
								jQuery(this).removeClass('open-now').addClass('closed-now');
							}
							
						if (typeof data.seconds_to_change == 'number' && data.seconds_to_change > 0 && data.seconds_to_change <= 86400) {
							indexes[index] = data.seconds_to_change * 1000;
						}
						
						return;
					}
						
					if (typeof jQuery(this).data('data') != 'object' || jQuery(this).data('data') == null) {
						return;
					}
			
					if (!reload_check && typeof jQuery(this).data('data') == 'object' && (jQuery(this).hasClass('reload') || typeof jQuery(this).data('data').reload == 'boolean' && jQuery(this).data('data').reload)) {
						reload_check = true;
						data = jQuery(this).data('data');
						setTimeout(function() { we_are_open('reload', index); }, data.change * 1000);
						return false;
					}
			
					return;
				});
				
				if (reload_check) {
					return;
				}

				for (index in indexes) {
					if (indexes[index] != null) {
						setTimeout(function() { we_are_open('update', indexes); }, Math.min.apply(null, indexes.filter(Boolean)));
						break;
					}
				}
				
			}
			
		}, 'json');

		return;
	}
	return;
}

jQuery(document).ready(function($){
	we_are_open();
	return;
});
// source --> https://www.chriss.de/wp-content/plugins/sticky-header-effects-for-elementor/assets/js/she-header.js?ver=2.1.8 
var $j = jQuery.noConflict();

$j(document).ready(function () {
    "use strict";
    // She header
    sheHeader();

    $j(window).on('resize', function (e) {
        sheHeader(e);
    });
});


/* ==============================================
HEADER EFFECTS
============================================== */


function sheHeader(e) {
   
    var header = $j('.elementor-element.she-header-yes'),
        container = $j('.she-header-yes .elementor-container, .elementor-element.she-header-yes.e-con'),
        header_elementor = $j('.elementor-edit-mode .she-header-yes'),
        header_logo = $j('.she-header-yes .elementor-widget-theme-site-logo img:not(.elementor-widget-n-menu img), .she-header-yes .elementor-widget-image img:not(.elementor-widget-n-menu img)'),
        header_logo_div = $j('.she-header-yes .elementor-widget-theme-site-logo a::after, .she-header-yes .elementor-widget-image a::after');
    data_settings = header.data('settings');

    if (typeof data_settings != 'undefined') {
        var responsive_settings = data_settings["transparent_on"];
        var width = $j(window).width(),
            header_height = header.height(),
            logo_width = header_logo.width(),
            logo_height = header_logo.height();
    }

    // Check responsive is enabled
    if (typeof width != 'undefined' && width) {
        if (width >= 1025) {
            var enabled = "desktop";
        } else if (width > 767 && width < 1025) {
            var enabled = "tablet";
        } else if (width <= 767) {
            var enabled = "mobile";
        }
    }

    if ($j.inArray(enabled, responsive_settings) != '-1') {

        var scroll_distance = data_settings["scroll_distance"];
        var she_offset = data_settings["she_offset_top"];
        var she_padding = data_settings["she_padding"];
        var she_width = data_settings["she_width"];
        var transparent_header = data_settings["transparent_header_show"];
        var background = data_settings["background"];
        var bottom_border_color = data_settings["custom_bottom_border_color"],
            bottom_border_view = data_settings["bottom_border"],
            bottom_border_width = data_settings["custom_bottom_border_width"];

        var shrink_header = data_settings["shrink_header"],
            data_height = data_settings["custom_height_header"],
            data_height_tablet = data_settings["custom_height_header_tablet"],
            data_height_mobile = data_settings["custom_height_header_mobile"];

        var shrink_logo = data_settings["shrink_header_logo"],
            data_logo_height = data_settings["custom_height_header_logo"],
            data_logo_height_tablet = data_settings["custom_height_header_logo_tablet"],
            data_logo_height_mobile = data_settings["custom_height_header_logo_mobile"];

        var change_logo_color = data_settings["change_logo_color"];

        var blur_bg = data_settings["blur_bg"];

        var scroll_distance_hide_header = data_settings["scroll_distance_hide_header"];

        // offset
        if (width >= 1025) {
            she_offset = data_settings["she_offset_top"];
            she_padding = data_settings["she_padding"];
            she_width = data_settings["she_width"];
        } else if (width > 767 && width < 1025) {
            she_offset = data_settings["she_offset_top_tablet"];
            she_padding = data_settings["she_padding_tablet"];
            she_width = data_settings["she_width_tablet"];
        } else if (width <= 767) {
            she_offset = data_settings["she_offset_top_mobile"];
            she_padding = data_settings["she_padding_mobile"];
            she_width = data_settings["she_width_mobile"];
        }

        if (header.hasClass("she-header")) {
            if( e?.type === 'resize' ){
                header.css("width", she_width.size + she_width.unit);
                header.css("padding-top", she_padding.top + she_padding.unit);
                header.css("padding-bottom", she_padding.bottom + she_padding.unit);
                header.css("padding-left", she_padding.left + she_padding.unit);
                header.css("padding-right", she_padding.right + she_padding.unit);
            }
        }

        // add transparent class
        if (transparent_header == "yes") {
            header.addClass('she-header-transparent-yes');
        }

        // header height shrink
        if (typeof data_height != "undefined" && data_height) {
            if (width >= 1025) {
                var shrink_height = data_height["size"];
            } else if (width > 767 && width < 1025) {
                var shrink_height = data_height_tablet["size"];
                if (shrink_height == "") {
                    shrink_height = data_height["size"];
                }
            } else if (width <= 767) {
                var shrink_height = data_height_mobile["size"];
                if (shrink_height == "") {
                    shrink_height = data_height["size"];
                }
            }
        }

        // Logo height shrink
        if (
            typeof data_logo_height != "undefined" &&
            data_logo_height
        ) {
            if (width >= 1025) {
                var shrink_logo_height = data_logo_height["size"];
            } else if (width > 767 && width < 1025) {
                var shrink_logo_height =
                    data_logo_height_tablet["size"];
            } else if (width <= 767) {
                var shrink_logo_height =
                    data_logo_height_mobile["size"];
            }

            //Calc New width and height
            if (shrink_logo_height == "") {
                //Get logo shrink settings from desktop
                shrink_logo_height = data_logo_height["size"];

                if (shrink_logo_height == "") {
                    // Shrink same settings from height shrink option
                    shrink_logo_height = shrink_height;

                    var percent =
                        parseInt(shrink_logo_height) /
                        parseInt(header_height),
                        width_l = logo_width * percent,
                        height_l = logo_height * percent;
                } else {
                    var width_l =
                        (logo_width * shrink_logo_height) / 100,
                        height_l =
                            (logo_height * shrink_logo_height) / 100;
                }
            } else {
                //Get logo shrink settings from the responsive option
                var width_l = (logo_width * shrink_logo_height) / 100,
                    height_l = (logo_height * shrink_logo_height) / 100;
            }
        }

        // border bottom
        if (typeof bottom_border_width != 'undefined' && bottom_border_width) {
            var bottom_border = bottom_border_width["size"] + "px solid " + bottom_border_color;
        }

        // hide header on scroll
        if (
            typeof scroll_distance_hide_header != "undefined" &&
            scroll_distance_hide_header
        ) {
            var mywindow = $j(window),
                mypos = mywindow.scrollTop();

            mywindow.scroll(function () {
                var sd_hh_s = scroll_distance_hide_header["size"],
                    sd_hh_u = scroll_distance_hide_header["unit"],
                    sd_hh_tablet =
                        data_settings[
                        "scroll_distance_hide_header_tablet"
                        ],
                    sd_hh_tablet_s = sd_hh_tablet["size"],
                    sd_hh_tablet_u = sd_hh_tablet["unit"],
                    sd_hh_mobile =
                        data_settings[
                        "scroll_distance_hide_header_mobile"
                        ],
                    sd_hh_mobile_s = sd_hh_mobile["size"],
                    sd_hh_mobile_u = sd_hh_mobile["unit"];

                // get responsive view
                if (
                    typeof scroll_distance_hide_header != "undefined" &&
                    scroll_distance_hide_header
                ) {
                    if (width >= 1025) {
                        var sd_hh = sd_hh_s,
                            sd_hh_u = sd_hh_u;
                        // calc sise for vh unit
                        if (sd_hh_u == "vh") {
                            sd_hh = window.innerHeight * (sd_hh / 100);
                        }
                    } else if (width > 767 && width < 1025) {
                        var sd_hh = sd_hh_tablet_s,
                            sd_hh_u = sd_hh_tablet_u;

                        if (sd_hh == "") {
                            sd_hh = sd_hh_s;
                        }
                        // calc sise for vh unit
                        if (sd_hh_u == "vh") {
                            sd_hh = window.innerHeight * (sd_hh / 100);
                        }
                    } else if (width <= 767) {
                        var sd_hh = sd_hh_mobile_s,
                            sd_hh_u = sd_hh_mobile_u;

                        if (sd_hh == "") {
                            sd_hh = sd_hh_s;
                        }
                        // calc sise for vh unit
                        if (sd_hh_u == "vh") {
                            sd_hh = window.innerHeight * (sd_hh / 100);
                        }
                    }
                }

                // added option for vh unit
                //if(sd_hh_u == 'px'){
                //	sd_hh  = sd_hh_s;
                //} else {
                //	sd_hh  = (window.innerHeight)*(sd_hh_s/100);
                //}

                if (mypos > sd_hh) {
                    if (mywindow.scrollTop() > mypos) {
                        header.addClass("headerup");
                    } else {
                        header.removeClass("headerup");
                    }
                }
                mypos = mywindow.scrollTop();
            });
        }

        // scroll function
        $j(window).on("load scroll", function (e) {
            var scroll = $j(window).scrollTop();

            if (header_elementor) {
                header_elementor.css("position", "relative");
            }

            var sd_s = scroll_distance["size"],
                sd_u = scroll_distance["unit"],
                sd_tablet = data_settings["scroll_distance_tablet"],
                sd_tablet_s = sd_tablet["size"],
                sd_tablet_u = sd_tablet["unit"],
                sd_mobile = data_settings["scroll_distance_mobile"],
                sd_mobile_s = sd_mobile["size"],
                sd_mobile_u = sd_mobile["unit"];

            // get responsive view
            if (
                typeof scroll_distance != "undefined" &&
                scroll_distance
            ) {
                if (width >= 1025) {
                    var sd = sd_s,
                        sd_u = sd_u;
                    // calc sise for vh unit
                    if (sd_u == "vh") {
                        sd = window.innerHeight * (sd / 100);
                    }
                } else if (width > 767 && width < 1025) {
                    var sd = sd_tablet_s,
                        sd_u = sd_tablet_u;

                    if (sd == "") {
                        sd = sd_s;
                    }
                    // calc sise for vh unit
                    if (sd_u == "vh") {
                        sd = window.innerHeight * (sd / 100);
                    }
                } else if (width <= 767) {
                    var sd = sd_mobile_s,
                        sd_u = sd_mobile_u;

                    if (sd == "") {
                        sd = sd_s;
                    }
                    // calc sise for vh unit
                    if (sd_u == "vh") {
                        sd = window.innerHeight * (sd / 100);
                    }
                }
            }

            if (scroll >= scroll_distance["size"]) {
                header.removeClass('header').addClass("she-header");
                header.css("background-color", background);
                header.css("border-bottom", bottom_border);

                header.css("top", she_offset.size + she_offset.unit);

                if (width >= 768) {
                    if (document.body.classList.contains('admin-bar')) {
                        header.css("top", (32 + she_offset.size) + she_offset.unit);
                    }
                }

                header.css("padding-top", she_padding.top + she_padding.unit);
                header.css("padding-bottom", she_padding.bottom + she_padding.unit);
                header.css("padding-left", she_padding.left + she_padding.unit);
                header.css("padding-right", she_padding.right + she_padding.unit);
                header.css("width", she_width.size + she_width.unit);
                // header.attr("style", "width: " + she_width.size + she_width.unit + " !important;");
                // header.css("width", she_width.size + she_width.unit);

                header.removeClass('she-header-transparent-yes');

                if (shrink_header == "yes") {
                    header.css({ "padding-top": "0", "padding-bottom": "0", "margin-top": "0", "margin-bottom": "0" });
                    container.css({ "min-height": shrink_height, "transition": "all 0.4s ease-in-out", "-webkit-transition": "all 0.4s ease-in-out", "-moz-transition": "all 0.4s ease-in-out" });
                }

                if (change_logo_color == "yes") {
                    header_logo.addClass("change-logo-color");
                }

                // ---------------------------------- SHRINK LOGO
                if (shrink_logo == "yes") {
                    header_logo.css({
                        width: width_l,
                        transition: "all 0.4s ease-in-out",
                        "-webkit-transition": "all 0.4s ease-in-out",
                        "-moz-transition": "all 0.4s ease-in-out",
                    });
                }

            } else {
                header.removeClass("she-header").addClass('header');
                header.css("background-color", "");
                header.css("border-bottom", "");
                header.css("top", "");
                header.css("padding-top", "");
                header.css("padding-bottom", "");
                header.css("padding-left", "");
                header.css("padding-right", "");
                header.css("width", "");

                if (transparent_header == "yes") {
                    header.addClass('she-header-transparent-yes');
                }
                if (shrink_header == "yes") {
                    header.css({ "padding-top": "", "padding-bottom": "", "margin-top": "", "margin-bottom": "" });
                    container.css("min-height", "");
                }

                // ---------------------------------- SHRINK LOGO
                if (shrink_logo == "yes") {
                    header_logo.css({ height: "", width: "" });
                }

                if (change_logo_color == "yes") {
                    header_logo.removeClass("change-logo-color");

                }

            }


        });
    }

};