// source --> https://highpointfriends.org/wp-content/themes/exodus/framework/js/responsive-embeds.js?ver=3.3.4 
/**
 * Responsive Embeds
 */

// Use FitVids.js for responsive videos and other embeds
// Note: Rdio and Spotify are correct when loading at final size ( browser resize is bad demo )
ctfw_embed_fitvids_selectors = [

	// Default (from fitVids.js)
	// We redefine these here so they can be hidden prior to FitVids.js
	"iframe[src*='player.vimeo.com']",
	"iframe[src*='youtube.com']",
	"iframe[src*='youtube-nocookie.com']",
	"iframe[src*='kickstarter.com'][src*='video.html']",
	"object",
	"embed",

	// Custom
	"iframe[src*='youtu.be']",
	"iframe[src*='blip.tv']",
	"iframe[src*='hulu.com']",
	"iframe[src*='dailymotion.com']",
	"iframe[src*='revision3.com']",
	"iframe[src*='slideshare.net']",
	"iframe[src*='scribed.com']",
	"iframe[src*='viddler.com']",
	"iframe[src*='rd.io']",
	"iframe[src*='rdio.com']",
	//"iframe[src*='spotify.com']", // has issues, not needed (see https://dev.churchthemes.local/exodus/sermons/tes/)
	"iframe[src*='soundcloud.com']:not([width$='%'])", // Jetpack soundcloud shortcode is already responsive with %, so exclude
	"iframe[src*='snd.sc']",
	"iframe[src*='livestream.com']",
	"iframe[src*='soundfaith.com']",
	"iframe[src*='ustream.tv']",
	"iframe[src*='sermon.net']:not([src*='/main']):not([src*='.sermon.net/embed'])",
	"iframe[src*='read.amazon.com']",

];
ctfw_embed_fitvids_selectors_list = ctfw_embed_fitvids_selectors.join(', ');

// Other embedded media only need max-width: 100% ( height is static ) - MediaElement.js
// Important: when done via stylesheet, MediaElement.js volume control flickers
ctfw_embed_other_selectors_list = '.wp-video-shortcode, .wp-audio-shortcode';

// Hide videos before resizing
// This keeps them from showing briefly at small size before showing at full width
ctfw_embed_all_selectors_list = ctfw_embed_fitvids_selectors_list + ', ' + ctfw_embed_other_selectors_list;
jQuery('head').prepend('<style type="text/css" id="ctfw-hide-responsive-embeds">' + ctfw_embed_all_selectors_list + ' { visibility: hidden; }</style>' + "\n");

// Resize videos to 100% width
jQuery(document).ready(function ($) {

	// Ignore those already being made responsive with WordPress.
	if (ctfw_responsive_embeds.wp_responsive_embeds) {

		// Loop selectors
		jQuery.each(ctfw_embed_fitvids_selectors, function (i, selector) {

			// Ignore FitVids if WP already making responsive.
			if (jQuery(selector).parents('.wp-has-aspect-ratio').length) {

				// Loop each element matching selector.
				jQuery.each(jQuery(selector), function (i, element) {

					// Not sermon media element (problem when also have media in content).
					if (jQuery(element).parents('[id$=-sermon-video-player]').length) {
						return;
					}

					jQuery(element).addClass('fitvidsignore');

				});

			}

		});

	}

	// Remove <object> element from Blip.tv (use iframe only) - creates a gap w/FitVid
	$("embed[src*='blip.tv']").remove();

	// FitVids.js for most embeds
	$('body').fitVids({
		customSelector: ctfw_embed_fitvids_selectors,
	});

	// Other embeds (MediaElement.js)
	$(ctfw_embed_other_selectors_list).css('max-width', '100%');

	// Show embeds after resize
	$('#ctfw-hide-responsive-embeds').remove();


});
// source --> https://highpointfriends.org/wp-content/themes/exodus/js/superfish.modified.js?ver=3.3.4 
/*
 * jQuery Superfish Menu Plugin - v1.7.10
 * Copyright (c) 2018 Joel Birch
 *
 * MODIFIED BY CT:
 * - HS 22275: Removed iOS-specific code per https://github.com/joeldbirch/superfish/issues/182#issuecomment-644838286
 *
 * Dual licensed under the MIT and GPL licenses:
 *	http://www.opensource.org/licenses/mit-license.php
 *	http://www.gnu.org/licenses/gpl.html
 */
