https://sweapevent.com/b?p=thong-pragaaisaet-ep21

Eingereichte URL:
https://sweapevent.com/thong-pragaaisaet-ep21Umgeleitet
Bericht beendet:

Die von der Seite ausgehenden identifizierten Links

LinkText
https://t.co/ItoUrypdJE=>ทองประกายแสด EP.21 ตอนที่ 21 ฟรี ซับไทย ✔️
https://www.sweap.ioDetails
https://sweap.io/?utm_source=product&utm_medium=registration

JavaScript-Variablen · 151 gefunden

Globale JavaScript-Variablen, die in das Window Object einer Seite geladen werden, sind Variablen, die außerhalb von Funktionen deklariert werden und von jeder Stelle des Codes innerhalb des aktuellen Bereichs zugänglich sind

NameTyp
onbeforetoggleobject
documentPictureInPictureobject
onscrollendobject
$function
jQueryfunction
sweap_addFieldValueEqualsValidatorfunction
sweap_addEmailValueEqualsValidatorfunction
sweap_getUrlParameterfunction
sweap_readUrlParameterToFieldfunction
SWEAPSelectionUtilfunction

Konsolenprotokoll-Meldungen · 11 gefunden

In der Web-Konsole protokollierte Meldungen

TypKategorieProtokoll
logother
URL
https://cdn.sweap.io/assets/commons/libs/jquery-migrate/3.4.0/jquery-migrate-3.4.0.js
Text
JQMIGRATE: Migrate is installed with logging active, version 3.4.0
errorsecurity
URL
https://sweapevent.com/b?p=thong-pragaaisaet-ep21
Text
Access to font at 'https://cdn.sweap.io/assets/commons/fonts/Lato/lato-v16-latin/lato-v16-latin-300.woff2' from origin 'https://sweapevent.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
errornetwork
URL
https://cdn.sweap.io/assets/commons/fonts/Lato/lato-v16-latin/lato-v16-latin-300.woff2
Text
Failed to load resource: net::ERR_FAILED
logother
URL
https://cdn.sweap.io/assets/commons/libs/add-to-calendar-button/2.2.9/atcb.js
Text
%c Add to Calendar Button script initialized see https://add-to-calendar-button.com for details. font-weight: bold;
errorsecurity
URL
https://sweapevent.com/b?p=thong-pragaaisaet-ep21
Text
Access to font at 'https://cdn.sweap.io/assets/commons/fonts/Lato/lato-v16-latin/lato-v16-latin-regular.woff2' from origin 'https://sweapevent.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
errornetwork
URL
https://cdn.sweap.io/assets/commons/fonts/Lato/lato-v16-latin/lato-v16-latin-regular.woff2
Text
Failed to load resource: net::ERR_FAILED
errorsecurity
URL
https://sweapevent.com/b?p=thong-pragaaisaet-ep21
Text
Access to font at 'https://cdn.sweap.io/assets/commons/fonts/Lato/lato-v16-latin/lato-v16-latin-700.woff2' from origin 'https://sweapevent.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
errornetwork
URL
https://cdn.sweap.io/assets/commons/fonts/Lato/lato-v16-latin/lato-v16-latin-700.woff2
Text
Failed to load resource: net::ERR_FAILED
errorsecurity
URL
https://sweapevent.com/b?p=thong-pragaaisaet-ep21
Text
Access to font at 'https://cdn.sweap.io/assets/commons/libs/font-awesome/6.4.2/webfonts/fa-solid-900.woff2' from origin 'https://sweapevent.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
errornetwork
URL
https://cdn.sweap.io/assets/commons/libs/font-awesome/6.4.2/webfonts/fa-solid-900.woff2
Text
Failed to load resource: net::ERR_FAILED
errornetwork
URL
https://sweapevent.com/favicon.ico
Text
Failed to load resource: the server responded with a status of 404 ()

HTML

Der HTML-Rohtext der Seite

<!DOCTYPE html><html lang="de" xmlns="http://www.w3.org/1999/xhtml" class="no-js h-100"><head>
      <meta charset="utf-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <meta name="format-detection" content="telephone=no">
      <meta name="version" content="1.40">
      
      <meta property="og:title" content="[ดูสด] ทองประกายแสด EP.21 (ตอนที่ 21) ตอนแรก เต็ม เรื่อง ดูงฟรีออนไลน์ iQiyi, One 31">
      
         <meta property="og:description" content="[ดูสด] ทองประกายแสด EP.21 (ตอนที่ 21) ตอนแรก เต็ม เรื่อง ดูงฟรีออนไลน์ iQiyi, One 31">
      
      <meta property="og:type" content="event">
      
      <meta name="twitter:card" content="summary_large_image">
      
      <title>[ดูสด] ทองประกายแสด EP.21 (ตอนที่ 21) ตอนแรก เต็ม เรื่อง ดูงฟรีออนไลน์ iQiyi, One 31</title>

      <!--/* Favicon */-->
      
         
       

      <!--/* Bootstrap */-->
      <link rel="stylesheet" href="https://cdn.sweap.io/assets/commons/libs/bootstrap/5.1.3/css/bootstrap.min.css">

      <link rel="stylesheet" href="https://cdn.sweap.io/assets/commons/libs/[email protected]/bootstrap-select.min.css">

      <!--/* font-awesome */-->
      <link rel="stylesheet" href="https://cdn.sweap.io/assets/commons/libs/font-awesome/6.4.2/css/all.min.css">

      <!-- Tempus Dominus Styles -->
      <link rel="stylesheet" href="https://cdn.sweap.io/assets/commons/libs/tempus-dominus/6.9.4/dist/css/tempus-dominus.min.css">

      
         <!--/* Lato Font */-->
         <link rel="stylesheet" href="https://cdn.sweap.io/assets/commons/fonts/Lato/lato.css">
      

      <script type="text/javascript" src="https://cdn.sweap.io/assets/commons/libs/jquery/jquery-3.6.0.min.js"></script>
      <script type="text/javascript">
         if (typeof jQuery == 'undefined') {
            window.jQuery || document.write('<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></scr" + "ipt>"')
            };
      </script>
      
      
         
               <script src="https://cdn.sweap.io/assets/commons/libs/sweap-js/registration-form/registration-form.js"></script>

         
               <script src="https://cdn.sweap.io/assets/commons/libs/moment.js/2.29.1/moment-with-locales.min.js"></script>
