PageSourceSearch

https://www.marena.gob.ni/Enderedd/wp-content/themes/goodenergy/fw/core/core.shortcodes/shortcodes.js

js marena.gob.ni collected 2026-10-02 10:05:43 UTC 31,826 bytes, 884 lines download raw bytes

1// Document ready actions for shortcodes
2jQuery(document).ready(function(){
3	"use strict";
4	setTimeout(function() {
5		themerex_sc_animation();
6	}, 600);
7});
8
9
10// Resize actions
11jQuery(window).resize(function(){
12	"use strict";
13	themerex_sc_sliders_resize();
14});
15
16
17// Animation
18function themerex_sc_animation() {
19	jQuery('[data-animation^="animated"]:not(.animated)').each(function() {
20		"use strict";
21		if (jQuery(this).offset().top < jQuery(window).scrollTop() + jQuery(window).height())
22			jQuery(this).addClass(jQuery(this).data('animation'));
23	});
24}
25
26
27// Shortcodes init
28function themerex_sc_init(container) {
29
30	// Accordion
31	if (container.find('.sc_accordion:not(.inited)').length > 0) {
32		container.find(".sc_accordion:not(.inited)").each(function () {
33			"use strict";
34			var init = jQuery(this).data('active');
35			if (isNaN(init)) init = 0;
36			else init = Math.max(0, init);
37			jQuery(this)
38				.addClass('inited')
39				.accordion({
40					active: init,
41					heightStyle: "content",
42					header: "> .sc_accordion_item > .sc_accordion_title",
43					create: function (event, ui) {
44						themerex_init_shortcodes(ui.panel);
45						if (window.themerex_init_hidden_elements) themerex_init_hidden_elements(ui.panel);
46						ui.header.each(function () {
47							jQuery(this).parent().addClass('sc_active');
48						});
49					},
50					activate: function (event, ui) {
51						themerex_init_shortcodes(ui.newPanel);
52						if (window.themerex_init_hidden_elements) themerex_init_hidden_elements(ui.newPanel);
53						ui.newHeader.each(function () {
54							jQuery(this).parent().addClass('sc_active');
55						});
56						ui.oldHeader.each(function () {
57							jQuery(this).parent().removeClass('sc_active');
58						});
59                        if(!jQuery.isEmptyObject(ui.newHeader.offset())) {
60                            var topOffset = 50;
61                            if ( jQuery('body').hasClass('top_panel_fixed') ) {
62                                topOffset += parseInt( jQuery('header').height() );
63                            }
64                            jQuery('html:not(:animated), body:not(:animated)').animate({ scrollTop: ui.newHeader.offset().top  - topOffset }, 'slow');
65                        }
66
67                    }
68				});
69		});
70	}
71
72	// Blogger: style Polaroid
73	if (container.find('.sc_blogger.layout_polaroid .photostack:not(.inited)').length > 0) {
74		container.find(".sc_blogger.layout_polaroid .photostack:not(.inited)").each(function () {
75			"use strict";
76			var obj = jQuery(this);
77			var id = obj.attr('id');
78			if (id == undefined) {
79				id = 'photostack_'+Math.random();
80				id = id.replace('.', '');
81				obj.attr('id', id);
82			}
83			setTimeout(function() {
84				"use strict";
85				obj.addClass('inited').parent().height("auto");
86				new Photostack( obj.get(0), {
87					callback: function( item ) {
88					}
89				} );
90			}, 10);
91		});
92	}
93
94	// Form
95	if (container.find('.sc_form:not(.inited) form').length > 0) {
96		container.find(".sc_form:not(.inited) form").each(function() {
97			jQuery(this).addClass('inited');
98			jQuery(this).submit(function(e) {
99				"use strict";
100                themerex_sc_form_validate(jQuery(this));
101				e.preventDefault();
102				return false;
103			});
104			if (jQuery(this).find('.js__datepicker').length > 0) {
105				jQuery(this).find('.js__datepicker').pickadate({
106					// Work-around for some mobile browsers clipping off the picker.
107					onOpen: function() {
108						"use strict";
109						jQuery('pre').css('overflow', 'hidden');
110						},
111					onClose: function() {
112						"use strict";
113						jQuery('pre').css('overflow', '');
114					},
115					monthsShort: [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'June', 'July', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec' ],
116					showMonthsShort: true,
117					format: 'dd.mm.yyyy',
118					formatSubmit: 'yyyy-mm-dd',
119					min: true
120				});
121			}
122			if (jQuery(this).find('.js__timepicker').length > 0) {
123				jQuery(this).find('.js__timepicker').pickatime();
124			}
125		});
126	}
127
128	//Countdown
129	if (container.find('.sc_countdown:not(.inited)').length > 0) {
130		container.find('.sc_countdown:not(.inited)')
131			.each(function () {
132				"use strict";
133				jQuery(this).addClass('inited');
134				var id = jQuery(this).attr('id');
135				var curDate = new Date(); 
136				var curDateTimeStr = curDate.getFullYear()+'-'+(curDate.getMonth()<9 ? '0' : '')+(curDate.getMonth()+1)+'-'+(curDate.getDate()<10 ? '0' : '')+curDate.getDate()
137					+' '+(curDate.getHours()<10 ? '0' : '')+curDate.getHours()+':'+(curDate.getMinutes()<10 ? '0' : '')+curDate.getMinutes()+':'+(curDate.getSeconds()<10 ? '0' : '')+curDate.getSeconds();
138				var interval = 1;	//jQuery(this).data('interval');
139				var endDateStr = jQuery(this).data('date');
140				var endDateParts = endDateStr.split('-');
141				var endTimeStr = jQuery(this).data('time');
142				var endTimeParts = endTimeStr.split(':');
143				if (endTimeParts.length < 3) endTimeParts[2] = '00';
144				var endDateTimeStr = endDateStr+' '+endTimeStr;
145				if (curDateTimeStr < endDateTimeStr) {
146					jQuery(this).find('.sc_countdown_placeholder').countdown({
147						until: new Date(endDateParts[0], endDateParts[1]-1, endDateParts[2], endTimeParts[0], endTimeParts[1], endTimeParts[2]), 
148						tickInterval: interval,
149						onTick: themerex_countdown
150					}); 
151				} else {
152					jQuery(this).find('.sc_countdown_placeholder').countdown({
153						since: new Date(endDateParts[0], endDateParts[1]-1, endDateParts[2], endTimeParts[0], endTimeParts[1], endTimeParts[2]), 
154						tickInterval: interval,
155						onTick: themerex_countdown
156					}); 
157				}
158			});
159	}
160
161	// Emailer form
162	if (container.find('.sc_emailer:not(.inited)').length > 0) {
163		container.find(".sc_emailer:not(.inited)")
164			.addClass('inited')
165			.find('.sc_emailer_button')
166			.click(function(e) {
167				"use strict";
168				var form = jQuery(this).parents('form');
169				var parent = jQuery(this).parents('.sc_emailer');
170				if (parent.hasClass('sc_emailer_opened')) {
171					if (form.length>0 && form.find('input').val()!='') {
172						var group = jQuery(this).data('group');
173						var email = form.find('input').val();
174						var regexp = new RegExp(THEMEREX_GLOBALS['email_mask']);
175						if (!regexp.test(email)) {
176							form.find('input').get(0).focus();
177							themerex_message_warning(THEMEREX_GLOBALS['strings']['email_not_val
177id']);
178						} else {
179							jQuery.post(THEMEREX_GLOBALS['ajax_url'], {
180								action: 'emailer_submit',
181								nonce: THEMEREX_GLOBALS['ajax_nonce'],
182								group: group,
183								email: email
184							}).done(function(response) {
185								var rez = JSON.parse(response);
186								if (rez.error === '') {
187									themerex_message_info(THEMEREX_GLOBALS['strings']['email_confirm'].replace('%s', email));
188									form.find('input').val('');
189								} else {
190									themerex_message_warning(rez.error);
191								}
192							});
193						}
194					} else
195						form.get(0).submit();
196				} else {
197					parent.addClass('sc_emailer_opened');
198				}
199				e.preventDefault();
200				return false;
201			});
202	}
203	
204	// Googlemap init
205	if (container.find('.sc_googlemap:not(.inited)').length > 0) {
206		container.find('.sc_googlemap:not(.inited)')
207			.each(function () {
208				"use strict";
209				if (jQuery(this).parents('div:hidden,article:hidden').length > 0) return;
210				var map = jQuery(this).addClass('inited');
211				var map_id		= map.attr('id');
212				var map_zoom	= map.data('zoom');
213				var map_style	= map.data('style');
214				var map_markers = [];
215				map.find('.sc_googlemap_marker').each(function() {
216					"use strict";
217					var marker = jQuery(this);
218					map_markers.push({
219						point:			marker.data('point'),
220						address:		marker.data('address'),
221						latlng:			marker.data('latlng'),
222						description:	marker.data('description'),
223						title:			marker.data('title')
224					});
225				});
226				themerex_googlemap_init( jQuery('#'+map_id).get(0), {style: map_style, zoom: map_zoom, markers: map_markers});
227			});
228	}
229
230	// Infoboxes
231	if (container.find('.sc_infobox.sc_infobox_closeable:not(.inited)').length > 0) {
232		container.find('.sc_infobox.sc_infobox_closeable:not(.inited)')
233			.addClass('inited')
234			.click(function () {
235				jQuery(this).slideUp();
236			});
237	}
238
239	// Popup links
240	if (container.find('.sc_popup_link:not(.inited)').length > 0) {
241		container.find('.sc_popup_link:not(.inited)')
242			.addClass('inited')
243			.magnificPopup({
244				type: 'inline',
245				removalDelay: 500,
246				midClick: true,
247				callbacks: {
248					beforeOpen: function () {
249						this.st.mainClass = 'mfp-zoom-in';
250					},
251					open: function() {},
252					close: function() {}
253				}
254			});
255	}
256
257	// Search form
258	if (container.find('.search_wrap:not(.inited)').length > 0) {
259		container.find('.search_wrap:not(.inited)').each(function() {
260			jQuery(this).addClass('inited');
261			jQuery(this).find('.search_submit').click(function(e) {
262				"use strict";
263				var search_wrap = jQuery(this).parents('.search_wrap');
264				if (!search_wrap.hasClass('search_state_fixed')) {
265					if (search_wrap.hasClass('search_state_opened')) {
266						if (search_wrap.find('.search_field').val() != '')
267							search_wrap.find('form').get(0).submit();
268						else
269							search_wrap.removeClass('search_state_opened').addClass('search_state_closed').find('.search_results').fadeOut();
270					} else
271						search_wrap.removeClass('search_state_closed').addClass('search_state_opened').find('.search_field').get(0).focus();
272				} else {
273					if (search_wrap.find('.search_field').val() != '')
274						search_wrap.find('form').get(0).submit();
275					else {
276						search_wrap.find('.search_field').val('');
277						search_wrap.find('.search_results').fadeOut();
278					}
279				}
280				e.preventDefault();
281				return false;
282			});
283			jQuery(this).find('.search_results_close').click(function(e) {
284				"use strict";
285				jQuery(this).parent().fadeOut();
286				e.preventDefault();
287				return false;
288			});
289			jQuery(this).on('click', '.search_more', function(e) {
290				"use strict";
291				if (jQuery(this).parents('.search_wrap').find('.search_field').val() != '')
292					jQuery(this).parents('.search_wrap').find('form').get(0).submit();
293				e.preventDefault();
294				return false;
295			});
296			if (jQuery(this).hasClass('search_ajax')) {
297				var ajax_timer = null;
298				jQuery(this).find('.search_field').keyup(function(e) {
299					"use strict";
300					var search_field = jQuery(this);
301					var s = search_field.val();
302					if (ajax_timer) {
303						clearTimeout(ajax_timer);
304						ajax_timer = null;
305					}
306					if (s.length >= THEMEREX_GLOBALS['ajax_search_min_length']) {
307						ajax_timer = setTimeout(function() {
308							jQuery.post(THEMEREX_GLOBALS['ajax_url'], {
309								action: 'ajax_search',
310								nonce: THEMEREX_GLOBALS['ajax_nonce'],
311								text: s
312							}).done(function(response) {
313								clearTimeout(ajax_timer);
314								ajax_timer = null;
315								var rez = JSON.parse(response);
316								if (rez.error === '') {
317									search_field.parents('.search_ajax').find('.search_results_content').empty().append(rez.data);
318									search_field.parents('.search_ajax').find('.search_results').fadeIn();
319								} else {
320									themerex_message_warning(THEMEREX_GLOBALS['strings']['search_error']);
321								}
322							});
323						}, THEMEREX_GLOBALS['ajax_search_delay']);
324					}
325				});
326			}
327		});
328	}
329
330	
331	// Section Pan init
332	if (container.find('.sc_pan:not(.inited_pan)').length > 0) {
333		container.find('.sc_pan:not(.inited_pan)')
334			.each(function () {
335				"use strict";
336				if (jQuery(this).parents('div:hidden,article:hidden').length > 0) return;
337				var pan = jQuery(this).addClass('inited_pan');
338				var cont = pan.parent();
339				cont.mousemove(function(e) {
340					"use strict";
341					var anim = {};
342					var tm = 0;
343					var pw = pan.width(), ph = pan.height();
344					var cw = cont.width(), ch = cont.height();
345					var coff = cont.offset();
346					if (pan.hasClass('sc_pan_vertical'))
347						pan.css('top', -Math.floor((e.pageY - coff.top) / ch * (ph-ch)));
348					if (pan.hasClass('sc_pan_horizontal'))
349						pan.css('left', -Math.floor((e.pageX - coff.left) / cw * (pw-cw)));
350				});
351				cont.mouseout(function(e) {
352					pan.css({'left': 0, 'top': 0});
353				});
354			});
355	}
356
357	//Scroll
358	if (container.find('.sc_scroll:not(.inited)').length > 0) {
359		container.find('.sc_scroll:not(.inited)')
360			.each(function () {
361				"use strict";
362				if (jQuery(this).parents('div:hidden,article:hidden').length > 0) return;
363				THEMEREX_GLOBALS['scroll_init_counter'] = 0;
364				themerex_sc_init_scroll_area(jQuery(this));
365			});
366	}
367
368
369	// Swiper Slider
370	if (container.find('.sc_slider_swiper:not(.inited)').length > 0) {
371		THEMEREX_GLOBALS['swipers_min_width'] = 250;
372		container.find('.sc_slider_swiper:not(.inited)')
373			.each(function () {
374				"use strict";
375				if (jQuery(this).parents('div:hidden,article:hidden').length > 0) return;
376				//if (jQuery(this).parents('.isotope_wrap:not(.inited)').length > 0) return;
377				jQuery(this).addClass('inited');
378				themerex_sc_slider_autoheight(jQuery(this));
379				if (jQuery(this).parents('.sc_slider_pagination_area').length > 0) {
380					jQuery(this).parents('.sc_slider_pagination_area').find('.sc_slider_pagination .post_item').eq(0).addClass('active');
381				}
382				var id = jQuery(this).attr('id');
383				if (id == undefined) {
384					id = 'swiper_'+Math.random();
385					id = id.replace('.', '');
386					jQuery(this).attr('id', id);
387				}
388				jQuery(this).addClass(id);
389				jQuery(this).find('.slides .swiper-slide').css('position', 'relative');
390				var width = jQuery(this).width();
391				if (width == 0) width = jQuery(this).parent().width();
392				var spv = jQuery(this).data('slides-per-view');
393				if (spv == undefined) spv = 1;
394				if (width / spv < THEMEREX_GLOBALS['swipers_min_width']) spv = Math.max(1, Math.floor(width / THEMEREX_GLOBALS['swipers_min_width']));
395				var space = jQuery(this).data('slides-space');
396				if (space == undefined) space = 0;
397				if (THEMEREX_GLOBALS['swipers'] === undefined) THEMEREX_GLOBALS['swipers'] = {};
398				THEMEREX_GLOBALS['swipers'][id] = new Swiper('.'+id, {
399					calculateHeight: !jQuery(this).hasClass('sc_slider_height_fixed'),
400					resizeReInit: true,
401					autoResize: true,
402					loop: true,
403					grabCursor: true,
404			        nextButton: jQuery(this).hasClass('sc_slider_controls') ? '#'+id+' .sc_slider_next' : false,
405			        prevButton: jQuery(this).hasClass('sc_slider_controls') ? '#'+id+' .sc_slider_prev' : false,
406					pagination: jQuery(this).hasClass('sc_slider_pagination') ? '#'+id+' .sc_slider_pagination_wrap' : false,
407				    paginationClickable: true,
408					autoplay: jQuery(this).hasClass('sc_slider_noautoplay') ? false : (isNaN(jQuery(this).data('interval')) ? 7000 : jQuery(this).data('interval')),
409					autoplayDisableOnInteraction: false,
410					initialSlide: 0,
411					slidesPerView: spv,
412					loopedSlides: spv,
413					spaceBetween: space,
414					speed: 600,
415					// Autoheight on start
416					onFirstInit: function (slider){
417						var cont = jQuery(slider.container);
418						if (!cont.hasClass('sc_slider_height_auto')) return;
419						var li = cont.find('.swiper-slide').eq(1);
420						var h = li.data('height_auto');
421						if (h > 0) {
422							var pt = parseInt(li.css('paddingTop')), pb = parseInt(li.css('paddingBottom'));
423							li.height(h);
424							cont.height(h + (isNaN(pt) ? 0 : pt) + (isNaN(pb) ? 0 : pb));
425							cont.find('.swiper-wrapper').height(h + (isNaN(pt) ? 0 : pt) + (isNaN(pb) ? 0 : pb));
426						}
427					},
428					// Autoheight on slide change
429					onSlideChangeStart: function (slider){
430						var cont = jQuery(slider.container);
431						if (!cont.hasClass('sc_slider_height_auto')) return;
432						var idx = slider.activeIndex;
433						var li = cont.find('.swiper-slide').eq(idx);
434						var h = li.data('height_auto');
435						if (h > 0) {
436							var pt = parseInt(li.css('paddingTop')), pb = parseInt(li.css('paddingBottom'));
437							li.height(h);
438							cont.height(h + (isNaN(pt) ? 0 : pt) + (isNaN(pb) ? 0 : pb));
439							cont.find('.swiper-wrapper').height(h + (isNaN(pt) ? 0 : pt) + (isNaN(pb) ? 0 : pb));
440						}
441					},
442					// Change current item in 'full' or 'over' pagination wrap
443					onSlideChangeEnd: function (slider, dir) {
444						var cont = jQuery(slider.container);
445						if (cont.parents('.sc_slider_pagination_area').length > 0) {
446							var li = cont.parents('.sc_slider_pagination_area').find('.sc_slider_pagination .post_item');
447							var idx = slider.activeIndex > li.length ? 0 : slider.activeIndex-1;
448							themerex_sc_change_active_pagination_in_slider(cont, idx);
449						}
450					}
451				});
452				
453				jQuery(this).data('settings', {mode: 'horizontal'});		// VC hook
454				
455				var curSlide = jQuery(this).find('.slides').data('current-slide');
456				if (curSlide > 0)
457					THEMEREX_GLOBALS['swipers'][id].slideTo(curSlide-1);
458
459				themerex_sc_prepare_slider_navi(jQuery(this));
460
461			});
462			
463		// Check slides per view
464		themerex_sc_sliders_resize();
465	}
466
467	//Skills init
468	if (container.find('.sc_skills_item:not(.inited)').length > 0) {
469		themerex_sc_init_skills(container);
470		jQuery(window).scroll(function () { themerex_sc_init_skills(container); });
471	}
472	//Skills type='arc' init
473	if (container.find('.sc_skills_arc:not(.inited)').length > 0) {
474		themerex_sc_init_skills_arc(container);
475		jQuery(window).scroll(function () { themerex_sc_init_skills_arc(container); });
476	}
477
478	// Tabs
479	if (container.find('.sc_tabs:not(.inited),.tabs_area:not(.inited)').length > 0) {
480		container.find('.sc_tabs:not(.inited),.tabs_area:not(.inited)').each(function () {
481			var init = jQuery(this).data('active');
482			if (isNaN(init)) init = 0;
483			else init = Math.max(0, init);
484			jQuery(this)
485				.addClass('inited')
486				.tabs({
487					active: init,
488					show: {
489						effect: 'fadeIn',
490						duration: 300
491					},
492					hide: {
493						effect: 'fadeOut',
494						duration: 300
495					},
496					create: function (event, ui) {
497						themerex_init_shortcodes(ui.panel);
498						if (window.themerex_init_hidden_elements) themerex_init_hidden_elements(ui.panel);
499					},
500					activate: function (event, ui) {
501						themerex_init_shortcodes(ui.newPanel);
502						if (window.themerex_init_hidden_elements) themerex_init_hidden_elements(ui.newPanel);
503					}
504				});
505		});
506	}
507
508	// Toggles
509	if (container.find('.sc_toggles .sc_toggles_title:not(.inited)').length > 0) {
510		container.find('.sc_toggles .sc_toggles_title:not(.inited)')
511			.addClass('inited')
512			.click(function () {
513				jQuery(this).toggleClass('ui-state-active').parent().toggleClass('sc_active');
514				jQuery(this).parent().find('.sc_toggles_content').slideToggle(300, function () { 
515					themerex_init_shortcodes(jQuery(this).parent().find('.sc_toggles_content')); 
516					if (window.themerex_init_hidden_elements) themerex_init_hidden_elements(jQuery(this).parent().find('.sc_toggles_content'));
517				});
518			});
519	}
520
521	//Zoom
522	if (container.find('.sc_zoom:not(.inited)').length > 0) {
523		container.find('.sc_zoom:not(.inited)')
524			.each(function () {
525				"use strict";
526				if (jQuery(this).parents('div:hidden,article:hidden').length > 0) return;
527				jQuery(this).addClass('inited');
528				jQuery(this).find('img').elevateZoom({
529					zoomType: "lens",
530					lensShape: "round",
531					lensSize: 200,
532					lensBorderSize: 4,
533					lensBorderColour: '#ccc'
534				});
535			});
536	}
537
538}
539
540
541
542// Scrolled areas
543function themerex_sc_init_scroll_area(obj) {
544
545	// Wait for images loading
546	if (!themerex_check_images_complete(obj) && THEMEREX_GLOBALS['scroll_init_counter']++ < 30) {
547		setTimeout(function() { themerex_sc_init_scroll_area(obj); }, 200);
548		return;
549	}
550
551	// Start init scroll area
552	obj.addClass('inited');
553
554	var id = obj.attr('id');
555	if (id == undefined) {
556		id = 'scroll_'+Math.random();
557		id = id.replace('.', '');
558		obj.attr('id', id);
559	}
560	obj.addClass(id);
561
562	var parent_obj = obj.parent();
563	var parent_id  = parent_obj.attr('id');
564	if (parent_id == undefined) {
565		parent_id = 'scroll_wrap_'+Math.random();
566		parent_id = parent_id.replace('.', '');
567		parent_obj.attr('id', parent_id);
568	}
569	parent_obj.addClass(parent_id);
570
571	var bar = obj.find('#'+id+'_bar');
572	if (bar.length > 0 && !bar.hasClass(id+'_bar')) {
573		bar.addClass(id+'_bar');
574	}
575
576	// Init Swiper with scroll plugin
577	if (THEMEREX_GLOBALS['swipers'] === undefined) THEMEREX_GLOBALS['swipers'] = {};
578	THEMEREX_GLOBALS['swipers'][id] = new Swiper('.'+id, {
579		calculateHeight: false,
580		resizeReInit: true,
581		autoResize: true,
582		freeMode: true,
583		freeModeFluid: true,
584		grabCursor: true,
585		mode: obj.hasClass('sc_scroll_vertical') ? 'vertical' : 'horizontal',
586		direction: obj.hasClass('sc_scroll_vertical') ? 'vertical' : 'horizontal',
587		slidesPerView: obj.hasClass('sc_scroll') ? 'auto' : 1,
588        nextButton: parent_obj.hasClass('sc_scroll_controls') ? '#'+parent_id+' .sc_scroll_next' : false,
589        prevButton: parent_obj.hasClass('sc_scroll_controls') ? '#'+parent_id+' .sc_scroll_prev' : false,
590        scrollbar: '.'+id+'_bar',
591        scrollbarHide: true,
592	})
593	
594	obj.data('settings', {mode: 'horizontal'});		// VC hook
595}
596
597
598// Slider navigation
599function themerex_sc_prepare_slider_navi(slider) {
600/*
601	// Prev / Next
602	var navi = slider.find('> .sc_slider_controls_wrap, > .sc_scroll_controls_wrap');
603	if (navi.length == 0) navi = slider.siblings('.sc_slider_controls_wrap,.sc_scroll_controls_wrap');
604	if (navi.length > 0) {
605		navi.find('.sc_slider_prev,.sc_scroll_prev').click(function(e){
606			var swiper = jQuery(this).parents('.swiper-slider-container');
607			if (swiper.length == 0) swiper = jQuery(this).parents('.sc_slider_controls_wrap,.sc_scroll_controls_wrap').siblings('.swiper-slider-container');
608			var id = swiper.attr('id');
609			THEMEREX_GLOBALS['swipers'][id].swipePrev();
610			e.preventDefault();
611			return false;
612		});
613		navi.find('.sc_slider_next,.sc_scroll_next').click(function(e){
614			var swiper = jQuery(this).parents('.swiper-slider-container');
615			if (swiper.length == 0) swiper = jQuery(this).parents('.sc_slider_controls_wrap,.sc_scroll_controls_wrap').siblings('.swiper-slider-container');
616			var id = swiper.attr('id');
617			THEMEREX_GLOBALS['swipers'][id].swipeNext();
618			e.preventDefault();
619			return false;
620		});
621	}
622*/
623	// Pagination with slide's title
624	navi = slider.siblings('.sc_slider_pagination');
625	if (navi.length > 0) {
626		navi.find('.post_item').click(function(e){
627			var swiper = jQuery(this).parents('.sc_slider_pagination_area').find('.swiper-slider-container');
628			var id = swiper.attr('id');
629			THEMEREX_GLOBALS['swipers'][id].slideTo(jQuery(this).index()+1);
630			e.preventDefault();
631			return false;
632		});
633	}
634}
635
636function themerex_sc_change_active_pagination_in_slider(slider, idx) {
637	var pg = slider.parents('.sc_slider_pagination_area').find('.sc_slider_pagination');
638	if (pg.length==0) return;
639	pg.find('.post_item').removeClass('active').eq(idx).addClass('active');
640	var h = pg.height();
641	var off = pg.find('.active').offset().top - pg.offset().top;
642	var off2 = pg.find('.sc_scroll_wrapper').offset().top - pg.offset().top;
643	var h2  = pg.find('.active').height();
644	if (off < 0) {
645		pg.find('.sc_scroll_wrapper').css({'transform': 'translate3d(0px, 0px, 0px)', 'transition-duration': '0.3s'});
646	} else if (h <= off+h2) {
647		pg.find('.sc_scroll_wrapper').css({'transform': 'translate3d(0px, -'+(Math.abs(off2)+off-h/4)+'px, 0px)', 'transition-duration': '0.3s'});
648	}
649}
650
651// Sliders: Autoheight
652function themerex_sc_slider_autoheight(slider) {
653	if (slider.hasClass('.sc_slider_height_auto')) {
654		slider.find('.swiper-slide').each(function() {
655			if (jQuery(this).data('height_auto') == undefined) {
656				jQuery(this).attr('data-height_auto', jQuery(this).height());
657			}
658		});
659	}
660}
661
662// Sliders: Resize
663function themerex_sc_sliders_resize() {
664   var slider = arguments[0]!==undefined ? arguments[0] : '.sc_slider_swiper.inited';
665   var resize = arguments[1]!==undefined ? arguments[1] : true;
666	jQuery(slider).each(function() {
667		"use strict";
668		var id = jQuery(this).attr('id');
669		var width = jQuery(this).width();
670		var last_width = jQuery(this).data('last-width');
671		if (isNaN(last_width)) last_width = 0;
672        // Change slides_per_view
673		if (last_width==0 || last_width!=width) {
674			var spv = jQuery(this).data('slides-per-view');
675			if (spv == undefined) spv = 1;
676			if (width / spv < THEMEREX_GLOBALS['swipers_min_width']) spv = Math.max(1, Math.floor(width / THEMEREX_GLOBALS['swipers_min_width']));
677			jQuery(this).data('last-width', width);
678			if (THEMEREX_GLOBALS['swipers'][id].params.slidesPerView != spv) {
679				THEMEREX_GLOBALS['swipers'][id].params.slidesPerView = spv;
680				THEMEREX_GLOBALS['swipers'][id].params.loopedSlides = spv;
681                //THEMEREX_GLOBALS['swipers'][id].reInit();
682			}
683		}
684        // Resize slider
685        if ( resize && !jQuery(this).hasClass('slider_height_fixed') ) {
686            var h = 0;
687            if ( jQuery(this).find('.swiper-slide > img').length > 0 ) {
688                jQuery(this).find('.swiper-slide > img').each(function() {
689                    if (jQuery(this).height() > h) h = jQuery(this).height();
690                    });
691                jQuery(this).height(h);
692                } else if ( jQuery(this).find('.swiper-slide').css('backgroundImage')!='none' ) {
693                h = Math.floor(width/16*9);
694                jQuery(this).height(h).find('.swiper-slide').height(h);
695                }
696            }
697	});
698
699	// Resize slider pagination area
700	jQuery('.sc_slider_pagination_area').each(function() {
701		"use strict";
702		var h = jQuery(this).find('.sc_slider').height();
703		if (h) {
704			jQuery(this).height(h);
705			jQuery(this).find('.sc_slider_pagination').height(h);
706			jQuery(this).find('.sc_slider_pagination .sc_scroll_vertical').height(h);
707		}
708	});
709}
710
711
712// Skills init
713function themerex_sc_init_skills(container) {
714	if (arguments.length==0) var container = jQuery('body');
715	var scrollPosition = jQuery(window).scrollTop() + jQuery(window).height();
716
717	container.find('.sc_skills_item:not(.inited)').each(function () {
718		var skillsItem = jQuery(this);
719		var scrollSkills = skillsItem.offset().top;
720		if (scrollPosition > scrollSkills) {
721			skillsItem.addClass('inited');
722			var skills = skillsItem.parents('.sc_skills').eq(0);
723			var type = skills.data('type');
724			var total = (type=='pie' && skills.hasClass('sc_skills_compact_on')) ? skillsItem.find('.sc_skills_data .pie') : skillsItem.find('.sc_skills_total').eq(0);
725			var start = parseInt(total.data('start'));
726			var stop = parseInt(total.data('stop'));
727			var maximum = parseInt(total.data('max'));
728			var startPercent = Math.round(start/maximum*100);
729			var stopPercent = Math.round(stop/maximum*100);
730			var ed = total.data('ed');
731			var duration = parseInt(total.data('duration'));
732			var speed = parseInt(total.data('speed'));
733			var step = parseInt(total.data('step'));
734			if (type == 'bar') {
735				var dir = skills.data('dir');
736				var count = skillsItem.find('.sc_skills_count').eq(0);
737				if (dir=='horizontal')
738					count.css('width', startPercent + '%').animate({ width: stopPercent + '%' }, duration);
739				else if (dir=='vertical')
740					count.css('height', startPercent + '%').animate({ height: stopPercent + '%' }, duration);
741				themerex_sc_animate_skills_counter(start, stop, speed-(dir!='unknown' ? 5 : 0), step, ed, total);
742			} else if (type == 'counter') {
743				themerex_sc_animate_skills_counter(start, stop, speed - 5, step, ed, total);
744			} else if (type == 'pie') {
745				var steps = parseInt(total.data('steps'));
746				var bg_color = total.data('bg_color');
747				var border_color = total.data('border_color');
748				var cutout = parseInt(total.data('cutout'));
749				var easing = total.data('easing');
750				var options = {
751					segmentShowStroke: true,
752					segmentStrokeColor: border_color,
753					segmentStrokeWidth: 1,
754					percentageInnerCutout : cutout,
755					animationSteps: steps,
756					animationEasing: easing,
757					animateRotate: true,
758					animateScale: false,
759				};
760				var pieData = [];
761				total.each(function() {
762					var color = jQuery(this).data('color');
763					var stop = parseInt(jQuery(this).data('stop'));
764					var stopPercent = Math.round(stop/maximum*100);
765					pieData.push({
766						value: stopPercent,
767						color: color
768					});
769				});
770				if (total.length == 1) {
771					themerex_sc_animate_skills_counter(start, stop, Math.round(1500/steps), step, ed, total);
772					pieData.push({
773						value: 100-stopPercent,
774						color: bg_color
775					});
776				}
777				var canvas = skillsItem.find('canvas');
778				canvas.attr({width: skillsItem.width(), height: skillsItem.width()}).css({width: skillsItem.width(), height: skillsItem.height()});
779				new Chart(canvas.get(0).getContext("2d")).Doughnut(pieData, options);
780			}
781		}
782	});
783}
784
785// Skills counter animation
786function themerex_sc_animate_skills_counter(start, stop, speed, step, ed, total) {
787	start = Math.min(stop, start + step);
788	total.text(start+ed);
789	if (start < stop) {
790		setTimeout(function () {
791			themerex_sc_animate_skills_counter(start, stop, speed, step, ed, total);
792		}, speed);
793	}
794}
795
796// Skills arc init
797function themerex_sc_init_skills_arc(container) {
798	if (arguments.length==0) var container = jQuery('body');
799	container.find('.sc_skills_arc:not(.inited)').each(function () {
800		var arc = jQuery(this);
801		arc.addClass('inited');
802		var items = arc.find('.sc_skills_data .arc');
803		var canvas = arc.find('.sc_skills_arc_canvas').eq(0);
804		var legend = arc.find('.sc_skills_legend').eq(0);
805		var w = Math.round(arc.width() - legend.width());
806		var c = Math.floor(w/2);
807		var o = {
808			random: function(l, u){
809				return Math.floor((Math.random()*(u-l+1))+l);
810			},
811			diagram: function(){
812				var r = Raphael(canvas.attr('id'), w, w),
813					rad = hover = Math.round(w/2/items.length),
814					step = Math.round(((w-20)/2-rad)/items.length),
815					stroke = Math.round(w/9/items.length),
816					speed = 400;
817				
818				
819				r.circle(c, c, Math.round(w/2)).attr({ stroke: 'none', fill: THEMEREX_GLOBALS['theme_skin_bg_color'] ? THEMEREX_GLOBALS['theme_skin_bg_color'] : '#ffffff' });
820				
821				var title = r.text(c, c, arc.data('caption')).attr({
822					font: Math.round(rad*0.75)+'px "'+THEMEREX_GLOBALS['theme_font']+'"',
823					fill: THEMEREX_GLOBALS['theme_skin_color'] ? THEMEREX_GLOBALS['theme_skin_color'] : '#909090'
824				}).toFront();
825				
826				rad -= Math.round(step/2);
827
828				r.customAttributes.arc = function(value, color, rad){
829					var v = 3.6 * value,
830						alpha = v == 360 ? 359.99 : v,
831						rand = o.random(91, 240),
832						a = (rand-alpha) * Math.PI/180,
833						b = rand * Math.PI/180,
834						sx = c + rad * Math.cos(b),
835						sy = c - rad * Math.sin(b),
836						x = c + rad * Math.cos(a),
837						y = c - rad * Math.sin(a),
838						path = [['M', sx, sy], ['A', rad, rad, 0, +(alpha > 180), 1, x, y]];
839					return { path: path, stroke: color }
840				}
841				
842				items.each(function(i){
843					var t = jQuery(this), 
844						color = t.find('.color').val(),
845						value = t.find('.percent').val(),
846						text = t.find('.text').text();
847					
848					rad += step;
849					var z = r.path().attr({ arc: [value, color, rad], 'stroke-width': stroke });
850					
851					z.mouseover(function(){
852						this.animate({ 'stroke-width': hover, opacity: .75 }, 1000, 'elastic');
853						if (Raphael.type != 'VML') //solves IE problem
854							this.toFront();
855						title.stop().animate({ opacity: 0 }, speed, '>', function(){
856							this.attr({ text: (text ? text + '\n' : '') + value + '%' }).animate({ opacity: 1 }, speed, '<');
857						});
858					}).mouseout(function(){
859						this.stop().animate({ 'stroke-width': stroke, opacity: 1 }, speed*4, 'elastic');
860						title.stop().animate({ opacity: 0 }, speed, '>', function(){
861							title.attr({ text: arc.data('caption') }).animate({ opacity: 1 }, speed, '<');
862						});	
863					});
864					
865				});
866				
867			}
868		}
869		o.diagram();
870	});
871}
872
873
874// Countdown update
875function themerex_countdown(dt) {
876	var counter = jQuery(this).parent();
877	for (var i=3; i<dt.length; i++) {
878		var v = (dt[i]<10 ? '0' : '') + dt[i];
879		counter.find('.sc_countdown_item').eq(i-3).find('.sc_countdown_digits span').addClass('hide');
880		for (var ch=v.length-1; ch>=0; ch--) {
881			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));
882		}
883	}
884}

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.