public static void drawPostRaceScreen() {
		// Clear the last screen
		GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);

		// Preserve current GL settings
		GL11.glPushAttrib(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_TEXTURE_BIT
				| GL11.GL_LIGHTING_BIT | GL11.GL_DEPTH_BUFFER_BIT);

		// Turn off lighting
		GL11.glDisable(GL11.GL_LIGHTING);

		// Enable alpha testing (transparent backgrounds)
		GL11.glEnable(GL11.GL_BLEND);
		GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);

		// Draw the menu background that is used for this screen
		drawRec(menuBackgroundHandle, 0, 0, viewportW, viewportH, 1.0f);

		// Draw the high score background and the stat screen background
		drawRec(highScoreHandle, viewportW - highScoreTable.getWidth() - 100,
				100, highScoreTable.getWidth(), highScoreTable.getHeight(),
				1.0f);
		drawRec(statScreenHandle, 100, 100, statScreen.getWidth(),
				statScreen.getHeight(), 1.0f);

		// Calculate the minutes, seconds and milliseconds of the best lap
		int minutes = (int) Math.floor(lapTimes[bestLap] / 60);
		int seconds = (int) Math.floor(lapTimes[bestLap] % 60);
		int milliseconds = Math.round((lapTimes[bestLap] % 1f) * 100);

		// Using a variable for the y position of printing, you can align text
		// neatly
		// Each time a line is drawn, the y position of printing is changed
		int yPrint = 490;

		// If the player beat the minimum lap time
		if (lapTimes[bestLap] < 25) {

			// Print out that the player beat the time
			print(130, 550, "Congratulations!", 28, "Font/MenuFont.png");
			print(130, yPrint, "You beat the minimum time!", 18,
					"Font/MenuFont.png");
			yPrint -= 30;

			// Print out the best lap time of the user
			print(130, yPrint, String.format("Best Lap: %d:%02d:%02d", minutes,
					seconds, milliseconds), 18, "Font/MenuFont.png");
			yPrint -= 50;

			// If the player earned money, print out how much money they earned,
			// and if they
			// didn't, print out an appropriate message
			if (lapMoney[bestLap] > 0) {
				print(130, yPrint,
						"You also made: $" + lapMoney[bestLap] + "!", 18,
						"Font/MenuFont.png");
			} else {
				print(130, yPrint, "But, unfortunately you didn't", 18,
						"Font/MenuFont.png");
				yPrint -= 30;
				print(130, yPrint, "make any money...", 18, "Font/MenuFont.png");

			}
			yPrint -= 50;

			// If the player made it into the high score list
			if (highScorePosition < 5) {
				// Print out that they made it and their position
				print(130, yPrint, "You also made it into the", 18,
						"Font/MenuFont.png");
				yPrint -= 30;
				print(130, yPrint, "High Scores Table!", 18,
						"Font/MenuFont.png");
				yPrint -= 30;
				print(130, yPrint, "You are in position: "
						+ (highScorePosition + 1), 18, "Font/MenuFont.png");

				// Draw the correct enter high score button (only if user made
				// it into high score list)
				// based on if the cursor is over it
				if (overEnterHighScore) {
					drawRec(enterHighScoreOverHandle,
							(int) enterHighScorePosition.x,
							(int) enterHighScorePosition.y,
							enterHighScore.getWidth(),
							enterHighScore.getHeight(), 1.0f);
				} else {
					drawRec(enterHighScoreHandle,
							(int) enterHighScorePosition.x,
							(int) enterHighScorePosition.y,
							enterHighScore.getWidth(),
							enterHighScore.getHeight(), 1.0f);
				}
			}
			// If the player didn't make it into the high score list, print out
			// an appropriate
			// message
			else {
				print(130, yPrint, "Unfortunately, you didn't", 18,
						"Font/MenuFont.png");
				yPrint -= 30;
				print(130, yPrint, "make it to the high score table.", 18,
						"Font/MenuFont.png");
			}
		}
		// If the player didn't beat the minimum time, print out an appropriate
		// message as well
		else {
			print(130, 550, "Nice Try!", 28, "Font/MenuFont.png");
			print(130, yPrint, "You didn't beat the minimum", 18,
					"Font/MenuFont.png");
			yPrint -= 30;
			print(130, yPrint, "required time, and therefore", 18,
					"Font/MenuFont.png");
			yPrint -= 30;
			print(130, yPrint, "can't make any money...", 18,
					"Font/MenuFont.png");
			yPrint -= 50;
			print(130, yPrint, "Good Luck next time!", 18, "Font/MenuFont.png");
		}

		// Draw the correct continue button based on if the cursor is over it
		if (overContinueButton) {
			drawRec(continueButtonOverHandle, (int) continueButtonPosition.x,
					(int) continueButtonPosition.y, continueButton.getWidth(),
					continueButton.getHeight(), 1.0f);
		} else {
			drawRec(continueButtonHandle, (int) continueButtonPosition.x,
					(int) continueButtonPosition.y, continueButton.getWidth(),
					continueButton.getHeight(), 1.0f);
		}

		// Draw the high score table using the values imported
		// Note: when the user enters a high score, the table is updated
		// automatically
		// because the array values would be changed
		for (int highScore = 0; highScore < highScoreNames.length; highScore++) {
			print(700, 450 - highScore * 70, (highScore + 1) + ". "
					+ highScoreNames[highScore], 28, "Font/MenuFont.png");
			print(850, 450 - highScore * 70 - 30,
					Float.toString(highScores[highScore]), 28,
					"Font/MenuFont.png");
		}

		// Draw the cursor
		drawRec(cursorTextureHandle, cursorX,
				cursorY - cursorTexture.getHeight(), cursorTexture.getWidth(),
				cursorTexture.getHeight(), 1.0f);

		GL11.glPopAttrib();
	}