<script src="https://cdn.sweap.io/assets/commons/libs/jquery-countdown/2.2.0/jquery.countdown.min.js"></script>
<script src="https://cdn.sweap.io/assets/commons/libs/add-to-calendar-button/2.2.9/atcb.js" async="" defer=""></script>
         
      

      

      
         
         
      
      <style>
      body {
         padding-top:  80px ;
         font-family: 'Lato', Helvetica, Arial, sans-serif;
      }
      .sweapPrimaryColor {
         color: #339cc2;
      }
      .sweapPrimaryColorHighlight {
         color: #246d88;
      }
      .sweapPrimaryColor__link {
         color: #339cc2!important;
      }
      .sweapPrimaryColor__link:hover {
         color: #246d88!important;
      }
      .sweapPrimaryColor__link--background {
         background-color: #339cc2!important;
      }
      .sweapPrimaryColor__link--background:hover {
         background-color: #246d88!important;
      }
      .sweapPrimaryColor__border {
         border-color: #339cc2;
      }
      .sweapPrimaryColor__background {
         background-color: #339cc2;
      }

      /* Settings */
      a {
         color: #339cc2;
         text-decoration: none;
      }
      a:hover {
         color: #246d88;
      }
      .btn-primary,
      .btn-custom-accept,
      .btn-custom-decline,
      .btn-custom-code {
         color: #fff;
         background-color: #339cc2;
         border-color: #339cc2;
      }
      a.btn-primary:hover {
         color: #fff;
      }
      .btn-primary:hover,
      .btn-check:active+.btn-primary, 
      .btn-check:checked+.btn-primary, 
      .btn-primary.active,
      .show>.btn-primary.dropdown-toggle,
      .btn-custom-accept:hover,
      .btn-custom-accept:active,
      .btn-primary:active {
         background-color: #246d88;
         border-color: #246d88;
      }
      .btn-check:focus+.btn-primary, 
      .btn-primary:focus,
      .btn-custom-accept:focus
      {
         background-color: #246d88;
         border-color: #246d88;
         box-shadow: none;
      }
      .btn-primary:active:focus,
      .btn-custom-accept:active:focus {
         box-shadow: none;
      }

      /* Forms */
      .sweap-module-form .completeForm .btn-custom-accept:hover,
      .sweap-module-form .completeForm .btn-custom-accept:active,
      .sweap-module-form .completeForm .btn-custom-decline:hover,
      .sweap-module-form .completeForm .btn-custom-decline:active,
      .sweap-module-form .completeForm .btn-custom-code:hover,
      .sweap-module-form .completeForm .btn-custom-code:active,
      .sweap-module-simpleForm .simpleForm .btn-custom-accept:hover,
      .sweap-module-simpleForm .simpleForm .btn-custom-accept:active,
      .sweap-module-simpleForm .simpleForm .btn-custom-decline:hover,
      .sweap-module-simpleForm .simpleForm .btn-custom-decline:active
      .sweap-module-simpleForm .simpleForm .btn-custom-code:hover,
      .sweap-module-simpleForm .simpleForm .btn-custom-code:active {
         color: #246d88;
      }
      .sweap-module-simpleForm .simpleForm .form-group label.btn-secondary:hover, 
      .sweap-module-simpleForm .simpleForm .form-group .btn-check:active + .btn-secondary,
      .btn-check:checked + .btn-secondary,
      .btn-secondary.active,
      .btn-secondary:active,
      .show > .btn-secondary.dropdown-toggle  {
         background-color: #339cc2;
      }
      .sweap-module-simpleForm .simpleForm .form-control:focus {
         border-color: #339cc2;
      }
      .sweap-module-form .completeForm .dropdown-item.active,
      .sweap-module-form .completeForm .dropdown-item:active,
      .sweap-module-simpleForm .simpleForm .dropdown-item.active,
      .sweap-module-simpleForm .simpleForm .dropdown-item:active {
         background-color: #339cc2;
      }

      .sweap-module-simpleForm .simpleForm .form-group input:focus,
      .sweap-module-simpleForm .simpleForm .form-group select:focus,
      .sweap-module-simpleForm .simpleForm .form-group .bootstrap-select .btn.show:focus {
         background-color: #F3F3F3;
         background-color: #339cc233;
      }
      .sweap-module-simpleForm .simpleForm .sweap_payment .sweap_payment--total .sweap_payment--total-finalPrice svg path{
         fill: #339cc2; 
      }
      .sweap-module-simpleForm .simpleForm .sweap_payment .sweap_payment--total .sweap_payment--total-finalPrice svg:hover path{
         fill: #246d88; 
      }
      .sweap-module-form .completeForm .checkbox input[type="checkbox"],
      .sweap-module-form .completeForm .radio input[type="radio"],
      .sweap-module-simpleForm .simpleForm .checkbox input[type="checkbox"],
      .sweap-module-simpleForm .simpleForm .radio input[type="radio"] {
         accent-color: #339cc2;
      }
      .sweap-module-form .completeForm .form-check-input:checked,
      .sweap-module-simpleForm .simpleForm .form-check-input:checked {
         background-color: #339cc2!important;
         border-color: #339cc2!important;
      }
      /* Gallery */
      .tz-gallery .lightbox:after,.tz-galleryMasonry .lightbox:after {
         background-color: #246d88;
      }

      /* Speakers */
      .speaker .speaker-img a img:hover {
         border-color: #339cc2!important;
      }

      /* Media */
      .media:after {
         background-color: #246d88;
      }
      /* Navbar  */
      .navbar-custom .nav-link.active {
         color: #339cc2;
      }
      .hamburger-toggle .hamburger span {
         background: #339cc2;
      }

      /* FAQ */
      .faq .accordion-button:hover {
         background-color: #246d88;
      }
      .faq .accordion-button:not(.collapsed) {
         border-bottom: 4px solid #339cc2;
         color: #339cc2;
      }

      .faq .accordion-button:not(.collapsed)::after {
         color: #339cc2;
      }
      .faq .accordion-button.collapsed::after {
         color: #339cc2;
      }
      /* popupForm */
      .sweap-module-popupForm #popupFormModal .modal-content--form__navbar .nav-link.current,
      .sweap-module-popupForm #popupFormModal .modal-content--form__navbar .nav-link.navCountItem {
         color: #339cc2;
      }
      .sweap-module-popupForm .popupForm__wrapper form .ticket-category .card.card-highlight {
         border: 2px solid #339cc2;
         background-color: #339cc21A;
      }
      .sweap-module-popupForm #popupFormModal .payment-error--buttons__cancel {
         color: #339cc2;
      }
      </style>

      
         
            <style>
               /* Setting */
b, strong {
  font-weight: bold;
}

.sweap-section,.sweap-module {
  scroll-margin-top: 80px;
}

.sweap-module .sweap-module-wrapper {
  padding-top: 45px;
  padding-bottom: 45px;
}

.sweap-preserve-white-space {
  white-space: pre-wrap;
}

/* tempus-dominus-picker Date Time */
.tempus-dominus-picker .input-group-text {
  position: absolute;
  right: 0;
  background: transparent;
  border: 0;
  top: 50%;
  transform: translate(0%, -50%);
  cursor: pointer;
}

.tempus-dominus-picker:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating) {
  border-top-right-radius: 5px;
  border-bottom-right-radius: 5px;
}

.was-validated :invalid~.tempus-dominus-picker--icon {
  top: 20px;
}
/* 
Fix mobile firefox form validation 
https://developer.mozilla.org/en-US/docs/Web/CSS/:user-invalid
*/
@media only screen and (max-device-width: 480px) {  
    input:user-invalid {
      border: 2px solid #ff0d0d!important;
    }
    
    input:user-invalid + span::after {
      content: "✖";
      color: #ff0d0d;
    }
}

/* Draft banner */
.sweap-draft--banner {
  background-color: #FCF9CF;
  height: auto;
  min-height: 47px;
}

.sweap-draft--txt-section {
  color: #303030;
  font-size: 14px;
  padding: 15px 28px;
}

