<?php

/***********************************/
/* Classe des couleurs exactes des pions (images fournies) pour les assigner au joueur 
/* pour qu'il sache quelle couleur de pion il a
/***********************************/
class CouleurPion
{
	public $couleurs = [
		'4472c4',
		'92d050',
		'eb93e0',
		'ed7d31',
		'ffd966',
		'00fe00',
		'00fff8',
		'ff0000'
	];
}

/***********************************/
/* Pour la création de la partie, fonction permettant de choisir les cartes du plateau */
/***********************************/
function champs_cartes($nom, $titre)
{

	$nbCartes = 1;

	if (isset($_POST[$nom])) {
		$nbCartes = (int) $_POST[$nom];
	}

	echo '<select id="' . $nom . '" name="' . $nom . '">';
	for ($i = 1; $i <= 5; $i++) {
		echo '<option value="' . $i . '"';
		if ($i == $nbCartes) {
			echo ' selected';
		}
		echo '>' . $i . '</option>';
	}
	echo '</select>';

	echo '<label for="' . $nom . '">' . $titre . '</label><br/>';

	if (isset($_POST[$nom])) {
		return (int) $_POST[$nom];
	}

	return (int) 0;
}

/***********************************/
/* Formulaire de saisie des cartes du plateau */
/***********************************/
function afficher_formulaire()
{
	$total = 0;

	echo '<form class="formulaire_partie" method="post" action="#">';

	$total += champs_cartes('nbCartesVertes', '    Nombre de cartes vertes');
	$total += champs_cartes('nbCartesOranges', '    Nombre de cartes oranges');
	$total += champs_cartes('nbCartesNoires', '    Nombre de cartes noires');


	if ($total > 0) {
		echo '<div>Total : ' . $total . '</div>';
		if ($total > 10) {
			echo '<div> Trop de cartes !!!!!!</div>';
		} else {
			echo '<input type="submit" name="creerPartie" value="Créer une partie" />';
		}
	}

	echo '<input type="submit" name="validerCartes" value="Valider le nombre de cartes" />';
	echo '</form>';
}

/***********************************/
/* Afficher les joueurs lors de la création de la partie avec leur nom en couleur en adéquation
/* avec la couleur de leur pion
/***********************************/
function afficher_joueurs(int $idpartie)
{
	$joueurs = getJoueursPartie($idpartie);
	echo '<div class="joueurs">';
	echo '<p>Joueurs : </p>';
	for ($i = 0; $i < count($joueurs); $i++) {
		$joueur = $joueurs[$i];
		$couleur_hex = (new CouleurPion())->couleurs[$i];
		echo '<p style="color:#' . $couleur_hex . ';">' . $joueur['pseudo'] . " (" . $joueur['prenom'] . " " . $joueur['nom'] . ')</p>';
	}
	echo '</div>';
}

/***********************************/
/* Formulaire d'ajouts de joueurs lors de la création d'une partie, il ne faut pas sélectionner deux fois le même joueur 
/* Pas plus de 8 joueurs par partie
/***********************************/
function formulaire_ajout_joueurs(int $idpartie)
{
	$joueursPartie = getJoueursPartie($idpartie);
	if (sizeof($joueursPartie) >= 8) {
		return;
	}
	$joueurs = getJoueurs();
	echo '<form class="ajouter_joueurs_partie" method="post" action="#">';
	echo '<select id="joueurs" name="joueur">';
	foreach ($joueurs as $joueur) {
		echo '<option value="' . $joueur['idjoueur'] . '">';
		echo $joueur['pseudo'] . " (" . $joueur['prenom'] . " " . $joueur['nom'] . ')</option>';
	}
	echo '</select>';
	echo '<input type="submit" name="ajouterJoueur" value="Ajouter un joueur" />';
	echo '<input type="hidden" name="idpartie" value="' . $idpartie . '" />';
	echo '</form>';
}

