var booking={breconId:5177,cambrianId:2153,init:function(){$('.quick-booking').each(function(){var qb=$(this);booking.default(qb);booking.initCalendar(qb);});},default:function(qb){booking.openPnls(qb);var arrival=$(qb).attr('data-start')!=''?$.datepicker.parseDate('dd/mm/yy',$(qb).attr('data-start')):new Date();arrival=new Date(arrival).getTime()>new Date().getTime()?arrival:new Date();var _from=$.datepicker.formatDate($.datepicker._defaults.dateFormat,arrival);$(qb).find(".from").html(_from);booking.altFormat($(qb).find(".from-alt"),_from,qb);var _to=$.datepicker.formatDate($.datepicker._defaults.dateFormat,new Date(arrival.setTime(arrival.getTime()+1*86400000)));$(qb).find(".to").html(_to);booking.altFormat($(qb).find(".to-alt"),_to,qb);$(qb).find('.clear:not(:visible)').css("display","block");booking.addRoom($(qb).find('.add-room'));},openPnls:function(qb){$(qb).find('.field > a').click(function(e){e.stopPropagation();var $field=$(this).closest('div');$field.toggleClass('selected');var $pnl=$(this).next('.pnl');$(qb).find('.pnl').not($pnl).slideUp('fast');$pnl.slideToggle('fast');});$(document).click(function(e){if((!$(e.target).closest('.quick-booking').length)&&(!$(e.target).closest('.ui-datepicker-header').length)&&(!$(e.target).hasClass('openPnls'))){$('.quick-booking .field > a').next('div.pnl:visible').slideUp('fast');}});},altFormat:function(el,value,qb){$(el).html($.datepicker.formatDate($(qb).attr('data-alt-format'),$.datepicker.parseDate($.datepicker._defaults.dateFormat,value)));},initCalendar:function(qb){booking.calendars(qb);booking.range(qb);},calendars:function(qb){var $date1=$(qb).find(".from");var $date2=$(qb).find(".to");var $date1Alt=$(qb).find(".from-alt");var $date2Alt=$(qb).find(".to-alt");var placeholder1=$date1.attr('data-placeholder');var placeholder2=$date2.attr('data-placeholder');var minDate=$(qb).attr('data-start')!=''?$.datepicker.formatDate($.datepicker._defaults.dateFormat,$.datepicker.parseDate('dd/mm/yy',$(qb).attr('data-start'))):$.datepicker.formatDate($.datepicker._defaults.dateFormat,new Date());var maxDate=$(qb).attr('data-end')!=''?$.datepicker.formatDate($.datepicker._defaults.dateFormat,$.datepicker.parseDate('dd/mm/yy',$(qb).attr('data-end'))):'+2Y';if($(qb).attr('data-start')!=''){minDate=new Date($.datepicker.parseDate($.datepicker._defaults.dateFormat,minDate)).getTime()>new Date().getTime()?minDate:new Date();}
var defaultDate=minDate;$(qb).find(".datepicker").datepicker({defaultDate:defaultDate,minDate:minDate,maxDate:maxDate,beforeShowDay:function(date){var _date1=$date1.html()!=placeholder1?$date1.html():'';var _date2=$date2.html()!=placeholder2?$date2.html():'';var date1=$.datepicker.parseDate($.datepicker._defaults.dateFormat,_date1);var date2=$.datepicker.parseDate($.datepicker._defaults.dateFormat,_date2);var bolMain=(date1&&(date.getTime()==date1.getTime()))||(date2&&(date.getTime()==date2.getTime()));var bolRange=date1&&(date2&&date.getTime()>date1.getTime()&&date.getTime()<date2.getTime());if(bolMain){return[true,'main','']}
if(bolRange){return[true,"range",''];}
return[true,'',''];},onSelect:function(dateText){var _date1=$date1.html()!=placeholder1?$date1.html():'';var _date2=$date2.html()!=placeholder2?$date2.html():'';var date1=$.datepicker.parseDate($.datepicker._defaults.dateFormat,_date1);var date2=$.datepicker.parseDate($.datepicker._defaults.dateFormat,_date2);if(!date1||date2){$date1.html(dateText);booking.altFormat($date1Alt,dateText,qb);$date2.html(placeholder2);$date2Alt.html(placeholder2);}else{if($.datepicker.parseDate($.datepicker._defaults.dateFormat,dateText).getTime()<=date1.getTime()){$date1.html(dateText);booking.altFormat($date1Alt,dateText,qb);$date2.html(placeholder2);$date2Alt.html(placeholder2);}else{$date2.html(dateText);booking.altFormat($date2Alt,dateText,qb);setTimeout(function(){$(qb).find(".dates .pnl").slideUp('fast');},250)}}
$(qb).find('.clear:not(:visible)').css("display","block");}});},range:function(qb){var $cal=$(qb).find('.dates .pnl');$cal.delegate('.ui-datepicker-calendar td','mouseover',function(){if($(this).attr('data-year')==undefined)return;var _arrival=$(qb).find('.from').html();var arrival=_arrival!=$(qb).find('.from').attr('data-placeholder')?$.datepicker.parseDate($.datepicker._defaults.dateFormat,_arrival).getTime():'';if(arrival=='')return;var _departure=$(qb).find('.to').html();var departure=_departure!=$(qb).find('.to').attr('data-placeholder')?$.datepicker.parseDate($.datepicker._defaults.dateFormat,_departure).getTime():'';if(departure!='')return;var currentOver=$('a',this).html()+'/'+(parseInt($(this).attr('data-month'))+1)+'/'+$(this).attr('data-year');currentOver=$.datepicker.parseDate('dd/mm/yy',currentOver).getTime();if(currentOver<=arrival)return;$cal.find('.ui-datepicker-calendar td').each(function(index,el){if($(this).attr('data-year')==undefined)return;var currentEach=$('a',this).html()+'/'+(parseInt($(this).attr('data-month'))+1)+'/'+$(this).attr('data-year');currentEach=$.datepicker.parseDate('dd/mm/yy',currentEach).getTime();if((currentEach<=currentOver)&&(currentEach>arrival)){$(this).addClass('range')}else{$(this).removeClass('range')};});});},yymmdd:function(d){var _d=new Date(d);_d=_d.getFullYear()+'-'+("0"+parseInt(_d.getMonth()+1)).slice(-2)+'-'+("0"+_d.getDate()).slice(-2);return _d},clearCalendars:function(el){var $qb=$(el).closest('.quick-booking');var $date1=$qb.find('.from');var $date2=$qb.find('.to');var $date1Alt=$qb.find('.from-alt');var $date2Alt=$qb.find('.to-alt');$date1.html($date1.attr('data-placeholder'));$date2.html($date2.attr('data-placeholder'));$date1Alt.html($date1.html());$date2Alt.html($date2.html());$qb.find('.datepicker').datepicker('setDate',null);$(el).hide();},addRoom:function(el){var $bRooms=$(el).closest('.rooms');var rooms=$bRooms.find('.room').length-1;var $room0=$bRooms.find('.room:first-child');var $roomX=$room0.clone(true,true);var maxRooms=1;if(rooms<maxRooms){$roomX.find('.index').html(rooms+1);$bRooms.find('.add-room').before($roomX.show().addClass('open'));$bRooms.find('.room:visible').find('.remove-room').show();var $totalAn=$(el).closest('.quick-booking').find('.adults-number');$totalAn.html(parseInt($totalAn.html())+2);}
if(rooms>=(maxRooms-1)){$bRooms.find('.add-room').hide();}
if(rooms==0){$roomX.find('.remove-room').hide();$roomX.find('> span:first-child').hide();}else{$bRooms.find('.room:eq(1)').find('.remove-room').show();$bRooms.find('.room:eq(1)').find('> span:first-child').show();}
booking.totalGuests(el);},removeRoom:function(el){var $bRooms=$(el).closest('.rooms');var maxRooms=1;var roomAn=$(el).closest('.room').find('.guest.adults .number');var $totalAn=$(el).closest('.quick-booking').find('.adults-number');$totalAn.html(parseInt($totalAn.html())-parseInt(roomAn.html()));var roomCn=$(el).closest('.room').find('.guest.children .number');var $totalCn=$(el).closest('.quick-booking').find('.children-number');$totalCn.html(parseInt($totalCn.html())-parseInt(roomCn.html()));$(el).closest('.room').remove();$bRooms.find('.room:visible').each(function(){var $room=$(this);$room.find('.index').html($room.index());})
var rooms=$bRooms.find('.room').length-1;if(rooms<maxRooms){$bRooms.find('.add-room').show();}
if(rooms==1){$bRooms.find('.room:visible').find('.remove-room').hide();$bRooms.find('.room:visible').find('> span:first-child').hide();}
booking.totalGuests(el);},addGuest:function(el){var $el=$(el);var $input=$el.closest('.guest').find('.number');var val=parseInt($input.html())+1;var maxAdults=$el.closest('.quick-booking').attr('data-max-adults');var maxChildren=$el.closest('.quick-booking').attr('data-max-children');var maxChildrenAge=$el.closest('.quick-booking').attr('data-max-children-age');if($el.closest('.guest').hasClass('adults')){if(val>maxAdults){val=maxAdults;}else{var $an=$el.closest('.quick-booking').find('.adults-number');$an.html(parseInt($an.html())+1);}}
if($el.closest('.guest').hasClass('children')){if(val>maxChildren){val=maxChildren;}else{var $cn=$el.closest('.quick-booking').find('.children-number');$cn.html(parseInt($cn.html())+1);}
var chidrenAges=$el.closest('.children').next('.children-ages').find('.age').length-1;if(chidrenAges<maxChildren){var $chidrenAgesContainer=$el.closest('.children').next('.children-ages');var $chidrenAge0=$chidrenAgesContainer.find('.age:first-child');var el=$chidrenAge0.clone(true,true).show().addClass('open');$chidrenAgesContainer.append(el);$(el).find('.index').html($(el).index());}}
if($el.closest('.guest').hasClass('age')){val=val>maxChildrenAge?maxChildrenAge:val;}
booking.totalGuests(el);$input.html(val);},removeGuest:function(el){var $el=$(el);var $input=$el.closest('.guest').find('.number');var val=parseInt($input.html())-1;if($el.closest('.guest').hasClass('adults')){if(val<1){val=1;}else{var $an=$el.closest('.quick-booking').find('.adults-number');$an.html(parseInt($an.html())-1);}}
if($el.closest('.guest').hasClass('children')){if(val<0){val=0;}else{var $cn=$el.closest('.quick-booking').find('.children-number');$cn.html(parseInt($cn.html())-1);}
var chidrenAges=$el.closest('.children').next('.children-ages').find('.age').length-1;if(chidrenAges==0)return;$el.closest('.children').next('.children-ages').find('.age:eq('+chidrenAges+')').remove();}
if($el.closest('.guest').hasClass('age')){val=val<0?0:val;}
booking.totalGuests(el);$input.html(val);},totalGuests:function(el){$(el).closest('.quick-booking').find('.guests-number').html(parseInt($(el).closest('.quick-booking').find('.adults-number').html())+parseInt($(el).closest('.quick-booking').find('.children-number').html()));},submitSearch:function(el,e){var websiteId=Number($('body').attr('id'));var $qb=$(el).closest('.quick-booking');var link=$(el).attr('href');var dArrival=$.datepicker.parseDate($.datepicker._defaults.dateFormat,$qb.find('.from').html());var dDeparture=$.datepicker.parseDate($.datepicker._defaults.dateFormat,$qb.find('.to').html());var arrival=dArrival.getFullYear()+'-'+(dArrival.getMonth()+1)+'-'+dArrival.getDate();var departure=dDeparture.getFullYear()+'-'+(dDeparture.getMonth()+1)+'-'+dDeparture.getDate();var rooms=0;var adults='';var children='';var ages='';$qb.find('.room.open').each(function(){rooms+=1;var $room=$(this);adults+=$room.find('.guest.adults').find('.number').html()+','
children+=$room.find('.guest.children').find('.number').html()+','
var age=''
$room.find('.guest.age.open').each(function(){age+=$(this).find('.number').html()+'|';})
ages+=age.slice(0,-1)+',';});ages=ages.slice(0,-1);if(ages!=''){ages='&childages='+ages}
var _promo=$qb.find('.promo').val();var promo=_promo!=''?'&promo='+_promo:'';var url=''+
link+'&arrive='+arrival+'&depart='+departure+'&rooms='+rooms+'&adult='+adults.slice(0,-1)+'&child='+children.slice(0,-1)+
ages+
promo;if(websiteId===this.breconId){url=''+
link+'&arrival='+arrival+'&departure='+departure+'&rooms='+rooms+'&adults[1]='+adults.slice(0,-1);}
var open=window.open(url,'_blank');open.location=url;}};booking.init();;
var quickBookingCanvas={init:function(){new hcSticky('#quick-booking-canvas');}};quickBookingCanvas.init();;;
var topbarSmallDown={init:function(){new hcSticky('#topbar-small-down');var $hamb=$('#topbar-small-down a.hamb');var $book=$('#topbar-small-down a.book');var $gift=$('#topbar-small-down a.gift');const isBRE=$("body").hasClass("5177");const $topBarSmall=$("#topbar-small-down");const $menu=$("#menu");$hamb.on('click',function(){$('body').toggleClass('overflow-hidden');$('#menu-overlay').fadeToggle(250);$('#menu').fadeToggle();if(!$(this).hasClass('close')){$('#community-large-banner').addClass("is-hidden");if(isBRE){$('#menu-overlay').removeClass("overlay-for-booking");$topBarSmall.addClass("menuIsOpen");$menu.addClass("isOpen");}}else{$('#community-large-banner').removeClass("is-hidden");if(isBRE){$topBarSmall.removeClass("menuIsOpen");$menu.removeClass("isOpen");}}
if(!$(this).hasClass('close')){$('#community-small-banner').addClass("is-hidden");}
else{$('#community-small-banner').removeClass("is-hidden");}
$(this).toggleClass('close');if($(this).hasClass('close')){$book.addClass('disabled');$gift.addClass('disabled');}else{$book.removeClass('disabled');$gift.removeClass('disabled');}})
$book.on('click',function(){$('body').toggleClass('overflow-hidden');$('#menu-overlay').fadeToggle(250);$('#quick-booking-canvas').fadeToggle(250);$('#community-small-banner').toggle();$(this).toggleClass('close');if($(this).hasClass('close')){$hamb.addClass('disabled');if(isBRE){$menu.addClass("isOpen");$topBarSmall.addClass("bookingIsOpen");$('#menu-overlay').addClass("overlay-for-booking");$gift.addClass("disabled");}}else{$hamb.removeClass('disabled');if(isBRE){$menu.addClass("isOpen");$topBarSmall.removeClass("bookingIsOpen");$gift.removeClass("disabled");}}})}};topbarSmallDown.init();;;
class TopBanner{#sessionKey='topBannerDismissed';constructor(el){this.el=el;this.closeBtn=this.el.querySelector('[data-top-banner-close]');this.#init();}#init(){const isDismissed=sessionStorage.getItem(this.#sessionKey)==='1';if(isDismissed)this.el.remove();else{this.el.style.display='';this.#attachEvents();}}#attachEvents(){this.closeBtn.addEventListener('click',()=>{const onComplete=()=>{sessionStorage.setItem(this.#sessionKey,'1');this.el.remove();};$(this.el).fadeOut(1000,onComplete);},{once:true});}}
document.querySelectorAll('.top-banner').forEach(el=>new TopBanner(el));;;
var menuMediumUp={init:function(){var menuOpen=false;$(document).click(function(e){if($(e.target).attr('id')=='menu-overlay'){$('#menu a.hamb').trigger('click');}});$('#menu a.hamb').on('click',function(){const isBRE=$("body").hasClass("5177");const $logo=$("#menu a.logo");const $hambBg=$("#menu .hamb-bg");const $menu=$(this).closest('#menu');const isClose=$(this).toggleClass('close').hasClass('close');$menu.find('ul').fadeToggle(250);$('#menu-overlay').fadeToggle(250);if(isClose){menuOpen=true;$('#community-large-banner').addClass("is-hidden");if(isBRE){$menu.addClass("isOpen");$hambBg.addClass("d-none");}
$('#community-small-banner').addClass("is-hidden");}else{menuOpen=false;$('#community-large-banner').removeClass("is-hidden");if(isBRE){$menu.removeClass("isOpen");$hambBg.removeClass("d-none");}
$('#community-small-banner').removeClass("is-hidden");}});$(window).on('scroll',function(){if(menuOpen){const $menu=$('#menu');if(!$menu.hasClass('isOpen')){$menu.addClass('isOpen');}}});}};menuMediumUp.init();;;
var hero={$checker:$('#hero'),init:function(){if(hero.$checker.length){swiper.slider(hero.$checker.find(".swiper-container"));}}};hero.init();;;
var CommunityBanner={init:function(){if(CommunityBanner.checkCookie("community-banner-subscribed-success")){$("#community-small-banner").remove();return;}
if(!CommunityBanner.checkCookie("community-banner-first-time-open")){$("#community-large-banner").show();$("#community-small-banner").hide();}
$("#community-large-banner > span:first-child").on("click",function(){$("#community-large-banner").fadeOut("fast");CommunityBanner.setCookie("community-banner-first-time-open",1,365);});$(".open-large-community-banner").on("click",function(e){e.preventDefault();$("#community-large-banner").show();});if(!CommunityBanner.checkCookie("community-banner-subscribed-success")&&CommunityBanner.checkCookie("community-banner-first-time-open")){$("#community-small-banner").show();}
if(CommunityBanner.checkCookie("community-banner-arrow")){$("#community-small-banner").addClass("moved");}
$("#community-small-banner h4").on("click",function(){$("#community-small-banner").fadeOut("fast");$("#community-large-banner").fadeIn("fast");});$("#community-small-banner span.arrow").on("click",function(){$("#community-small-banner").toggleClass("moved");if($("#community-small-banner").hasClass("moved")){$("#community-small-banner span.arrow").removeClass('flipped');CommunityBanner.setCookie("community-banner-arrow",1,1);}else{$("#community-small-banner span.arrow").addClass('flipped');}
if(!$("#community-small-banner").hasClass("moved")){CommunityBanner.setCookie("community-banner-arrow",1,-1);}});$("#community-large-banner > span:first-child").on("click",function(){$("#community-large-banner").fadeOut("fast");$("#community-small-banner").fadeIn("fast");});$("#community-submit-btn").click(function(){CommunityBanner.submitSubscription();});},checkCookie:function(cname){if(CommunityBanner.getCookie(cname)==""){return false;}
return true;},getCookie:function(cname){let name=cname+"=";let decodedCookie=decodeURIComponent(document.cookie);let ca=decodedCookie.split(";");for(let i=0;i<ca.length;i++){let c=ca[i];while(c.charAt(0)==" "){c=c.substring(1);}
if(c.indexOf(name)==0){return c.substring(name.length,c.length);}}
return"";},setCookie:function(cname,cvalue,exdays){const d=new Date();d.setTime(d.getTime()+exdays*24*60*60*1000);let expires="expires="+d.toUTCString();document.cookie=cname+"="+cvalue+";"+expires+";path=/";},submitSubscription:function(){$("#email-error").hide();$("#tos-error").hide();if($("#community-pp-cb").is(":checked")){if($("#community-email-field").val()!=""){grecaptcha.execute("6LcfWZ0dAAAAAHYrbUDl8oB9tB6KCArhl0ymVZux",{action:"login",}).then(function(token){$.ajax({type:"POST",url:"/Umbraco/Api/CommunityBanner/Subscribe",data:"Email="+
$("#community-email-field").val()+"&Token="+
token+"&Language="+
$("html").attr("lang"),success:function(data){$("#community-subscription-form").hide();$("#community-subscription-complete").show();CommunityBanner.setCookie("community-banner-subscribed-success",1,1);$("#community-small-banner").remove();},error:function(jqXHR,textStatus,errorThrown){if(jqXHR.responseJSON&&jqXHR.responseJSON.hasOwnProperty("ExceptionMessage")){alert(jqXHR.responseJSON.ExceptionMessage);}else{alert("An error occurred.");}},});});}else{$("#email-error").show();}}else{$("#tos-error").show();}},};CommunityBanner.init();;;