.sweap-draft--icon {
  margin-bottom: 2px;
}

.sweap-draft--link {
  color: #339cc2;
}
.sweap-draft--link:hover {
  color: #246d88;
}

@media (max-width: 992px) {
  .sweap-draft--txt-section {
    padding: 15px;
  }
}

/* Navbar */
.navbar {
  padding-top: 1.2rem;
  padding-bottom: 1.2rem;
  min-height: 80px;
}
.navbar-expand-lg .navbar-nav .nav-link {
  padding-right: 1rem;
  padding-left: 1rem;
}
.navbar-toggler {
  border: none;
  padding: 0;
  outline: none;
}
.navbar-toggler:focus {
  box-shadow: none;
}

.navbar-brand img {
  max-height: 40px;
  width: auto;
}

.navbar-nav .nav-link:last-of-type {
  padding-right: 0;
}

.navbar-custom .nav-link {
  color: #212529;
  text-transform: uppercase;
  font-weight: 600;
}

.hamburger-toggle {
  position: relative;
  display: inline-block;
  width: 50px;
  height: 50px;
  z-index: 11;
  float: right;
}
.hamburger-toggle .hamburger {
  position: absolute;
  transform: translate(-50%, -50%) rotate(0deg);
  left: 50%;
  top: 50%;
  width: 50%;
  height: 50%;
  pointer-events: none;
}
.hamburger-toggle .hamburger span {
  width: 100%;
  height: 4px;
  position: absolute;
  border-radius: 2px;
  z-index: 1;
  transition: transform 0.2s cubic-bezier(0.77, 0.2, 0.05, 1),
    background 0.2s cubic-bezier(0.77, 0.2, 0.05, 1), all 0.2s ease-in-out;
  left: 0px;
}
.hamburger-toggle .hamburger span:first-child {
  top: 10%;
  transform-origin: 50% 50%;
  transform: translate(0% -50%) !important;
}
.hamburger-toggle .hamburger span:nth-child(2) {
  top: 50%;
  transform: translate(0, -50%);
}
.hamburger-toggle .hamburger span:last-child {
  left: 0px;
  top: auto;
  bottom: 10%;
  transform-origin: 50% 50%;
}
.hamburger-toggle .hamburger.active span {
  position: absolute;
  margin: 0;
}
.hamburger-toggle .hamburger.active span:first-child {
  top: 45%;
  transform: rotate(45deg);
}
.hamburger-toggle .hamburger.active span:nth-child(2) {
  left: 50%;
  width: 0px;
}
.hamburger-toggle .hamburger.active span:last-child {
  top: 45%;
  transform: rotate(-45deg);
}

/* Form notification */
.sweap__toast {
  padding: 15px 18px;
  color: #303030;
}
.sweap__toast .btn-close {
  color: #303030;
  min-width: 14px;
}
.sweap__toast .toast-body {
  word-break: break-word;
}

/* Form Direct Confirmation*/
#sweap-direct-confirmation-dialog {
  position: fixed; 
  top: 0; 
  left: 0; 
  width: 100%; 
  height: 100%; 
  background-color: rgba(0, 0, 0, 0.7); 
  display: flex; 
  justify-content: center; 
  align-items: center; 
  z-index: 1040;
}

#sweap-direct-confirmation-dialog  .sweap-direct-confirmation-dialog-inner {
  width: 400px; 
  min-height: 160px;
  height: initial !important;
  background-color: white; 
  border: 1px solid black; 
  border-radius: 4px; 
  padding: 20px; 
  display: flex; 
  flex-direction: column; 
  justify-content: space-between;
}
#sweap-direct-confirmation-dialog  .sweap-direct-confirmation-dialog-inner h3 {
  margin-top: 0;
}
            </style>
         
            <style>
               .sweap-module-simpleForm .simpleForm {
  -webkit-transition: all 0.8s ease;
  -o-transition: all 0.8s ease;
  transition: all 0.8s ease;
  color: #303030;
}

.sweap-module-simpleForm .simpleForm .form-control::-webkit-input-placeholder { /* WebKit, Blink, Edge */
  color: #747474;
}
.sweap-module-simpleForm .simpleForm .form-control::-moz-placeholder { /* Mozilla Firefox 19+ */
 color: #747474;
 opacity: 1;
}
.sweap-module-simpleForm .simpleForm .form-control::-ms-input-placeholder { /* Internet Explorer 10-11 */
 color: #747474;
}
.sweap-module-simpleForm .simpleForm .form-control::-ms-input-placeholder { /* Microsoft Edge */
 color: #747474;
}

.sweap-module-simpleForm .simpleForm .form-control::placeholder { /* Most modern browsers support this now. */
 color: #747474;
}

.sweap-module-simpleForm .simpleForm .form-group {
  margin-bottom: 15px;
}
.sweap-module-simpleForm .simpleForm .form-group select {
  border: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  -ms-appearance: none;
}
.sweap-module-simpleForm .simpleForm .form-group label {
  font-weight: normal;
  font-size: 0.875rem;
  color: #6A6A6A;
}
.sweap-module-simpleForm .simpleForm .form-group label.btn-secondary {
  background-color: transparent;
  color: #b8b8b8;
  border-color: #b8b8b8;
  font-size: 14px;
  font-weight: 500;
}
.sweap-module-simpleForm .simpleForm .form-group label.btn-secondary:hover {
  color: #fff;
}
.sweap-module-simpleForm .simpleForm .form-group .btn-check:active + .btn-secondary,
.sweap-module-simpleForm .simpleForm  .btn-check:checked + .btn-secondary,
.sweap-module-simpleForm .simpleForm  .btn-secondary.active,
.sweap-module-simpleForm .simpleForm  .btn-secondary:active,
.sweap-module-simpleForm .simpleForm  .show > .btn-secondary.dropdown-toggle {
  color: #fff;
  border-color: #b8b8b8;
}
.sweap-module-simpleForm .simpleForm  .btn-check:active + .btn-secondary:focus,
.sweap-module-simpleForm .simpleForm  .btn-check:checked + .btn-secondary:focus,
.sweap-module-simpleForm .simpleForm  .btn-secondary.active:focus,
.sweap-module-simpleForm .simpleForm  .btn-secondary:active:focus,
.sweap-module-simpleForm .simpleForm  .show > .btn-secondary.dropdown-toggle:focus {
  box-shadow: none;
}
.sweap-module-simpleForm .simpleForm .form-group input,
.sweap-module-simpleForm .simpleForm .form-group select,
.sweap-module-simpleForm .simpleForm .form-group textarea {
  border: 0;
  background-color: #eaeaea;
  color: #303030;
  box-shadow: none;
  padding-left: 8px;
  border-radius: 5px;
  box-shadow: none;
  transition: all 0.15s ease;
}
.sweap-module-simpleForm .simpleForm .form-group input:focus,
.sweap-module-simpleForm .simpleForm .form-group select:focus,
.sweap-module-simpleForm .simpleForm .bootstrap-select .btn.show {
  box-shadow: none;
  padding-left: 8px;
}
.sweap-module-simpleForm .simpleForm  .form-control.is-valid, 
.sweap-module-simpleForm .simpleForm  .was-validated .form-control:valid {
  background-image: none;
}
.sweap-module-simpleForm .simpleForm  .form-control.is-valid:focus, 
.sweap-module-simpleForm .simpleForm  .was-validated .form-control:valid:focus {
  box-shadow: none;
}
.sweap-module-simpleForm .simpleForm  .form-control.is-invalid, 
.sweap-module-simpleForm .simpleForm .was-validated .form-control:invalid {
  background-image: none;
  background-color: #f2dede;
}
.sweap-module-simpleForm .simpleForm .bootstrap-select.is-invalid .dropdown-toggle, 
.sweap-module-simpleForm .simpleForm .error .bootstrap-select .dropdown-toggle, 
.sweap-module-simpleForm .simpleForm .has-error .bootstrap-select .dropdown-toggle, 
.sweap-module-simpleForm .simpleForm .was-validated .bootstrap-select select:invalid+.dropdown-toggle {
  background-color: #f2dede;
}
.sweap-module-simpleForm .simpleForm .form-check-input.is-invalid, 
.sweap-module-simpleForm .simpleForm  .was-validated .form-check-input:invalid {
  background-color: #f2dede;
}

