1 2 3 4function oversize_140931() { 5 6 var contentHeight_140931 = jQuery('.ce_bgimage_140931 .ce_bgimage-inside').height(); 7 var availableHeight = jQuery(window).height() - 100; 8 9 if (contentHeight_140931 > availableHeight) 10 { 11 jQuery('.ce_bgimage_140931').addClass('oversize'); 12 13 } else { 14 jQuery('.ce_bgimage_140931').removeClass('oversize'); 15 } 16}; 17 18jQuery(document).ready(function(){ 19 setTimeout(function(){ 20 oversize_140931(); 21 }, 500); 22}); 23 24jQuery(window).on("resize", function(){ 25 oversize_140931(); 26}); 27 28 29 30 31function oversize_140935() { 32 33 var contentHeight_140935 = jQuery('.ce_bgimage_140935 .ce_bgimage-inside').height(); 34 var availableHeight = jQuery(window).height() - 100; 35 36 if (contentHeight_140935 > availableHeight) 37 { 38 jQuery('.ce_bgimage_140935').addClass('oversize'); 39 40 } else { 41 jQuery('.ce_bgimage_140935').removeClass('oversize'); 42 } 43}; 44 45jQuery(document).ready(function(){ 46 setTimeout(function(){ 47 oversize_140935(); 48 }, 500); 49}); 50 51jQuery(window).on("resize", function(){ 52 oversize_140935(); 53}); 54 55 56 57/** 58 * Set focus to search input 59 */ 60jQuery(document).ready(function() 61{ 62 jQuery('.mod_search').on('keydown',function(e) 63 { 64 if (e.key == 'Enter' || e.keyCode == 13) 65 { 66 jQuery('.ce_search_label').click(); 67 } 68 }); 69 70 jQuery('.ce_search_label').click(function() 71 { 72 // wait for element to be in sight app. 800ms tweening delay 73 setTimeout(function() 74 { 75 jQuery('#search_160 input[name="keywords"]').focus(); 76 77 }, 800); 78 79 /* add class on click */ 80 jQuery(".body_bottom .mod_search").addClass("show-search"); 81 82 /* fadeIn overlay */ 83 jQuery(".body_bottom .mod_search .search-overlay").fadeIn(); 84 }); 85 86 /* close button*/ 87 jQuery(".body_bottom .close-window").click(function(){ 88 jQuery(".body_bottom .mod_search").removeClass("show-search"); 89 jQuery('body').removeClass('search_overlay'); 90 jQuery(".search-overlay").fadeOut(300); 91 }); 92 93 jQuery(".search-overlay").click(function(){ 94 jQuery(".body_bottom .mod_search").removeClass("show-search"); 95 jQuery('body').removeClass('search_overlay'); 96 jQuery(".search-overlay").fadeOut(300); 97 }); 98}); 99 100jQuery(document).keyup(function(e) { 101 if (e.keyCode === 27) jQuery(".mod_search").removeClass("show-search"); 102 if (e.keyCode === 27) jQuery("body").removeClass("search_overlay"); 103 if (e.keyCode === 27) jQuery(".search-overlay").fadeOut(300); 104}); 105 106 107 108 109jQuery(document).ready(function() 110{ 111 // add hide_optin body class when on imprint or privacy page 112 113 //--- opt out remove token 114 jQuery('#privacy_optout_link').click(function(e) 115 { 116 e.preventDefault(); 117 PrivacyManager.optout(document.location.origin+document.location.pathname); 118 }); 119 jQuery('#privacy_optout_link').on('keypress',function(e) 120 { 121 if( e.key == "Enter" || e.keyCode == 13 ) 122 { 123 jQuery(this).click(); 124 } 125 }); 126 127 if(window.location.search.indexOf('clear_privacy_settings') >= 0) 128 { 129 PrivacyManager.optout(document.location.origin+document.location.pathname); 130 } 131 //-- 132 133 var privacy = localStorage.getItem('user_privacy_settings'); 134 var expires = Number( localStorage.getItem('user_privacy_settings_expires') ); 135 // check lease time 136 var now = new Date().setDate(new Date().getDate()); 137 if( now >= expires ) 138 { 139 expires = 0; 140 } 141 142 if(privacy == undefined || privacy == '' || expires <= 0 ) 143 { 144 jQuery('#privacy_optin_611').addClass('open'); 145 // set privacy level to 0 146 privacy = '0'; 147 } 148 149 // set a body class 150 jQuery('body').addClass('privacy_setting_'+privacy.toString().split(',').join('-')); 151 152 // hide the info 153 jQuery('#ajax_info_611').hide(); 154 155 var form = jQuery('#user_privacy_settings_611'); 156 var isValid = false; 157 158 // set focus to first checkbox 159 jQuery('.privacy_checkmark').on('keypress',function(e) 160 { 161 // Enter, Space 162 if( (e.key == "Enter" || e.keyCode == 13 || e.keyCode == 32) || (e.key === " ") ) 163 { 164 e.preventDefault(); 165 let _this = jQuery(this); 166 let checkbox = _this.siblings("input[type='checkbox']"); 167 // toggle checked property 168 checkbox.prop("checked", !checkbox.prop("checked") ); 169 checkbox.trigger('change'); 170 _this.attr('aria-checked', function(_, attr) { return !(attr == 'true') }); 171 } 172 }); 173 174 jQuery('.privacy_checkmark').on('click',function(e) 175 { 176 jQuery(this).attr('aria-checked', function(_, attr) { return !(attr == 'true') }); 177 }); 178 179 // remove readonly from submit when user changes its selection 180 form.find('input[type="checkbox"]').change(function(e) 181 { 182 isValid = false;
183 // required field changed 184 if( form.find('input[required].mandatory').is(':checked') === true ) 185 { 186 isValid = true; 187 } 188 189 form.find('input[name="save_settings"]').addClass('readonly'); 190 form.find('input[name="save_settings"]').prop('disabled', true); 191 192 if( isValid === true ) 193 { 194 form.find('input[name="save_settings"]').removeClass('readonly'); 195 form.find('input[name="save_settings"]').prop('disabled', false); 196 } 197 }); 198 199 // allow all 200 form.find('input[name="save_all_settings"]').click(function(e) 201 { 202 e.preventDefault(); 203 // check all checkboxes for user feedback 204 form.find('input[type="checkbox"]').prop('checked',true); 205 // all good 206 isValid = true; 207 // fire save 208 form.find('input[name="save_settings"]').trigger('click'); 209 }); 210 211 // tech only all 212 form.find('input[name="save_tech_settings"]').click(function(e) 213 { 214 e.preventDefault(); 215 // check required checkbox for user feedback 216 //form.find('#cookiebar_privacy_1').prop('checked',true); 217 // all good 218 isValid = true; 219 // fire save 220 form.find('input[name="save_settings"]').trigger('click'); 221 }); 222 223 224 // preselections make it valid 225 isValid = true; 226 227 form.find('input[name="save_settings"]').click(function(e) 228 { 229 e.preventDefault(); 230 231 // check if a required field is still not set 232 if( isValid === false ) 233 { 234 return false; 235 } 236 237 // show ajax info 238 jQuery('#ajax_info_611').fadeIn(50); 239 240 // get the user selection 241 var privacy = PrivacyManager.getUserSelectionFromFormData( form.serializeArray() ).join(','); 242 243 if( privacy == undefined || privacy == '' ) 244 { 245 privacy = '1'; 246 } 247 248 // set local storage 249 localStorage.setItem('user_privacy_settings',privacy); 250 // set lease time 251 var expires = new Date().setDate(new Date().getDate() + 30); 252 localStorage.setItem('user_privacy_settings_expires',expires); 253 // set a body class 254 jQuery('body').addClass('privacy_setting_'+privacy.toString().split(',').join('-')); 255 // remove negative body class 256 jQuery('body').removeClass('privacy_setting_0'); 257 setTimeout(function() 258 { 259 // fire JS event 260 jQuery(document).trigger('Privacy.changed',{'level':privacy}); 261 262 // fire form as usal to catch it via php 263 //form.submit(); 264 }, 500); 265 }); 266}); 267 268 269// listen to Privacy event 270jQuery(document).on('Privacy.changed',function(event,params) 271{ 272 if( PrivacyManager.hasAccess(params.level) ) 273 { 274 jQuery('#privacy_optin_611').removeClass('open'); 275 // send ajax for log file 276 jQuery.ajax( 277 { 278 url:location.href, 279 data:{'user_privacy_settings':params.level,'tstamp':Math.round(new Date().getTime()/1000)} 280 }); 281 } 282}); 283 284// Opt-out listener 285jQuery(document).ready(function() 286{ 287 jQuery('.privacy_optout_click, .privacy_optout_link').click(function() 288 { 289 PrivacyManager.optout(); 290 }); 291}); 292 293// accessbility focus 294jQuery(document).ready(function() 295{ 296 jQuery("#privacy_checkmark_privacy_1").focus(); 297}); 298 299// Cookie details 300jQuery(document).ready(function() 301{ 302 let element = jQuery('#privacy_optin_611 .privacy_help_link'); 303 let popup = jQuery('#privacy_optin_611 .privacy_popup'); 304 element.click(function (e) 305 { 306 e.preventDefault(); 307 jQuery("html, body").animate({ scrollTop: 0 }); 308 popup.toggleClass('view_help'); 309 }); 310 311 element.on('keypress', function (e) 312 { 313 if( (e.key == "Enter" || e.keyCode == 13 || e.keyCode == 32) || (e.key === " ") ) 314 { 315 // reload page when view_help is active 316 if( popup.hasClass('view_help') ) 317 { 318 window.location.reload(); 319 return false; 320 } 321 jQuery(this).click(); 322 } 323 }); 324}); 325 326 327 328jQuery(document).ready(function() 329{ 330 if( !jQuery('body').hasClass('acc_disable_animations') ) 331 { 332 jQuery(document).accordion( 333 { 334 // Put custom options here 335 heightStyle: 'content', 336 active: false, 337 header: '.toggler', 338 collapsible: true, 339 create: function(event, ui) { 340 ui.header.addClass('active'); 341 jQuery('.toggler').attr('tabindex', 0); 342 }, 343 activate: function(event, ui) { 344 ui.newHeader.addClass('active'); 345 ui.oldHeader.removeClass('active'); 346 jQuery('.toggler').attr('tabindex', 0); 347 jQuery('.toggler').removeAttr('aria-selected'); 348 } 349 }); 350 // fire event 351 jQuery(window).trigger('Eclipse.accordions_ready',{}); 352 } 353}); 354 355 356 357jQuery(document).ready(function() { 358 jQuery('a[data-lightbox]').map(function() 359 { 360 jQuery(this).colorbox( 361 { 362 // Put custom options here 363 loop: false, 364 rel: jQuery(this).attr('data-lightbox'), 365 maxWidth: '95%', 366 maxHeight: '95%' 367 }); 368 }); 369 370 jQuery(document).bind('cbox_complete', function(e) 371 { 372 if( jQuery.colorbox == undefined ) 373 { 374 return; 375 }
376 var text = jQuery.colorbox.element().next('.caption').text(); 377 if( text ) 378 { 379 var caption = jQuery('#cboxBottomLeft').append('<div id="cboxCaption">'+text+'</div>'); 380 jQuery('#colorbox').height( jQuery('#colorbox').height() + caption.height() ); 381 } 382 }); 383 }); 384 385 386// iframe lightbox 387jQuery(document).ready(function() 388{ 389 jQuery('a[data-lightbox-iframe]').map(function() 390 { 391 jQuery(this).colorbox( 392 { 393 iframe:true, 394 innerWidth:"80%", 395 innerHeight:"56%", 396 maxWidth:"95%", 397 maxHeight:'95%', 398 }); 399 }); 400}); 401 402// lightbox 50% 50% 403jQuery(document).ready(function() 404{ 405 jQuery('.lightbox50-50 a, a.lightbox50-50').colorbox( 406 { 407 // Put custom options here 408 loop: false, 409 rel: jQuery(this).attr('data-lightbox'), 410 width: '50%', 411 height: '50%' 412 }); 413}); 414// lightbox 60% 40% 415jQuery(document).ready(function() 416{ 417 jQuery('.lightbox60-40 a, a.lightbox60-40').colorbox( 418 { 419 // Put custom options here 420 loop: false, 421 rel: jQuery(this).attr('data-lightbox'), 422 width: '60%', 423 height: '40%' 424 }); 425}); 426// lightbox 960px 575px 427jQuery(document).ready(function() 428{ 429 jQuery('.lightbox960 a, a.lightbox960').colorbox( 430 { 431 // Put custom options here 432 loop: false, 433 rel: jQuery(this).attr('data-lightbox'), 434 width: '960px', 435 height: '575px' 436 }); 437}); 438 439 440 441/** 442 * PrivacyManager 443 */ 444var PrivacyManager = 445{ 446 /** 447 * The privacy localStorage key 448 * @var string 449 */ 450 privacy_session : 'user_privacy_settings', 451 452 /** 453 * Get the selected privacy checkbox values from a formular array 454 * @param array 455 * @return array 456 */ 457 getUserSelectionFromFormData: function (arrSubmitted) 458 { 459 if (arrSubmitted == null || arrSubmitted == undefined) 460 { 461 return []; 462 } 463 464 var arrReturn = []; 465 for (var k in arrSubmitted) 466 { 467 var v = arrSubmitted[k]; 468 if (v['name'] == 'privacy') 469 { 470 arrReturn.push(v['value']); 471 } 472 } 473 return arrReturn; 474 }, 475 476 477 /** 478 * Access control 479 * @param string 480 */ 481 hasAccess : function (varSelection) 482 { 483 var token = localStorage.getItem( this.privacy_session ); 484 if( token == undefined ) 485 { 486 return false; 487 } 488 489 // convert to string 490 if( typeof(varSelection) == 'number' ) 491 { 492 varSelection = varSelection.toString(); 493 } 494 // convert to array 495 if( typeof(varSelection) == 'string' ) 496 { 497 varSelection = varSelection.split(','); 498 } 499 500 for(i in varSelection) 501 { 502 var value = varSelection[i].toString().replace(' ',''); 503 if( token.indexOf( value ) >= 0 ) 504 { 505 return true; 506 } 507 } 508 return false; 509 }, 510 511 512 /** 513 * Clear privacy settings and redirect page 514 * @param boolean 515 */ 516 optout: function (strRedirect) 517 { 518 // clear local storage 519 localStorage.removeItem(this.privacy_session); 520 localStorage.removeItem(this.privacy_session+'_expires'); 521 // fire event 522 jQuery(document).trigger('Privacy.clear_privacy_settings',{}); 523 // log 524 console.log('Privacy settings cleared'); 525 // redirect 526 if (strRedirect != undefined) 527 { 528 location.href = strRedirect; 529 } 530 else 531 { 532 location.reload(); 533 } 534 }, 535 536 537 /** 538 * Clear all cookies and localstorage 539 */ 540 clearAll: function() 541 { 542 var host = window.location.hostname; 543 var domain = host.substring( host.indexOf('.') , host.length); 544 // clear all cookies 545 document.cookie.split(";").forEach(function(c) 546 { 547 document.cookie = c.replace(/^ +/, "").replace(/=.*/, "=;expires=" + new Date().toUTCString() + ";path=/"+ ";domain="+host); 548 document.cookie = c.replace(/^ +/, "").replace(/=.*/, "=;expires=" + new Date().toUTCString() + ";path=/"+ ";domain="+domain); 549 }); 550 // clear whole localstorage 551 window.localStorage.clear(); 552 for (var i = 0; i <= localStorage.length; i++) 553 { 554 localStorage.removeItem(localStorage.key(i)); 555 } 556 // log 557 console.log('Cookies and localstorage cleared'); 558 } 559}; 560 561 562 563/** 564 * Univerasl optin protection 565 * @param string Type of element to be protected e.g. img or iframe etc. 566 */ 567PrivacyManager.optin = function(strElementType) 568{ 569 if(strElementType == undefined || strElementType == '') 570 { 571 return; 572 } 573 // user settings not applied yet 574 if(localStorage.getItem(this.privacy_session) == undefined || localStorage.getItem(this.privacy_session) == '' || localStorage.getItem(this.privacy_session) <= 0) 575 { 576 return 577 } 578 579 // find all scripts having a data-src attribute 580 var targets = jQuery(strElementType+'[data-src]'); 581 582 if(targets.length > 0) 583 { 584 jQuery.each(targets,function(i,e) 585 { 586 var privacy = jQuery(e).data('privacy'); 587 if(privacy == undefined) 588 { 589 privacy = 0; 590 } 591 592 var attr = 'src'; 593 if(strElementType == 'link') 594 { 595 attr = 'href'; 596 } 597 else if(strElementType == 'object') 598 { 599 attr = 'data'; 600 } 601 602 if(localStorage.getItem('user_privacy_settings').indexOf(privacy) >= 0) 603 { 604 jQuery(e).attr(attr,jQuery(e).data('src') ); 605 } 606 }); 607 } 608} 609 610jQuery(document).on('Privacy.changed', function() 611{ 612 PrivacyManager.optin('script'); 613 PrivacyManager.optin('link'); 614 PrivacyManager.optin('iframe'); 615 PrivacyManager.optin('object'); 616 PrivacyManager.optin('img'); 617}); 618 619jQuery(document).ready(function() 620{ 621 PrivacyManager.optin('script'); 622 PrivacyManager.optin('link'); 623 PrivacyManager.optin('iframe'); 624 PrivacyManager.optin('object'); 625 PrivacyManager.optin('img'); 626}); 627 628 629 630jQuery(document).ready(function() 631{ 632 //var e = document.querySelectorAll('.content-slider, .slider-control'); 633 let SLIDERS = []; 634 jQuery('.content-slider').each(function(i,elem) 635 { 636 var config = jQuery(elem).attr('data-config'); 637 if( config ) 638 { 639 var menu = jQuery(elem).next('.slider-control'); 640 c = config.split(','); 641 var options = 642 { 643 'auto': parseInt(c[0]), 644 'speed': parseInt(c[1]), 645 'startSlide': parseInt(c[2]), 646 'continuous': parseInt(c[3]) 647 } 648 // menu 649 if ( menu ) 650 { 651 // replace # with slahs 652 menu.find('a').attr('href','/'); 653 options.menu = menu[0]; 654 } 655 656 var api = new Swipe(elem, options); 657 SLIDERS.push(api); 658 } 659 }); 660 661 jQuery(document).on('keydown', function (e) 662 { 663 switch (e.keyCode) 664 { 665 // left arrow key <= 666 case 37: 667 jQuery.each(SLIDERS, function (i,elem) 668 { 669 elem.prev(); 670 }); 671 break; 672 // right arrow key => 673 case 39: 674 jQuery.each(SLIDERS, function (i,elem) 675 { 676 elem.next(); 677 }); 678 break; 679 default: 680 break; 681 } 682 }); 683}); 684 685 686 687jQuery(document).ready(function() 688{ 689 jQuery('nav.mobile_vertical .trail').addClass('open'); 690 jQuery('nav.mobile_vertical li.submenu > a').append('<span class="opener"></span>'); 691 jQuery('nav.mobile_vertical a.submenu').not('.open').parent('li').children('ul').hide(); 692 jQuery('nav.mobile_vertical li.submenu .opener, nav.mobile_vertical li.submenu a.forward:not(.click-default), nav.mobile_vertical li.submenu a.pct_megamenu').click(function(e) 693 { 694 e.preventDefault(); 695 e.stopImmediatePropagation(); 696 697 var _this = jQuery(this); 698 699 // close open siblings 700 if( jQuery(this).parents('nav.mobile_vertical').hasClass('collapse') ) 701 { 702 var siblings = _this.parents('li').siblings('li.open'); 703 siblings.children('ul').slideUp( 704 { 705 duration:300, 706 complete: function() 707 { 708 siblings.removeClass('open'); 709 siblings.children('a').removeClass('open'); 710 } 711 }); 712 } 713 714 var parent = _this.parent('li'); 715 716 // opener div 717 var isOpener = _this.hasClass('opener'); 718 if( isOpener ) 719 { 720 var parent = _this.parent('a').parent('li'); 721 } 722 723 if(parent.hasClass('open') ) 724 { 725 parent.children('ul').slideUp( 726 { 727 duration:300, 728 complete: function() 729 { 730 if( isOpener ) 731 { 732 _this.siblings('a').removeClass('open'); 733 } 734 _this.removeClass('open'); 735 parent.removeClass('open'); 736 } 737 }); 738 739 } 740 else 741 { 742 if( isOpener ) 743 { 744 _this.siblings('a').toggleClass('open'); 745 } 746 _this.toggleClass('open'); 747 parent.toggleClass('open'); 748 parent.children('ul').slideToggle({duration:300}); 749 } 750 }); 751}); 752
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.