// JavaScript Document

addEventListener('load', function() { setTimeout(hideAddressBar, 0); }, false);
function hideAddressBar() { window.scrollTo(0, 1); }

function getHTTPObject() {
    if(typeof XMLHttpRequest != 'undefined') {
        return new XMLHttpRequest();
    }
    try {
        return new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try {
            return new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e) {}
    }
    return false;
}

function getCookie(c_name) {
	if(document.cookie.length>0) {
		c_start=document.cookie.indexOf(c_name + "=");
		if(c_start!=-1) { 
			c_start=c_start + c_name.length+1; 
			c_end=document.cookie.indexOf(";",c_start);
			if (c_end==-1) c_end=document.cookie.length;
			return unescape(document.cookie.substring(c_start,c_end));
		} 
	}
	return "";
}

function logout() {
	var today = new Date();
 	var expire = new Date();
 	expire.setTime(today.getTime() + 3600000*24*90);
 	document.cookie = "login_status=false;expires="+expire.toGMTString()+";path=/";
	homeMenu();
}

function checkLogin(error_message) {
	if(getCookie('login_status') == "true" || getCookie('email') == "Demo User" || getCookie('email') == "Demo+User") {
		// They are logged in, so reset the cookie & expiration
		var today = new Date();
 		var expire = new Date();
 		expire.setTime(today.getTime() + 3600000*24*90); // 90 day login cookie
 		document.cookie = "login_status=true;expires="+expire.toGMTString()+";path=/";
		return true;
	} else {
		if(typeof(error_message) == 'undefined') var error_message = "";
		document.getElementById('backButtonArea').style.visibility = 'hidden';
		document.getElementById('pageTitle').innerHTML = "GI Meal Planner";
		if(error_message == "link_to_login") {
			// They want the login form regardless of cookie status
			var docname = "login_form";
		} else if(error_message == "link_to_createaccount") {
			// They want the createaccount form regardless of cookie status
			var docname = "createaccount_form";
		} else if(getCookie('email') == "") {
			// They don't have a cookie, so take them to createaccount
			var docname = "createaccount_form";
		} else {
			// They do have an account, so take them to login
			var docname = "login_form";
		}
		var http = getHTTPObject();
		if(error_message == "") {
			var url = "functions/"+docname+".php"
			http.open("get", url, true); // asynchronous
		} else {
			var url = "functions/"+docname+".php?error_message="+error_message;
			http.open("get", url, true); // asynchronous
		}
		http.onreadystatechange = function() {
			if(http.readyState == 4) {
				document.getElementById('main').innerHTML = http.responseText;
			}
		}
		http.send(null);
		window.scrollTo(0,1);
		
		// Attempt to fix Firefox bug - Firefox pukes when you "return false" and it doesn't need it
		var useragent = navigator.userAgent;
		var pos = useragent.indexOf('Firefox');
		if(pos > 0) {
			// Do nothing for Firefox
		} else {
			return false;
		}
	}
}

function processLogin() {
	if(document.loginForm.email.value == "") {
		alert("Please enter the email address you use to log into GI Meal Planner.");
		document.loginForm.email.focus();
		return false;
	}
	if(document.loginForm.password.value == "") {
		alert("Please enter your password.");
		document.loginForm.password.focus();
		return false;
	}
	document.getElementById('backButtonArea').style.visibility = 'hidden';
	document.getElementById('pageTitle').innerHTML = "GI Meal Planner";
	email = document.loginForm.email.value;
	password = document.loginForm.password.value;
	document.getElementById('main').innerHTML = '<div class="spinnerbox"><img src="images/spinner.gif" class="spinner" /></div>';
	var http = getHTTPObject();
	http.open("get", "functions/process_login.php?email="+email+"&password="+password, false); // synchronous
	http.onreadystatechange = function() {
		if(http.readyState == 4) {
		}
	}
	http.send(null);
	if(http.responseText == 'OK') {
		homeMenu();
	} else {
		checkLogin(http.responseText);
	}
}

