PageSourceSearch

https://www.campingcabaneros.com/Scripts/slick.custom.js?v=1.02

js campingcabaneros.com collected 2026-10-05 22:37:02 UTC 15,750 bytes, 401 lines download raw bytes

1(function($, undefined){
2
3$.widget("custom.slick_custom",{
4	options: {},
5	_create: function(opts) {
6		var $objp=this.element;
7		this.options=$.extend(this.options,opts);
8		$objp.uniqueId();
9		var nelems=($objp.attr("data-elems")?parseInt($objp.attr("data-elems"),10):1);
10		if(nelems>1 && $objp.attr('data-minElems')){
11			var count=Math.max($objp.children('.crsl-item').length,parseInt($objp.attr('data-minElems'),10));
12			if(count<nelems) nelems=count;
13		}
14		var opts={
15			infinite: true,
16			lazyLoad: 'ondemand',
17			rows: ($objp.attr("rows")?parseInt($objp.attr("rows"),10):1),
18			slidesToShow: nelems,
19			slidesToShowMax: nelems,
20			pauseOnHover: false,
21			variableWidth: ($objp.attr("data-variableWidth")=="1"?true:false),
22			fade: ($objp.attr("data-fade")=="1"?true:false),
23			initialSlide: ($objp.children(".crsl-item.initial").length>0?parseInt($objp.children(".crsl-item.initial").eq(0).index(),10):0),
24			id: $objp.attr('id'),
25			speed:($objp.attr("speedScroll")?parseInt($objp.attr("speedScroll"),10):600),
26			prevArrow: '<div class="slick-prevp"><button type="button" data-role="none" class="slick-prev">Previous</button></div>',
27			nextArrow: '<div class="slick-nextp"><button type="button" data-role="none" class="slick-next">Next</button></div>'
28		};
29		if($objp.attr("data-elemsScroll")) opts.slidesToScroll=parseInt($objp.attr("data-elemsScroll"),10);
30		else{
31			opts.swipe=true;
32			opts.swipeToSlide=true;
33		}
34		if($objp.attr('data-autoRotate')){
35			opts.autoplay=true;
36			opts.autoplaySpeed=parseInt($objp.attr('data-autoRotate'),10);
37			opts.pauseOnHover=true;
38		}
39		if($objp.attr('data-autoHeight')) opts.adaptiveHeight=true;
40		if($objp.attr('data-infinite') && $objp.attr('data-infinite')=="0") opts.infinite=false;
41		$objp.on('init', function(event,slider){
42			var $this=slider.$slider;
43			slider.options.divDesc=$this.siblings('.crsl-desc');
44			if(slider.options.divDesc.length==0 && $this.attr("data-divDesc")) slider.options.divDesc=$('#'+$this.attr("data-divDesc"));
45			slider.options.divPag=$this.siblings('.crsl-pag');
46			if(slider.options.divPag.length==0 && $this.attr("data-divPag")) slider.options.divPag=$('#'+$this.attr("data-divPag"));
47			if($this.attr("data-adic")) slider.options.adicChange=$('#'+$this.attr("data-adic"));
48			if($this.attr("data-functionChange")) slider.options.functionChange=$this.attr("data-functionChange");
49			slider.options.divProp=($this.attr('data-prop')?$this.attr('data-prop').split(","):[]);
50			slider.options.carouselMin=($this.attr("data-carouselMin")?parseInt($this.attr("data-carouselMin"),10):0);
51			slider.options.minWidth=($this.attr('data-minWidth')?parseInt($this.attr('data-minWidth'),10):0);
52			slider.options.minWidthClass=($this.attr('data-minWidthClass')?parseInt($this.attr('data-minWidthClass'),10):0);
53			slider.options.arrowsShow=($this.attr("data-arrowsShow")?parseInt($this.attr("data-arrowsShow"),10):0);
54			slider.options.sameHeight=($this.attr("data-sameHeight")?$this.attr("data-sameHeight"):'');
55			slider.options.autoRotateVisible=(slider.options.autoplay && $this.attr('data-autoRotateVisible')=="1");
56			
57			if($(this).siblings('.crsl-desc').length>0) $this.children('.draggable').append($(this).siblings('.crsl-desc'));
58			if($(this).siblings('.crsl-pag').length>0) $this.children('.draggable').append($(this).siblings('.crsl-pag'));
59			
60			setTimeout(function(){playPauseVideo($this,"play");}, 1000);
61			resizePlayer(16/9);
62			
63			if($(this).siblings('.slick-carousel-within').length>0){
64				$this.children('.draggable').append($(this).siblings('.slick-carousel-within'));
65				$(window).on('resize',function() {
66					if(is_mobile()){
67						if(!$this.var_mobile){
68							$this.children('.draggable').children('.slick-carousel-within').each(function(){
69								$(this).insertAfter($this);
70							});
71							$this.var_mobile=true;
72						}
73					}
74					else{
75						if($this.var_mobile){
76							$this.siblings('.slick-carousel-within').each(function(){
77								$this.children('.draggable').append($(this));
78							});
79							$this.var_mobile=false;
80						}
81					}
82				});
83			}
84			
85			var currentSlide=$(slider.$slides).filter('.initial');
86			if(currentSlide.length==0) currentSlide=$(slider.$slides[0])
87			$objp.change(slider,currentSlide);
88			
89			if(slider.options.arrowsShow==1){
90				slider.$prevArrow.css({ opacity: 0 });
91				slider.$nextArrow.css({ opacity: 0 });
92				var posArrows=[parseInt(slider.$prevArrow.css("left"),10),parseInt(slider.$nextArrow.css("right"),10)];
93				$this.hover( function(){
94					slider.$prevArrow.css({ left: (posArrows[0]-20) }).stop(true, true).animate({ left: posArrows[0]+'px', opacity: 1 });
95					slider.$nextArrow.css({ right: (posArrows[1]-20) }).stop(true, true).animate({ right: posArrows[1]+'px', opacity: 1 });
96				}, function(){
97					slider.$prevArrow.animate({ left: (posArrows[0]-20)+'px', opacity: 0 });
98					slider.$nextArrow.animate({ right: (posArrows[1]-20)+'px', opacity: 0 });
99				});
100			}
101			if(slider.options.arrowsShow==2){
102				slider.$prevArrow.hide();
103				slider.$nextArrow.hide();
104			}
105			
106			$this.find('.slick-list a').mousedown(function(event) {
107				slider.tempMousePosition=event.pageX+","+event.pageY;
108			}).mouseup(function(event) {
109				slider.options.moviendo=(slider.tempMousePosition!=event.pageX+","+event.pageY);
110			});
111			$this.find('.slick-list a').on('click',function(event){
112				if(slider.options.autoplay){
113					slider.$list.unbind('mouseenter.slick').unbind('mouseleave.
113slick');
114					slider.options.autoplay=false;
115					slider.options.pauseOnHover=false;
116					slider.autoPlayClear();
117				}
118				if(!slider.options.moviendo) return;
119				event.preventDefault();
120				event.stopPropagation();
121				event.stopImmediatePropagation();
122			});
123			if(slider.options.autoRotateVisible){
124				function scrollObj(){
125					var docViewTop = $(window).scrollTop();
126					var docViewBottom = docViewTop + $(window).height();
127					var elemTop = $this.offset().top;
128					var elemBottom = elemTop + $this.height();
129					var isVisible = (elemBottom >= docViewTop && elemTop <= docViewBottom);
130					if(isVisible){
131						if(slider.recargaView){
132							slider.slickPlay();
133							slider.recargaView=false;
134						}
135					}
136					else{
137						if(!slider.recargaView){
138							slider.slickPause();
139							slider.recargaView=true;
140						}
141					}
142				}
143				$(window).on('scroll',function(){
144					if(slider.options.autoplay) scrollObj();
145				});
146			}
147			function resizePlayer(ratio) {
148				var iframes=$this.find('.embed-player');
149				if (!iframes[0]) return;
150				var width = $this.width(),
151				playerWidth,
152				height = $this.height(),
153				playerHeight,
154				ratio = ratio || 16/9;
155				iframes.each(function(){
156					var current = $(this);
157					if (width / ratio < height) {
158						playerWidth = Math.ceil(height * ratio);
159						current.width(playerWidth).height(height).css({left: (width - playerWidth) / 2, top: 0});
160					}
161					else {
162						playerHeight = Math.ceil(width / ratio);
163						current.width(width).height(playerHeight).css({left: 0, top: (height - playerHeight) / 2});
164					}
165				});
166			}
167			function resizeObj(){
168				if(slider.options.carouselMin>0){
169					var id=$this.attr('id');
170					var clase='unslick';
171					if($this.outerWidth()<=slider.options.carouselMin){
172						if(!$this.hasClass(clase)){
173							if(slider.options.sameHeight!=''){
174								var elem=slider.options.sameHeight;
175								$this.find('.slick-slide'+(elem!='1'?' '+elem:'')).css({ 'height': 'auto' });
176							}
177							if(!window.slickOpts) window.slickOpts={};
178							window.slickOpts[id]=slider.options;
179							$this.addClass(clase).slick("unslick");
180							return;
181						}
182					}
183					else{
184						if($this.hasClass(clase)) $this.removeClass(clase).slick(window.slickOpts[id]);
185					}
186				}
187				if(slider.options.minWidthClass>0){
188					var clase='crsl-minWidth';
189					var minWidthClass=slider.options.minWidthClass;
190					var firstObj=$this.find('.crsl-item').eq(0);
191					if(firstObj.width()<=minWidthClass){
192						if(!firstObj.hasClass(clase)) $this.find('.crsl-item').addClass(clase);
193					}
194					else{
195						if(firstObj.hasClass(clase)) $this.find('.crsl-item').removeClass(clase);
196					}
197				}
198				if(slider.options.minWidth>0){
199					var $thisp=$this.find('.slick-list');
200					var minWidth=slider.options.minWidth;
201					var elemsMin=Math.floor($thisp.width()/minWidth);
202					var elemsMax=slider.options.slidesToShowMax;
203					if(elemsMin>elemsMax) elemsMin=elemsMax;
204					if(elemsMin<1) elemsMin=1;
205					if(elemsMin!=slider.options.slidesToShow){
206						slider.options.slidesToShow=elemsMin;
207						//slider.options.slidesToScroll=elemsMin;
208						slider.slickSetOption('slidesToScroll',elemsMin,true);
209					}
210				}
211				if(slider.options.sameHeight!=''){
212					if($this.find('.slick-slide').length>0){
213						var tallest=0;
214						var elem=slider.options.sameHeight;
215						$this.find('.slick-slide').each(function() {
216							var $elem=(elem!='1'?$(this).find(elem):$(this));
217							$elem.css({ 'height': 'auto' });
218							var height=$elem.height();
219							if(height>tallest) tallest=height;
220						});
221						if(tallest>0) $this.find('.slick-slide'+(elem!='1'?' '+elem:'')).css({ height: tallest+'px' });
222					}
223				}
224			}
225			function resizeProp(){
226				var prop=slider.options.divProp;
227                var modo=($this.closest('#carousel_mobiliario').hasClass('completo')?1:0);
228				$this.find('.slick-slide').each(function() {
229    			    var elem=$(this);
230				    if(modo==1){
231                        var $thisp=elem.closest('#carousel_mobiliario');
232                        var alto=$thisp.height();
233                        alto=alto-$thisp.find('.plugin_fotografias_miniatura').height();
234                        elem.height(alto);
235                        elem.width(alto*prop[0]/prop[1]);
236                        if($thisp.width()<elem.width()){
237                            elem.width($thisp.width());
238                            elem.height(elem.width()*prop[1]/prop[0]);
239                        }
240    					var $img=elem.find('img.slick-img-fondo');
241                        if($img.length>0){
242    						var dims=[parseInt($img.attr('width'),10),parseInt($img.attr('height'),10)];
243    						var dims1=[elem.width(),elem.height()];
244    						$img.height(dims1[1]);
245    						$img.width(dims1[1]*(dims[0]/dims[1]));
246    						$img.css({marginLeft:0, marginTop:0});
247                            elem.closest('.slick-carousel-p').css('margin','0px '+($thisp.width()-$img.width())/2+'px');
248    					}
249                        $this.slick('setPosition');
250                    }
251                    else{
252    					var ancho=elem.width();
253    					if(ancho==0){
254    						ancho=600;
255    						elem.css('max-width',ancho);
256    					}
257                        elem.height(ancho*prop[1]/prop[0]);
258    					var $img=elem.find('img.slick-img-fondo');
259    					if($img.length>0){
260    						var dims=[parseInt($img.attr('width'),10),parseInt($img.attr('height'),10)];
261    						var dims1=[elem.width(),elem.height()];
262    						$img.width(dims1[0]);
263    						$img.height(dims1[0]*(dims[1]/dims[0]));
264    						var marginLeft=0;//(dims1[0]-$img.width())/2;
265    						var marginTop=(dims1[1]-$img.height())/2;
266    						//if(elem.hasClass('slick-current')) console.log(dims1);
267    						$img.css({marginLeft:marginLeft, marginTop:marginTop});
268    					}
269                    }
270				});
271			}
272			$(window).on("resize.slickVideoPlayer", function(){  
273				resizePlayer(16/9);
274			});
275			$(window).on('resize',function() {
276				resizeObj();
277				if(slider.options.divProp.length>0 && $this.find('.slick-slide').length>0){
278					if(window.tiempoSlideProp) clearTimeout(window.tiempoSlideProp);
279					window.tiempoSlideProp=setTimeout(function(){
280						resizeProp();
281					}, 300);
282				}
283			});
284			$(window).on('load',function() {
285				resizeObj();
286				resizeProp();
287				if(slider.options.autoRotateVisible) scrollObj();
288			});
289		});
290		$objp.on("lazyLoaded", function(e, slick, image, imageSource) {
291			parentSlide = $(image).parent(".slick-slide");
292			imageSource.src = image.attr("src");
293			parentSlide.css("background-image", 'url("' + imageSource + '")').addClass("loaded");
294			image.remove();
295		});
296		$objp.on('afterChange', function(event,slider,i){
297			$objp.change(slider,$(slider.$slides[i]));
298			slick = $(slider.$slider);
299    		playPauseVideo(slick,"play");
300		});
301		$objp.change=function(slider,slide){
302			if(slide.prev('.crsl-item').length==0) $objp.find('.slick-prevp').hide();
303			else $objp.find('.slick-prevp').show();
304			if(slide.parent().children('.crsl-item.slick-active').last().next('.crsl-item').length==0) $objp.find('.slick-nextp').hide();
305			else $objp.find('.slick-nextp').show();
306			slider.options.divDesc.animate({opacity:1},300);
307			slider.options.divDesc.find('span').html(slide.find('.crsl-title').length>0?slide.find('.crsl-title').html():slide.attr('title'));
308			slider.options.divPag.find('span').html((slider.currentSlide+1)+'/'+slider.slideCount);
309			if(slider.options.adicChange){
310				slider.options.adicChange.html(slide.find('.crsl-adic').html());
311			}
312			if(slider.options.functionChange) window[slider.options.functionChange](slider);
313		}
314		$objp.on('beforeChange', function(event,slider,i){
315			slider.options.divDesc.animate({opacity:0}
315,200);
316			slick = $(slider.$slider);
317    		playPauseVideo(slick,"pause");
318		});
319		//$objp.on('init', function(event,slider,i){
320		//});
321		$objp.slick(opts);
322	},
323	destroy: function() {
324		this.element.unslick();
325		this.element.find('*').unbind();
326		$.Widget.prototype.destroy.call(this);
327	}
328});
329})(jQuery);
330
331// POST commands to YouTube or Vimeo API
332function postMessageToPlayer(player, command){
333  if (player == null || command == null) return;
334  player.contentWindow.postMessage(JSON.stringify(command), "*");
335}
336
337// When the slide is changing
338function playPauseVideo(slick, control){
339  var currentSlide, slideType, startTime, player, video;
340
341  currentSlide = slick.find(".slick-current");
342  slideType = currentSlide.attr("class").split(" ")[1];
343  player = currentSlide.find("iframe").get(0);
344  startTime = currentSlide.data("video-start");
345
346  if (slideType === "vimeo") {
347    switch (control) {
348      case "play":
349        if ((startTime != null && startTime > 0 ) && !currentSlide.hasClass('started')) {
350          currentSlide.addClass('started');
351          postMessageToPlayer(player, {
352            "method": "setCurrentTime",
353            "value" : startTime
354          });
355        }
356        postMessageToPlayer(player, {
357          "method": "play",
358          "value" : 1
359        });
360        break;
361      case "pause":
362        postMessageToPlayer(player, {
363          "method": "pause",
364          "value": 1
365        });
366        break;
367    }
368  } else if (slideType === "youtube") {
369    switch (control) {
370      case "play":
371        postMessageToPlayer(player, {
372          "event": "command",
373          "func": "mute"
374        });
375        postMessageToPlayer(player, {
376          "event": "command",
377          "func": "playVideo"
378        });
379        break;
380      case "pause":
381        postMessageToPlayer(player, {
382          "event": "command",
383          "func": "pauseVideo"
384        });
385        break;
386    }
387  } else if (slideType === "video") {
388    video = currentSlide.children("video").get(0);
389    if (video != null) {
390      if (control === "play"){
391        video.play();
392      } else {
393        video.pause();
394      }
395    }
396  }
397}
398
399$(document).ready(function(){
400	$('.slick-carousel:not(.hidden)').slick_custom();
401});

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.