document.addEventListener("DOMContentLoaded", function () {
var healthForm = document.getElementById("healthForm");
var submitBtn = document.getElementById("submitBtn");
var questionContainer = document.getElementById("questionContainer");
var resultBmr = document.getElementById("result");
var calValue = document.getElementById("cal-value");
var calValueText = document.createElement("h1");
// var part2Result = document.getElementById("part2result");
var resultContainer = document.getElementById("result-container");
var caloriesRecord = document.createElement("div");
var goalChoice = document.getElementsByName("goal_weight");
var formTitle = document.getElementById("form-title");
var barChartContainer = document.getElementById("container");
//input value
//var dailyCalorie = document.getElementsByClassName("part3");
//calculate bmr
function bmrFunction() {
var age = document.getElementById("ageInput").value;
var gender = document.getElementById("genderInput").value;
var height = document.getElementById("heightInput").value;
var weight = document.getElementById("weightInput").value;
var activityLevel = document.getElementById("activityLevelInput").value;
var genderMultiplier = 0;
if (gender === "male") {
genderMultiplier = 1;
}
var activityLevelMultiplier = 0;
if (activityLevel === "sedentary") {
activityLevelMultiplier = 1.2;
} else if (activityLevel === "lightlyActive") {
activityLevelMultiplier = 1.375;
} else if (activityLevel === "moderatelyActive") {
activityLevelMultiplier = 1.55;
} else if (activityLevel === "veryActive") {
activityLevelMultiplier = 1.72;
} else if (activityLevel === "superActive") {
activityLevelMultiplier = 1.9;
}
const result =
9.99 * weight +
6.25 * height -
4.92 * age +
(166 * genderMultiplier - 161);
const bmrresult = result * activityLevelMultiplier;
return bmrresult;
}
//submit bmr form and click function
healthForm.addEventListener("submit", function (event) {
event.preventDefault();
var name = document.getElementById("nameInput").value;
var resultBmr = document.getElementById("result");
var age = document.getElementById("ageInput").value;
var gender = document.getElementById("genderInput").value;
var height = document.getElementById("heightInput").value;
var weight = document.getElementById("weightInput").value;
var activityLevel = document.getElementById("activityLevelInput").value;
resultBmr.innerHTML = ""; // 清空结果元素的内容
formTitle.innerHTML = "";
var resultText = document.createElement("h3");
resultText.innerHTML = `
Hello! ${name}.
Your daily calorie intake:
`;
resultBmr.appendChild(resultText);
healthForm.style.display = "none";
const intakeContain = document.getElementById("intake-contain");
const intakeNum = document.createElement("h2");
intakeNum.innerText = `${Math.round(bmrFunction())}cal`;
intakeContain.appendChild(intakeNum);
localStorage.setItem("user", name);
localStorage.setItem("userAge", age);
localStorage.setItem("userGender", gender);
localStorage.setItem("userHeight", height);
localStorage.setItem("userWeight", weight);
localStorage.setItem("userActivityLevel", activityLevel);
localStorage.setItem("bmrResult", bmrFunction());
// localStorage.getItem("user");
// JSON.parse(localStorage.getItem("userAge"));
// JSON.parse(localStorage.getItem("userGender"));
// JSON.parse(localStorage.getItem("userHeight"));
// JSON.parse(localStorage.getItem("userWeight"));
// JSON.parse(localStorage.getItem("userActivityLevel"));
// JSON.parse(localStorage.getItem("bmrResult"));
function btn1() {
//var maintainWeight = document.getElementById("maintain-weight");
return (intakeNum.innerText = `${Math.round(bmrFunction())}cal`);
}
function btn2() {
//var lossWeight = document.getElementById("loss-weight");
return (intakeNum.innerText = `${Math.round(bmrFunction()) - 300}cal`);
}
function btn3() {
//var gainWeight = document.getElementById("gain-weight");
return (intakeNum.innerText = `${Math.round(bmrFunction()) + 300}cal`);
}
var editBtn = document.getElementById("edit");
editBtn.addEventListener("click", function clickFn() {
healthForm.style.display = "block";
resultBmr.style.display = "none";
resultText.innerHTML = "";
});
var maintainWeight = document.getElementById("maintain");
maintainWeight.addEventListener("click", btn1);
var lossWeight = document.getElementById("loss");
lossWeight.addEventListener("click", btn2);
var gainWeight = document.getElementById("gain");
gainWeight.addEventListener("click", btn3);
var goalvalue;
for (var i = 0; i < goalChoice.length; i++) {
goalChoice[i].addEventListener("click", function () {
if (this.value === "maintain-weight") {
goalvalue = Math.round(bmrFunction()) + 0;
} else if (this.value === "loss-weight") {
goalvalue = Math.round(bmrFunction()) - 300;
} else if (this.value === "gain-weight") {
goalvalue = Math.round(bmrFunction()) + 300;
}
});
}
var saveBtnContain = document.getElementById("saveBtn-contain");
var saveBtn = document.createElement("button");
saveBtn.innerText = "Save";
saveBtn.id = "saveBtn";
saveBtnContain.appendChild(saveBtn);
saveBtn.addEventListener("click", function () {
resultText.innerHTML = `Your daily calorie intake:
${goalvalue}cals
`;
calValueText.innerText = `${goalvalue}cal`;
calValue.appendChild(calValueText);
});
var editBtnTwo = document.getElementById("edittwo");
editBtnTwo.addEventListener("click", function clickFn() {
healthForm.style.display = "block";
calValue.style.display = "none";
resultText.innerHTML = "";
});
});
// Clear input fields
// document.getElementById("ageInput").value = "";
// document.getElementById("heightInput").value = "";
// document.getElementById("weightInput").value = "";
//Hide form and show question
questionContainer.style.display = "block";
// foodSubmitBtn.addEventListener("click", function () {
// var foodIntake = foodInput.value;
// // Clear input field
// foodInput.value = "";
// // Process food intake data
// console.log("Food Intake:", foodIntake);
// });
// function addFoodCa(x, y) {
// var calBar = document.createElement("div");
// calBar.classList.add("calBar");
// calBar.innerHTML = `${x}
${y}
`;
// caloriesRecord.appendChild(calBar);
// }
//calculate food calorie
const calculateBtn = document.getElementById("calculate-btn");
calculateBtn.addEventListener("click", fetchData);
async function fetchData() {
const foodWeightInput = document.getElementById("food-weight-input");
const unitSelect = document.getElementById("unit-select");
const foodNameInput = document.getElementById("food-name-input");
const query = `${foodWeightInput.value}${unitSelect.value} ${foodNameInput.value}`;
try {
const res = await fetch(
"https://api.api-ninjas.com/v1/nutrition?query=" + query,
{
headers: {
"X-Api-Key": "HQR305Z28JdtTlSD7bzr2g==syWXu3chI7wcfy3N",
"Content-Type": "application/json",
},
}
);
const data = await res.json();
console.log(data);
resultContainer.innerHTML = "";
// Display the data in the result container
var foodResultText = document.createElement("div");
foodResultText.className = "foodresult";
foodResultText.innerHTML = `
Results:
Serving Size:
${data[0].serving_size_g}g
Serving Size:
${data[0].serving_size_g}g
Calories:
${data[0].calories} cal
Protein:
${data[0].protein_g} g
Fiber:
${data[0].fiber_g} g
Total Fat:
${data[0].fat_total_g} g
Saturated Fat:
${data[0].fat_saturated_g} g
Cholesterol:
${data[0].cholesterol_mg} g
Total Carbohydrates:
${data[0].carbohydrates_total_g} g