/*
         * REMOVE MOVIE
         * Searches BST for entered Movie
         * Deletes if found
         * Alerts user if not
         */
        static void RemoveMovie(MovieCollection movieC, MemberCollection memberC)
        {
            string mTitle;

            WriteLine("\nEnter the Title of the Movie you wish to remove: ");
            mTitle = Console.ReadLine();

            Movie outcome = movieC.Find(mTitle);

            if (outcome == null)
            {
                WriteLine("\n" + mTitle + " could not be found in the database, please check the details\n");
                DisplayStaffMenu(movieC, memberC);
            }
            else
            {
                movieC.Remove(outcome);
                WriteLine("\n" + mTitle + " has been removed from the database\n");
                DisplayStaffMenu(movieC, memberC);
            }
        }
        /*
         * BORROW MOVIE
         * Enables the user to borrow a copy of a Movie from the Program
         * Alerts the user if their input does not match the title of a Movie in the Program
         * Alerts the user if they are already borrowing the Movie they have inputted
         * Alerts the user if there are no more copies of the Movie in the Program
         * Alerts the user if they are borrowing the maximum number of Movies at one time
         */
        static void MemberBorrowMovie(MovieCollection movieC, MemberCollection memberC, Member member)
        {
            string movieTitle;

            WriteLine("\nPlease enter the movie you wish to borrow: ");
            movieTitle = Console.ReadLine();

            Movie borrowedMovie = movieC.Find(movieTitle);

            if (borrowedMovie == null)
            {
                WriteLine("\n" + movieTitle + " could not be found in the database, please check the details");
                DisplayMemberMenu(movieC, memberC, member);
            }

            //Checks to see if the movie is already borrowed
            bool alreadyBorrowed = false;

            for (int i = 0; i < member.moviesBorrowed.Length; i++)
            {
                if (member.moviesBorrowed[i] == null)
                {
                    alreadyBorrowed = false;
                }
                else if (member.moviesBorrowed[i].title == borrowedMovie.title)
                {
                    alreadyBorrowed = true;
                    break;
                }
                else
                {
                    alreadyBorrowed = false;
                }
            }

            //Determines next course based on if the movie is already borrowed or not
            if (alreadyBorrowed == false)
            {
                if (borrowedMovie.copiesAvailable < 1)
                {
                    WriteLine("\nThere are no more copies of " + movieTitle + " remaining\n");
                    DisplayMemberMenu(movieC, memberC, member);
                }
                else
                {
                    int currentlyBorrowedMovies = 0;

                    //Counts number of Movies the user is already borrowing
                    for (int i = 0; i < member.moviesBorrowed.Length; i++)
                    {
                        if (member.moviesBorrowed[i] != null)
                        {
                            currentlyBorrowedMovies++;
                        }
                    }

                    //Kicks user if they have reached the maximum number of Borrowed Movies
                    if (currentlyBorrowedMovies == 10)
                    {
                        WriteLine("\nYou are already borrowing the maximum amount of Movies possible\n");
                        DisplayMemberMenu(movieC, memberC, member);
                    }
                    else
                    {
                        //Finds empty position in Movies Borrowed array
                        //And adds the Movie to it
                        for (int i = 0; i < member.moviesBorrowed.Length; i++)
                        {
                            if (member.moviesBorrowed[i] == null)
                            {
                                member.moviesBorrowed[i] = borrowedMovie;
                                break;
                            }
                        }
                        //Decreases number of available copies
                        borrowedMovie.copiesAvailable -= 1;
                        //Increases number of times borrowed
                        borrowedMovie.timesBorrowed += 1;

                        //Calculates how many movies the user can borrow
                        int nullMovies = 0;
                        for (int i = 0; i < member.moviesBorrowed.Length; i++)
                        {
                            if (member.moviesBorrowed[i] == null)
                            {
                                nullMovies++;
                            }
                        }

                        WriteLine("\nYou have now borrowed " + movieTitle);
                        WriteLine("You have borrowed " + (member.moviesBorrowed.Length - nullMovies) + " of your total 10 Movies you can borrow at one time\n");
                        DisplayMemberMenu(movieC, memberC, member);
                    }
                }
            }
            else
            {
                WriteLine("\nYou are already borrowing: " + movieTitle + "\n");
                DisplayMemberMenu(movieC, memberC, member);
            }
        }
        /*
         * ENTER MOVIE
         * - Enables the user to add a new Movie to the program
         * - Filters for incorrect input
         * - Allows user to add more copies if Movie Title is already in Program
         */
        static void EnterNewMovie(MovieCollection movieC, MemberCollection memberC)
        {
            string         movieTitle;
            string         movieActors;
            string         movieDirector;
            Genre          movieGenre;
            Classification movieClassification;
            int            movieDuration        = 0;
            int            movieReleaseYear     = 0;
            int            movieAvailableCopies = 0;

            string genreInput;
            string classInput;
            string durationInput;
            string rYearInput;
            string aCopiesInput;

            WriteLine();

            //Movie Title
            do
            {
                do
                {
                    WriteLine("Enter the Title of the Movie: ");
                    movieTitle = Console.ReadLine();

                    //Checks if input is valid
                    if (!Regex.IsMatch(movieTitle, @"^[a-zA-Z0-9\x20]+$"))
                    {
                        WriteLine("\nIncorrect Input, please enter a combination of letters and numbers\n");
                    }

                    if (Regex.IsMatch(movieTitle, @"^[\x20]+$"))
                    {
                        WriteLine("\nInput cannot be blank\n");
                    }

                    Movie foundMovie = movieC.Find(movieTitle);

                    //Checks whether movie already exists in database
                    if (foundMovie != null)
                    {
                        string copiesAdded;
                        do
                        {
                            WriteLine("\nPlease enter the number of copies you wish to add: ");
                            copiesAdded = Console.ReadLine();

                            if (!Regex.IsMatch(copiesAdded, @"^[0-9]+$"))
                            {
                                WriteLine("\nIncorrect input, please enter an integer");
                            }
                            else
                            {
                                int copiesToAdd = Convert.ToInt32(copiesAdded);
                                foundMovie.copiesAvailable += copiesToAdd;
                                WriteLine("\nAdded " + copiesToAdd + " copies to " + foundMovie.title + "\n");
                                WriteLine(foundMovie.title + " now has " + foundMovie.copiesAvailable + " copies available");
                                DisplayStaffMenu(movieC, memberC);
                                break;
                            }
                        } while (!Regex.IsMatch(copiesAdded, @"^[0-9]+$"));
                    }
                } while (!Regex.IsMatch(movieTitle, @"^[a-zA-Z0-9\x20]+$"));
            } while (Regex.IsMatch(movieTitle, @"^[\x20]+$"));

            //Actors/Actresses
            do
            {
                do
                {
                    do
                    {
                        WriteLine("Enter the Actors/Actresses in the Movie: ");
                        movieActors = Console.ReadLine();

                        if (!Regex.IsMatch(movieActors, @"^[a-zA-Z,\x20]+$"))
                        {
                            WriteLine("\nIncorrect Input, please enter a string\n");
                        }

                        if (Regex.IsMatch(movieActors, @"^[\x20]+$"))
                        {
                            WriteLine("\nInput cannot be blank\n");
                        }

                        if (Regex.IsMatch(movieActors, @"^[\,]+$"))
                        {
                            WriteLine("\nIncorrect Input, please enter a string\n");
                        }
                    } while (!Regex.IsMatch(movieActors, @"^[a-zA-Z,\x20]+$"));
                } while (Regex.IsMatch(movieActors, @"^[\x20]+$"));
            }while (Regex.IsMatch(movieActors, @"^[,]+$"));

            //Movie Director
            do
            {
                do
                {
                    WriteLine("Enter the Director of the Movie: ");
                    movieDirector = Console.ReadLine();

                    if (!Regex.IsMatch(movieDirector, @"^[a-zA-Z\x20]+$"))
                    {
                        WriteLine("\nIncorrect Input, please enter a string\n");
                    }

                    if (Regex.IsMatch(movieDirector, @"^[\x20]+$"))
                    {
                        WriteLine("\nInput cannot be blank\n");
                    }
                } while (!Regex.IsMatch(movieDirector, @"^[a-zA-Z\x20]+$"));
            } while (Regex.IsMatch(movieDirector, @"^[\x20]+$"));

            //Genre Selection
            do
            {
                WriteLine("\nThe available Genres are:");
                WriteLine("1. Drama");
                WriteLine("2. Adventure");
                WriteLine("3. Family");
                WriteLine("4. Action");
                WriteLine("5. Sci-Fi");
                WriteLine("6. Comedy");
                WriteLine("7. Thriller");
                WriteLine("8. Other");
                WriteLine("Please select the Genre of the Movie: ");
                genreInput = Console.ReadLine().ToString();

                if (genreInput == '1'.ToString())
                {
                    movieGenre = Genre.Drama;
                }
                else if (genreInput == '2'.ToString())
                {
                    movieGenre = Genre.Adventure;
                }
                else if (genreInput == '3'.ToString())
                {
                    movieGenre = Genre.Family;
                }
                else if (genreInput == '4'.ToString())
                {
                    movieGenre = Genre.Action;
                }
                else if (genreInput == '5'.ToString())
                {
                    movieGenre = Genre.SciFi;
                }
                else if (genreInput == '6'.ToString())
                {
                    movieGenre = Genre.Comedy;
                }
                else if (genreInput == '7'.ToString())
                {
                    movieGenre = Genre.Thriller;
                }
                else
                {
                    movieGenre = Genre.Other;
                }

                if (genreInput != '1'.ToString() &&
                    genreInput != '2'.ToString() &&
                    genreInput != '3'.ToString() &&
                    genreInput != '4'.ToString() &&
                    genreInput != '5'.ToString() &&
                    genreInput != '6'.ToString() &&
                    genreInput != '7'.ToString() &&
                    genreInput != '8'.ToString()
                    )
                {
                    WriteLine("\nIncorrect Input, please enter either 1,2,3,4,5,6,7 or 8\n");
                }
            } while (genreInput != '1'.ToString() &&
                     genreInput != '2'.ToString() &&
                     genreInput != '3'.ToString() &&
                     genreInput != '4'.ToString() &&
                     genreInput != '5'.ToString() &&
                     genreInput != '6'.ToString() &&
                     genreInput != '7'.ToString() &&
                     genreInput != '8'.ToString());

            //Classification Selection
            do
            {
                WriteLine("\nThe available Classifications are:");
                WriteLine("1. General (G)");
                WriteLine("2. Parental Guidance (PG)");
                WriteLine("3. Mature (M)");
                WriteLine("4. Mature Accompanied (MA15+)");
                WriteLine("Please select the Classification of the Movie: ");
                classInput = Console.ReadLine().ToString();

                if (classInput == '1'.ToString())
                {
                    movieClassification = Classification.General;
                }
                else if (classInput == '2'.ToString())
                {
                    movieClassification = Classification.ParentalGuidance;
                }
                else if (classInput == '3'.ToString())
                {
                    movieClassification = Classification.Mature;
                }
                else
                {
                    movieClassification = Classification.MatureAccompanied;
                }

                if (classInput != '1'.ToString() && classInput != '2'.ToString() && classInput != '3'.ToString() && classInput != '4'.ToString())
                {
                    WriteLine("\nIncorrect Input, please enter either 1,2,3 or 4\n");
                }
            } while (classInput != '1'.ToString() && classInput != '2'.ToString() && classInput != '3'.ToString() && classInput != '4'.ToString());

            //Duration in Minutes
            do
            {
                WriteLine("\nEnter the Movie's Duration in Minutes: ");
                durationInput = Console.ReadLine();

                if (!Regex.IsMatch(durationInput, @"^[0-9]+$"))
                {
                    WriteLine("\nIncorrect Input, please enter an integer\n");
                }
                else
                {
                    movieDuration = Convert.ToInt32(durationInput);
                }
            } while (!Regex.IsMatch(durationInput, @"^[0-9]+$"));

            //Year of Release
            do
            {
                WriteLine("\nEnter the Movie's Year of Release: ");
                rYearInput = Console.ReadLine();

                if (!Regex.IsMatch(rYearInput, @"^[0-9]+$"))
                {
                    WriteLine("\nIncorrect Input, please enter an integer\n");
                }
                else
                {
                    movieReleaseYear = Convert.ToInt32(rYearInput);
                }
            } while (!Regex.IsMatch(rYearInput, @"^[0-9]+$"));

            //Number of Available Copies
            do
            {
                WriteLine("\nEnter the Number of Available Copies: ");
                aCopiesInput = Console.ReadLine();

                if (!Regex.IsMatch(aCopiesInput, @"^[0-9]+$"))
                {
                    WriteLine("\nIncorrect Input, please enter an integer\n");
                }
                else
                {
                    movieAvailableCopies = Convert.ToInt32(aCopiesInput);
                }
            } while (!Regex.IsMatch(aCopiesInput, @"^[0-9]+$"));


            //Adds new movie to the Movie Collection and returns the user to the Staff Menu
            Movie newMovie = new Movie(movieTitle, movieActors, movieDirector, movieGenre, movieClassification, movieDuration, movieReleaseYear, movieAvailableCopies);

            movieC.Insert(newMovie);
            WriteLine("Successfully added " + newMovie.title + "\n");

            //Returns user to the Staff Menu
            DisplayStaffMenu(movieC, memberC);
        }