PageSourceSearch

https://fib-international.org//media/com_acymailing/js/acymailing_module.js?v=595

js fib-international.org collected 2026-09-24 08:25:46 UTC 14,408 bytes, 318 lines download raw bytes

1/**
2 * @package    AcyMailing for Joomla!
3 * @version    5.9.5
4 * @author     acyba.com
5 * @copyright  (C) 2009-2018 ACYBA S.A.R.L. All rights reserved.
6 * @license    GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7 */
8
9var task, formName;
10
11function submitacymailingform(newtask, newformName) {
12	task = newtask;
13	formName = newformName;
14
15	var recaptchaid = 'acymailing-captcha';
16	if(newformName) recaptchaid = newformName+'-captcha';
17
18	var invisibleRecaptcha = document.querySelector('#'+recaptchaid+'[class="g-recaptcha"]');
19	if(invisibleRecaptcha && typeof grecaptcha == "object"){
20
21		var grcID = invisibleRecaptcha.getAttribute('grcID');
22
23		if(!grcID) {
24			grcID = grecaptcha.render(recaptchaid, {
25				'sitekey': invisibleRecaptcha.getAttribute("data-sitekey"),
26				'callback': 'acySubmitSubForm',
27				'size': 'invisible',
28				'expired-callback': 'resetRecaptcha'
29			});
30
31			invisibleRecaptcha.setAttribute('grcID', grcID);
32		}
33
34		var response = grecaptcha.getResponse(grcID);
35		if(response){
36			return acySubmitSubForm();
37		}else{
38			grecaptcha.execute(grcID);
39			return false;
40		}
41	}else{
42		return acySubmitSubForm();
43	}
44}
45
46function resetRecaptcha(){
47	var recaptchaid = 'acymailing-captcha';
48	if(formName) recaptchaid = formName+'-captcha';
49
50	var invisibleRecaptcha = document.querySelector('#'+recaptchaid+'[class="g-recaptcha"]');
51	if(!invisibleRecaptcha) return;
52
53	var grcID = invisibleRecaptcha.getAttribute('grcID');
54	grecaptcha.reset(grcID);
55}
56
57function acySubmitSubForm(){
58	var varform = document[formName];
59	if(typeof acymailingModule != 'undefined') {
60		var filterEmail = acymailingModule['emailRegex'];
61	}else{
62		var filterEmail = /\@/i;
63	}
64
65	if(!varform.elements){
66		if(varform[0].elements['user[email]'] && varform[0].elements['user[email]'].value && filterEmail.test(varform[0].elements['user[email]'].value)){
67			varform = varform[0];
68		}else{
69			varform = varform[varform.length - 1];
70		}
71	}
72
73	if(task != 'optout'){
74		nameField = varform.elements['user[name]'];
75		if(nameField && typeof acymailingModule != 'undefined' && (((typeof acymailingModule['level'] == 'undefined' || acymailingModule['level'] != 'enterprise') && ((nameField.value == acymailingModule['NAMECAPTION'] || (typeof acymailingModule['excludeValues' + formName] != 'undefined' && typeof acymailingModule['excludeValues' + formName]['name'] != 'undefined' && nameField.value == acymailingModule['excludeValues' + formName]['name'])) || nameField.value.replace(/ /g, "").length < 2)) || (typeof acymailingModule['level'] != 'undefined' && acymailingModule['level'] == 'enterprise' && typeof acymailingModule['reqFields' + formName] != 'undefined' && acymailingModule['reqFields' + formName].indexOf('name') >= 0 && ((nameField.value == acymailingModule['NAMECAPTION'] || (typeof acymailingModule['excludeValues' + formName] != 'undefined' && typeof acymailingModule['excludeValues' + formName]['name'] != 'undefined' && nameField.value == acymailingModule['excludeValues' + formName]['name'])) || nameField.value.replace(/ /g, "").length < 2)))){
76			alert(acymailingModule['NAME_MISSING']);
77			nameField.className = nameField.className + ' invalid';
78			return false;
79		}
80	}
81
82	var emailField = varform.elements['user[email]'];
83	if(emailField){
84		if(typeof acymailingModule == 'undefined' || emailField.value != acymailingModule['EMAILCAPTION']) emailField.value = emailField.value.replace(/ /g, "");
85		if(!emailField || (typeof acymailingModule != 'undefined' && (emailField.value == acymailingModule['EMAILCAPTION'] || (typeof acymailingModule['excludeValues' + formName] != 'undefined' && typeof acymailingModule['excludeValues' + formName]['email'] != 'undefined' && emailField.value == acymailingModule['excludeValues' + formName]['email']))) || !filterEmail.test(emailField.value)){
86			if(typeof acymailingModule != 'undefined'){
87				alert(acymailingModule['VALID_EMAIL']);
88			}
89			emailField.className = emailField.className + ' invalid';
90			return false;
91		}
92	}
93
94	if(varform.elements['hiddenlists'].value.length < 1){
95		var listschecked = false;
96		var alllists = varform.elements['subscription[]'];
97		if(alllists && (typeof alllists.value == 'undefined' || alllists.value.length == 0)){
98			for(b = 0; b < alllists.length; b++){
99				if(alllists[b].checked) listschecked = true;
100			}
101			if(!listschecked){
102				alert(acymailingModule['NO_LIST_SELECTED']);
103				return false;
104			}
105		}
106	}
107
108	if(task != 'optout' && typeof acymailingModule != 'undefined'){
109		if(typeof acymailingModule['reqFields' + formName] != 'undefined' && acymailingModule['reqFields' + formName].length > 0){
110
111			for(var i = 0; i < acymailingModule['reqFields' + formName].length; i++){
112				elementName = 'user[' + acymailingModule['reqFields' + formName][i] + ']';
113				elementToCheck = varform.elements[elementName];
114				if(elementToCheck){
115					var isValid = false;
116					if(typeof elementToCheck.value != 'undefined'){
117						if(elementToCheck.value == ' ' && typeof varform[elementName + '[]'] != 'undefined'){
118							if(varform[elementName + '[]'].checked){
119								isValid = true;
120							}else{
121								for(var a = 0; a < varform[elementName + '[]'].length; a++){
122									if((varform[elementName + '[]'][a].checked || varform[elementName + '[]'][a].selected) && varform[elementName + '[]'][a].value.length > 0) isValid = true;
123								}
124							}
125						}else{
126							if(elementToCheck.value.replace(/ /g, "").length > 0){
127								if(typeof acymailingModule['excludeValues' + formName] == 'undefined' || typeof acymailingModule['excludeValues' + formName][acymailingModule['reqFields' + formName][i]] == 'undefined' || acymailingModule['excludeValues' + formName][acymailingModule['reqFields' + formName][i]] != elementToCheck.value) isValid = true;
128							}
129						}
130					}else{
131						for(var a = 0; a < elementToCheck.length; a++){
132							if(elementToCheck[a].checked && elementToCheck[a].value.length > 0) isValid = true;
133						}
134					}
135					if((elementToCheck.length >= 1 && (elementToCheck[0].parentElement.parentElement.style.display == 'none' || elementToCheck[0].parentElement.parentElement.parentElement.style.display == 'none')) || (typeof elementToCheck.length == 'undefined' && (elementToCheck.parentElement.parentElement.style.display == 'none' || elementToCheck.parentElement.parentElement.parentElement.style.display == 'none'))){
136						isValid = true;
137					}
138					if(!isValid){
139						elementToCheck.className = elementToCheck.className + ' invalid';
140						alert(acymailingModule['validFields' + formName][i]);
141						return false;
142					}
143				}else{
144					if((varform.elements[elementName + '[day]'] && varform.elements[elementName + '[day]'].value < 1) || (varform.elements[elementName + '[month]'] && varform.elements[elementName + '[month]'].value < 1) || (varform.elements[elementName + '[year]'] && varform.elements[elementName + '[year]'].value < 1902)){
145						if(varform.elements[elementName + '[day]'] && varform.elements[elementName + '[day]'].value < 1) varform.elements[elementName + '[day]'].className = varform.elements[elementName + '[day]'].className + ' invalid';
146						if(varform.elements[elementName + '[month]'] && varform.elements[elementName + '[month]'].value < 1) varform.elements[elementName + '[month]'].className = varform.elements[elementName + '[month]'].className + ' invalid';
147						if(varform.elements[elementName + '[year]'] && varform.elements[elementName + '[year]'].value < 1902) varform.elements[elementName + '[year]'].className = varform.elements[elementName + '[year]'].className + ' invalid';
148						alert(acymailingModule['validFields' + formName][i]);
149						return false;
150					}
151
152					if((varform.elements[elementName + '[country]'] && varform.elements[elementName + '[country]'].value < 1) || (varform.elements[elementName + '[num]'] && (varform.elements[elementName + '[num]'].value < 3 || (typeof acymailingModule['excludeValues' + formName] != 'undefined' && typeof acymailingModule['excludeValues' + formName][acymailingModule['reqFields' + formName][i]] != 'undefined' && acymailingModule['excludeValues' + formName][acymailingModule['reqFields' + formName][i]] == varform.elements[elementName + '[num]'].value)))){
153						if((varform.elements[elementName + '[country]'] && varform.elements[elementName + '[country]'].parentElement.parentElement.style.display != 'none') || (varform.elements[elementName + '[num]'] && varform.elements[elementName + '[num]'].parentElement.parentElement.style.display != 'none')){
154							if(varform.elements[elementName + '[country]'] && varform.elements[elementName + '[country]'].value < 1) varform.elements[elementName + '[country]'].className = varform.elements[elementName + '[country]'].className + ' invalid';
155							if(varform.elements[elementName + '[num]'] && (varform.elements[elementName + '[num]'].value < 3 || (typeof acymailingModule['excludeValues' + formName] != 'undefined' && typeof acymailingModule['excludeValues' + formName][acymailingModule['reqFields' + formName][i]] != 'undefined' && acymailingModule['excludeValues' + formName][acymailingModule['reqFields' + formName][i]] == varform.elements[elementName + '[num]'].value))) varform.elements[elementName + '[num]'].className = varform.elements[elementName + '[num]'].className + ' invalid';
156							alert(acymailingModule['validFields' + formName][i]);
157							return false;
158						}
159					}
160				}
161			}
162		}
163
164		if(typeof acymailingModule != 'undefined' && typeof acymailingModule['checkFields' + formName] != 'undefined' && acymailingModule['checkFields' + formName].length > 0){
165			for(var i = 0; i < acymailingModule['checkFields' + formName].length; i++){
166				elementName = 'user[' + acymailingModule['checkFields' + formName][i] + ']';
167				elementtypeToCheck = acymailingModule['checkFieldsType' + formName][i];
168				elementToCheck = varform.elements[elementName].value;
169				if(typeof acymailingModule['excludeValues' + formName] != 'undefined'){
170					var excludedValues = acymailingModule['excludeValues' + formName][acymailingModule['checkFields' + formName][i]];
171					if(typeof excludedValues != 'undefined' && elementToCheck == excludedValues){
172						continue;
173					}
174				}
175				switch(elementtypeToCheck){
176					case 'number':
177						myregexp = new RegExp('^[0-9]*$');
178						break;
179					case 'letter':
180						myregexp = new RegExp('^[A-Za-z\u00C0-\u017F ]*$');
181						break;
182					case 'letnum':
183						myregexp = new RegExp('^[0-9a-zA-Z\u00C0-\u017F ]*$');
184						break;
185					case 'regexp':
186						myregexp = new RegExp(acymailingModule['checkFieldsRegexp' + formName][i]);
187						break;
188				}
189				if(!myregexp.test(elementToCheck)){
190					alert(acymailingModule['validCheckFields' + formName][i]);
191					return false;
192				}
193			}
194		}
195	}
196
197	var captchaField = varform.elements['acycaptcha'];
198	if(captchaField){
199		if(captchaField.value.length < 1){
200			if(typeof acymailingModule != 'undefined'){
201				alert(acymailingModule['CAPTCHA_MISSING']);
202			}
203			captchaField.className = captchaField.className + ' invalid';
204			return false;
205		}
206	}
207
208	if(task != 'optout'){
209		var termsandconditions = varform.terms;
210		if(termsandconditions && !termsandconditions.checked){
211			if(typeof acymailingModule != 'undefined'){
212				alert(acymailingModule['ACCEPT_TERMS']);
213			}
214			termsandconditions.className = termsandconditions.className + ' invalid';
215			return false;
216		}
217
218		if(typeof acymailingModule != 'undefined' && typeof acymailingModule['excludeValues' + formName] != 'undefined'){
219			for(var fieldName in acymailingModule['excludeValues' + formName]){
220				if(!acymailingModule['excludeValues' + formName].hasOwnProperty(fieldName)) continue;
221				if(!varform.elements['user[' + fieldName + ']'] || varform.elements['user[' + fieldName + ']'].value != acymailingModule['excludeValues' + formName][fieldName]) continue;
222
223				varform.elements['user[' + fieldName + ']'].value = '';
224			}
225		}
226	}
227
228	if(typeof ga != 'undefined' && task != 'optout'){
229		ga('send', 'pageview', 'subscribe');
230	}else if(typeof ga != 'undefined'){
231		ga('send', 'pageview', 'unsubscribe');
232	}
233
234	taskField = varform.task;
235	taskField.value = task;
236
237	if(!varform.elements['ajax'] || !varform.elements['ajax'].value || varform.elements['ajax'].value == '0'){
238		varform.submit();
239		return false;
240	}
241
242	var form = document.getElementById(formName);
243
244	var formData = new FormData(form);
245	form.className += ' acymailing_module_loading';
246	form.style.filter = "alpha(opacity=50)";
247	form.style.opacity = "0.5";
248
249	var xhr = new XMLHttpRequest();
250	xhr.open('POST', form.action);
251	xhr.onload = function(){
252		var message = 'Ajax Request Failure';
253		var type = 'error';
254
255		if (xhr.status === 200){
256			var response = JSON.parse(xhr.responseText);
257			message = response.message;
258			type = response.type;
259		}
260		acymailingDisplayAjaxResponse(decodeURIComponent(message), type, formName);
261	};
262	xhr.send(formData);
263
264	return false;
265}
266
267function acymailingDisplayAjaxResponse(message, type, formName){
268	var toggleButton = document.getElementById('acymailing_togglemodule_' + formName);
269
270	if(toggleButton && toggleButton.className.indexOf('acyactive') > -1){
271		var wrapper = toggleButton.parentElement.parentElement.childNodes[1];
272		wrapper.style.height = '';
273	}
274
275	var responseContainer = document.querySelectorAll('#acymailing_fulldiv_' + formName + ' .responseContainer')[0];
276
277	if(typeof responseContainer == 'undefined'){
278		responseContainer = document.createElement('div');
279		var fulldiv = document.getElementById('acymailing_fulldiv_' + formName);
280
281		if(fulldiv.firstChild){
282			fulldiv.insertBefore(responseContainer, fulldiv.firstChild);
283		}else{
284			fulldiv.appendChild(responseContainer);
285		}
286		
287		oldContainerHeight = '0px';
288	}else{
289		oldContainerHeight = responseContainer.style.height;
290	}
291
292	responseContainer.className = 'responseContainer';
293
294	var form = document.getElementById(formName);
295
296	var elclass = form.className;
297	var rmclass = 'acymailing_module_loading';
298	var res = elclass.replace(' '+rmclass, '', elclass);
299	if(res == elclass) res = elclass.replace(rmclass+' ', '', elclass);
300	if(res == elclass) res = elclass.replace(rmclass, '', elclass);
301	form.className = res;
302
303	responseContainer.innerHTML = message;
304
305	if(type == 'success'){
306		responseContainer.className += ' acymailing_module_success';
307	}else{
308		responseContainer.className += ' acymailing_module_error';
309		form.style.opacity = "1";
310	}
311
312	newContainerHeight = responseContainer.style.height;
313
314	form.style.display = 'none';
315	responseContainer.className += ' slide_open';
316}
317
318

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.