PageSourceSearch

https://www.martinsvillefirst.bank/wp-content/themes/first-mutual/js/dev/js-account-chooser.js?ver=1762199041

js martinsvillefirst.bank collected 2026-10-09 04:39:59 UTC 5,746 bytes, 160 lines download raw bytes

1const accountChooser = document.querySelector(".account-chooser-block");
2
3if (accountChooser) {
4	document.querySelector(".js-account-chooser").addEventListener("click", () => {
5		console.log("HELLO ACCOUNT CHOOSER 2");
6		document.body.classList.add("quiz-active");
7		initAccountChooser();
8	});
9	function initAccountChooser() {
10
11		const chooserBox = accountChooser.querySelector(".chooserBox");
12		const statusBar = chooserBox.querySelector(".status-bar");
13		const nextbutton = accountChooser.querySelector(".js-next");
14		const prevbutton = accountChooser.querySelector(".js-prev");
15		const firstQuestion = accountChooser.querySelector('[data-parent="0"]');
16		statusBar.classList.add('active')
17		statusBar.dataset.level = 0;
18		statusBar.querySelectorAll(".dot").forEach((dot) => {
19			if (dot.dataset.level == 0) {
20				dot.classList.add("active");
21			} else { 
22				dot.classList.remove("active");
23			}
24		});
25		
26		prevbutton.style.display = "none";
27        // document.querySelector(".js-account-chooser").style.opacity = "0";
28        setTimeout(()=> {
29            // document.querySelector(".js-account-chooser").style.display = "none";     
30            
31            // nextbutton.style.display = "block";
32            // nextbutton.style.opacity = "1";
33            loadQuestion(firstQuestion, true);
34        }, 200)
35		
36		accountChooser.querySelector(".results").style.display = "none";
37
38		const radios = accountChooser.querySelectorAll("input[type=radio]");
39		radios.forEach((radio) => {
40			radio.checked = false;
41		});
42	}
43
44	function loadQuestion(activeEl, first = false) {
45		const questions = accountChooser.querySelectorAll("fieldset");
46		const statusBar = accountChooser.querySelector(".status-bar");
47		const nextbutton = accountChooser.querySelector(".js-next");
48		const prevbutton = accountChooser.querySelector(".js-prev");
49
50		questions.forEach((el) => {
51			el.classList.remove("active");
52            el.style.display = "none";
53		});
54        if (first) {
55            vSlideDown(activeEl);
56        } else {
57            activeEl.style.display = "block";
58        }
59        
60        setTimeout(() => {
61            activeEl.classList.add("active");
62        },100)
63		
64
65		statusBar.querySelectorAll(".dot").forEach((dot) => {
66			if (dot.dataset.level == activeEl.dataset.level) {
67				dot.classList.add("active");
68			} else {
69				dot.classList.remove("active");
70			}
71		});
72		if (activeEl.dataset.level > 0) {
73			// prevbutton.style.display = "block";
74		}
75	}
76	accountChooser.querySelector(".js-next").addEventListener("click", () => {
77		const activeEl = accountChooser.querySelector("fieldset.active");
78		const radios = activeEl.querySelectorAll("input[type=radio]");
79		console.log(activeEl);
80		radios.forEach((radio) => {
81			if (radio.checked) {
82				if (radio.value == "result") {
83					const resultsBox = accountChooser.querySelector(".results");
84					const resultsData = accountChooser.querySelector(`.result-modal[data-id="${radio.id}"]`);
85
86					resultsBox.querySelector(".inject").innerHTML = resultsData.dataset.copy
87						? resultsData.dataset.copy
88						: "";
89					resultsBox.querySelector(".page-name").innerHTML = resultsData.dataset.pageName
90						? resultsData.dataset.pageName
91						: "";
92					resultsBox.querySelector(
93						".page-name"
94					).style = `--iconURL: url(${resultsData.dataset.image})`;
95					resultsBox.querySelector(".result-page").href = resultsData.dataset.resultPage;
96
97					resultsBox.style.display = "grid";
98					accountChooser.querySelector(".content").style.display = "none";
99
100					accountChooser.querySelectorAll(".actions button").forEach((el) => {
101						el.style.display = "none";
102					});
103				} else {
104					const newEl = accountChooser.querySelector(`[data-id="${radio.value}"]`);
105					console.log(newEl);
106					loadQuestion(newEl);
107				}
108			}
109		});
110	});
111	accountChooser.querySelector(".js-prev").addEventListener("click", (el) => {
112		const activeEl = accountChooser.querySelector("fieldset.active");
113		const newEl = accountChooser.querySelector(`[data-id="${activeEl.dataset.parent}"]`);
114		loadQuestion(newEl);
115	});
116
117	accountChooser.querySelector(".js-replay").addEventListener("click", () => {
118		initAccountChooser();
119		accountChooser.querySelector(".content").style.display = "block";
120	});
121
122	const closeinput = accountChooser.querySelectorAll(".close-button .js-close");
123	closeinput.forEach((close) => {
124		close.addEventListener("click", () => {
125			console.log('close click');
126			initAccountChooser();
127			document.body.classList.remove("quiz-active");
128			accountChooser.querySelector(".status-bar").classList.remove("active");			
129			accountChooser.querySelector(".content").style.display = "block";
130		});
131	});
132
133	const proceedinput = accountChooser.querySelectorAll("label.cta-btn.proceed");
134	proceedinput.forEach((proceed) => {
135		proceed.addEventListener("click", () => {
136			console.log('proceed click');
137			accountChooser.querySelector('.js-next').click();
138		});
139	});
140}
141
142function checkOpenAccountChooserHash() {
143  const hash = decodeURIComponent(window.location.hash || "").replace(/^#/, "").toLowerCase();
144  if (hash === "open-account-chooser") {
145    const trigger = document.querySelector(".js-account-chooser");
146    const chooser = document.querySelector(".account-chooser-block");
147    if (trigger && chooser) {
148      trigger.click();
149      chooser.scrollIntoView({ behavior: "smooth", block: "start" });
150    }
151  }
152}
153
154if (document.readyState === "loading") {
155  document.addEventListener("DOMContentLoaded", checkOpenAccountChooserHash);
156} else {
157  checkOpenAccountChooserHash();
158}
159
160window.addEventListener("hashchange", checkOpenAccountChooserHash);

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.