1const storage = { 2 language: "nl", 3 channelsInterval: null, 4}; 5 6let converter; 7 8window.addEventListener( 9 "load", 10 function () { 11 converter = new showdown.Converter(); 12 13 if (window.location.href.split("?lang=").length > 1) { 14 let lang = window.location.href.split("?lang=")[1]; 15 16 setLanguage(lang); 17 } else if (window.location.href.split("&lang=").length > 1) { 18 let lang = window.location.href.split("&lang=")[1]; 19 20 setLanguage(lang); 21 } else { 22 setLanguage("nl"); 23 } 24 }, 25 false 26); 27 28function markDown(str) { 29 if (str == null) { 30 return ""; 31 } 32 33 let newStr = converter.makeHtml(str); 34 newStr = newStr.replace(/(?:\r\n|\r|\n)/g, "<br /><br />"); 35 newStr = newStr.replace(/(<p[^>]+?>|<p>|<\/p>)/gim, ""); 36 return newStr; 37} 38 39function setLanguage(code) { 40 storage.language = code; 41 document.querySelector(".top-language.is-active").classList.remove("is-active"); 42 document.getElementById("top-language-" + code).classList.add("is-active"); 43 44 document.querySelector("body").classList = ""; 45 46 document.querySelector("body").classList.add("language-" + code); 47 48 if (window.location.href.indexOf("/article") == -1) { 49 if (storage.language == "nl") { 50 document.querySelector(".topbar-cta").innerHTML = "Inloggen"; 51 } 52 if (storage.language == "en") { 53 document.querySelector(".topbar-cta").innerHTML = "Sign in"; 54 } 55 if (storage.language == "fr") { 56 document.querySelector(".topbar-cta").innerHTML = "Connecter"; 57 } 58 if (storage.language == "de") { 59 document.querySelector(".topbar-cta").innerHTML = "Einloggen"; 60 } 61 62 insertHeader(); 63 insertAbout(); 64 buildGuides(); 65 insertNowlater(); 66 insertChannels(); 67 insertWebapp(); 68 insertSubscriptions(); 69 insertFaq(); 70 insertNews(); 71 72 initChannelsSlider(); 73 } 74 75 if (window.location.href.indexOf("/article") != -1) { 76 getArticle(); 77 78 var xhr = new XMLHttpRequest(); 79 80 xhr.open("GET", "https://cms.192tv.tv/api/news-letter?locale=" + storage.language, true); 81 82 xhr.setRequestHeader("Content-Type", "application/json"); 83 84 xhr.onreadystatechange = function () { 85 if (this.readyState === XMLHttpRequest.DONE && this.status === 200) { 86 let res = JSON.parse(this.responseText); 87 88 if (res.data.attributes.Active) { 89 document.querySelector("#section-newsletter").classList.remove("is-hidden"); 90 91 document.querySelector("#section-newsletter .section-header-placeholder").innerHTML = 92 ` 93 <div class="section-header"> 94 <h3 class="section-header-title">` + 95 res.data.attributes.Title + 96 `</h3> 97 <h4 class="section-header-subtitle">` + 98 res.data.attributes.Subtitle + 99 `</h4> 100 </div> 101 `; 102 103 document.querySelector(".newsletter-input-btn").value = res.data.attributes.ButtonText; 104 105 document.querySelector(".newsletter-input").placeholder = res.data.attributes.Placeholder; 106 } else { 107 document.querySelector("#section-newsletter").classList.add("is-hidden"); 108 } 109 } 110 }; 111 112 xhr.send(); 113 } 114 115 insertTopbar(); 116 insertNewsletter(); 117 insertFooter(); 118 insertBottombar(); 119} 120 121function insertHeader() { 122 var xhr = new XMLHttpRequest(); 123 124 xhr.open("GET", "https://cms.192tv.tv/api/header?populate[Header][populate]=%2A&locale=" + storage.language, true); 125 126 xhr.setRequestHeader("Content-Type", "application/json"); 127 128 xhr.onreadystatechange = function () { 129 if (this.readyState === XMLHttpRequest.DONE && this.status === 200) { 130 let res = JSON.parse(this.responseText); 131 132 document.querySelector(".header-slides").innerHTML = ""; 133 134 res.data.attributes.Header.forEach((item) => { 135 document.querySelector(".header-slides").innerHTML += 136 ` 137 <div class="header-slide" style="background-image: url(https://cms.192tv.tv` +
138 item.Background.data.attributes.url + 139 `)"> 140 <div class="header-slide-info"> 141 <h2 class="header-slide-title is-white ` + 142 (item.Title == null ? "is-hidden" : "") + 143 `">` + 144 item.Title + 145 `</h2> 146 <h4 class="header-slide-subtitle ` + 147 (item.Subtitle == null ? "is-hidden" : "") + 148 `">` + 149 item.Subtitle + 150 `</h4> 151 </div> 152 </div> 153 `; 154 }); 155 } 156 }; 157 158 xhr.send(); 159} 160 161function insertAbout() { 162 let menu = document.querySelector(".about-menu"); 163 let content = document.querySelector(".about-content"); 164 165 menu.innerHTML = ""; 166 content.innerHTML = ""; 167 168 let index = 0; 169 170 var xhr = new XMLHttpRequest(); 171 172 xhr.open("GET", "https://cms.192tv.tv/api/about-192-tv?populate=%2A&locale=" + storage.language, true); 173 174 xhr.setRequestHeader("Content-Type", "application/json"); 175 176 xhr.onreadystatechange = function () { 177 if (this.readyState === XMLHttpRequest.DONE && this.status === 200) { 178 let res = JSON.parse(this.responseText); 179 180 if (res.data.attributes.Active) { 181 document.querySelector("#section-about").classList.remove("is-hidden"); 182 183 document.querySelector("#topbar-nav-about").classList.remove("is-hidden"); 184 185 document.querySelector("#section-about .section-header-placeholder").innerHTML = 186 ` 187 <div class="section-header"> 188 <h3 class="section-header-title">` + 189 res.data.attributes.Title + 190 `</h3> 191 <h4 class="section-header-subtitle">` + 192 res.data.attributes.Subtitle + 193 `</h4> 194 </div> 195 `; 196 197 res.data.attributes.Category.forEach((item) => { 198 menu.innerHTML += 199 ` 200 <h5 data-index="` + 201 index + 202 `" class="about-menu-nav" onclick="navAbout(` + 203 index + 204 `)">` + 205 item.Title + 206 `</h5> 207 `; 208 209 content.innerHTML += 210 ` 211 <div data-index="` + 212 index + 213 `" class="about-content-item"> 214 <h4 class="about-content-title">` + 215 item.Title + 216 `</h4> 217 <p class="about-content-text">` + 218 markDown(item.Content) + 219 `</p> 220 </div> 221 `; 222 223 index++; 224 }); 225 226 document.querySelectorAll(".about-menu-nav")[0].classList.add("is-active"); 227 document.querySelectorAll(".about-content-item")[0].classList.add("is-active"); 228 } else { 229 document.querySelector("#section-about").classList.add("is-hidden"); 230 document.querySelector("#topbar-nav-about").classList.add("is-hidden"); 231 } 232 } 233 }; 234 235 xhr.send(); 236} 237 238function getAsIsoString(date) { 239 let tmp = new Date(date); 240 tmp = tmp.getTime(); 241 const tmpFinal = new Date(tmp * 60 * 1000); 242 return tmpFinal.toISOString().split(".")[0]; 243} 244 245async function buildGuides() { 246 document.querySelector(".guide-dates-entries").innerHTML = ""; 247 var items = []; 248 249 for (let i = -3; i < 4; i++) { 250 var d = new Date(); 251 var newD = new Date(d.setDate(d.getDate() + i)).toISOString().split("T")[0]; 252 await insertGuides(newD).then(function (res) { 253 items.push(...res); 254 }); 255 } 256 insertGuide(items); 257} 258 259function insertGuides(date) { 260 return new Promise(function (resolve, reject) { 261 var xhr = new XMLHttpRequest(); 262 263 xhr.open("GET", `https://api.192tv.tv/api/v1/epg/channel/65035/?startDate=${date}`, true); 264 265 xhr.setRequestHeader("Content-Type", "application/json-patch+json"); 266 267 xhr.onreadystatechange = function () { 268 if (this.readyState === XMLHttpRequest.DONE && this.status === 200) { 269 let guideItems = JSON.parse(this.responseText).data.data; 270 resolve(guideItems); 271 } 272 }; 273 274 xhr.send(); 275 }); 276} 277function insertGuide(guideItems) { 278 let dates = []; 279 280 let html = ``; 281
282 guideItems.forEach((item) => { 283 html += 284 ` 285 <div class="guide-slider-item" style="background-image: url('` + 286 item.largeFrontCover + 287 `')" data-date="` + 288 item.startDate.substr(0, 10) + 289 `" data-time="` + 290 item.startDate.substr(11, 5) + 291 `"> 292 <div class="guide-slider-item-time">` + 293 item.startDate.substr(11, 5) + 294 `</div> 295 </div> 296 `; 297 298 if (dates.filter((date) => date == item.startDate.substr(0, 10)).length == 0) { 299 dates.push(item.startDate.substr(0, 10)); 300 } 301 }); 302 303 if (document.querySelector(".guide-slider-container").innerHTML == "") { 304 document.querySelector(".guide-slider-container").innerHTML = html; 305 } 306 307 let date = new Date(); 308 let y = date.getFullYear(); 309 let m = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1; 310 let d = date.getDate() < 10 ? "0" + date.getDate() : date.getDate(); 311 312 let i = dates.findIndex((date) => date == y + "-" + m + "-" + d); 313 314 for (let i2 = 0; i2 < dates.length; i2++) { 315 let name = dates[i2]; 316 let day = date.getDay(); 317 let days = ["Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag", "Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag"]; 318 319 if (storage.language == "en") { 320 days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; 321 } 322 323 if (storage.language == "fr") { 324 days = ["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"]; 325 } 326 327 if (storage.language == "de") { 328 days = ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]; 329 } 330 331 if (i2 == i && storage.language == "nl") { 332 name = "Vandaag"; 333 } else if (i2 == i && storage.language == "en") { 334 name = "Today"; 335 } else if (i2 == i && storage.language == "fr") { 336 name = `Aujourd'hui`; 337 } else if (i2 == i && storage.language == "de") { 338 name = "Heute"; 339 } else if (i2 == i + 1 && storage.language == "nl") { 340 name = "Morgen"; 341 } else if (i2 == i + 1 && storage.language == "en") { 342 name = "Tomorrow"; 343 } else if (i2 == i + 1 && storage.language == "fr") { 344 name = "Demain"; 345 } else if (i2 == i + 1 && storage.language == "de") { 346 name = "Morgen"; 347 } else if (i2 == i - 1 && storage.language == "nl") { 348 name = "Gisteren"; 349 } else if (i2 == i - 1 && storage.language == "en") { 350 name = "Yesterday"; 351 } else if (i2 == i - 1 && storage.language == "fr") { 352 name = "Hier"; 353 } else if (i2 == i - 1 && storage.language == "de") { 354 name = "Gestern"; 355 } else if (i2 == i + 2) { 356 name = days[day + 2]; 357 } else if (i2 == i + 3) { 358 name = days[day + 3]; 359 } else if (i2 == i + 4) { 360 name = days[day + 4]; 361 } else if (i2 == i + 5) { 362 name = days[day + 5]; 363 } else { 364 } 365 366 document.querySelector(".guide-dates-entries").innerHTML += 367 ` 368 <h5 class="guide-date" data-date="` + 369 dates[i2] + 370 `">` + 371 name + 372 `</h5> 373 `; 374 } 375 376 document.querySelectorAll(".guide-date")[i].classList.add("is-active"); 377 378 guideScrollDate(y + "-" + m + "-" + d); 379 380 var xhr2 = new XMLHttpRequest(); 381 382 xhr2.open("GET", "https://cms.192tv.tv/api/guide?populate=%2A&locale=" + storage.language, true); 383 384 xhr2.setRequestHeader("Content-Type", "application/json"); 385 386 xhr2.onreadystatechange = function () { 387 if (this.readyState === XMLHttpRequest.DONE && this.status === 200) { 388 let res = JSON.parse(this.responseText); 389 390 if (res.data.attributes.Active) { 391 document.querySelector("#section-guide").classList.remove("is-hidden"); 392 393 document.querySelector("#topbar-nav-guide").classList.remove("is-hidden"); 394 395 document.querySelector("#section-guide .section-header-placeholder").innerHTML = 396 ` 397 <div class="section-header"> 398 <h3 class="section-header-title">` + 399 res.data.attributes.Title + 400 `</h3> 401 <h4 class="section-header-subtitle">` + 402 res.data.attributes.Subtitle + 403 `</h4> 404 </div> 405 `; 406 } else { 407 document.querySelector("#section-guide").innerHTML = ""; 408 409 document.querySelector("#section-guide").classList.add("is-hidden"); 410 document.querySelector("#topbar-nav-guide").classList.add("is-hidden"); 411 } 412 } 413 }; 414 415 xhr2.send(); 416} 417
418function insertNowlater() { 419 var xhr = new XMLHttpRequest(); 420 421 xhr.open("GET", "https://apiservic.es/api.svc/epg/tv/nownextlater", true); 422 423 xhr.setRequestHeader("Content-Type", "application/json"); 424 xhr.setRequestHeader( 425 "x-auth-bearer", 426 "JWT eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkEyNTZHQ00ifQ.U5KGh47fcxUzQK62jfRyKqXQvZo4j_GODkfVQU65KHuYTPG_eIikEVz0t6dv7xbYKxmi6im4tnxrzJ-ZSbhouMt5NU1d3oej9RRFddINIbZy8JbKq6xf_efhnrZFPa3D4WSqnxx1-J4vOgxB0-2fNcpehaW0QhUga7J1qmtfRbDq4iuJHXKB923mK0FHGH4c39AyXiCz7dELUNBR0-FIVBdArjsa9YVmw4V1JtfMI2rAx7MsG-PLEdn7ZHz4vU5L-yBbmOm-5Zn5vXpYaaxgS7yflSe_zUYESLEE4ycyKXZHwZt41o7aNgm9vq8NhjmCbD8bg20zllzN2MbVgHs3dw.9h7P8zt973Qb8g-E.VliZP4oCGEyVt13S3YWvCo3qHPx-FPZxYnAI-mheuOIGZBHwx8U0Fe0RFrCbfEbZCpuTGYDB51oheYwp_amaVUwXhC_D.TIx2OtDvUWp-MmFK9rDhKw" 427 ); 428 429 xhr.onreadystatechange = function () { 430 if (this.readyState === XMLHttpRequest.DONE && this.status === 200) { 431 let res = JSON.parse(this.responseText); 432 433 document.querySelector("#now-item .now-item-image").style.backgroundImage = 434 `url(` + (res.MetaData.Now.SmallArtwork != "" ? res.MetaData.Now.SmallArtwork : res.MetaData.Now.Screenshots.length > 0 ? res.MetaData.Now.Screenshots[0] : "") + `)`; 435 document.querySelector("#now-item .now-item-title").innerHTML = res.MetaData.Now.Title; 436 document.querySelector("#now-item .now-item-artist").innerHTML = res.MetaData.Now.MovieFields.filter((mf) => mf.Key == "Artist")[0].Value; 437 438 for (let i = 0; i < res.MetaData.Later.length; i++) { 439 let id = i + 1; 440 441 document.querySelector("#later-item-" + id + " .later-item-image").style.backgroundImage = 442 `url(` + (res.MetaData.Later[i].SmallArtwork != "" ? res.MetaData.Later[i].SmallArtwork : res.MetaData.Later[i].Screenshots.length > 0 ? res.MetaData.Later[i].Screenshots[0] : "") + `)`; 443 document.querySelector("#later-item-" + id + " .later-item-title").innerHTML = res.MetaData.Later[i].Title; 444 document.querySelector("#later-item-" + id + " .later-item-artist").innerHTML = res.MetaData.Later[i].MovieFields.filter((mf) => mf.Key == "Artist")[0].Value; 445 } 446 } 447 }; 448 449 xhr.send(); 450 451 var xhr2 = new XMLHttpRequest(); 452 453 xhr2.open("GET", "https://cms.192tv.tv/api/now-next-later?populate=%2A&locale=" + storage.language, true); 454 455 xhr2.setRequestHeader("Content-Type", "application/json"); 456 457 xhr2.onreadystatechange = function () { 458 if (this.readyState === XMLHttpRequest.DONE && this.status === 200) { 459 let res = JSON.parse(this.responseText); 460 461 if (res.data.attributes.Active) { 462 document.querySelector("#section-nowlater").classList.remove("is-hidden"); 463 464 document.querySelector(".now h3").innerHTML = res.data.attributes.Now; 465 document.querySelector(".later h3").innerHTML = res.data.attributes.Later; 466 } else { 467 document.querySelector("#section-nowlater").classList.add("is-hidden"); 468 } 469 } 470 }; 471 472 xhr2.send(); 473} 474 475function insertChannels() { 476 document.querySelector("#section-channels .channels-container").innerHTML = ""; 477 478 var xhr = new XMLHttpRequest(); 479 480 xhr.open("GET", "https://cms.192tv.tv/api/channels?populate[Providers][populate]=%2A&locale=" + storage.language, true); 481 482 xhr.setRequestHeader("Content-Type", "application/json"); 483 484 xhr.onreadystatechange = function () { 485 if (this.readyState === XMLHttpRequest.DONE && this.status === 200) { 486 let channelTranslation = ""; 487 488 if (storage.language == "nl") { 489 channelTranslation = "Kanaal"; 490 } 491 if (storage.language == "en") { 492 channelTranslation = "Channel"; 493 } 494 if (storage.language == "fr") { 495 channelTranslation = "Canal"; 496 } 497 if (storage.language == "de") { 498 channelTranslation = "Kanal"; 499 } 500 501 let res = JSON.parse(this.responseText); 502 503 if (res.data.attributes.Active) { 504 document.querySelector("#section-channels").classList.remove("is-hidden"); 505 506 document.querySelector("#topbar-nav-channels").classList.remove("is-hidden"); 507 508 document.querySelector("#section-channels .section-header-placeholder").innerHTML = 509 ` 510 <div class="section-header"> 511 <h3 class="section-header-title">` + 512 res.data.attributes.Title + 513 `</h3> 514 <h4 class="section-header-subtitle">` + 515 res.data.attributes.Subtitle + 516 `</h4> 517 </div> 518 `; 519
520 res.data.attributes.Providers.forEach((item) => { 521 document.querySelector("#section-channels .channels-container").innerHTML += 522 ` 523 <a target="_blank" class="channel" href="` + 524 item.Url + 525 `"> 526 <div class="channel-image" style="background-image: url('https://cms.192tv.tv` + 527 item.ProviderLogo.data.attributes.url + 528 `')"></div> 529 <h4 class="channel-number">` + 530 channelTranslation + 531 ` ` + 532 item.ChannelPosition + 533 `</h4> 534 </a> 535 `; 536 }); 537 } else { 538 document.querySelector("#section-channels").classList.add("is-hidden"); 539 document.querySelector("#topbar-nav-channels").classList.add("is-hidden"); 540 } 541 } 542 }; 543 544 xhr.send(); 545} 546 547function insertWebapp() { 548 var xhr = new XMLHttpRequest(); 549 550 xhr.open("GET", "https://cms.192tv.tv/api/ott-xperience?populate[0]=Background&populate[1]=Lines&locale=" + storage.language, true); 551 552 xhr.setRequestHeader("Content-Type", "application/json"); 553 554 xhr.onreadystatechange = function () { 555 if (this.readyState === XMLHttpRequest.DONE && this.status === 200) { 556 let res = JSON.parse(this.responseText); 557 558 if (res.data.attributes.Active) { 559 document.querySelector("#section-webapp").classList.remove("is-hidden"); 560 561 document.querySelector("#topbar-nav-webapp").classList.remove("is-hidden"); 562 563 document.querySelector("#section-webapp").style.backgroundImage = `url('https://cms.192tv.tv` + res.data.attributes.Backgroun
563d.data.attributes.url + `')`; 564 565 document.querySelector("#section-webapp .section-header-placeholder").innerHTML = 566 ` 567 <div class="section-header"> 568 <h3 class="section-header-title">` + 569 res.data.attributes.Title + 570 `</h3> 571 <h4 class="section-header-subtitle">` + 572 res.data.attributes.Subtitle + 573 `</h4> 574 </div> 575 `; 576 577 document.querySelector(".webapp-cta").innerHTML = res.data.attributes.ButtonText; 578 579 document.querySelector(".webapp-entries").innerHTML = ""; 580 581 res.data.attributes.Lines.forEach((item) => { 582 document.querySelector(".webapp-entries").innerHTML += 583 ` 584 <h4 class="webapp-entry">` + 585 item.Line + 586 `</h4> 587 `; 588 }); 589 } else { 590 document.querySelector("#section-webapp").classList.add("is-hidden"); 591 document.querySelector("#topbar-nav-webapp").classList.add("is-hidden"); 592 } 593 } 594 }; 595 596 xhr.send(); 597} 598 599function insertSubscriptions() { 600 var xhr = new XMLHttpRequest(); 601 602 xhr.open("GET", "https://cms.192tv.tv/api/subscriptions?populate[0]=Subscriptions&populate[1]=Subscriptions.USP&locale=" + storage.language, true); 603 604 xhr.setRequestHeader("Content-Type", "application/json"); 605 606 xhr.onreadystatechange = function () { 607 if (this.readyState === XMLHttpRequest.DONE && this.status === 200) { 608 let res = JSON.parse(this.responseText); 609 610 if (res.data.attributes.Active) { 611 document.querySelector("#section-subscriptions").classList.remove("is-hidden"); 612 613 document.querySelector("#topbar-nav-subscriptions").classList.remove("is-hidden"); 614 615 document.querySelector("#section-subscriptions .section-header-placeholder").innerHTML = 616 ` 617 <div class="section-header"> 618 <h3 class="section-header-title">` + 619 res.data.attributes.Title + 620 `</h3> 621 <h4 class="section-header-subtitle">` + 622 res.data.attributes.Subtitle + 623 `</h4> 624 </div> 625 `; 626 627 document.querySelector(".subscriptions-container").innerHTML = ""; 628 629 res.data.attributes.Subscriptions.forEach((item) => { 630 let usps = ``; 631 632 item.USP.forEach((usp) => { 633 usps += `<p class="subscription-usp">` + usp.Text + `</p>`; 634 }); 635 636 let a = item.Highlight ? "is-highlight" : ""; 637 638 document.querySelector(".subscriptions-container").innerHTML += 639 ` 640 <div class="subscription ` + 641 a + 642 `"> 643 <div class="subscription-header"> 644 <h3 class="subscription-title">` + 645 item.Title + 646 `</h3> 647 <h4 class="subscription-price">` + 648 (item.Price == "-" ? "-" : "â⬠" + item.Price) + 649 `</h4> 650 </div> 651 <div class="subscription-usps">` + 652 usps + 653 `</div> 654 <a target="_blank" class="subscription-btn" href="` + 655 item.ButtonCTA + 656 `">` + 657 item.ButtonText + 658 `</a> 659 </div> 660 `; 661 }); 662 } else { 663 document.querySelector("#section-webapp").classList.add("is-hidden"); 664 document.querySelector("#topbar-nav-subscriptions").classList.add("is-hidden"); 665 } 666 } 667 }; 668 669 xhr.send(); 670} 671 672function insertNews() { 673 var xhr = new XMLHttpRequest(); 674 675 xhr.open("GET", "https://cms.192tv.tv/api/news?&locale=" + storage.language, true); 676 677 xhr.setRequestHeader("Content-Type", "application/json"); 678 679 xhr.onreadystatechange = function () { 680 if (this.readyState === XMLHttpRequest.DONE && this.status === 200) { 681 let res = JSON.parse(this.responseText); 682 683 if (res.data.attributes.Active) { 684 document.querySelector("#section-news").classList.remove("is-hidden"); 685 686 document.querySelector("#topbar-nav-news").classList.remove("is-hidden"); 687 688 document.querySelector("#section-news .section-header-placeholder").innerHTML = 689 ` 690 <div class="section-header"> 691 <h3 class="section-header-title">` + 692 res.data.attributes.Title + 693 `</h3> 694 <h4 class="section-header-subtitle">` + 695 res.data.attributes.Subtitle + 696 `</h4> 697 </div> 698 `; 699 700 var xhrNews = new XMLHttpRequest(); 701 702 xhrNews.open("GET", "https://cms.192tv.tv/api/news-items?populate=%2A&sort=NewsDate:DESC&pagination[start]=0&pagination[limit]=5&locale=" + storage.language, true); 703 704 xhrNews.setRequestHeader("Content-Type", "application/json"); 705 706 xhrNews.onreadystatechange = function () { 707 if (this.readyState === XMLHttpRequest.DONE && this.status === 200) { 708 let newsRes = JSON.parse(this.responseText); 709 710 document.querySelector(".news-entries").innerHTML = ""; 711 712 let translationCta = ""; 713 714 if (storage.language == "nl") { 715 translationCta = "Lees meer"; 716 } 717 if (storage.language == "en") { 718 translationCta = "Read more"; 719 } 720 if (storage.language == "fr") { 721 translationCta = "Lire la suite"; 722 } 723 if (storage.language == "de") { 724 translationCta = "Weiterlesen"; 725 } 726 727 newsRes.data.forEach((item) => { 728 let y = item.attributes.NewsDate.substr(0, 4); 729 let m = item.attributes.NewsDate.substr(5, 2); 730 let d = item.attributes.NewsDate.substr(8, 2); 731 732 if (m == "01" && storage.language == "nl") { 733 m = "januari"; 734 } 735 if (m == "02" && storage.language == "nl") { 736 m = "februari"; 737 } 738 if (m == "03" && storage.language == "nl") { 739 m = "maart"; 740 } 741 if (m == "04" && storage.language == "nl") { 742 m = "april"; 743 } 744 if (m == "05" && storage.language == "nl") { 745 m = "mei"; 746 } 747 if (m == "06" && storage.language == "nl") { 748 m = "juni"; 749 } 750 if (m == "07" && storage.language == "nl") { 751 m = "juli"; 752 } 753 if (m == "08" && storage.language == "nl") { 754 m = "augustus"; 755 } 756 if (m == "09" && storage.language == "nl") { 757 m = "september"; 758 } 759 if (m == "10" && storage.language == "nl") { 760 m = "oktober"; 761 } 762 if (m == "11" && storage.language == "nl") { 763 m = "november"; 764 } 765 if (m == "12" && storage.language == "nl") { 766 m = "december"; 767 } 768 769 if (m == "01" && storage.language == "en") { 770 m = "January"; 771 } 772 if (m == "02" && storage.language == "en") { 773 m = "February"; 774 } 775 if (m == "03" && storage.language == "en") { 776 m = "March"; 777 } 778 if (m == "04" && storage.language == "en") { 779 m = "April"; 780 } 781 if (m == "05" && storage.language == "en") { 782 m = "May"; 783 } 784 if (m == "06" && storage.language == "en") { 785 m = "June"; 786 } 787 if (m == "07" && storage.language == "en") { 788 m = "July"; 789 } 790 if (m == "08" && storage.language == "en") { 791 m = "August"; 792 } 793 if (m == "09" && storage.language == "en") { 794 m = "September"; 795 } 796 if (m == "10" && storage.language == "en") { 797 m = "October"; 798 } 799 if (m == "11" && storage.language == "en") { 800 m = "November"; 801 } 802 if (m == "12" && storage.language == "en") { 803 m = "December"; 804 } 805 806 if (m == "01" && storage.language == "fr") { 807 m = "janvier"; 808 } 809 if (m == "02" && storage.language == "fr") { 810 m = "février"; 811 } 812 if (m == "03" && storage.language == "fr") { 813 m = "mars"; 814 } 815 if (m == "04" && storage.language == "fr") { 816 m = "avril"; 817 } 818 if (m == "05" && storage.language == "fr") { 819 m = "mai"; 820 } 821 if (m == "06" && storage.language == "fr") { 822 m = "juin"; 823 } 824 if (m == "07" && storage.language == "fr") { 825 m = "juillet"; 826 } 827 if (m == "08" && storage.language == "fr") { 828 m = "août"; 829 } 830 if (m == "09" && storage.language == "fr") { 831 m = "septembre"; 832 } 833 if (m == "10" && storage.language == "fr") { 834 m = "octobre"; 835 } 836 if (m == "11" && storage.language == "fr") { 837 m = "novembre"; 838 } 839 if (m == "12" && storage.language == "fr") { 840 m = "décembre"; 841 } 842 843 if (m == "01" && storage.language == "de") { 844 m = "Januar"; 845 } 846 if (m == "02" && storage.language == "de") { 847 m = "Februar"; 848 } 849 if (m == "03" && storage.language == "de") { 850 m = "März"; 851 } 852 if (m == "04" && storage.language == "de") { 853 m = "April"; 854 } 855 if (m == "05" && storage.language == "de") { 856 m = "Mai "; 857 } 858 if (m == "06" && storage.language == "de") { 859 m = "Juni "; 860 } 861 if (m == "07" && storage.language == "de") { 862 m = "Juli "; 863 } 864 if (m == "08" && storage.language == "de") { 865 m = "August "; 866 } 867 if (m == "09" && storage.language == "de") { 868 m = "September "; 869 } 870 if (m == "10" && storage.language == "de") { 871 m = "Oktober "; 872 } 873 if (m == "11" && storage.language == "de") { 874 m = "November"; 875 } 876 if (m == "12" && storage.language == "de") { 877 m = "Dezember "; 878 } 879 880 document.querySelector(".news-entries").innerHTML += 881 ` 882 <div data-id="news-entry-` + 883 item.id + 884 `" class="news-entry"> 885 <div class="news-entry-img" style="background-image: url('https://cms.192tv.tv` + 886 item.attributes.Image.data.attributes.url + 887 `')"></div> 888 <div class="news-entry-info"> 889 <h6 class="news-entry-date">` + 890 (d + " " + m + ", " + y) + 891 `</h6> 892 <h5 class="news-entry-title">` + 893 item.attributes.Title + 894 `</h5> 895 <p class="news-entry-intro">` + 896 markDown(item.attributes.Intro) + 897 `</p> 898 </div> 899 <a class="news-entry-btn" href="/article.html?id=` + 900 item.id + 901 `&lang=` + 902 storage.language + 903 `" target="_blank">` + 904 translationCta + 905 `</a> 906 </div> 907 `; 908 }); 909 } 910 }; 911 912 xhrNews.send(); 913 } else { 914 document.querySelector("#section-news").classList.add("is-hidden"); 915 916 document.querySelector("#topbar-nav-news").classList.add("is-hidden"); 917 } 918 } 919 }; 920 921 xhr.send(); 922} 923 924function insertFaq() { 925 var xhr = new XMLHttpRequest(); 926 927 xhr.open("GET", "https://cms.192tv.tv/api/faq?populate[0]=FAQ&locale=" + storage.language, true); 928 929 xhr.setRequestHeader("Content-Type", "application/json"); 930 931 xhr.onreadystatechange = function () { 932 if (this.readyState === XMLHttpRequest.DONE && this.status === 200) { 933 let res = JSON.parse(this.responseText); 934 935 if (res.data.attributes.Active) { 936 document.querySelector("#section-faq").classList.remove("is-hidden"); 937 938 document.querySelector("#topbar-nav-faq").classList.remove("is-hidden"); 939 940 document.querySelector("#section-faq .section-header-placeholder").innerHTML = 941 ` 942 <div class="section-header"> 943 <h3 class="section-header-title">` + 944 res.data.attributes.Title + 945 `</h3> 946 <h4 class="section-header-subtitle">` + 947 res.data.attributes.Subtitle + 948 `</h4> 949 </div> 950 `; 951 952 let faqEntriesLeft = res.data.attributes.FAQ; 953 954 faqEntriesLeft = faqEntriesLeft.slice(0, Math.ceil(faqEntriesLeft.length / 2)); 955 956 document.querySelectorAll(".faq-col")[0].innerHTML = ""; 957 958 faqEntriesLeft.forEach((entry) => { 959 document.querySelectorAll(".faq-col")[0].innerHTML += 960 ` 961 <div class="faq-entry"> 962 <h5 class="faq-entry-question" onclick="toggleFaq(this)">` + 963 entry.Question + 964 `</h5> 965 <div class="faq-entry-answer-container"> 966 <p class="faq-entry-answer">` + 967 markDown(entry.Answer) + 968 `</p> 969 </div> 970 </div> 971 `; 972 }); 973 974 let faqEntriesRight = res.data.attributes.FAQ; 975 faqEntriesRight = faqEntriesRight.slice(Math.ceil(faqEntriesRight.length / 2)); 976 977 document.querySelectorAll(".faq-col")[1].innerHTML = ""; 978 979 faqEntriesRight.forEach((entry) => { 980 document.querySelectorAll(".faq-col")[1].innerHTML += 981 ` 982 <div class="faq-entry"> 983 <h5 class="faq-entry-question" onclick="toggleFaq(this)">` + 984 entry.Question + 985 `</h5> 986 <div class="faq-entry-answer-container"> 987 <p class="faq-entry-answer">` + 988 markDown(entry.Answer) + 989 `</p> 990 </div> 991 </div> 992 `; 993 }); 994 } else { 995 document.querySelector("#section-faq").classList.add("is-hidden"); 996 997 document.querySelector("#topbar-nav-faq").classList.add("is-hidden"); 998 } 999 } 1000 }; 1001 1002 xhr.send(); 1003} 1004 1005function insertNewsletter() { 1006 var xhr = new XMLHttpRequest(); 1007 1008 xhr.open("GET", "https://cms.192tv.tv/api/news-letter?locale=" + storage.language, true); 1009 1010 xhr.setRequestHeader("Content-Type", "application/json"); 1011 1012 xhr.onreadystatechange = function () { 1013 if (this.readyState === XMLHttpRequest.DONE && this.status === 200) { 1014 let res = JSON.parse(this.responseText); 1015 1016 if (res.data.attributes.Active) { 1017 document.querySelector("#section-newsletter").classList.remove("is-hidden"); 1018 1019 document.querySelector("#section-newsletter .section-header-placeholder").innerHTML = 1020 ` 1021 <div class="section-header"> 1022 <h3 class="section-header-title">` + 1023 res.data.attributes.Title + 1024
1024 `</h3> 1025 <h4 class="section-header-subtitle">` + 1026 res.data.attributes.Subtitle + 1027 `</h4> 1028 </div> 1029 `; 1030 1031 document.querySelector(".newsletter-input-btn").value = res.data.attributes.ButtonText; 1032 1033 document.querySelector(".newsletter-input").placeholder = res.data.attributes.Placeholder; 1034 } else { 1035 document.querySelector("#section-newsletter").classList.add("is-hidden"); 1036 } 1037 } 1038 }; 1039 1040 xhr.send(); 1041} 1042 1043function insertFooter() { 1044 var xhr = new XMLHttpRequest(); 1045 1046 xhr.open("GET", "https://cms.192tv.tv/api/footer?populate=%2A&locale=" + storage.language, true); 1047 1048 xhr.setRequestHeader("Content-Type", "application/json"); 1049 1050 xhr.onreadystatechange = function () { 1051 if (this.readyState === XMLHttpRequest.DONE && this.status === 200) { 1052 let res = JSON.parse(this.responseText); 1053 1054 if (res.data.attributes.Active) { 1055 document.querySelector(".footer").classList.remove("is-hidden"); 1056 1057 document.querySelector(".footer-container").innerHTML = ""; 1058 1059 res.data.attributes.Component.forEach((entry) => { 1060 document.querySelector(".footer-container").innerHTML += 1061 ` 1062 <a target="_blank" href="` + 1063 entry.CTA + 1064 `" class="footer-block"> 1065 <h4 class="footer-block-title">` + 1066 entry.Title + 1067 `</h4> 1068 <p class="footer-block-subtitle">` + 1069 markDown(entry.Body) + 1070 `</p> 1071 </a> 1072 `; 1073 }); 1074 } else { 1075 document.querySelector(".footer").classList.add("is-hidden"); 1076 } 1077 } 1078 }; 1079 1080 xhr.send(); 1081} 1082 1083function insertBottombar() { 1084 var xhr = new XMLHttpRequest(); 1085 1086 xhr.open("GET", "https://cms.192tv.tv/api/bottom-bar?populate=%2A&locale=" + storage.language, true); 1087 1088 xhr.setRequestHeader("Content-Type", "application/json"); 1089 1090 xhr.onreadystatechange = function () { 1091 if (this.readyState === XMLHttpRequest.DONE && this.status === 200) { 1092 let res = JSON.parse(this.responseText); 1093 1094 if (res.data.attributes.Active) { 1095 document.querySelector("#bb").classList.remove("is-hidden"); 1096 1097 document.getElementById("bb").innerHTML = ""; 1098 1099 res.data.attributes.Component.forEach((entry) => { 1100 document.getElementById("bb").innerHTML += 1101 ` 1102 <a href="` + 1103 entry.CTA + 1104 `" target="_blank" class="nav">` + 1105 entry.Title + 1106 `</a> 1107 `; 1108 }); 1109 } else { 1110 document.querySelector("#bb").classList.add("is-hidden"); 1111 } 1112 } 1113 }; 1114 1115 xhr.send(); 1116} 1117 1118function insertTopbar() { 1119 if (storage.language == "nl") { 1120 document.getElementById("topbar-nav-about").innerHTML = "Over 192TV"; 1121 document.getElementById("topbar-nav-guide").innerHTML = "Gids"; 1122 document.getElementById("topbar-nav-channels").innerHTML = "Kanalen"; 1123 document.getElementById("topbar-nav-webapp").innerHTML = "192TV Online"; 1124 document.getElementById("topbar-nav-subscriptions").innerHTML = "Abonnementen"; 1125 document.getElementById("topbar-nav-news").innerHTML = "Nieuws"; 1126 document.getElementById("topbar-nav-faq").innerHTML = "Veelgestelde vragen"; 1127 } 1128 1129 if (storage.language == "en") { 1130 document.getElementById("topbar-nav-about").innerHTML = "About 192TV"; 1131 document.getElementById("topbar-nav-guide").innerHTML = "Guide"; 1132 document.getElementById("topbar-nav-channels").innerHTML = "Channels"; 1133 document.getElementById("topbar-nav-webapp").innerHTML = "192TV Online"; 1134 document.getElementById("topbar-nav-subscriptions").innerHTML = "Subscriptions"; 1135 document.getElementById("topbar-nav-news").innerHTML = "News"; 1136 document.getElementById("topbar-nav-faq").innerHTML = "FAQ"; 1137 } 1138 1139 if (storage.language == "fr") { 1140 document.getElementById("topbar-nav-about").innerHTML = "Sur 192TV"; 1141 document.getElementById("topbar-nav-guide").innerHTML = "Guide"; 1142 document.getElementById("topbar-nav-channels").innerHTML = "Canaux"; 1143 document.getElementById("topbar-nav-webapp").innerHTML = "192TV En Ligne";
1144 document.getElementById("topbar-nav-subscriptions").innerHTML = "Abonnements"; 1145 document.getElementById("topbar-nav-news").innerHTML = "Nouveautés"; 1146 document.getElementById("topbar-nav-faq").innerHTML = "FAQ"; 1147 } 1148 1149 if (storage.language == "de") { 1150 document.getElementById("topbar-nav-about").innerHTML = "ÃÅber 192TV"; 1151 document.getElementById("topbar-nav-guide").innerHTML = "Programm"; 1152 document.getElementById("topbar-nav-channels").innerHTML = "Kanäle"; 1153 document.getElementById("topbar-nav-webapp").innerHTML = "192TV Online"; 1154 document.getElementById("topbar-nav-subscriptions").innerHTML = "Abonnements"; 1155 document.getElementById("topbar-nav-news").innerHTML = "Nachrichten"; 1156 document.getElementById("topbar-nav-faq").innerHTML = "FAQ"; 1157 } 1158} 1159 1160function toggleFaq(elem) { 1161 let p = elem.parentNode; 1162 let h = p.querySelector(".faq-entry-answer").offsetHeight; 1163 1164 if (p.classList.contains("is-open")) { 1165 p.classList.remove("is-open"); 1166 p.querySelector(".faq-entry-answer-container").style.height = 0; 1167 } else { 1168 if (document.querySelectorAll(".faq-entry.is-open").length > 0) { 1169 document.querySelector(".faq-entry.is-open .faq-entry-answer-container").style.height = 0; 1170 document.querySelector(".faq-entry.is-open").classList.remove("is-open"); 1171 } 1172 1173 p.classList.add("is-open"); 1174 p.querySelector(".faq-entry-answer-container").style.height = h + 15 + "px"; 1175 } 1176} 1177 1178function initChannelsSlider() { 1179 let p = document.querySelector(".channels-container"); 1180 1181 clearInterval(storage.channelsInterval); 1182 1183 storage.channelsInterval = setInterval(() => { 1184 p.appendChild(p.childNodes[0]); 1185 }, 1500); 1186} 1187 1188function navAbout(index) { 1189 document.querySelector(".about-menu-nav.is-active").classList.remove("is-active"); 1190 document.querySelector(".about-content-item.is-active").classList.remove("is-active"); 1191 1192 document.querySelector('.about-menu-nav[data-index="' + index + '"]').classList.add("is-active"); 1193 document.querySelector('.about-content-item[data-index="' + index + '"]').classList.add("is-active"); 1194} 1195 1196function subscribe(e) { 1197 if (e.keyCode == 13 || e.type == "click") { 1198 } 1199} 1200 1201function navGuide(dir) { 1202 let step = window.innerWidth - 125; 1203 1204 let currentPos = parseInt(document.querySelector(".guide-slider").getAttribute("data-pos")); 1205 1206 if (dir == "l") { 1207 document.querySelector(".guide-slider").setAttribute("data-pos", currentPos - step); 1208 1209 document.querySelector(".guide-slider").scroll({ 1210 left: currentPos - step, 1211 top: 0, 1212 behavior: "smooth", 1213 }); 1214 } else { 1215 document.querySelector(".guide-slider").setAttribute("data-pos", currentPos + step); 1216 1217 document.querySelector(".guide-slider").scroll({ 1218 left: currentPos + step, 1219 top: 0, 1220 behavior: "smooth", 1221 }); 1222 } 1223 1224 let items = document.querySelectorAll(".guide-slider-item"); 1225 1226 let checkPos = Math.ceil(parseInt(document.querySelector(".guide-slider").getAttribute("data-pos")) + window.innerWidth / 2 - items[0].offsetWidth / 2); 1227 1228 let item = null; 1229 1230 for (let i = 0; i < items.length; i++) { 1231 let pos = items[i].offsetLeft; 1232 1233 if (pos == checkPos) { 1234 item = items[i]; 1235 } 1236 } 1237 1238 if (item == null) { 1239 checkPos = Math.floor(parseInt(document.querySelector(".guide-slider").getAttribute("data-pos")) + window.innerWidth / 2 - items[0].offsetWidth / 2); 1240 1241 for (let i = 0; i < items.length; i++) { 1242 let pos = items[i].offsetLeft; 1243 1244 if (pos == checkPos) { 1245 item = items[i]; 1246 } 1247 } 1248 } 1249 1250 if (item != null) { 1251 let d = item.getAttribute("data-date"); 1252 1253 document.querySelector(".guide-date.is-active").classList.remove("is-active"); 1254 document.querySelector('.guide-date[data-date="' + d + '"]').classList.add("is-active"); 1255 } 1256} 1257 1258function guideScrollDate(d) { 1259 let windowW = window.innerWidth; 1260 1261 let items = document.querySelectorAll(".guide-slider-item"); 1262 1263 let item = null; 1264 1265 let date = new Date(); 1266 const offset = date.getTimezoneOffset() / 60; 1267 1268 const ho = date.getHours() + offset; 1269 1270 let h = ho < 10 ? "0" + ho : ho; 1271 let m = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes(); 1272 let t = h + ":" + m; 1273 let s = h * 3600 + m * 60; 1274 1275 let counts = []; 1276 1277 for (let i = 0; i < items.length; i++) { 1278 if (items[i].getAttribute("data-date") == d) { 1279 let h2 = items[i].getAttribute("data-time").substr(0, 2); 1280 1281 if (h2.substr(0, 1) == "0") { 1282 h2 = parseInt(h2.substr(1, 1)); 1283 } else { 1284 h2 = parseInt(h2); 1285 } 1286 1287 let m2 = items[i].getAttribute("data-time").substr(3, 2); 1288 1289 if (m2.substr(0, 1) == "0") { 1290 m2 = parseInt(m2.substr(1, 1)); 1291 } else { 1292 m2 = parseInt(m2); 1293 } 1294 1295 let s2 = h2 * 3600 + m2 * 60; 1296 1297 counts.push(s2); 1298 1299 items[i].setAttribute("data-seconds", s2); 1300 1301 if (item == null) { 1302 item = items[i]; 1303 } 1304 } 1305 } 1306 1307 item = null; 1308 1309 let goal = s; 1310 1311 let closest = counts.reduce(function (prev, curr) { 1312 return Math.abs(curr - goal) < Math.abs(prev - goal) ? curr : prev; 1313 }); 1314 1315 let x = document.querySelector(`.guide-slider-item[data-date="` + d + `"][data-seconds="` + closest + `"]`).offsetLeft; 1316 let itemWidth = document.querySelector(`.guide-slider-item[data-date="` + d + `"][data-seconds="` + closest + `"]`).offsetWidth + 5; 1317 let recalc = 0; 1318 1319 if (windowW > 1024) { 1320 recalc = itemWidth * 3; 1321 } else if (windowW > 768) { 1322 recalc = itemWidth * 2; 1323 } else if (windowW > 500) { 1324 recalc = itemWidth; 1325 } else { 1326 recalc = itemWidth * -1 + itemWidth; 1327 } 1328 1329 x = x - recalc; 1330 1331 if (document.querySelectorAll(`.guide-slider-item.is-current`).length == 0) { 1332 document.querySelector(`.guide-slider-item[data-date="` + d + `"][data-seconds="` + closest + `"]`).classList.add("is-current"); 1333 } 1334 1335 document.querySelector(".guide-slider").setAttribute("data-pos", x - 65); 1336 1337 document.querySelector(".guide-slider").scroll({ 1338 left: x - 65, 1339 top: 0, 1340 behavior: "smooth", 1341 }); 1342} 1343 1344function navGuideDates(dir) { 1345 let i = 0; 1346 1347 for (let i2 = 0; i2 < document.querySelectorAll(".guide-date").length; i2++) { 1348 if (document.querySelectorAll(".guide-date")[i2].classList.contains("is-active")) { 1349 i = i2; 1350 } 1351 } 1352 1353 let l = document.querySelectorAll(".guide-date").length; 1354 let newI = 0; 1355 1356 if (dir == "l") { 1357 newI = i == 0 ? l - 1 : i - 1; 1358 } else { 1359 newI = i == l - 1 ? 0 : i + 1; 1360 } 1361 1362 document.querySelector(".guide-date.is-active").classList.remove("is-active"); 1363 document.querySelectorAll(".guide-date")[newI].classList.add("is-active"); 1364 1365 let d = document.querySelector(".guide-date.is-active").getAttribute("data-date"); 1366 1367 guideScrollDate(d); 1368} 1369 1370function navHeader(dir) { 1371 let p = document.querySelector(".header-slides"); 1372 1373 let nodes = []; 1374
1375 p.childNodes.forEach((cn) => { 1376 if (cn.classList != undefined) { 1377 nodes.push(cn); 1378 } 1379 }); 1380 1381 if (dir == "l") { 1382 p.insertBefore(nodes[nodes.length - 1], nodes[0]); 1383 } else { 1384 p.appendChild(nodes[0]); 1385 } 1386} 1387 1388function toggleMenu() { 1389 document.querySelector(".topbar-navs").classList.toggle("is-open"); 1390} 1391 1392function getArticle() { 1393 let newsId = parseInt(window.location.href.split("?id=")[1]); 1394 1395 var xhr = new XMLHttpRequest(); 1396 1397 xhr.open("GET", "https://cms.192tv.tv/api/news-items/" + newsId + "?populate=%2A&locale=" + storage.language, true); 1398 1399 xhr.setRequestHeader("Content-Type", "application/json"); 1400 1401 xhr.onreadystatechange = function () { 1402 if (this.readyState === XMLHttpRequest.DONE && this.status === 200) { 1403 let res = JSON.parse(this.responseText); 1404 1405 let y = res.data.attributes.NewsDate.substr(0, 4); 1406 let m = res.data.attributes.NewsDate.substr(5, 2); 1407 let d = res.data.attributes.NewsDate.substr(8, 2); 1408 1409 if (m == "01" && storage.language == "nl") { 1410 m = "januari"; 1411 } 1412 if (m == "02" && storage.language == "nl") { 1413 m = "februari"; 1414 } 1415 if (m == "03" && storage.language == "nl") { 1416 m = "maart"; 1417 } 1418 if (m == "04" && storage.language == "nl") { 1419 m = "april"; 1420 } 1421 if (m == "05" && storage.language == "nl") { 1422 m = "mei"; 1423 } 1424 if (m == "06" && storage.language == "nl") { 1425 m = "juni"; 1426 } 1427 if (m == "07" && storage.language == "nl") { 1428 m = "juli"; 1429 } 1430 if (m == "08" && storage.language == "nl") { 1431 m = "augustus"; 1432 } 1433 if (m == "09" && storage.language == "nl") { 1434 m = "september"; 1435 } 1436 if (m == "10" && storage.language == "nl") { 1437 m = "oktober"; 1438 } 1439 if (m == "11" && storage.language == "nl") { 1440 m = "november"; 1441 } 1442 if (m == "12" && storage.language == "nl") { 1443 m = "december"; 1444 } 1445 1446 if (m == "01" && storage.language == "en") { 1447 m = "January"; 1448 } 1449 if (m == "02" && storage.language == "en") { 1450 m = "February"; 1451 } 1452 if (m == "03" && storage.language == "en") { 1453 m = "March"; 1454 } 1455 if (m == "04" && storage.language == "en") { 1456 m = "April"; 1457 } 1458 if (m == "05" && storage.language == "en") { 1459 m = "May"; 1460 } 1461 if (m == "06" && storage.language == "en") { 1462 m = "June"; 1463 } 1464 if (m == "07" && storage.language == "en") { 1465 m = "July"; 1466 } 1467 if (m == "08" && storage.language == "en") { 1468 m = "August"; 1469 } 1470 if (m == "09" && storage.language == "en") { 1471 m = "September"; 1472 } 1473 if (m == "10" && storage.language == "en") { 1474 m = "October"; 1475 } 1476 if (m == "11" && storage.language == "en") { 1477 m = "November"; 1478 } 1479 if (m == "12" && storage.language == "en") { 1480 m = "December"; 1481 } 1482 1483 if (m == "01" && storage.language == "fr") { 1484 m = "janvier"; 1485 } 1486 if (m == "02" && storage.language == "fr") { 1487 m = "février"; 1488 } 1489 if (m == "03" && storage.language == "fr") { 1490 m = "mars"; 1491 } 1492 if (m == "04" && storage.language == "fr") { 1493 m = "avril"; 1494 } 1495 if (m == "05" && storage.language == "fr") { 1496 m = "mai"; 1497 } 1498 if (m == "06" && storage.language == "fr") { 1499 m = "juin"; 1500 } 1501 if (m == "07" && storage.language == "fr") { 1502 m = "juillet"; 1503 } 1504 if (m == "08" && storage.language == "fr") { 1505 m = "août"; 1506 } 1507 if (m == "09" && storage.language == "fr") { 1508 m = "septembre"; 1509 } 1510 if (m == "10" && storage.language == "fr") { 1511 m = "octobre"; 1512 } 1513 if (m == "11" && storage.language == "fr") { 1514 m = "novembre"; 1515 } 1516 if (m == "12" && storage.language == "fr") { 1517 m = "décembre"; 1518 } 1519 1520 if (m == "01" && storage.language == "de") { 1521 m = "Januar"; 1522 } 1523 if (m == "02" && storage.language == "de") { 1524 m = "Februar"; 1525 } 1526 if (m == "03" && storage.language == "de") { 1527 m = "März"; 1528 } 1529 if (m == "04" && storage.language == "de") { 1530 m = "April"; 1531 } 1532 if (m == "05" && storage.language == "de") { 1533 m = "Mai "; 1534 } 1535 if (m == "06" && storage.language == "de") { 1536 m = "Juni "; 1537 } 1538 if (m == "07" && storage.language == "de") { 1539 m = "Juli "; 1540 } 1541 if (m == "08" && storage.language == "de") { 1542 m = "August "; 1543 } 1544 if (m == "09" && storage.language == "de") { 1545 m = "September "; 1546 } 1547 if (m == "10" && storage.language == "de") { 1548 m = "Oktober "; 1549 } 1550 if (m == "11" && storage.language == "de") { 1551 m = "November"; 1552 } 1553 if (m == "12" && storage.language == "de") { 1554 m = "Dezember "; 1555 } 1556 1557 document.querySelector(".article-container").innerHTML = 1558 ` 1559 <div class="article-header"><img src="https://cms.192tv.tv` + 1560 res.data.attributes.Image.data.attributes.url + 1561 `"></div> 1562 <h6 class="article-date">` + 1563 (d + " " + m + ", " + y) + 1564 `</h6> 1565 <h4 class="article-title">` + 1566 res.data.attributes.Title + 1567 `</h4> 1568 <p class="article-intro">` + 1569 markDown(res.data.attributes.Intro) + 1570 `</p> 1571 <div class="article-content">` + 1572 markDown(res.data.attributes.Body) + 1573 `</div> 1574 </div> 1575 `; 1576 } 1577 }; 1578 1579 xhr.send(); 1580} 1581
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.