function processCreateAccount() {
	if(document.createAccountForm.email.value == "") {
		alert("Please enter a valid email address to identify your account.");
		document.createAccountForm.email.focus();
		return false;
	}
	if(document.createAccountForm.password.value == "") {
		alert("Please choose a password.");
		document.createAccountForm.password.focus();
		return false;
	}
	document.getElementById('backButtonArea').style.visibility = 'hidden';
	document.getElementById('pageTitle').innerHTML = "GI Meal Planner";
	email = document.createAccountForm.email.value;
	password = document.createAccountForm.password.value;
	document.getElementById('main').innerHTML = '<div class="spinnerbox"><img src="images/spinner.gif" class="spinner" /></div>';
	var http = getHTTPObject();
	http.open("get", "functions/process_createaccount.php?email="+email+"&password="+password, false); // synchronous
	http.onreadystatechange = function() {
		if(http.readyState == 4) {
		}
	}
	http.send(null);
	if(http.responseText == 'OK') {
		homeMenu();
	} else {
		checkLogin(http.responseText);
	}
}

function emailPassword() {
	if(document.loginForm.email.value == "") {
		alert("Please enter your email address.");
		document.loginForm.email.focus();
		return;
	}
	var today = new Date();
 	var expire = new Date();
 	expire.setTime(today.getTime() + 3600000*24*90); // 180 day email cookie
 	document.cookie = "email="+document.loginForm.email.value+";expires="+expire.toGMTString()+";path=/";
	document.getElementById('backButtonArea').innerHTML = '<a href="javascript:homeMenu()" id="backButton" class="button">Home</a>';
	document.getElementById('backButtonArea').style.visibility = 'visible';
	document.getElementById('pageTitle').innerHTML = "Password";
	var http = getHTTPObject();
	http.open("get", "functions/email_password.php?email="+document.loginForm.email.value, true); // asynchronous
	http.onreadystatechange = function() {
		if(http.readyState == 4) {
			document.getElementById('main').innerHTML = http.responseText;
		}
	}
	http.send(null);
	window.scrollTo(0,1);
}

function homeMenu() {
	if(!checkLogin()) return;
	document.getElementById('backButtonArea').style.visibility = 'hidden';
	document.getElementById('pageTitle').innerHTML = "GI Meal Planner";
	var http = getHTTPObject();
	http.open("get", "functions/home.list.php", true); // asynchronous
	http.onreadystatechange = function() {
		if(http.readyState == 4) {
			document.getElementById('main').innerHTML = http.responseText;
		}
	}
	http.send(null);
	window.scrollTo(0,1);
}

function history() {
	if(!checkLogin()) return;
	document.getElementById('backButtonArea').innerHTML = '<a href="javascript:homeMenu()" id="backButton" class="button">Home</a>';
	document.getElementById('backButtonArea').style.visibility = 'visible';
	document.getElementById('pageTitle').innerHTML = "Select Date";
	document.getElementById('main').innerHTML = '<div class="spinnerbox"><img src="images/spinner.gif" class="spinner" /></div>';
	var http = getHTTPObject();
	http.open("get", "functions/history.list.php", true); // asynchronous
	http.onreadystatechange = function() {
		if(http.readyState == 4) {
			document.getElementById('main').innerHTML = http.responseText;
		}
	}
	http.send(null);
	window.scrollTo(0,1);
}

function about() {
	if(!checkLogin()) return;
	document.getElementById('backButtonArea').innerHTML = '<a href="javascript:homeMenu()" id="backButton" class="button">Home</a>';
	document.getElementById('backButtonArea').style.visibility = 'visible';
	document.getElementById('pageTitle').innerHTML = "About this App";
	document.getElementById('main').innerHTML = '<div class="spinnerbox"><img src="images/spinner.gif" class="spinner" /></div>';
	var http = getHTTPObject();
	http.open("get", "functions/about.php", true); // asynchronous
	http.onreadystatechange = function() {
		if(http.readyState == 4) {
			document.getElementById('main').innerHTML = http.responseText;
		}
	}
	http.send(null);
	window.scrollTo(0,1);
}

