
$(function(){$('.menu-main .logo-small button').on('click',function(){if($('.menu-main .menu').hasClass('hide-small')){$('.menu-main .menu').removeClass('hide-small');}else{$('.menu-main .menu').addClass('hide-small');$('.menu-main li.dropdown').removeClass('dropdown-show');}});if(isMobile()===false){$(window).on('scroll',function(){var st=$(this).scrollTop();var el=$('.menu-main').parent().parent();var t=el.offset().top;if(st>=t){el.addClass('menu-main-float');}else{el.removeClass('menu-main-float');}});}
if(isMobile()){$('.menu-main li.dropdown > a').on('click',function(e){if($(this).parent().hasClass('dropdown-show')===false){$('.menu-main li.dropdown').removeClass('dropdown-show');$(this).parent().addClass('dropdown-show');e.preventDefault();}});}else{$('.menu-main li.dropdown').on('mouseover',function(){$(this).addClass('dropdown-show');});$('.menu-main li.dropdown').on('mouseout',function(){$(this).removeClass('dropdown-show');});}});var wpMenuLocation={gps:null,gpsLocation:null,elInput:null,elInputClear:null,elInputSearch:null,elResults:null,elList:null,lastData:null,init:function(){if(wpMenuLocation.gps===null){wpMenuLocation.gps=wpGeo.available();if(wpMenuLocation.gps){wpGeo.permission(function(isGranted){if(isGranted===true){wpMenuLocation.geoSearch();}
if(isGranted===false){wpMenuLocation.gps=false;}});}}
wpMenuLocation.elInput=$('#menuLocationSearch input');wpMenuLocation.elInputClear=$('#menuLocationSearch .fa-times');wpMenuLocation.elInputSearch=$('#menuLocationSearch .fa-search');wpMenuLocation.elResults=$('#menuLocationSearch .results');wpMenuLocation.elList=$('#menuLocationList');wpMenuLocation.elInput.off();wpMenuLocation.elResults.off();wpMenuLocation.elInputClear.off();wpMenuLocation.elInput.on('focus',wpMenuLocation.results.show);wpMenuLocation.elInput.on('blur',function(){setTimeout(function(){if(wpMenuLocation.elInput.is(":focus")===false){wpMenuLocation.results.hide();}},300);});wpMenuLocation.elResults.on('click',function(){wpMenuLocation.elInput.focus();});wpMenuLocation.elInput.on('keyup',function(e){if(e.keyCode===40){wpMenuLocation.results.selectNext();}else if(e.keyCode===38){wpMenuLocation.results.selectPrev();}else if(e.keyCode===13){wpMenuLocation.results.selectItem();}else{wpMenuLocation.search();}});wpMenuLocation.elInputClear.on('click',wpMenuLocation.clear);if(wpLocation.list('search').length===0&&wpCookie.get('MyWeatherGeoId')!==''){var geoId=wpCookie.get('MyWeatherGeoId');wpLocation.get(geoId,function(item){wpMenuLocation.results.select(item,null,true);});}else{wpMenuLocation.list();}},clear:function(){wpMenuLocation.elInput.val('').focus();wpMenuLocation.search();},list:function(){var items=wpLocation.list('favs');if(items.length>0&&wpMenuLocation.elList){var ls=wpMenuLocation.elList.empty();$(items).each(function(i){if(i<3){var item=this;var geoId=this.MeteoGeoId||this.GeoId;item.Name=item.Name||item.Naam;var url=wpLocation.url(item,null,null);var lsItem=$('<div></div>');lsItem.addClass('col col12 inline-medium');if(item.GeoId===wpLocation.getActiveCityId()){lsItem.addClass('active');}
var link=$('<a></a>');link.attr('href',url);link.on('click',function(e){wpMenuLocation.results.select(item,e,true);});link.append('<div class="geo-'+geoId+' wx wx-w30"></div>');link.append('<div class="geo-'+geoId+' temp"></div>');link.append('<div class="city">'+(item.DisplayName||item.Name)+'</div>');lsItem.append(link);var div=$('<div></div>');div.addClass('divider hide show-medium');lsItem.append(div);if(i>0){var btnDel=$('<button></button>');btnDel.addClass('col col2 inline-medium');btnDel.html('&times;');btnDel.on('click',function(){wpLocation.remove(item,'favs');wpMenuLocation.list();});lsItem.append(btnDel);}
ls.append(lsItem);}});wpWeather.check();}},geoSearch:function(){wpGeo.getLocation(function(location){wpMenuLocation.gpsLocation=location;wpGeo.permission(function(isGranted){if(isGranted===false){wpMenuLocation.gps=false;}
wpMenuLocation.results.update(wpMenuLocation.lastData);});});},search:function(){var q=wpMenuLocation.elInput.val();if(q.length>0){wpLocation.search(q,"nl",wpMenuLocation.results.update);wpMenuLocation.elInputSearch.hide();wpMenuLocation.elInputClear.show();}else{wpMenuLocation.results.update(null);wpMenuLocation.elInputSearch.show();wpMenuLocation.elInputClear.hide();}},results:{show:function(){wpMenuLocation.elResults.show();wpMenuLocation.search();},hide:function(){wpMenuLocation.elResults.hide();},update:function(data,query){wpMenuLocation.lastData=data;var items=[];var found=false;if(data){var resultCount=0;resultCount+=data.Places.length;resultCount+=data.SkiPlaces.length;resultCount+=data.Countries.length;resultCount+=data.PointsOfInterest.length;$.each(data.Regions,function(){var region=this;resultCount+=region.Locations.length;});found=resultCount>0;}
if(wpMenuLocation.gpsLocation!==null){items=items.concat(wpMenuLocation.results.list('Huidige locatie:',[wpMenuLocation.gpsLocation],true,false));}else{if(wpMenuLocation.gps===true){var itemTitle=$('<li></li>').html('<div>Huidige locatie:</div>');var a=$('<a></a>');a.append('<i class="fa fa-crosshairs icon"><i>');a.append('<span>Bepaal met GPS</span>');a.bind('click',function(e){e.preventDefault();wpMenuLocation.geoSearch();});if(!isTouchDevice()){a.bind('mouseover',function(e){wpMenuLocation.elResults.find('ul li a').removeClass('selected');$(this).addClass('selected');});}
var item=$('<li></li>').append(a);items.push(itemTitle);items.push(item);}}
if(!found){if(query&&query.length>0){items=items.concat('<li><div class="text-center">Geen resultaten gevonden.</div></li>');}else{items=items.concat(wpMenuLocation.results.list('Laatst gezocht:',wpLocation.list('search').slice(0,10),true,false));}}else{items=items.concat(wpMenuLocation.results.list('Locaties:',data.Places.slice(0,10),true,true));items=items.concat(wpMenuLocation.results.list('Berg/skilocaties:',data.SkiPlaces.slice(0,10),false,true));items=items.concat(wpMenuLocation.results.list('Landen:',data.Countries.slice(0,10),false,true));items=items.concat(wpMenuLocation.results.list('Bezienswaardigheden:',data.PointsOfInterest.slice(0,10),false,true));$.each(data.Regions,function(){var region=this;if(region.Locations&&region.Locations.length>0){var regionLink=region.DisplayName;if(region.URL){regionLink='<a href="'+region.URL+'">'+region.DisplayName+'</a>';}
items=items.concat(wpMenuLocation.results.list('Locaties regio "'+regionLink+'":',region.Locations.slice(0,10),true,true));}});}
wpMenuLocation.elResults.find('ul').empty().append(items);wpMenuLocation.elResults.find('ul li a:eq(0)').addClass('selected');},list:function(title,items,save,gaEvent){var ul=[];if(items.length>0){if(title.length>0){var li=$('<li></li>').html('<div>'+title+'</div>');ul.push(li);}
$(items).each(function(){var item=this;item.Name=item.Name||item.Naam||item.DisplayName;var saveItem=save&&item.URL&&item.URL.indexOf('wintersport')===-1;var url=saveItem?wpLocation.url(item,null,null):item.URL;var a=$('<a href="'+sanitize(url)+'"></a>');if(gaEvent){a.data('index',item.IndexSearch?'INDEX':'NOINDEX');a.data('geo',item.GeoId+'|'+item.DisplayName+'|'+item.CountryName);}
a.append('<img src="/Content/Images/Flags/'+sanitize(item.CountryCode)+'.png" />');a.append('<span>'+sanitize(item.Name)+'</span>');a.bind('click',function(e){var el=$(this);var elIndex=el.data('index');if(typeof elIndex!=='undefined'){var elGeo=el.data('geo');if(ga)ga('send','event','Search',elIndex,elGeo);}
wpMenuLocation.results.select(item,e,saveItem);});if(!isTouchDevice()){a.bind('mouseover',function(e){wpMenuLocation.elResults.find('ul li a').removeClass('selected');$(this).addClass('selected');});}
var li=$('<li></li>');li.append(a);ul.push(li);});}
return ul;},select:function(item,e,save){if(save){wpLocation.add(item,'favs');}
wpLocation.add(item,'search');},selectItem:function(){var el=wpMenuLocation.elResults.find('ul li a.selected');if(el.length>0){el.trigger('click');var link=el.attr('href');if(link)window.location=link;}},selectPrev:function(){var ul=wpMenuLocation.elResults.find('ul li a');var lis=wpMenuLocation.elResults.find('ul li a.selected');var i=ul.index(lis)-1;if(i<0){i=ul.length-1;}
ul.removeClass('selected');ul.eq(i).addClass('selected');},selectNext:function(){var ul=wpMenuLocation.elResults.find('ul li a');var lis=wpMenuLocation.elResults.find('ul li a.selected');var i=ul.index(lis)+1;if(i>=ul.length){i=0;}
ul.removeClass('selected');ul.eq(i).addClass('selected');}}};$(wpMenuLocation.init);setTimeout(function(){wpMenuLocation.init();},500);var wpBannerSnippet={log:function(id,status,extra){var statusDiv=$('#'+id).parent().find('.logging');if(statusDiv.length>0){var now=new Date();var time=('00'+now.getHours()).substr(-2)+':'+('00'+now.getMinutes()).substr(-2)+':'+('00'+now.getSeconds()).substr(-2);var item=$('<div class="item"></div>');item.append('<div class="time">'+time+'</div>');item.append('<div class="status">'+status+'</div>');if(extra){item.append('<div class="extra">'+extra+'</div>');}
item.appendTo(statusDiv);console.log('[AD] '+id,status);}}}
if(typeof(googletag)!='undefined'){googletag.cmd.push(function(){googletag.pubads().addEventListener('slotRenderEnded',function(event){var bannerDivId=event.slot.getSlotElementId();var details='';Object.keys(event).sort().forEach(function(key){var val=event[key];if(typeof(val)!=='object'||Array.isArray(val)){details+='<div><b>'+key+':</b> '+val+'<div>';}});wpBannerSnippet.log(bannerDivId,'rendered',details);});});}var newsWarning={init:function(){$(newsWarningTips).each(function(){newsWarning.tip(this);});},tip:function(item){var ids=wpData.getObj('tips')||[];if(ids.indexOf(item.Id)===-1){newsWarning.add(false,item.Text,item.Url,item.UrlText,item.External,'',item.Dismiss,item.Id);}},tipHide:function(id){$('#tip-'+id).remove();var ids=wpData.getObj('tips')||[];ids.push(id);wpData.setObj('tips',ids);},warning:function(item){if(item.Active){var ids=wpData.getObj('warning')||[];if(ids.indexOf(item.Id)===-1){newsWarning.add(true,item.Title,item.Url,'',false,item.Color,false,item.Id);}}},warningHide:function(id){$('#warning-'+id).remove();var ids=wpData.getObj('warning')||[];ids.push(id);wpData.setObj('warning',ids);},add:function(isWarning,text,url,urlText,external,color,dismiss,id){var w=$('<div></div>');w.attr('id',(isWarning?'warning':'tip')+'-'+id);w.addClass('item');w.addClass('bg-'+color);url=url||'';urlText=urlText||'';if(url.length>0&&urlText.length===0){urlText='Lees meer';}
var t=$('<div class="text"><i class="fa fa-'+(isWarning?'warning':'info-circle')+'"></i> '+text+(url.length>0?' <a href="'+url+'">'+urlText+'</a>':'')+'</div>');if(url.length>0){t.addClass('link');t.on('click',function(){if(!external){window.location=url;}else{window.open(url,"_blank","noopener");}});}
t.appendTo(w);if(dismiss){var b=$('<button></button>');b.html('&times;');b.on('click',function(){if(isWarning){newsWarning.warningHide(id);}else{newsWarning.tipHide(id);}});b.appendTo(w);}
if(isWarning){$('.news-warning .list').prepend(w);}else{$('.news-warning .list').append(w);}
$('.news-warning').show();}};$(newsWarning.init);var locationWidget={geoId:0,countryCode:'',init:function(id,countryCode){locationWidget.geoId=id;locationWidget.countryCode=countryCode;locationWidget.load();},load:function(){$.ajax({url:'/api/meteo/homewidget/',data:{'geoId':locationWidget.geoId},type:'GET',dataType:'json',success:locationWidget.update});},update:function(data){$('.splash-text').html(data.Splash.Text);$('.splash-bg').addClass('bg-'+data.Splash.Color.toLowerCase()).removeClass('hide');$('.flash-text').html(data.Flash.Text);$('.flash-bg').addClass('bg-'+data.Flash.Color.toLowerCase()).removeClass('hide');var elType=$('.location-widget .weather .type').empty();if(data.Obs.WXCO_EXTENDED){elType.append('<div class="geo-'+locationWidget.geoId+' wx wx-b60" style="background-image: url(/Content/Images/WeatherExtended/svg/lb/'+data.Obs.WXCO_EXTENDED+'_LB.svg)" title="'+data.Obs.WXCO_EXTENDED_TEXT+'"></div>');}else{if(data.Obs.WXCO){elType.append('<div class="geo-'+locationWidget.geoId+' wx wx-b60" style="background-image: url(/Content/Images/Weather/b60x60/'+data.Obs.WXCO+'.png)" title="'+data.Obs.WXCO_TEXT+'"></div>');}}
if(data.Obs.TTTT!==null){elType.append('<span class="geo-'+locationWidget.geoId+' temp">'+parseInt(data.Obs.TTTT)+'°</span>');}
var elRating=$('.location-widget .rating').empty();if(data.Obs.WXNUM){elRating.append('<span class="weather-rating large r-'+data.Obs.WXNUM+'" onclick="modal.show(\'#weather-rating\')">'+data.Obs.WXNUM+'</span>');elRating.append('<a href="javascript:modal.show(\'#weather-rating\')">Weercijfer</a>');}
if(data.Obs.RRRR){$('.location-widget .rain').html('Neerslag: <em>'+data.Obs.RRRR+' mm</em>').show();}else{$('.location-widget .rain').hide();}
if(data.Obs.RHRH){$('.location-widget .humidity').html('Vochtigheid: <em>'+data.Obs.RHRH+'%</em>').show();}else{$('.location-widget .humidity').hide();}
if(data.Obs.DDDD&&data.Obs.FFFF){$('.location-widget .wind').html('Wind: <em>'+data.Obs.DDDD+' '+data.Obs.FFFF+'</em>').show();}else{$('.location-widget .wind').hide();}
if(data.Obs.PPPP>0){$('.location-widget .pressure').html('Druk: <em>'+data.Obs.PPPP+' hPa</em>');}else{$('.location-widget .pressure').html();}
if(typeof newsWarning!=='undefined'){if(locationWidget.countryCode==='NL'){$('.warning-text').html(data.Warning.Title);$('.warning-bg').addClass(' bg-'+data.Warning.Color.toLowerCase()).removeClass('hide');}}
if(data.MeteoWarning!==null){var warning=$('.location-widget .meteo-warning-block');warning.html('<a target="'+target+'" href="/waarschuwing/" class="btn warning warning-small warning-bg bg-'+data.MeteoWarning.Color+'"></a>');var warningLink=$('.location-widget .meteo-warning-block a');warningLink.append('<div class="icon"><i class="fa fa-warning"></i></div>');warningLink.append('<span>WAARSCHUWING <div class="warning-text truncate">'+data.MeteoWarning.Title+'</div></span>');warningLink.append('<i class="fa fa-chevron-right"></i>');}else{$('.location-widget .meteo-warning-block').hide();}}};var radarWidget={init:function(){var zoom=6;var lat=50;var lon=50;var loc=null;if(wpLocation.city){lat=wpLocation.city.Lat;lon=wpLocation.city.Lon;loc=wpLocation.city;}else if(wpLocation.country){zoom=wpLocation.country.ZoomLevel-1.5;lat=wpLocation.country.Lat;lon=wpLocation.country.Lon;loc=wpLocation.country;}else if(wpLocation.continent){zoom=wpLocation.continent.ZoomLevel-1.5;lat=wpLocation.continent.Lat;lon=wpLocation.continent.Lon;loc=wpLocation.continent;}
var options={useHD:true,enablePan:false,enableZoom:false,minZoom:zoom,timeLabels:false};radarWidget.setContentHeight();var mapEl=$('.radar-widget .map');var map=wpMap.create(mapEl,mapEl.height(),[lat,lon],zoom,options);map.animation('forecast',1,false,null,false,null,null,null);if(wpLocation.city){map.geo(wpLocation.city,0,true,false,false);}
var linkRain=wpLocation.url(loc,'regenradar','');$('.radar-widget a').attr('href',linkRain);},setContentHeight:function(){if($('.location-widget .warning-bg').length>0&&$('.location-widget .warning-bg.bg-green').length===0){$('.radar-widget').addClass('warning');}
else{$('.radar-widget').removeClass('warning');}}};var rainWidget={graph:function(ts){var values=[];$('.rain-timeline .graph > svg').remove();if(ts.length>0){if(ts[0].precipAmount===null){console.warn('[rainWidget] No precipAmount found',ts);$('.rain-widget .rain-timeline').addClass('hide');return;}
$(ts).each(function(i){values.push(this.precipAmount);});var max=Math.ceil(Math.max.apply(null,values));if(max===0)max=1;if(max>1&&max<3)max=3;if(max>5&&max<10)max=10;var points=[];$(values).each(function(i){points.push({x:i*10,y:parseInt(60-60/max*this)});});var svgFunc=d3.svg.area().interpolate('monotone').x(function(d){return d.x;}).y0(60).y1(function(d){return d.y;});var svg='';svg+='<svg viewBox="0 0 '+(points.length-1)*10+' 60" preserveAspectRatio="none">';svg+='  <path d="'+svgFunc(points)+'" vector-effect="non-scaling-stroke" fill="#009FE3" />';svg+='</svg>';$('.rain-timeline .graph').append(svg);$('.rain-timeline .graph .label').hide();if(max<=5)$('.rain-timeline .graph .label.label-light').show().css('top',100-100/max*1+'%');if(max>=3)$('.rain-timeline .graph .label.label-moderate').show().css('top',100-100/max*3+'%');if(max>=10)$('.rain-timeline .graph .label.label-high').show().css('top',100-100/max*10+'%');$('.rain-widget .rain-timeline').removeClass('hide');}else{$('.rain-widget .rain-timeline').addClass('hide');}}};$(function(){var cells=$('.forecast-fullday table.hasChart td');if(isMobile()===false){cells.hover(function(){var day=$(this).data('day');$('.forecast-fullday td[data-day="'+day+'"]').addClass('hoverColumn');},function(){cells.removeClass('hoverColumn');});}
cells.on('click',function(){var day=$(this).data('day');var el=$('.forecast-fullday .chart[data-day="'+day+'"]');var doShow=!el.hasClass('active');$('.forecast-fullday .chart').removeClass('active');$('.forecast-fullday td').removeClass('activeColumn');if(doShow){el.addClass('active');$('.forecast-fullday td[data-day="'+day+'"]').addClass('activeColumn');if(el.offset().top+el.height()>$('body').scrollTop()+$(window).height()){var top=el.offset().top-($(window).height()-el.height())+20;$('html,body').animate({scrollTop:top},500);}
var scrollLeft=7*(isMobile()?44:56);el.find('.scroll').scrollLeft(scrollLeft);}});if(wpData.get('fullday-tip-1')!=='true'){$('.forecast-fullday .tip').removeClass('hide');}
$('.forecast-fullday .tip button').on('click',function(){$(this).parent().addClass('hide');wpData.set('fullday-tip-1','true');});});var newsWidget={itemTotal:0,itemIndex:0,itemCount:0,init:function(){newsWidget.itemTotal=$('.news-widget .slider-panel .news-item').length;$(window).on('resize',function(){newsWidget.goto(newsWidget.itemIndex,false);});newsWidget.goto(newsWidget.itemIndex,false);if(isTouchDevice()){var el=$('.news-widget .slider')[0];if(el){var hammerEl=new Hammer(el);hammerEl.on('swipeleft',newsWidget.next);hammerEl.on('swiperight',newsWidget.prev);}}},goto:function(index,animate){newsWidget.itemIndex=index;newsWidget.itemCount=$(window).width()<=640?1:3;var pager=$('.news-widget .slider-pagination').empty().hide();if(newsWidget.itemTotal>newsWidget.itemCount){for(var i=0;i<newsWidget.itemTotal/newsWidget.itemCount;i++){var pageIndex=i*newsWidget.itemCount;var page=$('<div></div>');page.data('index',pageIndex);if(pageIndex<=newsWidget.itemIndex&&pageIndex>newsWidget.itemIndex-newsWidget.itemCount){page.addClass('active');}
page.on('click',function(){var itemIndex=parseInt($(this).data('index'));newsWidget.goto(itemIndex,true);});page.appendTo(pager);}
pager.show();}else{newsWidget.itemIndex=0;}
$('.news-widget .slider-panel').css({'transition':'transform '+(animate?500:0)+'ms ease','transform':'translateX(-'+(100/newsWidget.itemTotal*newsWidget.itemIndex)+'%)'});},prev:function(){if(newsWidget.itemIndex>0){var index=newsWidget.itemIndex-1;newsWidget.goto(index,true);}},next:function(){var index=newsWidget.itemIndex+1;if(index>newsWidget.itemTotal-newsWidget.itemCount)index=0;newsWidget.goto(index,true);}};$(newsWidget.init);(function(){__tcfapi('getTCData',2,(tcData,success)=>{if(success){let data;if(plistaArticleData!==undefined){data={"publickey":plistaPublicKey,"item":plistaArticleData,"origin":"nl"}}else{data={"publickey":plistaPublicKey,"origin":"nl","dataMode":"data-display","noCache":true,"widgets":[plistaTagName]}}
(function(c){var g,s,n='script',w=window;w.PLISTA_=w.PLISTA_||[];w.PLISTA_.push(c);if(w.PLISTA_.length>1){return;}
g=w.document.getElementsByTagName(n)[0];s=w.document.createElement(n);s.async=true;s.src="https://static-nl.plista.com/async/min.js";g.parentNode.insertBefore(s,g);}(data));}},[177,32]);})();var weatherStation={geoId:0,init:function(stationData){weatherStation.checkWind(stationData);weatherStation.checkSize();},checkSize:function(){var snippet=$('.weather-station.snippet');var width=snippet.width();if(width<318){if(width<193){snippet[0].classList.add("xsmall");snippet[0].classList.remove('small');}else{snippet[0].classList.add("small");snippet[0].classList.remove("xsmall");}}else{snippet[0].classList.remove("small");snippet[0].classList.remove("xsmall");}},checkWind:function(data){var notNull=0;var dataKeys=Object.keys(data);var filledKeys=[];var distanceFilled=false;var pressureFilled=false;var validdtFilled=false;var windDirectionFilled=false;var windStrengthFilled=false;var windOnly=false;$(dataKeys).each(function(i){if(data[this]!==null){notNull=notNull+1;filledKeys.push(this.toString());}});$(filledKeys).each(function(i){if(filledKeys[i]==='DDDD'){windDirectionFilled=true;}else if(filledKeys[i]==="Distance"){distanceFilled=true;}else if(filledKeys[i]==="Validdt"){validdtFilled=true;}else if(filledKeys[i]==="PPPP"){pressureFilled=true;}else if(filledKeys[i].startsWith('FFF')){windStrengthFilled=true;}});if(notNull===9&&distanceFilled&&validdtFilled&&windDirectionFilled&&windStrengthFilled){windOnly=true;}
if(notNull===10&&distanceFilled&&validdtFilled&&windDirectionFilled&&windStrengthFilled&&pressureFilled){windOnly=true;}
if(windOnly){var textElem=$('.weather-station .content .text p');var text=textElem[0].innerHTML;text=text+" Dit station meet alleen wind.";textElem[0].innerHTML=text;$('.weather-station .location .data .pressure').hide();}}};window.onresize=function(){weatherStation.checkSize();};(function(){'use strict';try{(function(){const widget=document.querySelector('.hf-widget');const browserSupport=document.querySelector('.hf-browser-support');const allPages=widget.querySelectorAll('.hf-page');const progress=widget.querySelector('.hf-progress');const fill=widget.querySelector('.hf-fill');const next=widget.querySelector('.hf-next');const prev=widget.querySelector('.hf-previous');let currentPage=0;let timerId=undefined;let nextDisabled=false;let huidtype=undefined;const clickType=widget.querySelector('.hf-huidtype');const huidtypeText={"1":"Zeer lichte huid, vaak met sproeten en rood of lichtblond haar. Verbrandt zeer snel.","2":"Lichte huid, blond haar met grijze, groene of blauwe ogen. Verbrandt snel.","3":"Licht getinte huid,  donkerblond tot bruin haar met vrij donkere ogen. Verbrandt soms.","4":"(Licht) getinte huid, donker haar met donkere ogen. Verbrandt minimaal.","5":"Donkere huid, donker tot zwart haar met donkere ogen. Verbrandt zelden.","6":"Zeer donkere huid, zwart haar met donkere ogen. Verbrandt zelden."};const searchbar=widget.querySelector('.searchbar');const searchResults=widget.querySelector('.hf-results');const searchContainer=widget.querySelector('.hf-search');const noResults=widget.querySelector('.no-results');const currentLoc=widget.querySelector('.current-location');let cityName=undefined;let geoId=undefined;let places=undefined;let focus=false;const activiteitType=widget.querySelector('.hf-activiteit');let activity=undefined;let activityText=undefined;let activityShortText=undefined;let minutes=undefined;let lastRad=undefined;let uvResponse=undefined;let uvResponsePeriod=undefined;let uv=undefined;let dayPeriod=undefined;const reset=widget.querySelector('.refresh');let advice=undefined;next.addEventListener('click',pageNext);prev.addEventListener('click',pagePrevious);searchbar.addEventListener('keyup',search);searchbar.addEventListener('focus',focusSearch);searchbar.addEventListener('blur',unfocusSearch);activiteitType.addEventListener('click',processActiviteit);clickType.addEventListener('click',processHuidType);reset.addEventListener('click',resetWidget);searchResults.addEventListener('click',processResult);browserSupport.setAttribute('tabindex',-1);hide(browserSupport);show(widget);processPageChange(0);function pageNext(){if(currentPage+1>=allPages.length||nextDisabled){return;}
for(let i=0;i<allPages.length;i++){allPages[i].style.transform='translateX(-'+(currentPage+1)*100+'%)';}
currentPage++;processPageChange(currentPage);};function pagePrevious(){if(currentPage-1<0){return;}
for(let i=0;i<allPages.length;i++){allPages[i].style.transform='translateX(-'+(currentPage-1)*100+'%)';};currentPage--;processPageChange(currentPage);};function show(htmlNode){htmlNode.classList.remove('hf-hide');htmlNode.setAttribute('aria-hidden',false);};function hide(htmlNode){htmlNode.classList.add('hf-hide');htmlNode.setAttribute('aria-hidden',true);};function setProgress(percentage){fill.setAttribute('aria-valuenow',percentage);fill.style.width=percentage+'%';};function debounceFunction(fn,delay){if(timerId){return;}
delay=parseInt(delay);timerId=setTimeout(function(){fn();timerId=undefined;},delay);};function disableNext(){nextDisabled=true;next.classList.add('disabled');};function enableNext(){nextDisabled=false;next.classList.remove('disabled');};function processPageChange(page){switch(page){case 0:hide(progress);hide(prev);show(next);enableNext();break;case 1:show(progress);show(prev);show(next);processPageTwo();setProgress(20);break;case 2:hide(next);clearSearch();setProgress(40);getCurrentLocation();processPageThree();break;case 3:show(next);setProgress(60);setActivity();processPageFour();break;case 4:show(progress);setProgress(80);processPageFive();break;case 5:show(progress);show(next);getUvIndex();setProgress(100);processPageSix();break;case 6:hide(progress);hide(next);getAdvice();break;default:console.log('Something went wrong');break;}};function processPageTwo(){if(!huidtype){disableNext();}else{enableNext();}};function processHuidType(event){if(event.target.name==='huidtype'){huidtype=parseInt(widget.querySelector('#'+event.target.id).value);const huidtypeEl=widget.querySelector('.huidtypeText');huidtypeEl.innerHTML=huidtypeText[huidtype];huidtypeEl.classList.remove('light');enableNext();}};function processPageThree(){if(!geoId||!cityName){disableNext();}else{enableNext();}};function focusSearch(){searchContainer.classList.add('focus');focus=true;};function unfocusSearch(){if(searchbar.value.length===0){focus=false;setTimeout(function(){if(!focus){searchContainer.classList.remove('focus');}},1000);}};function clearSearch(){searchbar.value='';searchResults.innerHTML='';hide(searchResults);hide(noResults);unfocusSearch();};function search(event){debounceFunction(function(){return searchLocation(event.target.value);},400);};function getCurrentLocation(){if(!geoId&&!cityName&&navigator.geolocation){navigator.geolocation.getCurrentPosition(processCurrentLocation,processLocationError);}else if(!navigator.geolocation){hide(currentLoc);}};function processCurrentLocation(location){getLocationInfo(location.coords.latitude,location.coords.longitude);};function processLocationError(error){hide(currentLoc);};function getLocationInfo(lat,lon){try{const request=new XMLHttpRequest();request.open('GET','https://api.meteoplaza.com/v2/geo/search?lat='+lat+'&lon='+lon,true);request.onload=function(){if(this.status>=200&&this.status<400){const result=JSON.parse(this.response);cityName=result.location.displayName;geoId=result.location.geoId;currentLoc.innerHTML='Of kies je huidige locatie: '+cityName;currentLoc.addEventListener('click',pageNext);enableNext();}};request.send();}catch(error){hide(currentLoc);}};function searchLocation(query){try{const request=new XMLHttpRequest();request.open('GET','https://api.meteoplaza.com/v2/geo/search?name='+query,true);request.onload=function(){if(this.status>=200&&this.status<400){const result=JSON.parse(this.response);if(result.places&&result.places.length>5){places=result.places.splice(0,5);}else if(result.places){places=result.places;}
places=places.filter(function(item){if(item.countryCode==='NL'){return item;}});if(places&&places.length>0){searchResults.classList.remove('hf-hide');show(searchResults);hide(noResults);noResults.classList.add('hf-hide');searchResults.innerHTML='';for(let i=0;i<places.length;i++){searchResults.innerHTML+='\n <label class="hf-result">\n <input type="radio" value="'+places[i].geoId+'" name="result" id="result'+places[i].geoId+'">\n '+places[i].displayName+'\n </label>\n ';}}else if(searchbar.value.length>0){hide(searchResults);show(noResults);}else{hide(searchResults);hide(noResults);}}};request.send();}catch(error){console.log(error);}};function processResult(event){if(event.target.name==='result'){geoId=parseInt(widget.querySelector('#'+event.target.id).value);cityName=places.find(function(item){return item.geoId===geoId;}).displayName;enableNext();pageNext();}};function processPageFour(){if(!activity){disableNext();}else{enableNext();}};function setActivity(){const cityNameEl=widget.querySelector('.cityName');if(cityName){cityNameEl.innerHTML='In '+cityName+' ben ik ...';}};function processActiviteit(event){if(event.target.name==='activiteit'){activity=widget.querySelector('#'+event.target.id).value;switch(activity){case'buiten':activityText='naar buiten';activityShortText='naar buiten gaat';break;case'buiten-sporten':activityText='buiten sporten';activityShortText='buiten gaat sporten';break;case'water':activityText='naar het water';activityShortText='naar het water gaat';break;}
enableNext();}};const canvas=widget.querySelector('.canvas-wrapper > #canvas');const wrapper=widget.querySelector('.canvas-wrapper');const chosenTime=widget.querySelector('.chosen-time');const ctx=canvas.getContext('2d');let width,height,centerX,centerY;let dragging=false;let circleSize=100;let thickness=10;let draggingCircleSize=14;function canvasInit(){window.addEventListener('resize',function(){debounceFunction(canvasDraw,200);});canvasDraw();}
function canvasDraw(){canvas.width=wrapper.clientWidth;canvas.height=wrapper.clientHeight;width=canvas.width;height=canvas.height;centerX=width/2;centerY=height/2;circleSize=width/3;window.requestAnimationFrame(function(){render(lastRad);});};function addEventListeners(startEvent,moveEvent,endEvent){canvas.addEventListener(startEvent,function(event){event.preventDefault();if(!dragging){dragging=true;canvas.addEventListener(moveEvent,moveMouse);canvas.addEventListener(endEvent,function endMouseMove(){dragging=false;canvas.removeEventListener(moveEvent,moveMouse);canvas.removeEventListener(endEvent,endMouseMove);});}});}
function moveMouse(event){const mouse=getClientCoordinates(canvas,event);const rad=Math.atan2(mouse.y-centerY,mouse.x-centerX);window.requestAnimationFrame(function(){render(rad+(Math.PI*0.5));});}
function getClientCoordinates(canvas,event){const rect=canvas.getBoundingClientRect();if(event.type==='touchmove'){return{x:event.touches[0].clientX-rect.left,y:event.touches[0].clientY-rect.top}}else{return{x:event.clientX-rect.left,y:event.clientY-rect.top}}}
function render(rad){lastRad=rad;ctx.clearRect(0,0,canvas.width,canvas.height);ctx.beginPath();ctx.arc(width/2,height/2,circleSize,0,2*Math.PI);ctx.strokeStyle='white';ctx.lineWidth=thickness;ctx.lineCap='round';ctx.stroke();ctx.beginPath();ctx.arc(width/2,height/2,circleSize,degreesToRad(-90),rad-(Math.PI*0.5));ctx.strokeStyle='#f92599';ctx.lineWidth=thickness;ctx.lineCap='round';ctx.stroke();const cx=Math.cos(rad-(Math.PI*0.5))*circleSize;const cy=Math.sin(rad-(Math.PI*0.5))*circleSize;ctx.beginPath();ctx.arc(width/2+cx,height/2+cy,draggingCircleSize,0,2*Math.PI);ctx.fillStyle='#f92599';ctx.fill();let degrees=radToDegrees(rad);if(degrees<0){degrees=degrees+360;}
minutes=degrees*1.5;chosenTime.innerHTML=minuteConverter(minutes);};function setHandle(degrees){const rad=degreesToRad(degrees);window.requestAnimationFrame(function(){render(rad);});}
function radToDegrees(rad){return rad/(Math.PI/180);}
function degreesToRad(degrees){return degrees*(Math.PI/180);}
function minuteConverter(minutes){const hours=Math.floor(minutes/60);const remaining=Math.floor(minutes%60);return hours+'u '+remaining+'min';}
function processPageFive(){if(!lastRad){canvasInit();setHandle(60.5);}
addEventListeners('mousedown','mousemove','mouseup');addEventListeners('touchstart','touchmove','touchend');enableNext();};function processPageSix(){if(document.referrer&&typeof window.URL==="function"){const link=document.getElementById('wplink');const source=new URL(document.referrer).hostname;link.href="https://www.weerplaza.nl/"+"?utm_source="+source+"&utm_medium=referral&utm_campaign=widget";}
if(uv===undefined){disableNext();}else{enableNext();}};function getUvIndex(){const activityNameEl=widget.querySelector('.activityName');activityNameEl.innerHTML='Ik ga ... '+activityText;if(geoId&&!uvResponse){try{const request=new XMLHttpRequest();request.open('GET','https://api.meteoplaza.com/v2/clients/huidfonds/widget/'+geoId,true);request.onload=function(){if(this.status>=200&&this.status<400){uvResponse=JSON.parse(this.response);const container=widget.querySelector('.hf-moment');container.innerHTML='';for(let i=0;i<uvResponse.length;i++){container.innerHTML+='\n <div class="hf-block hf-mb-2">\n <label for="moment-'+(i+1)+'" class="rbutton horizontal">\n <input type="radio" value="'+i+'" name="moment" id="moment-'+(i+1)+'">\n <div class="check"></div>\n <span>'+uvResponse[i].dayPeriod+'</span>\n\n <div class="info">\n <img src="https://www.weerplaza.nl/content/images/weatherextended/svg/lb/'+uvResponse[i].weatherIcon+'_LB.svg"/>\n <div class="index">UV '+uvResponse[i].uvIndex+'</div>\n </div>\n </label>\n </div>\n ';}
container.addEventListener('click',processMoment);}};request.send();}catch(error){console.log('UV Index kon niet worden opgehaald.');}}};function processMoment(event){if(event.target.name==='moment'){let index=parseInt(widget.querySelector('#'+event.target.id).value);uv=parseInt(uvResponse[index].uvIndex);uvResponsePeriod=uvResponse[index];let period=uvResponse[index].dayPeriod;if(period==='nu - vanochtend'){dayPeriod='vanochtend';}else if(period==='nu - vanmiddag'){dayPeriod='vanmiddag';}else{dayPeriod=period;}
enableNext();}};function getAdvice(){if(!advice){try{const request=new XMLHttpRequest();request.open('GET','/Content/Data/huidfonds-advice.json?h=H1606',true);request.onload=function(){if(this.status>=200&&this.status<400){advice=JSON.parse(this.response);printAdvice();}};request.send();}catch(error){console.log(error);}}else{printAdvice();}};function printAdvice(){const adviceEl=widget.querySelector('.advice');const topTextEl=widget.querySelector('.top-text');const bottomTextEl=widget.querySelector('.bottom-text');topTextEl.innerHTML='Als jij <i>'+dayPeriod+' in '+cityName+' '+activityShortText+'</i> adviseren wij...';if(uvResponsePeriod.sunnyWeather){if(minutes>advice[huidtype-1][uv].duratie){if(activity==='buiten'){adviceEl.innerHTML='<p>Smeer met <b>factor '+advice[huidtype-1][uv].factor+'</b> en doe dit <b>'+advice[huidtype-1][uv].tijd+'</b>.</p>';}else if(activity==='buiten-sporten'){adviceEl.innerHTML='<p>Smeer met <b>factor '+advice[huidtype-1][uv].factor+'</b> en doe dit <b>'+advice[huidtype-1][uv].tijd+'</b>. Tijdens het sporten extra aanbrengen.</p>';}else if(activity==='water'){adviceEl.innerHTML='<p>Smeer met <b>factor '+advice[huidtype-1][uv].factor+'</b> en doe dit <b>'+advice[huidtype-1][uv].tijd+'</b>. Na het zwemmen opnieuw aanbrengen.</p>';}
if(dayPeriod!=='vanavond'){if(uvResponsePeriod.rainyWeather){bottomTextEl.innerHTML='Het is vandaag wisselvallig. Volg dit advies indien de zon schijnt, maar gebruik een paraplu bij neerslag 😉';}else if(huidtype===5||huidtype===6){bottomTextEl.innerHTML='Jouw huid verbrandt zelden, maar om huidveroudering tegen te gaan volg dit advies.';}else{bottomTextEl.innerHTML='Denk aan je zonnebril en zoek de schaduw op.';}}else{bottomTextEl.innerHTML='Dit advies geldt alleen voordat de zon ondergaat.';}}else{adviceEl.innerHTML='<p>Door de combinatie van jouw huidtype, de tijdsduur van je activiteit en de UV-kracht is beschermen van je huid tegen zonverbranding niet nodig.</p>';bottomTextEl.innerHTML='Ga je langer in de zon check dit advies dan opnieuw.';}}else if(uvResponsePeriod.rainyWeather&&!uvResponsePeriod.sunnyWeather){adviceEl.innerHTML='<p>Er valt neerslag '+dayPeriod+'! Gebruik een paraplu 😉 Als de neerslag stopt, check dan dit advies opnieuw.</p>';bottomTextEl.innerHTML='';}else if(!uvResponsePeriod.rainyWeather&&!uvResponsePeriod.sunnyWeather){adviceEl.innerHTML='<p>De zon schijnt '+dayPeriod+' niet, wanneer deze gaat schijnen check dit advies opnieuw.</p>';bottomTextEl.innerHTML='';}};function resetWidget(){currentPage=-1;setProgress(0);pageNext();};window.addEventListener('unload',function(){next.removeEventListener('click',pageNext);prev.removeEventListener('click',pagePrevious);clickType.removeEventListener('click',processHuidType);searchbar.removeEventListener('keyup',search);searchbar.removeEventListener('focus',focusSearch);searchbar.removeEventListener('blur',unfocusSearch);activiteitType.removeEventListener('click',processActiviteit);reset.removeEventListener('click',resetWidget);searchResults.removeEventListener('click',processResult);});})();}catch(error){console.log(error);}})();$(function(){$('.menu-footer .newsletter button').on('click',function(){var btn=$(this).prop('disabled',true);var feedback=btn.parent().find('.feedback').hide();var input=btn.parent().find('input');var mail=input.val().trim();if(mail.length<=5){setTimeout(function(){feedback.html('Geen geldig E-mailadres.').addClass('error').removeClass('success').show();btn.prop('disabled',false);},300);}else{wpNewsletter.subscribe('/api/newsletter/subscribe/?mail='+mail,function(msg,err){if(err!==''){feedback.html(err).addClass('error').removeClass('success').show();}else{feedback.html(msg).addClass('success').removeClass('error').show();input.val('').hide();btn.hide();}
btn.prop('disabled',false);});}});});