private JButton createContinueGameButton()
	{
		JButton continueGameButton = new JButton(Messages.getString("Driver.loadGame")); //$NON-NLS-1$
		continueGameButton.setToolTipText(Messages.getString("Driver.loadASavedGame")); //$NON-NLS-1$
		try
		{
			continueGameButton.setIcon(GuiUtility.createImageIcon(30, 30, "/saved_games.png")); //$NON-NLS-1$
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
		continueGameButton.addActionListener(new ActionListener()
		{
			@Override
			public void actionPerformed(ActionEvent event)
			{
				String[] files = FileUtility.getGamesInProgressFileArray();

				if (files.length == 0)
				{
					JOptionPane.showMessageDialog(Driver.getInstance(), Messages.getString("Driver.noSavedGames"), //$NON-NLS-1$
							Messages.getString("Driver.noGamesInProgress"), JOptionPane.ERROR_MESSAGE); //$NON-NLS-1$
					return;
				}

				GridBagConstraints constraints = new GridBagConstraints();
				
				final ChessPanel continueGamePanel = new ChessPanel();
				continueGamePanel.setLayout(new GridBagLayout());

				final JList gamesInProgressList = new JList(FileUtility.getGamesInProgressFileArray());
				final JScrollPane scrollPane = new JScrollPane(gamesInProgressList);
				scrollPane.setPreferredSize(new Dimension(200, 200));
				gamesInProgressList.setSelectedIndex(0);

				JButton nextButton = new JButton(Messages.getString("Driver.loadSavedGame")); //$NON-NLS-1$
				nextButton.addActionListener(new ActionListener()
				{
					@Override
					public void actionPerformed(ActionEvent event)
					{
						FileInputStream fileInputStream;
						ObjectInputStream objectInputStream;
						Game gameToPlay;
						try
						{
							if (gamesInProgressList.getSelectedValue() == null)
							{
								JOptionPane.showMessageDialog(Driver.getInstance(),
										Messages.getString("Driver.selectGame"), Messages.getString("Driver.error"), //$NON-NLS-1$ //$NON-NLS-2$
										JOptionPane.PLAIN_MESSAGE);
								return;
							}
							fileInputStream = new FileInputStream(FileUtility.getGamesInProgressFile(gamesInProgressList
									.getSelectedValue().toString()));
							objectInputStream = new ObjectInputStream(fileInputStream);
							gameToPlay = (Game) objectInputStream.readObject();

							gameToPlay.getWhiteRules().setGame(gameToPlay);
							gameToPlay.getBlackRules().setGame(gameToPlay);

							// set the help menu info to be specific for game
							// play
							if (mOptionsMenu != null)
								mOptionsMenu.setVisible(true);

							m_playGameScreen = new PlayGamePanel(gameToPlay);
							pushPanel(m_playGameScreen);
						}
						catch (Exception e)
						{
							e.printStackTrace();
							JOptionPane.showMessageDialog(Driver.getInstance(),
									Messages.getString("Driver.noValidSavedGames"), Messages.getString("Driver.invalidSavedGames"), //$NON-NLS-1$ //$NON-NLS-2$
									JOptionPane.PLAIN_MESSAGE);
						}
					}
				});

				JButton cancelButton = new JButton(Messages.getString("Driver.cancel")); //$NON-NLS-1$
				GuiUtility.setupDoneButton(cancelButton, Driver.this);

				JButton deleteButton = new JButton(Messages.getString("Driver.deleteSavedGame")); //$NON-NLS-1$
				deleteButton.addActionListener(new ActionListener()
				{
					@Override
					public void actionPerformed(ActionEvent event)
					{
						if (gamesInProgressList.getSelectedValue() != null)
						{
							boolean didDeleteSuccessfully = FileUtility.getGamesInProgressFile(
									gamesInProgressList.getSelectedValue().toString()).delete();
							if (!didDeleteSuccessfully)
							{
								JOptionPane.showMessageDialog(Driver.getInstance(), Messages.getString("Driver.savedGameNotDeleted"), //$NON-NLS-1$
										Messages.getString("Driver.error"), JOptionPane.ERROR_MESSAGE); //$NON-NLS-1$
							}
							else
							{
								gamesInProgressList.setListData(FileUtility.getGamesInProgressFileArray());
								gamesInProgressList.setSelectedIndex(0);
								if (gamesInProgressList.getSelectedValue() == null)
								{
									JOptionPane.showMessageDialog(Driver.getInstance(), Messages
											.getString("Driver.noMoreCompletedGames"), Messages.getString("Driver.noCompletedGames"), //$NON-NLS-1$ //$NON-NLS-2$
											JOptionPane.PLAIN_MESSAGE);
									revertToMainPanel();
								}
								scrollPane.getViewport().add(gamesInProgressList, null);
							}
						}
						else
						{
							JOptionPane.showMessageDialog(Driver.getInstance(), Messages.getString("Driver.noSaveFiles"), //$NON-NLS-1$
									Messages.getString("Driver.noSaveFileSelected"), JOptionPane.PLAIN_MESSAGE); //$NON-NLS-1$
						}
					}
				});

				constraints.gridx = 0;
				constraints.gridy = 0;
				constraints.gridwidth = 2;
				constraints.insets = new Insets(5, 5, 5, 5);
				continueGamePanel.add(scrollPane, constraints);

				constraints.gridx = 0;
				constraints.gridy = 1;
				continueGamePanel.add(deleteButton, constraints);

				constraints.weighty = 1.0;
				constraints.weightx = 1.0;
				constraints.gridx = 0;
				constraints.gridy = 2;
				constraints.gridwidth = 1;
				constraints.anchor = GridBagConstraints.EAST;
				continueGamePanel.add(nextButton, constraints);

				constraints.gridx = 1;
				constraints.gridy = 2;
				constraints.anchor = GridBagConstraints.WEST;
				continueGamePanel.add(cancelButton, constraints);
				
				pushPanel(continueGamePanel);
			}
		});

		return continueGameButton;
	}