.sweap-module-simpleForm .simpleForm .form-group input::placeholder,
.sweap-module-simpleForm .simpleForm .form-group select::placeholder {
  color: #9c9c9c;
}

.sweap-module-simpleForm .simpleForm .form-control:focus {
  outline: 0;
  box-shadow: none;
  color: #303030;
}

.sweap-module-simpleForm .simpleForm .form-control:-moz-placeholder {
  color: #cccccc;
  opacity: 1;
}

.sweap-module-simpleForm .simpleForm .form-control::-moz-placeholder {
  color: #cccccc;
  opacity: 1;
}

.sweap-module-simpleForm .simpleForm .form-control:-ms-input-placeholder {
  color: #cccccc;
}

.sweap-module-simpleForm .simpleForm .form-control::-webkit-input-placeholder {
  color: #cccccc;
}

.sweap-module-simpleForm .simpleForm a {
  text-decoration: underline;
}

.sweap-module-simpleForm .simpleForm .lead {
  color: #303030;
}

.sweap-module-simpleForm .simpleForm  .form-group .radio:first-of-type,
.sweap-module-simpleForm .simpleForm  .form-group .checkbox:first-of-type {
  margin-top: 0px;
}

.sweap-module-simpleForm .simpleForm .bootstrap-select .btn {
  min-height: 37px;
  border: 0;
  background-color: #eaeaea;
  color: #303030;
  outline: none;
  box-shadow: none;
}

.sweap-module-simpleForm .simpleForm  .form-group .dropdown-menu > .disabled > a,
.sweap-module-simpleForm .simpleForm  .dropdown-menu > .disabled > a:focus,
.sweap-module-simpleForm .simpleForm  .dropdown-menu > .disabled > a:hover {
  opacity: 0.3;
}

.sweap-module-simpleForm .simpleForm .btn-custom-accept,
.sweap-module-simpleForm .simpleForm .btn-custom-decline,
.sweap-module-simpleForm .simpleForm .btn-custom-code  {
  width: 100%;
}
.sweap-module-simpleForm .simpleForm .btn-custom-accept:hover,
.sweap-module-simpleForm .simpleForm .btn-custom-accept:active,
.sweap-module-simpleForm .simpleForm .btn-custom-decline:hover,
.sweap-module-simpleForm .simpleForm .btn-custom-decline:active
.sweap-module-simpleForm .simpleForm .btn-custom-code:hover,
.sweap-module-simpleForm .simpleForm .btn-custom-code:active {
  background-color: #ffffff;
  -webkit-transition: all 0.5s ease;
  -o-transition: all 0.5s ease;
  transition: all 0.5s ease;
  border-color: #e0e0e0;
}

.sweap-module-simpleForm .simpleForm .btn-custom-link {
  color: #333333;
  background-color: #ffffff;
  border-color: #cccccc;
  display: block;
  width: 100%;
}

.sweap-module-simpleForm .simpleForm .btn-custom-link:hover,
.sweap-module-simpleForm .simpleForm .btn-custom-link:focus,
.sweap-module-simpleForm .simpleForm .btn-custom-link:active,
.sweap-module-simpleForm .simpleForm .btn-custom-link.active {
  color: #333333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
            </style>
         
            <style>
               .sweap-module-hero .hero {
  display: flex;
  position: relative;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin: 0 auto;
  color: #fff;
}

.sweap-module-hero .hero:after {
  z-index: 0;
  position: absolute;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.4);
  content: '';
}
.sweap-module-hero .hero__noOverlay:after {
  content: none;
}
.sweap-module-hero .hero__image-wrapper {
  display: flex;
  width: 100%;
  height: 100%;
}

.sweap-module-hero .hero__image {
  width: 100%;
  object-fit: cover;
}
/* IE10+ CSS style */
@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
  .sweap-module-hero .hero__image {
    min-width: 100%;
    height: auto;
    min-height: 100%;
  }
}
.sweap-module-hero .hero__text {
  z-index: 1;
  padding-top: 10px;
  padding-bottom: 10px;
}
.sweap-module-hero .hero__text-overlay {
  background-color: rgba(0, 0, 0, 0.4);
}

.sweap-module-hero .hero__eventSeries--badge {
  font-size: 18px;
  color: #303030;
  background-color: #F3F3F3;
}
            </style>
         
            <style>
               .countdownWrapper {
  padding: 60px 0;
}

.countdownWrapper .count-digits {
  text-align: center;
  margin-left: 10px;
  margin-right: 10px;
}

.countdownWrapper .count-digits p {
  margin: 0 auto 15px;
  border-radius: 50%;
  border: 4px solid #F3F3F3;
  font-weight: 300;
  font-size: 40px;
  width:calc(100vw / 12);
  height:calc(100vw / 12);
  max-height: 150px;
  max-width: 150px;
  display: flex;
  align-items: center;
  justify-content: center;  
}

/* ----------- Non-Retina Screens ----------- */
@media screen 
  and (min-device-width: 1200px) 
  and (max-device-width: 1600px) 
  and (-webkit-min-device-pixel-ratio: 1) { 
    .countdownWrapper .count-digits p {
      border: 4px solid #ECECEC;
    }
}

@media (max-width: 992px) {
  .countdownWrapper .count-digits p {
    font-size: 35px;
    width:calc(100vw / 8);
    height:calc(100vw / 8);
  }
}

@media (max-width: 768px) {
  .countdownWrapper .count-digits {
    text-align: center;
    margin-left: 5px;
    margin-right: 5px;
  }
  .countdownWrapper .count-digits p {
    margin: 0 auto 5px;
    font-size: 25px;
    width:calc(100vw / 6);
    height:calc(100vw / 6);
  }
  .countdownWrapper .count-digits .lead {
    font-size: 1rem;
  }
}

@media (min-width: 920px) and (max-width: 1199px) {
  .countdownWrapper .btn-empty-inverse {
    min-width: 46px;
  }
}

@media (min-width: 1200px) {
  .countdownWrapper .btn-empty-inverse {
    min-width: 60px;
  }
}

