var DELAY = 700,
  clicks = 0,
  timer = null

$(document).ready(function () {
  // Decimos que todas los links con ese rel, se habran en una ventana nueva
  $("a[data-gal^='nueva_ventana']").click(function () {
    window.open($(this).attr('href'))
    return false
  })

  $('.carousel[data-type="multi"] .item').each(function () {
    var next = $(this).next()
    console.log(next)
    if (!next.length) {
      next = $(this).siblings(':first')
    }
    next.children(':first-child').clone().appendTo($(this))

    for (var i = 0; i < 1; i++) {
      next = next.next()
      if (!next.length) {
        next = $(this).siblings(':first')
      }

      next.children(':first-child').clone().appendTo($(this))
    }
  })

  $(document).on('click', '[data-target="scrollTo"]', function (e) {
    e.preventDefault()

    var id = $(this).attr('href')

    $('html,body').animate(
      {
        scrollTop: $(id).offset().top,
      },
      'slow'
    )
  })

  $("a[data-gal^='bootstrap_dialog']").on('click', function (e) {
    e.preventDefault()

    var url_to_load = $(this).attr('href')
    var title_url = '' /* $(this).attr('title')*/
    if (url_to_load == '/terminos-condiciones') {
      title_url = 'POLÍTICA DE PRIVACIDAD'
    } else if (url_to_load == '/aviso-legal') {
      title_url = 'AVISO LEGAL'
    } else if (url_to_load == '/cookies') {
      title_url = 'POLÍTICA DE COOKIES'
    } else if (url_to_load == '/enlace_request') {
      $('.bootstrap-dialog.type-primary .modal-header').css({display: 'none', height: '250px'})
    } else {
      title_url = $(this).attr('title')
    }

    clicks++

    if (clicks === 1) {
      timer = setTimeout(function () {
        //---------------------------
        // Abrimos Bootstrap Dialog
        //---------------------------
        BootstrapDialog.show({
          title: title_url,
          message: $('<div></div>').load(url_to_load),
          draggable: true,
        })

        clicks = 0
      }, DELAY)
    }
  })

  $(document).on('click', '[data-toggle="lightbox"]', function (event) {
    event.preventDefault()
    $(this).ekkoLightbox()
  })

  //$("a[data-gal^='prettyPhoto']").prettyPhoto({horizontal_padding: 0,social_tools: false,deeplinking: false,  allow_resize: true, hideflash: true, hook:'data-gal' });

  $.ajaxSetup({
    headers: {
      'AJAX-CSRF-Token': $('meta[name="_token"]').attr('content'),
    },
  })

  $(document).on('submit', '[data-action="ajax-form"]', function (event) {
    event.preventDefault()
    button = $(this).find('#btnSubmit')

    //console.log('entra');

    $('.fixed-top').remove()

    var action = $(this).attr('action')
    var method = $(this).attr('method')
    var dom_id = $(this).attr('id')

    $('#' + dom_id + ' [type="submit"]')
      .prop('disabled', true)
      .prepend('<i class="fa fa-spinner fa-spin"></i> ')

    var formData = new FormData(document.getElementById(dom_id))

    // Para evitar errores 400 en Safari, recorremos los input files y si están vacíos los eliminamos del formData
    $('#' + dom_id + ' input[type=file]').each(function () {
      if ($(this).val() === '') {
        formData.delete($(this).attr('name'))
      }
    })

    $.ajax({
      type: method,
      url: $.trim(action),
      dataType: 'json',
      cache: false,
      data: formData,
      contentType: false,
      processData: false,
    })
      .done(function (data) {
        //console.log( "Ajax Form Request "+data.aData);

        $('#' + dom_id + ' [type="submit"]').prop('disabled', false)
        $('#' + dom_id + ' [type="submit"] .fa-spin').remove()

        if (data.success == 'true') {
          //-----------------------------------------------------------------------------
          // Recorremos los elementos del formulario para eliminar la clase error
          //-----------------------------------------------------------------------------
          $('#' + dom_id)
            .find(':input')
            .each(function () {
              $(this).removeClass('error')
            })

          console.log(data.action)
          switch (data.action) {
            case 'remove_form_show_msg':
              $('#' + dom_id).html('<p class="alert alert-success">' + data.aData + '</p>')

              break

            case 'removeForm_showMessage':
              $('#' + dom_id).html(data.aData.msg)
              setCookie('cookieacceptnews', 'yes', 365)
              $('.newsletter-fix').fadeOut(3000)
              window.dataLayer = window.dataLayer || []
              dataLayer.push({
                event: 'submitNewsletter',
              })
              break

            case 'load_view':
              $('#' + dom_id)
                .find('.form-control')
                .val('')
              $('#' + data.aData.wrapper_id).html(data.aData.view)

              break

            case 'redirect':
              $.ajax({
                type: 'GET',
                url: data.aData.href,
                cache: false,
                contentType: false,
                processData: false,
              }).done(function (datas) {
                $('#' + data.aData.target + ' .modal-body').html(datas)
              })

              break

            case 'redirect_window':
              window.location.href = data.aData

              break

            case 'show_shadow':
              $('#' + dom_id)
                .find('.alert')
                .remove()

              $('#' + dom_id)
                .find(':input')
                .each(function () {
                  $(this).removeClass('error')
                })

              $('#' + dom_id)[0].reset()

              BootstrapDialog.show({
                type: 'TYPE_SUCCESS',
                message: data.aData,
              })

              $('.bootstrap-dialog.type-primary .modal-header').css({'background-color': '#fff'})
              $('.bootstrap-dialog.type-primary .modal-header .bootstrap-dialog-title').css('display', 'none')
              $('.bootstrap-dialog.type-primary .modal-body').css({height: '250px', 'overflow-y': 'unset'})

              break

            case 'show_formacion_free':
              $('#formEmail').addClass('d-none')
              $('.modumb_player').removeClass('d-none')
              $('#collapsePasoapaso').removeClass('d-none')

              break

            default:
              $('#' + dom_id).html(data.aData)

              break
          }
        } else {
          //--------------------------------------------------------------------------------------
          // Recorremos los elementos del formulario para añadir limpiar los errores anteriores
          //--------------------------------------------------------------------------------------
          $('#' + dom_id)
            .find('.form-control')
            .each(function () {
              $(this).removeClass('error')
            })

          if ($('#' + dom_id).hasClass('errors-inline')) {
            $('.error_msg').remove()

            for (var field in data.aData) {
              $(".form-control[name*='" + field + "']").addClass('error')

              if ($('#' + dom_id + ' .form-control[name*="' + field + '"]').length > 0) {
                $('#' + dom_id + ' .form-control[name*="' + field + '"]').before(
                  '<span class="error_msg">' + data.aData[field] + '</span>'
                )
              } else {
                $('#' + dom_id + ' button[type="submit"]').before(
                  '<span class="error_msg">' + data.aData[field] + '</span>'
                )
              }
            }
          } else {
            var msg_error = ''

            //console.log(data.aData);

            if (typeof data.aData === 'string') {
              msg_error = msg_error + '<p>' + data.aData + '</p>'
            } else {
              for (var field in data.aData) {
                $(".form-control[name*='" + field + "']").addClass('error')

                msg_error = msg_error + '<p>' + data.aData[field] + '</p>'
              }
            }

            $('#' + dom_id).prepend(
              '<div class="fixed-top alert alert-danger mt-3 mx-3"><button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>' +
                msg_error +
                '</div>'
            )
          }

          button.removeAttr('disabled')

          $('html, body').animate(
            {
              scrollTop: $('#' + dom_id + ' .alert-danger').offset().top - 250,
            },
            1000
          )
        }
      })
      .fail(function (jqXHR, textStatus, errorThrown) {
        alert('fail')
        console.log(errorThrown)
      })
      .always(function () {
        $(this).find('.btnSubmit').removeAttr('disabled')
      })
  })

  // comprobación cookies
  function setCookie(c_name, value, exdays) {
    var exdate = new Date()
    exdate.setDate(exdate.getDate() + exdays)
    var c_value = escape(value) + (exdays == null ? '' : '; expires=' + exdate.toUTCString()) + '; path=/'
    document.cookie = c_name + '=' + c_value
  }

  function readCookie(name) {
    var nameEQ = name + '='
    var ca = document.cookie.split(';')
    for (var i = 0; i < ca.length; i++) {
      var c = ca[i]
      while (c.charAt(0) == ' ') c = c.substring(1, c.length)
      if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length)
    }
    return null
  }

  var $ca_infoaccept = jQuery('#closeCookies')
  var cookieaccept = readCookie('cookieaccept')
  if (!(cookieaccept == 'yes')) {
    $ca_infoaccept.click(function () {
      setCookie('cookieaccept', 'yes', 365)
      jQuery.post('http://www.autopartsfromspain.com', 'set_cookie=1', function () {})
      $('#alerta-cookies').fadeOut('slow')
    })
  } else {
    $('#alerta-cookies').css('display', 'none')
  }

  //Cookie para ocultar ventana de newsletter fija en comunucacion y noticia ampliada
  var $ca_infoacceptnews = jQuery('#closeCookiesNews')
  var cookieacceptnews = readCookie('cookieacceptnews')
  if (!(cookieacceptnews == 'yes')) {
    $ca_infoacceptnews.click(function () {
      setCookie('cookieacceptnews', 'yes', 1)
      jQuery.post('https://www.autopartsfromspain.com', 'set_cookie=1', function () {})
      $('.newsletter-fix').fadeOut(3000)
    })
  } else {
    $('.newsletter-fix').css('display', 'none')
  }
  // fin comprobación cookies

  $('.select_arrow2').on('click', function () {
    var idSeleccionado = $(this).attr('id')

    //console.log(idSeleccionado+' .flecha-menu');

    if ($(this).attr('aria-expanded') !== 'true') {
      $('.lockViewPort').fadeIn()
      $('.buscador').addClass('shadow')
      $('#' + idSeleccionado + ' .flecha-menu').removeClass('fa-chevron-down')
      $('#' + idSeleccionado + ' .flecha-menu').addClass('fa-chevron-up')
    } else {
      $('.lockViewPort').fadeOut()
      $('.buscador').removeClass('shadow')
      $('#' + idSeleccionado + ' .flecha-menu').removeClass('fa-chevron-up')
      $('#' + idSeleccionado + ' .flecha-menu').addClass('fa-chevron-down')
    }
  })

  $('.lockViewPort').on('click', function () {
    $('.lockViewPort').fadeOut()
    $('.in').removeClass('in')
    $('.select_arrow2').attr('aria-expanded', 'false')
    $('.buscador').removeClass('shadow')
  })

  /*banner*/
  $('.select_arrow3').on('click', function () {
    var idSeleccionados = $(this).attr('id')

    //console.log(idSeleccionados+' .flecha-menu');

    if ($(this).attr('aria-expanded') !== 'true') {
      $('.lockViewPort2').fadeIn()
      $('.buscador_banner').addClass('shadow')
      $('#' + idSeleccionados + ' .flecha-menu').removeClass('fa-chevron-down')
      $('#' + idSeleccionados + ' .flecha-menu').addClass('fa-chevron-up')
    } else {
      $('.lockViewPort2').fadeOut()
      $('.buscador_banner').removeClass('shadow')
      $('#' + idSeleccionados + ' .flecha-menu').removeClass('fa-chevron-up')
      $('#' + idSeleccionados + ' .flecha-menu').addClass('fa-chevron-down')
    }
  })

  $('.lockViewPort2').on('click', function () {
    $('.lockViewPort2').fadeOut()
    $('.in').removeClass('in')
    $('.select_arrow3').attr('aria-expanded', 'false')
    $('.buscador_banner').removeClass('shadow')
  })

  $('#enlace-catalogo').on('click', function () {
    if ($(this).attr('aria-expanded') === 'true') {
      $('#enlace-catalogo .flecha-menu').removeClass('fa-chevron-up')
      $('#enlace-catalogo .flecha-menu').addClass('fa-chevron-down')
    } else {
      $('#enlace-catalogo .flecha-menu').removeClass('fa-chevron-down')
      $('#enlace-catalogo .flecha-menu').addClass('fa-chevron-up')
    }
  })

  $('#enlace-catalogo-footer').click(function () {
    $('html, body').animate({scrollTop: $('#sub-menu').offset().top - 700}, 1000)
  })

  //Enable swiping...
  if ($('#carouselImagenesMovil').length > 0) {
    $('#carouselImagenesMovil').swipe({
      //Generic swipe handler for all directions
      swipeLeft: function (event, direction, distance, duration, fingerCount) {
        $(this).parent().carousel('next')
      },
      swipeRight: function () {
        $(this).carousel('prev')
      },
      //Default is 75px, set to 0 for demo so any distance triggers swipe
      threshold: 0,
    })
  }

  $('#form_buscador_lateral input').on('change', function () {
    $('#form_buscador_lateral').submit()
  })

  $('.link_categoria').on('click', function (e) {
    e.preventDefault()

    var href = $(this).attr('href')
    var categoria_uuid = $(this).data('uuid')

    $.ajax({
      type: 'GET',
      url: '/set-filtro-categoria/' + categoria_uuid,
      cache: false,
      contentType: false,
      processData: false,
    }).done(function (datas) {
      window.location.href = href
    })
  })

  $('#carousel_header2').carousel({
    interval: false,
  })

  $('[data-action="load-video"]').on('click', function () {
    const video = $(this).data('video')

    $(this).replaceWith(
      '<div class="embed-responsive embed-responsive-16by9"><iframe class="embed-responsive-item" src="' +
        video +
        '"></iframe></div>'
    )
  })
})

function descargaCatalogos(event) {
  event.preventDefault()

  $(
    '<div class="contenedor-catalogos" ><input type="checkbox" value="1" name="catalogos[]" />Andalucia<input type="checkbox" value="1" name="catalogos[]" />Cataluña<input type="checkbox" value="1" name="catalogos[]" />La Rioja<input type="checkbox" value="1" name="catalogos[]" />Madrid </div>'
  ).appendTo($(this))
}