/***********************************/
/* Formulaire permettant d'exclure un joueur lors de la création d'une partie */
/***********************************/
function formulaire_suppression_joueurs(int $idpartie)
{
	$joueurs = getJoueursPartie($idpartie);
	if (empty($joueurs))
		return;
	echo '<form class="enlever_joueurs_partie" method="post" action="#">';
	echo '<select id="joueurs" name="joueur">';
	foreach ($joueurs as $joueur) {
		echo '<option value="' . $joueur['idjoueur'] . '">';
		echo $joueur['pseudo'] . " (" . $joueur['prenom'] . " " . $joueur['nom'] . ')</option>';
	}
	echo '</select>';
	echo '<input type="submit" name="enleverJoueur" value="Enlever un joueur" />';
	echo '<input type="hidden" name="idpartie" value="' . $idpartie . '" />';
	echo '</form>';
}

/***********************************/
/* Formulaire pour choisir la stratégie de la partie */
/***********************************/
function formulaire_ordre_joueurs(int $idpartie)
{
	echo '<form class="enlever_joueurs_partie" method="post" action="#">';
	echo '<select id="ordre" name="ordre">';
	echo '<option value="aleatoire">Aléatoire</option>';
	echo '<option value="honneurJeune">Honneur au plus jeune</option>';
	echo '<option value="honneurNul">Honneur au moins expériementé</option>';
	echo '</select>';
	if (sizeof(getJoueursPartie($idpartie)) >= 2) {
		echo '<input type="submit" name="validerOrdre" value="Mettre en place la partie" />';
	}
	echo '<input type="hidden" name="idpartie" value="' . $idpartie . '" />';
	echo '</form>';
}

?>


<div class="panneau_details_3">

	<h2>Créer une partie</h2>

	<?php
	if (isset($_POST['creerPartie'])) {
		$total = (int) $_POST['nbCartesVertes'] + (int) $_POST['nbCartesOranges'] + (int) $_POST['nbCartesNoires'];
		if ($total <= 10) {
			$idpartie = creerPartie($_POST['nbCartesVertes'], $_POST['nbCartesOranges'], $_POST['nbCartesNoires']);
			if ($idpartie === false) {
				echo "<div>Erreur lors de la création de la partie. Veuillez contacter l'administrateur</div>";
			} else {
				echo '<div>Partie créée ! ID : ' . $idpartie . '</div>';
				formulaire_ajout_joueurs($idpartie);
			}
		} else {
			afficher_formulaire();
		}
	} else if (isset($_POST['ajouterJoueur'])) {
		$idpartie = (int) $_POST['idpartie'];
		ajouter_joueur($idpartie, $_POST['joueur']);
		afficher_joueurs($idpartie);
		formulaire_ajout_joueurs($idpartie);
		formulaire_suppression_joueurs($idpartie);
		formulaire_ordre_joueurs($idpartie);
	} else if (isset($_POST['enleverJoueur'])) {
		$idpartie = (int) $_POST['idpartie'];
		enlever_joueur($idpartie, $_POST['joueur']);
		afficher_joueurs($idpartie);
		formulaire_ajout_joueurs($idpartie);
		formulaire_suppression_joueurs($idpartie);
		formulaire_ordre_joueurs($idpartie);
	} else if (isset($_POST['validerOrdre'])) {
		$idpartie = (int) $_POST['idpartie'];
		valider_partie($_POST['idpartie'], $_POST['ordre']);

		echo '<h1>Partie n°' . $idpartie . ' prête à être jouée</h1>';
		echo '<div id="demotext">';
		echo '<h2> Cliquer sur le lien ci-dessous pour jouer la partie !</h2>';
		echo '</div>';
		echo '<a href="index.php?page=jouerPartie&idpartie=' . $idpartie . '">Partie n°' . $idpartie . '</a>';

	} else {
		afficher_formulaire();
	}
	?>


</div>