//case 3: open and subtract inventory lists from a file from the current inventory lists
  void 	MenuList::subtractInventoryFile(string inFileName){

		cin.clear();
		cin.ignore();

	  	vector <Ingredient> tempIngredientInventory;
		vector <Equipment> tempEquipmentInventory;

		cout << "Please enter the file name:" << endl;

		cin >> inFileName;

//		while(getline(cin,inFileName)){

		TiXmlDocument doc;

		bool loadOkay = doc.LoadFile(inFileName.c_str());

		if(!loadOkay){
			cerr << doc.ErrorDesc() << endl;
		}else{

			//define root - recipeCollection
			TiXmlElement *inventoryElement = doc.RootElement();
			Recipe recipe;

			while(inventoryElement){

				//ingredientlist
				TiXmlElement *ingredientlistElement = inventoryElement->FirstChildElement();
				//equipment
				TiXmlElement *equipmentElement = ingredientlistElement->NextSiblingElement();

				//ingredient
				TiXmlElement *ingredientElement = ingredientlistElement->FirstChildElement();
				
				if(strcmp(inventoryElement->Value(),"inventory")!=0){
					if(!silent){
						cerr << "cannot open file: " << inFileName  << endl;
					}
				} 

				//Read ingredientList
				while(ingredientlistElement && ingredientElement){
					if(strcmp(ingredientElement->Value(), "ingredient")== 0){
						Ingredient ingredient;
						tempIngredientInventory.push_back(ingredient.inputIngredient(ingredientElement));
						}
					else{
						cout << "no ingredient" << endl;;
					}
					ingredientElement = ingredientElement->NextSiblingElement();
				}

				//Read equipmentList
				while(equipmentElement){
					if(strcmp(equipmentElement->Value(), "equipment")== 0){

						Equipment equipment;
						equipment.equipment = equipmentElement->GetText();
						equipment.count =1;
						tempEquipmentInventory.push_back(equipment);

				//		cout << equipmentElement->GetText() << endl;
					}else{
						cout << "no equipment";
					}
					equipmentElement = equipmentElement->NextSiblingElement();
				}

			break;
			}

			//subtract the ingredient inventory list
			for (int i=0; i < ingredientInventory.size(); i++){
				for(int j=0; j < tempIngredientInventory.size() ; j++)
					if(ingredientInventory[i].fooditem==tempIngredientInventory[j].fooditem){
						if(ingredientInventory[i].quantity-tempIngredientInventory[j].quantity > 0){
							ingredientInventory[i].quantity=ingredientInventory[i].quantity-tempIngredientInventory[j].quantity;
							if(ingredientInventory[i].unit!=tempIngredientInventory[j].unit){
								ingredientInventory[i].unit=ingredientInventory[i].unit+tempIngredientInventory[j].unit;
							}
						}else{
							ingredientInventory.erase(ingredientInventory.begin()+i);
						}
				}
			}

			for (int i=0; i < equipmentInventory.size(); i++){
				for(int j=0; j < tempEquipmentInventory.size(); j++){
					if(equipmentInventory[i].equipment==tempEquipmentInventory[j].equipment){
						if (equipmentInventory[i].count-tempEquipmentInventory[j].count>0){
							equipmentInventory[i].count=equipmentInventory[i].count-tempEquipmentInventory[j].count;
						}else{
							equipmentInventory.erase(equipmentInventory.begin()+i);
						}
					}
				}
			}

			if (!silent){
				cout << "Subtract inventory completed" << endl;
			}

			return;
		}
	}
	void MenuList::inputRecipe(){
		
		cin.clear();
		cin.ignore();

		string inFileName;
		string line;
		vector<string> inFileNames;

		cout << "Please enter the file name:" << endl;
		
//		cin >> inFileName;

		while(getline(cin,line)){
			stringstream record(line);
			record >> inFileName;

		TiXmlDocument doc;

		bool loadOkay = doc.LoadFile(inFileName.c_str());

		if(!loadOkay){
			cerr << doc.ErrorDesc() << endl;
		}else{

			//define root - recipeCollection
			TiXmlElement *recipeElement = doc.RootElement();
			Recipe recipe;

			while(recipeElement){

				//recipe title
				TiXmlElement *titleElement = recipeElement->FirstChildElement();

				TiXmlElement *recipeinfoElement = NULL;
				TiXmlElement * ingredientlistElement = NULL;
				TiXmlElement * servingElement = NULL;
				TiXmlElement * notesElement = NULL;
				TiXmlElement *preparationElement = NULL;
				TiXmlElement *equipmentElement = NULL;

				if(strcmp(titleElement->NextSiblingElement()->Value(),"recipeinfo")==0){
					//recipeinfo
					recipeinfoElement = titleElement->NextSiblingElement();
					//ingredientlist
					ingredientlistElement = recipeinfoElement->NextSiblingElement();
				}else{
					ingredientlistElement = titleElement->NextSiblingElement();
				}


				//preparation
				preparationElement = ingredientlistElement->NextSiblingElement();

				//ingredient
				TiXmlElement *ingredientElement = ingredientlistElement->FirstChildElement();
				//equipment
				//
				equipmentElement = preparationElement->FirstChildElement();


				if(strcmp(preparationElement->NextSiblingElement()->Value(),"serving")==0){
					servingElement = preparationElement->NextSiblingElement();
					if(strcmp(servingElement->NextSiblingElement()->Value(),"notes")==0){
						notesElement = servingElement->NextSiblingElement();
					}
				}else if (strcmp(preparationElement->NextSiblingElement()->Value(),"notes")==0){
					notesElement = preparationElement->NextSiblingElement();
				}

				if(strcmp(recipeElement->Value(),"recipe")!=0){
					cerr << "cannot open recipe file: " << inFileName << endl;
				} 

				//Read title
				if(titleElement && (strcmp(titleElement->Value(), "title")== 0)){
					recipe.recipeTitle = titleElement->GetText();
				//	cout << titleElement->GetText() << endl;
				}else{
					cout << "no recipe title" << endl;;
				}

					//Read ingredientList
					while(ingredientlistElement && ingredientElement){
						if(strcmp(ingredientElement->Value(), "ingredient")== 0){
							Ingredient ingredient;
							recipe.ingredientsList.push_back(ingredient.inputIngredient(ingredientElement));
						}else{
							cout << "no ingredient" << endl;
						}
						ingredientElement = ingredientElement->NextSiblingElement();
					}

					//Read equipmentList
					while(preparationElement && equipmentElement){
						if(strcmp(equipmentElement->Value(), "equipment")== 0){
						Equipment equipment;
						equipment.equipment = equipmentElement->GetText();
						equipment.count =1;
						recipe.equipmentList.push_back(equipment);
						//		cout << equipmentElement->GetText() << endl;
						}else{
							cout << "no equipment" << endl;
						}
						equipmentElement = equipmentElement->NextSiblingElement();
					}
				recipeCollection.push_back(recipe);

				if (!silent){
				cout << "New recipe loaded" << endl;
				}
				
				return;
			}
					
			}
			
		}
	}