1document.addEventListener('DOMContentLoaded',function(){const form=document.getElementById('ketoForm');const resultDiv=document.getElementById('ketoResults');const bmrElement=document.getElementById('bmrValue');const caloriesElement=document.getElementById('caloriesToConsume');const fatElement=document.getElementById('fatIntake');const chartElement=document.getElementById('chart');const calorieDeficitChartsElement=document.getElementById('calorieDeficitCharts');const calorieSurplusChartElement=document.getElementById('calorieSurplusChart');let chart;form.addEventListener('submit',function(e){e.preventDefault();const values={gender:document.getElementById('gender').value,age:parseInt(document.getElementById('age').value),weight:parseInt(document.getElementById('weight').value),height:parseInt(document.getElementById('height').value),bodyFat:parseInt(document.getElementById('bodyFat').value),goal:document.getElementById('goal').value,weightUnit:document.getElementById('weightUnit').value,heightUnit:document.getElementById('heightUnit').value};if(values.weightUnit==='lb'){values.weight=convertWeightToKg(values.weight)} 2if(values.heightUnit==='in'){values.height=convertHeightToCm(values.height)} 3calculateResults(values)});function convertWeightToKg(weightInLb){return weightInLb*0.453592} 4function convertHeightToCm(heightInInches){return heightInInches*2.54} 5function calculateResults(values){const{gender,age,weight,height,bodyFat,goal}=values;let bmr;if(gender==="male"){bmr=10*weight+6.25*height-5*age+5}else{bmr=10*weight+6.25*height-5*age-161} 6let calories=bmr*1.2;let deficit=0;let calorieSurplus=0;if(goal==="lose"){deficit={small:calories-(calories*0.1),moderate:calories-(calories*0.2),large:calories-(calories*0.3)};calories=deficit.moderate}else if(goal==="gain"){calorieSurplus=calories+500;calories=calorieSurplus} 7const fat=(calories*0.7)/9;bmrElement.textContent=Math.round(bmr);caloriesElement.textContent=Math.round(calories);fatElement.textContent=Math.round(fat);updateChart(calories,fat,goal,deficit,calorieSurplus);toggleChartDisplay(goal,deficit,calorieSurplus)} 8function updateChart(calories,fat,goal,deficit,surplus){const carbs=50;const protein=(calories*0.2)/4;const series=[fat,protein,carbs];let chartTitle="Macronutrient Distribution";if(goal==="lose"){chartTitle="Macronutrient Distribution for Weight Loss"}else if(goal==="gain"){chartTitle="Macronutrient Distribution for Weight Gain"} 9if(chart){chart.updateSeries(series);chart.updateOptions({title:{text:chartTitle}})}else{chart=new ApexCharts(chartElement,{chart:{type:"pie",},series:series,labels:["Fat (g)","Protein (g)","Carbs (g)"],colors:["#FFA500","#00FF00","#0000FF"],title:{text:chartTitle,},});chart.render()}} 10function toggleChartDisplay(goal,deficit,surplus){calorieDeficitChartsElement.style.display='none';calorieSurplusChartElement.style.display='none';if(goal==="lose"){calorieDeficitChartsElement.style.display='block';updateDeficitCharts(deficit)}else if(goal==="gain"){calorieSurplusChartElement.style.display='block';updateSurplusChart(surplus)}} 11function updateDeficitCharts(deficit){calorieDeficitChartsElement.innerHTML='';const smallDeficitChart=new ApexCharts(calorieDeficitChartsElement,{chart:{type:'pie'},series:[deficit.small*0.7/9,deficit.small*0.2/4,50],labels:['Fat (g)','Protein (g)','Carbs (g)'],colors:['#FFA500','#00FF00','#0000FF'],title:{text:'Small Calorie Deficit'},});smallDeficitChart.render();const moderateDeficitChart=new ApexCharts(calorieDeficitChartsElement,{chart:{type:'pie'},series:[deficit.moderate*0.7/9,deficit.moderate*0.2/4,50],labels:['Fat (g)','Protein (g)','Carbs (g)'],colors:['#FFA500','#00FF00','#0000FF'],title:{text:'Moderate Calorie Deficit'},});moderateDeficitChart.render();const largeDeficitChart=new ApexCharts(calorieDeficitChartsElement,{chart:{type:'pie'},series:[deficit.large*0.7/9,deficit.large*0.2/4,50],labels:['Fat (g)','Protein (g)','Carbs (g)'],colors:['#FFA500','#00FF00','#0000FF'],title:{text:'Large Calorie Deficit'},});largeDeficitChart.render()} 12function updateSurplusChart(surplus){const series=[surplus*0.7/9,surplus*0.2/4,50];const surplusChart=new ApexCharts(calorieSurplusChartElement,{chart:{type:'pie'},series:series,labels:['Fat (g)','Protein (g)','Carbs (g)'],colors:['#FFA500','#00FF00','#0000FF'],title:{text:'Calorie Surplus for Weight Gain'},});surplusChart.render()}});jQuery(document).ready(function($){function updateUnits(){var unitSystem=$('#unitSystem').val();console.log("Selected unit system:",unitSystem);if(unitSystem==='metric'){$('#weightUnit').text('kg');$('#heightUnit').text('cm')}else if(unitSystem==='us_customary'){$('#weightUnit').text('lbs');$('#heightUnit').text('inches')}} 13updateUnits();$('#unitSystem').on('change',function(){updateUnits()})})
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.