package vue;

import application.Main;
import controlleur.Connexion;
import controlleur.EvenementController;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import modele.Evenement;
import modele.User;

public class AfficheEvenement {
	//private static Evenement event;

	public static VBox NewAfficheEvenement(Stage primaryStage, User session) {
		
		VBox main = new VBox();
		main.setSpacing(20); // Espacement entre les éléments
		main.setStyle("-fx-padding: 20; -fx-alignment: center;"); // Ajout de marges autour et centrage du VBox
		
		HBox hBouton = new HBox();
		hBouton.setSpacing(10); // Espacement entre les boutons
		hBouton.setStyle("-fx-alignment: center;"); // Alignement des boutons au centre
		
		// Style gothique pour le nom de l'événement
		Label nomEvt = new Label(Connexion.event.getNom_evenement());
		nomEvt.setStyle("-fx-font-size: 32px; -fx-font-family: 'Times New Roman'; -fx-font-weight: bold; -fx-text-fill: #2F4F4F; -fx-effect: dropshadow(gaussian, rgba(0, 0, 0, 0.5), 10, 5, 2, 2);");
		nomEvt.setStyle("-fx-font-size: 32px; -fx-font-family: 'Garamond'; -fx-font-weight: bold; -fx-text-fill: #2F4F4F; -fx-effect: dropshadow(gaussian, rgba(0, 0, 0, 0.6), 15, 0.5, 0, 3);");
		
		// Style de la date et de la description
		Label dateEvt = new Label(Connexion.event.getData_evenement());
		dateEvt.setStyle("-fx-font-size: 16px; -fx-text-fill: #555555;"); // Style de la date de l'événement
		
		Label descEvt = new Label(Connexion.event.getDescritption_evenement());
		descEvt.setStyle("-fx-font-size: 14px; -fx-text-fill: #777777; -fx-wrap-text: true;");
		descEvt.setMaxWidth(400); // Limite la largeur de la description
		
		HBox hLabel = new HBox();
		hLabel.setSpacing(10);
		hLabel.getChildren().add(dateEvt);
		hLabel.getChildren().add(descEvt);
		hLabel.setStyle("-fx-alignment: center;"); // Alignement des labels au centre

		// Ajout des boutons dans le HBox avec style "dark fantasy" modeste
	    for (int i = 0; i < Connexion.eventC.getNbrEvt(); i++) {
	    	int j = i;
	    	Button btn = new Button(Connexion.eventC.getNom_event().get(i));
		    btn.setStyle("-fx-background-color: #1a1a1a; -fx-text-fill: #e6e6e6; -fx-font-size: 14px; -fx-padding: 10px 15px; -fx-border-radius: 5px; -fx-border-color: #444444; -fx-border-width: 1px;");
		    btn.setOnAction(e -> {
		    	Connexion.event = new Evenement(Connexion.eventC.getNom_event().get(j),
						Connexion.eventC.getNom_image().get(j),
						Connexion.eventC.getDesc_event().get(j),
						Connexion.eventC.getDate_event().get(j));
				
				AfficheAccueil.affiche(primaryStage, session);
			});
	        hBouton.getChildren().add(btn);
	      }

		// Image avec centrage et un peu plus de style sombre
		//Image imageAccueil = new Image("images/" + Connexion.event.getNom_image());
		Image imageAccueil = new Image(Main.class.getResource("/images/" + Connexion.event.getNom_image()).toExternalForm());
		ImageView iv1 = new ImageView();
		iv1.setImage(imageAccueil);
		iv1.setFitWidth(500);
		iv1.setPreserveRatio(true);
		iv1.setSmooth(true);
		iv1.setCache(true);
		iv1.setStyle("-fx-border-radius: 10px; -fx-effect: dropshadow(gaussian, rgba(0, 0, 0, 0.7), 15, 3, 2, 2);");

		// Centrer le nom et l'image dans un VBox intermédiaire
		VBox centeredContent = new VBox();
		centeredContent.setSpacing(10);
		centeredContent.setStyle("-fx-alignment: center;");
		centeredContent.getChildren().add(nomEvt);
		centeredContent.getChildren().add(iv1);

		// Ajout des éléments dans le VBox principal
		main.getChildren().add(centeredContent); // Ajout du nom et de l'image centrés
		main.getChildren().add(hBouton); // Ajout des boutons
		main.getChildren().add(hLabel); // Ajout de la date et description

		// Retourne le VBox stylisé
		return main;
	}
}
