PageSourceSearch

https://egyptopia.com/html/customization/egyptopia.com/assets/js/custom.js

js egyptopia.com collected 2026-10-02 07:30:57 UTC 13,468 bytes, 324 lines download raw bytes

1(function ($) {
2	"use strict";
3
4
5	/*---- Bottom To Top Scroll Script ---*/
6	$(window).on('scroll', function () {
7		var height = $(window).scrollTop();
8		if (height > 100) {
9			$('#back2Top').fadeIn();
10		} else {
11			$('#back2Top').fadeOut();
12		}
13	});
14
15
16
17	// Carousel
18	$('.main-carousel').flickity({
19		// options
20		cellAlign: 'center',
21		contain: true
22	});
23
24
25	// Tooltip
26	var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
27	var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
28		return new bootstrap.Tooltip(tooltipTriggerEl)
29	});
30
31	$("#back2Top").on('click', function (event) {
32		event.preventDefault();
33		$("html, body").animate({ scrollTop: 0 }, "slow");
34		return false;
35	});
36
37	// Navigation
38	! function (n, e, i, a) {
39		n.navigation = function (t, s) {
40			var o = {
41				responsive: !0,
42				mobileBreakpoint: 992,
43				showDuration: 300,
44				hideDuration: 300,
45				showDelayDuration: 0,
46				hideDelayDuration: 0,
47				submenuTrigger: "hover",
48				effect: "fade",
49				submenuIndicator: !0,
50				hideSubWhenGoOut: !0,
51				visibleSubmenusOnMobile: !1,
52				fixed: !1,
53				overlay: !0,
54				overlayColor: "rgba(0, 0, 0, 0.5)",
55				hidden: !1,
56				offCanvasSide: "left",
57				onInit: function () { },
58				onShowOffCanvas: function () { },
59				onHideOffCanvas: function () { }
60			},
61				u = this,
62				r = Number.MAX_VALUE,
63				d = 1,
64				f = "click.nav touchstart.nav",
65				l = "mouseenter.nav",
66				c = "mouseleave.nav";
67			u.settings = {};
68			var t = (n(t), t);
69			n(t).find(".nav-menus-wrapper").prepend("<span class='nav-menus-wrapper-close-button'>✕</span>"), n(t).find(".nav-search").length > 0 && n(t).find(".nav-search").find("form").prepend("<span class='nav-search-close-button'>✕</span>"), u.init = function () {
70				u.settings = n.extend({}, o, s), "right" == u.settings.offCanvasSide && n(t).find(".nav-menus-wrapper").addClass("nav-menus-wrapper-right"), u.settings.hidden && (n(t).addClass("navigation-hidden"), u.settings.mobileBreakpoint = 99999), v(), u.settings.fixed && n(t).addClass("navigation-fixed"), n(t).find(".nav-toggle").on("click touchstart", function (n) {
71					n.stopPropagation(), n.preventDefault(), u.showOffcanvas(), s !== a && u.callback("onShowOffCanvas")
72				}), n(t).find(".nav-menus-wrapper-close-button").on("click touchstart", function () {
73					u.hideOffcanvas(), s !== a && u.callback("onHideOffCanvas")
74				}), n(t).find(".nav-search-button").on("click touchstart", function (n) {
75					n.stopPropagation(), n.preventDefault(), u.toggleSearch()
76				}), n(t).find(".nav-search-close-button").on("click touchstart", function () {
77					u.toggleSearch()
78				}), n(t).find(".megamenu-tabs").length > 0 && y(), n(e).resize(function () {
79					m(), C()
80				}), m(), s !== a && u.callback("onInit")
81			};
82			var v = function () {
83				n(t).find("li").each(function () {
84					n(this).children(".nav-dropdown,.megamenu-panel").length > 0 && (n(this).children(".nav-dropdown,.megamenu-panel").addClass("nav-submenu"), u.settings.submenuIndicator && n(this).children("a").append("<span class='submenu-indicator'><span class='submenu-indicator-chevron'></span></span>"))
85				})
86			};
87			u.showSubmenu = function (e, i) {
88				g() > u.settings.mobileBreakpoint && n(t).find(".nav-search").find("form").slideUp(), "fade" == i ? n(e).children(".nav-submenu").stop(!0, !0).delay(u.settings.showDelayDuration).fadeIn(u.settings.showDuration) : n(e).children(".nav-submenu").stop(!0, !0).delay(u.settings.showDelayDuration).slideDown(u.settings.showDuration), n(e).addClass("nav-submenu-open")
89			}, u.hideSubmenu = function (e, i) {
90				"fade" == i ? n(e).find(".nav-submenu").stop(!0, !0).delay(u.settings.hideDelayDuration).fadeOut(u.settings.hideDuration) : n(e).find(".nav-submenu").stop(!0, !0).delay(u.settings.hideDelayDuration).slideUp(u.settings.hideDuration), n(e).removeClass("nav-submenu-open").find(".nav-submenu-open").removeClass("nav-submenu-open")
91			};
92			var h = function () {
93				n("body").addClass("no-scroll"), u.settings.overlay && (n(t).append("<div class='nav-overlay-panel'></div>"), n(t).find(".nav-overlay-panel").css("background-color", u.settings.overlayColor).fadeIn(300).on("click touchstart", function (n) {
94					u.hideOffcanvas()
95				}))
96			},
97				p = function () {
98					n("body").removeClass("no-scroll"), u.settings.overlay && n(t).find(".nav-overlay-panel").fadeOut(400, function () {
99						n(this).remove()
100					})
101				};
102			u.showOffcanvas = function () {
103				h(), "left" == u.settings.offCanvasSide ? n(t).find(".nav-menus-wrapper").css("transition-property", "left").addClass("nav-menus-wrapper-open") : n(t).find(".nav-menus-wrapper").css("transition-property", "right").addClass("nav-menus-wrapper-open")
104			}, u.hideOffcanvas = function () {
105				n(t).find(".nav-menus-wrapper").removeClass("nav-menus-wrapper-open").on("webkitTransitionEnd moztransitionend transitionend oTransitionEnd", function () {
106					n(t).find(".nav-menus-wrapper").css("transition-property", "none").off()
107				}), p()
108			}, u.toggleOffcanvas = function () {
109				g() <= u.settings.mobileBreakpoint && (n(t).find(".nav-menus-wrapper").hasClass("nav-menus-wrapper-open") ? (u.hideOffcanvas(), s !== a && u.callback("onHideOffCanvas")) : (u.showOffcanvas(), s !== a && u.callback("onShowOffCanvas")))
110			}, u.toggleSearch = function () {
111				"none" == n(t).find(".nav-search").find("form").css("display") ? (n(t).find(".nav-search").find("form").slideDown(), n(t).find(".nav-submenu").fadeOut(200)) : n(t).find(".nav-search").find("form").slideUp()
112			};
113			var m = function () {
114				u.settings.responsive ? (g() <= u.settings.mobileBreakpoint && r > u.settings.mobileBreakpoint && (n(t).addClass("navigation-portrait").removeClass("navigation-landscape"), D()), g() > u.settings.mobileBreakpoint && d <= u.settings.mobileBreakpoint && (n(t).addClass("navigation-landscape").removeClass("navigation-portrait"), k(), p(), u.hideOffcanvas()), r = g(), d = g()) : k()
115			},
116				b = function () {
117					n("body").on("click.body touchstart.body", function (e) {
118						0 === n(e.target).closest(".navigation").length && (n(t).find(".nav-submenu").fadeOut(), n(t).find(".nav-submenu-open").removeClass("nav-submenu-open"), n(t).find(".nav-search").find("form").slideUp())
119					})
120				},
121				g = function () {
122					return e.innerWidth || i.documentElement.clientWidth || i.body.clientWidth
123				},
124				w = function () {
125					n(t).find(".nav-menu").find("li, a").off(f).off(l).off(c)
126				},
127				C = function () {
128					if (g() > u.settings.mobileBreakpoint) {
129						var e = n(t).outerWidth(!0);
130						n(t).find(".nav-menu").children("li").children(".nav-submenu").each(function () {
131							n(this).parent().position().left + n(this).outerWidth() > e ? n(this).css("right", 0) : n(this).css("right", "auto")
132						})
133					}
134				},
135				y = function () {
136					function e(e) {
137						var i = n(e).children(".megamenu-tabs-nav").children("li"),
138							a = n(e).children(".megamenu-tabs-pane");
139						n(i).on("click.tabs touchstart.tabs", function (e) {
140							e.stopPropagation(), e.preventDefault(), n(i).removeClass("active"), n(this).addClass("active"), n(a).hide(0).removeClass("active"), n(a[n(this).index()]).show(0).addClass("active")
141						})
142					}
143					if (n(t).find(".megamenu-tabs").length > 0)
144						for (var i = n(t).find(".megamenu-tabs"), a = 0; a < i.length; a++) e(i[a])
145				},
146				k = function () {
147					w(), n(t).find(".nav-submenu").hide(0), navigator.userAgent.match(/Mobi/i) || navigator.maxTouchPoints > 0 || "click" == u.settings.submenuTrigger ? n(t).find(".nav-menu, .nav-dropdown").children("li").children("a").on(f, function (i) {
148						if (u.hideSubmenu(n(this).parent("li").siblings("li"), u.settings.effect), n(this).closest(".nav-menu").siblings(".nav-menu").find(".nav-submenu").fadeOut(u.settings.hideDuration), n(this).siblings(".nav-submenu").length > 0) {
149							if (i.stopPropagation(), i.preventDefault(), "none" == n(this).siblings(".nav-submenu").css("display")) return u.showSubmenu(n(this).parent("li"), u.settings.effect), C(), !1;
150							if (u.hideSubmenu(n(this).parent("li"), u.settings.effect), "_blank" == n(this).attr("target") || "blank" == n(this).attr("target")) e.open(n(this).attr("href"));
151							else {
152								if ("#" == n(this).attr("href") || "" == n(this).attr("href")) return !1;
153								e.location.href = n(this).attr("href")
154							}
155						}
156					}) : n(t).find(".nav-menu").find("li").on(l, function () {
157						u.showSubmenu(this, u.settings.effect), C()
158					}).on(c, function () {
159						u.hideSubmenu(this, u.settings.effect)
160					}), u.settings.hideSubWhenGoOut && b()
161				},
162				D = function () {
163					w(), n(t).find(".nav-submenu").hide(0), u.settings.visibleSubmenusOnMobile ? n(t).find(".nav-submenu").show(0) : (n(t).find(".nav-submenu").hide(0), n(t).find(".submenu-indicator").removeClass("submenu-indicator-up"), u.settings.submenuIndicator ? n(t).find(".submenu-indicator").on(f, function (e) {
164						return e.stopPropagation(), e.preventDefault(), u.hideSubmenu(n(this).parent("a").parent("li").siblings("li"), "slide"), u.hideSubmenu(n(this).closest(".nav-menu").siblings(".nav-menu").children("li"), "slide"), "none" == n(this).parent("a").siblings(".nav-submenu").css("display") ? (n(this).addClass("submenu-indicator-up"), n(this).parent("a").parent("li").siblings("li").find(".submenu-indicator").removeClass("submenu-indicator-up"), n(this).closest(".nav-menu").siblings(".nav-menu").find(".submenu-indicator").removeClass("submenu-indicator-up"), u.showSubmenu(n(this).parent("a").parent("li"), "slide"), !1) : (n(this).parent("a").parent("li").find(".submenu-indicator").removeClass("submenu-indicator-up"), void u.hideSubmenu(n(this).parent("a").parent("li"), "slide"))
165					}) : k())
166				};
167			u.callback = function (n) {
168				s[n] !== a && s[n].call(t)
169			}, u.init()
170		}, n.fn.navigation = function (e) {
171			return this.each(function () {
172				if (a === n(this).data("navigation")) {
173					var i = new n.navigation(this, e);
174					n(this).data("navigation", i)
175				}
176			})
177		}
178	}
179		(jQuery, window, document), $(document).ready(function () {
180			$("#navigation").navigation()
181		});
182
183	$(window).scroll(function () {
184		var scroll = $(window).scrollTop();
185
186		if (scroll >= 50) {
187			$(".header").addClass("header-fixed");
188		} else {
189			$(".header").removeClass("header-fixed");
190		}
191	});
192
193	// Date Range
194	$("#basicDate").flatpickr({
195		enableTime: false,
196		dateFormat: "Y-m-d"
197	});
198	
199	// Date Range
200	$(".choosedate").flatpickr({
201		enableTime: false,
202		dateFormat: "Y-m-d"
203	});
204
205	$("#checkinout").flatpickr({
206		mode: "range",
207		minDate: "today",
208		dateFormat: "Y-m-d",
209		disable: [
210			function (date) {
211				// disable every multiple of 8
212				return !(date.getDate() % 8);
213			}
214		]
215	});
216
217	// All Select Form Classes
218	$('.select').select2();
219
220	$('.multiple-select').select2();
221
222	$(".leaving").select2({
223		placeholder: "Leaving From"
224	});
225
226	$(".goingto").select2({
227		placeholder: "Going To"
228	});
229	
230	$(".occupant").select2({
231		placeholder: "Occupant"
232	});
233	
234	$(".pickup").select2({
235		placeholder: "Select Pickup Location"
236	});
237	
238	$(".drop").select2({
239		placeholder: "Select Drop Location"
240	});
241	
242	$(".tour").select2({
243		placeholder: "Select Tour Types"
244	});
245
246
247	$("body").on('click', '.toggle-password', function () {
248		$(this).toggleClass("fa-eye-slash");
249		var input = $("#password-field");
250		if (input.attr("type") === "password") {
251			input.attr("type", "text");
252		} else {
253			input.attr("type", "password");
254		}
255
256	});
257
258	(function () {
259		var n,
260			o = document.querySelectorAll(".masonry-grid");
261		if (null !== o)
262			for (var e = 0; e < o.length; e++) {
263				var t = (function (e) {
264					(n = new Shuffle(o[e], { itemSelector: ".masonry-grid-item", sizer: ".masonry-grid-item" })),
265						imagesLoaded(o[e]).on("progress", function () {
266							n.layout();
267						});
268					var a = o[e].closest(".masonry-filterable");
269					if (null === a) return { v: void 0 };
270					for (var t = a.querySelectorAll(".masonry-filters [data-group]"), r = 0; r < t.length; r++)
271						t[r].addEventListener("click", function (e) {
272							var t = a.querySelector(".masonry-filters .active"),
273								r = this.dataset.group;
274							null !== t && t.classList.remove("active"), this.classList.add("active"), n.filter(r), e.preventDefault();
275						});
276				})(e);
277
278			}
279	})();
280
281	// Range Slider Script
282	$(".js-range-slider").ionRangeSlider({
283		type: "single",
284		min: 0,
285		max: 1000,
286		from: 100,
287		to: 900,
288		grid: true
289	});
290
291	// Custom Dropdown
292	const dropdowns = document.querySelectorAll('.dropdowns');
293	dropdowns.forEach(dropdown => {
294		const select = dropdown.querySelector('.selections');
295		const caret = dropdown.querySelector('.caret');
296		const menu = dropdown.querySelector('.menu');
297		const options = dropdown.querySelectorAll('.menu li');
298		const selected = dropdown.querySelector('.selected');
299
300
301		select.addEventListener('click', () => {
302			select.classList.toggle('select-clicked');
303			caret.classList.toggle('caret-rotate');
304			menu.classList.toggle('menu-open');
305		});
306
307		options.forEach(option => {
308			option.addEventListener('click', () => {
309				selected.innerText = option.innerText;
310				select.classList.remove('select-clicked');
311				caret.classList.remove('caret-rotate');
312				menu.classList.remove('menu-open');
313
314				options.forEach(option => {
315					option.classList.remove('active');
316				});
317				option.classList.add('active');
318			});
319		});
320	});
321
322	// ------------------ End Document ------------------ //
323
324})(this.jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.