PageSourceSearch

https://www.hotelamericabarcelona.com/js/booking.js?v=1.0.15

js hotelamericabarcelona.com collected 2026-10-03 23:22:03 UTC 14,976 bytes, 1 lines download raw bytes

1var SETTINGS={default:{show:["datein","dateout","adults","rooms"],allowedFields:["language","datein","dateout","rooms","adults","room","offer","code","calendar","_ga"],dateFormat:"D-M-Y",target:"_blank",fields:{language:"lang",hotel:"destination",datein:"arrival",dateout:"departure",nigths:"nigths",rooms:"rooms",adults:"adults",code:"code",_ga:"_ga",room:"roomid",offer:"packid",section:"",calendar:"Flex"},extraFields:{}},travelclick:{show:["datein","dateout","adults","rooms"],allowedFields:["language","datein","dateout","rooms","adults","room","offer","code","calendar","length","_ga"],dateFormat:"M/D/Y",target:"_blank",fields:{language:"languageID",hotel:"destination",datein:"datein",dateout:"dateout",nigths:"Length",rooms:"rooms",adults:"adults",code:"discount",_ga:"_ga",room:"RoomTypeID",offer:"RatePlanId",section:"",calendar:"calendar",length:"Length"},extraFields:{}},neobookings:{show:["datein","dateout","adults","rooms"],allowedFields:["language","datein","dateout","rooms","adults","room","offer","code","_ga"],dateFormat:"D-M-Y",target:"_blank",fields:{language:"lang",hotel:"destination",datein:"arrival",dateout:"departure",nigths:"nigths",rooms:"rooms",adults:"adults",code:"promo",_ga:"_ga",room:"roomid",offer:"rateid",section:"",calendar:"calendar"},extraFields:{}},mirai:{show:["datein","dateout","adults","rooms"],allowedFields:["language","datein","dateout","rooms","adults","room","offer","code","_ga","hotel_id","nights","hsri","home"],dateFormat:"D/M/Y",target:"_self",fields:{language:"lang",hotel:"destination",datein:"checkin",dateout:"checkout",nights:"nights",rooms:"rooms",adults:"adults",code:"clientCode",_ga:"_ga",room:"roomTypeId",offer:"idoffers",section:"",calendar:"calendar",hotel_id:"idtokenprovider",hsri:"hsri",home:"home"},extraFields:{}},witbooking:{show:["datein","dateout","adults","rooms"],allowedFields:["datein","dateout","rooms","adults","room","offer","code","_ga"],dateFormat:"D-M-Y",target:"_blank",fields:{hotel:"destination",datein:"datein",dateout:"dateout",nigths:"nigths",rooms:"rooms",adults:"adults",code:"prom",_ga:"_ga",room:"roomid",offer:"packid",section:"",calendar:"calendar"},extraFields:{}},tesipro:{show:["datein","dateout","adults","rooms"],allowedFields:["language","datein","dateout","rooms","adults","room","offer","code","_ga","hotel_id"],dateFormat:"D-M-Y",target:"_blank",method:"POST",fields:{language:"lang",hotel:"destination",datein:"checkin",dateout:"checkout",nigths:"nigths",rooms:"rooms",adults:"adults",code:"promocode",_ga:"_ga",room:"roomid",offer:"packid",section:"",calendar:"calendar",hotel_id:"destination"},extraFields:{}},synergy:{show:["datein","dateout","adults","rooms"],allowedFields:["language","datein","dateout","rooms","adults","room","offer","code","_ga","hotel_id"],dateFormat:"Y-M-D",target:"_blank",method:"POST",fields:{language:"lang",hotel:"destination",datein:"start",dateout:"end",nigths:"nigths",rooms:"rooms",adults:"guests[0][adults]",code:"promotion_code",_ga:"_ga",room:"roomid",offer:"packid",section:"",calendar:"calendar",hotel_id:"id_hotel"},extraFields:{}},hotelnet:{show:["datein","dateout","adults","rooms","code"],allowedFields:["language","datein","dateout","rooms","adults","room","offer","code","_ga","hotel_id","nights","hsri","home"],dateFormat:"Y-M-D",target:"_blank",fields:{language:"lingua",datein:"arrivo",dateout:"partenza",nights:"nights",rooms:"camere",adults:"adults",code:"promo",_ga:"_ga",room:"roomTypeId",offer:"idoffers",section:"",calendar:"calendar",hotel_id:"hotel",hsri:"hsri",home:"home"},extraFields:{}},omnibees:{show:["datein","dateout","adults","rooms","code"],allowedFields:["language","datein","dateout","rooms","adults","code","hotel_id","_ga"],dateFormat:"DMY",target:"_blank",fields:{language:"lang",datein:"CheckIn",dateout:"CheckOut",rooms:"NRooms",adults:"ad",code:"Code",hotel_id:"q",_ga:"_ga"},extraFields:{}}};const travelclickLanguageCodes={en:1,es:2,fr:3,pt:4,zh:5,ja:6,de:7,it:8,ru:9,ar:15,ca:20},omnibeesLanguageCodes={en:"en-US",es:"es-ES",fr:"fr-FR",pt:"pt-BR","pt-br":"pt-BR","pt-pt":"pt-BR"};class BookingDate{constructor(e="D/M/Y",t="/"){this.format=e,this.delimiter=t,this.positions=this.convertToPositions(e,t)}convertToPositions(e,t="/"){let a=e.split(t);return{day:a.indexOf("D"),month:a.indexOf("M"),year:a.indexOf("Y")}}parseStringToDate(e,t=!1){let a=0,i=0,l=0;if(e.indexOf(this.delimiter)!==-1){let o=e.split(this.delimiter);a=parseInt(o[this.positions.day]),i=parseInt(t?o[this.positions.month]-1:o[this.positions.month]),l=parseInt(o[this.positions.year])}return{date:e,day:a.toString().padStart(2,"0"),month:i.toString().padStart(2,"0"),year:l}}
1getNextDate(e){let t=this.parseStringToDate(e,!0),a=new Date(t.year,t.month,t.day);a.setTime(a.getTime()+1440*60*1e3);let i=a.getDate(),l=a.getMonth()+1,o=a.getFullYear(),n=a.getMonth();return i<10&&(i="0"+i),l<10&&(l="0"+l),{date:new Date(o,n,i),dateStr:i+this.delimiter+l+this.delimiter+o,day:i,month:l,year:o}}}async function getGtagTrackerCode(){try{return await new Promise(e=>{console.log(analyticsCode),gtag("get",analyticsCode,"client_id",e)})}catch(d){return console.log(d),null}}class BookingEngine{constructor(e,t,a,i="#booking-form"){this.clientId="",this.engine=e,this.settings=t!==void 0?t:{allowedFields:["language","hotel","checkIn","checkOut","adults","promotionCode","_ga"],dateFormat:"D-M-Y",fields:{language:"lang",hotel:"destination",datein:"checkin",dateout:"checkout",nigths:"nigths",rooms:"rooms",adults:"adults",code:"promocode",room:"roomid",offer:"offerid",_ga:"_ga",section:""},extraFields:{}},this.bookingDate=a!==void 0?a:new BookingDate,this.form=document.querySelector(i)}setAllowedField(e,t){let a=this.settings.fields[e];if(e==="language"&&this.engine==="travelclick"&&(t=travelclickLanguageCodes[t]??t),e==="language"&&this.engine==="omnibees"){const i=String(t||"").toLowerCase();t=i.startsWith("pt")?"pt-BR":omnibeesLanguageCodes[i]??"en-US"}if(e==="datein"||e==="dateout"){if(this.engine==="omnibees"&&String(t).includes(","))t=t;else{let i=this.bookingDate.parseStringToDate(t);t=this.settings.dateFormat.replace("D",i.day).replace("M",i.month).replace("Y",i.year)}this.settings.allowedFields.indexOf(e)}if(e==="calendar"&&document.querySelector('[name*="flex"]')&&document.querySelector('[name*="flex"]').checked&&(t="Flex"),e==="length"&&document.querySelector('[name*="calendar"]').value==="Flex"){let l=this.form.querySelector('[name*="datein"]').value.split("/"),o=parseInt(l[1]),n=parseInt(l[0])-1,r=parseInt(l[2]),u=new Date(r,n,o),g=this.form.querySelector('[name*="dateout"]').value.split("/"),p=parseInt(g[1]),h=parseInt(g[0])-1,s=parseInt(g[2]),k=(new Date(s,h,p)-u)/1e3;t=Math.floor(k/86400)}this.settings.allowedFields.indexOf(e)!==-1&&t!==""&&t!==void 0&&this.setField(a,t)}setField(e,t){let a=document.createElement("input");a.setAttribute("type","hidden"),a.setAttribute("id",e),a.setAttribute("name",e),a.setAttribute("value",t),this.form.appendChild(a)}getOmnibeesEffectiveRoomCount(e,t){let a=parseInt(e,10)||1,i=parseInt(t,10)||1;return Math.max(1,Math.min(a,i))}buildOmnibeesAdultsByRoom(e,t){let a=parseInt(e,10)||1,i=this.getOmnibeesEffectiveRoomCount(e,t),l=Math.floor(a/i),o=a%i,n=[];for(let r=0;r<i;r++)n.push(l+(r<o?1:0));return n.join(",")}buildOmnibeesDatesByRoom(e,t){let a=this.getOmnibeesEffectiveRoomCount(t,t),i=this.bookingDate.parseStringToDate(e),l=this.settings.dateFormat.replace("D",i.day).replace("M",i.month).replace("Y",i.year);return Array(a).fill(l).join(",")}async setFields(e){let t=e.querySelector('[name*="adults"]')?e.querySelector('[name*="adults"]').value:2,a=e.querySelector('[name*="rooms"]')?e.querySelector('[name*="rooms"]').value:1,i=this.engine==="omnibees"&&parseInt(a,10)>1,l=i?this.getOmnibeesEffectiveRoomCount(t,a):null;if(e.querySelector('[name="hotel"]')&&this.setAllowedField("hotel",e.querySelector('[name="hotel"]').value),e.querySelector('[name="language"]')&&this.setAllowedField("language",e.querySelector('[name="language"]').value),e.querySelector('[name*="datein"]')){let o=e.querySelector('[name*="datein"]').value;this.setAllowedField("datein",i?this.buildOmnibeesDatesByRoom(o,l):o)}if(e.querySelector('[name*="dateout"]')){let o=e.querySelector('[name*="dateout"]').value;this.setAllowedField("dateout",i?this.buildOmnibeesDatesByRoom(o,l):o)}if(this.setAllowedField("adults",i?this.buildOmnibeesAdultsByRoom(t,l):t),this.engine==="hotelnet"&&this.setField("camere","1!"+t),e.querySelector('[name*="rooms"]')&&(this.setAllowedField("rooms",i?l:a),this.engine==="synergy"&&a>1)){a=a>t?t:a;let o=Math.floor(t/a),n=t%a;for(let r=0;r<a;r++)this.setField("guests["+r+"][adults]",r===0?o+n:o)}if(e.querySelector('[name*="offer"]')){let o=e.querySelector('[name*="offer"]').value,n=o?o.split("="):[];n&&n.length>1?this.setField(n[0],n[1]):this.setAllowedField("offer",o)}if(e.querySelector('[name="room"]')&&this.setAllowedField("room",e.querySelector('[name="room"]').value),e.querySelector('[name*="code"]')&&this.setAllowedField("code",e.querySelector('[name*="code"]').value),e.querySelector('[name*="calendar"]')&&this.setAllowedField("calendar",e.querySelector('[name*="calendar"]').value),e.querySelector('[name*="length"]')&&this.setAllowedField("length",e.querySelector('[name*="length"]').value),e.querySelector('[name="hotel_id"]')?this.setAllowedField("hotel_id",e.querySelector('[name="hotel_id"]').value):this.setAllowedField("hotel_id",bookingHotelId),e.querySelector('[name*="nights"]'))this.setAllowedField("nights",e.querySelector('[name*="nights"]').value);else if(e.querySelector('[name*="datein"]')&&e.querySelector('[name*="dateout"]')){let o=e.querySelector('[name*="datein"]').value,
1n=e.querySelector('[name*="dateout"]').value,r=this.getNights(o,n);this.setAllowedField("nights",r||1)}e.querySelector('[name="hsri"]')?this.setAllowedField("hsri",e.querySelector('[name="hsri"]').value):this.setAllowedField("hsri",bookingHSRI),this.form.target=this.settings.target?this.settings.target:"_blank"}getNights(e,t){let a=e.split(this.bookingDate.delimiter),i=a[this.bookingDate.positions.year]+"-"+a[this.bookingDate.positions.month]+"-"+a[this.bookingDate.positions.day],l=t.split(this.bookingDate.delimiter),o=l[this.bookingDate.positions.year]+"-"+l[this.bookingDate.positions.month]+"-"+l[this.bookingDate.positions.day],n=new Date(i).getTime();return(new Date(o).getTime()-n)/(1e3*60*60*24)}submit(e){this.form||(this.form=e),this.initForm(),this.setFields(e).then(async()=>{for(let t in this.settings.extraFields)this.setField(t,this.settings.extraFields[t]);document.querySelector('[name*="flex"]')&&document.querySelector('[name*="flex"]').checked&&this.form.querySelector('[name*="dateout"]').remove();try{let t=await getGtagTrackerCode();t!==null&&this.setAllowedField("_ga",t)}catch(t){console.log(t)}this.send()})}initForm(){this.form.innerHTML=""}send(){this.engine!=="default"&&this.form.submit()}}function processBookingForm(d){bookingEngineName=bookingEngineName!==void 0?bookingEngineName:"default";let e=new BookingDate,t=new BookingEngine(bookingEngineName,SETTINGS[bookingEngineName],e);d.addEventListener("submit",function(o){return o.preventDefault(),t.submit(this),!1});var a=document.querySelectorAll(".js-booking-field");a.forEach(function(o){let n=o.querySelector(".js-booking-field-select");n&&n.addEventListener("change",function(){o.querySelector(".js-booking-field-value").innerHTML=this.value})});function i(o){let n=d.querySelector(".js-"+o+'__datepicker-field[datepicker-field="date-out"]');d.querySelectorAll(".js-"+o+"__datepicker-field").forEach(function(u){let c=u.querySelector(".js-"+o+"__datepicker-layer"),g=u.querySelector(".js-"+o+"__datepicker"),p=u.querySelector(".js-"+o+"__datepicker-container"),h=flatpickr(u,{dateFormat:"d/m/Y",altFormat:"d/m/Y",allowInput:!0,disableMobile:!0,minDate:"today",monthSelectorType:"static",appendTo:p,wrap:!0,locale:currentLanguage,onChange:[function(s,m,k){let f=e.getNextDate(m);c.querySelector(".js-"+o+"__datepicker-day").innerHTML=h.formatDate(s[0],"d"),c.querySelector(".js-"+o+"__datepicker-month").innerHTML=h.formatDate(s[0],"M"),g.value=m,u.getAttribute("datepicker-field")==="date-in"&&(n._flatpickr.set("minDate",f.dateStr,s[0]),n._flatpickr.jumpToDate(f.dateStr,!1),n._flatpickr.setDate(f.date),n.querySelector(".js-"+o+"__datepicker").value=f.dateStr,n.querySelector(".js-"+o+"__datepicker-day").innerHTML=h.formatDate(f.date,"d"),n.querySelector(".js-"+o+"__datepicker-month").innerHTML=h.formatDate(f.date,"M"))}]})})}let l=document.querySelector(".js-booking-action");l&&l.addEventListener("click",async function(o){o.preventDefault(),t.initForm(),t.setAllowedField("language",currentLanguage),t.submit(d)}),i("booking-block")}document.addEventListener("DOMContentLoaded",function(){let d=document.querySelector(".js-booking-layer-form");if(d){let o=function(n){let r=document.querySelector(".js-"+n+'__datepicker-field[datepicker-field="date-out"]');document.querySelectorAll(".js-"+n+"__datepicker-field").forEach(function(c){let g=c.querySelector(".js-"+n+"__datepicker-layer"),p=c.querySelector(".js-"+n+"__datepicker"),h=c.querySelector(".js-"+n+"__datepicker-container"),s=flatpickr(c,{dateFormat:"d/m/Y",altFormat:"d/m/Y",allowInput:!0,disableMobile:!0,minDate:"today",monthSelectorType:"static",appendTo:h,wrap:!0,locale:currentLanguage,onChange:[function(m,k,f){let y=i.getNextDate(k);g.querySelector(".js-"+n+"__datepicker-day").innerHTML=s.formatDate(m[0],"d"),g.querySelector(".js-"+n+"__datepicker-month").innerHTML=s.formatDate(m[0],"M"),p.value=k,c.getAttribute("datepicker-field")==="date-in"&&(r._flatpickr.set("minDate",y.dateStr,m[0]),r._flatpickr.jumpToDate(y.dateStr,!1),r._flatpickr.setDate(y.date),r.querySelector(".js-"+n+"__datepicker").value=y.dateStr,r.querySelector(".js-"+n+"__datepicker-day").innerHTML=s.formatDate(y.date,"d"),r.querySelector(".js-"+n+"__datepicker-month").innerHTML=s.formatDate(y.date,"M"))}]})})};var a=o;bookingEngineName=bookingEngineName!==void 0?bookingEngineName:"default";let i=new BookingDate,l=new BookingEngine(bookingEngineName,SETTINGS[bookingEngineName],i);d.addEventListener("submit",function(n){return n.preventDefault(),l.submit(this),!1});var e=document.querySelectorAll(".js-booking-field-layer");e.forEach(function(n){let r=n.querySelector(".js-booking-field-select-layer");r&&r.addEventListener("change",function(){n.querySelector(".js-booking-field-value-layer").innerHTML=this.value})}),o("booking-block-layer")}let t=document.querySelectorAll(".js-booking-block-form");if(t&&t.length>0)t.forEach(i=>
1{processBookingForm(i)});else{let i=document.querySelector(".js-booking-action");i&&i.addEventListener("click",async function(l){l.preventDefault(),bookingEngineName=bookingEngineName!==void 0?bookingEngineName:"default";let o=new BookingDate,n=new BookingEngine(bookingEngineName,SETTINGS[bookingEngineName],o);bookingForm=document.createElement("form"),n.initForm(),n.setAllowedField("language",currentLanguage),n.submit(bookingForm)})}});

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.