.countdownWrapper .atcb_button {
  background: #fff;
  border: none;
  border-radius: 5px;
}
.countdownWrapper .atcb_button .atcb_icon {
  display: flex;
  margin-bottom: 0;
}
.countdownWrapper .btn-empty-inverse-social {
  min-width: 60px;
}

.countdownWrapper .btn-empty-inverse:hover,
.countdownWrapper .btn-empty-inverse:active,
.countdownWrapper .btn-empty-inverse:focus {
  background-color: rgba(0, 0, 0, 0.1);
  -webkit-transition: all 0.5s ease;
  -o-transition: all 0.5s ease;
  -moz-transition: all 0.5s ease;
  transition: all 0.5s ease;
}
.originalColors .face-ico {
  color: #3b5998;
}
.originalColors .x-twitte-ico {
  color: #000;
}
.originalColors .linkedin-ico {
  color: #4875b4;
}
.originalColors .instagram-ico {
  color: #f09433;
}
.originalColors .xing-ico {
  color: #126567;
}
.originalColors .youtube-ico {
  color: #b31217;
}
.originalColors .tiktok-ico {
  color: #000000;
}
            </style>
         
      

      
   <style id="atcb-global-style">.atcb-modal-no-scroll { overflow-y: hidden !important; -webkit-overflow-scrolling: touch; } body.atcb-modal-no-scroll { padding-right: 10px; }</style></head>
   <body class="remove-scroll d-flex flex-column h-100" data-bs-offset="80" data-bs-spy="scroll" data-bs-target="#sweap_scrollSpy">
      <div class="toast-container position-fixed top-0 end-0 p-3" style="z-index: 1031;"></div>
      <!--/* begin header */-->
      
      <!--/* brand navbar */-->
      <div class="fixed-top">
      
      <nav class="navbar navbar-expand-lg bg-light">
           

            <div class="container">
               
               <div>
                  
                  <a class="navbar-brand px-0 mb-1 mb-sm-0 d-inline-block d-sm-inline" href="#"><img src="https://cdn.sweap.io/afs-dev/e569e705-3665-45eb-a2e4-2bd732e156a8/9c2ca8df-0c4b-4c74-9747-2b29da710aca.png" alt=""></a>
                  
               </div>
               

               

               
                  
               
               
                  <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
                     <div class="hamburger-toggle">
                        <div class="hamburger">
                        <span></span>
                        <span></span>
                        <span></span>
                        </div>
                     </div>
                  </button>
               

               <div class="collapse navbar-collapse flex-grow-0" id="navbarNavAltMarkup">
                  <div class="navbar-nav navbar-custom me-auto my-2 my-lg-0" id="sweap_scrollSpy">
                     

                        
                           
                           
                        
                           
                           
                        
                           
                           
                        
                           
                           
                        
                        
                           
                              <a class="nav-link active" href="#sweap-section-section_1">
                                 
                                 [ดูสด] ทองประกายแสด EP.21 (ตอนที่ 21) ตอนแรก เต็ม เรื่อง ดูงฟรีออนไลน์ iQiyi, One 31
                              </a>
                           
                        

                        
                           
                           
                        
                        
                           
                              <a class=" nav-link" href="#sweap-section-section_3">
                                 
                                 Other
                              </a>
                           
                        </div>
               </div>
            </div>
      </nav>
      </div>
         <!--/* end navbar */-->
      <!--/* end header */-->

      <!--/* begin content */-->
      <main class="flex-shrink-0">
      
      
      <!-- start section section_1 -->
      <div id="sweap-section-section_1" class="sweap-section section-wrapper">
         
         <!-- start module hero_kkj -->
         <div id="sweap-module-hero_kkj" class="sweap-module sweap-module-hero" style="margin-top: 0px;">
            
  

  




<div class="hero sweap-module-wrapper remove-top-margin 
  
  " style="min-height:500px;">
  <div class="hero__image-wrapper position-absolute" style="
    min-height:500px;">

    <img class=" hero__image" src="https://cdn.sweap.io/afs/affcc156-c830-47f8-9e5e-68fa15ae6b89/b7b69b1d-1329-43a8-8dba-5ee9b0c28cbc.png" alt="">
    

  </div>
    <div class="container hero__text 
      
      ">
      <div class="row">
        <div class="col">
              
            
              <h1 style="">[ดูสด] ทองประกายแสด EP.21 (ตอนที่ 21) ตอนแรก เต็ม เรื่อง ดูงฟรีออนไลน์ iQiyi, One 31</h1>
              
            
        </div>
      </div>
    </div>
</div>

         </div>
         <!-- end module hero_kkj -->
         
         <!-- start module textEditor_1 -->
         <div id="sweap-module-textEditor_1" class="sweap-module sweap-module-textEditor">
            <div class="textEditor sweap-module-wrapper " style="
  ">
  <div class="container">
    <div class="section-heading">

      

      
      <div class="lead"><p style="font-style:normal;text-align:center;"><span style="font-size:200%;"><strong>[ดูสด] ทองประกายแสด EP.21 (ตอนที่ 21) ตอนแรก เต็ม เรื่อง ดูงฟรีออนไลน์ iQiyi, One 31</strong></span></p><p style="text-align:center;">[ดูสด] ทองประกายแสด EP.21 (ตอนที่ 21) ตอนแรก เต็ม เรื่อง ดูงฟรีออนไลน์ iQiyi, One 31</p><p style="text-align:center;">&nbsp;</p><p style="text-align:center;"><strong>🎬▶คลิกที่นี่เพื่อดู </strong><a href="https://t.co/ItoUrypdJE" target="_blank" rel="noopener noreferrer"><strong>=&gt; &nbsp;ทองประกายแสด EP.21 ตอนที่ 21 ฟรี ซับไทย ✔️</strong></a></p><p style="text-align:center;">&nbsp;</p><p style="text-align:center;">[ดูสด] ทองประกายแสด EP.21 (ตอนที่ 21) ตอนแรก เต็มเรื่อง ดูฟรีออนไลน์บน iQIYI และ One 31</p><p style="text-align:center;">แฟน ๆ ของละครไทย "ทองประกายแสด" สามารถติดตามตอนที่ 21 ซึ่งเป็นหนึ่งในตอนที่เข้มข้นและเต็มไปด้วยดราม่า โดยเนื้อเรื่องใน EP.21 จะนำเสนอเรื่องราวที่พัฒนาไปไกลและนำผู้ชมเข้าสู่ความซับซ้อนของชีวิตและความรักของตัวละครหลัก ทองประกาย ละครเรื่องนี้ออกอากาศทางช่อง One 31 และสามารถรับชมแบบออนไลน์ผ่านแพลตฟอร์ม iQIYI ได้ด้วย</p><p style="text-align:center;">วิธีการรับชมสดออนไลน์<br>One 31: คุณสามารถดู ทองประกายแสด EP.21 สดได้ทางช่อง One 31 ตามเวลาที่กำหนด โดยไม่ต้องเสียค่าใช้จ่าย เพียงแค่เปิดทีวีหรือแอปพลิเคชันของ One 31 และติดตามการออกอากาศได้แบบสด ๆ</p><p style="text-align:center;">iQIYI: สำหรับผู้ที่ต้องการดูแบบออนไลน์ผ่านมือถือหรือคอมพิวเตอร์ สามารถดู ทองประกายแสด EP.21 ได้ทางแพลตฟอร์ม iQIYI ซึ่งมีการสตรีมมิ่งละครไทยอย่างครบถ้วน คุณสามารถดูย้อนหลังได้เช่นกันหากพลาดการรับชมสด</p><p style="text-align:center;">&nbsp;</p></div>
      
    </div>
  </div>
