//myJQ( document ).ready(function( jQuery ) {  });
jQuery(function ($) {
  var output = "";
  var actualMetod = 0;
  var actualFile = null;
  var formData = new FormData();
  var uploadImage;
  var activeButton = false; 

  var choosenPaymentMethod = jQuery('input[name^="payment_method"]:checked').val();
  jQuery(document).ready(function () {    
    sessionStorage.removeItem('aplication');       
    try {
      jQuery("#app" + (listDetail.length - 1)).attr("checked", false);
      if (choosenPaymentMethod === "pagomov") {     
        jQuery(".place-order button").addClass("nobody_order");
        for (let index = 0; index < listDetail.length; index++) {        
          jQuery("#app" + (listDetail[index].number)).attr("checked", false);        
        }      
      } else {      
        jQuery(".place-order button").prop('disabled', false);
        jQuery(".place-order button").removeClass("nobody_order"); 
        //console.log('defecto');           
      }
    } catch (error) {      
    }
       
  });

  /* SI Se Cambia el metodo de PAGO*/
  jQuery("form.checkout").on("change", 'input[name^="payment_method"]', function () {  
    //console.log('Aca')      
    var choosenPaymentMethod = jQuery('input[name^="payment_method"]:checked').val();    
    if (choosenPaymentMethod === "pagomov") {      
      jQuery(".place-order button").addClass("nobody_order");      
      var metodoActual = sessionStorage.getItem('aplication');      
      if(metodoActual !== null){        
        jQuery("#app"+metodoActual).attr("checked", true);               
      }else{
        if(choosenPaymentMethod === "pagomov"){
          jQuery(".place-order button").prop('disabled', true);        
        }
      }      
    } else {
      if(choosenPaymentMethod === "pagomov"){
        //console.log('pago movil')
      }
      jQuery(".place-order button").prop('disabled', false);
      jQuery(".place-order button").removeClass("nobody_order");
      actualFile = null;
    }
  });

  /*Tratamos a la variable*/
  jQuery("body").on("click", ".nobody_order", function (e) {
    e.preventDefault();
    if (JSON.parse(sessionStorage.getItem("aplication")) > -1) {
      actualMetod = JSON.parse(sessionStorage.getItem("aplication"));
    }
  });

  /*Cambio de aplicacion de pagomovil */
  jQuery("body").on("click", ".app__radio", function (e) {
    //console.log('pagomovil');
    jQuery(".modal-nb__imgInput").removeClass('active');
    jQuery(".modal-nb__imgInput").addClass('disabled');

    jQuery(".place-order button").prop('disabled', false);
    actualMetod = jQuery(this).attr("data-id");
    sessionStorage.setItem("aplication", actualMetod);
    jQuery("#user-file").val("");
    jQuery(".nb-placeholder-text").removeClass("active");
    jQuery(".nb-placeholder-text").html("o suelte los archivos aquí");
    jQuery(".modal-nb__btn-next--checkout").removeClass("enabled");
  });

  jQuery("body").on("change", ".app__radio", function (e) {
    var choosenPaymentMethod = jQuery('input[name^="payment_method"]:checked').val();

    if (choosenPaymentMethod === "pagomov") {
      jQuery(".place-order button").addClass("nobody_order");
    }
    actualMetod = jQuery(this).attr("data-id");
  });

  function getTimeSone() {
    var hours = new Date().getHours();
    var hours = (hours + 24 - 2) % 24;
    var mid = "am";
    if (hours == 0) {
      //At 00 hours we need to show 12 am
      hours = 12;
      return mid;
      
    } else if (hours > 12 && hours !== 0) {
      hours = hours % 12;
      mid = "pm";
    }
    return mid;
  }
  //**************************************FUNCIONES PARA REALIZAR PEDIDO************************************************ */
  /*
        Listener de evento tipo: change
        Target: Input type File
        Class Target: .nb-custom-upload
        Objetivo: Se guarda en una variable la imagen que el usuario cargue al sistema para posteriormente subirla
        parametros: e Type Event (Contiene un arreglo con los archivos que se suban)

    */
   jQuery("body").on("click", ".upload-screenshot__btn.custom-file-upload", function (e) {
      
   });

/* Subida de archivos */
  jQuery("body").on("change", ".nb-custom-upload", function (e) {
    // console.info("prueba");
    if(choosenPaymentMethod !== 'pagomov'){
      jQuery(".place-order button").prop('disabled', false);
    }
    //console.log('subiendo archivo');
    let indexOfApplication = sessionStorage.getItem('aplication');
    var currentUploaded = jQuery('.nb-custom-upload');
    //variable que contendra la imagen
    uploadImage = jQuery(this);
    var disabledBorder = currentUploaded
      .parents(".modal-nb")
      .find(".modal-nb__imgInput");
    var disabledButton = currentUploaded
      .parents(".modal-nb")
      .find(".modal-nb__btn-next");
    var dataColor = '';
    if(indexOfApplication){        
      dataColor = listDetail[indexOfApplication].color;
    }else{
      dataColor = disabledButton.attr("data-color");
    }
    
    //iniciamos esta variable como datos de formulario
    formData = new FormData();

    //Si el evento es de tipo transferencia de archivos
    if (e.dataTransfer) {
      //Igualamos la variable al archivo en tranferencia
      actualFile = e.dataTransfer.files;
    } else if (e.target) {
      //Igualamos al archivo en dragging
      actualFile = e.target.files;
    }
    //Siempre devuelve un array de archivos, lo recorremos

    for (var i = 0; i < actualFile.length; i++) {
    	
      //verificamos si es una imagen lo que se subio
      if (actualFile[i].type.indexOf("image/") === 0) {
        jQuery(".nb-placeholder-text")
          .html(jQuery(this)[0].files[0].name)
          .addClass("active");
        disabledBorder.removeClass("disabled");
        disabledBorder.addClass("active");
        jQuery("body").get(0).style.setProperty("--app-color", dataColor);
        disabledButton.removeClass("disabled");
        disabledButton.addClass("active");
        disabledButton.prop("disabled", false);

        jQuery(".loader").addClass("active");
        setTimeout(() => {
          //   console.info("Image Loaded");
          //aqui debe ir el nombre personalizado de la imagen antes o despues de subir
          //jQuery(".prueba .input-text").val(actualFile[0].path);
          //   jQuery(".prueba .input-text").val(output);

          jQuery(".loader").removeClass("active");
          jQuery(".modal-nb__btn-next--checkout").addClass("enabled");          
        }, 2000);

        return true;
      } else {
        actualFile = null;
      }
      return false;
    }
  });
  // jQuery("body").on("change", ".nb-custom-upload", function (e) {});
  //Continuamos aca cuando se presiona el boton de procesar  pago en el modal
  jQuery("body").on("click", ".modal-nb__btn-next--checkout", function (e) {
    // //console.log("Llamando botones");    
    if (jQuery(".modal-nb__btn-next--checkout").hasClass("enabled")) {
      jQuery(".place-order button").removeClass("nobody_order");
      jQuery(".place-order button").addClass("nobody_order_final");
      jQuery(".nobody_order_final").trigger("click"); //activamos el envio final del pedido
    }
  });
  //Aca es cuando enviamos los datos por ajax a la base de datos y en el success activamos el realizar pedido
  jQuery("body").on("click", ".nobody_order_final", function (e) {
    e.preventDefault();
    if (actualFile != null) {
      for (var i = 0; i < actualFile.length; i++) {
        if (actualFile[i].type.indexOf("image/") === 0) {
          var timestamp = new Date().getTime();
          var d = new Date(timestamp);
          var month = d.getMonth() + 1;
          var day = d.getDate();
          var hour = d.getHours();
          var minutes = "";
          var seconds = "";
          var decodeTime = "am";
          if (hour > 12) {
            decodeTime = "pm";
            hour = hour - 12;
          } else if (hour === 0) {
            hour = 12;
          }

          if (d.getMinutes() < 10) {
            minutes = "0" + d.getMinutes();
          } else {
            minutes = d.getMinutes();
          }

          if (d.getSeconds() < 10) {
            seconds = "0" + d.getSeconds() + 1;
          } else {
            seconds = d.getSeconds() + 1;
          }
          var hora = "";
          if (hour < 10) {
            hora = "0" + hour;
          } else {
            hora = "" + hour;
          }
          var time = hora + "" + minutes;
          var file = actualFile[0];
          var nombre = parsingName(file.name);

          //var time = hour + "" + minutes; //Descomenta este si quieres solo hasta los minutos para probar
          var output =
            (month < 10 ? "0" : "") +
            month +
            "-" +
            (day < 10 ? "0" : "") +
            day +
            "-" +
            d.getFullYear() +
            "_" +
            time +
            decodeTime +
            nombre;
            
            var formm = jQuery(".upload-screenshot")[0];

          formData = new FormData(formm);
          formData.append("updoc", file, output);
          formData.append("action", "questiondatahtml");

          jQuery(".prueba2 .input-text").val(listDetail[actualMetod].name);
          jQuery(".prueba .input-text").val(output);
          jQuery(".place-order button").removeClass("nobody_order_final");
          jQuery(".place-order button").trigger("click");

    
            jQuery.ajax({
              url: ajaxurl,
              type: "POST",
              data: formData,
              cache: false,
              processData: false,
              contentType: false,
              success: function (response) {
                console.log(response);
              },
              error: function (e) {
                jQuery(".loader").removeClass("active");
                //   console.info("Error", e);
              },
            });
          
        }
      }
    }
  });

  function obtenerCampos() {
    var isRequired = jQuery(".woocommerce-billing-fields__field-wrapper p");
    var listRequired = [];
    var enviarImagen = true;

    for (let index3 = 0; index3 < isRequired.length; index3++) {
      if (
        jQuery(isRequired[index3]).hasClass("validate-required") &&
        jQuery(isRequired[index3]).find("span input").hasClass("input-text")
      ) {
        listRequired.push(jQuery(isRequired[index3]).find("span input")[0]);
      }
    }
	

    for (let index = 0; index < listRequired.length; index++) {
      if (listRequired[index].value.replace(/\s/g, "").length === 0) {
        enviarImagen = false;
      } else if (listRequired[index].type === "tel") {
        var pattern = /^\d+$/;
        if (!pattern.test(listRequired[index].value)) {
          enviarImagen = false;
        }
      } else if (listRequired[index].type === "email") {
        var pattern = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
        if (!pattern.test(listRequired[index].value)) {
          enviarImagen = false;
        }
      }
    }
    
    return enviarImagen;
  }

  //**************************************FIN DE LAS FUNCIONES PARA REALIZAR PEDIDO************************************************ */
  function parsingName(name) {
    var nameP = "";
    for (let index = 0; index < name.length; index++) {
      if (
        name[index] !== " " &&
        name[index] !== "@" &&
        name[index] !== "$" &&
        name[index] !== ";" &&
        name[index] !== "-" &&
        name[index] !== "->"
      ) {
        nameP = nameP + name[index];
      }
    }
    return nameP;
  }
  function copyToCliboard(txt) {
    // //console.log(txt);
    if (
      document.queryCommandSupported &&
      document.queryCommandSupported("copy")
    ) {
      var textarea = document.createElement("textarea");
      textarea.textContent = txt;
      textarea.style.position = "fixed";
      document.body.appendChild(textarea);
      textarea.select();
      try {
        return document.execCommand("copy");
      } catch (ex) {
        // console.warn("Copy to clipboard failed.", ex);
        return false;
      } finally {
        document.body.removeChild(textarea);
      }
    }
  }

  jQuery("body").on("click", "#copy", function () {
    openToast();
    copyToCliboard(listDetail[actualMetod].number);
  });

  /*Activar el hoover */
  

  /*Open toast*/
  function openToast() {
    // Get the snackbar DIV
    var aplication = sessionStorage.getItem('aplication');
   
    var x = document.getElementById("snackbar");

    // Add the "show" class to DIV
    x.className = "show";
    if(aplication){
      x.style.backgroundColor = listDetail[aplication].color;
    }   

    // After 3 seconds, remove the show class from DIV
    setTimeout(function () {
      x.className = x.className.replace("show", "");
    }, 3000);
  }
});