/*FETCH*/ if (typeof NeoModules === "undefined") { var NeoModules = {}; } (function () { if (typeof window.HttpRequestException === "undefined") { window.HttpRequestException = class HttpRequestException { constructor(message) { this.name = "HttpRequestException"; this.message = message ? message : "Ha ocurrido un error en la solicitud"; } }; } })(); function isEmptyObject(obj) { return Object.entries(obj).length === 0 && obj.constructor === Object; } function getHeaders(token) { let headers = { "Content-Type": "application/json", Accept: "application/json", }; if (token) headers["Authorization"] = `Bearer ${token}`; return headers; } async function neoApiPost(endpoint, data, overrideApi, overrideConfig) { let config = { method: "POST", headers: getHeaders("114|LuhhnXez3aq5tl9CGzdBH0NoNLA4HkMg9777vD5Nc5926620"), body: JSON.stringify(data), }; // Check if overrideConfig is an object and not empty if ( overrideConfig && typeof overrideConfig === "object" && !isEmptyObject(overrideConfig) ) { config = { ...config, ...overrideConfig, }; } const apiGatewayEndPoint = $("#location-autocomplete-container").attr( "gateWay" ); let baseURL = apiGatewayEndPoint; if (overrideApi) baseURL = overrideApi; if (!baseURL) throw "No se definió correctamente el endpoint"; if (config.headers.Authorization === "Bearer ") throw "Token ausente"; const url = baseURL + endpoint; if (typeof FnLoadingON === "function") FnLoadingON(); return fetch(url, config) .then((response) => { if (typeof FnLoadingOFF === "function") FnLoadingOFF(); if (!response.ok) { return response.json().then((errorData) => { let errorMessage = errorData.message || "Error en la solicitud"; if (errorData?.kick_user) { MostrarError("Tu sesión ha expirado. Por favor, vuelve a ingresar"); window.location.reload(); } else { MostrarError(errorMessage); } throw new NeoModules.HttpRequestException(errorMessage); }); } return response.json(); }) .then((data) => { if (data.response === 0 || data.Response === 0) { if (data.message && typeof MostrarError === "function") MostrarError(data.message); } return data; }) .catch((error) => { if (typeof FnLoadingOFF === "function") FnLoadingOFF(); if (error instanceof NeoModules.HttpRequestException) { throw error; } else { if (error.message === "Network Error") error.message = "Error de comunicación con el servidor"; MostrarError(`Ha ocurrido un error. ${error.message}`); throw new NeoModules.HttpRequestException(error.message); } }); } /* MARKETPLACE_BUSCADOR_v3 JS.JS BEGIN */ function initBuscador() { console.log("Init Buscador"); // Check and log timezone and days modifier console.log("Using timezone: " + getValidTimezone()); var daysModifier = getDaysModifier(); if (daysModifier !== 0) { console.log("Applying global days modifier: " + daysModifier + " days"); } $(".filtersku i").click(function (e) { $(".filtersku").remove(); $(".filterby").remove(); $(".skufilercontainer input").val(""); }); if (!tagPxsolEngine) { var tagPxsolEngine = setTag(); } var locationChoosenClick = false; var lng = $(".neo_marketplace_buscador_v3 #dataconfig").attr("lng"); var DatePickerStart = $(".neo_marketplace_buscador_v3 #dataconfig").attr( "DatePickerStart" ); DatePickerStart = DatePickerStart * 1; $(".ModuloWrap_marketplace_buscador_v3").click(function () { $(this).removeClass("isolate"); }); var required_txt_date = "Please select a date"; var required_txt_search = "Please select a destination"; if (LngTk == "es") { required_txt_date = "Por favor seleccione una Fecha"; required_txt_search = "Por favor seleccione una destino"; } if (LngTk == "pt") { required_txt_date = "Selecione uma data"; required_txt_search = "Seleccione um destino"; } $(".neo_marketplace_buscador_v3 #pxmk_searchform").validate({ rules: { Search: { required: true, }, Start: { required: true, }, End: { required: true, }, }, messages: { Search: { required: required_txt_search, }, Start: { required: required_txt_date, }, End: { required: required_txt_date, }, }, }); function SetPartyGroup() { var PartyTypeVal = $(".neo_marketplace_buscador_v3 #PartyType").val(); if (PartyTypeVal === "single") { $(".neo_marketplace_buscador_v3 #GroupsForm").val("1:1,0,0"); } if (PartyTypeVal === "double") { $(".neo_marketplace_buscador_v3 #GroupsForm").val("1:2,0,0"); } if (PartyTypeVal === "multiple" || PartyTypeVal == "familiar") { $(".neo_marketplace_buscador_v3 #MultiplePartySelect").css( "display", "flex" ); CalculatePartyGroup(); } else { $(".neo_marketplace_buscador_v3 #MultiplePartySelect").hide(); } } // Get valid timezone or fallback to default function getValidTimezone() { const timezoneElement = document.querySelector(".neo_marketplace_buscador_v3 #ProductTimezone"); let timezone = timezoneElement ? timezoneElement.value : null; // Check if timezone input exists and has a value if (!timezone) { return "America/Argentina/Mendoza"; } // Validate timezone try { Intl.DateTimeFormat(undefined, { timeZone: timezone }); return timezone; } catch (e) { console.warn("Invalid timezone: " + timezone + ". Falling back to default."); return "America/Argentina/Mendoza"; } } // Get global days modifier for testing function getDaysModifier() { const modifierElement = document.querySelector(".neo_marketplace_buscador_v3 #GlobalDaysModifier"); let modifier = modifierElement ? modifierElement.value : null; if (modifier && !isNaN(parseInt(modifier))) { return parseInt(modifier); } return 0; } // Apply the global days modifier to a date function applyDaysModifier(date) { const modifier = getDaysModifier(); if (modifier !== 0) { date.setDate(date.getDate() + modifier); } return date; } $(".neo_marketplace_buscador_v3 .CalculateParty").change(function () { CalculatePartyGroup(); }); var InitialContent = $( ".neo_marketplace_buscador_v3 .RoomsSelectContainer[roomnumber='1']" ).html(); var MaxRooms = Number($(".neo_marketplace_buscador_v3 #MaxRooms").val()); $(".neo_marketplace_buscador_v3 .px-mk-addnewroom").off(); $(".neo_marketplace_buscador_v3 .px-mk-addnewroom").click(function () { $(".neo_marketplace_buscador_v3 .px-mk-removeroom").show(); var CurrentRooms = $( ".neo_marketplace_buscador_v3 .RoomsSelectContainer" ).length; if (CurrentRooms < MaxRooms) { var LastRoomNumber = $(".neo_marketplace_buscador_v3 .RoomsSelectContainer") .last() .attr("roomnumber"); var NewRoomNumber = Number(LastRoomNumber) + 1; var NewContent = '
' + InitialContent + "
"; $(NewContent).insertAfter( $(".neo_marketplace_buscador_v3 .RoomsSelectContainer").last() ); $( ".neo_marketplace_buscador_v3 .RoomsSelectContainer[roomnumber='" + NewRoomNumber + "']" ) .find("#RoomNumber") .text(NewRoomNumber); $( ".neo_marketplace_buscador_v3 .RoomsSelectContainer[roomnumber='" + NewRoomNumber + "']" ) .find("[roomnumber]") .attr("roomnumber", NewRoomNumber); if (Number(CurrentRooms + 1) === Number(MaxRooms)) { $(".neo_marketplace_buscador_v3 .px-mk-addnewroom").hide(); } } CalculatePartyGroup(); }); $(".neo_marketplace_buscador_v3 #PartyType").change(function () { SetPartyGroup(); }); SetPartyGroup(); console.log("Init rmRoom"); $(".neo_marketplace_buscador_v3 .px-mk-removeroom-btn").off(); $(".neo_marketplace_buscador_v3 .px-mk-removeroom-btn").click(function () { var MaxRooms = $(".neo_marketplace_buscador_v3 #MaxRooms").val(); var CurrentRooms = $( ".neo_marketplace_buscador_v3 .RoomsSelectContainer" ).length; //console.log(CurrentRooms+" < "+MaxRooms); $(".neo_marketplace_buscador_v3 .RoomsSelectContainer").last().remove(); if (Number(CurrentRooms - 1) < Number(MaxRooms)) { $(".neo_marketplace_buscador_v3 .px-mk-addnewroom").show(); } if (Number(CurrentRooms - 1) === 1) { $(".neo_marketplace_buscador_v3 .px-mk-removeroom").hide(); } CalculatePartyGroup(); }); $(".neo_marketplace_buscador_v3 .SelectorInitial").click(function () { $(".neo_marketplace_buscador_v3 .PartyTypeSimulatorSelect").show(); }); $("body").click(function (e) { if ( !$(e.target).is(".neo_marketplace_buscador_v3 .SelectorInitial") && !$(e.target).parents(".SelectorInitial").length && !$(e.target).parents(".PartyTypeSimulatorSelect").length ) { $(".PartyTypeSimulatorSelect").hide(); } }); $(".neo_marketplace_buscador_v3 .PartyTypeSimulatorSelect .Selector").click( function () { var PartyType = $(this).attr("rel"); $(".neo_marketplace_buscador_v3 #PartyType").val(PartyType); SetPartyGroup(); $(".neo_marketplace_buscador_v3 .SelectorInitial").hide(); $( ".neo_marketplace_buscador_v3 .SelectorInitial[rel='" + PartyType + "']" ).css("display", "flex"); $(".neo_marketplace_buscador_v3 .PartyTypeSimulatorSelect").hide(); } ); function ChildrensSelect(elem) { var RoomNumber = $(elem).attr("roomnumber"); var ChildrensQty = $(elem).val(); if (ChildrensQty > 0) { $( ".neo_marketplace_buscador_v3 .ChildrensAgesSelectContainer[roomnumber='" + RoomNumber + "']" ).html(""); $( ".neo_marketplace_buscador_v3 .ChildrensAges[roomnumber='" + RoomNumber + "']" ).show(); var ChildrensAgesContent = '"; for (var j = 1; j <= ChildrensQty; j++) { $( ".neo_marketplace_buscador_v3 .ChildrensAgesSelectContainer[roomnumber='" + RoomNumber + "']" ).append(ChildrensAgesContent); } } else { $( ".neo_marketplace_buscador_v3 .ChildrensAges[roomnumber='" + RoomNumber + "']" ).hide(); } CalculatePartyGroup(); } function CheckChildrens() { var ValidChildrens = 1; $(".neo_marketplace_buscador_v3 .NotValidChildrens").hide(); $(".neo_marketplace_buscador_v3 .ChildrensSelect").each(function () { var HasChilds = $(this).val(); var RoomNumber = $(this).attr("roomnumber"); if (HasChilds !== "0") { $( ".neo_marketplace_buscador_v3 .ChildrensAgesSelect[roomnumber='" + RoomNumber + "']" ).each(function () { if ($(this).val() === "") { ValidChildrens = 0; $(this).addClass("notvalid"); } }); } }); if (ValidChildrens === 0) { $(".neo_marketplace_buscador_v3 .NotValidChildrens").show(); } return ValidChildrens; } function CalculatePartyGroup(elem) { $(elem).removeClass("notvalid"); var RoomsQty = $(".neo_marketplace_buscador_v3 .RoomsSelectContainer").length; var PartyGroup = ""; var RoomsQtyLoop = 1; $(".neo_marketplace_buscador_v3 .RoomsSelectContainer").each(function () { PartyGroup += RoomsQtyLoop; if (RoomsQtyLoop <= RoomsQty) { RoomsQtyLoop = RoomsQtyLoop + 1; } var RoomNumber = $(this).attr("roomnumber"); var Adults = $( ".neo_marketplace_buscador_v3 .AdultsSelect[roomnumber='" + RoomNumber + "']" ).val(); if ($(".neo_marketplace_buscador_v3 #Combinations").length > 0) { var JsonCombinations = $( ".neo_marketplace_buscador_v3 #Combinations" ).text(); JsonCombinations = JSON.parse(JsonCombinations); $.each(JsonCombinations, function (i, item) { if (JsonCombinations[i].Adults === Adults) { console.log("MAXCHILDS=" + JsonCombinations[i].Childs); var DefaultChilds = $( ".neo_marketplace_buscador_v3 .ChildrensSelect[roomnumber='" + RoomNumber + "']" ).val(); console.log("DEFAULTCHILDS=" + DefaultChilds); $( ".neo_marketplace_buscador_v3 .ChildrensSelect[roomnumber='" + RoomNumber + "']" ).html(""); for (var c = 0; c <= JsonCombinations[i].Childs; c++) { if (c === 0) { var itext = "-"; } else { var itext = c; } $( ".neo_marketplace_buscador_v3 .ChildrensSelect[roomnumber='" + RoomNumber + "']" ).append('"); } $( ".neo_marketplace_buscador_v3 .ChildrensSelect[roomnumber='" + RoomNumber + "']" ).val(DefaultChilds); } }); } PartyGroup += ":" + Adults + ","; var Childrens = $( ".neo_marketplace_buscador_v3 .ChildrensSelect[roomnumber='" + RoomNumber + "']" ).val(); var BabiesQty = 0; var MaxAgeBabies = $( ".neo_marketplace_buscador_v3 #MaxAgeBabiesNumber" ).val(); var ChildrenPartyGroup = ""; if (Number(Childrens) !== 0) { $( ".neo_marketplace_buscador_v3 .ChildrensAgesSelect[roomnumber='" + RoomNumber + "']" ).each(function () { var ChildrensAgeValue = $(this).val(); console.log(ChildrensAgeValue); console.log("MaxAgeBabies=" + MaxAgeBabies); if (Number(ChildrensAgeValue) <= Number(MaxAgeBabies)) { BabiesQty += 1; } else { ChildrenPartyGroup += ChildrensAgeValue + "."; } }); if (ChildrenPartyGroup.indexOf(".") !== -1) { ChildrenPartyGroup = ChildrenPartyGroup.substr( 0, ChildrenPartyGroup.length - 1 ); } } else { ChildrenPartyGroup = "0"; } if (ChildrenPartyGroup === "") { ChildrenPartyGroup = "0"; } console.log(ChildrenPartyGroup); PartyGroup += ChildrenPartyGroup + "," + BabiesQty + ";"; }); PartyGroup = PartyGroup.substring(0, PartyGroup.length - 1); PartyGroup = PartyGroup.replace("0.0", "0"); console.log("PARTYGROUP=" + PartyGroup); $(".neo_marketplace_buscador_v3 #GroupsForm").val(PartyGroup); } $("body").on("click", function (e) { if ( !$(e.target).parents("#MultiplePartySelect").length && !$(e.target).parents('[rel="multiple"]').length && !$(e.target).is('[rel="multiple"]') ) { $(".neo_marketplace_buscador_v3 #MultiplePartySelect").hide(); } }); if ($(".neo_marketplace_buscador_v3 #fechaingreso").length) { function GetFormattedDate(dia) { var timezone = getValidTimezone(); var todayTime = new Date(new Date().toLocaleString("en-US", {timeZone: timezone})); // Apply global days modifier todayTime = applyDaysModifier(todayTime); if (dia !== null) { var manana = todayTime.setDate(todayTime.getDate() + dia); } var month = todayTime.getMonth() + 1; var day = todayTime.getDate(); var year = todayTime.getFullYear(); if (dia !== null) { return day + "/" + month + "/" + year; } else { return manana + "/" + month + "/" + year; } } function dateafter(entrada, salida) { var fechaegreso = $(entrada).val(); var newdate = fechaegreso.split("/").reverse().join("-"); var dt = $.datepicker.parseDate("yy-mm-dd", newdate); dt.setDate(dt.getDate() + 1); var dtNew = $.datepicker.formatDate("yy-mm-dd", dt); dtNew = dtNew.split("-").reverse().join("/"); $(salida).datepicker("setDate", dtNew); VerNoches(1); } var NochesError_txt = "Please select a check-out date"; if (lng == "es") { NochesError_txt = "Por favor seleccione una fecha de salida"; } if (lng == "pt") { NochesError_txt = "Por favor seleccione uma data de partida"; } function VerNoches(Noches) { if (Noches <= 0) { console.log(Noches); $(".neo_marketplace_buscador_v3 #NochesError").html(NochesError_txt); $(".neo_marketplace_buscador_v3 #NochesError").show(); $(".neo_marketplace_buscador_v3 #Nights").val(Noches); $(".neo_marketplace_buscador_v3 #NochesText").html( "" + Noches + "" ); } else { console.log(Noches); $(".neo_marketplace_buscador_v3 #NochesError").html(""); $(".neo_marketplace_buscador_v3 #NochesError").hide(); $(".neo_marketplace_buscador_v3 #Nights").val(Noches); $(".neo_marketplace_buscador_v3 #NochesText").html( "" + Noches + "" ); } } var Noches = ""; var Tiempo = ""; $( ".neo_marketplace_buscador_v3 #fechaingreso_icon,.fechas_ancho_entrada" ).click(function () { $(".neo_marketplace_buscador_v3 #fechaingreso").datepicker("show"); document.activeElement.blur(); $(".PartyTypeSimulatorSelect").hide(); }); $( ".neo_marketplace_buscador_v3 #fechaegreso_icon,.fechas_ancho_salida" ).click(function () { $(".neo_marketplace_buscador_v3 #fechaegreso").datepicker("show"); document.activeElement.blur(); $(".PartyTypeSimulatorSelect").hide(); }); $(".neo_marketplace_buscador_v3 #fechaingreso,.fechas_ancho_entrada").click( function () { document.activeElement.blur(); $(".PartyTypeSimulatorSelect").hide(); } ); $(".neo_marketplace_buscador_v3 #fechaegreso,.fechas_ancho_salida").click( function () { document.activeElement.blur(); $(".PartyTypeSimulatorSelect").hide(); } ); dateSelecionada1 = $(".neo_marketplace_buscador_v3 #fechaingreso").datepicker( "getDate" ); dateSelecionada2 = $(".neo_marketplace_buscador_v3 #fechaegreso").datepicker( "getDate" ); if (LngTk === "es") { (function (factory) { if (typeof define === "function" && define.amd) { // AMD. Register as an anonymous module. define(["../widgets/datepicker"], factory); } else { // Browser globals factory(jQuery.datepicker); } })(function (datepicker) { datepicker.regional.es = { closeText: "Cerrar", prevText: "<Ant", nextText: "Sig>", currentText: "Hoy", monthNames: [ "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre", ], monthNamesShort: [ "ene", "feb", "mar", "abr", "may", "jun", "jul", "ago", "sep", "oct", "nov", "dic", ], dayNames: [ "domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado", ], dayNamesShort: ["dom", "lun", "mar", "mié", "jue", "vie", "sáb"], dayNamesMin: ["D", "L", "M", "X", "J", "V", "S"], weekHeader: "Sm", dateFormat: "dd/mm/yy", firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: "", }; datepicker.setDefaults(datepicker.regional.es); return datepicker.regional.es; }); } if (LngTk === "pt") { (function (factory) { if (typeof define === "function" && define.amd) { // AMD. Register as an anonymous module. define(["../widgets/datepicker"], factory); } else { // Browser globals factory(jQuery.datepicker); } })(function (datepicker) { datepicker.regional[LngTk] = { closeText: "Fechar", prevText: "<Anterior", nextText: "Próximo>", currentText: "Hoje", monthNames: [ "Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro", ], monthNamesShort: [ "Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez", ], dayNames: [ "Domingo", "Segunda-feira", "Terça-feira", "Quarta-feira", "Quinta-feira", "Sexta-feira", "Sábado", ], dayNamesShort: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb"], dayNamesMin: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb"], weekHeader: "Sm", dateFormat: "dd/mm/yy", firstDay: 0, isRTL: false, showMonthAfterYear: false, yearSuffix: "", }; datepicker.setDefaults(datepicker.regional["pt-BR"]); return datepicker.regional["pt-BR"]; }); } $.datepicker.setDefaults($.datepicker.regional[LngTk]); function RunClosedOnArrival(disableddates) { disableddates = disableddates.split(","); var timezone = getValidTimezone(); $(".neo_marketplace_buscador_v3 #fechaingreso").datepicker({ dateFormat: "dd/mm/yy", showAnim: "", onSelect: function () { $(this).datepicker("hide"); dateSelecionada1 = $(this).datepicker("getDate"); $(".neo_marketplace_buscador_v3 #fechaegreso").val(""); dateSelecionada1.setDate(dateSelecionada1.getDate()); $(".neo_marketplace_buscador_v3 #fechaegreso").datepicker("option", "minDate", dateSelecionada1); VerNoches(0); dateafter($(this), ".neo_marketplace_buscador_v3 #fechaegreso"); setTimeout(() => { $(".neo_marketplace_buscador_v3 #fechaegreso").datepicker("show"); }, 100); }, beforeShowDay: function (date) { var sdate = $.datepicker.formatDate("yy-mm-dd", date); if ($.inArray(String(sdate), disableddates) !== -1) { return [false]; } return [true]; }, }); RunMinDate(); } function RunClosedOnDepartures(disableddates) { disableddates = disableddates.split(","); var timezone = getValidTimezone(); $(".neo_marketplace_buscador_v3 #fechaegreso").datepicker({ dateFormat: "dd/mm/yy", showAnim: "", onSelect: function () { dateSelecionada1 = $(".neo_marketplace_buscador_v3 #fechaingreso").datepicker("getDate"); dateSelecionada2 = $(".neo_marketplace_buscador_v3 #fechaegreso").datepicker("getDate"); one_day = 1000 * 60 * 60 * 24; Noches = Math.ceil((dateSelecionada2.getTime() - dateSelecionada1.getTime()) / one_day); VerNoches(Noches); $(".neo_marketplace_buscador_v3 #fechaegreso").valid(); }, beforeShowDay: function (date) { var sdate = $.datepicker.formatDate("yy-mm-dd", date); var today = new Date(new Date().toLocaleString("en-US", {timeZone: timezone})); today = applyDaysModifier(today); var smallerdate = new Date(sdate); if ($.inArray(String(sdate), disableddates) !== -1) { return [false]; } return [true]; }, }); RunMinDate(); } function RunMinDate() { var timezone = getValidTimezone(); var today = new Date(new Date().toLocaleString("en-US", {timeZone: timezone})); var tomorrow = new Date(new Date().toLocaleString("en-US", {timeZone: timezone})); // Apply global days modifier to today and tomorrow today = applyDaysModifier(today); tomorrow = applyDaysModifier(tomorrow); today.setDate(today.getDate()); tomorrow.setDate(tomorrow.getDate() + 1); $(".neo_marketplace_buscador_v3 #fechaingreso").datepicker("option", "minDate", new Date(new Date().getFullYear(), today.getMonth(), today.getDate())); $(".neo_marketplace_buscador_v3 #fechaegreso").datepicker("option", "minDate", new Date(new Date().getFullYear(), tomorrow.getMonth(), tomorrow.getDate())); if (dateSelecionada1 != null && dateSelecionada2 != null) { one_day = 1000 * 60 * 60 * 24; Tiempo = Math.ceil(dateSelecionada2.getTime() - dateSelecionada1.getTime()); Noches = Math.round(Tiempo / one_day); VerNoches(Noches); } var fullDate = new Date(new Date().toLocaleString("en-US", {timeZone: timezone})); fullDate = applyDaysModifier(fullDate); console.log(fullDate); var twoDigitMonth = fullDate.getMonth().length + 1 === 1 ? fullDate.getMonth() + 1 : "0" + (fullDate.getMonth() + 1); } $(".neo_marketplace_buscador_v3 #Nights").val("1"); } $(".neo_marketplace_buscador_v3 #LocationSearch").on("keydown", function (e) { var locDropdown = $(".px-mk-locationdropdown"); var itemClass = "px-mk-locationitem"; var suggestionHoverClass = "suggestion_hover"; if (e.key == "ArrowDown") { e.preventDefault(); if ($("." + suggestionHoverClass).length > 0) { if ( $(locDropdown) .find("." + suggestionHoverClass) .nextAll(":visible:first").length > 0 ) { var currentHover = $(locDropdown).find("." + suggestionHoverClass); $(currentHover) .nextAll(":visible:first") .addClass(suggestionHoverClass); $(currentHover).removeClass(suggestionHoverClass).focus(); var suggCont = $(locDropdown); var suggGoTo = $(currentHover).nextAll(":visible:first"); if ( suggGoTo.offset().top + suggGoTo.innerHeight() > suggCont.offset().top + suggCont.innerHeight() ) { suggCont.scrollTop(suggCont.scrollTop() + suggGoTo.innerHeight()); } } else { $("." + suggestionHoverClass).removeClass(suggestionHoverClass); $(locDropdown) .find("." + itemClass + ":visible:first") .addClass(suggestionHoverClass); var suggCont = $(locDropdown); suggCont.scrollTop(0); } } else { $(locDropdown) .find("." + itemClass + ":visible:first") .addClass(suggestionHoverClass); var currentHover = $(locDropdown).find("." + suggestionHoverClass); var suggCont = $(locDropdown); var suggGoTo = $(currentHover).nextAll(":visible:first"); suggCont.scrollTop(0); } } else if (e.key == "ArrowUp") { e.preventDefault(); if ($("." + suggestionHoverClass).length > 0) { if ( $(locDropdown) .find("." + suggestionHoverClass) .prevAll(":visible:first").length > 0 ) { var currentHover = $(locDropdown).find("." + suggestionHoverClass); $(currentHover) .prevAll(":visible:first") .addClass(suggestionHoverClass); $(currentHover).removeClass(suggestionHoverClass).focus(); var suggCont = $(locDropdown); var suggGoTo = $(currentHover).prevAll(":visible:first"); if (suggGoTo.offset().top < suggCont.offset().top) { suggCont.scrollTop( suggGoTo.offset().top - suggCont.offset().top + suggCont.scrollTop() ); } } else { $("." + suggestionHoverClass).removeClass(suggestionHoverClass); $(locDropdown) .find("." + itemClass + ":visible:last") .addClass(suggestionHoverClass); var currentHover = $(locDropdown).find("." + suggestionHoverClass); var suggCont = $(locDropdown); var suggGoTo = $(currentHover).prevAll(":visible:first"); suggCont.scrollTop( suggGoTo.offset().top - suggCont.offset().top + suggCont.scrollTop() ); } } else { $(locDropdown) .find("." + itemClass + ":visible:last") .addClass(suggestionHoverClass); var currentHover = $(locDropdown).find("." + suggestionHoverClass); var suggCont = $(locDropdown); var suggGoTo = $(currentHover).prevAll(":visible:first"); suggCont.scrollTop( suggGoTo.offset().top - suggCont.offset().top + suggCont.scrollTop() ); } } else if (e.key == "Enter") { e.preventDefault(); if (!$("." + itemClass + ":visible:not(.px-mk-everylocation)").length) { chooseLocation($(".px-mk-everylocation")); } else { var itemHighlighted = $(locDropdown).find("." + suggestionHoverClass); $("." + suggestionHoverClass).removeClass(suggestionHoverClass); chooseLocation(itemHighlighted); } } }); $(".neo_marketplace_buscador_v3 #LocationSearch").on( "click focus", function () { $(this).select(); $(this).select(); } ); $(".neo_marketplace_buscador_v3 #LocationSearch").on("blur", function (e) { setTimeout(function () { if (!locationChoosenClick && $("#LocationSearch").val() === "") { chooseLocation( $(".neo_marketplace_buscador_v3 .px-mk-locationitem:visible")[0] ); } else { locationChoosenClick = false; } }, 200); }); $(".neo_marketplace_buscador_v3 #LocationSearch").on("focus", function (e) { var locDropdown = $(".px-mk-locationdropdown"); $(locDropdown).addClass("activeAC"); }); $(".neo_marketplace_buscador_v3 #LocationSearch").on( "input paste focus", function (e) { var defSearch = false; if ( $.inArray($(this).val(), [ "Buscar en todas las ubicaciones", "Search in all locations", "Pesquisar em todos os locais", ]) !== -1 && $(this).val() ) { defSearch = true; } console.log(e.keyCode); var locDropdown = $(".px-mk-locationdropdown"); var searchTerm = $(this).val().toLowerCase(); var resultados = 0; $(locDropdown) .children() .each(function () { if ( $(this).text().toLowerCase().indexOf(searchTerm) !== -1 || defSearch ) { $(this).show(); resultados++; } else { $(this).hide(); } if ($(this).is(".px-mk-everylocation")) $(this).show(); }); if (resultados > 0) { $(locDropdown).addClass("activeAC"); } else { $(locDropdown).removeClass("activeAC"); } if (window.outerWidth < 650) { setTimeout(function () { $(window).scrollTop($("#LocationSearch").offset().top - 60); }, 100); } } ); $(document).on("click", function (e) { if ( !$(e.target).parents(".px-mk-locationdropdown").length && !$(e.target).is("#LocationSearch") ) { $(".px-mk-locationdropdown").removeClass("activeAC"); $(".suggestion_hover").removeClass("suggestion_hover"); } }); function chooseLocation(item) { var locDropdown = $(".px-mk-locationdropdown"); var locationID = $(item).attr("location-id"); var locationName = $.trim($(item).find(".px-mk-locationtxt").text()); $(".neo_marketplace_buscador_v3 #LocationSearch").val(locationName); $(".neo_marketplace_buscador_v3 #LocationID").val(locationID); $(".neo_marketplace_buscador_v3 #Location").val(locationName); if (!locationID) { $(".neo_marketplace_buscador_v3 #Location").val(""); } $(locDropdown).removeClass("activeAC"); locationChoosenClick = true; } $(".neo_marketplace_buscador_v3 .px-mk-locationitem").click(function () { chooseLocation(this); }); function loadProducts() { $(".px-mk-generalerror").hide(); var endPoint = $(".neo_marketplace_buscador_v3 #pxmk_searchform").attr( "px-endpoint" ); var ReturnUrl = $( ".neo_marketplace_buscador_v3 #MultiListID option:selected" ).attr("px-listurl"); var ListID = $(".neo_marketplace_buscador_v3 #MultiListID").val(); $(".neo_marketplace_buscador_v3 #ReturnUrl").val(ReturnUrl); $(".neo_marketplace_buscador_v3 #MultiProductID").addClass( "px-mk-disabled-temp" ); if (ListID !== "") { $.ajax(endPoint + "/list/info?id=" + ListID) .done(function (res) { let listData = res; var ownLP = $(".neo_marketplace_buscador_v3 #MultiProductID").attr("ownlp") === "true" ? true : false; $(".neo_marketplace_buscador_v3 #MultiProductID") .children() .not("[disabled]") .not("[value='everyproduct']") .remove(); $(".neo_marketplace_buscador_v3 #ProductID").val(""); $(".neo_marketplace_buscador_v3 #MultiProductID").val(""); $(".neo_marketplace_buscador_v3 #MultiProductID") .children("[value='everyproduct']") .attr("listid", ListID); $(listData.Products).each(function (i, product) { // transform text to capitalize product.Product = product.Product.replace("&", "&"); let productName = product.Product.replace(/\w\S*/g, function (txt) { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); }); $(".neo_marketplace_buscador_v3 #MultiProductID").append( $("