</div>

         </div>
         <!-- end module textEditor_1 -->
         
         <!-- start module simpleForm_trz -->
         <div id="sweap-module-simpleForm_trz" class="sweap-module sweap-module-simpleForm">
            <div class="container sweap-module-wrapper">
  <div class="row">
    <div class="col simpleForm">

    
    <div>
				
				<form method="post" accept-charset="utf-8" class="public-registration-form active__formMultiSubmitPreventer needs-validation" id="register_form" novalidate="">
					
					
					
					<div class="row">
						
						
	<div class="col-sm-6" id="form_first_name__wrapper">
		<div class="form-group" id="register_form_group_0_0">
			<label class="control-label" for="form_first_name">First name: *</label>

			
			

			
			

			
			

			
			


			
			

			
			

			
			

			
			

			
			

			
			

			
			

			
			

			
			

			
			
				<input type="text" name="defaultAttributes[FIRST_NAME]" id="form_first_name" value="" class="form-control" required="required">
				
				<div class="invalid-feedback">This field is required or invalid. Please provide a valid input.</div>
			

			
			
		</div>
	</div>
	<div class="col-sm-6" id="form_last_name__wrapper">
		<div class="form-group" id="register_form_group_0_1">
			<label class="control-label" for="form_last_name">Last name: *</label>

			
			

			
			

			
			

			
			


			
			

			
			

			
			

			
			

			
			

			
			

			
			

			
			

			
			

			
			
				<input type="text" name="defaultAttributes[LAST_NAME]" id="form_last_name" value="" class="form-control" required="required">
				
				<div class="invalid-feedback">This field is required or invalid. Please provide a valid input.</div>
			

			
			
		</div>
	</div>

					</div>
					<div class="row">
						
						
	<div class="col-sm-6" id="form_email__wrapper">
		<div class="form-group" id="register_form_group_1_0">
			<label class="control-label" for="form_email">Email: *</label>

			
			

			
			

			
			

			
			


			
			

			
			

			
			

			
			

			
			

			
			

			
			

			
			

			
			

			
			
				<input type="email" name="defaultAttributes[EMAIL]" id="form_email" value="" class="form-control" required="required">
				
				<div class="invalid-feedback">This field is required or invalid. Please provide a valid input.</div>
			

			
			
		</div>
	</div>

					</div>
					<div class="row">
						
						
	<div class="col-sm-12" id="form_required_text__wrapper">
		<div class="form-group" id="register_form_group_2_0">
			

			
			

			
			

			
			

			
			


			
			

			
			

			
			

			
			

			
			

			
			<p class="form-control-static" id="form_required_text">The fields marked with * are required.</p>

			
			

			
			

			
			

			
			

			
			
		</div>
	</div>

					</div>
					<div class="row">
						
						
	<div class="col-sm-12" id="form_privacy_statement__wrapper">
		<div class="form-group" id="register_form_group_3_0">
			

			
			

			
			

			
			

			
			


			
			

			
			

			
			

			
			

			
			

			
			

			
			<div id="form_privacy_statement">
				<div class="checkbox form-check">
					<input class="form-check-input" type="checkbox" name="privacyStatementApproval" id="form_privacy_statement_checkbox" value="true" required="required">
					<label for="form_privacy_statement_checkbox">
						<span>
							<span>By registering, you accept the terms of our Privacy Policy.</span> <a href="https://www.sweap.io" target="_blank">Details&nbsp;<i class="fa fa-external-link" aria-hidden="true"></i></a>
						</span>
					</label>
					<div class="invalid-feedback">This field is required or invalid. Please provide a valid input.</div>
				</div>
			</div>

			
			

			
			

			
			

			
			
		</div>
	</div>

					</div>
					<div class="row">
						
						
	<div class="col-sm-6" id="form_accept_button__wrapper">
		<div class="form-group" id="register_form_group_4_0">
			

			
			

			
			

			
			

			
			


			
			

			
			

			
			

			
			<button type="submit" name="invitationState" id="form_accept_button" value="ACCEPTED" class="btn btn-empty btn-block btn-custom-accept">ACCEPT</button>

			
			

			
			

			
			

			
			

			
			

			
			

			
			
		</div>
	</div>

					</div>
					
				</form>

				
				
				<script>
				// form submissions if there are invalid fields
				(function() {
				  // Fetch the form we want to apply custom Bootstrap validation styles to
				  const form = document.querySelector('#register_form');

				  // Check if the form element exists
				  if (form) {
					// Add submit event listener to the form
					form.addEventListener('submit', function(event) {
					  if (!form.checkValidity()) {
						event.preventDefault();
						event.stopPropagation();
					  }
					  form.classList.add('was-validated');
					}, false);
				  }
				})();
				</script>
				<script>
				if (!window.formSubmitEventIsLoaded) {
					window.formSubmitEventIsLoaded = true;
					document.addEventListener('DOMContentLoaded', function() {
						let forms = document.querySelectorAll('.active__formMultiSubmitPreventer');

						forms.forEach(form => {
							var isSubmitting = false;

							form.addEventListener("submit", (event) => {
								let submitter = event.submitter;

								if (isSubmitting == true) {
									event.preventDefault();
									event.stopPropagation();
									return false;
								}

								isSubmitting = true;
								
								var clickedButton = event.submitter;
								clickedButton.innerHTML += '<span class="spinner-grow spinner-grow-sm ms-1" role="status" aria-hidden="true"></span>';
								let buttons = this.querySelectorAll('button[type=submit]');
								buttons.forEach(button => {
									button.style.pointerEvents = "none";
									button.style.opacity = "0.5";
									button.setAttribute('tabindex', -1)
									/*[-
									 *
									 * Use 'aria-disabled' instead of 'disabled' for the submit button as the latter prevents 'invitationState=ACCEPTED' from being passed.
									 * 'aria-disabled' visually indicates the button is disabled while allowing 'invitationState' to be submitted correctly.
									 *
									 * -]*/
									button.setAttribute('aria-disabled', true);
								});

								setTimeout(function() {
									clickedButton.querySelector('.spinner-grow').remove();
									buttons.forEach(button => {
										button.style.pointerEvents = "auto";
										button.style.opacity = "1";
										button.removeAttribute('aria-disabled');
										button.removeAttribute('disabled');
										button.removeAttribute('tabindex');
									});
									isSubmitting = false;
								}, 2.0 * 1000);

								// Check if the device width is below a certain threshold (e.g., 768 pixels, which is a common breakpoint for mobile devices)
								if (window.innerWidth < 768) {
									// Select all invalid form elements
									let validationErrors = form.querySelectorAll(':invalid');

									if (validationErrors.length) {

									    // Try to fetch the height of the navbar dynamically using .sweap-navbar class
										let navbarElement = document.querySelector('.sweap-navbar');
										let navbarHeight = navbarElement ? navbarElement.offsetHeight + 20 : 120;

										// Get the Y-coordinate of the first validation error
										let errorY = validationErrors[0].getBoundingClientRect().top + window.scrollY;

										// Subtract the height of the navbar from the Y-coordinate
										let adjustedErrorY = errorY - navbarHeight;

										// Scroll to the adjusted Y-coordinate with smooth behavior
										window.scrollTo({ top: adjustedErrorY, behavior: 'smooth' });
									}
								}
								
								return true;
							});
						});
					});
				}
				</script>
			</div>

























