1/* 2 By Osvaldas Valutis, www.osvaldas.info 3 Available for use under the MIT License 4*/ 5 6 7 8;(function(e,t,n,r){e.fn.doubleTapToGo=function(r){if(!("ontouchstart"in t)&&!navigator.msMaxTouchPoints&&!navigator.userAgent.toLowerCase().match(/windows phone os 7/i))return false;this.each(function(){var t=false;e(this).on("click",function(n){var r=e(this);if(r[0]!=t[0]){n.preventDefault();t=r}});e(n).on("click touchstart MSPointerDown",function(n){var r=true,i=e(n.target).parents();for(var s=0;s<i.length;s++)if(i[s]==t[0])r=false;if(r)t=false})});return this}})(jQuery,window,document); 9/** 10 * Accessibility settings 11 */ 12jQuery(document).ready(function() 13{ 14 // Fontsize 15 if( Number( localStorage.getItem('accessibility_fontsize') ) != 0) 16 { 17 jQuery('html,body').addClass('acc_fontsize_'+Number( localStorage.getItem('accessibility_fontsize') )); 18 } 19 // Default fonts active 20 if( Number( localStorage.getItem('accessibility_default_fonts') ) > 0) 21 { 22 jQuery('html,body').addClass('acc_default_fonts'); 23 } 24 // High contrast active 25 if( Number( localStorage.getItem('accessibility_contrast') ) > 0) 26 { 27 jQuery('html,body').addClass('acc_contrast'); 28 29 if( jQuery('link#css_acc_contrast').length < 1 ) 30 { 31 jQuery('head').append('<link id="css_acc_contrast" rel="stylesheet" type="text/css" href="files/cto_layout/css/accessibility_widget/acc_contrast.css">'); 32 } 33 } 34 // Boldface active 35 if( Number( localStorage.getItem('accessibility_boldface') ) > 0) 36 { 37 jQuery('html,body').addClass('acc_boldface'); 38 } 39 // disable_animations 40 if( Number( localStorage.getItem('accessibility_disable_animations') ) > 0) 41 { 42 jQuery('html,body').addClass('acc_disable_animations'); 43 44 if( jQuery('link#css_acc_disable_animations').length < 1 ) 45 { 46 jQuery('head').append('<link id="css_acc_disable_animations" rel="stylesheet" type="text/css" href="files/cto_layout/css/accessibility_widget/acc_disable_animations.css">'); 47 } 48 } 49}); 50 51// tabmenu 52jQuery(document).ready(function () { 53 let menuItems = jQuery('#accessibility_tabmenu a'); // Alle Links im Tab-Menü 54 let firstItem = menuItems.first(); // Erstes Element 55 let lastItem = menuItems.last(); // Letztes Element 56 57 menuItems.on('keydown', function (e) { 58 if (e.key === 'Tab' && !e.shiftKey) { // Tab gedrückt, ohne Shift 59 e.preventDefault(); 60 if (jQuery(this).is(lastItem)) { 61 firstItem.focus(); // Springe zurück zum ersten Tab-Element 62 } else { 63 jQuery(this).next().focus(); // Gehe zum nächsten Element 64 } 65 } else if (e.key === 'Tab' && e.shiftKey) { // Shift + Tab gedrückt 66 e.preventDefault(); 67 if (jQuery(this).is(firstItem)) { 68 lastItem.focus(); // Springe zurück zum letzten Tab-Element 69 } else { 70 jQuery(this).prev().focus(); // Gehe zum vorherigen Element 71 } 72 } 73 }); 74}); 75 76jQuery(document).ready(function () { 77 jQuery('#top *, \ 78 .header *') 79 .attr('tabindex', '-1'); 80}); 81/*! 82 Colorbox 1.6.4 83 license: MIT 84 http://www.jacklmoore.com/colorbox 85 86 Included patches: 87 * https://github.com/jackmoore/colorbox/pull/832 88*/ 89!function(d,a,h){var s,c,u,g,f,p,m,w,l,v,x,y,b,T,r,t,C,H,k,W,I,M,E,P,S,F,K,L,R,$,D,B,n,o={html:!1,photo:!1,iframe:!1,inline:!1,transition:"elastic",speed:300,fadeOut:300,width:!1,initialWidth:"600",innerWidth:!1,maxWidth:!1,height:!1,initialHeight:"450",innerHeight:!1,maxHeight:!1,scalePhotos:!0,scrolling:!0,opacity:.9,preloading:!0,className:!1,overlayClose:!0,escKey:!0,arrowKey:!0,top:!1,bottom:!1,left:!1,right:!1,fixed:!1,data:void 0,closeButton:!0,fastIframe:!0,open:!1,reposition:!0,loop:!0,slideshow:!1,slideshowAuto:!0,slideshowSpeed:2500,slideshowStart:"start slideshow",slideshowStop:"stop slideshow",photoRegex:/\.(gif|png|jp(e|g|eg)|bmp|ico|webp|jxr|svg)((#|\?).*)?$/i,retinaImage:!1,retinaUrl:!1,retinaSuffix:"@2x.$1",current:"image {current} of {total}",previous:"previous",next:"next",close:"close",xhrError:"This content failed to load.",imgError:"This image failed to load.",returnFocus:!0,trapFocus:!0,onOpen:!1,onLoad:!1,onComplete:!1,onCleanup:!1,onClosed:!1,rel:function(){return this.rel},href:function(){return d(this).attr("href")},title:function(){return this.title},createImg:function(){var i=new Image,t=d(this).data("cbox-img-attrs");return"object"==typeof t&&d.each(t,function(t,e){i[t]=e}),i},createIframe:function(){var i=a.createElement("iframe"),t=d(this).data("cbox-iframe-attrs");return"object"==typeof t&&d.each(t,function(t,e){i[t]=e}),"frameBorder"in i&&(i.frameBorder=0),"allowTransparency"in i&&(i.allowTransparency="true"),i.name=(new Date).getTime(),i.allowFullscreen=!0,i}},N="colorbox",O="cbox",_=O+"Element",j=O+"_open",z=O+"_load",A=O+"_c
89omplete",e=O+"_cleanup",q=O+"_closed",U=O+"_purge",G=d("<a/>"),Q="div",J=0,V={};function X(t,e,i){var n=a.createElement(t);return e&&(n.id=O+e),i&&(n.style.cssText=i),d(n)}function Y(){return h.innerHeight?h.innerHeight:d(h).height()}function Z(t){return t.find('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex="0"]')}function tt(t){return Z(t).first()}function et(t){return Z(t).last()}function it(t,i){i!==Object(i)&&(i={}),this.cache={},this.el=t,this.value=function(t){var e;return void 0===this.cache[t]&&(void 0!==(e=d(this.el).attr("data-cbox-"+t))?this.cache[t]=e:void 0!==i[t]?this.cache[t]=i[t]:void 0!==o[t]&&(this.cache[t]=o[t])),this.cache[t]},this.get=function(t){var e=this.value(t);return d.isFunction(e)?e.call(this.el,this):e}}function nt(t){var e=l.length,i=(F+t)%e;return i<0?e+i:i}function ot(t,e){return Math.round((/%/.test(t)?("x"===e?v.width():Y())/100:1)*parseInt(t,10))}function at(t,e){return t.get("photo")||t.get("photoRegex").test(e)}function rt(t,e){return t.get("retinaUrl")&&1<h.devicePixelRatio?e.replace(t.get("photoRegex"),t.get("retinaSuffix")):e}function ht(t){ht.str!==t&&(c.add(s).removeClass(ht.str).addClass(t),ht.str=t)}function st(t){d(a).trigger(t),G.triggerHandler(t)}var i,lt,dt,ct,ut=(dt=O+"Slideshow_",ct="click."+O,function(){i?I.get("slideshow")||(G.unbind(e,wt),wt()):I.get("slideshow")&&l[1]&&(i=!0,G.one(e,wt),I.get("slideshowAuto")?pt():mt(),t.attr("aria-hidden","false").show())});function gt(){clearTimeout(lt)}function ft(){(I.get("loop")||l[F+1])&&(gt(),lt=setTimeout(B.next,I.get("slideshowSpeed")))}function pt(){t.html(I.get("slideshowStop")).attr("aria-label",I.get("slideshowStop")).unbind(ct).one(ct,mt),G.bind(A,ft).bind(z,gt),c.removeClass(dt+"off").addClass(dt+"on")}function mt(){gt(),G.unbind(A,ft).unbind(z,gt),t.html(I.get("slideshowStart")).attr("aria-label",I.get("slideshowStart")).unbind(ct).one(ct,function(){B.next(),pt()}),c.removeClass(dt+"on").addClass(dt+"off")}function wt(){i=!1,t.attr("aria-hidden","true").hide(),gt(),G.unbind(A,ft).unbind(z,gt),c.removeClass(dt+"off "+dt+"on")}function vt(t){var e;if(!$){if(e=d(t).data(N),function(t){F=0,t&&!1!==t&&"nofollow"!==t?(l=d("."+_).filter(function(){return new it(this,d.data(this,N)).get("rel")===t}),-1===(F=l.index(I.el))&&(l=l.add(I.el),F=l.length-1)):l=d(I.el)}((I=new it(t,e)).get("rel")),!L){L=R=!0,ht(I.get("className")),c.css({visibility:"hidden",display:"block",opacity:""}).attr("aria-hidden","true"),x=X(Q,"LoadedContent","width:0; height:0; overflow:hidden; visibility:hidden"),g.css({width:"",height:""}).append(x),M=f.height()+w.height()+g.outerHeight(!0)-g.height(),E=p.width()+m.width()+g.outerWidth(!0)-g.width(),P=x.outerHeight(!0),S=x.outerWidth(!0);var i=ot(I.get("initialWidth"),"x"),n=ot(I.get("initialHeight"),"y"),o=I.get("maxWidth"),a=I.get("maxHeight");I.w=Math.max((!1!==o?Math.min(i,ot(o,"x")):i)-S-E,0),I.h=Math.max((!1!==a?Math.min(n,ot(a,"y")):n)-P-M,0),x.css({width:"",height:I.h}),B.position(),st(j),I.get("onOpen"),W.add(T).hide(),c.attr("aria-hidden","false"),I.get("returnFocus")&&G.one(q,function(){d(I.el).focus()})}var r=parseFloat(I.get("opacity"));s.css({opacity:r==r?r:"",cursor:I.get("overlayClose")?"pointer":"",visibility:"visible"}).show(),I.get("closeButton")?k.html(I.get("close")).attr("aria-hidden","false").appendTo(g):k.appendTo("<div/>"),function(){var t,e,i,n=B.prep,o=++J;K=!(R=!0),st(U),st(z),I.get("onLoad"),I.h=I.get("height")?ot(I.get("height"),"y")-P-M:I.get("innerHeight")&&ot(I.get("innerHeight"),"y"),I.w=I.get("width")?ot(I.get("width"),"x")-S-E:I.get("innerWidth")&&ot(I.get("innerWidth"),"x"),I.mw=I.w,I.mh=I.h,I.get("maxWidth")&&(I.mw=ot(I.get("maxWidth"),"x")-S-E,I.mw=I.w&&I.w<I.mw?I.w:I.mw);I.get("maxHeight")&&(I.mh=ot(I.get("maxHeight"),"y")-P-M,I.mh=I.h&&I.h<I.mh?I.h:I.mh);if(t=I.get("href"),D=setTimeout(function(){b.show()},100),I.get("inline")){var a=d(t).eq(0);i=d("<div>").hide().insertBefore(a),G.one(U,function(){i.replaceWith(a)}),n(a)}else I.get("iframe")?n(" "):I.get("html")?n(I.get("html")):at(I,t)?(t=rt(I,t),K=I.get("createImg"),d(K).addClass(O+"Photo").bind("error."+O,function(){n(X(Q,"Error").html(I.get("imgError")))}).one("load",function(){o===J&&setTimeout(function(){var t;I.get("retinaImage")&&1<h.devicePixelRatio&&(K.height=K.height/h.devicePixelRatio,K.width=K.width/h.devicePixelRatio),I.get("scalePhotos")&&(e=function(){K.height-=K.height*t,K.width-=K.width*t},I.mw&&K.width>I.mw&&(t=(K.width-I.mw)/K.width,e()),I.mh&&K.height>
89I.mh&&(t=(K.height-I.mh)/K.height,e())),I.h&&(K.style.marginTop=Math.max(I.mh-K.height,0)/2+"px"),l[1]&&(I.get("loop")||l[F+1])&&(K.style.cursor="pointer",d(K).bind("click."+O,function(){B.next()})),K.style.width=K.width+"px",K.style.height=K.height+"px",n(K)},1)}),K.src=t):t&&y.load(t,I.get("data"),function(t,e){o===J&&n("error"===e?X(Q,"Error").html(I.get("xhrError")):d(this).contents())})}()}}function xt(){c||(n=!1,v=d(h),c=X(Q).attr({id:N,class:!1===d.support.opacity?O+"IE":"",role:"dialog","aria-hidden":"true","aria-labelledby":"cboxTitle","aria-describedby":"cboxCurrent"}).hide(),s=X(Q,"Overlay").hide(),b=d([X(Q,"LoadingOverlay")[0],X(Q,"LoadingGraphic")[0]]),u=X(Q,"Wrapper"),g=X(Q,"Content").append(T=X(Q,"Title").attr("aria-live","polite"),r=X(Q,"Current"),H=d('<button type="button">previous</button>').attr({id:O+"Previous","aria-hidden":"true"}),C=d('<button type="button">next</button>').attr({id:O+"Next","aria-hidden":"true"}),t=d('<button type="button">start slideshow</button>').attr({id:O+"Slideshow","aria-hidden":"true"}),b),k=d('<button type="button">close</button>').attr({id:O+"Close","aria-hidden":"true"}),u.append(X(Q).append(X(Q,"TopLeft"),f=X(Q,"TopCenter"),X(Q,"TopRight")),X(Q,!1,"clear:left").append(p=X(Q,"MiddleLeft"),g,m=X(Q,"MiddleRight")),X(Q,!1,"clear:left").append(X(Q,"BottomLeft"),w=X(Q,"BottomCenter"),X(Q,"BottomRight"))).find("div div").css({float:"left"}),y=X(Q,!1,"position:absolute; width:9999px; visibility:hidden; display:none; max-width:none;"),W=C.add(H).add(r).add(t)),a.body&&!c.parent().length&&d(a.body).append(s,c.append(u,y))}d[N]||(d(xt),(B=d.fn[N]=d[N]=function(e,t){var i=this;return e=e||{},d.isFunction(i)&&(i=d("<a/>"),e.open=!0),i[0]&&(xt(),function(){function t(t){1<t.which||t.shiftKey||t.altKey||t.metaKey||t.ctrlKey||(t.preventDefault(),vt(this))}return!!c&&(n||(n=!0,C.click(function(){B.next()}),H.click(function(){B.prev()}),k.click(function(){B.close()}),s.click(function(){I.get("overlayClose")&&B.close()}),d(a).bind("keydown."+O,function(t){var e=t.keyCode;L&&I.get("escKey")&&27===e&&(t.preventDefault(),B.close()),L&&I.get("arrowKey")&&l[1]&&!t.altKey&&(37===e?(t.preventDefault(),H.click()):39===e&&(t.preventDefault(),C.click())),L&&I.get("trapFocus")&&9===e&&(1===Z(c).length?t.preventDefault():t.shiftKey?a.activeElement===tt(c)[0]&&(t.preventDefault(),et(c).focus()):a.activeElement===et(c)[0]&&(t.preventDefault(),tt(c).focus()))}),d.isFunction(d.fn.on)?d(a).on("click."+O,"."+_,t):d("."+_).live("click."+O,t)),!0)}()&&(t&&(e.onComplete=t),i.each(function(){var t=d.data(this,N)||{};d.data(this,N,d.extend(t,e))}).addClass(_),new it(i[0],e).get("open")&&vt(i[0]))),i}).position=function(e,t){var i,n,o,a=0,r=0,h=c.offset();function s(){f[0].style.width=w[0].style.width=g[0].style.width=parseInt(c[0].style.width,10)-E+"px",g[0].style.height=p[0].style.height=m[0].style.height=parseInt(c[0].style.height,10)-M+"px"}if(v.unbind("resize."+O),c.css({top:-9e4,left:-9e4}),n=v.scrollTop(),o=v.scrollLeft(),I.get("fixed")?(h.top-=n,h.left-=o,c.css({position:"fixed"})):(a=n,r=o,c.css({position:"absolute"})),!1!==I.get("right")?r+=Math.max(v.width()-I.w-S-E-ot(I.get("right"),"x"),0):!1!==I.get("left")?r+=ot(I.get("left"),"x"):r+=Math.round(Math.max(v.width()-I.w-S-E,0)/2),!1!==I.get("bottom")?a+=Math.max(Y()-I.h-P-M-ot(I.get("bottom"),"y"),0):!1!==I.get("top")?a+=ot(I.get("top"),"y"):a+=Math.round(Math.max(Y()-I.h-P-M,0)/2),c.css({top:h.top,left:h.left,visibility:"visible"}).attr("aria-hidden","false"),u[0].style.width=u[0].style.height="9999px",i={width:I.w+S+E,height:I.h+P+M,top:a,left:r},e){var l=0;d.each(i,function(t){i[t]===V[t]||(l=e)}),e=l}V=i,e||c.css(i),c.dequeue().animate(i,{duration:e||0,complete:function(){s(),R=!1,u[0].style.width=I.w+S+E+"px",u[0].style.height=I.h+P+M+"px",I.get("reposition")&&setTimeout(function(){v.bind("resize."+O,B.position)},1),d.isFunction(t)&&t()},step:s})},B.resize=function(t){var e;L&&((t=t||{}).width&&(I.w=ot(t.width,"x")-S-E),t.innerWidth&&(I.w=ot(t.innerWidth,"x")),x.css({width:I.w}),t.height&&(I.h=ot(t.height,"y")-P-M),t.innerHeight&&(I.h=ot(t.innerHe
89ight,"y")),t.innerHeight||t.height||(e=x.scrollTop(),x.css({height:"auto"}),I.h=x.height()),x.css({height:I.h}),e&&x.scrollTop(e),B.position("none"===I.get("transition")?0:I.get("speed")))},B.prep=function(t){if(L){var e,o="none"===I.get("transition")?0:I.get("speed");x.remove(),(x=X(Q,"LoadedContent").append(t)).hide().appendTo(y.show()).css({width:(I.w=I.w||x.width(),I.w=I.mw&&I.mw<I.w?I.mw:I.w,I.w),overflow:I.get("scrolling")?"auto":"hidden"}).css({height:(I.h=I.h||x.height(),I.h=I.mh&&I.mh<I.h?I.mh:I.h,I.h)}).prependTo(g),y.hide(),d(K).css({float:"none"}),ht(I.get("className")),e=function(){var t,e,i=l.length;function n(){!1===d.support.opacity&&c[0].style.removeAttribute("filter")}L&&(e=function(){clearTimeout(D),b.hide(),st(A),I.get("onComplete")},T.html(I.get("title")).show(),x.show(),1<i?("string"==typeof I.get("current")&&r.html(I.get("current").replace("{current}",F+1).replace("{total}",i)).attr("aria-live","polite").show(),$showNext=I.get("loop")||F<i-1,C[$showNext?"show":"hide"]().html(I.get("next")).attr("aria-hidden",$showNext?"false":"true"),$showPrev=I.get("loop")||F,H[$showPrev?"show":"hide"]().html(I.get("previous")).attr("aria-hidden",$showPrev?"false":"true"),H.is(":focus")||C.is(":focus")||k.is(":focus")||($showPrev?H.focus():$showNext?C.focus():k.focus()),ut(),I.get("preloading")&&d.each([nt(-1),nt(1)],function(){var t=l[this],e=new it(t,d.data(t,N)),i=e.get("href");i&&at(e,i)&&(i=rt(e,i),a.createElement("img").src=i)})):W.hide(),I.get("iframe")?(t=I.get("createIframe"),I.get("scrolling")||(t.scrolling="no"),d(t).attr({src:I.get("href"),class:O+"Iframe"}).one("load",e).appendTo(x),G.one(U,function(){t.src="//about:blank"}),I.get("fastIframe")&&d(t).trigger("load")):e(),"fade"===I.get("transition")?c.fadeTo(o,1,n):n())},"fade"===I.get("transition")?c.fadeTo(o,0,function(){B.position(0,e)}):B.position(o,e)}},B.next=function(){!R&&l[1]&&(I.get("loop")||l[F+1])&&(F=nt(1),vt(l[F]))},B.prev=function(){!R&&l[1]&&(I.get("loop")||F)&&(F=nt(-1),vt(l[F]))},B.close=function(){L&&!$&&(L=!($=!0),st(e),I.get("onCleanup"),v.unbind("."+O),s.fadeTo(I.get("fadeOut")||0,0),c.stop().fadeTo(I.get("fadeOut")||0,0,function(){c.hide().attr("aria-hidden","true"),s.hide(),st(U),x.remove(),setTimeout(function(){$=!1,st(q),I.get("onClosed")},1)}))},B.remove=function(){c&&(c.stop(),d[N].close(),c.stop(!1,!0).remove(),s.remove(),$=!1,c=null,d("."+_).removeData(N).removeClass(_),d(a).unbind("click."+O).unbind("keydown."+O))},B.element=function(){return d(I.el)},B.settings=o)}(jQuery,document,window); 90function Swipe(i,c){function O(){}var l=function(t){setTimeout(t||O,0)},v={addEventListener:!!window.addEventListener,touch:"ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch,transitions:function(t){var e,n=["transitionProperty","WebkitTransition","MozTransition","OTransition","msTransition"];for(e in n)if(void 0!==t.style[n[e]])return!0;return!1}(document.createElement("swipe"))};if(i){var h,f,m,o,r,p=i.children[0],x=(c=c||{},parseInt(c.startSlide,10)||0),E=x,g=!1,w=c.speed||300,s=(c.continuous=void 0===c.continuous||c.continuous,{}),a={},b=c.auto||0,t=null,u={},d={},L={handleEvent:function(t){switch(t.type){case"touchstart":this.start(t);break;case"touchmove":this.move(t);break;case"touchend":l(this.end(t));break;case"webkitTransitionEnd":case"msTransitionEnd":case"oTransitionEnd":case"otransitionend":case"transitionend":l(this.transitionEnd(t));break;case"resize":l(D)}c.stopPropagation&&t.stopPropagation()},start:function(t){t=t.touches[0];u={x:t.pageX,y:t.pageY,time:+new Date},r=void 0,d={},p.addEventListener("touchmove",this,!1),p.addEventListener("touchend",this,!1)},move:function(t){var e;1<t.touches.length||t.scale&&1!==t.scale||(c.disableScroll&&t.preventDefault(),e=t.touches[0],d={x:e.pageX-u.x,y:e.pageY-u.y},r=void 0===r?!!(r||Math.abs(d.x)<Math.abs(d.y)):r)||(t.preventDefault(),q(),c.continuous?(I(A(x-1),d.x+f[A(x-1)],0),I(x,d.x+f[x],0),I(A(x+1),d.x+f[A(x+1)],0)):(d.x=d.x/(!x&&0<d.x||x==h.length-1&&d.x<0?Math.abs(d.x)/m+1:1),I(x-1,d.x+f[x-1],0),I(x,d.x+f[x],0),I(x+1,d.x+f[x+1],0)))},end:function(){var t=+new Date-u.time,t=Number(t)<250&&20<Math.abs(d.x)||Math.abs(d.x)>m/2,e=!x&&0<d.x||x==h.length-1&&d.x<0,n=(c.continuous&&(e=!1),d.x<0);r||(t&&!e?(x=n?(c.continuous?(C(A(x-1),-m,0),C(A(x+2),m,0)):C(x-1,-m,0),C(x,f[x]-m,w),C(A(x+1),f[A(x+1)]-m,w),A(x+1)):(c.continuous?(C(A(x+1),m,0),C(A(x-2),-m,0)):C(x+1,m,0),C(x,f[x]+m,w),C(A(x-1),f[A(x-1)]+m,w),A(x-1)),E=g?x%2:x,c.menu&&X(),c.callback&&c.callback(E,h[x])):c.continuous?(C(A(x-1),-m,w),C(x,0,w),C(A(x+1),m,w)):(C(x-1,-m,w),C(x,0,w),C(x+1,m,w))),p.removeEventListener("touchmove",L,!1),p.removeEventListener("touchend",L,!1)},transitionEnd:function(t){parseInt(t.target.getAttribute("data-index"),10)==x&&(b&&P(),c.transitionEnd)&&c.transitionEnd.call(t,E,h[x])}};if(D(),c.menu){var e=c.menu.querySelector(".slider-prev"),n=c.menu.querySelector(".slider-next"),T=c.menu.querySelector(".slider-menu");if(e&&(a.prev=function(t){S(t),q(),W()},s.prev=e,M(s.prev,"click",a.prev)),n&&(a.next=function(t){S(t),q(),z()},s.next=n,M(s.next,"click",a.next)),T){for(var y=0;y<o;y++){var k=document.createElement("b");k.innerHTML="â¢",k.setAttribute("data-index",y.toString()),y==E&&(k.className="active"),M(k,"click",function(e){return function(t){S(t),q(),N(parseInt(this.getAttribute?this.getAttribute("data-index"):e.attributes["data-index"].nodeValue))}}
90(k)),T.appendChild(k)}s.dots=T}}return Y(),b&&P(),v.addEventListener?(v.touch&&p.addEventListener("touchstart",L,!1),v.transitions&&(p.addEventListener("webkitTransitionEnd",L,!1),p.addEventListener("msTransitionEnd",L,!1),p.addEventListener("oTransitionEnd",L,!1),p.addEventListener("otransitionend",L,!1),p.addEventListener("transitionend",L,!1)),window.addEventListener("resize",L,!1)):window.onresize=function(){D()},{setup:function(){D()},slide:function(t,e){q(),N(t,e)},prev:function(){q(),W()},next:function(){q(),z()},stop:function(){q()},getPos:function(){return E},getNumSlides:function(){return o},kill:function(){q(),p.style.width="",p.style.left="";for(var t=h.length;t--;){var e=h[t];e.style.width="",e.style.left="",v.transitions&&I(t,0,0)}v.addEventListener?(p.removeEventListener("touchstart",L,!1),p.removeEventListener("mousedown",L,!1),p.removeEventListener("webkitTransitionEnd",L,!1),p.removeEventListener("msTransitionEnd",L,!1),p.removeEventListener("oTransitionEnd",L,!1),p.removeEventListener("otransitionend",L,!1),p.removeEventListener("transitionend",L,!1),window.removeEventListener("resize",L,!1)):window.onresize=null;for(var n=s.dots.childNodes;0<n.length;)s.dots.removeChild(n[0]);V(s.prev,"click",a.prev),V(s.next,"click",a.next)}}}function D(){h=p.children;for(var t=0;t<h.length;t++)8==h[t].nodeType&&(p.removeChild(h[t]),--t);o=h.length,h.length<2&&(c.continuous=!1),v.transitions&&c.continuous&&h.length<3&&(p.appendChild(h[0].cloneNode(!0)),p.appendChild(p.children[1].cloneNode(!0)),h=p.children,g=!0),f=new Array(h.length),m=i.getBoundingClientRect().width||i.offsetWidth,p.style.width=h.length*m+"px";for(var e=h.length;e--;){var n=h[e];n.style.width=m+"px",n.setAttribute("data-index",e.toString()),v.transitions&&(n.style.left=e*-m+"px",C(e,e<x?-m:x<e?m:0,0))}c.continuous&&v.transitions&&(C(A(x-1),-m,0),C(A(x+1),m,0)),v.transitions||(p.style.left=x*-m+"px"),i.style.visibility="visible"}function M(t,e,n){v.addEventListener?t.addEventListener(e,n,!1):window.attachEvent&&t.attachEvent("on"+e,n)}function S(t){t.returnValue=!1,t.preventDefault&&t.preventDefault()}function V(t,e,n){v.addEventListener?t.removeEventListener(e,n,!1):window.detachEvent&&t.detachEvent("on"+e,n)}function X(){for(var t=0;t<s.dots.children.length;t++){var e=s.dots.children[t];e.className=parseInt(e.getAttribute?e.getAttribute("data-index"):e.attributes["data-index"].nodeValue)==E?"active":""}}function W(){(c.continuous||x)&&N(x-1)}function z(){(c.continuous||x<h.length-1)&&N(x+1)}function Y(){i.classList.toggle("slider-start",0===x),i.classList.toggle("slider-end",x===h.length-1),c.menu&&(c.menu.classList.toggle("slider-start",0===x),c.menu.classList.toggle("slider-end",x===h.length-1))}function A(t){return(h.length+t%h.length)%h.length}function N(t,e){if(x!=t){if(v.transitions){for(var n,i=Math.abs(x-t)/(x-t),o=(c.continuous&&(n=i,(i=-f[A(t)]/m)!==n)&&(t=-i*h.length+t),Math.abs(x-t)-1);o--;)C(A((x<t?t:x)-o-1),m*i,0);t=A(t),C(x,m*i,e||w),C(t,0,e||w),c.continuous&&C(A(t-i),-m*i,0)}else t=A(t),r=x*-m,s=t*-m,(a=e||w)?(u=+new Date,d=setInterval(function(){var t=+new Date-u;a<t?(p.style.left=s+"px",b&&P(),c.transitionEnd&&c.transitionEnd.call(event,E,h[x]),clearInterval(d)):p.style.left=(s-r)*(Math.floor(t/a*100)/100)+r+"px"},4)):p.style.left=s+"px";var r,s,a,u,d;x=t,E=g?x%2:x,c.menu&&X(),Y(),l(c.callback&&c.callback(E,h[x]))}}function C(t,e,n){I(t,e,n),f[t]=e}function I(t,e,n){t=h[t],t=t&&t.style;t&&(t.webkitTransitionDuration=t.MozTransitionDuration=t.msTransitionDuration=t.OTransitionDuration=t.transitionDuration=n+"ms",t.webkitTransform="translate("+e+"px,0)translateZ(0)",t.msTransform=t.MozTransform=t.OTransform="translateX("+e+"px)")}function P(){null!==t&&clearTimeout(t),t=setTimeout(function(){t=null,z()},b)}function q(){b=0,clearTimeout(t)}}"undefined"!=typeof exports&&((exports="undefined"!=typeof module&&module.exports?module.exports=Swipe:exports).Swipe=Swipe); 91/** 92 * Sicherer Zugriff auf jQuery-Elemente 93 */ 94function safeElement(selector, callback) { 95 var el = jQuery(selector); 96 if (el.length && typeof callback === 'function') { 97 callback(el); 98 } 99} 100 101/* ============================================================================= 102 * to top link 103 * ========================================================================== */ 104jQuery(document).ready(function() { 105 safeElement('.progress-ring__circle', function(progressRing) { 106 var radius = parseFloat(progressRing.attr('r')); 107 if (isNaN(radius)) return; 108 109 var circumference = 2 * Math.PI * radius; 110 111 progressRing.css('stroke-dasharray', circumference); 112 progressRing.css('stroke-dashoffset', circumference); 113 114 function updateProgressRing() { 115 var scrollTop = jQuery(window).scrollTop(); 116 var scrollHeight = jQuery(document).height() - jQuery(window).height(); 117 var scrollFraction = scrollTop / scrollHeight; 118 var offset = circumference * (1 - scrollFraction); 119 progressRing.css('stroke-dashoffset', offset); 120 } 121 122 jQuery(window).on('scroll', updateProgressRing); 123 updateProgressRing(); 124 }); 125}); 126 127/* ============================================================================= 128 * Swiper absichern 129 * ========================================================================== */ 130jQuery(document).ready(function() { 131 if (typeof Swiper !== 'undefined') { 132 new Swiper('.swiper-container', { 133 loop: true, 134 pagination: { el: '.swiper-pagination' } 135 }); 136 } 137}); 138 139/* ============================================================================= 140 * mobnav trigger 141 * ========================================================================== */ 142 143jQuery(document).ready(function() 144{ 145 jQuery('.mmenu_trigger').click(function(e) 146 { 147 var elem = jQuery('#header'); 148 if( jQuery('body').hasClass('fixed-header') ) 149 { 150 elem = jQuery('#stickyheader'); 151 } 152 var delta = elem.position('body').top + elem.height(); 153 jQuery('#mmenu').css({ 154 'transition': 'transform 0.6s cubic-bezier(0.1, 0, 0.1, 1)', 155 'top': delta, 156 'transform': 'translateY(calc(-100% - ' + delta + 'px))', 157 'height': 'calc(100% - ' + delta + 'px)', 158 }); 159 160 }); 161}); 162 163/* ============================================================================= 164 * Viewport pixel 165 * ========================================================================== */ 166jQuery(window).on('load resize', function () 167{ 168 if (jQuery('#viewport-pixel').length < 1 || jQuery('#viewport-pixel') == undefined) 169 { 170 return; 171 } 172 173 var val = jQuery('#viewport-pixel').css('opacity'); 174 175 // remove old class 176 jQuery('body').removeClass('viewport_desktop viewport_tablet viewport_mobile'); 177 178 // tablet 179 var device = 'desktop'; 180 if (val > 0.75) 181 { 182 jQuery('body').addClass('viewport_desktop'); 183 } 184 else if (val <= 0.75 && val > 0.5) 185 { 186 jQuery('body').addClass('viewport_tablet'); 187 device = 'tablet'; 188 } 189 else if (val <= 0.5) 190 { 191 jQuery('body').addClass('viewport_mobile'); 192 device = 'mobile'; 193 } 194 195 // fire event 196 jQuery(window).trigger('Eclipse.viewport',{'device':device}); 197}); 198 199 200/* ============================================================================= 201 * Mobile view 202 * ========================================================================== */ 203jQuery(document).ready(function() 204{ 205 if (jQuery('body').hasClass('mobile')) 206 { 207 // set body class 208 jQuery('body').addClass('viewport_mobile');
209 // fire event 210 jQuery(document).trigger('Eclipse.viewport_mobile',{}); 211 } 212}); 213 214 215/* ============================================================================= 216 * IOS workaround for wrong position bug under IOS11,12 217 * ========================================================================== */ 218jQuery(document).ready(function() 219{ 220 if( jQuery('body').hasClass('ios') && window.location.hash.toString().length < 1) 221 { 222 jQuery("html, body").animate({scrollTop: 0}); 223 } 224}); 225 226/* ============================================================================= 227 * PrivacyManager listener 228 * ========================================================================== */ 229jQuery(document).on('Privacy.changed', function (event, params) 230{ 231 jQuery(document).trigger('Eclipse.user_privacy', params); 232}); 233 234jQuery(document).on('Privacy.cleared', function (event) 235{ 236 Eclipse_clearPrivacy(true); 237}); 238 239 240/* ============================================================================= 241 * Eclipse_setPrivacy(intLevel) 242 * @param array||string Levels of privacy 243 * ========================================================================== */ 244function Eclipse_setPrivacy(varLevels) 245{ 246 if (typeof (varLevels) == 'Array') 247 { 248 varLevels = varLevels.join(','); 249 } 250 // set local storage 251 localStorage.setItem('user_privacy_settings',varLevels); 252 // fire event 253 jQuery(document).trigger('Eclipse.user_privacy',{'level':varLevels}); 254} 255 256 257/* ============================================================================= 258 * Eclipse_clearPrivacy(blnReload) 259 * @param boolean Reload page true/false 260 * ========================================================================== */ 261function Eclipse_clearPrivacy(blnReload) 262{ 263 if(blnReload == undefined || blnReload == null) 264 { 265 blnReload = true; 266 } 267 268 // clear local storage 269 localStorage.removeItem('user_privacy_settings'); 270 // fire event 271 jQuery(document).trigger('Eclipse.clear_privacy_settings',{}); 272 // reload page 273 if(blnReload) 274 { 275 location.reload(); 276 } 277} 278 279/* ============================================================================= 280 * smartmenu 281 * ========================================================================== */ 282jQuery(document).ready(function(){ 283 284 jQuery('.smartmenu-trigger').click(function(e){ 285 e.preventDefault(); 286 jQuery('.smartmenu-content').addClass('open'); 287 jQuery('.smartmenu').addClass('open'); 288 jQuery('body').addClass('no_scroll'); 289 jQuery('body').addClass('smartmenu_open'); 290 }); 291 292 jQuery('.smartmenu-content .smartmenu-close').click(function(e){ 293 e.preventDefault(); 294 jQuery('.smartmenu-content').removeClass('open'); 295 jQuery('.smartmenu').removeClass('open'); 296 jQuery('body').removeClass('no_scroll'); 297 jQuery('body').removeClass('smartmenu_open'); 298 }); 299 300 jQuery('.smartmenu-content a:not(.submenu)').click(function(e) 301 { 302 if( jQuery(e.target).hasClass('pct_megamenu') ) 303 { 304 return false; 305 } 306 307 // follow link 308 if(jQuery(e.target).attr('target') != '_blank' && jQuery(e.target).attr('href') != "/") 309 { 310 jQuery('.smartmenu-content').removeClass('open'); 311 jQuery('body').removeClass('no_scroll'); 312 jQuery('body').removeClass('smartmenu_open'); 313 } 314 }); 315 316 // open trail content on page load 317 jQuery('.smartmenu-content').find('.trail').addClass('open'); 318 jQuery('.smartmenu-content').find('.trail > ul').show(); 319}); 320 321jQuery(document).ready(function(){ 322 323 jQuery('.smartmenu-content .subitems_trigger').on('click', function (e) 324 { 325 e.stopPropagation(); 326 var element = jQuery(this).parent('li'); 327 if (element.hasClass('open')) { 328 element.removeClass('open'); 329 element.find('li').removeClass('open'); 330 element.find('ul').slideUp(); 331 } 332 else { 333 element.addClass('open'); 334 element.children('ul').slideDown(); 335 element.siblings('li').children('ul').slideUp(); 336 element.siblings('li').removeClass('open'); 337 element.siblings('li').find('li').removeClass('open'); 338 element.siblings('li').find('ul').slideUp(); 339 } 340 }); 341 342 // internal redirect pages as container pages 343 jQuery('.smartmenu-content a.forward:not(.click-default), .smartmenu-content a.pct_megamenu:not(.click-default)').click(function (e) 344 { 345 e.preventDefault(); 346 e.stopPropagation();
347 jQuery(this).siblings('.subitems_trigger').trigger('click'); 348 }); 349}); 350 351/* ============================================================================= 352 * mmenu 353 * ========================================================================== */ 354jQuery(document).ready(function(){ 355 jQuery('.mmenu_trigger, .mmenu_overlay').click(function() 356 { 357 jQuery('body').toggleClass('mmenu_open'); 358 jQuery('body').toggleClass('no_scroll'); 359 jQuery('.burger').toggleClass('open'); 360 }); 361}); 362 363jQuery(document).keyup(function(e) { 364 if (e.keyCode == 27 && jQuery('body').hasClass('mmenu_open')) 365 { 366 jQuery('.burger').removeClass('open'); 367 jQuery('body').removeClass('mmenu_open'); 368 jQuery('body').removeClass('no_scroll'); 369 } 370}); 371 372/* ============================================================================= 373 * mainmenu menuheader (deactivate link) 374 * ========================================================================== */ 375jQuery(document).ready(function(){ 376 jQuery('.mainmenu .menuheader').removeAttr("href"); 377}); 378 379/* ============================================================================= 380 * mainmenu avoid_click 381 * ========================================================================== */ 382jQuery(document).ready(function () 383{ 384 jQuery('.avoid-click > a, .avoid_click > a').click(function (e) { e.preventDefault(); }); 385 jQuery('.avoid-click-all a, .avoid_click_all a').click(function (e) { e.preventDefault(); }); 386}); 387 388/* ============================================================================= 389 * mainmenu click opener 390 * ========================================================================== */ 391jQuery(document).ready(function() 392{ 393 if( jQuery('body').hasClass('mobile') || jQuery('body').hasClass('viewport_tablet') || jQuery('body').hasClass('viewport_mobile') ) 394 { 395 return; 396 } 397 398 var last = null; 399 jQuery('.mainmenu a.click_open').click(function (e) 400 { 401 e.preventDefault(); 402 e.stopPropagation(); 403 // close last open 404 //if (last != this ) 405 //{ 406 // if( jQuery(last).parents() ) 407 // { 408 // jQuery(last).removeClass('active'); 409 // jQuery(last).next('.megamenu-wrapper, ul').removeClass('active'); 410 // jQuery('.mod_pct_megamenu, .mod_pct_megamenu .item').removeClass('active'); 411 // } 412 //} 413 414 jQuery('.mainmenu a.pct_megamenu').removeClass('active'); 415 jQuery('.mod_pct_megamenu, .mod_pct_megamenu .item').removeClass('active'); 416 417 // toggle 418 if( last == this ) 419 { 420 jQuery(this).toggleClass('active'); 421 jQuery(this).parent('li.click_open').toggleClass('active'); 422 jQuery(this).next('.megamenu-wrapper, ul').toggleClass('active'); 423 return; 424 } 425 426 // close all click_open elements 427 jQuery('.mainmenu .click_open, .mainmenu .click_open ul').removeClass('active'); 428 // open parent click_open elements 429 var parents = jQuery(this).parents('li.click_open'); 430 parents.addClass('active'); 431 parents.find('> a, > ul').addClass('active'); 432 433 //jQuery(this).toggleClass('active'); 434 435 last = this; 436 }); 437}); 438 439/* ============================================================================= 440 * css3 animation (css/animate.css) 441 * ========================================================================== */ 442jQuery(document).ready(function () 443{ 444 var root = jQuery("body"); 445 var animationClasses = ["fadeIn", "zoomIn", "fadeInDown","fadeInDownBig","fadeInLeft","fadeInLeftBig","fadeInRight","fadeInRightBig","fadeInUp","fadeInUpBig","rotateIn","zoomIn","slideInDown","slideInLeft","slideInRight","slideInUp","bounceIn","bounceInDown","bounceInLeft","bounceInRight","bounceInUp","imageZoomOut","imageZoomIn"]; 446 jQuery.each(animationClasses, function(key, value) 447 { 448 root.find("." + value).each(function() 449 { 450 jQuery(this).removeClass(value).attr("data-animate", value); 451 }); 452 }); 453 454 function initObserver( options ) 455 { 456 // @var IntersectionObserver 457 const objObserver = new IntersectionObserver(function (entries, observer) 458 { 459 entries.forEach(function(entry) 460 { 461 if (entry.isIntersecting) 462 { 463 var element = jQuery(entry.target); 464 var animation = element.data("animate"); 465 element.removeClass('animate').addClass('animated ' + animation).one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function () 466 { 467 element.removeClass(animation+' animated'); 468 }); 469 // stop observing 470 objObserver.unobserve( entry.target ); 471 } 472 }); 473 },options); 474 475 jQuery('.animate').not('.nowaypoint').each(function(i,elem) 476 { 477 var element = jQuery(elem); 478 // remove animations for ios or android 479 if(jQuery('body').hasClass('ios') || jQuery('body').hasClass('android')) 480 {
481 element.removeClass('animate'); 482 return true; 483 } 484 else 485 { 486 objObserver.observe( element[0] ); 487 } 488 }); 489 } 490 491 // check if a revolutionslider exists in page 492 if (jQuery(document).revolution != undefined) 493 { 494 jQuery(document).on('RevolutionSlider.loaded', function (e, params) 495 { 496 initObserver( { root: null, rootMargin: '0px', threshold: 0.25 } ); 497 }); 498 } 499 else 500 { 501 initObserver( { root: null, rootMargin: '0px', threshold: 0.25 } ); 502 } 503}); 504 505/* ============================================================================= 506 * #slider min-height 507 * ========================================================================== */ 508jQuery(document).ready(setMinHeightToSliderSection); 509jQuery(window).resize(setMinHeightToSliderSection); 510function setMinHeightToSliderSection() 511{ 512 if( jQuery('#fix-wrapper').css('position') == 'absolute' ) 513 { 514 jQuery('#slider.empty').css('min-height', jQuery('#fix-wrapper').height()); 515 } 516 else 517 { 518 jQuery('#slider.empty').css('min-height', ''); 519 } 520} 521 522/* ============================================================================= 523 * Fixed-header body class 524 * ========================================================================== */ 525 526function headerFixed() { 527 var topHeight = jQuery("#top-wrapper").outerHeight(); 528 if(topHeight == jQuery(window).innerHeight()) 529 { 530 topHeight = jQuery(window).innerHeight() / 3; 531 } 532 533 if (jQuery(this).scrollTop() > topHeight) { 534 jQuery("body").addClass("fixed-header"); 535 536 } else { 537 jQuery("body").removeClass("fixed-header"); 538 } 539}; 540 541jQuery(document).ready(function(){ 542 headerFixed(); 543}); 544 545jQuery(window).scroll(function() { 546 headerFixed(); 547}); 548 549/* ============================================================================= 550 * doubleTapToGo scripts/doubletaptogo/ 551 * ========================================================================== */ 552jQuery(document).ready(function(){ 553 if(jQuery('body').hasClass('android') || jQuery('body').hasClass('win') || jQuery('body').hasClass('ios') || jQuery('body').hasClass('viewport_tablet')){ 554 jQuery('nav.mainmenu li.submenu:not(.level_2 .megamenu)').doubleTapToGo(); 555 jQuery('.smartmenu li.submenu').doubleTapToGo(); 556 jQuery('.top_metanavi li.submenu').doubleTapToGo(); 557 jQuery('.header_metanavi li.submenu').doubleTapToGo(); 558 jQuery('.mod_langswitcher li').doubleTapToGo(); 559 560 jQuery.each(jQuery('.mod_langswitcher li a'),function(i,elem) 561 { 562 jQuery(elem).click(function(e) { e.preventDefault(); window.location.href = jQuery(this).attr('href'); }); 563 }); 564 } 565}); 566 567/* ============================================================================= 568 * Add no-scroll class to body when lightbox opens 569 * ========================================================================== */ 570jQuery(document).bind('cbox_open',function() { 571 jQuery('body').addClass('no_scroll'); 572}); 573 574jQuery(document).bind('cbox_closed',function() { 575 jQuery('body').removeClass('no_scroll'); 576}); 577 578/* ============================================================================= 579 * search top trigger 580 * ========================================================================== */ 581jQuery(document).ready(function(){ 582 jQuery(".ce_search_label").click(function(){ 583 jQuery(".body_bottom .mod_search").addClass("show-search"); 584 jQuery('body').addClass('search_overlay'); 585 }); 586 jQuery(".body_bottom .close-window").click(function(){ 587 jQuery(".body_bottom .mod_search").removeClass("show-search"); 588 jQuery('body').removeClass('search_overlay'); 589 }); 590}); 591 592/* ============================================================================= 593 * scroll to anchors 594 * ========================================================================== */ 595jQuery(document).ready(function() 596{ 597 jQuery('a.scroll-to-anchor, #main a[href*=\\#], #left a[href*=\\#], #right a[href*=\\#], #slider a[href*=\\#], #footer a[href*=\\#], #bottom a[href*=\\#], .mod_quickmenu a[href*=\\#]').click(function(e) 598 { 599 // return with default behavior 600 if( jQuery(this).hasClass('external-anchor') || jQuery(this).hasClass('not-anchor') ) 601 { 602 return true; 603 } 604 605 var target = jQuery('#'+jQuery(this).attr("href").split('#')[1]); 606 if(target == undefined || target == null) 607 { 608 return true; 609 } 610 else if(target.length < 1) 611 { 612 return true; 613 } 614 615 e.preventDefault(); 616 617 var stickheaderHeight = 0; 618 if(jQuery('#stickyheader')) 619 { 620 stickheaderHeight = jQuery('#stickyheader').height(); 621 } 622 623 jQuery("html, body").animate({ scrollTop: target.offset().top - stickheaderHeight }, 500, function () 624 { 625 if (jQuery('body').hasClass('mmenu_open')) 626 { 627 jQuery('body').removeClass('mmenu_open'); 628 jQuery('body').removeClass('no_scroll'); 629 jQuery('.mmenu_trigger .burger').removeClass('open'); 630 jQuery('.mmenu_overlay').fadeOut('fast'); 631 } 632 }); 633 return false;
634 }); 635}); 636 637 638/* ============================================================================= 639 * force page to start on top "to_top" 640 * ========================================================================== */ 641jQuery(document).ready(function () 642{ 643 if (jQuery('body').hasClass('to_top') ) 644 { 645 document.body.scrollTop = 0; 646 document.documentElement.scrollTop = 0; 647 jQuery('html,body').animate({ scrollTop: 0 }); 648 // force browsers like chrome to reset last remembered scroll position 649 window.onload = function () 650 { 651 setTimeout(function(){ scrollTo(0,-1); },0); 652 } 653 } 654}); 655 656/* ============================================================================= 657 * ce_parallax scripts/parallax/ 658 * ========================================================================== */ 659jQuery(window).on('Eclipse.viewport',function(e,params) 660{ 661 if( params.device == 'desktop' && typeof jQuery(window).stellar == 'function' ) 662 { 663 jQuery(window).stellar({ horizontalScrolling: false, responsive: true }); 664 } 665}); 666 667/* ============================================================================= 668 * Parallax elements 669 * ========================================================================== */ 670jQuery(document).ready(function () 671{ 672 var elements = jQuery('[class*=parallax-speed]'); 673 if (elements.length < 1) 674 { 675 return; 676 } 677 678 elements.addClass('has-parallax'); 679 680 // create a parallax box inside each target element 681 //jQuery.each(elements, function (i,elem) 682 //{ 683 // jQuery(elem).wrapInner('<div class="parallax-inner"></div>'); 684 //}); 685 686 const SPEED = 3; 687 const EASING = 50; 688 689 /** 690 * Applay the parallax effect on an element 691 * @param object 692 * @param integer 693 */ 694 var parallax = function(objElement, intSpeed) 695 { 696 if( intSpeed == undefined || isNaN(intSpeed) ) 697 { 698 intSpeed = SPEED; 699 } 700 701 var pos = objElement.getBoundingClientRect(); 702 var posY = pos.y - (pos.height); 703 704 // fallback when getBoudingClientRect is not available 705 //var posY = jQuery(objElement).offset().top - jQuery(window).scrollTop() - jQuery(objElement).height(); 706 707 var translateY = (posY * (intSpeed / EASING)); 708 jQuery(objElement).css({'transform':'translateY('+translateY+'px)'}); 709 } 710 //-- 711 712 var SPEEDS = []; // store easings 713 714 jQuery(window).scroll(function () 715 { 716 jQuery.each(elements, function (i,elem) 717 { 718 parallax(elem,SPEEDS[i]); 719 }); 720 }); 721 722 jQuery(document).ready(function () 723 { 724 jQuery.each(elements, function (i,elem) 725 { 726 for (var z = 1; z <= 10; z++) 727 { 728 if (jQuery(elem).hasClass('parallax-speed-' + z)) 729 { 730 SPEEDS[i] = z; 731 return true; 732 } 733 } 734 parallax(elem,SPEEDS[i]); 735 }); 736 }); 737}); 738 739/* ============================================================================= 740 * Accessibility helper for legacy accordions 741 * ========================================================================== */ 742jQuery(document).ready(function() 743{ 744 jQuery.each(jQuery('.ce_accordionStart, .ce_accordionSingle'), function(i,elem) 745 { 746 jQuery(elem).find('.toggler').removeAttr('role'); 747 jQuery(elem).find('.toggler').removeAttr('aria-selected'); 748 jQuery(elem).find('.toggler').removeAttr('tabindex'); 749 jQuery(elem).find('.toggler').attr('aria-disabled',"false"); 750 jQuery(elem).find('.accordion').attr('role','region'); 751 jQuery(elem).find('.accordion').removeAttr('aria-hidden'); 752 }); 753}); 754 755 756/* ============================================================================= 757 * hyperlink animation 758 * ========================================================================== */ 759jQuery(document).ready(function() { 760 jQuery('.ce_hyperlink.animate-style4 .hyperlink_txt,.ce_hyperlink.animate-style5 .hyperlink_txt').each(function() { 761 var $this = jQuery(this); 762 var $span = $this.find('span'); 763 764 if ($span.length === 0) { 765 // Wenn kein span vorhanden ist, erstelle eins und füge den gesamten Text ein 766 var text = $this.html(); 767 $this.empty().append('<span>' + text + '</span>'); 768 $span = $this.find('span'); 769 } 770 771 var text = $span.text(); 772 var newContent = ''; 773 774 // Erstelle neuen Inhalt mit <span> für jedes Zeichen, einschlieÃlich Leerzeichen 775 jQuery.each(text.split(''), function(index, char) { 776 var charSpan = jQuery('<span>').text(char === ' ' ? '\u00A0' : char); // Use non-breaking space for spaces 777 charSpan.css('animation-delay', (index * 0.01) + 's'); 778 newContent += charSpan.prop('outerHTML'); 779 }); 780 781 // Setze neuen Inhalt 782 $span.html(newContent); 783 }); 784}); 785 786 787/* ============================================================================= 788 * parallax footer 789 * ========================================================================== */ 790 791jQuery(document).ready(function() { 792 // Prüfe, ob die Klasse 'parallax-footer' im <body> vorhanden ist 793 if (jQuery('body').hasClass('parallax-footer')) { 794 jQuery(window).on('scroll', function() { 795 var scrollTop = jQuery(window).scrollTop(); // Aktuelle Scroll-Position 796 var documentHeight = jQuery(document).height(); // Gesamthöhe des Dokuments 797 var windowHeight = jQuery(window).height(); // Höhe des Fensters 798 799 // Berechne das Scroll-Verhältnis (0 = Anfang, 1 = Ende) 800 var scrollPercent = (scrollTop + windowHeight) / documentHeight; 801 802 // Setze den Start- und Endwert für translateY 803 var startY = -500; // Negative Startposition (z.B. -500px) 804 var endY = 0; // Endposition bei 0px 805 806 // Berechne die aktuelle translateY Position 807 var translateY = startY + (endY - startY) * scrollPercent; 808
809 // Wende die Transformation auf den Footer-Inhalt an 810 jQuery('#footer .inside').css({ 811 'transform': 'translateY(' + translateY + 'px)', 812 }); 813 }); 814 } 815}); 816 817/* ============================================================================= 818 * offcanvas trigger 819 * ========================================================================== */ 820 821jQuery(document).ready(function(){ 822 jQuery('.offcanvas-trigger').click(function(){ 823 jQuery('#offcanvas-top').toggleClass('offcanvas-top-open'); 824 jQuery('.offcanvas-trigger').toggleClass('offcanvas-top-open'); 825 }); 826}); 827 828 829jQuery(document).ready(function() 830{ 831 // add hide_optin body class when on imprint or privacy page 832 833 //--- opt out remove token 834 jQuery('#privacy_optout_link').click(function(e) 835 { 836 e.preventDefault(); 837 PrivacyManager.optout(document.location.origin+document.location.pathname); 838 }); 839 840 if(window.location.search.indexOf('clear_privacy_settings') >= 0) 841 { 842 PrivacyManager.optout(document.location.origin+document.location.pathname); 843 } 844 //-- 845 846 var privacy = localStorage.getItem('user_privacy_settings'); 847 var expires = Number( localStorage.getItem('user_privacy_settings_expires') ); 848 // check lease time 849 var now = new Date().setDate(new Date().getDate()); 850 if( now >= expires ) 851 { 852 expires = 0; 853 } 854 855 if(privacy == undefined || privacy == '' || expires <= 0 ) 856 { 857 jQuery('#privacy_optin_611').addClass('open'); 858 // set privacy level to 0 859 privacy = '0'; 860 } 861 862 // set a body class 863 jQuery('body').addClass('privacy_setting_'+privacy.toString().split(',').join('-')); 864 865 // hide the info 866 jQuery('#ajax_info_611').hide(); 867 868 var form = jQuery('#user_privacy_settings_611'); 869 var isValid = false; 870 871 // set focus to autofocus input 872 form.find('input[autofocus]').focus(function(e) 873 { 874 console.log(this); 875 jQuery(this).addClass('focus'); 876 }); 877 878 // remove readonly from submit when user changes its selection 879 form.find('input[type="checkbox"]').change(function(e) 880 { 881 isValid = false; 882 // required field changed 883 if( form.find('input[required].mandatory').is(':checked') === true ) 884 { 885 isValid = true; 886 } 887 888 form.find('input[name="save_settings"]').addClass('readonly'); 889 form.find('input[name="save_settings"]').prop('disabled', true); 890 891 if( isValid === true ) 892 { 893 form.find('input[name="save_settings"]').removeClass('readonly'); 894 form.find('input[name="save_settings"]').prop('disabled', false); 895 } 896 }); 897 898 // allow all 899 form.find('input[name="save_all_settings"]').click(function(e) 900 { 901 e.preventDefault(); 902 // check all checkboxes for user feedback 903 form.find('input[type="checkbox"]').prop('checked',true); 904 // all good 905 isValid = true; 906 // fire save 907 form.find('input[name="save_settings"]').trigger('click'); 908 }); 909 910 // tech only all 911 form.find('input[name="save_tech_settings"]').click(function(e) 912 { 913 e.preventDefault(); 914 // check required checkbox for user feedback 915 form.find('#cookiebar_privacy_1').prop('checked',true); 916 // all good 917 isValid = true; 918 // fire save 919 form.find('input[name="save_settings"]').trigger('click'); 920 }); 921 922 923 form.find('input[name="save_settings"]').click(function(e) 924 { 925 e.preventDefault(); 926 927 // check if a required field is still not set 928 if( isValid === false ) 929 { 930 return false; 931 } 932 933 // show ajax info 934 jQuery('#ajax_info_611').fadeIn(50); 935 936 // get the user selection 937 var privacy = PrivacyManager.getUserSelectionFromFormData( form.serializeArray() ).join(','); 938 939 // set local storage 940 localStorage.setItem('user_privacy_settings',privacy); 941 // set lease time 942 var expires = new Date().setDate(new Date().getDate() + 30); 943 localStorage.setItem('user_privacy_settings_expires',expires); 944 // set a body class 945 jQuery('body').addClass('privacy_setting_'+privacy.toString().split(',').join('-')); 946 // remove negative body class 947 jQuery('body').removeClass('privacy_setting_0'); 948 setTimeout(function() 949 { 950 // fire JS event 951 jQuery(document).trigger('Privacy.changed',{'level':privacy}); 952 953 // fire form as usal to catch it via php 954 //form.submit(); 955 }, 500); 956 957 }); 958 959 // help info 960 jQuery(document).ready(function () { 961 let privacyHelpLink = jQuery('#privacy_optin_611 .privacy_help_link'); 962 let privacyPopup = jQuery('#privacy_optin_611 .privacy_popup'); 963 964 // Klick-Event für das Ãffnen/SchlieÃen der Hilfe-Popup 965 privacyHelpLink.click(function () { 966 privacyPopup.toggleClass('view_help'); 967 }); 968 969 // Fokus + Enter oder Leertaste toggelt ebenfalls die Hilfe-Popup 970 privacyHelpLink.on('keydown', function (event) { 971 if ((event.key === "Enter" || event.key === " ") && jQuery(this).is(':focus')) { 972 privacyPopup.toggleClass('view_help'); 973 event.preventDefault(); // Verhindert Standardverhalten (z. B. Scrollen bei Leertaste) 974 } 975 }); 976}); 977 978 979 // help - scrollToTop 980 jQuery('#privacy_optin_611 .privacy_help_link').click(function() 981 { 982 jQuery("html, body").animate({ scrollTop: 0 }); 983 return false;
984 }); 985 986}); 987 988// listen to Privacy event 989jQuery(document).on('Privacy.changed',function(event,params) 990{ 991 if( PrivacyManager.hasAccess(params.level) ) 992 { 993 jQuery('#privacy_optin_611').removeClass('open'); 994 // send ajax for log file 995 jQuery.ajax( 996 { 997 url:location.href, 998 data:{'user_privacy_settings':params.level,'tstamp':Math.round(new Date().getTime()/1000)} 999 }); 1000 } 1001}); 1002 1003// Opt-out listener 1004jQuery(document).ready(function() 1005{ 1006 jQuery('.privacy_optout_click, .privacy_optout_link').click(function() 1007 { 1008 PrivacyManager.optout(); 1009 }); 1010}); 1011 1012// accessbility focus 1013jQuery(document).ready(function() { 1014 jQuery("#privacy_checkmark_privacy_1").focus(); 1015}); 1016 1017// accessbility tab-navigation 1018jQuery(document).ready(function () { 1019 jQuery(document).keydown(function (event) { 1020 if (event.key === "Enter" || event.key === " ") { // Enter oder Leertaste 1021 jQuery(".privacy_checkmark:focus").each(function () { 1022 let checkbox = jQuery(this).siblings("input[type='checkbox']"); 1023 checkbox.prop("checked", !checkbox.prop("checked")); 1024 event.preventDefault(); // Verhindert unerwünschtes Verhalten (z. B. Scrollen bei Space) 1025 }); 1026 } 1027 }); 1028}); 1029 1030 1031 1032 1033 1034/** 1035 * Set focus to search input 1036 */ 1037jQuery(document).ready(function() 1038{ 1039 jQuery('.ce_search_label').click(function() 1040 { 1041 // wait for element to be in sight app. 800ms tweening delay 1042 setTimeout(function() 1043 { 1044 jQuery('#search_160 input[name="keywords"]').focus(); 1045 1046 }, 800); 1047 1048 /* add class on click */ 1049 jQuery(".body_bottom .mod_search").addClass("show-search"); 1050 1051 /* fadeIn overlay */ 1052 jQuery(".body_bottom .mod_search .search-overlay").fadeIn(); 1053 }); 1054 1055 /* close button*/ 1056 jQuery(".body_bottom .close-window").click(function(){ 1057 jQuery(".body_bottom .mod_search").removeClass("show-search"); 1058 jQuery('body').removeClass('search_overlay'); 1059 jQuery(".search-overlay").fadeOut(300); 1060 }); 1061 1062 jQuery(".search-overlay").click(function(){ 1063 jQuery(".body_bottom .mod_search").removeClass("show-search"); 1064 jQuery('body').removeClass('search_overlay'); 1065 jQuery(".search-overlay").fadeOut(300); 1066 }); 1067}); 1068 1069jQuery(document).keyup(function(e) { 1070 if (e.keyCode === 27) jQuery(".mod_search").removeClass("show-search"); 1071 if (e.keyCode === 27) jQuery("body").removeClass("search_overlay"); 1072 if (e.keyCode === 27) jQuery(".search-overlay").fadeOut(300); 1073}); 1074 1075 1076 1077 1078 1079function oversize_126402() { 1080 1081 var contentHeight_126402 = jQuery('.ce_bgimage_126402 .ce_bgimage-inside').height(); 1082 var availableHeight = jQuery(window).height() - 100; 1083 1084 if (contentHeight_126402 > availableHeight) 1085 { 1086 jQuery('.ce_bgimage_126402').addClass('oversize'); 1087 1088 } else { 1089 jQuery('.ce_bgimage_126402').removeClass('oversize'); 1090 } 1091}; 1092 1093jQuery(document).ready(function(){ 1094 setTimeout(function(){ 1095 oversize_126402(); 1096 }, 500); 1097}); 1098 1099jQuery(window).on("resize", function(){ 1100 oversize_126402(); 1101}); 1102 1103 1104 1105jQuery(document).ready(function() { 1106 jQuery('a[data-lightbox]').map(function() 1107 { 1108 jQuery(this).colorbox( 1109 { 1110 // Put custom options here 1111 loop: false, 1112 rel: jQuery(this).attr('data-lightbox'), 1113 maxWidth: '95%', 1114 maxHeight: '95%' 1115 }); 1116 }); 1117 1118 jQuery(document).bind('cbox_complete', function(e) 1119 { 1120 if( jQuery.colorbox == undefined ) 1121 { 1122 return; 1123 } 1124 var text = jQuery.colorbox.element().next('.caption').text(); 1125 if( text ) 1126 { 1127 var caption = jQuery('#cboxBottomLeft').append('<div id="cboxCaption">'+text+'</div>'); 1128 jQuery('#colorbox').height( jQuery('#colorbox').height() + caption.height() ); 1129 } 1130 }); 1131 }); 1132 1133 1134// iframe lightbox 1135jQuery(document).ready(function() 1136{ 1137 jQuery('a[data-lightbox-iframe]').map(function() 1138 { 1139 jQuery(this).colorbox( 1140 { 1141 iframe:true, 1142 innerWidth:"80%", 1143 innerHeight:"56%", 1144 maxWidth:"95%", 1145 maxHeight:'95%', 1146 }); 1147 }); 1148}); 1149 1150// lightbox 50% 50% 1151jQuery(document).ready(function() 1152{ 1153 jQuery('.lightbox50-50 a, a.lightbox50-50').colorbox( 1154 { 1155 // Put custom options here 1156 loop: false, 1157 rel: jQuery(this).attr('data-lightbox'), 1158 width: '50%', 1159 height: '50%' 1160 }); 1161}); 1162// lightbox 60% 40% 1163jQuery(document).ready(function() 1164{ 1165 jQuery('.lightbox60-40 a, a.lightbox60-40').colorbox( 1166 { 1167 // Put custom options here 1168 loop: false, 1169 rel: jQuery(this).attr('data-lightbox'), 1170 width: '60%', 1171 height: '40%' 1172 }); 1173}); 1174// lightbox 960px 575px 1175jQuery(document).ready(function() 1176{ 1177 jQuery('.lightbox960 a, a.lightbox960').colorbox( 1178 { 1179 // Put custom options here 1180 loop: false, 1181 rel: jQuery(this).attr('data-lightbox'), 1182 width: '960px', 1183 height: '575px' 1184 }); 1185}); 1186 1187 1188 1189/** 1190 * PrivacyManager 1191 */ 1192var PrivacyManager = 1193{ 1194 /** 1195 * The privacy localStorage key 1196 * @var string 1197 */ 1198 privacy_session : 'user_privacy_settings', 1199 1200 /** 1201 * Get the selected privacy checkbox values from a formular array 1202 * @param array 1203 * @return array 1204 */ 1205 getUserSelectionFromFormData: function (arrSubmitted) 1206 { 1207 if (arrSubmitted == null || arrSubmitted == undefined) 1208 { 1209 return []; 1210 } 1211 1212 var arrReturn = []; 1213 for (var k in arrSubmitted) 1214 { 1215 var v = arrSubmitted[k]; 1216 if (v['name'] == 'privacy') 1217 { 1218 arrReturn.push(v['value']); 1219 } 1220 } 1221 return arrReturn; 1222 }, 1223 1224 1225 /** 1226 * Access control 1227 * @param string 1228 */ 1229 hasAccess : function (varSelection) 1230 { 1231 var token = localStorage.getItem( this.privacy_session ); 1232 if( token == undefined ) 1233 { 1234 return false;
1235 } 1236 1237 // convert to string 1238 if( typeof(varSelection) == 'number' ) 1239 { 1240 varSelection = varSelection.toString(); 1241 } 1242 // convert to array 1243 if( typeof(varSelection) == 'string' ) 1244 { 1245 varSelection = varSelection.split(','); 1246 } 1247 1248 for(i in varSelection) 1249 { 1250 var value = varSelection[i].toString().replace(' ',''); 1251 if( token.indexOf( value ) >= 0 ) 1252 { 1253 return true; 1254 } 1255 } 1256 return false; 1257 }, 1258 1259 1260 /** 1261 * Clear privacy settings and redirect page 1262 * @param boolean 1263 */ 1264 optout: function (strRedirect) 1265 { 1266 // clear local storage 1267 localStorage.removeItem(this.privacy_session); 1268 localStorage.removeItem(this.privacy_session+'_expires'); 1269 // fire event 1270 jQuery(document).trigger('Privacy.clear_privacy_settings',{}); 1271 // log 1272 console.log('Privacy settings cleared'); 1273 // redirect 1274 if (strRedirect != undefined) 1275 { 1276 location.href = strRedirect; 1277 } 1278 else 1279 { 1280 location.reload(); 1281 } 1282 }, 1283 1284 1285 /** 1286 * Clear all cookies and localstorage 1287 */ 1288 clearAll: function() 1289 { 1290 var host = window.location.hostname; 1291 var domain = host.substring( host.indexOf('.') , host.length); 1292 // clear all cookies 1293 document.cookie.split(";").forEach(function(c) 1294 { 1295 document.cookie = c.replace(/^ +/, "").replace(/=.*/, "=;expires=" + new Date().toUTCString() + ";path=/"+ ";domain="+host); 1296 document.cookie = c.replace(/^ +/, "").replace(/=.*/, "=;expires=" + new Date().toUTCString() + ";path=/"+ ";domain="+domain); 1297 }); 1298 // clear whole localstorage 1299 window.localStorage.clear(); 1300 for (var i = 0; i <= localStorage.length; i++) 1301 { 1302 localStorage.removeItem(localStorage.key(i)); 1303 } 1304 // log 1305 console.log('Cookies and localstorage cleared'); 1306 } 1307}; 1308 1309 1310 1311/** 1312 * Univerasl optin protection 1313 * @param string Type of element to be protected e.g. img or iframe etc. 1314 */ 1315PrivacyManager.optin = function(strElementType) 1316{ 1317 if(strElementType == undefined || strElementType == '') 1318 { 1319 return; 1320 } 1321 // user settings not applied yet 1322 if(localStorage.getItem(this.privacy_session) == undefined || localStorage.getItem(this.privacy_session) == '' || localStorage.getItem(this.privacy_session) <= 0) 1323 { 1324 return 1325 } 1326 1327 // find all scripts having a data-src attribute 1328 var targets = jQuery(strElementType+'[data-src]'); 1329 1330 if(targets.length > 0) 1331 { 1332 jQuery.each(targets,function(i,e) 1333 { 1334 var privacy = jQuery(e).data('privacy'); 1335 if(privacy == undefined) 1336 { 1337 privacy = 0; 1338 } 1339 1340 var attr = 'src'; 1341 if(strElementType == 'link') 1342 { 1343 attr = 'href'; 1344 } 1345 else if(strElementType == 'object') 1346 { 1347 attr = 'data'; 1348 } 1349 1350 if(localStorage.getItem('user_privacy_settings').indexOf(privacy) >= 0) 1351 { 1352 jQuery(e).attr(attr,jQuery(e).data('src') ); 1353 } 1354 }); 1355 } 1356} 1357 1358jQuery(document).on('Privacy.changed', function() 1359{ 1360 PrivacyManager.optin('script'); 1361 PrivacyManager.optin('link'); 1362 PrivacyManager.optin('iframe'); 1363 PrivacyManager.optin('object'); 1364 PrivacyManager.optin('img'); 1365}); 1366 1367jQuery(document).ready(function() 1368{ 1369 PrivacyManager.optin('script'); 1370 PrivacyManager.optin('link'); 1371 PrivacyManager.optin('iframe'); 1372 PrivacyManager.optin('object'); 1373 PrivacyManager.optin('img'); 1374}); 1375 1376 1377 1378jQuery(document).ready(function() 1379{ 1380 //var e = document.querySelectorAll('.content-slider, .slider-control'); 1381 jQuery('.content-slider').each(function(i,elem) 1382 { 1383 var config = jQuery(elem).attr('data-config'); 1384 if( config ) 1385 { 1386 var menu = jQuery(elem).next('.slider-control'); 1387 c = config.split(','); 1388 var options = 1389 { 1390 'auto': parseInt(c[0]), 1391 'speed': parseInt(c[1]), 1392 'startSlide': parseInt(c[2]), 1393 'continuous': parseInt(c[3]) 1394 } 1395 // menu 1396 if ( menu ) 1397 { 1398 // replace # with slahs 1399 menu.find('a').attr('href','/'); 1400 options.menu = menu[0]; 1401 } 1402 new Swipe(elem, options); 1403 } 1404 }); 1405}); 1406 1407 1408 1409jQuery(document).ready(function($) { 1410 1411 const $nav = $('nav.mobile_horizontal'); 1412 1413 // Alle Untermenüs beim Start schlieÃen 1414 $nav.find('li.submenu').removeClass('open'); 1415 1416 1417 // Toggle-Buttons für alle Untermenüs erzeugen 1418 $nav.find('li.submenu').each(function() { 1419 1420 const $li = $(this); 1421 1422 // Vorhandenen menu-head suchen 1423 let $menuHead = $li.children('.menu-head').first(); 1424 1425 1426 // Falls noch kein menu-head vorhanden ist, erzeugen 1427 if ($menuHead.length === 0) { 1428 1429 const $link = $li.children('a').first(); 1430 1431 $menuHead = $('<div class="menu-head"></div>'); 1432 1433 if ($link.length) { 1434 $link.before($menuHead); 1435 $menuHead.append($link); 1436 } 1437 } 1438 1439 1440 // Toggle-Button nur hinzufügen, 1441 // wenn noch keiner vorhanden ist 1442 if ($menuHead.children('.toggle-btn').length === 0) { 1443 1444 $menuHead.append( 1445 '<button type="button" class="toggle-btn" aria-expanded="false" aria-label="Untermenü ein-/ausklappen">â</button>' 1446 ); 1447 } 1448 1449 }); 1450 1451 1452 // Aktive Navigationselemente öffnen 1453 $nav.find('li.active').each(function() { 1454 1455 const $activeItem = $(this); 1456 1457 $activeItem.parents('li.submenu').each(function() { 1458 1459 const $parent = $(this); 1460 1461 $parent.addClass('open'); 1462 1463 $parent 1464 .children('.menu-head') 1465 .children('.toggle-btn') 1466 .text('â') 1467 .attr('aria-expanded', 'true'); 1468 1469 }); 1470 1471 }); 1472 1473 1474 // Event vorsichtshalber vorher entfernen, 1475 // damit es nicht mehrfach registriert wird 1476 $nav.off('click.mobileSubmenu', '.toggle-btn'); 1477 1478 1479 // Toggle-Logik 1480 $nav.on('click.mobileSubmenu', '.toggle-btn', function(e) { 1481 1482 e.preventDefault(); 1483 e.stopPropagation(); 1484 1485 const $btn = $(this); 1486 const $li = $btn.closest('li.submenu'); 1487 const isOpen = $li.hasClass('open'); 1488 1489 1490 // Alle Untermenüs schlieÃen 1491 $nav.find('li.submenu').removeClass('open'); 1492 1493 $nav.find('.toggle-btn') 1494 .text('â') 1495 .attr('aria-expanded', 'false'); 1496 1497 1498 // Gewähltes Untermenü öffnen, 1499 // sofern es vorher geschlossen war 1500 if (!isOpen) { 1501 1502 $li.addClass('open'); 1503 1504 $btn 1505 .text('â') 1506 .attr('aria-expanded', 'true'); 1507 1508 } 1509 1510 }); 1511 1512}); 1513 1514
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.