#ifndef CLASS_UI
#define CLASS_UI
class UI
	{
	protected:
		static const char RETURN     = 'R';
		static const char QUIT       = 'Q';
		static const char NO_COMMAND = ' ';
	public:
		typedef char Command;

  		static const char DISPLAY_SUMMARY = 'U';
		static const char TITLE_SORT      = 'T';
		static const char DATE_SORT       = 'D';
		static const char STATUS_SORT     = 'S';
		static const char TYPE_SORT       = 'Y';
		static const char NAME_SORT       = 'N';
		static const char PATRON_SORT     = 'P';
		static Command getOption();
		// Output format info.
		static const Text SEPARATOR; 
  		static const int NUMBER_LENGTH    = 3;    
	};
	
//----------------------------------------
// 				class CatalogUI
//----------------------------------------
class CatalogUI : public UI
	{
	public:
		//Menu Options
		static const char MAGAZINE_MENU='M';
		static const char NEWSPAPER_MENU='N';
		static const char BOOK_MENU='B';
		static const char CHECKED_OUT_MENU='C';
		static const char FREQUENCY_SORT ='F';
		static const char AUTHOR_SORT = 'A';
		static const char BIAS_SORT ='B';

		static Command mainMenu();
		static Command bookMenu();
		static Command periodicalMenu();
		static Command newspaperMenu();
	};
//----------------------------------------
// 				class PatronUI
//----------------------------------------
class PatronUI : public UI
	{
	public:
		static Command mainMenu();
	};
//----------------------------------------
// 				class TransactionUI
//----------------------------------------
class TransactionUI : public UI
	{
	public:
		//Menu Options
		static const char DISPLAY_TRANSACTIONS = 'D';
		static const char PROCESS_TRANSACTIONS = 'P';
		static Command mainMenu();
		static Command displayMenu();
	};
//----------------------------------------
// 				class BorrowUI
//----------------------------------------
class BorrowUI : public UI
	{
	public:
		static Command mainMenu();
	};
#endif
