1/** 2 * @package AcyMailing for Joomla! 3 * @version 4.5.0 4 * @author acyba.com 5 * @copyright (C) 2009-2013 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'] ) || nameField.value.replace(/ /g,"").length < 2)){ 24 if(typeof acymailing != 'undefined'){ alert(acymailing['NAME_MISSING']); } 25 nameField.className = nameField.className +' invalid'; 26 return false; 27 } 28 } 29 30 var emailField = varform.elements['user[email]']; 31 if(emailField){ 32 if(typeof acymailing == 'undefined' || emailField.value != acymailing['EMAILCAPTION']) emailField.value = emailField.value.replace(/ /g,""); 33 if(!emailField || (typeof acymailing != 'undefined' && emailField.value == acymailing['EMAILCAPTION']) || !filterEmail.test(emailField.value)){ 34 if(typeof acymailing != 'undefined'){ alert(acymailing['VALID_EMAIL']); } 35 emailField.className = emailField.className +' invalid'; 36 return false; 37 } 38 } 39 40 if(varform.elements['hiddenlists'].value.length < 1){ 41 var listschecked = false; 42 var alllists = varform.elements['subscription[]']; 43 if(alllists && (typeof alllists.value == 'undefined' || alllists.value.length == 0)){ 44 for(b=0;b<alllists.length;b++){ 45 if(alllists[b].checked) listschecked = true; 46 } 47 if(!listschecked){ alert(acymailing['NO_LIST_SELECTED']); return false;} 48 } 49 } 50 51 52 if(task != 'optout' && typeof acymailing != 'undefined' && typeof acymailing['reqFields'+formName] != 'undefined' && acymailing['reqFields'+formName].length > 0){ 53 54 for(var i =0;i<acymailing['reqFields'+formName].length;i++){ 55 elementName = 'user['+acymailing['reqFields'+formName][i]+']'; 56 elementToCheck = varform.elements[elementName]; 57 if(elementToCheck){ 58 var isValid = false; 59 if(typeof elementToCheck.value != 'undefined'){ 60 if(elementToCheck.value==' ' && typeof varform[elementName+'[]'] != 'undefined'){ 61 if(varform[elementName+'[]'].checked){ 62 isValid = true; 63 }else{ 64 for(var a=0; a < varform[elementName+'[]'].length; a++){ 65 if((varform[elementName+'[]'][a].checked || varform[elementName+'[]'][a].selected) && varform[elementName+'[]'][a].value.length>0) isValid = true; 66 } 67 } 68 }else{ 69 if(elementToCheck.value.replace(/ /g,"").length>0){ 70 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; 71 } 72 } 73 }else{ 74 for(var a=0; a < elementToCheck.length; a++){ 75 if(elementToCheck[a].checked && elementToCheck[a].value.length>0) isValid = true; 76 } 77 } 78 if(!isValid){ 79 elementToCheck.className = elementToCheck.className +' invalid'; 80 alert(acymailing['validFields'+formName][i]); 81 return false; 82 } 83 }else{ 84 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)){ 85 if(varform.elements[elementName+'[day]'] && varform.elements[elementName+'[day]'].value<1) varform.elements[elementName+'[day]'].className = varform.elements[elementName+'[day]'].className + ' invalid'; 86 if(varform.elements[elementName+'[month]'] && varform.elements[elementName+'[month]'].value<1) varform.elements[elementName+'[month]'].
86className = varform.elements[elementName+'[month]'].className + ' invalid'; 87 if(varform.elements[elementName+'[year]'] && varform.elements[elementName+'[year]'].value<1902) varform.elements[elementName+'[year]'].className = varform.elements[elementName+'[year]'].className + ' invalid'; 88 alert(acymailing['validFields'+formName][i]); 89 return false; 90 } 91 92 if((varform.elements[elementName+'[country]'] && varform.elements[elementName+'[country]'].value<1) || (varform.elements[elementName+'[num]'] && varform.elements[elementName+'[num]'].value<3)){ 93 if(varform.elements[elementName+'[country]'] && varform.elements[elementName+'[country]'].value<1) varform.elements[elementName+'[country]'].className = varform.elements[elementName+'[country]'].className + ' invalid'; 94 if(varform.elements[elementName+'[num]'] && varform.elements[elementName+'[num]'].value<3) varform.elements[elementName+'[num]'].className = varform.elements[elementName+'[num]'].className + ' invalid'; 95 alert(acymailing['validFields'+formName][i]); 96 return false; 97 } 98 } 99 } 100 } 101 102 if(task != 'optout' && typeof acymailing != 'undefined' && typeof acymailing['checkFields'+formName] != 'undefined' && acymailing['checkFields'+formName].length > 0){ 103 for(var i =0;i<acymailing['checkFields'+formName].length;i++){ 104 elementName = 'user['+acymailing['checkFields'+formName][i]+']'; 105 elementtypeToCheck = acymailing['checkFieldsType'+formName][i]; 106 elementToCheck = varform.elements[elementName].value; 107 switch(elementtypeToCheck){ 108 case 'number': 109 myregexp = new RegExp('^[0-9]*$'); 110 break; 111 case 'letter': 112 myregexp = new RegExp('^[A-Za-z\u00C0-\u017F ]*$'); 113 break; 114 case 'letnum': 115 myregexp = new RegExp('^[0-9a-zA-Z\u00C0-\u017F ]*$'); 116 break; 117 case 'regexp': 118 myregexp = new RegExp(acymailing['checkFieldsRegexp'+formName][i]); 119 break; 120 } 121 if(!myregexp.test(elementToCheck)){ 122 alert(acymailing['validCheckFields'+formName][i]); 123 return false; 124 } 125 } 126 } 127 128 var captchaField = varform.elements['acycaptcha']; 129 if(captchaField){ 130 if(captchaField.value.length<1){ 131 if(typeof acymailing != 'undefined'){ alert(acymailing['CAPTCHA_MISSING']); } 132 captchaField.className = captchaField.className +' invalid'; 133 return false; 134 } 135 } 136 137 if(task != 'optout'){ 138 var termsandconditions = varform.terms; 139 if(termsandconditions && !termsandconditions.checked){ 140 if(typeof acymailing != 'undefined'){ alert(acymailing['ACCEPT_TERMS']); } 141 termsandconditions.className = termsandconditions.className +' invalid'; 142 return false; 143 } 144 } 145 146 taskField = varform.task; 147 taskField.value = task; 148 149 if(!varform.elements['ajax'] || !varform.elements['ajax'].value || varform.elements['ajax'].value == '0'){ 150 varform.submit(); 151 return false; 152 } 153 154 try{ 155 var form = document.id(formName); 156 }catch(err){ 157 var form = $(formName); 158 } 159 data = form.toQueryString(); 160 161 if (typeof Ajax == 'function'){ 162 new Ajax(form.action, { 163 data: data, 164 method: 'post', 165 onRequest: function() 166 { 167 form.addClass('acymailing_module_loading'); 168 form.setStyle("filter:","alpha(opacity=50)"); 169 form.setStyle("-moz-opacity","0.5"); 170 form.setStyle("-khtml-opacity", "0.5"); 171 form.setStyle("opacity", "0.5"); 172 }, 173 onSuccess: function(response) 174 { 175 response = Json.evaluate(response); 176 acymailingDisplayAjaxResponse(unescape(response.message), response.type, formName); 177 }, 178 onFailure: function(){ 179 acymailingDisplayAjaxResponse('Ajax Request Failure', 'error', formName); 180 } 181 }).request(); 182 }else{ 183 new Request.JSON({ 184 url: document.id(formName).action, 185 data: data, 186 method: 'post', 187 onRequest: function() 188 { 189 form.addClass('acymailing_module_loading'); 190 form.setStyle("filter:","alpha(opacity=50)"); 191 form.setStyle("-moz-opacity","0.5"); 192 form.setStyle("-khtml-opacity", "0.5"); 193 form.setStyle("opacity", "0.5"); 194 }, 195 onSuccess: function(response) 196 { 197 acymailingDisplayAjaxResponse(unescape(response.message), response.type, formName); 198 }, 199 onFailure: function(){ 200 acymailingDisplayAjaxResponse('Ajax Request Failure', 'error', formName); 201 } 202 }).send(); 203 } 204 205 return false; 206} 207 208function acymailingDisplayAjaxResponse(message, type, formName) 209{ 210 try{ 211 var toggleButton = document.id('acymailing_togglemodule_'+formName); 212 }catch(err){ 213 var toggleButton = $('acymailing_togglemodule_'+formName); 214 } 215 216 if (toggleButton && toggleButton.hasClass('acyactive')) { 217 var wrapper = toggleButton.getParent().getParent().getChildren()[1]; 218 wrapper.setStyle('height', ''); 219 }; 220 221 try{ 222 var responseContainer = document.getElements('#acymailing_fulldiv_'+formName+' .responseContainer')[0]; 223 }catch(err){ 224 var responseContainer = $$('#acymailing_fulldiv_'+formName+' .responseContainer')[0]; 225 } 226 227 if (typeof responseContainer == 'undefined'){ 228 responseContainer = new Element('div'); 229 try{ 230 var fulldiv = document.id('acymailing_fulldiv_'+formName); 231 }catch(err){ 232 var fulldiv = $('acymailing_fulldiv_'+formName); 233 } 234 responseContainer.inject(fulldiv, 'top'); 235 oldContainerHeight = '0px'; 236 }else{ 237 oldContainerHeight = responseContainer.getStyle('height'); 238 } 239 240 responseContainer.className = 'responseContainer'; 241 242 try{ 243 var form = document.id(formName); 244 }catch(err){ 245 var form = $(formName); 246 } 247 form.removeClass('acymailing_module_loading'); 248 249 responseContainer.innerHTML = message; 250 251 if(type == 'success'){ 252 responseContainer.addClass('acymailing_module_success'); 253 }else{ 254 responseContainer.addClass('acymailing_module_error'); 255 form.setStyle("filter:","alpha(opacity=100)"); 256 form.setStyle("-moz-opacity","1"); 257 form.setStyle("-khtml-opacity", "1"); 258 form.setStyle("opacity", "1"); 259 } 260 261 newContainerHeight = responseContainer.getStyle('height'); 262 263 if (typeof Ajax == 'function') 264 { 265 if(type == 'success'){ 266 var myEffect = new Fx.Styles(form, {duration: 500, transition: Fx.Transitions.linear}); 267 myEffect.start({ 268 'height': [form.getSize().size.y, 0], 269 'opacity': [1, 0] 270 }); 271 } 272 273 try { 274 responseContainer.setStyle('height', oldContainerHeight+'px'); 275 responseContainer.setStyle("filter:","alpha(opacity=0)"); 276 responseContainer.setStyle("-moz-opacity","0"); 277 responseContainer.setStyle("-khtml-opacity", "0"); 278 responseContainer.setStyle("opacity", "0"); 279 } 280 catch (e) {} 281 282 var myEffect2 = new Fx.Styles(responseContainer, {duration: 500, transition: Fx.Transitions.linear}); 283 myEffect2.start({ 284 'height': [oldContainerHeight, newContainerHeight], 285 'opacity': [0, 1] 286 }); 287 288 } 289 else // Mootools >= 1.2 290 { 291 if(type == 'success'){ 292 form.set('morph'); 293 form.morph({ 294 'height': '0px', 295 'opacity': 0 296 }); 297 298 form.setStyles({ 299 'display': 'none' 300 }); 301 } 302 303 responseContainer.setStyles({ 304 'height': oldContainerHeight, 305 'opacity': 0 306 }); 307 308 responseContainer.set('morph'); 309 responseContainer.morph({ 310 'height': newContainerHeight, 311 'opacity': 1 312 }); 313 314 } 315}
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.