var hotelSearch=function(element,holidays,stations,markets,flightSearchUrl,culture,translations){var oneWayInput=$(element).find("#nasTripOneway"),twoWayInput=$(element).find("#nasTripTwoWay"),ctrlFromStation=$(element).find("#nasFromStation"),ctrlToStation=$(element).find("#nasToStation"),btnSwapOrigin=$(element).find("#nasbtnSwapOrigin"),dateRangeElement=$(element).find("#nasflightSearchDateRange"),lblArrivalDate=$(element).find("#naslblArrivalDate"),lblDepartureDate=$(element).find("#naslblDepartureDate"),lblCheckoutLabel=$(element).find("#naslblCheckoutLabel"),lblArrivalLabel=$(element).find("#naslblArrivalLabel"),geoLocation={latitude:"",longitude:""},occupancy=$(element).find("#txtOccupancy"),nasOriginStations=null,isDefaultOriginSelection=!0,bookingCulture="",btnNasSearch=$(element).find("#btnNasSearch"),RoomText=translations.RoomLabel,Adults=translations.AdultsLabel,years=translations.YearsLabel,Year=translations.YearsLabel,Children=translations.ChildrenLabel,Addanotherroom=translations.AddAnotherRoomLabel,Removeroom=translations.RemoveRoomLabel,Child=translations.ChildLabel,Age=translations.AgeLabel,initialize=function(){nasOriginStations=getAvailableOriginStations(stations.filter(e=>e.MacCode!="MAC"));lblCheckoutLabel.hide();getLocation();bindStations();bindTravelDates(dateRangeElement,{singleDatePicker:!1,startDate:moment()});bookingCulture=culture=="ar-SA"?"ar":culture.substring(0,2);$("#rooms-container").hide();buildOccupancy();$(occupancy).on("click",function(){$("#rooms-container").show()})};$(document).ready(function(){$(document).click(function(event){$(event.target).closest(occupancy).length||$("#rooms-container").hide()})});var bindStations=function(){var selectedOrigin,prevselection;bindStationControl(ctrlFromStation,nasOriginStations,!0);setDefaultStation(ctrlFromStation);selectedOrigin=$(ctrlFromStation).select2("data");setDestinationDropdown(selectedOrigin,ctrlToStation,!1);setDefaultStation(ctrlToStation);$(ctrlFromStation).on("select2:select",function(){$(ctrlFromStation).parent().find(".invalid-tooltip").hide();setTimeout(function(){var selectedOrigin=$(ctrlFromStation).select2("data");selectedOrigin.length>0&&$("#manage").hasClass("active")||selectedOrigin.length>0&&$("#checkin").hasClass("active")||selectedOrigin.length>0&&$("#flightStatus").hasClass("active")||(setDestinationDropdownFromLocalStorage(selectedOrigin,ctrlToStation,0),setDestinationDropdown(selectedOrigin,ctrlToStation,!isDefaultOriginSelection),isDefaultOriginSelection=!1,setDestinationDropdownFromLocalStorage(selectedOrigin,ctrlToStation,0))},200)});prevselection=null;$(ctrlFromStation).on("select2:opening",function(event){prevselection=$(event.target).find(":selected");$(ctrlFromStation).val(null)});$(ctrlToStation).on("select2:select",function(){$(ctrlToStation).parent().find(".invalid-tooltip").hide();$("#nasflightSearchDateRange").focus()})},getLocation=function(){var browserWidth=document.documentElement.clientWidth;browserWidth<=760||navigator.permissions.query({name:"geolocation"}).then(function(result){result.state=="granted"?navigator.geolocation&&navigator.geolocation.getCurrentPosition(setGeoLocation,function(e){console.log(e)}):result.state=="prompt"?navigator.geolocation&&navigator.geolocation.getCurrentPosition(setGeoLocation,function(e){console.log(e)}):result.state=="denied"&&setGeoLocation(null);result.onchange=function(){}})},setGeoLocation=function(position){position!==null&&(geoLocation.latitude=position.coords.latitude,geoLocation.longitude=position.coords.longitude);setDefaultOrigin()},setDefaultOrigin=function(){setDistance2stations(stations);var closestLocation=getClosestLocation(stations);closestLocation!==null&&(isDefaultOriginSelection=!0,$(ctrlFromStation).val(closestLocation.code),$(ctrlFromStation).trigger("change"),setDestinationDropdown($(ctrlFromStation).select2("data"),ctrlToStation,!1))},getClosestLocation=function(gstations){var minDistance=gstations.reduce((min,station)=>station.distance<min?station.distance:min,gstations[0].distance),closestStation=null,searchCriteria;return minDistance!==undefined&&minDistance!==null?closestStation=gstations.find(res=>res.distance===minDistance):(searchCriteria=getPreviousSearchParamsFromLocalStorage(),searchCriteria===null&&(closestStation=gstations.find(res=>res.code==="RUH"))),closestStation},setDistance2stations=function(gstations){geoLocation.latitude!==""&&geoLocation.longitude!==""&&geoLocation.latitude!==undefined&&geoLocation.longitude!==undefined&&$.each(gstations,function(){var distance=calculateDistance(parseDMS(this.latitude),parseDMS(this.longtitude),geoLocation.latitude,geoLocation.longitude);this.distance=distance})},calculateDistance=function(lat1,lon1,lat2,lon2){var dLat=deg2rad(lat2-lat1),dLon=deg2rad(lon2-lon1),a=Math.sin(dLat/2)*Math.sin(dLat/2)+Math.cos(deg2rad(lat1))*Math.cos(deg2rad(lat2))*Math.sin(dLon/2)*Math.sin(dLon/2),c=2*Math.atan2(Math.sqrt(a),Math.sqrt(1-a));return 6371*c},deg2rad=function(deg){return deg*(Math.PI/180)},parseDMS=function(input){var direction=input.substring(input.length-1,input.length).toUpperCase();if(direction==="W"||direction==="E"){var len=3,deg=input.substring(0,len),min=input.substring(len,len+2),sec=input.substring(len+2,input.length-1);return convertDMSToDD(deg,min,sec,direction)}if(direction==="N"||direction==="S"){var len1=2,deg1=input.substring(0,len1),min1=input.substring(len1,len1+2),sec1=input.substring(len1+2,input.length-1);return convertDMSToDD(deg1,min1,sec1,direction)}},convertDMSToDD=function(degrees,minutes,seconds,direction){var dd=parseFloat(degrees)+parseFloat(minutes/60)+parseFloat(seconds/3600);return(direction=="S"||direction=="W")&&(dd=dd*-1),dd},isCustomDate=function(obj,element){var date=obj.format("YYYY-MM-DD"),elementId=element.attr("id"),elementkey="element_"+date+"_"+elementId,arr=[];for(arr.push(elementkey),arr.push("datefaretd"),i=0;i<holidays.length;i++)date>=holidays[i].StartDate&&date<=holidays[i].EndDate&&arr.push("holiday");return(obj.day()===5||obj.day()===6)&&arr.push("nas-weekend"),arr},bindTravelDates=function(dateRangeElement,options){$(dateRangeElement).daterangepicker({opens:"left",autoApply:!0,isCustomDate:isCustomDate,locale:{direction:FlynasCMS.Config.TextDirection,format:"YYYY-MM-DD",firstDay:FlynasCMS.Config.TextDirection==="rtl"?6:0,monthNames:translations.monthNames,daysOfWeek:translations.daysOfWeek},minDate:options.minDate!==undefined?options.minDate:new Date,startDate:options.startDate,endDate:options.endDate,singleDatePicker:options.singleDatePicker},function(start,end){var formattedStart=getFormattedDate(start),formattedEnd;$(dateRangeElement).parents("div.date-range-cell").find("span[name='DepartureDate']").html(formattedStart);$(dateRangeElement).parents("div.date-range-cell").find("span[name='ArrivalDate']").length>0&&(formattedEnd=getFormattedDate(end),$(dateRangeElement).parents("div.date-range-cell").find("span[name='ArrivalDate']").html(formattedEnd),$(lblArrivalDate).parent().find(".invalid-tooltip").hide())});$(dateRangeElement).on("show.daterangepicker",function(){var originArray=$(ctrlFromStation).select2("data"),destinationArray=$(ctrlToStation).select2("data")});if(options.startDate!==null&&options.startDate!==undefined&&$(dateRangeElement).parents("div.date-range-cell").find("span[name='DepartureDate']").length>0){var formattedStart=getFormattedDate(options.startDate);$(dateRangeElement).parents("div.date-range-cell").find("span[name='DepartureDate']").html(formattedStart)}},getFormattedDate=function(date){var formattedDate="";switch(translations.calendarDateFormat){case"DD MMM YY":formattedDate=moment(date).format("DD")+" "+translations.monthShortNames[moment(date).month()]+" "+moment(date).format("YY");break;case"DD YY MMM":formattedDate=moment(date).format("DD")+" "+translations.monthShortNames[moment(date).month()]+" "+moment(date).format("YY")}return formattedDate},getPreviousSearchParamsFromLocalStorage=function(){var searchCriteriaJson=window.localStorage.getItem("searchCriteria");return searchCriteriaJson===null||searchCriteriaJson===undefined||searchCriteriaJson===""?null:JSON.parse(searchCriteriaJson)};$(btnSwapOrigin).click(function(){swapOrigin(ctrlFromStation,ctrlToStation)});$(document).ready(function(){$('input[type="radio"]').on("change",function(){var selectedValue=$(this).val();selectedValue==="nasoneway"?(lblArrivalLabel.hide(),lblCheckoutLabel.show()):selectedValue==="nasround"&&(lblCheckoutLabel.hide(),lblArrivalLabel.show())})});var swapOrigin=function(fromStationCtrl,toStationCtrl){var fromStationArray=$(fromStationCtrl).select2("data"),toStationArray=$(toStationCtrl).select2("data"),data,destinationStationArrays;fromStationArray[0].code!=null&&toStationArray[0].code!=null&&($(fromStationCtrl).val(toStationArray[0].code),$(fromStationCtrl).trigger("change"),data=$.map(stations,function(obj){return obj.id=obj.id||obj.code,obj.text=obj.text||obj.name,obj}),destinationStationArrays=$.grep(data,function(item){return item.id!==toStationArray[0].id}),$(toStationCtrl).empty(),bindStationControl(toStationCtrl,destinationStationArrays,!0),$(toStationCtrl).val(fromStationArray[0].code),$(toStationCtrl).trigger("change"))},setDestinationDropdownFromLocalStorage=function(selectedOrigin,destinationDropdown,rowNumber){var searchCriteria=getPreviousSearchParamsFromLocalStorage();if(searchCriteria===null){isDefaultOriginSelection=!1;openDestinationDropDownSelection=!0;return}rowNumber===0?selectedOrigin[0].code===searchCriteria.origin&&($(destinationDropdown).val(searchCriteria.destination),$(destinationDropdown).trigger("change")):rowNumber===1&&selectedOrigin[0].code===searchCriteria.origin1&&($(destinationDropdown).val(searchCriteria.destination1),$(destinationDropdown).trigger("change"))},getAvailableOriginStations=function(stations){var originStations=[];return $.each(stations,function(index,station){var stationMarket=$.grep(markets,function(market){return market.Key.toUpperCase()===station.code.toUpperCase()});stationMarket.length>0&&originStations.push(station)}),originStations},setDefaultStation=function(selectElement){if($(selectElement).find("option[value='']").length>0)$(selectElement).val("").trigger("change");else{var newOption=new Option("","",!0,!0);$(selectElement).append(newOption).trigger("change")}},setDestinationDropdown=function(selectedOrigin,ctrlStation,openSelection){var nasDestinationStationArrays=[],nasMarketStations,data;selectedOrigin.length>0&&selectedOrigin[0].id!==""&&(nasMarketStations=getSelectedStationMarkets(selectedOrigin[0].code),data=$.map(nasMarketStations,function(obj){return obj.id=obj.id||obj.code,obj.text=obj.text||obj.name,obj}),nasDestinationStationArrays=$.grep(data,function(item){return item.id!==selectedOrigin[0].id}));$(ctrlStation).empty();bindStationControl(ctrlStation,nasDestinationStationArrays,!0);setDefaultStation(ctrlStation);openSelection&&$(ctrlStation).select2("open")},getSelectedStationMarkets=function(stationCode){var NasMarketStations=[],nasSelectedMarketStation=$.grep(markets,function(market){return market.Key.toUpperCase()===stationCode.toUpperCase()}),nasMarketStationCodes;return nasSelectedMarketStation.length===0?NasMarketStations:(nasMarketStationCodes=nasSelectedMarketStation[0].Value,$.each(nasMarketStationCodes,function(index,code){var marketStation=$.grep(stations,function(station){return station.code.toUpperCase()===code.toUpperCase()&&station.MacCode!="MAC"});marketStation.length>0&&NasMarketStations.push(marketStation)}),NasMarketStations)},bindStationControl=function(control,controlData){var data=$.map(controlData,function(obj){return obj.id=obj.id||obj.code,obj.text=obj.text||obj.name,obj});$(control).select2({data:data,templateResult:FlynasCMS.Utility.formatStation,templateSelection:FlynasCMS.Utility.formatSelectedStation,matcher:FlynasCMS.Utility.matchStation,sorter:function(data){var textArray=data[0].text.split(" ");return textArray[textArray.length-1]=="(matched)"?getMacCodeBasedSortedStations(data):data},selectOnClose:!0})},getMacCodeBasedSortedStations=function(data){var sortedStations=data;return sortedStations.sort(function(station1,station2){var macCode1=station1.MacCode.toUpperCase(),macCode2=station2.MacCode.toUpperCase();return macCode1==="MAC"?-1:macCode2==="MAC"?1:station1.name<station2.name?-1:1})},buildOccupancy=function(){function renderRooms(){$("#rooms-container").empty();$.each(rooms,function(index,room){for(var i,paxDecodedtext,roomDecodedtext,totPax=0,totChildCnt=0,html="",j=0;j<rooms.length;j++)totPax+=rooms[j].adults+rooms[j].children,totChildCnt+=rooms[j].children;for(html+="<div class='room'>",html+="<div class='row'><div class='col-md-5 room_num' for='room'>"+RoomText+"  -  "+(index+1)+"<\/div>",rooms.length>1&&(html+="<div class='col-md-7 text-end'><a class='remove-room' index='"+index+"'>- "+Removeroom+"<\/a><\/div><\/div>"),html+="<div class='people_div'><div class='row mb-3'><div class='col-7 d-flex align-items-center'><label class='people_lbl'>"+Adults+" <br><span class='people_desc'>12+ "+years+"<\/span><\/label><\/div>",html+="<div class='col-5 d-flex align-items-center justify-content-end'><div class='addbtncon-btn my-auto top-0'><button class='decrement-adults'><span>-<\/span><\/button><input type='text' class='text-center border-0 selected_val' readonly value='"+room.adults+"' min='1' max='9' id='adults-"+index+"' /><button class='increment-adults'><span>+<\/span><\/button><\/div><\/div><\/div>",html+="<div class='row'><div class='col-7 d-flex align-items-center'><label class='people_lbl'>"+Children+"<br><span class='people_desc'>0 - 12 "+years+"<\/span><\/label><\/div>",html+="<div class='col-5 d-flex align-items-center justify-content-end'><div class='addbtncon-btn my-auto top-0'><button class='decrement-children'><span>-<\/span><\/button><input type='text' class='text-center border-0 selected_val' readonly value='"+room.children+"' min='0' max='6' id='children-"+index+"' /><button class='increment-children'><span>+<\/span><\/button><\/div><\/div><\/div>",i=0;i<room.children;i++)html+="  <div class='children-container mt-1'>",html+="<label>"+Child+(i+1)+" "+Age+"<\/label>",html+="<select class='children-age-container p-2 mb-3' id='children-age-"+i+"'>",html+="<option value='1'>1 "+Year+"<\/option>",html+="<option value='2'>2 "+years+"<\/option>",html+="<option value='3'>3 "+years+"<\/option>",html+="<option value='4'>4 "+years+"<\/option>",html+="<option value='5'>5 "+years+"<\/option>",html+="<option value='6'>6 "+years+"<\/option>",html+="<option value='7'>7 "+years+"<\/option>",html+="<option value='8'>8 "+years+"<\/option>",html+="<option value='9'>9 "+years+"<\/option>",html+="<option value='10'>10 "+years+"<\/option>",html+="<option value='11'>11 "+years+"<\/option>",html+="<option value='12'>12 "+years+"<\/option>",html+="<\/select>",html+="<\/div >";html+="<\/div>";rooms.length<=4&&totPax<=maxPasscount&&totPax<=maxAdults&&rooms.length<maxRooms&&(html+="<div class='row'><div class='col-12'><a class='addRoom'>+ "+Addanotherroom+"<\/a><\/div><\/div>");html+="<\/div>";$("#rooms-container").append(html);totPax>=maxPasscount&&$("#rooms-container").find(".increment-adults").attr("disabled",!0);(totPax>=maxPasscount||totChildCnt>=maxChildren)&&$("#rooms-container").find(".increment-children").attr("disabled",!0);paxDecodedtext=$("<textarea/>").html(translations.PassengersLabel).text();roomDecodedtext=$("<textarea/>").html(translations.RoomLabel).text();occupancy.val(totPax+" "+paxDecodedtext+" "+(index+1)+" "+roomDecodedtext)})}var rooms=[],maxPasscount=9,maxAdults=8,maxChildren=6,maxRooms=5;$(document).on("click",".addRoom",function(event){rooms.push({adults:1,children:0});renderRooms();event.stopPropagation()});$(document).on("click",".remove-room",function(event){var room=$(this).closest(".room"),roomIndex=room.index();rooms.splice(roomIndex,1);renderRooms();event.stopPropagation()});$(document).on("click",".increment-adults,.decrement-adults",function(event){var roomIndex=$(this).closest(".room").index(),room=rooms[roomIndex];$(this).hasClass("increment-adults")?room.adults++:$(this).hasClass("decrement-adults")&&room.adults>1&&room.adults--;renderRooms();event.stopPropagation()});$(document).on("click",".increment-children,.decrement-children",function(event){var roomElement=$(this).closest(".room"),roomIndex=roomElement.index(),room=rooms[roomIndex];$(this).hasClass("increment-children")?room.children++:$(this).hasClass("decrement-children")&&room.children>0&&room.children--;renderRooms();event.stopPropagation()});$(document).on("click",".add-children",function(event){for(var roomIndex=$(this).closest(".room").index(),room=rooms[roomIndex],childrenDropdown=$("<select>"),i=0;i<9;i++)childrenDropdown.append("<option value='"+i+"'>"+i+"<\/option>");$(this).closest(".room").find(".children").append(childrenDropdown);event.stopPropagation()});$(document).on("change",".children-age-container",function(event){event.stopPropagation()});$(document).on("click",".children-age-container",function(event){event.stopPropagation()});$(document).on("click",".room",function(event){event.stopPropagation()});$(document).on("click",".remove-children",function(event){var roomIndex=$(this).closest(".room").index(),room=rooms[roomIndex];$(this).closest(".room").find(".children select").remove();event.stopPropagation()});rooms=[];rooms.push({adults:1,children:0});renderRooms()};return $(btnNasSearch).click(function(e){var originArray=$(ctrlFromStation).select2("data"),destinationArray=$(ctrlToStation).select2("data"),flightSearchDateRangePicker=$(element).find("#nasflightSearchDateRange").data("daterangepicker"),departureDate=flightSearchDateRangePicker.startDate.format("YYYY-MM-DD"),returnDate=flightSearchDateRangePicker.endDate.format("YYYY-MM-DD"),rooms,i,childAgessss,adults,j,dropdown,selected,selectedTrip,url;const formatedObj=[];for(rooms=$(".room").toArray(),console.log("rooms lenght "+rooms.length),i=0;i<rooms.length;i++){childAgessss=[];adults=$("#adults-"+i).val();typeof adults=="string"&&(adults=parseInt(adults));var room=rooms[i],dropdownContainer=$(room).find(".children-container"),dropdowns=dropdownContainer.children("select").toArray();for(j=0;j<dropdowns.length;j++)dropdown=dropdowns[j],selected=$(dropdown).val(),typeof selected=="string"&&(selected=parseInt(selected)),childAgessss.push(selected);let adultsObj=[];adults>0&&childAgessss.length>0?(adultsObj={adults:adults,children_ages:childAgessss},formatedObj.push(adultsObj)):(adultsObj={adults:adults},formatedObj.push(adultsObj))}if(console.log("formatedObj Occupancy  "+JSON.stringify(formatedObj)),$.each(formatedObj,function(key,value){key==="adults"?formatedObj.adults=parseInt(value):key==="children_ages"&&(formatedObj.children_ages=value.split(",").map(function(val){return parseInt(val)}))}),console.log(JSON.stringify(formatedObj)),originArray.length==0&&$(ctrlFromStation).parent().find(".invalid-tooltip").show(),destinationArray.length==0&&$(ctrlToStation).parent().find(".invalid-tooltip").show(),originArray.length!==0&&destinationArray.length!==0){if(originArray[0].id==""&&$(ctrlFromStation).parent().find(".invalid-tooltip").show(),destinationArray[0].id==""&&$(ctrlToStation).parent().find(".invalid-tooltip").show(),($(lblArrivalDate).text().length===0||$(lblDepartureDate).text().length===0)&&(selectedTrip=$('input[name="nas-trip-type"]:checked').val(),selectedTrip==="nasoneway"?($(lblArrivalDate).parent().find(".invalid-tooltip.checkoutDate").show(),$(lblArrivalDate).parent().find(".invalid-tooltip.returnDate").hide()):selectedTrip==="nasround"&&($(lblArrivalDate).parent().find(".invalid-tooltip.checkoutDate").hide(),$(lblArrivalDate).parent().find(".invalid-tooltip.returnDate").show()),$(lblDepartureDate).text().length===0&&$(lblDepartureDate).parent().find(".invalid-tooltip").show()),originArray.length>0&&originArray[0].id!==""&&destinationArray.length>0&&destinationArray[0].id!==""&&$(lblDepartureDate).text().length>0&&$(lblArrivalDate).text().length>0){e.preventDefault();var origin=originArray[0].code,destination=destinationArray[0].code,newFormatedObj=[];newFormatedObj=JSON.stringify(formatedObj);url="https://booking.nasholidays.com/online/packages/api/v1/search?departure_date="+departureDate+"&lang=es&occupancy="+newFormatedObj+"&origin="+origin+"&return_date="+returnDate+"&destination="+destination+"&lang="+bookingCulture;window.open(url,"_blank")}e.preventDefault()}}),{initialize:initialize}};
//# sourceMappingURL=/sb/nmap/hotel-search-js.js.v7de777cefc3f9aa96b4646d8800bd066d8120262