function toggle(zone_id) {
	if(document.getElementById(zone_id).className == "expanded") {
		document.getElementById(zone_id).className = "";
		document.getElementById(zone_id+'_text').style.display = "none";
	} else {
		document.getElementById(zone_id).className = "expanded";
		document.getElementById(zone_id+'_text').style.display = "block";
	}
}

function dayGrid(meal_date) {
	if(!checkLogin()) return;
	document.getElementById('backButtonArea').innerHTML = '<a href="javascript:homeMenu()" id="backButton" class="button">Home</a>';
	document.getElementById('backButtonArea').style.visibility = 'visible';
	document.getElementById('pageTitle').innerHTML = "Day View";
	document.getElementById('main').innerHTML = '<div class="spinnerbox"><img src="images/spinner.gif" class="spinner" /></div>';
	var http = getHTTPObject();
	if(typeof(meal_date) == 'undefined') {
			var url = "functions/day.grid.php";
		} else {
			var url = "functions/day.grid.php?meal_date="+meal_date;
		}
	http.open("get", url, true); // asynchronous
	http.onreadystatechange = function() {
		if(http.readyState == 4) {
			document.getElementById('main').innerHTML = http.responseText;
		}
	}
	http.send(null);
	window.scrollTo(0,1);
}

function mealGrid(meal_name, meal_id, meal_date) {
	// Note the meal_id will be blank if you're clicking on a meal that has not yet been created.
	document.getElementById('deleteButtonArea').innerHTML = '';
	document.getElementById('backButtonArea').innerHTML = '<a href="javascript:dayGrid()" id="backButton" class="button">Day</a>';
	document.getElementById('backButtonArea').style.visibility = 'visible';
	document.getElementById('pageTitle').innerHTML = meal_name;
	document.getElementById('main').innerHTML = '<div class="spinnerbox"><img src="images/spinner.gif" class="spinner" /></div>';
	var http = getHTTPObject();
	http.open("get", "functions/meal.grid.php?meal_id="+meal_id+"&meal_name="+meal_name+"&meal_date="+meal_date, true); // asynchronous
	http.onreadystatechange = function() {
		if(http.readyState == 4) {
			document.getElementById('main').innerHTML = http.responseText;
		}
	}
	http.send(null);
	window.scrollTo(0,1);
}

function foodGroupsList(meal_name, meal_id) {
	document.getElementById('backButtonArea').innerHTML = '<a href="javascript:mealGrid(\''+meal_name+'\',\''+meal_id+'\',\'\')" id="backButton" class="button">'+meal_name+'</a>';
	document.getElementById('backButtonArea').style.visibility = 'visible';
	document.getElementById('pageTitle').innerHTML = 'Food Groups';
	document.getElementById('main').innerHTML = '<div class="spinnerbox"><img src="images/spinner.gif" class="spinner" /></div>';
	var http = getHTTPObject();
	http.open("get", "functions/foodgroups.list.php?meal_name="+meal_name+"&meal_id="+meal_id, true); // asynchronous
	http.onreadystatechange = function() {
		if(http.readyState == 4) {
			document.getElementById('main').innerHTML = http.responseText;
		}
	}
	http.send(null);
	window.scrollTo(0,1);
}

function foodItemsList(meal_name, meal_id, foodgroup_id, search_term) {
	document.getElementById('backButtonArea').innerHTML = '<a href="javascript:mealGrid(\''+meal_name+'\',\''+meal_id+'\',\'\')" id="backButton" class="button">'+meal_name+'</a>';
	document.getElementById('backButtonArea').style.visibility = 'visible';
	document.getElementById('pageTitle').innerHTML = 'Food Items';
	document.getElementById('main').innerHTML = '<div class="spinnerbox"><img src="images/spinner.gif" class="spinner" /></div>';
	var http = getHTTPObject();
	http.open("get", "functions/fooditems.list.php?meal_name="+meal_name+"&meal_id="+meal_id+"&foodgroup_id="+foodgroup_id+"&search_term="+search_term, true); // asynchronous
	http.onreadystatechange = function() {
		if(http.readyState == 4) {
			document.getElementById('main').innerHTML = http.responseText;
		}
	}
	http.send(null);
	window.scrollTo(0,1);
}

