PageSourceSearch

https://specialtyphotonics.com/napas.store/wp-content/plugins/mailin/js/mailin-front_ver-1683376931.js

js specialtyphotonics.com collected 2026-09-26 20:09:32 UTC 12,535 bytes, 284 lines download raw bytes

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

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.