!function (e, s) { "use strict"; var t, o, n, i, r, a, h, l, p, u, f, c, d, v, m, y, C, w = (o = "sf-breadcrumb", n = "sf-js-enabled", i = "sf-with-ul", r = "sf-arrows", a = function () { var s = /^(?![\w\W]*Windows Phone)[\w\W]*(iPhone|iPad|iPod)/i.test(navigator.userAgent); return s && e("html").css("cursor", "pointer").on("click", e.noop), s }(), h = "behavior" in (t = document.documentElement.style) && "fill" in t && /iemobile/i.test(navigator.userAgent), l = !!s.PointerEvent, p = function (e, s, t) { var o = n; s.cssArrows && (o += " " + r), e[t ? "addClass" : "removeClass"](o) }, u = function (e, s) { var t = s ? "addClass" : "removeClass"; e.children("a")[t](i) }, f = function (e) { var s = e.css("ms-touch-action"), t = e.css("touch-action"); t = "pan-y" === (t = t || s) ? "auto" : "pan-y", e.css({ "ms-touch-action": t, "touch-action": t }) }, c = function (e) { return e.closest("." + n) }, d = function (e) { return c(e).data("sfOptions") }, v = function () { var s = e(this), t = d(s); clearTimeout(t.sfTimer), s.siblings().superfish("hide").end().superfish("show") }, m = function (s) { s.retainPath = e.inArray(this[0], s.$path) > -1, this.superfish("hide"), this.parents("." + s.hoverClass).length || (s.onIdle.call(c(this)), s.$path.length && e.proxy(v, s.$path)()) }, y = function () { var s = e(this), t = d(s); clearTimeout(t.sfTimer), t.sfTimer = setTimeout(e.proxy(m, s, t), t.delay) }, C = function (s) { var t = e(this), o = d(t), n = t.siblings(s.data.popUpSelector); if (!1 === o.onHandleTouch.call(n)) return this; n.length > 0 && n.is(":hidden") && (t.one("click.superfish", !1), "MSPointerDown" === s.type || "pointerdown" === s.type ? t.trigger("focus") : e.proxy(v, t.parent("li"))()) }, { hide: function (s) { if (this.length) { var t = d(this); if (!t) return this; var o = !0 === t.retainPath ? t.$path : "", n = this.find("li." + t.hoverClass).add(this).not(o).removeClass(t.hoverClass).children(t.popUpSelector), i = t.speedOut; if (s && (n.show(), i = 0), t.retainPath = !1, !1 === t.onBeforeHide.call(n)) return this; n.stop(!0, !0).animate(t.animationOut, i, function () { var s = e(this); t.onHide.call(s) }) } return this }, show: function () { var e = d(this); if (!e) return this; var s = this.addClass(e.hoverClass).children(e.popUpSelector); return !1 === e.onBeforeShow.call(s) ? this : (s.stop(!0, !0).animate(e.animation, e.speed, function () { e.onShow.call(s) }), this) }, destroy: function () { return this.each(function () { var s, t = e(this), n = t.data("sfOptions"); if (!n) return !1; s = t.find(n.popUpSelector).parent("li"), clearTimeout(n.sfTimer), p(t, n), u(s), f(t), t.off(".superfish").off(".hoverIntent"), s.children(n.popUpSelector).attr("style", function (e, s) { if (void 0 !== s) return s.replace(/display[^;]+;?/g, "") }), n.$path.removeClass(n.hoverClass + " " + o).addClass(n.pathClass), t.find("." + n.hoverClass).removeClass(n.hoverClass), n.onDestroy.call(t), t.removeData("sfOptions") }) }, init: function (s) { return this.each(function () { var t = e(this); if (t.data("sfOptions")) return !1; var n = e.extend({}, e.fn.superfish.defaults, s), i = t.find(n.popUpSelector).parent("li"); n.$path = function (s, t) { return s.find("li." + t.pathClass).slice(0, t.pathLevels).addClass(t.hoverClass + " " + o).filter(function () { return e(this).children(t.popUpSelector).hide().show().length }).removeClass(t.pathClass) }(t, n), t.data("sfOptions", n), p(t, n, !0), u(i, !0), f(t), function (s, t) { var o = "li:has(" + t.popUpSelector + ")"; e.fn.hoverIntent && !t.disableHI ? s.hoverIntent(v, y, o) : s.on("mouseenter.superfish", o, v).on("mouseleave.superfish", o, y); var n = "MSPointerDown.superfish"; l && (n = "pointerdown.superfish"), a || (n += " touchend.superfish"), h && (n += " mousedown.superfish"), s.on("focusin.superfish", "li", v).on("focusout.superfish", "li", y).on(n, "a", t, C) }(t, n), i.not("." + o).superfish("hide", !0), n.onInit.call(this) }) } }); e.fn.superfish = function (s, t) { return w[s] ? w[s].apply(this, Array.prototype.slice.call(arguments, 1)) : "object" != typeof s && s ? e.error("Method " + s + " does not exist on jQuery.fn.superfish") : w.init.apply(this, arguments) }, e.fn.superfish.defaults = { popUpSelector: "ul,.sf-mega", hoverClass: "sfHover", pathClass: "overrideThisToUse", pathLevels: 1, delay: 800, animation: { opacity: "show" }, animationOut: { opacity: "hide" }, speed: "normal", speedOut: "fast", cssArrows: !0, disableHI: !1, onInit: e.noop, onBeforeShow: e.noop, onShow: e.noop, onBeforeHide: e.noop, onHide: e.noop, onIdle: e.noop, onDestroy: e.noop, onHandleTouch: e.noop } }(jQuery, window);
// source --> https://highpointfriends.org/wp-content/themes/exodus/js/supersubs.js?ver=3.3.4 

