var campaign, insurerId,
  brand = null,
  model = null,
  year = null,
  mobileNumber = null,
  token = null,
  vehicleKumkaId = null;
var selectBrandId = "#select-brand";
var selectModelId = "#select-model";
var selectYearId = "#select-year";
var insurerIDMap = new Map([
  ["sedan-LMG", ["sedan-LMG", "c7615b27-d2d5-4866-8801-4182795a4abe"]],
  ["sedan-SMK", ["sedan-SMK", "43535e68-068f-4c28-b26f-0b6a4323925c"]],
  ["sedan-Indara", ["sedan-Indara", "ie187095-n14b-4tar-9194-736racdf9a71"]],
  ["cargroup5-Dhipaya", ["cargroup5","be474903-68b9-499b-9985-194d5f45bc68"]],
  ["cargroup5-MTI", ["cargroup5","fe71a09c-dd9c-49c5-a285-5283bc9aa20a"]],
  ["cargroup5-LMG", ["cargroup5","c7615b27-d2d5-4866-8801-4182795a4abe"]],
  ["cargroup-luxury-AXA", ["cargroup-luxury","a99a9454-9d19-4222-a17f-ee8342033db5"]],
  ["cargroup-luxury-Indara", ["cargroup-luxury","ie187095-n14b-4tar-9194-736racdf9a71"]],
  ["cargroup-luxury-MTI", ["cargroup-luxury","fe71a09c-dd9c-49c5-a285-5283bc9aa20a"]],
  ["cargroup-suv-BKI", ["cargroup-suv","ab060fd0-356b-46b6-9ec3-52b6905a48a5"]],
  ["cargroup-suv-AZAY", ["cargroup-suv","37d00865-1522-4e3b-99bc-0476736539b6"]],
  ["cargroup-suv-MTI", ["cargroup-suv","fe71a09c-dd9c-49c5-a285-5283bc9aa20a"]]
]);

function UUID() {
  var dt = new Date().getTime();
  var uuid = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx".replace(/[xy]/g, function (c) {
    var r = (dt + Math.random() * 16) % 16 | 0;
    dt = Math.floor(dt / 16);
    return (c == "x" ? r : (r & 0x3) | 0x8).toString(16);
  });
  return uuid;
}

function getToken() {
  return $.ajax({
    type: "POST",
    url: "https://api.mrkumka.com/api/auth?" + UUID(),
    dataType: "json",
    data: JSON.stringify({
      // upscec: btoa(UUID() + "-cmstest-LJdgpsFgxQuMD4CNfn8O-" + UUID()),
      upscec: btoa(
        UUID() + "-VXRSQc70YjS6hK8je0Tv-ulYxikMA7XXTyOOMzejp-" + UUID()
      ),
      v: "2",
    }),
    headers: {
      "content-type": "application/json; charset=utf-8",
    },
    success: function (response) {
      token = response.token;
      return response.token;
    },
  });
}

function appendSelectOption(id, data) {
  for (value in data) {
    $("#" + id).append(
      `<option class="option-value" value="${data[value]}">${data[value]}</option>`
    );
  }
}

function appendSelectOptionYear(id, data) {
  for (value in data) {
    $("#" + id).append(
      `<option class="option-value" value="${data[value]}">${data[value]} (พ.ศ.${data[value] + 543})</option>`
    );
  }
}

function selectCampaign(template_url, _campaign, _insurerLogo, _premium, _promotion) {
    var delay = 500;
    if(campaign){
        delay = 0;
    }
  campaign = insurerIDMap.get(_campaign)[0];
  insurerId = insurerIDMap.get(_campaign)[1];
  promotion = _promotion;
  mobileNumber = null;
  
  $("#phone-number").val("");
  setTimeout(function(){
    $("#insurer-logo-webp").attr("srcset", template_url + "/assets/img_new/partner/" + _insurerLogo + ".webp");
    $("#insurer-logo-png-srcset").attr("srcset", template_url + "/assets/img_new/partner/" + _insurerLogo + ".png");
    $("#insurer-logo-png-src").attr("src", template_url + "/assets/img_new/partner/" + _insurerLogo + ".png");
    $("#insurer-premium").html("฿" + _premium);
    $("#phone-number").keyup(function () {
        validateForm();
    });
  }, delay);
  
  try {
    $(selectBrandId + " .option-value").remove();
    $('#partner-form').show();
    $('#partner-success').hide();
    
    $.get(
      "https://api.mrkumka.com/api/redbooks?search=brand-campaign&campaign=" +
        campaign,
      function (data) {
        $(selectModelId).prop("disabled", true);
        $(selectYearId).prop("disabled", true);
        $(selectModelId + " .option-value").remove();
        $(selectYearId + " .option-value").remove();
        appendSelectOption("select-brand", data);
        $(selectBrandId).show();
        $("#select-brand-loading").hide();
      }
    );
    brand = null;
    model = null;
    year = null;
    validateForm();
  } catch (error) {
    console.log(error);
  }
}

