package catalogue;

import java.util.Scanner;

public class Catalogue {
	private int NbAutomobiles = 5;
	private int NbScooters = 5;
	private int NbJetski = 3;
	private Automobile [] LesAutomobiles = new Automobile[NbAutomobiles];
	private Scooter [] LesScooters = new Scooter[NbScooters];
	private Jetski[] LesJetski = new Jetski [NbJetski];
	
	
	public void RemplissageCatalogue() {
		Vehicule FabriqueVehiculeElectrique = new VehiculeElectrique();
		Vehicule FabriqueVehiculeEssence = new VehiculeEssence();
		Vehicule FabriqueVehiculeHybride = new VehiculeHybride();
		
		LesAutomobiles[0] = FabriqueVehiculeEssence.CreerAutomobile("van", "jaune", 600, 3200.0,1500);
		LesAutomobiles[1] = FabriqueVehiculeElectrique.CreerAutomobile("suv", "rouge", 140, 1600.0,2800);
		LesAutomobiles[2] = FabriqueVehiculeElectrique.CreerAutomobile("coupe", "rouge", 300, 1000.0,3500);
		LesAutomobiles[3] = FabriqueVehiculeEssence.CreerAutomobile("suv", "noir", 200, 1200,4200);
		LesAutomobiles[4] = FabriqueVehiculeHybride.CreerAutomobile("coupe", "vert", 500, 2500,4800);

		LesScooters[0] = FabriqueVehiculeElectrique.CreerScooter("2roues", "noir", 20, 800);
		LesScooters[1] = FabriqueVehiculeElectrique.CreerScooter("3roues", "jaune", 30, 2000);
		LesScooters[2] = FabriqueVehiculeEssence.CreerScooter("2roues", "bleu", 15,1100);
		LesScooters[3] = FabriqueVehiculeHybride.CreerScooter("3roues", "rouge", 35,750);
		LesScooters[4] = FabriqueVehiculeHybride.CreerScooter("2roues", "vert", 20,560);
		
		LesJetski[0] = FabriqueVehiculeEssence.CreerJetski("recreation", "blanc", 800, 700,7500);
		LesJetski[1] = FabriqueVehiculeElectrique.CreerJetski("two sport", "jaune", 1000, 900,6000);
		LesJetski[2] = FabriqueVehiculeHybride.CreerJetski("two sport", "blanc", 950, 600,5800);

	}
	
	
	
	public String AfficherElementsCatalogue(int Index) {
		
		String DescriprionDuVehicule;
		if (Index<NbAutomobiles) {
			DescriprionDuVehicule = LesAutomobiles[Index].AfficheVehicule();
			System.out.println("\n");
		}else if (NbAutomobiles < Index && Index < NbScooters) {
			DescriprionDuVehicule = LesScooters[Index - NbAutomobiles].AfficheVehicule();
			System.out.println("\n");
		}else {
			DescriprionDuVehicule = LesJetski[Index - NbScooters].AfficheVehicule();
			System.out.println("\n");
		}
		return DescriprionDuVehicule;
	}
	
	public String ChoixDuVehicule (Scanner s) {
		int idVehicule;
		String DescriptionDuVehicule;
		System.out.println("--------CHOIX DU VEHICULE--------");
		
		do {
			System.out.print("Numero du vehicule: ");
			idVehicule = s.nextInt();
		}while((idVehicule < 1)||(idVehicule > 13));
		System.out.println("\n Vous avez choisi le vehicule ci-dessous: ");
		
		DescriptionDuVehicule = AfficherElementsCatalogue(idVehicule-1); 
		return DescriptionDuVehicule;
	}
	
	
	
	public String NavigationDansCatalogue(Scanner s) {
		char c;
		String DescriptionDuVechicule;
		int i;
		
		int Index = 0;
		LesAutomobiles[0].AfficheVehicule();
		
		do {
			System.out.println("'a' : Afficher le catalogue");
			System.out.println("'s' : Afficher véhicule suivant");
			System.out.println("'p' : Afficher véhicule précédent");
			System.out.println("'c' : Selectionnez un vehicule");
			System.out.println("'f' : Fermer le catalogue");
			System.out.println("Votre choix : ");
			c = s.next().charAt(0);
			
			
			if(c == 'c') {
				DescriptionDuVechicule = ChoixDuVehicule(s);
				return DescriptionDuVechicule;
			}
			else if (c == 'a') {
				for(i=0; (i<NbAutomobiles);i=i+1) {
					LesAutomobiles[i].AfficheVehicule();
				}
				for(i=0;(i<NbScooters); i=i+1) {
					LesScooters[i].AfficheVehicule();
				}
				for(i=0;(i<NbJetski); i=i+1) {
					LesJetski[i].AfficheVehicule();
				}
				Index = 0;
			}
			else if (c == 's') {
				if (Index<NbAutomobiles + NbScooters + NbJetski - 1) {
					Index = Index + 1;
					DescriptionDuVechicule = AfficherElementsCatalogue(Index);
					
				}else {
					System.out.println("Aucun Suivant");
					System.out.println("\n");
				}
			}
			else if (c == 'p') {
				if (Index>0) {
					Index = Index - 1;
					DescriptionDuVechicule = AfficherElementsCatalogue(Index);
					
				}
				else {
					System.out.println("Aucun précédent");
					System.out.println("\n");
				}
			}
			else if (c == 'f') {
				System.out.println("Merci de votre visite !");
			}
		}while(c != 'f');
		System.out.println("Fermeture du Catalogue !! ");
		return "" ;
	}
}

