PageSourceSearch

https://conforts.atriumhoteis.com.br/bundles/custom?v=gAWf6O9EXhxAAJvw5iLgvt9B69soZXabCN-lqzJ8ZfI1

js atriumhoteis.com.br collected 2026-09-28 15:39:58 UTC 47,820 bytes, 1,187 lines download raw bytes

1/* Minification failed. Returning unminified contents.
2(1122,50-51): run-time warning JS1195: Expected expression: >
3(1124,6-7): run-time warning JS1195: Expected expression: )
4(1137,3-4): run-time warning JS1002: Syntax error: }
5(1139,37-38): run-time warning JS1195: Expected expression: )
6(1145,43-44): run-time warning JS1195: Expected expression: >
7(1146,17-18): run-time warning JS1014: Invalid character: `
8(1134,7-35): run-time warning JS1018: 'return' statement outside of function: return "_gl="+_glNode.value;
9(1136,5-15): run-time warning JS1018: 'return' statement outside of function: return '';
10 */
11var widgetScript = new function () {
12    var calcTopPositionInternal = function (elem) {
13        var elemHeight = $(elem).outerHeight();
14        var headerHeight = $("header").outerHeight();
15        var navHeight = $('header .navbar').outerHeight();
16
17        var diff = headerHeight - navHeight;
18        var h = (diff / 2) + navHeight - (elemHeight / 2);
19
20        $(elem).parent().parent().css('top', h);
21    };
22
23    this.calcTopPosition = function (elem) {
24
25        window.addEventListener("resize", function () {
26            calcTopPositionInternal(elem);
27        });
28
29        calcTopPositionInternal(elem);
30    };
31
32    this.BuildCalendarHBookChain = function (arrival, departure) {
33
34        function incDate(date) {
35            date.setDate(date.getDate() + 1);
36            return date;
37        }
38
39        var settings = {
40            dateFormat: "dd/mm/yy",
41            monthNames: ["Janeiro", "Fevereiro", "Mar�o", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"],
42            dayNames: ["Domingo", "Segunda", "Ter�a", "Quarta", "Quinta", "Sexta", "S�bado"],
43            dayNamesMin: ["Do", "Se", "Te", "Qu", "Qu", "Se", "Sa"],
44            nextText: "",
45            prevText: "",
46        };
47
48        $(arrival).datepicker(settings);        
49        $(arrival).datepicker("option", "minDate", 0);
50        $(arrival).datepicker("setDate", new Date());
51        $(arrival).datepicker("option", "onSelect", function () {
52            
53            $(departure).datepicker("option", "minDate", incDate($(arrival).datepicker('getDate')));
54
55            setTimeout(function () {
56                $(departure).datepicker("show");
57            }, 100);
58            
59        });
60
61        $(departure).datepicker(settings);
62        $(departure).datepicker("setDate", incDate($(arrival).datepicker('getDate')));
63    }
64
65    this.buildCalendar = function (arrival, departure, hbookcompanyid, lang) {
66
67        $(arrival).datepicker("destroy");
68        $(departure).datepicker("destroy");
69
70        $.smartCalendar({
71            arrival: $(arrival),
72            departure: $(departure),
73            companyId: hbookcompanyid,
74            onSelect: function () {
75                $(arrival).val();
76                $(departure).val();
77            }
78        });
79
80    };
81};
82
83function headerInfo() {
84
85    var triggers = $('.header-info .triggers');
86    var infos = $('.header-info .info');
87
88    infos.find('p').first().addClass('active');
89    triggers.find('i').first().addClass('active');
90
91    triggers.find('i').on('click', function () {
92
93        // adding/removing the active class from trigger
94        triggers.find('.active').removeClass('active');
95        $(this).addClass('active');
96
97        //getting current item's data-id
98        var current = $(this).data("id");
99
100        // adding/removing the active class from infos
101        infos.find('.active').removeClass('active');
102        infos.find("[data-id='" + current + "']").addClass('active');
103
104    });
105
106};
107$(document).ready(function () {
108    $('.fancybox').fancybox({
109        openEffect: 'elastic',
110        closeEffect: 'elastic',
111        prevEffect: 'fade',
112        nextEffect: 'fade'
113    });
114
115    //header navigation
116    headerInfo();
117});
118
119var closeDatepicker = function () {
120    $(".hasDatepicker").datepicker("hide");
121    $('.tooltip').hide();
122    
123};;/************************
124HSystem Calendar Smart
125Version 1.1 for HWEB
126*************************/
127
128(function ($) {
129
130    "use strict";
131
132    window.mobileAndTabletcheck = function () {
133        var check = false;
134        (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);
135        return check;
136    };    
137
138    $.smartCalendar = function (options) {
139
140        var year = moment().format("YYYY");
141        var month = moment().format("M");
142        var day = moment().format("D");
143        var todayDate = moment().format('YYYY-MM-DD');
144
145        window.__urlDates = "https://hbook.hsystem.com.br/Booking/InventoryPreview?";
146        window.__cacheDates = [];
147        window.__numberOfMonths = 1;
148
149        if (mobileAndTabletcheck()) {
150            var mobileDatePickerInfo = function () {
151                setTimeout(function () {
152
153                    $("#ui-datepicker-div").prepend("<p class='p-t-sm informationDatepicker text-center'></p>");
154                    
155                    if ($.datepicker._curInst.id === options.arrival[0].id) {
156                        $(".informationDatepicker").html("Selecione uma data de <b>check-in</b>");
157                    } else if ($.datepicker._curInst.id === options.departure[0].id) {
158                        $(".informationDatepicker").html("Selecione uma data de <b>check-out</b>");
159                    }
160
161
162                    $("#ui-datepicker-div").append("<p class='text-left'><a class='btn' onclick='closeDatepicker()'>Fechar</a></p>");
163
164                }, 15);
165            };
166        }
167
168        var settings = $.extend({
169            numberOfMonths: window.__numberOfMonths,
170            dateFormat: "dd/mm/yy",
171            monthNames: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"],
172            dayNames: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "SÃ
172¡bado"],
173            dayNamesMin: ["Do", "Se", "Te", "Qu", "Qu", "Se", "Sa"],
174            nextText: "",
175            prevText: "",
176
177            beforeShow: function (input, instance) {
178                var currentDate = $(input).datepicker('getDate');
179                var year = currentDate.getFullYear();
180                var month = currentDate.getMonth() + 1;
181                var isArrival = instance.id === settings.arrival[0].id;
182                HSystemCalender_SearchDates(year, month, isArrival);
183
184
185                if (mobileAndTabletcheck())
186                    mobileDatePickerInfo();
187                
188            },
189            onChangeMonthYear: function (year, month, instance) {
190                var isArrival = instance.id === settings.arrival[0].id;
191                if (window.__numberOfMonths > 1)
192                    month++;
193
194                var monthYear = year + '-' + month;
195                var datesByMonthYear = window.__cacheDates[monthYear];
196
197                if (!datesByMonthYear) {
198
199                    getDates(year, month, 1, function () {
200                        HSystemCalender_SearchDates(year, month - (1 - window.__numberOfMonths), isArrival);
201                    });
202
203                }
204                else {
205                    HSystemCalender_SearchDates(year, month - (1 - window.__numberOfMonths), isArrival);
206                }
207
208                if (mobileAndTabletcheck())
209                    mobileDatePickerInfo();
210            }
211        }, options);
212
213        if (settings) {
214
215            if (settings.arrival) {
216                $(settings.arrival).datepicker(settings);
217                $(settings.arrival).datepicker("option", "minDate", 0);
218
219                if (settings.arrival.val()) {
220                    $(settings.arrival).datepicker("setDate", settings.arrival.val());
221                } else {
222                    $(settings.arrival).datepicker("setDate", new Date());
223                }
224                $(settings.arrival).datepicker("option",
225                    "onSelect",
226
227                    // Somente quando seleciona alguma data no checkin cai nesta função.
228
229                    function (selectedDate) {
230
231
232                        // Futuramente toda lógica pós data de checkin deverá ser aqui.
233
234                        var date = $(settings.arrival).datepicker('getDate');
235                        date.setDate(date.getDate() + 1);
236
237                        if (settings.onSelect) {
238                            settings.onSelect();
239                        }
240
241                        if (settings.departure) {
242                            $(settings.departure).datepicker("option", "minDate", date);
243
244                            if (!$(settings.departure).val())
245                                $(settings.departure).datepicker("setDate", date);
246
247                            if (!$(settings.departure).val())
248                                $(settings.departure).datepicker("setDate", date);
249
250
251                            if (settings.onSelect) {
252                                settings.onSelect();
253                            }
254
255                            setTimeout(function () {
256                                $(settings.departure).datepicker("show");
257                                var departure = $(settings.departure).datepicker('getDate');
258                                var year = departure.getFullYear();
259                                var month = departure.getMonth() + 1;
260
261                                HSystemCalender_SearchDates(year, month, false);
262                                $('.tooltip').not(this).hide();
263
264                            }, 100);
265                        }
266                    });
267            }
268
269            if (settings.departure) {
270                $(settings.departure).datepicker(settings);
271                $(settings.departure).datepicker("option", "minDate", 1);
272
273                if (settings.departure.val()) {
274                    $(settings.departure).datepicker("setDate", settings.departure.val());
275
276                } else {
277                    $(settings.departure).datepicker("setDate", new Date());
278                }
279            }
280
281            if (settings.arrival && settings.departure) {
282
283                $(settings.arrival, settings.departure).mousedown(function () {
284                    $(this).datepicker("show");
285                    var currentDate = $(this).datepicker('getDate');
286                    var year = currentDate.getFullYear();
287                    var month = currentDate.getMonth() + 1;
288                    var isArrival = this.id === settings.arrival[0].id;
289                    HSystemCalender_SearchDates(year, month, isArrival);
290                    $('.tooltip').not(this).hide();
291                });
292            }
293
294        }
295
296        function hSystemCalenderSearchDatesInitialize() {
297            if (year && month) {
298                getDates(year, month, 3, function () { });
299            } else {
300                getDates(null, null, 3, function () { });
301            }
302        }
303
304
305        function getDates(year, month, count, callback) {
306
307            var initDate = new Date();
308            var initDateYear = year ? year : initDate.getFullYear();
309            var initDateMonth = month ? month : initDate.getMonth();
310
311            var strMonth = "0";
312
313            if (initDateMonth < 10)
314                strMonth += initDateMonth;
315            else
316                strMonth = initDateMonth;
317
318            var params = {
319                companyId: options.companyId,
320                from: initDateYear + "-" + strMonth + "-01",
321                months: count ? count : 3
322            };
323
324            var url = window.__urlDates + $.param(params);
325
326            $.getJSON(url, function (data) {
327
328                $.each(data, function (index, value) {
329
330                    var dateItem = value.Date.split("-");
331                    var year = dateItem[0];
332                    var month = dateItem[1];
333
334                    // Remove value 0 in month.
335                    if (month.indexOf("0") === 0) {
336                        month = month.replace("0", "");
337                    }
338
339                    if (!window.__cacheDates[year + "-" + month, params.companyId])
340                        window.__cacheDates[year + "-" + month, params.companyId] = [];
341
342                    window.__cacheDates[year + "-" + month, params.companyId].push(value);
343
344                });
345
346                if (callback)
347                    callback();
348
349            });
350        }
351
352        function modifyStructure(HSystemCalender_DatesAvailable, isArrival) {
353            $('.ui-datepicker-calendar tr td').addClass(' ui-datepicker-unselectable ui-state-disabled');
354            $('.ui-datepicker-calendar tr td').attr("data-toggle", "tooltip");
355            $('.ui-datepicker-calendar tr td').attr("data-placement", "top");
356            $('.ui-datepicker-calendar tr td').attr("data-original-title", "Indisponível");
357            
358
359            $('.ui-datepicker-calendar tr td').tooltip({
360                title: "Indisponível",
361                container: 'body'
362            });
363
364            $.each(HSystemCalender_DatesAvailable, function (index, months) {
365
366                $.each(months, function (index, value) {
367
368                    var HSystemCalender_Date = value.Date.split("-");
369                    var HSystemCalender_DateFormat = HSystemCalender_Date;
370
371                    var HSystemCalender_Day = null;
372                    var HSystemCalender_Month = null;
373
374                    // Remove value 0 in day.
375                    if (HSystemCalender_DateFormat[2].indexOf("0") === 0) {
376                        HSystemCalender_Day = HSystemCalender_DateFormat[2].replace("0", "");
377                    }
378                    else {
379                        HSystemCalender_Day = HSystemCalender_DateFormat[2];
380                    }
381                    // Remove value 0 in month
382                    if (HSystemCalender_DateFormat[1].indexOf("0") === 0) {
383                        HSystemCalender_Month = HSystemCalender_DateFormat[1].replace("0", "");
384                    }
385                    else {
386                        HSystemCalender_Month = HSystemCalender_DateFormat[1];
387                    }
388
389                    HSystemCalender_Month -= 1;
390
391                    var HSystemCalender_Year = HSystemCalender_DateFormat[0];
392
393                    var HSystemCalender_ContentDay = $(".ui-datepicker-calendar tbody td[data-handler='selectDay'][data-month=" + HSystemCalender_Month + "][data-year=" + HSystemCalender_Year + "] a:contains(" + HSystemCalender_Day + ")").filter(function () {
394                        return $(this).text() === HSystemCalender_Day;
395                    });
396
397                    // Pega o dia de hoje no calendário
398                    var HSystemCalender_ContentToday = $(".ui-datepicker-calendar tbody td[data-handler='selectDay'][data-month=" + HSystemCalender_Month + "][data-year=" + HSystemCalender_Year + "] a:contains(" + day + ")");
399
400                    var HSystemCalender_Content = HSystemCalender_ContentDay.parent();
401
402
403                    // BEGIN: Validations
404                    var isAvailable = HSystemCalender_ContentDay && ((isArrival && !value.AvailableOnlyForCheckout) || !isArrival);
405
406
407
408                    if (isArrival) {
409
410                        // Apenas para verificação.
411                        var HSystemCalendar_MonthValidation = month - 1;
412
413                        // Valida para não ficar caindo na condição a cada change month.
414                        if (HSystemCalendar_MonthValidation === HSystemCalender_Month) {
415                            // Se data de hoje, não estiver no array de datas disponíveis irá setar a primeira do array que seja disponível.
416                            if (todayDate !== HSystemCalender_DatesAvailable[0][0].Date && index === 0) {
417
418                                // Muda data para próxima disponível e ativa com classe do Datepicker.
419                                $('#' + settings.arrival[0].id).val(moment(value.Date, 'YYYY-mm-ww').format('ww/mm/YYYY'));
420                                $(HSystemCalender_ContentDay).addClass('ui-state-active');
421
422                                // Adiciona no dia de hoje atributo que não há disponibilidade
423                                $(HSystemCalender_ContentToday.parent()).attr('checkinavaible', false);
424                                blockDateAttr("checkinavaible", false);
425
426                            }
427                            if (HSystemCalender_DatesAvailable[0][0].AvailableOnlyForCheckout) {
428                                if (HSystemCalender_DatesAvailable[0][index].AvailableOnlyForCheckout && HSystemCalender_DatesAvailable[0][0].AvailableOnlyForCheckout) {
429                                    // Se existir mais datas para frente com 0 de disponibilidade ir buscando qual a mais próxima para habilitar e já preencher no Checkin.
430                                    if (index === 0 || index === index) {
431                                        if (HSystemCalender_DatesAvailable[0][0].AvailableOnlyForCheckout === true) {
432                                            $('#' + settings.arrival[0].id).val(moment(value.Date, 'YYYY-mm-ww').format('ww/mm/YYYY'));
433                                            $(HSystemCalender_ContentDay).addClass('ui-state-active');
434                                        }
435                                        //console.log("As primeiras datas estavam todas com disponibilidade zerada, irei buscar a mais próxima.");
436                                    }
437                                } else {
438                                    // Se não automaticamente será a próxima do index 1 por que ele já irá verificar o 
438index 0, 1 e se há alguma a frente deles.
439                                    if (HSystemCalender_DatesAvailable[0][0].AvailableOnlyForCheckout && index === 1) {
440                                        if (HSystemCalender_DatesAvailable[0][0].AvailableOnlyForCheckout === true) {
441                                            $('#' + settings.arrival[0].id).val(moment(value.Date, 'YYYY-mm-ww').format('ww/mm/YYYY'));
442                                            $(HSystemCalender_ContentDay).addClass('ui-state-active');
443                                        }
444                                       //console.log("Apenas data de hoje estava com disponibilidade zerada, então preenchi com a mais próxima disponível que foi: " + value.Date);
445                                    }
446                                }
447                            } else {
448                                //console.log("Não há parametro inicialmente sem disponibilidade. (1)");
449                            }
450                        }
451                    }
452
453                    // Variavel para habilitar datas no checkin, mas caso for checkout habilitar as datas que estavam sem disponibilidade para o checkin
454                    var HSystemCalender_Class = "HSystemCalender_DateActive";
455
456                    if (!value.AvailableOnlyForCheckout) {
457                        if (isAvailable) {
458                            if (value.MinStay && value.MinStay > 1) {
459
460                                var HSystemCalenderResource_Nights = value.MinStay === 1 ? "noite" : "noites";
461                                var title = "Mínimo de " + value.MinStay + " " + HSystemCalenderResource_Nights;
462
463                                $(HSystemCalender_Content).attr("data-toggle", "tooltip");
464                                $(HSystemCalender_Content).attr("data-placement", "top");
465                                $(HSystemCalender_Content).attr("data-original-title", title);
466
467                                $(HSystemCalender_Content).tooltip({
468                                    title: title,
469                                    container: 'body'
470                                });
471
472                                $(HSystemCalender_Content).append("<span class='HSystemCalender_CellInf'>" + value.MinStay + "</span>");
473                            }
474                            else {                                
475                                removeToolTip(HSystemCalender_Content);
476                            }
477                            $(HSystemCalender_Content).removeClass();
478                            $(HSystemCalender_Content).addClass(HSystemCalender_Class);
479                        }
480
481                    } else {
482                        if (isArrival) {
483                            // Se houver restrição adiciona atributo para fazer limpeza nas classes.
484                            $(HSystemCalender_ContentDay.parent()).attr("availableonlyforcheckout", true);
485                        } else {
486                            // Se for departure libera as datas para Checkout mesmo com restrições ou datas sem disponibilidades.
487                            $(HSystemCalender_Content).removeClass();
488                            $(HSystemCalender_Content).addClass(HSystemCalender_Class);
489                            removeToolTip(HSystemCalender_Content);
490                        }
491                    }
492
493                });
494
495                if (isArrival) {
496                    // Faz limpeza das datas marcadas como disponível apenas para checkout.
497                    if (HSystemCalender_DatesAvailable[0][index].AvailableOnlyForCheckout) {
498                        blockDateAttr("availableonlyforcheckout", true);
499                    }
500                }
501
502        });
503    }
504
505    function blockDateAttr(attr, value) {
506        // Remove todas classes e parametros preenchido para bloquear data.
507        $('.ui-datepicker-calendar tr td[' + attr + '="' + value + '"]').attr('class', '');
508        $('.ui-datepicker-calendar tr td[' + attr + '="' + value + '"]').attr('data-event', '');
509
510        // Adiciona classes padrão de bloqueio do datepicker.
511        $('.ui-datepicker-calendar tr td[' + attr + '="' + value + '"]').addClass(' ui-datepicker-unselectable ui-state-disabled');
512        $('.ui-datepicker-calendar tr td[' + attr + '="' + value + '"] a').attr('class', '');
513        $('.ui-datepicker-calendar tr td[' + attr + '="' + value + '"] a').attr('class', 'ui-state-default');
514    }
515    function removeToolTip(elem) {
516        $(elem).removeAttr("data-toggle");
517        $(elem).removeAttr("data-original-title");
518        $(elem).removeAttr("data-placement");
519        $(elem).tooltip('disable');
520    }
521
522
523    function HSystemCalender_SearchDates(year, month, isArrival) {
524
525        setTimeout(function () {
526
527            if (!year && !month) {
528                var d = new Date();
529                year = d.getFullYear();
530                month = d.getMonth() + 1;
531            }
532
533            var HSystemCalender_DatesAvailable = [];
534
535            if (window.__numberOfMonths === 1) {
536                var cache = window.__cacheDates[year + "-" + month, options.companyId];
537
538                if (cache) {
539                    HSystemCalender_DatesAvailable.push(cache);
540                }
541                else {
542                    getDates(year, month, 1, function () {
543                        cache = window.__cacheDates[year + "-" + month, options.companyId];
544                        HSystemCalender_DatesAvailable.push(cache);
545                    });
546                }
547
548            }
549            else if (window.__numberOfMonths === 2) {
550
551                var cache1 = window.__cacheDates[year + "-" + (month), options.companyId];
552                var cache2 = window.__cacheDates[year + "-" + (month + 1), options.companyId];
553
554                if (cache1) {
555                    HSystemCalender_DatesAvailable.push(cache1);
556                }
557                else {
558                    getDates(year, month, 1, function () {
559                        cache1 = window.__cacheDates[year + "-" + month, settings.companyId];
560                        HSystemCalender_DatesAvailable.push(cache1);
561                        modifyStructure(HSystemCalender_DatesAvailable, isArrival);
562                    });
563                }
564
565                if (cache2) {
566                    HSystemCalender_DatesAvailable.push(cache2);
567                }
568                else {
569                    getDates(year, (month + 1), 1, function () {
570                        cache2 = window.__cacheDates[year + "-" + (month + 1), options.companyId];
571                        HSystemCalender_DatesAvailable.push(cache2);
572                        modifyStructure(HSystemCalender_DatesAvailable, isArrival);
573                    });
574                }
575            }
576
577            modifyStructure(HSystemCalender_DatesAvailable, isArrival);
578
579
580        }, 10);
581    }
582
583    hSystemCalenderSearchDatesInitialize();
584
585    return this;
586};
587}(jQuery));;// Set cookie 
588function setCookie(cname, cvalue, exdays) {
589    exdays !== null ? exdays : 3;
590    var d = new Date();
591    d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
592    var expires = "expires=" + d.toUTCString();
593    document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
594}
595// Get cookie
596function getCookie(cname) {
597    var name = cname + "=";
598    var decodedCookie = decodeURIComponent(document.cookie);
599    var ca = decodedCookie.split(';');
600    for (var i = 0; i < ca.length; i++) {
601        var c = ca[i];
602        while (c.charAt(0) === ' ') {
603            c = c.substring(1);
604        }
605        if (c.indexOf(name) === 0) {
606            return c.substring(name.length, c.length);
607        }
608    }
609    return "";
610}
611
612function closePolicyPrivacy(expireDay) {
613    setCookie('acceptPolicyPrivacy', 'true', expireDay);
614    document.getElementById('PolicyPrivacy').setAttribute('class', 'hidden');
615}
616
617function PolicyPrivacy() {
618    if (getCookie('acceptPolicyPrivacy')) {
619        console.log('Accept Policy Privacy.');
620    } else {
621        document.getElementById('PolicyPrivacy').classList.remove('hidden');
622    }
623};// Biblioteca baixada de: https://github.com/verlok/lazyload  -v 12.0.0
624
625function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
626
627function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
628
629(function (global, factory) {
630    (typeof exports === "undefined" ? "undefined" : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : global.LazyLoad = factory();
631})(this, function () {
632    'use strict';
633
634    var runningOnBrowser = typeof window !== "undefined";
635    var isBot = runningOnBrowser && !("onscroll" in window) || typeof navigator !== "undefined" && /(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent);
636    var supportsIntersectionObserver = runningOnBrowser && "IntersectionObserver" in window;
637    var supportsClassList = runningOnBrowser && "classList" in document.createElement("p");
638    var defaultSettings = {
639        elements_selector: "img",
640        container: isBot || runningOnBrowser ? document : null,
641        threshold: 300,
642        thresholds: null,
643        data_src: "src",
644        data_srcset: "srcset",
645        data_sizes: "sizes",
646        data_bg: "bg",
647        class_loading: "loading",
648        class_loaded: "loaded",
649        class_error: "error",
650        load_delay: 0,
651        auto_unobserve: true,
652        callback_enter: null,
653        callback_exit: null,
654        callback_reveal: null,
655        callback_loaded: null,
656        callback_error: null,
657        callback_finish: null,
658        use_native: false
659    };
660
661    var getInstanceSettings = function getInstanceSettings(customSettings) {
662        return _extends({}, defaultSettings, customSettings);
663    };
664    /* Creates instance and notifies it through the window element */
665
666
667    var createInstance = function createInstance(classObj, options) {
668        var event;
669        var eventString = "LazyLoad::Initialized";
670        var instance = new classObj(options);
671
672        try {
673            // Works in modern browsers
674            event = new CustomEvent(eventString, {
675                detail: {
676                    instance: instance
677                }
678            });
679        } catch (err) {
680            // Works in Internet Explorer (all versions)
681            event = document.createEvent("CustomEvent");
682            event.initCustomEvent(eventString, false, false, {
683                instance: instance
684            });
685        }
686
687        window.dispatchEvent(event);
688    };
689    /* Auto initialization of one or more instances of lazyload, depending on the 
690        options passed in (plain object or an array) */
691
692
693    function autoInitialize(classObj, options) {
694        if (!options) {
695            return;
696        }
697
698        if (!options.length) {
699            // Plain object
700            createInstance(classObj, options);
701        } else {
702            // Array of objects
703            for (var i = 0, optionsItem; optionsItem = options[i]; i += 1) {
704                createInstance(classObj, optionsItem);
705            }
706        }
707    }
708
709    var dataPrefix = "data-";
710    var processedDataName = "was-processed";
711    var timeoutDataName = "ll-timeout";
712    var trueString = "true";
713
714    var getData = function getData(element, attribute) {
715        return element.getAttribute(dataPrefix + attribute);
716    };
717
718    var setData = function setData(element, attribute, value) {
719        var attrName = dataPrefix + attribute;
720
721        if (value === null) {
722            element.removeAttribute(attrName);
723            return;
724        }
725
726        element.setAttribute(attrName, value);
727    };
728
729    var setWasProcessedData = function setWasProcessedData(element) {
730        return setData(element, processedDataName, trueString);
731    };
732
733    var getWasProcessedData = function getWasProcessedData(element) {
734        return getData(element, processedDataName) === trueString;
735    };
736
737    var setTimeoutData = function setTimeoutData(element, value) {
738        return setData(element, timeoutDataName, value);
739    };
740
741    var getTimeoutData = function getTimeoutData(element) {
742        return getData(element, timeoutDataName);
743    };
744
745    var purgeProcessedElements = function purgeProcessedElements(elements) {
746        return elements.filter(function (element) {
747            return !getWasProcessedData(element);
748        });
749    };
750
751    var purgeOneElement = function purgeOneElement(elements, elementToPurge) {
752        return elements.filter(function (element) {
753            return element !== elementToPurge;
754        });
755    };
756
757    var callbackIfSet = function callbackIfSet(callback, argument) {
758        if (callback) {
759            callback(argument);
760        }
761    };
762
763    var updateLoadingCount = function updateLoadingCount(instance, plusMinus) {
764        instance._loadingCount += plusMinus;
765
766        if (instance._elements.length === 0 && instance._loadingCount === 0) {
767            callbackIfSet(instance._settings.callback_finish);
768        }
769    };
770
771    var getSourceTags = function getSourceTags(parentTag) {
772        var sourceTags = [];
773
774        for (var i = 0, childTag; childTag = parentTag.children[i]; i += 1) {
775            if (childTag.tagName === "SOURCE") {
776                sourceTags.push(childTag);
777            }
778        }
779
780        return sourceTags;
781    };
782
783    var setAttributeIfValue = function setAttributeIfValue(element, attrName, value) {
784        if (!value) {
785            return;
786        }
787
788        element.setAttribute(attrName, value);
789    };
790
791    var setImageAttributes = function setImageAttributes(element, settings) {
792        setAttributeIfValue(element, "sizes", getData(element, settings.data_sizes));
793        setAttributeIfValue(element, "srcset", getData(element, settings.data_srcset));
794        setAttributeIfValue(element, "src", getData(element, settings.data_src));
795    };
796
797    var setSourcesImg = function setSourcesImg(element, settings) {
798        var parent = element.parentNode;
799
800        if (parent && parent.tagName === "PICTURE") {
801            var sourceTags = getSourceTags(parent);
802            sourceTags.forEach(function (sourceTag) {
803                setImageAttributes(sourceTag, settings);
804            });
805        }
806
807        setImageAttributes(element, settings);
808    };
809
810    var setSourcesIframe = function setSourcesIframe(element, settings) {
811        setAttributeIfValue(element, "src", getData(element, settings.data_src));
812    };
813
814    var setSourcesVideo = function setSourcesVideo(element, settings) {
815        var sourceTags = getSourceTags(element);
816        sourceTags.forEach(function (sourceTag) {
817            setAttributeIfValue(sourceTag, "src", getData(sourceTag, settings.data_src));
818        });
819        setAttributeIfValue(element, "src", getData(element, settings.data_src));
820        element.load();
821    };
822
823    var setSourcesBgImage = function setSourcesBgImage(element, settings) {
824        var srcDataValue = getData(element, settings.data_src);
825        var bgDataValue = getData(element, settings.data_bg);
826
827        if (srcDataValue) {
828            element.style.backgroundImage = "url(\"".concat(srcDataValue, "\")");
829        }
830
831        if (bgDataValue) {
832            element.style.backgroundImage = bgDataValue;
833        }
834    };
835
836    var setSourcesFunctions = {
837        IMG: setSourcesImg,
838        IFRAME: setSourcesIframe,
839        VIDEO: setSourcesVideo
840    };
841
842    var setSources = function setSources(element, instance) {
843        var settings = instance._settings;
844        var tagName = element.tagName;
845        var setSourcesFunction = setSourcesFunctions[tagName];
846
847        if (setSourcesFunction) {
848            setSourcesFunction(element, settings);
849            updateLoadingCount(instance, 1);
850            instance._elements = purgeOneElement(instance._elements, element);
851            return;
852        }
853
854        setSourcesBgImage(element, settings);
855    };
856
857    var addClass = function addClass(element, className) {
858        if (supportsClassList) {
859            element.classList.add(className);
860            return;
861        }
862
863        element.className += (element.className ? " " : "") + className;
864    };
865
866    var removeClass = function removeClass(element, className) {
867        if (supportsClassList) {
868            element.classList.remove(className);
869            return;
870        }
871
872        element.className = element.className.replace(new RegExp("(^|\\s+)" + className + "(\\s+|$)"), " ").replace(/^\s+/, "").replace(/\s+$/, "");
873    };
874
875    var genericLoadEventName = "load";
876    var mediaLoadEventName = "loadeddata";
877    var errorEventName = "error";
878
879    var addEventListener = function addEventListener(element, eventName, handler) {
880        element.addEventListener(eventName, handler);
881    };
882
883    var removeEventListener = function removeEventListener(element, eventName, handler) {
884        element.removeEventListener(eventName, handler);
885    };
886
887    var addEventListeners = function addEventListeners(element, loadHandler, errorHandler) {
888        addEventListener(element, genericLoadEventName, loadHandler);
889        addEventListener(element, mediaLoadEventName, loadHandler);
890        addEventListener(element, errorEventName, errorHandler);
891    };
892
893    var removeEventListeners = function removeEventListeners(element, loadHandler, errorHandler) {
894        removeEventListener(element, genericLoadEventName, loadHandler);
895        removeEventListener(element, mediaLoadEventName, loadHandler);
896        removeEventListener(element, errorEventName, errorHandler);
897    };
898
899    var eventHandler = function eventHandler(event, success, instance) {
900        var settings = instance._settings;
901        var className = success ? settings.class_loaded : settings.class_error;
902        var callback = success ? settings.callback_loaded : settings.callback_error;
903        var element = event.target;
904        removeClass(element, settings.class_loading);
905        addClass(element, className);
906        callbackIfSet(callback, element);
907        updateLoadingCount(instance, -1);
908    };
909
910    var addOneShotEventListeners = function addOneShotEventListeners(element, instance) {
911        var loadHandler = function loadHandler(event) {
912            eventHandler(event, true, instance);
913            removeEventListeners(element, loadHandler, errorHandler);
914        };
915
916        var errorHandler = function errorHandler(event) {
917            eventHandler(event, false, instance);
918            removeEventListeners(element, loadHandler, errorHandler);
919        };
920
921        addEventListeners(element, loadHandler, errorHandler);
922    };
923
924    var managedTags = ["IMG", "IFRAME", "VIDEO"];
925
926    var onEnter = function onEnter(element, instance) {
927        var settings = instance._settings;
928        callbackIfSet(settings.callback_enter, element);
929
930        if (!settings.load_delay) {
931            revealAndUnobserve(element, instance);
932            return;
933        }
934
935        delayLoad(element, instance);
936    };
937
938    var revealAndUnobserve = function revealAndUnobserve(element, instance) {
939        var observer = instance._observer;
940        revealElement(element, instance);
941
942        if (observer && instance._settings.auto_unobserve) {
943            observer.unobserve(element);
944        }
945    };
946
947    var onExit = function onExit(element, instance) {
948        var settings = instance._settings;
949        callbackIfSet(settings.callback_exit, element);
950
951        if (!settings.load_delay) {
952            return;
953        }
954
955        cancelDelayLoad(element);
956    };
957
958    var cancelDelayLoad = function cancelDelayLoad(element) {
959        var timeoutId = getTimeoutData(element);
960
961        if (!timeoutId) {
962            return; // do nothing if timeout doesn't exist
963        }
964
965        clearTimeout(timeoutId);
966        setTimeoutData(element, null);
967    };
968
969    var delayLoad = function delayLoad(element, instance) {
970        var loadDelay = instance._settings.load_delay;
971        var timeoutId = getTimeoutData(element);
972
973        if (timeoutId) {
974            return; // do nothing if timeout already set
975        }
976
977        timeoutId = setTimeout(function () {
978            revealAndUnobserve(element, instance);
979            cancelDelayLoad(element);
980        }, loadDelay);
981        setTimeoutData(element, timeoutId);
982    };
983
984    var revealElement = function revealElement(element, instance, force) {
985        var settings = instance._settings;
986
987        if (!force && getWasProcessedData(element)) {
988            return; // element has already been processed and force wasn't true
989        }
990
991        if (managedTags.indexOf(element.tagName) > -1) {
992            addOneShotEventListeners(element, instance);
993            addClass(element, settings.class_loading);
994        }
995
996        setSources(element, instance);
997        setWasProcessedData(element);
998        callbackIfSet(settings.callback_reveal, element);
999        callbackIfSet(settings.callback_set, element);
1000    };
1001
1002    var isIntersecting = function isIntersecting(entry) {
1003        return entry.isIntersecting || entry.intersectionRatio > 0;
1004    };
1005
1006    var getObserverSettings = function getObserverSettings(settings) {
1007        return {
1008            root: settings.container === document ? null : settings.container,
1009            rootMargin: settings.thresholds || settings.threshold + "px"
1010        };
1011    };
1012
1013    var setObserver = function setObserver(instance) {
1014        if (!supportsIntersectionObserver) {
1015            return false;
1016        }
1017
1018        instance._observer = new IntersectionObserver(function (entries) {
1019            entries.forEach(function (entry) {
1020                return isIntersecting(entry) ? onEnter(entry.target, instance) : onExit(entry.target, instance);
1021            });
1022        }, getObserverSettings(instance._settings));
1023        return true;
1024    };
1025
1026    var nativeLazyTags = ["IMG", "IFRAME"];
1027
1028    var shouldUseNative = function shouldUseNative(settings) {
1029        return settings.use_native && "loading" in HTMLImageElement.prototype;
1030    };
1031
1032    var loadAllNative = function loadAllNative(instance) {
1033        instance._elements.forEach(function (element) {
1034            if (nativeLazyTags.indexOf(element.tagName) === -1) {
1035                return;
1036            }
1037
1038            element.setAttribute("loading", "lazy");
1039            revealElement(element, instance);
1040        });
1041    };
1042
1043    var nodeSetToArray = function nodeSetToArray(nodeSet) {
1044        return Array.prototype.slice.call(nodeSet);
1045    };
1046
1047    var queryElements = function queryElements(settings) {
1048        return settings.container.querySelectorAll(settings.elements_selector);
1049    };
1050
1051    var getElements = function getElements(elements, settings) {
1052        return purgeProcessedElements(nodeSetToArray(elements || queryElements(settings)));
1053    };
1054
1055    var LazyLoad = function LazyLoad(customSettings, elements) {
1056        this._settings = getInstanceSettings(customSettings);
1057        this._loadingCount = 0;
1058        setObserver(this);
1059        this.update(elements);
1060    };
1061
1062    LazyLoad.prototype = {
1063        update: function update(elements) {
1064            var _this = this;
1065
1066            var settings = this._settings;
1067            this._elements = getElements(elements, settings);
1068
1069            if (isBot || !this._observer) {
1070                this.loadAll();
1071                return;
1072            }
1073
1074            if (shouldUseNative(settings)) {
1075                loadAllNative(this);
1076                this._elements = getElements(elements, settings);
1077            }
1078
1079            this._elements.forEach(function (element) {
1080                _this._observer.observe(element);
1081            });
1082        },
1083        destroy: function destroy() {
1084            var _this2 = this;
1085
1086            if (this._observer) {
1087                this._elements.forEach(function (element) {
1088                    _this2._observer.unobserve(element);
1089                });
1090
1091                this._observer = null;
1092            }
1093
1094            this._elements = null;
1095            this._settings = null;
1096        },
1097        load: function load(element, force) {
1098            revealElement(element, this, force);
1099        },
1100        loadAll: function loadAll() {
1101            var _this3 = this;
1102
1103            this._elements.forEach(function (element) {
1104                revealAndUnobserve(element, _this3);
1105            });
1106        }
1107    };
1108    /* Automatic instances creation if required (useful for async script loading) */
1109
1110    if (runningOnBrowser) {
1111        autoInitialize(LazyLoad, window.lazyLoadOptions);
1112    }
1113
1114    return LazyLoad;
1115    });
1116;var Utils = new (function () {
1117  var self = this;
1118
1119  this.validate = function (value) {
1120    return !(value == null || value == undefined || value == '');
1121  };
1122
1123  this.validateEmail = function (email) {
1124    var re = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
1125    return re.test(String(email).toLowerCase());
1126  };
1127
1128  this.getLinkerParameters = function (url) {
1129    const formNode = document.createElement('FORM');
1130    formNode.action = url;
1131    formNode.style.opacity = '0';
1132    formNode.addEventListener('submit', (event) => {
1133      event.preventDefault();
1134    });
1135    const buttonNode = document.createElement('BUTTON');
1136    buttonNode.type = 'submit';
1137    formNode.append(buttonNode);
1138    document.body.append(formNode);
1139    buttonNode.click();
1140    document.body.removeChild(formNode);
1141    const _glNode = formNode.querySelector('input[name="_gl"]');
1142    console.log(formNode);
1143    if (_glNode) {
1144      return "_gl="+_glNode.value;
1145    }
1146    return '';
1147  };
1148
1149  this.getUTMParameters = function () {
1150    var utms = '';
1151
1152    if (Object.keys(_UTMParameters).length > 0) {
1153      var arrayOfUTMParameters = Object.entries(_UTMParameters);
1154
1155      arrayOfUTMParameters.forEach((utm) => {
1156        utms += `&${utm[0]}=${utm[1]}`;
1157      });
1158    }
1159
1160    if (utms === '') {
1161      // Navegação interna (site -> motor) sem UTM real: não injetar UTM.
1162      // A UTM "website/search-box" sobrescrevia a origem real (orgânico/direto/
1163      // referral) e caía em "Unassigned" no GA4 por não ser um medium válido.
1164      return '';
1165    }
1166
1167    return utms;
1168  };
1169
1170  this.openUrl = function (url, newWindow = false) {
1171    const gl = this.getLinkerParameters(url)
1172    var link = document.createElement('a');
1173    link.style.display = 'none';
1174    link.href = url
1175    if(gl) {
1176      link.href += (url.includes('?') ? '&' : '?') + gl;
1177    }
1178    document.body.appendChild(link);
1179    if (newWindow) {
1180      link.target = '_blank';
1181    }
1182    link.click();
1183    document.body.removeChild(link);
1184  };
1185})();
1186
1187;

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.