var isMobile = {
	Android: function() {
		return navigator.userAgent.match(/Android/i);
	},
	BlackBerry: function() {
		return navigator.userAgent.match(/BlackBerry/i);
	},
	iOS: function() {
		return navigator.userAgent.match(/iPhone|iPad|iPod/i);
	},
	Opera: function() {
		return navigator.userAgent.match(/Opera Mini/i);
	},
	Windows: function() {
		return navigator.userAgent.match(/IEMobile/i);
	},
	any: function() {
		return (
			isMobile.Android() ||
			isMobile.BlackBerry() ||
			isMobile.iOS() ||
			isMobile.Opera() ||
			isMobile.Windows()
		);
	}
};

function preload_images(images, complete_callback) {
	if (onepress_js_settings.hero_disable_preload) {
		if (complete_callback) {
			complete_callback();
		}
	} else {
		var id = "_img_loading_" + new Date().getTime();
		jQuery("body").append('<div id="' + id + '"></div>');
		jQuery.each(images, function(index, src) {
			var img = jQuery("<img>");
			img.attr("alt", "");
			img.attr("class", "image__preload");
			img.css("display", "none");
			img.attr("src", src);
			jQuery("#" + id).append(img);
		});

		jQuery("#" + id).imagesLoaded(function() {
			if (complete_callback) {
				complete_callback();
			}
			setTimeout(function() {
				jQuery("#" + id).remove();
			}, 5000);
		});
	}
}

function _to_number(string) {
	if (typeof string === "number") {
		return string;
	}
	var n = string.match(/\d+$/);
	if (n) {
		return parseFloat(n[0]);
	} else {
		return 0;
	}
}

function _to_bool(v) {
	if (typeof v === "boolean") {
		return v;
	}

	if (typeof v === "number") {
		return v === 0 ? false : true;
	}

	if (typeof v === "string") {
		if (v === "true" || v === "1") {
			return true;
		} else {
			return false;
		}
	}

	return false;
}

/**
 * skip-link-focus-fix.js
 *
 * Helps with accessibility for keyboard only users.
 *
 * Learn more: https://github.com/Automattic/OnePress/pull/136
 */
(function() {
	var is_webkit = navigator.userAgent.toLowerCase().indexOf("webkit") > -1,
		is_opera = navigator.userAgent.toLowerCase().indexOf("opera") > -1,
		is_ie = navigator.userAgent.toLowerCase().indexOf("msie") > -1;

	if (
		(is_webkit || is_opera || is_ie) &&
		document.getElementById &&
		window.addEventListener
	) {
		window.addEventListener(
			"hashchange",
			function() {
				var id = location.hash.substring(1),
					element;

				if (!/^[A-z0-9_-]+$/.test(id)) {
					return;
				}

				element = document.getElementById(id);

				if (element) {
					if (
						!/^(?:a|select|input|button|textarea)$/i.test(
							element.tagName
						)
					) {
						element.tabIndex = -1;
					}

					element.focus();
				}
			},
			false
		);
	}
})();

(function() {
	if (isMobile.any()) {
		/**
		 * https://css-tricks.com/the-trick-to-viewport-units-on-mobile/
		 */
		// First we get the viewport height and we multiple it by 1% to get a value for a vh unit
		let vh = window.innerHeight * 0.01;
		let vw = window.innerWidth * 0.01;
		// Then we set the value in the --vh, --vw custom property to the root of the document
		document.documentElement.style.setProperty("--vh", vh + "px");
		document.documentElement.style.setProperty("--vw", vw + "px");
		window.addEventListener("resize", function() {
			let vh = window.innerHeight * 0.01;
			let vw = window.innerWidth * 0.01;
			document.documentElement.style.setProperty("--vh", vh + "px");
			document.documentElement.style.setProperty("--vw", vw + "px");
		});
	}
})();

/**
 * Sticky header when scroll.
 */
