var checkDevice = {
  affiliateRedirect: true,
  keepRegInfo() {
    var query = new URLSearchParams(window.location.search);
    var affiliateCode = query.get("affiliateCode");
    var referralCode = query.get("r") || query.get("referralCode");
    var regInfo = {};
    if (affiliateCode) {
      regInfo.affiliateCode = affiliateCode;
    }
    if (referralCode) {
      regInfo.referralCode = referralCode;
    }
    if (Object.keys(regInfo).length > 0) {
      window.localStorage.setItem("reg_info", JSON.stringify(regInfo));
    }
  },
  init: function () {
    this.isIE();
    var pathname = window.location.pathname.replace(/^\//, "");
    this.equi(pathname);
  },
  isIE: function () {
    var userAgent = navigator.userAgent; // 取得浏览器的userAgent字符串
    var isOpera = userAgent.indexOf("Opera") > -1; // 判断是否Opera浏览器
    var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera;
    if (isIE) {
      var reIE = new RegExp("MSIE (\\d+\\.\\d+);");
      reIE.test(userAgent);
      var fIEVersion = parseFloat(RegExp["$1"]);
      if (fIEVersion < 10) {
        alert(
          "IE浏览器版本过低，请更新IE浏览器或使用其他浏览器,如果您使用的是搜狗或是360 浏览器，可以尝试切换极速模式"
        );
      }
    }
  },
  equi: function (page) {
    var ua = navigator.userAgent;
    var isWindowsPhone = /(?:Windows Phone)/.test(ua);
    var isSymbian = /(?:SymbianOS)/.test(ua) || isWindowsPhone;
    var isAndroid = /(?:Android)/.test(ua);
    var isFireFox = /(?:Firefox)/.test(ua);
    var isTablet =
      /(?:iPad|PlayBook)/.test(ua) ||
      (isAndroid && !/(?:Mobile)/.test(ua)) ||
      (isFireFox && /(?:Tablet)/.test(ua)) ||
      (window.navigator.platform === "MacIntel" && window.navigator.maxTouchPoints > 1);
    var isPhone = /(?:iPhone)/.test(ua) && !isTablet;
    var isPc = !isPhone && !isAndroid && !isSymbian && !isTablet;

    var hostname = window.location.hostname;
    var sub = hostname.split(".");
    var hasAff = checkDevice.affiliateRedirect && sub.length === 3 && !["www", "preview"].includes(sub[0]); // 非www特殊邏輯
    var redirect = page || "index";
    var query = new URLSearchParams(window.location.search);
    var domain = window.location.origin;
    var queryString = query.toString() ? "?" + query.toString() : "";

    if (checkDevice.affiliateRedirect) {
      if (hasAff) {
        query.set("affiliateCode", sub[0]);
        queryString = query.toString() ? "?" + query.toString() : "";
        domain = window.location.origin.replace("//" + sub[0] + ".", "//www.");
      }
      checkDevice.keepRegInfo();
    }

    var hasRef = query.has("r") || query.has("referralCode");
    if (hasRef) {
      redirect = "register";
    }

    // web redirect
    if (isPc) {
      if (hasAff) {
        window.stop();
        window.location.replace(domain + "/" + (redirect === "index" ? "" : redirect) + queryString);
      }
      if (hasRef && page !== "register") {
        window.stop();
        window.location.replace(domain + "/register" + queryString);
      }
      return;
    }

    // mobile redirect
    window.stop();

    if (redirect === "agent") {
      // 獨立代理中心
      window.location.replace(domain + "/m/" + redirect + queryString);
    } else {
      // 1. 預設跳轉邏輯
      var obj = { index: "/m/index.html", register: "/m/register", promotions: "/m/activity" };
      if (obj[redirect]) {
        window.location.replace(domain + obj[redirect] + queryString);
      } else {
        window.location.replace(domain + "/m/index.html" + queryString);
      }
      // 2. rollbet, h5 & web 路由一樣
      // window.location.replace(domain + "/m/" + redirect + queryString);
    }
  },
};

checkDevice.init();
