package visualiser.Controllers;

import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.RadioButton;
import javafx.scene.image.Image;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;
import visualiser.app.App;

import java.io.IOException;
import java.net.URL;
import java.util.ResourceBundle;

/**
 * Controller for the opening title window.
 * Has two initial buttons for a user to decide how to play their game. Has a
 * burger-boat and comic sans styling to allure and entice users into playing
 * the game.
 */
public class TitleController extends Controller {
    @FXML
    Button btnJoin;
    @FXML
    AnchorPane titleWrapper;
    @FXML
    RadioButton dayModeRD;
    @FXML
    RadioButton nightModeRD;

    /**
     * Method called when the 'host a game' button is pressed.
     * Opens the next window allowing a user to host their own game.
     * Currently used to run the RaceVision mock.
     * @throws IOException if main has problems
     */
    public void hostAGame() throws IOException {
        titleWrapper.setVisible(false);
        parent.hostGame();
        App.getStage().setResizable(true);
    }

    /**
     * Switch the scene to the title page.
     */
    public void enterTitle(){
        titleWrapper.setVisible(true);
    }

    /**
     * To be implemented at a later date- will open the next scene displaying
     * games a player can join. Place holder method for now!
     */
    public void joinAGame() {
        titleWrapper.setVisible(false);
        parent.enterLobby();
        App.getStage().setResizable(true);
    }

    /**
     * Switches the css of the program to day mode theme
     */
    public void setDayMode(){
        dayModeRD.getScene().getStylesheets().clear();
        dayModeRD.getScene().getStylesheets().add("/css/dayMode.css");
        nightModeRD.setSelected(false);
    }

    /**
     * Switches the css of the program to night mode theme
     */
    public void setNightMode(){
        nightModeRD.getScene().getStylesheets().clear();
        nightModeRD.getScene().getStylesheets().add("/css/nightMode.css");
        dayModeRD.setSelected(false);
    }

    @Override
    public void initialize(URL location, ResourceBundle resources) {

    }
}
