<?php
###############################################
# ajout des catégories automatiquement 		  #
#											  #
# @author ethoreau							  #
#											  #
###############################################

include("../config.php3");
include($BIB."bib_generic.php3");

# constants
$ADD_CATEGORIES_PAGE = $ADMIN_URL. "add_categoriesPlus.php3";

$error = "";

# si aucune date n'a été entrée,on affiche la date actuelle dans les champs texte
$current_european_date = date("Y-m-d H:i:s", my_local_time());
$current_european_hour = date("H:i:s", time());
if (!isset($dateJournee))
	$dateJournee = $current_european_date;
if(!isset($heureShowTime))
	$heureShowTime = $current_european_hour;
if (!isset($heureEndTime))
	$heureEndTime = $current_european_hour;
?>

<html>
	<head></head>
	<link rel="stylesheet" href="admin.css">
	<body rightmargin=0>
	<div align=center class=trTitle>Gestion automatique des Catégories</div>
	<br>
	<form method=post action="<?php echo $ADD_CATEGORIES_PAGE ?>">
		<table>	
			<input type=hidden name="modif" value="1">
			<tr>
				<td>Container :</td>
				<td>
				<select name="ContainerId">
					<?php
					$squery = "SELECT * FROM Containers WHERE EndTime>'$current_european_date'";
					$containers = main_db_query($squery);
					//debug($squery);
					//asort($containers);
					while($container = db_fetch_array($containers))
					{
						if ($container[Id]==$ContainerId)
							echo "<option value=$container[Id] selected>".$container[Name];
						else
							echo "<option value=$container[Id]>".$container[Name];
						}
						echo "</select>";
					?>
				</td>
			</tr>
			<tr>
				<td> Nom  : </td>
				<td><input type=text name=nomCategorie value="<?php echo $nomCategorie; ?>"/></td>
			</tr>
			<tr>
				<td> Date et heure de la première journée : </td>
				<td><input type=text name=dateJournee value="<?php echo $dateJournee ?>"/>&nbsp;&nbsp; AAAA-MM-JJ HH:MM:SS</td>
			</tr>
			<tr>
				<td> Nombre de journées : </td>
				<td><input type=text name=nbJournees value="<?php echo $nbJournees ?>"/></td>
			</tr>
			<tr>
				<td> Intervalle entre chaque journée : </td>
				<td><input type=text name=interJournees value="<?php echo $interJournees ?>"/>&nbsp;&nbsp; jours</td>
			</tr>
			<tr>
				<td> Date d'affichage : </td>
				<td><input type=text name=interShowTime value="<?php echo $interShowTime ?>"/>&nbsp;&nbsp; jours &nbsp;&nbsp; (intervalle en jours d'affichage avant le début de la journée)</td>
			</tr>
			<tr>
				<td> Heure de la date d'affichage : </td>
				<td><input type=text name=heureShowTime value="<?php echo $heureShowTime ?>"/>&nbsp;&nbsp; HH:MM:SS</td>
			</tr>
			<tr>
				<td> Date limite : </td>
				<td><input type=text name=interEndTime value="<?php echo $interEndTime ?>"/>&nbsp;&nbsp; jours &nbsp;&nbsp; (intervalle en jours d'affichage après la fin de la journée)</td>
			</tr>
			<tr>
				<td> Heure de la date limite : </td>
				<td><input type=text name=heureEndTime value="<?php echo $heureEndTime ?>"/>&nbsp;&nbsp; HH:MM:SS</td>
			</tr>				
			<tr>
				<td>Image :</td>
				<td>
				<select name="Image">
					<?php
					# contenu du répertoire
					$iconesDir = "IconesCategories/";
					$fichiers = dir($GAME_DIR."Images/".$iconesDir);
					$i=0;
					while ($fichier=$fichiers->read())
					{
						if ($fichier!="." && $fichier!="..")
						{
							$liste[$i]=$fichier;
							$i++;
						}
					}
					$imax=$i;
					sort($liste);
					for ($i=0;$i<$imax;$i++)
					{
						echo "<option value=".$iconesDir.$liste[$i];
						if (($iconesDir.$liste[$i])==$Image)
							echo " selected";
							echo ">".$iconesDir.$liste[$i];
							echo "</option>";
					}
					?>
				</select>
				</td>
			</tr>
		</table>
		<br/><br/>
		<input type=submit name=submit value="Valider">&nbsp;&nbsp;&nbsp;
				
		<br/><br/><br/>	

		<table border=1>
			<tr class=trTitle>
				<td>Container</td>
				<td>Nom</td>			
				<td>Date d'affichage</td>
				<td>Date fermeture</td>
				<td>Image</td>
			</tr>	
		
	<?php
		switch($submit) {
		
			case "Valider":
				// on récupère le jour, le mois et l'année et les heures, minutes
				// et secondes de la date de la première journée
				$anJournee = substr($dateJournee, 0, 4);								
				$moisJournee = substr($dateJournee, 5, 2);
				$jourJournee = substr($dateJournee, 8, 2);					
				$heureJournee = substr($dateJournee, 11,2);
				$minuteJournee = substr($dateJournee, 14,2);
				$secondeJournee = substr($dateJournee, 17,2);
				
				// on récupere l'heure de la date d'affichage de la journée					
				$hourShowTime = substr($heureShowTime, 0,2);
				$minuteShowTime = substr($heureShowTime, 3,2);
				$secondeShowTime = substr($heureShowTime, 6,2);

				// on récupère l'heure de la date limite de la journée
				$hourEndTime = substr($heureEndTime, 0,2);
				$minuteEndTime = substr($heureEndTime, 3,2);
				$secondeEndTime = substr($heureEndTime, 6,2);
				
				// on stocke les heures d'affichage, limite et réelle des journées
				$nowTime = mktime($heureJournee, $minuteJournee, $secondeJournee);
				$showTime = mktime($hourShowTime, $minuteShowTime, $secondeShowTime);
				$endTime = mktime($hourEndTime, $minuteEndTime, $secondeEndTime);
				
				// on récupère tous les intervalles pour les convertir en secondes
				// cela nous permettra de les ajouter ou enlever à la date de la journée (aussi convertit en secondes)
				$incrementInterJournee = $interJournees*24*60*60;
				$incrementInterShowTime = $interShowTime*24*60*60;
				$incrementInterEndTime = $interEndTime*24*60*60;
				
				// initialisation de trois tableaux pour stocker les dates d'affichage, limite et 
				// réelle de la journée. Elles sont stcokées en secondes pour une manipulation plus facile
				// => tableau des dates réelles des journées
				$datesJournees = array();
				// => tableau des dates d'affichage des journées
				$datesShowTime = array();
				// => tableau ds dates limites des journées
				$datesEndTime = array();
				
				// initialisation du premier élément du tableau $datesJournees
				// => on stocke la date de la première journée
				$datesJournees[0] = mktime(0,0,0, $moisJournee, $jourJournee, $anJournee);
				
				// on remplit le tableau $datesJournees
				// la taille des trois tableaux est le nombre de journées entré par l'utilisateur.
				for($i=1; $i<$nbJournees; $i++) {
					// on commence à partir du deuxième élément du tableau
					// et chaque élément est égal à l'élément précédent + l'intervalle entre chaque journée.
					$datesJournees[$i] = $datesJournees[$i-1] + $incrementInterJournee;
				}
				
				// on remplit les tableaux pour les dates d'affichage et limite des journées
				for($j=0; $j<$nbJournees; $j++) {
					// pour les dates d'affichage des journées, on enlève l'intervalle de la 
					// date réelle de ja journée
					$datesShowTime[$j] = $datesJournees[$j] - $incrementInterShowTime;
					
					// pour les dates limites des journées, on ajoute l'intervalle à la date
					// réelle de la journée
					$datesEndTime[$j] = $datesJournees[$j] + $incrementInterEndTime;
				}
				
				// on récupère à l'aide d'une requete, le nom du container correspondant à l'id choisi dans la liste 
				// déroulante pour pouvoir l'afficher
				$query = "SELECT name FROM Containers WHERE Id = '".$ContainerId."'";
				$container = db_fetch_array(main_db_query($query));
				$containerName = $container['name'];

				// une fois qu'on a cliqué sur "Valider", toutes les dates sont affichées dans un tableau
				// chaque cellule sera une zone de texte modifiable.
				// le nom de chaque journée est pré rempli : Journée X, X étant le numéro de la journée
				// ce nom pourra être changé ou complété.
				for($j=0; $j<$nbJournees; $j++) {				
					echo "<td><input type=text disabled name=Container".($j+1)." value=\"".$containerName."\"/></td>";
					echo "<td><input type=text name=Name".($j+1)." value=\"".$nomCategorie."\"/></td>";
					echo "<td><input type=text name=ShowTime".($j+1)." value=\"".date("Y-m-d",$datesShowTime[$j])." ".date("H:i:s", $showTime)."\"></td>";
					//echo "<td><input type=text name=DateJournee".($j+1)." value=\"".date("Y-m-d",$datesJournees[$j])." ".date("H:i:s", $nowTime)."\"></td>";
					echo "<td><input type=text name=EndTime".($j+1)." value=\"". date("Y-m-d",$datesEndTime[$j])." ".date("H:i:s", $endTime)."\"></td>";
					echo "<td align=center><img alt=\"".$Image."\" src='".$IMAGES_DIR.$Image."'></td>";
					echo "</tr>";
				}
				echo "</table><br/>";
				
				echo "<input type=submit name=submit value=\"Enregistrer\"/><br>";
			break;
			
			case "Enregistrer":
				// on insert les différentes journées dans la base de données
				for($l=0; $l<$nbJournees; $l++) {				
					main_db_query("INSERT INTO Categories (Category,Container,Name,EndTime,ShowTime, Image)
							 VALUES ('0','".$ContainerId."', '".$_POST['Name'.($l+1)]."','".$_POST['EndTime'.($l+1)]."', '".$_POST['ShowTime'.($l+1)]."', '".$Image."')");		
				}				
			break;			
		}
		?>
	</form>
	</body>
</html>