
$(function(){var navbarBg=$(".navbar-background");var navbarBgEl=navbarBg[0];var rowSecondary=$(".row-secondary");var rowSecondaryEl=rowSecondary[0];var secondaryPanel=rowSecondaryEl?rowSecondaryEl.querySelector(".navbar-panel"):null;var titleBig=document.querySelector(".title-big");var navbarHeightBase=parseInt(getComputedStyle(document.documentElement).getPropertyValue('--navbar-height-base'))||52;var padEnd=40;var colorStart=40;var colorEnd=120;function updateScrollState(){if(window.innerWidth<=900)return;var y=window.scrollY;var padProgress=Math.min(1,y/padEnd);var colorProgress=y<=colorStart?0:Math.min(1,(y-colorStart)/(colorEnd-colorStart));if(y>colorStart){navbarBg.addClass("scrolled");rowSecondary.addClass("scrolled");}else{navbarBg.removeClass("scrolled");rowSecondary.removeClass("scrolled");}
if(titleBig){var titleBottom=titleBig.getBoundingClientRect().bottom;if(titleBottom<navbarHeightBase){navbarBg.addClass("compact");}else{navbarBg.removeClass("compact");}}
if(rowSecondaryEl){if(navbarBgEl.classList.contains("compact")){rowSecondaryEl.style.top="";}else{var topOffset=12*(1-padProgress);rowSecondaryEl.style.top=(navbarHeightBase+topOffset)+"px";}}
var pad=6*(1-padProgress);if(colorProgress<1){var alpha=0.92*colorProgress;var blur=16*colorProgress;navbarBgEl.style.backgroundColor="rgba(6,6,32,"+alpha+")";navbarBgEl.style.backdropFilter="blur("+blur+"px)";navbarBgEl.style.webkitBackdropFilter="blur("+blur+"px)";navbarBgEl.style.padding=pad+"px 0";}else{navbarBgEl.style.backgroundColor="";navbarBgEl.style.backdropFilter="";navbarBgEl.style.webkitBackdropFilter="";navbarBgEl.style.padding="";}
if(rowSecondaryEl){if(colorProgress<1){var wAlpha=0.92*colorProgress;var sBlur=16-8*colorProgress;var shadow=0.1*colorProgress;var borderAlpha=0.12*(1-colorProgress);rowSecondaryEl.style.backgroundColor="rgba(255,255,255,"+wAlpha+")";rowSecondaryEl.style.backdropFilter="blur("+sBlur+"px)";rowSecondaryEl.style.webkitBackdropFilter="blur("+sBlur+"px)";rowSecondaryEl.style.boxShadow="0 1px 0 0 rgba(0,0,0,"+shadow+")";if(secondaryPanel){secondaryPanel.style.borderColor="rgba(255,255,255,"+borderAlpha+")";}}else{rowSecondaryEl.style.backgroundColor="";rowSecondaryEl.style.backdropFilter="";rowSecondaryEl.style.webkitBackdropFilter="";rowSecondaryEl.style.boxShadow="";if(secondaryPanel){secondaryPanel.style.borderColor="";}}}}
$(window).on("scroll",updateScrollState);updateScrollState();var navbg=$(".navbar-background");var initialHeight=navbg.height();var items=$(".level2 .menu-item");$(".level2 .menu-item a").each(function(i){$(this).click(function(){items.removeClass('active');items[i].classList.add("active");});});});$(function(){var tooltips=$(".btn-tooltip");tooltips.each(function(i,e){$(e).parent().mouseenter(function(){$(e).attr("active","true")}).mouseleave(function(){$(e).attr("active",null);});});});$(function(){const sections=$(".section h2[id], .sect2 h3[id]");sections.each(function(index,el){var t=$(el).append(`
      <span class="copy-link">
        <svg xmlns="http://www.w3.org/2000/svg" class="icon-link" width="18" height="18" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
          <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
          <path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" />
          <path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" />
        </svg>
      </span>
      <span class="copy-confirmation"/>
    `);$(el).find('.copy-link').on('click',e=>{var url=window.location.href;if(url.indexOf('#')>-1){url=url.split('#')[0];}
const textToCopy=url+"#"+el.id;var myTemporaryInputElement=document.createElement("input");myTemporaryInputElement.type="text";myTemporaryInputElement.value=textToCopy;document.body.appendChild(myTemporaryInputElement);myTemporaryInputElement.select();document.execCommand("Copy");document.body.removeChild(myTemporaryInputElement);console.log('Copied link:'+textToCopy)
var confirmation=$(el).find('.copy-confirmation');confirmation.attr('active','true');setTimeout(()=>confirmation.attr('active','false'),1000);});});});$(function(){$('.section video').each((index,ele)=>{$(ele).addClass('video-js');$(ele).addClass('vjs-theme-sea');const srcFile=ele.src;const player=videojs(ele,{techOrder:['html5'],controls:true,autoplay:false,preload:'auto',fluid:true,liveui:true});player.src(srcFile);player.one('play',function(){this.bigPlayButton.hide();});player.on('pause',function(){this.bigPlayButton.show();$(this.bigPlayButton.el).removeClass('vjs-has-started');player.one('play',function(){this.bigPlayButton.hide();});});console.log(player.controlBar.progressControl);player.on("seeked",function(event){event.stopPropagation();console.log("Seeking to "+player.currentTime());});});});$(function(){var scrollTargets=$(".section h2, .section h3");var bar=$(".navbar-background")
var useBar=bar.length>0
var scrollButtons=$(".scroll-action");var filteredTargets=[];scrollButtons.each(function(index,ele){var target;var expected=$(ele).attr("data-target")
for(var i=0;i<scrollTargets.length;++i){var targetEl=scrollTargets[i];if(targetEl.id===expected){target=targetEl;filteredTargets.push(targetEl);break;}}
if(target){$(ele).click(function(){if(useBar){window.scrollTo({top:target.offsetTop-(useBar?bar.height():0),behavior:"smooth"})}
else{target.scrollIntoView({behavior:"smooth"});}})}});scrollTargets=$(filteredTargets);var progressElement=$(".navbar-background .progress");var useBarAsProgress=useBar?progressElement.length>0:false;var scrollTargetGroupsStart=[];var scrollButtonGroups=[];$(".scroll-group").each(function(gid,ele){var targetRef=$(ele).attr("data-target")
for(var i=0;i<scrollTargets.length;++i){if(scrollTargets[i].id===targetRef){scrollTargetGroupsStart.push(scrollTargets[i]);scrollButtonGroups.push(ele);break;}}});$('.scroll-top-page button').on('click',()=>window.scrollTo({top:0,behavior:'smooth',}));if(scrollTargets.length>0){var first=scrollTargets[0];$(window).on('scroll',function(e){if(window.innerWidth<1300)return;var padding=useBar?bar.height()+200:200;$(".scroll-show-target").attr("active",first.getBoundingClientRect().top<padding?"true":null);if(useBarAsProgress){scrollTargets.each(function(i,ele){var itempos=ele.getBoundingClientRect().top;var index=i=="length"?scrollTargets.length:i;if(itempos>0&&itempos<padding){var progress=i/scrollTargets.length;var inv=1.0-progress;progressElement.css("width",(inv*100)+"%");}});}
var lastTg=null;var selectedElement=null;for(var i=0;i<scrollTargetGroupsStart.length;++i){var top=scrollTargetGroupsStart[i].getBoundingClientRect().top;if(top<=padding){if((lastTg!=null&&top>lastTg.getBoundingClientRect().top)||lastTg==null){lastTg=scrollTargetGroupsStart[i];}}}
for(var i=0;i<scrollButtonGroups.length;++i){var $e=$(scrollButtonGroups[i]);if(lastTg!=null&&$e.attr('data-target')===lastTg.id){$e.addClass("opened");selectedElement=scrollButtonGroups[i];}
else{$e.removeClass("opened");}}
var selectedTarget=lastTg;lastTg=null;for(var i=0;i<scrollTargets.length;++i){var top=scrollTargets[i].getBoundingClientRect().top
if(top<=padding){if((lastTg!=null&&top>lastTg.getBoundingClientRect().top)||lastTg==null){lastTg=scrollTargets[i];}}}
var toActive=null;for(var i=0;i<scrollButtons.length;++i){var $e=$(scrollButtons[i]);if(lastTg!=null&&$e.attr("data-target")===lastTg.id){if(toActive)
toActive.attr("active",null);toActive=$e;}
else{$e.attr("active",null);}}
if(toActive)
toActive.attr("active","true");});}});$(function(){function indexOfMin(arr){if(arr.length===0){return-1;}
var min=arr[0];var minIndex=0;for(var i=1;i<arr.length;i++){if(arr[i]<min){minIndex=i;min=arr[i];}}
return minIndex;}
function distances(offset,elements){var dists=[]
elements.each(function(index,ele){var itempos=ele.getBoundingClientRect().top;dists.push(Math.abs(offset-itempos));});return dists;}
var bar=$(".navbar-background")
var useBar=false;var upBtn=$(".navigation-buttons .up.prev-slide");var downBtn=$(".navigation-buttons .down.next-slide");var targets=$(".section h2, .section h3");var navbarHeight=document.querySelector('.row-secondary')?.offsetHeight||52;window.addEventListener('resize',function(){navbarHeight=document.querySelector('.row-secondary')?.offsetHeight||52;});function upScroll(){var padding=useBar?bar.height()+200:200;var topOffset=(useBar?bar.height()+navbarHeight+28:navbarHeight+28);var current=indexOfMin(distances(padding,targets));var target=targets[current>0?current-1:current];window.scrollTo({top:target.offsetTop-topOffset,behavior:"smooth"});}
function downScroll(){var padding=useBar?bar.height()+200:200;var topOffset=(useBar?bar.height()+navbarHeight+28:navbarHeight+28);var current=indexOfMin(distances(padding,targets));var target=targets[current+1<targets.length?current+1:current];window.scrollTo({top:target.offsetTop-topOffset,behavior:"smooth"});}
upBtn.on("click",upScroll);downBtn.on("click",downScroll);$(".navigation-buttons .up.page-start").on('click',()=>{var topOffset=(useBar?bar.height()+navbarHeight+28:navbarHeight+28);window.scrollTo({top:targets[0].offsetTop-topOffset,behavior:"smooth"});});$(".navigation-buttons .down.page-end").on('click',()=>{var topOffset=(useBar?bar.height()+navbarHeight+28:navbarHeight+28);window.scrollTo({top:targets[targets.length-1].offsetTop-topOffset,behavior:"smooth"});});$(window).keyup(function(e){if(document.activeElement.tagName==='INPUT'||document.activeElement.tagName==='TEXTAREA')return;if(!upBtn.is(':visible')&&!downBtn.is(':visible'))return;if(e.keyCode==37){upBtn.click();}
else if(e.keyCode==39){downBtn.click();}});});$(function(){$('.directory-navigation .title').click(()=>{$('.dir-content').toggleClass('unfolded');});});$(function(){const $target=$('.stick-bottom-above');const target=$target[0];const stickEnd=$($target.attr('data-above'))[0];const bottomOffset=$target.attr('data-offset');function viewportYDistance(){const rect=stickEnd.getBoundingClientRect();return rect.top-window.innerHeight;}
function getOffsetLeft(elem){const src=elem;var offsetLeft=0;do{if(!isNaN(elem.offsetLeft)){offsetLeft+=elem.offsetLeft;}}while(elem=elem.offsetParent);return offsetLeft;}
const definedPosType=$target.css('position');const definedBottom=$target.css('bottom');const definedLeft=$target.css('left');var fixedLeft=getOffsetLeft(target.parentElement);window.addEventListener('resize',function(){if(window.innerWidth<1200)return;$target.css('position',definedPosType);$target.css('left',definedLeft);$target.css('bottom',definedBottom);fixedLeft=getOffsetLeft(target.parentElement);$target.css('position','fixed');$target.css('left',fixedLeft);$target.css('bottom',bottomOffset);updatePosition();});function updatePosition(){if(window.innerWidth<1200)return;$target.css('position','fixed');$target.css('left',fixedLeft);$target.css('bottom',bottomOffset);const h=viewportYDistance();if(h<=0){$target.css('bottom','calc('+bottomOffset+' + '+(-h)+'px)');}}
$(window).scroll(updatePosition);updatePosition();});$(function(){console.log("Setting up buttons");$("button.update-download-btn").each(function(){let isLinux=$(this).hasClass("linux");let urlSystemPart=isLinux?"lin":"win"
let url=`https://download.sim-flow.com/updates/main/simflow/5.0/${urlSystemPart}/x64/latest`;$(this).on('click',function(){fetch(url,{method:'GET'}).then(response=>{if(!response.ok){throw new Error('Network response was not ok'+response.statusText);}
return response.text();}).then(data=>{let updateUrl=`https://download.sim-flow.com/updates/main/simflow/5.0/${urlSystemPart}/x64/simflow-${urlSystemPart}-x64-${data}.sfu`
window.open(updateUrl,'_blank');}).catch(error=>{console.error('There was a problem with fetching the file:',error);});});});});