PageSourceSearch

https://www.holzland-filderstadt.de/typo3temp/assets/compressed/me…5bce4fd249c8fb20d4d9145c0ca09.js?1789041400

js holzland-filderstadt.de collected 2026-10-05 20:10:42 UTC 38,642 bytes, 308 lines download raw bytes

1
2var layout={fancyboxClosedManually:false,init:function(){$("body").removeClass("js-off");$("#website").removeClass("js-off");for(var name in this){if(/^init.+/.test(name)){this[name]()}}},initRemoteImages:function(){$("img[width=0]").removeAttr("width");$("img[height=0]").removeAttr("height")},initResponsiveTables:function(){$("table.ce-table").basictable()},initFancybox:function(selector){if(typeof selector==="undefined"){selector=".fancybox"}if(typeof $.fn.fancybox=="function"){$(selector).fancybox({hideOnContentClick:true,transitionIn:"fade",transitionOut:"fade",speedIn:600,speedOut:200,padding:0,theme:"light",caption:{type:"inside"},afterLoad:function(){if(typeof $(this.element).data("description")==="undefined"){this.title="<div class='h2'>"+this.title+"</div>"}else{this.title="<div class='h2'>"+this.title+"</div>"+$(this.element).data("description")}},tpl:{closeBtn:'<a title="X" class="fancybox-item fancybox-close fb-close-button" href="javascript:;"></a>'}});$(".fancybox-gallery").each(function(){if($(this).parents(".wb-cycle-wrap-outer").length){$(this).parents(".wb-cycle-wrap-outer").find(".wb-cycle-item .fancybox-gallery").attr("data-fancybox-group",$(this).parents(".wb-cycle-wrap-outer").attr("id"))}});$("a.fancybox-gallery").fancybox({transitionIn:"fade",transitionOut:"fade",padding:0,margin:[52,1,30,1],afterLoad:function(){if(typeof $(this.element).data("description")==="undefined"){this.title="<div class='h2'>"+this.title+"</div>"}else{this.title="<div class='h2'>"+this.title+"</div>"+$(this.element).data("description")}},tpl:{closeBtn:'<a title="X" class="fancybox-item fancybox-close fb-close-button" href="javascript:;"></a>'},arrows:true,nextClick:true,aspectRatio:true,caption:{type:"inside"},scrollOutside:true});$("a.fancybox-gallery").click(function(){$(".wb-cycle-wrap-outer .cycle-sentinel a").removeClass("fancybox-gallery")});if($("#popup-window").length>0&&!layout.fancyboxClosedManually){$.fancybox.open({href:"#popup-window",type:"inline",hideOnContentClick:true,transitionIn:"fade",transitionOut:"fade",maxWidth:1026,speedIn:600,speedOut:200,padding:0,theme:"light",parent:"#website",tpl:{closeBtn:'<a title="X" class="fancybox-item fancybox-close fb-close-button" href="javascript:;"></a>'},afterClose:function(){layout.fancyboxClosedManually=true}})}$(".gallery-layout-info .fancybox-gallery").each(function(i,v){$(this).append('<span class="img-caption">'+$(this).attr("title")+"</span>")})}},initSliders:function(){var ntCycle=null;if(typeof $.fn.cycle=="function"){$(".kv-pager-inner").html("");ntCycle=$("#slideshow").cycle({slides:"> .slider-item",fx:"scrollHorz",speed:"slow",pauseOnHover:true,pagerEvent:"mou
2seover",timeout:4e3,pause:1,prev:"#prev-slide",next:"#next-slide",pager:".kv-pager-inner",log:false,swipe:"true",swipeFx:"scrollHorz",continueAuto:true});$("#slideshow").on("cycle-after",function(event,optionHash,outgoingSlideEl,incomingSlideEl,forwardFlag){var currentDescription=$(".slideshow-description").find(".item-"+$(incomingSlideEl).data("description"));currentDescription.siblings().removeClass("visible-desc");currentDescription.addClass("visible-desc");$("#slideshow .slider-item.nt-video-placeholder").html("")});$(".wb-cycle-wrap").show();$(".wb-cycle-items").cycle({slides:"> div",log:false,pagerTemplate:"<span></span>"});var galleryAsSlider=function(slidesVisible){var gaSs=$(".gallery-as-slick-slider");gaSs.each(function(){var gaS=$(this);var sliderId=gaS.parents(".wb-cycle-wrap-outer").attr("id");var sl=gaS.slick({slidesToShow:slidesVisible,slidesToScroll:slidesVisible,variableWidth:true,centerMode:false,centerPadding:"10px",pauseOnFocus:true,pauseOnHover:true,dots:false,speed:1e3,autoplay:true,autoplaySpeed:5e3,arrows:true,nextArrow:"#next-"+sliderId,prevArrow:"#prev-"+sliderId})})};if($(window).width()+(window.innerWidth-$(window).width())<580){galleryAsSlider(1)}else{galleryAsSlider(2)}$(window).bind("resizeEnd accordion-open",function(){if($(window).width()+(window.innerWidth-$(window).width())<580){$(".gallery-as-slick-slider").slick("unslick");galleryAsSlider(1)}else{$(".gallery-as-slick-slider").slick("unslick");galleryAsSlider(2)}setTimeout(function(){layout.initFancybox()},100)});var sliderHeight=function(){var addSpaceAfter=0;$(".wb-cycle-wrap").each(function(){max_height=0;$(this).find(".wb-cycle-items > div").each(function(){max_height=$(this).height()>max_height?$(this).height():max_height});$(this).find(".wb-cycle-wrap-inner, .wb-cycle-items").outerHeight(max_height+addSpaceAfter+parseInt($(".wb-cycle-wrap.g").css("padding-top"))+parseInt($(".wb-cycle-wrap.g").css("padding-bottom")))})};sliderHeight();var calculateSliderItemsHeight=function(){if($(window).width()<768){var min_height=0;$(".keyvisual-placeholder .keyvisual-item-desc").addClass("calculate-on");$(".slideshow-description").removeAttr("style","height");$(".keyvisual-placeholder .keyvisual-item-desc").each(function(){min_height=$(this).outerHeight()>min_height?$(this).outerHeight():min_height});$(".keyvisual-placeholder .keyvisual-item-desc").removeClass("calculate-on");$(".slideshow-description").height(min_height)}else{$(".slideshow-description").height("auto")}};calculateSliderItemsHeight();$(window).resize(function(){sliderHeight();calculateSliderItemsHeight()});$(".wb-cycle-wrap").hide();setTimeout(function(){$(".wb-cycle-wrap").slideToggle()},150);$("#slideshow .slider-item.nt-video-placeholder a.ks-link").click(function(e){e.stopPropagation()});$("#slideshow .slider-item.nt-video-placeholder").click(function(e){$(this).html('<div class="nt-video-ph"><iframe src="'+$(this).attr("data-video")+'" width="1043" height="449" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""></iframe></div>');$(".keyvisual-item-desc.item-"+$(this).attr("data-description")).fadeOut();$("#slideshow").cycle("pause");e.stopPropagation();e.preventDefault();return false})}},initBackToTop:function(){$(".back-to-top").on("click",function(){$("body,html").animate({scrollTop:0},0);return false})},initSearchForm:function(){function closeSearch(){$(".search-item").slideUp("fast").removeClass("show");$(".search-item .tx-indexedsearch-searchbox-sword").val("");$(".close-button").addClass("hide");$(".search-button").removeClass("hide")}$(".search-button").on("click",function(){$(".submenu-inner").slideUp().removeClass("temp");$(".close-menu").hide();$(".main-menu > li").removeClass("current-sub-menu");$(".overlay").fadeTo("fast",0,function(){$(this).hide()});$(".header .search-item").slideDown("fast").addClass("show");$(".header .search-item .tx-indexedsearch-searchbox-sword").focus();$(this).parent().find(".close-button").removeClass("hide");$(this).addClass("hide")});$(".close-button").on("click",function(){closeSearch()});$(document).on("keydown",function(e){if(e.key==="Escape"||e.keyCode===27){if($(".header .search-item").hasClass("show")){closeSearch()}}})},initDropdownMenu:function(){$(".main-menu > li .icon, .main-menu > li > button").on("click",function(e){var currentItem=$(this).parent().attr("data-submenu");var activeSubmenu=$(".submenu-outer").find(".submenu-"+currentItem);$(this).parent().siblings().removeClass("current-sub-menu");activeSubmenu.parent().siblings().children().removeClass("temp").slide
2Up();if(activeSubmenu.hasClass("temp")){activeSubmenu.removeClass("temp");$(".close-menu").hide();activeSubmenu.slideUp();$(this).parent().removeClass("current-sub-menu");$(".overlay").fadeTo("fast",0,function(){$(this).hide()})}else{$(".search-item").slideUp("fast").removeClass("show");$(".search-item .tx-indexedsearch-searchbox-sword").val("");$(".close-button").addClass("hide");$(".search-button").parent().find(".search-button").removeClass("hide");activeSubmenu.addClass("temp");$(this).parent().addClass("current-sub-menu");activeSubmenu.slideDown("fast",function(){$(".close-menu").show();if(e.detail===0){var firstLink=$(this).find("a").first();if(firstLink.length){firstLink.focus()}}});$(".overlay").fadeTo("fast",.5,function(){$(this).show()})}})},initCloseDropdown:function(){$(".close-menu, .overlay").on("click",function(e){e.preventDefault();if($(window).width()>1024||$("#contact-footer").hasClass("visible-overlay")==false){$(".close-menu").hide();$(".submenu-inner").slideUp().removeClass("temp");$(".main-menu > li").removeClass("current-sub-menu");if($(".aside-contact").hasClass("visible-overlay")){if($(".aside-contact").is(":visible")){$(".aside-contact").css("right","-"+$(".aside-contact").width())}$(".aside-contact").removeClass("visible-overlay");$(".header").removeClass("opacity");$(".aside-contact").removeClass("opacity-big")}$(".overlay").fadeTo("fast",0,function(){$(this).hide()})}})},initEachChild:function(){$(".social-buttons a").last().addClass("last")},initLeftMenu:function(){$(".aside-menu .root-item .icon, .aside-menu .root-item-title").on("click",function(){$(this).parents(".level-1").find(".level-2").slideUp();$(this).parents(".level-1").find(".root-item").removeClass("current");if(!$(this).parent().next().is(":visible")){$(this).parent().next().slideDown();$(this).parent().addClass("current")}})},initAccordion:function(){$(".accordion .a-h").on("click",function(){var currentActive=$(this).hasClass("open");$(this).parents(".accordion").first().find("> .container-item > .a-body.open").slideToggle(function(){$(this).removeClass("open").removeAttr("style")});$(this).parents(".accordion").first().find("> .container-item > .a-h.open").removeClass("open");if(currentActive!=true){var findElement=$(this).next(".a-body");if($(this).next(".a-body").length==0){findElement=$(this).prev(".a-body")}findElement.slideToggle(function(){$(this).addClass("open");$(window).trigger("accordion-open");var header=$("#website .header")}).addClass("open");$(this).addClass("open")}});$(".accordion .a-h").each(function(){if($(this).parents(".accordion").first().hasClass("layout-1")||$(this).parents(".accordion").first().hasClass("special-case")){$(this).prepend('<span class="arrow-inner"><span class="arrow"></span></span>');$(this).wrapInner("<div class='a-h-inner'></div>")}else{$(this).append('<span class="arrow"></span>')}});setTimeout(function(){$(".accordion").each(function(){var $body=$(this).find(" > .container-item > .a-h");var $content=$(this).find(" > .container-item > .a-body");var i=0;$body.each(function(){if(i!=0){$(this).removeClass("open")}i++});i=0;$content.each(function(){if(i!=0){$(this).removeClass("open")}i++})})},500)},initForms:function(){$("label").each(function(){if($("input:radio",this).length>0){$(this).addClass("custom-radio-button");$(this).append("<span class='radio-button'></span>")}if($("input:checkbox",this).length>0){$("<span class='check-button'></span>").insertAfter($(this).find("input[type='checkbox']"))}});if(typeof $.fn.placeholder=="function"){$("input[placeholder], textarea[placeholder]").placeholder()}},isScrolledIntoView:function(elem){var $elem=$(elem);var $window=$(window);var docViewTop=$window.scrollTop();var docViewBottom=docViewTop+$window.height();var elemTop=$elem.offset().top;var elemBottom=elemTop+$elem.height();return elemBottom<=docViewBottom&&elemTop>=docViewTop},initAnimateNumber:function(){var counter=function(){var commaSeparatorNumberStep=$.animateNumber.numberStepFactories.separator(".");if(layout.isScrolledIntoView($(".counter"))&&!$(".counter").hasClass("visible")){$(".counter").addClass("visible");$(".counter-number").each(function(){$(this).find("span.dot-type").animateNumber({number:$(this).data("number"),numberStep:commaSeparatorNumberStep},1e3);$(this).find("span.no-dot-type").animateNumber({number:$(this).data("number")},1e3)})}};if($(".counter").length){$(window).scroll(function(){counter()});counter()}},initTabs:function(){$(document).on("click",".tabs ul.tabs-nav li",function(){$(this).parent().find("li").removeClass("open");$(this).addClass("open");$(window).trigger("accordion-open");$(this).parents(".tabs").find("> .a-body").removeClass("open");$(this).parents(".tabs").find(".tab-"+$(this).attr("data-tab")).addClass("open")})},initDceSliders:function(){$(".content-slider .slider-items").cycle({slides:">
2 div",pauseOnHover:true,pagerEvent:"mouseover",log:false,swipe:"true"});$(".content-slider .slider-items .slider-item.nt-video-placeholder").click(function(e){if($(this).hasClass("cycle-slide-active")){if($(this).find(".nt-content-slider-wrap").length){$(this).find(".nt-content-slider-wrap").fadeOut(700);$(this).find(".keyvisual-item-desc").before('<div class="nt-video-ph"><iframe src="'+$(this).attr("data-video")+'" width="716" height="323" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""></iframe></div>')}else{$(this).html('<div class="nt-video-ph"><iframe src="'+$(this).attr("data-video")+'" width="716" height="323" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""></iframe></div>')}$(this).parents(".slider-items").cycle("pause");e.stopPropagation();e.preventDefault();return false}})},initBrandsSlider:function(){$(".brands-slider").each(function(){if($(".brands-slider-item",$(this)).length>4){$(this).bxSlider({minSlides:4,maxSlides:4,slideWidth:180,slideMargin:10,ticker:true,speed:55e3,tickerHover:true,useCSS:false})}else{$(this).bxSlider({minSlides:2,maxSlides:4,moveSlides:4,slideWidth:180,slideMargin:10,ticker:false,useCSS:false,pager:false,controls:false})}})},initPowermailPopupMessage:function(){$(".popup-example").on("click",function(e){$.fancybox({type:"html",content:$(this).next().clone(),onStart:function(){$("#fancybox-content").css("border","0px solid #e1e757")}});e.preventDefault()})},initSearchResultsLink:function(){$(".tx-indexedsearch-res a").attr("target","_blank")},initClickableArea:function(){if(typeof selector==="undefined"){selector=$("body")}$(selector).find(".clickable-area").click(function(event){if(event.target.nodeName.toLowerCase()!=="a"){var block=$(this).hasClass("clickable-area")?$(this):$(this).parents(".clickable-area");var href="";var target="";if(block.find("a").length>0){href=block.find("a").first().attr("href");target=block.find("a").first().attr("target")}else if(block.parent().find("a").length>0&&!block.parent().hasClass("slider-items")){href=block.parent().find("a").first().attr("href");target=block.parent().find("a").first().attr("target")}else{return false}if(!/^(f|ht)tps?:\/\//i.test(href)){var location=window.location.protocol+"//"+window.location.hostname+href}else{var location=href}if(target=="_blank"){event.preventDefault();window.open(location,target)}else{window.location=location}}})},initGridsHeight:function(){$(".g.calculate-height").each(function(){$(this).find("> div").removeAttr("style");max_height=0;$(this).find("> div").each(function(){max_height=$(this).outerHeight()>max_height?$(this).outerHeight():max_height});$(this).find("> div").height(max_height)})},initServiceTeaserExpand:function(){$(".service-teaser .circle").on("click",function(){$(this).parents(".service-teaser").toggleClass("expand")})}
2,initAjaxNews:function(){$(".news-category-item > a").on("click",function(event){$(".loader").removeClass("hide");$(".news-category-item").removeClass("active");$(this).parent().addClass("active");$.ajax({url:$(this).attr("href"),data:$(this).serialize(),type:"POST",dataType:"html",success:function(data){if(data){$(".news-wrapper").html($(data).find(".news-wrapper").children());$(".loader").addClass("hide")}}});event.preventDefault();return false});$("body").delegate(".news .page-navigation li a","click",function(event){$(".loader").removeClass("hide");$.ajax({url:$(this).attr("href"),data:$(this).serialize(),type:"POST",dataType:"html",success:function(data){if(data){$(".news-wrapper").html($(data).find(".news-wrapper").children());$(".loader").addClass("hide");$("html, body").animate({scrollTop:$(".content-container").offset().top-100},500)}}});event.preventDefault();return false})},initNewsLoadMore:function(){if($(".news-list-view").length<1){return}var container=$(".news-list-view"),button=$(".load-more-wrapper"),pagination=$(".page-navigation"),newsToLoad=[];if(pagination.length<1){button.hide()}pagination.find("li:not([class])").each(function(){newsToLoad.push($(this).find("a").attr("href"))});button.not(".loading").on("click",function(e){e.preventDefault();if(button.hasClass("loading")){return}button.addClass("loading");$.ajax({async:"true",url:newsToLoad[0],type:"POST",dataType:"html",success:function(data){$(data).find(".news-list-view .news-list-item").insertAfter(container.find(".news-list-item:last")).hide().fadeIn("fast");newsToLoad.shift();button.removeClass("loading");if(newsToLoad.length==0){button.remove()}},error:function(error){button.removeClass("loading")}})})},initProductSlickSlider:function(){$(".product-variant-wrap").slick({infinite:true,slidesToShow:3,slidesToScroll:3,dots:false});$(".product-hightlight-slider").slick({infinite:true,slidesToShow:1,slidesToScroll:1,dots:true})},initFoldout:function(){if($("body").hasClass("mobile-device-on")){$("body.mobile-device-on #foldout-menu .menu-item").on("touchstart",function(e){var link=$(this);if(link.hasClass("hover")){return true}else{link.addClass("hover");$("#foldout-menu .menu-item").not(this).removeClass("hover");e.preventDefault();return false}})}else{$("#foldout-menu .menu-item").hover(function(){$(this).addClass("hover")},function(){$(this).removeClass("hover")})}},initResponsive:function(){var $menu=$(".wb-responsive-menu");var $search=$(".wb-responsive-search");$(".wb-button").on("click",function(){if($(this).hasClass("menu")){if($menu.hasClass("show-menu")){$("#wb-overlay").hide();$("#website").removeClass("push-to-left");$menu.removeClass("show-menu");$menu.attr("inert","")}else{$menu.addClass("show-menu pushed-element");$("#wb-overlay").show(400);$menu.removeAttr("inert");$("#website").addClass("push-to-left");$("#wb-overlay").click(function(){$(".wb-button.menu").removeClass("active");$(this).hide();$("#website").removeClass("push-to-left");$menu.removeClass("show-menu");$menu.attr("inert","")});$search.slideUp(500);$(".wb-button.search").removeClass("close");$search.removeClass("show")}$(".level-4").addClass("show-important");$(".level-4 li.active").parent().show(400);$(".level-4").removeClass("show-important");$("ul.level-3").prev().addClass("active")}else if($(this).hasClass("search")){if($search.hasClass("show")){$search.slideUp(500);$(".wb-button.search").removeClass("close");$search.removeClass("show")}else{$(".wb-button.search").addClass("close");$search.slideDown(500);$search.addClass("show")}}});$(".wb-submenu > .icon, .wb-submenu > .wb-submenu-first").on("click",function(){var pagePid=$(this).parent().data("submenu");$(this).parent().removeClass("active");$(this).parent().hide();$(".wb-main-menu li").each(function(){if($(this).data("submenu")==pagePid){$(".wb-main-menu").fadeIn();$(this).fadeIn()}})});$(".wb-main-menu > li > .icon, .wb-main-menu > li > .c-p").each(function(){$(this).on("click",function(){var pageUid=$(this).parent().data("submenu");$(this).parent().parent().hide();$(".wb-submenu").each(function(){if($(this).data("submenu")==pageUid){$(this).fadeIn();$(this).addClass("active")}})})});$(".wb-submenu").each(function(){if($(this).hasClass("active")){$(".wb-main-menu").hide(400)}});$(".show-sublevel").each(function(){var clicked="clicked";$(this).click(function(){$(this).next().slideToggle();$(this).parent().find("> a").toggleClass(clicked);$(this).toggleClass("active")})});$(".wb-submenu .level-3 > li > a").click(function(e){var $this=$(this);var clicked="clicked";if(!$this.hasClass(clicked)&&$this.parent().hasClass("has-subpage")){e.preventDefault();$(".wb-submenu .level-3 > li > a").not($this).removeClass(clicked);$this.addClass(clicked);$this.parent().find("> span").toggleClass("active");$this.parent().find("> ul").slideToggle(500)}});$(".wb-submenu .level-2 .root-item-title, .wb-submenu .level-2 .icon").each(function(){$(this).on("click",function(){$(this).parent().find("> ul").slideToggle(500);$(this).parent().toggleClass("active")})});$menu.find(".meta-menu li.language .CUR").on("click",function(){$(this).parent().find(".NO ").slideToggle(500)})},menuHeight:function(){var newHeight=$(window).outerHeight();$(".wb-responsive-menu").css("height","auto");$(".wb-responsive-wrapper").addClass("visible-important");$(".wb-responsive-menu").css("height",newHeight-20);$(".wb-responsive-wrapper").removeClass("visible-important")},initStickyHeader:function(){var stickyHeader=function(){var scrollVal=$(this).scrollTop();if(scrollVal>80){$(".header").addClass("sticky");$(".wb-responsive-wrapper").addClass("sticky-responsive")}else{$(".header").removeClass("sticky");$(".wb-responsive-wrapper").removeClass("sticky-responsive")}};var showHideMenuOnResponsive=function(){var lastScroll=0;$(window).scroll(function(event){var st=$(this).scrollTop();lastScroll=st})};stickyHeader();showHideMenuOnResponsive();$(window).scroll(function(){stickyHeader()})},categoriesItemHeight:function(){if($(".categories").length>0){var currentTallest=0,currentRowStart=0,rowDivs=new Array,$el,topPosition=0;$(".categories:not(.news-list-view)").each(function(){$(this).find(".category-item").each(function(){$el=$(this);$($el).css("min-height","auto");topPostion=$el.position().top;if(currentRowStart!=topPostion){for(currentDiv=0;currentDiv<rowDivs.length;currentDiv++){rowDivs[currentDiv].css("min-height",currentTallest)}rowDivs.length=0;currentRowStart=topPostion;currentTallest=$el.height();rowDivs.push($el)}else{rowDivs.push($el);currentTallest=currentTallest<$el.height()?$el.height():currentTallest}for(currentDiv=0;currentDiv<rowDivs.length;currentDiv++){rowDivs[currentDiv].css("min-height",currentTallest)}})})}},initCheckForMobileDevice:function(){var isMobile=false;if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|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|phone)|xda|xiino/i.test(navigator.userAgent)||/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 )|
2sy(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(navigator.userAgent.substr(0,4)))isMobile=true;if(isMobile){$("select").css("background-image","none !important")}else{layout.hideMobileMenu()}},hideMobileMenu:function(event){if($(window).width()>768){$(".show-menu span.wb-button.menu.icon.icon-cross2").trigger("click")}if(event){event.stopPropagation()}},initGeneratePhoneLink:function(){if($("html").hasClass("no-touch")){$("a.js-phone-link").each(function(){$(this).on("click",function(e){e.preventDefault()})})}else{if($("a.js-phone-link").length>0){$("a.js-phone-link").each(function(){var attr=$(this).attr("data-phone");if(typeof attr!==typeof undefined&&attr!==false){var number=$(this).attr("data-phone").replace(/[^0-9^+]/g,"");if(number.length>3){$(this).attr("href","tel://"+number)}else{$(this).attr("href","#")}}})}}},initPriceBoxDCE:function(){$(".price-box").each(function(){if($(this).find("img").attr("width")==144){$(this).find(".image-placeholder").addClass("limit-max-width")}})}
2,initCustomAction:function(){$(".tx-sz-downloadcenter.documents-ext").parents(".tabs").addClass("document-ext-parent")},resposniveFixes:function(){if($(window).width()<=800&&$(window).height()>=1024){$("#website").addClass("special-case")}else{$("#website").removeClass("special-case")}if(navigator.userAgent.match(/Mobi/)){$("body").addClass("mobile-device-on")}else{$("body").removeClass("mobile-device-on")}if(navigator.userAgent.match(/Tablet/)){$("body").addClass("tablet-device-on")}else{$("body").removeClass("tablet-device-on")}},initAjaxPowermailSubmit:function(){if($("form[data-powermail-ajax]").length){layout.ajaxPowermailSubmit()}},ajaxPowermailSubmit:function(){$(document).on("submit","form[data-powermail-ajax]",function(e){var $this=$(this);var formUid=$this.data("powermail-form");$this.css("position","relative").append('<div class="loader"><img src="../typo3conf/ext/sz_assets/Resources/Public/Images/loader.gif"></div>')})},initShopWidgets:function(){$(document).on("hlzwidgetcreated",function(){$(".hlz-widget-carousel").each(function(){var widgetCnt=$(this);if($(".bx-wrapper",widgetCnt).length<1){widgetCnt.parent().removeClass("hlz-widget-load");widgetCnt.removeClass("hlz-widget-load");var minSlides=$(this).data("widget-cols"),maxSlides=5,nextSelector="#"+$(this).attr("id")+" .hlz-widget-controls--next",prevSelector="#"+$(this).attr("id")+" .hlz-widget-controls--prev",containerWidth=widgetCnt.parent().width(),autoPlay=parseInt($(this).data("widget-autoplay")),productCount=$(".hlz-product",widgetCnt).length,showPager=true,showControls=true,touchEnabled=!!("ontouchstart"in window)||window.navigator.msMaxTouchPoints>0;if(containerWidth<=480){minSlides=1;maxSlides=1}else if(containerWidth>480&&containerWidth<=640){minSlides=2;maxSlides=2;if(productCount<=2){showPager=false;showControls=false}}else if(productCount<3){showPager=false;showControls=false}$(".hlz-widget-products",widgetCnt).bxSlider({touchEnabled:touchEnabled,controls:showControls,slideWidth:5e3,minSlides:minSlides,maxSlides:maxSlides,slideMargin:9,pager:showPager,shrinkItems:false,auto:autoPlay,stopAutoOnClick:true,infiniteLoop:false,hideControlOnEnd:true,nextSelector:nextSelector,prevSelector:prevSelector,prevText:'<svg style="width:32px" viewBox="0 0 100 100"><path d="M 10,50 L 70,100 L 70,90 L 20,50 L 70,10 L 70,0 Z" class="arrow"></path></svg>',nextText:'<svg style="width:32px" viewBox="0 0 100 100"><path d="M 10,50 L 70,100 L 70,90 L 20,50 L 70,10 L 70,0 Z" class="arrow" transform="translate(100, 100) rotate(180) "></path></svg>'})}})})}};$(document).ready(function(){layout.init();layout.categoriesItemHeight();layout.menuHeight();layout.resposniveFixes();layout.initGridsHeight();$(".service-teaser").toggleClass("expand")});$(window).resize(function(){layout.categoriesItemHeight();layout.menuHeight();layout.hideMobileMenu();layout.resposniveFixes();layout.initGridsHeight()});(function($,window){var adjustAnchor=function(){var $anchor=$(":target"),fixedElementHeight=130;if(window.innerWidth<668){fixedElementHeight=80}if($anchor.length>0){setTimeout(function(){$("html, body").stop().animate({scrollTop:$anchor.offset().top-fixedElementHeight},0)},500)}};$(window).on("hashchange load",function(e){adjustAnchor()})})(jQuery,window);$(window).resize(function(){if(this.resizeTO)clearTimeout(this.resizeTO);this.resizeTO=setTimeout(function(){$(this).trigger("resizeEnd")},500)});
3(function ($, window, document) {
4    "use strict";
5
6    var DESKTOP_BREAKPOINT = 769;
7
8    function isDesktop() {
9        var viewportWidth = window.innerWidth || $(window).width();
10        return viewportWidth >= DESKTOP_BREAKPOINT;
11    }
12
13    function getCurrentMainMenuItem() {
14        return $(".main-menu > li.current-sub-menu").first();
15    }
16
17    function getFocusableMainMenuTarget($menuItem) {
18        if (!$menuItem || !$menuItem.length) {
19            return $();
20        }
21
22        return $menuItem
23            .find("> button, > .icon, > a, > .c-p")
24            .filter(":visible")
25            .first();
26    }
27
28    function closeCurrentSubmenu() {
29        $(".close-menu").hide();
30        $(".submenu-inner.temp").removeClass("temp").slideUp("fast");
31        $(".main-menu > li").removeClass("current-sub-menu");
32        $(".overlay").fadeTo("fast", 0, function () {
33            $(this).hide();
34        });
35    }
36
37    function getSearchTrigger() {
38        return $("nav > button.search").filter(":visible").first();
39    }
40
41    function closeSearchDropdown() {
42        $(".search-item").slideUp("fast").removeClass("show");
43        $(".search-item .tx-indexedsearch-searchbox-sword").val("");
44        $(".close-button").addClass("hide");
45        $(".search-button").removeClass("hide");
46    }
47
48    function focusCurrentMainNavigationPoint($currentMainMenuItem) {
49        var $focusTarget = getFocusableMainMenuTarget($currentMainMenuItem);
50
51        if ($focusTarget.length) {
52            $focusTarget.focus();
53        }
54    }
55
56    function shouldCloseSubmenu(activeElement, activeSubmenu, currentMainMenuItem, closeMenuElement) {
57        var activeInsideSubmenu = $.contains(activeSubmenu, activeElement);
58        var activeInsideCurrentMainMenuItem = $.contains(currentMainMenuItem, activeElement) || activeElement === currentMainMenuItem;
59        var activeInsideCloseMenu = closeMenuElement && (activeElement === closeMenuElement || $.contains(closeMenuElement, activeElement));
60
61        return !activeInsideSubmenu && !activeInsideCurrentMainMenuItem && !activeInsideCloseMenu;
62    }
63
64    $(document).on("keydown", function (event) {
65        if (event.key !== "Tab" && event.keyCode !== 9) {
66            return;
67        }
68
69        if (!isDesktop()) {
70            return;
71        }
72
73        window.setTimeout(function () {
74            var activeElement = document.activeElement;
75            var $searchDropdown = $(".header .search-item.show:visible").first();
76            var $searchTrigger = getSearchTrigger();
77
78            if ($searchDropdown.length) {
79                var searchDropdownElement = $searchDropdown.get(0);
80                var searchTriggerElement = $searchTrigger.length ? $searchTrigger.get(0) : null;
81                var activeInsideSearchDropdown = $.contains(searchDropdownElement, activeElement);
82                var activeInsideSearchTrigger = searchTriggerElement && (activeElement === searchTriggerElement || $.contains(searchTriggerElement, activeElement));
83
84                if (!activeInsideSearchDropdown && !activeInsideSearchTrigger) {
85                    closeSearchDropdown();
86                    if ($searchTrigger.length) {
87                        $searchTrigger.focus();
88                    }
89                    return;
90                }
91            }
92
93            var $currentMainMenuItem = getCurrentMainMenuItem();
94            var $activeSubmenu = $(".submenu-inner.temp:visible").first();
95            var $closeMenu = $(".close-menu:visible").first();
96
97            if (!$currentMainMenuItem.length || !$activeSubmenu.length) {
98                return;
99            }
100
101            var currentMainMenuElement = $currentMainMenuItem.get(0);
102            var activeSubmenuElement = $activeSubmenu.get(0);
103            var closeMenuElement = $closeMenu.length ? $closeMenu.get(0) : null;
104
105            if (shouldCloseSubmenu(activeElement, activeSubmenuElement, currentMainMenuElement, closeMenuElement)) {
106                closeCurrentSubmenu();
107                focusCurrentMainNavigationPoint($currentMainMenuItem);
108            }
109        }, 0);
110    });
111})(jQuery, window, document);
112
113class ContrastPlugin {
114  constructor() {
115    this.storageKey = 'contrastEnabled';
116    this.attrMarker = 'data-contrast-css';
117    this.selectorButtons = '[data-contrast-switch]';
118    this.initContrastPlugin();
119  }
120
121  initContrastPlugin = () => {
122    const buttons = Array.from(document.querySelectorAll(this.selectorButtons));
123    if (!buttons.length) return;
124
125    // Sammle alle CSS-Quellen, die von Buttons referenziert werden
126    const cssHrefs = this.getUniqueCssHrefs(buttons);
127
128    if (!cssHrefs.length) {
129      console.warn('ContrastPlugin: Keine gültigen data-css Angaben gefunden.');
130      return;
131    }
132
133    const persisted = this.getPersistedState();
134
135    // Initialer Zustand
136    if (persisted) {
137      // Aktiv: Stelle sicher, dass alle referenzierten CSS geladen sind
138      cssHrefs.forEach((href) => this.ensureCssLoaded(href));
139      this.updateAllButtons(buttons, true);
140    } else {
141      this.updateAllButtons(buttons, false);
142    }
143
144    // Klick-Handler für alle Buttons
145    buttons.forEach((btn) => {
146      btn.addEventListener('click', (e) => {
147        e.preventDefault();
148        const cssHref = btn.getAttribute('data-css');
149        if (!cssHref) {
150          console.warn('ContrastPlugin: data-css ist leer oder fehlt.');
151          return;
152        }
153
154        const anyActive = this.isAnyCssActive(cssHrefs);
155        // Wenn irgendein verknüpftes CSS aktiv ist, deaktiviere alle
156        if (anyActive) {
157          this.removeAllCss(cssHrefs);
158          this.persistState(false);
159          this.updateAllButtons(buttons, false);
160        } else {
161          // Aktiviere das per Button referenzierte CSS (und optional alle weiteren)
162          this.ensureCssLoaded(cssHref);
163          // Optional: Wenn mehrere CSS-Varianten existieren und alle aktiv sein sollen,
164          // cssHrefs.forEach((href) => this.ensureCssLoaded(href));
165          this.persistState(true);
166          this.updateAllButtons(buttons, true);
167        }
168      });
169    });
170  };
171
172  // Sammelt eindeutige CSS-Hrefs aus Buttons
173  getUniqueCssHrefs = (buttons) => {
174    const set = new Set();
175    buttons.forEach((btn) => {
176      const href = btn.getAttribute('data-css');
177      if (href && href.trim()) set.add(href.trim());
178    });
179    return Array.from(set);
180  };
181
182  // Prüft, ob irgendein CSS aus der Liste aktiv ist
183  isAnyCssActive = (hrefs) => {
184    return hrefs.some((href) => !!this.findExistingLink(href));
185  };
186
187  // Entfernt alle verknüpften CSS Links
188  removeAllCss = (hrefs) => {
189    hrefs.forEach((href) => {
190      const link = this.findExistingLink(href);
191      if (link) link.remove();
192    });
193  };
194
195  // Lädt CSS, falls noch nicht vorhanden
196  ensureCssLoaded = (href) => {
197    const existing = this.findExistingLink(href);
198    if (existing) return existing;
199
200    const link = document.createElement('link');
201    link.rel = 'stylesheet';
202    link.href = href;
203    link.setAttribute(this.attrMarker, 'true');
204    link.onerror = () =>
205      console.error(`ContrastPlugin: CSS konnte nicht geladen werden: ${href}`);
206    document.head.appendChild(link);
207    return link;
208  };
209
210  updateAllButtons = (buttons, enabled) => {
211    buttons.forEach((button) => {
212      const ariaOn = button.dataset.ariaOn;
213      const ariaOff = button.dataset.ariaOff;
214      const labelOn = button.dataset.labelOn;
215      const labelOff = button.dataset.labelOff;
216
217      // ARIA und Title
218      if (enabled) {
219        button.setAttribute('aria-label', ariaOn);
220        button.setAttribute('title', ariaOn);
221        button.setAttribute('aria-pressed', 'true');
222      } else {
223        button.setAttribute('aria-label', ariaOff);
224        button.setAttribute('title', ariaOff);
225        button.setAttribute('aria-pressed', 'false');
226      }
227
228      // Sichtbarer Text: "Kontrastmodus aktiv" vs. "Kontrastmodus"
229      // Wenn der Button Inhaltselemente enthält, wird nur reiner Text angepasst.
230      const textOn = labelOn;
231      const textOff = labelOff;
232
233      // Falls der Button einen expliziten Slot/Span für den Text hat, kann man gezielt anpassen:
234      // Beispiel: <button data-contrast-switch><span class="label">...</span></button>
235      const labelEl = button.querySelector('.label');
236      if (labelEl) {
237        labelEl.textContent = enabled ? textOn : textOff;
238      } else {
239        // Fallback: gesamten Textknoten ersetzen, ohne Icons zu entfernen
240        // Bewahrt mögliche <svg> oder <i>-Icons
241        let textNodeFound = false;
242        for (const node of Array.from(button.childNodes)) {
243          if (node.nodeType === Node.TEXT_NODE) {
244            node.textContent = enabled ? ` ${textOn}` : ` ${textOff}`;
245            textNodeFound = true;
246            break;
247          }
248        }
249        if (!textNodeFound) {
250          // Wenn kein Textknoten existiert, füge einen hinzu
251          button.appendChild(document.createTextNode(enabled ? ` ${textOn}` : ` ${textOff}`));
252        }
253      }
254    });
255  };
256
257  findExistingLink = (href) => {
258    // Primär: Marker-Attribut
259    const marked = document.querySelector(
260      `head link[rel="stylesheet"][${this.attrMarker}="true"]`
261    );
262    if (marked) {
263      // Prüfe, ob das markierte Link dem href entspricht
264      const targetPath = this.normalizeUrlPath(href);
265      const markedPath = this.normalizeUrlPath(marked.href);
266      if (markedPath === targetPath) return marked;
267      // Wenn nicht identisch, nicht zurückgeben, weiter prüfen
268    }
269
270    // Sekundär: robuste URL-Äquivalenz (ohne Origin, ohne Trailing Slash)
271    const targetPath = this.normalizeUrlPath(href);
272    const links = document.querySelectorAll('head link[rel="stylesheet"]');
273    for (const link of links) {
274      const linkPath = this.normalizeUrlPath(link.href);
275      if (linkPath === targetPath) return link;
276    }
277    return null;
278  };
279
280  normalizeUrlPath = (url) => {
281    try {
282      const u = new URL(url, window.location.href);
283      return u.pathname.replace(/\/+$/, '');
284    } catch {
285      return String(url)
286        .replace(window.location.origin, '')
287        .replace(/\/+$/, '');
288    }
289  };
290
291  persistState = (enabled) => {
292    try {
293      localStorage.setItem(this.storageKey, enabled ? '1' : '0');
294    } catch (e) {
295      // Ignorieren (Private Mode etc.)
296    }
297  };
298
299  getPersistedState = () => {
300    try {
301      return localStorage.getItem(this.storageKey) === '1';
302    } catch (e) {
303      return false;
304    }
305  };
306}
307
308document.addEventListener('DOMContentLoaded', () => new ContrastPlugin());

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.