PageSourceSearch

https://www.portailpalliatif.ca/2SLGBTQ/Assets/js/main.js?7

js portailpalliatif.ca collected 2026-09-30 16:41:24 UTC 17,726 bytes, 734 lines download raw bytes

1$(function () {
2  var resizeTo;
3
4  $(window).on('resize', windowSize);
5
6  $(window).on('load resize', windowSize);
7
8  windowSize();
9
10  initContentSwitcher();
11  initArticleSelect();
12
13  $('#back-top').hide();
14
15  $(window).scroll(function () {
16    if ($(this).scrollTop() > 700) {
17      $('#back-top').fadeIn();
18    } else {
19      $('#back-top').fadeOut();
20    }
21  });
22
23  $('#back-top a').click(function () {
24    $('body,html').animate(
25      {
26        scrollTop: 0,
27      },
28      800
29    );
30    return false;
31  });
32
33  $('.top-contact__bars label.hamburger').click(function () {
34    $(this).toggleClass('-active');
35    if ($(this).hasClass('-active')) {
36      $('body').css({ overflow: 'hidden' });
37    } else {
38      $('body').css({ overflow: 'auto' });
39    }
40  });
41
42  $('.partners__gallery').slick({
43    infinite: true,
44    slidesToShow: 4,
45    slidesToScroll: 1,
46    prevArrow: '<div class="angle-left"></div>',
47    nextArrow: '<div class="angle-right"></div>',
48    responsive: [
49      {
50        breakpoint: 1200,
51        settings: {
52          slidesToShow: 2,
53          slidesToScroll: 1,
54          infinite: true,
55          dots: false,
56        },
57      },
58      {
59        breakpoint: 750,
60        settings: {
61          slidesToShow: 1,
62          slidesToScroll: 1,
63        },
64      },
65    ],
66  });
67
68  $('.partners__items.-gallery').slick({
69    infinite: true,
70    slidesToShow: 3,
71    slidesToScroll: 1,
72    prevArrow: '<div class="angle-left"></div>',
73    nextArrow: '<div class="angle-right"></div>',
74    responsive: [
75      {
76        breakpoint: 1024,
77        settings: {
78          slidesToShow: 2,
79          slidesToScroll: 2,
80          infinite: true,
81          dots: false,
82        },
83      },
84      {
85        breakpoint: 600,
86        settings: {
87          slidesToShow: 2,
88          slidesToScroll: 2,
89        },
90      },
91      {
92        breakpoint: 480,
93        settings: {
94          slidesToShow: 1,
95          slidesToScroll: 1,
96        },
97      },
98    ],
99  });
100
101  $('.gallery__items').slick({
102    infinite: true,
103    slidesToShow: 1,
104    slidesToScroll: 1,
105    dots: false,
106    prevArrow: '<div class="angle-left"></div>',
107    nextArrow: '<div class="angle-right"></div>',
108  });
109
110  $('.js-video-gallery').slick({
111    infinite: true,
112    slidesToShow: 4,
113    slidesToScroll: 1,
114    dots: false,
115    prevArrow: '<div class="angle-left"></div>',
116    nextArrow: '<div class="angle-right"></div>',
117    responsive: [
118      {
119        breakpoint: 1024,
120        settings: {
121          slidesToShow: 2,
122          slidesToScroll: 2,
123          infinite: true,
124          dots: false,
125        },
126      },
127      {
128        breakpoint: 480,
129        settings: {
130          slidesToShow: 1,
131          slidesToScroll: 1,
132        },
133      },
134    ],
135  });
136
137  $('.-js-infoblock-gallery').each(function () {
138    var $slider = $(this);
139
140    $slider.slick({
141      infinite: true,
142      slidesToShow: 3,
143      slidesToScroll: 1,
144      adaptiveHeight: true,
145      dots: false,
146      prevArrow: '<div class="angle-left"></div>',
147      nextArrow: '<div class="angle-right"></div>',
148      responsive: [
149        {
150          breakpoint: 1024,
151          settings: {
152            slidesToShow: 2,
153            slidesToScroll: 2,
154            infinite: true,
155          },
156        },
157        {
158          breakpoint: 480,
159          settings: {
160            slidesToShow: 1,
161            slidesToScroll: 1,
162          },
163        },
164      ],
165    });
166  });
167
168  $('.-js-veterans-gallery').slick({
169    infinite: true,
170    slidesToShow: 4,
171    slidesToScroll: 1,
172    adaptiveHeight: true,
173    dots: true,
174    prevArrow: '<div class="angle-left"></div>',
175    nextArrow: '<div class="angle-right"></div>',
176    responsive: [
177      {
178        breakpoint: 1240,
179        settings: {
180          slidesToShow: 3,
181          slidesToScroll: 1,
182          infinite: true,
183        },
184      },
185      {
186        breakpoint: 860,
187        settings: {
188          slidesToShow: 2,
189          slidesToScroll: 1,
190        },
191      },
192      {
193        breakpoint: 640,
194        settings: {
195          slidesToShow: 1,
196          slidesToScroll: 1,
197        },
198      },
199    ],
200  });
201
202  $('.-js-content-sider').slick({
203    infinite: true,
204    slidesToShow: 1,
205    slidesToScroll: 1,
206    dots: false,
207    prevArrow: '<div class="angle-left-bg"></div>',
208    nextArrow: '<div class="angle-right-bg"></div>',
209    responsive: [
210      {
211        breakpoint: 1024,
212        settings: {
213          slidesToShow: 1,
214          slidesToScroll: 2,
215          infinite: true,
216        },
217      },
218      {
219        breakpoint: 480,
220        settings: {
221          slidesToShow: 1,
222          slidesToScroll: 1,
223        },
224      },
225    ],
226  });
227
228  $('.js-news-gallery').slick({
229    infinite: true,
230    slidesToShow: 3,
231    slidesToScroll: 1,
232    dots: false,
233    prevArrow: '<div class="angle-left"></div>',
234    nextArrow: '<div class="angle-right"></div>',
235    responsive: [
236      {
237        breakpoint: 1024,
238        settings: {
239          slidesToShow: 2,
240          slidesToScroll: 2,
241          infinite: true,
242          dots: false,
243        },
244      },
245      {
246        breakpoint: 480,
247        settings: {
248          slidesToShow: 1,
249          slidesToScroll: 1,
250        },
251      },
252    ],
253  });
254  $('[data-fancybox="gallery-fancybox"]').fancybox({
255    protect: true,
256  });
257
258  $('.resources-gallery').slick({
259    infinite: true,
260    slidesToShow: 1,
261    slidesToScroll: 1,
262    adaptiveHeight: true,
263    dots: false,
264    prevArrow: '<div class="angle-left-l0"></div>',
265    nextArrow: '<div class="angle-right-r0"></div>',
266    responsive: [
267      {
268        breakpoint: 1024,
269        settings: {
270          slidesToShow: 2,
271          slidesToScroll: 2,
272          infinite: true,
273        },
274      },
275      {
276        breakpoint: 480,
277        settings: {
278          slidesToShow: 1,
279          slidesToScroll: 1,
280        },
281      },
282    ],
283  });
284  $('.-js-gallery-grief').slick({
285    infinite: true,
286    slidesToShow: 3,
287    slidesToScroll: 1,
288    adaptiveHeight: true,
289    dots: false,
290    prevArrow: '<div class="angle-left-l0"></div>',
291    nextArrow: '<div class="angle-right-r0"></div>',
292    responsive: [
293      {
294        breakpoint: 1024,
295        settings: {
296          slidesToShow: 2,
297          slidesToScroll: 2,
298          infinite: true,
299        },
300      },
301      {
302        breakpoint: 480,
303        settings: {
304          slidesToShow: 1,
305          slidesToScroll: 1,
306        },
307      },
308    ],
309  });
310
311  var $toggleBtn = $('.toggleSearchBtn');
312  var $searchForm = $('#searchForm');
313
314  $toggleBtn.on('click', function (e) {
315    e.preventDefault();
316
317    if ($searchForm.is(':hidden') || $searchForm.width() === 0) {
318      $searchForm.show().animate(
319        { width: '235px' },
320        {
321          duration: 300,
322          complete: function () {
323            $toggleBtn.addClass('-hide');
324          },
325        }
326      );
327    } else {
328      $searchForm.animate(
329        { width: 0 },
330        {
331          duration: 300,
332          complete: function () {
333            $searchForm.hide();
334            $toggleBtn.removeClass('-hide');
335          },
336        }
337      );
338    }
339  });
340
341  $(document).on('click', function (e) {
342    if (
343      !$toggleBtn.is(e.target) &&
344      $toggleBtn.has(e.target).length === 0 &&
345      !$searchForm.is(e.target) &&
346      $searchForm.has(e.target).length === 0 &&
347      !$searchForm.is(':hidden')
348    ) {
349      $searchForm.animate(
350        { width: 0 },
351        {
352          duration: 300,
353          complete: function () {
354            $searchForm.hide();
355            $toggleBtn.removeClass('-hide');
356          },
357        }
358      );
359    }
360  });
361});
362
363function windowSize() {
364  //function windowSize() {
365  if (resizeTo != 'big' && $(window).width() <= 1200) {
366    resizeTo = 'big';
367    if (!$('.content-block__aside').hasClass('-hide')) {
368      $('#toggleNavBtn').click();
369    }
370  } else if (resizeTo != 'small' && $(window).width() > 1200) {
371    resizeTo = 'small';
372    if ($('.content-block__aside').hasClass('-hide')) {
373      $('#toggleNavBtn').click();
374    }
375  }
376  //}
377
378  if ($(window).width() <= '600') {
379    $('[data-bg-mobile]').each(function () {
380      var attr = $(this).attr('data-bg-mobile');
381      if (attr) {
382        $(this).css('background-image', 'url(' + attr + ')');
383      }
384    });
385
386    $('[data-src-mobile]').each(function () {
387      var attr = $(this).attr('data-src-mobile');
388      if (attr) {
389        $(this).attr('src', attr);
390      }
391    });
392  } else {
393    $('[data-bg-mobile]').each(function () {
394      var attr = $(this).attr('data-bg');
395      if (attr) {
396        $(this).css('background-image', 'url(' + attr + ')');
397      }
398    });
399
400    $('[data-src-mobile]').each(function () {
401      var attr = $(this).attr('data-src');
402      if (attr) {
403        $(this).attr('src', attr);
404      }
405    });
406  }
407}
408
409function initContentSwitcher() {
410  $(document).on('click', '.js-nav-el', function () {
411    $('.js-nav-el').removeClass('-active');
412    $(this).addClass('-active');
413    $('.js-content-el').hide();
414    var id = $(this).attr('data-content-id');
415    $('.js-content-el#content-' + id).show();
416  });
417}
418
419function initArticleSelect() {
420  $(document).on('click', '.js-article-card', function (e) {
421    e.preventDefault();
422    var articleId = $(this).attr('data-article-id');
423    updateQueryString('articleId', articleId);
424    var data = {
425      articleId: articleId,
426    };
427    refreshResults(data);
428  });
429}
430
431var $page = $('html, body');
432$('a[href*="#"]').click(function () {
433  $page.animate(
434    {
435      scrollTop: $($.attr(this, 'href')).offset().top,
436    },
437    400
438  );
439  return false;
440});
441
442$('#toggleNavBtn').click(function () {
443  var $aside = $(this).next('.content-block__aside');
444  var $parent = $aside.parent('.content-aside');
445
446  if ($aside.hasClass('-hide')) {
447    $(this).text('✖ Hide navigation');
448  } else {
449    $(this).text('☰ Show navigation');
450  }
451
452  $aside.toggleClass('-hide');
453  $parent.toggleClass('-hide');
454});
455
456$('.info-block__btn-block').click(function () {
457  $('.-js-infoblock-gallery').slick('refresh');
458  $('.-js-veterans-gallery').slick('refresh');
459  $(this).toggleClass('-active');
460  $(this)
461    .parents('.info-block__info-item')
462    .find('.info-block__text-hidden')
463    .slideToggle();
464});
465
466$('.button.-js-more').click(function () {
467  var btn = $(this);
468
469  btn.prev('.info-block__text-hidden').toggle('show');
470
471  if (btn.hasClass('-js-more')) {
472    btn.parent().find('.info-block__text').addClass('-active');
473    btn
474      .removeClass('-js-more')
475      .addClass('-js-less')
476      .html('Read Less <span>›</span>');
477  } else {
478    btn.parent().find('.info-block__text').removeClass('-active');
479    btn
480      .removeClass('-js-less')
481      .addClass('-js-more')
482      .html('Continue Reading <span>›</span>');
483  }
484});
485
486$(window).keyup(function (e) {
487  var target = $('.checkbox-btn-group input:focus');
488  if (e.keyCode == 9 && $(target).length) {
489    $(target).parent().addClass('focused');
490  }
491});
492
493$('.checkbox-btn-group input').focusout(function () {
494  $(this).parent().removeClass('focused');
495});
496
497$('.slide-btn').click(function () {
498  $('.slide-btn,.resources').removeClass('-active');
499  $('.resources-gallery.slick-initialized').slick('unslick');
500  $(this).toggleClass('-active');
501  var index = $(this).index();
502  var resources = $('.resources').eq(index);
503  resources.addClass('-active');
504  $('.resources-gallery', resources).slick({
505    infinite: true,
506    slidesToShow: 1,
507    slidesToScroll: 1,
508
509    adaptiveHeight: true,
510    dots: false,
511    prevArrow: '<div class="angle-left-l0"></div>',
512    nextArrow: '<div class="angle-right-r0"></div>',
513    responsive: [
514      {
515        breakpoint: 480,
516        settings: {
517          slidesToShow: 1,
518          slidesToScroll: 1,
519        },
520      },
521    ],
522  });
523});
524$('.slide-btn:first').click();
525var $page = $('html, body');
526$('.return-btn').click(function () {
527  $page.animate(
528    {
529      scrollTop: $($.attr(this, 'href')).offset().top,
530    },
531    400
532  );
533  return false;
534});
535$(document).on('click', '.faq__item-icon', function () {
536  $(this).toggleClass('-active');
537  $(this).parents('.faq__item').find('.faq__item-info').slideToggle();
538});
539$('.map-info__item-icon').click(function () {
540  $(this).toggleClass('-active');
541  $(this).parents('.map-info__item').find('.map-info__item-info').slideToggle();
542});
543
544$(window).keyup(function (e) {
545  var target = $('.checkbox-btn-group input:focus');
546  if (e.keyCode == 9 && $(target).length) {
547    $(target).parent().addClass('focused');
548  }
549});
550
551$('.checkbox-btn-group input').focusout(function () {
552  $(this).parent().removeClass('focused');
553});
554
555$('.-js-gallery-home').slick({
556  infinite: true,
557  slidesToShow: 1,
558  slidesToScroll: 1,
559  adaptiveHeight: true,
560  dots: false,
561  prevArrow: '<div class="angle-left-l0"></div>',
562  nextArrow: '<div class="angle-right-r0"></div>',
563});
564
565var nowyear = new Date().getFullYear();
566var month = new Date().toLocaleString('en-EN', { month: 'long' });
567
568$('.calendar-year__item').html(nowyear);
569$('.calendar-mounth__item')
570  .text(month)
571  .data({ monthNum: new Date().getMonth() });
572
573$('.year-left').click(function () {
574  var year = parseInt($('.calendar-year__item').html());
575  year--;
576  $('.calendar-year__item').html(year);
577  $('.blog-filter__input-y').val(year);
578  $('.calendar-input').val($('.calendar-mounth__item').html() + ' ' + year);
579  $('.year-right').removeClass('-noactive');
580});
581$('.year-right').click(function () {
582  var year = parseInt($('.calendar-year__item').html());
583  year++;
584  if (year > nowyear) {
585    return;
586  }
587  $('.calendar-year__item').html(year);
588  $('.blog-filter__input-y').val(year);
589  $('.calendar-input').val($('.calendar-mounth__item').html() + ' ' + year);
590  if (year == nowyear) {
591    $('.year-right').addClass('-noactive');
592  }
593});
594
595$('.mounth-left').click(function () {
596  var monthNum = $('.calendar-mounth__item').data('monthNum');
597  monthNum--;
598  if (monthNum < 0) {
599    monthNum = 11;
600  }
601  var date = new Date();
602  date.setMonth(monthNum);
603  var month = date.toLocaleString('en-EN', { month: 'long' });
604  $('.calendar-mounth__item').text(month).data({ monthNum: monthNum });
605  $('.blog-filter__input-m').val(monthNum);
606  $('.calendar-input').val(month + ' ' + $('.calendar-year__item').html());
607});
608
609$('.mounth-right').click(function () {
610  var monthNum = $('.calendar-mounth__item').data('monthNum');
611  monthNum++;
612  if (monthNum > 11) {
613    monthNum = 0;
614  }
615  var date = new Date();
616  date.setMonth(monthNum);
617  var month = date.toLocaleString('en-EN', { month: 'long' });
618  $('.calendar-mounth__item').text(month).data({ monthNum: monthNum });
619  $('.blog-filter__input-m').val(monthNum);
620  $('.calendar-input').val(month + ' ' + $('.calendar-year__item').html());
621});
622
623$('.calendar-input').click(function () {
624  $('.calendar').toggle();
625});
626
627$(document).mouseup(function (e) {
628  var calendar = $('.calendar,.calendar-input');
629  if (!calendar.is(e.target) && calendar.has(e.target).length === 0) {
630    $('.calendar').hide();
631  }
632});
633
634document.addEventListener('keydown', function (e) {
635  if (e.keyCode == 27) {
636    $('.calendar').hide();
637  }
638});
639
640//audio
641
642$(function () {
643  const $audio = $('#audio-element')[0];
644  const $sources = $('#audio-element source');
645  const playlist = $sources
646    .map((_, el) => {
647      const src = $(el).attr('src');
648      const title = $(el).data('title') || ` ${$sources.index(el) + 1}`;
649      console.log(`✅ ${$sources.index(el) + 1}:`, src);
650      return { src, title };
651    })
652    .get();
653
654  let curIdx = 0;
655
656  function loadTrack(idx) {
657    const track = playlist[idx];
658    $audio.src = track.src;
659    $audio.load();
660    console.log(`▶: ${track.title} (${track.src})`);
661  }
662
663  loadTrack(curIdx);
664
665  const $playBtn = $('#play-pause-btn');
666  const $prevBtn = $('#prev-btn');
667  const $nextBtn = $('#next-btn');
668  const $progress = $('#progress-bar');
669  const $curTime = $('#current-time');
670  const $totTime = $('#total-time');
671  const $volIcon = $('#volume-icon');
672  const $volBox = $('#volume-vertical');
673  const $volRange = $volBox.find('input');
674
675  $audio.addEventListener('loadedmetadata', () => {
676    $totTime.text(formatTime($audio.duration));
677    $progress.attr('max', Math.floor($audio.duration));
678    console.log(`⏱ track: ${formatTime($audio.duration)}`);
679  });
680
681  $audio.addEventListener('timeupdate', () => {
682    $curTime.text(formatTime($audio.currentTime));
683    $progress.val(Math.floor($audio.currentTime));
684
685    $progress.toggleClass('playing', !$audio.paused);
686  });
687
688  $progress.on('input change', function () {
689    $audio.currentTime = $(this).val();
690  });
691
692  $playBtn.on('click', () => {
693    if ($audio.paused) {
694      $audio
695        .play()
696        .then(() => console.log('▶ Play'))
697        .catch((err) => console.error('⚠️ Error play():', err));
698      $playBtn.addClass('pause-audio');
699    } else {
700      $playBtn.removeClass();
701      $audio.pause();
702      $playBtn.addClass('play-audio');
703    }
704  });
705
706  $prevBtn.on('click', () => {
707    curIdx = (curIdx - 1 + playlist.length) % playlist.length;
708    loadTrack(curIdx);
709    $audio.play().catch((err) => console.error(err));
710    $playBtn.addClass('pause-audio');
711  });
712
713  $nextBtn.on('click', () => {
714    curIdx = (curIdx + 1) % playlist.length;
715    loadTrack(curIdx);
716    $audio.play().catch((err) => console.error(err));
717    $playBtn.addClass('pause-audio');
718  });
719
720  $audio.addEventListener('ended', () => $nextBtn.trigger('click'));
721
722  $volIcon.on('click', () => $volBox.toggleClass('hidden'));
723
724  $volRange.on('input change', () => {
725    $audio.volume = Number($volRange.val());
726    console.log(`🔊 Volume: ${$audio.volume}`);
727  });
728
729  function formatTime(seconds) {
730    const mins = Math.floor(seconds / 60);
731    const secs = Math.floor(seconds % 60);
732    return `${String(mins).padStart(2, '0')}
732:${String(secs).padStart(2, '0')}`;
733  }
734});

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.