/**
* frontend.js
*
* @author Your Inspiration Themes
* @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' );
/*==================
*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 ) {
$.post( yith_qv.ajaxurl, { action: 'yith_load_product_quick_view', product_id: product_id }, function( data ) {
qv_content.html( data );
// quantity fields for WC 2.2
if( yith_qv.is2_2 ) {
qv_content.find('div.quantity:not(.buttons_added), td.quantity:not(.buttons_added)').addClass('buttons_added').append('').prepend('');
}
// Variation Form
var form_variation = qv_content.find( '.variations_form' );
form_variation.wc_variation_form();
form_variation.trigger( 'check_variations' );
if( typeof $.fn.yith_wccl !== 'undefined' ) {
form_variation.yith_wccl();
}
// Init prettyPhoto
if( typeof $.fn.prettyPhoto !== 'undefined' ) {
qv_content.find("a[data-rel^='prettyPhoto'], a.zoom").prettyPhoto({
hook : 'data-rel',
social_tools : false,
theme : 'pp_woocommerce',
horizontal_padding: 20,
opacity : 0.8,
deeplinking : false
});
}
if( ! qv_modal.hasClass( 'open' ) ) {
qv_modal.removeClass('loading').addClass('open');
if( is_blocked )
t.unblock();
}
// stop loader
$(document).trigger( 'qv_loader_stop' );
});
};
/*===================
* 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');
setTimeout(function () {
qv_content.html('');
}, 1000);
}
};
close_modal_qv();
// START
$.fn.yith_quick_view();
$( document ).on( 'yith_infs_adding_elem yith-wcan-ajax-filtered', function(){
// RESTART
$.fn.yith_quick_view();
});
});