[]
Tuulivoimaa Hattulaan suunnittelevan Myrsky Energian oma pääoma valahti miinukselle – Tällainen on yhtiön rakenne ja rahoituspohja, taustalla tanskalainen rahasto | Paikalliset | Hämeen Sanomat { if (!Hyphenopoly.hyphenators) { return } Hyphenopoly.hyphenators[”HTML”].then((hyphenator) => { for (const itemSelector in Hyphenopoly.setup.selectors) { const containerNode = document.querySelector(containerSelector) const itemNodeList = containerNode.querySelectorAll(itemSelector) itemNodeList.forEach((itemNode) => { hyphenator(itemNode, itemSelector) }) } }) } ]]>
Ketkä pääsivät valtuustoon? Tulospalvelu kertoo, miten Suomessa äänestettiin.
Omat tiedot’); var logoutForm = stringToHTML(’Hankeyhtiö Niinimäen Tuulivoima oy saa rahoituksensa tanskalaiselta Copenhagen Infrastructure Partnersilta (CIP). Myrsky Energian mukaan emoyhtiön velkaisuus ei vaikuta Hattulan tuulivoimahankkeen etenemiseen.
Viki Salonen
6.4.2025 3:15 | Päivitetty 7.4.2025 9:51
Tuulivoima-aluetta Hattulan Niinimäelle suunnittelevan Myrsky Energia oy:n oma pääoma on pudonnut negatiiviseksi, eli yhtiöllä on nyt enemmän velkaa kuin varoja. Yhtiö ilmoitti asiasta kaupparekisteriin 14. maaliskuuta.
Haluatko lukea koko jutun?
Tilaa digi ja pääset lukemaan kaikki Hämeen Sanomien sisällöt.
Tilaa 6 kk 6,90 €/kk Tilaa 2 kk 18 €/kk
- Hameensanomat.fi-verkkopalvelun rajaton käyttöoikeus vuoden jokaisena päivänä
- Näköislehti
- SUSU digilehti
- Mobiilisovelluksen käyttöoikeus (iOS ja Android)
- Lukuoikeus sinulle ja kolmelle perheenjäsenellesi
Mainos: Kiertokapula Oy
Mainos: Kiertokapula Oy
14.4.2025 0:00
1) { document.querySelector(’html’).classList.add(’diks-user-agent–ios’); } ]]> this.handleMouseDown(e)); this.slider.addEventListener(’mouseleave’, () => this.handleMouseLeave()); this.slider.addEventListener(’mouseup’, () => this.handleMouseUp()); this.slider.addEventListener(’mousemove’, (e) => this.handleMouseMove(e)); this.slider.addEventListener(’click’, (e) => this.handleClick(e)); } handleMouseDown(e) { this.isDown = true; this.slider.classList.add(’diks-navigation–draggable-active’); this.startX = e.pageX – this.slider.offsetLeft; this.scrollLeft = this.slider.scrollLeft; this.preventClick = false; } handleMouseLeave() { this.isDown = false; this.slider.classList.remove(’diks-navigation–draggable-active’); } handleMouseUp() { this.isDown = false; this.slider.classList.remove(’diks-navigation–draggable-active’); } handleMouseMove(e) { if (!this.isDown) return; e.preventDefault(); const x = e.pageX – this.slider.offsetLeft; const walk = (x – this.startX) * 3; //scroll-fast this.slider.scrollLeft = this.scrollLeft – walk; this.preventClick = true; } handleClick(e) { if (this.preventClick) { e.preventDefault(); } } } // Set the draggable navs (multiple) to handle their scrollbars let scrollableNavs = document.querySelectorAll(’.diks-navigation–draggable’); // Make draggable navigation draggable if ( scrollableNavs ) { scrollableNavs.forEach(function(element) { new HorizontalScrollDragger(element); }); } // Handle has-scrollbars class adding and removing function handleScrollableNavScrollbars(scrollableNavElement) { // Debugging: console.log(”Scroll width: ” + scrollableNavElement.scrollWidth + ” & client width: ” + scrollableNavElement.clientWidth); // If scrollable area is wider (scrollWidth) than what’s visible (clientWidth) the element has scrollbars if ( scrollableNavElement.scrollWidth > scrollableNavElement.clientWidth ) { scrollableNavElement.classList.add(’diks-navigation–draggable-has-scrollbars’); scrollableNavElement.parentElement.classList.add(’diks-navigation-wrapper–has-scrollbars’); } // Remove the has-scrollbars class if it exists but shouldn’t (element does not have scrollbars) else if ( scrollableNavElement.classList.contains(’diks-navigation–draggable-has-scrollbars’) ) { scrollableNavElement.classList.remove(’diks-navigation–draggable-has-scrollbars’); scrollableNavElement.parentElement.classList.remove(’diks-navigation-wrapper–has-scrollbars’); } } // If scrollable nav exists add (or remove) necessary classes // ”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 window.addEventListener(’load’, (event) => { if ( scrollableNavs ) { scrollableNavs.forEach(function(element) { handleScrollableNavScrollbars(element); }); } }); // Check if scrollable nav has scrollbar window.addEventListener(’resize’, function(event){ if ( scrollableNavs ) { scrollableNavs.forEach(function(element) { handleScrollableNavScrollbars(element); }); } }); ]]> 0) { // 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) if ( document.referrer.includes(document.location.hostname) && document.referrer != window.location.href ) { referrerIsSameDomain = true; } } // Overwrite link with history.go, as it also remembers scroll position but only if referrer is the same domain as current location hostname if (history.length > 1 && referrerIsSameDomain == true) { // Set referrer as back button href to enable visual cue & opening to a new window item.setAttribute(’href’, document.referrer); // Set back button text item.querySelector(’.diks-header__cta-text’).innerHTML = ”Takaisin”; var stepsToGoBack = -1; item.addEventListener(’click’, function(e) { e.preventDefault(); history.go(stepsToGoBack); }); } }); ]]> 1 ? true : false); // Initialize lightGallery(gallery, { autoplay: galleryHasMultipleImages, counter: galleryHasMultipleImages, download: false, exThumbImage: thumbnailSource, hideControlOnEnd: true, licenseKey: ”96BAAD7E-3BF04397-BBB55AE3-6D5A2C0B”, loop: false, plugins: [lgAutoplay, lgFullscreen, lgThumbnail, lgZoom], selector: ’.diks-gallery__link’, mobileSettings: { controls: true, showCloseIcon: true }, strings: { closeGallery: ’Sulje galleria’, toggleMaximize: ’Maksimointi’, previousSlide: ’Edellinen’, nextSlide: ’Seuraava’, download: ’Lataa’, playVideo: ’Katso video’, mediaLoadingFailed: ’Sisällön lataus epäonnistui’, }, autoplayPluginStrings: { toggleAutoplay: ’Automaattinen toisto’ }, fullscreenPluginStrings: { toggleFullscreen: ’Kokoruututila’ }, thumbnailPluginStrings: { toggleThumbnails: ’Pikkukuvat’ }, zoomPluginStrings: { zoomIn: ’Suurenna’, zoomOut: ’Pienennä’, viewActualSize: ’Näytä täysikokoisena’ } }); // After closing LightGallery return focus to the image link that opened the gallery gallery.addEventListener(’lgAfterClose’, () => { galleryImageLinks[0].focus(); }); }); ]]> { checkAudioElements(); }; ]]> { // Stash the event so it can be triggered later deferredPrompt = e; const enablePrompt = 0; if(!enablePrompt) { e.preventDefault(); } // Update the UI to notify the user they can install PWA pwaShowInstallationOption(); // Handle installation document.querySelectorAll(’.js-diks-apps-pwa-installation-button’).forEach(function(button) { button.addEventListener(’click’, (e) => { // Show the prompt deferredPrompt.prompt(); // Wait for user to respond deferredPrompt.userChoice.then((choiceResult) => { if (choiceResult.outcome === ’accepted’) { console.log(’PWA: Installed (prompt)’); dataLayer.push({ ’event’: ’PWA.installation’, ’eventData’: ’success’ }); } else { console.log(’PWA: User dismissed installation prompt’); dataLayer.push({ ’event’: ’PWA.installation’, ’eventData’: ’canceled’ }); } deferredPrompt = null; }); }); }); }); // iOS installation process (show instructions modal) if (!navigator.standalone) { var userAgent = navigator.userAgent.toLowerCase(); var iPhoneUser = (/iphone/.test(userAgent)); var iPadUser = (/ipad/.test(userAgent) || (/macintosh/.test(userAgent) && navigator.maxTouchPoints > 1)); var safariUser = (/^(?!.*(brave|chrome|crios|duckduckgo|edgeios|firefox|fxios|opios|ucbrowser|yabrowser)).*safari.*$/.test(userAgent)); if (safariUser && (iPhoneUser || iPadUser)) { // Update the UI to notify the user they can install PWA pwaShowInstallationOption(); // Instructions var modals = document.querySelectorAll(’.js-diks-apps-pwa-ios-instructions’).forEach(function(element) { // Position on screen based on device if (iPhoneUser) { element.classList.add(’diks-apps__pwa-ios-modal–bottom’); } else if (iPadUser) { element.classList.add(’diks-apps__pwa-ios-modal–top’); } }); // Handle modal instructions from installation button document.querySelectorAll(’.js-diks-apps-pwa-installation-button’).forEach(function(button) { button.addEventListener(’click’, (e) => { // Show first modal document.querySelector(’.js-diks-apps-pwa-ios-instructions’).classList.toggle(’diks-apps__pwa-ios-modal–is-visible’); dataLayer.push({ ’event’: ’PWA.instructions.shown’, ’eventData’: ’iOS’ }); }); }); } } ]]>Lähde