PageSourceSearch

https://www.cognacfestival.fr/wp-content/plugins/trx_utils/shortcodes/theme.shortcodes.js

js cognacfestival.fr collected 2026-10-08 09:23:26 UTC 45,079 bytes, 1,323 lines download raw bytes

1// Init actions
2function vegadays_sc_init_actions() {
3	"use strict";
4	setTimeout(function() {
5		vegadays_sc_animation();
6	}, 600);
7	
8	// MenuItems - init once
9	jQuery('body')
10		.on('click', '.show_popup_menuitem', function(e) {
11			"use strict";
12			vegadays_menuitems_show_popup(jQuery(this));
13			e.preventDefault();
14			return false;
15		})
16		.on('click', '.close_menuitem, .popup_menuitem', function(e) {
17			"use strict";
18			var target = jQuery(e.target);
19			if (target.hasClass('popup_menuitem') || target.hasClass('close_menuitem') || target.parent().hasClass('close_menuitem')) {
20				vegadays_menuitems_hide_popup();
21				e.preventDefault();
22				return false;
23			}
24		});
25
26	// Init sc in container
27	vegadays_sc_init(jQuery('body').eq(0));
28}
29
30
31// Resize actions
32function vegadays_sc_resize_actions() {
33	"use strict";
34	vegadays_sc_sliders_resize();
35	vegadays_sc_equal_height();
36}
37
38
39// Scroll actions
40function vegadays_sc_scroll_actions() {
41	"use strict";
42	vegadays_sc_animation();
43}
44
45
46// Animation
47function vegadays_sc_animation() {
48	jQuery('[data-animation^="animated"]:not(.animated)').each(function() {
49		"use strict";
50		if (jQuery(this).offset().top < jQuery(window).scrollTop() + jQuery(window).height())
51			jQuery(this).addClass(jQuery(this).data('animation'));
52	});
53}
54
55
56// Shortcodes init
57function vegadays_sc_init(container) {
58
59	// Call theme specific action (if exists)
60	if (window.vegadays_theme_sc_init) vegadays_theme_sc_init(container);
61
62	// Accordion
63	if (container.find('.sc_accordion:not(.inited)').length > 0) {
64		container.find(".sc_accordion:not(.inited)").each(function () {
65			"use strict";
66			var init = jQuery(this).data('active');
67			if (isNaN(init)) init = 0;
68			else init = Math.max(0, init);
69			jQuery(this)
70				.addClass('inited')
71				.accordion({
72					active: init,
73					heightStyle: "content",
74					header: "> .sc_accordion_item > .sc_accordion_title",
75					create: function (event, ui) {
76						"use strict";
77						vegadays_sc_init(ui.panel);
78						if (window.vegadays_init_hidden_elements) vegadays_init_hidden_elements(ui.panel);
79						ui.header.each(function () {
80							"use strict";
81							jQuery(this).parent().addClass('sc_active');
82						});
83					},
84					activate: function (event, ui) {
85						"use strict";
86						vegadays_sc_init(ui.newPanel);
87						if (window.vegadays_init_hidden_elements) vegadays_init_hidden_elements(ui.newPanel);
88						ui.newHeader.each(function () {
89							"use strict";
90							jQuery(this).parent().addClass('sc_active');
91						});
92						ui.oldHeader.each(function () {
93							"use strict";
94							jQuery(this).parent().removeClass('sc_active');
95						});
96					}
97				});
98		});
99	}
100
101	// Blogger: style Polaroid
102	if (container.find('.sc_blogger.layout_polaroid .photostack:not(.inited)').length > 0) {
103		container.find(".sc_blogger.layout_polaroid .photostack:not(.inited)").each(function () {
104			"use strict";
105			var obj = jQuery(this);
106			var id = obj.attr('id');
107			if (id == undefined) {
108				id = 'photostack_'+Math.random();
109				id = id.replace('.', '');
110				obj.attr('id', id);
111			}
112			setTimeout(function() {
113				"use strict";
114				obj.addClass('inited').parent().height("auto");
115				new Photostack( obj.get(0), {
116					callback: function( item ) {
117					}
118				} );
119			}, 10);
120		});
121	}
122
123	// Blogger: Scroll horizontal
124	if (container.find('.sc_blogger .sc_scroll_horizontal .sc_scroll_wrapper:not(.inited)').length > 0) {
125		container.find(".sc_blogger .sc_scroll_horizontal .sc_scroll_wrapper:not(.inited)").each(function () {
126			"use strict";
127			var obj = jQuery(this);
128			var width = 0;
129			obj.find('.isotope_item').each(function(){
130				"use strict";
131				width += jQuery(this).outerWidth();
132			});
133			obj.addClass('inited').width(width);
134		});
135	}
136
137	// Form
138	if (container.find('.sc_form:not(.inited) form').length > 0) {
139		container.find(".sc_form:not(.inited) form").each(function() {
140			"use strict";
141			jQuery(this).addClass('inited');
142			jQuery(this).submit(function(e) {
143				"use strict";
144				vegadays_sc_form_validate(jQuery(this));
145				e.preventDefault();
146				return false;
147			});
148			if (jQuery(this).find('.js__datepicker').length > 0) {
149				jQuery(this).find('.js__datepicker').pickadate({
150					// Work-around for some mobile browsers clipping off the picker.
151					onOpen: function() {
152						"use strict";
153						jQuery('pre').css('overflow', 'hidden');
154						},
155					onClose: function() {
156						"use strict";
157						jQuery('pre').css('overflow', '');
158					},
159					monthsShort: [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'June', 'July', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec' ],
160					showMonthsShort: true,
161					format: 'dd.mm.yyyy',
162					formatSubmit: 'yyyy-mm-dd',
163					min: true
164				});
165			}
166			if (jQuery(this).find('.js__timepicker').length > 0) {
167				jQuery(this).find('.js__timepicker').pickatime();
168			}
169		});
170	}
171
172	//Countdown
173	if (container.find('.sc_countdown:not(.inited)').length > 0) {
174		container.find('.sc_countdown:not(.inited)')
175			.each(function () {
176				"use strict";
177				jQuery(this).addClass('inited');
178				var id = jQuery(this).attr('id');
179				var curDate = new Date(); 
180				var curDateTimeStr = curDate.getFullYear()+'-'+(curDate.getMonth()<9 ? '0' : '')+(curDate.getMonth()+1)+'-'+(curDate.getDate()<10 ? '0' : '')+curDate.getDate()
181					+' '+(curDate.getHours()<10 ? '0' : '')+curDate.getHours()+':'+(curDate.getMinutes()<10 ? '0' : '')+curDate.getMinutes()+':'+(curDate.getSeconds()<10 ? '0' : '')+curDate.getSeconds(); 
182				var interval = 1;	//jQuery(this).data('interval');
183				var endDateStr = jQuery(this).data('date');
184				var endDateParts = endDateStr.split('-');
185				var endTimeStr = jQuery(this).data('time');
186				var endTimeParts = endTimeStr.split(':');
187				if (endTimeParts.length < 3) endTimeParts[2] = '00';
188				var endDateTimeStr = endDateStr+' '+endTimeStr;
189				if (curDateTimeStr < endDateTimeStr) {
190					jQuery(this).find('.sc_countdown_placeholder').countdown({
191						until: new Date(endDateParts[0], endDateParts[1]-1, endDateParts[2], endTimeParts[0], endTimeParts[1], endTimeParts[2]), 
192						tickInterval: interval,
193						onTick: vegadays_countdown
194					}); 
195				} else {
196					jQuery(this).find('.sc_countdown_placeholder').countdown({
197						since: new Date(endDateParts[0], endDateParts[1]-1, endDateParts[2], endTimeParts[0], endTimeParts[1], endTimeParts[2]), 
198						tickInterval: interval,
199						onTick: vegadays_countdown
200					}); 
201				}
202			});
203	}
204
205
206	// Googlemap init
207	if (container.find('.sc_googlemap:not(.inited)').length > 0) {
208		container.find('.sc_googlemap:not(.inited)')
209			.each(function () {
210				"use strict";
211				if (jQuery(this).parents('div:hidden,article:hidden').length > 0) return;
212				var map = jQuery(this).addClass('inited');
213				var map_id		= map.attr('id');
214				var map_zoom	= map.data('zoom');
215				var map_style	= map.data('style');
216				var map_markers = [];
217				map.find('.sc_googlemap_marker').each(function() {
218					"use strict";
219					var marker = jQuery(this);
220					map_markers.push({
221						point:			marker.data('point'),
222						address:		marker.data('address'),
223						latlng:			marker.data('latlng'),
224						description:	marker.data('description'),
225						title:			marker.data('title')
226					});
227				});
228				vegadays_googlemap_init( jQuery('#'+map_id).get(0), {style: map_style, zoom: map_zoom, markers: map_markers});
229			});
230	}
231
232	// Infoboxes
233	if (container.find('.sc_infobox.sc_infobox_closeable:not(.inited)').length > 0) {
234		container.find('.sc_infobox.sc_infobox_closeable:not(.inited)')
235			.addClass('inited')
236			.on('click', function (e) {
237				"use strict";
238				jQuery(this).slideUp();
239				e.preventDefault();
240				return false;
241			});
242	}
243
244	// Matches
245	if (container.find('.sc_matches:not(.inited)').length > 0) {
246		container.find('.sc_matches:not(.inited)')
247			.each(function () {
248				"use strict";
249				jQuery(this).find('.sc_matches_next .sc_matches_list .sc_match').on('click', function () {
250					"use strict";
251					jQuery(this).parents('.sc_matches').find('.sc_matches_current .sc_match').hide();
252					var item = jQuery(this).data('item');
253					jQuery(item).fadeIn();
254				});
255			});
256	}
257
258	// Matches & Players: Sort players by points
259	if (container.find('.sc_players_table:not(.inited)').length > 0) {
260		container.find('.sc_players_table:not(.inited)')
261			.addClass('inited')
262			.on('click', '.sort', function (e) {
263				"use strict";
264				var table = jQuery(this).parents('.sc_players_table');
265				var id = jQuery(table).attr('id')
266				var sort = jQuery(table).data('sort') == 'asc' ? 'desc' : 'asc';
267				jQuery.post(VEGADAYS_STORAGE['ajax_url'], {
268					action: 'sort_by_points',
269					nonce: VEGADAYS_STORAGE['ajax_nonce'],
270					sort: sort,
271					table: VEGADAYS_STORAGE['ajax_' + id]
272				}).done(function(response) {
273					var rez = {};
274					try {
275						rez = JSON.parse(response);
276					} catch (e) {
277						rez = { error: VEGADAYS_STORAGE['ajax_error'] };
278						console.log(response);
279					}
280					if (rez.error === '') { 
281						table
282							.data('sort', sort)
283							.find('.sc_table')
284								.after(rez.data)
285								.remove();
286						vegadays_select_players_category(jQuery(table).find('.sc_players_table_category select'));		
287					}
288				});
289				e.preventDefault();
290				return false;
291			});
292	}
293	
294	// Matches & Players: Select category in the points table
295	if (container.find('.sc_players_table_category:not(.inited)').length > 0) {
296		container.find('.sc_players_table_category:not(.inited)')
297			.addClass('inited')
298			.on('change', function () {
299				"use strict";
300				vegadays_select_players_category(jQuery(this));		
301			});
302	}
303
304	// Popup links
305	if (container.find('.sc_popup_link:not(.inited)').length > 0) {
306		container.find('.sc_popup_link:not(.inited)').each(function() {
307			var popup_id = jQuery(this).attr('href');
308			jQuery(this)
309				.addClass('inited')
310				.magnificPopup({
311					type: 'inline',
312					removalDelay: 500,
313					midClick: true,
314					callbacks: {
315						beforeOpen: function () {
316							this.st.mainClass = 'mfp-zoom-in';
317						},
318						open: function() {
319							"use strict";
320							vegadays_sc_init(jQuery(popup_id));
321							vegadays_resize_actions();
322							if (window.vegadays_init_hidden_elements) vegadays_init_hidden_elements(jQuery(popup_id));
323						},
324						close: function() {}
325					}
326				});
327		});
328	}
329
330	// Recent news widget and sc
331	if (container.find('.sc_recent_news_header_category_item_more:not(.inited)').length > 0) {
332		container.find('.sc_recent_news_header_category_item_more:not(.inited)').each(function() {
333			"use strict";
334			jQuery(this)
335				.addClass('inited')
336				.on('click', function(e) {
337					"use strict";
338					jQuery(this).toggleClass('opened').find('.sc_recent_news_header_more_categories').slideToggle();
339					e.preventDefault();
340					return false;
341				});
342		});
343	}
344
345	// Search form
346	if (container.find('.search_wrap:not(.inited)').length > 0) {
347		container.find('.search_wrap:not(.inited)').each(function() {
348			"use strict";
349			jQuery(this)
350				.addClass('inited')
351				.on('click', '.search_submit', function(e) {
352					"use strict";
353					var search_wrap = jQuery(this).parents('.search_wrap');
354					if (!search_wrap.hasClass('search_state_fixed')) {
355						if (search_wrap.hasClass('search_state_opened')) {
356							if (search_wrap.find('.search_field').val() != '')
357								search_wrap.find('form').get(0).submit();
358							else
359								search_wrap.removeClass('search_state_opened').addClass('search_state_closed').find('.search_results').fadeOut();
360						} else
361							search_wrap.removeClass('search_state_closed').addClass('search_state_opened').find('.search_field').get(0).focus();
362					} else {
363						if (search_wrap.find('.search_field').val() != '')
364							search_wrap.find('form').get(0).submit();
365						else {
366							search_wrap.find('.search_field').val('');
367							search_wrap.find('.search_results').fadeOut();
368						}
369					}
370					e.preventDefault();
371					return false;
372				})
373				.on('click', '.search_close', function(e) {
374					"use strict";
375					jQuery(this).parents('.search_wrap').removeClass('search_state_opened').addClass('search_state_closed').find('.search_results').fadeOut();
376					e.preventDefault();
377					return false;
378				})
379				.on('click', '.search_results_close', function(e) {
380					"use strict";
381					jQuery(this).parent().fadeOut();
382					e.preventDefault();
383					return false;
384				})
385				.on('click', '.search_more', function(e) {
386					"use strict";
387					if (jQuery(this).parents('.search_wrap').find('.search_field').val() != '')
388						jQuery(this).parents('.search_wrap').find('form').get(0).submit();
389					e.preventDefault();
390					return false;
391				})
392				.on('blur', '.search_field', function(e) {
393					if (jQuery(this).val() == '')
394						jQuery(this).parents('.search_wrap').removeClass('search_state_opened').addClass('search_state_closed').find('.search_results').fadeOut();
395				});
396			
397			if (jQuery(this).hasClass('search_ajax')) {
398				var ajax_timer = null;
399				jQuery(this).find('.search_field').keyup(function(e) {
400					"use strict";
401					var search_field = jQuery(this);
402					var s = search_field.val();
403					if (ajax_timer) {
404						clearTimeout(ajax_timer);
405						ajax_timer = null;
406					}
407					if (s.length >= VEGADAYS_STORAGE['ajax_search_min_length']) {
408						ajax_timer = setTimeout(function() {
409							"use strict";
410							jQuery.post(VEGADAYS_STORAGE['ajax_url'], {
411								action: 'ajax_search',
412								nonce: VEGADAYS_STORAGE['ajax_nonce'],
413								text: s
414							}).done(function(response) {
415								"use strict";
416								clearTimeout(ajax_timer);
417								ajax_timer = null;
418								var rez = {};
419								try {
420									rez = JSON.parse(response);
421								} catch (e) {
422									rez = { error: VEGADAYS_STORAGE['ajax_error'] };
423									console.log(response);
424								}
425								if (rez.error === '') {
426									search_field.parents('.search_ajax').find('.search_results_content').empty().append(rez.data);
427									search_field.parents('.search_ajax').find('.search_results').fadeIn();
428								} else {
429									vegadays_message_warning(VEGADAYS_STORAGE['strings']['search_error']);
430								}
431							});
432						}, VEGADAYS_STORAGE['ajax_search_delay']);
433					}
434				});
435			}
436		});
437	}
438
439	
440	// Section Pan init
441	if (container.find('.sc_pan:not(.inited_pan)').length > 0) {
442		container.find('.sc_pan:not(.inited_pan)')
443			.each(function () {
444				"use strict";
445				if (jQuery(this).parents('div:hidden,article:hidden').length > 0) return;
446				var pan = jQuery(this).addClass('inited_pan');
447				var cont = pan.parent();
448				cont.mousemove(function(e) {
449					"use strict";
450					var anim = {};
451					var tm = 0;
452					var pw = pan.width(), ph = pan.height();
453					var cw = cont.width(), ch = cont.height();
454					var coff = cont.offset();
455					if (pan.hasClass('sc_pan_vertical'))
456						pan.css('top', -Math.floor((e.pageY - coff.top) / ch * (ph-ch)));
457					if (pan.hasClass('sc_pan_horizontal'))
458						pan.css('left', -Math.floor((e.pageX - coff.left) / cw * (pw-cw)));
459				});
460				cont.mouseout(function(e) {
461					"use strict";
462					pan.css({'left': 0, 'top': 0});
463				});
464			});
465	}
466
467	// Scroll
468	if (container.find('.sc_scroll:not(.inited)').length > 0) {
469		container.find('.sc_scroll:not(.inited)')
470			.each(function () {
471				"use strict";
472				if (jQuery(this).parents('div:hidden,article:hidden').length > 0) return;
473				VEGADAYS_STORAGE['scroll_init_counter'] = 0;
474				vegadays_sc_init_scroll_area(jQuery(this));
475			});
476	}
477
478
479	// Swiper Slider
480	if (container.find('.sc_slider_swiper:not(.inited)').length > 0) {
481		container.find('.sc_slider_swiper:not(.inited)')
482			.each(function () {
483				"use strict";
484				if (jQuery(this).parents('div:hidden,article:hidden').length > 0) return;
485				//if (jQuery(this).parents('.isotope_wrap:not(.inited)').length > 0) return;
486				jQuery(this).addClass('inited');
487				vegadays_sc_slider_autoheight(jQuery(this));
488				if (jQuery(this).parents('.sc_slider_pagination_area').length > 0) {
489					jQuery(this).parents('.sc_slider_pagination_area').find('.sc_slider_pagination .post_item').eq(0).addClass('active');
490				}
491				var id = jQuery(this).attr('id');
492				if (id == undefined) {
493					id = 'swiper_'+Math.random();
494					id = id.replace('.', '');
495					jQuery(this).attr('id', id);
496				}
497				jQuery(this).addClass(id);
498				jQuery(this).find('.slides .swiper-slide').css('position', 'relative');
499				var width = jQuery(this).width();
500				if (width == 0) width = jQuery(this).parent().width();
501				var spv = jQuery(this).data('slides-per-view');
502				if (spv == undefined) spv = 1;
503				var min_width = jQuery(this).data('slides-min-width');
504				if (min_width == undefined) min_width = 50;
505				if (width / spv < min_width) spv = Math.max(1, Math.floor(width / min_width));
506				var space = jQuery(this).data('slides-space');
507				if (space == undefined) space = 0;
508				if (VEGADAYS_STORAGE['swipers'] === undefined) VEGADAYS_STORAGE['swipers'] = {};
509				VEGADAYS_STORAGE['swipers'][id] = new Swiper('.'+id, {
510					calculateHeight: !jQuery(this).hasClass('sc_slider_height_fixed'),
511					resizeReInit: true,
512					autoResize: true,
513					loop: true,
514					grabCursor: true,
515			        nextButton: jQuery(this).hasClass('sc_slider_controls') ? '#'+id+' .sc_slider_next' : false,
516			        prevButton: jQuery(this).hasClass('sc_slider_controls') ? '#'+id+' .sc_slider_prev' : false,
517					pagination: jQuery(this).hasClass('sc_slider_pagination') ? '#'+id+' .sc_slider_pagination_wrap' : false,
518				    paginationClickable: true,
519					autoplay: jQuery(this).hasClass('sc_slider_noautoplay') ? false : (isNaN(jQuery(this).data('interval')) ? 7000 : jQuery(this).data('interval')),
520					autoplayDisableOnInteraction: false,
521					initialSlide: 0,
522					slidesPerView: spv,
523					loopedSlides: spv,
524					spaceBetween: space,
525					speed: 600,
526					// Autoheight on start
527					onFirstInit: function (slider){
528						"use strict";
529						var cont = jQuery(slider.container);
530						if (!cont.hasClass('sc_slider_height_auto')) return;
531						var li = cont.find('.swiper-slide').eq(1);
532						var h = li.data('height_auto');
533						if (h > 0) {
534							var pt = parseInt(li.css('paddingTop')), pb = parseInt(li.css('paddingBottom'));
535							li.height(h);
536							cont.height(h + (isNaN(pt) ? 0 : pt) + (isNaN(pb) ? 0 : pb));
537							cont.find('.swiper-wrapper').height(h + (isNaN(pt) ? 0 : pt) + (isNaN(pb) ? 0 : pb));
538						}
539					},
540					// Autoheight on slide change
541					onSlideChangeStart: function (slider){
542						"use strict";
543						var cont = jQuery(slider.container);
544						if (!cont.hasClass('sc_slider_height_auto')) return;
545						var idx = slider.activeIndex;
546						var li = cont.find('.swiper-slide').eq(idx);
547						var h = li.data('height_auto');
548						if (h > 0) {
549							var pt = parseInt(li.css('paddingTop')), pb = parseInt(li.css('paddingBottom'));
550							li.height(h);
551							cont.height(h + (isNaN(pt) ? 0 : pt) + (isNaN(pb) ? 0 : pb));
552							cont.find('.swiper-wrapper').height(h + (isNaN(pt) ? 0 : pt) + (isNaN(pb) ? 0 : pb));
553						}
554					},
555					// Change current item in 'full' or 'over' pagination wrap
556					onSlideChangeEnd: function (slider, dir) {
557						"use strict";
558						var cont = jQuery(slider.container);
559						if (cont.parents('.sc_slider_pagination_area').length > 0) {
560							var li = cont.parents('.sc_slider_pagination_area').find('.sc_slider_pagination .post_item');
561							var idx = slider.activeIndex > li.length ? 0 : slider.activeIndex-1;
562							vegadays_sc_change_active_pagination_in_slider(cont, idx);
563						}
564					}
565				});
566				
567				jQuery(this).data('settings', {mode: 'horizontal'});		// VC hook
568				
569				var curSlide = jQuery(this).find('.slides').data('current-slide');
570				if (curSlide > 0)
571					VEGADAYS_STORAGE['swipers'][id].slideTo(curSlide-1);
572
573				vegadays_sc_prepare_slider_navi(jQuery(this));
574
575			});
576			
577		// Check slides per view
578		vegadays_sc_sliders_resize();
579	}
580
581	//Skills init
582	if (container.find('.sc_skills_item:not(.inited)').length > 0) {
583		vegadays_sc_init_skills(container);
584		jQuery(window).scroll(function () { vegadays_sc_init_skills(container); });
585	}
586	//Skills type='arc' init
587	if (container.find('.sc_skills_arc:not(.inited)').length > 0) {
588		vegadays_sc_init_skills_arc(container);
589		jQuery(window).scroll(function () { vegadays_sc_init_skills_arc(container); });
590	}
591
592	// Tabs
593	if (container.find('.sc_tabs:not(.inited):not(.no_jquery_ui),.tabs_area:not(.inited)').length > 0) {
594		container.find('.sc_tabs:not(.inited):not(.no_jquery_ui),.tabs_area:not(.inited)').each(function () {
595			"use strict";
596			var init = jQuery(this).data('active');
597			if (isNaN(init)) init = 0;
598			else init = Math.max(0, init);
599			jQuery(this)
600				.addClass('inited')
601				.tabs({
602					active: init,
603					show: {
604						effect: 'fadeIn',
605						duration: 300
606					},
607					hide: {
608						effect: 'fadeOut',
609						duration: 300
610					},
611					create: function (event, ui) {
612						"use strict";
613						vegadays_sc_init(ui.panel);
614						if (window.vegadays_init_hidden_elements) vegadays_init_hidden_elements(ui.panel);
615					},
616					activate: function (event, ui) {
617						"use strict";
618						vegadays_sc_init(ui.newPanel);
619						if (window.vegadays_init_hidden_elements) vegadays_init_hidden_elements(ui.newPanel);
620					}
621				});
622		});
623	}
624	if (container.find('.sc_tabs.no_jquery_ui:not(.inited)').length > 0) {
625		container.find('.sc_tabs.no_jquery_ui:not(.inited)').each(function () {
626			"use strict";
627			jQuery(this)
628				.addClass('inited')
629				.on('click', '.sc_tabs_titles li a', function(e) {
630					"use strict";
631					if (!jQuery(this).parent().hasClass('sc_tabs_active')) {
632						var id_act = jQuery(this).parent().siblings('.sc_tabs_active').find('a').attr('href');
633						var id = jQuery(this).attr('href');
634						jQuery(this).parent().addClass('sc_tabs_active').siblings().removeClass('sc_tabs_active');
635						jQuery(id_act).fadeOut(function() {
636							"use strict";
637							jQuery(id).fadeIn(function() {
638								"use strict";
639								vegadays_sc_init(jQuery(this));
640								if (window.vegadays_init_hidden_elements) vegadays_init_hidden_elements(jQuery(this));
641							});
642						});
643					}
644					e.preventDefault();
645					return false;
646				});
647			jQuery(this).find('.sc_tabs_titles li').eq(0).addClass('sc_tabs_active');
648			jQuery(this).find('.sc_tabs_content').eq(0).fadeIn(function() {
649				"use strict";
650				vegadays_sc_init(jQuery(this));
651				if (window.vegadays_init_hidden_elements) vegadays_init_hidden_elements(jQuery(this));
652			});
653		});
654	}
655
656	// Toggles
657	if (container.find('.sc_toggles .sc_toggles_title:not(.inited)').length > 0) {
658		container.find('.sc_toggles .sc_toggles_title:not(.inited)')
659			.addClass('inited')
660			.on('click', function () {
661				"use strict";
662				jQuery(this).toggleClass('ui-state-active').parent().toggleClass('sc_active');
663				jQuery(this).parent().find('.sc_toggles_content').slideToggle(300, function () { 
664					"use strict";
665					vegadays_sc_init(jQuery(this).parent().find('.sc_toggles_content')); 
666					if (window.vegadays_init_hidden_elements) vegadays_init_hidden_elements(jQuery(this).parent().find('.sc_toggles_content'));
667				});
668			});
669	}
670
671	//Zoom
672	if (container.find('.sc_zoom:not(.inited)').length > 0) {
673		container.find('.sc_zoom:not(.inited)')
674			.each(function () {
675				"use strict";
676				if (jQuery(this).parents('div:hidden,article:hidden').length > 0) return;
677				jQuery(this).addClass('inited');
678				jQuery(this).find('img').elevateZoom({
679					zoomType: "lens",
680					lensShape: "round",
681					lensSize: 200,
682					lensBorderSize: 4,
683					lensBorderColour: '#ccc'
684				});
685			});
686	}
687
688}
689
690
691
692// Scrolled areas
693function vegadays_sc_init_scroll_area(obj) {
694	"use strict";
695
696	// Wait for images loading
697	if (!vegadays_check_images_complete(obj) && VEGADAYS_STORAGE['scroll_init_counter']++ < 30) {
698		setTimeout(function() { vegadays_sc_init_scroll_area(obj); }, 200);
699		return;
700	}
701
702	// Start init scroll area
703	obj.addClass('inited');
704
705	var id = obj.attr('id');
706	if (id == undefined) {
707		id = 'scroll_'+Math.random();
708		id = id.replace('.', '');
709		obj.attr('id', id);
710	}
711	obj.addClass(id);
712
713	var parent_obj = obj.parent();
714	var parent_id  = parent_obj.attr('id');
715	if (parent_id == undefined) {
716		parent_id = 'scroll_wrap_'+Math.random();
717		parent_id = parent_id.replace('.', '');
718		parent_obj.attr('id', parent_id);
719	}
720	parent_obj.addClass(parent_id);
721
722	var bar = obj.find('#'+id+'_bar');
723	if (bar.length > 0 && !bar.hasClass(id+'_bar')) {
724		bar.addClass(id+'_bar');
725	}
726	
727	// Correct wrapper width (if scroll dir = horizontal)
728	if (obj.hasClass('sc_scroll_horizontal')) {
729		obj.find('.sc_scroll_wrapper > .sc_scroll_slide').css('width', 'auto');
730		obj.find('.sc_scroll_wrapper').css('width', obj.find('.sc_scroll_wrapper > .sc_scroll_slide').width()+10);
731		obj.find('.sc_scroll_wrapper > .sc_scroll_slide').css('width', '100%')
732	}
733
734	// Init Swiper with scroll plugin
735	if (VEGADAYS_STORAGE['swipers'] === undefined) VEGADAYS_STORAGE['swipers'] = {};
736	VEGADAYS_STORAGE['swipers'][id] = new Swiper('.'+id, {
737		calculateHeight: false,
738		resizeReInit: true,
739		autoResize: true,
740		freeMode: true,
741		freeModeFluid: true,
742		grabCursor: true,
743		mode: obj.hasClass('sc_scroll_vertical') ? 'vertical' : 'horizontal',
744		direction: obj.hasClass('sc_scroll_vertical') ? 'vertical' : 'horizontal',
745		slidesPerView: obj.hasClass('sc_scroll') ? 'auto' : 1,
746        nextButton: parent_obj.hasClass('sc_scroll_controls') ? '#'+parent_id+' .sc_scroll_next' : false,
747        prevButton: parent_obj.hasClass('sc_scroll_controls') ? '#'+parent_id+' .sc_scroll_prev' : false,
748        scrollbar: '.'+id+'_bar',
749        scrollbarHide: true,
750	})
751	
752	// VC hook
753	obj.data('settings', {mode: 'horizontal'});
754}
755
756
757// Slider navigation
758function vegadays_sc_prepare_slider_navi(slider) {
759	"use strict";
760	var navi = null;
761	
762	// Prev / Next
763	// Remove condition in the line below if you need add click handler to next/prev buttons
764	if (false) {
765		navi = slider.find('> .sc_slider_controls_wrap, > .sc_scroll_controls_wrap');
766		if (navi.length == 0) navi = slider.siblings('.sc_slider_controls_wrap,.sc_scroll_controls_wrap');
767		if (navi.length > 0) {
768			navi.on('click', '.sc_slider_prev,.sc_scroll_prev', function(e) {
769				var swiper = jQuery(this).parents('.swiper-slider-container');
770				if (swiper.length == 0) swiper = jQuery(this).parents('.sc_slider_controls_wrap,.sc_scroll_controls_wrap').siblings('.swiper-slider-container');
771				var id = swiper.attr('id');
772				VEGADAYS_STORAGE['swipers'][id].slidePrev();
773				e.preventDefault();
774				return false;
775			})
776			.on('click', '.sc_slider_next,.sc_scroll_next', function(e){
777				var swiper = jQuery(this).parents('.swiper-slider-container');
778				if (swiper.length == 0) swiper = jQuery(this).parents('.sc_slider_controls_wrap,.sc_scroll_controls_wrap').siblings('.swiper-slider-container');
779				var id = swiper.attr('id');
780				VEGADAYS_STORAGE['swipers'][id].slideNext();
781				e.preventDefault();
782				return false;
783			});
784		}
785	}
786
787	// Pagination with slide's title
788	navi = slider.siblings('.sc_slider_pagination');
789	if (navi.length > 0) {
790		navi.on('click', '.post_item', function(e){
791			var swiper = jQuery(this).parents('.sc_slider_pagination_area').find('.swiper-slider-container');
792			var id = swiper.attr('id');
793			VEGADAYS_STORAGE['swipers'][id].slideTo(jQuery(this).index()+1);
794			e.preventDefault();
795			return false;
796		});
797	}
798}
799
800// Sliders: Pagination
801function vegadays_sc_change_active_pagination_in_slider(slider, idx) {
802	"use strict";
803	var pg = slider.parents('.sc_slider_pagination_area').find('.sc_slider_pagination');
804	if (pg.length==0) return;
805	pg.find('.post_item').removeClass('active').eq(idx).addClass('active');
806	var h = pg.height();
807	var off = pg.find('.active').offset().top - pg.offset().top;
808	var off2 = pg.find('.sc_scroll_wrapper').offset().top - pg.offset().top;
809	var h2  = pg.find('.active').height();
810	if (off < 0) {
811		pg.find('.sc_scroll_wrapper').css({'transform': 'translate3d(0px, 0px, 0px)', 'transition-duration': '0.3s'});
812	} else if (h <= off+h2) {
813		pg.find('.sc_scroll_wrapper').css({'transform': 'translate3d(0px, -'+(Math.abs(off2)+off-h/4)+'px, 0px)', 'transition-duration': '0.3s'});
814	}
815}
816
817// Sliders: Autoheight
818function vegadays_sc_slider_autoheight(slider) {
819	"use strict";
820	if (slider.hasClass('.sc_slider_height_auto')) {
821		slider.find('.swiper-slide').each(function() {
822			"use strict";
823			if (jQuery(this).data('height_auto') == undefined) {
824				jQuery(this).attr('data-height_auto', jQuery(this).height());
825			}
826		});
827	}
828}
829
830// Sliders: Resize
831function vegadays_sc_sliders_resize() {
832	"use strict";
833	var slider = arguments[0]!==undefined ? arguments[0] : '.sc_slider_swiper.inited';
834	var resize = arguments[1]!==undefined ? arguments[1] : true;
835
836	jQuery(slider).each(function() {
837		"use strict";
838		var id = jQuery(this).attr('id');
839		var width = jQuery(this).width();
840		var last_width = jQuery(this).data('last-width');
841		if (isNaN(last_width)) last_width = 0;
842		
843		// Change slides_per_view
844		if (last_width==0 || last_width!=width) {
845			var spv = jQuery(this).data('slides-per-view');
846			if (spv == undefined) spv = 1;
847			var min_width = jQuery(this).data('slides-min-width');
848			if (min_width == undefined) min_width = 50;
849			if (width / spv < min_width) spv = Math.max(1, Math.floor(width / min_width));
850			jQuery(this).data('last-width', width);
851			if (VEGADAYS_STORAGE['swipers'][id].params.slidesPerView != spv) {
852				VEGADAYS_STORAGE['swipers'][id].params.slidesPerView = spv;
853				VEGADAYS_STORAGE['swipers'][id].params.loopedSlides = spv;
854				//VEGADAYS_STORAGE['swipers'][id].reInit();
855			}
856            VEGADAYS_STORAGE['swipers'][id].onResize();
857		}
858
859
860		// Resize slider
861		if ( resize && !jQuery(this).hasClass('sc_slider_height_fixed') ) {
862			var h = 0;
863			if ( jQuery(this).find('.swiper-slide > img').length > 0 ) {
864				jQuery(this).find('.swiper-slide > img').each(function() {
865					"use strict";
866					if (jQuery(this).height() > h) h = jQuery(this).height();
867				});
868				jQuery(this).height(h);
869			} else if ( jQuery(this).find('.swiper-slide').css('backgroundImage')!='none' ) {
870				h = Math.floor(width/16*9);
871				jQuery(this).height(h).find('.swiper-slide').height(h);
872			}
873		}
874	});
875	
876	// Resize slider pagination area
877	jQuery('.sc_slider_pagination_area').each(function() {
878		"use strict";
879		var h = jQuery(this).find('.sc_slider').height();
880		if (h) {
881			jQuery(this).height(h);
882			jQuery(this).find('.sc_slider_pagination').height(h);
883			jQuery(this).find('.sc_slider_pagination .sc_scroll_vertical').height(h);
884		}
885	});
886}
887
888// Equal height for items in the row
889function vegadays_sc_equal_height() {
890	"use strict";
891	jQuery('[data-equal-height]').each(function() {
892		"use strict";
893		var eh_wrap = jQuery(this);
894		var eh_items_selector = eh_wrap.data('equal-height');
895		if (eh_items_selector) {
896			var max_h = 0;
897			var items = [];
898			var row_y = 0;
899			var i=0;
900			eh_wrap.find(eh_items_selector).each(function() {
901				"use strict";
902				var el = jQuery(this);
903				el.height('auto');
904				var el_height = el.height();
905				var el_offset = el.offset().top;
906				if (row_y == 0) row_y = el_offset;
907				if (row_y < el_offset) {
908					if (items.length > 0) {
909						if (max_h > 0) {
910							for (i=0; i<items.length; i++)
911								items[i].height(max_h);
912						}
913						items = [];
914						max_h = 0;
915					}
916					row_y = el_offset;
917				}
918				if (el_height > max_h) max_h = el_height;
919				items.push(el);
920			});
921			if (items.length > 0 && max_h > 0) {
922				for (i=0; i<items.length; i++)
923					items[i].height(max_h);
924			}
925		}
926	});
927}
928
929
930// Skills init
931function vegadays_sc_init_skills(container) {
932	"use strict";
933	if (arguments.length==0) var container = jQuery('body');
934	var scrollPosition = jQuery(window).scrollTop() + jQuery(window).height();
935
936	container.find('.sc_skills_item:not(.inited)').each(function () {
937		"use strict";
938		var skillsItem = jQuery(this);
939		var scrollSkills = skillsItem.offset().top;
940		if (scrollPosition > scrollSkills) {
941			skillsItem.addClass('inited');
942			var skills = skillsItem.parents('.sc_skills').eq(0);
943			var type = skills.data('type');
944			var total = (type=='pie' && skills.hasClass('sc_skills_compact_on')) ? skillsItem.find('.sc_skills_data .pie') : skillsItem.find('.sc_skills_total').eq(0);
945			var start = parseInt(total.data('start'));
946			var stop = parseInt(total.data('stop'));
947			var maximum = parseInt(total.data('max'));
948			var startPercent = Math.round(start/maximum*100);
949			var stopPercent = Math.round(stop/maximum*100);
950			var ed = total.data('ed');
951			var duration = parseInt(total.data('duration'));
952			var speed = parseInt(total.data('speed'));
953			var step = parseInt(total.data('step'));
954			if (type == 'bar') {
955				var dir = skills.data('dir');
956				var count = skillsItem.find('.sc_skills_count').eq(0);
957				if (dir=='horizontal')
958					count.css('width', startPercent + '%').animate({ width: stopPercent + '%' }, duration);
959				else if (dir=='vertical')
960					count.css('height', startPercent + '%').animate({ height: stopPercent + '%' }, duration);
961				vegadays_sc_animate_skills_counter(start, stop, speed-(dir!='unknown' ? 5 : 0), step, ed, total);
962			} else if (type == 'counter') {
963				vegadays_sc_animate_skills_counter(start, stop, speed - 5, step, ed, total);
964			} else if (type == 'pie') {
965				var steps = parseInt(total.data('steps'));
966				var bg_color = total.data('bg_color');
967				var border_color = total.data('border_color');
968				var cutout = parseInt(total.data('cutout'));
969				var easing = total.data('easing');
970				var options = {
971					segmentShowStroke: true,
972					segmentStrokeColor: border_color,
973					segmentStrokeWidth: 1,
974					percentageInnerCutout : cutout,
975					animationSteps: steps,
976					animationEasing: easing,
977					animateRotate: true,
978					animateScale: false,
979				};
980				var pieData = [];
981				total.each(function() {
982					"use strict";
983					var color = jQuery(this).data('color');
984					var stop = parseInt(jQuery(this).data('stop'));
985					var stopPercent = Math.round(stop/maximum*100);
986					pieData.push({
987						value: stopPercent,
988						color: color
989					});
990				});
991				if (total.length == 1) {
992					vegadays_sc_animate_skills_counter(start, stop, Math.round(1500/steps), step, ed, total);
993					pieData.push({
994						value: 100-stopPercent,
995						color: bg_color
996					});
997				}
998				var canvas = skillsItem.find('canvas');
999				canvas.attr({width: skillsItem.width(), height: skillsItem.width()}).css({width: skillsItem.width(), height: skillsItem.height()});
1000				new ChartD(canvas.get(0).getContext("2d")).Doughnut(pieData, options);
1001			}
1002		}
1003	});
1004}
1005
1006// Skills counter animation
1007function vegadays_sc_animate_skills_counter(start, stop, speed, step, ed, total) {
1008	"use strict";
1009	start = Math.min(stop, start + step);
1010	total.text(start+ed);
1011	if (start < stop) {
1012		setTimeout(function () {
1013			vegadays_sc_animate_skills_counter(start, stop, speed, step, ed, total);
1014		}, speed);
1015	}
1016}
1017
1018// Skills arc init
1019function vegadays_sc_init_skills_arc(container) {
1020	"use strict";
1021	if (arguments.length==0) var container = jQuery('body');
1022	container.find('.sc_skills_arc:not(.inited)').each(function () {
1023		var arc = jQuery(this);
1024		arc.addClass('inited');
1025		var items = arc.find('.sc_skills_data .arc');
1026		var canvas = arc.find('.sc_skills_arc_canvas').eq(0);
1027		var legend = arc.find('.sc_skills_legend').eq(0);
1028		var w = Math.round(arc.width() - legend.width());
1029		var c = Math.floor(w/2);
1030		var o = {
1031			random: function(l, u){
1032				"use strict";
1033				return Math.floor((Math.random()*(u-l+1))+l);
1034			},
1035			diagram: function(){
1036				"use strict";
1037				var r = Raphael(canvas.attr('id'), w, w),
1038					hover = Math.round(w/2/items.length),
1039					rad = hover,
1040					step = Math.round(((w-20)/2-rad)/items.length),
1041					stroke = Math.round(w/9/items.length),
1042					speed = 400;
1043				
1044				
1045				r.circle(c, c, Math.round(w/2)).attr({ stroke: 'none', fill: VEGADAYS_STORAGE['theme_bg_color'] ? VEGADAYS_STORAGE['theme_bg_color'] : '#ffffff' });
1046				
1047				var title = r.text(c, c, arc.data('caption')).attr({
1048					font: Math.round(rad*0.75)+'px "'+VEGADAYS_STORAGE['theme_font']+'"',
1049					fill: VEGADAYS_STORAGE['theme_color'] ? VEGADAYS_STORAGE['theme_color'] : '#909090'
1050				}).toFront();
1051				
1052				rad -= Math.round(step/2);
1053
1054				r.customAttributes.arc = function(value, color, rad){
1055					"use strict";
1056					var v = 3.6 * value,
1057						alpha = v == 360 ? 359.99 : v,
1058						rand = o.random(91, 240),
1059						a = (rand-alpha) * Math.PI/180,
1060						b = rand * Math.PI/180,
1061						sx = c + rad * Math.cos(b),
1062						sy = c - rad * Math.sin(b),
1063						x = c + rad * Math.cos(a),
1064						y = c - rad * Math.sin(a),
1065						path = [['M', sx, sy], ['A', rad, rad, 0, +(alpha > 180), 1, x, y]];
1066					return { path: path, stroke: color }
1067				}
1068				
1069				items.each(function(i){
1070					"use strict";
1071					var t = jQuery(this), 
1072						color = t.find('.color').val(),
1073						value = t.find('.percent').val(),
1074						text = t.find('.text').text();
1075					
1076					rad += step;
1077					var z = r.path().attr({ arc: [value, color, rad], 'stroke-width': stroke });
1078					
1079					z.mouseover(function(){
1080						"use strict";
1081						this.animate({ 'stroke-width': hover, opacity: .75 }, 1000, 'elastic');
1082						if (Raphael.type != 'VML') //solves IE problem
1083							this.toFront();
1084						title.stop().animate({ opacity: 0 }, speed, '>', function(){
1085							this.attr({ text: (text ? text + '\n' : '') + value + '%' }).animate({ opacity: 1 }, speed, '<');
1086						});
1087					}).mouseout(function(){
1088						"use strict";
1089						this.stop().animate({ 'stroke-width': stroke, opacity: 1 }, speed*4, 'elastic');
1090						title.stop().animate({ opacity: 0 }, speed, '>', function(){
1091							title.attr({ text: arc.data('caption') }).animate({ opacity: 1 }, speed, '<');
1092						});	
1093					});
1094					
1095				});
1096				
1097			}
1098		}
1099		o.diagram();
1100	});
1101}
1102
1103
1104// Countdown update
1105function vegadays_countdown(dt) {
1106	"use strict";
1107	var counter = jQuery(this).parent();
1108	for (var i=3; i<dt.length; i++) {
1109		var v = (dt[i]<10 ? '0' : '') + dt[i];
1110		counter.find('.sc_countdown_item').eq(i-3).find('.sc_countdown_digits span').addClass('hide');
1111		for (var ch=v.length-1; ch>=0; ch--) {
1112			counter.find('.sc_countdown_item').eq(i-3).find('.sc_countdown_digits span').eq(ch+(i==3 && v.length<3 ? 1 : 0)).removeClass('hide').text(v.substr(ch, 1));
1113		}
1114	}
1115}
1116
1117
1118// Contact form handlers
1119function vegadays_sc_form_validate(form){
1120	"use strict";
1121	var url = form.attr('action');
1122	if (url == '') return false;
1123	form.find('input').removeClass('error_fields_class');
1124	var error = false;
1125	var form_custom = form.data('formtype')=='form_custom';
1126	if (!form_custom) {
1127	
1128		var rules = [], rule = {};
1129
1130		if (form.find('[name="username"]').length > 0) {
1131			rule = {
1132				field: "username",
1133				max_length: { value: 60, message: VEGADAYS_STORAGE['strings']['name_long'] }
1134			};
1135			if (form.find('[name="username"][aria-required="true"]').length > 0)
1136				rule['min_length'] = { value: 1, message: VEGADAYS_STORAGE['strings']['name_empty'] };
1137			rules.push(rule);
1138		}
1139		
1140		if (form.find('[name="email"]').length > 0) {
1141			rule = {
1142				field: "email",
1143				max_length: { value: 60, message: VEGADAYS_STORAGE['strings']['email_long'] },
1144				mask: { value: VEGADAYS_STORAGE['email_mask'], message: VEGADAYS_STORAGE['strings']['email_not_val
1144id'] }
1145			};
1146			if (form.find('[name="email"][aria-required="true"]').length > 0)
1147				rule['min_length'] = { value: 7, message: VEGADAYS_STORAGE['strings']['email_empty'] };
1148			rules.push(rule);
1149		}
1150		
1151		if (form.find('[name="subject"]').length > 0) {
1152			rule = {
1153				field: "subject",
1154				max_length: { value: 100, message: VEGADAYS_STORAGE['strings']['subject_long'] }
1155			};
1156			if (form.find('[name="subject"][aria-required="true"]').length > 0)
1157				rule['min_length'] = { value: 1, message: VEGADAYS_STORAGE['strings']['subject_empty'] };
1158			rules.push(rule);
1159		}
1160
1161		if (form.find('[name="message"]').length > 0) {
1162			rule = {
1163				field: "message",
1164				max_length: { value: VEGADAYS_STORAGE['contacts_maxlength'], message: VEGADAYS_STORAGE['strings']['text_long'] }
1165			};
1166			if (form.find('[name="message"][aria-required="true"]').length > 0)
1167				rule['min_length'] = { value: 1, message: VEGADAYS_STORAGE['strings']['text_empty'] };
1168			rules.push(rule);
1169		}
1170
1171		error = vegadays_form_validate(form, {
1172			error_message_show: true,
1173			error_message_time: 4000,
1174			error_message_class: "sc_infobox sc_infobox_style_error",
1175			error_fields_class: "error_fields_class",
1176			exit_after_first_error: false,
1177			rules: rules
1178		});
1179	}
1180	if (!error && url!='#') {
1181		jQuery.post(url, {
1182			action: "send_form",
1183			nonce: VEGADAYS_STORAGE['ajax_nonce'],
1184			type: form.data('formtype'),
1185			data: form.serialize()
1186		}).done(function(response) {
1187			"use strict";
1188			var rez = {};
1189			try {
1190				rez = JSON.parse(response);
1191			} catch (e) {
1192				rez = { error: VEGADAYS_STORAGE['ajax_error'] };
1193				console.log(response);
1194			}
1195			var result = form.find(".result").toggleClass("sc_infobox_style_error", false).toggleClass("sc_infobox_style_success", false);
1196			if (rez.error === '') {
1197				form.get(0).reset();
1198				result.addClass("sc_infobox_style_success").html(VEGADAYS_STORAGE['strings']['send_complete']);
1199				var return_url = form.find('input[name="return_url"]');
1200				if (return_url.length > 0 && return_url.val()!='') {
1201					setTimeout(function() {
1202						"use strict";
1203						window.location.href = return_url.val();
1204					}, 3300);
1205				}
1206			} else {
1207				result.addClass("sc_infobox_style_error").html(VEGADAYS_STORAGE['strings']['send_error'] + ' ' + rez.error);
1208			}
1209			result.fadeIn().delay(3000).fadeOut();
1210		});
1211	}
1212	return !error;
1213}
1214
1215
1216
1217// Get players by category
1218function vegadays_select_players_category(sel) {
1219	var value = sel.find(':selected').data('cat');
1220	var table = sel.parents('.sc_players_table');
1221	if (value == 'all') 
1222		jQuery(table).find('.sc_table tr:nth-child(n+2)').show();
1223	else {
1224		jQuery(table).find('.sc_table tr:nth-child(n+2)').hide();
1225		jQuery(table).find('.sc_table tr').each(function() { 
1226			var cat = jQuery(this).data('cat'); 
1227			if (cat != null && cat.indexOf(value)!=-1)
1228			   jQuery(this).show();
1229		});
1230	}
1231}
1232
1233
1234
1235// Display menuitem in the popup
1236function vegadays_menuitems_show_popup(obj) {
1237	"use strict";
1238	
1239	// First init vars
1240	if (typeof VEGADAYS_STORAGE['menuitem_load'] == 'undefined') {
1241		VEGADAYS_STORAGE['menuitem_load'] = false;
1242		VEGADAYS_STORAGE['menuitems_list'] = [];
1243
1244	// If busy - return
1245	} else if ( VEGADAYS_STORAGE['menuitem_load'] ) {
1246		return;
1247	}
1248	
1249	// Show preloader
1250	jQuery('#page_preloader').data('bg-color', jQuery('#page_preloader').css('background-color')).css({display: 'block', opacity: 0, backgroundColor: 'transparent'}).animate({opacity:0.8}, 300);
1251
1252	// Get items list on first click
1253	if (VEGADAYS_STORAGE['menuitems_list'].length == 0) {
1254		var menuitems_list_id = obj.parents('.sc_menuitems').attr("id");
1255		VEGADAYS_STORAGE['menuitems_list'] = VEGADAYS_STORAGE['menuitems'][menuitems_list_id].split(",");
1256	}
1257	
1258	var menuitem_id = obj.attr('rel');
1259	
1260	VEGADAYS_STORAGE['menuitem_load'] = true;
1261	
1262	jQuery.post(VEGADAYS_STORAGE['ajax_url'], {
1263		action: 'ajax_menuitem',
1264		nonce: VEGADAYS_STORAGE['ajax_nonce'],
1265		text: menuitem_id
1266	}).done(function(response) {
1267		"use strict";
1268		VEGADAYS_STORAGE['menuitem_load'] = false;
1269		var rez = {};
1270		try {
1271			rez = JSON.parse(response);
1272		} catch (e) {
1273			rez = { error: VEGADAYS_STORAGE['ajax_error'] + '<br>' + response };
1274		}
1275		jQuery('#page_preloader').animate({opacity:0}
1275, 500, function() { jQuery(this).css({display: 'none', backgroundColor: jQuery(this).data('bg-color')}); });
1276		if (rez.error === '') {
1277			var delay = 0;
1278			// Create popup
1279			if (jQuery('.popup_menuitem').length == 0) {
1280				jQuery('body').append('<div id="overlay"></div><div class="popup_menuitem"></div>');
1281				jQuery('#overlay').fadeIn(500);
1282			} else {
1283				delay = 500;
1284				jQuery('.popup_menuitem').fadeOut(delay);
1285			}
1286			// Add new content in the popup
1287			setTimeout(function() {
1288				jQuery('.popup_menuitem').html(rez.data);
1289				jQuery('.popup_menuitem .sc_menuitems_wrap').append("<a class='close_menuitem' href='#'><span class='icon-cancel'></span></a>");
1290				if ( VEGADAYS_STORAGE['menuitems_list'].length > 1 ) {
1291					var idx = 0;
1292					for (var i=0; i<VEGADAYS_STORAGE['menuitems_list'].length; i++ ) {
1293						if ( VEGADAYS_STORAGE['menuitems_list'][i] === menuitem_id ) {
1294							idx = i;
1295							break;
1296						}
1297					}
1298					var prev = (idx - 1 + VEGADAYS_STORAGE['menuitems_list'].length) % VEGADAYS_STORAGE['menuitems_list'].length;
1299					var next = (idx + 1) % VEGADAYS_STORAGE['menuitems_list'].length;
1300					jQuery('.popup_menuitem .sc_menuitems_wrap .sc_menuitem_content').append(
1301						  "<a class='prev_menuitem prevnext_menuitem show_popup_menuitem' rel='"+VEGADAYS_STORAGE['menuitems_list'][prev]+"'  href='#'><span class='icon-left'></span></a>"
1302						+ "<a class='next_menuitem prevnext_menuitem show_popup_menuitem' rel='"+VEGADAYS_STORAGE['menuitems_list'][next]+"'  href='#'><span class='icon-right'></span></a>"
1303					);
1304				}
1305				jQuery('.popup_menuitem').fadeIn(500);
1306			}, delay);
1307		} else {
1308			vegadays_message_warning(VEGADAYS_STORAGE['strings']['search_error']);
1309		}
1310	});	
1311}
1312
1313// Hide popup with menuitem
1314function vegadays_menuitems_hide_popup() {
1315	"use strict";
1316	jQuery('#overlay').fadeOut();
1317	jQuery('.popup_menuitem').fadeOut(function() {
1318		VEGADAYS_STORAGE['menuitem_load'] = false;
1319		VEGADAYS_STORAGE['menuitems_list'] = [];
1320		jQuery('#overlay').remove();
1321		jQuery(this).remove();
1322	});
1323}

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.