1var captchaRes = ''; 2var existCaptcha = false; 3var sibVerifyCallback = function(response){ 4 captchaRes = response; 5 if(captchaRes) 6 { 7 jQuery('.sib_signup_form').trigger('submit'); 8 } 9}; 10 11jQuery(document).ready(function(){ 12 // run MA script identify() when submit on any forms with email field 13 jQuery(document).on('submit', 'form', function(e){ 14 if(!jQuery(this).hasClass('sib_signup_form')) { 15 var email = jQuery(this).find('input[type=email]').val(); 16 var emailPattern = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/; 17 if (typeof sendinblue != 'undefined' && email != null && emailPattern.test(email)) { 18 var postData = jQuery(this).serializeObject(); 19 sendinblue.identify(email, postData); 20 } 21 } 22 else 23 { 24 e.preventDefault(); 25 var form = jQuery(this).closest('form'); 26 if(form.find('.g-recaptcha').length > 0) 27 { 28 existCaptcha = true; 29 } 30 /** 31 * For safari 32 * Not support required attribute 33 * Begin 34 */ 35 36 var required_fileds = []; 37 var err_index = 0; 38 jQuery.each(form.find('input[required="required"]'), function(){ 39 if(jQuery(this).val() == '') 40 { 41 required_fileds[index] = jQuery(this).attr('name'); 42 err_index++; 43 } 44 }); 45 if(err_index > 0) 46 { 47 form.find('.sib_msg_disp').html('<p class="sib-alert-message sib-alert-message-warning ">' + sibErrMsg.requiredField + '</p>').show(); 48 return; 49 } 50 err_index=0; 51 jQuery.each(form.find('input[type="email"]'), function(){ 52 var Email = /^[A-Z0-9._%+-]+@([A-Z0-9-]+\.)+[A-Z]{2,4}$/i; 53 if (!Email.test(jQuery(this).val())) 54 { 55 err_index++; 56 } 57 }); 58 if(err_index > 0) 59 { 60 form.find('.sib_msg_disp').html('<p class="sib-alert-message sib-alert-message-warning ">' + sibErrMsg.invalidMail + '</p>').show(); 61 return; 62 } 63 /** 64 * End 65 */ 66 67 /** 68 * check dateformat 69 */ 70 err_index = 0;
71 jQuery.each(form.find('.sib-date') , function(){ 72 var dateFormat = jQuery(this).data('format'); 73 var date = jQuery(this).val(); 74 var filter = ''; 75 if(dateFormat == 'dd/mm/yyyy') 76 { 77 filter = /^(((0[1-9]|[12]\d|3[01])\/(0[13578]|1[02])\/((19|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\/(0[13456789]|1[012])\/((19|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((19|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$/g; 78 } 79 80 if(dateFormat == 'dd-mm-yyyy') 81 { 82 filter = /^(((0[1-9]|[12]\d|3[01])-(0[13578]|1[02])-((19|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)-(0[13456789]|1[012])-((19|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])-02-((19|[2-9]\d)\d{2}))|(29-02-((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$/g; 83 } 84 else if(dateFormat == 'mm-dd-yyyy') 85 { 86 filter = /^(((0[13578]|1[02])-(0[1-9]|[12]\d|3[01])-((19|[2-9]\d)\d{2}))|((0[13456789]|1[012])-(0[1-9]|[12]\d|30)-((19|[2-9]\d)\d{2}))|(02-(0[1-9]|1\d|2[0-8])-((19|[2-9]\d)\d{2}))|(02-29-((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$/g; 87 } 88 89 if (filter == '' || !filter.test(date)) 90 { 91 err_index++; 92 } 93 }); 94 95 if(err_index > 0) 96 { 97 form.find('.sib_msg_disp').html('<p class="sib-alert-message sib-alert-message-warning ">' + sibErrMsg.invalidDateFormat + '</p>').show(); 98 return; 99 } 100 /** 101 * End 102 */ 103 if(existCaptcha == true && !captchaRes) 104 { 105 grecaptcha.execute(); 106 //return; 107 } 108 else { 109 form.find('.sib_loader').show(); 110 jQuery('.sib_msg_disp').hide(); 111 var postData = form.serializeArray(); 112 if(existCaptcha == true && captchaRes) 113 { 114 postData.push({"name": "g-recaptcha-response", "value": captchaRes}); 115 } 116 var formURL = form.attr("action"); 117 form.addClass('sib_processing'); 118 119 postData.push({ "name": "security", "value": sib_ajax_nonce}); 120 jQuery.ajax( 121 { 122 url: formURL, 123 type: "POST", 124 dataType: "json", 125 data: postData, 126 success: function (data, textStatus, jqXHR) { 127 var form = jQuery('.sib_processing'); 128 jQuery('.sib_loader').hide(); 129 if (data.redirect) { 130 window.location.href = data.redirect; 131 } else if (data.status === 'success' || data.status === 'update') { 132 var cdata = '<p class="sib-alert-message sib-alert-message-success ">' + data.msg.successMsg + '</p>'; 133 form.find('.sib_msg_disp').html(cdata).show(); 134 } else if (data.status === 'failure') { 135 var cdata = '<p class="sib-alert-message sib-alert-message-error ">' + data.msg.errorMsg + '</p>'; 136 form.find('.sib_msg_disp').html(cdata).show(); 137 } else if (data.status === 'already_exist') { 138 var cdata = '<p class="sib-alert-message sib-alert-message-warning ">' + data.msg.existMsg + '</p>'; 139 form.find('.sib_msg_disp').html(cdata).show(); 140 } else if (data.status === 'invalid') { 141 var cdata = '<p class="sib-alert-message sib-alert-message-error ">
141' + data.msg.invalidMsg + '</p>'; 142 form.find('.sib_msg_disp').html(cdata).show(); 143 } else if (data.status === 'gcaptchaEmpty') { 144 var cdata = '<p class="sib-alert-message sib-alert-message-error ">' + data.msg + '</p>'; 145 form.find('.sib_msg_disp').html(cdata).show(); 146 } else if (data.status === 'gcaptchaFail') { 147 var cdata = '<p class="sib-alert-message sib-alert-message-error ">' + data.msg + '</p>'; 148 form.find('.sib_msg_disp').html(cdata).show(); 149 } 150 // run MA script identify() when subscribe on SIB forms 151 if (typeof sendinblue != 'undefined') { 152 var email = form.find('input[name=email]').val(); 153 var postData = form.serializeObject(); 154 if (data.status === 'success' || data.status === 'update' || data.status === 'already_exist') { 155 sendinblue.identify(email, postData); 156 } 157 } 158 jQuery(".sib-alert-message").delay(2000).hide('slow'); 159 form.removeClass('sib_processing'); 160 }, 161 error: function (jqXHR, textStatus, errorThrown) { 162 form.find('.sib_msg_disp').html(jqXHR).show(); 163 } 164 }); 165 } 166 } 167 }); 168 169}); 170// get serialized data form subscribe form 171jQuery.fn.serializeObject = function() 172{ 173 var o = {}; 174 var a = this.serializeArray(); 175 jQuery.each(a, function() { 176 if(this.name == 'sib_form_action' || this.name == 'sib_form_id' || this.name == 'email') 177 return true; // continue 178 if (o[this.name] !== undefined) { 179 if (!o[this.name].push) { 180 o[this.name] = [o[this.name]]; 181 } 182 o[this.name].push(this.value || ''); 183 } else { 184 o[this.name] = this.value || ''; 185 } 186 }); 187 return o; 188}; 189 190
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.