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

ID de exploración:
cd6f8eff-d04d-43b8-90d6-5dbcca6e7533Finalizado
URL enviada:
https://sweapevent.com/thong-pragaaisaet-ep21Redireccionado
Informe finalizado:

Enlaces: 3 encontrados

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

Variables JavaScript: 151 encontradas

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

Mensajes de registro de la consola: 11 encontrados

TipoCategoríaRegistro
logother
URL
https://cdn.sweap.io/assets/commons/libs/jquery-migrate/3.4.0/jquery-migrate-3.4.0.js
Texto
JQMIGRATE: Migrate is installed with logging active, version 3.4.0
errorsecurity
URL
https://sweapevent.com/b?p=thong-pragaaisaet-ep21
Texto
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
Texto
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
Texto
%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
Texto
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
Texto
Failed to load resource: net::ERR_FAILED
errorsecurity
URL
https://sweapevent.com/b?p=thong-pragaaisaet-ep21
Texto
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
Texto
Failed to load resource: net::ERR_FAILED
errorsecurity
URL
https://sweapevent.com/b?p=thong-pragaaisaet-ep21
Texto
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
Texto
Failed to load resource: net::ERR_FAILED
errornetwork
URL
https://sweapevent.com/favicon.ico
Texto
Failed to load resource: the server responded with a status of 404 ()

HTML

<!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>