PageSourceSearch

https://www.navy.com/themes/custom/navycom/dist/js/global-hf.js?tlijf5

js navy.com collected 2026-09-24 09:11:14 UTC 16,557 bytes, 369 lines download raw bytes

1(function($) {
2	// Snippet addds navigator.userAgent value to html tag
3	document.documentElement.setAttribute('data-browser', navigator.userAgent);
4
5	$(document).ready(function(){
6		// Start Interior page hero video
7		if ($('body').hasClass('home-archive') || $('body').hasClass('title-sea-to-stars')) {
8			$noherovideo = true;
9		} else {
10			$noherovideo = false;
11			$winWidthC = $(window).width();
12			$heroblock = $(".heroblock video");
13			$herovideoHeight = $heroblock.height();
14			if($winWidthC > 991) {
15				$herodivlimit = 600;
16				$heroblockDiff = ($herodivlimit-$herovideoHeight)/2;
17			} else if($winWidthC > 767) {
18				$herodivlimit = 520;
19				$heroblockDiff = ($herodivlimit-$herovideoHeight)/2;
20			} else {
21				$herodivlimit = 340;
22				$heroblockDiff = 0;
23			}
24
25			$heroblock.css('margin-top',$heroblockDiff);
26		}// End Interior page hero video
27
28		function resize(e) {
29			var mqsize = window.getComputedStyle(document.body,':after').content.replace(/"|'/g, '');
30
31			// Start Interior page hero video
32			$winWidthC = $(window).width();
33			$heroblock = $(".heroblock video");
34			$herovideoHeight = $heroblock.height();
35			if($winWidthC > 991) {
36				$herodivlimit = 600;
37				$heroblockDiff = ($herodivlimit-$herovideoHeight)/2;
38			} else if($winWidthC > 767) {
39				$herodivlimit = 520;
40				$heroblockDiff = ($herodivlimit-$herovideoHeight)/2;
41			} else {
42				$herodivlimit = 340;
43				$heroblockDiff = 0;
44			}
45			$heroblock.css('margin-top',$heroblockDiff);
46			// End Interior page hero video
47
48			switch (true) {
49				case (mqsize == 'mobile'):
50					//console.info('Window.width is less than or equal to ' + mqsize);
51					$('.navbar-default .navbar-toggle').addClass('collapsed');
52          $('.navbar-default .navbar-collapse ul.navbar-nav > li').each(function(index){
53            $(this).attr('data-val', index);
54            $(this).find('ul.menu > li').each(function(index){
55              $(this).attr('data-val', index);
56            });
57          });
58          $('.navbar-default .navbar-collapse ul.navbar-nav > li a[href*="http"]').attr('target', '_blank');
59					$('.navbar-collapse.in, .block__lets-talk-block.in').removeClass('in');
60					$('.navbar-nav li.dropdown').css('transform','translateY(0px)');
61					$('.navbar-header button.navbar-toggle').off('click');
62					$('.navbar-header button.navbar-toggle').on('click', function() {
63						// Hide/Show apply now button on global nav
64            if (!$(".apply-now-header").hasClass("apply-hidden")) {
65                $('.apply-now-header').addClass('apply-hidden');
66            } else {
67                $('.apply-now-header').removeClass('apply-hidden');
68            }
69            if (!$(".navy-search-block").hasClass("in")) {
70              $('.navy-search-block').addClass('in');
71            } else {
72              $('.navy-search-block').removeClass('in');
73            }
74            if (!$(".breadcrumb-header").hasClass("in")) {
75              $('.breadcrumb-header').addClass('in');
76            } else {
77              $('.breadcrumb-header').removeClass('in');
78            }
79						$('.navbar-nav, .navbar-nav .open').removeClass('open opensub');
80						$('.navbar-nav li.dropdown').css('transform','translateY(0px)');
81					});
82
83					$('#navbar-collapse ul.navbar-nav > li.dropdown > a.dropdown-toggle').each(function(e){
84						$(this).off('click');
85						$(this).on('click', function(event){
86							event.preventDefault();
87							event.stopPropagation();
88							$(this).parent().siblings().removeClass('open');
89							$('ul.dropdown-menu, ul.dropdown-menu .dropdown-submenu.open').removeClass('open');
90							if($(this).parent().hasClass('open')) {
91								$(this).parent().removeClass('open');
92								$(this).parent().css('transform','translateY(0px)');
93								$(this).parent().parent('.menu.navbar-nav').removeClass('open opensub');
94							} else {
95								var menutransVal = parseInt($(this).parent().attr('data-val'));
96								var menuSlideup = 'translateY(-' + ((menutransVal*40)+(menutransVal*2)) +'px)';
97								$(this).parent().css('transform',menuSlideup);
98								$(this).parent().addClass('open');
99								$(this).parent().parent('.menu.navbar-nav').addClass('open');
100							}
101						});
102					});
103
104					$('#navbar-collapse ul.navbar-nav > li.dropdown .dropdown.dropdown-submenu > a.dropdown-toggle').each(function(e){
105						$(this).off('click');
106						$(this).on('click', function(event){
107							event.preventDefault();
108							event.stopPropagation();
109							$(this).parent().siblings().removeClass('open');
110							if($(this).parent().hasClass('open')) {
111								$(this).parent().removeClass('open');
112								$('.menu.navbar-nav').removeClass('opensub');
113								$(this).parent().parent('.menu.dropdown-menu').removeClass('open');
114								$(this).parent().css('transform','translateY(0px)');
115							} else {
116								$(this).parent().addClass('open');
117								$('.menu.navbar-nav').addClass('opensub');
118								$(this).parent().parent('.menu.dropdown-menu').addClass('open');
119								var subtransVal = parseInt($(this).parent().attr('data-val'));
120								var submenuSlideup = 'translateY(-' + (((subtransVal*42)+(subtransVal*2))+62) +'px)';
121								$(this).parent().css('transform',submenuSlideup);
122							}
123						});
124					});
125
126					break;
127
128				//case (mqsize == 'desktop'):
129				default:
130					//console.info('Window.width is less than or equal to ' + mqsize);
131          $('.navbar-default .navbar-collapse ul.navbar-nav > li').each(function(index){
132            $(this).attr('data-val', index);
133            $(this).find('ul.menu > li').each(function(index){
134              $(this).attr('data-val', index);
135            });
136          });
137          $('.navbar-default .navbar-collapse ul.navbar-nav > li a[href*="http"]').attr('target', '_blank');
138					$('.navbar-nav li.dropdown').removeAttr('style');
139					$('.navbar-header button.navbar-toggle').off('click');
140					$('.navbar-header button.navbar-toggle').on('click', function() {
141						if (!$("#block-letstalkheaderblock").hasClass("in")) {
142							//$('html').addClass('lockscroll');
143							$('#block-letstalkheaderblock').addClass('in');
144						} else {
145							//$('html').removeClass('lockscroll');
146							$('#block-letstalkheaderblock').removeClass('in');
147						}
148            if (!$(".apply-now-header").hasClass("apply-hidden")) {
149                //$('html').addClass('lockscroll');
150                $('.apply-now-header').addClass('apply-hidden');
151            } else {
152                //$('html').removeClass('lockscroll');
153                $('.apply-now-header').removeClass('apply-hidden');
154            }
155            if (!$(".navy-search-block").hasClass("in")) {
156              $('.navy-search-block').addClass('in');
157            } else {
158              $('.navy-search-block').removeClass('in');
159            }
160            if (!$(".breadcrumb-header").hasClass("in")) {
161              $('.breadcrumb-header').addClass('in');
162            } else {
163              $('.breadcrumb-header').removeClass('in');
164            }
165						$('.navbar-nav, .navbar-nav .open').removeClass('open opensub');
166						$('.navbar-nav li.dropdown').removeAttr('style');
167					});
168
169					$('#navbar-collapse ul.navbar-nav > li.dropdown > a.dropdown-toggle').each(function(e){
170						$(this).off('click');
171						$(this).on('click', function(event){
172							event.preventDefault();
173							event.stopPropagation();
174							$(this).parent().siblings().removeClass('open');
175							$('ul.dropdown-menu, ul.dropdown-menu .dropdown-submenu.open').removeClass('open');
176							if($(this).parent().hasClass('open')) {
177								$(this).parent().removeClass('open');
178								$(this).parent().parent('.menu.navbar-nav').removeClass('open opensub');
179							} else {
180								//var menuSlideup = 'translateY(-' + (parseInt(($(this).parent().attr('data-val'))*40)+(subtransVal*2)) +'px)';
181								//var menutransVal = parseInt($(this).parent().attr('data-val'));
182								//var menuSlideup = 'translateY(-' + ((menutransVal*40)+(menutransVal*2)) +'px)';
183								$(this).parent().addClass('open');
184								$(this).parent().parent('.menu.navbar-nav').addClass('open');
185							}
186						});
187					});
188
189					$('#navbar-collapse ul.navbar-nav > li.dropdown .dropdown.dropdown-submenu > a.dropdown-toggle').each(function(e){
190						$(this).off('click');
191						$(this).on('click', function(event){
192							event.preventDefault();
193							event.stopPropagation();
194							$(this).parent().siblings().removeClass('open');
195							if($(this).parent().hasClass('open')) {
196								$(this).parent().removeClass('open');
197								$('.menu.navbar-nav').removeClass('opensub');
198								$(this).parent().parent('.menu.dropdown-menu').removeClass('open');
199							} else {
200								$(this).parent().addClass('open');
201								$('.menu.navbar-nav').addClass('opensub');
202								$(this).parent().parent('.menu.dropdown-menu').addClass('open');
203								//var subtransVal = parseInt($(this).parent().attr('data-val'));
204								//var submenuSlideup = 'translateY(-' + (((subtransVal*42)+(subtransVal*2))+62) +'px)';
205							}
206						});
207					});
208			}
209			//console.debug( "Resize method finished funning:\t", { $this: this, $eventArg: e } );
210		}
211		/**	onResize(event)
212		 *	Called whenever window is resize.
213		 *	This acts as a buffer between the multiple times resize is fired and the resize method being fired.
214		 **/
215		function onResize(e) {
216			this['__debounce_timer__'] && clearTimeout(this['__debounce_timer__']);
217			this['__debounce_timer__'] = setTimeout($.proxy(resize, this, e), 1000);
218		}
219		//	Same as window.addEventListener('resize', onResize); resize(new Event('resize', {}));
220		$(window).on('resize', onResize).trigger('resize');
221
222
223    /**
224     * Navy Custom Search - Setting
225     * **/
226    function linkMod () {
227      $('.navy-search-block .search-overlay .searchon .view-content .views-row').on('click', function() {
228        $('body').append('<div class="loading-pn-overlay"></div>');
229        window.open($(this).find('.search-result-itm-title a').attr('href'),"_self");
230      });
231    }
232    $('.navy-search-block .navy-search-icon').on('click', function() {
233      $('button.navbar-toggle').css('display','none');
234      $('.navy-search-block .search-overlay').css('display','block');
235      $('.navy-search-block .search-overlay').prepend('<div class="close-search"><span class="cross-lines"></span></div>');
236      $('html, body').css({
237        overflow: 'hidden',
238        height: '100%'
239      });
240      if($('.navy-search-block .search-overlay .searchon .view-content').length == 0) {
241        $('.navy-search-block .search-overlay .searchon nav.pager-nav').remove();
242      }
243      $('.search-overlay .navy-search input.form-autocomplete').focus();
244      prepSearchOverlay ();
245      watchSubmitSearch ();
246    });
247    function prepSearchOverlay () {
248      $('.navy-search-block .search-overlay .close-search').on('click', function() {
249        $('button.navbar-toggle').css('display','block');
250        $('.navy-search-block .search-overlay').css('display','none');
251        $('.navy-search-block .search-overlay .close-search').remove();
252        $('html, body').css({
253          overflow: 'auto',
254          height: 'auto'
255        });
256      });
257    }
258    function paginationBind () {
259      $('.navy-search-block .search-overlay .navy-search nav.pager-nav .pager__item a').on('click', function() {
260        $('body').append('<div class="loading-pn-overlay"></div>');
261        $(document).ajaxSuccess(function() {
262          $('body .searching-overlay').remove();
263          $('body .loading-pn-overlay').remove();
264          watchSubmitSearch ();
265          paginationBind ();
266          linkMod ();
267        });
268      });
269    }
270    function watchSubmitSearch () {
271      // Adding Spinner while getting the data
272      var spinner_on = false;
273      var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
274      var element = document.querySelector('.searchon .view-filters form#views-exposed-form-navy-search-block-1 button.js-form-submit');
275      var observer = new MutationObserver(function(mutations) {
276        mutations.forEach(function(mutation) {
277          if (mutation.type == 'attributes') {
278            if(spinner_on == false) {
279              $('body').append('<div class="searching-overlay"></div>');
280              spinner_on = true;
281            } else {
282              var rawInputText = $('.navy-search-block .search-overlay .navy-search .view-filters .ui-autocomplete-input').val();
283              var escapedInputText = Drupal.checkPlain(rawInputText);
284              spinner_on = false;
285              setTimeout(function() { // Clear search field from homepage search keyword
286                if(!$('.navy-search-block .search-overlay .navy-search .view-content').length && escapedInputText) {
287                  if(!$('.navy-search-block .search-overlay .block-views-blocknavy-search-block-1 > .form-group .view-empty').length) {
288                    $('.navy-search-block .search-overlay .block-views-blocknavy-search-block-1 > .form-group').append('<div class="view-empty">Sorry, we couldn\'t find any results matching "<b class="noMatchWord"><i>' + escapedInputText.replace(/(<([^>]+)>)/ig,"") + '</i></b>"</div>');
289                  } else {
290                    $('.navy-search-block .search-overlay .block-views-blocknavy-search-block-1 > .form-group .view-empty').html('Sorry, we couldn\'t find any results matching "<b class="noMatchWord"><i>' + escapedInputText.replace(/(<([^>]+)>)/ig,"") + '</i></b>"');
291                  }
292                } else {
293                  $('.navy-search-block .search-overlay .block-views-blocknavy-search-block-1 .form-group .view-empty').remove();
294                }
295                paginationBind ();
296                watchSubmitSearch ();
297                linkMod ();
298                searchFocusA ();
299                $('body .searching-overlay').remove();
300              }, 500);
301            }
302          }
303        });
304
305      });
306      observer.observe(element, {
307        attributes: true
308      });
309    }
310    function searchFocusA () {
311      var searchInput = $('.search-overlay .navy-search input.form-autocomplete');
312      var strLength = searchInput.val().length * 2;
313      searchInput.focus();
314      searchInput[0].setSelectionRange(strLength, strLength);
315    }
316    $('.navy-search-block .searching-overlay').remove();
317    $('ul.search-api-autocomplete-search').on('click', 'li.ui-menu-item a.ui-menu-item-wrapper .search-api-autocomplete-suggestion .autocomplete-suggestion-label', function() {
318      $('body').append('<div class="loading-pn-overlay"></div>');
319    });
320    /** End Navy Custom Search - Setting **/
321
322    setTimeout(function(){
323      //showing search icon after page loads
324
325      $('.navy-search-block').css('display','block');
326
327    }, 100);
328    $('.path-sitemap .sitemap-plugin--menu div ul').removeClass('dropdown-menu');
329	});
330	$('.footer .region-footer .logo > img').attr('src', '/themes/custom/navycom/assets/images/footer-logo.png');
331
332  function updateFavicons() {
333
334    const isDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
335    let epoch = new Date().getTime();
336    const suffix = isDark ? '-dark' : '';
337
338    // Update favicons
339    document.getElementById('apple-touch-icon').href = '/themes/custom/navycom/apple-touch-icon' + suffix + '.png' + '?v=' + epoch;
340    document.getElementById('favicon-32').href = '/themes/custom/navycom/favicon-32x32' + suffix + '.png' + '?v=' + epoch;
341    document.getElementById('favicon-16').href = '/themes/custom/navycom/favicon-16x16' + suffix + '.png' + '?v=' + epoch;
342    document.getElementById('favicon-ico').href = '/themes/custom/navycom/favicon' + suffix + '.ico' + '?v=' + epoch;
343    document.getElementById('manifest').href = '/themes/custom/navycom/site' + suffix + '.webmanifest' + '?v=' + epoch;
344
345    // Update theme color
346    const themeColor = document.querySelector('meta[name="theme-color"]') ||
347                      document.createElement('meta');
348    themeColor.name = 'theme-color';
349    themeColor.content = isDark ? '#000000' : '#ffffff';
350
351    if (!document.querySelector('meta[name="theme-color"]')) {
352      document.head.appendChild(themeColor);
353    } else {
354      themeColor.content = isDark ? '#000000' : '#ffffff';
355    }
356  }
357
358  // Run on load
359  document.addEventListener("DOMContentLoaded", function() {
360    updateFavicons();
361  });
362
363  // Listen for theme changes
364  document.addEventListener("DOMContentLoaded", function() {
365    window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', updateFavicons);
366  });
367
368  $('.video-embed-field-lazy-play').attr('aria-label', 'Play video');
369})(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.