function selectCarBrand(value) {
  if (token == null) {
    getToken();
  }
  brand = value;
  $(selectModelId).hide();
  $(selectModelId + "-loading").show();
  $.get(
    "https://api.mrkumka.com/api/redbooks?search=model-campaign&campaign=" +
      campaign +
      "&brand=" +
      brand,
    function (data) {
      $(selectYearId).prop("disabled", true);
      $(selectModelId).prop("disabled", false);
      $(selectModelId + " .option-value").remove();
      $(selectYearId + " .option-value").remove();
      appendSelectOption("select-model", data);
      $(selectModelId).show();
      $(selectModelId + "-loading").hide();
    }
  );
  model = null;
  year = null;
  validateForm();
}

function selectCarModel(value) {
  model = value;
  $(selectYearId).hide();
  $(selectYearId + "-loading").show();
  $.get(
    "https://api.mrkumka.com/api/redbooks?search=year-campaign&campaign=" +
      campaign +
      "&brand=" +
      brand +
      "&model=" +
      model,
    function (data) {
      $(selectYearId + " .option-value").remove();
      $(selectYearId).prop("disabled", false);
      appendSelectOptionYear("select-year", data);
      $(selectYearId).show();
      $(selectYearId + "-loading").hide();
    }
  );
  year = null;
  validateForm();
}

function selectCarYear(value) {
  year = value;
  $.get(
    "https://api.mrkumka.com/api/redbooks?search=avg-retail&keyword=" +
      brand +
      "&keyword2=" +
      model +
      "&keyword3=" +
      year +
      "&keyword4=ไม่แน่ใจ",
    function (data) {
      vehicleKumkaId = data.vehicleKumkaId;
    }
    
  );


  validateForm();
}

function numberOnly(evt) {
  var charCode = evt.which ? evt.which : event.keyCode;
  if (charCode > 31 && (charCode < 48 || charCode > 57)) {
    return false;
  } else {
    return true;
  }
}

function validateForm() {
  var value = $("#phone-number").val();
  if (
    value.length == 10 &&
    /^(06|08|09)\d{8}$/.test(value) &&
    brand != null &&
    model != null &&
    year != null
  ) {
    mobileNumber = value;
    $("#partner-callback").prop("disabled", false);
  } else {
    $("#partner-callback").prop("disabled", true);
  }
}

$("#partner-callback").click(async function () {
  var value = $("#phone-number").val();
  if (
    value.length == 10 &&
    /^(06|08|09)\d{8}$/.test(value) &&
    brand != null &&
    model != null &&
    year != null
  ) {
    if (token == null) {
      var response = await getToken();
      token = response.token;
    }

    $.ajax({
      type: "POST",
      url: "https://api.mrkumka.com/api/callMeBack/save",
      dataType: "json",
      data: JSON.stringify({
        clientId: getGoogleClientID(),
        transactionId: UUID(),
        leadPhoneNumber: mobileNumber,
        name: "Facebook campaign telephony",
        brand: brand,
        model: model,
        year: year,
        subModel: "ไม่แน่ใจ",
        dob: "01/01/1985",
        isMale: true,
        isSingle: true,
        yrOfDriving: "6",
        ncbRate: "N",
        noOfClaim: "0",
        postalCode: "20000",
        odoMeter: "",
        carUsage: 2,
        isDashcam: true,
        planType: "1",
        lang: "th",
        excess: 0,
        pricingMin: 0,
        pricingMax: 999999,
        sumInsuredMin: 0,
        sumInsuredMax: 99999999,
        isCompulsoryAvailable: false,
        roadsideAssistance: false,
        installment: false,
        onlinePayment: false,
        driverPlan: 0,
        garage: 0,
        company: [],
        isExcessAll: true,
        leadSource: "Facebook",
        vehicleKumkaId: vehicleKumkaId,
        onlineStage: "CallMeBack",
        onlineScreen: "CMS",
        productType: "MotorCar",
        abTesting: "",
        callMeBackRequest: "Yes",
        insurerId: insurerId,
        promotion: promotion,
      }),
      headers: {
        Authorization: atob(token),
        "content-type": "application/json; charset=utf-8",
      },
      success: function (result) {},
    });
  }
});
