const rootDiv = document.getElementById("root");
const headerTop = document.getElementById("header-top");
const enLang = document.getElementById("en");
const cnLang = document.getElementById("cn");
let currentUrl = window.location.href;
let timerIntval;
let timeoutDraw;
let seconds;

// Set Language
let langApp = sessionStorage.getItem("languageSet");
if (langApp === null || langApp === undefined) {
  sessionStorage.setItem("languageSet", "en");
  langApp = "en";
}

function changePage(newURL, languages) {
  $.ajax({
    type: "GET",
    data: {
      page: newURL,
      lang: languages,
    },
    url: "assets/content.php",
    beforeSend: function () {
      NProgress.start();
      counterTime = null;
      rootDiv.innerHTML =
        '<div class="d-flex justify-content-center my-3"><div class="spinner-border text-danger" role="status"> <span class="visually-hidden">Loading...</span> </div></div>';
    },
    success: function (response) {
      NProgress.done();
      $(rootDiv).html(response);

      const changeLang = document.querySelectorAll(".btn-lang div");
      changeLang.forEach((btns) => {
        btns.addEventListener("click", () => {
          location.reload();
        });
      });

      const desktopNavbar = document.querySelectorAll(".nav-desktop-list li");
      const footerText = document.getElementById("footer-text");
      const paymentText = document.getElementById("payment-text");
      const livedrawBtn = document.getElementById("live-btn");
      const nextDraw = document.getElementById("next-draws");
      const homeM = document.getElementById("home-m");
      const resultM = document.getElementById("result-m");
      const aboutM = document.getElementById("about-m");

      if (langApp == "cn") {
        cnLang.style.color = "#ffc107";
        desktopNavbar[0].innerHTML = '<i class="fas fa-home"></i> Trang chủ';
        desktopNavbar[1].innerHTML = "Kết quả";
        desktopNavbar[2].innerHTML = "Về chúng tôi";
        paymentText.innerHTML = "CHÚNG TÔI CHẤP NHẬN PHƯƠNG THỨC THANH TOÁN: ";
        livedrawBtn.innerHTML = "Bốc thăm trực tiếp VN HÔM NAY";
        homeM.innerHTML = "Trang chủ";
        resultM.innerHTML = "Kết quả";
        aboutM.innerHTML = "Về chúng tôi";
        nextDraw.innerHTML =
          '<i class="fas icon-time fa-hourglass-half"></i>  Lần rút tiếp theo: ';
        footerText.innerHTML =
          '<h1 style="text-align:center;">Xổ số Việt Nam</h1> <p>Chơi ở Việt Nam hoặc từ các nước khác trên thế giới để có cơ hội giành chiến thắng. Việc tham gia rất dễ dàng – chỉ cần chọn bốn số cộng với một Quả bóng may mắn. Tỷ lệ thắng chung cuộc là 1 trên 3</p> <p>Chơi xổ số Việt Nam thật dễ dàng. Khám phá cách tham gia, cho dù bạn muốn chọn số của riêng mình hay chọn Chọn nhanh.</p> <p>Trò chơi xổ số dựa trên cơ hội và chỉ nên chơi để giải trí chứ không phải mục đích đầu tư. Tỷ lệ cược và khoản thanh toán khác nhau tùy theo trò chơi.</p> <hr> <p>Giờ hoạt động của chúng tôi là từ 8 giờ sáng đến 10 giờ tối, từ Thứ Hai đến Chủ Nhật. Tuy nhiên, để biết ngày cụ thể và thông tin chi tiết, vui lòng truy cập trang Liên hệ với chúng tôi. Hiện nay Xổ số Việt Nam chỉ mở cửa cho công chúng nhận thưởng.</p> <p>Ở Việt Nam, bạn phải từ 18 tuổi trở lên mới được chơi các trò chơi như Scratch-it và jackpot như Fireball. Bạn phải từ 21 tuổi trở lên mới được tham gia các hoạt động khác.</p> <p>Lo lắng về việc cờ bạc của chính bạn hoặc của người khác? Liên hệ ngay với chúng tôi <b>+84-563-514-880</b></p> <p class="copyright-text" style="text-align: center;">Copyright © 2024 <a href="/" style="text-decoration: none;color: #ffff00;">Xổ Số Việt Nam</a> . Đã đăng ký Bản quyền. '
          "</p>";
      } else {
        enLang.style.color = "#ffc107";
      }

      const hoursElement = document.getElementById("hour1");
      if (hoursElement != null) {
        // Counter time
        let timeFetchs;
        fetch("assets/components/counter.php")
          .then((response) => response.json())
          .then((jsonData) => {
            timeFetchs = jsonData;
            timeFetchs.forEach((itemtimes) => {
              seconds = parseInt(itemtimes.time);
              timerIntval = setInterval(function () {
                var minutes = Math.floor(seconds / 60);
                var hoursRun = Math.floor(minutes / 60);
                var minutesRun = minutes - hoursRun * 60;
                var remainingHoursRun = hoursRun;
                if (remainingHoursRun < 10) {
                  remainingHoursRun = "0" + remainingHoursRun;
                }
                var remainingMinutesRun = minutesRun;
                if (remainingMinutesRun < 10) {
                  remainingMinutesRun = "0" + remainingMinutesRun;
                }
                var remainingSecondsRun = seconds % 60;
                if (remainingSecondsRun < 10) {
                  remainingSecondsRun = "0" + remainingSecondsRun;
                }
                if (seconds <= 0) {
                  clearInterval(timerIntval);
                  location.reload();
                } else {
                  seconds--;
                  if (remainingHoursRun.toString().length == 2) {
                    var splithour = remainingHoursRun.toString().split("");
                    document.getElementById("hour1").innerHTML = splithour[0];
                    document.getElementById("hour2").innerHTML = splithour[1];
                  } else {
                    document.getElementById("hour1").innerHTML = 0;
                    document.getElementById("hour2").innerHTML =
                      remainingHoursRun;
                  }

                  if (remainingMinutesRun.toString().length == 2) {
                    var splitminute = remainingMinutesRun.toString().split("");
                    document.getElementById("minute1").innerHTML =
                      splitminute[0];
                    document.getElementById("minute2").innerHTML =
                      splitminute[1];
                  } else {
                    document.getElementById("minute1").innerHTML = 0;
                    document.getElementById("minute2").innerHTML =
                      remainingMinutesRun;
                  }

                  if (remainingSecondsRun.toString().length == 2) {
                    var splitsecond = remainingSecondsRun.toString().split("");
                    document.getElementById("second1").innerHTML =
                      splitsecond[0];
                    document.getElementById("second2").innerHTML =
                      splitsecond[1];
                  } else {
                    document.getElementById("second1").innerHTML = 0;
                    document.getElementById("second2").innerHTML =
                      remainingSecondsRun;
                  }
                }
              }, 1000);
            });
          })
          .catch((error) => {
            console.log(error);
          });
      }

      // Results
      const tableResult = document.getElementById("table-result");

      if (tableResult) {
        $("#table-result").DataTable({
          ajax: {
            url: "assets/components/results.php",
            type: "GET",
          },
          order: [[0, "asc"]],
        });
      }

      // Live Draw
      function getLivedraw() {
        timeoutDraw = setInterval(function () {
          $.ajax({
            type: "GET",
            url: "assets/components/live.php",
            data: {
              lang: languages,
            },
            success: function (response) {
              $("#livedraw").html(response);
            },
          });
        }, 1000);
      }

      const getLive = document.getElementById("livedraw");
      if (getLive) {
        getLivedraw();
      }
    },
    error: function () {
      NProgress.done();
      rootDiv.innerHTML = "Something Problem!!";
    },
  });
}

// History Changes
window.addEventListener("popstate", function (event) {
  currentUrl = window.location.href;

  const newUrl = currentUrl.split("/");
  const param = newUrl[newUrl.length - 1];
  if (param === "") {
    changePage("main", langApp);
  } else {
    const newParam = param.replace(/\?page=/, "");
    changePage(newParam, langApp);
  }
});

// Event After Loaded
document.addEventListener("DOMContentLoaded", () => {
  NProgress.start();
  const newUrl = currentUrl.split("/");
  const param = newUrl[newUrl.length - 1];

  if (param === "") {
    changePage("main", langApp);
  } else {
    const newParam = param.replace(/\?page=/, "");
    changePage(newParam, langApp);
  }
});

function pageUrl(urlChange) {
  history.pushState({}, "", "?page=" + urlChange);
  changePage(urlChange, langApp);
  rootDiv.scrollIntoView({
    behavior: "smooth", // Use 'auto' for instant scrolling
  });

  clearInterval(timerIntval);

  if (urlChange != "livedraw") {
    clearInterval(timeoutDraw);
  }

  $("#mobileNavbar").offcanvas("hide");
}

function btnLang(langSets) {
  sessionStorage.setItem("languageSet", langSets);
}
