1rIt({ 2 "*": { 3 "assets": ["/js/_essentials/notifications.js", "/js/_essentials/basics.js", "/js/_essentials/ruffnav.js", "/privacyControl-2.0.conf.js", "/js/_essentials/privacyControl-2.js"], 4 "function": "always" 5 }, 6 "body.isOldBrowser": { 7 "assets": ["/js/_essentials/note.oldBrowser.js"] 8 }, 9 "body.dev-mode": { 10 "assets": ["/js/_essentials/devMode.js"] 11 }, 12 ".cms-image.lightbox-zoom-image, .cms-gallery.modalGallery": { 13 "assets": ["/js/vendor/baguetteBox.js"], 14 "function": function (selector) { 15 baguetteBox.run(selector, { noScrollbars: true, async: true, preload: 0 }); 16 } 17 }, 18 "picture, :not(picture) > img[data-src], .lazy-bg, [data-lazy-animation]": { 19 "assets": ["/js/_essentials/basics.js", "/js/_essentials/lazyLoad.js"], 20 "function": function (selector) { 21 new LazyLoad({ selector: selector }); 22 } 23 }, 24 "form[action*='formixapp.com']:not([data-evercaptcha])": { 25 "assets": ["/js/_essentials/basics.js", "/js/_essentials/formix.js"], 26 "function": function (selector) { 27 new Formix({ selector: selector }); 28 } 29 }, 30 ".teaser-swiper-container": { 31 "assets": ["/js/vendor/swiper.js"], 32 "function": function teaserSwiper() { 33 var teaserSwiper = new Swiper('.teaser-swiper-container.teaserSwiper', { 34 loop: true, 35 autoplay: { 36 delay: 2500, 37 grabCursor: true, 38 }, 39 speed: 4000, 40 slidesPerView: 1, 41 }); 42 } 43 }, 44 "form[data-evercaptcha]": { 45 "assets": ["/js/_essentials/basics.js", "/js/_essentials/formix.js", "/securewebapps/evercdn/assets/evercaptcha/v1/scripts/main.min.js"], 46 "function": function (selector) { 47 const formix = new Formix({ 48 selector: selector, 49 eventName: "evercaptcha-valid" 50 }); 51 const everCaptcha = new EverCAPTCHA(selector, true, { 52 hookSending: true 53 }); 54 }, 55 "lazy": true 56 }, 57 "form": { 58 "assets": [], 59 "function": function () { 60 // Class for focused Custom Input 61 function inputs() { 62 var input = document.querySelectorAll('.input-field'); 63 64 function currentItem() { 65 this.parentNode.classList.add('focused'); 66 } 67 68 function leaveFocus() { 69 if (this.value.length == 0) { 70 this.parentNode.classList.remove('focused'); 71 } 72 } 73 74 for (var i = 0; i < input.length; i++) { 75 input[i].addEventListener("focus", currentItem, false); 76 input[i].addEventListener("blur", leaveFocus, false); 77 } 78 } 79 inputs(); 80 81 // Custom Field error validation // Use it only when needed 82 function customError() { 83 var myInput = document.getElementsByTagName('input'); 84 for(var i = 0; i < myInput.length; i++) { 85 myInput[i].addEventListener('invalid', function(e) { 86 this.classList.add("invalid"); 87 }); 88 } 89 } 90 customError(); 91 } 92 }, 93 "a.phone": { 94 "assets": [], 95 "function": function () { 96 const aph = document.querySelectorAll('a.phone'); 97 98 aph.forEach((a) => { 99 a.setAttribute('title', 'Jetzt telefonisch Kontakt mit Malermeisterbetrieb Hubertus Reuber in Drolshagen und Attendorn aufnehmen!'); 100 }) 101 } 102} 103}); 104 105function always() 106{ 107 new Ruffnav(); 108 new ScrollDir(document.body); 109 110 privacyCtrl = new PrivacyControl({ 111 deps: { 112 googlemaps: true 113 } 114 }); 115 116 117 function scrollClass() { 118 var pageNavi = document.getElementById('navigation'); 119 window.addEventListener('scroll', function () { 120 var scrollTop = window.pageYOffset; 121 122 if (scrollTop > 1 && window.innerWidth >= breakpoint('large')) { 123 pageNavi.classList.add('small'); 124 } 125 126 else if (scrollTop < 1 && window.innerWidth >= breakpoint('large')){ 127 pageNavi.classList.remove('small'); 128 } 129 }); 130 } 131 scrollClass(); 132 133 // Set and Remove hide Class for fixed Button Content 134 if (!breakpoint('large')) { 135 document.getElementById('page-wrap').addEventListener('click', function() { 136 var fixedButtonInner = document.querySelectorAll('.fixed-contacts li:not(.mobile-no-hover) .inner'); 137 for (var i = 0; i < fixedButtonInner.length; i++) { 138 fixedButtonInner[i].classList.add('hide'); 139 } 140 }) 141 142 function hide() { 143 var inner = this.querySelector('li .inner'); 144 inner.classList.remove('hide'); 145 } 146 147 var fixedButton = document.querySelectorAll('.fixed-contacts li'); 148 for (var i = 0; i < fixedButton.length; i++) { 149 fixedButton[i].addEventListener('click', hide, false); 150 } 151 } 152 153} 154 155/** 156 * require it! (dependencies) 157 * @author Dominik Kressler 158 * @version 1.0.0 159 * @date 2021-02-09 160 */ 161function rIt(rules){if(Object.keys(rules).length===0||rules.constructor!==Object){return false}let instantRules={},lazyRules={};if(!window.rItLoaded){window.rItLoaded=[]}for(let key in rules){if(!(rules[key].assets instanceof Array)){rules[key].assets=[]}rules[key].selector=key;if(document.querySelector(key)!==null){if(rules[key].lazy){lazyRules[key]=rules[key]}else{instantRules[key]=rules[key]}}}loadAsset=async asset=>{if(window.rItLoaded.indexOf(asset)>-1){return false}return new Promise((resolve,reject)=>{window.rItLoaded.push(asset);if(asset.indexOf('.css',asset.length-4)!==-1||asset.indexOf('rforce=css')>-1){var node=document.createElement('link');node.setAttribute('href',asset);node.setAttribute('rel','stylesheet')}else{var node=document.createElement('script');node.src=asset;node.setAttribute('defer','defer')}node.onload=async()=>{resolve(true)};document.body.appendChild(node)}
161)};if(Object.keys(lazyRules).length>0){let observer=new IntersectionObserver(function(entries){if(entries[0].intersectionRatio<=0){return;}let selector=entries[0].target.dataset.ritSelector;let rule=lazyRules[selector];(async()=>{for(let asset of rule.assets){await loadAsset(asset)}if(typeof rule['function']=='string'){window[rule['function']](selector)}if(typeof rule['function']=='function'){rule['function'](selector)}})();observer.unobserve(entries[0].target)},{threshold:0.01});for(let key in lazyRules){let selector=key;let target=document.querySelector(selector);target.dataset.ritSelector=selector;observer.observe(target)}}if(Object.keys(instantRules).length>0){(async()=>{for(let key in instantRules){let rule=instantRules[key];for(let asset of rule.assets){await loadAsset(asset)}if(typeof rule['function']=='string'){window[rule['function']](key)}if(typeof rule['function']=='function'){rule['function'](key)}}})()}return this}
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.