import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
import java.awt.geom.*;
import java.awt.image.*;
import java.awt.Graphics;
import javax.imageio.*;



public class FenetreMenu extends JPanel implements ActionListener   {

	private final int LARGEUR_FENETRE ;
	private final int HAUTEUR_FENETRE ;
	Timer timer;
	private BufferedImage fond;
	private BufferedImage bouton_new_game ;
	private BufferedImage bouton_exit ;
	private int position_curseur = 0 ;
	static Clavier clavier  ;	
	boolean show = true ; 
	Jeu jeu ;
	
	public FenetreMenu(int LARGEUR_FENETRE, int HAUTEUR_FENETRE,Clavier clavier,Jeu jeu){
		
		this.jeu=jeu;
		this.clavier=clavier;
		setSize(LARGEUR_FENETRE,HAUTEUR_FENETRE);

		
		this.HAUTEUR_FENETRE = HAUTEUR_FENETRE;
		this.LARGEUR_FENETRE = LARGEUR_FENETRE;
		
		//Chargement des images
		fond = ImageLoader.ImgLoader("fond.gif");
		bouton_new_game = ImageLoader.ImgLoader("start.gif");
		bouton_exit = ImageLoader.ImgLoader("exit.gif");
		
		
		
		timer = new Timer((int)(1.0/60.0)*1000,this);
		timer.start();	
		
	}
	// dessine les image de bouton et grise le bouton non sélectionné
	public void paint(Graphics g){
		
		g.drawImage(fond,0,0,1800,1000,this);
		g.drawImage(bouton_new_game,(LARGEUR_FENETRE-600)/2,(HAUTEUR_FENETRE-200)/2,600,200,this);
		g.drawImage(bouton_exit,(LARGEUR_FENETRE-600)/2,(HAUTEUR_FENETRE-200)/2+300,600,200,this);
		
		if(position_curseur==0){
			g.setColor(new Color(100,100,100,127));
			g.fillRoundRect((LARGEUR_FENETRE-600)/2,(HAUTEUR_FENETRE-200)/2+300,600,200,10,10);
			g.drawImage(ImageLoader.ImgLoader("curseur.gif"),(LARGEUR_FENETRE-600)/2 - 100,(HAUTEUR_FENETRE-200)/2,100,200,this);
		}
		if(position_curseur==1){
			g.setColor(new Color(100,100,100,127));
			g.fillRoundRect((LARGEUR_FENETRE-600)/2,(HAUTEUR_FENETRE-200)/2,600,200,10,10);
			g.drawImage(ImageLoader.ImgLoader("curseur.gif"),(LARGEUR_FENETRE-600)/2 - 100,(HAUTEUR_FENETRE-200)/2+300,100,200,this);
		}
		
		
		
	}
	//Gère la position du curseur, le lancement ou sortie du jeu
	public void actionPerformed(ActionEvent e) {
		clavier.tick();
		if(show){
			if(clavier.up){
				if(position_curseur>0){
					position_curseur--;
				}
			}
			
			if(clavier.down){
				if(position_curseur<1){
					position_curseur++;
				}
			}	
			
			if(clavier.enter && position_curseur==0){
				jeu.fenetre_JEU.show=true;
				this.show=false;
			}
			
			if(clavier.enter && position_curseur==1){
				System.exit(0);
			}
			
			if(!this.show){
				timer.stop();
			}
			if(this.show){
				timer.start();
			}
			
			
			addKeyListener(clavier);
			repaint();	
		}
	}
	
		  
}