</div>
  </div>
</div>

         </div>
         <!-- end module simpleForm_trz -->
         
         <!-- start module countdownModule_vms -->
         <div id="sweap-module-countdownModule_vms" class="sweap-module sweap-module-countdownModule">
            <div class="countdownWrapper sweap-module-wrapper" style="">
  <div class="container">
    <div class="row">
      <!--/* digits */-->
      <div class="col-12 col-lg-8 col">
        <!--/* to start the countdown the only requirement is the data-date attribute */-->
        <div class="d-flex justify-content-center justify-content-lg-between countdownIsDone" id="countdown-countdownModule_vms" data-date="2024-10-23T10:00:00+07:00">
          
          <div class="count-digits mb-3 mb-lg-0">
            <p id="days" style="">0</p>
            <span class="lead"> Days </span>
          </div>
          <div class="count-digits mb-3 mb-lg-0">
            <p id="hours" style="">0</p>
            <span class="lead"> Hours </span>
          </div>
          <div class="count-digits mb-3 mb-lg-0">
            <p id="minutes" style="">0</p>
            <span class="lead"> Minutes </span>
          </div>
          <div class="count-digits mb-3 mb-lg-0">
            <p id="seconds" style="">0</p>
            <span class="lead"> Seconds </span>
          </div>
        </div>
      </div>
      <div class="col-12 col-lg-4 text-center counter-text ">
        <h3><span style="font-size:100%;">[ดูสด] ทองประกายแสด EP.21 (ตอนที่ 21) ตอนแรก เต็ม เรื่อง ดูงฟรีออนไลน์ iQiyi, One 31</span>
</h3>

        
        <p class="lead counter-text-two">
          October 23, 10:00AM to October 25, 2:00PM (ICT)<br>
        </p>
        
        <!-- Social -->
        

        <!--add-to-calendar-button https://github.com/jekuer/add-to-calendar-button-->
        
          <add-to-calendar-button class="d-block my-0 mx-auto atcb-light" name="[ดูสด] ทองประกายแสด EP.21 (ตอนที่ 21) ตอนแรก เต็ม เรื่อง ดูงฟรีออนไลน์ iQiyi, One 31" description="" label="Add to Calendar" language=" en " options="'Apple','Google','iCal','Microsoft365','MicrosoftTeams','Outlook.com','Yahoo'" location="" startdate="2024-10-23" enddate="2024-10-25" starttime="10:00" endtime="14:00" timezone="Asia/Bangkok" trigger="click" icalfilename="Reminder-Event" atcb-button-id="atcb-btn-1" atcb-last-event="initialization:atcb-btn-1"></add-to-calendar-button>
        
      </div>
    </div>
  </div>
</div>

<script>
  window.addEventListener("DOMContentLoaded", function (event) {
      var countdownConfig = {
        moduleId : "#countdown-countdownModule_vms"
      };
      sweap_countdownModule__init(countdownConfig);
  });
 </script>
         </div>
         <!-- end module countdownModule_vms -->
         
      </div>
      <!-- end section section_1 -->
      
      
      
      <!-- start section section_3 -->
      <div id="sweap-section-section_3" class="sweap-section section-wrapper">
         
         <!-- start module textEditor_2 -->
         <div id="sweap-module-textEditor_2" class="sweap-module sweap-module-textEditor">
            <div class="textEditor sweap-module-wrapper " style="
  ">
  <div class="container">
    <div class="section-heading">

      

      
      <div class="lead"><p style="text-align: center;"><strong>MATE Development GmbH</strong><br>
<span style="font-style:normal; font-weight:400">Rankestraße 9</span><br>
<span style="font-style:normal; font-weight:400">10789 Berlin</span></p>
</div>
      
    </div>
  </div>
</div>

         </div>
         <!-- end module textEditor_2 -->
         
      </div>
      <!-- end section section_3 -->
      
      
      </main>
      <!--/* end content */-->

            
      
      <!--/* begin footer */-->
      <footer id="sweap-footer-only" class="sweap-footer mt-auto py-3">
         
         
         <div class="container-fluid d-flex flex-column justify-content-center align-items-center">
          <div style="font-weight: 400; font-size: 13px; color: #747474">
            Powered by
            <a target="_blank" rel="noopener noreferrer" href="https://sweap.io/?utm_source=product&amp;utm_medium=registration">
              <img src="https://cdn.sweap.io/assets/commons/images/logo/sweap_on_light.svg" alt="Sweap logo" style="height: 30px; padding-left: 5px; padding-bottom: 2px">
            </a>
          </div>
          <p style="font-weight: 400; color: #747474; padding-top: 2px; font-size: 13px;">
            The Event Efficiency Platform
          </p>
        </div>
        
      </footer>
      <!--/* end footer */-->
      

      <script src="https://cdn.sweap.io/assets/commons/libs/jquery-migrate/3.4.0/jquery-migrate-3.4.0.js"></script>
      <script src="https://cdn.sweap.io/assets/commons/libs/bootstrap/5.1.3/js/bootstrap.bundle.min.js"></script>
      <script src="https://cdn.sweap.io/assets/commons/libs/tinycolor/tinycolor.js"></script>
      <script src="https://cdn.sweap.io/assets/commons/libs/[email protected]/bootstrap-select.min.js"></script>
      <!-- Popperjs --> 
      <script src="https://cdn.sweap.io/assets/commons/libs/popperjs/2.11.6/dist/umd/popper.min.js"></script>
      <!-- Tempus Dominus JavaScript -->
      <script src="https://cdn.sweap.io/assets/commons/libs/moment.js/2.29.1/moment-with-locales.min.js"></script>
      <script src="https://cdn.sweap.io/assets/commons/libs/tempus-dominus/6.9.4/dist/js/tempus-dominus.min.js"></script>
      
         
            <script>
               const sweap_notification = (toast_message_source, hideAfter = 12000, autoHide = true) => {
  // Check if the message source is valid
  if (!toast_message_source || toast_message_source.length === 0 || toast_message_source === null) {
    return;
  }

  // Check if the message source is an object and is in the viewport
  if (typeof toast_message_source === "object") {
    const isObjectInViewport = () => {
      const rect = toast_message_source[0].getBoundingClientRect();
      const windowHeight = (window.innerHeight || document.documentElement.clientHeight);
      const windowWidth = (window.innerWidth || document.documentElement.clientWidth);
      const vertInView = (rect.top <= windowHeight) && ((rect.top + rect.height) >= 0);
      const horInView = (rect.left <= windowWidth) && ((rect.left + rect.width) >= 0);
      return (vertInView && horInView);
    };

    if (isObjectInViewport()) {
      return;
    }
  }

  // Determine the toast message
  let toast_message = null;

  if (typeof toast_message_source === "string") {
    toast_message = toast_message_source;
  } else if (typeof toast_message_source === "object" && toast_message_source.length) {
    toast_message = toast_message_source.html();
  }

  // Create the toast HTML template
  let toast_template_html = `
    <div aria-atomic="true" aria-live="assertive" class="sweap__toast toast bg-white sweapPrimaryColor__border" role="alert">
      <div class="d-flex justify-content-between">
          <div class="toast-body lead p-0">
            ${toast_message}
          </div>
          <button type="button" class="btn-close mb-auto m-0 p-0" data-bs-dismiss="toast" aria-label="Close"></button>
      </div>
    </div>
  `;

  // Create the toast element
  const toast_wrapper = document.createElement('template');
  toast_wrapper.innerHTML = toast_template_html.trim();
  const notification = toast_wrapper.content.firstChild;

  // Add the toast to the DOM
  document.querySelector('.toast-container').appendChild(notification);

  // Show the toast if the message is not null
  if (toast_message !== null) {
    new bootstrap.Toast(
      notification,
      {
        autohide: autoHide,
        delay: hideAfter,
        animation: true,
      }
    ).show();
  } else {
    console.log("unknown object: " + toast_message);
  }
};


