PageSourceSearch

https://pymesbalta.org/wp-content/themes/directory2/ait-theme/asse…?ver=f08f09510330947bf0cc87e333c1f6b8

js pymesbalta.org collected 2026-10-02 20:09:01 UTC 17,475 bytes, 544 lines download raw bytes

1/*
2 * AIT WordPress Theme Framework
3 *
4 * Copyright (c) 2013, Affinity Information Technology, s.r.o. (http://ait-themes.com)
5 */
6
7
8(function($, $window){
9
10	"use strict";
11
12	var Carousel = function(element, options)
13	{
14		var elem = $(element);
15		var obj = this;
16		var settings = $.extend({}, options.defaults, options.current);
17
18		var interval;
19		var glDirection = "right";
20		var glAutoplay = 0;
21		var glFading = 0;
22		var glInfinite = true;
23		var time = 5000;
24		var visible;
25		var moving = false;
26		var item = {};
27
28
29		var carouselInit = function(){
30			if(typeof settings.glInfinite != 'undefined') {
31				glInfinite = settings.glInfinite;
32			}
33
34			carouselTransform();
35			carouselSetVisible();
36			carouselResize();
37
38			if(settings.layout == "box"){
39				glAutoplay = typeof settings.boxEnableAutoplay != "undefined" ? settings.boxEnableAutoplay : 0;
40				glFading = typeof settings.boxEnableFading != "undefined" ? settings.boxEnableFading : 0;
41			} else if (settings.layout == "icon"){
42				glAutoplay = typeof settings.iconEnableAutoplay != "undefined" ? settings.iconEnableAutoplay : 0;
43				glFading = typeof settings.iconEnableFading != "undefined" ? settings.iconEnableFading : 0;
44			} else {
45				glAutoplay = typeof settings.listEnableAutoplay != "undefined" ? settings.listEnableAutoplay : 0;
46				glFading = typeof settings.listEnableFading != "undefined" ? settings.listEnableFading : 0;
47			}
48
49			if(elem.hasClass('elm-testimonials')){
50				carouselTransformItems();
51			}
52
53			carouselArrowsCreate();
54			carouselArrowLeft();
55			carouselArrowRight();
56			if(glAutoplay != 0){
57				carouselPlay();
58				carouselHover();
59			}
60
61			if(glInfinite){
62				var container = elem.find('.carousel-container');
63				var items = container.find('.item').parent().clone();
64				items.addClass('item-clone');
65				container.append(items);
66				container.prepend(container.find('.item:last').parent());
67				container.css({'margin-left':-(item.width+item.gap)});
68			}
69
70			if(settings.layout != "icon"){
71				elem.find('.loading').fadeOut('fast');
72			}
73		};
74
75		var carouselTransformItems = function(){
76			var height = carouselItemHeight();
77			var container = elem.find('.carousel-container');
78			container.children('div.item-box').each(function(){
79				jQuery(this).find('.item-excerpt').height(height);
80			});
81		};
82
83		var carouselItemHeight = function(){
84			var height = 0;
85			var container = elem.find('.carousel-container');
86
87			container.children('div.item-box').each(function(){
88				var excerpt = jQuery(this).find('.item-excerpt');
89				if(excerpt.height() > height){
90					height = excerpt.height();
91				}
92			});
93
94			return height;
95		};
96
97		var carouselTransform = function(){
98			if(settings.layout != 'icon'){
99				elem.parent().parent().addClass('carousel-enabled');
100				//elem.parent().parent().addClass('layout-'+settings.layout);
101			}
102			item.count = elem.find('.carousel-item').length;
103
104			carouselRefresh();
105			//elem.css({'overflow' : 'hidden'});
106		};
107
108		var carouselRefresh = function(){
109			var container = elem.find('.carousel-container');
110
111			container.removeAttr('style');
112			container.find('.carousel-item').each(function(){
113				$(this).removeAttr('style');
114			});
115
116			if(settings.layout == 'icon'){
117				item.width = parseInt(settings.iconBoxWidth);
118				var itemFirst = container.find('.carousel-item').first();
119				item.gap = parseInt(itemFirst.outerWidth(true)-itemFirst.width());
120				visible = Math.round(elem.parent().width() / (item.width+item.gap));
121
122				/*container.find('.carousel-item').each(function(){
123					$(this).css({'width' : item.width});
124				});*/
125			} else {
126				item.width = parseInt(container.find('.carousel-item').first().width());
127				item.gap = parseInt(container.find('.carousel-item').first().outerWidth(true)-item.width);
128				visible = Math.floor(elem.parent().width() / (item.width+item.gap));
129
130				container.find('.carousel-item').each(function(){
131					$(this).css({'width' : item.width, 'margin-right' : item.gap});
132				});
133			}
134
135			container.width(parseInt((item.width+item.gap)*item.count));
136			if (glInfinite) {
137				container.css({'margin-left':-(item.width+item.gap)});
138			}
139
140			carouselResetVisible();
141
142			container.find('.carousel-item').css({'visibility':'visible'});
143
144		};
145
146		var carouselResize = function(){
147			$window.resize(function(){
148				/*var cWidthHack = Math.floor(elem.width()/(parseInt(settings.iconBoxWidth)+itemGap))*(parseInt(settings.iconBoxWidth)+itemGap);
149				elem.width(cWidthHack-itemGap);*/
150
151				carouselRefresh();
152			});
153		};
154
155		var carouselSetVisible = function(){
156			var container = elem.find('.carousel-container');
157			container.find('.carousel-item').each(function(){
158				$(this).removeClass('first-visible').removeClass('last-visible');
159			});
160			var firstVisible = parseInt(container.attr('data-first'));
161			var lastVisible = parseInt(container.attr('data-first'))+(visible-1);
162			carouselSetRange(firstVisible, 'first-visible');
163			carouselSetRange(lastVisible, 'last-visible');
164		};
165
166		var carouselResetVisible = function(){
167			var container = elem.find('.carousel-container');
168			container.attr('data-first', 1);
169			carouselSetVisible();
170		}
171
172		var carouselSetRange = function(id, htmlclass){
173			elem.find('.carousel-item').each(function(){
174				if(parseInt($(this).data('id')) == id){
175					$(this).addClass(htmlclass);
176				}
177			});
178		};
179
180		var carouselPlay = function(){
181			interval = setInterval(function(){
182				carouselMoveAuto();
183			}, time);
184		};
185
186		var carouselStop = function(){
187			clearInterval(interval);
188		};
189
190		var carouselFade = function(direction, multiplier){
191			var container = elem.find('.carousel-container');
192			switch(direction){
193				case "left":
194					// left
195					if(glInfinite){
196						moving = true;
197						var counter = parseInt(container.attr('data-first'));
198						var localScroll = parseInt((item.width+item.gap)*multiplier);
199						var move = parseInt(container.css('margin-left')) + localScroll;
200						container.animate({'opacity': 0}, 250, function(){
201							container.delay(500).animate({marginLeft : move}, {queue: true, duration: 100, complete: function(){
202								container.find('div.item-box:first').before(container.find('div.item-box:last'));
203								container.css({'margin-left':-(item.width+item.gap)});
204								carouselSetVisible();
205								container.delay(100).animate({'opacity': 1}, 250, function(){
206									moving = false;
207								});
208							}});
209						});
210					} else {
211						var firstId = 1;
212						var firstVisibleId = parseInt(container.attr('data-first'));
213						if(firstVisibleId > 0){
214							moving = true;
215							if(multiplier > parseInt(firstVisibleId - firstId)){
216								var localMult = firstVisibleId - firstId;
217							} else {
218								var localMult = multiplier;
219							}
220
221							var localScroll = parseInt((item.width+item.gap)*localMult);
222							var move = parseInt(container.css('margin-left')) + localScroll;
223							container.animate({marginLeft : move}, {queue: true, duration: 500, complete: function(){
224								container.attr('data-first', parseInt(firstVisibleId-localMult));
225								carouselSetVisible();
226								moving = false;
227							}});
228						}
229					}
230				break;
231				case "right":
232					// right
233					if(glInfinite){
234						moving = true;
235						var counter = parseInt(container.attr('data-first'));
236						var localScroll = parseInt((item.width+item.gap)*multiplier);
237						var move = parseInt(container.css('margin-left')) - localScroll;
238						container.animate({'opacity': 0}, 250, function(){
239							container.delay(500).animate({marginLeft : move}, {queue: true, duration: 100, complete: function(){
240								container.find('div.item-box:last').after(container.find('div.item-box:first'));
241								container.css({'margin-left':-(item.width+item.gap)});
242								carouselSetVisible();
243								container.delay(100).animate({'opacity': 1}, 250, function(){
244									moving = false;
245								});
246							}});
247						});
248					} else {
249						var firstId = parseInt(container.attr('data-first'));
250						var lastId = parseInt(container.attr('data-last'));
251						var lastVisibleId = parseInt(firstId+(visible-1));
252						if(lastVisibleId < lastId){
253							moving = true;
254							if(multiplier > parseInt(lastId - lastVisibleId)){
255								var localMult = lastId - lastVisibleId;
256							} else {
257								var localMult = multiplier;
258							}
259
260							var localScroll = parseInt((item.width+item.gap)*localMult);
261							var move = parseInt(container.css('margin-left')) - localScroll;
262							container.animate({marginLeft : move}, {queue: true, duration: 500, complete: function(){
263								container.attr('data-first', parseInt(firstId+localMult));
264								carouselSetVisible();
265								moving = false;
266							}});
267						}
268					}
269				break;
270			}
271		};
272
273		var carouselMove = function(direction, multiplier){
274			var container = elem.find('.carousel-container');
275			switch(direction){
276				case "left":
277					// left
278					if(glInfinite){
279						moving = true;
280						var counter = parseInt(container.attr('data-first'));
281						var localScroll = parseInt((item.width+item.gap)*multiplier);
282						var move = parseInt(container.css('margin-left')) + localScroll;
283						container.animate({marginLeft : move}, {queue: true, duration: 500, complete: function(){
284							container.find('div.item-box:first').before(container.find('div.item-box:last'));
285							container.css({'margin-left':-(item.width+item.gap)});
286							carouselSetVisible();
287							moving = false;
288						}});
289					} else {
290						var firstId = 1;
291						var firstVisibleId = parseInt(container.attr('data-first'));
292						if(firstVisibleId > 0){
293							moving = true;
294							if(multiplier > parseInt(firstVisibleId - firstId)){
295								var localMult = firstVisibleId - firstId;
296							} else {
297								var localMult = multiplier;
298							}
299
300							var localScroll = parseInt((item.width+item.gap)*localMult);
301							var move = parseInt(container.css('margin-left')) + localScroll;
302							container.animate({marginLeft : move}, {queue: true, duration: 500, complete: function(){
303								container.attr('data-first', parseInt(firstVisibleId-localMult));
304								carouselSetVisible();
305								moving = false;
306							}});
307						}
308					}
309				break;
310				case "right":
311					// right
312					if(glInfinite){
313						moving = true;
314						var counter = parseInt(container.attr('data-first'));
315						var localScroll = parseInt((item.width+item.gap)*multiplier);
316						var move = parseInt(container.css('margin-left')) - localScroll;
317						container.animate({marginLeft : move}, {queue: true, duration: 500, complete: function(){
318							container.find('div.item-box:last').after(container.find('div.item-box:first'));
319							container.css({'margin-left':-(item.width+item.gap)});
320							carouselSetVisible();
321							moving = false;
322						}});
323					} else {
324						var firstId = parseInt(container.attr('data-first'));
325						var lastId = parseInt(container.attr('data-last'));
326						var lastVisibleId = parseInt(firstId+(visible-1));
327						if(lastVisibleId < lastId){
328							moving = true;
329							if(multiplier > parseInt(lastId - lastVisibleId)){
330								var localMult = lastId - lastVisibleId;
331							} else {
332								var localMult = multiplier;
333							}
334
335							var localScroll = parseInt((item.width+item.gap)*localMult);
336							var move = parseInt(container.css('margin-left')) - localScroll;
337							container.animate({marginLeft : move}, {queue: true, duration: 500, complete: function(){
338								container.attr('data-first', parseInt(firstId+localMult));
339								carouselSetVisible();
340								moving = false;
341							}});
342						}
343					}
344				break;
345			}
346		};
347
348		var carouselMoveManual = function(index){
349			var container = elem.find('.carousel-container');
350			var firstVisibleElementId = parseInt(container.attr('data-first'));
351			var lastVisibleElementId = parseInt(container.attr('data-first'))+visible-1;
352			var allElements = container.attr('data-last');
353			/*if(index > lastVisibleElementId){
354				var move = index - lastVisibleElementId;
355				carouselMove('right', move);
356			} else if (index < firstVisibleElementId){
357				var move = firstVisibleElementId - index;
358				carouselMove('left', move);
359			} else {
360				// in range, dont move anything
361			}*/
362			if(!glInfinite){
363				if(glDirection == "right"){
364					if(lastVisibleElementId == allElements){
365						glDirection = "left";
366					}
367				} else {
368					if(firstVisibleElementId == 1){
369						glDirection = "right";
370					}
371				}
372			}
373
374			if(glFading != 0){
375				carouselFade(glDirection, index);
376			} else {
377				carouselMove(glDirection, index);
378			}
379		};
380
381		var carouselMoveAuto = function(){
382			if(moving == false){
383				carouselMoveManual(1);
384			}
385		};
386
387		/* user functions */
388		var carouselHover = function(){
389			elem.parent().hover(function(){
390				carouselStop();
391			}, function(){
392				carouselPlay();
393			});
394		};
395
396		var carouselArrowsCreate = function(){
397			// fix - do not show arrows if queried items count is less then items count available for one slide
398			var itemsCount = elem.find('.carousel-item.item').length;
399			if (settings.layout == 'box') {
400				if (itemsCount <= (settings.boxColumns * settings.boxRows) && !glInfinite) {return;}
401			}
402			else {
403				if (itemsCount <= settings.listColumns * settings.listRows && !glInfinite) {return;}
404			}
405			// Find manual added arrows
406			if(settings.layout == 'icon'){
407				var arrowLeft = elem.parent().parent().find('.carousel-arrow-left');
408				var arrowRight = elem.parent().parent().find('.carousel-arrow-right');
409			} else {
410				var arrowLeft = elem.parent().find('.carousel-arrow-left');
411				var arrowRight = elem.parent().find('.carousel-arrow-right');
412			}
413
414			// check if exists
415			if( arrowLeft.length > 0 && arrowRight.length > 0)
416			{
417				arrowLeft.addClass('arrow arrow-left').show();
418				arrowRight.addClass('arrow arrow-right').show();
419			}
420			else
421			{
422				// create arrows
423				elem.parent().append('<div class="carousel-arrows"><div class="standard-arrows"><div class="arrow arrow-left">&lt;</div><div class="arrow arrow-right">&gt;</div></div></div>');
424			}
425		};
426
427		var carouselArrowLeft = function(){
428			// action for left arrow
429			if(settings.layout == 'icon'){
430				elem.parent().parent().find('.carousel-arrows .arrow-left, .carousel-arrow-left').css({'cursor' : 'pointer'}).click(function(){
431					if(moving == false){
432						//carouselMove('left', 1);
433						if(glFading != 0){
434							carouselFade('left', 1);
435						} else {
436							carouselMove('left', 1);
437						}
438					}
439				});
440			} else {
441				elem.parent().find('.carousel-arrows .arrow-left, .carousel-arrow-left').css({'cursor' : 'pointer'}).click(function(){
442					if(moving == false){
443						//carouselMove('left', 1);
444						if(glFading != 0){
445							carouselFade('left', 1);
446						} else {
447							carouselMove('left', 1);
448						}
449					}
450				});
451			}
452		};
453
454		var carouselArrowRight = function(){
455			// action for right arrow
456			if(settings.layout == 'icon'){
457				elem.parent().parent().find('.carousel-arrows .arrow-right, .carousel-arrow-right').css({'cursor' : 'pointer'}).click(function(){
458					if(moving == false){
459						//carouselMove('right', 1);
460						if(glFading != 0){
461							carouselFade('right', 1);
462						} else {
463							carouselMove('right', 1);
464						}
465					}
466				});
467			} else {
468				elem.parent().find('.carousel-arrows .arrow-right, .carousel-arrow-right').css({'cursor' : 'pointer'}).click(function(){
469					if(moving == false){
470						//carouselMove('right', 1);
471						if(glFading != 0){
472							carouselFade('right', 1);
473						} else {
474							carouselMove('right', 1);
475						}
476					}
477				});
478			}
479		};
480
481		var carouselConditionalInit = function(){
482			var elem_width = elem.outerWidth(true);
483			var $container = elem.find('.carousel-container');
484			
485			var item_first_width = $container.find('.item-box:first').width();
486			var item_first_offset = $container.find('.item-box:first').outerWidth(true) - item_first_width;
487			
488			var items_width = 0;
489			$container.find('.item-box').each(function(){
490				items_width = items_width+jQuery(this).outerWidth(true);
491			});
492			items_width = items_width - item_first_offset;
493
494			if(items_width >= elem_width){
495				carouselInit();
496			} else {
497				elem.parent().parent().removeClass('carousel-enabled');
498				elem.parent().parent().addClass('carousel-disabled');
499				elem.find('.loading').fadeOut('fast');
500			}
501		}
502		
503
504		if(settings.layout == 'icon'){
505			elem.parent().parent().parent().parent().addClass('carousel-enabled');
506
507			var itemFirst = elem.find('.carousel-container .carousel-item').first();
508			var itemGap = parseInt(itemFirst.outerWidth(true)-itemFirst.width());
509
510
511			/*console.log(elem.find('.carousel-item').length);
512			console.log(parseInt(settings.iconBoxWidth)+itemGap);
513			console.log(elem.width());*/
514
515			if( ( (elem.find('.carousel-item').length/2) *(parseInt(settings.iconBoxWidth)+itemGap)-itemGap > elem.width()) ) {
516				// enable carousel
517				var widthHack = Math.floor(elem.width()/(parseInt(settings.iconBoxWidth)+itemGap))*(parseInt(settings.iconBoxWidth)+itemGap);
518				elem.width(widthHack-itemGap);
519
520				carouselInit();
521			} else {
522				elem.parent().parent().parent().parent().removeClass('carousel-enabled');
523				elem.parent().parent().parent().parent().addClass('carousel-disabled');
524			}
525
526			elem.parent().css({'width': 'auto'});
527			elem.find('.loading').fadeOut('fast');
528
529
530		} else {
531			carouselConditionalInit();
532		}
533	};
534
535	$.fn.carousel = function(options){
536		return this.each(function(){
537			var element = $(this);
538			if (element.data('carousel')) return;
539
540			var carousel = new Carousel(this, options);
541			element.data('carousel', carousel);
542		});
543	};
544})(jQuery, jQuery(window));

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.