function showSearchForm(meal_name, meal_id) {
	document.getElementById('searchFormArea').style.visibility = 'visible';
	document.searchForm.search_term.value = '';
	document.searchForm.meal_name.value = meal_name;
	document.searchForm.meal_id.value = meal_id;
	document.searchForm.search_term.focus();
}

function hideSearchForm() {
	document.getElementById('searchFormArea').style.visibility = 'hidden';
}

function searchFoods() {
	if(document.searchForm.search_term.value == "") {
		alert("Please enter a food item to search on.");
		document.searchForm.search_term.focus();
		return;
	}
	hideSearchForm();
	foodItemsList(document.searchForm.meal_name.value, document.searchForm.meal_id.value, '', document.searchForm.search_term.value);
}

function foodItemDetail(meal_name, meal_id, foodgroup_id, fooditem_name, fooditem_id) {
	document.getElementById('backButtonArea').innerHTML = '<a href="javascript:foodItemsList(\''+meal_name+'\',\''+meal_id+'\',\''+foodgroup_id+'\')" id="backButton" class="button">Foods</a>';
	document.getElementById('backButtonArea').style.visibility = 'visible';
	document.getElementById('pageTitle').innerHTML = "Food Detail";
	document.getElementById('main').innerHTML = '<div class="spinnerbox"><img src="images/spinner.gif" class="spinner" /></div>';
	var http = getHTTPObject();
	http.open("get", "functions/fooditem.detail.php?function=new&meal_name="+meal_name+"&meal_id="+meal_id+"&fooditem_id="+fooditem_id, true); // asynchronous
	http.onreadystatechange = function() {
		if(http.readyState == 4) {
			document.getElementById('main').innerHTML = http.responseText;
		}
	}
	http.send(null);
}

function favoritesList(meal_name, meal_id) {
	document.getElementById('backButtonArea').innerHTML = '<a href="javascript:mealGrid(\''+meal_name+'\',\''+meal_id+'\',\'\')" id="backButton" class="button">'+meal_name+'</a>';
	document.getElementById('backButtonArea').style.visibility = 'visible';
	document.getElementById('pageTitle').innerHTML = 'Favorite Meals';
	document.getElementById('main').innerHTML = '<div class="spinnerbox"><img src="images/spinner.gif" class="spinner" /></div>';
	var http = getHTTPObject();
	http.open("get", "functions/favorites.list.php?meal_name="+meal_name+"&meal_id="+meal_id, true); // asynchronous
	http.onreadystatechange = function() {
		if(http.readyState == 4) {
			document.getElementById('main').innerHTML = http.responseText;
		}
	}
	http.send(null);
}

function showFavoriteNameForm(meal_name, meal_id) {
	document.getElementById('favoriteNameFormArea').style.visibility = 'visible';
	document.favoriteNameForm.favorite_name.value = '';
	document.favoriteNameForm.meal_name.value = meal_name;
	document.favoriteNameForm.meal_id.value = meal_id;
	document.favoriteNameForm.favorite_name.focus();
}

function hideFavoriteNameForm() {
	document.getElementById('favoriteNameFormArea').style.visibility = 'hidden';
}

function addFavorite() {
	if(document.favoriteNameForm.favorite_name.value == "") {
		alert("Please enter a name for this favorite meal.");
		document.favoriteNameForm.favorite_name.focus();
		return;
	}
	var favorite_name = document.favoriteNameForm.favorite_name.value;
	var meal_name = document.favoriteNameForm.meal_name.value;
	var meal_id = document.favoriteNameForm.meal_id.value;
	hideFavoriteNameForm();
	var http = getHTTPObject();
	http.open("get", "functions/save_new_favorite.php?meal_id="+meal_id+"&favorite_name="+favorite_name, true); // asynchronous
	http.onreadystatechange = function() {
		if(http.readyState == 4) {
			var i = http.responseText;
		}
	}
	http.send(null);
	mealGrid(meal_name, meal_id);
	alert("These items have been save as the '"+favorite_name+"' favorite. You can now add this entire group to any future meal with one click.");
}

