function showMeteogramBubble(cursorPos){var hour=Math.floor(cursorPos / 16);var bubble=$("#pocasi .hourly-forecast .meteogram .meteogram-bubble").hide();var bubble=$("#pocasi .hourly-forecast .meteogram .meteogram-bubble").eq(hour);bubble.css({left:cursorPos+40+"px"}).show();}
function hideMeteogramBubble(){var bubble=$("#pocasi .hourly-forecast .meteogram .meteogram-bubble");bubble.hide();}
function setDefaultPlaceSuccess(result){if(result.status=="OK"){location.reload();}}
function setDefaultPlace(place){$.ajax({url:"/ajax/set-default-place",type:"POST",data:{place:place},async:true,cache:false,dataType:"json",success:function(result){setDefaultPlaceSuccess(result);}});}
function unsetDefaultPlaceSuccess(result){if(result.status=="OK"){location.reload();}}
function unsetDefaultPlace(){$.ajax({url:"/ajax/unset-default-place",type:"POST",data:{},async:true,cache:false,dataType:"json",success:function(result){unsetDefaultPlaceSuccess(result);}});}
$(document).on("mousemove","#pocasi .hourly-forecast .meteogram",function(event){var meteogramOffset=$(this).offset().left;var meteogramEnd=$(this).find("img").width()-80;var cursorPos=event.pageX-meteogramOffset-40;if(cursorPos>0&&cursorPos<meteogramEnd){showMeteogramBubble(cursorPos);}else{hideMeteogramBubble();}});$(document).on("mouseleave","#pocasi .hourly-forecast .meteogram",function(){hideMeteogramBubble();});$(document).on("scroll",function(){var bannerWrapper=$("#pocasi .right .wrapper");var wrapperBottom=$("#pocasi .right + .cleaner").offset().top;var scrollableHeight=$("html").height()-$(window).height();var scrolled=$(document).scrollTop()+20;var bannerPosition=bannerWrapper.offset().top;var newBannerPos=Math.max(scrolled-bannerPosition,0);var fiki=bannerWrapper.find(".fiki");var maxBannerTopPosition=wrapperBottom-bannerPosition-fiki.height()-20;fiki.css({top:Math.min(newBannerPos,maxBannerTopPosition)+"px"});});$(document).on("click","#pocasi button[name='set-as-default']",function(){setDefaultPlace($(this).attr("placeId"));});$(document).on("click","#pocasi button[name='unset-as-default']",function(){unsetDefaultPlace();});function setRadarTitleTime(datetime){var datetime=new Date(datetime.replace(/-/g,"/"));var t=timing(datetime.format("Y-m-d"));var hour=datetime.format("G:i");if(t===null)t=datetime.format("j.n.");$("#radar h1 .time").html(t+" "+hour);}
function loadTimes(hours){switch(hours){case"12-hours":radarSlider.animationDelay=100;break;case"3-hours":default:radarSlider.animationDelay=200;hours="3-hours";}
var radarImages=$("#radar .map .radar-images .radar-image");if(hours=="12-hours"){radarSlider.pointsPerStretch=4;}else{radarSlider.pointsPerStretch=1;var count=radarImages.length;radarImages=radarImages.eq(count-1-3*4).nextAll(".radar-image");}
var times=[];radarImages.each(function(){times.push($(this).attr("time"));});if(times.length){setShortTermTitleTime(times[0]);}
radarSlider.drawSliderTimeline(times);}
function loadRadarImages(){loadTimes("3-hours");$("#radar .buttons").fadeIn(1000);$("#radar .slider#radar-slider .play button").fadeIn(1000);$("#radar .slider#radar-slider .timeline").fadeIn(1000);}
$(document).on("click","#radar #radar-slider .play button",function(){var name=$(this).attr("name");if(name=="play"){radarSlider.start();}else{radarSlider.pause();}});$(document).on("mousedown","#radar #radar-slider .timeline .cursor-wrapper",function(e){radarSlider.pause();var clickAtPos=e.pageX-$(this).offset().left-8;clickAtPos=Math.max(clickAtPos,0);clickAtPos=Math.min(clickAtPos,radarSlider.timeline.width()-radarSlider.pointWidth);radarSlider.moveToPosition(clickAtPos);e.type="mousedown.draggable";e.target=radarSlider.cursor;radarSlider.cursor.trigger(e);});$(document).on("click","#radar .buttons button",function(){var name=$(this).attr("name");radarSlider.pause();loadTimes(name);radarSlider.reset();radarSlider.start();});var radarSlider;var imagesNotLoaded=true;$(document).ready(function(){radarSlider=new Slider($("#radar-slider"));radarSlider.animationDelay=100;radarSlider.complete=function(){if(Math.abs(this.cursorPos-this.getPointPosition(this.curPoint))<this.stretchWidth)return;var index=Math.floor(this.cursorPos / this.stretchWidth);this.curPoint=this.timeline.find(".point").eq(index);var time=this.curPoint.attr("time");var imageFrames=$("#radar .map .radar-images");setRadarTitleTime(time);imageFrames.find(".radar-image:visible").fadeOut(00);imageFrames.find(".radar-image[time='"+time+"']").fadeIn(00);}
$("#radar #radar-slider .timeline .cursor").draggable({containment:"parent",drag:function(){radarSlider.pause();radarSlider.moveToPoint($(this));}});loadRadarImages();setTimeout(function(){radarSlider.reset();radarSlider.start();},2000);});function setShortTermTitleTime(datetime){var datetime=new Date(datetime.replace(/-/g,"/"));var t=timing(datetime.format("Y-m-d"));var hour=datetime.format("G:i");if(t===null)t=datetime.format("j.n.");$("#kratkodoba-predpoved h1 .time").html(t+" "+hour);}
function loadHourlyForecastsSuccess(result,slider){$("#kratkodoba-predpoved .map .forecasts").html(result.html);var forecasts=$("#kratkodoba-predpoved .map .forecasts .forecast");var times=[];forecasts.each(function(){times.push($(this).attr("time"));});setShortTermTitleTime(result.from);slider.drawSliderTimeline(times);slider.init();setTimeout(function(){},1000);$("#kratkodoba-predpoved .buttons").fadeIn(1000);$("#kratkodoba-predpoved .slider#short-term-slider .play button").fadeIn(1000);$("#kratkodoba-predpoved .slider#short-term-slider .timeline").fadeIn(1000);}
function loadHourlyForecasts(slider){$.ajax({url:"/ajax/load-hourly-forecast-for-main-towns",type:"POST",data:{},async:true,cache:false,dataType:"json",success:function(result){if(result.status=="OK"){loadHourlyForecastsSuccess(result,slider);}}});}
$(document).on("mouseenter","#kratkodoba-predpoved .map .forecasts .forecast .town",function(){var region_id=$(this).attr("region");var region=$("#kratkodoba-predpoved .map img.region[index='"+region_id+"']").attr("name");$(this).parents(".map").find("img[name='"+region+"']").show();});$(document).on("mouseleave","#kratkodoba-predpoved .map .forecasts .forecast .town",function(){var region_id=$(this).attr("region");var region=$("#kratkodoba-predpoved .map img.region[index='"+region_id+"']").attr("name");$(this).parents(".map").find("img[name='"+region+"']").hide();});$(document).on("mouseenter","#kratkodoba-predpoved .map map area",function(){var region=$(this).attr("name");$(this).parent("map").parent(".map").find("img[name='"+region+"']").show();});$(document).on("mouseleave","#kratkodoba-predpoved .map map area",function(){var region=$(this).attr("name");$(this).parent("map").parent(".map").find("img[name='"+region+"']").hide();});$(document).on("click","#kratkodoba-predpoved .slider#short-term-slider .play button",function(){var name=$(this).attr("name");if(name=="play"){shortTermSlider.start();}else{shortTermSlider.pause();}});$(document).on("mousedown","#kratkodoba-predpoved .slider#short-term-slider .timeline .cursor-wrapper",function(e){shortTermSlider.pause();var clickAtPos=e.pageX-$(this).offset().left-8;clickAtPos=Math.max(clickAtPos,0);clickAtPos=Math.min(clickAtPos,shortTermSlider.timeline.width()-shortTermSlider.pointWidth);shortTermSlider.moveToPosition(clickAtPos);e.type="mousedown.draggable";e.target=shortTermSlider.cursor;shortTermSlider.cursor.trigger(e);});$(document).on("click","#kratkodoba-predpoved .buttons button",function(){var name=$(this).attr("name");var points=$("#kratkodoba-predpoved #short-term-slider .timeline .point.timing");var point;switch(name){case"animate":shortTermSlider.pause();shortTermSlider.start();return;case"today":point=points.eq(0);break;case"tomorrow":point=points.eq(1);break;case"day-after-tomorrow":point=points.eq(2);break;default:return;}
if(point!==undefined&&point.length){shortTermSlider.pause();shortTermSlider.moveToPoint(point);}});var shortTermSlider;$(document).ready(function(){shortTermSlider=new Slider($("#short-term-slider"));shortTermSlider.complete=function(){if(Math.abs(this.cursorPos-this.getPointPosition(this.curPoint))<this.stretchWidth){return;}
var index=Math.floor(this.cursorPos / this.stretchWidth);this.curPoint=this.timeline.find(".point").eq(index);var time=this.curPoint.attr("time");var mapFrames=$("#kratkodoba-predpoved .forecasts");setShortTermTitleTime(time);mapFrames.find(".forecast:visible").hide();mapFrames.find(".forecast[time='"+time+"']").show();}
shortTermSlider.afterDrawSliderTimeline=function(){var prevTiming=null;this.timeline.find(".point.orange").each(function(){var curTiming=$(this).attr("time").substr(0,10);if(curTiming!=prevTiming){var t=timing(curTiming);if(t===null){t=czDayName(curTiming,true);}
$(this).addClass("timing").append('<div class="timing">'+t+'</div>');prevTiming=curTiming;}});return true;}
$("#kratkodoba-predpoved .slider#short-term-slider .timeline .cursor").draggable({containment:"parent",drag:function(){shortTermSlider.pause();shortTermSlider.moveToPoint($(this));}});setTimeout(function(){loadHourlyForecasts(shortTermSlider);},100);});function removeFavoritePlace(placeId){$.ajax({url:"/ajax/remove-user-place",type:"POST",data:{placeId:placeId},async:true,cache:false});$(".place-forecast-table .town-weather").each(function(){var tbody=$(this).find("tbody");tbody.find("span[name='hide'][placeId='"+placeId+"']").parents("tr").remove();if(!tbody.find("tr").length){$(this).find("thead").find("tr").remove();}});}
$(document).on("click",".place-forecast-table .town-weather tbody tr td.name span[name='hide']",function(){var place=$(this).attr("placeId");removeFavoritePlace(place);});$(document).on("mouseenter","#small-cr map area",function(){var region=$(this).attr("name");$("#small-cr").find("img.small-map").attr({src:"/img/small-cr/"+region+".png"});});$(document).on("mouseleave","#small-cr map area",function(){var region=$(this).parent("map").attr("default");$("#small-cr").find("img.small-map").attr({src:"/img/small-cr/"+region+".png"});});function searchSuccess(results){var ul=$("#header .search ul.results");var html='';for(i in results){html+='         <li>             <a href="/pocasi/'+results[i].url_name+'">                 <span class="place">'+results[i].name+'</span>                 <span class="region">'+results[i].region+'</span>                 <div class="cleaner"></div>             </a>         </li>  ';}
if(results.length>0){ul.html(html).show();}else{ul.hide();}}
function search(query){$.ajax({url:"/ajax/search",type:"POST",data:{query:query},async:true,cache:false,dataType:"json",success:function(result){if(result.status=="OK"){searchSuccess(result.results);}}});}
var queryPrev=null;$(document).on("click blur keyup","#header input[name='query']",function(){var query=$(this).val();if(query==queryPrev){return;}
queryPrev=query;search(query);});$(document).ready(function(){$("#header input[name='query']").val("");$("#header .search ul.results").html("").hide();;});function Slider(slider){this.slider=[];this.playButton=[];this.timeline=[];this.cursor=[];this.stretchWidth=0;this.times=[];this.pointWidth=4;this.pointsPerStretch=6;this.animationDelay=760;this.cursorCurPos=0;this.cursorPrevPos=0;this.curPoint=null;this.animation=false;this.reset=function(){if(this.timeline.length){this.cursorPos=0;this.curPoint=this.timeline.find(".point").first();this.cursor.css({left:"0px"});}}
this.init=function(slider){if(slider!==undefined&&slider.length){this.slider=slider;this.playButton=slider.find(".play").find("button");this.timeline=slider.find(".timeline");this.cursor=this.timeline.find(".cursor");}
this.reset();}
this.init(slider);this.drawSliderTimeline=function(times){this.times=times;if(!this.timeline.length)return false;this.stretchWidth=(this.timeline.width()-this.pointWidth)/(this.times.length-1);this.timeline.find(".point").remove();for(i in this.times){var hour=this.times[i].substring(11,16);var pointHtml;if(i%this.pointsPerStretch==0){pointHtml='     <div class="point orange" time="'+this.times[i]+'" style="left: '+(this.stretchWidth*i)+'px">      <label>'+hour+'</label>     </div>    ';}else{pointHtml='<div class="point" time="'+this.times[i]+'" style="left: '+(this.stretchWidth*i)+'px"></div>';}
this.timeline.append(pointHtml);}
return this.afterDrawSliderTimeline();}
this.complete=function(){}
this.afterDrawSliderTimeline=function(){return true;}
this.getPointPosition=function(point){var pos=point.css("left");return parseFloat(pos.substring(0,pos.length-2));}
this.moveToPosition=function(pos){this.cursorPos=pos;this.cursor.css({left:this.cursorPos+"px"});this.complete();}
this.moveToPoint=function(point){var pos=this.getPointPosition(point);this.moveToPosition(pos);}
this.animateCursor=function(){var lastPointPos=this.getPointPosition(this.timeline.find(".point").last());var parent=this;var duration=this.animationDelay*(this.curPoint.nextAll(".point").length+1);this.cursor.animate({left:lastPointPos+"px"},{duration:duration,easing:"linear",progress:function(){parent.moveToPoint($(this));},complete:function(){parent.whenAnimationFinished();}});}
this.whenAnimationFinished=function(){this.pause();var parent=this;setTimeout(function(){parent.reset();parent.start();},3000);}
this.start=function(){if(this.timeline.length){var lastPoint=this.timeline.find(".point").last();if(this.cursorPos>=this.getPointPosition(lastPoint)){this.reset();}
this.animation=true;this.playButton.attr({name:"pause"});this.animateCursor();}}
this.pause=function(){this.animation=false;this.playButton.attr({name:"play"});this.cursor.stop();}}
function czDayName(date,long){if(long!==true)long=false;date=date.split("-");date=new Date(date[0],date[1]-1,date[2]);index=date.format("N");switch(index%7){case 0:return long?"neděle":"ne";case 1:return long?"pondělí":"po";case 2:return long?"úterý":"út";case 3:return long?"středa":"st";case 4:return long?"čtvrtek":"čt";case 5:return long?"pátek":"pá";case 6:return long?"sobota":"so";}}
function timing(date){var TODAY,TOMORROW,DAY_AFTER_TOMORROW;TODAY=new Date();TOMORROW=new Date();DAY_AFTER_TOMORROW=new Date();TOMORROW.setDate(TODAY.getDate()+1);DAY_AFTER_TOMORROW.setDate(TODAY.getDate()+2);switch(date){case TODAY.format("Y-m-d"):return"dnes";case TOMORROW.format("Y-m-d"):return"zítra";case DAY_AFTER_TOMORROW.format("Y-m-d"):return"pozítří";default:return null;}}