PageSourceSearch

https://www.cofidis.be/nl/js/credits/reserve_argent.js?202504

js cofidis.be collected 2026-10-01 15:57:23 UTC 6,675 bytes, 220 lines download raw bytes

1"use strict";
2
3var m = document.querySelector('._inner');
4
5/* ============================ */
6/* Bloc Cofidis vous accompagne */
7/* ============================ */
8function track_event_bloc_accompagne(label)
9{	trackEvent({"category": "Carrousel_Damier", "action": "Infos_Accompagnement", "label": "Tuile_" + label});
10}
11
12
13/*=============================== */
14/* Slide => FAQ / aller plus loin */
15/* ============================== */
16function slide_toggle(e, class_textHeight, class_items, class_reponse)
17{	let parent_elem = e.target.closest(class_items);
18	let content = parent_elem.children[0].nextElementSibling;
19	let textHeight = content.querySelector(class_textHeight).offsetHeight;
20	
21	if(!parent_elem.classList.contains("open"))
22	{	
23		let items = document.querySelectorAll(class_items);
24		
25		items.forEach(item => {
26			if(item.classList.contains("open"))
27			{	let reponse = item.querySelector(class_reponse);
28				item.classList.remove("open");
29				reponse.style.maxHeight = "0px";
30			};
31		});
32		
33		parent_elem.classList.add("open");
34		content.style.maxHeight = textHeight + "px";
35	}
36	else
37	{
38		parent_elem.classList.remove("open");
39		content.style.maxHeight = "0px";
40	}
41}
42
43
44document.addEventListener("DOMContentLoaded", function () 
45{	/* ======== */
46	/* LazyLoad */
47	/* ======== */
48	new LazyLoad({
49		elements_selector: '.lazy',
50		use_native: true
51	});
52	
53	/* ======================================= */
54	/* Slider2 avec GLIDE2 (maillage produits) */
55	/* ======================================= */
56	var g2 = m.querySelector('.glide2 .glide__slides');
57	var bullets2 = document.querySelector('.glide2 .glide__bullets');
58	var bar2 = bullets2.querySelector('.glide2 .bar');
59	let glide2_search = document.getElementsByClassName("glide2")[0];
60	let glide_arrows = glide2_search.getElementsByClassName("glide__arrow");
61	let glide_arrow_left = glide2_search.getElementsByClassName("glide__arrow--left")[0];
62	let glide_arrow_right = glide2_search.getElementsByClassName("glide__arrow--right")[0];
63
64	var settings2 = 
65	{	type: 'slider',
66		rewind: false,
67		startAt: 0,
68		gap: 15,
69		perView: 1.3, 
70		bound: true
71	};
72
73	var nb_elements2 = g2.childElementCount;
74
75	var narrowerPerView2 = [window.matchMedia('(min-width: 1024px)').matches];
76
77	if (narrowerPerView2.some(Boolean))
78	{	// Desktop: affichage de l'ensemble des blocs, suppression de la barre de défilement, suppression des bulles gauche/droite
79		settings2.perView = 2;
80		if (nb_elements2 < 3)
81		{	bullets2.style.backgroundColor = "transparent";
82			bar2.style.display = "none";
83			glide_arrow_left.classList.add("disable");
84			glide_arrow_right.classList.add("disable");
85		}
86	}
87
88	var glide2 = new Glide('.glide2', settings2).mount();
89
90	// Desktop: supprimer l'effet slide
91	if ((narrowerPerView2.some(Boolean)) && (nb_elements2 < 3))
92	{	glide2.disable();
93	}
94	
95	// set bar width by counting number of slides
96	if (narrowerPerView2.some(Boolean))
97	{	nb_elements2 = nb_elements2 - 1;
98	}
99	bar2.style.width = 100 / nb_elements2 + '%';
100
101
102	function getTranslateX2(el2) 
103	{	var style2 = window.getComputedStyle(el2);
104		var matrix2 = new WebKitCSSMatrix(style2.webkitTransform);
105		return matrix2.m41;
106	}
107
108	glide2.on('swipe.start', function ()
109	{	bar2.style.transition = '0s';
110	});
111  
112	var val2 = void 0;
113  
114	glide2.on('swipe.move', function ()
115	{	var gX2 = getTranslateX2(g2) * -1;
116		val2 = gX2 / g2.clientWidth * 100;
117		bar2.style.left = val2 + '%';
118	});
119	
120	glide2.on(['swipe.end', 'run'], function ()
121	{	bar2.style.transition = '';
122		var gX2 = getTranslateX2(g2) * -1;
123		bar2.style.left = 100 / nb_elements2 * glide2.index + '%';
124	});
125	
126	function glide_arrow()
127	{	if (glide2.index == 0)
128		{	// Initialisation
129			glide_arrow_left.classList.add("disable");
130			glide_arrow_right.classList.remove("disable");
131		}
132		else
133		{	if (glide2.index == (nb_elements2 - 1))
134			{	// Si bout du slide
135				glide_arrow_left.classList.remove("disable");
136				glide_arrow_right.classList.add("disable");
137			}
138			else
139			{	// Si pas bout du slide
140				glide_arrow_left.classList.remove("disable");
141				glide_arrow_right.classList.remove("disable");
142			}
143		}
144	}
145	
146
147	// Evénement au click des "boutons flèches"
148	for(let arrow of glide_arrows){arrow.addEventListener("click", () => glide_arrow())}
149  
150	// Evénement au click sur la barre de défilement horizontal
151	bullets2.addEventListener("click", () => glide_arrow());
152	
153	// Evénement au swipe sur le slider
154	glide2.on('run.after', function () 
155	{	glide_arrow();
156	});
157	
158	/* ============== */
159	/* Bloc Plus loin */
160	/* ============== */
161	let bloc_plus_loin_questions = document.querySelectorAll(".bloc_plus_loin__item .bloc_plus_loin_question");
162	
163	for(let question of bloc_plus_loin_questions)
164	{	question.addEventListener("click", (e) => {
165			slide_toggle(e, ".bloc_plus_loin_reponseInner", ".bloc_plus_loin__item", ".bloc_plus_loin_reponse");
166			
167			// Tracking Analytics //
168			trackEvent({"category": "Plus_loin", "action": "Page_Produit", "label": e.target.textContent});
169		});
170	}
171});
172
173
174/* ============================================ */
175/* Tracking Analytics (blocs Quelques conseils) */
176/* ============================================ */
177function track_event_qq_conseils(id)
178{	trackEvent({"category": "Carrousel_Damier", "action": "Conseils", "label": "Tuile_" + id});
179}
180
181
182/* =========================================== */
183/* Tracking Analytics (carrousel des produits) */
184/* =========================================== */
185function track_event_slider_produit(id)
186{	// Initialisation des variables
187	var tracking_action = "";
188	var tracking_label = "";
189	
190	// Affectation des variables
191	switch(id)
192	{	case 1:		tracking_action = "Credits";
193					tracking_label = "Tuile_MyLine";
194					break;
195		case 2:		tracking_action = "Credits";
196					tracking_label = "Tuile_Mastercard";
197					break;
198		case 3:		tracking_action = "Credits";
199					tracking_label = "Tuile_Mastercard_Gold";
200					break;
201		case 4:		tracking_action = "Credits";
202					tracking_label = "Tuile_PAT_Classique";
203					break;
204		case 5:		tracking_action = "Credits";
205					tracking_label = "Tuile_PAT_Auto_Non_Affecte";
206					break;
207		case 6:		tracking_action = "Credits";
208					tracking_label = "Tuile_PAT_Travaux";
209					break;
210		case 7:		tracking_action = "Credits";
211					tracking_label = "Tuile_Rachat";
212					break;
213		default:	tracking_action = "-";
214					tracking_label = "-";
215					break;
216	}
217	
218	// Tracking Analytics (bloc slider produit)
219	trackEvent({"category": "Carrousel_Damier", "action": tracking_action, "label": tracking_label});
220}

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.