function ContextSearch(){this.refreshModeValue=function(){};this.isVacationTypeProductGamValue=function(n){return $.inArray(n,gamProList)>=0};this.selectJsDatePicker=function(){return $(".js--datepicker")};this.isSearchFormValid=function(n,t){return t()&&n!=="DestinationLookea"};this.openContainerSpinner=function(){};this.responseFlexibities=function(n){n!=""&&($("#flexibilityContainer").empty().html(n),requestSearchParam.flexibility=$("input[data-refresh='Flexibility']:checked").val())};this.searchClass=function(){return".search"};this.alertDestiClass=function(){return".js--searchDesti + .desti-container .alert"};this.successRefreshEngine=function(n){var i=$("select[data-refresh='VacationType']").val(),t;n.durations!=""&&($("#durationContainer").empty().html(n.durations),requestSearchParam.duration=$("input[data-refresh='Duration']:checked").val());n.destinations!=""&&requestSearchParam.refreshMode!="Destination"&&($("#destiContainer").empty().html(n.destinations),initSearchEngineView());n.departures!=null&&typeof disabledDays!="undefined"&&(disabledDays=n.departures);n.months!=null&&$("#monthContainer").empty().html(n.months);n.cities!=null&&requestSearchParam.refreshMode!="DepartureCity"&&$("#cityContainer").empty().html(n.cities);requestSearchParam.refreshMode!="DepartureDate"&&($(".js--datepicker").datepicker("option","minDate",n.firstDepartureDate),$(".js--datepicker").datepicker("option","maxDate",n.lastDepartureDate),requestSearchParam.firstDepartureDate=n.firstDepartureDate,requestSearchParam.lastDepartureDate=n.lastDepartureDate);n.cities!=""&&requestSearchParam.refreshMode=="Destination"&&($("#departureCityContainer").empty().html(n.cities),requestSearchParam.departureCity=n.departureCity);requestSearchParam.departureDate===null?$("#flexibilityContainer").attr("disabled","disabled"):$("#flexibilityContainer").removeAttr("disabled");t=$("#beginDateTrip ~ input").val();requestSearchParam.refreshMode=="DepartureCity"&&(requestSearchParam.departureDate="",$("#beginDateTrip ~ input").val(""),$(".js--datepicker").datepicker("setDate",""),$("#beginDateTrip").text("Vertrekdatum"));typeof disabledDays!="undefined"&&($.inArray($("#beginDateTrip ~ input").val(),disabledDays)>=0&&($("#beginDateTrip ~ input").val(""),$(".js--datepicker").datepicker("setDate",""),requestSearchParam.departureDate="",$("#beginDateTrip").text("Vertrekdatum")),$(".js--datepicker").datepicker("refresh"),$.inArray(t,disabledDays)<0&&($("#beginDateTrip ~ input").val(t),$(".js--datepicker").datepicker("setDate",t),$("#beginDateTrip").text(t!=""?t:"Vertrekdatum"),requestSearchParam.departureDate=t));requestSearchParam.refreshMode=="DepartureCity"&&i!="ALL"?$('select[data-refresh="VacationType"]').find(' option[value="'+i+'"]').length>0&&($('select[data-refresh="VacationType"]').val(i),refreshDdlSearch($('select[data-refresh="VacationType"]'))):closeContainerSpinner($(".search"))};this.selectDesti=function(){return".js--desti "};this.toggleDesti=function(n){$(".js--searchDesti").val(n).blur()};this.selectAlertContainer=function(){return".search .alert-container "};this.flexibility=function(){};this.documentReady=function(){$(".js--searchDesti").focus(function(){resetDesti();closeDatePicker();$(this).addClass("js--active")});$("body").click(function(n){$(n.target).closest(".js--searchDesti").length||closeDesti();$(n.target).closest(".datepicker-container").length||$(n.target).closest(".ui-datepicker-header").length||closeDatePicker()});$("#hdnSearchEngineIsDirty").val()=="yes"&&(requestSearchParam=JSON.parse(getCookie("searchEngineRequest")))};this.datePickerOnSelect=function(n,t){return function(){var i=$(".js--datepicker").val();$("#beginDateTrip").text(i);$("#beginDateTrip").siblings("input").val(i);t(i,$("#beginDateTrip").siblings("input").data("refresh"));n()}};this.undoDates=function(n){$(".js--undoDates").click(function(){n()})};this.disableFlexibility=function(){};this.hdnSearchEngineIsDirty=function(n){$("#hdnSearchEngineIsDirty").val()=="yes"&&n($("#ddl-DepartureCity"))};this.closeDatePicker=function(n){$(".js--closeDates").click(function(){n()})}}function setMobileDatepicker(){/Android|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||windowSize<=context_global.windowSearchEngineMaxSize||$('div[data-tabs="flight-search"]').is(":visible")&&!$("#oneway").is(":checked")&&windowSize<=context_global.altWindowSearchEngineMaxSize?($(".js--datepicker").datepicker("option","numberOfMonths",1),$(".js--datepicker").datepicker("refresh")):($(".js--datepicker").datepicker("option","numberOfMonths",2),$(".js--datepicker").datepicker("refresh"))}function searchResults(){var t=isSearchFormValid(),n;t&&(n=JSON.stringify({searchRequest:requestSearchParam}),OpenSpinner("SearchEngine"),$("#hdnSearchEngineIsDirty").val("yes"),$.ajax({type:"POST",url:"/SearchEngine/RedirectToResultList/",data:n,contentType:"application/json",dataType:"json",success:SuccessSearchTrip,error:FailSearchTrip}))}function SuccessSearchTrip(n){n.dataLayer.path=document.location.pathname+document.location.search;dataLayer.push(n.dataLayer);try{if(Modernizr.sessionstorage){var t=window.sessionStorage;t.removeItem(n.url)}}catch(i){}window.location.href=n.url}function FailSearchTrip(){}function refreshSearchEngine(n,t,i,r,u){var f,e;if(requestSearchParam.refreshMode=t,f=new ContextSearch,f.refreshModeValue(t,n),u==="Clear")requestSearchParam.refreshMode="Clear";else switch(t){case"Destination":case"DestinationLookea":requestSearchParam.destination=n;requestSearchParam.destinationType=i;requestSearchParam.continent=r;break;case"Duration":requestSearchParam.duration=n;break;case"Flexibility":requestSearchParam.flexibility=n;break;case"DepartureDate":requestSearchParam.departureDate=n;break;case"VacationType":f.isVacationTypeProductGamValue(n)?(requestSearchParam.refreshMode="GamPro",requestSearchParam.productGam=n,requestSearchParam.vacationType=""):(requestSearchParam.refreshMode="VacationType",requestSearchParam.vacationType=n,(!requestSearchParam.isGamPro||requestSearchParam.isGamPro&&f.isVacationTypeProductGamValue(requestSearchParam.productGam))&&(requestSearchParam.productGam=""));break;case"DepartureCity":requestSearchParam.departureCity=n;requestSearchParam.vacationType="ALL";f.selectJsDatePicker().datepicker("setDate","");$("#beginDateTrip ~ input").val("");$("#beginDateTrip").text("Vertrekdatum");requestSearchParam.departureDate="";requestSearchParam.duration="Indifferent";n!=="XXX"&&(setCookie("searchDepartureCity",n),setCookie("searchDepartureCityManuallySetted",!0))}f.isSearchFormValid(t,isSearchFormValid)&&(f.openContainerSpinner(),e=JSON.stringify({searchRequest:requestSearchParam,type:u}),$.ajax({type:"POST",url:"/SearchEngine/RefreshSearchEngine/",contentType:"application/json",data:e,success:SuccessRefreshEngine,error:FailRefreshEngine}))}function SuccessRefreshEngine(n){var t=new ContextSearch,i;n.success&&(n.vacTypes!=""&&requestSearchParam.refreshMode!="VacationType"&&requestSearchParam.refreshMode!="GamPro"&&($("#vacContainer").empty().html(n.vacTypes),i=$("select[data-refresh='VacationType']").val(),t.setVacationType(i)),t.responseFlexibities(n.flexibilities),t.successRefreshEngine(n))}function FailRefreshEngine(){var n=new ContextSearch;closeContainerSpinner($(n.searchClass()))}function initSearchEngineView(){var n=new ContextSearch,t=$(n.alertDestiClass());$(".js--searchDesti").keyup(function(i){var u=$(this).val().toLowerCase(),f=$(this).val().length,e=i.which,o=$(n.selectDesti()+'li:not(".desti__title"):visible:first p span').text(),r;e===13&&$(n.selectDesti()+'li:not(".desti__title"):visible:first button').trigger("click");r=[];f>=3?($(n.selectDesti()+"li").hide(),$(n.selectDesti()+"li p").each(function(){var i=$(this).parents("button"),n,t;$(i).hasClass("desti__top")||(n=$(this).text().toLowerCase(),t=$(this).find("span").data("val"),makeSortString(n).indexOf(makeSortString(u))!=-1&&(r.push(t),$(this).parents("li").show()))}),$(n.selectDesti()+"li").is(":visible")==!0?t.addClass("js--hide"):t.removeClass("js--hide")):(t.addClass("js--hide"),$(n.selectDesti()+"li").show())});$(".js--searchDesti").blur(function(){var n={typedChar:"",completionResult:"",event:"autoCompletion-Package"},i=$(this).val();i.length>=1&&(n.typedChar=$(this).val(),n.completionResult=i.length<3?"onvoldoende karakters ingevuld":t.is(":visible")?"Geen enkel(e) bestemming, land of continent beantwoordt aan uw zoekcriteria":"Voorgestelde bestemmingen",dataLayer!=null&&dataLayer.push(n))});$(".js--searchDesti").click(function(n){n.stopPropagation()});$(n.selectDesti()+"button").click(function(){var t=$(this).find("p span").text().trim(),i,r;n.toggleDesti(t);i=$(".js--searchDesti").val().length;i>=3?(requestSearchParam.autoCompletionUsed=!0,requestSearchParam.autoCompletionSelected=t,requestSearchParam.autoCompletionChar=$(".js--searchDesti").val().toLowerCase()):(requestSearchParam.autoCompletionUsed=!1,requestSearchParam.autoCompletionChar="NA",requestSearchParam.autoCompletionSelected="NA");i>1&&(r={typedChar:$(".js--searchDesti").val().toLowerCase(),completionResult:t,event:"autoCompletion-Package"},dataLayer!=null&&dataLayer.push(r));refreshSearchEngine($(this).find("p span").data("val"),$(this).find("p span").data("refresh"),$(this).find("p span").data("categ"));isSearchTripMobileCompleted()})}function refreshDatePicker(n){requestSearchParam.isLastMinute||$(n).val()==""?$("#ddlFlexibility").prop("disabled","disabled"):$("#ddlFlexibility").prop("disabled","");refreshSearchEngine($(n).val(),$(n).data("refresh"),"")}function refreshDdlSearch(n,t){refreshSearchEngine($(n).val(),$(n).data("refresh"),"","",t)}function isSearchFormValid(){var i=new ContextSearch,n,r,t;if(requestSearchParam.noCheck)return!0;if($("div[data-tabs='trip-search']").find("select[data-refresh='Duration']").closest(".form-validate").removeClass("error"),$("div[data-tabs='trip-search']").find("select[data-refresh='DepartureCity']").closest(".form-validate").removeClass("error"),$(i.selectAlertContainer()+" .alert--error").empty(),n=[],i.flexibility(n),n.length==0)return $(i.selectAlertContainer()).hide(),!0;if(r="Gelieve te vermelden "+n[0],n.length>=2)for(t=1;t<=n.length-1;t++)r+=t==n.length-1?"en"+n[t]:" , "+n[t];return $(i.selectAlertContainer()+".alert--error").html(r),$(i.selectAlertContainer()).show(),!1}function isSearchTripMobileCompleted(){$(".js--toggleDesti").text()!=""&&$(".js--toggleDesti").text()!=null&&$(".js--toggleDesti").text()!=undefined&&$(".js--toggleDesti").text()!="Destination"&&$("#beginDateTrip ~ input").val()!=""&&$("#beginDateTrip ~ input").val()!=null&&$("#beginDateTrip ~ input").val()!=undefined&&$('[data-tabs="trip-search"] .six-col:nth-child(n+4)').show()}function initTempSearchLookea(){var n=new ContextSearch;$("#searchLookea").length<=0||$("#searchLookea").click(function(){var t="";typeof requestSearchParam!="undefined"&&requestSearchParam!=null&&requestSearchParam.destination!=""&&typeof __lookeaSearchEngineMapping!="undefined"&&$.each(__lookeaSearchEngineMapping,function(n,i){if(requestSearchParam.destination==n){t=i;return}});t!=""?window.location.href=t:($(n.selectAlertContainer()+" .alert--error").html("Gelieve uw bestemming te vermelden"),$(n.selectAlertContainer()).show())})}function closeDesti(){$(".js--searchDesti + .desti-container .alert").addClass("js--hide");$(".js--desti li").show();$(".js--desti").scrollTop(0);$(".js--searchDesti").removeClass("js--active");$(".js--searchDesti").val()===""&&$(".js--searchDesti").val($(".js--searchDesti").prop("defaultValue"))}function resetDesti(){$(".js--searchDesti").val("");$(".js--searchDesti + .desti-container .alert").addClass("js--hide");$(".js--desti li").show();$(".js--desti").scrollTop(0);refreshSearchEngine(null,"Destination",null,null,null)}function undoDates(){var n=$("#beginDateTrip").parents(".form-validate").prev().text();closeDatePicker();$("#beginDateTrip").text(n);$("#beginDateTrip").siblings("input").val("");requestSearchParam.flexibility=null;requestSearchParam.duration=null;refreshSearchEngine(null,"DepartureDate")}function getElementY(n){return window.pageYOffset+document.querySelector(n).getBoundingClientRect().top}function doScrolling(n,t){var r=window.pageYOffset,f=document.body.scrollHeight-n<window.innerHeight?document.body.scrollHeight-window.innerHeight:n,u=f-r,e=function(n){return n<.5?4*n*n*n:(n-1)*(2*n-2)*(2*n-2)+1},i;u&&window.requestAnimationFrame(function o(n){i||(i=n);var s=n-i,f=Math.min(s/t,1);f=e(f);window.scrollTo(0,r+u*f);s<t&&window.requestAnimationFrame(o)})}function animateScroll(){var n=$(window).width();n>=769?doScrolling($(".search").offset().top-30,1200):doScrolling($(".search").offset().top-80,1200)}function closeDatePicker(){$(".ui-datepicker-inline").hide();$(".datepicker-container").removeClass("js--active");$(".js--search-mobile").removeClass("overflow")}$(document).ready(function(){var n=new ContextSearch;n.documentReady();$.datepicker.regional.nl={closeText:"Sluiten",prevText:"&#x3c;Vor",nextText:"Volg&#x3e;",currentText:"Lopend",monthNames:["Januari","Februari","Maart","April","Mei","Juni","Juli","Augustus","September","Oktober","November","December"],monthNamesShort:["Jan","Feb","Maa","Apr","Mei","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],dayNames:["Zondag","Maandag","Dinsdag","Woensdag","Donderdag","Vrijdag","Zaterdag"],dayNamesShort:["Zon","Maa","Din","Woe","Don","Vri","Zat"],dayNamesMin:["Zo","Ma","Di","Wo","Do","Vr","Za"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""};$.datepicker.setDefaults($.datepicker.regional.nl);$("#beginDateTrip").click(function(){$(this).parent(".datepicker-container").hasClass("js--active")?closeDatePicker():($(this).parent().find(".ui-datepicker-inline").show(),$(this).parent(".datepicker-container").addClass("js--active"),(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<=568)&&window.innerWidth<=568&&($(".js--search-mobile").animate({scrollTop:0},100),$(".js--search-mobile").addClass("overflow")));n.selectJsDatePicker().datepicker({minDate:requestSearchParam.firstDepartureDate,maxDate:requestSearchParam.isLastMinute?"+30d":requestSearchParam.lastDepartureDate!=null&&requestSearchParam.lastDepartureDate!=""?requestSearchParam.lastDepartureDate:"+361d",numberOfMonths:2,beforeShowDay:function(n){var t=jQuery.datepicker.formatDate("dd/mm/yy",n);return[$.inArray(t,disabledDays)==-1]},onSelect:n.datePickerOnSelect(isSearchTripMobileCompleted,refreshSearchEngine,refreshDatePicker,closeDatePicker)});n.selectJsDatePicker().datepicker("setDate",$("#beginDateTrip ~ input").val());setMobileDatepicker();$(this).siblings('input[type="hidden"]').val()===""&&$(".ui-datepicker td.ui-datepicker-current-day").removeClass("ui-datepicker-current-day")});n.undoDates(undoDates);$(".js--closedate-mobile").click(function(){closeDatePicker()});$('[data-tabs="trip-search"] select.form-control').on("click",function(){closeDatePicker()});$("#ddl-DepartureCity").change(function(){isSearchTripMobileCompleted()});initSearchEngineView();$(".js--searchResults").click(function(){searchResults()});initTempSearchLookea();n.disableFlexibility();n.hdnSearchEngineIsDirty(refreshDdlSearch);n.closeDatePicker(closeDatePicker);closeContainerSpinner($(n.searchClass()))});$(window).resize(function(){setMobileDatepicker()})