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