1"use strict"; 2 3(function ($) { 4 $(document).ready(function () { 5 // nav 2025 6 var addHeaderStyleVars = function addHeaderStyleVars() { 7 var header = document.querySelector('.lwf-header'); 8 var headerMain = document.querySelector('.lwf-header__main'); 9 var headerTopLinks = document.querySelectorAll('.menu__item--expanded'); 10 11 // s - m 12 var mq = window.matchMedia("(min-width: 30em) and (max-width: 60em)"); 13 if (!mq.matches) { 14 return; 15 } 16 17 // get gap to parent top 18 if (header && headerTopLinks.length) { 19 var navBottom = header.getBoundingClientRect().bottom; 20 // 32 - inner top padding 21 headerTopLinks.forEach(function (link) { 22 link.style.setProperty('--top-gap', Math.floor((link.getBoundingClientRect().top - navBottom) * -1 + 32) + 'px'); 23 }); 24 } 25 if (headerMain) { 26 // get header height 27 headerMain.style.setProperty('--header-height', Math.floor(headerMain.getBoundingClientRect().height - 32) + 'px'); 28 } 29 }; 30 var addSubemnuHandler = function addSubemnuHandler() { 31 var submenuLinks = document.querySelectorAll('.menu__item--expanded > a, .menu__item--expanded > span'); 32 if (!submenuLinks.length) { 33 return; 34 } 35 submenuLinks.forEach(function (link) { 36 link.addEventListener('click', function (e) { 37 e.preventDefault(); 38 link.parentElement.classList.toggle('js-display-submenu'); 39 }); 40 }); 41 }; 42 var addBurgerHandler = function addBurgerHandler() { 43 var burgerBtn = document.querySelector('.menu-toggle-btn'); 44 var nav = document.querySelector('.lwf-header__main'); 45 if (!burgerBtn || !nav) { 46 return; 47 } 48 burgerBtn.addEventListener('click', function (e) { 49 e.preventDefault(); 50 burgerBtn.classList.toggle('js-active'); 51 nav.classList.toggle('js-nav-visible'); 52 }); 53 }; 54 addBurgerHandler(); 55 addSubemnuHandler(); 56 addHeaderStyleVars(); 57 window.addEventListener("resize", addHeaderStyleVars); 58 59 // Hide Header on on scroll down 60 var didScroll; 61 var lastScrollTop = 0; 62 var delta = 5; 63 var navbarHeight = $('header#navbar').outerHeight(); 64 $(window).scroll(function (event) { 65 didScroll = true; 66 }); 67 setInterval(function () { 68 if (didScroll) { 69 hasScrolled(); 70 didScroll = false; 71 } 72 }, 250); 73 function hasScrolled() { 74 var st = $(this).scrollTop(); 75 76 // Make sure they scroll more than delta 77 if (Math.abs(lastScrollTop - st) <= delta) return; 78 79 // If they scrolled down and are past the navbar, add class .nav-up. 80 // This is necessary so you never see what is "behind" the navbar. 81 // if (st > lastScrollTop && st > Math.abs(navbarHeight / 2)){ 82 if (st > Math.abs(navbarHeight / 2)) { 83 // Scroll Down 84 $('body').addClass('header-pop'); 85 if ($('#toolbar-bar').length > 0) { 86 $('header#navbar').css('margin-top', '32px'); 87 } 88 } else if (st < navbarHeight) { 89 $('body').removeClass('header-pop'); 90 } 91 lastScrollTop = st; 92 } 93 94 // Page width 95 // if a featured intro is present, add classname 'featured-image' to article. 96 var featuredimage = document.querySelectorAll('.main-container .field--name-field-image'); 97 if (featuredimage.length !== 0) { 98 $('article').addClass("featured-image"); 99 } else { 100 $('article').addClass("no-featured-image"); 101 } 102 103 // Main menu (mobile) 104 $('#superfish-main-toggle').click(function () { 105 if ($(this).hasClass('sf-expanded')) { 106 $(this).children('span').text('Close'); 107 $('html').css({ 108 'overflow': 'hidden' 109 }); 110 $('footer .paragraph--type-social-media-icons').addClass('menu-open'); 111 $('.footer.container').addClass('menu-open'); 112 $('.field--name-field-footer-links').addClass('menu-open'); 113 $('a.logo').addClass('menu-open'); 114 } else { 115 $(this).children('span').text('Menu'); 116 $('html').css({ 117 'overflow': 'initial' 118 }); 119 $('footer .paragraph--type-social-media-icons').removeClass('menu-open'); 120 $('.footer.container').removeClass('menu-open'); 121 $('.field--name-field-footer-links').removeClass('menu-open'); 122 $('a.logo').removeClass('menu-open'); 123 } 124 });
125 // Main menu (desktop) 126 $('#superfish-new-toggle').click(function () { 127 if ($('#superfish-main').hasClass('open')) { 128 $('#superfish-main').removeClass('open'); 129 $(this).removeClass('open'); 130 $(this).children('span').text('Menu'); 131 $('html').css({ 132 'overflow': 'initial' 133 }); 134 $('footer .paragraph--type-social-media-icons').removeClass('menu-open'); 135 $('.footer.container').removeClass('menu-open'); 136 $('.field--name-field-footer-links').removeClass('menu-open'); 137 $('a.logo').removeClass('menu-open'); 138 } else { 139 $('#superfish-main').addClass('open'); 140 $(this).addClass('open'); 141 $(this).children('span').text('Close'); 142 $('html').css({ 143 'overflow': 'hidden' 144 }); 145 $('footer .paragraph--type-social-media-icons').addClass('menu-open'); 146 $('.footer.container').addClass('menu-open'); 147 $('.field--name-field-footer-links').addClass('menu-open'); 148 $('a.logo').addClass('menu-open'); 149 } 150 }); 151 $(document).keyup(function (e) { 152 if (e.keyCode === 27) { 153 if ($('#superfish-new-toggle').hasClass('open')) { 154 $('#superfish-new-toggle').removeClass('open'); 155 $('#superfish-main').removeClass('open'); 156 $('#superfish-new-toggle').children('span').text('Menu'); 157 $('html').css({ 158 'overflow': 'initial' 159 }); 160 $('footer .paragraph--type-social-media-icons').removeClass('menu-open'); 161 $('.footer.container').removeClass('menu-open'); 162 $('.field--name-field-footer-links').removeClass('menu-open'); 163 $('a.logo').removeClass('menu-open'); 164 } 165 } 166 }); 167 168 // Employer grid - move total results after filters 169 var gmToggle = $('.grid-map-toggle-block #gm-toggle'); 170 $('.view-organisations-employers.view-display-id-block_1 .view-filters').after($('.view-organisations-employers.view-display-id-block_1 .view-header')); 171 $('.view-organisations-employers.view-display-id-block_2 .view-empty').append($('.view-organisations-employers.view-display-id-block_2 .view-header')); 172 173 // Move list and map to correct location on List of Employers page 174 if ($('#block-views-block-organisations-employers-block-1').length > 0) { 175 $('.region-content > article > .content > .field--name-field-page-intro-text').after($('#block-views-block-organisations-employers-block-1')); 176 } 177 if ($('#block-views-block-organisations-employers-block-2').length > 0) { 178 $('.region-content > article > .content > .field--name-field-page-intro-text').after($('#block-views-block-organisations-employers-block-2')); 179 $('#block-views-block-organisations-employers-block-2').addClass('hidden'); 180 if ($('.view-id-organisations_employers .views-exposed-form .form--inline #gm-toggle').length < 1) { 181 gmToggle.appendTo($('.view-id-organisations_employers.view-display-id-block_1 .views-exposed-form .form--inline')); 182 } 183 } 184 // Make 'Apply' button truly require input for map to fire 185 $('#views-exposed-form-organisations-employers-block-2 button[type="submit"]').attr('disabled', true); 186 $('#views-exposed-form-organisations-employers-block-2 .form-item-title input').keydown(function () { 187 if (this.value.length > 0) { 188 $('#views-exposed-form-organisations-employers-block-2 button[type="submit"]').attr('disabled', false); 189 } else { 190 $('#views-exposed-form-organisations-employers-block-2 button[type="submit"]').attr('disabled', true); 191 } 192 }); 193 $('#views-exposed-form-organisations-employers-block-2 select').on('change', function () { 194 if (this.value != 'All') { 195 $('#views-exposed-form-organisations-employers-block-2 button[type="submit"]').attr('disabled', false); 196 } else { 197 $('#views-exposed-form-organisations-employers-block-2 button[type="submit"]').attr('disabled', true); 198 } 199 }); 200 201 // Employer grid - pop-up add image 202 $('.emp-logo').each(function () { 203 var img = $(this).children('img').clone(); 204 $(this).next().find('.logo').append(img); 205 }); 206 207 // List - Map toggle 208 $('.view-id-organisations_employers #gm-toggle a.btn.btn--primary').click(function () { 209 if ($(this).hasClass('active')) { 210 // nothing 211 } else { 212 if ($(this).hasClass('grid')) {
213 gmToggle.appendTo($('.view-id-organisations_employers.view-display-id-block_1 .views-exposed-form .form--inline')); 214 $(this).addClass('active'); 215 $(this).next().removeClass('active'); 216 $('#block-views-block-organisations-employers-block-1').removeClass('hidden'); 217 $('#block-views-block-organisations-employers-block-2').addClass('hidden'); 218 } else if ($(this).hasClass('map')) { 219 gmToggle.appendTo($('.view-id-organisations_employers.view-display-id-block_2 .views-exposed-form .form--inline')); 220 $(this).addClass('active'); 221 $(this).prev().removeClass('active'); 222 $('#block-views-block-organisations-employers-block-2').removeClass('hidden'); 223 $('#block-views-block-organisations-employers-block-1').addClass('hidden'); 224 } 225 } 226 }); 227 var recordType = $('.view-dashboard-content-based-on-sf-record-type.view-display-id-block_1 .record-type').text(); 228 $('.view-dashboard-content-based-on-sf-record-type.view-display-id-block_1 .record-type').hide(); 229 if (recordType == 'Living Wage - Employers') { 230 $('#block-views-block-dashboard-content-block-4').hide(); 231 $('#block-views-block-dashboard-content-block-5').hide(); 232 } 233 if (recordType == 'Living Wage - Service Provider') { 234 $('#block-views-block-dashboard-content-block-1').hide(); 235 $('#block-views-block-dashboard-content-block-2').hide(); 236 } 237 238 // Carousel 239 if ($('.main-container .field--name-field-footer-partner-logo').length > 0) { 240 $('.main-container .field--name-field-footer-partner-logo').slick({ 241 arrows: true, 242 infinite: true, 243 speed: 1000, 244 slidesToShow: 5, 245 slidesToScroll: 5, 246 responsive: [{ 247 breakpoint: 1399, 248 settings: { 249 slidesToShow: 4, 250 slidesToScroll: 4 251 } 252 }, { 253 breakpoint: 1099, 254 settings: { 255 slidesToShow: 3, 256 slidesToScroll: 3 257 } 258 }, { 259 breakpoint: 767, 260 settings: { 261 slidesToShow: 2, 262 slidesToScroll: 2 263 } 264 }, { 265 breakpoint: 480, 266 settings: { 267 slidesToShow: 1, 268 slidesToScroll: 1 269 } 270 }] 271 }); 272 } 273 if ($('#block-ourpartnersfooterblock .field--name-field-footer-partner-logo').length > 0) { 274 $('#block-ourpartnersfooterblock .field--name-field-footer-partner-logo').slick({ 275 arrows: true, 276 infinite: true, 277 speed: 2000, 278 autoplay: true, 279 autoplaySpeed: 5000, 280 slidesToShow: 7, 281 slidesToScroll: 7, 282 responsive: [{ 283 breakpoint: 1279, 284 settings: { 285 slidesToShow: 5, 286 slidesToScroll: 5 287 } 288 }, { 289 breakpoint: 1023, 290 settings: { 291 slidesToShow: 4, 292 slidesToScroll: 4 293 } 294 }, { 295 breakpoint: 767, 296 settings: { 297 slidesToShow: 3, 298 slidesToScroll: 3 299 } 300 }, { 301 breakpoint: 480, 302 settings: { 303 slidesToShow: 1, 304 slidesToScroll: 1 305 } 306 }] 307 }); 308 } 309 310 // Button shortener 311 $('#edit-actions-next').text('Continue'); 312 $('#edit-shipping-information-recalculate-shipping').text('Recalculate'); 313 314 // Accordion paragraph 315 $('.field--name-field-accordion-section .paragraph--type--accordion').each(function () { 316 $(this).addClass('collapsed'); 317 $(this).find('.field--name-field-heading').click(function () { 318 if ($(this).parent().hasClass('collapsed')) { 319 $(this).parent().removeClass('collapsed'); 320 } else { 321 $(this).parent().addClass('collapsed'); 322 } 323 }); 324 }); 325 326 // Accordion on dashboard 327 $('.dashboard .accordion').each(function (i) { 328 $(this).find('h2.block-title').click(function () { 329 if ($(this).parent().hasClass('collapsed')) { 330 $(this).parent().removeClass('collapsed'); 331 } else { 332 $(this).parent().addClass('collapsed'); 333 } 334 }); 335 }); 336 337 // Jobs accordion empty fix 338 if ($('.view-jobs .panel-body').text().trim().length == 0) { 339 $('.view-jobs').addClass('hidden'); 340 } 341 342 // Webform accordion on .accordion-item pages 343 $('.accordion-item .paragraph--type--webform').each(function (i) { 344 if (i >= 0) { 345 $(this).addClass('collapsed'); 346 } 347 $(this).find('h2').click(function () { 348 if ($(this).parent().parent().hasClass('collapsed')) { 349 $(this).parent().parent().removeClass('collapsed'); 350 } else { 351 $(this).parent().parent().addClass('collapsed'); 352 } 353 }); 354 }); 355 356 // Hide Search form no results text if form is empty 357 if ($('#search-form').length > 0) { 358 if ($('form#search-form #edit-keys').attr('value').length == 0) { 359 $('form#search-form + h3').hide(); 360 } 361 } 362 363 // ID on RSP view 364 $('.view-faq-rsps').parent().parent().parent().parent().prev('.field--item').attr('id', 'rsps'); 365 $('.view-faq-living-hours').parent().parent().parent().parent().prev('.field--item').attr('id', 'livinghours'); 366 367 // Full width white bg on accredit page - logo carousel and title 368 $('.view-id-partners_join_us_page.view-display-id-block_1').parent().parent().parent().addClass('emp-carousel-wrap'); 369 370 // Count up on homepage elements 371 372 var countCurrencyOptions = { 373 duration: 5, 374 decimalPlaces: 2, 375 prefix: '£', 376 startVal: 8 377 }; 378 var countE1 = $('#countData1').text(); 379 var element1 = new countUp.CountUp('countData1', countE1, countCurrencyOptions); 380 if (!element1.error) { 381 element1.start(); 382 } else { 383 console.error(element1.error); 384 } 385 var countE2 = $('#countData2').text(); 386 var element2 = new countUp.CountUp('countData2', countE2, countCurrencyOptions); 387 if (!element2.error) { 388 element2.start(); 389 } else { 390 console.error(element2.error); 391 } 392 var countIntOptions = { 393 duration: 5, 394 startVal: 300000 395 }; 396 var countE3 = $('#countData3').text(); 397 var element3 = new countUp.CountUp('countData3', countE3, countIntOptions); 398 if (!element3.error) { 399 element3.start(); 400 } else { 401 console.error(element3.error); 402 } 403 var countIntTwoOptions = { 404 duration: 5, 405 startVal: 8000 406 }; 407 var countE4 = $('#countData4').text(); 408 var element4 = new countUp.CountUp('countData4', countE4, countIntTwoOptions); 409 if (!element4.error) { 410 element4.start(); 411 } else { 412 console.error(element4.error); 413 } 414 415 // Add count class to white blocks paragraph instances 416 $('.paragraph--type--white-blocks').each(function () { 417 $(this).addClass('count-' + $(this).find('.field--name-field-add-text-blocks').children().length); 418 }); 419 420 // Add count class to white blocks with icons paragraph instances 421 $('.paragraph--type--text-blocks-with-icon').each(function () { 422 $(this).addClass('count-' + $(this).find('.field--name-field-add-blocks').children().length); 423 }); 424 $('body.user-reset #edit-submit').text('Save and Log In'); 425 }); 426 $(document).ajaxComplete(function () { 427 $('.emp-logo').each(function () { 428 var img = $(this).children('img').clone(); 429 if ($(this).next().find('.logo').children().length == 0) { 430 $(this).next().find('.logo').append(img); 431 } 432 }); 433 434 // Dashboard views visibility 435 var recordType = $('.view-dashboard-content-based-on-sf-record-type.view-display-id-block_1 .record-type').text(); 436 $('.view-dashboard-content-based-on-sf-record-type.view-display-id-block_1 .record-type').hide(); 437 if (recordType == 'Living Wage - Employers') { 438 $('.view-dashboard-content-based-on-sf-record-type.view-display-id-block_1 .views-field-view-1').hide(); 439 $('.view-dashboard-content-based-on-sf-record-type.view-display-id-block_1 .views-field-view-3').hide(); 440 } 441 if (recordType == 'Living Wage - Service Providers') { 442 $('.view-dashboard-content-based-on-sf-record-type.view-display-id-block_1 .views-field-view').hide(); 443 $('.view-dashboard-content-based-on-sf-record-type.view-display-id-block_1 .views-field-view-2').hide(); 444 } 445 446 // Employers grid and map 447 $('.view-organisations-employers.view-display-id-block_1 .view-filters').after($('.view-organisations-employers.view-display-id-block_1 .view-header')); 448 $('.view-organisations-employers.view-display-id-block_2 .view-filters').after($('.view-organisations-employers.view-display-id-block_2 .view-header')); 449 if ($('.view-organisations-employers.view-display-id-block_2 .view-content').length > 0) { 450 $('.view-organisations-employers.view-display-id-block_2 .view-header img').hide(); 451 } 452 var gmAjaxToggle = '<div id="gm-toggle"><a class="btn btn--primary grid active">List</a><a class="btn btn--primary map">Map</a></div>'; 453 if ($('#block-views-block-organisations-employers-block-1.hidden').length > 0) { 454 if ($('.view-id-organisations_employers .views-exposed-form .form--inline #gm-toggle').length < 1) { 455 $($.parseHTML(gmAjaxToggle)).appendTo($('.view-id-organisations_employers.view-display-id-block_2 .views-exposed-form .form--inline')); 456 } 457 $('.view-id-organisations_employers.view-display-id-block_2 #gm-toggle a.map').addClass('active'); 458 $('.view-id-organisations_employers.view-display-id-block_2 #gm-toggle a.grid').removeClass('active'); 459 } else { 460 if ($('.view-id-organisations_employers .views-exposed-form .form--inline #gm-toggle').length < 1) { 461 $($.parseHTML(gmAjaxToggle)).appendTo($('.view-id-organisations_employers.view-display-id-block_1 .views-exposed-form .form--inline')); 462 } 463 } 464 $('.view-id-organisations_employers #gm-toggle a.btn.btn--primary').click(function () { 465 if ($(this).hasClass('grid')) { 466 $('.view-id-organisations_employers #gm-toggle').appendTo($('.view-id-organisations_employers.view-display-id-block_1 .views-exposed-form .form--inline')); 467 $(this).addClass('active'); 468 $(this).next().removeClass('active'); 469 $('#block-views-block-organisations-employers-block-1').removeClass('hidden'); 470 $('#block-views-block-organisations-employers-block-2').addClass('hidden'); 471 } else if ($(this).hasClass('map')) { 472 $('.view-id-organisations_employers #gm-toggle').appendTo($('.view-id-organisations_employers.view-display-id-block_2 .views-exposed-form .form--inline')); 473 $(this).addClass('active'); 474 $(this).prev().removeClass('active'); 475 $('#block-views-block-organisations-employers-block-2').removeClass('hidden'); 476 $('#block-views-block-organisations-employers-block-1').addClass('hidden'); 477 } 478 }); 479 480 // Make 'Apply' button truly require input for map to fire 481 $('#views-exposed-form-organisations-employers-block-2 button[type="submit"]').attr('disabled', true); 482 $('#views-exposed-form-organisations-employers-block-2 .form-item-title input').keydown(function () { 483 if (this.value.length > 0) { 484 $('#views-exposed-form-organisations-employers-block-2 button[type="submit"]').attr('disabled', false); 485 } else { 486 $('#views-exposed-form-organisations-employers-block-2 button[type="submit"]').attr('disabled', true); 487 } 488 }); 489 $('#views-exposed-form-organisations-employers-block-2 select').on('change', function () { 490 if (this.value != 'All') { 491 $('#views-exposed-form-organisations-employers-block-2 button[type="submit"]').attr('disabled', false); 492 } else { 493 $('#views-exposed-form-organisations-employers-block-2 button[type="submit"]').attr('disabled', true); 494 } 495 }); 496 }); 497 $(document).on({ 498 ajaxStart: function ajaxStart() { 499 $("body").addClass("loading"); 500 }, 501 ajaxStop: function ajaxStop() { 502 $("body").removeClass("loading"); 503 } 504 }); 505 $(window).on('load', function () { 506 // Show page once everything is done loading 507 $('body').css({ 508 'opacity': '1', 509 'transition': '0.3s' 510 }); 511 $('.countup').css({ 512 'font-size': '3rem', 513 'transition': '0.8s' 514 }); 515 }); 516})(jQuery); 517 518// embedded form assembly iframe code 519var queryString = window.location.search.substring(1); 520window.addEventListener("load", function () { 521 var errorMessage = document.getElementsByClassName('field--name-field-error-message'); 522 var errorContact = document.getElementsByClassName('field--name-field-contact-email'); 523 if (errorMessage != null && errorMessage[0] != undefined && errorContact != null) { 524 var sourceError = "<div id=\"link-error\"><h3>" + errorMessage[0].innerText + "<br><a href=\"mailto:" + errorContact[0].innerText + "\">" + errorContact[0].innerText + "</a></h3></div>"; 525 } else { 526 var sourceError = "<div id=\"link-error\"><h3>It looks like you did not use a personalised link â contact us to get your personalised form link.</h3></div>"; 527 } 528 var formPageType = document.getElementsByClassName('node-type-assembly-form'); 529 var elem = document.getElementById("formIframeId"); 530 var formButtonDiv = document.getElementById("formLink"); 531 if (queryString.length !== 0 && elem != null) { 532 var url = document.getElementsByClassName('field--name-field-iframe-source-base-url')["0"].textContent; 533 var formNumber = document.getElementsByClassName('field--name-field-put-the-form-number-here-e')["0"].textContent; 534 var source = "<p class=\"iframe-wrap\"><iframe src=\"" + url + formNumber + "?" + queryString + "\" height=\"100%\" width=\"100%\" style=\"overflow:hidden;height:100%;width:100%\" frameborder=\"0\" id=\"iframeId\" ></iframe><script src=\"//tfaforms.com/js/iframe_resize_helper.js\"></script></p>"; 535 elem.innerHTML = source; 536 formButtonDiv.innerHTML = "<div><h3>It looks like you're on a mobile device...</h3></div><br><a class=\"button-style\" target=\"_blank\" href=\"" + url + formNumber + "?" + queryString + "\" >Go to form</a>"; 537 } else if (queryString.length === 0 && elem != null) { 538 elem.innerHTML = sourceError; 539 } 540});
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.