PageSourceSearch

https://www.mokuleleairlines.com/wp-content/themes/mokuleleairline…?ver=d73012a20546d7e898325e0d88811c6a

js mokuleleairlines.com collected 2026-09-24 09:24:12 UTC 28,510 bytes, 881 lines download raw bytes

1var month3Ltr = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
2
3function assignIframeClassW(iframeID) {
4    var iframeW = jQuery('iframe#'+iframeID).width();
5    //console.log('iframeW',iframeW);
6    var selClass = '';
7    if(iframeW < 500) {
8        selClassNum = 'sm';
9    } else if (iframeW >= 500) {
10        selClassNum = 'md';
11    }
12    jQuery('iframe#'+iframeID).attr('data-size',selClassNum);
13}
14
15function setCookie(cname, cvalue, exdays) {
16    var d = new Date();
17    d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
18    var expires = "expires="+d.toUTCString();
19    document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
20}
21
22function getCookie(cname) {
23    var name = cname + "=";
24    var ca = document.cookie.split(';');
25    for(var i = 0; i < ca.length; i++) {
26        var c = ca[i];
27        while (c.charAt(0) == ' ') {
28            c = c.substring(1);
29        }
30        if (c.indexOf(name) == 0) {
31            return c.substring(name.length, c.length);
32        }
33    }
34    return "";
35}
36
37function checkCookie() {
38    var user = getCookie("username");
39    if (user != "") {
40        alert("Welcome again " + user);
41    } else {
42        user = prompt("Please enter your name:", "");
43        if (user != "" && user != null) {
44            setCookie("username", user, 365);
45        }
46    }
47}
48
49function isJson(str) {
50    try {
51        JSON.parse(str);
52    } catch (e) {
53        return false;
54    }
55    return true;
56}
57
58function getTodayDate() {
59    var today = new Date();
60    var dd = String(today.getDate()).padStart(2, '0');
61    var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!
62    var yyyy = today.getFullYear();
63
64    return mm + '/' + dd + '/' + yyyy;
65}
66
67function getTodayDateOrUrlParam(urlParam) {
68    var selUrlParam = decodeURIComponent(getUrlParam(urlParam,''));
69    var today = new Date();
70    var dd = String(today.getDate()).padStart(2, '0');
71    var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!
72    var yyyy = today.getFullYear();
73
74    return selUrlParam.length ? selUrlParam : mm + '/' + dd + '/' + yyyy;
75}
76
77var formatter = new Intl.NumberFormat('en-US', {
78    style: 'currency',
79    currency: 'USD',
80});
81
82function getUrlVars() {
83    var vars = {};
84    var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
85        vars[key] = value;
86    });
87    return vars;
88}
89
90function getUrlParam(parameter, defaultvalue){
91    var urlparameter = defaultvalue;
92    if(window.location.href.indexOf(parameter) > -1){
93        urlparameter = getUrlVars()[parameter];
94    }
95    return urlparameter;
96}
97
98function addOnClickAnchor(id) {
99    jQuery( '#' + id + ' a.anchor-to-deck' ).on('click', function(e) {
100        e.preventDefault();
101        if (this.hash !== "") {
102            //console.log('jQuery(this.hash)',jQuery(this.hash));
103            jQuery('html, body').animate({
104                scrollTop: jQuery(this.hash).offset().top - document.getElementById('masthead').offsetHeight - 50
105            }, 800, function(e){
106            });
107        }
108    });
109}
110
111function fuzzysearch(needle, haystack) {
112	var hlen = haystack.length;
113	var nlen = needle.length;
114	//console.log('fuzzysearch', {needle, haystack});
115	if (nlen > hlen) {
116		return false;
117	}
118	if (nlen === hlen) {
119		return needle === haystack;
120	}
121	outer: for (var i = 0, j = 0; i < nlen; i++) {
122		var nch = needle.charCodeAt(i);
123		while (j < hlen) {
124			if (haystack.charCodeAt(j++) === nch) {
125				continue outer;
126			}
127		}
128		return false;
129	}
130	return true;
131}
132
133function fuseMatchCustom(params, data) {
134	//console.log('fuseMatchCustom', {params, data});
135	if (jQuery.trim(params.term) === '') {
136      return data;
137    }
138
139    // Do not display the item if there is no 'text' property
140    if (typeof data.text === 'undefined') {
141      return null;
142    }
143
144    // `params.term` should be the term that is used for searching
145    // `data.text` is the text that is displayed for the data object
146    if (data.text.indexOf(params.term) > -1) {
147		console.log('data', {data,params});
148      var modifiedData = jQuery.extend({}, data, true);
149      modifiedData.text += ' (matched)';
150
151      // You can return modified objects from here
152      // This includes matching the `children` how you want in nested data sets
153      return modifiedData;
154    }
155
156    // Return `null` if the term should not be displayed
157    return null;
158}
159
160function generateAirportList(thisList) {
161	var listHtml = '';
162	listHtml += '<ul>';
163	for(var i = 0; i < thisList.length; i++) {
164		listHtml += '<li data-id="'+thisList[i].item.id+'" data-text="'+thisList[i].item.text+'">' + thisList[i].item.text + '</li>';
165	}
166	listHtml += '</ul>';
167	return listHtml;
168}
169
170function showFromResult(e) {
171	//console.log('showFromResult', e.value);
172	if(e.value.length >= 3) {
173		var thisFromResult = fuseAirport.search(e.value);
174		var resultHtml = '';
175		if(thisFromResult.length) {
176			resultHtml = generateAirportList(thisFromResult);
177		}
178		jQuery('.fusejs-from-result').html(resultHtml);
179		jQuery('.fusejs-from-result ul li').on('click', function(e) {
180			var selId = jQuery(this).attr('data-id');
181			var selText = jQuery(this).attr('data-text');
182			jQuery('.destination-left label').html(selId);
183			jQuery('.select-from-span').html(selText);
184			jQuery('#fusejs-from').val(selId);
185			//console.log('selected', {selId, selText});
186		});
187		//console.log('thisFromResult', thisFromResult);
188	} else {
189		console.log('less-than-3');
190		jQuery('.fusejs-from-result').html('');
191	}
192}
193
194function showToResult(e) {
195	//console.log('showToResult', e.value);
196	if(e.value.length >= 3) {
197		var thisToResult = fuseAirport.search(e.value);
198		var resultHtml = '';
199		if(thisToResult.length) {
200			resultHtml = generateAirportList(thisToResult);
201		}
202		jQuery('.fusejs-to-result').html(resultHtml);
203		jQuery('.fusejs-to-result ul li').on('click', function(e) {
204			var selId = jQuery(this).attr('data-id');
205			var selText = jQuery(this).attr('data-text');
206			jQuery('.destination-right label').html(selId);
207			jQuery('.select-to-span').html(selText);
208			jQuery('#fusejs-to').val(selId);
209			//console.log('selected', {selId, selText});
210		});
211		//console.log('thisToResult', thisToResult);
212	} else {
213		jQuery('.fusejs-to-result').html('');
214	}
215}
216
217var airportData = [];
218var fuseAirport;
219
220
221(function ($) {
222    'use strict';
223
224    $(document).ready(function () {
225		
226		const fuseOptions = {
227			keys: ['id', 'text'],
228			threshold: 0.3,
229			includeMatches: true,
230			includeScore: true,
231			useExtendedSearch: true
232		};
233		
234		
235		AOS.init();
236		// data-aos="fade-up" data-aos-delay="50" data-aos-duration="1000"
237		AOS.init({
238			// Global settings:
239			disable: false, // accepts following values: 'phone', 'tablet', 'mobile', boolean, expression or function
240			startEvent: "DOMContentLoaded", // name of the event dispatched on the document, that AOS should initialize on
241			initClassName: "aos-init", // class applied after initialization
242			animatedClassName: "aos-animate", // class applied on animation
243			useClassNames: false, // if true, will add content of `data-aos` as classes on scroll
244			disableMutationObserver: false, // disables automatic mutations' detections (advanced)
245			debounceDelay: 50, // the delay on debounce used while resizing window (advanced)
246			throttleDelay: 99, // the delay on throttle used while scrolling the page (advanced)
247			// Settings that can be overridden on per-element basis, by `data-aos-*` attributes:
248			offset: 120, // offset (in px) from the original trigger point
249			delay: 0, // values from 0 to 3000, with step 50ms
250			duration: 400, // values from 0 to 3000, with step 50ms
251			easing: "ease", // default easing for AOS animations
252			once: true, // whether animation should happen only once - while scrolling down
253			mirror: false, // whether elements should animate out while scrolling past them
254			anchorPlacement: "top-bottom", // defines which position of the element regarding to window should trigger the animation
255		});
256		
257		//console.log('app-js', $(".southern__slider")); 
258		if($(".southern__slider").length) {
259			$(".southern__slider").owlCarousel({
260				items: 1,
261				loop: true,
262				margin: 25,
263				nav: true,
264				dots: false,
265				smartSpeed: 1000,
266				responsive: {
267					0: {
268						items: 1,
269					},
270					500: {
271						items: 2,
272					},
273					1000: {
274						items: 3,
275					},
276					1200: {
277						items: 4,
278					}
279				},
280			});
281		}
282		
283		$(".affordable__slider").owlCarousel({
284			items: 1,
285			loop: true,
286			margin: 26,
287			nav: true,
288			dots: false,
289			smartSpeed: 1000,
290			responsive: {
291				0: {
292					items: 1,
293				},
294				500: {
295					items: 2,
296				}
297			},
298		});
299		
300		$(".menu-close , .offcanvas-overlay").click(function () {
301			$('body').removeClass("onepress-menu-mobile-opening");
302			$('#nav-toggle').removeClass("nav-is-visible");
303		});
304		
305        $(document).on('click', '[data-toggle="lightbox"]', function (event) {
306            event.preventDefault();
307            $(this).ekkoLightbox({
308                alwaysShowClose: true
309            });
310        });
311		
312		$(window).click(function(e) {
313			/*if($('.popup-fusejs-from').hasClass('open')) {
314				if(e.target.id !== 'fusejs-from' && e.target.id !== 'fusejs-from-result') {
315					$('.popup-fusejs-from').removeClass('open')
316				}
317				//console.log('from-open');
318			}*/
319			if($('.popup-fusejs-to').hasClass('open')) {
320				if(e.target.id !== 'fusejs-to' && e.target.id !== 'fusejs-to-result') {
321					$('.popup-fusejs-to').removeClass('open')
322				}
323				//console.log('to-open');
324			}
325			//console.log('click-here', e.target.id);
326			
327		});
328		
329		$('nav.main-navigation').on('click', function(e) {
330		});
331		
332		$('ul.onepress-menu li.mobile-close > a').on('click', function(e) {
333			e.preventDefault();
334			closeMobileNav();
335			event.stopPropagation();
336		});
337		
338		//$('select').niceSelect();
339
340		$('.current-promo-code').click(function (e) {
341            e.preventDefault();
342            $(this).parent().toggleClass('active');
343        });
344
345        $('.passenger-current').click(function (e) {
346            e.preventDefault();
347            $(this).parent().toggleClass('active');
348        });
349
350        /*$('.login-btn-wrap a.btns.login').click(function (e) {
351            e.preventDefault();
352            $(this).parent().toggleClass('active');
353        });*/
354
355        $('.grids-btn-wrap a.btns.grids').click(function (e) {
356            e.preventDefault();
357            $(this).parent().toggleClass('active');
358        });
359
360        $('label[for="lax"]').on('click', function() {
361            // $('.destination-select .nice-select').addClass('open');
362            $(this).parent().parent().find('.nice-select').toggleClass('open');
363            return false;
364        });
365
366        $('label[for="to"]').on('click', function() {
367            // $('.destination-select .nice-select').addClass('open');
368            $(this).parent().parent().find('.nice-select').toggleClass('open');
369            return false;
370        });
371		
372		var adultNumber = 1;
373		var childNumber = 0;
374		var infantNumber = 0;
375		var totalNumber = adultNumber + childNumber + infantNumber;
376		function updateTotalNumber(mode, num) {
377			if(mode === 'adult') {
378				adultNumber = num;
379				$('input#hiddenADNum').val(num);
380			}
381			if(mode === 'child') {
382				childNumber = num;
383				$('input#hiddenCHDNum').val(num);
384			}
385			if(mode === 'infant') {
386				infantNumber = num;
387				$('input#hiddenINFNum').val(num);
388			}
389			totalNumber = adultNumber + childNumber + infantNumber;
390			$('.passenger-current .num').html(totalNumber);
391		}
392
393		$('input#adultNumber').niceNumber({
394			onIncrement: function($currentInput, amount, settings) {
395				updateTotalNumber('adult', amount);
396			},
397			onDecrement: function($currentInput, amount, settings) {
398				updateTotalNumber('adult', amount);
399			},
400		});
401		$('input#childNumber').niceNumber({
402			onIncrement: function($currentInput, amount, settings) {
403				updateTotalNumber('child', amount);
404			},
405			onDecrement: function($currentInput, amount, settings) {
406				updateTotalNumber('child', amount);
407			},
408		});
409		$('input#infantNumber').niceNumber({
410			onIncrement: function($currentInput, amount, settings) {
411				updateTotalNumber('infant', amount);
412			},
413			onDecrement: function($currentInput, amount, settings) {
414				updateTotalNumber('infant', amount);
415			},
416		});
417		
418		$('a.link-with-hashtag').on('click', function(e) {
419			e.preventDefault();
420			var link = $(this).attr('href');
421			location.href = link;
422			event.stopPropagation();
423		});
424
425        $('input[type="number"]').niceNumber({
426            // auto resize the number input
427            autoSize: true,
428            // the number of extra character
429            autoSizeBuffer: 1,
430            // custom button text
431            buttonDecrement: '-',
432            buttonIncrement: "+",
433            // 'around', 'left', or 'right'
434            buttonPosition: 'around'
435        });
436
437
438$('form#findBookingForm').on('submit', function(e) {
439			var refNum = $('#tmpReferenceNumber').val();
440			var tixNum = $('#ticketNumber').val();
441			var lName = $('#travelerSurname').val();
442			if(lName.length) {
443				if(tixNum.length) {
444					$('input[name=searchType]').val('TicketNumber');
445					$('input[name=referenceNumber]').val(tixNum);
446				} else {
447					$('input[name=searchType]').val('PNR');
448					$('input[name=referenceNumber]').val(refNum);
449				}
450				return true;
451			} else {
452				$('#travelerSurname').focus();
453				$('#travelerSurname').addClass('required');
454			}
455			return false;
456		});
457		
458		if($('#departReturn').length) {
459			var startDate = new Date();
460			var endDate = new Date();
461			endDate = new Date(endDate.setDate(endDate.getDate() + 7));
462			//var startDateStr1 = ( '0' + (startDate.getMonth() + 1) ).slice(-2) + '/' + ( '0' + startDate.getDate() ).slice(-2) + '/' + startDate.getFullYear();
463			var startDateStr1 = month3Ltr[startDate.getMonth()] + ' ' + startDate.getDate();
464			var minDateStr1 = startDateStr1;
465			//var endDateStr1 = ( '0' + (endDate.getMonth() + 1) ).slice(-2) + '/' + ( '0' + endDate.getDate() ).slice(-2) + '/' + endDate.getFullYear();
466			var endDateStr1 = month3Ltr[endDate.getMonth()] + ' ' + endDate.getDate();
467			var startDateStr2 = startDate.getFullYear() + '-' + ( '0' + (startDate.getMonth() + 1) ).slice(-2) + '-' + ( '0' + startDate.getDate() ).slice(-2);
468			var endDateStr2 = endDate.getFullYear() + '-' + ( '0' + (endDate.getMonth() + 1) ).slice(-2) + '-' + ( '0' + endDate.getDate() ).slice(-2);
469			//startDateStr1 = 'Feb 28';
470			//endDateStr1 = 'Mar 8';
471			//console.log('dates', {startDateStr1,endDateStr1, startDateStr2, endDateStr2});
472			$('#departReturn').daterangepicker({ 
473				"singleDatePicker": false,
474				"minDate": minDateStr1,
475				"startDate": startDateStr1,
476				"endDate": endDateStr1,
477				"autoApply": true,
478				"locale": {
479					"format": 'MMM D'
480				}
481			}, function(start, end, label) { 
482				//console.log('auto-apply');
483				startDateStr1 = start.format('MMM D');
484				endDateStr1 = end.format('MMM D');
485				startDateStr2 = start.format('YYYY-MM-DD');
486				endDateStr2 = end.format('YYYY-MM-DD');
487				//console.log('on-select', {startDateStr1,endDateStr1, startDateStr2, endDateStr2});
488				var tripType = $('select#tripType').val();
489				if(tripType === 'ow') {
490					$(this).val(startDateStr1);
491				} else {
492					$(this).val(startDateStr1 + ' - ' + endDateStr1);
493				}
494			});
495		};
496		
497		$('select#tripType').on('change', function(e) {
498			//console.log('change', $(this).val());
499			var thisMode = $(this).val();
500			var isSingle = true;
501			if(thisMode === 'rt') {
502				isSingle = false;
503			} else if (thisMode === 'ow') {
504				isSingle = true;
505			} else if (thisMode === 'mc') {
506				isSingle = false;
507			}
508			$('#departReturn').daterangepicker({ 
509				"singleDatePicker": isSingle,
510				"minDate": minDateStr1,
511				"startDate": startDateStr1,
512				"endDate": endDateStr1,
513				"autoApply": true,
514				"locale": {
515					"format": 'MMM D'
516				}
517			}, function(start, end, label) { 
518				console.log('auto-apply2');
519				startDateStr1 = start.format('MMM D');
520				endDateStr1 = end.format('MMM D');
521				startDateStr2 = start.format('YYYY-MM-DD');
522				endDateStr2 = end.format('YYYY-MM-DD');
523				//console.log('picker', picker.startDate.format('MMM D'));
524				var tripType = $('select#tripType').val();
525				if(tripType === 'ow') {
526					$(this).val(startDateStr1);
527				} else {
528					$(this).val(startDateStr1 + ' - ' + endDateStr1);
529				}
530			});
531		});
532		
533		$('select#tripType').select2({ minimumResultsForSearch: Infinity });
534		
535		
536		$('button#searchFlight').on('click', function(e) {
537			var tripType = $('select#tripType').val();
538			//var fromDest = $('select#OriginAirportCode').val();
539			//var toDest = $('select#DestinationAirportCode').val();
540			var fromDest = $('.destination-left label').html();
541			var toDest = $('.destination-right label').html();
542			var promoCode = $('input#promoCode').val();
543			//var flex = document.getElementById("flexible-date").checked || document.getElementById("flexible-date-desktop").checked || false;
544			var flex = true;
545			//console.log('departReturn', {fromDest,toDest,tripType,promoCode,flex,startDateStr2,endDateStr2,adultNumber,childNumber,infantNumber});
546			if(tripType === 'ow') {
547				$('#oac_ow').val(fromDest);
548				$('#dac_ow').val(toDest);
549				$('#od_ow').val(startDateStr2);
550				$('#ttAD_ow').val(adultNumber);
551				$('#ttCHD_ow').val(childNumber);
552				$('#ttINF_ow').val(infantNumber);
553				$('#flex_ow').val(flex);
554				$('#dc_ow').val(promoCode);
555				$('form#searchResultFormOW').submit();
556			} else if(tripType === 'rt') {
557				$('#oac_rt').val(fromDest);
558				$('#dac_rt').val(toDest);
559				$('#od_rt').val(startDateStr2);
560				$('#id_rt').val(endDateStr2);
561				$('#ttAD_rt').val(adultNumber);
562				$('#ttCHD_rt').val(childNumber);
563				$('#ttINF_rt').val(infantNumber);
564				$('#flex_rt').val(flex);
565				$('#dc_rt').val(promoCode);
566				$('form#searchResultFormRT').submit();
567			} else {
568				$('#oac0_mc').val(fromDest);
569				$('#dac0_mc').val(toDest);
570				$('#od0_mc').val(startDateStr2);
571				$('#oac1_mc').val(toDest);
572				$('#dac1_mc').val(toDest);
573				$('#od1_mc').val(endDateStr2);
574				$('#ttAD_mc').val(adultNumber);
575				$('#ttCHD_mc').val(childNumber);
576				$('#ttINF_mc').val(infantNumber);
577				$('#flex_mc').val(flex);
578				$('#dc_mc').val(promoCode);
579				$('form#searchResultFormMC').submit();
580			}
581			return false;
582		});
583		
584		$('.booking-date-tile').on('click', function(e) {
585			e.preventDefault();
586			var fromDest = $(this).attr('data-from-code');
587			var toDest = $(this).attr('data-to-code');
588			var fromLabel = $(this).attr('data-from-label');
589			var toLabel = $(this).attr('data-to-label');
590			var flex = true;
591			var fromDate = new Date();
592			var toDate = new Date();
593			toDate.setDate(toDate.getDate() + 7);
594			var startDateStr2 = fromDate.getFullYear() + '-' + ('0' + (fromDate.getMonth() + 1)).slice(-2) + '-' + ('0' + fromDate.getDate()).slice(-2);
595			var endDateStr2 = toDate.getFullYear() + '-' + ('0' + (toDate.getMonth() + 1)).slice(-2) + '-' + ('0' + toDate.getDate()).slice(-2);
596			var isStaging = getUrlParam('staging', '') === '1';
597			isStaging = typeof window.getTestVariant === 'function' && window.getTestVariant() === 'marketplace' ? true : isStaging;
598			/*defaultRTStagingJson.SCHEDULED.dateTimeFilters.departureDate = startDateStr2;
599			defaultRTStagingJson.SCHEDULED.dateTimeFilters.returnDate = endDateStr2;
600			defaultRTStagingJson.SCHEDULED.originLocation.code = fromDest;
601			defaultRTStagingJson.SCHEDULED.originLocation.displayName = fromLabel;
602			defaultRTStagingJson.SCHEDULED.destinationLocation.code = toDest;
603			defaultRTStagingJson.SCHEDULED.destinationLocation.displayName = toLabel;
604			defaultRTStagingJson.SCHEDULED.seatsFilters.adults = 1;
605			defaultRTStagingJson.SCHEDULED.seatsFilters.children = 0;
606			defaultRTStagingJson.SCHEDULED.seatsFilters.lapInfants = 0;
607			defaultRTStagingJson.SCHEDULED.promoCode = '';
608			var jTRString = encodeURIComponent(JSON.stringify(defaultRTStagingJson));*/
609			$('#oac_rt_tile').val(fromDest);
610			$('#dac_rt_tile').val(toDest);
611			$('#od_rt_tile').val(startDateStr2);
612			$('#id_rt_tile').val(endDateStr2);
613			$('#ttAD_rt_tile').val(1);
614			$('#ttCHD_rt_tile').val(0);
615			$('#ttINF_rt_tile').val(0);
616			$('#flex_rt_tile').val(flex);
617			$('#dc_rt_tile').val('');
618			if(!isStaging) {
619				//console.log('jTRString', defaultRTStagingJson);
620				$('form#bookingTileFormRTList').submit();
621			} else {
622				//console.log('jTRString', {jTRString,defaultRTStagingJson});
623				window.open('https://fly.staging.surfair.com/southern/explore/scheduled?s='+jTRString);
624			}
625		});
626		
627		$('#flexible-date-desktop').on('change', function(e) {
628			document.getElementById("flexible-date").checked = document.getElementById("flexible-date-desktop").checked;
629		});
630		$('#flexible-date').on('change', function(e) {
631			document.getElementById("flexible-date-desktop").checked = document.getElementById("flexible-date").checked;
632		});
633		
634		$('input#promoCode').on('change', function(e) {
635			console.log('new-val', $(this).val());
636			$('input#promoCodeMobile').val($(this).val());
637		});
638		$('input#promoCodeMobile').on('change', function(e) {
639			console.log('new-val', $(this).val());
640			$('input#promoCode').val($(this).val());
641		});
642		
643		$('form#mc-embedded-subscribe-form').on('submit', function(e) {
644			var email = $('input#MERGE0').val();
645			if(email.length) {
646				return true;
647			}
648			$('input#newEmail').focus();
649			return false;
650		});
651		
652		
653		function matchStart(params, data) {
654			console.log('matchStart', {params, data, defaultFromAirportCode});
655			if($.trim(params.term).length < 1) {
656				if( defaultFromAirportCode.includes(data.id) ) {
657					return data;
658				} else {
659					return null;
660				}
661			}
662			// If there are no search terms, return all of the data
663			if ($.trim(params.term) === '') {
664				return data;
665			}
666			// Skip if there is no 'children' property
667			if (typeof data.children === 'undefined') {
668				//return null;
669			}
670			
671			if( params.term.length === -1) {
672				if( (data.id || '').toLowerCase() === params.term.toLowerCase()) {
673					return data;
674				} else {
675					return null;
676				}
677			} else {
678				if ( data.text.toLowerCase().indexOf(params.term.toLowerCase()) >= 0 ) {
679					return data;
680				} else {
681					return null;
682				}
683			}
684			
685			//console.log('matchStart', {params, data, defaultFromAirportCode});
686			// Return `null` if the term should not be displayed
687			return null;
688		}
689		function matchTo(params, data) {
690			//console.log('matchTo', {params, data, defaultFromAirportCode});
691			if($.trim(params.term).length < 1) {
692				if( defaultToAirportCode.includes(data.id) ) {
693					return data;
694				} else {
695					return null;
696				}
697			}
698			// If there are no search terms, return all of the data
699			if ($.trim(params.term) === '') {
700				return data;
701			}
702			// Skip if there is no 'children' property
703			if (typeof data.children === 'undefined') {
704				//return null;
705			}
706			
707			if( params.term.length === -1) {
708				if( (data.id || '').toLowerCase() === params.term.toLowerCase()) {
709					return data;
710				} else {
711					return null;
712				}
713			} else {
714				if ( data.text.toLowerCase().indexOf(params.term.toLowerCase()) >= 0 ) {
715					return data;
716				} else {
717					return null;
718				}
719			}
720			
721			//console.log('matchStart', {params, data, defaultFromAirportCode});
722			// Return `null` if the term should not be displayed
723			return null;
724		}
725		function sortResult(result) {
726			//console.log('sortResult', result);
727			return result.sort(function (a, b) {
728				var numberToSortA = a.weight === null ? 0 : parseFloat(a.weight);
729				var numberToSortB = b.weight === null ? 0 : parseFloat(b.weight);
730				return numberToSortB - numberToSortA;
731			})
732			//return result;
733		}
734		function parseAirportJson(ap) {
735			for(var i = 0; i < ap.length; i++) {
736				airportData.push({ id: ap[i].Code, text: ap[i].Label + ' ('+ap[i].Code+')' });
737			}
738		}
739		var defaultFromAirportCode = ['HNL', 'OGG', 'MKK', 'LNY', 'MUE', 'JHM', 'KOA', 'HNM'];
740		var defaultToAirportCode = ['HNL', 'OGG', 'MKK', 'LNY', 'MUE', 'JHM', 'KOA', 'HNM'];
741		$.ajax({
742			dataType:"json",
743			url: "/wp-content/themes/mokuleleairlines/json/airports-list.json",
744			success:function(airportList){
745				//console.log('airportList', airportList);
746				parseAirportJson(airportList);
747				fuseAirport = new Fuse(airportData, fuseOptions);
748				
749				$('select#OriginAirportCode').select2(
750					{
751						data: airportData,
752						placeholder: 'Select from',
753						dropdownParent: $('.popup-destination-from'),
754						minimumInputLength: 0,
755						matcher: matchStart,
756						sorter: sortResult,
757						//matcher: fuseMatchCustom,
758					}
759				);
760				$('select#DestinationAirportCode').select2(
761					{
762						data: airportData,
763						placeholder: 'Select to',
764						dropdownParent: $('.popup-destination-to'),
765						minimumInputLength: 0,
766						matcher: matchTo,
767						sorter: sortResult,
768						/*matcher: function(params, data) {
769 
770							if ($.trim(params.term) === '') {
771								return data;
772							}
773
774							if (typeof data.text === 'undefined') {
775								return null;
776							}
777
778							// `params.term` should be the term that is used for searching
779							// `data.text` is the text that is displayed for the data object
780							if (fuzzysearch(params.term.toUpperCase(), data.text.toUpperCase())) {
781								var modifiedData = $.extend({}, data, true);
782
783								// You can return modified objects from here
784								// This includes matching the `children` how you want in nested data sets
785								return modifiedData;
786							}
787
788							// Return `null` if the term should not be displayed
789							return null;
790						}*/
791					}
792				);
793			},error:function(jqXHR,error,errorThrown){
794				if(jqXHR.status&&jqXHR.status==400){
795					console.log(jqXHR.responseText)
796				} else {
797					console.log("Something went wrong - ",error)
798				}
799			}
800		});		
801		
802		$('.destination-left label').on('click', function(e) {
803			//console.log('click-h4', $('.popup-destination-from .select2-container--open').length);
804			$('select#OriginAirportCode').select2('open');
805			/*$('.popup-fusejs-to').removeClass('open');
806			$('.popup-fusejs-from').addClass('open');
807			$('input#fusejs-from').focus();*/
808		});
809		$('.select-from-span').on('click', function(e) {
810			$('select#OriginAirportCode').select2('open');
811			/*$('.popup-fusejs-to').removeClass('open');
812			$('.popup-fusejs-from').addClass('open');
813			$('input#fusejs-from').focus();*/
814			//event.stopPropagation();
815		});
816		$('.destination-right label').on('click', function(e) {
817			//console.log('click-h4');
818			$('select#DestinationAirportCode').select2('open');
819			/*$('.popup-fusejs-from').removeClass('open');
820			$('.popup-fusejs-to').addClass('open');
821			$('input#fusejs-to').focus();*/
822		});
823		$('.select-to-span').on('click', function(e) {
824			$('select#DestinationAirportCode').select2('open');
825			/*$('.popup-fusejs-from').removeClass('open');
826			$('.popup-fusejs-to').addClass('open');
827			$('input#fusejs-to').focus();
828			event.stopPropagation();*/
829		});
830		
831		$('select#OriginAirportCode').on('select2:select', function (e) {
832			var data = e.params.data;
833			var airportId = data.id || 'FROM';
834			$('.destination-left label').html(airportId);
835			//console.log(data);
836		});
837		$('select#DestinationAirportCode').on('select2:select', function (e) {
838			var data = e.params.data;
839			var airportId = data.id || 'TO';
840			$('.destination-right label').html(airportId);
841			//console.log(data);
842		});
843		$('.close-banner').on('click', function(e) {
844			e.preventDefault();
845			$('.top-banner-wrapper').addClass('hide');
846			$('.block-banner-wrapper').addClass('opacity-zero');
847		});
848		
849		$('.banner-item-wrapper').slick({
850			slidesToShow: 1,
851			slidesToScroll: 1,
852			arrows: false,
853			dots: false,
854			autoplay: true,
855			autoplaySpeed: 5000,
856			infinite: false,
857		});
858		
859    });
860})(jQuery);
861
862
863
864/* MOKULELE_SUBLABEL_FIX: mirror the selected airport name into the .select-from-span / .select-to-span sub-labels (restores production behavior). Safe, self-contained, jQuery-guarded. */
865(function(){
866  if(!window.jQuery){return;}
867  var $ = window.jQuery;
868  function upd(selectId, spanSel){
869    var sel = document.querySelector(selectId),
870        span = document.querySelector(spanSel);
871    if(sel && span && sel.value && sel.selectedIndex > -1){
872      span.textContent = sel.options[sel.selectedIndex].text;
873    }
874  }
875  $(document).ready(function(){
876    $(document).on('change select2:select', '#OriginAirportCode', function(){ upd('#OriginAirportCode','.select-from-span'); });
877    $(document).on('change select2:select', '#DestinationAirportCode', function(){ upd('#DestinationAirportCode','.select-to-span'); });
878    upd('#OriginAirportCode','.select-from-span');
879    upd('#DestinationAirportCode','.select-to-span');
880  });
881})();

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.