PageSourceSearch

https://zajec-optika.si/wp-content/themes/enzy/js/main.js?ver=1.3.1

js zajec-optika.si collected 2026-10-08 19:14:21 UTC 54,501 bytes, 1,585 lines download raw bytes

1jQuery(function($){
2	"use strict";
3	var on_touch = !$('body').hasClass('ts_desktop');
4	
5	/** Remove loading from fullwidth row **/
6	$(document).on('vc-full-width-row-single', function(e, data){
7		data.el.removeClass('loading');
8	});
9	
10	/** Mega menu **/
11	ts_mega_menu_change_state();
12	$('.widget_nav_menu .menu-item-has-children .sub-menu').before('<span class="ts-menu-drop-icon"></span>');
13	
14	/** Menu on IPAD **/
15	if( on_touch || $(window).width() < 768 ){
16		ts_menu_action_on_ipad();
17	}
18	
19	/** Sticky Menu **/
20	if( typeof enzy_params != 'undefined' && enzy_params.sticky_header == 1 ){
21		ts_sticky_menu();
22	}
23	
24	/** Device - Resize action **/
25	$(window).on('resize orientationchange', $.throttle(250, function(){
26		ts_mega_menu_change_state();
27	}));
28	
29	/** Vertical Menu Sidebar **/
30	$('.vertical-menu-button').on('click', function(){
31		
32		$('#vertical-menu-sidebar').toggleClass('active');
33		$(this).toggleClass('active');
34		$('body').addClass('vertical-sidebar-active');
35		
36		/* Reset search header version 1 */
37		$('body.header-v1 .header-middle .ts-search-by-category').removeClass('active');
38		$('body.header-v1 header .search-button').removeClass('active');
39		$('body.header-v1').removeClass('search-active');
40		
41		/* Reset Dropdown Icon Class On Ipad */
42		if( on_touch ){
43			$('.ts-menu-drop-icon').removeClass('active');
44			$('.ts-menu .sub-menu').hide();
45		}
46	});
47	
48	$('#vertical-menu-sidebar .close').on('click', function(){
49		$('#vertical-menu-sidebar, .vertical-menu-button').removeClass('active');
50		$('body').removeClass('vertical-sidebar-active');
51	});
52	
53	$('#vertical-menu-sidebar .ts-menu-drop-icon').on('click', function(){
54		var parent_li = $(this).parent();
55		if( parent_li.hasClass('active') ){
56			parent_li.find('.sub-menu').slideUp();
57			parent_li.find('li.active').removeClass('active');
58			parent_li.removeClass('active');
59		}
60		else{
61			$(this).siblings('.sub-menu').slideDown();
62			parent_li.addClass('active');
63		}
64	});
65	
66	/** Header Currency - Language on sidebar **/
67	$('#group-icon-header .header-currency, #group-icon-header .header-language').find('ul:last').siblings('a').on('click', function(e){
68		e.preventDefault();
69		$(this).siblings('ul').slideToggle();
70		$(this).toggleClass('active');
71	});
72	
73	/** Header Multi Menus **/
74	$('.multi-menus.parent-menu li').on('click', function(){
75		if( $(this).hasClass('current') ){
76			return;
77		}
78		$(this).siblings().removeClass('current');
79		$(this).addClass('current');
80		var id = $(this).data('key');
81		var is_pc_menu = id.indexOf('mobile') == -1;
82		if( is_pc_menu ){
83			$('.multi-menus.child-menus:not(.child-menus-mobile) .child-menu').hide();
84		}
85		else{
86			$('.multi-menus.child-menus.child-menus-mobile .child-menu').hide();
87		}
88		$('#' + id).fadeIn();
89		if( is_pc_menu ){
90			ts_mega_menu_change_state();
91		}
92	});
93	
94	/** To Top button **/
95	$(window).on('scroll', function(){
96		if( $(this).scrollTop() > 100 ){
97			$('#to-top').addClass('on');
98		} else {
99			$('#to-top').removeClass('on');
100		}
101	});
102	
103	$('#to-top .scroll-button').on('click', function(){
104		$('body,html').animate({
105			scrollTop: '0px'
106		}, 1000);
107		return false;
108	});
109	
110	/** Quickshop **/
111	var quickshop_created_vertical_slider = false;
112	$(document).on('click', 'a.quickshop', function( e ){
113		e.preventDefault();
114		
115		var product_id = $(this).data('product_id');
116		if( product_id === undefined ){
117			return;
118		}
119		
120		var container = $('#ts-quickshop-modal');
121		container.addClass('loading');
122		container.find('.quickshop-content').html('');
123		$.ajax({
124			type : 'POST'
125			,url : enzy_params.ajax_url	
126			,data : {action : 'enzy_load_quickshop_content', product_id: product_id}
127			,success : function(response){
128				container.find('.quickshop-content').html( response );
129				
130				var full_slider = container.find('.ts-quickshop-wrapper.full-slider').length > 0;
131				if( full_slider ){
132					var thumbnail_height = parseInt( container.find('.image-items').data('height') );
133					var thumbnail_width = parseInt( container.find('.image-items').data('width') );
134					if( thumbnail_height ){
135						var thumbnail_col_width = window.innerWidth >= 1500 ? 500 : 450;
136						var thumbnail_col_height = window.innerWidth >= 1500 ? 710 : 580;
137						var min_height = thumbnail_height * thumbnail_col_width / thumbnail_width;
138						min_height = min_height > thumbnail_col_height ? thumbnail_col_height : Math.floor( min_height );
139						container.find('.image-items').css('min-height', min_height + 'px');
140					}
141					
142					container.find('img:first').on('load', function(){
143						var height_content = Math.floor(container.find('.images-slider-wrapper').height()/2)*2;
144						container.find('.popup-container').css({'height': height_content});
145						container.find('.summary').css({'max-height': height_content});
146						container.find('.image-items').removeClass('loading');
147						
148						container.removeClass('loading').addClass('show');
149					});
150				}
151				
152				quickshop_created_vertical_slider = false;
153				
154				var images = container.find('img');
155				var count = 0;
156				var timeout = setTimeout(function(){
157					if( container.hasClass('loading') ){
158						container.removeClass('loading').addClass('show');
159						if( !full_slider ){
160							images.off('load');
161						}
162					}
163				}, 1000);
164				
165				images.on('load', function(){
166					if( ++count == images.length && container.hasClass('loading') ){
167						container.removeClass('loading').addClass('show');
168						clearTimeout( timeout );
169						if( container.find('.vertical-thumbnail').length > 0 ){
170							quickshop_vertical_thumbnail_slider(container);
171						}
172					}
173				});
174				
175				container.find('form.variations_form').wc_variation_form();
176				container.find('form.variations_form .variations select').change();
177				$('body').trigger('wc_fragments_loaded');
178				
179				container.find('form.variations_form').on('click', '.reset_variations', function(){
180					$(this).parents('.variations').find('.ts-product-attribute .option').removeClass('selected');
181				});
182			
183				if( full_slider ){
184					if( container.find('.image-item').length <= 1 ){
185						return;
186					}
187					
188					container.find('.image-items').owlCarousel({
189							items: 1
190							,loop: true
191							,nav: true
192							,navText: [,]
193							,dots: false
194							,navSpeed: 1000
195							,rtl: $('body').hasClass('rtl')
196							,navRewind: false
197						});
198				}
199				else{
200					var thumbnails = container.find('.thumbnails');
201					var slider_wrapper = thumbnails.find('.product-thumbnails');
202					if( slider_wrapper.find('li').length > 1 ){
203						if( container.find('.vertical-thumbnail').length > 0 ){
204							setTimeout(function(){
205								quickshop_vertical_thumbnail_slider(container);
206							}, 1500);
207						}
208						else{
209							slider_wrapper.owlCarousel({
210								items: 4
211								,loop: false
212								,nav: true
213								,navText: [,]
214								,dots: false
215								,rtl: $('body').hasClass('rtl')
216								,margin: 10
217								,navRewind: false
218								,onInitialized: function(){
219									thumbnails.addClass('loaded').removeClass('loading');
220								}
221							});
222						}
223					}
224					else{
225						thumbnails.removeClass('loading');
226					}
227					
228					container.find('.images img').removeAttr('srcset sizes');
229					$('.ts-qs-zoom, .ts-qs-zoom-gallery').CloudZoom({});
230					$('.ts-quickshop-wrapper form.variations_form').on('found_variation reset_image', function(){
231						container.find('.images img').removeAttr('srcset sizes');
232						$('.ts-qs-zoom, .ts-qs-zoom-gallery').CloudZoom({});
233					});
234				}
235			}
236		});
237	});
238	
239	$(document).on('click', '.ts-popup-modal .close, .ts-popup-modal .overlay', function(){
240		$('.ts-popup-modal').removeClass('show');
241		$('.ts-popup-modal .quickshop-content').html(''); /* prevent conflict with lightbox on single product */
242	});
243	
244	function quickshop_vertical_thumbnail_slider( container ){
245		var thumbnails = container.find('.thumbnails');
246		var slider_wrapper = thumbnails.find('.product-thumbnails');
247		if( quickshop_created_vertical_slider || !thumbnails.hasClass('loading') ){
248			return;
249		}
250		quickshop_created_vertical_slider = true;
251		
252		slider_wrapper.carouFredSel({
253					items: 4
254					,direction: 'up'
255					,prev: thumbnails.find('.owl-prev').selector
256					,next: thumbnails.find('.owl-next').selector
257					,auto: {
258						duration: 800
259					}
260					,scroll: {
261						items: 1
262					}
263					,onCreate: function(){
264						thumbnails.addClass('loaded').removeClass('loading');
265					}
266				});
267	}
268	
269	/** Wishlist **/
270	$(document).on('click', '.add_to_wishlist, .product a.compare:not(.added)', function(){
271		$(this).addClass('loading');
272	});
273	
274	$('body').on('added_to_wishlist', function(){
275		ts_update_tini_wishlist();
276		$('.add_to_wishlist').removeClass('loading');
277		$('.yith-wcwl-wishlistaddedbrowse.show, .yith-wcwl-wishlistexistsbrowse.show').parent('.button-in.wishlist').addClass('added');
278	});
279	
280	$('body').on('removed_from_wishlist added_to_cart', function(){
281		if( $('.wishlist_table').length ){
282			ts_update_tini_wishlist();
283		}
284	});
285	
286	/** Compare **/
287	$('body').on('yith_woocompare_open_popup', function(){
288		$('.product a.compare').removeClass('loading');
289	});
290	
291	/*** Color Swatch ***/
292	$(document).on('click', '.products .product .color-swatch > div', function(){
293		$(this).siblings().removeClass('active');
294		$(this).addClass('active');
295		/* Change thumbnail */
296		var image_src = $(this).data('thumb');
297		$(this).closest('.product').find('figure img:first').attr('src', image_src).removeAttr('srcset sizes');
298		/* Change price */
299		var term_id = $(this).data('term_id');
300		var variable_prices = $(this).parent().siblings('.variable-prices');
301		var price_html = variable_prices.find('[data-term_id="'+term_id+'"]').html();
302		$(this).closest('.product').find('.meta-wrapper .price').html( price_html ).addClass('variation-price');
303	});
304	
305	/*** Product Stock - Variable Product ***/
306	function single_variable_product_reset_stock( wrapper ){
307		var stock_html = wrapper.find('p.availability').data('original');
308		var classes = wrapper.find('p.availability').data('class');
309		if( classes == '' ){
310			classes = 'in-stock';
311		}
312		wrapper.find('p.availability span').html(stock_html);
313		wrapper.find('p.availability').removeClass('in-stock out-of-stock').addClass(classe
313s);
314	}
315	
316	$(document).on('found_variation', 'form.variations_form', function(){
317		var wrapper = $(this).parents('.summary');
318		if( wrapper.find('.single_variation .stock').length > 0 ){
319			var stock_html = wrapper.find('.single_variation .stock').html();
320			var classes = wrapper.find('.single_variation .stock').hasClass('out-of-stock')?'out-of-stock':'in-stock';
321			wrapper.find('p.availability span').html(stock_html);
322			wrapper.find('p.availability').removeClass('in-stock out-of-stock').addClass(classes);
323		}
324		else{
325			single_variable_product_reset_stock( wrapper );
326		}
327	});
328	
329	$(document).on('reset_image', 'form.variations_form', function(){
330		var wrapper = $(this).parents('.summary');
331		single_variable_product_reset_stock( wrapper );
332	});
333	
334	/*** Discount percent - variation price ***/
335	$(document).on('found_variation', 'form.variations_form', function(e, variation){
336		var summary = $(this).parents('.summary');
337		if( variation.price_html ){
338			summary.find('.ts-variation-price').html( variation.price_html ).removeClass('hidden');
339			summary.find('p.price').addClass('hidden');
340		}
341		
342		if( typeof variation.discount_percent != 'undefined' && variation.discount_percent ){
343			summary.find('.discount-percent').removeClass('hidden');
344			summary.find('.discount-percent span').html(variation.discount_percent);
345		}
346		else{
347			summary.find('.discount-percent').addClass('hidden');
348		}
349	});
350	
351	$(document).on('reset_image', 'form.variations_form', function(){
352		var summary = $(this).parents('.summary');
353		summary.find('.discount-percent').removeClass('hidden');
354		summary.find('.discount-percent span').html(summary.find('.discount-percent').data('original'));
355		
356		summary.find('p.price').removeClass('hidden');
357		summary.find('.ts-variation-price').addClass('hidden');
358	});
359	
360	/*** Hide product attribute if not available ***/
361	$(document).on('update_variation_values', 'form.variations_form', function(){
362		if( $(this).find('.ts-product-attribute').length > 0 ){
363			$(this).find('.ts-product-attribute').each(function(){
364				var attr = $(this);
365				var values = [];
366				attr.siblings('select').find('option').each(function(){
367					if( $(this).attr('value') ){
368						values.push( $(this).attr('value') );
369					}
370				});
371				attr.find('.option').removeClass('hidden');
372				attr.find('.option').each(function(){
373					if( $.inArray($(this).attr('data-value'), values) == -1 ){
374						$(this).addClass('hidden');
375					}
376				});
377			});
378		}
379	});
380	
381	/*** Single ajax add to cart ***/
382	if( typeof enzy_params != 'undefined' && enzy_params.ajax_add_to_cart == 1 && !$('body').hasClass('woocommerce-cart') ){
383		$(document).on('submit', '.product:not(.product-type-external) .summary form.cart', function(e){
384			e.preventDefault();
385			var form = $(this);
386			var product_url = form.attr('action');
387			var data = form.serialize();
388			if( !form.hasClass('variations_form') && !form.hasClass('grouped_form') ){
389				data += '&add-to-cart=' + form.find('[name="add-to-cart"]').val()
390			}
391			form.find('.single_add_to_cart_button').removeClass('added').addClass('loading');
392			$.post(product_url, data, function( result ){
393				$( document.body ).trigger('wc_fragment_refresh');
394				var message_wrapper = $('#ts-ajax-add-to-cart-message');
395				var error = '';
396				result = $('<div>' + result + '</div>');
397				if( result.find('.woocommerce-error').length ){
398					error = result.find('.woocommerce-error li:first').html();
399				}
400				form.find('.single_add_to_cart_button').removeClass('loading').addClass('added');
401				message_wrapper.removeClass('error');
402				if( error ){
403					message_wrapper.addClass('error');
404					message_wrapper.find('.error-message').html( error );
405					form.find('.single_add_to_cart_button').removeClass('added');
406				}
407				
408				message_wrapper.addClass('show');
409				setTimeout(function(){
410					message_wrapper.removeClass('show');
411				}, 2000);
412			});
413		});
414	}
415	
416	/*** Custom Orderby on Product Page ***/
417	$('form.woocommerce-ordering ul.orderby ul a').on('click', function(e){
418		e.preventDefault();
419		if( $(this).hasClass('current') ){
420			return;
421		}
422		var form = $('form.woocommerce-ordering');
423		var data = $(this).attr('data-orderby');
424		form.find('select.orderby').val(data).trigger('change');
425	});
426	
427	/*** Per page on Product page ***/
428	$('form.product-per-page-form ul.perpage ul a').on('click', function(e){
429		e.preventDefault();
430		if( $(this).hasClass('current') ){
431			return;
432		}
433		var form = $('form.product-per-page-form');
434		var data = $(this).attr('data-perpage');
435		form.find('select.perpage').val(data);
436		form.submit();
437	});
438	
439	function filter_widget_area_handle( is_active ){
440		var wrapper = $('.filter-widget-area.style-default');
441		var current_margin_bottom = wrapper.css('margin-bottom');
442		if( typeof wrapper.attr('data-margin_bottom') == 'undefined' ){
443			wrapper.attr('data-margin_bottom', current_margin_bottom);
444		}
445		
446		if( is_active ){
447			var max_height = 0;
448			wrapper.find('> section').each(function(){
449				var widget_height = $(this).find('.widget-title-wrapper').siblings().outerHeight();
450				if( widget_height > max_height ){
451					max_height = widget_height;
452				}
453			});
454			if( max_height > parseInt(current_margin_bottom) ){
455				wrapper.css('margin-bottom', max_height + 'px');
456			}
457		}
458		else{ /* Reset */
459			wrapper.css('margin-bottom', wrapper.attr('data-margin_bottom'));
460		}
461	}
462	
463	/*** Widget toggle ***/
464	$('.widget-title-wrapper a.block-control').on('click', function(e){
465		e.preventDefault();
466		var is_filter_default = $(this).parents('.filter-widget-area.style-default').length > 0;
467		var is_filter_dropdown = $(this).parents('.filter-widget-area.style-dropdown').length > 0;
468		
469		if( !is_filter_default && !is_filter_dropdown ){
470			$(this).toggleClass('active');
471			$(this).parent().siblings(':not(script)').fadeToggle(200);
472		}
473		else{
474			var is_active = $(this).hasClass('active');
475			if( is_filter_default ){
476				var wrapper = $(this).parents('.filter-widget-area.style-default');
477			}
478			else{
479				var wrapper = $(this).parents('.filter-widget-area.style-dropdown');
480			}
481			wrapper.find('.widget-title-wrapper').siblings().hide();
482			wrapper.find('.widget-title-wrapper a.block-control').removeClass('active');
483			if( !is_active ){
484				$(this).addClass('active');
485				$(this).parent().siblings(':not(script)').fadeIn(200);
486			}
487			if( is_filter_default ){
488				filter_widget_area_handle( !is_active );
489			}
490			hide_orderby_per_page_dropdown('both');
491		}
492	});
493	
494	ts_widget_toggle();
495	if( !on_touch ){
496		$(window).on('resize', $.throttle(250, function(){
497			ts_widget_toggle();
498			filter_widget_area_handle( false );
499		}));
500	}
501	
502	/*** Sort by toggle ***/
503	$('.woocommerce-ordering li .orderby-current, .product-per-page-form li .perpage-current').on('click', function(e){
504		if( !$(this).hasClass('active') ){
505			$('.filter-widget-area.style-default a.block-control.active, .filter-widget-area.style-dropdown a.block-control.active').trigger('click');
506		}
507		$(this).siblings('.dropdown').fadeToggle(200);
508        $(this).toggleClass('active');
509		$(this).parent().parent().toggleClass('active');
510		var type = $(this).hasClass('orderby-current')?'perpage':'orderby';
511		hide_orderby_per_page_dropdown( type );
512	});
513	
514	function hide_orderby_per_page_dropdown( type ){
515		if( type == 'orderby' ){
516			var selector = $('.woocommerce-ordering li .orderby-current');
517		}
518		else if( type == 'perpage' ){
519			var selector = $('.product-per-page-form li .perpage-current');
520		}
521		else{
522			var selector = $('.woocommerce-ordering li .orderby-current, .product-per-page-form li .perpage-current');
523		}
524		selector.siblings('.dropdown').fadeOut(200);
525        selector.removeClass('active');
526		selector.parent().parent().removeClass('active');
527	}
528	
529	/* Image Lazy Load */
530	if( $('img.ts-lazy-load').length ){
531		$(window).on('scroll ts_lazy_load', function(){
532			var scroll_top = $(this).scrollTop();
533			var window_height = $(this).height();
534			$('img.ts-lazy-load:not(.loaded)').each(function(){
535				if( $(this).data('src') && $(this).offset().top < scroll_top + window_height + 900 ){
536					$(this).attr('src', $(this).data('src')).addClass('loaded');
537				}
538			});
539		});
540		
541		if( $('img.ts-lazy-load:first').offset().top < $(window).scrollTop() + $(window).height() + 200 ){
542			$(window).trigger('ts_lazy_load');
543		}
544	}
545	
546	/* WooCommerce Quantity Increment */
547	$( document ).on( 'click', '.plus, .minus', function() {
548		var $qty		= $( this ).closest( '.quantity' ).find( '.qty' ),
549			currentVal	= parseFloat( $qty.val() ),
550			max			= parseFloat( $qty.attr( 'max' ) ),
551			min			= parseFloat( $qty.attr( 'min' ) ),
552			step		= $qty.attr( 'step' );
553
554		if ( ! currentVal || currentVal === '' || currentVal === 'NaN' ) currentVal = 0;
555		if ( max === '' || max === 'NaN' ) max = '';
556		if ( min === '' || min === 'NaN' ) min = 0;
557		if ( step === 'any' || step === '' || step === undefined || parseFloat( step ) 
557=== 'NaN' ) step = 1;
558
559		if ( $( this ).is( '.plus' ) ) {
560			if ( max && ( max == currentVal || currentVal > max ) ) {
561				$qty.val( max );
562			} else {
563				$qty.val( currentVal + parseFloat( step ) );
564			}
565		} else {
566			if ( min && ( min == currentVal || currentVal < min ) ) {
567				$qty.val( min );
568			} else if ( currentVal > 0 ) {
569				$qty.val( currentVal - parseFloat( step ) );
570			}
571		}
572
573		$qty.trigger( 'change' );
574	});
575	
576	/* Ajax Search */
577	if( typeof enzy_params != 'undefined' && enzy_params.ajax_search == 1 ){
578		ts_ajax_search();
579	}
580	/* Search - Shopping Cart Sidebar */
581	$(document).on('click', '.search-button .icon, .shopping-cart-wrapper .cart-control', function(e){
582		$('.ts-floating-sidebar .close').trigger('click');
583		var is_cart = $(this).is('.cart-control');
584		if( is_cart ){
585			if( $('#ts-shopping-cart-sidebar').length > 0 ){
586				e.preventDefault();
587				$('#ts-shopping-cart-sidebar').addClass('active');
588				$('body').addClass('floating-sidebar-active');
589				
590				/* Vertical menu sidebar */
591				$('#vertical-menu-sidebar').removeClass('active');
592				$('.vertical-menu-button').removeClass('active');
593				$('body').removeClass('vertical-sidebar-active');
594				
595				/* Reset search header version 1 */
596				$('body.header-v1 .header-middle .ts-search-by-category').removeClass('active');
597				$('body.header-v1 header .search-button').removeClass('active');
598				$('body.header-v1').removeClass('search-active');
599				
600				/* Reset Dropdown Icon Class On Ipad */
601				$('.ts-menu-drop-icon').removeClass('active');
602				var on_touch = !$('body').hasClass('ts_desktop');
603				if( on_touch || $(window).width() < 768 ){
604					$('.ts-menu-drop-icon').removeClass('active');
605					$('.ts-menu .sub-menu').hide();
606				}
607			}
608		}
609		else if( $('#ts-search-sidebar').length > 0 ){
610			$('#ts-search-sidebar').addClass('active');
611			$('body').addClass('floating-sidebar-active');
612			setTimeout(function(){
613				$('#ts-search-sidebar input[name="s"]').focus();
614			}, 600);
615			
616			/* Vertical menu sidebar */
617			$('#vertical-menu-sidebar').removeClass('active');
618			$('.vertical-menu-button').removeClass('active');
619			$('body').removeClass('vertical-sidebar-active');
620			
621			/* Reset search header version 1 */
622			$('body.header-v1 .header-middle .ts-search-by-category').removeClass('active');
623			$('body.header-v1 header .search-button').removeClass('active');
624			$('body.header-v1').removeClass('search-active');
625			
626			/* Reset Dropdown Icon Class On Ipad */
627			$('.ts-menu-drop-icon').removeClass('active');
628			var on_touch = !$('body').hasClass('ts_desktop');
629			if( on_touch || $(window).width() < 768 ){
630				$('.ts-menu-drop-icon').removeClass('active');
631				$('.ts-menu .sub-menu').hide();
632			}
633		}
634		else if( $('.header-middle .ts-search-by-category').length > 0 ){
635			$('body.header-v1 .header-middle .ts-search-by-category').toggleClass('active');
636			$('body.header-v1 header .search-button').toggleClass('active');
637			$('body.header-v1').toggleClass('search-active');
638			setTimeout(function(){
639				$('header .ts-search-by-category input[name="s"]').focus();
640			}, 600);
641			
642			/* Vertical menu sidebar */
643			$('#vertical-menu-sidebar').removeClass('active');
644			$('.vertical-menu-button').removeClass('active');
645			$('body').removeClass('vertical-sidebar-active');
646			
647			/* Reset Dropdown Icon Class On Ipad */
648			$('.ts-menu-drop-icon').removeClass('active');
649			var on_touch = !$('body').hasClass('ts_desktop');
650			if( on_touch || $(window).width() < 768 ){
651				$('.ts-menu-drop-icon').removeClass('active');
652				$('.ts-menu .sub-menu').hide();
653			}
654		}
655	});
656	$('.ts-floating-sidebar .overlay, .ts-floating-sidebar .close').on('click', function(){
657		$('.ts-floating-sidebar').removeClass('active');
658		$('body').removeClass('floating-sidebar-active');
659		$('#main-content').removeClass('show-filter-sidebar');
660		$('.filter-widget-area-button.style-sidebar a, .filter-widget-area-button.style-bottom a').removeClass('active');
661	});
662	
663	/* Add To Cart Effect */
664	if( !$('body').hasClass('woocommerce-cart') ){
665		$(document.body).on('adding_to_cart', function( e, $button, data ){
666			if( wc_add_to_cart_params.cart_redirect_after_add == 'no' ){
667				if( typeof enzy_params != 'undefined' && enzy_params.add_to_cart_effect == 'show_popup' && typeof $button != 'undefined' ){
668					var product_id = $button.attr('data-product_id');
669					var container = $('#ts-add-to-cart-popup-modal');
670					container.addClass('adding');
671					$.ajax({
672						type : 'POST'
673						,url : enzy_params.ajax_url
674						,data : {action : 'enzy_load_product_added_to_cart', product_id: product_id}
675						,success : function(response){
676							container.find('.add-to-cart-popup-content').html( response );
677							if( container.hasClass('loading') ){
678								container.removeClass('loading').addClass('show');
679							}
680							container.removeClass('adding');
681						}
682					});
683				}
684			}
685		});
686		
687		$(document.body).on('added_to_cart', function( e, fragments, cart_hash, $button ){
688			/* Show Cart Sidebar */
689			if( typeof enzy_params != 'undefined' && enzy_params.show_cart_after_adding == 1 ){
690				$('.shopping-cart-wrapper .cart-control').trigger('click');
691				return;
692			}
693			/* Cart Fly Effect */
694			if( typeof enzy_params != 'undefined' && typeof $button != 'undefined' ){
695				if( enzy_params.add_to_cart_effect == 'fly_to_cart' ){
696					var cart = $('.shopping-cart-wrapper');
697					if( cart.length == 2 ){
698						if( $(window).width() > 991 ){
699							cart = $('.header-vertical .shopping-cart-wrapper');
700						}
701						else{
702							cart = $('.header-ipad .shopping-cart-wrapper');
703						}
704					}
705					if( cart.length == 1 ){
706						var product_img = $button.closest('section.product').find('figure img').eq(0);
707						if( product_img.length == 1 ){
708							var effect_time = 800;
709							var cart_in_sticky = $('.is-sticky .shopping-cart-wrapper').length;
710							if( cart_in_sticky ){
711								effect_time = 500;
712							}
713							
714							var imgclone_height = product_img.width()?150 * product_img.height() / product_img.width():150;
715							var imgclone_small_height = product_img.width()?75 * product_img.height() / product_img.width():75;
716							
717							var imgclone = product_img.clone().offset({top: product_img.offset().top, left: product_img.offset().left})
718								.css({'opacity': '0.6', 'position': 'absolute', 'height': imgclone_height + 'px', 'width': '150px', 'z-index': '99999999'})
719								.appendTo($('body'))
720								.animate({'top': cart.offset().top + cart.height()/2, 'left': cart.offset().left + cart.width()/2, 'width': 75, 'height': imgclone_small_height}, effect_time, 'linear');
721							
722							if( !cart_in_sticky && cart.parents('.header-vertical').length == 0 ){
723								$('body,html').animate({
724									scrollTop: '0px'
725								}, effect_time);
726							}
727							
728							imgclone.animate({
729								'width': 0
730								,'height': 0
731							}, function(){
732								$(this).detach()
733							});
734						}
735					}
736				}
737				if( enzy_params.add_to_cart_effect == 'show_popup' ){
738					var container = $('#ts-add-to-cart-popup-modal');
739					if( container.hasClass('adding') ){
740						container.addClass('loading');
741					}
742					else{
743						container.addClass('show');
744					}
745				}
746			}
747		});
748	}
749	
750	/* Disable Ajax Remove Cart Item on Cart and Checkout page */
751	if( $('body').hasClass('woocommerce-cart') || $('body').hasClass('woocommerce-checkout') ){
752		$(document.body).off('click', '.remove_from_cart_button');
753	}
754	
755	/* Show cart after removing item */
756	$(document.body).on('click', '.shopping-cart-wrapper .remove_from_cart_button', function(){
757		$('.shopping-cart-wrapper').addClass('updating');
758	});
759	$(document.body).on('removed_from_cart', function(){
760		if( !$('.shopping-cart-wrapper').is(':hover') ){
761			$('.shopping-cart-wrapper').removeClass('updating');
762		}
763	});
764	
765	/* Change cart item quantity */
766	$(document).on('change', '.ts-tiny-cart-wrapper .qty', function(){
767		var qty = parseFloat($(this).val());
768		var max = parseFloat($(this).attr('max'));
769		if( max !== 'NaN' && max < qty ){
770			qty = max;
771			$(this).val( max );
772		}
773		var cart_item_key = $(this).attr('name').replace('cart[', '').replace('][qty]', '');
774		$(this).parents('.woocommerce-mini-cart-item').addClass('loading');
775		$('.shopping-cart-wrapper').addClass('updating');
776		$('.woocommerce-message').remove();
777		$.ajax({
778			type : 'POST'
779			,url : enzy_params.ajax_url
780			,data : {action : 'enzy_update_cart_quantity', qty: qty, cart_item_key: cart_item_key}
781			,success : function(response){
782				if( !response ){
783					return;
784				}
785				$( document.body ).trigger( 'added_to_cart', [ response.fragments, response.cart_hash ] );
786				if( !$('.shopping-cart-wrapper').is(':hover') ){
787					$('.shopping-cart-wrapper').removeClass('updating');
788				}
789			}
790		});
791	});
792	
793	$(document).on('mouseleave', '.shopping-cart-wrapper.updating',function(){ 
794		$(this).removeClass('updating');
795	});
796	
797	/* Filter Widget Area */
798	var filter_sidebar_interval;
799	$('.filter-widget-area-button a').on('click', function(){
800		$(this).toggleClass('active');
801		var filter_style = $(this).parent().data('style');
802		if( filter_style == 'sidebar' || filter_style == 'bottom' ){
803			$('#ts-filter-widget-area').toggleClass('active');
804			if( filter_style == 'sidebar' ){
805				$('#main-content').toggleClass('show-filter-sidebar');
806				
807				if( $('#ts-filter-widget-area').hasClass('active') ){
808					filter_sidebar_interval = setInterval(function(){
809						$('#main-content').css('min-height', $('#ts-filter-widget-area .filter-widget-area').height() + 20);
810					}, 1000);
811				}
812				else{
813					clearInterval( filter_sidebar_interval );
814					$('#main-content').css('min-height', '');
815				}
816			}
817		}
818		else{
819			$('.filter-widget-area').slideToggle();
820		}
821		hide_orderby_per_page_dropdown('both');
822		return false;
823	});
824	
825	if( $('.ts-active-filters .widget_layered_nav_filters').length ){
826		$('.filter-widget-area-button.style-sidebar a').trigger('click');
827	}
828	
829	function set_top_sidebar_filter(){
830		if( $(window).width() < 768 ){
831			var top_main = $('#primary').offset().top;
832			var top_filter = $('.filter-widget-area-button').offset().top;
833			var height_filter = $('.filter-widget-area-button').height();
834			var top_sidebar = top_filter - top_main + height_filter;
835			$('#ts-filter-widget-area .ts-sidebar-content').css('top', top_sidebar + 'px');
836		}
837		else{
838			$('#ts-filter-widget-area .ts-sidebar-content').css('top', '');
839		}
840	}
841	
842	if( $('.filter-widget-area-button.style-sidebar').length ){
843		set_top_sidebar_filter();
844		$(window).on('resize orientationchange', $.throttle(250, function(){
845			set_top_sidebar_filter();
846		}));
847	}
848	
849	/* Shop Zoom In/Out */
850	$('.zoom-in-out-button a').on('click', function(e){
851		e.preventDefault();
852		$('div.products').removeClass('zoom-in zoom-out').addClass($(this).data('class'));
853		$(this).hide();
854		$(this).siblings('a').show();
855		if( typeof Cookies == 'function' ){
856			Cookies.set('ts_shop_zoom', $(this).data('class'));
857		}
858	});
859	if( typeof Cookies == 'function' ){
860		if( typeof Cookies.get('ts_shop_zoom') != 'undefined' ){
861			$('.zoom-in-out-button a.' + Cookies.get('ts_shop_zoom')).trigger('click');
862		}
863	}
864	
865	/* Single post - Related posts - Gallery slider */
866	ts_single_related_post_gallery_slider();
867	
868	/* Single Product - Variable Product options */
869	$(document).on('click', '.variations_form .ts-product-attribute .option a', function(){
870		var _this = $(this);
871		var val = _this.closest('.option').data('value');
872		var selector = _this.closest('.ts-product-attribute').siblings('select');
873		if( selector.length > 0 ){
874			if( selector.find('option[value="' + val + '"]').length > 0 ){
875				selector.val(val).change();
876				_this.closest('.ts-product-attribute').find('.option').removeClass('selected');
877				_this.closest('.option').addClass('selected');
878			}
879		}
880		return false;
881	});
882	
883	$('.variations_form').on('click', '.reset_variations', function(){
884		$(this).closest('.variations').find('.ts-product-attribute .option').removeClass('selected');
885	});
886	
887	/* Related - Upsell - Crosssell products slider */
888	$('.single-product .related .products, .single-product .upsells .products, .woocommerce .cross-sells .products').each(function(){
889		var _this = $(this);
890		if( _this.find('.product').length > 1 ){
891			_this.owlCarousel({
892				loop: true
893				,nav: true
894				,navText: [,]
895				,dots: false
896				,navSpeed: 1000
897				,rtl: $('body').hasClass('rtl')
898				,margin: 0
899				,navRewind: false
900				,responsiveBaseElement: _this
901				,responsiveRefreshRate: 1000
902				,responsive:{0:{items:1},320:{items:2},580:{items:3},820:{items:4},1370:{items:5}}
903			});
904		}
905	});
906	
907	/* Background Video - Youtube Video */
908	if( typeof $.fn.YTPlayer == 'function' ){
909		$('.ts-youtube-video-bg').each(function(index, element){
910			var selector = $(this);
911			var poster = selector.data('poster');
912			var property = selector.data('property') && typeof selector.data('property') == 'string' ? eval('(' + selector.data('property') + ')') : selector.data('property');
913			
914			if( ! on_touch ) {
915				var player = selector.YTPlayer();
916				
917				player.on('YTPPlay', function(){
918					selector.removeClass('pausing').addClass('playing');
919					selector.closest('.vc_row').addClass('playing');
920					if( poster ){
921						selector.css({'background-image':''});
922						selector.find('.mbYTP_wrapper').css({'opacity':1});
923					}
924				});
925				
926				player.on('YTPPause YTPEnd', function(){
927					selector.removeClass('playing').addClass('pausing');
928					selector.closest('.vc_row').removeClass('playing');
929					if( poster ){
930						selector.css({'background-image':'url(' + poster + ')'});
931						selector.find('.mbYTP_wrapper').css({'opacity':0});
932					}
933				});
934				
935				player.on('YTPChanged', function(){
936					if( !property.autoPlay && poster ){
937						selector.css({'background-image':'url(' + poster + ')'});
938					}
939				});
940			}
941			else if( poster ) {
942				selector.css({'background-image':'url(' + poster + ')'});
943			}
944		});
945	}
946	
947	/* Background Video - Hosted Video */
948	$('.ts-hosted-video-bg').each(function(){
949		var selector = $(this);
950		var video = selector.find('video');
951		var video_dom = video.get(0);
952		if( video.hasClass('loop') ){
953			video_dom.loop = true;
954		}
955		if( video.hasClass('muted') ){
956			video_dom.muted = true;
957		}
958		
959		var poster = selector.data('poster');
960		if( poster ){
961			selector.css({'background-image':'url(' + poster + ')'});
962		}
963		
964		var control = selector.find('.video-control');
965		control.on('click', function(){
966			if( !selector.hasClass('playing') ){
967				video_dom.play();
968				selector.css({'background-image':''});
969				selector.removeClass('pausing').addClass('playing');
970				selector.closest('.vc_row').addClass('playing');
971			}
972			else{
973				video_dom.pause();
974				if( poster ){
975					selector.css({'background-image':'url(' + poster + ')'});
976				}
977				selector.removeClass('playing').addClass('pausing');
978				selector.closest('.vc_row').removeClass('playing');
979			}
980		});
981		if( !on_touch && video.hasClass('autoplay') ){
982			control.trigger('click');
983		}
984	});
985	
986	/* Single Portfolio Scrolling */
987	ts_scrolling_fixed($('.single-portfolio.left-thumbnail.gallery .thumbnail'), $('.single-portfolio .entry-content'));
988	
989	/* Single Portfolio Lightbox */
990	if( typeof $.fn.prettyPhoto == 'function' ){
991		$('.single-portfolio .thumbnail a[rel^="prettyPhoto"]').prettyPhoto({
992			show_title: false
993			,deeplinking: false
994			,social_tools: false
995		});
996	}
997	
998	/* Single Portfolio Gallery */
999	if( typeof $.fn.isotope == 'function' ){
1000		setTimeout(function(){
1001			$('.single-portfolio.gallery .thumbnail figure').isotope();
1002		}, 200);
1003	}
1004	
1005	/* Single Portfolio Slider */
1006	setTimeout(function(){
1007		ts_generate_single_portfolio_slider();
1008	}, 200);
1009
1010});
1011
1012/*** Mega menu ***/
1013function ts_mega_menu_change_state(){
1014	jQuery('.ts-group-meta-icon-toggle .icon').off('click');
1015	jQuery('.ts-group-meta-icon-toggle .icon').on('click', function(){
1016		/* Reset Dropdown Icon Class On Ipad */
1017		jQuery('.ts-menu-drop-icon').removeClass('active');
1018		var on_touch = !jQuery('body').hasClass('ts_desktop');
1019		if( on_touch || jQuery(window).width() < 768 ){
1020			jQuery('.ts-menu-drop-icon').removeClass('active');
1021			jQuery('.ts-menu-drop-icon').siblings('.sub-menu').hide();
1022		}
1023		
1024		jQuery('#group-icon-header').toggleClass('active');
1025		jQuery('body').toggleClass('menu-header-active');
1026		jQuery('body').toggleClass('floating-sidebar-active');
1027		jQuery(this).toggleClass('active');
1028		jQuery('#group-icon-header .ts-sidebar-content').css({'padding-top': jQuery('.ts-header .header-middle').height() + ( jQuery('#wpadminbar').length ? jQuery('#wpadminbar').height() : 0 ) });
1029	});
1030	
1031	/* Reset Dropdown Icon Class On Ipad */
1032	jQuery('.ts-menu-drop-icon').removeClass('active');
1033
1034	
1035	if( Math.max( window.outerWidth, jQuery(window).width() ) > 767 ){
1036	
1037		var padding_left = 0, container_width = 0;
1038		var container = jQuery('.header-sticky .container:first');
1039		var container_stretch = jQuery('.header-sticky');
1040		if( container.length <= 0 ){
1041			container = jQuery('.header-sticky');
1042			if( container.length <= 0 ){
1043				return;
1044			}
1045			container_width = container.outerWidth();
1046		}
1047		else{
1048			container_width = container.width();
1049			padding_left = parseInt(container.css('padding-left'));
1050		}
1051		var container_offset = container.offset();
1052		
1053		var container_stretch_width = container_stretch.outerWidth();
1054		var container_stretch_offset = container_stretch.offset();
1055		
1056		setTimeout(function(){
1057			jQuery('.ts-menu nav.main-menu > ul.menu > .ts-megamenu-fullwidth').each(function(index, element){
1058				var current_offset = jQuery(element).offset();
1059				if( jQuery(element).hasClass('ts-megamenu-fullwidth-stretch') ){
1060					var left = current_offset.left - container_stretch_offset.left;
1061					jQuery(element).children('ul.sub-menu').css({'width':container_stretch_width+'px','left':-left+'px','right':'auto'});
1062					
1063					/* full height */
1064					if( jQuery(element).hasClass('full-height') ){
1065						var window_height = jQuery(window).height();
1066						var admin_bar_height = jQuery('#wpadminbar').length?jQuery('#wpadminbar').height():0;
1067						var header_height = jQuery('.sticky-wrapper.is-sticky').length?jQuery('.is-sticky .header-sticky').outerHeight():jQuery('.ts-header .header-template').outerHeight();
1068						var header_bottom = jQuery(window).scrollTop() + header_height + admin_bar_height;
1069						var item_bottom = jQuery(element).offset().top + jQuery(element).outerHeight();
1070						var offset = Math.abs(header_bottom - item_bottom);
1071						jQuery(element).children('ul.sub-menu').css('min-height', window_height - header_height - admin_bar_height + offset);
1072					}
1073				}
1074				else{
1075					var left = current_offset.left - container_offset.left - padding_left;
1076					jQuery(element).children('ul.sub-menu').css({'width':container_width+'px','left':-left+'px','right':'auto'});
1077				}
1078			});
1079			
1080			jQuery('.ts-menu nav.main-menu > ul.menu').children('.ts-megamenu-columns-1, .ts-megamenu-columns-2, .ts-megamenu-columns-3, .ts-megamenu-columns-4').each(function(index, element){	
1081				jQuery(element).children('ul.sub-menu').css({'max-width':container_width+'px'});
1082				var sub_menu_width = jQuery(element).children('ul.sub-menu').outerWidth();
1083				var item_width = jQuery(element).outerWidth();
1084				jQuery(element).children('ul.sub-menu').css({'left':'-'+(sub_menu_width/2 - item_width/2)+'px','right':'auto'});
1085				
1086				var container_left = container_offset.left;
1087				var container_right = container_left + container_width;
1088				var item_left = jQuery(element).offset().left;
1089				
1090				var overflow_left = (sub_menu_width/2 > (item_left + item_width/2 - container_left));
1091				var overflow_right = ((sub_menu_width/2 + item_left + item_width/2) > container_right);
1092				if( overflow_left ){
1093					var left = item_left - container_left - padding_left;
1094					jQuery(element).children('ul.sub-menu').css({'left':-left+'px','right':'auto'});
1095				}
1096				if( overflow_right && !overflow_left ){
1097					var left = item_left - container_left - padding_left;
1098					left = left - ( container_width - sub_menu_width );
1099					jQuery(element).children('ul.sub-menu').css({'left':-left+'px','right':'auto'});
1100				}
1101			});
1102			
1103			/* Remove hide class after loading */
1104			jQuery('ul.menu li.menu-item').removeClass('hide');
1105			
1106		},800);
1107		
1108	}
1109	else{ /* Mobile menu action */
1110		jQuery('.ic-mobile-menu-button').off('click');
1111		jQuery('.ic-mobile-menu-button').on('click', function(){
1112			jQuery('#page').addClass('menu-mobile-active');
1113		});
1114		
1115		jQuery('.ic-mobile-menu-close-button').off('click');
1116		jQuery('.ic-mobile-menu-close-button').on('click', function(){
1117			jQuery('#page').removeClass('menu-mobile-active');
1118		});
1119		
1120		jQuery('#wpadminbar').css('position', 'fixed');
1121		
1122		/* Remove hide class after loading */
1123		jQuery('ul.menu li.menu-item').removeClass('hide');
1124	}
1125	
1126}
1127
1128function ts_menu_action_on_ipad(){
1129	/* Main Menu Drop Icon */
1130	jQuery('.ts-menu nav.main-menu .ts-menu-drop-icon').on('click', function(){
1131		
1132		var is_active = jQuery(this).hasClass('active');
1133		var sub_menu = jQuery(this).siblings('.sub-menu');
1134		
1135		jQuery('.ts-menu nav.main-menu .ts-menu-drop-icon').removeClass('active');
1136		jQuery('.ts-menu nav.main-menu .sub-menu').hide();
1137		
1138		jQuery(this).parents('.sub-menu').show();
1139		jQuery(this).parents('.sub-menu').siblings('.ts-menu-drop-icon').addClass('active');
1140		
1141		/* Reset Dropdown Cart */
1142		jQuery('header .shopping-cart-wrapper').removeClass('active');
1143		
1144		if( sub_menu.length > 0 ){
1145			if( is_active ){
1146				sub_menu.fadeOut(250);
1147				jQuery(this).removeClass('active');
1148			}
1149			else{
1150				sub_menu.fadeIn(250);
1151				jQuery(this).addClass('active');
1152			}
1153		}
1154	});
1155	
1156	/* Mobile Menu Drop Icon */
1157	if( jQuery('.ts-menu nav.mobile-menu .ts-menu-drop-icon').length > 0 ){
1158		jQuery('.ts-menu nav.mobile-menu .sub-menu').hide();
1159	}
1160	jQuery('.ts-menu nav.mobile-menu .ts-menu-drop-icon').on('click', function(){
1161		var is_active = jQuery(this).hasClass('active');
1162		var sub_menu = jQuery(this).siblings('.sub-menu');
1163		
1164		if( is_active ){
1165			sub_menu.slideUp(250);
1166			sub_menu.find('.sub-menu').hide();
1167			sub_menu.find('.ts-menu-drop-icon').removeClass('active');
1168		}
1169		else{
1170			sub_menu.slideDown(250);
1171		}
1172		jQuery(this).toggleClass('active');
1173	});
1174	
1175}
1176
1177/*** End Mega menu ***/
1178
1179/*** Sticky Menu ***/
1180function ts_sticky_menu(){	
1181	var top_spacing = 0;
1182	if( jQuery('body').hasClass('admin-bar') && jQuery('#wpadminbar').length > 0 ){
1183		top_spacing = jQuery('#wpadminbar').height();
1184	}
1185	var top_begin = jQuery('header.ts-header').height() + 300;
1186	
1187	if( jQuery('.header-transparent .breadcrumb-title-wrapper').length > 0 ){
1188		top_begin = jQuery('.header-transparent .breadcrumb-title-wrapper').height();
1189	}
1190	
1191	var sub_menu = jQuery('.main-menu > ul > li > ul.sub-menu');
1192	
1193	setTimeout( function(){
1194		jQuery('.header-sticky').sticky({
1195				topSpacing: top_spacing
1196				,topBegin: top_begin
1197				,scrollOnTop : function (){
1198					ts_mega_menu_change_state();
1199					jQuery('body > .select2-container--open').removeClass('sticky');
1200					
1201					sub_menu.css('display', 'none');
1202					setTimeout(function(){ 
1203						sub_menu.css('display', '');
1204					}, 500);
1205				}
1206				,scrollOnBottom : function (){
1207					ts_mega_menu_change_state();
1208					jQuery('body > .select2-container--open').addClass('sticky');
1209					
1210					sub_menu.css('display', 'none');
1211					setTimeout(function(){ 
1212						sub_menu.css('display', '');
1213					}, 500);
1214				}					
1215			});
1216	}, 200);
1217}
1218
1219/*** Custom Wishlist ***/
1220function ts_update_tini_wishlist(){
1221	if( typeof enzy_params == 'undefined' ){
1222		return;
1223	}
1224		
1225	var wishlist_wrapper = jQuery('.my-wishlist-wrapper');
1226	if( wishlist_wrapper.length == 0 ){
1227		return;
1228	}
1229	
1230	wishlist_wrapper.addClass('loading');
1231	
1232	jQuery.ajax({
1233		type : 'POST'
1234		,url : enzy_params.ajax_url
1235		,data : {action : 'enzy_update_tini_wishlist'}
1236		,success : function(response){
1237			var first_icon = wishlist_wrapper.children('i.fa:first');
1238			wishlist_wrapper.html(response);
1239			if( first_icon.length > 0 ){
1240				wishlist_wrapper.prepend(first_icon);
1241			}
1242			wishlist_wrapper.removeClass('loading');
1243		}
1244	});
1245}
1246
1247/*** End Custom Wishlist***/
1248
1249/*** Set Cloud Zoom ***/
1250function ts_set_cloud_zoom(){
1251	jQuery('.cloud-zoom-wrap .cloud-zoom-big').remove();
1252	jQuery('.cloud-zoom, .cloud-zoom-gallery').off('click');
1253	var clz_width = jQuery('.cloud-zoom, .cloud-zoom-gallery').width();
1254	var clz_img_width = jQuery('.cloud-zoom, .cloud-zoom-gallery').children('img').width();
1255	var cl_zoom = jQuery('.cloud-zoom, .cloud-zoom-gallery').not('.on_pc');
1256	var temp = (clz_width-clz_img_width)/2;
1257	if(cl_zoom.length > 0 ){
1258		cl_zoom.data('zoom',null).siblings('.mousetrap').off().remove();
1259		cl_zoom.CloudZoom({ 
1260			adjustX:temp	
1261		});
1262	}
1263}
1264
1265/*** Widget toggle ***/
1266function ts_widget_toggle(){
1267	jQuery('.wpb_widgetised_column .widget-title-wrapper a.block-control, .footer-container .widget-title-wrapper a.block-control').remove();
1268	if( typeof enzy_params != 'undefined' && enzy_params.responsive == 0 ){
1269		return;
1270	}
1271	if( Math.max( window.outerWidth, jQuery(window).width() ) >= 768 ){
1272		jQuery('.widget-title-wrapper a.block-control').removeClass('active').hide();
1273		jQuery('.widget-title-wrapper a.block-control').parent().siblings(':not(script)').show();
1274		jQuery('.filter-widget-area.style-default .widget-title-wrapper, .filter-widget-area.style-dropdown .widget-title-wrapper').siblings(':not(script)').hide();
1275	}
1276	else{
1277		jQuery('.widget-title-wrapper a.block-control').removeClass('active').show();
1278		jQuery('.widget-title-wrapper a.block-control').parent().siblings(':not(script)').hide();
1279		jQuery('.wpb_widgetised_column .widget-title-wrapper, .footer-container .widget-title-wrapper').siblings(':not(script)').show();
1280	}
1281}
1282
1283/*** Ajax search ***/
1284function ts_ajax_search(){
1285	var search_string = '';
1286	var search_previous_string = '';
1287	var search_timeout;
1288	var search_delay = 700;
1289	var search_input;
1290	var search_cache_data = {};
1291	jQuery('body').append('<div id="ts-search-result-container" class="ts-search-result-container woocommerce"></div>');
1292	var search_result_container = jQuery('#ts-search-result-container');
1293	var search_result_container_sidebar = jQuery('#ts-search-sidebar .ts-search-result-container');
1294	var header_search_wrapper = jQuery('.ts-header .search-wrapper');
1295	var is_sidebar = false;
1296	
1297	jQuery('.ts-header .search-content input[name="s"], #ts-search-sidebar input[name="s"]').on('keyup', function(e){
1298		is_sidebar = jQuery(this).parents('#ts-search-sidebar').length > 0;
1299		search_input = jQuery(this);
1300		search_result_container.hide();
1301		header_search_wrapper.removeClass('active');
1302		
1303		search_string = jQuery(this).val().trim();
1304		if( search_string.length < 2 ){
1305			search_input.parents('.search-content').removeClass('loading');
1306			return;
1307		}
1308		
1309		if( search_cache_data[search_string] ){
1310			if( !is_sidebar ){
1311				search_result_container.html(search_cache_data[search_string]);
1312				search_result_container.fadeIn(200);
1313				header_search_wrapper.addClass('active');
1314			}
1315			else{
1316				search_result_container_sidebar.html(search_cache_data[search_string]);
1317			}
1318			search_previous_string = '';
1319			search_input.parents('.search-content').removeClass('loading');
1320			
1321			if( !is_sidebar ){
1322				search_result_container.find('.view-all-wrapper a').on('click', function(e){
1323					e.preventDefault();
1324					search_input.parents('form').submit();
1325				});
1326			}
1327			else{
1328				search_result_container_sidebar.find('.view-all-wrapper a').on('click', function(e){
1329					e.preventDefault();
1330					search_input.parents('form').submit();
1331				});
1332			}
1333			
1334			return;
1335		}
1336		
1337		clearTimeout(search_timeout);
1338		search_timeout = setTimeout(function(){
1339			if( search_string == search_previous_string || search_string.length < 2 ){
1340				return;
1341			}
1342			
1343			search_previous_string = search_string;
1344		
1345			search_input.parents('.search-content').addClass('loading');
1346			
1347			/* check category */
1348			var category = '';
1349			var select_category = search_input.parents('.search-content').siblings('.select-category');
1350			if( select_category.length > 0 ){
1351				category = select_category.find(':selected').val();
1352			}
1353			
1354			jQuery.ajax({
1355				type : 'POST'
1356				,url : enzy_params.ajax_url
1357				,data : {action : 'enzy_ajax_search', search_string: search_string, category: category}
1358				,error : function(xhr,err){
1359					search_input.parents('.search-content').removeClass('loading');
1360				}
1361				,success : function(response){
1362					if( response != '' ){
1363						response = JSON.parse(response);
1364						if( response.search_string == search_string ){
1365							search_cache_data[search_string] = response.html;
1366							if( !is_sidebar ){
1367								search_result_container.html(response.html);
1368								if( typeof enzy_params != 'undefined' && enzy_params.search_style == 'search-v1' ){
1369									var top = jQuery('.header-sticky').offset().top + jQuery('.header-sticky').height();
1370									var left = jQuery('.header-sticky').offset().left;
1371									var width = jQuery('.header-sticky').outerWidth();
1372								}
1373								else{
1374									var top = search_input.offset().top + search_input.outerHeight(true);
1375									var left = Math.ceil(search_input.offset().left);
1376									var width = search_input.outerWidth(true);
1377									var border_width = parseInt(search_input.parent('.search-content').css('border-left-width'));
1378									var window_width = jQuery(window).width();
1379									left -= border_width;
1380									width += border_width;
1381									if( width < 330 && window_width > 420 ){
1382										width = 330;
1383									}
1384									
1385									if( (left + width) > window_width ){ /* Overflow window */
1386										left -= (width - search_input.outerWidth(true));
1387									}
1388								}
1389								
1390								search_result_container.css({
1391									'position': 'absolute'
1392									,'top': top
1393									,'left': left
1394									,'width': width
1395								}).fadeIn(200);
1396								header_search_wrapper.addClass('active');
1397							}
1398							else{
1399								search_result_container_sidebar.html(response.html);
1400							}
1401							
1402							search_input.parents('.search-content').removeClass('loading');
1403							
1404							if( !is_sidebar ){
1405								search_result_container.find('.view-all-wrapper a').on('click', function(e){
1406									e.preventDefault();
1407									search_input.parents('form').submit();
1408								});
1409							}
1410							else{
1411								search_result_container_sidebar.find('.view-all-wrapper a').on('click', function(e){
1412									e.preventDefault();
1413									search_input.parents('form').submit();
1414								});
1415							}
1416						}
1417					}
1418					else{
1419						search_input.parents('.search-content').removeClass('loading');
1420					}
1421				}
1422			});
1423		}, search_delay);
1424	});
1425	
1426	search_result_container.on('mouseleave', function(){
1427		search_result_container.hide();
1428		header_search_wrapper.removeClass('active');
1429	});
1430	
1431	jQuery('body').on('click', function(){
1432		search_result_container.hide();
1433		header_search_wrapper.removeClass('active');
1434	});
1435	
1436	jQuery(window).on('orientationchange', function(){
1437		search_previous_string = '';
1438		search_cache_data = {};
1439		search_result_container.hide();
1440		header_search_wrapper.removeClass('active');
1441	});
1442	
1443	jQuery('.ts-search-by-category select.select-category').on('change', function(){
1444		search_previous_string = '';
1445		search_cache_data = {};
1446		jQuery(this).parents('.ts-search-by-category').find('.search-content input[name="s"]').trigger('keyup');
1447	});
1448}
1449
1450/*** Single post - Related posts - Gallery slider ***/
1451function ts_single_related_post_gallery_slider(){
1452	if( jQuery('.single-post figure.gallery, .list-posts .post-item .gallery figure, .ts-blogs-widget .thumbnail.gallery figure').length > 0 ){
1453		var _this = jQuery('.single-post figure.gallery, .list-posts .post-item .gallery figure, .ts-blogs-widget .thumbnail.gallery figure');
1454		var slider_data = {
1455			items: 1
1456			,loop: true
1457			,nav: true
1458			,dots: false
1459			,animateIn: 'fadeIn'
1460			,animateOut: 'fadeOut'
1461			,navText: [,]
1462			,navSpeed: 1000
1463			,rtl: jQuery('body').hasClass('rtl')
1464			,margin: 10
1465			,navRewind: false
1466			,autoplay: true
1467			,autoplayTimeout: 4000
1468			,autoplayHoverPause: true
1469			,autoplaySpeed: false
1470			,autoHeight: true
1471			,mouseDrag: false
1472			,responsive:{0:{items:1}}
1473			,onInitialized: function(){
1474				_this.removeClass('loading');
1475				_this.parent('.gallery').addClass('loaded').removeClass('loading');
1476			}
1477		};
1478		_this.each(function(){
1479			var validate_slider = true;
1480			
1481			if( jQuery(this).find('img').length <= 1 ){
1482				validate_slider = false;
1483			}
1484			
1485			if( validate_slider ){
1486				jQuery(this).owlCarousel(slider_data);
1487			}
1488			else{
1489				jQuery(this).removeClass('loading');
1490				jQuery(this).parent('.gallery').removeClass('loading');
1491			}
1492		});
1493	}
1494	
1495	if( jQuery('.single-post .related-posts.loading').length > 0 ){
1496		var _this = jQuery('.single-post .related-posts.loading');
1497		var slider_data = {
1498			loop: true
1499			,dots: false
1500			,rtl: jQuery('body').hasClass('rtl')
1501			,margin: 0
1502			,navRewind: false
1503			,autoplay: true
1504			,autoplaySpeed: 1000
1505			,responsiveBaseElement: _this
1506			,responsiveRefreshRate: 400
1507			,responsive:{0:{items:1},460:{items:2},1400:{items:3}}
1508			,onInitialized: function(){
1509				_this.addClass('loaded').removeClass('loading');
1510			}
1511		};
1512		_this.find('.content-wrapper .blogs').owlCarousel(slider_data);
1513	}
1514	
1515}
1516
1517/*** Single Portfolio Slider ***/
1518function ts_generate_single_portfolio_slider(){
1519	if( jQuery('.single-portfolio.slider .thumbnail figure img').length > 1 ){
1520		var wrapper = jQuery('.single-portfolio.slider');
1521		var element = jQuery('.single-portfolio.slider .thumbnail figure');
1522		var center  = (wrapper.hasClass('center') || wrapper.hasClass('center-fullwidth')) && wrapper.hasClass('top-thumbnail');
1523		var items   = center?2:1;
1524		element.owlCarousel({
1525					items: items
1526					,center: center
1527					,loop: true
1528					,nav: true
1529					,navText: [,]
1530					,dots: false
1531					,navSpeed: 1000
1532					,rtl: jQuery('body').hasClass('rtl')
1533					,navRewind: false
1534					,autoHeight: true
1535					,onInitialized: function(){
1536						wrapper.find('.thumbnail').addClass('loaded').removeClass('loading');
1537					}
1538				});
1539	}
1540	else{
1541		jQuery('.single-portfolio.slider .thumbnail').removeClass('loading');
1542	}
1543}
1544
1545/*** Scrolling Fixed ***/
1546function ts_scrolling_fixed(scrolling_element, fixed_element){
1547	if( scrolling_element.length == 0 || fixed_element.length == 0 || jQuery(window).width() < 991
1548		|| fixed_element.height() >= scrolling_element.height() ){
1549		return;
1550	}
1551	
1552	var fixed_left = fixed_element.offset().left;
1553	var fixed_width = fixed_element.outerWidth();
1554	var admin_bar_height = jQuery('#wpadminbar').length > 0?jQuery('#wpadminbar').outerHeight():0;
1555	var window_height = jQuery(window).height();
1556	
1557	jQuery(window).on('scroll', function(){
1558		var window_scroll_top = jQuery(this).scrollTop();
1559		var sticky_height = 0;
1560		if( jQuery('.is-sticky .header-sticky').length > 0 ){
1561			sticky_height = jQuery('.is-sticky .header-sticky').outerHeight();
1562		}
1563		
1564		var fixed_height = fixed_element.height();
1565		var scrolling_height = scrolling_element.height();
1566		var scrolling_top = scrolling_element.offset().top;
1567		var start_scroll = fixed_height > window_height?fixed_height - window_height:0;
1568		
1569		if( window_scroll_top > scrolling_top + start_scroll - admin_bar_height - 20 ){
1570			var top = sticky_height + admin_bar_height + 20;
1571			
1572			if( start_scroll ){
1573				top = -start_scroll;
1574			}
1575			if( window_scroll_top + top + fixed_height > scrolling_top + scrolling_height ){
1576				top = scrolling_height - fixed_height + scrolling_top - window_scroll_top;
1577			}
1578			fixed_element.css({'position': 'fixed', 'left': fixed_left, 'top': top, 'width': fixed_width
1579								, 'transition': ( (top < 60 + admin_bar_height && sticky_height) || enzy_params.sticky_header == 0 ?'none':'')});
1580		}
1581		else{
1582			fixed_element.attr('style', '');
1583		}
1584	});
1585}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.