PageSourceSearch

https://energetykpoznan.pl/assets/front/scripts/js/jquery.main/init.js

js energetykpoznan.pl collected 2026-10-08 00:12:01 UTC 18,100 bytes, 718 lines download raw bytes

1//# ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- //
2//# MAIN FUNCTIONS
3(function($) {
4
5	//#
6	preparePlyr = function() {
7	  var $body     		= $('body');
8	  var plyrElements	= 'audio, video, ins[data-type][data-video-id]';
9	  var events				= {
10	    click : 'click.initEvent'
11	  };
12
13		if ( $(plyrElements).length > 0 ) {
14			var $btnPlay	= $('button[data-plyr="play"], div.plyr__video-wrapper');
15	    var $players	= plyr.setup(plyrElements);
16
17			$body
18		 .on(events.click, $btnPlay.selector, function(e) {
19			 stopEvent(e);
20			 pausePlayingPlayers(this);
21		 });
22
23			function pausePlayingPlayers(_this) {
24				$this = $(_this);
25
26				for ( var i=0; i<$players.length; i++ ) {
27					var isPlaying		= ( !$players[i].isPaused() );
28					var notCurrent	= ( $($players[i].getContainer()).find($this).length == 0 );
29
30					if ( notCurrent && isPlaying ) {
31						$players[i].pause();
32					}
33				}
34			}
35		}
36	}
37
38	//#
39	prepereTopMenu = function() {
40		var $html     	= $('html');
41		var $body     	= $('body');
42		var $wrapheader	= $('.wrapHeader');
43		var classname		= {
44			opened				: 'Opened',
45			active				: 'Active',
46			disablescroll	: 'disableScroll'
47		};
48		var events			= {
49			click	: 'click.initEvent'
50		};
51
52		if ( $wrapheader.length > 0 ) {
53			var $hamburger	= $wrapheader.find('.Hamburger');
54			var $menu 			= {
55				wrapper	: $wrapheader.find('.Col:eq(1)'),
56				list		: $wrapheader.find('ul.Menu'),
57				item		: $wrapheader.find('ul.Menu li a[data-action="click"]'),
58				active	: $wrapheader.find('ul.Menu li.' + classname.active)
59			};
60
61			$body
62			.on(events.click, $menu.item.selector, function(e) {
63				stopEvent(e);
64				visibilityMenuItem(this);
65			})
66			.on(events.click, $hamburger.selector, function(e) {
67				stopEvent(e);
68				visibilityMenuWrapper(this);
69			});
70
71			function visibilityMenuItem(_this) {
72			  var $trigger		= $(_this);
73			  var $total			= $menu.list.find('li');
74			  var $liitem			= $trigger.parent('li');
75			  var $active			= $liitem.parent('ul').find('> li.' + classname.active);
76			  var $opened			= $liitem.parent('ul').find('> li.' + classname.opened);
77			  var $temporary	= $();
78			  var isopen			= $liitem.hasClass(classname.opened);
79			  var isprime			= $liitem.parent('ul').hasClass('Menu');
80
81			  if ( isopen ) {
82			    $temporary = ( isprime ) ? $total : $liitem;
83
84			    $temporary.removeClass(classname.opened).removeClass(classname.active);
85
86			    $menu.active.map(function(index, el) {
87			      var $el = $(el);
88
89			      $el.addClass(classname.active);
90			    });
91			  }
92			  else {
93			    $active.removeClass(classname.active);
94			    $opened.removeClass(classname.opened).removeClass(classname.active);
95			    $liitem.addClass(classname.opened).addClass(classname.active);
96			  }
97			}
98
99			function visibilityMenuWrapper(_this) {
100	      var $trigger	= $(_this);
101				var $hidden		= $menu.wrapper;
102	      var isopen		= $hidden.hasClass(classname.opened);
103
104	      if ( isopen ) {
105					$html.removeClass(classname.disablescroll);
106          $trigger.removeClass(classname.active);
107          $hidden.removeClass(classname.opened);
108	      }
109	      else {
110					$html.addClass(classname.disablescroll);
111          $trigger.addClass(classname.active);
112          $hidden.addClass(classname.opened);
113	      }
114	    }
115		}
116	}
117
118	//#
119	prepareFilters = function() {
120		var $body				= $('body');
121		var $filters		= $('.Filters');
122		var classname		= {
123			opened				: 'Opened',
124			active				: 'Active'
125		};
126		var events			= {
127			click	: 'click.initEvent'
128		};
129
130		if ( $filters.length > 0 ) {
131			var $trigger 		= $filters.find('p');
132			var $hamburger	= $('.wrapHeader .Hamburger');
133			var triggertext	= $trigger.text();
134			var replatetext	= triggertext.replace(':', '<s>:</s>');
135
136			$trigger.html( replatetext );
137
138			$body
139			.on(events.click, $trigger.selector, function(e) {
140				stopEvent(e);
141				manageVisibility(e, this);
142			});
143
144			function manageVisibility(_e, _this) {
145				var $this	= $(_this);
146				var $hidden 	= $this.parent().find('div');
147				var ismobile	= $hamburger.is(':visible');
148				var isactive	= $this.hasClass(classname.active);
149
150				if ( ismobile ) {
151					if ( isactive ) {
152						$this.removeAttr('class');
153						$hidden.removeAttr('class');
154					}
155					else {
156						$this.addClass(classname.active);
157						$hidden.addClass(classname.opened);
158					}
159				}
160			}
161		}
162	}
163
164	//#
165	prepareNews = function() {
166		var $news = $('.News');
167
168		if ( $news.length > 0 ) {
169			$news
170			.map(function(index, el) {
171				var $el		= $(el);
172				var $beam = $el.find('.Beam');
173				var $list = $el.find('.List');
174				var $item = $list.find('.Item');
175
176				if ( $beam.length > 0 && $item.length > 0 ) {
177					$list.attr('data-items', $item.length);
178				}
179			});
180		}
181	}
182
183	//#
184	prepareTeaser = function() {
185		var $window			= $(window);
186		var $teaser			= $('.Teaser');
187		var $carousel		= $teaser.find('.Carousel');
188		var $hamburger	= $('.wrapHeader .Hamburger');
189		var classname		= {
190			fakebg	: 'fakeBg',
191			section	: 'Section'
192		};
193		var events			= {
194			init      		: 'init.initEvent',
195			load      		: 'load.initEvent',
196			resizeend			: 'resizeend.initEvent',
197			beforechange	: 'beforeChange.initEvent',
198			afterchange		: 'afterChange.initEvent'
199		};
200
201		if ( $carousel.length > 0 ) {
202			$window
203			.on(events.load, function(e) {
204				manageSectionBg(e, this);
205			})
206			.on(events.resizeend, function(e) {
207				manageSectionBg(e, this);
208			});
209
210			$carousel
211			.on(events.init, function(e, slick) {
212				//: Empty
213			})
214			.on(events.beforechange, function(e, slick, currentSlide, nextSlide) {
215				//: Empty
216			})
217			.on(events.afterchange, function(e, slick, currentSlide) {
218				//: Empty
219			})
220			.slick({
221				autoplay				: true,
222				infinite				: true,
223				draggable				: false,
224				adaptiveHeight	: false,
225				slidesToShow		: 1,
226				slidesToScroll	: 1,
227				speed						: 750,
228				autoplaySpeed		: 5000,
229				prevArrow				: '',
230				responsive			: null
231			});
232
233			function manageSectionBg(_e, _this)  {
234				var $section	= $teaser.parents('.' + classname.section);
235				var ismobile	= $hamburger.is(':visible');
236
237				if ( ismobile ) {
238					$section.addClass(classname.fakebg);
239				}
240				else {
241					$section.removeClass(classname.fakebg)
242				}
243			}
244		}
245	}
246
247	//#
248	prepareNextMatch = function() {
249		var $nextmatch	= $('.nextMatch');
250		var $beam				= $nextmatch.find('.Beam');
251		var $carousel		= $nextmatch.find('.Carousel');
252		var events			= {
253			init      		: 'init.initEvent',
254			beforechange	: 'beforeChange.initEvent',
255			afterchange		: 'afterChange.initEvent',
256		};
257
258		if ( $carousel.length > 0 ) {
259			$carousel
260			.on(events.init, function(e, slick) {
261				manageAutoplay(e, slick)
262				manageBeamText(e, slick, slick.currentSlide);
263			})
264			.on(events.beforechange, function(e, slick, currentSlide, nextSlide) {
265				//: Empty
266			})
267			.on(events.afterchange, function(e, slick, currentSlide) {
268				manageBeamText(e, slick, currentSlide);
269			})
270			.slick({
271				autoplay				: false,
272				infinite				: false,
273				draggable				: false,
274				adaptiveHeight	: true,
275				slidesToShow		: 1,
276				slidesToScroll	: 1,
277				speed						: 750,
278				autoplaySpeed		: 5000,
279				responsive			: null
280			});
281
282			function manageAutoplay(_e, _slick) {
283				var ap = _slick.options.autoplay;
284				var ah = _slick.options.adaptiveHeight;
285
286				if ( ap && ah ) {
287					_slick.options.adaptiveHeight = false;
288				}
289			}
290
291			function manageBeamText(_e, _slick, _currentslide) {
292				var $currslide	= $(_slick.$slides[_currentslide]);
293				var currtext		= $currslide.attr('data-text') || '---';
294
295				$beam.find('s').text(currtext);
296			}
297		}
298	}
299
300	//#
301	preparePartners = function() {
302		var $window		= $(window);
303		var $partners	= $('.Partners');
304		var $carousel	= $partners.find('.Carousel');
305		var events		= {
306			load 					: 'load.initEvent',
307			init      		: 'init.initEvent',
308			beforechange	: 'beforeChange.initEvent',
309			afterchange		: 'afterChange.initEvent',
310		};
311
312		if ( $carousel.length > 0 ) {
313			$carousel
314			.map(function(index, el) {
315				var $el = $(el);
316				var tmp = {
317					slidestoshow  : $el.data('to-show') || 1,
318					speed					: 650,
319					autoplayspeed	: 2000
320				};
321
322				$el
323				.on(events.init, function(e, slick) {
324					//: Empty
325				})
326				.on(events.beforechange, function(e, slick, currentSlide, nextSlide) {
327					//: Empty
328				})
329				.on(events.afterchange, function(e, slick, currentSlide) {
330					//: Empty
331				})
332				.slick({
333					autoplay				: false,
334					infinite				: true,
335					draggable				: false,
336					adaptiveHeight	: false,
337					arrows					: false,
338					slidesToShow		: tmp.slidestoshow,
339					slidesToScroll	: 1,
340					speed						: tmp.speed,
341					autoplaySpeed		: tmp.autoplayspeed,
342					responsive			: [
343						{
344							breakpoint: 960,
345							settings: {
346								slidesToShow : ( tmp.slidestoshow > 1 ) ? 3 : 1
347							}
348						},
349						{
350							breakpoint: 590,
351							settings: {
352								slidesToShow : ( tmp.slidestoshow > 1 ) ? 3 : 1
353							}
354						}
355					]
356				});
357			});
358
359			$window
360			.on(events.load, function(e) {
361				playCarousels(e);
362			});
363
364			function playCarousels(_e) {
365				$carousel
366				.map(function(index, el) {
367					var $el	= $(el);
368					var se	= $el.hasClass('slick-enabled');
369					var ap	= $el.slick('slickGetOption', 'autoplay');
370					var aps	= $el.slick('slickGetOption', 'autoplaySpeed');
371					var int = ( aps / 10 ) * index;
372
373					if ( se && !ap ) {
374						setTimeout(function() {
375							$el.slick('play');
376						}, int);
377
378						// consoleLog( se, ' | ', ap, ' | ', aps, ' | ', int ); //: Test
379					}
380				});
381			}
382		}
383	}
384
385	//#
386	prepareTrainers = function() {
387		var $trainers	= $('.Trainers');
388		var $carousel	= $trainers.find('.Carousel');
389		var events		= {
390			init      		: 'init.initEvent',
391			beforechange	: 'beforeChange.initEvent',
392			afterchange		: 'afterChange.initEvent',
393		};
394
395		if ( $carousel.length > 0 ) {
396			$carousel
397			.on(events.init, function(e, slick) {
398				//: Empty
399			})
400			.on(events.beforechange, function(e, slick, currentSlide, nextSlide) {
401				//: Empty
402			})
403			.on(events.afterchange, function(e, slick, currentSlide) {
404				//: Empty
405			})
406			.slick({
407				autoplay				: false,
408				infinite				: false,
409				draggable				: false,
410				adaptiveHeight	: true,
411				slidesToShow		: 4,
412				slidesToScroll	: 4,
413				speed						: 750,
414				autoplaySpeed		: 5000,
415				responsive			: [
416					{
417						breakpoint: 960,
418						settings: {
419							slidesToShow   : 3,
420							slidesToScroll : 3
421						}
422					},
423					{
424						breakpoint: 590,
425						settings: {
426							slidesToShow   : 1,
427							slidesToScroll : 1
428						}
429					}
430				]
431			});
432		}
433	}
434
435	//#
436	prepareHistory = function() {
437		var $history	= $('.History');
438		var $carousel	= {
439			single		: $history.find('.Carousel .Single'),
440			multiple	: $('<div>', { class: 'Multiple' }),
441			details		: $history.find('.Carousel .Details')
442		};
443		var classname	= {
444			item		  	: 'Item',
445			opened	  	: 'Opened',
446			slicktemp 	: 'slick-temp',
447			slicklist 	: 'slick-list',
448			slickarrows : 'slick-arrows'
449		};
450		var events		= {
451			init      		: 'init.initEvent',
452			beforechange	: 'beforeChange.initEvent',
453			afterchange		: 'afterChange.initEvent',
454		};
455
456		if ( $carousel.single.length > 0 ) {
457			$carousel.single
458		  .on(events.init, function(e, slick) {
459		    manageDetailsText(e, slick, slick.currentSlide);
460				createMultipleSlick(e, slick, slick.currentSlide);
461				wrapSingleSlickArrows(e, slick, slick.currentSlide);
462		  })
463		  .on(events.beforechange, function(e, slick, currentSlide, nextSlide) {
464		    //: Empty
465		  })
466		  .on(events.afterchange, function(e, slick, currentSlide) {
467		    manageDetailsText(e, slick, currentSlide);
468		  })
469		  .slick({
470		    autoplay				: false,
471		    infinite				: false,
472		    draggable				: false,
473		    adaptiveHeight	: true,
474		    slidesToShow		: 1,
475		    slidesToScroll	: 1,
476		    speed						: 750,
477		    autoplaySpeed		: 5000,
478				asNavFor				: $carousel.multiple,
479		    responsive			: null
480		  });
481
482			function manageDetailsText(_e, _slick, _currentslide) {
483				var $currslide	= $(_slick.$slides[_currentslide]);
484				var currhidden	= $currslide.find('p[data-type="hidden"]');
485				var currtext		= currhidden.text();
486
487				if ( currtext.length > 0 ) {
488					$carousel.details.addClass(classname.opened);
489				}
490				else {
491					$carousel.details.removeClass(classname.opened);
492				}
493
494				$carousel.details.find('p').text(currtext);
495			}
496
497			function createMultipleSlick(_e, _slick, _currentslide) {
498				_slick.$slides
499				.map(function(index, el) {
500					var $el		= $(el);
501					var $item	= $('<div>', { class: classname.item });
502					var date 	= {
503						start	: $el.data('start'),
504						end 	: $el.data('end')
505					};
506
507					$item.attr('data-start', date.start);
508					$item.attr('data-end', date.end);
509					$item.html('<p><s>' + date.start + ' - ' + date.end + '</s></p>');
510
511					$carousel.multiple.append( $item );
512				});
513
514				_slick.$slider.after( $carousel.multiple );
515
516				$carousel.multiple
517				.on(events.init, function(e, slick) {
518			    wrapMultipleSlickList(e, slick);
519			  })
520			  .on(events.beforechange, function(e, slick, currentSlide, nextSlide) {
521			    //: Empty
522			  })
523			  .on(events.afterchange, function(e, slick, currentSlide) {
524			    //: Empty
525			  })
526			  .slick({
527			    autoplay				: false,
528			    infinite				: false,
529			    draggable				: false,
530					swipe						: false,
531			    adaptiveHeight	: false,
532					arrows					: false,
533					focusOnSelect		: true,
534					initialSlide		: _currentslide,
535			    slidesToShow		: 4,
536			    slidesToScroll	: 1,
537			    speed						: 750,
538			    autoplaySpeed		: 5000,
539					asNavFor				: $carousel.single,
540			    responsive			: null
541			  });
542			}
543
544			function wrapSingleSlickArrows(_e, _slick) {
545				var $slickarrows = $('<div>', { class: classname.slickarrows });
546
547				if ( _slick.$nextArrow.length > 0 && _slick.$prevArrow.length > 0 ) {
548					$slickarrows.append( _slick.$prevArrow, _slick.$nextArrow );
549					$slickarrows.insertAfter( _slick.$list );
550				}
551			}
552
553			function wrapMultipleSlickList(_e, _slick) {
554				var $slicktemp = $('<div>', { class: classname.slicktemp });
555
556				_slick.$slider.find('.' + classname.slicklist).wrap( $slicktemp );
557			}
558		}
559	}
560
561	//#
562	prepareGraphic = function() {
563		var $graphic	= $('.Graphic');
564		var $carousel	= $graphic.find('.Carousel');
565		var $picture	= $graphic.find('.Picture');
566		var events		= {
567			init      		: 'init.initEvent',
568			beforechange	: 'beforeChange.initEvent',
569			afterchange		: 'afterChange.initEvent',
570		};
571
572		if ( $carousel.length > 0 ) {
573			$carousel
574			.on(events.init, function(e, slick) {
575				//: Empty
576			})
577			.on(events.beforechange, function(e, slick, currentSlide, nextSlide) {
578				pausePlyrVideo(slick, currentSlide);
579			})
580			.on(events.afterchange, function(e, slick, currentSlide) {
581				//: Empty
582			})
583			.slick({
584				autoplay				: false,
585				infinite				: false,
586				draggable				: false,
587				adaptiveHeight	: true,
588				slidesToShow		: 1,
589				slidesToScroll	: 1,
590				speed						: 750,
591				autoplaySpeed		: 5000,
592				responsive			: null
593			});
594
595			function pausePlyrVideo(_slick, _currentslide) {
596				var $currvideo	= $(_slick.$slides[_currentslide]).find('p .plyr--video');
597				var $players		= plyr.get( $currvideo[0] );
598
599				for ( var i=0; i<$players.length; i++ ) {
600					var isPlaying	= !$players[i].isPaused();
601
602					if ( isPlaying ) {
603	          $players[i].pause();
604	        }
605				}
606			}
607		}
608	}
609
610	//#
611	prepareParallax = function() {
612		var $content		= $('.wrapMain .Content');
613		var $background = $content.find('.Section[style]');
614		var $translate	= $content.find('.Section[style]:first');
615
616		if ( $background.length > 0 && !isTouchDevice() ) {
617			$background.parallaxBackground({
618				fixed	: true,
619	      speed	: 6
620			});
621		}
622
623		if ( $translate.length > 0 && !isTouchDevice() ) {
624			$translate.parallaxTranslate({
625				speed	: 6
626			});
627		}
628	}
629
630	//#
631	prepareScrollMagic = function() {
632	  var $window		= $(window);
633	  var $content	= $('.wrapMain .Content');
634	  var $section	= $content.find('.Section');
635	  var classname	= {
636	    smready		: 'smrRady',
637	    smcurrent : 'smCurrent',
638	    smvisible : 'smVisible',
639	  };
640	  var events		= {
641	    load      : 'load.initEvent',
642	    start			: 'start.initEvent',
643	    end				: 'end.initEvent',
644	    progress	: 'progress.initEvent'
645	  };
646
647	  if ( $section.length > 0 && !isTouchDevice() ) {
648	    var scene				= {};
649	    var controller	= new ScrollMagic.Controller();
650
651	    $window
652	    .on(events.load, function(e) {
653	      $section.addClass(classname.smready);
654	    });
655
656	    $section
657	    .map(function(index, el) {
658	      var id				= $(el).data('id') || index;
659	      var hook			= $(el).data('hook') || 0.9;
660	      var height		= $(el).outerHeight();
661	          scene[id] = new $.ScrollMagic
662	                           .Scene({ triggerHook: hook, triggerElement: el, duration: height })
663	                           .setClassToggle(el, classname.smcurrent)
664	                           // .addIndicators({ name: id })
665	                           .addTo(controller);
666
667	       scene[id]
668	       .on(events.start, function(e) {
669	         var te = this.triggerElement();
670					 var st = this.state();
671
672	         if ( st === 'BEFORE' ) {
673	           $(te).removeClass(classname.smvisible);
674	         }
675	         else {
676	           $(te).addClass(classname.smvisible);
677	         }
678
679	         // consoleLog( 'start: ', id, ' | ', te ); //: Test
680	       })
681				 .on(events.end, function(e) {
682					 var te = this.triggerElement();
683
684					 // consoleLog( 'end: ', id, ' | ', te ); //: Test
685				 })
686				 .on(events.progress, function(e) {
687					 var te = this.triggerElement();
688
689					 // consoleLog( 'progress: ', e.progress, ' | ', te ); //: Test
690				 });
691	    });
692	  }
693	}
694
695})(jQuery);
696
697
698
699//# ----------------------------------------------------------------------------------------------------------- //
700//# INIT MAIN FUNCTIONS
701$(document).ready(function($) {
702
703	preparePlyr();
704	prepereTopMenu();
705	prepareFilters();
706	prepareNews();
707	prepareTeaser();
708	prepareNextMatch();
709	preparePartners();
710	prepareTrainers();
711	prepareHistory();
712	prepareGraphic();
713	prepareParallax();
714	// prepareScrollMagic();
715
716});
717
718

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.