PageSourceSearch

https://www.cap-net.cz/templates/theme1981/js/form.js?v=20260925113229

js cap-net.cz collected 2026-09-25 09:33:02 UTC 22,476 bytes, 504 lines download raw bytes

1var cntDataLayer = {};
2cntDataLayer['version'] = '1.0';
3cntDataLayer['url'] = window.location.href;
4var from, to, fromdp, todp, covidForm;
5var dateFormat = "dd.mm.yy";
6var covidDateFormat = "d.m.yy";
7var fromEnabledDates = [];
8var toEnabledDates = [];
9var    covidDates = {};
10var    covidDatesTimes = {};
11
12var fromEnabledDatesTimes = {};
13var toEnabledDatesTimes = {};
14var dpclose = true;
15var destinationSelected = false;
16var topoffset = 66;
17var islowwidth = 991.98;
18var isverylowwidth = 575.98;
19//alert('form.js');
20
21 
22function addzero(value)
23{
24    while (value.length < 2)
25        value = String("0") + value;
26    return value;
27}
28function checkDateOrder(frm, ci_day, ci_month_year, co_day, co_month_year) {
29    if (document.getElementById) {
30        var frm = document.getElementById(frm);
31// create date object from checkin values
32// set date to 12:00 to avoid problems with one
33// date being wintertime and the other summertime
34        var my = frm[ci_month_year].value.split("-");
35        var ci = new Date(my[0], my[1] - 1, frm[ci_day].value, 12, 0, 0, 0);
36// create date object from checkout values
37        my = frm[co_month_year].value.split("-");
38        var co = new Date(my[0], my[1] - 1, frm[co_day].value, 12, 0, 0, 0);
39// if checkin date is at or after checkout date,
40// add a day full of milliseconds, and set the
41// selectbox values for checkout date to new value
42        if (ci >= co) {
43            co.setTime(ci.getTime() + 1000 * 60 * 60 * 24);
44            frm[co_day].value = co.getDate();
45            var com = co.getMonth() + 1;
46            frm[co_month_year].value = co.getFullYear() + "-" + com;
47        }
48    }
49}
50function sendGA(action, data) {
51    console.log('SEND GA',action,data);
52}
53
54function validateEmail(email) {
55    var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
56    return re.test(String(email).toLowerCase());
57}
58
59window.sendResult = false;
60function covidSendResults() {
61    if (window.sendResult == true)
62        return false;
63    window.sendResult = true;
64    setTimeout(function() {
65        window.sendResult = false;
66    },5000);
67    
68/*    if (String(jQuery('#id-card-result').val()).length < 2 || String(jQuery('#id-card-result').val()).length > 6 || isNaN(jQuery('#id-card-result').val()) == true) {
69        var errorMessage = 'Osobní číslo je zadáno ve špatném tvaru.';
70        jQuery('#reservations-form-covid-result').find('div.errorMessage').html('<span class="errorMessage">' + errorMessage + '</span>').show('slow').delay(15000).hide('slow');
71        return false;
72    } /*else
73    if (String(jQuery('#id-card-ghc-result').val()).length != 12 || String(jQuery('#id-card-ghc-result').val()).indexOf('GHC') != 0 || String(jQuery('#id-card-ghc-result').val()).indexOf('000000000') != -1 || String(jQuery('#id-card-ghc-result').val()).indexOf('123456789') != -1 ) {
74        var errorMessage = 'GHC kód je zadán ve špatném tvaru. Zadejte ve tvaru GHC000000000 (GHC a devíti-místné číslo).';
75        jQuery('#reservations-form-covid-result').find('div.errorMessage').html('<span class="errorMessage">' + errorMessage + '</span>').show('slow').delay(15000).hide('slow');
76        return false;
77    }  */
78
79    jQuery('#covid-loader-result').removeClass('hidden');
80
81    var formData = collectFormDataNew('#reservations-form-covid-result');
82        formData.append('lang',(typeof jQuery('input#language').val() != 'undefined' ? jQuery('input#language').val() : 'cs'));
83        formData.append('url',window.location.href);
84        formData.append('action','covidSendResults');
85    
86    jQuery.ajax({
87        type: "POST",
88        url: "/ajaxData.php",
89        cache: false,
90        data: formData,
91        contentType: false,
92        processData: false,
93        success: function (payload) {
94            if (payload['status'] == 'OK' && payload['data'] == true) {
95                jQuery('#reservations-form-covid-result').find('div.successMessage').removeClass('hidden');
96                jQuery('#reservations-form-covid-result').find('div.successMessage').show('slow');
97                jQuery('#reservations-form-covid-result').find('div.errorMessage').addClass('hidden');
98                jQuery('#reservations-form-covid-result').find('button.odeslat').addClass('hidden');
99                setTimeout(function() {
100                    jQuery('#covid-loader-result').addClass('hidden');
101                }, 1000);
102                
103            } else { 
104                console.log('error in data'); 
105                console.log(payload);
106                errorMessage = 'Výsledky se nepodařilo odeslat, zkontrolujte správnost vyplnění formuláře.';
107                jQuery('#reservations-form-covid-result').find('div.errorMessage').html('<span class="errorMessage">' + errorMessage + '</span>');
108                jQuery('#reservations-form-covid-result').find('div.errorMessage').show('slow');
109                jQuery('#reservations-form-covid-result').find('div.errorMessage').removeClass('hidden');
110                jQuery('#reservations-form-covid-result').find('div.successMessage').addClass('hidden');
111                setTimeout(function() {
112                    jQuery('#covid-loader-result').addClass('hidden');
113                }, 1000);
114
115            }            
116        },
117        error: function (payload) {
118            console.log('error in data', payload);
119                setTimeout(function() {
120                    jQuery('#covid-loader-result').addClass('hidden');
121                }, 1000);
122
123        }
124    });    
125}
126
127function addCovidDates() {
128    var i = 0;
129    var times = '';
130    setTimeout(function () {
131        jQuery( "div.datepicker-form-covid .ui-datepicker-calendar td").filter(function () {
132            var date = jQuery(this).text();
133            var i = 0;
134            var times = '';
135            if (typeof covidDatesTimes[jQuery(this).attr('title')] !== 'undefined') {
136                jQuery.each(covidDatesTimes[jQuery(this).attr('title')], function(k,v) {
137                  //  console.log(v); 
138                    i++;
139                    times = times + v + ', ';
140                });
141            }
142            times = times.slice(0,-2);
143            jQuery('div.datepicker-form-covid td.dp-date[title|="'+jQuery(this).attr('title')+'"]').attr('data-count', i).attr('data-times', times); 
144            return /\d/.test(date);
145        }).find("a");
146    }, 300);
147    
148}
149
150function renderCovidFormData(data ) {
151    covidDates = {};
152    covidDatesTimes = {};
153    var today = new Date();
154    if (data.hasOwnProperty('times')) {
155        jQuery.each(data.times, function(date, times) {
156            covidDates[date] = {};
157            jQuery.each(times, function(time, count) {
158                covidDates[date][time] = count;
159            });
160
161        });
162
163        /*covidForm.datepicker('show');*/
164        covidForm.datepicker("refresh");
165        covidForm.datepicker('show');
166        addCovidDates();
167    }    
168}
169
170function loadCovidTimeSlots() {
171    jQuery('#covid-loader').removeClass('hidden');
172    var formData = collectFormData('#reservations-form-covid')+'&action=loadCovidTimeSlots';
173    
174   // console.log(formData);
175    jQuery.ajax({
176        type: "POST",
177        url: "/ajaxData.php",
178        cache: false,
179        data: formData,
180        success: function (payload) {
181            if (payload['status'] == 'OK') {
182                renderCovidFormData(payload.data);
183            } else { 
184            }   
185            jQuery('#covid-loader').addClass('hidden');
186        },
187        error: function (payload) {
188            console.log('error in data', payload);
189            jQuery('#covid-loader').addClass('hidden');
190        }
191    });    
192}
193
194window.mobileAndTabletcheck = function() {
195    var check = false;
196    (function(a){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4))) check = true;})(navigator.userAgent||navigator.vendor||window.opera);
197    return check;
198};
199
200function testForm(el) {
201    var form = jQuery(el);
202    var errorTest = true;
203    var emailTest = true;
204    
205    jQuery(form).find('.input.needed').each(function () {
206        //console.log(jQuery(this));
207        jQuery(this).removeClass('empty');
208        var radioTest = false;
209                    
210        if (jQuery(this).attr('type') == 'radio' || jQuery(this).attr('type') == 'checkbox') {
211            var name = jQuery(this).attr('name');
212            jQuery(el + ' input[name="' + name + '"]').each(function () {
213                if (jQuery(this).prop('checked')) {
214                    radioTest = true;
215                }
216            });
217            if (radioTest == false) {
218                errorTest = false;
219                //errorMessage = translateForm('submitForm', 'vsechna_pole_musi_byt_vyplnena');
220            }
221        } else if (jQuery(this).val() == '') {
222            jQuery(this).addClass('empty');
223            errorTest = false;
224            //errorMessage = translateForm('submitForm', 'vsechna_pole_musi_byt_vyplnena');
225        }
226
227    });
228
229    var groupneeded = {};
230    jQuery('.input.groupneeded').removeClass('groupempty');
231    jQuery(form).find('.input.groupneeded').each(function () {
232        if (typeof jQuery(this).data('groupneeded') != 'undefined' && typeof groupneeded[jQuery(this).data('groupneeded')] == 'undefined') {
233            groupneeded[jQuery(this).data('groupneeded')] = false;
234        }
235        //console.log(jQuery(this));
236        jQuery(this).removeClass('empty');
237        var radioTest = false;
238                    
239        if (jQuery(this).attr('type') == 'radio' || jQuery(this).attr('type') == 'checkbox') {
240            var name = jQuery(this).attr('name');
241            jQuery(el + ' input[name="' + name + '"]').each(function () {
242                if (jQuery(this).prop('checked')) {
243                    radioTest = true;
244                }
245            });
246            if (radioTest) {
247                groupneeded[jQuery(this).data('groupneeded')] = true;
248                //errorMessage = translateForm('submitForm', 'vsechna_pole_musi_byt_vyplnena');
249            }
250        } else if (jQuery(this).val().length > 0) {
251            groupneeded[jQuery(this).data('groupneeded')] = true;
252            //errorMessage = translateForm('submitForm', 'vsechna_pole_musi_byt_vyplnena');
253        }
254
255    });
256    if (groupneeded.length > 0) {
257        console.log(groupneeded);
258        jQuery.each(groupneeded, function(k,v) {
259            console.log(k,v);
260           if (v == false) {
261                errorTest = false;
262                console.log('.groupneeded[data-groupneeded="'+k+'"]');
263                jQuery('input.groupneeded[data-groupneeded="'+k+'"]').addClass('groupempty');
264           } 
265        });
266        
267    }
268
269    if (!errorTest) {
270        var errorMessage = 'Všechna pole musí být vyplněna';
271        if (el === '#mailing-subscription')
272            errorMessage = 'Uvedte e-mail';
273        jQuery(form).find('div.errorMessage').html('<span class="errorMessage">' + errorMessage + '</span>').show('slow').delay(15000).hide('slow');
274        jQuery(form).find('.empty').off('focusin').focusin(function () {
275            jQuery(this).removeClass('empty');
276        });
277        return false;
278    }
279    
280    jQuery(form).find('input[type=email]').each(function() {
281        if (!validateEmail(jQuery(this).val())) {
282            emailTest = false;
283            jQuery(this).addClass('empty');
284            jQuery(this).off('focusin').focusin(function () {
285                jQuery(this).removeClass('empty');
286            });      
287        }
288    });
289
290    
291    if (!emailTest) {
292        var errorMessage = 'Špatný tar e-mailu';
293        jQuery(form).find('div.errorMessage').html('<span class="errorMessage">' + errorMessage + '</span>').show('slow').delay(15000).hide('slow');
294        return false;
295    }
296    
297    jQuery(form).find('.errorMessage').text('').hide('slow');
298    return true;
299}
300
301function collectFormDataNew(formEl) {
302    
303    var formData = new FormData();
304    formData.append('formId', formEl);
305    
306//    var formData = 'formId=' + formEl;
307  //  formData = formData + '&mobile='+(mobileAndTabletcheck()?1:0)+'&secret1='+window.CNTsecret1+'&secret2='+window.CNTsecret2+'&secret3=window.CNTsecret3';
308    jQuery(formEl + ' .input').each(function () {
309        if (typeof jQuery(this).data('name') != 'undefined') {
310            var key = jQuery(this).data('name');
311        } else {
312            var key = jQuery(this).attr('name');
313        }
314        
315        var cntkey = key;
316        if (typeof jQuery(this).data('cnttype') != 'undefined')
317            cntkey = jQuery(this).data('cnttype');
318
319        var cntval = null;
320        if (typeof jQuery(this).data('cntvalue') != 'undefined')
321            cntval = jQuery(this).data('cntvalue');
322
323        if (jQuery(this).attr('type') == 'checkbox') {
324            if (jQuery(this).is(":checked"))
325            {
326                var val = jQuery(this).data('value');
327                    formData.append(key,val);
328                    cntDataLayer[cntkey] = (cntval === null) ? val : cntval;
329//                formData = formData + '&' + key + '=' + val;
330            }
331        } else if (jQuery(this).attr('type') == 'radio') {
332            if (jQuery(this).prop('checked'))
333            {
334                var val = jQuery(this).val();
335                
336                formData.append(key,val);
337                cntDataLayer[cntkey] = (cntval === null) ? val : cntval
338                //formData = formData + '&' + key + '=' + val;
339            }
340        } else if (jQuery(this).prop('type') == 'select-one') {
341            var val = jQuery(this).children('option:selected').prop('innerText');
342            //formData = formData + '&' + key + '=' + val;
343            formData.append(key,val);
344            cntDataLayer[cntkey] = (cntval === null) ? val : cntval
345        } else if (jQuery(this).prop('type') == 'file') {
346            var file_list = jQuery(this).prop('files');
347            var i = 0;
348            jQuery.each(file_list,function(i,item){
349                formData.append(key+i,jQuery(this)[0]);
350                cntDataLayer[cntkey+i] = ((cntval === null) ? val : cntval) + jQuery(this)[0];
351                i++;
352            });
353
354            //formData.append(key,val);
355            //console.log(jQuery(this).prop('files'));
356        } else {
357            var val = jQuery(this).val();
358            //formData = formData + '&' + key + '=' + val;
359            formData.append(key,val);
360            cntDataLayer[cntkey] = (cntval === null) ? val : cntval;
361        }
362        console.log(cntkey,cntval);        
363    });
364    
365    return formData;
366}
367
368function collectFormData(formEl) {
369    var formData = 'formId=' + formEl;
370    formData = formData + '&mobile='+(mobileAndTabletcheck()?1:0)+'&secret1='+window.CNTsecret1+'&secret2='+window.CNTsecret2+'&secret3=window.CNTsecret3';
371    jQuery(formEl + ' .input').each(function () {
372        if (typeof jQuery(this).data('name') != 'undefined') {
373            var key = jQuery(this).data('name');
374        } else {
375            var key = jQuery(this).attr('name');
376        }
377        if (jQuery(this).attr('type') == 'checkbox') {
378            if (jQuery(this).is(":checked"))
379            {
380                var val = jQuery(this).val();
381                formData = formData + '&' + key + '=' + val;
382            }
383        } else if (jQuery(this).attr('type') == 'radio') {
384            if (jQuery(this).prop('checked'))
385            {
386                var val = jQuery(this).val();
387                formData = formData + '&' + key + '=' + val;
388            }
389        } else if (jQuery(this).prop('type') == 'select-one') {
390            var val = jQuery(this).children('option:selected').prop('innerText');
391            formData = formData + '&' + key + '=' + val;
392        } else {
393            var val = jQuery(this).val();
394            formData = formData + '&' + key + '=' + val;
395        }
396    });
397    jQuery('.input.global').each(function () {
398        if (typeof jQuery(this).data('name') != 'undefined') {
399            var key = jQuery(this).data('name');
400        } else {
401            var key = jQuery(this).attr('name');
402        }
403        if (jQuery(this).attr('type') == 'checkbox') {
404            if (jQuery(this).is(":checked"))
405            {
406                var val = jQuery(this).val();
407                formData = formData + '&' + key + '=' + val;
408            }
409        } else if (jQuery(this).attr('type') == 'radio') {
410            if (jQuery(this).prop('checked'))
411            {
412                var val = jQuery(this).val();
413                formData = formData + '&' + key + '=' + val;
414            }
415        } else if (jQuery(this).prop('type') == 'select-one') {
416            var val = jQuery(this).children('option:selected').prop('innerText');
417            formData = formData + '&' + key + '=' + val;
418        } else {
419            var val = jQuery(this).val();
420            formData = formData + '&' + key + '=' + val;
421        }
422    });
423    return formData;
424}
425
426function setCookie(name,value,days) {
427    var expires = "";
428    if (days) {
429        var date = new Date();
430        date.setTime(date.getTime() + (days*24*60*60*1000));
431        expires = "; expires=" + date.toUTCString();
432    }
433    document.cookie = name + "=" + (value || "")  + expires + "; path=/";
434}
435function getCookie(name) {
436    var nameEQ = name + "=";
437    var ca = document.cookie.split(';');
438    for(var i=0;i < ca.length;i++) {
439        var c = ca[i];
440        while (c.charAt(0)==' ') c = c.substring(1,c.length);
441        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
442    }
443    return null;
444}
445function eraseCookie(name) {   
446    document.cookie = name + '=;expires=1982-04-17T08:34:20.000Z;';
447}
448
449jQuery(document).ready(function () {
450    
451    jQuery('div.form-group input[type=text], div.form-group input[type=date], div.form-group input[type=number], div.form-group input[type=tel], div.form-group textarea').off('change').on('change', function() {
452        if (jQuery(this).val().length > 0) {
453            jQuery(this).addClass('fulfilled');
454            jQuery('label[for='+jQuery(this).attr('id')+']').addClass('fulfilled');
455        }
456        else {
457            jQuery(this).removeClass('fulfilled');
458            jQuery('label[for='+jQuery(this).attr('id')+']').removeClass('fulfilled');
459        }
460    });
461
462    jQuery('div.form-group input[type=email]').off('change').on('change', function() {
463        if (jQuery(this).val().length > 0 && validateEmail(jQuery(this).val())) {
464            jQuery(this).addClass('fulfilled');
465            jQuery('label[for='+jQuery(this).attr('id')+']').addClass('fulfilled');
466        }
467        else {
468            jQuery(this).removeClass('fulfilled');
469            jQuery('label[for='+jQuery(this).attr('id')+']').removeClass('fulfilled');
470        }
471    });
472
473    jQuery('input[type=text], input[type=email], input[type=password], input[type=number]').off('focus').on('focus', function() {
474        jQuery(this).addClass('focused');
475    }); 
476
477    jQuery('input[type=text], input[type=email], input[type=password], input[type=number]').off('blur').on('blur', function() {
478        if (jQuery(this).val().length == 0)
479            jQuery(this).removeClass('focused').addClass('notfilled');
480        else 
481            jQuery(this).removeClass('focused').removeClass('notfilled');
482    });
483    
484  
485    jQuery('button.close-error').off('click').off('click').on('click', function() {
486       jQuery(this).parent().addClass('hidden');
487    });
488   
489    jQuery('#id-card-result').val(jQuery('#name-result').val());
490    jQuery('#name-result').on('change', function() {
491        jQuery('#id-card-result').val(jQuery(this).val());
492        jQuery('input[name="profese"]').prop('checked','');
493        jQuery('input[name="profese"][value="'+jQuery(this).children('option:selected').data('profese')+'"]').prop('checked','checked');
494    });
495    
496    jQuery('button#send-results-form-covid').off('click').on('click', function() {
497        if (testForm('#reservations-form-covid-result') && jQuery('select')) {
498            covidSendResults();
499        }
500    });
501
502});
503
504

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.