PageSourceSearch

http://www.canadiangreentech.ca/media/com_acymailing/js/acymailing_module.js

js canadiangreentech.ca collected 2026-10-08 17:20:28 UTC 17,325 bytes, 426 lines download raw bytes

1/**
2 * @package    AcyMailing for Joomla!
3 * @version    5.6.1
4 * @author     acyba.com
5 * @copyright  (C) 2009-2017 ACYBA S.A.R.L. All rights reserved.
6 * @license    GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7 */
8
9function submitacymailingform(task, formName, allowSpecialChars){
10	var varform = document[formName];
11	if(allowSpecialChars == 0) {
12		var filterEmail = /^([a-z0-9_'&\.\-\+=])+\@(([a-z0-9\-])+\.)+([a-z0-9]{2,10})+$/i;
13	}else{
14		var filterEmail = /\@/i;
15	}
16
17	if(!varform.elements){
18		if(varform[0].elements['user[email]'] && varform[0].elements['user[email]'].value && filterEmail.test(varform[0].elements['user[email]'].value)){
19			varform = varform[0];
20		}else{
21			varform = varform[varform.length - 1];
22		}
23	}
24
25	if(task != 'optout'){
26		nameField = varform.elements['user[name]'];
27		if(nameField && typeof acymailing != 'undefined' && (((typeof acymailing['level'] == 'undefined' || acymailing['level'] != 'enterprise') && ((nameField.value == acymailing['NAMECAPTION'] || (typeof acymailing['excludeValues' + formName] != 'undefined' && typeof acymailing['excludeValues' + formName]['name'] != 'undefined' && nameField.value == acymailing['excludeValues' + formName]['name'])) || nameField.value.replace(/ /g, "").length < 2)) || (typeof acymailing['level'] != 'undefined' && acymailing['level'] == 'enterprise' && typeof acymailing['reqFields' + formName] != 'undefined' && acymailing['reqFields' + formName].indexOf('name') >= 0 && ((nameField.value == acymailing['NAMECAPTION'] || (typeof acymailing['excludeValues' + formName] != 'undefined' && typeof acymailing['excludeValues' + formName]['name'] != 'undefined' && nameField.value == acymailing['excludeValues' + formName]['name'])) || nameField.value.replace(/ /g, "").length < 2)))){
28			alert(acymailing['NAME_MISSING']);
29			nameField.className = nameField.className + ' invalid';
30			return false;
31		}
32	}
33
34	var emailField = varform.elements['user[email]'];
35	if(emailField){
36		if(typeof acymailing == 'undefined' || emailField.value != acymailing['EMAILCAPTION']) emailField.value = emailField.value.replace(/ /g, "");
37		if(!emailField || (typeof acymailing != 'undefined' && (emailField.value == acymailing['EMAILCAPTION'] || (typeof acymailing['excludeValues' + formName] != 'undefined' && typeof acymailing['excludeValues' + formName]['email'] != 'undefined' && emailField.value == acymailing['excludeValues' + formName]['email']))) || !filterEmail.test(emailField.value)){
38			if(typeof acymailing != 'undefined'){
39				alert(acymailing['VALID_EMAIL']);
40			}
41			emailField.className = emailField.className + ' invalid';
42			return false;
43		}
44	}
45
46	if(varform.elements['hiddenlists'].value.length < 1){
47		var listschecked = false;
48		var alllists = varform.elements['subscription[]'];
49		if(alllists && (typeof alllists.value == 'undefined' || alllists.value.length == 0)){
50			for(b = 0; b < alllists.length; b++){
51				if(alllists[b].checked) listschecked = true;
52			}
53			if(!listschecked){
54				alert(acymailing['NO_LIST_SELECTED']);
55				return false;
56			}
57		}
58	}
59
60
61	if(task != 'optout' && typeof acymailing != 'undefined'){
62		if(typeof acymailing['reqFields' + formName] != 'undefined' && acymailing['reqFields' + formName].length > 0){
63
64			for(var i = 0; i < acymailing['reqFields' + formName].length; i++){
65				elementName = 'user[' + acymailing['reqFields' + formName][i] + ']';
66				elementToCheck = varform.elements[elementName];
67				if(elementToCheck){
68					var isValid = false;
69					if(typeof elementToCheck.value != 'undefined'){
70						if(elementToCheck.value == ' ' && typeof varform[elementName + '[]'] != 'undefined'){
71							if(varform[elementName + '[]'].checked){
72								isValid = true;
73							}else{
74								for(var a = 0; a < varform[elementName + '[]'].length; a++){
75									if((varform[elementName + '[]'][a].checked || varform[elementName + '[]'][a].selected) && varform[elementName + '[]'][a].value.length > 0) isValid = true;
76								}
77							}
78						}else{
79							if(elementToCheck.value.replace(/ /g, "").length > 0){
80								if(typeof acymailing['excludeValues' + formName] == 'undefined' || typeof acymailing['excludeValues' + formName][acymailing['reqFields' + formName][i]] == 'undefined' || acymailing['excludeValues' + formName][acymailing['reqFields' + formName][i]] != elementToCheck.value) isValid = true;
81							}
82						}
83					}else{
84						for(var a = 0; a < elementToCheck.length; a++){
85							if(elementToCheck[a].checked && elementToCheck[a].value.length > 0) isValid = true;
86						}
87					}
88					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'))){
89						isValid = true;
90					}
91					if(!isValid){
92						elementToCheck.className = elementToCheck.className + ' invalid';
93						alert(acymailing['validFields' + formName][i]);
94						return false;
95					}
96				}else{
97					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)){
98						if(varform.elements[elementName + '[day]'] && varform.elements[elementName + '[day]'].value < 1) varform.elements[elementName + '[day]'].className = varform.elements[elementName + '[day]'].className + ' invalid';
99						if(varform.elements[elementName + '[month]'] && varform.elements[elementName + '[month]'].value < 1) varform.elements[elementName + '[month]'].className = varform.elements[elementName + '[month]'].className + ' invalid';
100						if(varform.elements[elementName + '[year]'] && varform.elements[elementName + '[year]'].value < 1902) varform.elements[elementName + '[year]'].className = varform.elements[elementName + '[year]'].className + ' invalid';
101						alert(acymailing['validFields' + formName][i]);
102						return false;
103					}
104
105					if((varform.elements[elementName + '[country]'] && varform.elements[elementName + '[country]'].value < 1) || (varform.elements[elementName + '[num]'] && (varform.elements[elementName + '[num]'].value < 3 || (typeof acymailing['excludeValues' + formName] != 'undefined' && typeof acymailing['excludeValues' + formName][acymailing['reqFields' + formName][i]] != 'undefined' && acymailing['excludeValues' + formName][acymailing['reqFields' + formName][i]] == varform.elements[elementName + '[num]'].value)))){
106						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')){
107							if(varform.elements[elementName + '[country]'] && varform.elements[elementName + '[country]'].value < 1) varform.elements[elementName + '[country]'].className = varform.elements[elementName + '[country]'].className + ' invalid';
108							if(varform.elements[elementName + '[num]'] && (varform.elements[elementName + '[num]'].value < 3 || (typeof acymailing['excludeValues' + formName] != 'undefined' && typeof acymailing['excludeValues' + formName][acymailing['reqFields' + formName][i]] != 'undefined' && acymailing['excludeValues' + formName][acymailing['reqFields' + formName][i]] == varform.elements[elementName + '[num]'].value))) varform.elements[elementName + '[num]'].className = varform.elements[elementName + '[num]'].className + ' invalid';
109							alert(acymailing['validFields' + formName][i]);
110							return false;
111						}
112					}
113				}
114			}
115		}
116
117		if(typeof acymailing != 'undefined' && typeof acymailing['checkFields' + formName] != 'undefined' && acymailing['checkFields' + formName].length > 0){
118			for(var i = 0; i < acymailing['checkFields' + formName].length; i++){
119				elementName = 'user[' + acymailing['checkFields' + formName][i] + ']';
120				elementtypeToCheck = acymailing['checkFieldsType' + formName][i];
121				elementToCheck = varform.elements[elementName].value;
122				if(typeof acymailing['excludeValues' + formName] != 'undefined'){
123					var excludedValues = acymailing['excludeValues' + formName][acymailing['checkFields' + formName][i]];
124					if(typeof excludedValues != 'undefined' && elementToCheck == excludedValues){
125						continue;
126					}
127				}
128				switch(elementtypeToCheck){
129					case 'number':
130						myregexp = new RegExp('^[0-9]*$');
131						break;
132					case 'letter':
133						myregexp = new RegExp('^[A-Za-z\u00C0-\u017F ]*$');
134						break;
135					case 'letnum':
136						myregexp = new RegExp('^[0-9a-zA-Z\u00C0-\u017F ]*$');
137						break;
138					case 'regexp':
139						myregexp = new RegExp(acymailing['checkFieldsRegexp' + formName][i]);
140						break;
141				}
142				if(!myregexp.test(elementToCheck)){
143					alert(acymailing['validCheckFields' + formName][i]);
144					return false;
145				}
146			}
147		}
148	}
149
150	var captchaField = varform.elements['acycaptcha'];
151	if(captchaField){
152		if(captchaField.value.length < 1){
153			if(typeof acymailing != 'undefined'){
154				alert(acymailing['CAPTCHA_MISSING']);
155			}
156			captchaField.className = captchaField.className + ' invalid';
157			return false;
158		}
159	}
160
161	if(task != 'optout'){
162		var termsandconditions = varform.terms;
163		if(termsandconditions && !termsandconditions.checked){
164			if(typeof acymailing != 'undefined'){
165				alert(acymailing['ACCEPT_TERMS']);
166			}
167			termsandconditions.className = termsandconditions.className + ' invalid';
168			return false;
169		}
170
171		if(typeof acymailing != 'undefined' && typeof acymailing['excludeValues' + formName] != 'undefined'){
172			for(var fieldName in acymailing['excludeValues' + formName]){
173				if(!acymailing['excludeValues' + formName].hasOwnProperty(fieldName)) continue;
174				if(!varform.elements['user[' + fieldName + ']'] || varform.elements['user[' + fieldName + ']'].value != acymailing['excludeValues' + formName][fieldName]) continue;
175
176				varform.elements['user[' + fieldName + ']'].value = '';
177			}
178		}
179	}
180
181	if(typeof ga != 'undefined' && task != 'optout'){
182		ga('send', 'pageview', 'subscribe');
183	}else if(typeof ga != 'undefined'){
184		ga('send', 'pageview', 'unsubscribe');
185	}
186
187	taskField = varform.task;
188	taskField.value = task;
189
190	if(!varform.elements['ajax'] || !varform.elements['ajax'].value || varform.elements['ajax'].value == '0'){
191		varform.submit();
192		return false;
193	}
194
195	if(window.jQuery){
196		var form = jQuery('#' + formName);
197		form.addClass('acymailing_module_loading');
198		form.css("filter:", "alpha(opacity=50)");
199		form.css("-moz-opacity", "0.5");
200		form.css("-khtml-opacity", "0.5");
201		form.css("opacity", "0.5");
202		data = new FormData(form[0]);
203
204		jQuery.ajax({
205			url: document.getElementById(formName).action,
206			data: data,
207			type: 'POST',
208			async: true,
209			success: function(response){
210				response = JSON.parse(response);
211				acymailingDisplayAjaxResponseJQuery(unescape(response.message), response.type, formName);
212			},
213			error: function(){
214				acymailingDisplayAjaxResponseJQuery('Ajax Request Failure', 'error', formName);
215			},
216			cache: false,
217			contentType: false,
218			processData: false
219		});
220	}else{
221		try{
222			var form = document.id(formName);
223		}catch(err){
224			var form = $(formName);
225		}
226		data = form.toQueryString();
227
228		if(typeof Ajax == 'function'){
229			new Ajax(form.action, {
230				data: data, method: 'post', onRequest: function(){
231					form.addClass('acymailing_module_loading');
232					form.setStyle("filter:", "alpha(opacity=50)");
233					form.setStyle("-moz-opacity", "0.5");
234					form.setStyle("-khtml-opacity", "0.5");
235					form.setStyle("opacity", "0.5");
236				}, onSuccess: function(response){
237					response = Json.evaluate(response);
238					acymailingDisplayAjaxResponseMootools(unescape(response.message), response.type, formName);
239				}, onFailure: function(){
240					acymailingDisplayAjaxResponseMootools('Ajax Request Failure', 'error', formName);
241				}
242			}).request();
243		}else{
244			var formData = new FormData(form);
245
246			form.addClass('acymailing_module_loading');
247			form.setStyle("filter:", "alpha(opacity=50)");
248			form.setStyle("-moz-opacity", "0.5");
249			form.setStyle("-khtml-opacity", "0.5");
250			form.setStyle("opacity", "0.5");
251
252			var xhr = new XMLHttpRequest();
253			xhr.open('POST', document.id(formName).action);
254			xhr.onload = function(){
255				if (xhr.status === 200){
256					var response = JSON.parse(xhr.responseText);
257					acymailingDisplayAjaxResponseMootools(unescape(response.message), response.type, formName);
258				}else{
259					acymailingDisplayAjaxResponseMootools('Ajax Request Failure', 'error', formName);
260				}
261			};
262			xhr.send(formData);
263		}
264	}
265
266	return false;
267}
268
269function acymailingDisplayAjaxResponseJQuery(message, type, formName){
270	var toggleButton = jQuery('#acymailing_togglemodule_' + formName);
271
272	if(toggleButton && toggleButton.hasClass('acyactive')){
273		var wrapper = toggleButton.parent().parent().children()[1];
274		jQuery(wrapper).css('height', '');
275	}
276	;
277
278	var responseContainer = jQuery('#acymailing_fulldiv_' + formName + ' .responseContainer')[0];
279
280	if(typeof responseContainer == 'undefined'){
281		responseContainer = document.createElement('div');
282		var fulldiv = jQuery('#acymailing_fulldiv_' + formName);
283		fulldiv.prepend(responseContainer);
284		oldContainerHeight = '0px';
285	}else{
286		oldContainerHeight = jQuery(responseContainer).css('height');
287	}
288
289	responseContainer.className = 'responseContainer';
290
291	var form = jQuery('#' + formName);
292
293	form.removeClass('acymailing_module_loading');
294
295	responseContainer.innerHTML = message;
296
297	if(type == 'success'){
298		jQuery(responseContainer).addClass('acymailing_module_success');
299	}else{
300		jQuery(responseContainer).addClass('acymailing_module_error');
301		form.css("filter:", "alpha(opacity=100)");
302		form.css("-moz-opacity", "1");
303		form.css("-khtml-opacity", "1");
304		form.css("opacity", "1");
305	}
306
307	newContainerHeight = jQuery(responseContainer).css('height');
308
309	if(type == 'success'){
310		form.animate({
311						 'height': 0, 'opacity': 0
312					 });
313	}
314
315	jQuery(responseContainer).css({
316									  'height': oldContainerHeight, 'filter:': "alpha(opacity=0)", '-moz-opacity': 0, '-khtml-opacity': 0, 'opacity': 0
317								  });
318
319	jQuery(responseContainer).animate({
320										  'height': newContainerHeight, 'opacity': 1
321									  });
322}
323
324function acymailingDisplayAjaxResponseMootools(message, type, formName){
325	try{
326		var toggleButton = document.id('acymailing_togglemodule_' + formName);
327	}catch(err){
328		var toggleButton = $('acymailing_togglemodule_' + formName);
329	}
330
331	if(toggleButton && toggleButton.hasClass('acyactive')){
332		var wrapper = toggleButton.getParent().getParent().getChildren()[1];
333		wrapper.setStyle('height', '');
334	}
335	;
336
337	try{
338		var responseContainer = document.getElements('#acymailing_fulldiv_' + formName + ' .responseContainer')[0];
339	}catch(err){
340		var responseContainer = $$('#acymailing_fulldiv_' + formName + ' .responseContainer')[0];
341	}
342
343	if(typeof responseContainer == 'undefined'){
344		responseContainer = new Element('div');
345		try{
346			var fulldiv = document.id('acymailing_fulldiv_' + formName);
347		}catch(err){
348			var fulldiv = $('acymailing_fulldiv_' + formName);
349		}
350		responseContainer.inject(fulldiv, 'top');
351		oldContainerHeight = '0px';
352	}else{
353		oldContainerHeight = responseContainer.getStyle('height');
354	}
355
356	responseContainer.className = 'responseContainer';
357
358	try{
359		var form = document.id(formName);
360	}catch(err){
361		var form = $(formName);
362	}
363	form.removeClass('acymailing_module_loading');
364
365	responseContainer.innerHTML = message;
366
367	if(type == 'success'){
368		responseContainer.addClass('acymailing_module_success');
369	}else{
370		responseContainer.addClass('acymailing_module_error');
371		form.setStyle("filter:", "alpha(opacity=100)");
372		form.setStyle("-moz-opacity", "1");
373		form.setStyle("-khtml-opacity", "1");
374		form.setStyle("opacity", "1");
375	}
376
377	newContainerHeight = responseContainer.getStyle('height');
378
379	if(typeof Ajax == 'function'){
380		if(type == 'success'){
381			var myEffect = new Fx.Styles(form, {duration: 500, transition: Fx.Transitions.linear});
382			myEffect.start({
383							   'height': [form.getSize().size.y, 0], 'opacity': [1, 0]
384						   });
385		}
386
387		try{
388			responseContainer.setStyle('height', oldContainerHeight + 'px');
389			responseContainer.setStyle("filter:", "alpha(opacity=0)");
390			responseContainer.setStyle("-moz-opacity", "0");
391			responseContainer.setStyle("-khtml-opacity", "0");
392			responseContainer.setStyle("opacity", "0");
393		}
394		catch(e){
395		}
396
397		var myEffect2 = new Fx.Styles(responseContainer, {duration: 500, transition: Fx.Transitions.linear});
398		myEffect2.start({
399							'height': [oldContainerHeight, newContainerHeight], 'opacity': [0, 1]
400						});
401
402	}else // Mootools >= 1.2
403	{
404		if(type == 'success'){
405			form.set('morph');
406			form.morph({
407						   'height': '0px', 'opacity': 0
408					   });
409
410			form.setStyles({
411							   'display': 'none'
412						   });
413		}
414
415		if(newContainerHeight != 'auto'){
416			responseContainer.setStyles({
417											'height': oldContainerHeight, 'opacity': 0
418										});
419
420			responseContainer.set('morph');
421			responseContainer.morph({
422										'height': newContainerHeight, 'opacity': 1
423									});
424		}
425	}
426}

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.