PageSourceSearch

https://barcin.pl/js/sam3/concept.newsbox.0.5.js

js barcin.pl collected 2026-10-02 21:03:14 UTC 11,595 bytes, 422 lines download raw bytes

1//	Concept Intermedia 2016
2//	Concept Newsbox - wersja z pionowo ułożonymi miniaturkami
3//	Last modified:
4//	2017-05-09
5
6if (typeof globalPause == 'undefined') {
7	globalPause=false;
8}
9
10/* przeniesione z portal.php */
11function newsboxrespo() {
12    var height;
13    height = jQuery(".newsbox-container li.zaj-wrapper.active").outerHeight();				
14    jQuery(".newsbox-container").css("height",height);
15}
16
17
18jQuery(window).on("load", function () {
19	newsboxrespo();			
20	setTimeout(function(){ newsboxrespo(); }, 300);  	
21});
22
23
24var createNewsbox;
25createNewsbox = function(newsboxParams) {
26	//cc(111,'createNewsbox',newsboxParams);
27	//globalPause=true;
28	
29	var params = newsboxParams;
30	
31	
32	//	**********************
33	//	NEW FUNCTIONS		*/
34	params.showPager2 = true;
35	params.showPagerNumbers = false;
36	//	*******************	*/
37	
38	newsboxParams.showNavigationArrows = true;
39	
40	var localPause = false;
41	var focusPause = false;
42	
43	var currentNews = 0;
44	var total = 0;
45	
46	var sliderTimer;
47	var thumbnailHeight = 0;
48		
49	var inTransition = false;
50	
51	//container,slideClass,pager,pagerNumbers,arrows,progressBar
52	var con = jQuery(params.containerClass);
53	var slides = jQuery(con).find(params.singleSlideClass);
54	var pager;
55	var pager2;
56	var pagerButtons = [];
57	var pagerButtons2 = [];
58	var pagerButtonsClones = [];
59	var pagerAnimated = false;
60	
61	total = slides.length;
62	
63	//	ustaw parametry jako false je�li nie zostały przekazane do funkcji w newsboxParams
64	if (!params.showPager) params.showPager = false;
65	if (!params.showPager2) params.showPager2 = false;
66	if (!params.showPagerNumbers) params.showPagerNumbers = false;
67	if (!params.showNavigationArrows) params.showNavigationArrows = false;
68	if (!params.showTimer) params.showTimer = false;
69	if (!params.delay) params.delay = 5000;
70	if (!params.mouseHoverPauseDuration) params.mouseHoverPauseDuration = 1000;
71	if (!params.thumbnailTransitionDuration) params.thumbnailTransitionDuration = '0.3s';
72	if (!params.hideCurrentThumbnailOnChange) params.hideCurrentThumbnailOnChange = true;	//	czy aktualna pozycja na liście ma być chowana czy wyświetlana
73	
74	
75	//	slides data
76	for (var i=0;i<slides.length;i++){
77		jQuery(slides[i]).attr('data-news-id',(i+1));
78	}
79	
80	//	timer
81	if (params.showTimer) {
82		timer = jQuery('<span class="timer"></span>');
83		timerBar = jQuery('<span class="timer-bar"></span>');
84		jQuery(timer).append(timerBar);
85		jQuery(con).append(timer);
86	}
87	
88	var allButtons=null;
89	//	pager - !!! czyli tutaj lista zajawek z boku
90	if (params.showPager) {
91		pager = jQuery('<span class="pager" aria-hidden="true"></span>');
92		
93		var extraOrder = 0;	//	używany by pokazywać albo chować aktywną miniaturkę poprzez opcje
94		if (params.hideCurrentThumbnailOnChange) extraOrder = 1;
95		
96		if (total<=3) extraOrder = 0;
97		
98		for (var i=0;i<slides.length;i++){
99			var pagerButtonContent = '';
100			if (params.showPagerNumbers) pagerButtonContent=(i+1);
101			pagerButtonContent = jQuery('a',slides[i]).html();
102			button = jQuery('<span class="pager-button but'+(parseInt(i)+1)+'" data-news-id="'+(i+1)+'" data-order="'+(i-extraOrder)+'"><span class="hidden-wcag">Przejdź na stronę: </span>'+pagerButtonContent+'</span>');
103			pagerButtons.push(button);
104			jQuery(pager).append(button);
105		};
106		//	clone buttons
107		if (total>3){
108			for (var i=0;i<slides.length;i++){
109				var pagerButtonContent = '';
110				if (params.showPagerNumbers) pagerButtonContent=(i+1);
111				pagerButtonContent = jQuery('a',slides[i]).html();
112				button = jQuery('<span class="pager-button clone but'+(parseInt(i)+1)+'" data-news-id="'+(i+1)+'" data-order="'+(i-extraOrder+slides.length)+'"><span class="hidden-wcag">Przejdź na stronę: </span>'+pagerButtonContent+'</span>');
113				pagerButtonsClones.push(button);
114				jQuery(pager).append(button);
115			};
116		}
117		jQuery(con).append(pager);
118		jQuery('.pager',con).wrap('<span class="pager-con"></span>');
119		
120		allButtons = jQuery('.pager-button',con);
121		
122		setButtonsPositions();
123		
124		jQuery('.pager-button',pager).click(function(){
125			if (!jQuery(this).hasClass('active')){
126				nextNews = jQuery(this).attr('data-news-id');
127				showNews(nextNews);
128				newsboxrespo();
129			}
130		});
131	}
132	//	pager 2 - !!! czyli tutaj kwadraciki przełączniki
133	if (params.showPager2) {
134		pager2 = jQuery('<span class="pager2"></span>');
135		
136		for (var i=0;i<slides.length;i++){
137			var pagerButtonContent2 = '';
138			if (params.showPagerNumbers) pagerButtonContent2=(i+1);
139			var button2 = jQuery('<span class="pager-button2 but'+(parseInt(i)+1)+'" data-news-id="'+(i+1)+'" data-order="'+(i)+'"><span class="hidden-wcag">Przejdź na stronę: </span>'+pagerButtonContent2+'</span>');
140			pagerButtons2.push(button2);
141			jQuery(pager2).append(button2);
142		};
143		
144		jQuery(con).append(pager2);
145		jQuery('.pager2',con).wrap('<span class="pager2-con"></span>');
146		
147		allButtons2 = jQuery('.pager-button2',con);
148		
149		jQuery('.pager-button2',pager2).click(function(){
150			if (!jQuery(this).hasClass('active')){
151				nextNews = jQuery(this).attr('data-news-id');
152				showNews(nextNews);
153				newsboxrespo();
154			}
155		});
156	}
157	
158	
159	//	set buttons positions
160	//	set height of thumbnail containers
161	function setButtonsPositions(dir){
162		//cc('setButtonsPositions');
163		//	count negative thumbnails height
164		var thumbsNegativeH = 0;
165		for (var i=-50; i<0;i++){
166			var thisB = jQuery('.pager-button[data-order='+i+']',pager);
167			if (thisB){
168				var thisH = jQuery(thisB).height();
169				thumbsNegativeH += thisH;
170			}
171		}
172		
173		
174		var allThumbsTotalH = 0;
175		var orgThumbsH = 0;
176		
177		if (allButtons){
178			for (var i=-5; i<=allButtons.length;i++){
179				var thisB = jQuery('.pager-button[data-order='+i+']',pager);
180				if (thisB){
181					myTop = allThumbsTotalH - thumbsNegativeH;
182					
183					jQuery(thisB).css({'transform':'translate3d(0px,'+myTop+'px,0)'});
184					
185					var thisH = jQuery(thisB).height();
186					allThumbsTotalH += thisH;
187					
188					if (!jQuery(thisB).hasClass('clone')){
189						orgThumbsH += thisH;
190					}
191				}
192			}
193		}
194		var pagerH = jQuery('.pager-con',con).height();
195		jQuery('.pager-con',con).removeClass('animated-pager');
196		pagerAnimated = false;
197		if (orgThumbsH > pagerH){
198			jQuery('.pager-con',con).addClass('animated-pager');
199			pagerAnimated = true;
200		}
201		
202	}
203	function resetButtonsPositions(){
204		if (allButtons){
205			for (var i=0; i<allButtons.length;i++){
206				var thisB = jQuery(allButtons[i]);
207				if (thisB){
208					jQuery(thisB).attr('data-order',i);
209				}
210			}
211		}
212	}
213	
214	
215	//	add focus outlines
216	jQuery(con).append('<div class="newsbox-outline nbo-top"></div><div class="newsbox-outline nbo-right"></div><div class="newsbox-outline nbo-bottom"></div><div class="newsbox-outline nbo-left"></div>');
217	
218	
219	//	navigation arrows
220	if (params.showNavigationArrows && total>3) {
221		navArrows = jQuery('<span class="nav-arrows" aria-hidden="true"></span>');
222		prev = jQuery('<span class="nav-arrow prev">PREV</span>');
223		next = jQuery('<span class="nav-arrow next">NEXT</span>');
224		jQuery(navArrows).append(prev).append(next);
225		jQuery(con).append(navArrows);
226		
227		//	prev click
228		jQuery(prev).click(function(){
229			showPrevNews();
230		});
231		
232		//	next click
233		jQuery(next).click(function(){
234			showNextNews();
235			newsboxrespo();
236		});
237	}
238	
239	//	focus
240	jQuery(con).focusout(function(){
241		jQuery(con).removeClass('focused');
242		focusPause = false;
243		startTimer();
244	});
245	jQuery(params.singleSlideClass,con).focusin(function(){
246		jQuery(con).addClass('focused');
247		focusPause = true;
248		stopTimer();
249
250		nextNews = jQuery(this).attr('data-news-id');
251		showNews(nextNews);
252		newsboxrespo();
253	});
254	
255	//	init
256	currentNews = 1;
257	oldThumbnail = 1;
258	showNews(currentNews);
259	startTimer();
260	
261	function showNews(newsId,dir){
262		if (!inTransition)
263		{
264			//inTransition ==true;
265			
266			currentNews = parseInt(newsId);
267			newsId--;
268			jQuery(params.singleSlideClass,con).removeClass('active');
269			jQuery(slides[newsId]).addClass('active');
270			
271			jQuery('.pager-button,.pager-button2',con).removeClass('active');
272			jQuery(pagerButtons[newsId]).addClass('active');
273			jQuery(pagerButtons2[newsId]).addClass('active');
274			jQuery(pagerButtonsClones[newsId]).addClass('active');
275			
276			showThumbnail(currentNews,dir);
277			newsboxrespo();
278		}
279	}	
280	
281	function showPrevNews(){
282		nextNews = currentNews-1;
283		if (nextNews===0) {nextNews = total;}
284		showNews(nextNews,'prev');
285		newsboxrespo();
286	}
287	function showNextNews(){
288		nextNews = currentNews+1;
289		if (nextNews>total) {nextNews = 1;}
290		showNews(nextNews,'next');
291		newsboxrespo();
292	}
293	
294	function showThumbnail(newThumbnail,dir){
295		//console.log('showThumbnail('+newThumbnail+')');
296		
297		if (total <= 3) return 0;
298		
299		if (typeof(dir) == 'undefined') dir = 'next';
300		var dif = 0;
301		//resizeActions();
302		
303		if (pagerAnimated){
304			//console.log('!!!');
305			if (newThumbnail>=oldThumbnail) {
306				dif = newThumbnail-oldThumbnail;
307			}
308			else {
309				dif= total-oldThumbnail + newThumbnail;
310				//dir = 'back';
311			}
312			
313			// do przodu
314			if (dir == 'next'){
315				//	reset buttons before animation
316				for (var i=0; i<allButtons.length;i++){
317					jQuery(allButtons[i]).removeClass('animated');
318					var oldOrd = parseInt(jQuery(allButtons[i]).attr('data-order'));
319					if (oldOrd < 0){
320						oldOrd += total + total;
321					}
322					jQuery(allButtons[i]).attr('data-order',oldOrd);
323				}
324				setButtonsPositions(dir);
325				
326				for (var i=0; i<allButtons.length;i++){
327					jQuery(allButtons[i]).removeClass('animated');
328					var oldOrd = parseInt(jQuery(allButtons[i]).attr('data-order'));
329									
330					//	move to new positions
331					var extraDiff = 0;
332					var newOrd = oldOrd-dif;
333					jQuery(allButtons[i]).attr('data-order',newOrd);
334					var newY = newOrd*thumbnailHeight;
335					newY-=thumbnailHeight;
336				}
337				setTimeout(function(i,newY){
338						//console.log(i);
339						jQuery('.pager-button',pager).addClass('animated');
340						setButtonsPositions(dir);
341				},15,i,dir);
342				oldThumbnail = newThumbnail;
343			}
344			//	do tyłu
345			else if (dir == 'prev'){
346				
347				//	reset buttons before animation
348				for (var i=0; i<allButtons.length;i++){
349					jQuery(allButtons[i]).removeClass('animated');
350					var oldOrd = parseInt(jQuery(allButtons[i]).attr('data-order'));
351					if (oldOrd >= (total+total-2)){
352						oldOrd -= (total + total);
353					}
354					jQuery(allButtons[i]).attr('data-order',oldOrd);
355				}
356				setButtonsPositions(dir);
357				
358				for (var i=0; i<allButtons.length;i++){
359					jQuery(allButtons[i]).removeClass('animated');
360					var oldOrd = parseInt(jQuery(allButtons[i]).attr('data-order'));
361									
362					//	move to new positions
363					var newOrd = oldOrd+1;
364					jQuery(allButtons[i]).attr('data-order',newOrd);
365					var newY = newOrd*thumbnailHeight;
366					newY-=thumbnailHeight;
367				}
368				setTimeout(function(i,newY){
369						//console.log(i);
370						jQuery('.pager-button',pager).addClass('animated');
371						setButtonsPositions(dir);
372				},15,i,dir);
373				oldThumbnail = newThumbnail;
374			}
375		}
376	}
377	
378	
379	function startTimer(){
380		clearInterval(sliderTimer);
381		sliderTimer = setInterval(function(){
382			if (!globalPause && !focusPause && !localPause) showNextNews();
383		}, params.delay);
384	}
385	function stopTimer(){
386		clearInterval(sliderTimer);
387	}
388	
389	
390	
391	jQuery(window).resize(function(){resizeActions();});
392	function resizeActions(){
393		resetSlider();
394	}
395	
396	function resetSlider(){
397		currentNews = 1;
398		oldThumbnail = 1;
399		resetButtonsPositions()
400		setButtonsPositions();
401		showNews(currentNews);
402		startTimer();
403	}
404	
405	jQuery(window).load(function(){
406		setButtonsPositions();
407	});
408
409	
410	
411	jQuery(con).mouseenter(function(){
412		localPause=true;
413		stopTimer()
414	});
415	
416	jQuery(con).mouseleave(function(){
417		localPause=false;
418		if (!localPause){
419			startTimer();
420		}
421	});
422}

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.