function newFoodItem(meal_name) {
	document.getElementById('backButtonArea').innerHTML = '<a href="javascript:mealGrid(\''+meal_name+'\',\'\',\'\')" id="backButton" class="button">Cancel</a>';
	document.getElementById('backButtonArea').style.visibility = 'visible';
	document.getElementById('pageTitle').innerHTML = 'New Food Item';
	document.getElementById('main').innerHTML = '<div class="spinnerbox"><img src="images/spinner.gif" class="spinner" /></div>';
	var http = getHTTPObject();
	http.open("get", "functions/new_fooditem.detail.php?meal_name="+meal_name, true); // asynchronous
	http.onreadystatechange = function() {
		if(http.readyState == 4) {
			document.getElementById('main').innerHTML = http.responseText;
		}
	}
	http.send(null);
	window.scrollTo(0,1);
}

function addFoodItem(meal_name) {
	if(document.newFoodItemForm.fooditemname.value == "") {
		alert("Please enter a name for this food item.");
		document.newFoodItemForm.fooditemname.focus();
		return;
	}
	mealGrid(meal_name,'','');
}

function decrementQuantity() {
	if(document.addItemToMealForm.quantity.value == ".5")  document.addItemToMealForm.quantity.value = ".25";
	if(document.addItemToMealForm.quantity.value == "1")   document.addItemToMealForm.quantity.value = ".5";
	if(document.addItemToMealForm.quantity.value == "1.5") document.addItemToMealForm.quantity.value = "1";
	if(document.addItemToMealForm.quantity.value == "2")   document.addItemToMealForm.quantity.value = "1.5";
	if(document.addItemToMealForm.quantity.value == "3")   document.addItemToMealForm.quantity.value = "2";
	if(document.addItemToMealForm.quantity.value == "4")   document.addItemToMealForm.quantity.value = "3";
}

function incrementQuantity() {
	if(document.addItemToMealForm.quantity.value == "3")   document.addItemToMealForm.quantity.value = "4";
	if(document.addItemToMealForm.quantity.value == "2")   document.addItemToMealForm.quantity.value = "3";
	if(document.addItemToMealForm.quantity.value == "1.5") document.addItemToMealForm.quantity.value = "2";
	if(document.addItemToMealForm.quantity.value == "1")   document.addItemToMealForm.quantity.value = "1.5";
	if(document.addItemToMealForm.quantity.value == ".5")  document.addItemToMealForm.quantity.value = "1";
	if(document.addItemToMealForm.quantity.value == ".25") document.addItemToMealForm.quantity.value = ".5";
}

function addItemToMeal(meal_name, meal_id, fooditem_id) {
	var quantity = document.addItemToMealForm.quantity.value;
	document.getElementById('backButtonArea').innerHTML = '<a href="javascript:dayGrid()" id="backButton" class="button">Day</a>';
	document.getElementById('backButtonArea').style.visibility = 'visible';
	document.getElementById('pageTitle').innerHTML = meal_name;
	document.getElementById('main').innerHTML = '<div class="spinnerbox"><img src="images/spinner.gif" class="spinner" /></div>';
	var http = getHTTPObject();
	// Add the item to the order (synchronous)
	http.open("get", "functions/add_item_to_meal.php?meal_id="+meal_id+"&fooditem_id="+fooditem_id+"&quantity="+quantity, false); // synchronous
	http.onreadystatechange = function() {
		if(http.readyState == 4) {
			var globule = http.responseText;
		}
	}
	http.send(null);
	mealGrid(meal_name, meal_id, '');
}

