1<!DOCTYPE html> 2<html lang="en"> 3 4<head> 5 <title>KING SATAN - Official Website | Industrial Metal Symphony & Death Metal Disco</title> 6 <!-- icon --> 7 <link rel="browser_icon" href="/favicon.ico" type="image/x-icon"> 8 <meta charset="UTF-8"> 9 <meta name="viewport" content="width=device-width, initial-scale=1"> 10 11 <!-- SEO Meta Tags --> 12 <meta name="description" 13 content="King Satan - official website of the Finnish industrial metal symphony and death metal disco band. News, discography, tour dates, gallery, and more."> 14 <meta name="keywords" 15 content="King Satan, King Aleister Satan, industrial metal, death metal disco, groove metal, electronic metal, industrial rock, symphonic metal, melodic death metal, metal from finland, finnish metal, scandinavian metal, party metal"> 16 <meta name="robots" content="index, follow"> 17 <link rel="canonical" href="https://kingsatan.net/"> 18 19 <!-- Open Graph --> 20 <meta property="og:type" content="website"> 21 <meta property="og:title" content="KING SATAN - Official Website"> 22 <meta property="og:description" 23 content="Official website of King Satan - Finnish industrial metal symphony and death metal disco band."> 24 <meta property="og:url" content="https://kingsatan.net/"> 25 <meta property="og:image" content="https://kingsatan.net/img/band/kingsatan_2026.jpg"> 26 <meta property="og:site_name" content="King Satan"> 27 28 <!-- Twitter Card --> 29 <meta name="twitter:card" content="summary_large_image"> 30 <meta name="twitter:title" content="KING SATAN - Official Website"> 31 <meta name="twitter:description" 32 content="Official website of King Satan - Finnish industrial metal symphony and death metal disco band."> 33 <meta name="twitter:image" content="https://kingsatan.net/img/band/kingsatan_2026.jpg"> 34 35 <!-- JSON-LD Structured Data --> 36
36<script type="application/ld+json"> 37 { 38 "@context": "https://schema.org", 39 "@type": "MusicGroup", 40 "name": "King Satan", 41 "url": "https://kingsatan.net", 42 "image": "https://kingsatan.net/img/band/kingsatan_2026.jpg", 43 "genre": ["Industrial Metal", "Death Metal"], 44 "description": "King Satan is a Finnish industrial metal symphony and death metal disco band from the north", 45 "sameAs": [ 46 "https://www.facebook.com/kingsatan616", 47 "https://www.instagram.com/kingsatanofficial", 48 "https://www.youtube.com/kingsatantv", 49 "https://open.spotify.com/artist/1V9mrCXH8tey5uHZlsAxKW" 50 ] 51 } 52 </script>
52 53 54 <!-- Icons and Fonts --> 55
55<script src="https://kit.fontawesome.com/7f622c65bc.js" crossorigin="anonymous"></script>
55 56 <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato"> 57 <link rel="stylesheet" href="/fonts/fontawesome-free-5.3.1-web/css/all.css"> 58 59 <!-- JavaScript Libraries --> 60
60<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
60 61
61<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
61 62
62<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js"></script>
62 63 64 <!-- CSS --> 65 <link rel="stylesheet" href="css/linearicons.css"> 66 <link rel="stylesheet" href="css/font-awesome.min.css"> 67 <link rel="stylesheet" href="css/magnific-popup.css"> 68 <link rel="stylesheet" href="css/w3.css"> 69 <link rel="stylesheet" href="css/bootstrap.min.css?v=1.4"> 70 <link rel="stylesheet" type="text/css" href="css/style.css?v=2.7"> 71 <link rel="stylesheet" type="text/css" href="css/card-styles.css?v=2.7"> 72 <link rel="stylesheet" type="text/css" href="css/mobile.css?v=2.7"> 73 74 <!-- Page Content Loading --> 75
75<script> 76 $(function () { 77 // Load music.html content 78 $("#MusicSection").load("music.html .music-container", function (response, status, xhr) { 79 if (status == "error") { 80 console.log("Error loading music content: " + xhr.status + " " + xhr.statusText); 81 // Show error message 82 $("#MusicSection").html('<p style="color: red; text-align: center; padding: 20px;">Error loading discography content. Please refresh the page.</p>'); 83 } else { 84 console.log("Music content loaded successfully"); 85 // Remove any loading text 86 $("#MusicSection").find('p:contains("Loading")').remove(); 87 initializeMusicFilter(); 88 } 89 }); 90 // The following are commented out as they are not present in the body 91 // $("#NavbarSection").load("navbar.html"); 92 // $("#HeaderSection").load("header.html"); 93 }); 94 95 // Music filter function for the loaded content 96 function filterSelection(evt, filterName) { 97 var i, x, tablinks; 98 x = document.getElementsByClassName("filter"); 99 for (i = 0; i < x.length; i++) { 100 x[i].style.display = "none"; 101 } 102 tablinks = document.getElementsByClassName("tablink"); 103 for (i = 0; i < tablinks.length; i++) { 104 tablinks[i].className = tablinks[i].className.replace(" filter-selection", ""); 105 } 106 document.getElementById(filterName).style.display = "block"; 107 evt.currentTarget.className += " filter-selection"; 108 } 109 110 // Initialize music filter after content loads 111 function initializeMusicFilter() { 112 // Show albums by default 113 var albumsFilter = document.getElementById("albums"); 114 if (albumsFilter) { 115 albumsFilter.style.display = "block"; 116 } 117 118 // Ensure album links work properly after dynamic loading 119 var albumLinks = document.querySelectorAll('#MusicSection a[href*="discography.html"]'); 120 albumLinks.forEach(function (link) { 121 // Ensure the link has the correct href attribute 122 if (link.href && link.href.includes('discography.html')) { 123 // The links should work automatically, but we can add click tracking if needed 124 link.addEventListener('click', function (e) { 125 // Let the default link behavior work 126 // console.log('Album link clicked:', this.href); 127 }); 128 } 129 }); 130 } 131 </script>
131 132</head> 133 134<body data-spy="scroll" data-target=".navbar" data-offset="50" id="home"> 135 <button onclick="topFunction()" id="TopBtn" title="Go to top"> 136 <i class="fa-solid fa-circle-up"></i> 137 </button> 138 139 <!-- The Navbar Section --> 140 <nav class="navbar navbar-inverse" id="navbar"> 141 <div class="w3-row w3-center"> 142 <div class="navbar-header"> 143 <a class="navbar-brand" href="https://www.kingsatan.net/">KING SATAN</a> 144 <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar"> 145 <i class="fa fa-navicon"></i> 146 </button> 147 </div> 148 </div> 149 <!-- Large Navbar--> 150 <div class="collapse navbar-collapse nav-center " id="myNavbar"> 151 <div id="navbar-large"> 152 <!-- <a class="navbar-brand" href="https://www.kingsatan.net/">KING SATAN</a> --> 153 <ul class="nav navbar-nav nav-center"> 154 <li><a href="#home">KING SATAN</a></li> 155 <li><a href="#music">MUSIC</a></li> 156 <li><a href="#shop" data-external-link="https://shop.kingsatan.net/" 157 onclick="window.open(this.dataset.externalLink, '_blank'); document.getElementById('shop').scrollIntoView({behavior: 'smooth'}); return false;">SHOP 158 <i class="fas fa-external-link-alt shop-icon"></i></a></li> 159 <li><a href="https://www.deathagency.fi/djkings8n.html" target="_blank" rel="noopener noreferrer">DJ 160 <i class="fas fa-external-link-alt shop-icon"></i></a></li> 161 <li><a href="#videos">VIDEOS</a></li> 162 <li><a href="#band">BAND</a></li> 163 <li><a href="#tour">TOUR</a></li> 164 <li><a href="#book">BOOK</a></li> 165 <li><a href="#contact">CONTACT</a></li> 166 <li class="dropdown"> 167 <a class="dropdown-toggle" data-toggle="dropdown" href="#">MORE<span class="caret"></span></a> 168 <ul class="dropdown-content"> 169 <li><a href="#newsletter">NEWSLETTER</a></li> 170 <li><a href="discography">DISCOGRAPHY</a></li> 171 <li><a href="gallery">GALLERY</a></li> 172 <li><a href="media">MEDIA</a></li> 173 <li><a href="https://linktr.ee/kingsatan">LINKTR.EE</a></li> 174 </ul> 175 </li> 176 <!-- small screen MORE links --> 177 <li class="more"><a href="#newsletter">NEWSLETTER</a></li> 178 <li class="more"><a href="discography">DISCOGRAPHY</a></li> 179 <li class="more"><a href="gallery">GALLERY</a></li> 180 <li class="more"><a href="media">MEDIA</a></li> 181 <li class="more"><a href="https://linktr.ee/kingsatan">LINKTR.EE</a></li> 182 </ul> 183 </div> <!-- END of navbar-large --> 184 </div> <!-- END of myNavbar --> 185 </nav> 186 187 <!-- Full Width Header --> 188 <div class="hero-section"> 189 <div class="hero-image"> 190 <img src="img/band/kingsatan_2026.jpg" alt="King Satan - Industrial Metal & Death Metal Disco" class="hero-img"> 191 <div class="hero-overlay"> 192 <div class="hero-content"> 193 <h1 class="hero-title">KING SATAN</h1> 194 <div class="hero-subtitle">INDUSTRIAL METAL & DEATH METAL DISCO</div> 195 <!-- <p class="hero-description"></p> --> 196 <!-- Scroll Down Arrow --> 197 <div class="scroll-arrow" onclick="scrollToContent()"> 198 <i class="fas fa-chevron-down"></i> 199 </div> 200 </div> 201 </div> 202 </div> 203 </div> 204 <!-- END of Header --> 205 206 <!-- Page content --> 207 <div class="w3-content page-content"> 208 <!--SoMe links--> 209 <div class="w3-xxlarge somelinks stickysome"> 210 <a href="https://www.facebook.com/kingsatan616" target="_blank" title="Facebook"> 211 <i class="fa fa-facebook-official"></i> 212 </a> 213 <a href="https://www.instagram.com/kingsatanofficial" target="_blank" title="Instagram"> 214 <i class="fa fa-instagram"></i> 215 </a> 216 <a href="https://www.youtube.com/kingsatantv" target="_blank" title="YouTube"> 217 <i class="fa fa-youtube"></i> 218 </a> 219 <a href="https://www.tiktok.com/@kingsatanofficial" target="_blank" title="TikTok"> 220 <i class="fab fa-tiktok"></i> 221 </a> 222 <a href="https://open.spotify.com/artist/1V9mrCXH8tey5uHZlsAxKW?si=vTjdYup_TSmbPNaU5GisZQ" target="_blank" 223 title="Spotify"> 224 <i class="fa fa-spotify"></i> 225 </a> 226 <a href="https://kingsatan.bfan.link/occult-spiritual-anarchy" target="_blank" 227 title="Get Occult Spiritual Anarchy"> 228 <i class="fa fa-music"></i> 229 </a> 230 </div> <!-- End of SoMe links--> 231 232 <!-- Streaming Section --> 233 <div class="streaming-section" id="music"> 234 <div class="w3-container w3-content w3-center"> 235 <div class="section-title">STREAM NOW</div> 236 <div class="w3-row w3-center"> 237 <div class="streaming-links"> 238 <a href="https://open.spotify.com/artist/1V9mrCXH8tey5uHZlsAxKW" target="_blank" class="streaming-button"> 239 <i class="fa fa-spotify"></i> Spotify 240 </a> 241 <a href="https://www.youtube.com/@KingSatanTV" target="_blank" class="streaming-button stream-youtube"> 242 <i class="fa fa-youtube"></i> YouTube 243 </a> 244 <a href="https://kingsatan.bfan.link/occult-spiritual-anarchy" target="_blank" class="streaming-button"> 245 <i class="fa fa-music"></i> All Platforms 246 </a> 247 </div> 248 </div> 249 <div class="w3-row w3-center"> 250 <div class="streaming-widget"> 251 <iframe style="border-radius:12px" 252 src="https://open.spotify.com/embed/artist/1V9mrCXH8tey5uHZlsAxKW?utm_source=generator" width="100%" 253 height="352" frameBorder="0" allowfullscreen="" 254 allow="autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture" loading="lazy"> 255 </iframe> 256 </div> 257 </div> 258 </div> 259 </div> <!-- End of Streaming Section --> 260 261 <!-- Discography Section --> 262 <div class="discography-section" id="discography"> 263 <div class="w3-container w3-content w3-center"> 264 <div class="section-title">DISCOGRAPHY</div> 265 <!-- Discography Section from music.html --> 266 <div id="MusicSection"></div> 267 </div> 268 </div> <!-- End of Discography Section --> 269 270 <!-- Shop Section --> 271 <div class="shop-section" id="shop"> 272 <div class="w3-container w3-content w3-center"> 273 <div class="section-title">MERCH SHOP</div> 274 <!-- ÃXclusive --> 275 <div class="w3-row w3-center"> 276 <div class="shop-image-container"> 277 <a href="https://www.levykauppax.fi/v2/search/?q=King+Satan+Black+Magick+Abraxas&fbclid=IwY2xjawTcCRNwZG9mBWV4dG4DYWVtAjEwAGJyaWQRMXltV0k4NlpOd2NRUzlyUkFzcnRjBmFwcF9pZBAyMjIwMzkxNzg4MjAwODkyAAEefeuuiyO1dpWGLdEYktKf4yS9L2lmPLQ-CMtSjG0U1watkJhMgZDNqgbCApY_aem_sgCTNYRt4nzunMqvFTxtdA" target="_blank"> 278 <img src="img/shop/shop_header_äxclusive.jpg" alt="ÃXClusive pre-order bundles"> 279 <i class="fa-solid fa-basket-shopping shop-card-icon"></i> 280 </a> 281 </div> 282 </div> <!-- End of ÃXclusive --> 283 <div class="w3-row w3-center"> 284 <div class="shop-image-container"> 285 <a href="https://shop.kingsatan.net" target="_blank"> 286 <img src="img/shop/shop_header.jpeg" alt="Official King Satan Merchandise Store"> 287 <i class="fa-solid fa-basket-shopping shop-card-icon"></i> 288 </a> 289 </div> 290 </div> 291 </div> 292 </div> <!-- End of Shop Section --> 293 294 <!-- Featured Videos Section --> 295 <div class="featured-videos-section" id="videos"> 296 <div class="w3-container w3-content w3-center"> 297 <div class="section-title">LATEST MUSIC VIDEOS</div> 298 <div class="w3-row w3-center"> 299 <div class="video-grid"> 300 <div class="video-card"> 301 <div class="video-card-image" 302 onclick="window.open('https://youtu.be/tvJVGD6OJJA?si=L3t4fYWaiVn0MsQv', '_blank')" 303 style="cursor: pointer;"> 304 <img class="video-image" src="img/videos/2026_fire_in_the_hole.jpeg" alt="King Satan - Fire in the Hole" 305 loading="lazy"> 306 <i class="fab fa-youtube video-card-icon"></i> 307 </div> 308 <h4>Fire in the Hole</h4> 309 </div> 310 <div class="video-card"> 311 <div class="video-card-image" 312 onclick="window.open('https://youtu.be/ITi-czgEGQk?si=fzI0Kyib7Av9H_gz', '_blank')" 313 style="cursor: pointer;"> 314 <img class="video-image" src="img/videos/2026_crazy.jpeg" alt="King Satan - (You Drive Me) Crazy [Britney Spears Cover]" 315 loading="lazy"> 316 <i class="fab fa-youtube video-card-icon"></i> 317 </div> 318 <h4>(You Drive Me) Crazy</h4> 319 </div> 320 <div class="video-card"> 321 <div class="video-card-image" 322 onclick="window.open('https://youtu.be/pQ2YFpB8RWc?si=OnNRlH2HnFRzzyZc', '_blank')" 323 style="cursor: pointer;"> 324 <img class="video-image" src="img/videos/2026_LightOfDarkness.jpeg" alt="King Satan - Light Of Darkness" 325 loading="lazy"> 326 <i class="fab fa-youtube video-card-icon"></i> 327 </div> 328 <h4>Light Of Darkness</h4> 329 </div> 330 <div class="video-card"> 331 <div class="video-card-image" 332 onclick="window.open('https://youtu.be/SGJzCj9RI7c?si=5zBOxtpEug6ocxrZ', '_blank')" 333 style="cursor: pointer;"> 334 <img class="video-image" src="img/videos/2026_BMRR.jpeg" alt="King Satan - Black Magick Rock 'N' Roll" 335 loading="lazy"> 336 <i class="fab fa-youtube video-card-icon"></i> 337 </div> 338 <h4>Black Magick Rock 'N' Roll</h4> 339 </div> 340 <div class="video-card"> 341 <div class="video-card-image" 342 onclick="window.open('https://www.youtube.com/watch?v=miTnTm_BvWs', '_blank')" style="cursor: pointer;"> 343 <img class="video-image" src="img/videos/new_aeon_gospel.jpg" alt="King Satan - New Aeon Gospel" 344 loading="lazy"> 345 <i class="fab fa-youtube video-card-icon"></i> 346 </div> 347 <h4>New Aeon Gospel</h4> 348 </div> 349 <div class="video-card"> 350 <div class="video-card-image" 351 onclick="window.open('https://www.youtube.com/watch?v=o_IAyyQXcT8', '_blank')" style="cursor: pointer;"> 352 <img class="video-image" src="img/videos/abyss_of_the_souls.jpg" alt="King Satan - Abyss of the Souls" 353 loading="lazy"> 354 <i class="fab fa-youtube video-card-icon"></i> 355 </div> 356 <h4>Abyss of the Souls</h4> 357 </div> 358 <div class="video-card"> 359 <div class="video-card-image" 360 onclick="window.open('https://www.youtube.com/watch?v=wjiK58zh2HM', '_blank')" style="cursor: pointer;"> 361 <img class="video-image" src="img/videos/chaos_forever_now.jpg" alt="King Satan - Chaos Forever Now" 362 loading="lazy"> 363 <i class="fab fa-youtube video-card-icon"></i> 364 </div> 365 <h4>Chaos Forever Now</h4> 366 </div> 367 </div> 368 <div class="w3-center" id="video-button"> 369 <a href="https://www.youtube.com/@KingSatanTV" target="_blank" class="action-button"> 370 <i class="fa fa-youtube"></i> View All Music Videos 371 </a> 372 </div> 373 </div> 374 </div> 375 </div> <!-- End of Featured Videos Section --> 376 377 <!-- The Band Section --> 378 <div class="band-section" id="band"> 379 <div class="w3-container w3-content w3-center"> 380 <div class="section-title">THE BAND</div> 381 <div class="w3-row w3-center"> 382 <div class="band-image-container"> 383 <div class="band-main-image-frame"> 384 <img src="/img/band/kingsatan_2026.jpg" class="band-main-image" id="bandMainImage" 385 alt="King Satan band photo 2026" loading="lazy"> 386 </div> 387 <p class="image-caption" id="bandImageCaption"> 388 <i>King Satan, 2026 - Photography by Joonas Juntunen</i> 389 </p> 390 <div class="band-photo-thumbnails" aria-label="Band promo photo selector"> 391 <button type="button" class="band-photo-thumb active" data-src="/img/band/kingsatan_2026.jpg"
392 data-alt="King Satan band photo 2026" data-caption="King Satan, 2026 - Photography by Joonas Juntunen" 393 aria-label="Show King Satan promo photo 2026" aria-pressed="true"> 394 <img src="/img/band/kingsatan_2026.jpg" alt="King Satan promo photo thumbnail 2026"> 395 <span>2026</span> 396 </button> 397 <button type="button" class="band-photo-thumb" data-src="/img/band/kingsatan_2024.jpg" 398 data-alt="King Satan band photo 2024" data-caption="King Satan, 2024 - Photography by Joonas Juntunen" 399 aria-label="Show King Satan promo photo 2024" aria-pressed="false"> 400 <img src="/img/band/kingsatan_2024.jpg" alt="King Satan promo photo thumbnail 2024"> 401 <span>2024</span> 402 </button> 403 <button type="button" class="band-photo-thumb" data-src="/img/band/kingsatan_2024_2.jpg" 404 data-alt="King Satan band photo 2024 - alternate" 405 data-caption="King Satan, 2024 - Photography by Joonas Juntunen" 406 aria-label="Show King Satan promo photo 2024 - alternate" aria-pressed="false"> 407 <img src="/img/band/kingsatan_2024_2.jpg" alt="King Satan promo photo thumbnail 2024 - alternate"> 408 <span>2024</span> 409 </button> 410 <button type="button" class="band-photo-thumb" data-src="/img/band/kingsatan_2021.jpg" 411 data-alt="King Satan band photo 2021" data-caption="King Satan, 2021 - Photography by Cerulean Midnight" 412 aria-label="Show King Satan promo photo 2021" aria-pressed="false"> 413 <img src="/img/band/kingsatan_2021.jpg" alt="King Satan promo photo thumbnail 2021"> 414 <span>2021</span> 415 </button> 416 </div> 417 </div> 418 </div> 419 <div class="w3-row w3-center"> 420 <p class="band-text" id="bandText"> 421 <span class="band-text-short"> 422 King Satan is a genre-bending industrial metal band from Finland, created by enigmatic artist, 423 multi-instrumentalist and producer King Aleister Satan. A spawn of sleazy riffs, seductive groove ânâ 424 roll, mesmerizing melodies, and provocative yet philosophical themes, the bandâs music offers a 425 carnivalesque blend of extreme metal crossover. An unique fusion of electronic party music and the occult 426 side of heavy metal, served with the raw energy of rockânâroll, the group themselves dubs as âdeath metal 427 discoâ 428 </span> 429 <span class="band-text-full"> 430 <br /><br /> 431 Founded in 2015 at the City of Tampere, King Satan has steadily carved out a distinct identity within the 432 alternative, industrial and extreme metal scenes, gaining loyal following through relentless touring, 433 provocative theatrics and a mercurial sound resonating somewhere between avantgarde and shock rock. 434 Originally a solo studio project, the act crew into a full line-up band known for their energetic live 435 shows, trickster-like narrative and infectious charisma. 436 <br /><br /> 437 The bandâs unapologetic approach, not shy of controversy, combines dark humor, absurdism and social 438 provocation together with esoteric and philosophical themes inspired by the dark side of the human 439 psychology and the worldâs mythologies. Renowned for their explosive stage presence, crowned by the 440 dynamic vocal interplay between the bandâs mastermind and keyboardist-vocalist Hekate âKateâ Boss, 441 creating a âBeauty and the Beastâ style of a dialogue between raw darkness and eloquent power. 442 <br /><br /> 443 King Satan has toured extensively across their native Finland and Europe with own their headliner shows 444 and also supporting such prominent names like Deathstars, Turmion Kätilöt and Gothminister. Touring has 445 taken the band to perform to prestigious metal festivals as well like Tuska Festival and Masters Of Rock 446 but also to acclaimed industrial-alternative festivals like Dark Malta and Hellsinki Industrial Festival - 447 demonstrating the bandâs versatile genre-defying expression. 448 <br /><br /> 449 The band has revealed that there will be a new album out during 2026, but before that the group announced 450 a collaboration single with renowned Finnish blues rock guitar virtuoso Erja Lyytinen, with a song titled 451 âBlack Magick Rock âNâ Rollâ to be out in March 2026. With multiple full-length albums, charting releases 452 and award-winning music videos the band continues to expand their unholy metal carnival beyond the 453 boundaries of kitsch entertainment and mystic arts in the name of the wicked one! 454 <br /> 455 </span> 456 </p> 457 <div class="more-button"> 458 <button class="read-more-btn" id="readMoreBtn">Read more</button> 459 <p><span class="preview-text">Founded in 2015, the group is the brainchild of enigmatic artist King Aleister 460 Satan (a.k.a. Seth Aleister de King Satan)</span></p> 461 </div> 462 </div> 463 464 <!-- Lineup --> 465 <div class="lineup"> 466 <h3 class="section-subtitle">KING SATAN LINE-UP</h3> 467 <div class="w3-row w3-center"> 468 <div class="member-grid"> 469 <div class="member-card"> 470 <div class="member-card-image"> 471 <img src="img/band/promo2026/4-3/HekateBoss.png" class="member-img" alt="Hekate Boss - Keyboards and vocals" 472 loading="lazy"> 473 </div> 474 <h4>Hekate Boss<br>Keyboards, vocals</h4> 475 </div> 476 <div class="member-card"> 477 <div class="member-card-image"> 478 <img src="img/band/promo2026/4-3/MrSatan.png" class="member-img" 479 alt="King Aleister Satan - Vocals and programming" loading="lazy"> 480 </div> 481 <h4>King Aleister Satan<br>Vocals, programming</h4> 482 </div> 483 <div class="member-card"> 484 <div class="member-card-image"> 485 <img src="img/band/promo2026/4-3/PeteHellraiser.png" class="member-img" alt="Pete Hellraiser - Drums" loading="lazy"> 486 </div> 487 <h4>Pete Hellraiser<br>Drums</h4> 488 </div> 489 <div class="member-card"> 490 <div class="member-card-image"> 491 <img src="img/band/promo2026/4-3/JerryRockNRoll.png" class="member-img" alt="Jerry Rock'n'Roll - Bass" 492 loading="lazy"> 493 </div> 494 <h4>Jerry Rock'n'Roll<br>Bass</h4> 495 </div> 496 <div class="member-card"> 497 <div class="member-card-image"> 498 <img src="img/band/promo2026/4-3/EF-13.png" class="member-img" alt="EF-13 - Guitar" loading="lazy"> 499 </div> 500 <h4>EF-13<br>Guitar</h4> 501 </div> 502 </div> 503 </div> 504 <!-- former lineup--> 505 <div class="w3-row"> 506 <h3 class="section-subtitle former-members">FORMER / LIVE MEMBERS</h3> 507 <ul class="former-members-ul"> 508 <li><span class="member-name">Strangerfriend</span> - Live guitars (2025)</li> 509 <li><span class="member-name">Infinite Rivals</span> - Live keyboards (2022)</li> 510 <li><span class="member-name">Jack Heretic</span> - Live percussions (2019-2020)</li> 511 <li><span class="member-name">Dalai Daimonicus</span> - Guitars (2018-2019)</li> 512 <li><span class="member-name">Sir Changa McKenna</span> - Drums / percussions (2017-2019) </li> 513 <li><span class="member-name">Magister Demaniac</span> - Programming (2016-2017), (Guitars 2017-2018)</li> 514 <li><span class="member-name">Martin Shemhamforash</span>
514 - 2nd synth & bass (2017-2017)</li> 515 <li><span class="member-name">John Oscar Dee</span> - Bass / Guitars (2015-2017)</li> 516 <li><span class="member-name">B.B. Kill</span> - Guitar (2016-2017)</li> 517 <li><span class="member-name">DJ Instixx</span> - Beats (2016-2016)</li> 518 <li><span class="member-name">Tomax Xamot</span> - Bass (2016-2016 )</li> 519 <li><span class="member-name">Captain Veisalgia</span> - Bass (2015-2016)</li> 520 </ul> 521 </div> 522 </div> <!-- End of Lineup --> 523 </div> <!-- End of Band container --> 524 </div> <!-- End of Band section --> 525 526 <!-- The Tour Section --> 527 <div class="tour-section" id="tour"> 528 <div class="w3-container w3-content w3-center"> 529 <div class="section-title">TOUR DATES</div> 530 <!-- Bandsintown widget --> 531 <div class="w3-row w3-center tour-widget"> 532 <p class="w3-opacity w3-center tour-text"> 533 <i>For King Satan concert bookings see <a href="#contact"><u>Contact</u></a> for more info</i> 534 </p> 535 <div class="bandsintown-widget"> 536
536<script charset="utf-8" src="https://widget.bandsintown.com/main.min.js"></script>
536 537 <a class="bit-widget-initializer" data-artist-name="King Satan" data-display-local-dates="true" 538 data-display-past-dates="true" data-auto-style="true" data-text-color="#FFFFFF" 539 data-link-color="rgba(255,210,50, 0.8)" data-popup-background-color="rgba(0,0,0,0)" 540 data-background-color="rgba(0,0,0,0)" data-display-limit="10" data-link-text-color="#000"></a> 541 </div> 542 </div> 543 <!-- Tour grid --> 544 <div class="w3-row w3-center"> 545 <div class="tour-grid"> 546 <div class="tour-card" onclick="openTourSlideshow(0)" style="cursor: pointer;"> 547 <div class="tour-card-image"> 548 <img class="tourImg" src="img/tours/kingsatan-tour2025.jpg" alt="King Satan tour dates 2025" 549 loading="lazy"> 550 <i class="fa-solid fa-expand tour-card-icon"></i> 551 </div> 552 </div> 553 <div class="tour-card" onclick="openTourSlideshow(1)" style="cursor: pointer;"> 554 <div class="tour-card-image"> 555 <img class="tourImg" src="img/tours/turmionkatilot_kingsatan_2025.jpg" alt="Reset World Tour 2025" 556 loading="lazy"> 557 <i class="fa-solid fa-expand tour-card-icon"></i> 558 </div> 559 </div> 560 <div class="tour-card" onclick="openTourSlideshow(2)" style="cursor: pointer;"> 561 <div class="tour-card-image"> 562 <img class="tourImg" src="img/tours/gothminister_2023.jpg" alt="Gothminister - Pandemonium Tour 2023" 563 loading="lazy"> 564 <i class="fa-solid fa-expand tour-card-icon"></i> 565 </div> 566 </div> 567 <div class="tour-card" onclick="openTourSlideshow(3)" style="cursor: pointer;"> 568 <div class="tour-card-image"> 569 <img class="tourImg" src="img/tours/deathstars_2023.jpg" 570 alt="Deathstars - Everything Destroys Europe Tour 2023" loading="lazy"> 571 <i class="fa-solid fa-expand tour-card-icon"></i> 572 </div> 573 </div> 574 </div> <!-- End of Tour grid --> 575 576 <!-- Tour Slideshow Modal --> 577 <div id="tourSlideshow" class="w3-modal tour-slideshow-modal"> 578 <div class="w3-modal-content w3-animate-zoom w3-center tour-slideshow-content"> 579 <!-- Close button --> 580 <span onclick="closeTourSlideshow()" class="w3-button w3-hover-red tour-slideshow-close">×</span> 581 582 <!-- Image container with fixed dimensions --> 583 <div class="tour-slideshow-image-container"> 584 <!-- Fixed size image container --> 585 <div class="tour-slideshow-image-wrapper"> 586 <img id="tourSlideImg" class="tour-slideshow-image"> 587 </div> 588 589 <!-- Navigation arrows positioned outside the container --> 590 <div onclick="changeTourSlide(-1)" class="tour-slideshow-arrow tour-slideshow-arrow-left"> 591 ❮ 592 </div> 593 <div onclick="changeTourSlide(1)" class="tour-slideshow-arrow tour-slideshow-arrow-right"> 594 ❯ 595 </div> 596 </div> 597 598 <!-- Title below image --> 599 <div class="w3-center tour-slideshow-title-container"> 600 <h3 id="tourSlideTitle" class="tour-slideshow-title"></h3> 601 </div> 602 </div> 603 </div> <!-- End of Tour Slideshow Modal --> 604 </div> <!-- End of Tour posters --> 605 </div> <!-- End of Tour container --> 606 </div> <!-- End of Tour Section --> 607 608 <!-- book Section --> 609 <div class="book-section" id="book"> 610 <div class="w3-container w3-content w3-center"> 611 <div class="section-title">LITERATURE</div> 612 <div class="w3-row w3-center"> 613 <div class="literature-layout"> 614 <div class="book-content"> 615 <div class="book-image-container"> 616 <a href="https://shop.kingsatan.net/product/book-the-devils-evangelion-and-the-law-of-chaos" 617 target="_blank" class="book-main-image"><img src="img/shop/lawofchaos_book.png" 618 alt="The Devil's Evangelion and the Law of Chaos - King Satan Book"></a> 619 </div> 620 <p class="book-text"> 621 Written by Seth Aleister de King Satan, <span class="text-yellow">The Devil's Evangelion and the Law of 622 Chaos</span> is a compilation of all published lyrics written for King Satan between 2015 and 2024, 623 accompanied by selected lyrics and related interview excerpts from his longest-running band, Saturnian 624 Mist (est. 2006).<br><br> 625 This opus offers a holistic outlook on the artist's unorthodox and trickster-like vision of Satanism, 626 Occultism, Mysticism and Spiritual Anarchy, revealed through a carnivalesque mixture of rock lyrics, 627 esoteric poetry, and prosaic pathos. 628 <br /><br /> 629 Includes the complete lyrics of the following King Satan albums: The Devil's Evangelion (2024), Occult 630 Spiritual Anarchy (2022), I Want You to Worship Satan (2019), and King Fucking Satan (2017), along with 631 selected pieces of Saturnian Mist's lyrics and miscellaneous interview excerpts. 632 </p> 633 </div> 634 <div class="w3-center book-button"> 635 <a href="https://shop.kingsatan.net/product/the-devil-s-evangelion-and-the-law-of-chaos-book" 636 class="action-button">Buy from webshop</a> 637 </div> 638 </div> 639 </div> 640 </div> 641 </div> <!-- End of Book Section --> 642 643 <!-- The Contact Section --> 644 <div class="modern-contact-section" id="contact"> 645 <div class="w3-container w3-content w3-center"> 646 <div class="section-title">CONTACT</div> 647 648 <!-- BOOKING & MANAGEMENT --> 649 <h2 class="contact-category-title">Booking & Management</h2> 650 <div class="contact-grid contact-grid-2"> 651 <div class="contact-card"> 652 <a href="https://www.deathagency.fi/king_satan.html" target="_blank" class="contact-logo-link"> 653 <div class="contact-icon contact-logo"> 654 <img src="img/record_labels/death_agency_white_logo.png" alt="Death Agency"> 655 </div> 656 </a> 657 <h3>Management & Concert Booking Finland</h3> 658 <p class="contact-description">Tiina Käpylä / Death Agency</p> 659 <div class="contact-links"> 660 <a href="mailto:[email protected]" class="contact-link"> 661 <i class="fa fa-envelope"></i>[email protected] 662 </a> 663 </div> 664 </div> 665 666 <div class="contact-card"> 667 <a href="https://www.dreamtidemusic.com" target="_blank" class="contact-logo-link"> 668 <div class="contact-icon contact-logo"> 669 <img src="img/record_labels/dreamtide.jpg" alt="Dreamtide"> 670 </div> 671 </a> 672 <h3>Concert Booking International</h3> 673 <p class="contact-description">Martin Schulman / Dreamtide Music</p> 674 <div class="contact-links"> 675 <a href="mailto:[email protected]" class="contact-link"> 676 <i class="fa fa-envelope"></i>[email protected] 677 </a> 678 </div> 679 </div> 680 </div> 681 682 <!-- PRESS --> 683 <h2 class="contact-category-title">Press</h2> 684 <div class="contact-grid contact-grid-3"> 685 <div class="contact-card"> 686 <a href="https://www.holdtight.co/" target="_blank" class="contact-logo-link"> 687 <div class="contact-icon contact-logo"> 688 <img src="img/record_labels/holdtight.jpg" alt="Hold Tight PR"> 689 </div> 690 </a> 691 <h3>Press International</h3> 692 <p class="contact-description">Jessica Otten / Hold Tight</p> 693 <div class="contact-links"> 694 <a href="mailto:[email protected]" class="contact-link"> 695 <i class="fa fa-envelope"></i>[email protected] 696 </a> 697 </div> 698 </div> 699 <div class="contact-card"> 700 <a href="https://www.gingervine.com/fi/" target="_blank" class="contact-logo-link"> 701 <div class="contact-icon contact-logo"> 702 <img src="img/record_labels/gvm-logo-pieni.png" alt="Ginger Vine PR"> 703 </div> 704 </a> 705 <h3>Press Finland</h3> 706 <p class="contact-description">Heta Hyttinen / Ginger Vine PR</p> 707 <div class="contact-links"> 708 <a href="mailto:[email protected]" class="contact-link"> 709 <i class="fa fa-envelope"></i>[email protected] 710 </a> 711 <a href="tel:+358405817575" class="contact-link"> 712 <i class="fa fa-phone"></i>+358 40 581 7575 713 </a> 714 </div> 715 </div> 716 <div class="contact-card"> 717 <a href="https://agenciacipress.cl" target="_blank" rel="noopener noreferrer" class="contact-logo-link"> 718 <div class="contact-icon contact-logo"> 719 <img src="img/contact/cipress.png" alt="Agencia Cipress"> 720 </div> 721 </a> 722 <h3>Press South America</h3> 723 <p class="contact-description">Agencia Cipress</p> 724 <div class="contact-links"> 725 <a href="https://agenciacipress.cl/#contacto" target="_blank" rel="noopener noreferrer" class="contact-link"> 726 <i class="fa fa-external-link"></i>Contact Form 727 </a> 728 <a href="https://wa.me/56999749330" target="_blank" rel="noopener noreferrer" class="contact-link"> 729 <i class="fa fa-phone"> </i><i class="fab fa-whatsapp"></i>+56 9 9774 9330 (Rodrigo Bravo) 730 </a> 731 <a href="https://wa.me/56988387931" target="_blank" rel="noopener noreferrer" class="contact-link"> 732 <i class="fa fa-phone"> </i><i class="fab fa-whatsapp"></i>+56 9 8838 7931 (Paulo Domic) 733 </a> 734 </div> 735 </div> 736 </div> 737 738 <!-- DISTRIBUTION / RECORD LABEL --> 739 <h2 class="contact-category-title">Distribution / Record Label</h2> 740 <div class="contact-grid contact-grid-2"> 741 <a href="mailto:[email protected]" class="contact-card-link"> 742 <div class="contact-card"> 743 <div class="contact-icon contact-logo"> 744 <img src="img/record_labels/Blood-Blast-logo-Nuclear-Blast.jpg" alt="Blood Blast"> 745 </div> 746 <h3>Blood Blast</h3> 747 <p class="contact-description"></p> 748 <div class="contact-links">
749 <span class="contact-link"> 750 <i class="fa fa-envelope"></i>[email protected] 751 </span> 752 <span class="contact-address"> 753 <i class="fa fa-map-marker"></i>24 rue Toulouse Lautrec, Paris 75017, France 754 </span> 755 </div> 756 </div> 757 </a> 758 <a href="mailto:[email protected]" class="contact-card-link"> 759 <div class="contact-card"> 760 <div class="contact-icon contact-logo"> 761 <img src="img/record_labels/rawversion.jpg" alt="Raw Version Productions"> 762 </div> 763 <h3>Raw Version Productions</h3> 764 <p class="contact-description">Tampere, Finland</p> 765 <div class="contact-links"> 766 <span class="contact-link"> 767 <i class="fa fa-envelope"></i>[email protected] 768 </span> 769 </div> 770 </div> 771 </a> 772 </div> 773 774 <!-- ONLINE SHOP --> 775 <h2 class="contact-category-title">Online Shop</h2> 776 <div class="contact-grid contact-grid-1"> 777 <div class="contact-card"> 778 <a href="https://shop.kingsatan.net/contact" target="_blank" class="card-cover-link" 779 aria-label="Open Online Shop Contact"></a> 780 <div class="contact-icon contact-logo"> 781 <img src="img/logos/symbol.png" alt="King Satan Shop"> 782 </div> 783 <h3>Online Shop Contact</h3> 784 <p class="contact-description">Orders, wholesale, returns & inquiries</p> 785 <div class="contact-links"> 786 <span class="contact-link"> 787 <i class="fa fa-external-link"></i>shop.kingsatan.net/contact 788 </span> 789 <a href="mailto:[email protected]" class="contact-link"> 790 <i class="fa fa-envelope"></i>[email protected] 791 </a> 792 </div> 793 </div> 794 </div> <!-- End of Contact grid --> 795 796 <!-- Record labels & endorsements --> 797 <div class="w3-row record-labels lineup"> 798 <h3 class="section-subtitle">Past record labels</h3> 799 <div class="record-labels-container labels-grid"> 800 <a href="https://ucm.one/en/music-labels/noble-demon/" target="_blank" class="logo-item"> 801 <img src="img/record_labels/L-Noble-Demon-Web.png" alt="Noble Demon"> 802 </a> 803 <a href="http://www.saturnalrecords.com/web/" target="_blank" class="logo-item"> 804 <img src="img/record_labels/saturnalrecordslogo.jpg" alt="Saturnal Records"> 805 </a> 806 <a href="https://www.inverse.fi/" target="_blank" class="logo-item"> 807 <img src="img/record_labels/inverserecords.jpg" alt="Inverse Records"> 808 </a> 809 <a href="https://www.facebook.com/alprods/" target="_blank" class="logo-item"> 810 <img src="img/record_labels/alt.jpg" alt="Alt Records"> 811 </a> 812 <a href="https://www.electricsparkrecords.com/" target="_blank" class="logo-item"> 813 <img src="img/record_labels/electricspark.jpg" alt="Electric Spark Records"> 814 </a> 815 </div> 816 817 <!-- Endorsements --> 818 <div class="w3-row endorsements"> 819 <h3 class="section-subtitle">Endorsements</h3> 820 <div class="record-labels-container labels-grid"> 821 <a href="https://us.thepickshouse.com/artists/king-satan/" target="_blank" class="logo-item"> 822 <img src="img/endorsement/thepickshouse.jpg" alt="The Picks House"> 823 </a> 824 <a href="https://www.jackshop.fi/" target="_blank" class="logo-item"> 825 <img src="img/endorsement/jackshop.jpg" alt="Jackshop"> 826 </a> 827 <a href="https://pellwood.com/en" target="_blank" class="logo-item"> 828 <img src="img/endorsement/pellwood_logo.svg" alt="Pellwood Drumsticks"> 829 </a> 830 <a href="https://www.instagram.com/wwt_wildwesttattoo/" target="_blank" class="logo-item"> 831 <img src="img/endorsement/wildwesttattoo_logo.jpg" alt="Wild West Tattoo"> 832 </a> 833 </div> 834 </div> 835 </div> 836 </div> 837 </div><!-- End of Contact section --> 838 839 <!-- Newsletter Section --> 840 <div class="newsletter-section" id="newsletter"> 841 <div class="w3-container w3-content w3-center"> 842 <div class="section-title">NEWSLETTER</div> 843 <div class="w3-row w3-center"> 844 <p class="w3-opacity"><i>Subscribe to get updates, releases and tour news directly to your inbox.</i></p> 845 <div class="newsletter-embed"> 846 <form id="newsletterForm" class="newsletter-form" 847 action="https://mc.us2.list-manage.com/subscribe/landing-page?u=39b9a00de0ca7f1719252fba1&id=5b84970fab&f_id=003303e1f0" 848 method="post" target="newsletter-submit-frame" novalidate> 849 <div class="newsletter-form-row"> 850 <label for="newsletter-email" class="newsletter-label">Email Address</label> 851 <input id="newsletter-email" type="email" name="EMAIL" class="newsletter-input" 852 placeholder="[email protected]" required> 853 </div> 854 855 <div class="newsletter-form-row"> 856 <label for="newsletter-fname" class="newsletter-label">First Name (optional)</label> 857 <input id="newsletter-fname" type="text" name="FNAME" class="newsletter-input" placeholder="First name"> 858 </div> 859 860 <div class="newsletter-form-row"> 861 <label for="newsletter-lname" class="newsletter-label">Last Name (optional)</label> 862 <input id="newsletter-lname" type="text" name="LNAME" class="newsletter-input" placeholder="Last name"> 863 </div> 864 865 <!-- Bot trap field expected by Mailchimp --> 866 <input type="text" name="b_39b9a00de0ca7f1719252fba1_1738652" tabindex="-1" value="" 867 class="newsletter-honeypot" aria-hidden="true" autocomplete="off"> 868
869 <button type="submit" class="action-button newsletter-submit">Subscribe</button> 870 </form> 871 <iframe title="Newsletter submission" name="newsletter-submit-frame" id="newsletter-submit-frame" 872 class="newsletter-submit-frame" src="about:blank"></iframe> 873 <p id="newsletterStatus" class="newsletter-status" aria-live="polite"></p> 874 </div> 875 <p class="w3-small newsletter-note"> 876 Your subscription is processed securely via Mailchimp. 877 </p> 878 </div> 879 </div> 880 </div> <!-- End of Newsletter Section --> 881 </div><!-- End Page Content --> 882 <!-- Footer --> 883 <div class="footer-style"> 884 <footer class="w3-center w3-xxlarge footer"> 885 <p class="w3-medium">All rights reserved by 886 <a href="https://www.kingsatan.net" target="_blank"><span class="contact-text-yellow-ks">King Satan 887 2026</span></a> 888 </p> 889 <p class="w3-small">Webmaster: Elina Ylkänen</p> 890 </footer> <!-- End of Footer --> 891 </div> 892 893 894
894<script> 895 // Windows scroll functions 896 window.addEventListener('scroll', scrollFunction); 897 window.addEventListener('scroll', myFunction); 898 899 // Scroll Top -button // 900 let mybutton = document.getElementById("TopBtn"); 901 // When the user scrolls down 250px from the top of the document, show the button 902 function scrollFunction() { 903 if (document.body.scrollTop > 250 || document.documentElement.scrollTop > 250) { 904 mybutton.classList.add("show"); 905 } else { 906 mybutton.classList.remove("show"); 907 } 908 } 909 // When the user clicks on the button, scroll to the top of the document 910 function topFunction() { 911 document.body.scrollTop = 0; 912 document.documentElement.scrollTop = 0; 913 } 914 915 // Scroll to content function - scrolls to #home (main content area) 916 function scrollToContent() { 917 // Since #home is the body element, we need to scroll to the main content area 918 // The most logical target is the page-content div which contains the actual content 919 const pageContent = document.querySelector('.page-content'); 920 const navbar = document.getElementById('navbar'); 921 922 if (pageContent) { 923 // Calculate offset to account for sticky navbar 924 const navbarHeight = navbar ? navbar.offsetHeight : 0; 925 const targetPosition = pageContent.offsetTop - navbarHeight; 926 927 window.scrollTo({ 928 top: targetPosition, 929 behavior: 'smooth' 930 }); 931 } else { 932 // Fallback: scroll to the first content section 933 const musicSection = document.getElementById('music'); 934 if (musicSection) { 935 musicSection.scrollIntoView({ 936 behavior: 'smooth', 937 block: 'start' 938 }); 939 } 940 } 941 } 942 943 // Sticky nav 944 var navbar = document.getElementById("navbar"); 945 var sticky = navbar.offsetTop; 946 947 function myFunction() { 948 if (window.pageYOffset >= sticky) { 949 navbar.classList.add("sticky") 950 } 951 else { 952 navbar.classList.remove("sticky"); 953 } 954 } 955 </script>
955 956 <!-- jQuery for auto-collapse mobile navbar --> 957
957<script> 958 $(document).ready(function () { 959 // Auto-collapse mobile navbar when menu item is clicked 960 $('.navbar-nav li a').on('click', function () { 961 if ($('.navbar-toggle').is(':visible')) { 962 $('.navbar-collapse').collapse('hide'); 963 } 964 }); 965 }); 966 </script>
966 967 <!-- Active Navigation and Section Title Handler --> 968
968<script> 969 $(document).ready(function () { 970 // Get all necessary elements 971 const navbar = document.getElementById("navbar"); 972 const navLinks = $('#myNavbar a[href^="#"]:not([href="#"])'); // Exclude empty hrefs 973 const sectionTitles = $('.section-title'); 974 const sectionSubtitles = $('h3.section-subtitle'); // Add section subtitles 975 976 // Get all sections that have corresponding nav links 977 const sections = []; 978 navLinks.each(function () { 979 const href = $(this).attr('href'); 980 if (href && href !== '#') { // Check for valid href 981 const section = $(href); 982 if (section.length) { 983 sections.push({ 984 id: href, 985 element: section, 986 navLink: $(this) 987 }); 988 } 989 } 990 }); 991 992 // Section title mapping - updated to match actual HTML content 993 const titleMapping = { 994 // Remove #home since it doesn't have a matching section title 995 '#music': ['STREAM NOW', 'DISCOGRAPHY'], 996 '#videos': 'LATEST MUSIC VIDEOS', 997 '#band': 'THE BAND', 998 '#tour': 'TOUR DATES', 999 '#shop': 'MERCH SHOP', 1000 '#book': 'LITERATURE', 1001 '#contact': 'CONTACT', 1002 '#newsletter': 'NEWSLETTER' 1003 }; 1004 1005 // Function to update active states 1006 function updateActiveStates(activeSection) { 1007 // console.log('Updating active states for:', activeSection ? activeSection.id : 'none'); 1008 1009 // Remove all active classes 1010 navLinks.parent().removeClass('active'); 1011 sectionTitles.removeClass('active'); 1012 sectionSubtitles.removeClass('active'); // Remove active from subtitles 1013 1014 if (activeSection) { 1015 // Add active class to navbar link 1016 activeSection.navLink.parent().addClass('active'); 1017 // console.log('Added active class to navbar link:', activeSection.navLink.text()); 1018 1019 // Add active class to corresponding section titles 1020 const expectedTitles = titleMapping[activeSection.id]; 1021 // console.log('Expected titles for', activeSection.id, ':', expectedTitles); 1022 1023 if (expectedTitles) { 1024 sectionTitles.each(function () { 1025 const titleText = $(this).text().trim().toUpperCase(); 1026 const matches = Array.isArray(expectedTitles) 1027 ? expectedTitles.includes(titleText) 1028 : titleText === expectedTitles; 1029 1030 // console.log('Checking title:', titleText, 'matches:', matches); 1031 1032 if (matches) { 1033 $(this).addClass('active'); 1034 // console.log('Added active class to section title:', titleText); 1035 } 1036 }); 1037 } 1038 1039 // Add active class to section subtitles within the active section 1040 activeSection.element.find('h3.section-subtitle').addClass('active'); 1041 // console.log('Added active class to subtitles in section:', activeSection.id); 1042 } 1043 } 1044 1045 // Function to determine active section based on scroll position 1046 function checkActiveSection() { 1047 const scrollTop = $(window).scrollTop(); 1048 const viewportHeight = $(window).height(); 1049 const navbarHeight = navbar ? navbar.offsetHeight : 0; 1050 const triggerOffset = navbarHeight + (viewportHeight * 0.5); // 50% of viewport height 1051 1052 let activeSection = null; 1053 let currentActiveSection = null; 1054 1055 // Find the section that should be active based on scroll position 1056 for (let i = 0; i < sections.length; i++) { 1057 const section = sections[i]; 1058 const sectionTop = section.element.offset().top; 1059 const sectionBottom = sectionTop + section.element.outerHeight(); 1060 1061 // Check if we've scrolled past the section start 1062 if (scrollTop + triggerOffset >= sectionTop) { 1063 currentActiveSection = section; 1064 } 1065 1066 // If we haven't reached any section yet and we're near the top, use home 1067 if (!currentActiveSection && scrollTop < (viewportHeight * 0.3)) { 1068 currentActiveSection = sections.find(s => s.id === '#home'); 1069 } 1070 } 1071 1072 activeSection = currentActiveSection; 1073 updateActiveStates(activeSection); 1074 } 1075 1076 // Throttled scroll handler for better performance 1077 let scrollTimeout; 1078 function handleScroll() { 1079 if (scrollTimeout) { 1080 clearTimeout(scrollTimeout); 1081 } 1082 scrollTimeout = setTimeout(checkActiveSection, 50); 1083 } 1084 1085 // Attach scroll listener 1086 $(window).on('scroll', handleScroll); 1087 1088 // Handle navigation link clicks 1089 navLinks.on('click', function (e) { 1090 const href = $(this).attr('href'); 1091 if (!href || href === '#') return; // Skip invalid links 1092 1093 e.preventDefault(); 1094 const targetSection = $(href); 1095
1096 if (targetSection.length) { 1097 const navbarHeight = navbar ? navbar.offsetHeight : 0; 1098 1099 $('html, body').animate({ 1100 scrollTop: targetSection.offset().top - navbarHeight 1101 }, 800, function () { 1102 history.pushState(null, null, href); 1103 checkActiveSection(); 1104 }); 1105 } 1106 }); 1107 1108 // Debug: Log all found sections 1109 // console.log('Found sections:', sections.map(s => s.id)); 1110 // console.log('Found section titles:', sectionTitles.map(function() { return $(this).text().trim(); }).get()); 1111 1112 // Initial check on page load 1113 setTimeout(checkActiveSection, 100); 1114 }); 1115 1116 // Read More for band-text on mobile (toggle show/hide) 1117 document.addEventListener('DOMContentLoaded', function () { 1118 var bandText = document.getElementById('bandText'); 1119 var readMoreBtn = document.getElementById('readMoreBtn'); 1120 var previewText = document.querySelector('.preview-text'); 1121 function isMobile() { 1122 return window.innerWidth <= 767; 1123 } 1124 function setCollapsed() { 1125 bandText.classList.add('collapsed'); 1126 bandText.classList.remove('expanded'); 1127 readMoreBtn.textContent = 'Read more'; 1128 var full = bandText.querySelector('.band-text-full'); 1129 if (full) full.style.display = 'none'; 1130 if (previewText) { 1131 previewText.style.display = 'block'; 1132 console.log('[band-text] setCollapsed called'); 1133 console.log('[band-text] setCollapsed: previewText.style.display =', previewText.style.display, '| computed:', window.getComputedStyle(previewText).display); 1134 } else { 1135 console.warn('[band-text] setCollapsed: previewText is null'); 1136 } 1137 } 1138 function setExpanded() { 1139 bandText.classList.remove('collapsed'); 1140 bandText.classList.add('expanded'); 1141 readMoreBtn.textContent = 'Read less'; 1142 var full = bandText.querySelector('.band-text-full'); 1143 if (full) full.style.display = 'inline'; 1144 if (previewText) { 1145 previewText.style.display = 'none'; 1146 console.log('[band-text] setExpanded called'); 1147 console.log('[band-text] setExpanded: previewText.style.display =', previewText.style.display, '| computed:', window.getComputedStyle(previewText).display); 1148 } else { 1149 console.warn('[band-text] setExpanded: previewText is null'); 1150 } 1151 } 1152 if (bandText && readMoreBtn && isMobile()) { 1153 setCollapsed(); 1154 readMoreBtn.style.display = 'inline-block'; 1155 readMoreBtn.addEventListener('click', function () { 1156 if (bandText.classList.contains('collapsed')) { 1157 setExpanded(); 1158 } else { 1159 setCollapsed(); 1160 // Scroll bandText into view after collapsing 1161 setTimeout(function () { 1162 bandText.scrollIntoView({ behavior: 'smooth', block: 'start' }); 1163 }, 100); 1164 } 1165 }); 1166 } 1167 // Optional: Hide button if not mobile 1168 window.addEventListener('resize', function () { 1169 if (bandText && readMoreBtn) { 1170 if (isMobile()) { 1171 if (!bandText.classList.contains('collapsed') && !bandText.classList.contains('expanded')) { 1172 setCollapsed(); 1173 readMoreBtn.style.display = 'inline-block'; 1174 } 1175 } else { 1176 bandText.classList.remove('collapsed', 'expanded'); 1177 readMoreBtn.style.display = 'none'; 1178 var full = bandText.querySelector('.band-text-full'); 1179 if (full) full.style.display = ''; 1180 if (previewText) previewText.style.display = ''; 1181 } 1182 } 1183 }); 1184 }); 1185 1186 document.addEventListener('DOMContentLoaded', function () { 1187 var bandMainImage = document.getElementById('bandMainImage'); 1188 var bandImageCaption = document.getElementById('bandImageCaption'); 1189 var bandPhotoButtons = document.querySelectorAll('.band-photo-thumb'); 1190 1191 if (!bandMainImage || !bandImageCaption || !bandPhotoButtons.length) { 1192 return; 1193 } 1194 1195 bandPhotoButtons.forEach(function (button) { 1196 button.addEventListener('click', function () { 1197 var nextSrc = button.getAttribute('data-src'); 1198 var nextAlt = button.getAttribute('data-alt'); 1199 var nextCaption = button.getAttribute('data-caption'); 1200 1201 if (!nextSrc || !nextAlt || !nextCaption) { 1202 return; 1203 } 1204 1205 bandMainImage.src = nextSrc; 1206 bandMainImage.alt = nextAlt; 1207 bandImageCaption.innerHTML = '<i>' + nextCaption + '</i>'; 1208 1209 bandPhotoButtons.forEach(function (thumbButton) { 1210 thumbButton.classList.remove('active'); 1211 thumbButton.setAttribute('aria-pressed', 'false'); 1212 }); 1213 1214 button.classList.add('active'); 1215 button.setAttribute('aria-pressed', 'true'); 1216 }); 1217 }); 1218 }); 1219 </script>
1219 1220
1220<script> 1221 // Tour slideshow functionality 1222 const tourImages = [ 1223 { src: 'img/tours/kingsatan-tour2025.jpg' }, 1224 { src: 'img/tours/turmionkatilot_kingsatan_2025.jpg' }, 1225 { src: 'img/tours/gothminister_2023.jpg' }, 1226 { src: 'img/tours/deathstars_2023_2.jpg' } 1227 ]; 1228 let currentTourSlide = 0; 1229 1230 function openTourSlideshow(index) { 1231 // console.log('Opening slideshow with index:', index); // Debug log 1232 currentTourSlide = index; 1233 const modal = document.getElementById('tourSlideshow'); 1234 const img = document.getElementById('tourSlideImg'); 1235 const title = document.getElementById('tourSlideTitle'); 1236 1237 if (!modal || !img || !title) { 1238 console.error('Modal elements not found'); 1239 return; 1240 } 1241 1242 modal.style.display = 'block'; 1243 img.src = tourImages[currentTourSlide].src; 1244 title.textContent = tourImages[currentTourSlide].title; 1245 1246 // Prevent body scroll when modal is open 1247 document.body.style.overflow = 'hidden'; 1248 } 1249 1250 function closeTourSlideshow() { 1251 const modal = document.getElementById('tourSlideshow'); 1252 if (modal) { 1253 modal.style.display = 'none'; 1254 } 1255 1256 // Restore body scroll 1257 document.body.style.overflow = 'auto'; 1258 } 1259 1260 function changeTourSlide(direction) { 1261 currentTourSlide += direction; 1262 if (currentTourSlide >= tourImages.length) currentTourSlide = 0; 1263 if (currentTourSlide < 0) currentTourSlide = tourImages.length - 1; 1264 1265 const img = document.getElementById('tourSlideImg'); 1266 const title = document.getElementById('tourSlideTitle'); 1267 if (img && title) { 1268 img.src = tourImages[currentTourSlide].src; 1269 title.textContent = tourImages[currentTourSlide].title; 1270 } 1271 } 1272 1273 // Wait for DOM to be ready before adding event listeners 1274 document.addEventListener('DOMContentLoaded', function () { 1275 // Close modal when clicking outside the image 1276 const modal = document.getElementById('tourSlideshow'); 1277 if (modal) { 1278 modal.addEventListener('click', function (e) { 1279 if (e.target === this) { 1280 closeTourSlideshow(); 1281 } 1282 }); 1283 } 1284 1285 // Close modal with Escape key 1286 document.addEventListener('keydown', function (e) { 1287 if (e.key === 'Escape') { 1288 closeTourSlideshow(); 1289 } 1290 // Navigate with arrow keys 1291 if (modal && modal.style.display === 'block') { 1292 if (e.key === 'ArrowLeft') { 1293 changeTourSlide(-1); 1294 } else if (e.key === 'ArrowRight') { 1295 changeTourSlide(1); 1296 } 1297 } 1298 }); 1299 }); 1300 </script>
1300 1301
1301<script> 1302 document.addEventListener('DOMContentLoaded', function () { 1303 var newsletterForm = document.getElementById('newsletterForm'); 1304 var newsletterFrame = document.getElementById('newsletter-submit-frame'); 1305 var newsletterStatus = document.getElementById('newsletterStatus'); 1306 var submitButton = newsletterForm ? newsletterForm.querySelector('.newsletter-submit') : null; 1307 var waitingForResponse = false; 1308 1309 if (!newsletterForm || !newsletterFrame || !newsletterStatus || !submitButton) { 1310 return; 1311 } 1312 1313 function setStatus(message, type) { 1314 newsletterStatus.textContent = message; 1315 newsletterStatus.classList.remove('is-loading', 'is-success', 'is-error'); 1316 if (type) { 1317 newsletterStatus.classList.add(type); 1318 } 1319 } 1320 1321 newsletterForm.addEventListener('submit', function (event) { 1322 if (!newsletterForm.checkValidity()) { 1323 event.preventDefault(); 1324 newsletterForm.reportValidity(); 1325 setStatus('Please enter a valid email address before subscribing.', 'is-error'); 1326 return; 1327 } 1328 1329 waitingForResponse = true; 1330 submitButton.disabled = true; 1331 setStatus('Submitting... Please wait.', 'is-loading'); 1332 }); 1333 1334 newsletterFrame.addEventListener('load', function () { 1335 if (!waitingForResponse) { 1336 return; 1337 } 1338 1339 waitingForResponse = false; 1340 submitButton.disabled = false; 1341 setStatus('Thanks. If this is your first signup, please check your inbox to confirm your subscription.', 'is-success'); 1342 newsletterForm.reset(); 1343 }); 1344 }); 1345 </script>
1345 1346</body> 1347 1348</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.