jQuery(document).ready(function($) {
	var $window = $(window);
	var $document = $(document);

	var getAdminBarHeight = function() {
		var h = 0;
		if ($("#wpadminbar").length) {
			if ($("#wpadminbar").css("position") == "fixed") {
				h = $("#wpadminbar").height();
			}
		}
		return h;
	};

	var stickyHeaders = (function() {
		var $stickies;
		var lastScrollTop = 0;

		var setData = function(stickies, addWrap) {
			var top = 0;

			if (typeof addWrap === "undefined") {
				addWrap = true;
			}
			$stickies = stickies.each(function() {
				var $thisSticky = $(this);
				var p = $thisSticky.parent();
				if (!p.hasClass("followWrap")) {
					if (addWrap) {
						$thisSticky.wrap('<div class="followWrap" />');
					}
				}
				$thisSticky.parent().removeAttr("style");
				$thisSticky.parent().height($thisSticky.height());
			});
		};

		var load = function(stickies) {
			if (
				typeof stickies === "object" &&
				stickies instanceof jQuery &&
				stickies.length > 0
			) {
				setData(stickies);
				$window.scroll(function() {
					_whenScrolling();
				});

				$window.resize(function() {
					setData(stickies, false);
					stickies.each(function() {
						$(this)
							.removeClass("fixed")
							.removeAttr("style");
					});
					_whenScrolling();
				});

				$document.on("hero_ready", function() {
					$(".followWrap").removeAttr("style");
					setTimeout(function() {
						$(".followWrap").removeAttr("style");
						setData(stickies, false);
						_whenScrolling();
					}, 500);
				});
			}
		};

		var _whenScrolling = function() {
			var top = 0;
			top = getAdminBarHeight();

			var scrollTop = $window.scrollTop();

			$stickies.each(function(i) {
				var $thisSticky = $(this),
					$stickyPosition = $thisSticky.parent().offset().top;
				if (scrollTop === 0) {
					$thisSticky.addClass("no-scroll");
				}
				if ($stickyPosition - top <= scrollTop) {
					if (scrollTop > 0) {
						$thisSticky.removeClass("no-scroll");
					}
					$thisSticky.addClass("header-fixed");
					$thisSticky.css("top", top);
				} else {
					$thisSticky
						.removeClass("header-fixed")
						.removeAttr("style")
						.addClass("no-scroll");
				}
			});
		};

		return {
			load: load
		};
	})();
	stickyHeaders.load($("#masthead.is-sticky"));
	// When Header Panel rendered by customizer
	$document.on("header_view_changed", function() {
		stickyHeaders.load($("#masthead.is-sticky"));
	});

	/*
	 * Nav Menu & element actions
	 *
	 * Smooth scroll for navigation and other elements
	 */
	var mobile_max_width = 1140; // Media max width for mobile
	var main_navigation = jQuery(".main-navigation .onepress-menu");
	var stite_header = $(".site-header");
    var header = document.getElementById("masthead");
    if ( header ) {
        var noSticky = header.classList.contains("no-sticky");
    }
	

	var setNavTop = function() {
		var offset = header.getBoundingClientRect();
		var top = offset.x + offset.height - 1;
		main_navigation.css({
			top: top
		});
	};

	/**
	 * Get mobile navigation height.
	 *
	 * @return number
	 */
	var getNavHeight = function(fitWindow) {
		if (typeof fitWindow === "undefined") {
			fitWindow = true;
		}
		if (fitWindow) {
			var offset = header.getBoundingClientRect();
			var h = $(window).height() - (offset.x + offset.height) + 1;
			return h;
		} else {
			main_navigation.css("height", "auto");
			var navOffset = main_navigation[0].getBoundingClientRect();
			main_navigation.css("height", 0);
			return navOffset.height;
		}
	};

	/**
	 * Initialise Menu Toggle
	 *
	 * @since 0.0.1
	 * @since 2.2.1
	 */
	$document.on("click", "#nav-toggle", function(event) {
		event.preventDefault();
		jQuery("#nav-toggle").toggleClass("nav-is-visible");
		jQuery(".header-widget").toggleClass("header-widget-mobile");
		main_navigation.stop();
		// Open menu mobile.
		if (!main_navigation.hasClass("onepress-menu-mobile")) {
			main_navigation.addClass("onepress-menu-mobile");
			$("body").addClass("onepress-menu-mobile-opening");
			setNavTop();
			var h = getNavHeight(!noSticky);
			if( isNaN( h ) ) { // when IE 11 & Edge return h is NaN.
				h = $(window).height(); 
			}
			main_navigation.animate(
				{
					height: h
				},
				300,
				function() {
					// Animation complete.
					if (noSticky) {
						main_navigation.css({
							"min-height": h,
							height: "auto"
						});
					}
				}
			);
		} else {
			main_navigation.css( { height: main_navigation.height(), 'min-height': 0, overflow: 'hidden' } );
			setTimeout( function(){
				main_navigation.animate(
					{
						height: 0
					},
					300,
					function() {
						main_navigation.removeAttr("style");
						main_navigation.removeClass("onepress-menu-mobile");
						$("body").removeClass("onepress-menu-mobile-opening");
					}
				);
			}, 40 );
		}
	});

	/**
	 * Fix nav height when touch move on mobile.
	 *
	 * @since 2.2.1
	 */
	if (!noSticky && isMobile.any()) {
		$(document).on("scroll", function() {
			if (main_navigation.hasClass("onepress-menu-mobile")) {
				var newViewportHeight = Math.max(
					document.documentElement.clientHeight,
					window.innerHeight || 0
				);
				var offset = header.getBoundingClientRect();
				var top = offset.x + offset.height - 1;
				var h = newViewportHeight - top + 1;
				main_navigation.css({
					height: h,
					top: top
				});
			}
		});
	}

	$(window).resize(function() {
		if (
			main_navigation.hasClass("onepress-menu-mobile") &&
			$(window).width() <= mobile_max_width
		) {
			if ( ! noSticky) {
				main_navigation.css({
					height: getNavHeight(),
					overflow: "auto"
				});
			}
		} else {
			main_navigation.removeAttr("style");
			main_navigation.removeClass("onepress-menu-mobile");
			jQuery("#nav-toggle").removeClass("nav-is-visible");
		}
	});

	jQuery(
		".onepress-menu li.menu-item-has-children, .onepress-menu li.page_item_has_children"
	).each(function() {
		jQuery(this).prepend(
			'<div class="nav-toggle-subarrow"><i class="fa fa-angle-down"></i></div>'
		);
	});

	$document.on(
		"click",
		".nav-toggle-subarrow, .nav-toggle-subarrow .nav-toggle-subarrow",
		function() {
			jQuery(this)
				.parent()
				.toggleClass("nav-toggle-dropdown");
		}
	);

	// Get the header height and wpadminbar height if enable.
	var h;
	window.current_nav_item = false;
	if (onepress_js_settings.onepress_disable_sticky_header != "1") {
		h = jQuery("#wpadminbar").height() + jQuery(".site-header").height();
	} else {
		h = jQuery("#wpadminbar").height();
	}

	// Navigation click to section.
	jQuery('.home #site-navigation li a[href*="#"]').on("click", function(
		event
	) {
		event.preventDefault();
		// if in mobile mod
		if (jQuery(".onepress-menu").hasClass("onepress-menu-mobile")) {
			jQuery("#nav-toggle").trigger("click");
		}
		smoothScroll(jQuery(this.hash));
	});

	function setNavActive(currentNode) {
		if (currentNode) {
			currentNode = currentNode.replace("#", "");
			if (currentNode)
				jQuery("#site-navigation li").removeClass(
					"onepress-current-item"
				);
			if (currentNode) {
				jQuery("#site-navigation li")
					.find('a[href$="#' + currentNode + '"]')
					.parent()
					.addClass("onepress-current-item");
			}
		}
	}

	function inViewPort($element, offset_top) {
		if (!offset_top) {
			offset_top = 0;
		}
		var view_port_top = jQuery(window).scrollTop();
		if ($("#wpadminbar").length > 0) {
			view_port_top -= $("#wpadminbar").outerHeight() - 1;
			offset_top += $("#wpadminbar").outerHeight() - 1;
		}
		var view_port_h = $("body").outerHeight();

		var el_top = $element.offset().top;
		var eh_h = $element.height();
		var el_bot = el_top + eh_h;
		var view_port_bot = view_port_top + view_port_h;

		var all_height = $("body")[0].scrollHeight;
		var max_top = all_height - view_port_h;

		var in_view_port = false;
		// If scroll maximum
		if (view_port_top >= max_top) {
			if (
				(el_top < view_port_top && el_top > view_port_bot) ||
				(el_top > view_port_top && el_bot < view_port_top)
			) {
				in_view_port = true;
			}
		} else {
			if (el_top <= view_port_top + offset_top) {
				//if ( eh_bot > view_port_top &&  eh_bot < view_port_bot ) {
				if (el_bot > view_port_top) {
					in_view_port = true;
				}
			}
		}
		return in_view_port;
	}

	// Add active class to menu when scroll to active section.
	var _scroll_top = $window.scrollTop();
	jQuery(window).scroll(function() {
		var currentNode = null;

		if (!window.current_nav_item) {
			var current_top = $window.scrollTop();

			if (onepress_js_settings.onepress_disable_sticky_header != "1") {
				h =
					jQuery("#wpadminbar").height() +
					jQuery(".site-header").height();
			} else {
				h = jQuery("#wpadminbar").height();
			}

			if (_scroll_top < current_top) {
				jQuery("section").each(function(index) {
					var section = jQuery(this);
					var currentId = section.attr("id") || "";

					var in_vp = inViewPort(section, h + 10);
					if (in_vp) {
						currentNode = currentId;
					}
				});
			} else {
				var ns = jQuery("section").length;
				for (var i = ns - 1; i >= 0; i--) {
					var section = jQuery("section").eq(i);
					var currentId = section.attr("id") || "";
					var in_vp = inViewPort(section, h + 10);
					if (in_vp) {
						currentNode = currentId;
					}
				}
			}
			_scroll_top = current_top;
		} else {
			currentNode = window.current_nav_item.replace("#", "");
		}

		setNavActive(currentNode);
	});

	// Move to the right section on page load.
	jQuery(window).on("load", function() {
		var urlCurrent = location.hash;
		if (jQuery(urlCurrent).length > 0) {
			smoothScroll(urlCurrent);
		}
	});

	// Other scroll to elements
	jQuery(
		'.hero-slideshow-wrapper a[href*="#"]:not([href="#"]), .parallax-content a[href*="#"]:not([href="#"]), .back-to-top'
	).on("click", function(event) {
		event.preventDefault();
		smoothScroll(jQuery(this.hash));
	});

	// Smooth scroll animation
	function smoothScroll(element) {
		if (element.length <= 0) {
			return false;
		}
		jQuery("html, body").animate(
			{
				scrollTop: jQuery(element).offset().top - h + "px"
			},
			{
				duration: 800,
				easing: "swing",
				complete: function() {
					window.current_nav_item = false;
				}
			}
		);
	}

	if (onepress_js_settings.is_home) {
		// custom-logo-link
		jQuery(".site-branding .site-brand-inner").on("click", function(e) {
			e.preventDefault();
			jQuery("html, body").animate(
				{
					scrollTop: "0px"
				},
				{
					duration: 300,
					easing: "swing"
				}
			);
		});
	}

	if (isMobile.any()) {
		jQuery("body")
			.addClass("body-mobile")
			.removeClass("body-desktop");
	} else {
		jQuery("body")
			.addClass("body-desktop")
			.removeClass("body-mobile");
	}

	/**
	 * Reveal Animations When Scrolling
	 */
	if (onepress_js_settings.onepress_disable_animation != "1") {
		var wow = new WOW({
			offset: 50,
			mobile: false,
			live: false
		});
		wow.init();
	}

	var text_rotator = function() {
		/**
		 * Text rotator
		 */
		jQuery(".js-rotating").Morphext({
			// The [in] animation type. Refer to Animate.css for a list of available animations.
			animation: onepress_js_settings.hero_animation,
			// An array of phrases to rotate are created based on this separator. Change it if you wish to separate the phrases differently (e.g. So Simple | Very Doge | Much Wow | Such Cool).
			separator: "|",
			// The delay between the changing of each phrase in milliseconds.
			speed: parseInt(onepress_js_settings.hero_speed),
			complete: function() {
				// Called after the entrance animation is executed.
			}
		});
	};

	text_rotator();

	$document.on("header_view_changed", function() {
		text_rotator();
	});

	/**
	 * Responsive Videos
	 */
	jQuery(".site-content").fitVids({
		ignore: ".wp-block-embed iframe, .wp-block-embed object"
	});

	/**
	 * Video lightbox
	 */

	if ($.fn.lightGallery) {
		$(".videolightbox-popup").lightGallery({});
	}

	// Counter Up
	$(".counter").counterUp({
		delay: 10,
		time: 1000
	});

	/**
	 * Center vertical align for navigation.
	 */
	if (onepress_js_settings.onepress_vertical_align_menu == "1") {
		var header_height = jQuery(".site-header").height();
		jQuery(".site-header .onepress-menu").css(
			"line-height",
			header_height + "px"
		);
	}

	/**
	 * Section: Hero Full Screen Slideshow
	 */
	function hero_full_screen(no_trigger) {
		if ($(".hero-slideshow-fullscreen").length > 0) {
			var wh = $window.height();
			var top = getAdminBarHeight();
			var $header = jQuery("#masthead");
			var is_transparent = $header.hasClass("is-t");
			var headerH;
			if (is_transparent) {
				headerH = 0;
			} else {
				headerH = $header.height();
			}
			headerH += top;
			jQuery(".hero-slideshow-fullscreen").css(
				"height",
				wh - headerH + 1 + "px"
			);
			if (typeof no_trigger === "undefined" || !no_trigger) {
				$document.trigger("hero_ready");
			}
		}
	}

	$window.on("resize", function() {
		hero_full_screen();
	});
	hero_full_screen();

	$document.on("header_view_changed", function() {
		hero_full_screen();
	});

	$document.on("hero_ready", function() {
		hero_full_screen(true);
	});

	/**
	 * Hero sliders
	 */
	var heroSliders = function() {
		if ($("#parallax-hero").length <= 0) {
			jQuery(".hero-slideshow-wrapper").each(function() {
				var hero = $(this);
				if (hero.hasClass("video-hero")) {
					return;
				}
				var images = hero.data("images") || false;
				if (typeof images == "string") {
					images = jQuery.parseJSON(images);
				}

				if (images) {
					preload_images(images, function() {
						hero.backstretch(images, {
							fade: _to_number(onepress_js_settings.hero_fade),
							duration: _to_number(
								onepress_js_settings.hero_duration
							)
						});
						//
						hero.addClass("loaded");
						hero.removeClass("loading");
						setTimeout(function() {
							hero.find(".slider-spinner").remove();
						}, 600);
					});
				} else {
					hero.addClass("loaded");
					hero.removeClass("loading");
					hero.find(".slider-spinner").remove();
				}
			});
		}
	};
	heroSliders();

	$document.on("header_view_changed", function() {
		heroSliders();
	});

	$(".section-parallax, .parallax-hero").bind("inview", function(
		event,
		visible
	) {
		if (visible == true) {
		} else {
		}
	});

	var lastScrollTop = 0;
	// Parallax effect
	function parrallaxHeight() {
		$(".section-parallax ").each(function() {
			var $el = $(this);
			$(".parallax-bg", $el).height("");
			var w = $el.width();
			var h = $el.height();
			if (h <= 0) {
				h = 500;
			}
			h = h * 1.5;
			$(".parallax-bg", $el).height(h);
		});
	}

	function parallaxPosition(direction) {
		var scrollTop = $(window).scrollTop();
		//var top = $( window ).scrollTop();
		var wh = $(window).height();
		var ww = $(window).width();
		$(".section-parallax, .parallax-hero").each(function() {
			var $el = $(this);
			var pl = $(".parallax-bg", $el);

			var w = $el.width();
			var h = $el.height();
			var img = $("img", pl);

			if (img.length) {
				var imageNaturalWidth = img.prop("naturalWidth");
				var imageNaturalHeight = img.prop("naturalHeight");

				var containerHeight = h > 0 ? h : 500;
				var imgHeight = img.height();
				var parallaxDist = imgHeight - containerHeight;
				var top = $el.offset().top;
				var windowHeight = window.innerHeight;
				var windowBottom = scrollTop + windowHeight;
				var percentScrolled =
					(windowBottom - top) / (containerHeight + windowHeight);

				var parallaxTop = parallaxDist * percentScrolled;
				var l;
				var max_width = imageNaturalWidth;

				if (imageNaturalWidth > w) {
				} else {
					max_width = ww;
				}

				if (
					max_width > ww * 2 &&
					imageNaturalHeight > containerHeight * 2
				) {
					max_width = max_width - ww;
				}

				l = (max_width - ww) / 2;
				if (l < 0) {
					l = 0;
				}

				img.css({
					top: "-" + parallaxTop + "px",
					left: "-" + l + "px",
					//maxWidth: ww+'px'
					maxWidth: max_width + "px"
				});
			} else {
				//var sh = $el.height();
				var r = 0.3;
				if (wh > w) {
					r = 0.3;
				} else {
					r = 0.6;
				}

				$(".parallax-bg", $el).addClass("no-img");

				var is_inview = $el.data("inview");
				if (is_inview) {
					var offsetTop = $el.offset().top;
					var diff, bgTop;
					diff = scrollTop - offsetTop;
					bgTop = diff * r;
					$(".parallax-bg", $el).css(
						"background-position",
						"50% " + bgTop + "px"
					);
				}
			}
		});
	}

	$(window).scroll(function(e) {
		var top = $(window).scrollTop();
		var direction = "";
		if (top > lastScrollTop) {
			direction = "down";
		} else {
			direction = "up";
		}
		lastScrollTop = top;
		parallaxPosition();
	});

	parallaxPosition();
	$(window).resize(function() {
		parallaxPosition();
	});

	// Parallax hero
	$(".parallax-hero").each(function() {
		var hero = $(this);
		hero.addClass("loading");

		var bg = true;
		if (hero.find("img").length > 0) {
			bg = false;
		}
		$(".parallax-bg", hero)
			.imagesLoaded({ background: bg }, function() {
				hero.find(".hero-slideshow-wrapper").addClass("loaded");
				hero.removeClass("loading");
				setTimeout(function() {
					hero.find(".hero-slideshow-wrapper")
						.find(".slider-spinner")
						.remove();
				}, 600);
			})
			.fail(function(instance) {
				hero.removeClass("loading");
				hero.find(".hero-slideshow-wrapper").addClass("loaded");
				hero.find(".hero-slideshow-wrapper")
					.find(".slider-spinner")
					.remove();
			});
	});

	$(".section-parallax").each(function() {
		var hero = $(this);
		var bg = true;
		if (hero.find("img").length > 0) {
			bg = false;
		}
		$(".parallax-bg", hero)
			.imagesLoaded({ background: bg }, function() {})
			.fail(function(instance) {});
	});

	// Trigger when site load
	setTimeout(function() {
		$(window).trigger("scroll");
	}, 500);

	/**
	 * Gallery
	 */
	function onepress_gallery_init($context) {
		// justified
		if ($.fn.justifiedGallery) {
			$(".gallery-justified", $context).imagesLoaded(function() {
				$(".gallery-justified", $context).each(function() {
					var margin = $(this).attr("data-spacing") || 20;
					var row_height = $(this).attr("data-row-height") || 120;
					margin = _to_number(margin);
					row_height = _to_number(row_height);
					$(this).justifiedGallery({
						rowHeight: row_height,
						margins: margin,
						selector: "a, div:not(.spinner), .inner"
					});
				});
			});
		}

		var is_rtl = onepress_js_settings.is_rtl;

		// Slider
		if ($.fn.owlCarousel) {
			$(".gallery-slider", $context).owlCarousel({
				items: 1,
				itemsCustom: false,
				itemsDesktop: 1,
				itemsDesktopSmall: 1,
				itemsTablet: 1,
				itemsTabletSmall: false,
				itemsMobile: 1,
				singleItem: true,
				itemsScaleUp: false,

				slideSpeed: 200,
				paginationSpeed: 800,
				rewindSpeed: 1000,
				autoPlay: 4000,
				stopOnHover: true,

				nav: true,
				navText: ["<i class='lg-icon'></i>", "<i class='lg-icon'></i>"],

				autoHeight: true,
				rtl: is_rtl == 0 ? false : true,
				dots: false
			});

			$(".gallery-carousel", $context).each(function() {
				var n = $(this).attr("data-col") || 5;
				n = _to_number(n);
				if (n <= 0) {
					n = 5;
				}

				$(this).owlCarousel({
					items: n,
					responsive: {
						0: {
							items: 2
						},
						768: {
							items: n > 2 ? 2 : n
						},
						979: {
							items: n > 3 ? 3 : n
						},
						1199: {
							items: n
						}
					},
					rtl: is_rtl == 0 ? false : true,
					navSpeed: 800,
					autoplaySpeed: 4000,
					autoplayHoverPause: true,
					nav: true,
					navText: [
						"<i class='lg-icon'></i>",
						"<i class='lg-icon'></i>"
					],
					dots: false
				});
			});
		}

		function isotope_init() {
			if ($.fn.isotope) {
				$(".gallery-masonry", $context).each(function() {
					var m = $(this);
					var gutter = m.attr("data-gutter") || 10;
					var columns = m.attr("data-col") || 5;

					gutter = _to_number(gutter);
					columns = _to_number(columns);

					var w = $(window).width();
					if (w <= 940) {
						columns = columns > 2 ? columns - 1 : columns;
					}

					if (w <= 720) {
						columns = columns > 3 ? 3 : columns;
					}

					if (w <= 576) {
						columns = columns > 2 ? 2 : columns;
					}

					//gutter = gutter / 2;
					// m.parent().css({'margin-left': -gutter, 'margin-right': -gutter});
					m.find(".g-item").css({
						width: 100 / columns + "%",
						float: "left",
						padding: 0
					});
					// m.find('.g-item .inner').css({'padding': gutter / 2});
					m.isotope({
						// options
						itemSelector: ".g-item",
						percentPosition: true,
						masonry: {
							columnWidth: ".inner"
						}
					});
				});
			}
		}
		$(".gallery-masonry", $context).imagesLoaded(function() {
			isotope_init();
		});

		$(window).resize(function() {
			isotope_init();
		});

		if ($.fn.lightGallery) {
			var wrap_tag = $(".enable-lightbox", $context).find('.g-item').first();
			var tag_selector = 'a';
			if( wrap_tag.is( 'div' ) ){
				tag_selector = 'div';
			}
			
			$(".enable-lightbox", $context).lightGallery({
				mode: "lg-fade",
				selector: tag_selector
				//cssEasing : 'cubic-bezier(0.25, 0, 0.25, 1)'
			});
		}
	}

	onepress_gallery_init($(".gallery-content"));

	if (
		"undefined" !== typeof wp &&
		wp.customize &&
		wp.customize.selectiveRefresh
	) {
		wp.customize.selectiveRefresh.bind("partial-content-rendered", function(
			placement
		) {
			if (placement.partial.id == "section-gallery") {
				onepress_gallery_init(
					placement.container.find(".gallery-content")
				);

				// Trigger resize to make other sections work.
				$(window).resize();
			}
		});
	}
});