function mealItemDetail(meal_name, meal_id, meal_date, fooditem_id, quantity, mealitem_id) {
	document.getElementById('backButtonArea').innerHTML = '<a href="javascript:mealGrid(\''+meal_name+'\',\''+meal_id+'\',\''+meal_date+'\')" id="backButton" class="button">'+meal_name+'</a>';
	document.getElementById('deleteButtonArea').innerHTML = '<a class="button redButton" href="javascript:mealItemDelete(\''+meal_name+'\',\''+meal_id+'\',\''+meal_date+'\',\''+mealitem_id+'\')">Delete</a>';
	document.getElementById('backButtonArea').style.visibility = 'visible';
	document.getElementById('pageTitle').innerHTML = "Meal Item Detail";
	document.getElementById('main').innerHTML = '<div class="spinnerbox"><img src="images/spinner.gif" class="spinner" /></div>';
	var http = getHTTPObject();
	http.open("get", "functions/fooditem.detail.php?function=edit&quantity="+quantity+"&meal_name="+meal_name+"&meal_id="+meal_id+"&fooditem_id="+fooditem_id+"&mealitem_id="+mealitem_id, true);
	http.onreadystatechange = function() {
		if(http.readyState == 4) {
			document.getElementById('main').innerHTML = http.responseText;
		}
	}
	http.send(null);
}

function editMealItem(meal_name, meal_id, meal_date, mealitem_id, fn) {
	if(fn == 'delete') {
		var url = "functions/edit_mealitem.php?function=delete&mealitem_id="+mealitem_id;	
	}
	if(fn == 'edit') {
		var url = "functions/edit_mealitem.php?function=edit&mealitem_id="+mealitem_id+"&quantity="+document.addItemToMealForm.quantity.value;
	}
	document.getElementById('main').innerHTML = '<div class="spinnerbox"><img src="images/spinner.gif" class="spinner" /></div>';
	var http = getHTTPObject();
	http.open("get", url, false); // synchronous
	http.onreadystatechange = function() {
		if(http.readyState == 4) {
			var i = http.responseText;
		}
	}
	http.send(null);
	mealGrid(meal_name, meal_id, meal_date)
}

function mealItemDelete(meal_name, meal_id, meal_date, mealitem_id) {
	document.getElementById('deleteButtonArea').innerHTML = '';
	// First do a synchronous delete of the item
	var http = getHTTPObject();
	http.open("get", "functions/delete_mealitem.php?mealitem_id="+mealitem_id, false); // synchronous
	http.onreadystatechange = function() {
		if(http.readyState == 4) {
			var i = http.responseText;
		}
	}
	http.send(null);
	mealGrid(meal_name, meal_id, meal_date);
}

function addFavoriteToMeal(meal_name, meal_id, favorite_id) {
	var http = getHTTPObject();
	http.open("get", "functions/add_favorite_to_meal.php?meal_id="+meal_id+"&favorite_id="+favorite_id, false); // synchronous
	http.onreadystatechange = function() {
		if(http.readyState == 4) {
			var i = http.responseText;
		}
	}
	http.send(null);
	mealGrid(meal_name, meal_id, '');
}

function newFoodItem() {
	if(!checkLogin()) return;
	document.getElementById('backButtonArea').innerHTML = '<a href="javascript:homeMenu()" id="backButton" class="button">Cancel</a>';
	document.getElementById('backButtonArea').style.visibility = 'visible';
	document.getElementById('pageTitle').innerHTML = "New Food Item";
	document.getElementById('main').innerHTML = '<div class="spinnerbox"><img src="images/spinner.gif" class="spinner" /></div>';
	var http = getHTTPObject();
	http.open("get", "functions/newfood_form.php", true); // asynchronous
	http.onreadystatechange = function() {
		if(http.readyState == 4) {
			document.getElementById('main').innerHTML = http.responseText;
		}
	}
	http.send(null);
	window.scrollTo(0,1);
}

function recalc_cal() {
	var cal = (document.newfood_form.zip_fat.value * 9) + (document.newfood_form.zip_carb.value * 4) + (document.newfood_form.zip_protein.value * 4);
	document.getElementById('cal').innerHTML = cal + 0;
}

function isNumberKey(evt) {
	var charCode = (evt.which) ? evt.which : event.keyCode
	if(charCode > 31 && (charCode < 48 || charCode > 57)) return false;
	return true;
}

