(function(){
'use strict';
if(typeof yith_wcwl_l10n!='undefined'){
yith_wcwl_l10n.enable_tooltip=false;
}
function portoCalcSliderButtonsPosition($parent, padding){
var $buttons=$parent.find('.show-nav-title .owl-nav');
if($buttons.length){
if(window.theme.rtl){
$buttons.css('left', padding);
}else{
$buttons.css('right', padding);
}
if($buttons.closest('.porto-products').length&&$buttons.closest('.porto-products').parent().children('.products-slider-title').length){
var $title=$buttons.closest('.porto-products').parent().children('.products-slider-title'), newMT=$title.offset().top - $parent.offset().top - parseInt($title.css('padding-top'), 10) - parseInt($title.css('line-height'), 10) / 2 + $buttons.children().outerHeight() - parseInt($buttons.children().css('margin-top'), 10);
$buttons.css('margin-top', newMT);
}}
}
(function(theme, $){
theme=theme||{};
var instanceName='__wooWidgetToggle';
var WooWidgetToggle=function($el, opts){
return this.initialize($el, opts);
};
WooWidgetToggle.defaults={
};
WooWidgetToggle.prototype={
initialize: function($el, opts){
if($el.data(instanceName)){
return this;
}
this.$el=$el;
this
.setData()
.setOptions(opts)
.build();
return this;
},
setData: function(){
this.$el.data(instanceName, this);
return this;
},
setOptions: function(opts){
this.options=$.extend(true, {}, WooWidgetToggle.defaults, opts, {
wrapper: this.$el
});
return this;
},
build: function(){
var $el=this.options.wrapper;
$el.parent().removeClass('closed');
if(!$el.find('.toggle').length){
$el.append('<span class="toggle"></span>');
}
$el.find('.toggle').on('click', function(){
if($el.next().is(":visible")){
$el.parent().addClass('closed');
}else{
$el.parent().removeClass('closed');
}
$el.next().stop().slideToggle(200);
theme.refreshVCContent();
});
return this;
}};
$.extend(theme, {
WooWidgetToggle: WooWidgetToggle
});
$.fn.themeWooWidgetToggle=function(opts){
return this.map(function(){
var $this=$(this);
if($this.data(instanceName)){
return $this.data(instanceName);
}else{
return new theme.WooWidgetToggle($this, opts);
}});
}}).apply(this, [window.theme, jQuery]);
(function(theme, $){
theme=theme||{};
var instanceName='__wooWidgetAccordion';
var WooWidgetAccordion=function($el, opts){
return this.initialize($el, opts);
};
WooWidgetAccordion.defaults={
};
WooWidgetAccordion.prototype={
initialize: function($el, opts){
if($el.data(instanceName)){
return this;
}
this.$el=$el;
this
.setData()
.setOptions(opts)
.build();
return this;
},
setData: function(){
this.$el.data(instanceName, this);
return this;
},
setOptions: function(opts){
this.options=$.extend(true, {}, WooWidgetAccordion.defaults, opts, {
wrapper: this.$el
});
return this;
},
build: function(){
var self=this,
$el=this.options.wrapper;
$el.find('ul.children').each(function(){
var $this=$(this);
if(!$this.prev().hasClass('toggle')){
$this.before($('<span class="toggle"></span>').on('click', function(){
var $that=$(this);
if($that.next().is(":visible")){
$that.parent().removeClass('open').addClass('closed');
}else{
$that.parent().addClass('open').removeClass('closed');
}
$that.next().stop().slideToggle(200);
theme.refreshVCContent();
})
);
}});
$el.find('li[class*="current-"]').addClass('current');
return this;
}};
$.extend(theme, {
WooWidgetAccordion: WooWidgetAccordion
});
$.fn.themeWooWidgetAccordion=function(opts){
return this.map(function(){
var $this=$(this);
if($this.data(instanceName)){
return $this.data(instanceName);
}else{
return new theme.WooWidgetAccordion($this, opts);
}});
}}).apply(this, [window.theme, jQuery]);
if(typeof jQuery.fn.owlCarousel=='function'){
(function(theme, $){
theme=theme||{};
var instanceName='__wooProductsSlider';
var WooProductsSlider=function($el, opts){
return this.initialize($el, opts);
};
WooProductsSlider.defaults={
rtl: theme.rtl,
autoplay: theme.slider_autoplay=='1' ? true:false,
autoplayTimeout: theme.slider_speed ? theme.slider_speed:5000,
loop: theme.slider_loop,
nav: false,
navText: ["", ""],
dots: false,
autoplayHoverPause: true,
items: 1,
responsive: {},
autoHeight: true,
lazyLoad: true
};
WooProductsSlider.prototype={
initialize: function($el, opts){
if($el.data(instanceName)){
return this;
}
this.$el=$el;
this
.setData()
.setOptions(opts)
.build();
return this;
},
setData: function(){
this.$el.data(instanceName, true);
return this;
},
setOptions: function(opts){
this.options=$.extend(true, {}, WooProductsSlider.defaults, opts, {
wrapper: this.$el
});
return this;
},
calcOwlHeight: function($el){
var h=0;
$el.find('.owl-item.active').each(function(){
if(h < $(this).height())
h=$(this).height();
});
$el.find('.owl-stage-outer').height(h);
},
build: function(){
var self=this,
$el=this.options.wrapper,
lg=this.options.lg,
md=this.options.md,
xs=this.options.xs,
ls=this.options.ls,
$slider_wrapper=$el.closest('.slider-wrapper'),
single=this.options.single,
dots=this.options.dots,
nav=this.options.nav,
responsive={},
items,
scrollWidth=0,
count=$el.find('> *').length,
w_xs=576 - scrollWidth,
w_md=768 - scrollWidth,
w_xl=theme.screen_xl - scrollWidth,
w_sl=theme.screen_xxl - scrollWidth;
if($el.find('.product-col').get(0)){
portoCalcSliderButtonsPosition($slider_wrapper, $el.find('.product-col').css('padding-left'));
}
if(single){
items=1;
}else{
items=lg ? lg:1;
if(this.options.xl){
responsive[w_sl]={ items: this.options.xl, loop:(this.options.loop&&count > this.options.xl) ? true:false };}
responsive[w_xl]={ items: items, loop:(this.options.loop&&count > items) ? true:false };
if(md) responsive[w_md]={ items: md, loop:(this.options.loop&&count > md) ? true:false };
if(xs) responsive[w_xs]={ items: xs, loop:(this.options.loop&&count > xs) ? true:false };
if(ls) responsive[0]={ items: ls, loop:(this.options.loop&&count > ls) ? true:false };}
this.options=$.extend(true, {}, this.options, {
loop:(this.options.loop&&count > items) ? true:false,
items: items,
responsive: responsive,
onRefresh: function(){
if($el.find('.product-col').get(0)){
portoCalcSliderButtonsPosition($slider_wrapper, $el.find('.product-col').css('padding-left'));
}},
onInitialized: function(){
if($el.find('.product-col').get(0)){
portoCalcSliderButtonsPosition($slider_wrapper, $el.find('.product-col').css('padding-left'));
}
if($el.find('.owl-item.cloned').length){
setTimeout(function(){
var ins=$el.find('.owl-item.cloned .porto-lazyload:not(.lazy-load-loaded)').themePluginLazyLoad({ effect: 'fadeIn', effect_speed: 400 });
if(ins&&ins.loadAndDestroy){
ins.loadAndDestroy();
}}, 100);
}},
touchDrag:(count==1) ? false:true,
mouseDrag:(count==1) ? false:true
});
if(this.options.autoHeight){
var thisobj=this;
$(window).on('resize', function(){
thisobj.calcOwlHeight($el);
});
if(theme.isLoaded){
setTimeout(function(){
thisobj.calcOwlHeight($el);
}, 100);
}else{
$(window).on('load', function(){
thisobj.calcOwlHeight($el);
});
}}
$el.owlCarousel(this.options);
return this;
}};
$.extend(theme, {
WooProductsSlider: WooProductsSlider
});
$.fn.themeWooProductsSlider=function(opts){
return this.map(function(){
var $this=$(this);
if($this.data(instanceName)){
return $this;
}else{
return new theme.WooProductsSlider($this, opts);
}});
}}).apply(this, [window.theme, jQuery]);
}
(function(theme, $){
var $supports_html5_storage;
try {
$supports_html5_storage=('sessionStorage' in window&&window.sessionStorage!==null);
window.sessionStorage.setItem('wc', 'test');
window.sessionStorage.removeItem('wc');
} catch(err){
$supports_html5_storage=false;
}
var setCartCreationTimestamp=function(){
if($supports_html5_storage){
sessionStorage.setItem('wc_cart_created',(new Date()).getTime());
}};
var setCartHash=function(cart_hash){
if($supports_html5_storage&&wc_cart_fragments_params){
localStorage.setItem(wc_cart_fragments_params.cart_hash_key, cart_hash);
sessionStorage.setItem(wc_cart_fragments_params.cart_hash_key, cart_hash);
}};
var initAjaxRemoveCartItem=function(){
$(document).off('click', '.widget_shopping_cart .remove-product, .shop_table.cart .remove-product').on('click', '.widget_shopping_cart .remove-product, .shop_table.cart .remove-product', function(e){
e.preventDefault();
var $this=$(this);
var cart_id=$this.data("cart_id");
var product_id=$this.data("product_id");
$this.closest('li').find('.ajax-loading').show();
$.ajax({
type: 'POST',
dataType: 'json',
url: theme.ajax_url,
data: {
action: "porto_cart_item_remove",
nonce: js_porto_vars.porto_nonce,
cart_id: cart_id
},
success: function(response){
var this_page=window.location.toString(),
item_count=$(response.fragments['div.widget_shopping_cart_content']).find('.mini_cart_item').length;
this_page=this_page.replace('add-to-cart', 'added-to-cart');
updateCartFragment(response);
$(document.body).trigger('wc_fragments_refreshed');
$('.viewcart-' + product_id).removeClass('added');
$('.porto_cart_item_' + cart_id).remove();
if(item_count==0&&($('body').hasClass('woocommerce-cart')||$('body').hasClass('woocommerce-checkout'))){
$('.page-content').fadeTo(400, 0.8).block({
message: null,
overlayCSS: {
opacity: 0.2
}});
}else{
$('.shop_table.cart, .shop_table.review-order, .updating, .cart_totals').fadeTo(400, 0.8).block({
message: null,
overlayCSS: {
opacity: 0.2
}});
}
$('.widget_shopping_cart, .updating').stop(true).css('opacity', '1').unblock();
if(item_count==0&&($('body').hasClass('woocommerce-cart')||$('body').hasClass('woocommerce-checkout'))){
$('.page-content').load(this_page + ' .page-content:eq(0) > *', function(){
$('.page-content').stop(true).css('opacity', '1').unblock();
});
}else{
$('.shop_table.cart').load(this_page + ' .shop_table.cart:eq(0) > *', function(){
$('.shop_table.cart').stop(true).css('opacity', '1').unblock();
});
$('.cart_totals').load(this_page + ' .cart_totals:eq(0) > *', function(){
$('.cart_totals').stop(true).css('opacity', '1').unblock();
});
$('.shop_table.review-order').load(this_page + ' .shop_table.review-order:eq(0) > *', function(){
$('.shop_table.review-order').stop(true).css('opacity', '1').unblock();
});
}}
});
return false;
});
};
var refreshCartFragment=function(){
initAjaxRemoveCartItem();
if($.cookie('woocommerce_items_in_cart') > 0){
$('.hide_cart_widget_if_empty').closest('.widget_shopping_cart').show();
}else{
$('.hide_cart_widget_if_empty').closest('.widget_shopping_cart').hide();
}};
var updateCartFragment=function(data){
if(data&&data.fragments){
var fragments=data.fragments,
cart_hash=data.cart_hash;
$.each(fragments, function(key, value){
$(key).replaceWith(value);
});
if(typeof wc_cart_fragments_params==='undefined'){
return;
}
if($supports_html5_storage){
var prev_cart_hash=sessionStorage.getItem('wc_cart_hash');
if(prev_cart_hash===null||prev_cart_hash===undefined||prev_cart_hash===''){
setCartCreationTimestamp();
}
sessionStorage.setItem(wc_cart_fragments_params.fragment_name, JSON.stringify(fragments));
setCartHash(cart_hash);
}}
};
$(function(){
refreshCartFragment();
$(document).on('click', '.add_to_cart_button', function(e){
var $this=$(this);
if($this.is('.product_type_simple')){
if($this.attr('data-product_id')){
$this.addClass('product-adding');
}
if($this.hasClass('viewcart-style-2')||$this.hasClass('viewcart-style-3')){
$('body').append('<div id="loading-mask"><div class="background-overlay"></div></div>');
if(!$(this).closest('.product').find('.loader-container').length){
$(this).closest('.product').find('.product-image').append('<div class="loader-container"><div class="loader"><i class="porto-ajax-loader"></i></div></div>');
}
$(this).closest('.product').find('.loader-container').show();
}}
});
$(document).on('click', 'span.add_to_cart_button', function(e){
var $this=$(this);
if($this.is('.product_type_simple')){
if(!$this.attr('data-product_id')){
window.location.href=$this.attr('href');
}}else{
window.location.href=$this.attr('href');
}});
$('body').on('added_to_cart', function(){
$('ul.products li.product .added_to_cart, .porto-tb-item .added_to_cart').remove();
initAjaxRemoveCartItem();
});
$(document.body).on('wc_fragments_refreshed wc_fragments_loaded', function(){
refreshCartFragment();
});
$(document).on('click', '.product-image .viewcart, .after-loading-success-message .viewcart', function(e){
if(wc_add_to_cart_params.cart_url){
window.location.href=wc_add_to_cart_params.cart_url;
}
e.preventDefault();
});
var porto_product_add_cart_timer=null;
$(document).on('added_to_cart', 'body', function(event){
var $mc_item=$('#mini-cart .cart-items');
if($mc_item.length){
$mc_item.addClass('count-updating');
setTimeout(function(){
$mc_item.removeClass('count-updating');
}, 1000);
}
$('body #loading-mask').remove();
$('.add_to_cart_button.product-adding').each(function(){
var $link=$(this);
$link.removeClass('product-adding');
if($link.hasClass('viewcart-style-1')){
$link.closest('.product').find('.viewcart').addClass('added');
$('.minicart-offcanvas').addClass('minicart-opened');
}else{
$link.closest('.product').find('.loader-container').hide();
if($link.closest('li.outofstock').length){
return;
}
var $msg;
if($link.hasClass('viewcart-style-2')){
$msg=$('.after-loading-success-message .success-message-container').eq(0);
$msg.find('.product-name').text($link.closest('.product').find('.woocommerce-loop-product__title').text());
}else{
$msg=$('.after-loading-success-message .success-message-container').last().clone().removeClass('d-none');
$msg.find('.product-name').empty().append($link.closest('.product').find('.product-loop-title, .post-title a').clone());
}
$msg.find('.msg-box img').remove();
if($link.closest('.product').find('.product-image img').length){
var $img=$link.closest('.product').find('.product-image img').eq(0);
$('<img />').attr('src', $img.data('oi') ? $img.data('oi'):$img.attr('src')).appendTo($msg.find('.msg-box'));
}
$('.after-loading-success-message').eq(0).stop().show();
if($link.hasClass('viewcart-style-2')){
if(porto_product_add_cart_timer){
clearTimeout(porto_product_add_cart_timer);
}
porto_product_add_cart_timer=setTimeout(function(){ $('.after-loading-success-message').eq(0).hide(); }, 4000);
}else{
$msg.prependTo('.after-loading-success-message');
theme.requestFrame(function(){
$msg.addClass('active');
});
setTimeout(function(){ $msg.find('.mfp-close').trigger('click'); }, 5000);
}}
});
});
$('.after-loading-success-message .continue_shopping').on('click', function(){
$('.after-loading-success-message').eq(0).fadeOut(200);
});
$('.after-loading-success-message').on('click', '.mfp-close', function(){
var $obj=$(this).closest('.success-message-container');
$obj.removeClass('active');
theme.requestTimeout(function(){
$obj.slideUp(300, function(){
$obj.remove();
});
}, 350);
});
$(document.body).on('click', '.variations_form .variations .filter-item-list .filter-color, .variations_form .variations .filter-item-list .filter-item', function(e){
e.preventDefault();
var $this=$(this),
$selector=$this.closest('ul').siblings('select');
if(!$selector.length||$this.hasClass('disabled')){
return;
}
var $li_obj=$this.closest('li');
if($li_obj.hasClass('active')){
$li_obj.removeClass('active');
$selector.val('');
}else{
$li_obj.addClass('active').siblings().removeClass('active');
$selector.val($this.data('value'));
}
$selector.trigger('change.wc-variation-form');
});
$(document).on('wc_variation_form', '.variations_form', function(){
$(this).addClass('vf_init');
if($(this).find('.filter-item-list').length < 1){
return;
}
$(this).find('.variations select').trigger('focusin');
});
$(document).on('updated_wc_div', function(){
$('.woocommerce-cart-form .porto-lazyload').themePluginLazyLoad();
});
$(document).on('found_variation reset_data', '.variations_form', function(e, args){
var $this=$(this);
if($this.find('.product-attr-description').length){
if(typeof args=='undefined'){
$this.find('.product-attr-description').removeClass('active');
}else{
$this.find('.product-attr-description').addClass('active');
$this.find('.product-attr-description .attr-desc').removeClass('active');
$this.find('.variations select').each(function(){
var $obj=$(this);
$this.find('.product-attr-description .attr-desc[data-attrid="' + $obj.val() + '"]').addClass('active');
});
}}
if($this.find(".filter-item-list").length < 1){
return;
}
$this.find(".filter-item-list").each(function(){
if($(this).next("select").length < 1){
return;
}
var selector=$(this).next("select"),
$list=$(this);
$list.find('li.active').removeClass('active');
$list.find('.filter-color, .filter-item').removeClass('enabled').removeClass('disabled');
selector.children("option").each(function(){
if(!$(this).val()){
return;
}
$list.find('[data-value="' + $(this).val() + '"]').addClass('enabled');
if($(this).val()==selector.val()){
$list.find('[data-value="' + $(this).val() + '"]').parent().addClass('active');
}
/*html +='<li';
if($(this).val()==selector.val()){
html +=' class="active"';
}
html +='><a href="#" data-value="'+ escape($(this).val()) +'" class="' + spanClass + '"';
if(isColor){
html +=' style="background-color: #' + escape($(this).data('color').replace('#','')) + '"';
}
if(isImage){
html +=' style="background-image:url(' + $(this).data('image') + ')"';
}
html +='>';
if(!isColor){
html +=$(this).text();
}
html +='</a></li>';*/
});
$list.find('.filter-color:not(.enabled), .filter-item:not(.enabled)').addClass('disabled');
});
});
$(document).on('found_variation reset_data', '.variations_form', function(e, obj){
var $wrapper=$(this).closest('.product'),
$timer=$wrapper.find('.sale-product-daily-deal.for-some-variations');
if(!$timer.length){
$timer=$wrapper.find('.porto-product-sale-timer').eq(0);
if(!$timer.length){
return;
}}
if(obj&&obj.is_purchasable&&typeof obj.porto_date_on_sale_to!='undefined'&&obj.porto_date_on_sale_to){
var saleTimer=$timer.find('.porto_countdown-dateAndTime');
if(saleTimer.data('terminal-date')!=obj.porto_date_on_sale_to){
var newDate=new Date(obj.porto_date_on_sale_to);
saleTimer.porto_countdown('option', { until: newDate });
saleTimer.data('terminal-date', obj.porto_date_on_sale_to);
}
$timer.slideDown();
}else{
if($timer.is(':hidden')){
$timer.hide();
}else{
$timer.slideUp();
}}
});
$('body').on('click', '.product-attr-description > a', function(e){
e.preventDefault();
$(this).next().stop().slideToggle(400);
});
if($(document.body).hasClass('single-product')){
$(document).on('woocommerce_variation_has_changed', '.variations_form', function(e, variation){
$(document.body).removeClass('single-add-to-cart');
});
$(document).on('found_variation', '.variations_form', function(e, variation){
try {
var cart_items=JSON.parse(sessionStorage.getItem(wc_cart_fragments_params.fragment_name));
if(cart_items['div.widget_shopping_cart_content']){
var cart_item=$(cart_items['div.widget_shopping_cart_content']).find('.porto-variation-' + variation.variation_id);
if(cart_item.length){
theme.requestFrame(function(){
$(document.body).addClass('single-add-to-cart');
});
}}
} catch(e){
}});
}
var timeout;
$(document).on('change input', '.cart_list .quantity .qty', function(){
var input=$(this);
var qtyVal=input.val();
var itemID=input.parents('.woocommerce-mini-cart-item').data('key');
var maxValue=input.attr('max');
clearTimeout(timeout);
if(parseInt(qtyVal) > parseInt(maxValue)){
qtyVal=maxValue;
}
timeout=setTimeout(function(){
input.parents('.mini_cart_item').find('.ajax-loading').show();
$.ajax({
url:theme.ajax_url,
data:{
action:'porto_update_cart_item',
item_id: itemID,
qty:qtyVal
},
success:function(data){
if(data&&data.fragments){
updateCartFragment(data);
$(document.body).trigger('wc_fragments_refreshed');
}
input.parents('.mini_cart_item').find('.ajax-loading').hide();
},
dataType: 'json',
method:'GET'
});
}, 500);
});
});
}).apply(this, [window.theme, jQuery]);
(function(theme, $){
var expr=/[.#\w].([\S]*)/g, classexpr=/(?!(\[))(\.)[^.#[]*/g, idexpr=/(#)[^.#[]*/, tagexpr=/^[\w]+/, varexpr=/(\w+?)=(['"])([^\2$]*?)\2/, simpleselector=/^[\w]+$/, parseSelector=function(d){
for(var c={ sel: [], val: [] }, a=[], j = !1, h="", e=[], f=0, m=d.length; f < m; f++){
var g=d.charAt(f);
if(j) if("\\"===g&&f + 1 < d.length) e.push(d.charAt(++f)); else if(h===g) h="", e.push(g); else if(( "'"===g||'"'===g)&&""===h) h=g, e.push(g); else if("]"===g&&""===h) c.val.push(e.join("")), e=[], j = !1; else {
if("]"!==g||""!==h) ""===h&&","===g ?(c.val.push(e.join("")),
e=[]):e.push(g)
} else "\\"===g&&f + 1 < d.length ? j&&e.push(d.charAt(++f)):"["===g&&""===h ? j = !0:" "===g||"+"===g ?(c.sel=c.sel.join(""), a.push(c), "+"===g&&a.push({ sel: "+", val: "" }), c={ sel: [], val: [] }):" "!==g&&"]"!==g&&c.sel.push(g)
}
if(0!=c.sel.length||0!=c.val.length) c.sel=c.sel.join(""), a.push(c);
for(f=0; f < a.length; f++){
c=a[f].sel;
if("+"===c) b.tag=c; else {
var b=[];
b.tag=tagexpr.exec(c);
b.id=idexpr.exec(c);
b.id&&Array.isArray(b.id)&&(b.id=b.id[0].substr(1));
b.tag||(b.tag="div");
b.vars=[];
for(d=0; d < a[f].val.length; d++)h =
a[f].val[d].indexOf("="), j=a[f].val[d].substr(0, h), h=a[f].val[d].substr(h + 1), h=h.replace(/^[\s]*[\"\']*|[\"\']*[\s]*$/g, ""), "text"===j ? b.text=h:b.vars.push([j, h]);
c=c.match(classexpr);
j=[];
if(c){
for(d=0; d < c.length; d++)j.push(c[d].substr(1));
b.className=j.join(" ")
}}
a[f]=b
}
return a
}, rmFromParent=function(d){
var c=d.parentNode, a=d.nextSibling;
c.removeChild(d);
return a ? function(){
c.insertBefore(d, a)
}:function(){
c.appendChild(d)
}}, nonArrVer=function(d, c){
var a=[], a=simpleselector.test(d) ? [
{ tag: d }
]:parseSelector(d),
j=[];
"undefined"===typeof c&&(c=1);
for(var h=[], e=[], f=[], m=document.createElement("div"), g=0, b=0; b < a.length; b++){
if("+"==a[b].tag) e=f.slice(), --g; else {
for(var l=0; l < c; l++){
var k;
if("input"==a[b].tag){
k=[];
k.push("<" + a[b].tag);
a[b].id&&k.push("id='" + a[b].id + "'");
a[b].className&&(k.push("class='" + a[b].className), b + 1===a.length&&k.push(lastClass), k.push("'"));
if(a[b].vars) for(var n=0; n < a[b].vars.length; n++)k.push(a[b].vars[n][0] + "='" + a[b].vars[n][1] + "'");
a[b].text&&k.push("value='" + a[b].text + "'");
k.push("/>");
f[l]=e[l];
e[l] ?(e[l].innerHTML +=k.join(" "), e[l]=e[l].lastChild):(m.innerHTML=k.join(" "), e[l]=m.removeChild(m.firstChild))
}else{
k=document.createElement(a[b].tag);
if(a[b].vars) for(var n=0; n < a[b].vars.length; n++)k.setAttribute(a[b].vars[n][0], a[b].vars[n][1]);
a[b].id&&(k.id=a[b].id);
a[b].className&&(k.className=a[b].className);
a[b].text&&k.appendChild(document.createTextNode(a[b].text));
f[l]=e[l];
e[l]=e[l] ? e[l].appendChild(k):k
}}
g++||Array.prototype.push.apply(h, e);
}
j=$.merge(j, e);
}
return $(h)
}, arrVer=function(d, c, a){
for(var j=d.match(/%[^%]*%/g)||[], h=[], e=0; e < c.length; e++){
for(var f=d, m=0; m < j.length; m++)var g=j[m].substr(1, j[m].length - 2), f=f.replace(j[m], c[e][g]);
h=$.merge(h, nonArrVer(f, a))
}
return $(h)
};
$.porto_jseldom=function(d){
if(2==arguments.length&&$.isPlainObject(arguments[1])) return arrVer.apply(this, [arguments[0], [arguments[1]]]);
if(1==arguments.length||2==arguments.length&&!Array.isArray(arguments[1])) return nonArrVer.apply(this, arguments);
if(2==arguments.length) return arrVer.apply(this, arguments)
};
var refreshPriceSlider=function(){
var $price_slider=$('.price_slider');
if($price_slider.length){
if(typeof woocommerce_price_slider_params==='undefined'){
return false;
}
$('input#min_price, input#max_price').hide();
$('.price_slider, .price_label').show();
var min_price=$('.price_slider_amount #min_price').data('min'),
max_price=$('.price_slider_amount #max_price').data('max'),
current_min_price=parseInt($('.price_slider_amount #min_price').val() ? $('.price_slider_amount #min_price').val():min_price, 10),
current_max_price=parseInt($('.price_slider_amount #max_price').val() ? $('.price_slider_amount #max_price').val():max_price, 10);
$('.price_slider').slider({
range: true,
animate: true,
min: min_price,
max: max_price,
values: [current_min_price, current_max_price],
create: function(){
$('.price_slider_amount #min_price').val(current_min_price);
$('.price_slider_amount #max_price').val(current_max_price);
$(document.body).trigger('price_slider_create', [current_min_price, current_max_price]);
},
slide: function(event, ui){
$('input#min_price').val(ui.values[0]);
$('input#max_price').val(ui.values[1]);
$(document.body).trigger('price_slider_slide', [ui.values[0], ui.values[1]]);
},
change: function(event, ui){
$(document.body).trigger('price_slider_change', [ui.values[0], ui.values[1]]);
}});
}
$('.yith-woo-ajax-navigation, .yith-wcan-list-price-filter').removeClass('loading');
};
var categoryAjaxProcess=function(href, updateSelect2, updateStyle){
if('undefined'!=typeof window.parent&&'undefined'!=typeof window.parent.vc){
return;
}
var shop_before='.shop-loop-before',
$shop_before=$(shop_before),
shop_after='.shop-loop-after:not(.is-shortcode)',
shop_container='.archive-products .products:not(.is-shortcode)',
shop_info='.archive-products .woocommerce-info',
$shop_parent=$shop_before.parent(),
$shop_container=$(shop_container),
$sticky_sidebar=$('.sidebar [data-plugin-sticky]'),
show_toolbar=$shop_before.data('show'),
horizontal_filter='.porto-product-filters:not(.style2)';
if(show_toolbar)
$(shop_before + ',' + shop_after).stop(true).fadeTo(400, 1).block({ message: null, overlayCSS: { opacity: 0.2 }});
if(js_porto_vars.use_skeleton_screen.indexOf('shop')==-1){
if($shop_container.length){
$shop_container.addClass('yith-wcan-loading');
if(!$shop_container.children('.porto-loading-icon').length){
$shop_container.append('<i class="porto-loading-icon"></i>');
}}else{
$(shop_info).html('').addClass('yith-wcan-loading products');
if(!$(shop_info).children('.porto-loading-icon').length){
$(shop_info).append('<i class="porto-loading-icon"></i>');
}}
}else{
if($shop_container.length){
$shop_container.addClass('skeleton-body');
var lg_cols,
other_col_cls=$shop_container.data(( $shop_container.hasClass('list') ? 'list':'grid') + '_col_cls');
if($shop_container.hasClass('list')&&!other_col_cls){
lg_cols=4;
}else{
for(var i=1; i <=8; i++){
if($shop_container.hasClass('pcols-lg-' + i)){
lg_cols=i;
break;
}}
if(!lg_cols){
if($shop_container.hasClass('has-ccols')){
var clses;
if(other_col_cls){
clses=$shop_container.attr('class').split(' ');
var new_cls=[];
for(var i=0; i < clses.length; i++){
if(0!==clses[i].indexOf('ccols-')&&'has-ccols'!=clses[i]){
new_cls.push(clses[i]);
}}
$shop_container.attr('class', new_cls.join(' ') + ' ' + other_col_cls);
clses=other_col_cls.split(' ');
}else{
clses=$shop_container.attr('class').split(' ');
}
for(var i=0; i < clses.length; i++){
if(0===clses[i].indexOf('ccols-')){
lg_cols=clses[i].replace(/ccols-[sm|md|lg|xl|xxl]*[-]*([\d])/, '$1');
break;
}}
}}
}
if(lg_cols){
var product_class='product product-col';
$shop_container.empty();
if($shop_container.data('product_layout')){
product_class +=' ' + escape($shop_container.data('product_layout'));
}
for(var i=0; i < lg_cols * 3; i++){
$shop_container.append('<li class="' + product_class + '"></li>');
}}else{
$shop_container.find('.product-col').empty();
}
if($shop_container.hasClass('owl-loaded')){
$shop_container.removeClass('owl-loaded');
}}
}
if($(horizontal_filter).length){
$(horizontal_filter).block({ message: null, overlayCSS: { opacity: 0.2 }});
}
if($sticky_sidebar.get(0)){
theme.refreshStickySidebar(false);
}
theme.scrolltoContainer(show_toolbar ?($shop_before.hasClass('sticky')&&$shop_before.prev('.filter-placeholder').length ? $shop_before.prev('.filter-placeholder'):$shop_before):$shop_container);
$('.yith-woo-ajax-navigation, .yith-wcan-list-price-filter').addClass('loading');
var cart_content, widget_cart;
if(widget_cart=$('.sidebar-content .widget_shopping_cart').get(0)){
cart_content=$(widget_cart).html();
}
$.ajax({
url: href,
data: { portoajax: true, load_posts_only: true },
type: "POST",
success: function(response){
var $parent=$shop_container.parent(),
$response=$(response);
if($sticky_sidebar.get(0))
$shop_parent.css('min-height', 0);
var $response_container=$response.find(shop_container);
if($response_container.length){
if($shop_container.length&&$shop_container.data('infinitescroll')){
try {
$shop_container.data('infinitescroll').destroy();
var ins=$shop_container.data('__postsinfinite');
if(ins){
ins.destroy();
}} catch(e){
}}
if(typeof updateStyle!='undefined'&&updateStyle&&$parent.hasClass('porto-posts-grid')){
var old_style=$shop_container.siblings('style'),
new_style=$response_container.siblings('style');
if(old_style.length&&new_style.length){
old_style.replaceWith(new_style);
}}
$shop_container.replaceWith($response_container[0].outerHTML);
$shop_container=$(shop_container);
}else if($parent.hasClass('porto-posts-grid')){
$shop_container.empty();
}else{
$parent.html($response.find('.woocommerce-info'));
$parent.find('.woocommerce-info').addClass('products');
}
if($(shop_before + ',' + shop_after).get(0))
$(shop_before + ',' + shop_after).stop(true).css('opacity', '1').unblock();
if($response.find(shop_before).length){
if($(shop_before).length==0){
$.porto_jseldom(shop_before).insertBefore($(shop_container));
}
$(shop_before).each(function(index){
var $res_shop_before=$response.find(shop_before).eq(index);
if($res_shop_before.length){
$(this).html($res_shop_before.html()).show();
}});
}else{
$(shop_before).empty();
}
porto_woocommerce_variations_init($parent);
if($response.find(horizontal_filter).length){
$(horizontal_filter).html($response.find(horizontal_filter).html());
}
$(horizontal_filter).unblock();
if($response.find(shop_after).length){
if($(shop_after).length==0){
$.porto_jseldom(shop_after).insertAfter($(shop_container));
}
$(shop_after).html($response.find(shop_after).html()).show();
}else{
if($(shop_after).length==0&&$response.find('.woocommerce-pagination').length){
var $responsePg=$response.find('.woocommerce-pagination');
$('.content-area#primary .woocommerce-pagination').each(function(index){
var $responseContent=$responsePg.eq(index);
if($responseContent.length){
$(this).html($responseContent.html());
}});
}else{
$(shop_after).empty();
}}
var $pagination=$parent.children('.pagination-wrap'),
$newPagination=$response_container.siblings('.pagination-wrap');
if($parent.hasClass('yit-wcan-container')){
$pagination=$parent.siblings('.pagination-wrap');
}
if($pagination.length){
$pagination[0].outerHTML=$newPagination.length ? $newPagination[0].outerHTML:'';
}else{
$newPagination.length&&$parent.append($newPagination);
}
var $count=$('.woocommerce-result-count');
if($count.length){
var $newCount=$response.find('.woocommerce-result-count').eq(0);
$count[0].outerHTML=$newCount.length ? $newCount[0].outerHTML:'';
}
if($parent.hasClass('porto-posts-grid')){
if($parent.is('.porto-ajax-load.load-infinite, .porto-ajax-load.load-more')){
$parent.portoInfiniteScroll();
}}else if(typeof theme.PostsInfinite!=='undefined'&&typeof porto_infinite_scroll!=='undefined'){
new theme.PostsInfinite($(shop_container));
}
$('.sidebar-content').each(function(index){
var $this=$(this),
$that=$($response.find('.sidebar-content').get(index));
$this.html($that.html());
if(typeof updateSelect2!='undefined'&&updateSelect2){
if(jQuery().selectWoo){
var porto_wc_layered_nav_select=function(){
$this.find('select.woocommerce-widget-layered-nav-dropdown').each(function(){
$(this).selectWoo({
placeholder: $(this).find('option').eq(0).text(),
minimumResultsForSearch: 5,
width: '100%',
allowClear: typeof $(this).attr('multiple')!='undefined'&&$(this).attr('multiple')=='multiple' ? 'false':'true'
});
});
};
porto_wc_layered_nav_select();
}
$('body').children('span.select2-container').remove();
}});
var $sidebar_menu=$('.sidebar-content .sidebar-menu:not(.side-menu-accordion)');
if($sidebar_menu.length){
theme.SidebarMenu.build($sidebar_menu);
}
var $script=$response.filter('script:contains("var woocommerce_price_slider_params")').first();
if($script&&$script.length&&$script.text().indexOf('{')!==-1&&$script.text().indexOf('}')!==-1){
var arrStr=$script.text().substring($script.text().indexOf('{'), $script.text().indexOf('}') + 1);
window.woocommerce_price_slider_params=JSON.parse(arrStr);
}
if(!navigator.userAgent.match(/msie/i)){
window.history.pushState({ "pageTitle": response.pageTitle }, "", href);
}
if($parent.hasClass('yit-wcan-container')){
$parent.parent().removeClass('porto-ajax-loading');
}else{
$parent.removeClass('porto-ajax-loading');
}
$(document).trigger("yith-wcan-ajax-filtered");
if(widget_cart=$('.sidebar-content .widget_shopping_cart').get(0)){
$('.sidebar-content .widget_shopping_cart').html(cart_content);
if($.cookie('woocommerce_items_in_cart') > 0){
$('.hide_cart_widget_if_empty').closest('.widget_shopping_cart').show();
}else{
$('.hide_cart_widget_if_empty').closest('.widget_shopping_cart').hide();
}}
if(( 'undefined'!==typeof yith_wcwl_l10n)&&yith_wcwl_l10n.enable_ajax_loading){
$parent.trigger('yith_wcwl_reload_fragments');
}
$(document.body).trigger('porto_init_countdown', [$parent]);
$(window).trigger('porto_posts_updated');
}});
};
function porto_update_url_param(uri, key, value){
var re=new RegExp("([?&])" + key + "=.*?(&|$)", "i");
var separator=uri.indexOf('?')!==-1 ? "&":"?";
if(uri.match(re)){
return uri.replace(re, '$1' + key + "=" + value + '$2');
}else{
return uri + separator + key + "=" + value;
}}
var categoryAjax=function(){
$('.widget_price_filter').addClass('yith-wcan-list-price-filter');
if(theme.category_ajax){
$('.woocommerce-ordering').off('change', 'select.orderby').on('change', 'select.orderby', function(e){
e.preventDefault();
var $this=$(this),
$form=$this.closest('form'),
href='?' + $form.serialize();
categoryAjaxProcess(href);
});
$('.woocommerce-viewing').off('change', 'select.count').on('change', 'select.count', function(e){
e.preventDefault();
var $this=$(this),
$form=$this.closest('form'),
href='?' + $form.serialize();
categoryAjaxProcess(href);
});
$('.woocommerce-pagination:not(.load-more)').each(function(){
if($(this).closest('.porto-products').length||$(this).closest('#comments').length){
return;
}
$(this).off('click', 'a.page-numbers').on('click', 'a.page-numbers', function(e){
e.preventDefault();
var href=this.href;
categoryAjaxProcess(href);
});
});
$(document).off('click', '.yith-wcan a').on('click', '.yith-wcan a', function(e){
$(this).yith_wcan_ajax_filters(e, this);
});
$('.widget_price_filter .price_slider_wrapper').off('click', '.button').on('click', '.button', function(e){
e.preventDefault();
var $this=$(this),
$form=$this.closest('form'),
action=$form.attr('action'),
href=action +(-1===action.indexOf('?') ? '?':'&') + $form.serialize(),
$count=$('.woocommerce-viewing select.count');
if($count.length){
var count=$('.woocommerce-viewing select.count').val();
if(count!=$count.find('option:not([disabled]):first').val()){
href +='&count=' + count;
}}
$('.widget_price_filter').removeClass('yith-wcan-list-price-filter');
categoryAjaxProcess(href);
});
$('.porto_widget_price_filter').off('click', '.button').on('click', '.button', function(e){
e.preventDefault();
var $this=$(this),
$form=$this.closest('form'),
action=$form.attr('action'),
$count=$('.woocommerce-viewing select.count'),
hrefArr=$form.serializeArray(),
href=action;
$.each(hrefArr, function(i, field){
if($.trim(field.value)){
if(action.indexOf('?')==-1&&href==action){
href +='?';
}else{
href +='&';
}
href +=(field.name + "=" + $.trim(field.value));
}});
if($count.length){
var count=$('.woocommerce-viewing select.count').val();
if(count!=$count.find('option:not([disabled]):first').val()){
if(href.indexOf('?')==-1){
href +='?count=' + count;
}else{
href +='&count=' + count;
}}
}
categoryAjaxProcess(href);
});
$('.widget_layered_nav, .widget_rating_filter, .widget_layered_nav_filters').off('click', 'a').on('click', 'a', function(e){
if($(this).hasClass('yit-wcan-select-open'))
return;
e.preventDefault();
var $this=$(this),
href=$this.attr('href'),
$count=$('.woocommerce-viewing select.count');
if($this.hasClass('yith-wcan-reset-navigation')&&!$('.archive-products .products:not(.is-shortcode)').length){
window.location.href=href;
return false;
}
if($count.length){
var count=$('.woocommerce-viewing select.count').val();
if(count!=$count.find('option:not([disabled]):first').val()){
href=porto_update_url_param(href, 'count', count);
}}
var yith_select=$this.closest('.yith-wcan-select');
if(yith_select.get(0)){
yith_select.parent().css({ "opacity": 0, "z-index": -1 });
}
categoryAjaxProcess(href);
return false;
});
$('.widget_layered_nav select').off('change').on('change', function(e){
e.preventDefault();
var $this=$(this),
name=$this.closest('form').find('input[type=hidden]').length ? $this.closest('form').find('input[type=hidden]').attr('name').replace('filter_', ''):$this.attr('class').replace('dropdown_layered_nav_', ''),
slug=$this.val(),
href,
$count=$('.woocommerce-viewing select.count');
href=window.location.href;
href=href.replace(/\/page\/\d+/, "").replace("&amp;", '&').replace("%2C", ',');
href=porto_update_url_param(href, 'filtering', '1');
href=porto_update_url_param(href, 'filter_' + name, slug);
if($count.length){
var count=$('.woocommerce-viewing select.count').val();
if(count!=$count.find('option:not([disabled]):first').val()){
href=porto_update_url_param(href, 'count', count);
}}
categoryAjaxProcess(href, name);
return false;
});
}else{
$(document).on('change', '.woocommerce-viewing select.count', function(){
$(this).closest('form').trigger('submit');
});
}};
var ajaxFiltered=function(initLoad){
var shop_before='.shop-loop-before',
shop_after='.shop-loop-after',
shop_container='.archive-products .products',
$shop_before=$(shop_before),
$shop_parent=$shop_before.parent(),
$shop_toolbox=$(shop_before + ',' + shop_after),
$sticky_sidebar=$('.sidebar [data-plugin-sticky]');
if($sticky_sidebar.get(0)){
$shop_parent.css('min-height', 0);
}
if($shop_toolbox.length){
$shop_toolbox.stop(true).fadeTo(400, 1).unblock();
}
if($(shop_container).find('.product').length||$(shop_after).closest('.porto-products').length||$shop_before.hasClass('shop-builder')){
$shop_toolbox.show().data('show', true);
}else{
$shop_toolbox.hide().data('show', false);
if($shop_before.find('.porto-product-filters.style2').length){
$shop_before.show().data('show', true);
}}
if(typeof initLoad=='undefined'||!initLoad){
porto_init();
porto_woocommerce_init();
}
$('.woocommerce-ordering').off('change', 'select.orderby').on('change', 'select.orderby', function(){
$(this).closest('form').trigger('submit');
});
refreshPriceSlider();
categoryAjax();
};
var skeletonLoadingTrigger;
$('.skeleton-loading').on('skeleton-loaded', function(){
var $this=$(this);
if(skeletonLoadingTrigger){
theme.deleteTimeout(skeletonLoadingTrigger);
}
porto_woocommerce_variations_init($this);
if($this.hasClass('products')||$this.hasClass('product')){
$(document).trigger('yith_infs_added_elem');
}
skeletonLoadingTrigger=theme.requestTimeout(function(){
porto_woocommerce_init();
refreshPriceSlider();
if($('body').hasClass('single-product')){
theme.WooVariationForm.init();
var $image_slider=$('.product-image-slider');
if($image_slider.length&&$image_slider.data('owl.carousel')){
$image_slider.trigger('refresh.owl.carousel');
}else{
theme.WooProductImageSlider.initialize();
}
$('.wc-tabs-wrapper, .woocommerce-tabs, #rating').trigger('init');
if($(document.body).hasClass('yith-booking')){
$(document).trigger('yith-wcbk-init-booking-form');
}}
if($this.find('.widget_shopping_cart_content').length){
$(document.body).trigger('wc_fragment_refresh');
}}, 100);
});
$(function(){
if(typeof yith_wcan!='undefined'){
yith_wcan.container='.archive-products .products';
yith_wcan.pagination='.shop-loop-before';
yith_wcan.result_count='.shop-loop-after';
}
$(document).on('click', '.yith-wcan a', function(e){
var shop_before='.shop-loop-before',
$shop_before=$(shop_before),
shop_after='.shop-loop-after',
shop_container='.archive-products .products',
shop_info='.archive-products .woocommerce-info',
$sticky_sidebar=$('.sidebar [data-plugin-sticky]'),
show_toolbar=$shop_before.data('show');
if(show_toolbar)
$(shop_before + ',' + shop_after).stop(true).show().fadeTo(400, 0.8).block({ message: null, overlayCSS: { opacity: 0.2 }});
if($(shop_container).length){
$(shop_container).html('').addClass('yith-wcan-loading');
if(!$(shop_container).children('.porto-loading-icon').length){
$(shop_container).append('<i class="porto-loading-icon"></i>');
}}else{
$(shop_info).html('').addClass('yith-wcan-loading products');
if(!$(shop_info).children('.porto-loading-icon').length){
$(shop_info).append('<i class="porto-loading-icon"></i>');
}}
if($sticky_sidebar.get(0)){
theme.refreshStickySidebar(false);
}
$('.yith-woo-ajax-navigation, .yith-wcan-list-price-filter').addClass('loading');
theme.scrolltoContainer(show_toolbar ?($shop_before.hasClass('sticky')&&$shop_before.prev('.filter-placeholder').length ? $shop_before.prev('.filter-placeholder'):$shop_before):$(shop_container));
});
$(document).ready(function(){
ajaxFiltered(true);
});
$(document).on('yith-wcan-ajax-filtered', function(){
ajaxFiltered();
});
if(theme.prdctfltr_ajax){
$(document).on('change', '.woocommerce-viewing select.count', function(){
$(this).closest('form').trigger('submit');
});
$(document).on('click', '.woocommerce-pagination:not(.load-more) a.page-numbers', function(e){
var $shop_before=$('.shop-loop-before');
theme.scrolltoContainer($shop_before.hasClass('sticky')&&$shop_before.prev('.filter-placeholder').length ? $shop_before.prev('.filter-placeholder'):$shop_before);
});
}
$(document).on('click', '.gridlist-toggle #grid, .gridlist-toggle #list', function(e){
e.preventDefault();
var $this=$(this);
if($this.hasClass('active')){
return false;
}
$('.gridlist-toggle #grid, .gridlist-toggle #list').removeClass('active');
$this.addClass('active');
if($.cookie){
$.cookie('gridcookie', $this.attr('id'), { path: '/' });
}
if(theme.category_ajax){
if(js_porto_vars.use_skeleton_screen.indexOf('shop')!=-1){
$('.archive-products ul.products, .archive-products .products-container').removeClass('grid').removeClass('list').addClass($this.attr('id'));
}else{
$('.archive-products').addClass('porto-ajax-loading');
}
categoryAjaxProcess(window.location.href, undefined, true);
}else{
location.reload();
}
return false;
});
});
}).apply(this, [window.theme, jQuery]);
(function(theme, $){
theme=theme||{};
var duration=300,
flag=false;
$.extend(theme, {
WooProductImageSlider: {
defaults: {
elements: '.product-image-slider'
},
initialize: function($elements){
if(!$.fn.owlCarousel) return false;
this.$elements=($elements||$(this.defaults.elements));
if(!this.$elements.length&&!$('.product-images-block').length){
return this;
}
this.build();
return this;
},
build: function(){
var self=this,
thumbs_count=theme.product_thumbs_count;
if(theme.product_zoom&&(!('ontouchstart' in document)||(( 'ontouchstart' in document)&&theme.product_zoom_mobile))){
var zoomConfig={
responsive: true,
zoomWindowFadeIn: 200,
zoomWindowFadeOut: 100,
zoomType: js_porto_vars.zoom_type,
cursor: 'grab'
};
if(js_porto_vars.zoom_type=='lens'){
zoomConfig.scrollZoom=js_porto_vars.zoom_scroll;
zoomConfig.lensSize=js_porto_vars.zoom_lens_size;
zoomConfig.lensShape=js_porto_vars.zoom_lens_shape;
zoomConfig.containLensZoom=js_porto_vars.zoom_contain_lens;
zoomConfig.lensBorderSize=js_porto_vars.zoom_lens_border;
zoomConfig.borderColour=js_porto_vars.zoom_border_color;
}
if(js_porto_vars.zoom_type=='inner'){
zoomConfig.borderSize=0;
}else{
zoomConfig.borderSize=js_porto_vars.zoom_border;
}
if(!self.$elements.length){
var $images_grid=$('.product-images-block');
if($images_grid.length){
$images_grid.find('img').each(function(){
var $this=$(this);
zoomConfig.zoomContainer=$this.parent();
if($.fn.elevateZoom){
$this.elevateZoom(zoomConfig);
}else{
setTimeout(function(){
if($.fn.elevateZoom){
$this.elevateZoom(zoomConfig);
}}, 1000);
}});
}}
}
self.$elements.each(function(){
var $this=$(this),
$product=$this.closest('.product');
if(!$product.length){
$product=$this.closest('.product_layout, .product-layout-image').eq(0);
}
var $thumbs_slider=$product.find('.product-thumbs-slider'),
$thumbs=$product.find('.product-thumbnails-inner'),
$thumbs_vertical_slider=$product.find('.product-thumbs-vertical-slider'),
currentSlide=0,
count=$this.find('> *').length;
$this.find('> *:first-child').imagesLoaded(function(){
$thumbs_slider.owlCarousel({
rtl: theme.rtl,
loop: false,
autoplay: false,
items: thumbs_count,
nav: false,
navText: ["", ""],
dots: false,
rewind: true,
margin: 8,
stagePadding: 1,
lazyLoad: true,
onInitialized: function(){
self.selectThumb(null, $thumbs_slider, 0);
if($thumbs_slider.find('.owl-item').length >=thumbs_count)
$thumbs_slider.append('<div class="thumb-nav"><div class="thumb-prev"></div><div class="thumb-next"></div></div>');
}}).on('click', '.owl-item', function(){
self.selectThumb($this, $thumbs_slider, $(this).index());
});
if($thumbs_vertical_slider.length > 0&&typeof $.fn.slick=='function'){
var slickOptions={
dots: false,
vertical: true,
slidesToShow: thumbs_count > 2 ? thumbs_count - 1:thumbs_count,
slidesToScroll: 1,
infinite: false,
}
if(thumbs_count >=5){
slickOptions['responsive']=[
{
breakpoint: 992,
settings: {
slidesToShow: 4,
}},
{
breakpoint: 768,
settings: {
slidesToShow: 3,
}}
]
}
$thumbs_vertical_slider.slick(slickOptions).on('click', '.img-thumbnail', function(){
self.selectVerticalSliderThumb($this, $thumbs_vertical_slider, $(this).data('slick-index'));
});
self.selectVerticalSliderThumb(null, $thumbs_vertical_slider, 0);
if($thumbs_vertical_slider.find('.porto-lazyload').length){
theme.requestTimeout(function(){
$thumbs_vertical_slider.find('.slick-cloned .porto-lazyload:not(.lazy-load-loaded)').each(function(){
$(this).attr('src', $(this).data('oi')).removeAttr('data-oi').addClass('lazy-load-loaded');
});
}, 100);
}}
self.selectVerticalThumb(null, $thumbs, 0);
$thumbs.off('click', '.img-thumbnail').on('click', '.img-thumbnail', function(){
self.selectVerticalThumb($this, $thumbs, $(this).index());
});
$thumbs_slider.off('click', '.thumb-prev').on('click', '.thumb-prev', function(e){
var currentThumb=$thumbs_slider.data('currentThumb');
self.selectThumb($this, $thumbs_slider, --currentThumb);
});
$thumbs_slider.off('click', '.thumb-next').on('click', '.thumb-next', function(e){
var currentThumb=$thumbs_slider.data('currentThumb');
self.selectThumb($this, $thumbs_slider, ++currentThumb);
});
var links=[];
if(theme.product_image_popup){
var i=0;
$this.find('img').each(function(){
var slide={};
slide.src=$(this).attr('href');
slide.title=$(this).attr('alt');
links[i]=slide;
i++;
});
}
var itemsCount=typeof $this.data('items')!='undefined' ? $this.data('items'):1,
itemsResponsive=typeof $this.data('responsive')!='undefined' ? $this.data('responsive'):{},
centerItem=typeof $this.data('centeritem')!='undefined' ? true:false,
margin=typeof $this.data('margin')!='undefined' ? $this.data('margin'):0,
loop=(count > 1) ?(typeof $this.data('loop')!='undefined' ? $this.data('loop'):true):false;
for(var itemCount in itemsResponsive){
itemsResponsive[itemCount]={ items: itemsResponsive[itemCount] };}
$this.owlCarousel({
rtl: theme.rtl,
loop: loop,
autoplay: false,
items: itemsCount,
margin: margin,
responsive: itemsResponsive,
autoHeight: true,
nav: true,
navText: ["", ""],
dots: false,
rewind: true,
lazyLoad: true,
center: centerItem,
onInitialized: function(){
if($this.find('.owl-item.cloned').length){
setTimeout(function(){
var ins=$this.find('.owl-item.cloned .porto-lazyload:not(.lazy-load-loaded)').themePluginLazyLoad({ effect: 'fadeIn', effect_speed: 400 });
if(ins&&ins.loadAndDestroy){
ins.loadAndDestroy();
}}, 100);
}
if(theme.product_zoom&&(!('ontouchstart' in document)||(( 'ontouchstart' in document)&&theme.product_zoom_mobile))){
$this.find('img').each(function(){
var $this=$(this);
zoomConfig.zoomContainer=$this.parent();
if($.fn.elevateZoom){
$this.elevateZoom(zoomConfig);
}else{
setTimeout(function(){
if($.fn.elevateZoom){
$this.elevateZoom(zoomConfig);
}}, 1000);
}});
}},
onTranslate: function(event){
currentSlide=event.item.index - $this.find('.cloned').length / 2;
currentSlide=(currentSlide + event.item.count) % event.item.count;
self.selectThumb(null, $thumbs_slider, currentSlide);
self.selectVerticalThumb(null, $thumbs, currentSlide);
self.selectVerticalSliderThumb(null, $thumbs_vertical_slider, currentSlide);
},
onRefreshed: function(){
if(theme.product_zoom&&(!('ontouchstart' in document)||(( 'ontouchstart' in document)&&theme.product_zoom_mobile))){
$this.find('img').each(function(){
var $this=$(this),
src=typeof $this.attr('href')!='undefined' ? $this.attr('href'):($this.data('oi') ? $this.data('oi'):$this.attr('src')),
elevateZoom=$this.data('elevateZoom'),
smallImage=$this.data('src') ? $this.data('src'):($this.data('oi') ? $this.data('oi'):$this.attr('src'));
if(typeof elevateZoom!='undefined'){
elevateZoom.startZoom();
elevateZoom.swaptheimage(smallImage, src);
}else if($.fn.elevateZoom){
zoomConfig.zoomContainer=$this.parent();
$this.elevateZoom(zoomConfig);
}});
}}
});
$this.data('links', links);
if(theme.product_image_popup){
var $zoom_buttons=$this.next();
$zoom_buttons.off('click').on('click', function(e){
e.preventDefault();
if($.fn.magnificPopup){
$.magnificPopup.close();
$.magnificPopup.open($.extend(true, {}, theme.mfpConfig, {
items: $this.data('links'),
gallery: {
enabled: true
},
type: 'image'
}), currentSlide);
}});
}});
});
return self;
},
selectThumb: function($image_slider, $thumbs_slider, index){
if(flag||!$thumbs_slider.length) return;
flag=true;
var len=$thumbs_slider.find('.owl-item').length,
actives=[],
i=0;
index=(index + len) % len;
if($image_slider){
$image_slider.trigger('to.owl.carousel', [index, duration, true]);
}
$thumbs_slider.find('.owl-item').removeClass('selected');
$thumbs_slider.find('.owl-item:eq(' + index + ')').addClass('selected');
$thumbs_slider.data('currentThumb', index);
$thumbs_slider.find('.owl-item.active').each(function(){
actives[i++]=$(this).index();
});
if($.inArray(index, actives)==-1){
if(Math.abs(index - actives[0]) > Math.abs(index - actives[actives.length - 1])){
$thumbs_slider.trigger('to.owl.carousel', [(index - actives.length + 1) % len, duration, true]);
}else{
$thumbs_slider.trigger('to.owl.carousel', [index % len, duration, true]);
}}
flag=false;
},
selectVerticalSliderThumb: function($image_slider, $thumbs_vertical_slider, index){
if(flag||!$thumbs_vertical_slider.length) return;
flag=true;
if('undefined'==typeof $thumbs_vertical_slider[0].slick){
return;
}
var len=$thumbs_vertical_slider[0].slick.slideCount,
actives=[],
i=0;
index=(index + len) % len;
if($image_slider){
$image_slider.trigger('to.owl.carousel', [index, duration, true]);
}
$thumbs_vertical_slider.find('.img-thumbnail').removeClass('selected');
$thumbs_vertical_slider.find('.img-thumbnail:eq(' + index + ')').addClass('selected');
$thumbs_vertical_slider.data('currentThumb', index);
$thumbs_vertical_slider.find('.img-thumbnail.slick-active').each(function(){
actives[i++]=$(this).index();
});
if($.inArray(index, actives)==-1){
if(Math.abs(index - actives[0]) > Math.abs(index - actives[actives.length - 1])){
$thumbs_vertical_slider.get(0).slick.goTo(( index - actives.length + 1) % len, false);
}else{
$thumbs_vertical_slider.get(0).slick.goTo(index % len, false);
}}
flag=false;
},
selectVerticalThumb: function($image_slider, $thumbs, index){
if(flag||!$thumbs.length) return;
flag=true;
var len=$thumbs.find('.img-thumbnail').length,
i=0;
index=(index + len) % len;
if($image_slider){
$image_slider.trigger('to.owl.carousel', [index, duration, true]);
}
$thumbs.find('.img-thumbnail').removeClass('selected');
$thumbs.find('.img-thumbnail:eq(' + index + ')').addClass('selected');
$thumbs.data('currentThumb', index);
flag=false;
}}
});
}).apply(this, [window.theme, jQuery]);
(function(theme, $){
theme=theme||{};
$.extend(theme, {
WooQuickView: {
initialize: function(){
this.events();
return this;
},
events: function(){
var self=this;
$(document).on('click', '.quickview', function(e){
e.preventDefault();
if(!$.fn.elevateZoom&&!$('#porto-script-jquery-elevatezoom').length){
var js=document.createElement('script');
js.id='porto-script-jquery-elevatezoom';
$(js).appendTo('body').attr('src', js_porto_vars.ajax_loader_url.replace('/images/ajax-loader@2x.gif', '/js/libs/jquery.elevatezoom.min.js'));
}
var $this=$(this),
pid=$this.attr('data-id');
function init_quick_view_window(){
var args={
href: theme.ajax_url,
ajax: {
data: {
action: 'porto_product_quickview',
variation_flag: typeof wc_add_to_cart_variation_params!=='undefined',
pid: pid,
nonce: js_porto_vars.porto_nonce
}},
type: 'ajax',
helpers: {
overlay: {
locked: true,
fixed: true
}},
tpl: {
error: '<p class="fancybox-error">' + theme.request_error + '</p>',
closeBtn: '<a title="' + js_porto_vars.popup_close + '" class="fancybox-item fancybox-close" href="javascript:;"></a>',
next: '<a title="' + js_porto_vars.popup_next + '" class="fancybox-nav fancybox-next" href="javascript:;"><span></span></a>',
prev: '<a title="' + js_porto_vars.popup_prev + '" class="fancybox-nav fancybox-prev" href="javascript:;"><span></span></a>'
},
autoSize: true,
autoWidth: true,
afterShow: function(flag){
theme.requestTimeout(function(){
if(typeof flag=='undefined'||flag){
porto_woocommerce_init();
}
theme.WooProductImageSlider.initialize($('.quickview-wrap-' + pid).find('.product-image-slider'));
if($(document.body).hasClass('yith-booking')){
$(document).trigger('yith-wcbk-init-booking-form');
}
var form_variation=$('.quickview-wrap-' + pid).find('form.variations_form');
if(form_variation.length > 0){
form_variation.wc_variation_form();
}
$(document.body).trigger('porto_init_countdown', [$('.quickview-wrap-' + pid)]);
if(( 'undefined'!==typeof yith_wcwl_l10n)&&yith_wcwl_l10n.enable_ajax_loading){
if($('.fancybox-opened .wishlist-fragment').length){
var options={},
$product=$('.fancybox-opened .wishlist-fragment'),
id=$product.attr('class').split(' ').filter(( val)=> {
return val.length&&val!=='exists';
}).join(yith_wcwl_l10n.fragments_index_glue);
options[id]=$product.data('fragment-options');
if(!options){
return;
}
var ajaxData={
action: yith_wcwl_l10n.actions.load_fragments,
context: 'frontend',
fragments: options
};
if(typeof yith_wcwl_l10n.nonce!='undefined'){
ajaxData.nonce=yith_wcwl_l10n.nonce.load_fragments_nonce;
}
$.ajax({
ajaxData,
method: 'post',
success: function(data){
if(typeof data.fragments!=='undefined'){
$.each(data.fragments, function(i, v){
var itemSelector='.' + i.split(yith_wcwl_l10n.fragments_index_glue).filter(( val)=> { return val.length&&val!=='exists'&&val!=='with-count'; }).join('.'),
toReplace=$(itemSelector);
var replaceWith=$(v).filter(itemSelector);
if(!replaceWith.length){
replaceWith=$(v).find(itemSelector);
}
if(toReplace.length&&replaceWith.length){
toReplace.replaceWith(replaceWith);
}});
}},
url: yith_wcwl_l10n.ajax_url
});
}}
}, 200);
},
onUpdate: function(){
theme.requestTimeout(function(){
if(js_porto_vars.use_skeleton_screen.indexOf('quickview')==-1||!js_porto_vars.quickview_skeleton){
porto_woocommerce_init();
}
var $slider=$('.quickview-wrap-' + pid).find('.product-image-slider');
if(typeof $slider.data('owl.carousel')!='undefined'&&typeof $slider.data('owl.carousel')._invalidated!='undefined')
$slider.data('owl.carousel')._invalidated.width=true;
$slider.trigger('refresh.owl.carousel');
$(document.body).trigger('porto_init_countdown', [$('.quickview-wrap-' + pid)]);
}, 300);
}};
if(js_porto_vars.use_skeleton_screen.indexOf('quickview')!=-1&&js_porto_vars.quickview_skeleton){
delete args['href'];
delete args['ajax'];
args['type']='inline';
$.fancybox.open(js_porto_vars.quickview_skeleton,
args
);
$.ajax({
url: theme.ajax_url,
type: 'post',
dataType: 'html',
data: {
action: 'porto_product_quickview',
variation_flag: typeof wc_add_to_cart_variation_params!=='undefined',
pid: pid,
nonce: js_porto_vars.porto_nonce
},
success: function(res){
var $res=$(res);
$res.imagesLoaded(function(){
$('.skeleton-body.product').replaceWith($res);
theme.WooQtyField.initialize();
$(window).trigger('resize');
args['afterShow'].call(false);
});
}});
}else{
$.fancybox(args);
}}
if($.fn.fancybox){
init_quick_view_window();
}else if(!$('#porto-script-jquery-fancybox').length){
var js1=document.createElement('script');
js1.id='porto-script-jquery-fancybox';
$(js1).appendTo('body').on('load', function(){
init_quick_view_window();
}).attr('src', js_porto_vars.ajax_loader_url.replace('/images/ajax-loader@2x.gif', '/js/libs/jquery.fancybox.min.js'));
}
return false;
});
if(typeof wc_add_to_cart_params!='undefined'){
$(document.body).on('click', '.single-product .single_add_to_cart_button:not(.disabled)', function(e){
if($(this).closest('.single-product').hasClass('product-type-external')||$(this).closest('.single-product').hasClass('product-type-grouped')){
return true;
}
e.preventDefault();
var $button=$(this),
product_id=$button.val(),
variation_id=$button.closest('form').find('input[name="variation_id"]').val(),
quantity=$button.closest('form').find('input[name="quantity"]').val();
if($button.hasClass('loading')){
return false;
}
$button.removeClass('added');
$button.addClass('loading');
$button.parent().addClass('porto-ajax-loading');
if(!$button.siblings('.porto-loading-icon').length){
$('<span class="porto-loading-icon"></span>').insertAfter($button);
}
var data={
action: 'porto_add_to_cart',
product_id: variation_id ? variation_id:product_id,
quantity: quantity
};
if(variation_id){
var $variations=$button.closest('form').find('.variations select');
if($variations.length){
$variations.each(function(){
var name=$(this).data('attribute_name'),
val=$(this).val();
if(name&&val){
data[name]=val;
}});
}}
$(document.body).trigger('adding_to_cart', [$button, data]);
$.ajax({
type: 'POST',
url: theme.ajax_url,
data: data,
dataType: 'json',
success: function(response){
$button.parent().removeClass('porto-ajax-loading');
if(!response){
return;
}
if(response.error&&response.product_url){
window.location=response.product_url;
return;
}
if(wc_add_to_cart_params.cart_redirect_after_add==='yes'){
window.location=wc_add_to_cart_params.cart_url;
return;
}
$(document.body).trigger('added_to_cart', [response.fragments, response.cart_hash, $button]);
}});
});
}
return self;
}}
});
}).apply(this, [window.theme, jQuery]);
(function(theme, $){
theme=theme||{};
$.extend(theme, {
WooQtyField: {
initialize: function(){
this.build()
.events();
return this;
},
qty_handler: function(){
var $obj=$(this);
if($obj.closest('.quantity').next('.add_to_cart_button[data-quantity]').length){
var count=$obj.val();
if(count){
$obj.closest('.quantity').next('.add_to_cart_button[data-quantity]').attr('data-quantity', count);
}}
},
build: function(){
var self=this;
$('div.quantity:not(.buttons_added), td.quantity:not(.buttons_added)').addClass('buttons_added').append('<button type="button" value="+" class="plus">+</button>').prepend('<button type="button" value="-" class="minus">-</button>');
$('input.qty:not(.product-quantity input.qty)').each(function(){
var min=parseFloat($(this).attr('min'));
if(min&&min > 0&&parseFloat($(this).val()) < min){
$(this).val(min);
}});
$('input.qty:not(.product-quantity input.qty)').off('change', self.qty_handler).on('change', self.qty_handler);
$(document).off('click', '.quantity .plus, .quantity .minus').on('click', '.quantity .plus, .quantity .minus', function(){
var $qty=$(this).closest('.quantity').find('.qty'),
currentVal=parseFloat($qty.val()),
max=parseFloat($qty.attr('max')),
min=parseFloat($qty.attr('min')),
step=$qty.attr('step');
if(!currentVal||currentVal===''||currentVal==='NaN') currentVal=0;
if(max===''||max==='NaN') max='';
if(min===''||min==='NaN') min=0;
if(step==='any'||step===''||step===undefined||parseFloat(step)==='NaN') step=1;
if($(this).is('.plus')){
if(max&&(max==currentVal||currentVal > max)){
$qty.val(max);
}else{
$qty.val(currentVal + parseFloat(step));
}}else{
if(min&&(min==currentVal||currentVal < min)){
$qty.val(min);
}else if(currentVal > 0){
$qty.val(currentVal - parseFloat(step));
}}
$qty.trigger('change');
});
return self;
},
events: function(){
var self=this;
$(document).ajaxComplete(function(event, xhr, options){
self.build();
});
return self;
}}
});
}).apply(this, [window.theme, jQuery]);
(function(theme, $){
theme=theme||{};
var duration=300;
$.extend(theme, {
WooVariationForm: {
initialize: function(){
this.init().events();
return this;
},
init: function(){
$('.variations_form').each(function(){
var $variation_form=$(this),
$reset_variations=$variation_form.find('.reset_variations');
if($reset_variations.css('visibility')=='hidden')
$reset_variations.hide();
});
return this;
},
events: function(){
var self=this;
$(document).on('check_variations', '.variations_form', function(event, exclude, focus){
var $variation_form=$(this),
$reset_variations=$variation_form.find('.reset_variations');
if($reset_variations.css('visibility')=='hidden')
$reset_variations.hide();
});
$(document).on('reset_image', '.variations_form', function(event){
var $product=$(this).closest('.product, .product-col'),
$product_img=$product.find('div.product-images .woocommerce-main-image');
if($product.hasClass('product-col')){
$product_img=$product.find('div.product-image .inner img:first-child');
}else if($product.hasClass('porto-tb-item')){
$product_img=$product.find('.porto-tb-featured-image img').eq(0);
}
var o_src=$product_img.attr('data-o_src'),
o_title=$product_img.attr('data-o_title'),
o_href=$product_img.attr('data-o_href'),
$thumb_img=$product.find('.woocommerce-main-thumb'),
o_thumb_src=$thumb_img.attr('data-o_src');
var $image_slider=$product.find('.product-image-slider'),
$thumbs_slider=$product.find('.product-thumbs-slider'),
links;
if($image_slider.length){
$image_slider.trigger('to.owl.carousel', [0, duration, true]);
links=$image_slider.data('links');
}
if($thumbs_slider.length){
$thumbs_slider.trigger('to.owl.carousel', [0, duration, true]);
$thumbs_slider.find('.owl-item:eq(0)').trigger('click');
}
if(o_src){
$product_img
.attr('src', o_src)
.attr('srcset', '')
.attr('alt', o_title)
.attr('href', o_href);
$product_img.each(function(){
var elevateZoom=$(this).data('elevateZoom');
if(typeof elevateZoom!='undefined'){
elevateZoom.swaptheimage($(this).attr('src'), $(this).attr('src'));
}});
if(theme.product_image_popup&&typeof links!='undefined'){
links[0].src=o_href;
links[0].title=o_title;
}}
if(o_thumb_src){
$thumb_img.attr('src', o_thumb_src);
}});
$(document).on('found_variation', '.variations_form', function(event, variation){
if(typeof variation=='undefined'){
return;
}
var $product=$(this).closest('.product, .product-col'),
$image_slider=$product.find('.product-image-slider'),
$thumbs_slider=$product.find('.product-thumbs-slider'),
links;
if($image_slider.length){
$image_slider.trigger('to.owl.carousel', [0, duration, true]);
links=$image_slider.data('links');
}
if($thumbs_slider.length){
$thumbs_slider.trigger('to.owl.carousel', [0, duration, true]);
$thumbs_slider.find('.owl-item:eq(0)').trigger('click');
}
var $shop_single_image=$product.find('div.product-images .woocommerce-main-image').length ? $product.find('div.product-images .woocommerce-main-image'):$('.single-product div.product-images .woocommerce-main-image'),
productimage=$shop_single_image.attr('data-o_src'),
imagetitle=$shop_single_image.attr('data-o_title'),
imagehref=$shop_single_image.attr('data-o_href'),
$shop_thumb_image=$product.find('.woocommerce-main-thumb'),
thumbimage=$shop_thumb_image.attr('data-o_src'),
variation_image=variation.image_src,
variation_link=variation.image_link,
variation_title=variation.image_title,
variation_thumb=variation.image_thumb;
if($product.hasClass('product-col')){
$shop_single_image=$product.find('div.product-image .inner img:first-child');
variation_image=variation.image.thumb_src;
}else if($product.hasClass('porto-tb-item')){
$shop_single_image=$product.find('.porto-tb-featured-image img').eq(0);
variation_image=variation.image.thumb_src;
}
if(!productimage){
productimage=$shop_single_image.attr('data-oi') ? $shop_single_image.attr('data-oi'):(( !$shop_single_image.attr('src')) ? '':$shop_single_image.attr('src'));
$shop_single_image.attr('data-o_src', productimage);
}
if(!imagehref){
imagehref=(!$shop_single_image.attr('href')) ? '':$shop_single_image.attr('href');
$shop_single_image.attr('data-o_href', imagehref);
}
if(!imagetitle){
imagetitle=(!$shop_single_image.attr('alt')) ? '':$shop_single_image.attr('alt');
$shop_single_image.attr('data-o_title', imagetitle);
}
if(!thumbimage){
thumbimage=$shop_thumb_image.attr('data-oi') ? $shop_thumb_image.attr('data-oi'):(( !$shop_thumb_image.attr('src')) ? '':$shop_thumb_image.attr('src'));
$shop_thumb_image.attr('data-o_src', thumbimage);
}
if(variation_image){
$shop_single_image.attr('src', variation_image);
$shop_single_image.attr('srcset', '');
$shop_single_image.attr('alt', variation_title);
$shop_single_image.attr('href', variation_link);
$shop_thumb_image.attr('src', variation_thumb);
if(theme.product_image_popup&&typeof links!='undefined'){
links[0].src=variation_link;
links[0].title=variation_title;
}}else{
$shop_single_image.attr('src', productimage);
$shop_single_image.attr('srcset', '');
$shop_single_image.attr('alt', imagetitle);
$shop_single_image.attr('href', imagehref);
$shop_thumb_image.attr('src', thumbimage);
if(theme.product_image_popup&&typeof links!='undefined'){
links[0].src=imagehref;
links[0].title=imagetitle;
}}
$shop_single_image.each(function(){
var elevateZoom=$(this).data('elevateZoom');
if(typeof elevateZoom!='undefined'){
elevateZoom.swaptheimage($(this).attr('src'), $(this).attr('src'));
}});
});
var porto_fb_update_trigger=null;
$(document).on('found_variation reset_image', '.variations_form', function(event, variation){
if($(this).closest('.fancybox-inner').length&&$.fancybox){
$(window).off('resize.fb', $.fancybox.update);
if(porto_fb_update_trigger){
theme.deleteTimeout(porto_fb_update_trigger);
}
porto_fb_update_trigger=theme.requestTimeout(function(){
$(window).on('resize.fb', $.fancybox.update);
porto_fb_update_trigger=false;
}, 160);
}});
return self;
}}
});
}).apply(this, [window.theme, jQuery]);
(function(theme, $){
theme=theme||{};
$.extend(theme, {
WooEvents: {
initialize: function(){
this.events();
return this;
},
events: function(){
var self=this;
$('.wcml-switcher li').on('click', function(){
if($(this).parent().attr('disabled')=='disabled')
return;
var currency=$(this).attr('rel');
self.loadCurrency(currency);
});
$('.woocs-switcher li').on('click', function(){
if($(this).parent().attr('disabled')=='disabled')
return;
var currency=$(this).attr('rel');
self.loadWoocsCurrency(currency);
});
return self;
},
loadCurrency: function(currency){
$('.wcml-switcher').attr('disabled', 'disabled');
$('.wcml-switcher').append('<li class="loading"></li>');
var data={ action: 'wcml_switch_currency', currency: currency };
$.ajax({
type: 'post',
url: theme.ajax_url,
data: {
action: 'wcml_switch_currency',
currency: currency
},
success: function(response){
$('.wcml-switcher').removeAttr('disabled');
$('.wcml-switcher').find('.loading').remove();
window.location=window.location.href;
}});
},
loadWoocsCurrency: function(currency){
$('.woocs-switcher').attr('disabled', 'disabled');
$('.woocs-switcher').append('<li class="loading"></li>');
var l=window.location.href;
l=l.split('?');
l=l[0];
var string_of_get='?';
woocs_array_of_get.currency=currency;
if(Object.keys(woocs_array_of_get).length > 0){
jQuery.each(woocs_array_of_get, function(index, value){
string_of_get=string_of_get + "&" + index + "=" + value;
});
}
window.location=l + string_of_get;
},
removeParameterFromUrl: function(url, parameter){
return url
.replace(new RegExp('[?&]' + parameter + '=[^&#]*(#.*)?$'), '$1')
.replace(new RegExp('([?&])' + parameter + '=[^&]*&'), '$1');
}}
});
}).apply(this, [window.theme, jQuery]);
(function(theme, $){
$(document).ready(function(){
if(typeof theme.WooQtyField!=='undefined'){
theme.WooQtyField.initialize();
}
if(typeof theme.WooQuickView!=='undefined'){
theme.WooQuickView.initialize();
}
if(typeof theme.WooEvents!=='undefined'){
theme.WooEvents.initialize();
}
if(!('ontouchstart' in document)){
$('.mini-cart').on('hide.bs.dropdown', function(){
return false;
});
}else{
$('#mini-cart .cart-head').on('click', function(e){
$(this).parent().toggleClass('open');
});
$('html,body').on('click', function(e){
if($('#mini-cart').hasClass('open')&&!$(e.target).closest('#mini-cart').length){
$('#mini-cart').removeClass('open');
}});
}
$(document).on('tabactivate', '.woocommerce-tabs', function(e, ui){
var label=$(ui).attr('aria-controls');
var panel=$('[aria-labelledby="' + label + '"');
theme.refreshVCContent(panel);
});
});
}).apply(this, [window.theme, jQuery]);
(function(theme, $, undefined){
$(document).ready(function(){
$('.product-col .quickview, .product-col .add_to_cart_read_more, .product-col .add_to_cart_button, .product-col a.compare, .product-col .add_to_wishlist, .product-col .yith-wcwl-wishlistaddedbrowse > a, .product-col .yith-wcwl-wishlistexistsbrowse > a').each(function(){
let _this=$(this);
let $productCol=_this.closest('.product-col');
if(_this.closest('.porto-tb-woo-link').hasClass('no-tooltip')){
return;
}
if(_this.hasClass('add_to_cart_read_more')||_this.hasClass('add_to_cart_button')){
if($productCol.hasClass('product-wq_onimage')||$productCol.hasClass('product-onimage')||$productCol.hasClass('product-outimage')||$productCol.hasClass('product-default')){
return;
}
if(_this.closest('ul.products').hasClass('list')){
return;
}}
if(_this.hasClass('quickview')){
if($productCol.hasClass('product-wq_onimage')||$productCol.hasClass('product-onimage3')||$productCol.hasClass('product-onimage2')||$productCol.hasClass('product-onimage')||$productCol.hasClass('product-outimage_aq_onimage')){
return;
}}
if(! _this.attr('title')){
_this.attr('title', _this.text().trim());
}
_this.tooltip();
});
$(document).on('yith_wcwl_init_after_ajax', function(){
$('.product-col .add_to_wishlist:not([data-bs-original-title]), .product-col .yith-wcwl-wishlistaddedbrowse > a:not([data-bs-original-title]), .product-col .yith-wcwl-wishlistexistsbrowse > a:not([data-bs-original-title])').each(function(){
let _this=$(this);
if(! _this.attr('title')){
_this.attr('title', _this.text().trim());
}
_this.tooltip();
});
});
theme.WooVariationForm.initialize();
if(typeof theme.initAsync=='function'){
theme.WooProductImageSlider.initialize();
porto_woocommerce_init();
}else{
$.when(theme.asyncDeferred).done(function(){
theme.WooProductImageSlider.initialize();
porto_woocommerce_init();
});
}
if(typeof theme.salesPopup!=='undefined'&&!document.getElementById('yith-woocompare')&&window.Worker){
theme.salesPopup.initialize();
}
$(window).on('vc_reload', function(){
porto_woocommerce_init();
$('.type-product').addClass('product');
});
$(document).on('click', '.porto-product-filters-toggle a', function(e){
e.preventDefault();
$(this).closest('.porto-product-filters-toggle').toggleClass('opened');
var $products_wrapper=$(this).closest('#main').find('.main-content').find('ul.products'), offset, $main=$(this).closest('#main').find('.main-content-wrap');
$main.toggleClass('opened');
if($main.hasClass('opened')){
offset=-1;
}else{
offset=1;
}
if($products_wrapper.hasClass('grid')){
var cols_lg_index=0, cols_md_index=0, width_lg_index=0, width_md_index=0;
for(var i=1; i <=8; i++){
if(!cols_lg_index&&$products_wrapper.hasClass('pcols-lg-' + i)){
cols_lg_index=i;
if(i + offset >=1){
$products_wrapper.removeClass('pcols-lg-' + i);
$products_wrapper.addClass('pcols-lg-' +(i + offset));
}}
if(!cols_md_index&&$products_wrapper.hasClass('pcols-md-' + i)){
cols_md_index=i;
if(i + offset >=1){
$products_wrapper.removeClass('pcols-md-' + i);
if(offset===-1){
$products_wrapper.addClass('pcols-sm-' + i);
}
$products_wrapper.addClass('pcols-md-' +(i + offset));
}}
if(!width_lg_index&&$products_wrapper.hasClass('pwidth-lg-' + i)){
width_lg_index=i;
if(i + offset >=1){
$products_wrapper.removeClass('pwidth-lg-' + i);
$products_wrapper.addClass('pwidth-lg-' +(i + offset));
}}
if(!width_md_index&&$products_wrapper.hasClass('pwidth-md-' + i)){
width_md_index=i;
if(i + offset >=1){
$products_wrapper.removeClass('pwidth-md-' + i);
$products_wrapper.addClass('pwidth-md-' +(i + offset));
}}
}}
theme.requestTimeout(function(){
$(window).trigger('scroll');
$(document).find('.owl-carousel').each(function(e){
var $this=$(this);
if($this.data('owl.carousel')){
$this.trigger('refresh.owl.carousel');
}});
$(document).find('.swiper-container').each(function(e){
var $this=$(this),
$instance=$this.data('swiper');
if($instance){
$instance.update();
}});
}, 300);
if($main.hasClass('opened')){
$.cookie('porto_horizontal_filter', 'opened');
}else{
$.cookie('porto_horizontal_filter', 'closed');
}
theme.refreshStickySidebar(true);
return false;
});
if($.cookie&&'opened'==$.cookie('porto_horizontal_filter')&&$('#main .porto-products-filter-body').length&&!theme.isTablet()){
$('.porto-product-filters-toggle a').trigger('click');
$('#main .porto-products-filter-body [data-plugin-sticky]:not(.manual)').addClass('manual');
setTimeout(function(){
var $obj=$('#main .porto-products-filter-body [data-plugin-sticky].manual'),
pluginOptions=$obj.data('plugin-options');
$obj.removeClass('manual').themeSticky(pluginOptions);
theme.requestTimeout(function(){
$(window).trigger('scroll');
}, 100);
}, 500);
}
$(document).on('click', '.porto-product-filters.style2 .widget-title', function(e){
e.preventDefault();
if($(this).next().is(':hidden')){
$('.porto-product-filters.style2 .widget-title').next().hide();
$('.porto-product-filters.style2 .widget').removeClass('opened');
$(this).next().show();
$(this).next().find('input[type="text"]:first-child').focus();
}else{
$(this).next().hide();
}
$(this).parent().toggleClass('opened');
return false;
});
$('body').on('click', function(e){
if(!$(e.target).is('.porto-product-filters')&&!$(e.target).is('.porto-product-filters *')){
$('.porto-product-filters.style2 .widget-title').next().hide();
$('.porto-product-filters.style2 .widget').removeClass('opened');
}});
$('body').on('click', '#login-form-popup form .woocommerce-Button', function(e){
var $this=$(this),
$form=$this.closest('form'),
isLogin=$this.hasClass('login-btn');
if(!isLogin&&!$this.hasClass('register-btn')){
isLogin=$form.hasClass('login');
}
$form.find('#email').val($form.find('#username').val());
$form.find('p.status').show().text('Please wait...').addClass('loading');
$form.find('button[type=submit]').attr('disabled', 'disabled');
$.ajax({
type: 'POST',
dataType: 'json',
url: theme.ajax_url,
data: $form.serialize() + '&action=porto_account_login_popup_' +(isLogin ? 'login':'register'),
success: function(data){
$form.find('p.status').html(data.message.replace('/<script.*?\/script>/s', '')).removeClass('loading');
$form.find('button[type=submit]').removeAttr('disabled');
if(data.loggedin===true){
window.location.reload();
}}
});
e.preventDefault();
});
var $ajax_tab_cache={};
$(document).on('click', '.porto-products.show-category .product-categories a', function(e){
e.preventDefault();
var $this=$(this), $form=$this.closest('.porto-products').find('.pagination-form'), id=$this.closest('.porto-products').attr('id'), group=[];
$(this).parent().siblings().removeClass('current');
$(this).parent().addClass('current');
if(typeof $this.data('sort_id')!='undefined'){
$form.find('input[name="orderby"]').val($this.data('sort_id'));
group=$this.data('sort_id');
$form.find('input[name="category"]').val('');
}
if(typeof $this.data('cat_id')!='undefined'){
if(typeof $this.data('sort_id')=='undefined'){
$form.find('input[name="orderby"]').val($form.find('input[name="original_orderby"]').val());
group=$form.find('input[name="original_orderby"]').val();
}
if(typeof $form.data('original_cat_id')=='undefined'){
$form.data('original_cat_id', $form.find('input[name="category"]').val());
group=$form.find('input[name="category"]').val();
}
if($this.data('cat_id')){
$form.find('input[name="category"]').val($this.data('cat_id'));
group=$this.data('cat_id');
}else{
if($form.data('original_cat_id')){
$form.find('input[name="category"]').val($form.data('original_cat_id'));
group=$form.data('original_cat_id');
}else{
$form.find('input[name="category"]').val('');
group='';
}}
}
var data=$form.serialize() + '&product-page=1&action=porto_woocommerce_shortcodes_products&nonce=' + js_porto_vars.porto_nonce;
$this.closest('.porto-products').find('ul.products').trigger('porto_update_products', [data, '', $this, id, group]);
});
$(document).on('click', '.porto-products .page-numbers a', function(e){
var $this=$(this), pagination_style,
$shop_container=$this.closest('.porto-products').find('ul.products'),
cur_page=$shop_container.data('cur_page'),
max_page=$shop_container.data('max_page'),
$form=$this.closest('.porto-products').find('.pagination-form');
e.preventDefault();
if($this.closest('.pagination').hasClass('load-more')){
if(!cur_page||!max_page||++cur_page > max_page){
return;
}
pagination_style='load_more';
$this.data('text', $this.text());
$this.text(js_porto_vars.loader_text);
}else{
var url=new RegExp("product-page(=|/)([^(&|/)]*)", "i").exec(this.href);
cur_page=url&&unescape(url[2])||"";
pagination_style='default';
}
var page_var=cur_page ? '&product-page=' + escape(cur_page):'', data=$form.serialize() + page_var + '&action=porto_woocommerce_shortcodes_products&nonce=' + js_porto_vars.porto_nonce;
$shop_container.trigger('porto_update_products', [data, pagination_style, $this]);
if('default'==pagination_style){
theme.scrolltoContainer($shop_container);
}});
$(document).on('porto_update_products', 'ul.products', function(e, data, pagination_style, $obj, id, group){
var $this=$(this);
if(undefined==$ajax_tab_cache[id]||-1==Object.keys($ajax_tab_cache[id]).indexOf(group)){
porto_ajax_load_products($this, data, pagination_style, $ajax_tab_cache, id, group);
}else{
var response=$ajax_tab_cache[id][group];
$this.css('opacity', 0);
$this.animate({
'opacity': 1,
},
400,
function(){
$this.css('opacity', '');
}
);
porto_ajax_load_products_success($this, response, pagination_style);
}});
});
$('.porto-onepage-category.show-products .category-section .sub-category').children('.cat-item').addClass('product-col');
$(document).on('click', '.porto-onepage-category .sub-category a', function(e){
var $this=$(this), category, data;
category=new RegExp("cat-item-([^(|\")]*)", "i").exec($this.parent().attr('class'));
category=category&&unescape(category[1])||"";
if(category){
data=$this.closest('.category-details').find('.ajax-form').serialize() + '&action=porto_woocommerce_shortcodes_products&category_description=true&category=' + category + '&nonce=' + js_porto_vars.porto_nonce;
e.preventDefault();
$this.closest('.category-section').find('.woocommerce > ul.products').trigger('porto_update_products', [data, '']);
}});
var scrollspyData=null;
$(document).on('porto_theme_init', function(){
if($('.porto-onepage-category.show-products').length&&typeof bootstrap!='undefined'){
document.body.style.position='relative';
scrollspyData=new bootstrap.ScrollSpy('body', { target: '.porto-onepage-category.show-products .category-list', offset: theme.StickyHeader.sticky_height + theme.adminBarHeight() + theme.sticky_nav_height + 20 });
var previousScrollTop=0, $loadObj;
window.addEventListener('scroll', function(){
if(!$('.porto-onepage-category.show-products.ajax-load .category-section:not(.ajax-loaded)').length){
return;
}
var currentScrollTop=$(window).scrollTop();
if(previousScrollTop > currentScrollTop){
$loadObj=$('.porto-onepage-category.show-products.ajax-load .category-section:not(.ajax-loaded)').last();
}else{
$loadObj=$('.porto-onepage-category.show-products.ajax-load .category-section:not(.ajax-loaded)').eq(0);
}
previousScrollTop=$(window).scrollTop();
if(!$loadObj.closest('.porto-onepage-category').hasClass('loading')&&($loadObj.offset().top <=$(window).scrollTop() + $(window).innerHeight() * 0.7)){
$loadObj.trigger('porto_load_category_products');
}}, { passive: true });
}
var $sticky_product_obj=$('.single-product .sticky-product'),
is_elementor_editor=$(document.body).hasClass('elementor-editor-active');
var init_sticky_add_to_cart_fn=function($sticky_product_obj, is_elementor_editor){
if(is_elementor_editor&&elementorFrontend&&elementorFrontend.hooks){
elementorFrontend.hooks.addAction('frontend/element_ready/porto_cp_addcart_sticky.default', function($obj){
$sticky_product_obj=$('.single-product .sticky-product');
window.dispatchEvent(new Event('scroll'));
});
}
window.addEventListener('scroll', function(){
var scrollTop=$(window).scrollTop(),
offset=theme.adminBarHeight() + theme.StickyHeader.sticky_height;
if($('form.cart').length&&$('form.cart').offset().top + $('form.cart').height() / 2 <=scrollTop + offset){
$sticky_product_obj.removeClass('hide');
if(!$sticky_product_obj.hasClass('pos-bottom')){
$sticky_product_obj.css('top', offset);
}}else{
$sticky_product_obj.addClass('hide');
}}, { passive: true });
$sticky_product_obj.find('.add-to-cart .button').on('click', function(e){
e.preventDefault();
if($sticky_product_obj.find('.add-to-cart .qty').length){
$('.single-product form .quantity .qty').filter(function(){
if($(this).closest('.product-col').length){
return false;
}
return true;
}).val($sticky_product_obj.find('.add-to-cart .qty').val());
}
$('.single-product form .single_add_to_cart_button').filter(function(){
if($(this).closest('.product-col').length){
return false;
}
return true;
}).trigger('click');
});
$('.single-product .entry-summary .quantity').clone().prependTo('.single-product .sticky-product .add-to-cart');
var origin_img=$sticky_product_obj.find('.sticky-image img').data('oi') ? $sticky_product_obj.find('.sticky-image img').data('oi'):$sticky_product_obj.find('.sticky-image img').attr('src'),
origin_price=$sticky_product_obj.find('.price').html(),
origin_stock=$sticky_product_obj.find('.availability').html(),
is_variation=false;
$(document).on('found_variation reset_data', '.variations_form', function(e, obj){
if(obj){
is_variation=true;
$sticky_product_obj.find('.sticky-image img').attr('src', obj.image_thumb ? obj.image_thumb:origin_img);
$sticky_product_obj.find('.price').replaceWith(obj.price_html);
$sticky_product_obj.find('.availability').html(obj.availability_html ? obj.availability_html:origin_stock);
}else if(is_variation){
is_variation=false;
$sticky_product_obj.find('.sticky-image img').attr('src', origin_img);
$sticky_product_obj.find('.price').html(origin_price);
$sticky_product_obj.find('.availability').html(origin_stock);
}});
};
if($sticky_product_obj.length||is_elementor_editor){
init_sticky_add_to_cart_fn($sticky_product_obj, is_elementor_editor);
}else{
$(document.body).on('porto_elementor_editor_init', function(){
var $sticky_product_obj=$('.single-product .sticky-product'),
is_elementor_editor=$(document.body).hasClass('elementor-editor-active');
if($sticky_product_obj.length||is_elementor_editor){
init_sticky_add_to_cart_fn($sticky_product_obj, is_elementor_editor);
}});
}
if(1===$('.shop-loop-before').length&&$('.mobile-sidebar').length){
var porto_progress_obj=$('.porto-scroll-progress.fixed-under-header'),
porto_progress_height=0;
if(porto_progress_obj.length){
var flag=false;
if(porto_progress_obj.is(':hidden')){
porto_progress_obj.show();
flag=true;
}
porto_progress_height=porto_progress_obj.height();
if(flag){
porto_progress_obj.hide();
}}else{
porto_progress_height=0;
}
var init_filter_sticky=function(){
var $obj=$('.shop-loop-before'),
prevScrollPos=$obj.data('prev-pos') ? $obj.data('prev-pos'):0,
scrollUpOffset=0,
$pageWrapper=$('.page-wrapper');
if(!$obj.prev('.filter-placeholder').length){
$('<div class="filter-placeholder m-0"></div>').insertBefore($obj);
}
var $ph=$obj.prev('.filter-placeholder'),
scrollTop=$(window).scrollTop(),
offset=theme.adminBarHeight() + theme.StickyHeader.sticky_height + porto_progress_height - 1,
objHeight=$obj.outerHeight() + parseInt($obj.css('margin-bottom'));
if($('.page-wrapper').hasClass('sticky-scroll-up')&&! $('html').hasClass('porto-search-opened')){
if(scrollTop >=prevScrollPos){
$obj.addClass('scroll-down');
}else{
$obj.removeClass('scroll-down');
}
scrollUpOffset=- theme.StickyHeader.sticky_height;
if('undefined'==typeof(theme.StickyHeader.sticky_height)){
$obj.data('prev-pos', 0);
}else{
var $transitionOffset=(offset > 100) ? offset:100;
if($ph.offset().top + objHeight + $transitionOffset < scrollTop + offset + scrollUpOffset){
$obj.addClass('sticky-ready');
}else{
$obj.removeClass('sticky-ready');
}
$obj.data('prev-pos', scrollTop);
}}
if($('html.filter-sidebar-opened').length){
$ph.css('height', '');
return;
}
if(( $ph.offset().top + objHeight < scrollTop + offset + scrollUpOffset)){
if(! $pageWrapper.hasClass('sticky-scroll-up')||($pageWrapper.hasClass('sticky-scroll-up')&&0!==prevScrollPos)){
$ph.css('height', objHeight);
$obj.css('top', offset);
$obj.addClass('sticky');
}}else{
$ph.css('height', '');
$obj.removeClass('sticky').css('top', '');
}};
if(window.innerWidth < 992){
window.removeEventListener('scroll', init_filter_sticky);
window.addEventListener('scroll', init_filter_sticky, { passive: true });
init_filter_sticky();
}
var request_timer=null,
old_win_width=window.innerWidth;
$(window).on('resize', function(){
if(old_win_width!=window.innerWidth){
if(request_timer){
theme.deleteTimeout(request_timer);
request_timer=false;
}
if(window.innerWidth < 992){
request_timer=theme.requestTimeout(function(){
window.removeEventListener('scroll', init_filter_sticky);
window.addEventListener('scroll', init_filter_sticky, { passive: true });
$(window).trigger('scroll');
}, 100);
}else{
window.removeEventListener('scroll', init_filter_sticky);
$('.shop-loop-before').removeClass('sticky').css('top', '').prev('.filter-placeholder').css('height', '');
}
old_win_width=window.innerWidth;
}});
}});
$(document).on('click', '.porto-onepage-category.show-products .category-list .nav-link', function(e){
var $target=$($(this).attr('href'));
if(!$target.length){
return;
}
e.preventDefault();
if($(this).closest('.porto-onepage-category').hasClass('ajax-load')&&!$target.hasClass('ajax-loaded')){
$target.trigger('porto_load_category_products');
}
$target.closest('.porto-onepage-category').addClass('moving');
$('html, body').stop().animate({
scrollTop: $target.offset().top - theme.StickyHeader.sticky_height - theme.adminBarHeight() - theme.sticky_nav_height - 10
}, 600, 'easeOutQuad', function(){
$target.closest('.porto-onepage-category').removeClass('moving');
});
});
$(document).on('porto_load_category_products', '.category-section', function(){
var $target=$(this), cat_id=$target.attr('id').replace('category-', '');
if($target.closest('.porto-onepage-category').hasClass('loading')||$target.closest('.porto-onepage-category').hasClass('moving')||$target.hasClass('ajax-loaded')){
return false;
}
$target.css('min-height', 200);
$target.addClass('yith-wcan-loading');
if(!$target.children('.porto-loading-icon').length){
$target.append('<i class="porto-loading-icon"></i>');
}
$target.closest('.porto-onepage-category').addClass('loading');
var data=$target.closest('.porto-onepage-category').find('.ajax-form').serialize() + '&action=porto_woocommerce_shortcodes_products&category_description=true&category=' + cat_id + '&nonce=' + js_porto_vars.porto_nonce;
$.ajax({
url: theme.ajax_url,
data: data,
type: 'post',
success: function(response){
$target.addClass('ajax-loaded');
$target.append($(response).html());
$target.removeClass('yith-wcan-loading');
$(document).trigger('yith-wcan-ajax-filtered');
$(window).trigger('resize');
if(scrollspyData){
setTimeout(function(){
scrollspyData.refresh();
}, 300);
}
$target.closest('.porto-onepage-category').removeClass('loading');
}});
});
$('.cart-v2 .cart_totals .accordion-toggle.out').removeClass('out');
$(document).ajaxComplete(function(event, xhr, options){
$('.cart-v2 .cart_totals .accordion-toggle.out').each(function(){
if($($(this).attr('href')).length&&$($(this).attr('href')).is(':hidden')){
$(this).removeClass('collapsed');
$($(this).attr('href')).addClass('show');
}});
});
$('.porto_products_filter_form .btn-submit').on('click', function(e){
e.preventDefault();
var data=$(this).closest('form').serializeArray(),
submit_data='';
for(var i in data){
var param=data[i];
if(param.value){
if(submit_data){
submit_data +='&';
}
submit_data +=param.name + '=' + param.value;
if('min_price'==param.name){
var max_price=$(this).closest('form').find('.porto_dropdown_price_range option:selected').data('maxprice');
if(max_price){
submit_data +='&max_price=' + max_price;
}}
}}
location.href=$(this).closest('form').attr('action') + '?' + submit_data;
});
if($('.wishlist_table.responsive').length){
$(window).on('resize', function(){
var media=window.matchMedia('(max-width: 768px)'),
$wishlist_table=$('.wishlist_table.responsive');
if($wishlist_table.hasClass('traditional')){
if(media.matches){
$wishlist_table.addClass('mobile');
}else{
$wishlist_table.removeClass('mobile');
}}
});
}
if(js_porto_vars.pre_order){
var porto_pre_order={
init: function(){
this.$add_to_cart_btn=$('.product-summary-wrap .single_add_to_cart_button');
this.add_to_cart_label=this.$add_to_cart_btn.html();
$('.product-summary-wrap form.variations_form').on('show_variation', function(e, v, p){
if(v.porto_pre_order){
porto_pre_order.$add_to_cart_btn.html(v.porto_pre_order_label);
if(v.porto_pre_order_date){
$(this).find('.woocommerce-variation-description').append(v.porto_pre_order_date);
}}else{
porto_pre_order.$add_to_cart_btn.html(porto_pre_order.add_to_cart_label);
}}).on('hide_variation', function(){
porto_pre_order.$add_to_cart_btn.html(porto_pre_order.add_to_cart_label);
});
}};
if($('div.product.skeleton-loading').length){
$('div.product.skeleton-loading').on('skeleton-loaded', function(){
porto_pre_order.init();
});
}else{
porto_pre_order.init();
}}
if($('#header .my-wishlist .wishlist-count').length){
$(document.body).on('added_to_wishlist removed_from_wishlist added_to_cart', function(e){
var $obj=$('#header .my-wishlist .wishlist-count');
if($obj.text()){
$.ajax({
type: 'POST',
dataType: 'json',
url: theme.ajax_url,
data: {
action: 'porto_refresh_wishlist_count',
nonce: js_porto_vars.porto_nonce,
},
success: function(response){
if(response||0===response){
$obj.addClass('count-updating').text(Number(response));
setTimeout(function(){
$obj.removeClass('count-updating');
}, 1000);
}}
});
}});
}
if($(document.body).hasClass('woocommerce-cart')&&$('.wpcf7 .screen-reader-response').length){
$('.wpcf7 .screen-reader-response').attr('role', '');
}
$('#dokan-store-listing-filter-form-wrap .store-search-input').on('keydown', function(e){
if(e.which&&event.which==13){
$(this).closest('form').find('#apply-filter-btn').trigger('click');
e.preventDefault();
}});
if($.fn.block){
var funcBlock=$.fn.block;
$.fn.block=function(opts){
if(this.hasClass('yith-wcwl-add-to-wishlist')){
this.children().addClass('pe-none opacity-6');
return this;
}
if(this.is('.woocommerce-checkout')){
this.append('<div class="loader-container d-block"><div class="loader"><i class="porto-ajax-loader"></i></div></div>');
}
return funcBlock.call(this, opts);
}
var funcUnblock=$.fn.unblock;
$.fn.unblock=function(opts){
if(this.hasClass('yith-wcwl-add-to-wishlist')){
this.children().removeClass('pe-none opacity-6');
return this;
}
funcUnblock.call(this, opts);
this.is('.processing')||(this.is('.woocommerce-checkout')&&this.children('.loader-container').remove());
return this;
}}
})(window.theme, jQuery);
(function(theme, $){
'use strict';
theme=theme||{};
if(!js_porto_vars.sales_popup) return;
$.extend(theme, {
salesPopup: {
isCart: true,
popupContainer: null,
current: 0,
products: [],
worker: null,
initialize: function(){
if($('.after-loading-success-message.style-3').length==0){
$('body').append('<div class="after-loading-success-message style-3 d-block"></div>');
this.isCart=false;
this.popupContainer=$('.after-loading-success-message.style-3');
}else{
this.popupContainer=$('.after-loading-success-message.style-3');
this.popupContainer.eq(0).stop().show();
}
this.popupContainer.on('click', '.sales-close', function(){
var $obj=$(this).closest('.success-message-container');
$obj.removeClass('active');
setTimeout(function(){
$obj.slideUp(300, function(){
$obj.remove();
});
}, 350);
});
this.build();
return this;
},
appendContent: function(product){
var message=js_porto_vars.sales_popup.title,
link=product.link,
date=product.date,
image=product.image,
price=product.price,
title=product.title;
var $content=$('<div class="sales-msg success-message-container"><p class="sales-popup-title">' + message +
'</p><div class="msg-box mb-0"><div class="msg"><div class="product-name"><a href="' + link +
'"><h3 class="product-title font-weight-bold line-height-sm mb-1">' + title + '</h3></a></div>' + '<span class="price text-primary">'
+ price + '</span><p class="mt-1 mb-0' +(date=='not sale' ? ' d-none':'') + '">' + date + '</p></div><img src="' + image + '" alt="' + title + '"/></div><button class="sales-close mfp-close"></button></div>')
this.popupContainer.prepend($content);
setTimeout(function(){
$content.addClass('active');
}, 150);
setTimeout(function(){ $content.find('.sales-close').trigger('click'); }, 4000);
},
build: function(){
var self=this;
self.worker=new Worker(js_porto_vars.sales_popup.themeuri + '/inc/lib/woocommerce-sales-popup/worker.js');
self.worker.onmessage=function(e){
if(e.data&&e.data.title){
self.appendContent(e.data);
}};
self.worker.postMessage({ init: true, vars: js_porto_vars.sales_popup, ajaxurl: theme.ajax_url, nonce: js_porto_vars.porto_nonce });
return self;
}}
});
}).apply(this, [window.theme, jQuery]);
(function(theme, $){
'use strict';
theme=theme||{};
if(!js_porto_vars.compare_popup) return;
$.extend(theme, {
comparePopup: {
isCart: true,
popupContainer: null,
$el: null,
initialize: function($el){
this.$el=$el;
if($('.after-loading-success-message.style-3').length==0){
$('body').append('<div class="after-loading-success-message style-3 d-block"></div>');
this.isCart=false;
this.popupContainer=$('.after-loading-success-message.style-3');
}else{
this.popupContainer=$('.after-loading-success-message.style-3');
this.popupContainer.eq(0).stop().show();
}
this.popupContainer.on('click', '.compare-close', function(){
var $obj=$(this).closest('.success-message-container');
$obj.removeClass('active');
setTimeout(function(){
$obj.slideUp(300, function(){
$obj.remove();
});
}, 350);
});
this.build();
return this;
},
build: function(){
var self=this;
if(js_porto_vars.compare_popup){
var self=this,
isWishlistTable=$('.wishlist_table').length > 0 ? true:false,
$product=isWishlistTable ? self.$el.closest('tr'):self.$el.closest('.product'),
message=typeof js_porto_vars.compare_popup_title=='string' ? js_porto_vars.compare_popup_title:'',
link=isWishlistTable ? $product.find('.product-thumbnail a:first-child').attr('href'):($product.find('.product-image>a:first-child').length > 0 ? $product.find('.product-image>a:first-child').attr('href'):'#'),
image=isWishlistTable ? $product.find('.product-thumbnail img').attr('src'):($product.find('.product-inner .product-image img').length > 0 ? $product.find('.product-inner .product-image img').attr('src'):$product.find('.product-images .owl-item.active .img-thumbnail img').attr('src')),
price=isWishlistTable ? $product.find('.product-price').html():$product.find('.price').html(),
title=isWishlistTable ? $product.find('.product-name a').text():($product.find('.woocommerce-loop-product__title').length==1 ? $product.find('.woocommerce-loop-product__title').text():$product.find('.product_title').text());
if(!image&&$product.find('.product-image img').length){
image=$product.find('.product-image img').attr('src');
var _image=$product.find('.product-images img');
if($product.find('.product-image').closest('.product-nav')&&_image.length){
image=_image.attr('src');
if(_image.attr('data-oi')){
image=_image.attr('data-oi');
}}
}
if(!title&&$product.find('.product-image').length){
title=$product.find('.product-image').data('title');
}
var $content=$('<div class="compare-msg success-message-container"><p class="compare-popup-title">' + message +
'</p><div class="msg-box mb-0"><div class="msg"><div class="product-name"><a href="' + link +
'"><h3 class="product-title font-weight-bold line-height-sm mb-1">' + title + '</h3></a></div>' + '<span class="price text-primary">'
+ price + '</span></div><img src="' + image + '" alt="' + title + '"/></div><button class="compare-close mfp-close"></button></div>');
self.popupContainer.prepend($content);
setTimeout(function(){
$content.addClass('active');
}, 150);
setTimeout(function(){ $content.find('.compare-close').trigger('click'); }, 4000);
}
return self;
}}
});
}).apply(this, [window.theme, jQuery]);
(function(theme, $){
theme=theme||{};
$.extend(theme, {
porto_comapre_add_query_arg: function(key, value){
key=escape(key); value=escape(value);
var s=document.location.search;
var kvp=key + "=" + value;
var r=new RegExp("(&|\\?)" + key + "=[^\&]*");
s=s.replace(r, "$1" + kvp);
if(!RegExp.$1){ s +=(s.length > 0 ? '&':'?') + kvp; };
return s;
}});
$(document).ready(function(){
$('body').on('click', '.wishlist_table a.compare.added', function(e){
e.preventDefault();
$('body').trigger('yith_woocompare_open_popup', { response: theme.porto_comapre_add_query_arg('action', yith_woocompare.actionview) + '&iframe=true' });
});
$(document)
.off('click', '.product a.compare:not(.added)')
.on('click', '.product a.compare:not(.added), .wishlist_table a.compare:not(.added)', function(e){
e.preventDefault();
if(typeof theme.comparePopup!='undefined'){
theme.comparePopup.initialize($(this));
}
var button=$(this),
data={
action: yith_woocompare.actionadd,
id: button.data('product_id'),
context: 'frontend'
},
widget_list=$('.yith-woocompare-widget ul.products-list');
button.addClass('added');
$.ajax({
type: 'post',
url: yith_woocompare.ajaxurl.toString().replace('%%endpoint%%', yith_woocompare.actionadd),
data: data,
dataType: 'json',
success: function(response){
$('.yith-woocompare-open .compare-count').each(function(){
this.innerHTML=parseInt(this.innerHTML) + 1;
});
var added_icon_html='';
if(button.data('added_icon')){
added_icon_html +='<i class="' + button.data('added_icon') + '"></i>';
}
var added_label=yith_woocompare.added_label;
if('hide'==button.data('hide_title')){
added_label='';
}
button.attr('href', response.table_url)
.html(!button.data('icon_pos') ? added_icon_html + added_label:added_label + added_icon_html);
widget_list.html(response.widget_table);
if(( typeof yith_woocompare!='undefined')&&('yes'==yith_woocompare.auto_open)){
button.trigger('click');
}}
}).fail(function(){
button.removeClass('added');
});
});
});
$('body').on('click', 'a.yith-woocompare-open, .product a.compare.added, .wishlist_table a.compare.added', function(){
var scrollbarWidth=window.innerWidth - document.body.clientWidth;
$('html').css({ 'overflow': 'hidden', 'margin-right': scrollbarWidth });
});
$('body').on('click', '.yith_woocompare_colorbox #cboxClose, #cboxOverlay', function(){
$('html').css({ 'overflow': '', 'margin-right': '' });
});
$('body').on('yith_woocompare_open_popup', function(){
setTimeout(function(){
if($('body').find('iframe').length){
var childWindow=$('body').find('#cboxLoadedContent iframe')[0].contentWindow;
if(childWindow.jQuery){
childWindow.jQuery(childWindow).on('yith_woocompare_product_removed', function(){
$('.yith-woocompare-open .compare-count').each(function(){
this.innerHTML=Math.max(0, parseInt(this.innerHTML) - 1);
});
});
}}
}, 2000);
});
})(window.theme, window.jQuery);
})();
function porto_woocommerce_init($wrap){
'use strict';
if(!$wrap){
$wrap=jQuery(document.body);
}
(function($){
if($.fn.themeWooWidgetToggle){
$(function(){
$wrap.find('.widget_product_categories, .widget_price_filter, .widget_layered_nav, .widget_layered_nav_filters, .widget_rating_filter, .widget-woof, .porto_widget_price_filter, #wcfmmp-store .widget.sidebar-box, #wcfmmp-store-lists-sidebar .sidebar-box').find('.widget-title').each(function(){
var $this=$(this),
opts;
var pluginOptions=$this.data('plugin-options');
if(pluginOptions)
opts=pluginOptions;
$this.themeWooWidgetToggle(opts);
});
});
}
if($.fn.themeWooWidgetAccordion){
$(function(){
$wrap.find('.widget_product_categories, .widget_price_filter, .widget_layered_nav, .widget_layered_nav_filters, .widget_rating_filter, .widget-woof, #wcfmmp-store .widget.sidebar-box, #wcfmmp-store-lists-sidebar .sidebar-box').each(function(){
var $this=$(this),
opts;
var pluginOptions=$this.data('plugin-options');
if(pluginOptions)
opts=pluginOptions;
$this.themeWooWidgetAccordion(opts);
});
});
}
if($.fn.themeWooProductsSlider){
$(function(){
var $direct_carousels=$wrap.find('.products-slider:not(.manual)').filter(function(){
if($(this).closest('.porto-carousel:not(.owl-loaded)').length){
return false;
}
return true;
});
var $parent_carousel=$wrap.find('.porto-carousel:not(.owl-loaded)').filter(function(){
if($(this).find('.products-slider:not(.manual)').length){
return true;
}
return false;
});
if($parent_carousel.length){
$parent_carousel.one('initialized.owl.carousel', function(){
$(this).find('.products-slider:not(.manual)').each(function(){
var $this=$(this);
$this.themeWooProductsSlider($this.data('plugin-options'));
});
});
}
$direct_carousels.each(function(){
var $this=$(this),
opts;
var pluginOptions=$this.data('plugin-options');
if(pluginOptions)
opts=pluginOptions;
setTimeout(function(){
$this.themeWooProductsSlider(opts);
}, 0);
});
});
}})(jQuery);
}
function porto_woocommerce_variations_init($parent_obj){
'use strict';
theme.requestTimeout(function(){
var form_variation=$parent_obj.find('form.variations_form:not(.vf_init)');
if(form_variation.length&&jQuery.fn.wc_variation_form){
form_variation.each(function(){
var data_a=jQuery._data(this, 'events');
if(!data_a||!data_a['show_variation']){
jQuery(this).wc_variation_form();
}});
}}, 100);
}
function porto_ajax_load_products($obj, data, pagination_style, $ajax_tab_cache, id, group){
'use strict';
(function($){
if($obj.hasClass('loading')){
return;
}
$obj.addClass('loading');
if('load_more'!=pagination_style){
$obj.addClass('yith-wcan-loading');
if(!$obj.children('.porto-loading-icon').length){
$obj.append('<i class="porto-loading-icon"></i>');
}}
if($ajax_tab_cache[id]==undefined){
$ajax_tab_cache[id]={};}
$.ajax({
url: theme.ajax_url,
data: data,
type: 'post',
success: function(response){
if($(response).length){
$ajax_tab_cache[id][group]=$(response).html();
}else{
$ajax_tab_cache[id][group]='';
}
porto_ajax_load_products_success($obj, response, pagination_style);
},
complete: function(){
$obj.removeClass('loading');
}});
})(jQuery);
}
function porto_ajax_load_products_success($obj, success, pagination_style){
'use strict';
(function($){
if($obj.data('cur_page')&&$(success).find('ul.products').data('cur_page')){
$obj.data('cur_page', $(success).find('ul.products').data('cur_page'));
}
if('load_more'==pagination_style){
$obj.append($(success).find('ul.products').html());
}else{
if($obj.hasClass('owl-carousel')){
$obj.parent().css('min-height', $obj.parent().height());
}
if($obj.hasClass('grid-creative')&&typeof $obj.attr('data-plugin-masonry')!='undefined'){
$obj.isotope('remove', $obj.children());
var newItems=$(success).find('ul.products').children();
$obj.append(newItems);
$obj.isotope('appended', newItems);
$obj.imagesLoaded(function(){
$obj.isotope('layout');
});
}else{
if($(success).length){
$obj.html($(success).find('ul.products').html());
}else{
$obj.html('');
}}
}
if($obj.hasClass('owl-carousel')&&$.fn.themeWooProductsSlider){
$obj.trigger('destroy.owl.carousel');
theme.requestTimeout(function(){
var pluginOptions=$obj.data('plugin-options'), opts;
if(pluginOptions)
opts=pluginOptions;
$obj.data('__wooProductsSlider', '').themeWooProductsSlider(opts);
$obj.parent().css('min-height', '');
}, 100);
}
if($obj.closest('.porto-products').find('.shop-loop-after').length){
if($(success).find('.shop-loop-after').length){
$obj.closest('.porto-products').find('.shop-loop-after').replaceWith($(success).find('.shop-loop-after'));
}else{
$obj.closest('.porto-products').find('.shop-loop-after').remove();
}}
if(typeof $obj.data('infinitescroll')!='undefined'){
var infinitescrollData=$obj.data('infinitescroll');
infinitescrollData.options.state.currPage=1;
$obj.data('infinitescroll', infinitescrollData);
}
$obj.removeClass('yith-wcan-loading');
if('load_more'==pagination_style&&typeof $obj!='undefined'&&typeof $obj.data('text')!='undefined'){
$obj.text($obj.data('text'));
}
$(document).trigger("yith-wcan-ajax-filtered");
})(jQuery);
};