PageSourceSearch

https://stjustin.co.uk/wp-content/plugins/mailin/js/mailin-front.js?ver=1782734604

js stjustin.co.uk collected 2026-09-26 21:02:14 UTC 14,474 bytes, 324 lines download raw bytes

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

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.