PageSourceSearch

https://www.mentedigitale.org/wp-content/plugins/accesspress-anonymous-post-pro/js/frontend.js?ver=3.2.6

js mentedigitale.org collected 2026-10-02 04:13:58 UTC 30,160 bytes, 625 lines download raw bytes

1function check_form_submittable(form_id)
2{
3    if (jQuery('#' + form_id + ' .ap-captcha-type').val() == 'human')
4    {
5        var error_message = jQuery('#' + form_id + ' #ap-captcha-result').attr('data-required-msg');
6        if (error_message == '')
7        {
8            error_message = ap_captcha_error_message;
9        }
10        var first_num = jQuery('#' + form_id + ' .ap-captcha-first-num').html();
11        var second_num = jQuery('#' + form_id + ' .ap-captcha-second-num').html();
12        var result = parseInt(first_num) + parseInt(second_num);
13        var user_result = jQuery('#' + form_id + ' #ap-captcha-result').val();
14        if (result == user_result)
15        {
16            jQuery('#' + form_id + ' .ap-front-loader').show();
17            jQuery('#' + form_id + ' input[type="submit"]').hide();
18            return true;
19        } else
20        {
21            jQuery('#' + form_id + ' .ap-captcha-error-msg').html(error_message);
22            return false;
23        }
24        return false;
25    } else if (jQuery('#' + form_id + ' .ap-captcha-type').val() == 'google')
26    {
27        if (jQuery('#' + form_id + ' .ap-captcha-version').val() == 'v1') {
28            challengeField = jQuery("input#recaptcha_challenge_field").val();
29            responseField = jQuery("input#recaptcha_response_field").val();
30            var html = jQuery.ajax({
31                type: "POST",
32                url: ap_fileuploader.upload_url,
33                data: "action=ap_validate_recaptcha&recaptcha_challenge_field=" + challengeField + "&recaptcha_response_field=" + responseField + '&_wpnonce=' + ap_fileuploader.nonce + '&form_id=' + form_id,
34                async: false,
35                beforeSend: function (xhr) {
36                    jQuery('#' + form_id + ' .ap-front-loader').show();
37                }
38            }).responseText;
39            if (html == "success") {
40                jQuery('#' + form_id + ' .ap-front-loader').show();
41                jQuery('#' + form_id + ' input[type="submit"]').hide();
42
43                //return true;
44                //Add the Action to the Form
45                //Indicate a Successful Captcha
46                //jQuery("#captcha-status").html("<p>Success! Thanks you may now proceed.</p>");
47            } else {
48                jQuery('#' + form_id + ' .ap-front-loader').hide();
49
50
51                var error_message = jQuery('#' + form_id + ' .ap-captcha-error').attr('data-error-message');
52                if (error_message == '')
53                {
54                    error_message = ap_captcha_error_message;
55                }
56                jQuery('#' + form_id + ' .ap-captcha-error').html(error_message);
57                Recaptcha.reload();
58                return false;
59            }
60        } else {
61            var captcha_val = jQuery('#g-recaptcha-response').val();
62            if (captcha_val != '') {
63                jQuery('#' + form_id + ' .ap-front-loader').show();
64                var response = jQuery.ajax({
65                    type: 'POST',
66                    url: ap_fileuploader.upload_url, // The file we're making the request to
67                    data: 'captchaResponse=' + captcha_val + '&action=ap_validate_recaptcha&form_id=' + form_id + '&_wpnonce=' + ap_fileuploader.nonce,
68                    async: false,
69                    beforeSend: function (xhr) {
70                        //alert('test');
71                        jQuery('#' + form_id + ' .ap-front-loader').show();
72                    }
73                }).responseText;
74                if (response != 'SPAM') {
75                    jQuery('#' + form_id + ' .ap-front-loader').show();
76                    jQuery('#' + form_id + ' input[type="submit"]').hide();
77
78                    return true;
79                } else {
80                    jQuery('#' + form_id + ' .ap-front-loader').hide();
81                    var error_message = jQuery('#' + form_id + ' .ap-captcha-error').attr('data-error-message');
82                    if (error_message == '')
83                    {
84                        error_message = ap_captcha_error_message;
85                    }
86                    jQuery('#' + form_id + ' .ap-captcha-error').html(error_message);
87                    return false;
88                }
89
90
91            } else {
92                var error_message = jQuery('#' + form_id + ' .ap-captcha-error').attr('data-error-message');
93                if (error_message == '')
94                {
95                    error_message = ap_captcha_error_message;
96                }
97                jQuery('#' + form_id + ' .ap-captcha-error').html(error_message);
98                return false;
99            }
100
101
102        }
103
104
105
106    } else
107    {
108        jQuery('#' + form_id + ' .ap-front-loader').show();
109        jQuery('#' + form_id + ' input[type="submit"]').hide();
110        return true;
111    }
112
113}
114function validateEmail($email) {
115    var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
116    if (!emailReg.test($email)) {
117        return false;
118    } else {
119        return true;
120    }
121}
122
123(function ($) {
124    $(function () {
125
126
127        //All js related for frontend
128
129        //Checking  required fields
130
131        $('.ap-pro-front-form .ap-pro-submit-btn').click(function () {
132            var error_flag = 0;
133            var id = $(this).closest('.ap-pro-front-form').attr('id');
134            if ($('#' + id + ' .ap-form-wp-editor').length > 0)
135            {
136                tinyMCE.triggerSave();
137                if ($('#' + id + ' .ap-character-limit-flag').length > 0 && $('#' + id + ' .ap-character-limit-flag').val() == 1) {
138
139                    error_flag = 1;
140                }
141
142            }
143            if ($('#' + id + ' .ap-form-content-editor').length > 0)
144            {
145                if ($.trim($('#' + id + ' .ap-form-content-editor').val()) == '' && $('#' + id + ' .ap-form-content-error').attr('data-required') == 'required')
146                {
147                    error_flag = 1;
148                    var error_msg = $('#' + id + ' .ap-form-content-error').attr('data-required-msg');
149                    if (error_msg == '')
150                    {
151                        error_msg = ap_form_required_message;
152                    }
153                    $('#' + id + ' .ap-form-content-error').html(error_msg);
154                }
155            }
156
157
158            $('#' + id + ' input').each(function () {
159                if ($(this).hasClass('ap-required-field') && $.trim($(this).val()) == '')
160                {
161                    error_flag = 1;
162                    var error_msg = $(this).attr('data-required-msg');
163                    if (error_msg == '')
164                    {
165                        error_msg = ap_form_required_message;
166                    }
167                    $(this).closest('.ap-pro-form-field-wrapper').find('.ap-form-error').html(error_msg);
168                }
169                if ($(this).hasClass('ap-email-field') && $.trim($(this).val() != ''))
170                {
171                    if (!validateEmail($(this).val()))
172                    {
173                        error_flag = 1;
174                        var error_msg = $(this).attr('data-required-msg');
175                        if (error_msg == '')
176                        {
177                            error_msg = ap_form_required_message;
178                        }
179                        $(this).closest('.ap-pro-form-field-wrapper').find('.ap-form-error').html(error_msg);
180                    }
181
182                }
183                if ($(this).attr('name') == 'ap_form_post_image' && $(this).val() != '') {
184                    var file = $(this).val();
185                    var file_array = file.split('\\');
186                    var filename = file_array.pop();
187                    var filename_array = filename.split('.');
188                    var extension = filename_array.pop();
189                    extension = extension.toLowerCase();
190                    if (!(extension == 'jpg' || extension == 'jpeg' || extension == 'png' || extension == 'gif')) {
191                        error_flag = 1;
192                        $(this).closest('.ap-pro-form-field-wrapper').find('.ap-form-error').html('Unsupported filetype');
193                    }
194                }
195            });
196
197            $('#' + id + ' textarea.ap-pro-textarea').each(function () {
198                if ($(this).hasClass('ap-required-field') && $.trim($(this).val()) == '')
199                {
200                    error_msg = $(this).attr('data-required-msg');
201                    if (error_msg == '')
202                    {
203                        error_msg = ap_form_required_message;
204                    }
205                    $(this).closest('.ap-pro-form-field-wrapper').find('.ap-form-error').html(error_msg);
206                }
207            });
208            $('#' + id + ' select').each(function () {
209
210                if ($(this).hasClass('ap-required-field') && $.trim($(this).val()) == '')
211                {
212                    error_flag = 1;
213                    error_msg = $(this).attr('data-required-msg');
214                    if (error_msg == '')
215                    {
216                        error_msg = ap_form_required_message;
217                    }
218                    $(this).closest('.ap-pro-form-field-wrapper').find('.ap-form-error').html(error_msg);
219                }
220            });
221
222            $('#' + id + ' .ap-radio-wrap').each(function () {
223                if ($(this).hasClass('ap-required-field') && $(this).find('input[type="radio"]:checked').length == 0)
224                {
225                    error_flag = 1;
226                    error_msg = $(this).attr('data-required-msg');
227                    if (error_msg == '')
228                    {
229                        error_msg = ap_form_required_message;
230                    }
231                    $(this).closest('.ap-pro-form-field-wrapper').find('.ap-form-error').html(error_msg);
232                }
233
234            });
235            $('#' + id + ' .ap-checkbox-wrap').each(function () {
236                if ($(this).hasClass('ap-required-field') && $(this).find('input[type="checkbox"]:checked').length == 0)
237                {
238                    error_flag = 1;
239                    error_msg = $(this).attr('data-required-msg');
240                    if (error_msg == '')
241                    {
242                        error_msg = ap_form_required_message;
243                    }
244                    $(this).closest('.ap-pro-form-field-wrapper').find('.ap-form-error').html(error_msg);
245                }
246
247            });
248            if ($('#' + id + ' .ap-agreement-checkbox').length > 0 && !$('#' + id + ' .ap-agreement-checkbox').is(":checked"))
249            {
250                error_flag = 1;
251                var error_msg = $('#' + id + ' .ap-agreement-checkbox').attr('data-required-msg');
252                if (error_msg == '')
253                {
254                    error_msg = ap_form_required_message;
255                }
256                $('#' + id + ' .ap-agreement-error').html(error_msg);
257            }
258
259            if (error_flag == 1)
260            {
261                $('#' + id + ' .ap-form-error').each(function () {
262                    var selector = $(this);
263                    if (selector.html() != '') {
264                        $('html,body').animate({
265                            scrollTop: selector.closest('.ap-pro-form-field-wrapper').offset().top - 100},
266                                'slow');
267                        return false;
268                    }
269                    ;
270                });
271
272
273
274                return false;
275            } else
276            {
277                return true;
278            }
279
280        });
281        $('.ap-pro-front-form input[type="text"]').keyup(function () {
282            $(this).closest('.ap-pro-form-field-wrapper').find('.ap-form-error').html('');
283        });
284
285        $('.ap-pro-front-form textarea.ap-pro-textarea').keyup(function () {
286            $(this).closest('.ap-pro-form-field-wrapper').find('.ap-form-error').html('');
287        });
288        $('.ap-form-content-editor').keyup(function () {
289            $('.ap-form-content-error').html('');
290        });
291
292        $('.ap-pro-front-form select,.ap-pro-front-form input[type="checkbox"]').change(function () {
293            $(this).closest('.ap-pro-form-field-wrapper').find('.ap-form-error').html('');
294        });
295        $('.ap-form-content-editor').change(function () {
296            $('.ap-form-content-error').html('');
297        });
298
299        $('.ap-pro-datepicker').datepicker();
300        $('.ap-pro-datepicker').each(function () {
301            var date_format = $(this).data('date-format');
302            date_format = (date_format) ? date_format : 'yy-mm-dd';
303            $(this).datepicker("option", "dateFormat", date_format);
304        });
305
306        $('.ap-agreement-checkbox').click(function () {
307            if ($(this).is(':checked'))
308            {
309                $(this).closest('.ap-form-agreement-wrap').find('.ap-agreement-error').html('');
310            } else
311            {
312                var error_msg = $(this).attr('data-required-msg');
313                if (error_msg == '')
314                {
315                    error_msg = ap_form_required_message;
316                }
317                $(this).closest('.ap-form-agreement-wrap').find('.ap-agreement-error').html(error_msg);
318            }
319
320        });
321
322        /*----------File Uploader-----------------*/
323        var uploader_counter = 0;
324        var uploader = {};
325        $('.ap-file-uploader').each(function () {
326            var $selector = $(this);
327          //  uploader_counter++;
328            var attr_element_id = $(this).attr('id');
329            var arr_element_id = attr_element_id.split('-');
330            var element_id = arr_element_id[3];
331            uploader_counter = element_id;
332            var extensions = $(this).attr('data-extensions');
333            var extensions_array = extensions.split('|');
334            var size = $(this).attr('data-size');
335            var multiple_upload = $(this).attr('data-multiple');
336            var limit_flag = 0;
337            var upload_limit = $(this).attr('data-upload-limit');
338            var selector = $(this);
339            var uploader_label = $(this).data('uploader-label');
340            var upload_limit_message = $(this).data('upload-limit-message');
341            var media_attachment = $(this).data('media-attachment');
342            var custom_folder = $(this).data('cf');
343            var upload_nonce = $('#ap_form_nonce').val();
344            uploader['uploader' + uploader_counter] = new qq.FileUploader({
345                element: document.getElementById('ap-file-uploader-' + uploader_counter),
346                // path to server-side upload script
347                // action: '/server/upload'
348                action: ap_fileuploader.upload_url,
349                params: {
350                    action: 'ap_file_upload_action',
351                    file_uploader_nonce: upload_nonce,
352                    allowedExtensions: extensions_array,
353                    sizeLimit: size,
354                    element_id: element_id,
355                    custom_folder: custom_folder
356
357                },
358                allowedExtensions: extensions_array,
359                sizeLimit: size, // 100mb
360                minSizeLimit: 500,
361                uploadButtonText: uploader_label,
362                onSubmit: function (id, fileName) {
363                    if (multiple_upload == true && upload_limit != -1) {
364                        var limit_counter = selector.parent().find('.ap-pro-upload-counter').val();
365                        limit_counter++;
366                        selector.parent().find('.ap-pro-upload-counter').val(limit_counter);
367                        //limit_counter = $('#ap-pro-file-preview'+id+' .ap-pro-prev-holder').length;
368                        //alert(limit_counter);
369                        if (limit_counter > upload_limit) {
370                            if (limit_flag == 0) {
371                                upload_limit_message = (upload_limit_message != '') ? upload_limit_message : 'Maximum number of files allowed is ' + upload_limit;
372                                selector.parent().find('.ap-upload-limit-error').html(upload_limit_message);
373
374                                //console.log(id);
375                                //alert('Maximum number of files allowed is '+upload_limit);
376                                limit_flag = 1;
377                            }
378                            selector.parent().find('.ap-pro-upload-counter').val(upload_limit);
379                            return false;
380                        }
381                    }
382                },
383                onProgress: function (id, fileName, loaded, total) {
384                },
385                onComplete: function (id, fileName, responseJSON) {
386                    //alert(id);
387
388                    //console.log(responseJSON);
389                    if (responseJSON.success)
390                    {
391                        //tinyMCE.triggerSave();
392                        $('#ap-pro-file-url-' + element_id).closest('.ap-pro-form-field-wrapper').find('.ap-form-error').html('');
393                        var extension_array = fileName.split('.');
394                        var extension = extension_array.pop();
395                        if (extension == 'jpg' || extension == 'jpeg' || extension == 'png' || extension == 'gif' || extension == 'JPG' || extension == 'JPEG' || extension == 'PNG' || extension == 'GIF') {
396
397                            var preview_html = '<div class="ap-pro-prev-holder"><span class="ap-prev-name">' + fileName + '</span><img src="' + responseJSON.url + '" /><span class="ap-pro-preview-remove"  data-url="' + responseJSON.url + '" data-id="' + element_id + '" data-attachment-id="' + responseJSON.attachment_id + '" data-attachment-code="' + responseJSON.attachment_code + '">x</span></div>';
398                        } else {
399
400                            var preview_html = '<div class="ap-pro-prev-holder"><span class="ap-prev-name">' + fileName + '</span><span class="ap-pro-preview-remove"  data-url="' + responseJSON.url + '" data-id="' + element_id + '" data-attachment-id="' + responseJSON.attachment_id + '" data-attachment-code="' + responseJSON.attachment_code + '">x</span></div>';
401                        }
402                        if (multiple_upload)
403                        {
404                            var url = responseJSON.url;
405                            var previous_url = $('#ap-pro-file-url-' + element_id).val();
406                            if (previous_url == '')
407                            {
408                                $('#ap-pro-file-url-' + element_id).val(url);
409                            } else
410                            {
411                                $('#ap-pro-file-url-' + element_id).val(previous_url + ',' + url);
412                            }
413                            $('#ap-pro-file-preview' + element_id).append(preview_html);
414                        } else
415                        {
416                            if ($selector.hasClass('ap-post-image-uploader')) {
417                                $('#ap-pro-file-url-' + element_id).val(responseJSON.attachment_id);
418                            } else {
419
420                                $('#ap-pro-file-url-' + element_id).val(responseJSON.url);
421                            }
422                            $('#ap-pro-file-preview' + element_id).html(preview_html);
423
424                        }
425
426                        if (media_attachment == 1) {
427                            var attachment_ids = selector.closest('form').find('.ap-attachment-ids').val();
428                            if (attachment_ids != '') {
429                                var attachment_ids_array = attachment_ids.split(',');
430                                attachment_ids_array.push(responseJSON.attachment_id);
431                                var attachment_ids = attachment_ids_array.join();
432                                selector.closest('form').find('.ap-attachment-ids').val(attachment_ids);
433                            } else {
434                                selector.closest('form').find('.ap-attachment-ids').val(responseJSON.attachment_id);
435                            }
436                        }
437                    }
438
439                },
440                onCancel: function (id, fileName) {
441                },
442                onError: function (id, fileName, xhr) {
443                },
444                messages: {
445                    typeError: " {file}
445 has invalid extension. Only {extensions} are allowed.",
446                    sizeError: "{file} is too large, maximum file size is {sizeLimit}.",
447                    minSizeError: "{file} is too small, minimum file size is {minSizeLimit}.",
448                    emptyError: "{file} is empty, please select files again without it.",
449                    onLeave: "The files are being uploaded, if you leave now the upload will be cancelled."
450                },
451                showMessage: function (message) {
452                    alert(message);
453                },
454                multiple: multiple_upload
455            });
456        });
457        if ($('.ap-content-file-uploader').length > 0)
458        {
459
460            $('.ap-content-file-uploader').each(function () {
461                var id = $(this).attr('id');
462                var link_source_url = $(this).data('link-source-url');
463                var lightbox_rel_attr = $(this).data('lightbox-rel-attr');
464                var uploadSizeLimit = $(this).attr('data-upload-size');
465                var upload_nonce = $('#ap_form_nonce').val();
466                var content_image_uploader = new qq.FileUploader({
467                    element: document.getElementById(id),
468                    // path to server-side upload script
469                    // action: '/server/upload'
470                    action: ap_fileuploader.upload_url,
471                    params: {
472                        action: 'ap_file_upload_action',
473                        file_uploader_nonce: upload_nonce,
474                        allowedExtensions: ['jpg', 'png', 'gif', 'jpeg'],
475                        sizeLimit: uploadSizeLimit,
476                    },
477                    allowedExtensions: ['jpg', 'png', 'gif', 'jpeg'],
478                    sizeLimit: uploadSizeLimit, // 100mb
479                    minSizeLimit: 500,
480                    onSubmit: function (id, fileName) {
481
482                    },
483                    onProgress: function (id, fileName, loaded, total) {
484                    },
485                    onComplete: function (id, fileName, responseJSON) {
486
487                        //console.log(responseJSON);
488                        if (responseJSON.success)
489                        {
490                            tinyMCE.triggerSave();
491                            if (link_source_url == 1) {
492                                if (lightbox_rel_attr == 1) {
493                                    var insert_content = '<a href="' + responseJSON.url + '" rel="lightbox"><img src="' + responseJSON.url + '" class="size-full wp-image-' + responseJSON.attachment_id + '" alt="' + fileName + '"/></a>';
494                                } else {
495
496                                    var insert_content = '<a href="' + responseJSON.url + '"><img src="' + responseJSON.url + '" class="size-full wp-image-' + responseJSON.attachment_id + '" alt="' + fileName + '"/></a>';
497                                }
498                            } else {
499
500                                var insert_content = '<img src="' + responseJSON.url + '" class="size-full wp-image-' + responseJSON.attachment_id + '" alt="' + fileName + '"/>';
501                            }
502                            tinyMCE.activeEditor.execCommand('mceInsertContent', false, insert_content);
503
504                            $('#ap-content-file-uploader .qq-upload-list').html('');
505                        }
506
507                    },
508                    onCancel: function (id, fileName) {
509                    },
510                    onError: function (id, fileName, xhr) {
511                    },
512                    messages: {
513                        typeError: " {file} has invalid extension. Only {extensions} are allowed.",
514                        sizeError: "{file} is too large, maximum file size is {sizeLimit}.",
515                        minSizeError: "{file} is too small, minimum file size is {minSizeLimit}.",
516                        emptyError: "{file} is empty, please select files again without it.",
517                        onLeave: "The files are being uploaded, if you leave now the upload will be cancelled."
518                    },
519                    showMessage: function (message) {
520                        alert(message);
521                    },
522                    multiple: false
523                });
524            });
525        }
526
527
528
529        /*----------File Uploader-----------------*/
530
531        // tinyMCE.execCommand('mceInsertContent', false, "some text");
532//            tinyMCE.triggerSave();
533        /**
534         * File Delete Action
535         */
536        $('body').on('click', '.ap-pro-preview-remove', function () {
537            var selector = $(this);
538            var ajax_url = ap_fileuploader.upload_url;
539            var url = $(this).data('url');
540            var id = $(this).data('id');
541            var attachment_id = $(this).data('attachment-id');
542            attachment_id = $.trim(attachment_id);
543            var attachment_code = $(this).data('attachment-code');
544            $.ajax({
545                url: ajax_url,
546                data: 'action=ap_file_delete_action&_wpnonce=' + ap_fileuploader.nonce + '&attachment_id=' + attachment_id + '&attachment_code=' + attachment_code,
547                type: 'post',
548                success: function (res) {
549                    if (res == 'success') {
550                        var attachment_ids = selector.closest('form').find('.ap-attachment-ids').val();
551                        attachment_ids = $.trim(attachment_ids);
552                        var attachment_ids_array = attachment_ids.split(',');
553                        var attachment_index = attachment_ids_array.indexOf(attachment_id);
554                        if (attachment_index != -1) {
555                            attachment_ids_array.splice(attachment_index, 1);
556                            var attachment_ids = attachment_ids_array.join();
557                            selector.closest('form').find('.ap-attachment-ids').val(attachment_ids);
558                        }
559
560                        var prev_url = $('#ap-pro-file-url-' + id).val();
561                        //alert(prev_url);
562                        var new_url = prev_url.replace(url, '');
563                        new_url = new_url.replace(',,', ',');
564                        $('#ap-pro-file-url-' + id).val(new_url);
565                        var limit_counter = $('#ap-pro-upload-counter-' + id).val();
566                        //console.log(limit_counter);
567                        limit_counter--;
568                        //selector.closest('.ap-pro-form-field').find('.ap-upload-limit-error').html('');
569                        $('#ap-pro-upload-counter-' + id).val(limit_counter);
570                        selector.parent().fadeOut('1500', function () {
571                            selector.parent().remove();
572
573                        });
574                    } else {
575                        alert('No script kiddies please!');
576                    }
577                }
578            });
579        });
580
581        /** Limit Characters */
582        if ($('.ap-pro-character-limit').length > 0) {
583            var editor_char_limit = $('.ap-pro-character-limit').val();
584
585            // jQuery ready fires too early, use window.onload instead
586            window.onload = function () {
587                var char_limit_message = $('.ap-pro-character-limit-message').val();
588                jQuery('.mce-statusbar').append('<span class="word-count-message">' + char_limit_message + '</span>');
589
590                tinyMCE.activeEditor.onKeyUp.add(function () {
591                    $('.ap-form-content-error').html('');
592                    // Strip HTML tags, WordPress shortcodes and white space
593                    editor_content = this.getContent().replace(/(<[a-zA-Z\/][^<>]*>|\[([^\]]+)\])|(\s+)/ig, '');
594                    //console.log(editor_content.length);
595                    if (editor_content.length > editor_char_limit) {
596                        jQuery('.mce-statusbar').addClass('toomanychars');
597                        $('.ap-character-limit-flag').val(1);
598                        //error_flag = 1;
599                    } else {
600                        jQuery('.mce-statusbar').removeClass('toomanychars');
601                        $('.ap-character-limit-flag').val(0);
602                        //error_flag = 0;
603                    }
604                });
605            }
606        }
607
608        $('input[name="ap_form_post_image"]').change(function () {
609            var file = $(this).val();
610            var file_array = file.split('\\');
611            var filename = file_array.pop();
612            var filename_array = filename.split('.');
613            var extension = filename_array.pop();
614            if (!(extension == 'jpg' || extension == 'jpeg' || extension == 'png' || extension == 'gif' || extension == 'JPG' || extension == 'JPEG' || extension == 'PNG' || extension == 'GIF')) {
615
616                $(this).closest('.ap-pro-form-field-wrapper').find('.ap-form-error').html('Unsupported filetype');
617            } else {
618                $(this).closest('.ap-pro-form-field-wrapper').find('.ap-form-error').html('');
619            }
620        });
621
622
623    }); //document.ready close
624
625}(jQuery));

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.