function ajaxRefresh(refreshElementId,url)
{
   var xmlHttp;
  try
    {
    // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
    }
  catch (e)
    {
    // Internet Explorer
    try
      {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      }
    catch (e)
      {
      try
        {
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
      catch (e)
        {
        alert("Your browser does not support AJAX!");
        return false;
        }
      }
    }
    xmlHttp.onreadystatechange=function()
      {
      if(xmlHttp.readyState==4)
        {
document.getElementById(refreshElementId).innerHTML=xmlHttp.responseText;

        }
      }

    xmlHttp.open("POST",refreshElementId+".php?"+url);
   
    xmlHttp.send(null);
   
      } 
	
// ----- popularRecipesMenuPageChange
	
function popularRecipesMenuPageChange(refreshElementId,url)
{
   var xmlHttp;
  try
    {
    // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
    }
  catch (e)
    {
    // Internet Explorer
    try
      {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      }
    catch (e)
      {
      try
        {
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
      catch (e)
        {
        alert("Your browser does not support AJAX!");
        return false;
        }
      }
    }
    xmlHttp.onreadystatechange=function()
      {
      if(xmlHttp.readyState==4)
        {
document.getElementById(refreshElementId).innerHTML=xmlHttp.responseText;

        }
      }

    xmlHttp.open("POST","popularRecipesMenu.php?"+url);
   
    xmlHttp.send(null);
   
      } 

// --------------------------------------- Feedback ---------------------------------------
	  
function feedbackAdded(url){
	var userMessage = document.getElementById('userFeedbackForm').feedback.value;
	
	userMessage = userMessage.replace(/\n/g, "<br>");
	
	ajaxRefresh("mainMenu","feedbackAdded=true&body=" + userMessage);
}

// --------------------------------------- Recipes ---------------------------------------
	  
function addRecipeToList(url){
	ajaxRefresh("recipes",url);
	ajaxRefresh("recipeComments",url);
	
	ajaxRefresh("recipeRolodexRecipes",url);
	ajaxRefresh("recipeSearch",url);
}
	  
function removeRecipeFromList(url){
	ajaxRefresh("recipes",url);
	
	location.href = "?page=recipes";
}
	  
function rateRecipeRecipes(url){
	ajaxRefresh("recipes",url);
	ajaxRefresh("recipeComments",url);
	
	ajaxRefresh("recipeRolodexRecipes",url);
}
	  
function searchRecipes(){
	var searchValue = document.getElementById('searchField').value;
	
	ajaxRefresh("recipeSearchResults","search=" + searchValue);
}
	  
function recipeSearchPageChange(url){
	ajaxRefresh("recipeSearch",url);
}
	  
function recipeRolodexRecipesPageChange(url){
	ajaxRefresh("recipeRolodexRecipes",url);
}
	  
function changeRecipe(url,recipeId){
	var username = document.getElementById('editRecipeForm').setname.value;
	var usercategory = document.getElementById('editRecipeForm').setcategory.value;
	var userprivacy = document.getElementById('editRecipeForm').setprivacy.value;
	var userdirections = document.getElementById('editRecipeForm').setdirections.value;
	var userserving = document.getElementById('editRecipeForm').setserving.value;
	
	userdirections = userdirections.replace(/\n/g, "<br>");
	
	ajaxRefresh("recipes",url + "&recipeId=" + recipeId + "&categoryId=" + usercategory + "&name=" + username + "&privacy=" + userprivacy + "&directions=" + userdirections + "&servingSize=" + userserving);
	
	setTimeout("location.href = '?page=recipes&recipeId=" + recipeId + "'", 1000);
}
	  
function removeIngredient(url){
	ajaxRefresh("recipes",url);
}
	  
function searchIngredients(url){
	var searchValue = document.getElementById('searchField').value;
	
	ajaxRefresh("ingredientSearchResults",url + "&search=" + searchValue);
}
	  
function ingredientSearchPageChange(url){
	ajaxRefresh("ingredientSearchResults",url);
}

// --------------------------------------- Calendar ---------------------------------------
	  
	  
function calendarDateChange(url){
	ajaxRefresh("calendar",url);
	
	ajaxRefresh("dailyMenu",url);
	ajaxRefresh("recipeRolodex",url);
	ajaxRefresh("favoriteRecipes",url);
	ajaxRefresh("myRecipes",url);
	ajaxRefresh("relatedRecipes",url);
	
	ajaxRefresh("recipeContent",url);
	ajaxRefresh("recipeComments",url);
}
	  
function recipeSelection(url){
	ajaxRefresh("dailyMenu",url);
	ajaxRefresh("recipeRolodex",url);
	ajaxRefresh("favoriteRecipes",url);
	ajaxRefresh("myRecipes",url);
	ajaxRefresh("relatedRecipes",url);
	
	ajaxRefresh("recipeContent",url);
	ajaxRefresh("recipeComments",url);
}
	  
function recipeSelectionGrocery(url){
	ajaxRefresh("recipeContent",url);
	ajaxRefresh("recipeComments",url);
}
	  
function dailyMenuPageChange(url){
	ajaxRefresh("dailyMenu",url);
}
	  
function recipeRolodexPageChange(url){
	ajaxRefresh("recipeRolodex",url);
}
	  
function favoriteRecipesPageChange(url){
	ajaxRefresh("favoriteRecipes",url);
}
	  
function myRecipesPageChange(url){
	ajaxRefresh("favoriteRecipes",url);
}
	  
function relatedRecipesPageChange(url){
	ajaxRefresh("relatedRecipes",url);
}
	  
function changeRolodex(url,recipeId,date){
	ajaxRefresh("recipeRolodex",url + '&recipeId=' + recipeId + '&date=' + date);
	
	ajaxRefresh("recipeContent",'recipeId=' + recipeId + "&date=" + date);
	ajaxRefresh("recipeComments",'recipeId=' + recipeId + "&date=" + date);
	
	ajaxRefresh("dailyMenu",'recipeId=' + recipeId + "&date=" + date);
	ajaxRefresh("recipeRolodex",'recipeId=' + recipeId + "&date=" + date);
	ajaxRefresh("favoriteRecipes",'recipeId=' + recipeId + "&date=" + date);
	ajaxRefresh("myRecipes",'recipeId=' + recipeId + "&date=" + date);
	ajaxRefresh("relatedRecipes",'recipeId=' + recipeId + "&date=" + date);
}
	  
function changeFavorites(url,recipeId,date){
	ajaxRefresh("favoriteRecipes",url + '&recipeId=' + recipeId + '&date=' + date);
	
	ajaxRefresh("recipeContent",'recipeId=' + recipeId + "&date=" + date);
	ajaxRefresh("recipeComments",'recipeId=' + recipeId + "&date=" + date);
	
	ajaxRefresh("dailyMenu",'recipeId=' + recipeId + "&date=" + date);
	ajaxRefresh("recipeRolodex",'recipeId=' + recipeId + "&date=" + date);
	ajaxRefresh("favoriteRecipes",'recipeId=' + recipeId + "&date=" + date);
	ajaxRefresh("myRecipes",'recipeId=' + recipeId + "&date=" + date);
	ajaxRefresh("relatedRecipes",'recipeId=' + recipeId + "&date=" + date);
}

// --------------------------------------- Recipe Add/Delete/Move from Calendar ---------------------------------------
 
function recipeChanged(recipeId,recipeExists,date,changedDate){	
	if(recipeExists == true){
		recipeUpdated(recipeId,date,changedDate);
	} else {
		recipeAdded(recipeId,changedDate);
	}
}
	  
function recipeAdded(recipeId,date){
	document.location.href = "?page=calendar&calendarRecipeAdded=true&recipeId=" + recipeId + "&date=" + date;
}
 
function recipeUpdated(recipeId,date,changedDate){	
	document.location.href = "?page=calendar&calendarRecipeChanged=true&recipeId=" + recipeId + "&date=" + date + "&changedDate=" + changedDate;
}
	  
function recipeRemoved(recipeTimeId,date){	
	ajaxRefresh("calendar","recipeRemoved=true" + "&recipeTimeId=" + recipeTimeId + "&date=" + date);
	
	ajaxRefresh("dailyMenu","date=" + date);
	ajaxRefresh("recipeRolodex","date=" + date);
	ajaxRefresh("favoriteRecipes","date=" + date);
	ajaxRefresh("myRecipes","date=" + date);
	ajaxRefresh("relatedRecipes","date=" + date);
}

// --------------------------------------- Set Menu Visiblity ---------------------------------------

function setMenuVisibility(menuName){
	var visibility = false;
	
	if(document.getElementById(menuName + 'Menu').style.display == 'none'){
		visibility = true;
	}
	
	ajaxRefresh("menuRefresh","menuName=" + menuName + "&visibility=" + visibility);
}

// --------------------------------------- Recipe Interaction ---------------------------------------
	  
function rateRecipe(recipeId,rating,date){
	ajaxRefresh("recipeContent","rateRecipe=true&recipeId=" + recipeId + "&rating=" + rating);
	
	ajaxRefresh("dailyMenu","recipeId=" + recipeId + "&date=" + date);
	ajaxRefresh("recipeRolodex","recipeId=" + recipeId + "&date=" + date);
	ajaxRefresh("favoriteRecipes","recipeId=" + recipeId + "&date=" + date);
	ajaxRefresh("myRecipes","recipeId=" + recipeId + "&date=" + date);
	ajaxRefresh("relatedRecipes","recipeId=" + recipeId + "&date=" + date);
	
	ajaxRefresh("recipeContent","recipeId=" + recipeId + "&date=" + date);
}
	  
function changeComment(url,recipeId,date){
	var userComment = document.getElementById('addCommentForm').addedComment.value;
	
	userComment = userComment.replace(/\n/g, "<br>");
	
	ajaxRefresh("recipeComments",url + "&recipeId=" + recipeId + "&body=" + userComment + "&date=" + date);
}
	  
function recipeCommentsPageChange(url){
	ajaxRefresh("recipeComments",url);
}

// --------------------------------------- Grocery ---------------------------------------
	  
function editGroceryComments(url){
	ajaxRefresh("groceryList",url);
}
	  
function changeGroceryComments(url){
	var groceryComments = document.getElementById('editGroceryCommentsForm').setGroceryComments.value;
	
	groceryComments = groceryComments.replace(/\n/g, "<br>");
	
	ajaxRefresh("groceryList",url + "&body=" + groceryComments);
}

// --------------------------------------- Inbox ---------------------------------------
	  
function subjectChange(url){
	ajaxRefresh("inbox",url);
	
	ajaxRefresh("inbox","");
	ajaxRefresh("inboxHeader","");
	ajaxRefresh("inboxMessages","");
}
	  
function messageSelection(url){
	ajaxRefresh("inboxHeader",url);
	ajaxRefresh("inboxMessages",url);
	
	ajaxRefresh("mainMenu",url);
}
	  
function messageInboxSelection(url){
	ajaxRefresh("inbox",url);
}
	  
function messageChange(url){
	var userMessage = document.getElementById('addMessageForm').addedMessage.value;
	
	userMessage = userMessage.replace(/\n/g, "<br>");
	
	ajaxRefresh("inboxMessages",url + "&body=" + userMessage);
}
	  
function composeMessage(url){
	ajaxRefresh("inboxMessages",url + "&composeMessage=true");
	ajaxRefresh("inboxHeader",url + "&composeMessage=true");
}
	  
function myFriendsPageChange(url){
	ajaxRefresh("myFriends",url);
}
	  
function addFriendToList(friendId){
	var userSubject = document.getElementById('addSubjectForm').addedSubject.value;
	var userMessage = document.getElementById('addSubjectForm').addedMessage.value;
	
	userMessage = userMessage.replace(/\n/g, "<br>");
	
	ajaxRefresh("myFriends","friendAdded=true&messageSubject=" + userSubject + "&message=" + userMessage + "&friendId=" + friendId);
	ajaxRefresh("composeMessage","");
}
	  
function removeFriendFromList(friendId){
	var userSubject = document.getElementById('addSubjectForm').addedSubject.value;
	var userMessage = document.getElementById('addSubjectForm').addedMessage.value;
	
	userMessage = userMessage.replace(/\n/g, "<br>");
	
	ajaxRefresh("myFriends","friendRemoved=true&messageSubject=" + userSubject + "&message=" + userMessage + "&friendId=" + friendId);
	ajaxRefresh("composeMessage","");
}
	  
function searchMyFriends(url){
	var searchValue = document.getElementById('searchField').value;
	
	ajaxRefresh("myFriendsResults",url + "&search=" + searchValue);
}
	  
function composeMessageFieldChange(){
	var userSubject = document.getElementById('addSubjectForm').addedSubject.value;
	var userMessage = document.getElementById('addSubjectForm').addedMessage.value;
	
	userMessage = userMessage.replace(/\n/g, "<br>");
	
	ajaxRefresh("composeMessageUpdate","fieldChanged=true&messageSubject=" + userSubject + "&message=" + userMessage);
}
	  
function composeMessageSubject(){
	ajaxRefresh("composeMessage","subjectAdded=true");
	ajaxRefresh("inbox","");
}

// --------------------------------------- Friends ---------------------------------------
	  
function updateFriends(url){
	ajaxRefresh("friends",url);
	ajaxRefresh("friends","");
	
	ajaxRefresh("mainMenu","");
}
	  
function friendPageChange(url){
	ajaxRefresh("friends",url);
}
	  
function searchFriends(){
	var searchValue = document.getElementById('searchField').value;
	
	ajaxRefresh("friendSearchResults","search=" + searchValue);
}
	  
function friendSearchPageChange(url){
	ajaxRefresh("friendSearch",url);
}

// --------------------------------------- Profile ---------------------------------------
	  
function userRecipesAddRecipe(url,profileUserId){
	ajaxRefresh("userRecipes",url);
	ajaxRefresh("userRecipes","profileUserId=" + profileUserId);
}
	  
function userRecipesPageChange(url){
	ajaxRefresh("userRecipes",url);
}
	  
function editProfile(url){
	ajaxRefresh("profile",url);
}
	  
function sendFriendRequest(url,profileUserId){
	ajaxRefresh("profile",url + "&profileUserId=" + profileUserId);
	ajaxRefresh("profile","profileUserId=" + profileUserId);
	
	ajaxRefresh("mainMenu","");
}
	  
function changeProfile(){
	var userfname = document.getElementById('editProfileForm').setfname.value;
	var userlname = document.getElementById('editProfileForm').setlname.value;
	var useremail = document.getElementById('editProfileForm').setemail.value;
	var userpassword = document.getElementById('editProfileForm').setpassword.value;
	var userpassword2 = document.getElementById('editProfileForm').setpassword2.value;
	
	ajaxRefresh("profile","profileChanged=true&fname=" + userfname + "&lname=" + userlname + "&email=" + useremail + "&password=" + userpassword + "&password2=" + userpassword2);
}