/*
 * Supersubs v0.3b - jQuery plugin
 * Copyright (c) 2013 Joel Birch
 *
 * Dual licensed under the MIT and GPL licenses:
 * 	http://www.opensource.org/licenses/mit-license.php
 * 	http://www.gnu.org/licenses/gpl.html
 *
 *
 * This plugin automatically adjusts submenu widths of suckerfish-style menus to that of
 * their longest list item children. If you use this, please expect bugs and report them
 * to the jQuery Google Group with the word 'Superfish' in the subject line.
 *
 */

;(function($){ // $ will refer to jQuery within this closure

	$.fn.supersubs = function(options){
		var opts = $.extend({}, $.fn.supersubs.defaults, options);
		// return original object to support chaining
		return this.each(function() {
			// cache selections
			var $$ = $(this);
			// support metadata
			var o = $.meta ? $.extend({}, opts, $$.data()) : opts;
			// cache all ul elements and show them in preparation for measurements
			$ULs = $$.find('ul').show();
			// get the font size of menu.
			// .css('fontSize') returns various results cross-browser, so measure an em dash instead
			var fontsize = $('<li id="menu-fontsize">&#8212;</li>').css({
				'padding' : 0,
				'position' : 'absolute',
				'top' : '-999em',
				'width' : 'auto'
			}).appendTo($$)[0].clientWidth; //clientWidth is faster than .width()
			// remove em dash
			$('#menu-fontsize').remove();
			// loop through each ul in menu
			$ULs.each(function(i) {	
				// cache this ul
				var $ul = $(this);
				// get all (li) children of this ul
				var $LIs = $ul.children();
				// get all anchor grand-children
				var $As = $LIs.children('a');
				// force content to one line and save current float property
				var liFloat = $LIs.css('white-space','nowrap').css('float');
				// remove width restrictions and floats so elements remain vertically stacked
				$ul.add($LIs).add($As).css({
					'float' : 'none',
					'width'	: 'auto'
				});
				// this ul will now be shrink-wrapped to longest li due to position:absolute
				// so save its width as ems.
				var emWidth = $ul[0].clientWidth / fontsize;
				// add more width to ensure lines don't turn over at certain sizes in various browsers
				emWidth += o.extraWidth;
				// restrict to at least minWidth and at most maxWidth
				if (emWidth > o.maxWidth)		{ emWidth = o.maxWidth; }
				else if (emWidth < o.minWidth)	{ emWidth = o.minWidth; }
				emWidth += 'em';
				// set ul to width in ems
				$ul.css('width',emWidth);
				// restore li floats to avoid IE bugs
				// set li width to full width of this ul
				// revert white-space to normal
				$LIs.css({
					'float' : liFloat,
					'width' : '100%',
					'white-space' : 'normal'
				})
				// update offset position of descendant ul to reflect new width of parent.
				// set it to 100% in case it isn't already set to this in the CSS
				.each(function(){
					var $childUl = $(this).children('ul');
					var offsetDirection = $childUl.css('left') !== undefined ? 'left' : 'right';
					$childUl.css(offsetDirection,'100%');
				});
			}).hide();
			
		});
	};
	// expose defaults
	$.fn.supersubs.defaults = {
		minWidth		: 9,		// requires em unit.
		maxWidth		: 25,		// requires em unit.
		extraWidth		: 0			// extra width can ensure lines don't sometimes turn over due to slight browser differences in how they round-off values
	};
	
})(jQuery); // plugin code ends;
// source --> https://highpointfriends.org/wp-content/themes/exodus/js/jquery.meanmenu.min.js?ver=3.3.4 
/*!
* jQuery meanMenu v2.0.8
* @Copyright (C) 2012-2014 Chris Wharton @ MeanThemes (https://github.com/meanthemes/meanMenu)
*
* Jubilee Modifications:
* 1. Change click( to on('click' (jQuery deprecation)
* 2. Change resize( to on('resize' (jQuery deprecation)
* 3. Replace meanMenuOpen span tags to be compatible with newer jQuery
*/
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT
* HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED,
* INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR
* FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE
* OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS,
* COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.COPYRIGHT HOLDERS WILL NOT
* BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL
* DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://gnu.org/licenses/>.
*
* Find more information at http://www.meanthemes.com/plugins/meanmenu/
*
*/
(function ($) {
    "use strict";
    $.fn.meanmenu = function (options) {
        var defaults = {
            meanMenuTarget: jQuery(this), // Target the current HTML markup you wish to replace
            meanMenuContainer: 'body', // Choose where meanmenu will be placed within the HTML
            meanMenuClose: "X", // single character you want to represent the close menu button
            meanMenuCloseSize: "18px", // set font size of close button
            //meanMenuOpen: "<span /><span /><span />", // text/markup you want when menu is closed
            meanMenuOpen: "<span></span><span></span><span></span>", // text/markup you want when menu is closed
            meanRevealPosition: "right", // left right or center positions
            meanRevealPositionDistance: "0", // Tweak the position of the menu
            meanRevealColour: "", // override CSS colours for the reveal background
            meanScreenWidth: "480", // set the screen width you want meanmenu to kick in at
            meanNavPush: "", // set a height here in px, em or % if you want to budge your layout now the navigation is missing.
            meanShowChildren: true, // true to show children in the menu, false to hide them
            meanExpandableChildren: true, // true to allow expand/collapse children
            meanExpand: "+", // single character you want to represent the expand for ULs
            meanContract: "-", // single character you want to represent the contract for ULs
            meanRemoveAttrs: false, // true to remove classes and IDs, false to keep them
            onePage: false, // set to true for one page sites
            meanDisplay: "block", // override display method for table cell based layouts e.g. table-cell
            removeElements: "" // set to hide page elements
        };
        options = $.extend(defaults, options);

        // get browser width
        var currentWidth = window.innerWidth || document.documentElement.clientWidth;

        return this.each(function () {
            var meanMenu = options.meanMenuTarget;
            var meanContainer = options.meanMenuContainer;
            var meanMenuClose = options.meanMenuClose;
            var meanMenuCloseSize = options.meanMenuCloseSize;
            var meanMenuOpen = options.meanMenuOpen;
            var meanRevealPosition = options.meanRevealPosition;
            var meanRevealPositionDistance = options.meanRevealPositionDistance;
            var meanRevealColour = options.meanRevealColour;
            var meanScreenWidth = options.meanScreenWidth;
            var meanNavPush = options.meanNavPush;
            var meanRevealClass = ".meanmenu-reveal";
            var meanShowChildren = options.meanShowChildren;
            var meanExpandableChildren = options.meanExpandableChildren;
            var meanExpand = options.meanExpand;
            var meanContract = options.meanContract;
            var meanRemoveAttrs = options.meanRemoveAttrs;
            var onePage = options.onePage;
            var meanDisplay = options.meanDisplay;
            var removeElements = options.removeElements;

            //detect known mobile/tablet usage
            var isMobile = false;
            if ((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/iPad/i)) || (navigator.userAgent.match(/Android/i)) || (navigator.userAgent.match(/Blackberry/i)) || (navigator.userAgent.match(/Windows Phone/i))) {
                isMobile = true;
            }

            if ((navigator.userAgent.match(/MSIE 8/i)) || (navigator.userAgent.match(/MSIE 7/i))) {
                // add scrollbar for IE7 & 8 to stop breaking resize function on small content sites
                jQuery('html').css("overflow-y", "scroll");
            }

            var meanRevealPos = "";
            var meanCentered = function () {
                if (meanRevealPosition === "center") {
                    var newWidth = window.innerWidth || document.documentElement.clientWidth;
                    var meanCenter = ((newWidth / 2) - 22) + "px";
                    meanRevealPos = "left:" + meanCenter + ";right:auto;";

                    if (!isMobile) {
                        jQuery('.meanmenu-reveal').css("left", meanCenter);
                    } else {
                        jQuery('.meanmenu-reveal').animate({
                            left: meanCenter
                        });
                    }
                }
            };

            var menuOn = false;
            var meanMenuExist = false;


            if (meanRevealPosition === "right") {
                meanRevealPos = "right:" + meanRevealPositionDistance + ";left:auto;";
            }
            if (meanRevealPosition === "left") {
                meanRevealPos = "left:" + meanRevealPositionDistance + ";right:auto;";
            }
            // run center function
            meanCentered();

            // set all styles for mean-reveal
            var $navreveal = "";

            var meanInner = function () {
                // get last class name
                if (jQuery($navreveal).is(".meanmenu-reveal.meanclose")) {
                    $navreveal.html(meanMenuClose);
                } else {
                    $navreveal.html(meanMenuOpen);
                }
            };

            // re-instate original nav (and call this on window.width functions)
            var meanOriginal = function () {
                jQuery('.mean-bar,.mean-push').remove();
                jQuery(meanContainer).removeClass("mean-container");
                jQuery(meanMenu).css('display', meanDisplay);
                menuOn = false;
                meanMenuExist = false;
                jQuery(removeElements).removeClass('mean-remove');
            };

            // navigation reveal
            var showMeanMenu = function () {
                var meanStyles = "background:" + meanRevealColour + ";color:" + meanRevealColour + ";" + meanRevealPos;
                if (currentWidth <= meanScreenWidth) {
                    jQuery(removeElements).addClass('mean-remove');
                    meanMenuExist = true;
                    // add class to body so we don't need to worry about media queries here, all CSS is wrapped in '.mean-container'
                    jQuery(meanContainer).addClass("mean-container");
                    jQuery('.mean-container').prepend('<div class="mean-bar"><a href="#nav" class="meanmenu-reveal" style="' + meanStyles + '">Show Navigation</a><nav class="mean-nav"></nav></div>');

                    //push meanMenu navigation into .mean-nav
                    var meanMenuContents = jQuery(meanMenu).html();
                    jQuery('.mean-nav').html(meanMenuContents);

                    // remove all classes from EVERYTHING inside meanmenu nav
                    if (meanRemoveAttrs) {
                        jQuery('nav.mean-nav ul, nav.mean-nav ul *').each(function () {
                            // First check if this has mean-remove class
                            if (jQuery(this).is('.mean-remove')) {
                                jQuery(this).attr('class', 'mean-remove');
                            } else {
                                jQuery(this).removeAttr("class");
                            }
                            jQuery(this).removeAttr("id");
                        });
                    }

                    // push in a holder div (this can be used if removal of nav is causing layout issues)
                    jQuery(meanMenu).before('<div class="mean-push" />');
                    jQuery('.mean-push').css("margin-top", meanNavPush);

                    // hide current navigation and reveal mean nav link
                    jQuery(meanMenu).hide();
                    jQuery(".meanmenu-reveal").show();

                    // turn 'X' on or off
                    jQuery(meanRevealClass).html(meanMenuOpen);
                    $navreveal = jQuery(meanRevealClass);

                    //hide mean-nav ul
                    jQuery('.mean-nav ul').hide();

                    // hide sub nav
                    if (meanShowChildren) {
                        // allow expandable sub nav(s)
                        if (meanExpandableChildren) {
                            jQuery('.mean-nav ul ul').each(function () {
                                if (jQuery(this).children().length) {
                                    jQuery(this, 'li:first').parent().append('<a class="mean-expand" href="#" style="font-size: ' + meanMenuCloseSize + '">' + meanExpand + '</a>');
                                }
                            });
                            jQuery('.mean-expand').on("click", function (e) {
                                e.preventDefault();
                                if (jQuery(this).hasClass("mean-clicked")) {
                                    jQuery(this).text(meanExpand);
                                    jQuery(this).prev('ul').slideUp(300, function () { });
                                } else {
                                    jQuery(this).text(meanContract);
                                    jQuery(this).prev('ul').slideDown(300, function () { });
                                }
                                jQuery(this).toggleClass("mean-clicked");
                            });
                        } else {
                            jQuery('.mean-nav ul ul').show();
                        }
                    } else {
                        jQuery('.mean-nav ul ul').hide();
                    }

                    // add last class to tidy up borders
                    jQuery('.mean-nav ul li').last().addClass('mean-last');
                    $navreveal.removeClass("meanclose");
                    jQuery($navreveal).on('click', function (e) {
                        e.preventDefault();
                        if (menuOn === false) {
                            $navreveal.css("text-align", "center");
                            $navreveal.css("text-indent", "0");
                            $navreveal.css("font-size", meanMenuCloseSize);

                            // Jubilee Modification: Change slideDown to fadeIn
                            jQuery('.mean-nav ul:first').slideDown();
                            //jQuery('.mean-nav ul:first').show();

                            menuOn = true;
                        } else {

                            // Jubilee Modification: Change slideUp to hide
                            jQuery('.mean-nav ul:first').slideUp();
                            //jQuery('.mean-nav ul:first').hide();

                            menuOn = false;

                        }
                        $navreveal.toggleClass("meanclose");
                        meanInner();
                        jQuery(removeElements).addClass('mean-remove');
                    });

                    // for one page websites, reset all variables...
                    if (onePage) {
                        jQuery('.mean-nav ul > li > a:first-child').on("click", function () {
                            jQuery('.mean-nav ul:first').slideUp();
                            menuOn = false;
                            jQuery($navreveal).toggleClass("meanclose").html(meanMenuOpen);
                        });
                    }
                } else {
                    meanOriginal();
                }
            };

            if (!isMobile) {
                // reset menu on resize above meanScreenWidth
                jQuery(window).on('resize', function () {
                    currentWidth = window.innerWidth || document.documentElement.clientWidth;
                    if (currentWidth > meanScreenWidth) {
                        meanOriginal();
                    } else {
                        meanOriginal();
                    }
                    if (currentWidth <= meanScreenWidth) {
                        showMeanMenu();
                        meanCentered();
                    } else {
                        meanOriginal();
                    }
                });
            }

            jQuery(window).on('resize', function () {
                // get browser width
                currentWidth = window.innerWidth || document.documentElement.clientWidth;

                if (!isMobile) {
                    meanOriginal();
                    if (currentWidth <= meanScreenWidth) {
                        showMeanMenu();
                        meanCentered();
                    }
                } else {
                    meanCentered();
                    if (currentWidth <= meanScreenWidth) {
                        if (meanMenuExist === false) {
                            showMeanMenu();
                        }
                    } else {
                        meanOriginal();
                    }
                }
            });

            // run main menuMenu function on load
            showMeanMenu();
        });
    };
})(jQuery);
// source --> https://highpointfriends.org/wp-content/themes/exodus/js/jquery.smooth-scroll.min.js?ver=3.3.4 
/*!
 * jQuery Smooth Scroll - v2.2.0 - 2017-05-05
 * https://github.com/kswedberg/jquery-smooth-scroll
 * Copyright (c) 2017 Karl Swedberg
 * Licensed MIT
 */

