1var captchaRes = ''; 2var sibErrMsg; 3var gCaptchaSibWidget; 4var ajax_sib_front_object; 5var sibVerifyCallback = function (response) { 6 captchaRes = response; 7 var formIdInvisible = sessionStorage.getItem("formIdRecapcha"); 8 if (captchaRes) { 9 var validationErr = 0; 10 jQuery.each(jQuery(formIdInvisible).find('input[required=required]'), function () { 11 if (jQuery(this).val().trim() == '' || (jQuery(this).attr('type') == "checkbox" && jQuery(this).prop("checked") == false)) { 12 validationErr++; 13 var form = jQuery(this).closest('form'); 14 form.find('.sib_msg_disp').html('<p class="sib-alert-message sib-alert-message-warning ">' + sibErrMsg.requiredField + '</p>').show(); 15 return; 16 } 17 }); 18 } 19 if (validationErr == 0) { 20 jQuery(formIdInvisible).trigger('submit'); 21 } 22}; 23 24jQuery(document).ready(function(){ 25 jQuery('.sib_signup_form').find('input[required=required]').on("invalid", function () { 26 if(jQuery(this).val().trim() == '') 27 { 28 var alert_msg = jQuery(this).closest('form').find('input[name="sib_form_alert_notice"]').val(); 29 this.setCustomValidity(alert_msg); 30 } 31 else { 32 this.setCustomValidity(''); 33 } 34 }); 35 // run MA script identify() when submit on any forms with email field 36 jQuery(document).on('submit', 'form', function(e){ 37 var invalidEmail = jQuery(this).closest('form').find('input[name="sib_form_invalid_email_notice"]').val(); 38 var requiredField = jQuery(this).closest('form').find('input[name="sib_form_alert_notice"]').val(); 39 if (invalidEmail !== undefined) { 40 sibErrMsg.invalidMail = invalidEmail; 41 } 42 if (requiredField !== undefined) { 43 sibErrMsg.requiredField = requiredField; 44 } 45 46 if(!jQuery(this).hasClass('sib_signup_form')) { 47 var email = jQuery(this).find('input[type=email]').val(); 48 var emailPattern = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/; 49 if (typeof sendinblue != 'undefined' && email != null && emailPattern.test(email)) { 50 var postData = jQuery('input[type!=password]',this).serializeObject(); 51 sendinblue.identify(email, postData); 52 } 53 } 54 else 55 { 56 e.preventDefault(); 57 var form = jQuery(this).closest('form'); 58 // for sms field 59 jQuery.each(form.find('.sib-sms'), function () { 60 var sms = jQuery(this).val(); 61 var sms_prefix = jQuery(this).closest('.sib-sms-field').find('input[name="sib_SMS_prefix"]').val(); 62 if ( sms == sms_prefix && !jQuery(this).prop('required')) { 63 jQuery(this).val(''); 64 } 65 }); 66 67 /** 68 * For safari 69 * Not support required attribute 70 */ 71 72 var required_fileds = []; 73 var err_index = 0; 74 75 var multi_lists = form.find(jQuery('.sib-multi-lists')); 76 if( multi_lists != undefined && multi_lists.data('require') == 'required' ) 77 { 78 if ( multi_lists.find('input:checked').length == 0 ) 79 { 80 err_index++; 81 multi_lists.addClass('sib_error'); 82 } 83 } 84 if(err_index > 0) 85 { 86 form.find('.sib_msg_disp').html('<p class="sib-alert-message sib-alert-message-warning ">' + sibErrMsg.requiredField + '</p>').show(); 87 return; 88 } 89 err_index=0; 90 jQuery.each(form.find('input[type="email"]'), function(){ 91 var Email = /^([a-zA-Z0-9_.+-])+@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/i; 92 if (!Email.test(jQuery(this).val())) 93 { 94 err_index++; 95 } 96 }); 97 if(err_index > 0) 98 { 99 form.find('.sib_msg_disp').html('<p class="sib-alert-message sib-alert-message-warning ">
99' + sibErrMsg.invalidMail + '</p>').show(); 100 return; 101 } 102 103 // Check sms validation 104 err_index = 0; 105 jQuery.each(form.find('.sib-sms'), function () { 106 var sms = jQuery(this).val(); 107 if ( is_valid_sms(sms) == false && sms != '' ) { 108 err_index ++; 109 } 110 }); 111 if(err_index > 0) 112 { 113 form.find('.sib_msg_disp').html('<p class="sib-alert-message sib-alert-message-warning ">' + sibErrMsg.invalidSMSFormat + '</p>').show(); 114 return; 115 } 116 form.find('.sib_loader').show(); 117 jQuery('.sib_msg_disp').hide(); 118 var postData = form.serializeArray(); 119 if( captchaRes != '' ) 120 { 121 postData.push({"name": "g-recaptcha-response", "value": captchaRes}); 122 } 123 captchaRes = ''; 124 if( jQuery('.sib-multi-lists').length ) 125 { 126 var interesting_lists = []; 127 jQuery('.sib-interesting-lists').each(function () { 128 postData.push({"name":"interestingLists[]", "value": jQuery(this).val()}) 129 }); 130 } 131 var formURL = form.attr("action"); 132 form.addClass('sib_processing'); 133 134 postData.push({ "name": "security", "value": ajax_sib_front_object.ajax_nonce }); 135 jQuery.ajax({ 136 url: formURL, 137 type: "POST", 138 dataType: "json", 139 data: postData, 140 success: function (data, textStatus, jqXHR) { 141 jQuery('.sib_loader').hide(); 142 if( jQuery('.sib-multi-lists').length ) 143 { 144 jQuery('.sib-multi-lists').removeClass('sib_error'); 145 } 146 if (data.status === 'success' || data.status === 'update') { 147 var cdata = '<p class="sib-alert-message sib-alert-message-success ">' + data.msg.successMsg + '</p>'; 148 form.find('.sib_msg_disp').html(cdata).show(); 149 } else if (data.status === 'failure') { 150 var cdata = '<p class="sib-alert-message sib-alert-message-error ">' + data.msg.errorMsg + '</p>'; 151 form.find('.sib_msg_disp').html(cdata).show(); 152 } else if (data.status === 'already_exist') { 153 var cdata = '<p class="sib-alert-message sib-alert-message-warning ">' + data.msg.existMsg + '</p>'; 154 form.find('.sib_msg_disp').html(cdata).show(); 155 } else if (data.status === 'invalid') { 156 var cdata = '<p class="sib-alert-message sib-alert-message-error ">' + data.msg.invalidMsg + '</p>'; 157 form.find('.sib_msg_disp').html(cdata).show(); 158 } else if (data.status === 'gcaptchaEmpty') { 159 var cdata = '<p class="sib-alert-message sib-alert-message-error ">' + data.msg + '</p>'; 160 form.find('.sib_msg_disp').html(cdata).show(); 161 } else if (data.status === 'gcaptchaFail') { 162 var cdata = '<p class="sib-alert-message sib-alert-message-error ">' + data.msg + '</p>'; 163 form.find('.sib_msg_disp').html(cdata).show(); 164 } 165 form[0].reset(); 166 if (data.redirect && (data.status === 'success' || data.status === 'update')) { 167 window.location.href = data.redirect; 168 } 169 var previous_code = form.find('.sib-cflags').data('dial-code'); 170 if ( previous_code ) 171 { 172 form.find('.sib-sms').val('+' + previous_code); 173 form.find('input[name="sib_SMS_prefix"]').val('+' + previous_code); 174 } 175 176 // run MA script identify() when subscribe on SIB forms 177 if (typeof sendinblue != 'undefined') { 178 var email = form.find('input[name=email]').val(); 179 var postData = form.serializeObject(); 180 if (data.status === 'success' || data.status === 'update' || data.status === 'already_exist') { 181 sendinblue.identify(email, postData); 182 } 183 } 184 jQuery(".sib-alert-message").delay(2000).hide('slow'); 185 form.removeClass('sib_processing'); 186 if (typeof grecaptcha != 'undefined') 187 { 188 grecaptcha.reset(gCaptchaSibWidget); 189 } 190 }, 191 error: function (jqXHR, textStatus, errorThrown) { 192 form.find('.sib_msg_disp').html(jqXHR).show(); 193 if (typeof grecaptcha != 'undefined') 194 { 195 grecaptcha.reset(gCaptchaSibWidget); 196 } 197 } 198 }); 199 } 200 }); 201 jQuery('.sib-country-block').on('click', function () { 202 jQuery('.sib-country-list').toggle(); 203 }); 204 if (jQuery('.sib-country-list').length > 0) 205 { 206 jQuery('.sib-country-list').ready( function () { 207 var data = { 208 action : 'sib_get_country_prefix', 209 security: ajax_sib_front_object.ajax_nonce, 210 }; 211 jQuery.post( ajax_sib_front_object.ajax_url, data, function (respond) { 212 jQuery('.sib-country-list').html(respond); 213 }); 214 }); 215 } 216 217 jQuery('body').on('click', function(e){ 218 if ( jQuery('.sib-sms-field .sib-country-list').length > 0 && !jQuery('.sib-sms-field .sib-country-list').is(e.target) && jQuery('.sib-sms-field .sib-country-list').has(e.target).length === 0 && jQuery('.sib-sms-field .sib-country-block').has(e.target).length === 0 ) { 219 jQuery('.sib-sms-field .sib-country-list').hide(); 220 } 221 }); 222 223 jQuery('.sib-country-list').on( 'click', 'li' , function () { 224 var country_code = jQuery(this).data('country-code').toLowerCase();
225 var dial_code = jQuery(this).data('dial-code'); 226 jQuery(this).closest('.sib-sms-field').find('.sib-sms').val('+' + dial_code ); 227 jQuery(this).closest('.sib-sms-field').find('input[name="sib_SMS_prefix"]').val('+' + dial_code ); 228 jQuery(this).closest('.sib-sms-field').find('.sib-cflags').css('background-image', 'url(' + ajax_sib_front_object.flag_url + country_code + '.png)'); 229 jQuery(this).closest('.sib-sms-field').find('.sib-cflags').data('dial-code', dial_code); 230 jQuery(this).closest('.sib-country-list').hide(); 231 }); 232 jQuery(".sib-sms").on('keypress', function (event){ 233 validateInteger(event, 'sms'); 234 }); 235 236 // allow to input 0-9 and - only for date field 237 jQuery(".sib-date").on('keypress', function(event) { 238 validateInteger(event, 'date'); 239 }); 240 function is_valid_sms( sms ) { 241 sms = sms.replace(/\b(0(?!\b))+/g, ""); 242 243 var tempSms = sms.replace(/( |\(|\)|\.|\-)/g, ''); 244 245 if (tempSms.length > 19 || tempSms.length < 6 || tempSms.charAt(0) != '+'){ 246 return false; 247 } 248 return true; 249 } 250 function validateInteger(evt,type) { 251 var theEvent = evt || window.event; 252 var key = theEvent.charCode || theEvent.which; 253 254 key = String.fromCharCode( key ); 255 // 0-9, +/-, space, brackets 256 var regex = /[ +0-9()-]/; 257 var smsLength = 0; 258 if( type == 'date' ) { 259 regex = /[ 0-9-/]/; 260 } 261 if( !regex.test(key)) { 262 theEvent.returnValue = false; 263 key = theEvent.keyCode; 264 // ignore input for del,tab, back, left, right, home amd end 265 if(theEvent.preventDefault && key != 9 && key != 8 ) theEvent.preventDefault(); 266 } 267 } 268 269 270}); 271// get serialized data form subscribe form 272jQuery.fn.serializeObject = function() 273{ 274 var o = {}; 275 var a = this.serializeArray(); 276 jQuery.each(a, function() { 277 if(this.name == 'sib_form_action' || this.name == 'sib_form_id' || this.name == 'email') 278 return true; // continue 279 if (o[this.name] !== undefined) { 280 if (!o[this.name].push) { 281 o[this.name] = [o[this.name]]; 282 } 283 o[this.name].push(this.value || ''); 284 } else { 285 o[this.name] = this.value || ''; 286 } 287 }); 288 return o; 289}; 290// get form id 291jQuery(document).ready(function () { 292 jQuery(".sib-default-btn").on("click", function () { 293 var row = jQuery(this).closest(".sib_signup_form"); 294 sessionStorage.setItem("formIdRecapcha", "#" + jQuery(row).attr('id')); 295 }) 296})
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.