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.