1"use strict"; 2 3/** 4 * CUSTOM JS 5 */ 6var APP_JS = 7 APP_JS || 8 (function () { 9 var self; 10 11 return { 12 productArea: null, 13 14 init: function () { 15 self = this; 16 self.fireEvents(); 17 }, 18 19 /** Events */ 20 fireEvents: function () { 21 self = this; 22 23 let linkToggle = document.querySelectorAll(".js--toggle"); 24 25 for (var i = 0; i < linkToggle.length; i++) { 26 linkToggle[i].addEventListener("click", function (event) { 27 event.preventDefault(); 28 var container = document.getElementById(this.dataset.container); 29 var parent = document.getElementById(this.dataset.parent); 30 if (!container.classList.contains("active")) { 31 container.classList.add("active"); 32 parent.classList.add("active"); 33 container.style.height = "auto"; 34 var height = container.clientHeight + "px"; 35 container.style.height = "0px"; 36 setTimeout(function () { 37 container.style.height = height; 38 }, 0); 39 } else { 40 container.style.height = "0px"; 41 container.addEventListener( 42 "transitionend", 43 function () { 44 container.classList.remove("active"); 45 parent.classList.remove("active"); 46 }, 47 { 48 once: true, 49 } 50 ); 51 } 52 }); 53 } 54 let uploadImg = document.getElementById("uploadImg"); 55 let uploadImgName = document.getElementById("uploadImgName"); 56 let uploadImgText = document.getElementById("uploadImgText"); 57 if (uploadImg) { 58 uploadImg.addEventListener('change', function() { 59 if (uploadImg.files.length != 0) { 60 uploadImgName.setAttribute("required", ""); 61 uploadImgText.style.display = 'inline'; 62 } else { 63 uploadImgName.removeAttribute("required"); 64 uploadImgText.style.display = 'none'; 65 } 66 }); 67 } 68 69 let modalUserAlertClose = document.getElementsByClassName("modalUserAlert--close"); 70 for (var i = 0; i < modalUserAlertClose.length; i++) { 71 modalUserAlertClose[i].addEventListener("click", (event) => { 72 event.preventDefault(); 73 this.setCookie("zahradaCloseModal", true, 7); 74 event.target.closest('.modalUserAlert--backdrop').style.display = 'none'; 75 }); 76 } 77 78 /* interactive map */ 79 let interactiveMap = document.getElementsByClassName("js--mapInteractive"); 80 let interactiveMapPath = document.querySelectorAll(".js--mapInteractive path"); 81 let interactiveMapContainer = document.querySelectorAll(".js--mapInteractiveContent"); 82 for (var i = 0; i < interactiveMapPath.length; i++) { 83 interactiveMapPath[i].addEventListener("click", (event) => { 84 event.preventDefault(); 85 86 interactiveMapPath.forEach((e) => { 87 e.classList.remove('active'); 88 }); 89 90 if (!event.currentTarget.classList.contains('active')) { 91 event.currentTarget.classList.add('active'); 92 93 let regionID = event.currentTarget.id; 94 let containerID = document.querySelector('[data-name="'+regionID+'"]'); 95 96 interactiveMapContainer.forEach((e) => { 97 e.style.display = 'none'; 98 }); 99 100 containerID.style.display = 'block'; 101 } 102 }); 103 } 104 /* 105 window.addEventListener('CookieScriptLoaded', function () { 106 107 const hideEarly = () => { 108 self.hideCookieScript(); // nebo tvá vlastnà funkce 109 }; 110 111 const acceptBtn = document.getElementById('cookiescript_accept'); 112 const rejectBtn = document.getElementById('cookiescript_reject'); 113 const closeBtn = document.getElementById('cookiescript_close'); 114 115 if (acceptBtn) { 116 acceptBtn.addEventListener('mousedown', hideEarly, true); // capture = true 117 } 118 119 if (rejectBtn) { 120 rejectBtn.addEventListener('mousedown', hideEarly, true); // capture = true 121 } 122 123 if (closeBtn) { 124 closeBtn.addEventListener('mousedown', hideEarly, true); // capture = true 125 } 126 }); 127 */ 128 129 }, 130
131 setCookie: function (name,value,days) { 132 var expires = ""; 133 if (days) { 134 var date = new Date(); 135 date.setTime(date.getTime() + (days*24*60*60*1000)); 136 expires = "; expires=" + date.toUTCString(); 137 } 138 document.cookie = name + "=" + (value || "") + expires + "; path=/;"; 139 }, 140 141 decodeHTMLEntities: function (text) { 142 const textArea = document.createElement('textarea'); 143 textArea.innerHTML = text; 144 return textArea.value; 145 }, 146 147 updateFeed: function (data, id, isCompact) { 148 const wpFeed = document.getElementById(id); 149 const latestPosts = data.slice(0, 6); 150 const placeholders = wpFeed.querySelectorAll('.placeholder'); 151 placeholders.forEach((placeholder, index) => { 152 const post = latestPosts[index]; 153 this.updatePlaceholder(placeholder, post, isCompact); 154 }); 155 156 console.log("updateFeed done"); 157 }, 158 159 updateFeedBanner: function (data) { 160 const wpFeedBanner = document.getElementById('wpFeedBanner'); 161 const threeRandomPosts = data.slice(0, 6); 162 const placeholders = wpFeedBanner.querySelectorAll('.placeholder'); 163 placeholders.forEach((placeholder, index) => { 164 const post = threeRandomPosts[index] || {}; 165 this.updatePlaceholder(placeholder, post, true); 166 }); 167 168 console.log("updateFeedBanner done"); 169 }, 170 171 updatePlaceholder: function (placeholder, post, isCompact) { 172 let postImg = ""; 173 let postTitle = ""; 174 let postDate = ""; 175 176 if (post.fimg_urls_news) { 177 postImg = isCompact ? post.fimg_urls_news.td_218x150 : post.fimg_urls_news.td_485x360; 178 } 179 180 if (post.title && post.title.rendered) { 181 postTitle = APP_JS.decodeHTMLEntities(post.title.rendered); 182 } 183 184 if (post.date) { 185 postDate = new Date(post.date).toLocaleDateString('cs-CZ'); 186 } 187 188 const img = placeholder.querySelector('img'); 189 img.src = postImg; 190 img.alt = postTitle; 191 192 const h3 = placeholder.querySelector('h3') || placeholder.querySelector('h4'); 193 h3.textContent = postTitle; 194 195 const p = placeholder.querySelector('p'); 196 p.textContent = postDate; 197 198 placeholder.classList.remove('placeholder'); 199 placeholder.href = post.link || '#'; 200 placeholder.target = '_blank'; 201 placeholder.title = `Zahrada.cz - ${postTitle}`; 202 }, 203 204 hideCookieScript: function () { 205 let cookieScriptWrapper = document.getElementById('cookiescript_injected_wrapper'); 206 if (cookieScriptWrapper) { 207 cookieScriptWrapper.style.visibility = 'hidden'; 208 } 209 } 210 211 212 }; 213 })(); 214document.addEventListener("DOMContentLoaded", function () { 215 APP_JS.init(); 216});
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.