PageSourceSearch

https://www.pfungstadt.de/:res/modules/common/common/media/slider/js/manualSliderAdvanced.js?fp=bb27bce1984a

js pfungstadt.de collected 2026-10-02 07:57:39 UTC 16,401 bytes, 472 lines download raw bytes

1var ManualSliderAdvanced=function(slider){
2var Default=Pegasus.defineNamespace('Common.Common.Default');
3var $slickSlider;
4var $slickSliderWrapper;
5var $innerCaption;
6var slickSliderProperties;
7var slickSliderPropertiesDefaults;
8var $prevButton;
9var $nextButton;
10var slideCount;
11var _slick;
12var mobileBrowser=false;
13var $lastFocusedElement=null;
14var options={
15previewThumbnailsOnArrows:true,
16previewThumbnailsOnDots:true,
17responsiveClasses:[]
18};
19function onPause(slide){
20$slickSlider.removeClass('video-is-playing');
21}
22function onPlay(slide){
23$slickSlider.addClass('video-is-playing');
24$slickSlider.find(".arrow").blur();
25}
26function onPlayerReady(video){
27var $video=$(video);
28if($video.is("[data-has-volume]")){
29var $muteToggle=$("<div class='mute-toggle'></div>");
30videoControls($video,function(controls){
31if(controls.muted()){
32$muteToggle.addClass("muted");
33}else{
34$muteToggle.addClass("loud");
35}
36});
37$muteToggle.on("click",function(){
38if($(this).is(".loud")){
39$(this).removeClass("loud");
40$(this).addClass("muted");
41videoControls($video,function(controls){
42controls.mute();
43});
44}else{
45$(this).addClass("loud");
46$(this).removeClass("muted");
47videoControls($video,function(controls){
48controls.unmute();
49});
50}
51});
52$video.append($muteToggle);
53}
54}
55function getYoutubeThumbImageUrl($slide,considerSlides){
56var videoId=$slide.find("[data-yt-video-id]").attr("data-yt-video-id");
57var resolution="hqdefault";
58if(considerSlides){
59if(slideCount>=5){
60resolution="mqdefault"
61}
62}
63return"https://img.youtube.com/vi/"+videoId+"/"+resolution+".jpg";
64}
65function initDots(){
66var $dots=$slickSlider.find(".dots");
67if($dots.length===0)
68return false;
69function checkDotsVisibility(){
70var hidden=window.getComputedStyle($dots.get(0),null).getPropertyValue("display").toLowerCase().indexOf("none")!==-1;
71if(hidden){
72if(!$slickSlider.is(".hidden-dots")){
73$slickSlider.addClass("hidden-dots");
74}
75}else{
76if($slickSlider.is(".hidden-dots")){
77$slickSlider.removeClass("hidden-dots");
78}
79}
80}
81$(window).on("resize",function(){
82checkDotsVisibility();
83});
84checkDotsVisibility();
85if(!options.previewThumbnailsOnDots)
86return false;
87var callback=function(headline,thumbImageUrl,button,slide){
88if(thumbImageUrl!==undefined){
89var $thumb=$("<span class='thumb'></span>").css("background-image","url('"+thumbImageUrl+"')");
90}else{
91var $thumb=$("<span class='thumb no-video-thumbnail'></span>");
92}
93$thumb.appendTo($(button));
94}
95var cbObj={callback:callback};
96$slickSlider.trigger("manual-slider-advanced.init-dots-start");
97$slickSlider.find(".dots li").each(function(i){
98var $slide=$slickSlider.find("[data-slick-index='"+i+"']");
99var thumbImageUrl=$slide.find('[data-thumb-image]').data("thumb-image");
100if(thumbImageUrl===undefined){
101var $ytVideoSlide=$slide.find(".media.youtube-video");
102if($ytVideoSlide.length>0){
103thumbImageUrl=getYoutubeThumbImageUrl($ytVideoSlide,true);
104}
105}
106var $button=$(this).children("button");
107var headline=$slide.find("[data-headline]").attr("data-headline");
108$slickSlider.trigger("manual-slider-advanced.init-dots",{cbObj:cbObj,slide:$slide});
109cbObj.callback(headline,thumbImageUrl,$button,$slide);
110});
111$slickSlider.trigger("manual-slider-advanced.init-dots-complete");
112$slickSlider.find(".dots button").on("mouseover",function(){
113$(this).parent().siblings().find("button").blur();
114});
115}
116function setPreviewThumbnailsAllSlides(slick){
117$slickSlider.find(".slick-slide:not(.slick-cloned)").each(function(i,slide){
118var $nextSlide=i==slick.slideCount-1?$slickSlider.find('[data-slick-index="0"]'):$slickSlider.find('[data-slick-index="'+(i+1)+'"]');
119var $previousSlide=i===0?$slickSlider.find('[data-slick-index="'+(slick.slideCount-1)+'"]'):$slickSlider.find('[data-slick-index="'+(i-1)+'"]');
120var nextThumbImage=$nextSlide.find('[data-thumb-image]').data("thumb-image");
121var previousThumbImage=$previousSlide.find('[data-thumb-image]').data("thumb-image");
122var nextHeadline=$nextSlide.find('[data-headline]').data("headline");
123var previousHeadline=$previousSlide.find('[data-headline]').data("headline");
124var $nextThumbContent=getThumbContent($(slide).find(".next-arrow"));
125var $previousThumbContent=getThumbContent($(slide).find(".prev-arrow"));
126var $nextThumbContainer=$nextThumbContent.find(".thumb-image")
127var $previousThumbContainer=$previousThumbContent.find(".thumb-image");
128if(nextThumbImage!==undefined){
129$nextThumbContainer.css("background-image","url('"+nextThumbImage+"')");
130}else{
131var $ytVideoSlide=$nextSlide.find(".media.youtube-video");
132if($ytVideoSlide.length>0){
133nextThumbImage=getYoutubeThumbImageUrl($ytVideoSlide,false);
134$nextThumbContainer.css("background-image","url('"+nextThumbImage+"')");
135}else{
136$nextThumbContainer.addClass("no-video-thumbnail");
137}
138}
139if(previousThumbImage!==undefined){
140$previousThumbContainer.css("background-image","url('"+previousThumbImage+"')");
141}else{
142var $ytVideoSlide=$previousSlide.find(".media.youtube-video");
143if($ytVideoSlide.length>0){
144previousThumbImage=getYoutubeThumbImageUrl($ytVideoSlide,false);
145$previousThumbContainer.css("background-image","url('"+previousThumbImage+"')");
146}else{
147$previousThumbContainer.addClass("no-video-thumbnail");
148}
149}
150$nextThumbContent.find(".thumb-headline").text(nextHeadline);
151$previousThumbContent.find(".thumb-headline").text(previousHeadline);
152$previousThumbContent.appendTo($(slide).find(".prev-arrow"));
153$nextThumbContent.appendTo($(slide).find(".next-arrow"));
154});
155}
156function getThumbContent(arrow){
157var $thumbContent=$(arrow).find(".thumb-content");
158if($thumbContent.length){
159return $thumbContent;
160}
161return $("<span class='thumb-content'><span class='thumb-image'></span><span class='thumb-headline'></span></span>");
162}
163function registerClickBehaviour(){
164$slickSlider.on("click",".outer-slide",function(e){
165if($(e.target).closest("a").length===0&&$(e.target).closest("button").length===0){
166const $hrefEl=$(e.target).closest(".outer-slide[data-href]");
167if($hrefEl.length){
168const jsLinked=$hrefEl.is(".manual-slider--js-linked");
169if(jsLinked&&$("body.mode-editor").length===0){
170window.location.href=$hrefEl.attr("data-href");
171}
172}
173}
174});
175}
176function thumbButtonOpenEvent(){
177$(this).addClass("open");
178}
179function thumbButtonHandler(){
180var $arrows=$slickSlider.find(".arrow");
181$arrows.on("click",function(){
182$(this).removeClass("open");
183});
184$arrows.on("mouseover focus mousemove",thumbButtonOpenEvent).on("mouseleave focusout",function(){
185$(this).removeClass("open");
186})
187}
188function youtubeVideo(video,callback){
189var $video=$(video);
190var $iframe=$video.children('iframe');
191if($video.data("videoControls")===undefined){
192$iframe.attr("src",$iframe.attr("data-src"));
193$iframe.removeAttr("data-src");
194Default.loadYoutubeIframeAPI().then(function(){
195var player;
196var videoControls={};
197var player=new YT.Player($iframe.get(0),{
198events:{
199'onReady':function(event){
200videoControls={
201play:function(){
202player.playVideo();
203},
204pause:function(){
205player.pauseVideo();
206},
207mute:function(){
208player.mute();
209},
210unmute:function(){
211player.unMute();
212},
213muted:function(){
214return player.isMuted();
215},
216duration:function(){
217return Math.round(player.getDuration()*1000);
218}
219}
220$video.data("videoControls",videoControls);
221callback(videoControls);
222onPlayerReady($(video));
223},
224'onStateChange':function(event){
225if(event.data==YT.PlayerState.PLAYING){
226onPlay($video);
227}
228if(event.data==YT.PlayerState.PAUSED||event.data===0){
229onPause($video);
230}
231},
232}
233});
234});
235}else{
236callback($video.data("videoControls"));
237}
238}
239function selfhostedVideo(video,callback){
240var player=$(video).children('video').get(0);
241var $video=$(video);
242if($video.data("videoControls")===undefined){
243var videoControls={
244play:function(){
245$(video).data("playPromise",player.play());
246},
247pause:function(){
248if($(video).data("playPromise")!==undefined){
249$(video).data("playPromise").then(function(value){
250player.pause();
251}).catch(function(error){
252});
253}
254},
255mute:function(){
256player.muted=true;
257},
258unmute:function(){
259player.muted=false;
260},
261muted:function(){
262return player.muted;
263},
264duration:function(){
265return Math.round(player.duration*1000);
266}
267};
268player.addEventListener("playing",function(){
269onPlay($(video));
270});
271player.addEventListener("pause",function(){
272onPause($(video));
273});
274player.addEventListener("ended",function(){
275onPause($(video));
276});
277$video.data("videoControls",videoControls);
278callback(videoControls);
279onPlayerReady(video);
280}else{
281callback($video.data("videoControls"));
282}
283}
284function isMobileBrowser(){
285var check=false;
286(function(a){
287if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4)))check=true;
288})(navigator.userAgent||navigator.vendor||window.opera,'http://detectmobilebrowser.com/mobile');
289return check;
290}
291function videoControls($video,callback){
292if($video.length===0){
293return false;
294}
295var providerName=$video.data('providername');
296if(providerName=='YouTube'){
297youtubeVideo($video,function(controls){
298callback(controls);
299});
300}
301if(providerName=='selfhosted'){
302selfhostedVideo($video,function(controls){
303callback(controls);
304});
305}
306}
307function setAutoplayspeed($el,options){
308var $autoplaySpeedEl=$el.find("[data-autoplayspeed]");
309if($el.is("[data-autoplayspeed]")){
310$autoplaySpeedEl=$el;
311}
312if($autoplaySpeedEl.length>0){
313var speed=$autoplaySpeedEl.attr("data-autoplayspeed");
314options.autoplaySpeed=speed;
315}
316}
317function init(){
318mobileBrowser=isMobileBrowser();
319$slickSlider=slider;
320$slickSliderWrapper=$slickSlider.closest(".slider-wrapper");
321try{
322options.previewThumbnailsOnArrows=$slickSlider.attr("data-preview-thumbnails-on-arrows");
323options.previewThumbnailsOnDots=$slickSlider.attr("data-preview-thumbnails-on-dots");
324}catch(msg){
325}
326slickSliderProperties=$slickSlider.data("slick-properties");
327slickSliderPropertiesDefaults=JSON.parse(JSON.stringify($slickSlider.data("slick-properties")));
328options=$.extend(options,$slickSlider.data("manual-slider-advanced"));
329slickSliderProperties.useTransform=true;
330slideCount=$slickSlider.attr("data-slidecount");
331$slickSlider.trigger("manual-slider-advanced.init",{
332slickSliderProperties:slickSliderProperties,
333slickSlider:$slickSlider,
334options:options
335});
336setAutoplayspeed($slickSlider.find(".slick-slide").first(),slickSliderProperties);
337$slickSlider.on('init',function(event,slick){
338const mutationCallback=function(mutationsList,observer){
339for(const mutation of mutationsList){
340if(mutation.type==='attributes'&&mutation.attributeName==='data-is-user-paused'){
341const userPaused=$slickSlider.get(0).getAttribute('data-is-user-paused');
342const currentSlide=$slickSlider.get(0).slick.currentSlide;
343const $currentSlide=$slickSlider.find(`[data-slick-index="${currentSlide}"]`);
344$slickSlider.find(".media.is-video").each(function(){
345videoControls($(this),function(controls){
346if(userPaused==='true'){
347controls.pause();
348}
349});
350});
351if($currentSlide.length){
352videoControls($currentSlide.find(".media.is-video"),function(controls){
353if(userPaused==='false'){
354controls.play();
355}
356});
357}
358}
359}
360};
361const observer=new MutationObserver(mutationCallback);
362observer.observe($slickSlider.get(0),{attributes:true});
363$slickSlider.on("focusin",function(){
364$lastFocusedElement=$(document.activeElement);
365});
366registerClickBehaviour();
367var ariaLabel=$slickSliderWrapper.attr("data-aria-label");
368if(ariaLabel&&ariaLabel.length>0){
369$slickSlider.find(".slick-track").attr("aria-label",ariaLabel)
370}
371$innerCaption=$slickSlider.find('.inner-caption');
372$prevButton=$slickSlider.find(".prev-arrow");
373$nextButton=$slickSlider.find(".next-arrow");
374_slick=slick
375$slickSlider.find(".slick-slide").first().addClass("is-visible-slide");
376if($slickSlider.find(".arrow").length>2){
377$slickSlider.find(".next-arrow").on("click",function(){
378$slickSlider.slick("slickNext");
379});
380$slickSlider.find(".prev-arrow").on("click",function(){
381$slickSlider.slick("slickPrev");
382});
383}
384$slickSlider.find(".outer-slide").on("click",function(e){
385if($(e.target).is(".arrow")){
386e.preventDefault();
387}
388});
389thumbButtonHandler();
390if(options.previewThumbnailsOnArrows){
391if(!$slickSlider.find(".arrow").closest('.outer-caption').length){
392if($slickSlider.find(".arrow").length>2){
393setPreviewThumbnailsAllSlides(slick);
394}
395}
396}
397initDots();
398var $firstSlide=$slickSlider.find("[data-slick-index='0']");
399videoControls($firstSlide.find(".media.is-video"),function(controls){
400controls.play();
401});
402$slickSlider.addClass("initialized");
403});
404$slickSlider.on('beforeChange',function(event,slick,currentSlide,nextSlide){
405var $currentSlide=$slickSlider.find('[data-slick-index="'+currentSlide+'"]');
406var $nextSlide=$slickSlider.find('[data-slick-index="'+nextSlide+'"]');
407setAutoplayspeed($nextSlide.find("[data-autoplayspeed]"),slick.options);
408videoControls($currentSlide.find('.media.is-video'),function(controls){
409controls.pause();
410});
411if(!$('body.mode-editor').length){
412videoControls($nextSlide.find('.media.is-video'),function(controls){
413if($slickSlider.attr("data-is-user-paused")!=='true'){
414controls.play();
415}
416});
417}
418$slickSlider.find(".arrow").off("mouseover focus mousemove");
419setTimeout(function(){
420$currentSlide.removeClass("is-visible-slide");
421},slickSliderProperties.speed);
422$nextSlide.addClass("is-visible-slide");
423});
424$slickSlider.on('afterChange',function(event,slick,currentSlide){
425var $currentSlide=$slickSlider.find('[data-slick-index="'+currentSlide+'"]');
426$slickSlider.find(".arrow").on("mouseover focus mousemove",thumbButtonOpenEvent);
427let nextFocusable=null;
428if($lastFocusedElement&&$lastFocusedElement.length&&$lastFocusedElement.closest(".outer-slide").length&&$lastFocusedElement.is(".slick-arrow")){
429if($lastFocusedElement.is(".prev-arrow")){
430nextFocusable=$currentSlide.find(".prev-arrow");
431}
432if($lastFocusedElement.is(".next-arrow")){
433nextFocusable=$currentSlide.find(".next-arrow");
434}
435}
436setTimeout(function(){
437if(whatInput&&whatInput.ask('loose')==='keyboard'&&nextFocusable.length){
438nextFocusable.focus();
439}
440},1);
441});
442slickSliderProperties.customPaging=function(slider,i){
443return'<button type="button">Slide '+(i+1)+'</button>';
444}
445$slickSlider.slick(slickSliderProperties);
446}
447init();
448}
449$(function(){
450var target=$('body')[0];
451var observer=new MutationObserver(function(mutations){
452mutations.forEach(function(mutation){
453for(var i=0;i<mutation.addedNodes.length;i++){
454var $addedNode=$(mutation.addedNodes[i]);
455var $target=null;
456if($addedNode.has("[data-manual-slider-advanced]"))
457$target=$addedNode.find("[data-manual-slider-advanced]");
458if($addedNode.is("[data-manual-slider-advanced]")){
459$target=$addedNode;
460}
461if($target!==null&&$target.length){
462new ManualSliderAdvanced($target);
463}
464}
465});
466});
467var config={attributes:true,childList:true,characterData:false,subtree:true};
468observer.observe(target,config);
469$("[data-manual-slider-advanced]").each(function(){
470new ManualSliderAdvanced($(this));
471});
472});

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.