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.