function process_newfood_form() {
	if(document.newfood_form.fooditem_name.value == '') {
		alert("Please enter the name of this food item.");
		document.newfood_form.fooditem_name.focus();
		return false;
	}
	if(document.newfood_form.foodgroup_id.value == '') {
		alert("Please select the Food Group that this food item belongs to.");
		document.newfood_form.foodgroup_id.focus();
		return false;
	}
	if(document.newfood_form.zip_gi.value == '') {
		alert("Please enter the Glycemix Index for this food item.");
		document.newfood_form.zip_gi.focus();
		return false;
	}
	if(document.newfood_form.zip_fat.value == '') {
		alert("Please enter the amount of fat in grams for a portion-sized serving of this food.");
		document.newfood_form.zip_fat.focus();
		return false;
	}
	if(document.newfood_form.zip_gl.value == '') {
		alert("Please enter the Glycemic Load for this food item.");
		document.newfood_form.zip_gl.focus();
		return false;
	}
	if(document.newfood_form.zip_sfat.value == '') {
		alert("Please enter the amount of saturated fat in grams for a portion-sized serving of this food.");
		document.newfood_form.zip_sfat.focus();
		return false;
	}
	if(document.newfood_form.zip_protein.value == '') {
		alert("Please enter the amount of protein in grams for a portion-sized serving of this food.");
		document.newfood_form.zip_protein.focus();
		return false;
	}
	if(document.newfood_form.zip_carb.value == '') {
		alert("Please enter the amount of carbohydrates in grams for a portion-sized serving of this food.");
		document.newfood_form.zip_carb.focus();
		return false;
	}
	if(document.newfood_form.zip_measure.value == '') {
		alert("Please enter the measure of a portion sized serving.");
		document.newfood_form.zip_measure.focus();
		return false;
	}
	if(document.newfood_form.portion.value == '') {
		alert("Please enter a description of a portion size of this food.");
		document.newfood_form.portion.focus();
		return false;
	}
	var http = getHTTPObject();
	var url = "functions/process_newfood.php?foodgroup_id=" + 
		document.newfood_form.foodgroup_id.value + 
		"&user_id="       + document.newfood_form.user_id.value + 
		"&fooditem_name=" + document.newfood_form.fooditem_name.value + 
		"&gi="            + document.newfood_form.zip_gi.value + 
		"&gl="            + document.newfood_form.zip_gl.value + 
		"&carb="          + document.newfood_form.zip_carb.value + 
		"&sfat="          + document.newfood_form.zip_sfat.value + 
		"&fat="           + document.newfood_form.zip_fat.value + 
		"&protein="       + document.newfood_form.zip_protein.value + 
		"&measure="       + document.newfood_form.zip_measure.value + 
		"&measure_unit="  + document.newfood_form.measure_unit.value + 
		"&portion="       + document.newfood_form.portion.value;
	http.open("get", url, true); // asynchronous
	http.onreadystatechange = function() {
		if(http.readyState == 4) {
			var i = http.responseText;
		}
	}
	http.send(null);
	homeMenu();
	alert("Your new food item has been saved and can now be added to meals.");
}

function removeFoodItemFromDB(meal_name, meal_id, fooditem_id) {
	x = confirm("Are you sure you want to permanently remove this food from the database?");
	if(!x) return false;
	var quantity = document.addItemToMealForm.quantity.value;
	document.getElementById('backButtonArea').innerHTML = '<a href="javascript:dayGrid()" id="backButton" class="button">Day</a>';
	document.getElementById('backButtonArea').style.visibility = 'visible';
	document.getElementById('pageTitle').innerHTML = meal_name;
	document.getElementById('main').innerHTML = '<div class="spinnerbox"><img src="images/spinner.gif" class="spinner" /></div>';
	var http = getHTTPObject();
	// Remove the item from the db (asynchronous)
	http.open("get", "functions/remove_food_from_db.php?fooditem_id="+fooditem_id, true); // asynchronous
	http.onreadystatechange = function() {
		if(http.readyState == 4) {
			var globule = http.responseText;
			alert("The food item has been removed from the database.");
		}
	}
	http.send(null);
	mealGrid(meal_name, meal_id, '');
}