!function (a) { "function" == typeof define && define.amd ? define(["jquery"], a) : a("object" == typeof module && module.exports ? require("jquery") : jQuery) }(function (a) { var b = {}, c = { exclude: [], excludeWithin: [], offset: 0, direction: "top", delegateSelector: null, scrollElement: null, scrollTarget: null, autoFocus: !1, beforeScroll: function () { }, afterScroll: function () { }, easing: "swing", speed: 400, autoCoefficient: 2, preventDefault: !0 }, d = function (b) { var c = [], d = !1, e = b.dir && "left" === b.dir ? "scrollLeft" : "scrollTop"; return this.each(function () { var b = a(this); if (this !== document && this !== window) return !document.scrollingElement || this !== document.documentElement && this !== document.body ? void (b[e]() > 0 ? c.push(this) : (b[e](1), d = b[e]() > 0, d && c.push(this), b[e](0))) : (c.push(document.scrollingElement), !1) }), c.length || this.each(function () { this === document.documentElement && "smooth" === a(this).css("scrollBehavior") && (c = [this]), c.length || "BODY" !== this.nodeName || (c = [this]) }), "first" === b.el && c.length > 1 && (c = [c[0]]), c }, e = /^([\-\+]=)(\d+)/; a.fn.extend({ scrollable: function (a) { var b = d.call(this, { dir: a }); return this.pushStack(b) }, firstScrollable: function (a) { var b = d.call(this, { el: "first", dir: a }); return this.pushStack(b) }, smoothScroll: function (b, c) { if ("options" === (b = b || {})) return c ? this.each(function () { var b = a(this), d = a.extend(b.data("ssOpts") || {}, c); a(this).data("ssOpts", d) }) : this.first().data("ssOpts"); var d = a.extend({}, a.fn.smoothScroll.defaults, b), e = function (b) { var c = function (a) { return a.replace(/(:|\.|\/)/g, "\\$1") }, e = this, f = a(this), g = a.extend({}, d, f.data("ssOpts") || {}), h = d.exclude, i = g.excludeWithin, j = 0, k = 0, l = !0, m = {}, n = a.smoothScroll.filterPath(location.pathname), o = a.smoothScroll.filterPath(e.pathname), p = location.hostname === e.hostname || !e.hostname, q = g.scrollTarget || o === n, r = c(e.hash); if (r && !a(r).length && (l = !1), g.scrollTarget || p && q && r) { for (; l && j < h.length;)f.is(c(h[j++])) && (l = !1); for (; l && k < i.length;)f.closest(i[k++]).length && (l = !1) } else l = !1; l && (g.preventDefault && b.preventDefault(), a.extend(m, g, { scrollTarget: g.scrollTarget || r, link: e }), a.smoothScroll(m)) }; return null !== b.delegateSelector ? this.off("click.smoothscroll", b.delegateSelector).on("click.smoothscroll", b.delegateSelector, e) : this.off("click.smoothscroll").on("click.smoothscroll", e), this } }); var f = function (a) { var b = { relative: "" }, c = "string" == typeof a && e.exec(a); return "number" == typeof a ? b.px = a : c && (b.relative = c[1], b.px = parseFloat(c[2]) || 0), b }, g = function (b) { var c = a(b.scrollTarget); b.autoFocus && c.length && (c[0].focus(), c.is(document.activeElement) || (c.prop({ tabIndex: -1 }), c[0].focus())), b.afterScroll.call(b.link, b) }; a.smoothScroll = function (c, d) { if ("options" === c && "object" == typeof d) return a.extend(b, d); var e, h, i, j, k = f(c), l = {}, m = 0, n = "offset", o = "scrollTop", p = {}, q = {}; k.px ? e = a.extend({ link: null }, a.fn.smoothScroll.defaults, b) : (e = a.extend({ link: null }, a.fn.smoothScroll.defaults, c || {}, b), e.scrollElement && (n = "position", "static" === e.scrollElement.css("position") && e.scrollElement.css("position", "relative")), d && (k = f(d))), o = "left" === e.direction ? "scrollLeft" : o, e.scrollElement ? (h = e.scrollElement, k.px || /^(?:HTML|BODY)$/.test(h[0].nodeName) || (m = h[o]())) : h = a("html, body").firstScrollable(e.direction), e.beforeScroll.call(h, e), l = k.px ? k : { relative: "", px: a(e.scrollTarget)[n]() && a(e.scrollTarget)[n]()[e.direction] || 0 }, p[o] = l.relative + (l.px + m + e.offset), i = e.speed, "auto" === i && (j = Math.abs(p[o] - h[o]()), i = j / e.autoCoefficient), q = { duration: i, easing: e.easing, complete: function () { g(e) } }, e.step && (q.step = e.step), h.length ? h.stop().animate(p, q) : g(e) }, a.smoothScroll.version = "2.2.0", a.smoothScroll.filterPath = function (a) { return a = a || "", a.replace(/^\//, "").replace(/(?:index|default).[a-zA-Z]{3,4}$/, "").replace(/\/$/, "") }, a.fn.smoothScroll.defaults = c });
// source --> https://highpointfriends.org/wp-content/themes/exodus/js/jquery_cookie.min.js?ver=3.3.4 
/*!
 * jQuery Cookie Plugin v1.4.1
 * https://github.com/carhartl/jquery-cookie
 *
 * Copyright 2013 Klaus Hartl
 * Released under the MIT license
 */
(function(e){if(typeof define==="function"&&define.amd){define(["jquery"],e)}else if(typeof exports==="object"){e(require("jquery"))}else{e(jQuery)}})(function(e){function n(e){return u.raw?e:encodeURIComponent(e)}function r(e){return u.raw?e:decodeURIComponent(e)}function i(e){return n(u.json?JSON.stringify(e):String(e))}function s(e){if(e.indexOf('"')===0){e=e.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\")}try{e=decodeURIComponent(e.replace(t," "));return u.json?JSON.parse(e):e}catch(n){}}function o(t,n){var r=u.raw?t:s(t);return e.isFunction(n)?n(r):r}var t=/\+/g;var u=e.cookie=function(t,s,a){if(s!==undefined&&!e.isFunction(s)){a=e.extend({},u.defaults,a);if(typeof a.expires==="number"){var f=a.expires,l=a.expires=new Date;l.setTime(+l+f*864e5)}return document.cookie=[n(t),"=",i(s),a.expires?"; expires="+a.expires.toUTCString():"",a.path?"; path="+a.path:"",a.domain?"; domain="+a.domain:"",a.secure?"; secure":""].join("")}var c=t?undefined:{};var h=document.cookie?document.cookie.split("; "):[];for(var p=0,d=h.length;p<d;p++){var v=h[p].split("=");var m=r(v.shift());var g=v.join("=");if(t&&t===m){c=o(g,s);break}if(!t&&(g=o(g))!==undefined){c[m]=g}}return c};u.defaults={};e.removeCookie=function(t,n){if(e.cookie(t)===undefined){return false}e.cookie(t,"",e.extend({},n,{expires:-1}));return!e.cookie(t)}});