PageSourceSearch

https://www.istria.hu/themes/istria_new/js/request-general.js

js istria.hu collected 2026-10-02 23:38:22 UTC 3,995 bytes, 117 lines download raw bytes

1$(function () {
2    $.fn.missingField = function(x) {
3        if (x) {
4            this.addClass('input-missing');
5        } else {
6            this.removeClass('input-missing');
7        }
8    }
9
10    var isValidEmail = function(email) {
11        var pattern = /^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_]+)*\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$/i;
12        return pattern.test(email);
13    }
14
15    var showMessage = function(status, message) {
16        var box = $('.response-message');
17        box.addClass('response-' + status);
18        box.html(message);
19        box.fadeIn();
20    }
21
22    var formValidation = function() {
23        var requestForm = $('.request-form');
24
25        var fields = {
26            adults: $('#request_adults'),
27            children: $('#request_children'),
28            name: $('#request_name'),
29            email: $('#request_email'),
30            phone: $('#request_phone'),
31            comment: $('#request_comment'),
32            confirm: $('#request_confirm')
33        }
34
35        var requestSubmit = $('#request_submit');
36        var requestSubmitVal = requestSubmit.html();
37
38        requestSubmit.attr('disabled', true);
39        requestSubmit.html('Kérjük várj...');
40
41        if (fields.adults.val().length == 0 || parseInt(fields.adults.val()) <= 0) {
42            fields.adults.missingField(true);
43        } else {
44            fields.adults.missingField(false);
45        }
46
47        if (fields.name.val().length == 0) {
48            fields.name.missingField(true);
49        } else {
50            fields.name.missingField(false);
51        }
52
53        if (fields.email.val().length == 0 || !isValidEmail(fields.email.val())) {
54            fields.email.missingField(true);
55        } else {
56            fields.email.missingField(false);
57        }
58
59        if (fields.phone.val().length == 0) {
60            fields.phone.missingField(true);
61        } else {
62            fields.phone.missingField(false);
63        }
64
65        if (fields.confirm.is(':checked') === false) {
66            fields.confirm.missingField(true);
67        } else {
68            fields.confirm.missingField(false);
69        }
70
71        if ($('.input-missing', requestForm).length == 0) {
72            $.ajax({
73                url: requestForm.attr('action'),
74                async: false,
75                data: requestForm.serialize(),
76                dataType: 'json',
77                method: requestForm.attr('method'),
78                success: function(resp) {
79                    showMessage(resp.status, resp.message);
80                    if (resp.status == 'error') {
81                        requestSubmit.attr('disabled', false);
82                        requestSubmit.html(requestSubmitVal);
83                    } else {
84                        requestSubmit.html('Elküldve');
85                    }
86                },
87                error: function() {
88                    showMessage('error', 'Hiba történt az űrlap feldolgozása közben.');
89                    requestSubmit.html('Kérjük, próbáld meg később');
90                }
91            });
92        } else {
93            requestSubmit.attr('disabled', false);
94            requestSubmit.html(requestSubmitVal);
95        }
96    }
97
98    $('body').on('change', '#request_children', function() {
99        var childrenNum = parseInt($(this).val());
100        var childrenInfo = $('.children-info');
101
102        if (childrenNum > 0) {
103            childrenInfo.fadeIn();
104            childrenInfo.removeClass('hidden');
105        } else {
106            childrenInfo.fadeOut();
107            childrenInfo.addClass('hidden');
108        }
109
110        return false;
111    });
112
113    $('body').on('submit', '.request-form', function() {
114        formValidation();
115        return false;
116    });
117});

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.