File "frontend.js"

Full Path: /home/leadltht/fastlinkinternet.com/admin/wp-content/plugins/yith-woocommerce-quick-view/assets/js/frontend.js
File size: 4.58 KB
MIME-type: text/plain
Charset: utf-8

/**
 * frontend.js
 *
 * @author YITH <plugins@yithemes.com>
 * @package YITH WooCommerce Quick View
 * @version 1.0.0
 */

jQuery(document).ready(function($) {
  'use strict';

  if (typeof yith_qv === 'undefined') {
    return;
  }

  var qv_modal = $(document).find('#yith-quick-view-modal'),
      qv_overlay = qv_modal.find('.yith-quick-view-overlay'),
      qv_content = qv_modal.find('.yith-quick-view-content'),
      qv_close = qv_modal.find('.yith-quick-view-close'),
      qv_wrapper = qv_modal.find('.yith-wcqv-wrapper'),
      qv_wrapper_w = qv_wrapper.width(),
      qv_wrapper_h = qv_wrapper.height(),
      center_modal = function() {
        if (yith_qv.is_mobile) {
          return;
        }
        var window_w = $(window).width(),
            window_h = $(window).height(),
            width = ((window_w - 60) > qv_wrapper_w) ? qv_wrapper_w : (window_w - 60),
            height = ((window_h - 120) > qv_wrapper_h) ? qv_wrapper_h : (window_h - 120);

        qv_wrapper.css({
          'left': ((window_w / 2) - (width / 2)),
          'top': ((window_h / 2) - (height / 2)),
          'width': width + 'px',
          'height': height + 'px',
        });
      };

  /*==================
   *MAIN BUTTON OPEN
   ==================*/

  $.fn.yith_quick_view = function() {

    $(document).off('click', '.yith-wcqv-button').on('click', '.yith-wcqv-button', function(e) {
      e.preventDefault();

      var t = $(this),
          product_id = t.data('product_id'),
          is_blocked = false;

      if (typeof yith_qv.loader !== 'undefined') {
        is_blocked = true;
        t.block({
          message: null,
          overlayCSS: {
            background: '#fff url(' + yith_qv.loader + ') no-repeat center',
            opacity: 0.5,
            cursor: 'none',
          },
        });

        if (!qv_modal.hasClass('loading')) {
          qv_modal.addClass('loading');
        }

        // stop loader
        $(document).trigger('qv_loading');
      }
      ajax_call(t, product_id, is_blocked);
    });
  };

  /*================
   * MAIN AJAX CALL
   ================*/

  var ajax_call = function(t, product_id, is_blocked) {

    $.ajax({
      url: yith_qv.ajaxurl,
      data: {
        action: 'yith_load_product_quick_view',
        product_id: product_id,
        lang: yith_qv.lang,
        context: 'frontend',
      },
      dataType: 'json',
      type: 'POST',
      success: function(data) {

        qv_content.html(data.html);

        // Variation Form
        var form_variation = qv_content.find('.variations_form');

        form_variation.each(function() {
          $(this).wc_variation_form();
          // add Color and Label Integration
          if (typeof $.fn.yith_wccl !== 'undefined') {
            $(this).yith_wccl();
          } else if (typeof $.yith_wccl != 'undefined' && data.prod_attr) {
            $.yith_wccl(data.prod_attr);
          }
        });

        form_variation.trigger('check_variations');
        form_variation.trigger('reset_image');

        if (typeof $.fn.wc_product_gallery !== 'undefined') {
          qv_content.find('.woocommerce-product-gallery').each(function() {
            $(this).wc_product_gallery();
          });
        }

        if (!qv_modal.hasClass('open')) {
          $('html').addClass('yith-quick-view-is-open');


          qv_modal.removeClass('loading').addClass('open');
          if (is_blocked)
            t.unblock();
        }

        // stop loader
        $(document).trigger('qv_loader_stop');
        $(document).trigger('yith_quick_view_loaded');

      },
    });
  };

  /*===================
   * CLOSE QUICK VIEW
   ===================*/

  var close_modal_qv = function() {

    // Close box by click overlay
    qv_overlay.on('click', function(e) {
      close_qv();
    });
    // Close box with esc key
    $(document).keyup(function(e) {
      if (e.keyCode === 27)
        close_qv();
    });
    // Close box by click close button
    qv_close.on('click', function(e) {
      e.preventDefault();
      close_qv();
    });

    var close_qv = function() {
      qv_modal.removeClass('open').removeClass('loading');
      $('html').removeClass('yith-quick-view-is-open');
      qv_content.html('');
    };
  };

  close_modal_qv();

  center_modal();
  $(window).on('resize', center_modal);

  // START
  $.fn.yith_quick_view();

  $(document).on('yith_infs_adding_elem yith-wcan-ajax-filtered', function() {
    // RESTART
    $.fn.yith_quick_view();
  });

});