(function ($, Clipboard) { 'use strict'; // Replace form elements using jquery-ui. Drupal.behaviors.formElementThemes = { attach: function (context, settings) { $('select:not(.crm-select2)').selectmenu(); // Trigger a change in the underlying select when users change the jquery selectmenu. $(document).on('selectmenuchange', 'select', function () { $(this).trigger('change'); }); $('input[type=file]').button(); // search results checkboxes $('.facetapi-facetapi-checkbox-links li > input:checked').each(function () { $(this).siblings('label.element-invisible').addClass('check-this'); }); $('.facetapi-facetapi-checkbox-links li > input:not(:checked)').each(function () { $(this).siblings('label.element-invisible').removeClass('check-this'); }); } }; Drupal.behaviors.masthead = { attach: function (context, settings) { var expandItem = function () { var li = $(this).closest('li'); li.siblings().removeClass('expanded'); if (li.find('ul').length) { $('#masthead-wrapper').addClass('active'); li.addClass('expanded'); } }; $('#masthead-wrapper', context).mouseleave(function () { $('#masthead-wrapper').removeClass('active'); $('.pane-main-nav-menu li.expanded').removeClass('expanded'); }).find('.pane-main-nav-menu > ul > li').mouseover(expandItem) .children('a').focus(expandItem); $('#masthead form.search-site input[type=text]').attr('tabindex', -1); $('#masthead form.search-site *[type=submit]', context).click(function (e) { if (!$(this).parents('form').hasClass('active')) { $(this).parents('form').addClass('active').find('input[type=text]').select(); e.preventDefault(); } }); $(document).click(function (e) { if (!$(e.target).is('#masthead form.search-site, #masthead form.search-site *')) { $('#masthead form.search-site').removeClass('active'); } }); $(document).keyup(function (e) { if (e.which === 27) { $('#masthead form.search-site').removeClass('active'); } }); } }; Drupal.behaviors.mobileNav = { attach: function (context, settings) { var xDown = null; var mobileNav = $('#mobile-nav'); function handleTouchStart(evt) { xDown = evt.touches[0].clientX; } function handleTouchMove(evt) { var position = mobileNav.position(); // check to see if mobile-nav is in view var totalWidth = $(window).width(); if (position.left < totalWidth) { if (!xDown) { return; } var xUp = evt.touches[0].clientX; var xDiff = xDown - xUp; var nudge = 25; if (xDiff > nudge) { /* left swipe */ } else if (xDiff < -nudge) { /* right swipe */ document.body.classList.remove('active'); } } } document.addEventListener('touchstart', handleTouchStart, false); document.addEventListener('touchmove', handleTouchMove, false); $('.hamburger').on('click', function (e) { e.preventDefault(); e.stopPropagation(); document.body.classList.toggle('active'); }); $(window).on('click touchend', function (e) { if (document.body.classList.contains('active') && !$(e.target).is('#mobile-nav *')) { e.preventDefault(); document.body.classList.remove('active'); } }); $('#mobile-nav .pane-main-nav-menu > ul > li').on('click', 'a', function (e) { if (e.ctrlKey || e.altKey || e.metaKey) { return; } var item = $(this).parent('li'); var menu = $(this).closest('ul.menu'); if (!menu.parent().is('li') && item.children('ul.menu').length && !item.hasClass('opened')) { item.siblings().removeClass('opened'); item.toggleClass('opened'); e.preventDefault(); } }); } }; Drupal.behaviors.dismissed_panes = { attach: function (context, settings) { $('.dismiss', context).each(function () { var panel = $(this).closest('[data-pane_id]'); var id = panel.attr('data-pane_id'); if (document.cookie.indexOf(id + '_dismissed') !== -1) { return; } panel.show(); $(this).on('click', function (e) { e.preventDefault(); panel.remove(); document.cookie = id + '_dismissed=0; path=/'; }); }); } }; Drupal.behaviors.full_page_highlight = { attach: function (context, settings) { var p = $('.pane-full-page-highlight', context); if (!p.length) { return; } var pin = function () { var pw = $('#main-content').width(); var ww = $(window).width(); p.css('margin-left', (-(ww - pw) / 2) + 'px') .css('margin-right', (-(ww - pw) / 2) + 'px'); if (pw === ww) { $('.highlight-type', p).css('padding-left', '1rem'); } else { $('.highlight-type', p).css('padding-left', (ww - pw) / 2); } }; $(window).on('resize', pin); pin(); setTimeout(function () { p.animate({ 'max-height': 2000 }, 1000); setTimeout(function () { $('.content-wrapper', p).animate({ opacity: 1 }, 400); }, 500); }, 700); } }; Drupal.behaviors.sidebar = { attach: function (context, settings) { // sidebar visibility on mobile if ($(window).width() < 740) { $('.banner h1').addClass('opened'); $('.lefthand-sidebar-sidebar').css('display', 'block'); $('#panel-lefthand-sidebar').find('.banner, .pane-page-title').click(function (e) { $('.lefthand-sidebar-sidebar').toggle(300); $('.banner h1').toggleClass('opened'); $('.banner h2, .pane-page-title h2').toggleClass('opened'); }); } // sidebar nav $('.lefthand-sidebar-sidebar').find('ul.menu li.active, ul.menu li.active-trail').addClass('opened'); $('.lefthand-sidebar-sidebar ul.menu').on('click', 'a', function (e) { if (e.ctrlKey || e.altKey || e.metaKey) { return; } var item = $(this).parent('li'); var menu = $(this).closest('ul.menu'); if (!menu.parent().is('li') && item.children('ul.menu').length && !item.hasClass('opened')) { e.preventDefault(); item.siblings().removeClass('opened'); item.toggleClass('opened'); } }); $(window).resize(function () { var windowWidth = $(this).width(); // you need to use this for changable values if (windowWidth > 740) { $('.lefthand-sidebar-sidebar').show(); } }); } }; Drupal.behaviors.scrollClass = { attach: function (context, settings) { $('body.front', context).each(function () { $(window).scroll(function () { if ($(window).scrollTop() >= 300) { $('body').addClass('scrolled'); } else { $('body').removeClass('scrolled'); } }); $(window).trigger('scroll'); }); } }; Drupal.behaviors.longReadShareLinksSocial = { attach: function (context) { $('.share-links a.share-twitter', context).click(function (e) { e.preventDefault(); window.open(this.href, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=450,width=550'); }); $('.share-links a.share-facebook', context).click(function (e) { e.preventDefault(); window.open(this.href, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=500,width=650'); }); } }; Drupal.behaviors.longReadShareLinksCopy = { attach: function (context, settings) { if (!Clipboard.isSupported()) { return; } $('.share-clipboard', context).removeClass('disabled'); $('.share-clipboard', context).click(function (e) { e.preventDefault(); }); var clipboard = new Clipboard('.share-clipboard', { text: function (trigger) { return trigger.href; } }); clipboard.on('success', function (e) { $(e.trigger).find('span').text('Copied to clipboard!'); }); $('.share-clipboard', context).each(function () { var helpContainer = $(this).find('span'); var helpText = helpContainer.text(); $(this).mouseleave(function () { helpContainer.text(helpText); }); }); } }; Drupal.behaviors.inlineReadMore = { attach: function (context) { $('a.read-more', context).click(function (e) { e.preventDefault(); var description = $(this).parent().find('.continued-description'); var content = $(this).parent().find('.continued-description > .content'); $(this).remove(); description.css('transition', 'max-height ' + (content.height() / 2500.0) + 's ease-in'); description.addClass('open'); }); } }; Drupal.behaviors.readMore = { attach: function (context) { var place; var more_button = $('.toggle-display.more', context); if (!more_button.length && $('body').hasClass('page-issues-l1')) { place = $('.pane-page-content p').slice(2).first(); more_button = $('').addClass('toggle-display more').text('See More'); more_button.insertBefore(place); } if (more_button.show().parent().length) { more_button.attr('href', ''); if (more_button.parent().is('p')) { more_button = more_button.parent('p'); } // If there's a 'see more' button, hide the overflow content. more_button.nextAll().last().after('See Less'); more_button.nextAll().hide(); // Toggle content on click. $('.toggle-display', context).on('click', function (e) { e.preventDefault(); if ($(this).hasClass('more')) { more_button.hide().nextAll().show(); } else { more_button.show().nextAll().hide(); $('html, body').animate({ scrollTop: $('h1:visible, #main-content').offset().top }, 'slow'); } }); } } }; Drupal.behaviors.imageLinksTabIndex = { attach: function (context) { $('.views-field-content-thumbnail a', context).attr('tabindex', -1); $('.view .field--name-field-banner-graphic a', context).attr('tabindex', -1); $('.node--highlight .field--name-field-banner-graphic a', context).attr('tabindex', -1); $('.node--highlight header > a > img', context).parent().attr('tabindex', -1); } }; Drupal.behaviors.newsletterSignup = { attach: function (context, settings) { $(context).on('submit', '.newsletter-form', function (e) { var formData = { data_type: 'json', op: 'Sign Up Now' }; $(e.target).serializeArray().forEach(function (field) { formData[field.name] = field.value; }); $(e.target).removeClass('success error broken').addClass('waiting'); $('.error-message', e.target).text(''); $.post(e.target.action, formData) .done(function (data) { if (data.status) { $(e.target).removeClass('waiting').addClass('success'); if (settings.effMatomoUrl) { $.post(settings.effMatomoUrl .replace('e_a=', 'e_a=' + encodeURIComponent('Pending subscription created')) .replace('e_c=', 'e_c=Subscription') .replace('e_n=', 'e_n=' + encodeURIComponent('Newsletter form')) .replace('e_v=', 'e_v=1') .replace('urlref=', 'urlref=' + encodeURIComponent(document.referrer)) ); } } else { $('.error-message', e.target).text(data.message); $(e.target).removeClass('waiting').addClass('error'); } }) .fail(function () { $(e.target).removeClass('waiting').addClass('broken'); }); e.preventDefault(); }); } }; Drupal.behaviors.foiaDocumentTypeFilter = { attach: function (context, settings) { $('.section-foia .views-widget .form-item-field-document-type-tid', context).each(function () { if ($(this).parents('form').find('select[name=type]').val() === 'document') { $(this).parents('.pane-legal-case-related-content').addClass('document-search'); } }); $(context).on('selectmenuchange', '.section-foia .pane-legal-case-related-content select#edit-type', function (e) { if (e.target.value === 'document') { $(this).parents('.pane-legal-case-related-content').addClass('document-search'); } else { $('#edit-field-document-type-tid option[value=All]').attr('selected', 'selected').change(); $(this).parents('.pane-legal-case-related-content').removeClass('document-search'); } }); } }; Drupal.behaviors.caseRelatedContent = { attach: function (context, settings) { $(context).on('selectmenuchange', '.pane-legal-case-related-content select#edit-type', function (e) { history.replaceState({}, '', location.pathname + '?type=' + e.target.value + '#related-content'); }); } }; Drupal.behaviors.selectMenuTweak = { attach: function (context, settings) { $(document).on('click', '.ui-selectmenu-menu a', function (e) { e.preventDefault(); }); } }; Drupal.behaviors.expandingEffectorVolumes = { attach: function (context, settings) { var parent = $('.view-effector-archives-landing-page'); parent.on('click', 'h3', function () { $(this).toggleClass('open'); }); } }; Drupal.behaviors.torAndHttpsPage = { attach: function (context, settings) { if (!$('body').is('.page-node-96183')) { return; } var tor = false; var https = false; function set_background() { var image = 0; if (tor && https) { image = 3; } else if (tor) { image = 2; } else if (https) { image = 1; } else { image = 0; } $('#tor-https', context).css('background-image', 'url("/files/tor-https-' + image + '.png")'); } set_background(); $('#tor-https #tor', context).hover(function () { $(this).addClass('hover'); }, function () { $(this).removeClass('hover'); }); $('#tor-https #https', context).hover(function () { $(this).addClass('hover'); }, function () { $(this).removeClass('hover'); }); $('#tor-https #tor', context).click(function () { if (tor) { tor = false; $(this).removeClass('active'); } else { tor = true; $(this).addClass('active'); } set_background(); }); $('#tor-https #https', context).click(function () { if (https) { https = false; $(this).removeClass('active'); } else { https = true; $(this).addClass('active'); } set_background(); }); } }; // Day of Action trigger Drupal.behaviors.blackoutLogo = { attach: function (context, settings) { var dayOfAction = new Date('07/12/2017'); var today = new Date(); // remove time from comparison if (dayOfAction.setHours(0, 0, 0, 0) === today.setHours(0, 0, 0, 0)) { $('.branding').addClass('blackout'); $('.branding.blackout a').attr('href', '/deeplinks/2017/07/todays-day-lets-save-net-neutrality'); if ($(window).width() < 740) { $('.front .front-page-welcome .branding.blackout a img ').attr('src', '/sites/all/themes/phoenix/images/blocked-logo-mobile.png'); } } } }; Drupal.behaviors.takedownLearnMore = { attach: function (context, settings) { var title = $('.pane-node-field-takedown-links h2.pane-title'); if (!(title.next('div').hasClass('field'))) { title.parent().remove(); } } }; Drupal.behaviors.mobileTable = { attach: function (context, settings) { // for table stacking on mobile, we need these classes and attribute // don't apply to Who Has Your Back and other sticky header tables if ($('table').hasClass('mobile-table')) { $('table.mobile-table').addClass('tablesaw tablesaw-stack'); $('table.mobile-table').attr('data-tablesaw-mode', 'stack'); } //