1/**� 2 * @package AcyMailing for Joomla!� 3 * @version 5.8.0� 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]'].
99className = 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 var form = document.getElementById(formName);� 196� 197 var formData = new FormData(form);� 198 form.className += ' acymailing_module_loading';� 199 form.style.filter = "alpha(opacity=50)";� 200 form.style.opacity = "0.5";� 201� 202 var xhr = new XMLHttpRequest();� 203 xhr.open('POST', form.action);� 204 xhr.onload = function(){� 205 var message = 'Ajax Request Failure';� 206 var type = 'error';� 207� 208 if (xhr.status === 200){� 209 var response = JSON.parse(xhr.responseText);� 210 message = response.message;� 211 type = response.type;� 212 }� 213 acymailingDisplayAjaxResponse(decodeURIComponent(message), type, formName);� 214 };� 215 xhr.send(formData);� 216� 217 return false;� 218}� 219� 220function acymailingDisplayAjaxResponse(message, type, formName){� 221 var toggleButton = document.getElementById('acymailing_togglemodule_' + formName);� 222� 223 if(toggleButton && toggleButton.className.indexOf('acyactive') > -1){� 224 var wrapper = toggleButton.parentElement.parentElement.childNodes[1];� 225 wrapper.style.height = '';� 226 }� 227� 228 var responseContainer = document.querySelectorAll('#acymailing_fulldiv_' + formName + ' .responseContainer')[0];� 229� 230 if(typeof responseContainer == 'undefined'){� 231 responseContainer = document.createElement('div');� 232 var fulldiv = document.getElementById('acymailing_fulldiv_' + formName);� 233� 234 if(fulldiv.firstChild){� 235 fulldiv.insertBefore(responseContainer, fulldiv.firstChild);� 236 }else{� 237 fulldiv.appendChild(responseContainer);� 238 }� 239� 240 oldContainerHeight = '0px';� 241 }else{� 242 oldContainerHeight = responseContainer.style.height;� 243 }� 244� 245 responseContainer.className = 'responseContainer';� 246� 247 var form = document.getElementById(formName);� 248� 249 var elclass = form.className;� 250 var rmclass = 'acymailing_module_loading';� 251 var res = elclass.replace(' '+rmclass, '', elclass);� 252 if(res == elclass) res = elclass.replace(rmclass+' ', '', elclass);� 253 if(res == elclass) res = elclass.replace(rmclass, '', elclass);� 254 form.className = res;� 255� 256 responseContainer.innerHTML = message;� 257� 258 if(type == 'success'){� 259 responseContainer.className += ' acymailing_module_success';� 260 }else{� 261 responseContainer.className += ' acymailing_module_error';� 262 form.style.opacity = "1";� 263 }� 264� 265 newContainerHeight = responseContainer.style.height;� 266� 267 form.style.display = 'none';� 268 responseContainer.className += ' slide_open';� 269}� 270�
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.