var firstModule = document.getElementsByClassName('sweap-module')[0];
if (firstModule) {
  var firstChildOfModule = firstModule.firstElementChild;
  if (firstChildOfModule.classList.contains('remove-top-margin')) {
    firstModule.style.marginTop = '0';
  }
}


document.addEventListener('click', function (e) {
  // Hamburger menu
  if (e.target.classList.contains('hamburger-toggle')) {
    e.target.children[0].classList.toggle('active');
  }
});


/**
 * Initialize date and time pickers using the TempusDominus library or provide a fallback
 * to native HTML date and time input elements if TempusDominus is not available.
 */
function sweap_initializeTempusDominus() {
  var dateInputs = document.querySelectorAll(".registration-form-td-datepicker");
  var timeInputs = document.querySelectorAll(".registration-form-td-timepicker");

  // Internal function for fallback to native inputs
  function fallbackToNativeInputs(inputs, inputType) {
    inputs.forEach(function (element) {
      var input = element.querySelector('input');
      if (input) {
        input.type = inputType;
      }

      // Remove the icon
      var icon = element.querySelector('.input-group-text');
      if (icon) {
        icon.remove();
      }
    });
  }

  // Check if TempusDominus is defined
  if (typeof tempusDominus !== 'undefined') {
    dateInputs.forEach(function (input) {
      // Find the associated submit input for datepicker
      const datepickerInput = input.querySelector("[data-td-target]");
      const datepickerSubmitInput = input.querySelector(".datepicker-submit-input");

      let storedDate;
      const picker = new tempusDominus.TempusDominus(input, {
        // Configuration for TempusDominus date picker
        defaultDate: storedDate,
        display: {
          viewMode: "calendar",
          components: {
            decades: true,
            year: true,
            month: true,
            date: true,
            hours: false,
            minutes: false,
            seconds: false
          }
        },
        localization: {
          locale: "en",
          startOfTheWeek: 1,
          format: "MM/dd/yyyy"
        }
      });

      // Set initial date if provided
      if (datepickerInput && datepickerInput.getAttribute('value')) {
        storedDate = moment(datepickerInput.getAttribute('value')).toDate();
        if (moment(storedDate).isValid()) {
          const parsedDate = picker.dates.parseInput(storedDate);
          picker.dates.setValue(parsedDate);
        }
      }

      // Subscribe to the error event
      picker.subscribe(tempusDominus.Namespace.events.error, function (errorEvent) { 
        datepickerInput.setAttribute('value', '');
        // Set the invalid value so it can be submitted to backend validation
        datepickerSubmitInput.setAttribute('value', errorEvent.value);
      });

      // Subscribe to the change event
      picker.subscribe(tempusDominus.Namespace.events.change, function (changeEvent) {
        const selectedDate = changeEvent.date;
        // Parse and format the date using Moment.js
        const formattedDate = moment(selectedDate).format('YYYY-MM-DD');
        
        // Check if datepickerSubmitInput is not null
        if (datepickerSubmitInput && changeEvent.isValid) {
          // Check if the formatted date is valid
          if (moment(formattedDate, 'YYYY-MM-DD', true).isValid()) {
              datepickerSubmitInput.setAttribute('value', formattedDate);
          }
        }
        // Clear input values if datepickerInput is empty
        if (datepickerInput.value.trim() === '') {
            datepickerInput.setAttribute('value', '')
            datepickerSubmitInput.setAttribute('value', '');
        }
      });
    });

    timeInputs.forEach(function (input) {
      new tempusDominus.TempusDominus(input, {
        // Configuration for TempusDominus time picker
        display: {
          viewMode: 'clock',
          components: {
            decades: false,
            year: false,
            month: false,
            date: false,
            hours: true,
            minutes: true,
            seconds: false
          }
        },
        localization: {
          locale: "en",
          format: "HH:mm"
        }
      });
    });
  } else {
    // TempusDominus is not loaded; fall back to native HTML inputs
    fallbackToNativeInputs(dateInputs, 'date');
    fallbackToNativeInputs(timeInputs, 'time');
  }
}

// Call the function to initialize the datetime pickers or provide a fallback
sweap_initializeTempusDominus();
            </script>
            <script>
               var $selectpicker = $('.simpleForm .customSelectpicker');

$selectpicker.selectpicker({
  size: 10,
  showTick: true
});

$selectpicker.on('loaded.bs.select', function(e) {
    $('<div class="invalid-feedback"> This field is required. </div>').insertAfter($(this).closest('.bootstrap-select').find('.dropdown-toggle'));
});
            </script>
            <script>
               function sweap_countdownModule__init(config) {
    var count = $(config.moduleId);
    if ($.fn.countdown && count.length) {
        var countdownDate = moment(count.data('date')).toDate();
        count
        .countdown(countdownDate)
        .on('update.countdown', function (event) {
            var $this = $(this);
            $this.find('p#seconds').html(event.offset.seconds);
            $this.find('p#minutes').html(event.offset.minutes);
            $this.find('p#hours').html(event.offset.hours);
            $this.find('p#days').html(event.offset.totalDays);
        })
        .on('finish.countdown', function (event) {
            var $this = $(this);
            $this.addClass('countdownIsDone');
            $this.find('p#seconds').text('0');
        });
    }
};

            </script>
            <script>
               $(function () { try { $('.registration-form-datepicker').datetimepicker({ format: 'DD.MM.YYYY', extraFormats: ['YYYY-MM-DD'] }); $('.registration-form-timepicker').datetimepicker({ format: 'HH:mm' }); } catch (e) { if (e instanceof TypeError) { $('.registration-form-datepicker').children('input').prop('type', 'date'); $('.registration-form-timepicker').children('input').prop('type', 'time'); } else { throw e; } } });
var errorElement = $('#register_form .has-error :input:visible, #register_form .form-group.has-error .help-block:visible').first(); if (errorElement.length > 0) { $([document.documentElement, document.body]).scrollTop(errorElement.offset().top - 200); errorElement.focus(); }
            </script>
</body></html>