1<!doctype html> 2<html class="diks-no-js diks-site--lansi-uusimaa diks-user--is-not-logged-in diks-user--is-not-subscriber diks-user--is-not-company-subscriber diks-site--layout-master" lang="fi" prefix="og: http://ogp.me/ns#"> 3 <head> 4 <meta charset="utf-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1"> 6 <title>Uusimmat | Länsi-Uusimaa</title> 7 <link id="diks-stylesheet" rel="stylesheet" href="https://a.lansi-uusimaa.fi/styles/2efe7af9/styles/diks-news.css"> 8 <link rel="dns-prefetch" href="https://cdn.gravito.net"> 9 <link rel="dns-prefetch" href="https://cdn.gravito.network"> 10 <link rel="dns-prefetch" href="https://handshake.gravito.network"> 11
11<script> 12 13 const checkUserPreferenceEnabled = 1; 14 const darkmodeStylesheet = "https://a.lansi-uusimaa.fi/styles/2efe7af9/styles/diks-news-darkmode.css"; 15 const defaultStylesheet = "https://a.lansi-uusimaa.fi/styles/2efe7af9/styles/diks-news.css"; 16 const savedTheme = localStorage.getItem('theme'); 17 const stylesheet = document.getElementById("diks-stylesheet"); 18 19 // Check local storage for saved theme 20 if ( savedTheme == 'darkmode' ) { 21 stylesheet.href = darkmodeStylesheet; 22 document.documentElement.classList.add('diks-theme--darkmode'); 23 } 24 // Check user's theme preference through an OS setting or a user agent setting 25 else if ( checkUserPreferenceEnabled && savedTheme != 'default' && ( window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ) ) { 26 stylesheet.href = darkmodeStylesheet; 27 document.documentElement.classList.add('diks-theme--darkmode'); 28 } 29 else { 30 document.documentElement.classList.add('diks-theme--default'); 31 } 32 33 34 // Darkmode toggle switch 35 document.addEventListener('DOMContentLoaded', function () { 36 const darkmodeButton = document.getElementById("diks-darkmode-toggler"); 37 38 if (darkmodeButton) { 39 // Set darkmode button to checked if darkmode is already on 40 // Check local storage for saved theme 41 if (savedTheme == 'darkmode' ) { 42 darkmodeButton.checked = true; 43 } 44 // Check user's theme preference through an OS setting or a user agent setting 45 else if ( checkUserPreferenceEnabled && savedTheme != 'default' && ( window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ) ) { 46 darkmodeButton.checked = true; 47 } 48 49 // Change theme based on darkmode button checked/unchecked 50 darkmodeButton.addEventListener("click", function() { 51 // Swap out the URL for the different stylesheets 52 if ( stylesheet.getAttribute("href") == defaultStylesheet ) { 53 stylesheet.href = darkmodeStylesheet; 54 document.documentElement.classList.remove('diks-theme--default'); 55 document.documentElement.classList.add('diks-theme--darkmode'); 56 // Save theme to local storage 57 window.localStorage.setItem('theme', 'darkmode'); 58 } else { 59 stylesheet.href = defaultStylesheet; 60 document.documentElement.classList.remove('diks-theme--darkmode'); 61 document.documentElement.classList.add('diks-theme--default'); 62 // Save theme to local storage 63 window.localStorage.setItem('theme', 'default'); 64 } 65 // Dispatch event ThemeChanged when theme inside Local Storage changes 66 window.dispatchEvent(new Event("ThemeChanged")); 67 }); 68 } 69 }, false); 70 71 </script>
71 72 73 <link rel="preload" href="/gravito-cmp.js" as="script"> 74 <link rel="preload" href="https://cdn.gravito.net/sdk/v6/latest/sdk.js" as="script"><link rel="preload" href="https://a.lansi-uusimaa.fi/styles/2efe7af9/js/google/googleTagScript.min.js" as="script"><link rel="preload" href="https://f444.lansi-uusimaa.fi/script.js" as="script"> 75
75<script> 76 window.JankkoSSOConfig = { 77 accountOrigin: "LÃUU" 78 }; 79 </script>
79 80 81 82
82<script id="jankko-sso-script" src="https://sso.lansi-uusimaa.fi/assets/jankko-sso-client.modern.min.js"></script>
82 83 84 85 86 87 88
88<script> 89 // Hyphenopoly library initialization. The library will add soft-hyphen characters into the content if the 90 // browser doesn't support CSS hyphenation. For debugging on macOS Chrome: require: { 'fi': 'FORCEHYPHENOPOLY' } 91 const Hyphenopoly = { 92 require: { 'fi': 'yhdyssanahirviö' }, 93 setup: { 94 defaultLanguage: "fi", 95 selectors: { '.diks-card__title': { minWordLength: 11, leftmin: 4, rightmin: 4 }, '.diks-article__headline': { minWordLength: 11, leftmin: 4, rightmin: 4 }, '.diks-parallax-content .diks-article-box .diks-sub-headline': { minWordLength: 11, leftmin: 4, rightmin: 4 } } 96 } 97 } 98 console.log('Hyphenopoly settings:', Hyphenopoly.setup) 99 100 // Helper function for hyphenating content that was added after pageload. We must query a nodelist and iterate 101 // each node because the library can't handle a nodelist. 102 // https://mnater.github.io/Hyphenopoly/Hyphenators.html 103 // https://github.com/mnater/Hyphenopoly/issues/92#issuecomment-597728300 104 const diksHyphenateContent = (containerSelector) => { 105 if (!Hyphenopoly.hyphenators) { 106 return 107 } 108 Hyphenopoly.hyphenators["HTML"].then((hyphenator) => { 109 for (const itemSelector in Hyphenopoly.setup.selectors) { 110 const containerNode = document.querySelector(containerSelector) 111 const itemNodeList = containerNode.querySelectorAll(itemSelector) 112 itemNodeList.forEach((itemNode) => { hyphenator(itemNode, itemSelector) }) 113 } 114 }) 115 } 116 </script>
116 117
117<script src="https://a.lansi-uusimaa.fi/styles/2efe7af9/includes/hyphenopoly/Hyphenopoly_Loader.js"></script>
117 118
118<script src="/theme/css/includes/waypoints/lib/noframework.waypoints.min.js"></script>
118 119 <link rel="icon" type="image/png" href="/favicon.png" sizes="96x96" /><link rel="icon" href="/favicon.ico" sizes="48x48"><link rel="icon" href="/favicon.svg" sizes="any" type="image/svg+xml" /><link rel="apple-touch-icon" href="/icon-180.png"/><meta name="theme-color" content="#FFFFFF" media="(prefers-color-scheme: light)" /> 120 <meta name="theme-color" content="#121416" media="(prefers-color-scheme: dark)" /><link rel="alternate" type="application/rss+xml" title="Länsi-Uusimaa" href="https://www.lansi-uusimaa.fi/feed/rss"><meta name="robots" content="max-image-preview:large">
120<script> 121 var pageData = {}; 122 123 pageData.section = { 124 'name': 'Uusimmat', 125 'uname': 'uusimmat', 126 'url': 'https\u003A\/\/www.lansi\u002Duusimaa.fi\/uusimmat\/' 127 } 128 pageData.publication = { 129 'name': 'lansi\u002Duusimaa', 130 'url': 'https\u003A\/\/www.lansi\u002Duusimaa.fi\/', 131 'engage': 'L\u00C4UU', 132 'paywallEnabled': true, 133 'registrationWallEnabled': true, 134 'env':'prod' 135 } 136 pageData.user = {} 137 pageData.companyUser = {} 138 139 function isPwa() { 140 // window.navigator.standalone = iOS 141 // window.matchMedia('(display-mode: standalone)').matches = Android/universal 142 return (window.navigator.standalone) || 143 (["fullscreen", "standalone", "minimal-ui"].some( 144 function(displayMode) { return window.matchMedia('(display-mode: ' + displayMode + ')') 145 .matches })); 146 } 147 148 pageData.general = { 149 'browseMode': (isPwa() ? 'pwa' : 'browser') 150 } 151</script>
151 152 <meta property="og:site_name" content="Länsi-Uusimaa"> 153 <meta property="og:locale" content="fi_FI"><meta name='description' content=''> 154<meta property='og:title' content='Uusimmat | Länsi-Uusimaa'> 155<meta property='og:description' content=''> 156<meta property='og:url' content='https://www.lansi-uusimaa.fi/uusimmat/'> 157<meta property='og:type' content='webpage'><meta property='og:image' content='https://a.lansi-uusimaa.fi/styles/2efe7af9/images/default/og-image-lansi-uusimaa.jpg'> 158<meta property='og:image:width' content='1200'> 159<meta property='og:image:height' content='630'> 160 <link rel="manifest" href="/manifest.webmanifest"> 161 <style>@media (max-width: 600px) { .gravitoCMP-footer { margin-top: 1.5em; } }</style> 162
162<script type="text/javascript">window.cX = window.cX || {};// Async load of cx.js 163 (function(d,s,e,t){e=d.createElement(s);e.type='text/java'+s;e.async='async'; 164 e.src='http'+('https:'===location.protocol?'s://s':'://')+'cdn.cxense.com/cx.js'; 165 t=d.getElementsByTagName(s)[0];t.parentNode.insertBefore(e,t);})(document,'script'); 166 </script>
166 167
167<script src="https://a.lansi-uusimaa.fi/styles/2efe7af9/js/blueconic/dialog.min.js"></script>
167 168
168<script> 169 BCinst = 'blueconic'; 170 BCshortcode = 'LAUU'; 171 BCHighImpactAdHidingEnabled = true; 172 BCHighImpactAdSizes = [[1600,1150],[970,970],[970,540],[970,170],[320,320],[300,240],[300,220],[300,210],[1,2]]; 173 BCHighImpactPrerequisiteSlots = ["gam-ad-topscroll_skin","gam-ad-topscroll_mob"]; 174 BCHighImpactPrerequisiteTimeout = 5000; 175 BCGAMAdsEnabled = true; 176 initHighImpactAdHiding(); 177 </script>
177<script src="https://a.lansi-uusimaa.fi/styles/2efe7af9/js/blueconic/events.min.js"></script>
177 178
178<script> 179 const BCPlatform = "web"; 180 const BCChannel = 'LAUU'; 181 182 const BCArticleViewProperties = {}; 183 const BCSessionStartProperties = {}; 184 185 BCArticleViewProperties["platform"] = BCPlatform; 186 BCArticleViewProperties["channel"] = BCChannel; 187 BCSessionStartProperties["platform"] = BCPlatform; 188 BCSessionStartProperties["channel"] = BCChannel; 189 190 const BCArticleID = pageData?.article?.id || ''; 191 const BCArticleMarketingCategories = pageData?.article?.marketingCategories || []; 192 const BCArticleTopics = pageData?.article?.topics || []; 193 194 if (BCArticleID) { 195 BCArticleViewProperties["articleID"] = BCArticleID; 196 } 197 198 if (Array.isArray(BCArticleMarketingCategories) && BCArticleMarketingCategories.length > 0) { 199 BCArticleViewProperties["marketing_categories"] = BCArticleMarketingCategories.join(', '); 200 } 201 202 if (Array.isArray(BCArticleTopics) && BCArticleTopics.length > 0) { 203 BCArticleViewProperties["tags"] = BCArticleTopics.join(', '); 204 } 205 206 const BCEventParams = { 207 currentPage: '/uusimmat/' || null, 208 pageType: 'section' || null, 209 dependenciesTimeout: 5000, 210 inHouseAdEnabled: true, 211 articleViewEventEnabled: true, 212 articleViewProperties: BCArticleViewProperties, 213 sessionStartEventEnabled: true, 214 sessionStartProperties: BCSessionStartProperties, 215 recommendationsEnabled: false, 216 recommendationsMaxItems: 3, 217 recommendationsTitle: 'Luitko\u0020jo\u0020n\u00E4m\u00E4\u003F' 218 }; 219 InitializeEventScript(BCEventParams); 220 </script>
220<script> 221 window.BCDatalayer = []; 222 </script>
222<script> 223 (function () { 224 window.BCscriptInjected = false; 225 var scriptSrc = ''; 226 227 scriptSrc = 'https://f444.lansi-uusimaa.fi/script.js'; 228 229 window.addEventListener( 230 "gravito:tcfv2:client", 231 function (event) { 232 let eventType = event.detail.eventType; 233 let consentUpdateEventsList = [ 234 "layer1:opt-out:all", 235 "layer2:opt-out:all", 236 "layer2:opt-in:selected", 237 "layer1:opt-in:all", 238 "layer2:opt-in:all", 239 "opt-in:previously", 240 ]; 241 if (consentUpdateEventsList.includes(eventType) && window.BCscriptInjected === false) { 242 window.BCscriptInjected = true; 243 244 var script = document.createElement("script"); 245 script.src = scriptSrc; 246 document.head.appendChild(script); 247 } 248 }, 249 true 250 ); 251 }()); 252 </script>
252 253
253<script src='https://securepubads.g.doubleclick.net/tag/js/gpt.js' crossorigin="anonymous" async></script>
253<script async src="https://ksml-cdn.relevant-digital.com/static/tags/5dd77b39efdf49603c1ac944.js"></script>
253<script src="https://a.lansi-uusimaa.fi/styles/2efe7af9/js/google/googleTagScript.min.js"></script>
253 254
254<script> 255 const GAM_params = { 256 account: '21684433086' || null, 257 site: 'lansiuusimaa' || null, 258 adsSetToRenderFromPageLevel: ["paraati1","jattiboksi1","jattiboksi2","jattiboksi3","jattiboksi4","boksi1","boksi2","boksi3","boksi4","mobiili1","mobiili2","mobiili3","mobiili4","mobiili5","mobiili6","interstitiaali","topscroll_skin","topscroll_mob"], 259 enableHeaderBiddingManager: true, 260 headerBiddingManagerConfigId: '63b67e66efe61b657feec98d' || null, 261 enableTCF: true, 262 enableSegmentTargeting: true, 263 enableBCSegmentTargeting: true, 264 segmentTargetingTimeout: 200, 265 pianoSegmentTargetingPersistedQueryId: '110c4c9055b4a1f72dc557ca3983bd140a676a7c' || null, 266 enablePianoSegmentTargeting: true, 267 pianoScriptEnabled: true, 268 enablePersonalizationTargeting: true, 269 enableOnBeforeAuctionSetup: true, 270 pageType: 'section', 271 isPaywallArticle: false, 272 isRegistrationWallArticle: false, 273 mw: 300, 274 tw: 750, 275 dw: 1024, 276 inContentAdTextTop: 'Mainos - sisältö jatkuu alla' || 'Mainos - sisältö jatkuu alla', 277 inContentAdTextBottom: 'Mainos päättyy' || 'Mainos päättyy', 278 collapseEmptyDivs: true, 279 disableInitialLoad: true, 280 enableSRA: true, 281 enableLazyLoad: true, 282 fetchMarginPercent: 200, 283 renderMarginPercent: 20, 284 mobileScaling: -1, 285 gamAdUnits: {"paraati1":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[736,552],[980,120],[980,400],[980,552],[980,250],[980,240],[970,250]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[[736,552]],"viewport_width_980":[[736,552],[980,120],[980,400],[980,552],[980,250],[980,240],[970,250]],"viewport_width_1024":[[736,552],[980,120],[980,400],[980,552],[980,250],[980,240],[970,250]],"viewport_width_1200":[[736,552],[980,120],[980,400],[980,552],[980,250],[980,240],[970,250]]}},"section_config":{"show_labels":false,"all_sizes":[[736,552],[980,120],[980,400],[980,552],[980,250],[980,240],[970,250]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[[736,552]],"viewport_width_980":[[736,552],[980,120],[980,400],[980,552],[980,250],[980,240],[970,250]],"viewport_width_1024":[[736,552],[980,120],[980,400],[980,552],[980,250],[980,240],[970,250]],"viewport_width_1200":[[736,552],[980,120],[980,400],[980,552],[980,250],[980,240],[970,250]]},"front_page_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[736,552],[980,120],[980,400],[980,552],[980,250],[980,240],[970,250]],"viewport_width_1024":[[736,552],[980,120],[980,400],[980,552],[980,250],[980,240],[970,250]],"viewport_width_1200":[[736,552],[980,120],[980,400],[980,552],[980,250],[980,240],[970,250]]}}},"jattiboksi1":{"type":"normal","article_config":{"show_labels":true,"all_sizes":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[1,1]],"viewport_width_644":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_768":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]]},"position_inside_article":3,"paywall_config":{"show_labels":false},"comic_config":{"show_labels":false}},"section_config":{"show_labels":false,"all_sizes":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600]],"viewport_width_644":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_768":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]]},"front_page_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]]},"position_inside_section":5,"position_inside_latest":10,"position_inside_most_read":10}}
285,"jattiboksi2":{"type":"normal","article_config":{"show_labels":true,"all_sizes":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2],[1,1]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[970,540],[1,2],[1,1]],"viewport_width_644":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2],[1,1]],"viewport_width_768":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2],[1,1]],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2],[1,1]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2],[1,1]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2],[1,1]]},"position_inside_article":6},"section_config":{"show_labels":false,"all_sizes":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[970,540],[1,2]],"viewport_width_644":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2]],"viewport_width_768":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2]],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2]]},"front_page_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2]]},"position_inside_section":12,"position_inside_latest":20,"position_inside_front_page_large":7,"position_inside_front_page":9}},"jattiboksi3":{"type":"normal","article_config":{"show_labels":true,"all_sizes":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[1,1]],"viewport_width_644":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_768":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]]},"position_inside_article":8},"section_config":{"show_labels":false,"all_sizes":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600]],"viewport_width_644":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_768":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]]},"front_page_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]]},"position_inside_section":19,"position_inside_latest":30,"position_inside_front_page":15}}
285,"jattiboksi4":{"type":"normal","article_config":{"show_labels":true,"all_sizes":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[1,1]],"viewport_width_644":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_768":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]]},"position_inside_article":12},"section_config":{"show_labels":false,"all_sizes":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600]],"viewport_width_644":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_768":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]]},"front_page_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]]},"position_inside_section":25,"position_inside_latest":40,"position_inside_front_page":19}},"jattiboksi5":{"type":"normal","article_config":{"show_labels":true,"all_sizes":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[1,1]],"viewport_width_644":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_768":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]]},"position_inside_article":16},"section_config":{"show_labels":false,"all_sizes":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[620,891]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600]],"viewport_width_644":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_768":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]]},"front_page_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]]},"position_inside_section":31,"position_inside_front_page":25}}
285,"jattiboksi6":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[1,1]],"viewport_width_644":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_768":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]]}}},"boksi1":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]]}}},"boksi2":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]]}}},"boksi3":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1024":[[3
28500,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]]}}},"boksi4":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]]}}},"mobiili1":{"type":"normal","article_config":{"show_labels":true,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[1,1]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[1,1]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_article":3,"paywall_config":{"show_labels":false},"comic_config":{"show_labels":false}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"front_page_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_section":1,"position_inside_latest":10,"position_inside_most_read":5}},"mobiili2":{"type":"normal","article_config":{"show_labels":true,"all_sizes":[[300,533],[300,400],[300,169],[300,210],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[300,240],[1,1]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,210],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[300,240],[1,1]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_article":6,"paywall_config":{"show_labels":false},"comic_config":{"show_labels":false}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,210],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[300,240]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,210],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[300,240]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"front_page_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,210],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[300,240]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,210],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[300,240]],"viewport_width_644":[[3
28500,533],[300,400],[300,169],[300,210],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[300,240]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,210],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[300,240]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_section":5,"position_inside_latest":20,"position_inside_most_read":10}},"mobiili3":{"type":"normal","article_config":{"show_labels":true,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[1,1]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[1,1]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_article":8},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"front_page_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_section":12,"position_inside_latest":30,"position_inside_front_page_large":7,"position_inside_front_page":6}},"mobiili4":{"type":"normal","article_config":{"show_labels":true,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[1,1]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[1,1]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_article":12},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"front_page_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_section":19,"position_inside_latest":40}},"mobiili5":{"type":"normal","article_config":{"show_labels":true,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[1,1]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[1,1]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_article":16},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"front_page_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_644":[[3
28500,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_section":25,"position_inside_front_page":6}},"mobiili6":{"type":"normal","article_config":{"show_labels":true,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[1,1]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[1,1]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_article":20},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"front_page_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_section":31,"position_inside_front_page":9}},"mobiili7":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[1,1]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[1,1]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"front_page_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_front_page":15}},"mobiili8":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[1,1]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[1,1]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"front_page_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_644":[[3
28500,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_front_page":19}},"mobiili9":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[1,1]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[1,1]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"front_page_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_front_page":25}},"mobiili10":{"type":"normal","section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"front_page_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}}},"interstitiaali":{"type":"outofpage","article_config":{"show_labels":false,"default_sizes":{"viewport_width_0":[1,1],"viewport_width_492":[1,1],"viewport_width_644":[1,1],"viewport_width_768":[1,1],"viewport_width_980":[1,1],"viewport_width_1024":[1,1],"viewport_width_1200":[1,1]}},"section_config":{"show_labels":false,"default_sizes":{"viewport_width_0":[1,1],"viewport_width_492":[1,1],"viewport_width_644":[1,1],"viewport_width_768":[1,1],"viewport_width_980":[1,1],"viewport_width_1024":[1,1],"viewport_width_1200":[1,1]}}},"topscroll_skin":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[1,2],[970,170],[970,970],[1600,1150]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[1,2],[970,970]],"viewport_width_644":[[1,2],[970,970]],"viewport_width_768":[[1,2],[970,970]],"viewport_width_980":[[1,2],[970,970]],"viewport_width_1024":[[1,2],[970,970]],"viewport_width_1200":[[1,2],[970,970]]},"narrow_layout_sizes":{"viewport_width_0":[],"viewport_width_492":[[1,2],[970,970]],"viewport_width_644":[[1,2],[970,970]],"viewport_width_768":[[1,2],[970,970]],"viewport_width_980":[[1,2],[970,970]],"viewport_width_1024":[[1,2],[970,970]],"viewport_width_1200":[[1,2],[970,170],[970,970],[1600,1150]]}},"section_config":{"show_labels":false,"all_sizes":[[1,2],[970,170],[970,970],[1600,1150]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[1,2],[970,970]],"viewport_width_644":[[1,2],[970,970]],"viewport_width_768":[[1,2],[970,970]],"viewport_width_980":[[1,2],[970,970]],"viewport_width_1024":[[1,2],[970,970]],"viewport_width_1200":[[1,2],[970,970]]},"narrow_layout_sizes":{"viewport_width_0":[],"viewport_width_492":[[1,2],[970,970]],"viewport_width_644":[[1,2],[970,970]],"viewport_width_768":[[1,2],[970,970]],"viewport_width_980":[[1,2],[970,970]],"viewport_width_1024":[[1,2],[970,970]],"viewport_width_1200":[[1,2],[970,170],[970,970],[1600,1150]]}}}
285,"topscroll_mob":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[1,2],[300,220]],"default_sizes":{"viewport_width_0":[[1,2],[300,220]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}},"section_config":{"show_labels":false,"all_sizes":[[1,2],[300,220]],"default_sizes":{"viewport_width_0":[[1,2],[300,220]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}}}}, 286 gamNativeAdPageAdUnits: {"natiiviboksi1":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]]}}},"natiiviboksi2":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]]}}},"natiiviboksi3":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]]}}},"natiiviboksi4":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1024":[[3
28600,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]]}}},"natiivimobiili1":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}}},"natiivimobiili2":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}}},"natiivimobiili3":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_644":[[3
28600,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}}},"natiivimobiili4":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}}}}, 287 gamNativeAdPageSite: 'natiivikoonti' || 'natiivikoonti', 288 adSlotPrefix: 'gam-ad-' || 'gam-ad-', 289 isFrontPage: false, 290 isNarrowLayoutFromPageLevel: true, 291 isComicArticle: false, 292 isPreview: false, 293 isNativeAdPage: false, 294 previewAdUnits: ["mobiili1","mobiili2","mobiili3","mobiili4","mobiili5","mobiili6","mobiili7","mobiili8","mobiili9","mobiili10"], 295 skipLinksEnabled: true, 296 appendMarketingCategoriesToTopics: true, 297 enableLocationPrompt: false 298 } 299 InitializeGoogleScript(GAM_params) 300 </script>
300 301
301<script type='text/javascript'> 302 (function() { 303 /** CONFIGURATION START **/ 304 var _sf_async_config = window._sf_async_config = (window._sf_async_config || {}); 305 _sf_async_config.uid = 60754; 306 _sf_async_config.domain = location.host.replace("www.",""); 307 _sf_async_config.flickerControl = false; 308 _sf_async_config.useCanonical = true; 309 _sf_async_config.useCanonicalDomain = true; 310 /** CONFIGURATION END **/ 311 })(); 312 </script>
312<script> 313 function configureChartbeat(userType) { 314 /** CONFIGURATION START **/ 315 var _sf_async_config = window._sf_async_config = (window._sf_async_config || {}); 316 _sf_async_config.sections = pageData && pageData.section ? pageData.section.name : ''; 317 _sf_async_config.authors = pageData && pageData.article && Array.isArray(pageData.article.authors) ? pageData.article.authors.toString() : ''; 318 319 if (userType) { 320 var _cbq = window._cbq = (window._cbq || []); 321 _cbq.push(['_acct', userType]); 322 } 323 /** CONFIGURATION END **/ 324 function loadChartbeat() { 325 var e = document.createElement('script'); 326 var n = document.getElementsByTagName('script')[0]; 327 e.type = 'text/javascript'; 328 e.async = true; 329 e.src = 'https://static.chartbeat.com/js/chartbeat.js'; 330 n.parentNode.insertBefore(e, n); 331 } 332 loadChartbeat(); 333 }; 334 335 if (typeof JankkoSSOClient !== 'undefined') { 336 JankkoSSOClient.getSession().then(function(data) { 337 if (data && data.user && data.user.id) { 338 var userType = Array.isArray(data.permissions) && data.permissions.includes("paywall") ? 'paid' : 'lgdin'; 339 340 configureChartbeat(userType); 341 } else { 342 configureChartbeat('anon'); 343 } 344 }).catch(function(error) { 345 configureChartbeat('anon'); 346 }); 347 } else { 348 configureChartbeat('anon'); 349 } 350 </script>
350 351
351<script> 352 const gtmContainerId = 'GTM-KTJNB7R'; 353 const sendDatalayerPush = Boolean(1); 354 const context = 'sec'; 355 356 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 357 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 358 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 359 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 360 })(window,document,'script','dataLayer',gtmContainerId); 361 362 if (sendDatalayerPush) { 363 window.dataLayer.push({'event':'pageDataPush','pageData': window.pageData}); 364 } 365 366 (async function () { 367 const paywallEnabled = window?.pageData?.publication?.paywallEnabled ?? true; 368 const registrationWallEnabled = window?.pageData?.publication?.registrationWallEnabled ?? true; 369 370 const user = {}; 371 const companyUser = {}; 372 373 let articleState; 374 let articlePaywall = 'free'; // free is always the safer fallback 375 376 if (context === 'art') { 377 if (window?.pageData?.article?.effectivePaywall) { 378 articlePaywall = window.pageData.article.effectivePaywall; 379 } else if (window?.pageData?.article?.paywall){ 380 articlePaywall = window.pageData.article.paywall; 381 } 382 383 if ((articlePaywall === 'free' || !paywallEnabled) || (articlePaywall === "registered" && !registrationWallEnabled)) { 384 articleState = "full"; 385 } 386 else { 387 articleState = 'preview'; 388 } 389 } 390 391 function getCookie(name) { 392 name = name + '='; 393 const decodedCookie = decodeURIComponent(document.cookie); 394 const cookies = decodedCookie.split(';'); 395 for (let i = 0; i < cookies.length; i++) { 396 const cookie = cookies[i].trim(); 397 if (cookie.indexOf(name) === 0) { 398 return cookie.substring(name.length, cookie.length); 399 } 400 } 401 } 402 403 function pushDataLayerEvent() { 404 let segmentsCookie = getCookie('jankkosegments'); 405 406 if (segmentsCookie) { 407 let segmentsData = JSON.parse(segmentsCookie); 408 let segments = segmentsData.segments; 409 410 if (segments && typeof segments === 'object') { 411 user.segments = segments; 412 } 413 } 414 const pageData = { 415 'user': user,
416 'companyUser': companyUser 417 }; 418 if (context === 'art') { 419 pageData.article = { 'state': articleState }; 420 } 421 if (sendDatalayerPush) { 422 window.dataLayer.push({'event': 'userDataPush', 'pageData': pageData }); 423 } 424 } 425 426 async function modifyDatalayerData() { 427 const sessionData = await JankkoSSOClient.getSession(); 428 if (!sessionData) { 429 return; 430 } 431 432 user.id = sessionData?.personal?.personal_user_id; 433 user.products = sessionData?.personal?.personal_active_products; 434 user.permissions = sessionData?.personal?.personal_permissions; 435 436 companyUser.id = sessionData?.company?.company_user_id ?? null; 437 companyUser.products = sessionData?.company?.company_active_products ?? null; 438 companyUser.permissions = sessionData?.company?.company_permissions ?? null; 439 440 const permissions = sessionData?.permissions ?? []; 441 if (context === 'art') { 442 var userIsLoggedIn = false;if ((articlePaywall != "free" && permissions.includes("paywall") && articlePaywall != "registered") || (userIsLoggedIn === true && articlePaywall === "registered")) { 443 articleState = "full"; 444 } 445 } 446 } 447 448 try { 449 await modifyDatalayerData(); 450 } 451 catch (error) { 452 console.warn(error); 453 } 454 455 pushDataLayerEvent(); 456 }()); 457 458 </script>
458 459 460 </head> 461 <body class="diks-body diks-body--page-type-section"> 462 <!-- Google Tag Manager (noscript) -->
vendor: 72 bytes, lines 462-463
462 463 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
463GTM-KTJNB7R
vendor: 95 bytes, lines 463-465
463" 464 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 465
465<!-- End Google Tag Manager (noscript) --> 466
466<script src='/gravito-cmp.js'></script>
466 467 468 <div class="diks-out-of-page-display-ad-container"><div class="diks-display-ad rs_skip" aria-hidden="true"> 469 <div class="diks-display-ad__unit" id="gam-ad-interstitiaali" style="width:0;height:0;margin:0;padding:0;"> 470
470<script>googletag.cmd.push(function() { googletag.display('gam-ad-interstitiaali'); });</script>
470 471 </div> 472 </div></div> 473 474 475 <header id="main-header" class="diks-header diks-header diks-header--is-fixed"> 476 <div class="diks-skip-link-navigation diks-skip-link-navigation--top"> 477 <ul class="diks-navigation diks-navigation--skip-links"> 478 <li class="diks-navigation__item"> 479 <a class="diks-button diks-button--primary diks-a11y__screen-reader diks-a11y__screen-reader--focusable" href="#sisalto" >Siirry suoraan sisältöön</a> 480 </li> 481 </ul> 482 </div> 483 484 <div class="diks-header-wrapper"> 485 <div class="diks-container diks-container--header"> 486 <div class="diks-header-container"><div class="diks-header__navigation-container diks-header__navigation-container--left"> 487 <button class="diks-button diks-button--icon-only diks-button--ghost diks-navigation__link js-diks-toggler diks-dropdown-toggler diks-dropdown-toggler--main" id="diks-dropdown-toggle" data-toggle="diks-dropdown-navigation" aria-expanded="false" aria-controls="diks-dropdown-navigation" aria-label="Valikko"><span class="diks-icon diks-icon--size-m" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 488 <path fill-rule="evenodd" d="M22 6H2V4H22V6ZM22 13H2V11H22V13ZM22 20H2V18H22V20Z" clip-rule="evenodd"/> 489</svg> 490</span><span class="diks-icon diks-icon--size-m diks-icon--hidden" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 491 <path fill-rule="evenodd" d="M10.5858 12L4.2218 5.63603L5.63602 4.22182L12 10.5858L18.3639 4.22183L19.7782 5.63605L13.4142 12L19.7782 18.364L18.3639 19.7782L12 13.4142L5.63602 19.7782L4.2218 18.364L10.5858 12Z" clip-rule="evenodd"/> 492</svg> 493</span></button> 494 495 <div class="diks-dropdown-navigation" id="diks-dropdown-navigation"> 496 <button id="diks-close-dropdown-main-nav" class="diks-button diks-button--outline diks-dropdown-navigation__close-button diks-a11y__screen-reader diks-a11y__screen-reader--focusable">Sulje valikko</button><div class="diks-dropdown-navigation__sign-container"> 497 <img src="https://a.lansi-uusimaa.fi/styles/2efe7af9/images/logos/keskisuomalainen-sign.svg" class="diks-logo diks-dropdown-navigation__sign" alt="Keskisuomalainen Oyj"> 498 </div><form id="dropdown-navigation-search" name="dropdownnavigationsearch" class="diks-form diks-form--fluid" action="/haku/" method="get"> 499 <div class="diks-form__field-wrapper diks-form__field-wrapper--padding-right diks-form__field-wrapper--required"><input class="diks-form__field" type="search" name="q" id="dropdown-navigation-searchSearch1" aria-label="Haku" placeholder="Hae sivustolta" required value=""></div> 500 501 <div class="diks-form__field-wrapper diks-form__field-wrapper--submit-button-icon-only"> 502 <button class="diks-form__submit" type="submit" id="dropdown-navigation-searchSubmitbutton2"><span class="diks-icon diks-icon--color-primary" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 503 <path fill-rule="evenodd" d="M9.5 4C6.46243 4 4 6.46243 4 9.5C4 12.5376 6.46243 15 9.5 15C12.5376 15 15 12.5376 15 9.5C15 6.46243 12.5376 4 9.5 4ZM2 9.5C2 5.35786 5.35786 2 9.5 2C13.6421 2 17 5.35786 17 9.5C17 11.2106 16.4273 12.7874 15.4632 14.0493L19.7782 18.3642L18.3639 19.7784L14.049 15.4634C12.7872 16.4274 11.2105 17 9.5 17C5.35786 17 2 13.6421 2 9.5Z" clip-rule="evenodd"/> 504</svg> 505</span>Hae 506 </button> 507 </div> 508 </form> <nav class="diks-navigation-wrapper diks-navigation-wrapper--border-bottom diks-navigation-wrapper--border-top" ><ul class="diks-navigation diks-navigation--row diks-navigation--mobile-row diks-navigation--no-active-links diks-navigation--size-s" id="dropdown-highlights-nav"><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/asenna/">Sovellus</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/nakoislehti/">Lehdet</a></li><li class="diks-navigation__item diks-navigation__item--button diks-navigation__item--align-right diks-hide-from-subscribers" ><a class="diks-navigation__link diks-bc-order-button" href="/jatka/">Tilaa</a></li></ul> 509 </nav> <nav class="diks-navigation-wrapper diks-navigation-wrapper--divider-bottom" ><ul class="diks-navigation diks-navigation--no-active-links diks-navigation--size-s" id="dropdown-customer-upper-nav"><li class="diks-navigation__item " ><a class="diks-navigation__link " href="https://oma.media.fi/lansi-uusimaa/"><span class="diks-icon diks-icon--size-m" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 510 <path d="M17 8H22V17H19.1875V20.8125L14.1045 17H9V13.4307L4.4375 17.0811V13H2V3H17V8ZM17 13H11V15H14.7705L17.1875 16.8125V15H20V10H17V13ZM4 11H6.4375V12.918L8.5625 11.2188L8.83691 11H15V5H4V11Z"/> 511</svg> 512</span>Asiakaspalvelu</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="https://oma.media.fi/lansi-uusimaa/yhteystiedot/juttuvinkki/"><span class="diks-icon diks-icon--size-m" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 513 <path fill-rule="evenodd" d="M7.38197 4H16.618L17.618 6H22V20H2V6H6.38197L7.38197 4ZM8.61803 6L7.61803 8H4V18H20V8H16.382L15.382 6H8.61803ZM12 11C10.8954 11 10 11.8954 10 13C10 14.1046 10.8954 15 12 15C13.1046 15 14 14.1046 14 13C14 11.8954 13.1046 11 12 11ZM8 13C8 10.7909 9.79086 9 12 9C14.2091 9 16 10.7909 16 13C16 15.2091 14.2091 17 12 17C9.79086 17 8 15.2091 8 13Z" clip-rule="evenodd"/> 514</svg> 515</span>Lähetä juttuvinkki</a></li></ul> 516 </nav> <nav class="diks-navigation-wrapper " ><ul class="diks-navigation diks-navigation--light" id="dropdown-section-nav"><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/">Etusivu</a></li><li class="diks-navigation__item diks-navigation__item--active" aria-current="page"><a class="diks-navigation__link " href="/uusimmat/">Uusimmat</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/luetuimmat/">Luetuimmat</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/aihe/lohjan-palveluverkko">Lohjan palveluverkko</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/aihe/tassa-tyossa">Tässä työssä</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/aihe/vierailulla">Vierailulla</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/aihe/Paikallisurheilu">Paikallisurheilu</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/aihe/Lohja">Lohja</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/paakirjoitus-mielipide">Pääkirjoitus & Mielipide</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/aihe/maakunta-uusimaa">Uusimaa 360</a></li></ul> 517 </nav><!-- ESI start element "recommendedTopics" generated at 02-10-2026 14:49:57.130210 --> <nav class="diks-navigation-wrapper diks-navigation-wrapper--divider-top" ><ul class="diks-navigation diks-navigation--light diks-navigation--size-s" ><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/aihe/koemaistaja">Koemaistaja</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/aihe/lohjan-hankintakohu">Lohjan hankintakohu</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/aihe/lansi-uusimaa-selvitti">Länsi-Uusimaa selvitti</a></li><li class="diks-navigation__item " >
517<a class="diks-navigation__link " href="/aihe/Hyv%C3%A4t_uutiset">Hyvät uutiset</a></li></ul> 518 </nav><!-- ESI end element "recommendedTopics" --><!-- ESI start element "promotedAdvertisers" generated at 02-10-2026 14:50:25.822614 --><!-- ESI end element "promotedAdvertisers" --> <nav class="diks-navigation-wrapper diks-navigation-wrapper--divider-top" ><h2 class="diks-navigation__title">Yhteystiedot</h2><ul class="diks-navigation diks-navigation--light diks-navigation--size-s" id="dropdown-customer-nav"><li class="diks-navigation__item " ><a class="diks-navigation__link " href="https://meks.fi/mainonta/alueet/etela-suomen-media/">Mediamyynti</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="https://oma.media.fi/lansi-uusimaa/yhteystiedot/">Kaikki yhteystiedot</a></li></ul> 519 </nav><div class="diks-navigation-wrapper diks-navigation-wrapper--divider-top"><h2 class="diks-navigation__title">Ulkoasu</h2><label for="diks-darkmode-toggler" class="diks-form__switch"> 520 <span class="diks-form__switch-label"><span class="diks-icon diks-icon--size-m" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 521 <path fill-rule="evenodd" d="M13.7547 1.76065L11.7581 3.75666C10.6708 4.8436 10 6.34252 10 8C10 11.3137 12.6863 14 16 14C17.6575 14 19.1564 13.3292 20.2433 12.2419L22.2394 10.2453L21.9451 13.0531C21.4182 18.0815 17.1674 22 12 22C6.47715 22 2 17.5229 2 12C2 6.83263 5.91855 2.58178 10.9469 2.05488L13.7547 1.76065ZM8.70749 4.70657C5.93176 5.9617 4 8.75566 4 12C4 16.4183 7.58172 20 12 20C15.2443 20 18.0383 18.0682 19.2934 15.2925C18.289 15.7468 17.1738 16 16 16C11.5817 16 8 12.4183 8 8C8 6.82623 8.25316 5.71105 8.70749 4.70657Z" clip-rule="evenodd"/> 522</svg> 523</span>Käytä tummaa tilaa</span> 524 <div class="diks-form__switch-wrapper"> 525 <input id="diks-darkmode-toggler" class="diks-form__switch-input" type="checkbox"> 526 <span class="diks-form__switch-slider"></span> 527 </div> 528 </label> 529 </div></div> <nav class="diks-navigation-wrapper " ><ul class="diks-navigation diks-navigation--main diks-navigation--size-s diks-navigation--row diks-navigation--mobile-row diks-navigation--no-active-links diks-hide-below-large" ><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/uusimmat/"><span class="diks-icon diks-hide-above-large" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 530 <path fill-rule="evenodd" d="M12 4a8 8 0 100 16 8 8 0 000-16zM2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10S2 17.523 2 12zm9-6h2v5.586l2.707 2.707-1.414 1.414L11 12.414V6z" clip-rule="evenodd"/> 531</svg> 532</span>Uusimmat</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/luetuimmat/"><span class="diks-icon diks-hide-above-large" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 533 <path fill-rule="evenodd" d="M11.03 3.455c1.168-1.438 3.495-.652 3.55 1.2l.117 3.845h6a1.25 1.25 0 0 1 1.229 1.484l-1.905 10A1.25 1.25 0 0 1 18.793 21H9.06a1.25 1.25 0 0 1-.559-.132L6.764 20H3.25C2.56 20 2 19.44 2 18.75v-8.5C2 9.56 2.56 9 3.25 9h3.274l4.506-5.545ZM8 10.355v8.027L9.236 19h8.936l1.62-8.5h-5.58a1.5 1.5 0 0 1-1.499-1.455l-.131-4.33L8 10.356Zm10.056 9.255ZM4 11v7h2v-7H4Zm14.793 8.75.145.027Z" clip-rule="evenodd"/> 534</svg> 535</span>Luetuimmat</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/nakoislehti/"><span class="diks-icon diks-hide-above-large" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 536 <path fill-rule="evenodd" d="M4 2H20V22H4V2ZM6 4V20H18V4H6ZM8 6H16V12H8V6ZM10 8V10H14V8H10ZM16 15H8V13H16V15ZM16 18H8V16H16V18Z" clip-rule="evenodd"/> 537</svg> 538</span>Lehdet</a></li><li class="diks-navigation__item diks-navigation__item--button diks-navigation__item--align-right diks-hide-above-medium diks-hide-from-subscribers" ><a class="diks-navigation__link diks-bc-order-button" href="/jatka/">Tilaa</a></li></ul> 539 </nav></div><div class="diks-header__logo-container"><a class="diks-logo__link diks-header__logo-link diks-header__main-logo-link" href="/"><img src="https://a.lansi-uusimaa.fi/styles/2efe7af9/images/logos/lansi-uusimaa.svg" class="diks-logo diks-logo--default diks-header__logo diks-header__main-logo" alt="Länsi-Uusimaa"><img src="https://a.lansi-uusimaa.fi/styles/2efe7af9/images/logos/lansi-uusimaa-white.svg" class="diks-logo diks-logo--darkmode diks-header__logo diks-header__main-logo" alt="Länsi-Uusimaa"></a> 540 </div><div class="diks-header__navigation-container diks-header__navigation-container--right"><a class="diks-bc-order-button diks-button diks-button--primary diks-button--size-m diks-hide-from-subscribers diks-hide-below-medium " href="/jatka/">Tilaa</a><div class="diks-user-navigation-wrapper"> 541 <button class="diks-button diks-button--icon-only diks-button--ghost diks-navigation__link diks-dropdown-toggler diks-dropdown-toggler--user" aria-expanded="false" id="diks-sso-user" data-diks-toggle="diks-user-navigation" data-diks-toggle-class="diks-user-navigation" aria-controls="diks-user-navigation"><span class="diks-icon diks-icon--size-m" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 542 <path fill-rule="evenodd" d="M4 12a8 8 0 1 1 13.496 5.814c-1.216-1.593-3.262-2.602-5.491-2.602-2.231 0-4.28 1.011-5.495 2.607A7.978 7.978 0 0 1 4 12Zm4.04 6.953A7.963 7.963 0 0 0 12 20a7.964 7.964 0 0 0 3.966-1.05c-.83-1.087-2.254-1.84-3.961-1.84-1.71 0-3.135.754-3.965 1.843ZM12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2Zm.005 5.898c-1.247 0-2.305 1.049-2.305 2.4 0 1.353 1.058 2.402 2.305 2.402s2.305-1.05 2.305-2.401c0-1.352-1.058-2.4-2.305-2.4Zm-4.203 2.4C7.802 7.952 9.658 6 12.005 6c2.347 0 4.203 1.95 4.203 4.299 0 2.348-1.856 4.299-4.203 4.299-2.347 0-4.203-1.951-4.203-4.3Z" clip-rule="evenodd"/> 543</svg> 544</span><span class="diks-icon diks-icon--size-m diks-icon--hidden" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 545 <path fill-rule="evenodd" d="M10.5858 12L4.2218 5.63603L5.63602 4.22182L12 10.5858L18.3639 4.22183L19.7782 5.63605L13.4142 12L19.7782 18.364L18.3639 19.7782L12 13.4142L5.63602 19.7782L4.2218
54518.364L10.5858 12Z" clip-rule="evenodd"/> 546</svg> 547</span></button> 548 549 <div class="diks-navigation diks-sub-navigation diks-user-navigation" id="diks-user-navigation"> 550 <button id="diks-close-dropdown-user-nav" class="diks-button diks-button--outline diks-dropdown-navigation__close-button diks-a11y__screen-reader diks-a11y__screen-reader--focusable">Sulje valikko</button> 551 <p id="diks-sso-username" class="diks-user-navigation__username diks-hide-from-company-subscribers"></p><p class="diks-user-navigation__username diks-show-for-company-subscribers">Yritystilaus tunnistettu</p><div class="diks-show-for-company-subscribers"><p>Voit käyttää palvelun kaikkia sisältöjä vapaasti. Jos haluat kommentoida, kirjaudu sisään henkilökohtaisella Mediatunnuksella.</p></div> <ul class="diks-navigation diks-navigation--size-m" id="diks-sso-links"><li class="diks-navigation__item " ><a class="diks-navigation__link " href="javascript:window.gravito.cmp.openPreferences();">Evästevalinnat</a></li></ul> 552 </div> 553</div> 554 </div> 555 </div> 556 </div> 557 </div><div class="diks-section-navigation-wrapper"> 558 <div class="diks-container diks-container--narrow-mobile diks-container--full-width-before-l"> 559 <nav class="diks-navigation-wrapper diks-navigation-wrapper--border-bottom" aria-label="Osastovalikko"><ul class="diks-navigation diks-navigation--row diks-navigation--light diks-navigation--centered diks-navigation--mobile-row diks-navigation--draggable diks-navigation--size-xs diks-navigation--active-subtle" id="osastovalikko"><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/aihe/lohjan-palveluverkko"draggable="false">Lohjan palveluverkko</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/aihe/tassa-tyossa"draggable="false">Tässä työssä</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/aihe/vierailulla"draggable="false">Vierailulla</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/aihe/Paikallisurheilu"draggable="false">Paikallisurheilu</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/aihe/Lohja"draggable="false">Lohja</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/paakirjoitus-mielipide"draggable="false">Pääkirjoitus & Mielipide</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/aihe/maakunta-uusimaa"draggable="false">Uusimaa 360</a></li></ul> 560 </nav> 561 </div> 562 </div><div class="diks-quicklinks-wrapper"> 563 <div class="diks-container diks-container--narrow-mobile"> 564 <nav class="diks-navigation-wrapper " ><ul class="diks-navigation diks-navigation--main diks-navigation--size-s diks-navigation--row diks-navigation--mobile-row diks-navigation--no-active-links diks-navigation--centered diks-hide-above-large" ><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/uusimmat/"><span class="diks-icon diks-hide-above-large" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 565 <path fill-rule="evenodd" d="M12 4a8 8 0 100 16 8 8 0 000-16zM2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10S2 17.523 2 12zm9-6h2v5.586l2.707 2.707-1.414 1.414L11 12.414V6z" clip-rule="evenodd"/> 566</svg> 567</span>Uusimmat</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/luetuimmat/"><span class="diks-icon diks-hide-above-large" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 568 <path fill-rule="evenodd" d="M11.03 3.455c1.168-1.438 3.495-.652 3.55 1.2l.117 3.845h6a1.25 1.25 0 0 1 1.229 1.484l-1.905 10A1.25 1.25 0 0 1 18.793 21H9.06a1.25 1.25 0 0 1-.559-.132L6.764 20H3.25C2.56 20 2 19.44 2 18.75v-8.5C2 9.56 2.56 9 3.25 9h3.274l4.506-5.545ZM8 10.355v8.027L9.236 19h8.936l1.62-8.5h-5.58a1.5 1.5 0 0 1-1.499-1.455l-.131-4.33L8 10.356Zm10.056 9.255ZM4 11v7h2v-7H4Zm14.793 8.75.145.027Z" clip-rule="evenodd"/> 569</svg> 570</span>Luetuimmat</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/nakoislehti/"><span class="diks-icon diks-hide-above-large" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 571 <path fill-rule="evenodd" d="M4 2H20V22H4V2ZM6 4V20H18V4H6ZM8 6H16V12H8V6ZM10 8V10H14V8H10ZM16 15H8V13H16V15ZM16 18H8V16H16V18Z" clip-rule="evenodd"/> 572</svg> 573</span>Lehdet</a></li><li class="diks-navigation__item diks-navigation__item--button diks-navigation__item--align-right diks-hide-above-medium diks-hide-from-subscribers" ><a class="diks-navigation__link diks-bc-order-button" href="/jatka/">Tilaa</a></li></ul> 574 </nav> 575 </div> 576 </div><div id="diks-dropdown-navigation-shade" class="diks-dropdown-navigation-shade"></div></header>
576<script src="/theme/css/includes/waypoints/lib/noframework.waypoints.min.js"></script>
576 577
577<script> 578 // Fix forEach for IE 579 if (window.NodeList && !NodeList.prototype.forEach) { 580 NodeList.prototype.forEach = Array.prototype.forEach; 581 } 582 583 // Element.closest() needs a polyfill for older browsers. 584 // While we only need the closest() functionality for mobile browsers, 585 // we don't want the code to fail even on old desktop browsers. 586 // https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill 587 // https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Browser_compatibility 588 if (!Element.prototype.matches) { 589 Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector; 590 } 591 592 if (!Element.prototype.closest) { 593 Element.prototype.closest = function(s) { 594 var el = this; 595 596 do { 597 if (el.matches(s)) return el; 598 el = el.parentElement || el.parentNode; 599 } while (el !== null && el.nodeType === 1); 600 return null; 601 }; 602 } 603 604 (function () { 605 if (typeof JankkoSSOClient !== 'undefined') { 606 var stringToHTML = function (htmlString) { 607 var div = document.createElement('div'); 608 div.innerHTML = htmlString.trim(); 609 return div.firstChild; 610 }; 611 612 var showUserRelatedItems = function(personalData) { 613 var usernameElement = document.querySelector('#diks-sso-username'); 614 if (usernameElement) { 615 usernameElement.innerHTML = personalData.full_name; 616 } 617 618 var linksElement = document.querySelector('#diks-sso-links'); 619 if (linksElement) { 620 var myAccountLink = stringToHTML('<li class="diks-navigation__item"><a class="diks-navigation__link" href="'+JankkoSSOClient.serviceUrls.myAccount+'">Omat tiedot</a></li>'); 621 var logoutForm = stringToHTML('<li class="diks-navigation__item diks-navigation__item--logout"><form id="logout-form" action="'+JankkoSSOClient.serviceUrls.logout+'" method="post"><input class="diks-navigation__link" type="submit" value="Kirjaudu ulos"></form></li>'); 622 linksElement.insertBefore(myAccountLink, linksElement.childNodes[0]); 623 linksElement.appendChild(logoutForm); 624 } 625 626 var htmlElement = document.querySelector('.diks-user--is-not-logged-in'); // Class is set to main html element 627 if (htmlElement) { 628 htmlElement.classList.replace('diks-user--is-not-logged-in', 'diks-user--is-logged-in'); 629 } 630 } 631 632 var showMenuLinksForLoggedOutUser = function() { 633 const linksElement = document.querySelector('#diks-sso-links'); 634 if (!linksElement) { 635 return; 636 } 637 638 // Pidetään vain tietyt query-parametrit. Alunperin tässä poistettiin kaikki query-parametrit. 639 // @todo Selvitetään voisiko tässä sallia kaikki query-parametrit. 640 const currentUrlObject = new URL(window.location.href); 641 const returnUrlObject = new URL(`${currentUrlObject.origin}${currentUrlObject.pathname}`); 642 const allowedParams = ['limit-active-products']; 643 allowedParams.forEach(function(name) { 644 if (currentUrlObject.searchParams.get(name)) { 645 returnUrlObject.searchParams.set(name, currentUrlObject.searchParams.get(name)); 646 } 647 }); 648 649 const loginPageUrlObject = new URL(`${window.location.origin}/kirjaudu/`); 650 loginPageUrlObject.searchParams.set('returnUrl', returnUrlObject.toString()); 651 const loginLinkString = `<li class="diks-navigation__item"><a class="diks-navigation__link" href="${loginPageUrlObject.toString()}">Kirjaudu</a></li>`; 652 653 linksElement.insertBefore(stringToHTML(loginLinkString), linksElement.childNodes[0]); 654 } 655 656 var showCompanyUserRelatedItems = function(companyData) { 657 var htmlElement = document.querySelector('.diks-user--is-not-company-subscriber'); // Class is set to main html element 658 var permissions = companyData?.company_permissions || []; 659 if (htmlElement && permissions.length) { 660 htmlElement.classList.replace('diks-user--is-not-company-subscriber', 'diks-user--is-company-subscriber'); 661 } 662 } 663 664 document.addEventListener("DOMContentLoaded", async function() { 665 try { 666 const data = await JankkoSSOClient.getSession(); 667 if (data.company?.company_user_id) { 668 showCompanyUserRelatedItems(data.company); 669 }
670 if (data.personal?.personal_user_id) { 671 showUserRelatedItems(data.personal); 672 } else { 673 showMenuLinksForLoggedOutUser(); 674 } 675 } catch (error) { 676 showMenuLinksForLoggedOutUser(); 677 } 678 }); 679 } 680 }()); 681 682 683 ////////////////////////////////////////////////////////////////////////////////////////// 684 // NAVIGATIONS 685 ////////////////////////////////////////////////////////////////////////////////////////// 686 687 // Toggle icon inside a toggler 688 function toggleTogglerIcon(toggler) { 689 togglerIcons = toggler.querySelectorAll('.diks-icon'); 690 if ( togglerIcons.length > 1 ) { 691 for (var j= 0; j < togglerIcons.length; j++) { 692 togglerIcons[j].classList.toggle('diks-icon--hidden'); 693 } 694 } 695 } 696 697 // Function for closing all dropdown navigations 698 function closeAllDropdownNavigations() { 699 closeMainDropdownNavigation(); 700 closeUserDropdownNavigation(); 701 } 702 703 // Close main nav or user nav if hidden screen reader only close navigation button is clicked 704 let closeDropdownMainNav = document.getElementById('diks-close-dropdown-main-nav'); 705 let closeDropdownUserNav = document.getElementById('diks-close-dropdown-user-nav'); 706 if ( closeDropdownMainNav ) { 707 closeDropdownMainNav.addEventListener('click', function() { 708 closeMainDropdownNavigation(); 709 }); 710 } 711 if ( closeDropdownUserNav ) { 712 closeDropdownUserNav.addEventListener('click', function(e) { 713 e.stopPropagation(); 714 closeUserDropdownNavigation(); 715 }); 716 } 717 718 // Trap focus inside opened dropdown navigation 719 document.addEventListener('keydown', function(event) { 720 // Initialize variables 721 var ssoLinks = document.getElementById('diks-sso-links'); 722 var linksUserNav = ""; 723 var firstElUserNav = ""; 724 var lastElUserNav = ""; 725 var mainDropdownLastNavLinks = document.getElementById('dropdown-customer-nav'); // Last navigation element inside of main dropdown navigation 726 var linksMainDropdownNav = ""; 727 var firstElMainDropdownNav = "" 728 var lastElMainDropdownNav = ""; 729 730 // Set user nav variable values if SSO links exist 731 if (ssoLinks) { 732 linksUserNav = ssoLinks.querySelectorAll('.diks-navigation__link'); 733 firstElUserNav = document.getElementById('diks-close-dropdown-user-nav'); 734 lastElUserNav = linksUserNav[linksUserNav.length - 1]; 735 } 736 737 // Set main dropdown nav variable values if main dropdown last nav links exist 738 if (mainDropdownLastNavLinks) { 739 linksMainDropdownNav = mainDropdownLastNavLinks.querySelectorAll('.diks-navigation__link'); 740 firstElMainDropdownNav = document.getElementById('diks-close-dropdown-main-nav'); 741 lastElMainDropdownNav = linksMainDropdownNav[linksMainDropdownNav.length - 1]; 742 } 743 744 // If darkmode-toggler is found set it as the last element of main dropdown nav 745 if ( document.getElementById('diks-darkmode-toggler') ) { 746 lastElMainDropdownNav = document.getElementById('diks-darkmode-toggler'); 747 } 748 749 // Close all dropdown navigations & reposition fixed header when ESC key is pressed 750 if (event.key === "Escape" || event.key === "Esc") { 751 closeAllDropdownNavigations(); 752 } 753 // Trap focus inside user navigation and/or main dropdown navigation when they are open 754 if (event.keyCode === 9) { 755 if (event.shiftKey && (document.activeElement === firstElUserNav || document.activeElement === firstElMainDropdownNav)) { 756 event.preventDefault(); 757 if (document.activeElement === firstElUserNav) { 758 lastElUserNav.focus(); 759 } 760 else if ( document.activeElement === firstElMainDropdownNav ) { 761 lastElMainDropdownNav.focus(); 762 } 763 } 764 else if (!event.shiftKey && (document.activeElement === lastElUserNav || document.activeElement === lastElMainDropdownNav)) { 765 event.preventDefault(); 766 if (document.activeElement === lastElUserNav) { 767 firstElUserNav.focus(); 768 } 769 else if ( document.activeElement === lastElMainDropdownNav ) { 770 firstElMainDropdownNav.focus(); 771 } 772 } 773 } 774 }); 775 776 777 ////////////////////////////////////////////////////////////////////////////////////////// 778 // User navigation 779 ////////////////////////////////////////////////////////////////////////////////////////// 780 781 let userDropdownNavigation = document.getElementById('diks-user-navigation'); // user dropdown navigation 782 let userDropdownNavigationToggler = document.getElementById('diks-sso-user'); // user dropdown navigation toggler button (opens and closes user dropdown navigation) 783 let userDropdownNavigationCloseButton = document.getElementById('diks-close-dropdown-main-nav'); // Hidden screen-reader-only close button inside user dropdown navigation 784 785 // Close user dropdown navigation if hidden screen-reader-only close button is clicked 786 if ( userDropdownNavigationCloseButton ) { 787 userDropdownNavigationCloseButton.addEventListener('click', function() { 788 closeUserDropdownNavigation(); 789 }); 790 } 791 792 function closeUserDropdownNavigation() { 793 if (userDropdownNavigation) { 794 if (userDropdownNavigation.classList.contains('diks-user-navigation--is-open')) { 795 // Close user dropdown nav by removing --is-open class 796 userDropdownNavigation.classList.remove('diks-user-navigation--is-open'); 797 // Remove --is-open class from user dropdown navigation toggler 798 userDropdownNavigationToggler.classList.remove('diks-dropdown-toggle--is-open'); 799 // Toggle icon 800 toggleTogglerIcon(userDropdownNavigationToggler); 801
802 // Set aria-expanded to false for user dropdown toggler 803 userDropdownNavigationToggler.setAttribute('aria-expanded', 'false'); 804 } 805 } 806 } 807 808 // User Navigation Dropdown 809 if (userDropdownNavigation) { 810 let userDropdownNavigationAriaControls = userDropdownNavigationToggler.getAttribute('data-diks-toggle'); // aria-controls value for user dropown navigation toggler 811 userDropdownNavigationToggler.setAttribute('aria-controls', userDropdownNavigationAriaControls); 812 userDropdownNavigationToggler.addEventListener('click', function(e) { 813 e.preventDefault(); 814 // If the main dropdown navigation is already open (contains --is-open class) close it 815 if ( (userDropdownNavigation).classList.contains('diks-user-navigation--is-open') ) { 816 closeUserDropdownNavigation(); 817 } 818 // If the main dropdown navigation isn't open (doesn't contain --is-open class) open it 819 else { 820 // If other toggles are open, close them 821 document.querySelectorAll('.diks-user-navigation--is-open').forEach(function(item) { 822 item.classList.remove('diks-user-navigation--is-open'); 823 userDropdownNavigationToggler.classList.remove('diks-dropdown-toggler--is-open'); 824 }); 825 826 // Toggle icon 827 toggleTogglerIcon(userDropdownNavigationToggler); 828 829 // Set aria-expanded 830 userDropdownNavigationToggler.setAttribute('aria-expanded', 'true'); 831 832 // Open this toggle 833 userDropdownNavigation.classList.add('diks-user-navigation--is-open'); 834 835 // Close main dropdown navigation if it's open 836 closeMainDropdownNavigation(); 837 838 // Add event listener to window when user nav toggler is clicked and user nav is open 839 window.addEventListener('click', function(e){ 840 if (document.querySelector('.diks-user-navigation-wrapper').contains(e.target)){ 841 // Clicked inside user nav, do nothing 842 } 843 else { 844 // Clicked outside user nav, close user nav 845 closeUserDropdownNavigation(); 846 } 847 }); 848 849 } 850 }); 851 } 852 853 ////////////////////////////////////////////////////////////////////////////////////////// 854 // Main navigation 855 ////////////////////////////////////////////////////////////////////////////////////////// 856 857 let mainDropdownNavigation = document.getElementById('diks-dropdown-navigation'); // main dropdown navigation 858 let mainDropdownNavigationToggler = document.getElementById('diks-dropdown-toggle'); // main dropdown navigation toggler button (opens and closes main dropdown navigation) 859 let mainDropdownNavigationShade = document.querySelector('.diks-dropdown-navigation-shade'); // shade effect that is visible when main dropdown navigation is open 860 let mainDropdownNavigationCloseButton = document.getElementById('diks-close-dropdown-main-nav'); // Hidden screen-reader-only close button inside main dropdown navigation 861 862 // Close main dropdown navigation if hidden screen-reader-only close button is clicked 863 if ( mainDropdownNavigationCloseButton ) { 864 mainDropdownNavigationCloseButton.addEventListener('click', function() { 865 closeMainDropdownNavigation(); 866 }); 867 } 868 869 // Function for closing main dropdown navigation 870 function closeMainDropdownNavigation() { 871 // Main dropdown navigation 872 if (mainDropdownNavigation) { 873 if (mainDropdownNavigation.classList.contains('diks-dropdown-navigation--is-open')) { 874 // Close main dropdown nav by removing --is-open class 875 mainDropdownNavigation.classList.remove('diks-dropdown-navigation--is-open'); 876 // Remove --is-open class from main dropdown navigation toggler 877 mainDropdownNavigationToggler.classList.remove('diks-dropdown-toggle--is-open'); 878 // Toggle icon 879 toggleTogglerIcon(mainDropdownNavigationToggler); 880 881 // Set aria-expanded to false for main dropdown toggler 882 mainDropdownNavigationToggler.setAttribute('aria-expanded', 'false'); 883 884 // Remove --is-open class from body 885 document.body.classList.remove('diks-body--dropdown-navigation-is-open'); 886 887 // Turn off shade effect 888 mainDropdownNavigationShade.classList.remove('diks-dropdown-navigation-shade--is-visible'); 889 } 890 } 891 } 892 893 894 // Main Navigation Dropdown 895 if (mainDropdownNavigation) {
896 let mainDropdownNavigationAriaControls = mainDropdownNavigationToggler.getAttribute('data-toggle'); // aria-controls value for main dropown navigation toggler 897 mainDropdownNavigationToggler.setAttribute('aria-controls', mainDropdownNavigationAriaControls); 898 mainDropdownNavigationToggler.addEventListener('click', function(e) { 899 e.preventDefault(); 900 // If the main dropdown navigation is already open (contains --is-open class) close it 901 if ( (mainDropdownNavigation).classList.contains('diks-dropdown-navigation--is-open') ) { 902 closeMainDropdownNavigation(); 903 } 904 // If the main dropdown navigation isn't open (doesn't contain --is-open class) open it 905 else { 906 // If other toggles are open, close them 907 document.querySelectorAll('.diks-dropdown-navigation--is-open').forEach(function(item) { 908 item.classList.remove('diks-dropdown-navigation--is-open'); 909 mainDropdownNavigationToggler.classList.remove('diks-dropdown-toggler--is-open'); 910 }); 911 912 // Toggle icon 913 toggleTogglerIcon(mainDropdownNavigationToggler); 914 915 // Set aria-expanded 916 mainDropdownNavigationToggler.setAttribute('aria-expanded', 'true'); 917 918 // Open this toggle 919 mainDropdownNavigation.classList.add('diks-dropdown-navigation--is-open'); 920 // Add is-open class to body 921 document.body.classList.add('diks-body--dropdown-navigation-is-open'); 922 // Turn on shade effect 923 mainDropdownNavigationShade.classList.add('diks-dropdown-navigation-shade--is-visible'); 924 925 // Close main Dropdown Navigation when visible shade area is clicked 926 document.querySelector('.diks-dropdown-navigation-shade--is-visible').addEventListener('click', function() { 927 closeMainDropdownNavigation(); 928 }); 929 930 // Close user dropdown navigation if it's open 931 closeUserDropdownNavigation(); 932 933 } 934 }); 935 } 936 937 938</script>
938 939 940 <div class="diks-display-ad rs_skip" aria-hidden="true"> 941 <div class="diks-display-ad__unit" id="gam-ad-topscroll_skin" > 942
942<script>googletag.cmd.push(function() { googletag.display('gam-ad-topscroll_skin'); });</script>
942 943 </div> 944 </div> 945 <div class="diks-display-ad rs_skip" aria-hidden="true"> 946 <div class="diks-display-ad__unit" id="gam-ad-topscroll_mob" > 947
947<script>googletag.cmd.push(function() { googletag.display('gam-ad-topscroll_mob'); });</script>
947 948 </div> 949 </div> 950 <div class="diks-container"> 951 <div class="diks-layout"> 952 953 954 955 956 957 958 <div class="diks-note-wrapper "><div class="diks-container diks-container--narrower-mobile"> 959 <div id="diks-segment-notes"></div><div id="diks-bc-notes"></div></div></div>
959<script> 960 let segmentTeasersContainer = document.getElementById("diks-segment-notes"); 961 962 (function() { 963 function getCookie(name) { 964 name = name + '='; 965 const decodedCookie = decodeURIComponent(document.cookie); 966 const cookies = decodedCookie.split(';'); 967 968 for (let i = 0; i < cookies.length; i++) { 969 const cookie = cookies[i].trim(); 970 if (cookie.indexOf(name) == 0) { 971 return cookie.substring(name.length, cookie.length); 972 } 973 } 974 } 975 976 function injectSegmentTeasers(segmentsQueryString) { 977 var xhttp = new XMLHttpRequest(); 978 979 xhttp.onreadystatechange = function() { 980 if (this.readyState == 4 && this.status == 200) { 981 var segmentTeasers = this.responseText.trim(); 982 983 if (segmentTeasers) { 984 if (segmentTeasersContainer) { 985 segmentTeasersContainer.innerHTML = segmentTeasers; 986 } 987 } 988 else { 989 // Remove segment teaser container if there are no segment teasers 990 if (segmentTeasersContainer) { 991 segmentTeasersContainer.remove(); 992 } 993 } 994 } 995 }; 996 997 xhttp.open("GET", "/.ajax/segmentTeaser?" + segmentsQueryString, true); 998 xhttp.send(); 999 } 1000 1001 var segmentsCookie = getCookie('jankkosegments'); 1002 1003 if (segmentsCookie) { 1004 var segmentsData = JSON.parse(segmentsCookie); 1005 var segments = segmentsData.segments; 1006 1007 if (segments && typeof segments === 'object') { 1008 var segmentsQueryString = ""; 1009 1010 Object.keys(segments).forEach(function(key, index) { 1011 segmentsQueryString = index === 0 ? "" : segmentsQueryString + "&"; 1012 var value = segments[key]; 1013 1014 if (Array.isArray(value)) { 1015 value = value.join(','); 1016 } 1017 1018 segmentsQueryString = segmentsQueryString + key + "=" + value; 1019 }); 1020 1021 injectSegmentTeasers(segmentsQueryString); 1022 } 1023 } 1024 else { 1025 // Remove segment teaser container if there are no segment teasers 1026 if (segmentTeasersContainer) { 1027 segmentTeasersContainer.remove(); 1028 } 1029 } 1030 })(); 1031</script>
1031 1032 1033 <div class="diks-display-ad diks-display-ad--in-layout rs_skip" aria-hidden="true"> 1034 <div class="diks-display-ad__unit" id="gam-ad-paraati1" > 1035
1035<script>googletag.cmd.push(function() { googletag.display('gam-ad-paraati1'); });</script>
1035 1036 </div> 1037 </div> 1038 <div class="diks-section diks-section--type-latest"> 1039 <nav aria-label="Murupolku"> 1040 <ul class="diks-breadcrumb"><li class="diks-breadcrumb__item"><a class="diks-breadcrumb__link" href="/">Etusivu</a></li><li class="diks-breadcrumb__item"><span class="diks-breadcrumb__sub-item">Uusimmat</span></li></ul> 1041 </nav> 1042 <div class="diks-columns"> 1043 <main class="diks-main-column diks-border--after" id="sisalto"> 1044 <section class="diks-section__main"> <h1 class="diks-title diks-title--section" >Uusimmat</h1> 1045 1046 1047 1048 <article class="diks-card diks-card--reversed diks-card--size-l diks-card--main"> 1049 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1050 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9841734">Omakotitalo tuhoutui tulipalossa Raaseporissa</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1051 <time class="diks-date__published" datetime="2026-10-02T13:40:00+03:00">Tänään 13:40</time> 1052 1053 </div> 1054<div class="diks-comment-count "> 1055 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9841734" data-coral-id="9841734"></span> 1056 </div> 1057 </div> 1058 </div></div> 1059 </div> 1060 </div></article> 1061 1062 1063 <article class="diks-card diks-card--reversed is--subscriber-only"> 1064 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1065 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9841379">Hus ei enää rokota riskiryhmäläisiä maksutta rokotuspisteillä</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1066 <time class="diks-date__published" datetime="2026-10-02T12:49:12+03:00">Tänään 12:49</time> 1067 1068 </div> 1069<div class="diks-comment-count "> 1070 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9841379" data-coral-id="9841379"></span> 1071 </div> 1072 </div> 1073 </div></div> 1074 </div> 1075 </div></article> 1076 1077 1078 <article class="diks-card diks-card--reversed"> 1079 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1080 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9840164">Ilmainen koko perheen konsertti Lohjalla: mukana Grammy-ehdokas ja Pikku Kakkosesta tuttu muusikko</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1081 <time class="diks-date__published" datetime="2026-10-02T10:30:00+03:00">Tänään 10:30</time> 1082 1083 </div> 1084<div class="diks-comment-count "> 1085 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9840164" data-coral-id="9840164"></span> 1086 </div> 1087 </div> 1088 </div></div> 1089 </div> 1090 </div></article> 1091 1092 1093 1094 <article class="diks-card diks-card--reversed"> 1095 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1096 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9840070">Poikkeuksellista toimintaa Lohjan seudulla ensi viikolla â poliisin valmiusyksikkö harjoittelee</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1097 <time class="diks-date__published" datetime="2026-10-02T09:22:45+03:00">Tänään 9:22</time> 1098 1099 </div> 1100<div class="diks-comment-count "> 1101 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9840070" data-coral-id="9840070"></span> 1102 </div> 1103 </div> 1104 </div></div> 1105 </div> 1106 </div></article> 1107 1108 1109 1110 <article class="diks-card diks-card--reversed"> 1111 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1112 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9837032"><span class="diks-ui-accent">Tapahtumakalenteri | </span>Lastentarvikekirppis, jazzia ja rock n' rollia, korvapuustikahvila sekä lähiruoan juhlaa</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1113 <time class="diks-date__published" datetime="2026-10-02T07:00:00+03:00">Tänään 7:00</time> 1114 1115 </div> 1116<div class="diks-comment-count "> 1117 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9837032" data-coral-id="9837032"></span> 1118 </div> 1119 </div> 1120 </div></div> 1121 </div> 1122 </div></article> 1123 1124 1125 1126 <article class="diks-card diks-card--reversed"> 1127 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1128 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9838642">Seuraavan Laavujen kierroksen paikka vaihtui</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1129 <time class="diks-date__published" datetime="2026-10-02T06:00:00+03:00">Tänään 6:00</time> 1130 1131 </div> 1132<div class="diks-comment-count "> 1133 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9838642" data-coral-id="9838642"></span> 1134 </div> 1135 </div> 1136 </div></div> 1137 </div> 1138 </div></article> 1139 1140 1141 1142 <article class="diks-card diks-card--reversed is--subscriber-only"> 1143 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1144 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9838319"><span class="diks-ui-accent">Potkuvalitukset | </span>Lohjalla hallitus tyrmää Moision ja Puistosalon väitteet, mutta ei yksimielisesti</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1145 <time class="diks-date__published" datetime="2026-10-02T05:00:00+03:00">Tänään 5:00</time> 1146 1147 </div> 1148<div class="diks-comment-count "> 1149 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9838319" data-coral-id="9838319"></span> 1150 </div> 1151 </div> 1152 </div></div> 1153 </div> 1154 </div></article> 1155 1156 1157 1158 <article class="diks-card diks-card--reversed"> 1159 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1160 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9834722">Jorma Uotinen tanssii ensi-iltateoksessa Lohjan Pyhän Laurin kirkossa</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1161 <time class="diks-date__published" datetime="2026-10-01T19:00:00+03:00">Eilen 19:00</time> 1162 1163 </div> 1164<div class="diks-comment-count "> 1165 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9834722" data-coral-id="9834722"></span> 1166 </div> 1167 </div> 1168 </div></div> 1169 </div> 1170 </div></article> 1171 1172 1173 1174 <article class="diks-card diks-card--reversed is--subscriber-only"> 1175 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1176 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/urhe
1176ilu/9835187"><span class="diks-ui-accent">Näkökulma Nina Paloheimo | </span>Tuukka Taponen selvisi kesän kiirastulesta, mutta uusi talli ja sarja tuovat hurjat haasteet</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1177 <time class="diks-date__published" datetime="2026-10-01T16:00:00+03:00">Eilen 16:00</time> 1178 1179 </div> 1180<div class="diks-comment-count "> 1181 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/urheilu/9835187" data-coral-id="9835187"></span> 1182 </div> 1183 </div> 1184 </div></div> 1185 </div> 1186 </div></article> 1187 1188 1189 1190 <article class="diks-card diks-card--reversed is--subscriber-only"> 1191 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1192 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9837914">Myös kulttuuri- ja vapaa-ajan lautakunta siirtäisi palveluverkkopäätökset syksyyn 2027</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1193 <time class="diks-date__published" datetime="2026-10-01T13:40:33+03:00">Eilen 13:40</time> 1194 1195 </div> 1196<div class="diks-comment-count "> 1197 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9837914" data-coral-id="9837914"></span> 1198 </div> 1199 </div> 1200 </div></div> 1201 </div> 1202 </div></article> <div class="diks-display-ad diks-display-ad--with-border rs_skip" aria-hidden="true"> 1203 <div class="diks-display-ad__unit" id="gam-ad-jattiboksi1" > 1204
1204<script>googletag.cmd.push(function() { googletag.display('gam-ad-jattiboksi1'); });</script>
1204 1205 </div> 1206 </div><div class="diks-display-ad diks-display-ad--with-border rs_skip" aria-hidden="true"> 1207 <div class="diks-display-ad__unit" id="gam-ad-mobiili1" > 1208
1208<script>googletag.cmd.push(function() { googletag.display('gam-ad-mobiili1'); });</script>
1208 1209 </div> 1210 </div> 1211 1212 1213 1214 <article class="diks-card diks-card--reversed is--subscriber-only"> 1215 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1216 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9836676">Uudenmaan uudet raiteet voivat olla vanhentuneita jo valmistuessaan ââja se on miljardien eurojen ongelma</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1217 <time class="diks-date__published" datetime="2026-10-01T12:00:00+03:00">Eilen 12:00</time> 1218 1219 </div> 1220<div class="diks-comment-count "> 1221 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9836676" data-coral-id="9836676"></span> 1222 </div> 1223 </div> 1224 </div></div> 1225 </div> 1226 </div></article> 1227 1228 1229 <article class="diks-card diks-card--reversed"> 1230 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1231 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9837015">Myös Lohja osallistuu valtakunnalliseen valmiusharjoitukseen</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1232 <time class="diks-date__published" datetime="2026-10-01T10:34:12+03:00">Eilen 10:34</time> 1233 1234 </div> 1235<div class="diks-comment-count "> 1236 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9837015" data-coral-id="9837015"></span> 1237 </div> 1238 </div> 1239 </div></div> 1240 </div> 1241 </div></article> 1242 1243 1244 <article class="diks-card diks-card--reversed is--subscriber-only"> 1245 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1246 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9836815">Uudenmaan teiden päällystämiseen 40 prosenttia vähemmän rahaa ensi vuonna</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1247 <time class="diks-date__published" datetime="2026-10-01T09:50:52+03:00">Eilen 9:50</time> 1248 1249 </div> 1250<div class="diks-comment-count "> 1251 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9836815" data-coral-id="9836815"></span> 1252 </div> 1253 </div> 1254 </div></div> 1255 </div> 1256 </div></article> 1257 1258 1259 <article class="diks-card diks-card--reversed"> 1260 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1261 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paakirjoitus-mielipide/9836494"><span class="diks-ui-accent">Mielipide | </span>Päättäjät ovat tilivelvollisia äänestäjilleen</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1262 <time class="diks-date__published" datetime="2026-10-01T08:24:28+03:00">Eilen 8:24</time> 1263 1264 </div> 1265<div class="diks-comment-count "> 1266 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paakirjoitus-mielipide/9836494" data-coral-id="9836494"></span> 1267 </div> 1268 </div> 1269 </div></div> 1270 </div> 1271 </div></article> 1272 1273 1274 1275 <article class="diks-card diks-card--reversed is--subscriber-only"> 1276 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1277 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9835237">Yksityiselle Tallinna-tunnelille kymmenien, jopa satojen miljoonien eurojen alkurahoitus</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1278 <time class="diks-date__published" datetime="2026-10-01T08:00:00+03:00">Eilen 8:00</time> 1279 1280 </div> 1281<div class="diks-comment-count "> 1282 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9835237" data-coral-id="9835237"></span> 1283 </div> 1284 </div> 1285 </div></div> 1286 </div> 1287 </div></article> 1288 1289 1290 1291 <article class="diks-card diks-card--reversed is--subscriber-only"> 1292 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1293 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9835226"><span class="diks-ui-accent">Lohjan kaupunki | </span>Säästösyistä tehty ratkaisu johti uuteen autohankintaan</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1294 <time class="diks-date__published" datetime="2026-10-01T06:00:00+03:00">Eilen 6:00</time> 1295 1296 </div> 1297<div class="diks-comment-count "> 1298 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9835226" data-coral-id="9835226"></span> 1299 </div> 1300 </div> 1301 </div></div> 1302 </div> 1303 </div></article> 1304 1305 1306 1307 <article class="diks-card diks-card--reversed is--subscriber-only"> 1308 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1309 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9834720"><span class="diks-ui-accent">Hallinto-oikeus | </span>Länsirata kiikkuu nyt veitsenterällä, ja myös Lohjalla myönnetään, että hanke voi kaatua</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1310 <time class="diks-date__published" datetime="2026-10-01T05:00:00+03:00">Eilen 5:00</time> 1311 1312 </div> 1313<div class="diks-comment-count "> 1314 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9834720" data-coral-id="9834720"></span> 1315 </div> 1316 </div> 1317 </div></div> 1318 </div> 1319 </div></article> 1320 1321 1322 1323 <article class="diks-card diks-card--reversed is--subscriber-only"> 1324 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1325 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9835017"><span class="diks-ui-accent">Käräjillä | </span>Karkkilan kirjaston tuhopolttajalle ehdotonta vankeutta ja yli 840 000 euron korvausvaateet</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1326 <time class="diks-date__published" datetime="2026-09-30T19:00:00+03:00">
132630.9.2026 19:00</time> 1327 1328 </div> 1329<div class="diks-comment-count "> 1330 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9835017" data-coral-id="9835017"></span> 1331 </div> 1332 </div> 1333 </div></div> 1334 </div> 1335 </div></article> 1336 1337 1338 <article class="diks-card diks-card--reversed"> 1339 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1340 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9834157">Hyvinvointialue päivittää potilastietojärjestelmää ââsähköisissä palveluissa käyttökatko</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1341 <time class="diks-date__published" datetime="2026-09-30T16:00:00+03:00">30.9.2026 16:00</time> 1342 1343 </div> 1344<div class="diks-comment-count "> 1345 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9834157" data-coral-id="9834157"></span> 1346 </div> 1347 </div> 1348 </div></div> 1349 </div> 1350 </div></article> 1351 1352 1353 1354 <article class="diks-card diks-card--reversed"> 1355 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1356 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9832173">Ratatyöt sulkevat tasoristeyksiä Vihdissä â aikatauluun muutoksia</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1357 <time class="diks-date__published" datetime="2026-09-30T14:00:00+03:00">30.9.2026 14:00</time> 1358 1359 </div> 1360<div class="diks-comment-count "> 1361 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9832173" data-coral-id="9832173"></span> 1362 </div> 1363 </div> 1364 </div></div> 1365 </div> 1366 </div></article> <div class="diks-display-ad diks-display-ad--with-border rs_skip" aria-hidden="true"> 1367 <div class="diks-display-ad__unit" id="gam-ad-jattiboksi2" > 1368
1368<script>googletag.cmd.push(function() { googletag.display('gam-ad-jattiboksi2'); });</script>
1368 1369 </div> 1370 </div><div class="diks-display-ad diks-display-ad--with-border rs_skip" aria-hidden="true"> 1371 <div class="diks-display-ad__unit" id="gam-ad-mobiili2" > 1372
1372<script>googletag.cmd.push(function() { googletag.display('gam-ad-mobiili2'); });</script>
1372 1373 </div> 1374 </div> 1375 1376 1377 <article class="diks-card diks-card--reversed is--subscriber-only"> 1378 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1379 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9834220">Uudenmaan pk-yritysten liikevaihdot nousussa</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1380 <time class="diks-date__published" datetime="2026-09-30T12:05:50+03:00">30.9.2026 12:05</time> 1381 1382 </div> 1383<div class="diks-comment-count "> 1384 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9834220" data-coral-id="9834220"></span> 1385 </div> 1386 </div> 1387 </div></div> 1388 </div> 1389 </div></article> 1390 1391 1392 1393 <article class="diks-card diks-card--reversed is--subscriber-only"> 1394 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1395 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9833730">Esikoisvauva kuoli juuri ennen syntymäänsä â länsiuusmaalainen isä Kalle Nikander, 42, ei antanut ensin itsensä surra</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1396 <time class="diks-date__published" datetime="2026-09-30T12:00:00+03:00">30.9.2026 12:00</time> 1397 1398 </div> 1399<div class="diks-comment-count "> 1400 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9833730" data-coral-id="9833730"></span> 1401 </div> 1402 </div> 1403 </div></div> 1404 </div> 1405 </div></article> 1406 1407 1408 <article class="diks-card diks-card--reversed"> 1409 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1410 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paakirjoitus-mielipide/9833144"><span class="diks-ui-accent">Mielipide | </span>Mitä on lohjalainen sosialidemokratia?</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1411 <time class="diks-date__published" datetime="2026-09-30T07:45:00+03:00">30.9.2026 7:45</time> 1412 1413 </div> 1414<div class="diks-comment-count "> 1415 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paakirjoitus-mielipide/9833144" data-coral-id="9833144"></span> 1416 </div> 1417 </div> 1418 </div></div> 1419 </div> 1420 </div></article> 1421 1422 1423 <article class="diks-card diks-card--reversed is--subscriber-only"> 1424 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1425 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9833314">Päihdeäidit synnyttävät jatkossa Jorvissa</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1426 <time class="diks-date__published" datetime="2026-09-30T07:39:24+03:00">30.9.2026 7:39</time> 1427 1428 </div> 1429<div class="diks-comment-count "> 1430 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9833314" data-coral-id="9833314"></span> 1431 </div> 1432 </div> 1433 </div></div> 1434 </div> 1435 </div></article> 1436 1437 1438 1439 <article class="diks-card diks-card--reversed"> 1440 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1441 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9830724">Lohjan nuorisovaltuustoon valittiin nämä 13 jäsentä</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1442 <time class="diks-date__published" datetime="2026-09-30T06:00:00+03:00">30.9.2026 6:00</time> 1443 1444 </div> 1445<div class="diks-comment-count "> 1446 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9830724" data-coral-id="9830724"></span> 1447 </div> 1448 </div> 1449 </div></div> 1450 </div> 1451 </div></article> 1452 1453 1454 1455 <article class="diks-card diks-card--reversed is--subscriber-only"> 1456 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1457 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9832443">Kaupungineläinlääkäreiden työ murroksessa: lehmät vaihtuvat Lohjalla lemmikkeihin</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1458 <time class="diks-date__published" datetime="2026-09-30T05:00:00+03:00">
145830.9.2026 5:00</time> 1459 1460 </div> 1461<div class="diks-comment-count "> 1462 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9832443" data-coral-id="9832443"></span> 1463 </div> 1464 </div> 1465 </div></div> 1466 </div> 1467 </div></article> 1468 1469 1470 1471 <article class="diks-card diks-card--reversed"> 1472 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1473 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9831758"><span class="diks-ui-accent">Taide | </span>Tytyri Elämyskaivokseen avautuu poikkeuksellinen taidenäyttely, jossa sukelletaan pelkoihin</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1474 <time class="diks-date__published" datetime="2026-09-29T19:00:00+03:00">29.9.2026 19:00</time> 1475 1476 </div> 1477<div class="diks-comment-count "> 1478 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9831758" data-coral-id="9831758"></span> 1479 </div> 1480 </div> 1481 </div></div> 1482 </div> 1483 </div></article> 1484 1485 1486 1487 <article class="diks-card diks-card--reversed"> 1488 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1489 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9832548">Vihdissä varastettiin tavaraa tuhansien eurojen arvosta</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1490 <time class="diks-date__published" datetime="2026-09-29T16:10:22+03:00">29.9.2026 16:10</time> 1491 1492 </div> 1493<div class="diks-comment-count "> 1494 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9832548" data-coral-id="9832548"></span> 1495 </div> 1496 </div> 1497 </div></div> 1498 </div> 1499 </div></article> 1500 1501 1502 1503 <article class="diks-card diks-card--reversed"> 1504 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1505 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9830931">Karisjärven putkisilta uusitaan Pusulassa, liikenne kiertotielle työn ajaksi</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1506 <time class="diks-date__published" datetime="2026-09-29T16:00:00+03:00">29.9.2026 16:00</time> 1507 1508 </div> 1509<div class="diks-comment-count "> 1510 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9830931" data-coral-id="9830931"></span> 1511 </div> 1512 </div> 1513 </div></div> 1514 </div> 1515 </div></article> 1516 1517 1518 <article class="diks-card diks-card--reversed"> 1519 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1520 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9831861">Poliisi epäilee: Urheiluvalmentaja käytti nuorta seksuaalisesti hyväksi Espoossa</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1521 <time class="diks-date__published" datetime="2026-09-29T15:15:00+03:00">29.9.2026 15:15</time> 1522 1523 </div> 1524<div class="diks-comment-count "> 1525 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9831861" data-coral-id="9831861"></span> 1526 </div> 1527 </div> 1528 </div></div> 1529 </div> 1530 </div></article> <div class="diks-display-ad diks-display-ad--with-border rs_skip" aria-hidden="true"> 1531 <div class="diks-display-ad__unit" id="gam-ad-jattiboksi3" > 1532
1532<script>googletag.cmd.push(function() { googletag.display('gam-ad-jattiboksi3'); });</script>
1532 1533 </div> 1534 </div><div class="diks-display-ad diks-display-ad--with-border rs_skip" aria-hidden="true"> 1535 <div class="diks-display-ad__unit" id="gam-ad-mobiili3" > 1536
1536<script>googletag.cmd.push(function() { googletag.display('gam-ad-mobiili3'); });</script>
1536 1537 </div> 1538 </div> 1539 1540 1541 1542 <article class="diks-card diks-card--reversed is--subscriber-only"> 1543 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1544 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9831863">Lohja vaatii uuteen hyvinvointisuunnitelmaan lisää konkretiaa</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1545 <time class="diks-date__published" datetime="2026-09-29T14:44:48+03:00">29.9.2026 14:44</time> 1546 1547 </div> 1548<div class="diks-comment-count "> 1549 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9831863" data-coral-id="9831863"></span> 1550 </div> 1551 </div> 1552 </div></div> 1553 </div> 1554 </div></article> 1555 1556 1557 1558 <article class="diks-card diks-card--reversed"> 1559 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1560 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9830984">Missä on Suomen paras aamupala? Ãänestä suosikkiasi</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1561 <time class="diks-date__published" datetime="2026-09-29T12:15:00+03:00">29.9.2026 12:15</time> 1562 1563 </div> 1564<div class="diks-comment-count "> 1565 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9830984" data-coral-id="9830984"></span> 1566 </div> 1567 </div> 1568 </div></div> 1569 </div> 1570 </div></article> 1571 1572 1573 1574 <article class="diks-card diks-card--reversed"> 1575 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1576 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9830828">Salon Länsirata-päätös kumottiin hallinto-oikeudessa</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1577 <time class="diks-date__published" datetime="2026-09-29T11:22:05+03:00">29.9.2026 11:22</time> 1578 1579 </div> 1580<div class="diks-comment-count "> 1581 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9830828" data-coral-id="9830828"></span> 1582 </div> 1583 </div> 1584 </div></div> 1585 </div> 1586 </div></article> 1587 1588 1589 1590 <article class="diks-card diks-card--reversed is--subscriber-only"> 1591 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1592 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9830278">Lohjan kaupunki järjestää henkilöstölleen Halloween-juhlan â budjetti noin 34â000 euroa</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1593 <time class="diks-date__published" datetime="2026-09-29T11:00:00+03:00">29.9.2026 11:00</time> 1594 1595 </div> 1596<div class="diks-comment-count "> 1597 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9830278" data-coral-id="9830278"></span> 1598 </div> 1599 </div> 1600 </div></div> 1601 </div> 1602 </div></article> 1603 1604 1605 <article class="diks-card diks-card--reversed"> 1606 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1607 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paakirjoitus-mielipide/9829380"><span class="diks-ui-accent">Mielipide | </span>Mitä tehdään bensan ja dieselin hinnalle?</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1608 <time class="diks-date__published" datetime="2026-09-29T09:35:00+03:00">29.9.2026 9:35</time> 1609 1610 </div> 1611<div class="diks-comment-count "> 1612 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paakirjoitus-mielipide/9829380" data-coral-id="9829380"></span> 1613 </div> 1614 </div> 1615 </div></div> 1616 </div> 1617 </div></article> 1618 1619 1620 <article class="diks-card diks-card--reversed"> 1621 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1622 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paakirjoitus-mielipide/9829375"><span class="diks-ui-accent">Mielipide | </span>Hoidon tarpeen arviointi ohjaa asiakkaan oikeaan palveluun</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1623 <time class="diks-date__published" datetime="2026-09-29T08:35:00+03:00">29.9.2026 8:35</time> 1624 1625 </div> 1626<div class="diks-comment-count "> 1627 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paakirjoitus-mielipide/9829375" data-coral-id="9829375"></span> 1628 </div> 1629 </div> 1630 </div></div> 1631 </div> 1632 </div></article> 1633 1634 1635 <article class="diks-card diks-card--reversed"> 1636 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1637 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paakirjoitus-mielipide/9829395"><span class="diks-ui-accent">Kirjoittajavieras Tarja Sahramaa | </span>Hautarauhattomuus</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1638 <time class="diks-date__published" datetime="2026-09-29T07:50:00+03:00">29.9.2026 7:50</time> 1639 1640 </div> 1641<div class="diks-comment-count "> 1642 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paakirjoitus-mielipide/9829395" data-coral-id="9829395"></span> 1643 </div> 1644 </div> 1645 </div></div> 1646 </div> 1647 </div></article> 1648 1649 1650 <article class="diks-card diks-card--reversed"> 1651 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1652 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9829061">Caruna vaihtaa kaikkien asiakkaidensa sähkömittarit ââtyö alkaa Lohjalta</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1653 <time class="diks-date__published" datetime="2026-09-29T06:00:00+03:00">29.9.2026 6:00</time> 1654 1655 </div> 1656<div class="diks-comment-count "> 1657 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9829061" data-coral-id="9829061"></span> 1658 </div> 1659 </div> 1660 </div></div> 1661 </div> 1662 </div></article> 1663 1664 1665 1666 <article class="diks-card diks-card--reversed is--subscriber-only"> 1667 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1668 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9829073"><span class="diks-ui-accent">Kaupunginhallitus | </span>Lohja määritteli uuden organisaationsa kulmakivet ââyt-neuvottelut alkavat</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1669 <time class="diks-date__published" datetime="2026-09-29T05:00:00+03:00">29.9.2026 5:00</time> 1670 1671 </div> 1672<div class="diks-comment-count "> 1673 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9829073" data-coral-id="9829073"></span> 1674 </div> 1675 </div> 1676 </div></div> 1677 </div> 1678 </div></article> 1679 1680 1681 <article class="diks-card diks-card--reversed"> 1682 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1683 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paakirjoitus-mielipide/9829362"><span class="diks-ui-accent">Mielipide | </span>Toimintaterapeutit tukevat pitkäaikaistyöttömiä takaisin työelämään</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1684 <time class="diks-date__published" datetime="2026-09-28T19:30:00+03:00">28.9.2026 19:30</time> 1685 1686 </div> 1687<div class="diks-comment-count "> 1688 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paakirjoitus-mielipide/9829362" data-coral-id="9829362"></span> 1689 </div> 1690 </div> 1691 </div></div> 1692 </div> 1693 </div></article> <div class="diks-display-ad diks-display-ad--with-border rs_skip" aria-hidden="true">
1694 <div class="diks-display-ad__unit" id="gam-ad-jattiboksi4" > 1695
1695<script>googletag.cmd.push(function() { googletag.display('gam-ad-jattiboksi4'); });</script>
1695 1696 </div> 1697 </div><div class="diks-display-ad diks-display-ad--with-border rs_skip" aria-hidden="true"> 1698 <div class="diks-display-ad__unit" id="gam-ad-mobiili4" > 1699
1699<script>googletag.cmd.push(function() { googletag.display('gam-ad-mobiili4'); });</script>
1699 1700 </div> 1701 </div> 1702 1703 1704 1705 <article class="diks-card diks-card--reversed is--subscriber-only"> 1706 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1707 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9828619"><span class="diks-ui-accent">Vauvan päivä | </span>Bileet pienille, vertaistukea vanhemmille â äitien ystävyys voi syntyä vaikka ymmärtävästä katseesta</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1708 <time class="diks-date__published" datetime="2026-09-28T18:45:00+03:00">28.9.2026 18:45</time> 1709 1710 </div> 1711<div class="diks-comment-count "> 1712 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9828619" data-coral-id="9828619"></span> 1713 </div> 1714 </div> 1715 </div></div> 1716 </div> 1717 </div></article> 1718 1719 1720 1721 <article class="diks-card diks-card--reversed"> 1722 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1723 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9829644">Mies löytyi kuolleena autosta Karkkilassa</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1724 <time class="diks-date__published" datetime="2026-09-28T18:19:06+03:00">28.9.2026 18:19</time> 1725 1726 </div> 1727<div class="diks-comment-count "> 1728 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9829644" data-coral-id="9829644"></span> 1729 </div> 1730 </div> 1731 </div></div> 1732 </div> 1733 </div></article> 1734 1735 1736 1737 <article class="diks-card diks-card--reversed is--subscriber-only"> 1738 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1739 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9829314">Marsa Valtonen eroaa SDP:n valtuustoryhmästä Lohjallaâââsiirtyy sitoutumattomana uuteen ryhmään</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1740 <time class="diks-date__published" datetime="2026-09-28T17:00:00+03:00">28.9.2026 17:00</time> 1741 1742 </div> 1743<div class="diks-comment-count "> 1744 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9829314" data-coral-id="9829314"></span> 1745 </div> 1746 </div> 1747 </div></div> 1748 </div> 1749 </div></article> 1750 1751 1752 <article class="diks-card diks-card--reversed"> 1753 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1754 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9829414">Kadonneiden poikien äiti Iltalehdelle: Pojat eivät ehkä kehdanneet palata kotiin kohun keskellä</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1755 <time class="diks-date__published" datetime="2026-09-28T16:45:01+03:00">28.9.2026 16:45</time> 1756 1757 </div> 1758<div class="diks-comment-count "> 1759 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9829414" data-coral-id="9829414"></span> 1760 </div> 1761 </div> 1762 </div></div> 1763 </div> 1764 </div></article> 1765 1766 1767 <article class="diks-card diks-card--reversed"> 1768 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1769 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paakirjoitus-mielipide/9829328"><span class="diks-ui-accent">Mielipide | </span>Näin valtakunnallinen synnytysosastoselvitys, jossa Lohjakin on mukana, etenee</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1770 <time class="diks-date__published" datetime="2026-09-28T16:25:39+03:00">28.9.2026 16:25</time> 1771 1772 </div> 1773<div class="diks-comment-count "> 1774 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paakirjoitus-mielipide/9829328" data-coral-id="9829328"></span> 1775 </div> 1776 </div> 1777 </div></div> 1778 </div> 1779 </div></article> 1780 1781 1782 1783 <article class="diks-card diks-card--reversed is--subscriber-only"> 1784 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1785 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9828323">Asukkaiden viesti kuultiin: nuorisotilojen siirrosta luovutaan Sammatissa ja Karjalohjalla</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1786 <time class="diks-date__published" datetime="2026-09-28T16:00:00+03:00">28.9.2026 16:00</time> 1787 1788 </div> 1789<div class="diks-comment-count "> 1790 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9828323" data-coral-id="9828323"></span> 1791 </div> 1792 </div> 1793 </div></div> 1794 </div> 1795 </div></article> 1796 1797 1798 <article class="diks-card diks-card--reversed is--subscriber-only"> 1799 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1800 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9828366">
1800HS: Apotti-selvityksessä on satojen miljoonien eurojen virhe, väittää kilpailija</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1801 <time class="diks-date__published" datetime="2026-09-28T14:01:15+03:00">28.9.2026 14:01</time> 1802 1803 </div> 1804<div class="diks-comment-count "> 1805 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9828366" data-coral-id="9828366"></span> 1806 </div> 1807 </div> 1808 </div></div> 1809 </div> 1810 </div></article> 1811 1812 1813 1814 <article class="diks-card diks-card--reversed is--subscriber-only"> 1815 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1816 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/urheilu/9828053">F1-unelma askeleen lähempänä: Tuukka Taponen nousee Formula 2 -sarjaan</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1817 <time class="diks-date__published" datetime="2026-09-28T13:06:18+03:00">28.9.2026 13:06</time> 1818 1819 | Päivitetty <time class="diks-date__updated" datetime="2026-09-30T15:16:43+03:00">30.9.2026 15:16</time> 1820 </div> 1821<div class="diks-comment-count "> 1822 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/urheilu/9828053" data-coral-id="9828053"></span> 1823 </div> 1824 </div> 1825 </div></div> 1826 </div> 1827 </div></article> 1828 1829 1830 1831 <article class="diks-card diks-card--reversed"> 1832 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1833 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paakirjoitus-mielipide/9827889"><span class="diks-ui-accent">Lukijan kuva | </span>Vesi korkealla pelloilla asti</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1834 <time class="diks-date__published" datetime="2026-09-28T12:33:05+03:00">28.9.2026 12:33</time> 1835 1836 </div> 1837<div class="diks-comment-count "> 1838 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paakirjoitus-mielipide/9827889" data-coral-id="9827889"></span> 1839 </div> 1840 </div> 1841 </div></div> 1842 </div> 1843 </div></article> 1844 1845 1846 1847 <article class="diks-card diks-card--reversed is--subscriber-only"> 1848 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1849 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9827343">Lähes kaikki Lohjan peruskoulut saavat valtion rahaa eriytymisen ehkäisyyn</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1850 <time class="diks-date__published" datetime="2026-09-28T12:00:00+03:00">28.9.2026 12:00</time> 1851 1852 </div> 1853<div class="diks-comment-count "> 1854 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9827343" data-coral-id="9827343"></span> 1855 </div> 1856 </div> 1857 </div></div> 1858 </div> 1859 </div></article> <nav aria-label="Arkiston sivutus"> 1860 <ul class="diks-pagination "> 1861 <li class="diks-pagination__item"></li> 1862 1863 <li class="diks-pagination__item"> 1864 <a class="diks-pagination__item-link diks-pagination__item-link--active" href="https://www.lansi-uusimaa.fi/uusimmat/sivu/1" aria-current="true">Olet sivulla 1</a> 1865 </li> 1866 1867 <li class="diks-pagination__item"><a class="diks-pagination__item-link" href="https://www.lansi-uusimaa.fi/uusimmat/sivu/2" aria-label="Siirry seuraavalle sivulle">Seuraava</a> 1868 <span class="diks-icon diks-icon--size-m" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 1869 <path fill-rule="evenodd" d="M13.5859 12L8.29297 6.70711L9.70718 5.29289L16.4143 12L9.70718 18.7071L8.29297 17.2929L13.5859 12Z" clip-rule="evenodd"/> 1870</svg> 1871</span></li> 1872 </ul></section> 1873 </main> 1874 <aside class="diks-section__aside diks-aside-column"> 1875 1876 <div class="diks-display-ad rs_skip" aria-hidden="true">
1877 <div class="diks-display-ad__unit" id="gam-ad-boksi1" > 1878
1878<script>googletag.cmd.push(function() { googletag.display('gam-ad-boksi1'); });</script>
1878 1879 </div> 1880 </div> 1881 <!-- ESI start element "frontPageNews" generated at 02-10-2026 14:47:22.270268 --> 1882 <h2 class="diks-title diks-title--section" ><a class="diks-title__link" href="/" aria-label="Lue lisää etusivun juttuja">Etusivulla nyt</a></h2><ul id="etusivulla-nyt" class="diks-article-list diks-article-list--unordered" ><li class="diks-article-list__item"> 1883 1884 1885 1886 <article class="diks-card diks-card--size-xs is--subscriber-only"> 1887 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1888 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9838319"><span class="diks-ui-accent">Potkuvalitukset | </span>Lohjalla hallitus tyrmää Moision ja Puistosalon väitteet, mutta ei yksimielisesti</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1889 <time class="diks-date__published" datetime="2026-10-02T05:00:00+03:00">Tänään 5:00</time> 1890 1891 </div> 1892<div class="diks-comment-count "> 1893 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9838319" data-coral-id="9838319"></span> 1894 </div> 1895 </div> 1896 </div></div> 1897 </div> 1898 </div></article> </li><li class="diks-article-list__item"> 1899 1900 1901 <article class="diks-card diks-card--size-xs"> 1902 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1903 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9841734">Omakotitalo tuhoutui tulipalossa Raaseporissa</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1904 <time class="diks-date__published" datetime="2026-10-02T13:40:00+03:00">Tänään 13:40</time> 1905 1906 </div> 1907<div class="diks-comment-count "> 1908 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9841734" data-coral-id="9841734"></span> 1909 </div> 1910 </div> 1911 </div></div> 1912 </div> 1913 </div></article> </li><li class="diks-article-list__item"> 1914 1915 1916 1917 <article class="diks-card diks-card--size-xs"> 1918 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1919 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9840070">Poikkeuksellista toimintaa Lohjan seudulla ensi viikolla â poliisin valmiusyksikkö harjoittelee</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1920 <time class="diks-date__published" datetime="2026-10-02T09:22:45+03:00">Tänään 9:22</time> 1921 1922 </div> 1923<div class="diks-comment-count "> 1924 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9840070" data-coral-id="9840070"></span> 1925 </div> 1926 </div> 1927 </div></div> 1928 </div> 1929 </div></article> </li><li class="diks-article-list__item"> 1930 1931 1932 1933 <article class="diks-card diks-card--size-xs"> 1934 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1935 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9838642">Seuraavan Laavujen kierroksen paikka vaihtui</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1936 <time class="diks-date__published" datetime="2026-10-02T06:00:00+03:00">Tänään 6:00</time> 1937 1938 </div> 1939<div class="diks-comment-count "> 1940 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9838642" data-coral-id="9838642"></span> 1941 </div> 1942 </div> 1943 </div></div> 1944 </div> 1945 </div></article> </li><li class="diks-article-list__item"> 1946 1947 1948 1949 <article class="diks-card diks-card--size-xs"> 1950 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1951 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9837032"><span class="diks-ui-accent">Tapahtumakalenteri | </span>Lastentarvikekirppis, jazzia ja rock n' rollia, korvapuustikahvila sekä lähiruoan juhlaa</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1952 <time class="diks-date__published" datetime="2026-10-02T07:00:00+03:00">Tänään 7:00</time> 1953 1954 </div> 1955<div class="diks-comment-count "> 1956 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.lansi-uusimaa.fi/paikalliset/9837032" data-coral-id="9837032"></span> 1957 </div> 1958 </div> 1959 </div></div> 1960 </div> 1961 </div></article> </li></ul><!-- ESI end element "frontPageNews" --> 1962 <div class="diks-display-ad rs_skip" aria-hidden="true">
1963 <div class="diks-display-ad__unit" id="gam-ad-boksi2" > 1964
1964<script>googletag.cmd.push(function() { googletag.display('gam-ad-boksi2'); });</script>
1964 1965 </div> 1966 </div> 1967 <div class="diks-display-ad rs_skip" aria-hidden="true"> 1968 <div class="diks-display-ad__unit" id="gam-ad-mobiili5" > 1969
1969<script>googletag.cmd.push(function() { googletag.display('gam-ad-mobiili5'); });</script>
1969 1970 </div> 1971 </div><div class="readpeak-native" data-min-width="400" style="display: none;"> 1972 <div class="diks-native-ad diks-native-ad--narrow"> 1973 <div class="diks-native-ad__main-wrapper"> <h2 class="diks-title diks-title--size-s" >Mainos: <span class="diks-title__after-accent"> </span></h2><div class="diks-native-ad__image-wrapper"> 1974 <picture><img src="/theme/css/images/default/pixel.png" class="diks-native-ad__image" loading="lazy" alt=""> 1975 </picture> 1976 </div> 1977 <div class="diks-native-ad__content-wrapper"> <h2 class="diks-title diks-title--size-s" >Mainos: <span class="diks-title__after-accent"> </span></h2><h2 class="diks-native-ad__title"> 1978 <a class="diks-native-ad__link" href="#"> </a> 1979 </h2></div> 1980 </div> 1981 </div> 1982 </div><!-- ESI start element "mostReadFromCurrentPublication" generated at 02-10-2026 14:46:39.298134 --> 1983 <h2 class="diks-title diks-title--section" ><a class="diks-title__link" href="/luetuimmat/" aria-label="Lue lisää luetuimpia juttuja">Luetuimmat</a></h2><ol id="luetuimmat" class="diks-article-list diks-article-list--ordered" ><li class="diks-article-list__item"> 1984 1985 1986 1987 1988 <article class="diks-card diks-card--size-xs is--subscriber-only"> 1989 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1990 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9838319"><span class="diks-ui-accent">Potkuvalitukset | </span>Lohjalla hallitus tyrmää Moision ja Puistosalon väitteet, mutta ei yksimielisesti</a></h2></div> 1991 </div> 1992 </div></article> </li><li class="diks-article-list__item"> 1993 1994 1995 1996 1997 <article class="diks-card diks-card--size-xs"> 1998 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1999 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9838642">Seuraavan Laavujen kierroksen paikka vaihtui</a></h2></div> 2000 </div> 2001 </div></article> </li><li class="diks-article-list__item"> 2002 2003 2004 2005 2006 <article class="diks-card diks-card--size-xs"> 2007 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 2008 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9834722">Jorma Uotinen tanssii ensi-iltateoksessa Lohjan Pyhän Laurin kirkossa</a></h2></div> 2009 </div> 2010 </div></article> </li><li class="diks-article-list__item"> 2011 2012 2013 2014 2015 <article class="diks-card diks-card--size-xs is--subscriber-only"> 2016 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 2017 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9834720"><span class="diks-ui-accent">Hallinto-oikeus | </span>Länsirata kiikkuu nyt veitsenterällä, ja myös Lohjalla myönnetään, että hanke voi kaatua</a></h2></div> 2018 </div> 2019 </div></article> </li><li class="diks-article-list__item"> 2020 2021 2022 2023 2024 <article class="diks-card diks-card--size-xs is--subscriber-only"> 2025 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 2026 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.lansi-uusimaa.fi/paikalliset/9835226"><span class="diks-ui-accent">Lohjan kaupunki | </span>Säästösyistä tehty ratkaisu johti uuteen autohankintaan</a></h2></div> 2027 </div> 2028 </div></article> </li></ol><!-- ESI end element "mostReadFromCurrentPublication" --> 2029 <div class="diks-display-ad rs_skip" aria-hidden="true"> 2030 <div class="diks-display-ad__unit" id="gam-ad-boksi3" > 2031
2031<script>googletag.cmd.push(function() { googletag.display('gam-ad-boksi3'); });</script>
2031 2032 </div> 2033 </div> 2034 <div class="diks-display-ad rs_skip" aria-hidden="true"> 2035 <div class="diks-display-ad__unit" id="gam-ad-mobiili6" > 2036
2036<script>googletag.cmd.push(function() { googletag.display('gam-ad-mobiili6'); });</script>
2036 2037 </div> 2038 </div><div class="readpeak-native" data-min-width="400" style="display: none;"> 2039 <div class="diks-native-ad diks-native-ad--narrow"> 2040 <div class="diks-native-ad__main-wrapper"> <h2 class="diks-title diks-title--size-s" >Mainos: <span class="diks-title__after-accent"> </span></h2><div class="diks-native-ad__image-wrapper"> 2041 <picture><img src="/theme/css/images/default/pixel.png" class="diks-native-ad__image" loading="lazy" alt=""> 2042 </picture> 2043 </div> 2044 <div class="diks-native-ad__content-wrapper"> <h2 class="diks-title diks-title--size-s" >Mainos: <span class="diks-title__after-accent"> </span></h2><h2 class="diks-native-ad__title"> 2045 <a class="diks-native-ad__link" href="#"> </a> 2046 </h2></div> 2047 </div> 2048 </div> 2049 </div> 2050 <div class="diks-display-ad rs_skip" aria-hidden="true"> 2051 <div class="diks-display-ad__unit" id="gam-ad-boksi4" > 2052
2052<script>googletag.cmd.push(function() { googletag.display('gam-ad-boksi4'); });</script>
2052 2053 </div> 2054 </div> 2055 </aside> 2056 </div> 2057 </div> 2058 </div> 2059 </div> 2060 2061 2062 <footer class="diks-footer"><div class="diks-container diks-container--narrow-mobile diks-container--full-width-before-l"> 2063 <div class="diks-footer__top"> <nav class="diks-navigation-wrapper " aria-label="Osastovalikko"><ul class="diks-navigation diks-navigation--row diks-navigation--light diks-navigation--centered diks-navigation--mobile-row diks-navigation--draggable diks-navigation--size-xs diks-navigation--active-subtle" ><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/aihe/lohjan-palveluverkko"draggable="false">Lohjan palveluverkko</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/aihe/tassa-tyossa"draggable="false">Tässä työssä</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/aihe/vierailulla"draggable="false">Vierailulla</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/aihe/Paikallisurheilu"draggable="false">Paikallisurheilu</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/aihe/Lohja"draggable="false">Lohja</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/paakirjoitus-mielipide"draggable="false">Pääkirjoitus & Mielipide</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/aihe/maakunta-uusimaa"draggable="false">Uusimaa 360</a></li></ul> 2064 </nav></div> 2065 </div><div class="diks-container"><div class="diks-footer__main"> 2066 <div class="diks-grid"> 2067 <div class="diks-column diks-column--span-4 diks-column--m-span-8 diks-column--l-span-4 diks-column--xl-span-4"> 2068 <p><img src="https://a.lansi-uusimaa.fi/styles/2efe7af9/images/logos/lansi-uusimaa.svg" class="diks-logo diks-logo--default diks-footer__main-logo--wide" alt="Länsi-Uusimaa"><img src="https://a.lansi-uusimaa.fi/styles/2efe7af9/images/logos/lansi-uusimaa-white.svg" class="diks-logo diks-logo--darkmode diks-footer__main-logo--wide" alt="Länsi-Uusimaa"></p> 2069 <p><strong>Postiosoite:</strong> PL 60, 08101 Lohja<br><strong>Käyntiosoite:</strong> Liikehuoneisto C, Laurinkatu 37-41, 08100 Lohja<br><strong>Vastaava päätoimittaja:</strong> Päivi Kallo</p></div> 2070 2071 <div class="diks-column diks-column--span-4 diks-column--m-span-8 diks-column--l-span-4 diks-column--xl-span-5"><div class="diks-footer__main-secondary-logos-container"><div class="diks-footer__main-secondary-logo"><a href="https://vastuullistajournalismia.fi/"><img src="https://a.lansi-uusimaa.fi/styles/2efe7af9/images/logos/vastuullista-journalismia.png" loading="lazy" alt="Vastuullisen journalismin merkki kertoo, että sitä käyttävä media on sitoutunut noudattamaan Julkisen sanan neuvoston laatimia Journalistin ohjeita."></a></div></div><div class="diks-footer__main-links-wrapper"> 2072 <div class="diks-column diks-column--span-2"><a class="diks-footer__main-link" href="https://www.keskisuomalainen.com/tietosuojalauseke/">Tietosuojalauseke</a><a class="diks-footer__main-link" href="javascript:window.gravito.cmp.openPreferences();">Evästevalinnat</a><a class="diks-footer__main-link" href="https://www.keskisuomalainen.com/kayttoehdot/">Käyttöehdot</a><a class="diks-footer__main-link" href="https://keskisuomalainen.com/medianvapausasetus/">Medianvapausasetus</a><a class="diks-footer__main-link" href="https://oma.media.fi/tekoaly-journalismissamme/">Tekoäly journalismissamme</a></div> 2073 <div class="diks-column diks-column--span-2"><a class="diks-footer__main-link" href="https://oma.media.fi/lansi-uusimaa/">Asiakaspalvelu</a><a class="diks-footer__main-link" href="https://meks.fi/mainonta/alueet/etela-suomen-media/">Mediamyynti</a><a class="diks-footer__main-link" href="https://oma.media.fi/lansi-uusimaa/yhteystiedot/">Yhteystiedot</a></div> 2074 </div></div> 2075 2076 <div class="diks-column diks-column--span-4 diks-column--m-span-8 diks-column--l-span-4 diks-column--xl-span-5"> 2077 <h2 class="diks-footer__main-title">Sovellus</h2><p>Sovellus sisältää tuoreet juttumme, joita ilmestyy ympäri vuorokauden vuoden jokaisena päivänä sekä näköislehtemme liitteineen sekä näköislehtien arkiston. Asenna sovellus laitteesi sovelluskaupasta.</p><div class="diks-footer__main-app-image-wrapper"> 2078 <a class="diks-apps__app-link diks-hide-on-android" href="https://apps.apple.com/fi/app/l%C3%A4nsi-uusimaa/id6476492664"><img class="diks-apps__app-image" src="https://a.lansi-uusimaa.fi/styles/2efe7af9/images/default/appstore-badge.svg" loading="lazy" alt="Lataa sovellus App Storesta"></a> 2079 <a class="diks-apps__app-link diks-hide-on-ios" href="https://play.google.com/store/apps/details?id=fi.media.lansiuusimaa"><img class="diks-apps__app-image" src="https://a.lansi-uusimaa.fi/styles/2efe7af9/images/default/google-play-badge.svg" loading="lazy" alt="Lataa sovellus Google Play -kaupasta"></a> 2080 </div> 2081 2082 2083 </div>
2084 </div> 2085 </div><div class="diks-footer__bottom"> 2086 <div class="diks-footer__bottom-row"><div class="diks-footer__bottom-logo-wrapper"><a href="https://www.keskisuomalainen.com/"><img class="diks-footer__bottom-logo" src="https://a.lansi-uusimaa.fi/styles/2efe7af9/images/logos/keskisuomalainen-sign.svg" loading="lazy" alt="Keskisuomalainen Oyj"></a></div><span>Kuulumme Mediakonserni Keskisuomalaiseen</span></div> 2087 <div class="diks-footer__bottom-link-farm-wrapper"> 2088 <p><a class='diks-footer__bottom-link-farm-item' href='https://www.aamuposti.fi/'>Aamuposti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.avecmedia.fi/'>Avec</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.esaimaa.fi/'>Etelä-Saimaa</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.ess.fi/'>Etelä-Suomen Sanomat</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.forssanlehti.fi/'>Forssan Lehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.hankasalmensanomat.fi/'>Hankasalmen Sanomat </a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.heinavedenlehti.fi/'>Heinäveden Lehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.helsinginuutiset.fi/'>Helsingin Uutiset</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.hameensanomat.fi/'>Hämeen Sanomat</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.hameenlinnankaupunkiuutiset.fi/'>Hämeenlinnan Kaupunkiuutiset</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.iisalmensanomat.fi/'>Iisalmen Sanomat</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.itahame.fi/'>Itä-Häme</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.ita-savo.fi/'>Itä-Savo</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.joroistenlehti.fi/'>Joroisten Lehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.juvanlehti.fi/'>Juvan Lehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.kaakonkulma.fi/'>Kaakonkulma</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.kangasniemenlehti.fi/'>Kangasniemen Kunnallislehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.karjalainen.fi/'>Karjalainen</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.heili.fi/'>Karjalan Heili</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.karkkilalainen.fi/'>Karkkilalainen</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.keski-hame.fi/'>Keski-Häme</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.keski-uusimaa.fi/'>Keski-Uusimaa</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.keskilaakso.fi/'>Keskilaakso</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.ksml.fi/'>Keskisuomalainen</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.koillis-savo.fi/'>Koillis-Savo</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.kouvolansanomat.fi/'>Kouvolan Sanomat</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.kymensanomat.fi/'>Kymen Sanomat</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.lappeenrannanuutiset.fi/'>Lappeenrannan Uutiset</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.laukaa-konnevesi.fi/'>Laukaa-Konnevesi</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.lieksanlehti.fi/'>Lieksan Lehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.lopenlehti.fi/'>Lopen Lehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.loviisansanomat.fi/'>Loviisan Sanomat</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.luumaenlehti.fi/'>Luumäen Lehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.lansisaimaa.fi/'>Länsi-Saimaan Sanomat</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.lansi-savo.fi/'>Länsi-Savo</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.lansi-uusimaa.fi/'>Länsi-Uusimaa</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.lansivayla.fi/'>Länsiväylä</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.mattijaliisa.fi/'>Matti ja Liisa</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.meksi.fi/'>Meksi Urheilumedia</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.miilu.fi/'>Miilu</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.mikkelinkaupunkilehti.fi/'>Mikkelin Kaupunkilehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.mantsalanuutiset.fi/'>Mäntsälän Uutiset</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.aamuposti.fi/aihe/Nurmij%C3%A4rvi'>Nurmijärven Uutiset</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.outokummunseutu.fi/'>Outokummun Seutu</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.joutsenolehti.fi/'>Paikallislehti Joutseno</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.prsanomat.fi/'>Parikkalan-Rautjärven Sanomat</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.pernionseudunlehti.fi/'>Perniönseudun Lehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.pieksamaenlehti.fi/'>Pieksämäen Lehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.pielavesi-keitele.fi/'>Pielavesi-Keitele</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.pielisjokiseutu.fi/'>Pielisjokiseutu</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.pitajalainen.fi/'>Pitäjäläinen</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.pitajanuutiset.fi/'>Pitäjänuutiset</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.pogostansanomat.fi/'>Pogostan Sanomat</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.puruvesi.net/'>Puruvesi</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.pyhtaanlehti.fi/'>Pyhtäänlehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.salonjokilaakso.fi/'>Salonjokilaakso</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.sampolehti.fi/'>Sampo</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.savonsanomat.fi/'>Savon Sanomat</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.sinunsavo.fi/'>Sinun Savo</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.sisa-savolehti.fi/'>Sisä-Savo</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.sisasuomenlehti.fi/'>Sisä-Suomen Lehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.soisalonseutu.fi/'>Soisalon Seutu</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.sjl.fi/'>Suur-Jyväskylän Lehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.tamperelainen.fi/'>Tamperelainen</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.tollotin.fi/'>Töllötin</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.uusimaa.fi/'>Uusimaa</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.uutis-jousi.fi/'>Uutis-Jousi</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.uutisvuoksi.fi/'>Uutisvuoksi</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.vantaansanomat.fi/'>Vantaan Sanomat</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.vihdinuutiset.fi/'>Vihdin Uutiset</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.viikkosavo.fi/'>Viikkosavo</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.viispiikkinen.fi/'>
2088Viispiikkinen</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.viitasaarenseutu.fi/'>Viitasaaren Seutu</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.warkaudenlehti.fi/'>Warkauden Lehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.ylakarjala.fi/'>Ylä-Karjala</a></p><p>Kaikki sisällöt voidaan julkaista kaikissa Mediakonserni Keskisuomalaisen medioissa.</p> 2089 </div> 2090 </div></div> 2091</footer> 2092 2093 2094
2094<script> 2095 if (!DOMTokenList.prototype.replace) { 2096 // IE Polyfill 2097 DOMTokenList.prototype.replace = function (a, b) { 2098 if (this.contains(a)) { 2099 this.add(b); 2100 this.remove(a); 2101 return true; 2102 } 2103 return false; 2104 } 2105 } 2106 2107 document.querySelector('.diks-no-js').classList.replace('diks-no-js', 'diks-js'); 2108 2109 // User agent sniffing is not reliable and it's going away. 2110 // Use only to sprinkle a little bit of progressive enhancement on top. 2111 // Dear Apple, stop lying, iPad on iOS 13 is not a Mac. You're turning into 90s Microsoft. 2112 var userAgent = navigator.userAgent || navigator.vendor || window.opera; 2113 if (/android/i.test(userAgent)) { 2114 document.querySelector('html').classList.add('diks-user-agent--android'); 2115 } else if (/iPad|iPhone|iPod/i.test(userAgent) && !window.MSStream) { 2116 document.querySelector('html').classList.add('diks-user-agent--ios'); 2117 } else if (/macintosh/i.test(userAgent) && navigator.maxTouchPoints > 1) { 2118 document.querySelector('html').classList.add('diks-user-agent--ios'); 2119 } 2120</script>
2120 2121
2122<script> 2123 // Fix forEach for IE 2124 if (window.NodeList && !NodeList.prototype.forEach) { 2125 NodeList.prototype.forEach = Array.prototype.forEach; 2126 } 2127 2128 // Element.closest() needs a polyfill for older browsers. 2129 // While we only need the closest() functionality for mobile browsers, 2130 // we don't want the code to fail even on old desktop browsers. 2131 // https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill 2132 // https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Browser_compatibility 2133 if (!Element.prototype.matches) { 2134 Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector; 2135 } 2136 2137 if (!Element.prototype.closest) { 2138 Element.prototype.closest = function(s) { 2139 var el = this; 2140 2141 do { 2142 if (el.matches(s)) return el; 2143 el = el.parentElement || el.parentNode; 2144 } while (el !== null && el.nodeType === 1); 2145 return null; 2146 }; 2147 } 2148 2149 function setAriaExpanded(toggler, ariaExpandedValue) { 2150 // Set aria-expanded attribute of dropdown toggler 2151 // If the toggler contains a button, set the aria-expanded attribute for the button instead 2152 if ( toggler.querySelector('button') != null ) { 2153 toggler.querySelector('button').setAttribute('aria-expanded', ariaExpandedValue); 2154 } 2155 else { 2156 toggler.setAttribute('aria-expanded', ariaExpandedValue); 2157 } 2158 } 2159 2160 function toggleElement(target, toggleClass, toggler) { 2161 if (toggleClass) { 2162 var isOpenClass = toggleClass + '--is-open'; 2163 var isClosedClass = toggleClass + '--is-closed'; 2164 2165 if (target.classList.contains(isOpenClass)) { 2166 // Close this toggle 2167 target.classList.remove(isOpenClass); 2168 target.classList.add(isClosedClass); 2169 2170 // Set aria-expanded to false for the toggler 2171 setAriaExpanded(toggler, 'false'); 2172 2173 } else if (target.classList.contains(isClosedClass)) { 2174 // Open this toggle 2175 target.classList.remove(isClosedClass); 2176 target.classList.add(isOpenClass); 2177 2178 // Set aria-expanded to true for the toggler 2179 setAriaExpanded(toggler, 'true'); 2180 } else { 2181 // Open this toggle as a fallback 2182 target.classList.add(isOpenClass); 2183 2184 // Set aria-expanded to true for the toggler 2185 setAriaExpanded(toggler, 'true'); 2186 } 2187 } else { 2188 if (window.getComputedStyle(target).display !== 'none') { 2189 target.style.display = 'none'; 2190 } else { 2191 target.style.display = 'block'; 2192 } 2193 } 2194 }; 2195 2196 document.querySelectorAll('.js-diks-toggler').forEach(function(toggler) { 2197 var toggleId = toggler.getAttribute('data-diks-toggle'); 2198 var target = document.getElementById(toggleId); 2199 var eventListenerAttached = toggler.getAttribute('data-diks-event-click'); 2200 2201 if (target && !eventListenerAttached) { 2202 2203 // Set aria-controls of toggler 2204 if ( toggler.querySelector('button') != null ) { 2205 toggler.querySelector('button').setAttribute('aria-controls', toggleId); 2206 } 2207 else { 2208 toggler.setAttribute('aria-controls', toggleId); 2209 } 2210 2211 toggler.addEventListener('click', function(e) { 2212 e.preventDefault(); 2213 2214 var toggleClass = toggler.getAttribute('data-diks-toggle-class'); 2215 2216 if (webShareAPIEnabled(toggleId)) { 2217 share(); 2218 } else { 2219 toggleElement(target, toggleClass, toggler); 2220 } 2221 }); 2222 2223 toggler.setAttribute('data-diks-event-click', true); 2224 } 2225 }); 2226 2227 // Web Share and Clipboard API capabilities 2228 2229 function webShareAPIEnabled(toggleId) { 2230 const webShareAPIEnabled = true; 2231 const webShareAPIDropdownShareIds = ["jaa","jakopainikkeet"]; 2232 const isMobileDevice = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent); 2233 2234 return webShareAPIEnabled && webShareAPIDropdownShareIds.includes(toggleId) && isMobileDevice && navigator.share ? true : false; 2235 } 2236 2237 function share() { 2238 const metaTitleElement = document.querySelector('meta[property="og:title"]'); 2239 const metaDescriptionElement = document.querySelector('meta[name="description"]'); 2240 const metaUrlElement = document.querySelector('meta[property="og:url"]'); 2241 let title = ''; 2242 let description = ''; 2243 let url = document.location.href; 2244 2245 if (metaTitleElement && metaTitleElement.content) { 2246 title = metaTitleElement.content; 2247 } 2248 2249 if (metaDescriptionElement && metaDescriptionElement.content) { 2250 description = metaDescriptionElement.content; 2251 } 2252 2253 if (metaUrlElement && metaUrlElement.content) { 2254 url = metaUrlElement.content; 2255 } 2256 2257 navigator.share({ 2258 title: title, 2259 text: description, 2260 url: url 2261 }); 2262 } 2263 2264 document.querySelectorAll('.js-diks-share-clipboard').forEach(function(element) { 2265 element.addEventListener('click', function(e) { 2266 e.preventDefault(); 2267 2268 let url = document.location.href; 2269 const metaUrlElement = document.querySelector('meta[property="og:url"]'); 2270 2271 if (metaUrlElement && metaUrlElement.content) { 2272 url = metaUrlElement.content; 2273 } 2274 2275 // Copy URL to clipboard 2276 navigator.clipboard.writeText(url).then(function () { 2277 // Copying URL to clipboard succeeded 2278 const dropdownId = element.getAttribute('data-diks-dropdown-id'); 2279 // Find closest dropdown toggler 2280 let dropdownToggler = element.closest('.diks-dropdown').querySelector('.js-diks-toggler'); 2281 2282 if (dropdownId) { 2283 const dropdownElement = document.getElementById(dropdownId); 2284 2285 if (dropdownElement) { 2286 // Close currently open dropdown 2287 toggleElement(dropdownElement, 'diks-dropdown__content', dropdownToggler); 2288 } 2289 2290 // Show link copied notification text 2291 const notificationTextWrapperDiv = document.createElement('div'); 2292 const notificationTextDiv = document.createElement('div'); 2293 const notificationText = document.createTextNode('Linkki kopioitu leikepöydälle'); 2294 2295 notificationTextDiv.classList.add('diks-dropdown__notification-text'); 2296 notificationTextDiv.appendChild(notificationText); 2297 notificationTextWrapperDiv.classList.add('diks-dropdown__notification-text-wrapper'); 2298 notificationTextWrapperDiv.appendChild(notificationTextDiv); 2299 dropdownElement.parentNode.insertBefore(notificationTextWrapperDiv, null); 2300 2301 setTimeout(function () { 2302 notificationTextWrapperDiv.remove(); 2303 }, 5000); 2304 } 2305 }); 2306 }); 2307 }); 2308
2309 const initContentBlockToggleButtons = () => { 2310 const toggleContainers = document.querySelectorAll('[data-diks-init="toggle"]'); 2311 toggleContainers.forEach(container => { 2312 const toggleButton = container.querySelector('.diks-toggle-button'); 2313 const toggleContent = container.querySelector('.diks-toggle-content-container'); 2314 if (toggleButton && toggleContent) { 2315 toggleButton.addEventListener('click', () => { 2316 toggleElement(toggleContent, 'diks-toggle', toggleButton); 2317 }); 2318 } 2319 }); 2320 }; 2321 document.addEventListener('DOMContentLoaded', () => { 2322 initContentBlockToggleButtons(); 2323 }); 2324 2325</script>
2325 2326
2327<script> 2328 const useDragThreshold = true; 2329 2330 // Horizontally scrollable & draggable navigation 2331 class HorizontalScrollDragger { 2332 constructor(element) { 2333 this.slider = typeof element === 'string' ? document.querySelector(element) : element instanceof Element ? element : null; 2334 if (this.slider === null) return console.error('HorizontalScrollDragger: Element not found'); 2335 2336 this.isDown = false; 2337 this.preventClick = false; 2338 this.startX; 2339 this.scrollLeft; 2340 2341 this.dragThreshold = 5; 2342 this.dragSensitivity = 1; 2343 this.dragged = false; 2344 2345 this.init(); 2346 } 2347 2348 init() { 2349 this.slider.addEventListener('mousedown', (e) => this.handleMouseDown(e)); 2350 this.slider.addEventListener('mouseleave', () => this.handleMouseLeave()); 2351 this.slider.addEventListener('mouseup', () => this.handleMouseUp()); 2352 this.slider.addEventListener('mousemove', (e) => this.handleMouseMove(e)); 2353 this.slider.addEventListener('click', (e) => this.handleClick(e)); 2354 } 2355 2356 handleMouseDown(e) { 2357 this.isDown = true; 2358 this.slider.classList.add('diks-navigation--draggable-active'); 2359 this.startX = e.pageX - this.slider.offsetLeft; 2360 this.scrollLeft = this.slider.scrollLeft; 2361 this.preventClick = false; 2362 } 2363 2364 handleMouseLeave() { 2365 this.isDown = false; 2366 this.slider.classList.remove('diks-navigation--draggable-active'); 2367 } 2368 2369 handleMouseUp() { 2370 this.isDown = false; 2371 this.slider.classList.remove('diks-navigation--draggable-active'); 2372 } 2373 2374 handleMouseMove(e) { 2375 if (!this.isDown) return; 2376 2377 if ( useDragThreshold == true ) { 2378 const xWithThreshold = e.pageX - this.slider.offsetLeft; 2379 const delta = xWithThreshold - this.startX; 2380 2381 // If not yet dragging, check threshold 2382 if (!this.dragged && Math.abs(delta) > this.dragThreshold) { 2383 this.dragged = true; 2384 this.preventClick = true; 2385 2386 // Reset baseline so scrolling starts smoothly from here 2387 this.startX = xWithThreshold; 2388 this.scrollLeft = this.slider.scrollLeft; 2389 } 2390 2391 if (this.dragged) { 2392 e.preventDefault(); 2393 const walkWithThreshold = (xWithThreshold - this.startX) * this.dragSensitivity; // adjust sensitivity 2394 this.slider.scrollLeft = this.scrollLeft - walkWithThreshold; 2395 } 2396 } 2397 else { 2398 e.preventDefault(); 2399 const x = e.pageX - this.slider.offsetLeft; 2400 const walk = (x - this.startX) * this.dragSensitivity; // adjust sensitivity 2401 this.slider.scrollLeft = this.scrollLeft - walk; 2402 this.preventClick = true; 2403 } 2404 2405 } 2406 2407 handleClick(e) { 2408 if ( useDragThreshold == true && this.preventClick && this.dragged ) { 2409 e.preventDefault(); 2410 } 2411 else if ( useDragThreshold == false && this.preventClick) { 2412 e.preventDefault(); 2413 } 2414 } 2415 } 2416 2417 // Set the draggable navs (multiple) to handle their scrollbars 2418 let scrollableNavs = document.querySelectorAll('.diks-navigation--draggable'); 2419 2420 // Make draggable navigation draggable 2421 if ( scrollableNavs ) { 2422 scrollableNavs.forEach(function(element) { 2423 new HorizontalScrollDragger(element); 2424 }); 2425 } 2426 2427 2428 // Handle has-scrollbars class adding and removing 2429 function handleScrollableNavScrollbars(scrollableNavElement) { 2430 // If scrollable area is wider (scrollWidth) than what's visible (clientWidth) the element has scrollbars 2431 if ( scrollableNavElement.scrollWidth > scrollableNavElement.clientWidth ) { 2432 scrollableNavElement.classList.add('diks-navigation--draggable-has-scrollbars'); 2433 scrollableNavElement.parentElement.classList.add('diks-navigation-wrapper--has-scrollbars'); 2434 } 2435 // Remove the has-scrollbars class if it exists but shouldn't (element does not have scrollbars) 2436 else if ( scrollableNavElement.classList.contains('diks-navigation--draggable-has-scrollbars') ) { 2437 scrollableNavElement.classList.remove('diks-navigation--draggable-has-scrollbars'); 2438 scrollableNavElement.parentElement.classList.remove('diks-navigation-wrapper--has-scrollbars'); 2439 } 2440 } 2441 2442 // If scrollable nav exists add (or remove) necessary classes 2443 // "DOMContentLoaded" does not wait for styles to load and styles affect the size of the scrollable nav directly so we have to use "load" instead 2444 window.addEventListener('load', (event) => { 2445 if ( scrollableNavs ) {
2446 scrollableNavs.forEach(function(element) { 2447 handleScrollableNavScrollbars(element); 2448 }); 2449 } 2450 }); 2451 2452 // Check if scrollable nav has scrollbar 2453 window.addEventListener('resize', function(event){ 2454 if ( scrollableNavs ) { 2455 scrollableNavs.forEach(function(element) { 2456 handleScrollableNavScrollbars(element); 2457 }); 2458 } 2459 }); 2460</script>
2460 2461
2462<script> 2463 // Back button handling 2464 document.querySelectorAll('a.js-diks-back-button').forEach(function(item) { 2465 var referrerIsSameDomain = false; 2466 // Check if referrer is found as referrer isn't always available (browser, tab, window, bookmark, privacy). 2467 if (typeof(document.referrer) === 'string' && document.referrer.length > 0) { 2468 // Set referrerIsSameDomain to true if referrer is in the same domain as current location hostname and referrer is not the same page as current page (window.location.href) 2469 if ( document.referrer.includes(document.location.hostname) && document.referrer != window.location.href ) { 2470 referrerIsSameDomain = true; 2471 } 2472 } 2473 2474 // Overwrite link with history.go, as it also remembers scroll position but only if referrer is the same domain as current location hostname 2475 if (history.length > 1 && referrerIsSameDomain == true) { 2476 // Set referrer as back button href to enable visual cue & opening to a new window 2477 item.setAttribute('href', document.referrer); 2478 2479 // Set back button text 2480 item.querySelector('.diks-header__cta-text').innerHTML = "Takaisin"; 2481 2482 var stepsToGoBack = -1; 2483 2484 item.addEventListener('click', function(e) { 2485 e.preventDefault(); 2486 history.go(stepsToGoBack); 2487 }); 2488 } 2489 }); 2490</script>
2490 2491 2492 <link rel="stylesheet" href="/theme/css/includes/lightgallery/css/lightgallery-bundle.min.css"> 2493 <style>.lg-sub-html { background-color: rgba(0,0,0, .6); }</style> 2494
2494<script src="/theme/css/includes/lightgallery/lightgallery.min.js"></script>
2494 2495
2495<script src="/theme/css/includes/lightgallery/plugins/autoplay/lg-autoplay.min.js"></script>
2495 2496
2496<script src="/theme/css/includes/lightgallery/plugins/fullscreen/lg-fullscreen.min.js"></script>
2496 2497
2497<script src="/theme/css/includes/lightgallery/plugins/thumbnail/lg-thumbnail.min.js"></script>
2497 2498
2498<script src="/theme/css/includes/lightgallery/plugins/zoom/lg-zoom.min.js"></script>
2498 2499
2499<script> 2500 // lightGallery 2501 // Separate gallery for every .js-lightgallery 2502 // Gallery items come from .js-lightgallery .js-lightgallery__link 2503 // https://www.lightgalleryjs.com/docs/getting-started/ 2504 document.querySelectorAll('.js-diks-lightgallery').forEach(function(gallery) { 2505 var galleryImageLinks = gallery.getElementsByClassName('diks-gallery__link'); 2506 2507 // Thumbnails come from img inside the links, unless links specify data-thumbnail 2508 var thumbnailSource = (galleryImageLinks[0].hasAttribute('data-thumbnail')) ? ('data-thumbnail') : (false); 2509 2510 // Adjust certain settings depending on whether the gallery has one or more images 2511 var galleryHasMultipleImages = (galleryImageLinks.length > 1 ? true : false); 2512 2513 // Initialize 2514 lightGallery(gallery, { 2515 autoplay: galleryHasMultipleImages, 2516 counter: galleryHasMultipleImages, 2517 download: false, 2518 exThumbImage: thumbnailSource, 2519 hideControlOnEnd: true, 2520 licenseKey: "96BAAD7E-3BF04397-BBB55AE3-6D5A2C0B", 2521 loop: false, 2522 plugins: [lgAutoplay, lgFullscreen, lgThumbnail, lgZoom], 2523 selector: '.diks-gallery__link', 2524 mobileSettings: { 2525 controls: true, 2526 showCloseIcon: true 2527 }, 2528 strings: { 2529 closeGallery: 'Sulje galleria', 2530 toggleMaximize: 'Maksimointi', 2531 previousSlide: 'Edellinen', 2532 nextSlide: 'Seuraava', 2533 download: 'Lataa', 2534 playVideo: 'Katso video', 2535 mediaLoadingFailed: 'Sisällön lataus epäonnistui', 2536 }, 2537 autoplayPluginStrings: { 2538 toggleAutoplay: 'Automaattinen toisto' 2539 }, 2540 fullscreenPluginStrings: { 2541 toggleFullscreen: 'Kokoruututila' 2542 }, 2543 thumbnailPluginStrings: { 2544 toggleThumbnails: 'Pikkukuvat' 2545 }, 2546 zoomPluginStrings: { 2547 zoomIn: 'Suurenna', 2548 zoomOut: 'Pienennä', 2549 viewActualSize: 'Näytä täysikokoisena' 2550 } 2551 }); 2552 2553 // After closing LightGallery return focus to the image link that opened the gallery 2554 gallery.addEventListener('lgAfterClose', () => { 2555 galleryImageLinks[0].focus(); 2556 }); 2557 2558 }); 2559 2560 </script>
2560 2561
2562<script> 2563 function loadScript(url, callback) { 2564 var script = document.createElement("script"); 2565 script.type = "text/javascript"; 2566 if (script.readyState) { // IE 2567 script.onreadystatechange = function() { 2568 if (script.readyState === "loaded" || script.readyState === "complete") { 2569 script.onreadystatechange = null; 2570 callback(); 2571 } 2572 }; 2573 } else { // Others 2574 script.onload = function() { 2575 callback(); 2576 }; 2577 } 2578 script.src = url; 2579 document.getElementsByTagName("head")[0].appendChild(script); 2580 } 2581 function checkAudioElements() { 2582 // load audioplayer script only when audio elements are found 2583 if (document.querySelector(".init-audio-player")) { 2584 loadScript("https://a.lansi-uusimaa.fi/styles/2efe7af9/js/audioplayer/diks-audioplayer.min.js", function() { 2585 DiksAudioPlayer.init({ 2586 selector: '.init-audio-player', 2587 stopOthersOnPlay: true, 2588 enableKeystrokes: true 2589 }); 2590 }); 2591 } 2592 } 2593 window.onload = (event) => { 2594 checkAudioElements(); 2595 }; 2596</script>
2596<script> 2597 // ================================================================ 2598 // Unified Content Block Component 2599 // ================================================================ 2600 2601 const DiksContentBlock = (() => { 2602 // Private utility functions 2603 const utils = { 2604 setCookie: (name, value, days = 30) => { 2605 const expires = new Date(); 2606 expires.setTime(expires.getTime() + (days * 24 * 60 * 60 * 1000)); 2607 document.cookie = `${name}=${encodeURIComponent(value)};expires=${expires.toUTCString()};path=/`; 2608 }, 2609 2610 getCookie: (name) => { 2611 const value = `; ${document.cookie}`; 2612 const parts = value.split(`; ${name}=`); 2613 if (parts.length === 2) return decodeURIComponent(parts.pop().split(';').shift()); 2614 return null; 2615 }, 2616 2617 renderArticleCard: (article) => { 2618 let mainImage = article.mainImage; 2619 2620 // For ContentPackage: if mainImage is empty, get from first story in teaserStories 2621 if (article.type === 'ContentPackage' && (!mainImage || mainImage.length === 0)) { 2622 if (article.teaserStories && article.teaserStories.length > 0) { 2623 // Find first teaser story with a mainImage 2624 for (const teaserStory of article.teaserStories) { 2625 if (teaserStory.content && 2626 teaserStory.content.mainImage && 2627 teaserStory.content.mainImage.length > 0) { 2628 mainImage = teaserStory.content.mainImage; 2629 break; 2630 } 2631 } 2632 } 2633 } 2634 2635 let imageHtml = ''; 2636 if (mainImage && mainImage.length > 0) { 2637 const imageFields = mainImage[0].content.fields; 2638 const src = imageFields.landscape_720.href_full; 2639 const srcset = ` 2640 ${imageFields.landscape_240.href_full} 240w, 2641 ${imageFields.landscape_480.href_full} 480w, 2642 ${imageFields.landscape_720.href_full} 720w, 2643 ${imageFields.landscape_960.href_full} 960w 2644 `; 2645 imageHtml = ` 2646 <div class="diks-card__image-wrapper"> 2647 <img class="diks-card__image" 2648 src="${src}" 2649 loading="lazy" 2650 sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" 2651 srcset="${srcset}" 2652 decoding="async" 2653 alt="${article.headline}" 2654 pinger-seen="true"> 2655 </div> 2656 `; 2657 } 2658 2659 const fullHeadline = article.headlinePrefix 2660 ? `<span class="diks-ui-accent">${article.headlinePrefix} | </span>${article.headline}` 2661 : article.headline; 2662 2663 const publishedDate = new Date(article.published).toLocaleString('fi-FI', { 2664 day: 'numeric', 2665 month: 'numeric', 2666 year: 'numeric', 2667 hour: 'numeric', 2668 minute: 'numeric' 2669 }); 2670 2671 return ` 2672 <article class="diks-card diks-card--size-s"> 2673 <div class="diks-card__main-wrapper"> 2674 ${imageHtml} 2675 <div class="diks-card__text-wrapper"> 2676 <div class="diks-card__text-inner-wrapper"> 2677 <h2 class="diks-card__title"> 2678 <a class="diks-card__link" href="${article.href}">${fullHeadline}</a> 2679 </h2> 2680 <div class="diks-card__meta-wrapper"> 2681 <div class="diks-meta"> 2682 <div class="diks-date"> 2683 <time class="diks-date__published" datetime="${article.published}">${publishedDate}</time> 2684 </div> 2685 </div> 2686 </div> 2687 </div> 2688 </div> 2689 </div> 2690 </article> 2691 `; 2692 }, 2693 2694 getComponentType: (containerId) => { 2695 if (containerId.startsWith('diks-content-block-search-')) return 'search'; 2696 if (containerId.startsWith('diks-content-block-aggregator-')) return 'aggregator'; 2697 return null; 2698 }, 2699 2700 getBlockId: (containerId, type) => { 2701 if (type === 'search') return containerId.replace('diks-content-block-search-', ''); 2702 if (type === 'aggregator') return containerId.replace('diks-content-block-aggregator-', ''); 2703 return containerId; 2704 }, 2705 2706 getResultsId: (blockId, type) => { 2707 if (type === 'search') return `diks-search-results-${blockId}`; 2708 if (type === 'aggregator') return `diks-results-${blockId}`; 2709 return null; 2710 } 2711 }; 2712 2713 // Build query parameters based on component type and filters 2714 const buildQueryParams = (containerId) => { 2715 const container = document.getElementById(containerId); 2716 const type = utils.getComponentType(containerId); 2717 const blockId = utils.getBlockId(containerId, type); 2718 2719 const params = new URLSearchParams({ 2720 type: container.dataset.queryType || 'story', 2721 size: container.dataset.maxResults || 20 2722 }); 2723 2724 if (type === 'search') { 2725 // Search-specific parameters 2726 const defaultSort = container.dataset.sort; 2727 const defaultPaywall = container.dataset.paywall; 2728 const defaultStoryTypes = container.dataset.storyTypes; 2729 const defaultTopics = container.dataset.topics; 2730 const defaultAdvertisers = container.dataset.advertisers; 2731 const dateRangeType = container.dataset.dateRangeType; 2732 2733 // Sort 2734 if (defaultSort && defaultSort !== '*') { 2735 params.append('sort', defaultSort); 2736 } 2737 2738 // Paywall 2739 const paywallSelect = document.getElementById(`diks-search-paywall-${blockId}`); 2740 if (paywallSelect && paywallSelect.value) { 2741 params.append('paywall', paywallSelect.value); 2742 } else if (defaultPaywall && defaultPaywall !== '*') { 2743 params.append('paywall', defaultPaywall); 2744 } 2745 2746 // Story types 2747 let storyTypesValue = defaultStoryTypes; 2748 const storyTypesSelect = document.getElementById(`diks-search-story-types-${blockId}`); 2749 if (storyTypesSelect) { 2750 const selectedOptions = Array.from(storyTypesSelect.selectedOptions).map(opt => opt.value); 2751 if (selectedOptions.length > 0) { 2752 storyTypesValue = selectedOptions.join(','); 2753 } 2754 } 2755 if (storyTypesValue) { 2756 params.append('storyTypes', storyTypesValue); 2757 } 2758 2759 // Topics 2760 if (defaultTopics) { 2761 params.append('topics', defaultTopics); 2762 const topicsOperator = container.dataset.topicsOperator || 'OR'; 2763 params.append('topicsOperator', topicsOperator); 2764 } 2765 2766 // Advertisers 2767 if (defaultAdvertisers) { 2768 params.append('advertisers', defaultAdvertisers); 2769 const advertisersOperator = container.dataset.advertisersOperator || 'OR'; 2770 params.append('advertisersOperator', advertisersOperator); 2771 } 2772 2773 // Date ranges 2774 const fromDateInput = document.getElementById(`diks-search-from-date-${blockId}`); 2775 const toDateInput = document.getElementById(`diks-search-to-date-${blockId}`); 2776 const monthInput = document.getElementById(`diks-search-month-${blockId}`); 2777 2778 if (dateRangeType === 'byMonth' && monthInput && monthInput.value) { 2779 const [year, month] = monthInput.value.split('-').map(Number); 2780 const fromDate = new Date(year, month - 1, 1, 0, 0, 0, 0); 2781 const toDate = new Date(year, month, 0, 23, 59, 59, 999); 2782 params.append('fromDate', fromDate.toISOString().split('.')[0] + 'Z'); 2783 params.append('toDate', toDate.toISOString().split('.')[0] + 'Z'); 2784 } else { 2785 if (fromDateInput && fromDateInput.value) { 2786 const fromDate = new Date(fromDateInput.value); 2787 fromDate.setHours(0, 0, 0, 0); 2788 params.append('fromDate', fromDate.toISOString().split('.')[0] + 'Z'); 2789 } 2790 if (toDateInput && toDateInput.value) { 2791 const toDate = new Date(toDateInput.value); 2792 toDate.setHours(23, 59, 59, 999); 2793 params.append('toDate', toDate.toISOString().split('.')[0] + 'Z'); 2794 } 2795 } 2796 } else if (type === 'aggregator') { 2797 // Aggregator-specific parameters 2798 const selectedTopic = container.dataset.selectedTopic; 2799 if (selectedTopic) { 2800 params.append('topics', selectedTopic); 2801 } 2802 } 2803 2804 return params; 2805 }; 2806 2807 // Main fetch content function 2808 const fetchContent = async (containerId) => { 2809 const container = document.getElementById(containerId); 2810 const type = utils.getComponentType(containerId); 2811 const blockId = utils.getBlockId(containerId, type); 2812 const resultsId = utils.getResultsId(blockId, type); 2813 const resultsDiv = document.getElementById(resultsId); 2814 2815 if (!container || !resultsDiv) { 2816 console.error(`Content block container or results div not found: ${containerId}`); 2817 return; 2818 } 2819 2820 try { 2821 // Show loading state 2822 const loadingMessage = type === 'search' 2823 ? '<p class="diks-content-block-search--loading">Ladataan...</p>' 2824 : '<p class="diks-content-block-aggregator--loading">Ladataan...</p>'; 2825 resultsDiv.innerHTML = loadingMessage; 2826 2827 // Build query parameters 2828 const params = buildQueryParams(containerId); 2829 const apiUrl = container.dataset.apiUrl || '/.content/items'; 2830 2831 // Fetch data 2832 const response = await fetch(`${apiUrl}?${params.toString()}`, { 2833 method: 'GET' 2834 }); 2835 2836 if (!response.ok) { 2837 throw new Error('Verkkovirhe.'); 2838 } 2839 2840 const data = await response.json(); 2841 2842 // Render results 2843 let html = ''; 2844 if (data.items && data.items.length > 0) {
2845 data.items.forEach(article => { 2846 html += utils.renderArticleCard(article); 2847 }); 2848 } else { 2849 const noResultsMessage = type === 'search' 2850 ? '<p class="diks-content-block-search--no-results">Ei hakutuloksia.</p>' 2851 : '<p>Ei sisältöä.</p>'; 2852 html = noResultsMessage; 2853 } 2854 2855 resultsDiv.innerHTML = html; 2856 } catch (error) { 2857 const errorMessage = type === 'search' 2858 ? `<p class="diks-content-block-search--error">Virhe: ${error.message}</p>` 2859 : `<p class="error">Error: ${error.message}</p>`; 2860 resultsDiv.innerHTML = errorMessage; 2861 } 2862 }; 2863 2864 // Initialize search component 2865 const initializeSearch = (containerId) => { 2866 const container = document.getElementById(containerId); 2867 const blockId = utils.getBlockId(containerId, 'search'); 2868 const dateRangeType = container.dataset.dateRangeType; 2869 2870 // Get UI elements 2871 const searchButton = document.getElementById(`diks-search-button-${blockId}`); 2872 const fromDateInput = document.getElementById(`diks-search-from-date-${blockId}`); 2873 const toDateInput = document.getElementById(`diks-search-to-date-${blockId}`); 2874 const monthInput = document.getElementById(`diks-search-month-${blockId}`); 2875 2876 // Set current month as default for byMonth type 2877 if (dateRangeType === 'byMonth' && monthInput) { 2878 const now = new Date(); 2879 const year = now.getFullYear();
2880 const month = String(now.getMonth() + 1).padStart(2, '0'); 2881 monthInput.value = `${year}-${month}`; 2882 2883 // Auto-trigger search on month change 2884 monthInput.addEventListener('change', () => fetchContent(containerId)); 2885 } 2886 2887 // Search button click handler 2888 if (searchButton) { 2889 searchButton.addEventListener('click', () => fetchContent(containerId)); 2890 } 2891 2892 // Enter key support 2893 [fromDateInput, toDateInput, monthInput].forEach(input => { 2894 if (input) { 2895 input.addEventListener('keypress', (e) => { 2896 if (e.key === 'Enter') fetchContent(containerId); 2897 }); 2898 } 2899 }); 2900 2901 // Initial search 2902 fetchContent(containerId); 2903 }; 2904 2905 // Initialize aggregator component 2906 const initializeAggregator = (containerId) => { 2907 const container = document.getElementById(containerId); 2908 const blockId = utils.getBlockId(containerId, 'aggregator'); 2909 const topicLabels = JSON.parse(container.dataset.topicLabels || '{}'); 2910 const cookieName = `selectedTopic_${blockId}`; 2911 2912 const listId = `diks-topic-list-${blockId}`; 2913 const labelId = `diks-selected-topic-label-${blockId}`; 2914 const toggleId = `diks-toggle-button-${blockId}`; 2915 const listContainerId = `diks-toggle-area-${blockId}`; 2916 2917 const topicItems = document.querySelectorAll(`#${listId} .diks-topic-list__item`); 2918 const labelElement = document.getElementById(labelId); 2919 2920 // Update topic label display 2921 const updateTopicLabel = (topic) => { 2922 if (labelElement && topicLabels[topic]) { 2923 labelElement.textContent = topicLabels[topic]; 2924 } else if (labelElement) { 2925 labelElement.textContent = ''; 2926 } 2927 2928 // Update active state 2929 topicItems.forEach(item => { 2930 item.classList.toggle('diks-is-active', item.dataset.topic === topic); 2931 }); 2932 }; 2933 2934 // Handle single topic case 2935 if (Object.keys(topicLabels).length === 1) { 2936 const initialTopic = Object.keys(topicLabels)[0]; 2937 container.dataset.selectedTopic = initialTopic; 2938 updateTopicLabel(initialTopic); 2939 fetchContent(containerId); 2940 return; 2941 } 2942 2943 // Handle multiple topics case 2944 if (topicItems.length > 0) { 2945 // Determine initial topic (cookie or first) 2946 const cookieTopic = utils.getCookie(cookieName); 2947 let initialTopic = topicItems[0].dataset.topic; 2948 2949 if (cookieTopic) { 2950 const validTopic = Array.from(topicItems).some(item => item.dataset.topic === cookieTopic); 2951 if (validTopic) { 2952 initialTopic = cookieTopic; 2953 } 2954 } 2955 2956 // Set up topic click handlers 2957 topicItems.forEach(item => { 2958 item.addEventListener('click', () => { 2959 const selectedTopic = item.dataset.topic; 2960 container.dataset.selectedTopic = selectedTopic; 2961 utils.setCookie(cookieName, selectedTopic); 2962 updateTopicLabel(selectedTopic); 2963 fetchContent(containerId); 2964 2965 // Close toggle if open 2966 const toggleButton = document.getElementById(toggleId); 2967 const listContainer = document.getElementById(listContainerId); 2968 if (toggleButton && listContainer) { 2969 toggleButton.setAttribute('aria-expanded', 'false'); 2970 listContainer.classList.remove('diks-toggle--is-open'); 2971 listContainer.classList.add('diks-toggle--is-closed'); 2972 container.dataset.diksToggleState = 'closed'; 2973 } 2974 }); 2975 }); 2976 2977 // Initial fetch 2978 container.dataset.selectedTopic = initialTopic; 2979 updateTopicLabel(initialTopic); 2980 fetchContent(containerId); 2981 } 2982 }; 2983 2984 // Public API 2985 return { 2986 fetchContent, 2987 initialize: (containerId) => { 2988 const type = utils.getComponentType(containerId); 2989 if (type === 'search') { 2990 initializeSearch(containerId); 2991 } else if (type === 'aggregator') { 2992 initializeAggregator(containerId); 2993 } 2994 } 2995 }; 2996 })(); 2997 2998 2999 // ================================================================ 3000 // Auto-initialize all content block components 3001 // ================================================================ 3002 3003 document.addEventListener('DOMContentLoaded', () => { 3004 // Initialize all content block components (search + aggregator) 3005 const allContainers = document.querySelectorAll('[id^="diks-content-block-search-"], [id^="diks-content-block-aggregator-"]');
3006 allContainers.forEach(container => { 3007 DiksContentBlock.initialize(container.id); 3008 }); 3009 }); 3010</script>
vendor: 1 bytes, line 3010
3010
3011<script> 3012 // Service Worker 3013 if ('serviceWorker' in navigator) { 3014 window.addEventListener('load', function() { 3015 navigator.serviceWorker.register('/sw.js').then( 3016 function(registration) { 3017 console.log('PWA: Service worker registered to scope: ', registration.scope); 3018 }, 3019 function(err) { 3020 console.error('PWA: Service worker failed to register with error: ', err); 3021 } 3022 ); 3023 }); 3024 } 3025 3026 // Show installation option, hide generic fallback instructions 3027 function pwaShowInstallationOption() { 3028 document.querySelectorAll('.js-diks-apps-pwa-installation').forEach(function(element) { 3029 element.style.display = 'block'; 3030 }); 3031 document.querySelectorAll('.js-diks-apps-pwa-instructions').forEach(function(element) { 3032 element.style.display = 'none'; 3033 }); 3034 } 3035 3036 let deferredPrompt; 3037 var dataLayer = window.dataLayer || []; 3038 3039 // Basic installation process 3040 window.addEventListener('beforeinstallprompt', (e) => { 3041 // Stash the event so it can be triggered later 3042 deferredPrompt = e; 3043 3044 const enablePrompt = 0; 3045 3046 if(!enablePrompt) { 3047 e.preventDefault(); 3048 } 3049 3050 // Update the UI to notify the user they can install PWA 3051 pwaShowInstallationOption(); 3052 3053 // Handle installation 3054 document.querySelectorAll('.js-diks-apps-pwa-installation-button').forEach(function(button) { 3055 button.addEventListener('click', (e) => { 3056 // Show the prompt 3057 deferredPrompt.prompt(); 3058 3059 // Wait for user to respond 3060 deferredPrompt.userChoice.then((choiceResult) => { 3061 if (choiceResult.outcome === 'accepted') { 3062 console.log('PWA: Installed (prompt)'); 3063 dataLayer.push({ 3064 'event': 'PWA.installation', 3065 'eventData': 'success' 3066 }); 3067 } else { 3068 console.log('PWA: User dismissed installation prompt'); 3069 dataLayer.push({ 3070 'event': 'PWA.installation', 3071 'eventData': 'canceled' 3072 }); 3073 } 3074 deferredPrompt = null; 3075 }); 3076 }); 3077 }); 3078 }); 3079 3080 // iOS installation process (show instructions modal) 3081 if (!navigator.standalone) { 3082 var userAgent = navigator.userAgent.toLowerCase(); 3083 var iPhoneUser = (/iphone/.test(userAgent)); 3084 var iPadUser = (/ipad/.test(userAgent) || (/macintosh/.test(userAgent) && navigator.maxTouchPoints > 1)); 3085 var safariUser = (/^(?!.*(brave|chrome|crios|duckduckgo|edgeios|firefox|fxios|opios|ucbrowser|yabrowser)).*safari.*$/.test(userAgent)); 3086 3087 if (safariUser && (iPhoneUser || iPadUser)) { 3088 // Update the UI to notify the user they can install PWA 3089 pwaShowInstallationOption(); 3090 3091 // Instructions 3092 var modals = document.querySelectorAll('.js-diks-apps-pwa-ios-instructions').forEach(function(element) { 3093 // Position on screen based on device 3094 if (iPhoneUser) { 3095 element.classList.add('diks-apps__pwa-ios-modal--bottom'); 3096 } else if (iPadUser) { 3097 element.classList.add('diks-apps__pwa-ios-modal--top'); 3098 } 3099 }); 3100 3101 // Handle modal instructions from installation button 3102 document.querySelectorAll('.js-diks-apps-pwa-installation-button').forEach(function(button) { 3103 button.addEventListener('click', (e) => { 3104 // Show first modal 3105 document.querySelector('.js-diks-apps-pwa-ios-instructions').classList.toggle('diks-apps__pwa-ios-modal--is-visible'); 3106 dataLayer.push({ 3107 'event': 'PWA.instructions.shown', 3108 'eventData': 'iOS' 3109 }); 3110 }); 3111 }); 3112 } 3113 } 3114</script>
3114 3115
3115<script class="coral-script" src="//coral.prod.diks.fi/assets/js/count.js?v=9.3.1.3" defer></script>
vendor: 1 bytes, line 3115
3115
3116<script> 3117 (function() { 3118 window.readpeak_initialized = false; 3119 3120 function getCookie(name) { 3121 name = name + '='; 3122 const decodedCookie = decodeURIComponent(document.cookie); 3123 const cookies = decodedCookie.split(';'); 3124 3125 for (let i = 0; i < cookies.length; i++) { 3126 const cookie = cookies[i].trim(); 3127 if (cookie.indexOf(name) == 0) { 3128 return cookie.substring(name.length, cookie.length); 3129 } 3130 } 3131 } 3132 3133 window.addEventListener( 3134 "gravito:tcfv2:client", 3135 function (event) { 3136 let eventType = event.detail.eventType; 3137 let consentUpdateEventsList = [ 3138 "layer1:opt-out:all", 3139 "layer2:opt-out:all", 3140 "layer2:opt-in:selected", 3141 "layer1:opt-in:all", 3142 "layer2:opt-in:all", 3143 "opt-in:previously", 3144 ]; 3145 if (consentUpdateEventsList.includes(eventType) && window.readpeak_initialized === false) { 3146 window.readpeak_initialized = true; 3147 var tcString = getCookie('TcString'); 3148 3149 if (tcString) { 3150 getReadpeakNative(tcString); 3151 } 3152 } 3153 }, true); 3154 3155 function getReadpeakNative(tcString) { 3156 var readpeakNativePlacements = document.getElementsByClassName("readpeak-native"); 3157 3158 if (!tcString || !(readpeakNativePlacements && readpeakNativePlacements.length)) { 3159 return; 3160 } 3161 3162 function appendBeaconScripts(element, beacons) { 3163 var url = "https://app.readpeak.com/js/rp-ext.min.js"; 3164 3165 beacons.forEach(function(beacon) { 3166 var script = document.createElement("script"); 3167 3168 script.src = url; 3169 script.setAttribute("type", "text/javascript"); 3170 script.setAttribute("data-url", beacon); 3171 script.setAttribute("language", "JavaScript"); 3172 script.setAttribute("async", true); 3173 3174 element.appendChild(script); 3175 }); 3176 } 3177 3178 function resolveImageUrl(images, minimumImageWidth) { 3179 if (!Array.isArray(images) || !minimumImageWidth) { 3180 return null; 3181 } 3182 3183 images.sort(function(image1, image2) { 3184 return (image1.width > image2.width) ? 1 : -1; 3185 }); 3186 3187 var image = images.find(function(image) { 3188 return image.width > minimumImageWidth; 3189 }); 3190 3191 if (image && image.image) { 3192 return image.image; 3193 } 3194 3195 return null; 3196 } 3197 3198 var xhttp = new XMLHttpRequest(); 3199 var jsonUrl = "https://app.readpeak.com/ads/get/?l=17bf310cc5899203&j=1" + "&ads=" + readpeakNativePlacements.length + "&url=https%3A%2F%2Fwww.lansi-uusimaa.fi%2Fuusimmat%2F" + "&gdpr_consent=" + tcString; 3200 3201 xhttp.onreadystatechange = function() { 3202 if (this.readyState == 4 && this.status == 200) { 3203 var parsedJSON = JSON.parse(this.responseText); 3204 var natives = Array.isArray(parsedJSON) ? parsedJSON : []; 3205 3206 Array.from(readpeakNativePlacements).forEach(function(placement, index) { 3207 var native = natives[index]; 3208 3209 if (native) { 3210 var minimumImageWidth = placement.getAttribute("data-min-width"); 3211 var imageUrl = resolveImageUrl(native.images, minimumImageWidth); 3212 3213 if (native.advertiser && imageUrl && native.target && native.title && Array.isArray(native.beacons)) { 3214 placement.querySelectorAll(".diks-title__after-accent").forEach(function(item) { 3215 item.innerHTML = native.advertiser; 3216 }); 3217 3218 placement.querySelector(".diks-native-ad__image").src = imageUrl; 3219 placement.querySelector(".diks-native-ad__link").href = native.target; 3220 placement.querySelector(".diks-native-ad__link").target = "_blank"; 3221 placement.querySelector(".diks-native-ad__title .diks-native-ad__link").innerHTML = native.title; 3222 3223 appendBeaconScripts(placement, native.beacons); 3224 3225 placement.style.display = "block"; 3226 } 3227 } 3228 }); 3229 3230 } 3231 }; 3232 3233 xhttp.open("GET", jsonUrl, true); 3234 xhttp.send(); 3235 }; 3236 }()); 3237 </script>
3237<div id="diks-bc-order-button" style="display: none;"></div> 3238 </body> 3239</html>
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.