PageSourceSearch

https://eamena.org/sites/all/modules/features/oxdrupal_responsive_header/oxdrupal_responsive_header.js?tm7wi4

js eamena.org collected 2026-10-02 04:25:46 UTC 15,681 bytes, 370 lines download raw bytes

1/**
2 * @file
3 * Display a message to unauthenticated users if this page contains content that is restricted to authenticated users..
4 */
5
6jQuery(document).ready(function() {
7  Drupal.settings.backgroundImage = jQuery('#wrapper-topbar').attr('style');
8  var animationSpeed = 500;
9  // In milli seconds.
10  resetHeaderState(jQuery);
11
12  jQuery('.form-search .btn .glyphicon-search').removeClass('glyphicon').removeClass('glyphicon-search')
13      .addClass("fa").addClass("fa-search");
14  jQuery('.form-search .btn').attr("title", "Search");
15  jQuery('.meanmenu-reveal').attr("title", "Menu");
16  if (jQuery('#block-views-header-links-blk-mobile').length || jQuery('.block-views-header-links-blk-mobile').length) {
17    jQuery('#block-views-social-media-links-blk-mobile').addClass('with-header-links');
18    jQuery('.block-views-social-media-links-blk-mobile').addClass('with-header-links');
19  }
20
21  // jQuery('#wrapper-mobile-topbar #block-oxdrupal-responsive-header-form .form-search').submit(function(event) {
22  //   if (!jQuery("#wrapper-mobile-topbar #block-oxdrupal-responsive-header-form .form-control").hasClass("expanded")) {
23  //     resetHeaderState(jQuery);
24  //     // jQuery("#wrapper-mobile-topbar #block-oxdrupal-responsive-header-form .form-control").width(jQuery(window).width() - 80 - 12 - 12);
25  //     jQuery("#wrapper-mobile-topbar #block-oxdrupal-responsive-header-form input[name='search_block_form']").addClass("searchontop");
26  //     jQuery("#wrapper-mobile-topbar #block-oxdrupal-responsive-header-form .form-control").fadeIn(animationSpeed);
27  //     jQuery("#edit-search-scope").fadeIn(animationSpeed);
28  //
29  //     jQuery('#wrapper-mobile-topbar #login-link-mobile').fadeOut(animationSpeed);
30  //     jQuery('#wrapper-mobile-topbar #social-links-mobile').fadeOut(animationSpeed);
31  //     jQuery('#wrapper-mobile-topbar #block-oxdrupal-responsive-header-form .form-control').addClass("expanded");
32  //     jQuery("#wrapper-mobile-topbar #block-oxdrupal-responsive-header-form .form-control").removeClass("error");
33  //     // Prevent scalability - #14407
34  //     jQuery('meta[name=viewport]').remove();
35  //     jQuery('head').append('<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0, initial-scale=1.0">');
36  //     jQuery("#wrapper-mobile-topbar #block-oxdrupal-responsive-header-form .form-control").focus();
37  //     event.stopPropagation();
38  //     event.preventDefault();
39  //     return false;
40  //   }
41  //   else if (jQuery("#wrapper-mobile-topbar #block-oxdrupal-responsive-header-form .form-control").val() == "") {
42  //     jQuery("#wrapper-mobile-topbar #block-oxdrupal-responsive-header-form .form-control").removeClass('expanded').fadeOut(animationSpeed);
43  //     resetHeaderState(jQuery);
44  //     event.stopPropagation();
45  //     event.preventDefault();
46  //     return false;
47  //   }
48  // });
49
50  // Expand social media links on mobile when clicked.
51  jQuery('#social-links-mobile a, #social-links-tablet').click(function(event) {
52    if (jQuery(this).hasClass('expanded')) {
53      jQuery(this).removeClass('expanded');
54
55      jQuery("#block-views-social-media-links-blk-clone").slideUp(animationSpeed / 2);
56      jQuery("#block-views-social-media-links-blk-mobile").slideUp(animationSpeed / 2);
57    }
58    else {
59      resetHeaderState(jQuery, 'social-media-links');
60      jQuery(this).addClass('expanded');
61      jQuery(".view-header-links", "#block-views-social-media-links-blk-mobile").css({display:'block'});
62      jQuery("#block-views-social-media-links-blk-clone").slideDown(animationSpeed);
63      jQuery("#block-views-social-media-links-blk-mobile").slideDown(animationSpeed);
64    }
65    event.stopPropagation();
66    event.preventDefault();
67    return false;
68  });
69
70  // Grey out social media links button if none have been added to the site.
71  if (
72    (
73      jQuery('#block-views-social-media-links-blk-mobile').length === 0 &&
74      jQuery('#block-views-header-links-blk-mobile').length === 0
75    ) ||
76    (
77      jQuery('.block-views-social-media-links-blk-mobile').length === 0 &&
78      jQuery('.block-views-header-links-blk-mobile').length === 0
79    )
80  ) {
81    jQuery('#social-links-mobile a').css('opacity', '0');
82  }
83
84  // Expand header links on tablet when clicked.
85  jQuery('#header-links-tablet a').click(function(event) {
86    // Hide some elements that persist after slideToggle has fired.
87    var speed = animationSpeed;
88    if (jQuery(this).hasClass('expanded')) {
89      speed = animationSpeed / 2;
90    }
91
92    jQuery("#block-views-header-links-blk-mobile").slideToggle(speed);
93    jQuery("#block-views-social-media-links-blk-mobile").slideToggle(speed);
94    jQuery("#block-views-header-links-blk-mobile--2").slideToggle(speed);
95    jQuery(".block-views-header-links-blk-mobile").slideToggle(speed);
96    jQuery(".block-views-social-media-links-blk-mobile").slideToggle(speed);
97    jQuery(".block-views-header-links-blk-mobile--2").slideToggle(speed);
98
99    jQuery(this).toggleClass('expanded');
100    // if (jQuery(this).hasClass('expanded')) {
101    //   jQuery(this).removeClass('expanded');
102    //   jQuery("#block-views-header-links-blk-mobile--2").slideUp(animationSpeed / 2);
103    //   jQuery("#block-views-social-media-links-blk-mobile--2").slideUp(animationSpeed / 2);
104    // }
105    // else {
106    //   resetHeaderState(jQuery, 'header-links');
107    //   jQuery(this).addClass('expanded');
108    //   jQuery("#block-views-header-links-blk-mobile--2").slideDown(animationSpeed);
109    //   jQuery("#block-views-social-media-links-blk-mobile--2").slideDown(animationSpeed);
110    // }
111
112    event.stopPropagation();
113    event.preventDefault();
114    return false;
115  });
116
117  // Grey out header links button if none have been added to the site.
118  if (
119    (
120      jQuery('#block-views-header-links-blk-mobile').length === 0 &&
121      jQuery('#block-views-social-media-links-blk-mobile').length === 0
122    )
123  ){
124    if (
125      jQuery('.block-views-header-links-blk-mobile').length === 0 &&
126      jQuery('.block-views-social-media-links-blk-mobile').length === 0
127    ) {
128      jQuery('#header-links-mobile a').css('opacity', '0');
129    }
130  }
131
132  function resetHeaderState($, trigger) {
133
134    var clone;
135    var device = determineDeviceType();
136
137    if (
138      $('#header').hasClass('header-minimal') &&
139      $('#social-links-tablet').length === 1 &&
140      $('.block-views-social-media-links-blk-clone').length === 0
141    ) {
142      clone = $('.block-views-social-media-links-blk-topbar').clone().addClass('block-views-social-media-links-blk-clone').css({display:'none',position:'absolute'});
143      $('#social-links-tablet').append(clone);
144    }
145
146    if (device === 'tablet') {
147      jQuery("#block-views-social-media-links-blk-mobile").fadeIn(0);
148      jQuery('#wrapper-mobile-topbar #social-links-mobile').fadeIn(0);
149      jQuery("#edit-search-scope").fadeOut(animationSpeed);
150      jQuery('.view-display-id-blk_mobile .block-header-links').fadeOut(0);
151
152    }
153    else {
154      jQuery("#block-views-social-media-links-blk-mobile").fadeIn(0);
155      jQuery("#edit-search-scope").fadeOut(animationSpeed);
156      jQuery('#wrapper-mobile-topbar #social-links-mobile').fadeIn(animationSpeed);
157      jQuery('header:not(.mobile-topbar) #wrapper-mobile-topbar #header-links-mobile').fadeIn(animationSpeed);
158    }
159
160
161    jQuery("header:not(.mobile-topbar) #wrapper-mobile-topbar #block-oxdrupal-responsive-header-form .form-control").fadeOut(animationSpeed);
162    jQuery("header:not(.mobile-topbar) #wrapper-mobile-topbar #block-oxdrupal-responsive-header-form input[name='search_block_form']").removeClass("searchontop");
163    jQuery('header:not(.mobile-topbar) #wrapper-mobile-topbar #block-oxdrupal-responsive-header-form .form-control').removeClass("expanded");
164
165    // jQuery('#wrapper-topbar .view-display-id-blk_mobile').fadeOut(0);
166    if (trigger !== 'mean-bar') {
167
168      if ($('#meanMenuCover').hasClass('expanded')) {
169        $('#meanMenuCover').removeClass('expanded');
170        $('#meanMenuCover').addClass('collapsed');
171        $('.mean-nav > div > ul').slideUp(0);
172      }
173    }
174
175    if (trigger !== 'header-links') {
176
177      if (jQuery('#header-links-tablet a').hasClass("expanded")) {
178        jQuery('#header-links-tablet a').removeClass("expanded");
179        jQuery('.view-header-links', "#header-links-tablet").hide();
180      }
181      else {
182        jQuery('#header-links-mobile a').removeClass("expanded");
183        jQuery("#block-views-header-links-blk-mobile").slideUp(0);
184        jQuery(".block-views-header-links-blk-mobile").slideUp(0);
185      }
186
187    }
188
189    if (trigger !== 'social-media-links') {
190      jQuery('#block-views-social-media-links-blk-clone').slideUp(0);
191      jQuery('#block-views-social-media-links-blk-mobile').slideUp(0);
192      jQuery('#social-links-mobile a').removeClass("expanded");
193      jQuery('#social-links-tablet a').removeClass("expanded");
194    }
195
196    // Allow scalability - #14407
197    // document.querySelector('meta[name="viewport"]').content = 'width=device-width, initial-scale=1.0';
198    jQuery('meta[name=viewport]').remove();
199    jQuery('head').append('<meta name="viewport" content="width=device-width, initial-scale=1.0">');
200    jQuery("#wrapper-mobile-topbar").focus();
201  }
202
203  // Determine if we're viewing on mobile or tablet.
204  // By testing for the visibilty of an element that is defined in the CSS, we keep the breakpoint width out of the JS
205  // with the introduction of minimal headers there are many more variables so much easier to use hard coded values
206  // with the introduction of minimal headers there are many more variables so much easier to use hard coded values.
207  function determineDeviceType() {
208    var device = "desktop";
209    var matchMedia = window.matchMedia || window.msMatchMedia;
210
211    if (typeof matchMedia !== 'undefined') {
212      if (matchMedia('(max-width: 768px)').matches) {
213        device = "mobile";
214      }
215      else if (matchMedia('(max-width: 992px)').matches) {
216        device = "tablet";
217      }
218    }
219
220    return device;
221  }
222
223  function determineTopbarBackground() {
224    var state = (jQuery('nav.mean-nav > div > ul').css('display') === 'block') ? 'expanded' : 'collapsed';
225    if (jQuery('#meanMenuCover').length > 0) {
226      // jQuery('#meanMenuCover').remove();
227    }
228    if (jQuery('.mobile_topbar_show').length > 0) {
229      jQuery('.mean-bar').addClass('mobile_topbar_show');
230    }
231
232    // Remove the background image from the top bar.
233    var device = determineDeviceType();
234    if (device != "desktop") {
235      jQuery('#wrapper-topbar').removeAttr('style');
236      jQuery('#wrapper-topbar').addClass('topbar-img-suppressed');
237    }
238    else {
239      jQuery('#wrapper-topbar').attr('style', Drupal.settings.backgroundImage);
240    }
241  }
242
243  function mobilePositioning() {
244    if (jQuery('#navbar-administration').length) {
245      jQuery('.mean-bar a.meanmenu-reveal, .mean-bar #meanMeanuCover, .mean-bar nav.mean-nav').css('margin-top', jQuery('body').css('padding-top'));
246    }
247  }
248  jQuery(window).resize(function(){
249    determineTopbarBackground();
250    mobilePositioning();
251  });
252
253  // Add css to the responsive menu to set uppercase on the menu items as required.
254  if (typeof Drupal.settings.responsive_menus !== 'undefined') {
255    if (Drupal.settings.responsive_menus[0].theme_nav_class == 'case-upper-one') {
256      jQuery('nav.mean-nav > .menu-level-0 > ul > li > a > span').css("text-transform", "uppercase");
257      jQuery('nav.mean-nav > .menu-level-0 > ul > li > div > span').css("text-transform", "uppercase");
258    }
259    else if (Drupal.settings.responsive_menus[0].theme_nav_class == 'case-upper-all') {
260      jQuery('nav.mean-nav li span').css("text-transform", "uppercase");
261    }
262  }
263  if (jQuery('.mobile_topbar_show').length > 0) {
264    jQuery('.mean-bar').addClass('mobile_topbar_show');
265  }
266
267  jQuery(window).scroll(function () {
268    mobilePositioning();
269    determineTopbarBackground();
270  });
271
272  jQuery(document).on('click', '#search-mobile .input-group-btn, #header-links-mobile, .meanmenu-reveal, #meanMenuCover', function(event){
273    var thisTrigger = jQuery(this);
274    var triggerType = '';
275    var speed = animationSpeed;
276
277    if (jQuery(thisTrigger).hasClass('meanmenu-reveal')) {
278      triggerType = 'main-menu';
279    }
280    else if (jQuery(thisTrigger).hasClass('mobile-dropdown-toggle')) {
281      triggerType = 'secondary-menu';
282    }
283    else if (jQuery(thisTrigger).hasClass('input-group-btn')) {
284      triggerType = 'search';
285    }
286
287    switch(triggerType) {
288      case 'main-menu' :
289        // // Main nav.
290        // jQuery('.mean-nav > div > ul').slideToggle(speed);
291        // Secondary nav.
292        jQuery(
293          "#block-views-header-links-blk-mobile," +
294          "#block-views-social-media-links-blk-mobile," +
295          "#block-views-header-links-blk-mobile--2," +
296          "#block-views-social-media-links-blk-mobile--2" +
297          ".block-views-header-links-blk-mobile," +
298          ".block-views-social-media-links-blk-mobile," +
299          ".block-views-header-links-blk-mobile--2," +
300          ".block-views-social-media-links-blk-mobile--2"
301        ).slideUp(speed);
302        // Search.
303        jQuery("#search-mobile .input-group input, #edit-search-scope").fadeOut(speed);
304        break;
305
306      case 'secondary-menu' :
307        // Main nav.
308        jQuery('.mean-nav > div > ul').slideUp(speed);
309        // Secondary nav.
310        jQuery(
311          "#block-views-header-links-blk-mobile," +
312          "#block-views-social-media-links-blk-mobile," +
313          "#block-views-header-links-blk-mobile--2," +
314          "#block-views-social-media-links-blk-mobile--2" +
315          ".block-views-header-links-blk-mobile," +
316          ".block-views-social-media-links-blk-mobile," +
317          ".block-views-header-links-blk-mobile--2," +
318          ".block-views-social-media-links-blk-mobile--2"
319        ).slideToggle(speed);
320        // Search.
321        jQuery("#search-mobile .input-group input, #edit-search-scope").fadeOut(speed);
322        break;
323
324      case 'search' :
325        // Main nav.
326        jQuery('.mean-nav > div > ul').slideUp(speed);
327        // Secondary nav.
328        jQuery(
329          "#block-views-header-links-blk-mobile," +
330          "#block-views-social-media-links-blk-mobile," +
331          "#block-views-header-links-blk-mobile--2," +
332          "#block-views-social-media-links-blk-mobile--2" +
333          ".block-views-header-links-blk-mobile," +
334          ".block-views-social-media-links-blk-mobile," +
335          ".block-views-header-links-blk-mobile--2," +
336          ".block-views-social-media-links-blk-mobile--2"
337        ).slideUp(speed);
338        // Search.
339        if (jQuery('input[name="search_block_form"]').length && !jQuery('#edit-search-block-form--2').is(":hidden")) {
340          if (jQuery('input[name="search_block_form"]').val()) {
341            jQuery('input[name="search_block_form"]').parents('search-block-form')[0].submit();
342          }
343          else {
344            jQuery("#search-mobile .input-group input, #edit-search-scope").fadeToggle(speed);
345            jQuery('input[name="search_block_form"]').focus();
346          }
347        } else {
348           jQuery("#search-mobile .input-group input, #edit-search-scope").fadeToggle(speed);
349           jQuery('input[name="search_block_form"]').focus();
350        }
351
352        break;
353
354    }
355
356    jQuery('#search-mobile .input-group-btn, #header-links-mobile, .meanmenu-reveal, #meanMenuCover').each(function() {
357      var singleTrigger = jQuery(this);
358      jQuery(singleTrigger).removeClass('activeState');
359    });
360    jQuery(thisTrigger).addClass('activeState');
361
362    event.stopPropagation();
363    event.preventDefault();
364    return false;
365  });
366
367  determineTopbarBackground();
368  mobilePositioning();
369
370});

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.