<?php
/*
 * Fonctions de g&eacute;n&eacute;ration de message d'erreur pour utilisateur (et le debuggueur !)
 */
// Fonction retournant un message d'erreur correspondant &agrave; une erreur mysql
function mysql_generate_errmsg()
{
	if ( isset($_REQUEST['debug']) )
	{
		return 'Erreur SQL num&eacute;ro ' . mysql_errno() . ' : ' . mysql_error();
	}else{
		return 'Une erreur de base de donn&eacute;es s\'est produite, veuillez r&eacute;essayer ult&eacute;rieurement.';
	}
}

// Fonction retournant un message d'erreur correspondant &agrave; un numero d'erreur de pop3_auth(...)
function pop3_generate_errmsg($errno)
{
	require_once 'auth.inc.php';

	if ( isset($_REQUEST['debug']) )
	{
		$msg = 'Erreur authentification POP3 de code ' . $errno;
	}else{
		switch ($errno)
		{
			case ERR_POP3_AUTH_BADUSER :
			case ERR_POP3_AUTH_BADPASS :
				$msg = 'Authentification rejet&eacute;e : V&eacute;rifiez votre identifiant et saisissez votre mot de passe &agrave; nouveau';
			break;
			case ERR_BAD_PARAMS :
				$msg = 'Adresse email invalide, ou serveur mail non r&eacute;pertori&eacute;';
			break;
			default :
				$msg = 'Une erreur de communication avec le service d\'authentification s\'est produite,' .
				'veuillez r&eacute;essayer ult&eacute;rieurement.';
			break;
		}
	}
	return $msg;
}

/*
 * G&eacute;n&eacute;ration du code html d'une case du tableau crois&eacute; Cr&eacute;neau/Presonnes ayant comme personne $idP,
 * comme cr&eacute;neau $idC. Si $idEditable est vrai je pourrai cliquer sur le bouton
 * pour donner ma disponibilit&eacute;. $estDispo peut-&ecirc;tre 'oui', 'non', ou '' et signifie que la personne a d&eacute;j&agrave; r&eacute;pondu 'oui', non'
 * ou n'a pas encore r&eacute;pondu.
 */
// G&eacute;n&eacute;ration d'une case
function generate_html_dispo_case($idR, $idP, $idC, $isEditable, $estDispo, $withTD=false, $class='')
{
	// Alignement html
	require_once('html_elements.inc.php');
	if ( ! $isEditable )
	{
		if ( $withTD ) { echo "			<td $class>\n				"; }
		// Cas g&eacute;n&eacute;ral, on n'est pas la personne concern&eacute;e
		if ( ! isset($estDispo) || $estDispo == '' ) 
		{	// Dispo Inconnue (icone ?)
			generate_html_dispo_inconnu($idP, $idC);
		}
		else
		{
			if ( $estDispo == 'oui' )
			{	// Disponible
				generate_html_dispo_oui($idP, $idC);
			}else
			{	// Non Disponible
				generate_html_dispo_non($idP, $idC);
			}
		}
	}
	else
	{
		if ( $withTD ) { echo "			<td id=\"dispo_idC${idC}\" $class>\n				"; }
		// On est la personne concern&eacute;e, on peut donc choisir le cr&eacute;neau
		if ( ! isset($estDispo) || $estDispo == '' )
		{	// Dispo Inconnue
			generate_html_dispo_dire_oui($idR, $idC);
			//~ echo '			&nbsp;&nbsp;';
			generate_html_dispo_dire_non($idR, $idC);
		}
		else
		{
			if ( $estDispo == 'oui' )
			{	// Disponible
				generate_html_dispo_oui($idP, $idC);
				//~ echo '				&nbsp;&nbsp;'."\n				";
				generate_html_dispo_dire_non($idR, $idC);
			}else
			{
				// Non Disponible
				generate_html_dispo_dire_oui($idR, $idC);
				//~ echo '				&nbsp;&nbsp;'."\n				";
				generate_html_dispo_non($idP, $idC);
			}
		}
	}
	if ( $withTD ) { echo "			</td>\n"; }
}

// G&eacute;n&eacute;ration du tableau complet
// TODO : id&eacute;e : class du tableau diff&eacute;rnete quand annul&eacute;e -> tableau gris&eacute;...

function generate_html_array_personnes_crenaux($idR)
{
	$idP_Self=$_SESSION['session_idP'];
	
	// Connexion &agrave; la base et s&eacute;lection de la database
	require_once 'include/connect.inc.php';

	// R&eacute;cup&eacute;ration des param&egrave;tres de la r&eacute;union...
	$montrerDispoR=$estAnnulee=$is_admin=$estFixee=false;
	$idP_orga=null;
	$query="SELECT r.montrerDispoR, r.estAnnulee, r.idP_Orga, r.idC_Fixe, r.idL FROM AWOR_Reunion r WHERE r.idR='$idR'";
	$result = @mysql_query($query);
	if ( $result && ( mysql_num_rows($result) === 1 ) )
	{
		list($montrerDispoR, $estAnnulee, $idP_orga, $idC_Fixe, $idL_interne) = mysql_fetch_row($result); 
		$is_admin = ( $idP_Self == $idP_orga );
		$montrerDispoR = ( ( $montrerDispoR === 'oui' ) || $is_admin ) ;
		//echo "DEBUG : annul&eacute;e $estAnnulee\n";
		$estAnnulee = ( $estAnnulee == 'oui' );
		$estFixee = ( $idC_Fixe != null);
	}
	else
	{
		return "Impossible d'afficher le tableau de la r�union : Erreur de base de donn�e\n";
	}
	// DEBUG : tests en for�ant les variables
	//$estAnnulee=true;
	
	//~ echo "DEBUG : \nmontrerDispoR==$montrerDispoR\nestAnnulee==$estAnnulee\nestFixee==$estFixee\nis_admin==$is_admin\n";
?>
<form id="formmail" action="sendmail.php" method="post">
	<table class="details" summary="Disponibilit&eacute; des personnes pour chaque cr&eacute;neau possible de la r&eacute;union">
		<thead>
		<tr>
<?php
	if ( $is_admin )
	{ 
		echo '			<th>Mail</th>' . "\n";
	}
	echo '			<th>' ."\n";
	if ( $is_admin )
	{ 
		echo '				<a href="#poppersonne" onclick="loadid(\'poppersonne.php?idR=' . $idR;
		echo '&amp;idL=' . $idL_interne . '&amp;idP_orga=' . $idP_orga . '\',\'poppersonne\',true);popon(\'poppersonne\');loadid(\'help/reunion_admin_participants.php.hlp\',\'help\',false)">' . "\n";
		echo '					<img src="images/addP.gif" alt="Ajouter une personne" title="Ajouter une personne" height="17" width="19" />' . "\n";
		echo '				</a>&nbsp;';
	}
	echo 'Personnes' . "\n";
	echo '			</th>' . "\n";

	// Remplissage des ent&ecirc;tes de colonnes (cr&eacute;neaux)
	$query="SELECT idC, UNIX_TIMESTAMP(dateHeure), duree FROM AWOR_Creneau WHERE idR='$idR' ORDER BY dateHeure ASC;";
	$creneaux=array();
	$dispos=array();
	if ( $result = @mysql_query($query) )
	{
		while ( list($idC, $date_deb, $duree) = mysql_fetch_row($result) )
		{
			// Calcul des dates
			//echo $date_deb . "\n";
			$date_fin = $date_deb + 60 * $duree;
			if ( $idC != $idC_Fixe ) { echo '			<th>'; } else  { echo '			<th class="selected">'; }
			if ( $is_admin && ! $estFixee && ! $estAnnulee )
			{
				echo '<a href="#popfixer" onclick="loadid(\'popfixer.php?idC=' . $idC;
				echo '&amp;idR=' . $idR . '\',\'popfixer\',true);popon(\'popfixer\');">';
			}
			echo date('d/m/y', $date_deb) . '<br />' . date('H:i', $date_deb)  . ' - ' . date('H:i', $date_fin);
			if ( $is_admin && ! $estFixee && ! $estAnnulee ) { echo '</a>'; }
			echo "</th>\n";
			
			// Comptage des personnes disponibles et indisponibles
			$creneaux[] = $idC;
			$dispos[$idC]['nbDispo']=0;
			$dispos[$idC]['nbNonDispo']=0;
			$dispo_max_id=-1;
			$dispo_max_val=0;
		}
	}
	if ( $is_admin && ! $estFixee && ! $estAnnulee )
	{
?>
			<th>
				<a href="#popcreneau" onclick="loadid('popcreneau.php?idR=<?php echo $idR; ?>','popcreneau',true);popon('popcreneau');loadid('help/reunion_admin_creneaux.php.hlp','help',false)">
					<img src="./images/editCreneau2.gif" alt="Editer les creneaux" title="Editer les creneaux" height="21" width="22" />
				</a>
			</th>
<?php
	}
	//print_r($creneaux);
?>
		</tr>
		</thead>
		<tbody>
<?php
	// Remplissage du tableau, ligne &agrave; ligne
	// Requette &eacute;crivant les disponibilit&eacute;s dans un tableau associatif en une seule fois
	if ( $montrerDispoR )
	{
		$query='SELECT ch.idC, ch.idP, ch.estDispo FROM AWOR_Choisir ch, AWOR_Creneau c, AWOR_Personne p, AWOR_Appartenir a, AWOR_Reunion r WHERE '
			."c.idR=$idR AND r.idR=$idR AND a.idL=r.idL AND p.idP=a.idP AND ch.idC = c.idC AND ch.idP = p.idP;";
	}
	else
	{
		$query='SELECT ch.idC, ch.idP, ch.estDispo FROM AWOR_Choisir ch, AWOR_Creneau c WHERE '
			."c.idR='$idR' AND ch.idC=c.idC AND ch.idP='$idP_Self';";
	}
	//echo $query . "\n";
	if ( $result = @mysql_query($query) )
	{
		while ( list($idC, $idP, $estDispo) = mysql_fetch_row($result) )
		{
			//echo "idC == '$idC'\n";
			$dispos[$idC][$idP]=$estDispo;
			if ( $estDispo=='non' ) { $dispos[$idC]['nbNonDispo']++; }
			if ( $estDispo=='oui' )
			{
				$dispos[$idC]['nbDispo']++;
				if ( $dispos[$idC]['nbDispo'] > $dispo_max_val )
				{
					$dispo_max_id=$idC;
					$dispo_max_val=$dispos[$idC]['nbDispo'];
				}
			}
		}
	}
	//print_r($dispos);
	

	$query='SELECT p.idP, p.prenomP, p.nomP FROM AWOR_Personne p, AWOR_Appartenir a, AWOR_Reunion r WHERE '
		. "r.idR='$idR' AND a.idL=r.idL AND p.idP=a.idP ORDER BY p.nomP, p.prenomP;";
	
	if ( $result = @mysql_query($query) ) 
	{
		// On &eacute;crit ligne &agrave; ligne les personnes et les disponibilit&eacute;s
		while ( $p = mysql_fetch_array($result) )	// Boucle sur chaque personne
		{
			echo "		<tr>\n";
			// Colonne de checkbox pour envoi email si $is_admin == true
			if  ( $is_admin ) { echo '			<td><input name="mail_idP' . $p[0] . '" type="checkbox" checked="checked" /></td>' . "\n"; }
			// Nom pr&eacute;nom
			echo '				<td>' . htmlentities($p[1], ENT_QUOTES) . ' ' . htmlentities($p[2], ENT_QUOTES) . "</td>\n";
			// Disponibilit&eacute;s
			foreach ( $creneaux as $c_id )	// Pour chaque cr&eacute;neau
			{
				if (isset($dispos[$c_id][$p[0]]))
				{
					$estDispo=$dispos[$c_id][$p[0]];
				}
				else
				{
					$estDispo='';
				}
				//echo "DEBUG : generate_html_dispo_case($p[0], $c_id, ( $p[0]==$idP_Self ), $estDispo);\n";
				if ( $c_id != $idC_Fixe ) { $class=''; } else  { $class='class="selected"'; }
				
				generate_html_dispo_case($idR, $p[0], $c_id, ( ! $estFixee && ! $estAnnulee && ( $p[0]==$idP_Self ) ),$estDispo, true, $class);
			}
			// Colonne vide pour l'ajout de personnes
			if  ( $is_admin && ! $estFixee && ! $estAnnulee ) { echo "			<td>&nbsp;</td>\n"; }
			echo "		</tr>\n";
		}
		// Si $is_admin, on met une ligne avec bouton envoyer pour les mails et ic�ne ajout de personnes
		if  ( $is_admin )
		{
				echo "		<tr>\n			<td>\n";
				echo '				<input name="idR" value="' . $idR . '" type="hidden" />' . "\n";
?>
				<input value="Envoyer" type="submit" />
			</td>
			<td>
				<?php
					echo '<a href="#poppersonne" onclick="loadid(\'poppersonne.php?idR=' . $idR;
					echo '&amp;idL=' . $idL_interne . '&amp;idP_orga=' . $idP_orga . '\',\'poppersonne\',true);popon(\'poppersonne\');loadid(\'help/reunion_admin_participants.php.hlp\',\'help\',false)">' . "\n";
				?>
					<img src="images/addP.gif" alt="Ajouter une personne" title="Ajouter une personne" height="17" width="19" />
				</a>
			</td>
<?php
			foreach ( $creneaux as $c ) { echo "			<td>&nbsp;</td>\n"; }
			if ( $is_admin && ! $estFixee && ! $estAnnulee ) { echo "			<td>&nbsp;</td>\n"; }
			echo "		</tr>\n";
		}

		// On inscrit les lignes de totaux si les disponibilit&eacute;s sont r&eacute;v&eacute;l&eacute;es
		if ( $is_admin  && ! $estFixee && ! $estAnnulee)
		{
			echo "		<tr>\n";
			echo "			<td>&nbsp;</td>\n";
			echo "			<td>Personnes pr&eacute;sentes</td>\n";
			foreach ( $creneaux as $c_id )
			{
				if ( $c_id == $dispo_max_id )
				{
					echo '			<td><em>' . $dispos[$c_id]['nbDispo'] . "</em></td>\n";
				}
				else
				{
					echo '			<td>' . $dispos[$c_id]['nbDispo'] . "</td>\n";
				}
			}
			echo "			<td>&nbsp;</td>\n";
			echo "		</tr>\n";
			
			echo "		<tr>\n";
			echo "			<td>&nbsp;</td>\n";
			echo "			<td>Personnes absentes</td>\n";
			foreach ( $creneaux as $c_id )
			{
				echo '			<td>' . $dispos[$c_id]['nbNonDispo'] . "</td>\n";
			}
			echo "			<td>&nbsp;</td>\n";
			echo "		</tr>\n";
		}
	}
	echo "		</tbody>\n";
	echo "	</table>\n</form>\n";
}

function traiter_formulaire_fixer_creneau()
{
	if ( ! isset($_GET['idR']) || !isset($_GET['idC']) )
	{
		$errmsg="Impossible de fixer la r&eacute;union : param&egrave;tres manquants ou erron&eacute;";
		return $errmsg;
	}
	$idR=addslashes($_GET['idR']);
	$idC=addslashes($_GET['idC']);
	
	$query="UPDATE AWOR_Reunion SET idC_Fixe=$idC WHERE idR=$idR;";
	if ( ! mysql_query($query) || mysql_affected_rows() != 1 )
	{
		$errmsg='Impossible de fixer la r&eacute;union : ' . mysql_generate_errmsg();
		return $errmsg;
	}
	return;
}

function traiter_formulaire_creer_reunion()
{
	include_once('include/je.inc.php');
	$idP=$_SESSION['session_idP'];

	// Recherche d'une r&eacute;union vierge d&eacute;j&agrave; existante
	$query='SELECT idR FROM AWOR_Reunion WHERE idP_Orga=' . "('$idP') AND objetR='Renseignez';";
	if ( ( $result = mysql_query($query) ) && (mysql_num_rows($result) > 0) )
	{
		list($idR)=mysql_fetch_array($result);
	}
	else
	{
		// Cr&eacute;ation de la R&eacute;union sauf si une r&eacute;union vierge existe d&eacute;j&agrave;
		$query='INSERT INTO AWOR_Reunion(idP_Orga, objetR) VALUES' . "('$idP', 'Renseignez');";
		if ( ! $result = @mysql_query($query) || (mysql_affected_rows() != 1) )
		{
			// Cas d'erreur
			$errmsg ='Erreur lors de la cr&eacute;ation de la liste de participants : ' . mysql_generate_errmsg();
			return $errmsg;
		}
		$idR=mysql_insert_id();
	
		// Cr&eacute;ation de la Liste des participants
		if ( ! $idL=list_new("interne_idR_$idR","NULL",true) )
		{
			$errmsg ='Erreur lors de la cr&eacute;ation de la liste de participants : Erreur de base de donn&eacute;es';
			return $errmsg;	
		}
		
			$query="UPDATE AWOR_Reunion SET idL='$idL' WHERE idR='$idR'";
		if ( ! $result = @mysql_query($query) || (mysql_affected_rows() != 1) )
		{
			// Cas d'erreur
			$errmsg = 'Erreur lors de la cr&eacute;ation de la liste de participants : ' . mysql_generate_errmsg();
			return $errmsg;
		}
	}

	return (int) $idR;
}

function traiter_formulaire_modif_detail_reunion()
{
	require_once('include/tools.inc.php');
	if ( ! isset($_REQUEST['idR']) || !isset($_POST['objetR']) || !isset($_POST['lieuR']) || !isset($_POST['ordreJourR']) || !isset($_POST['remarquesR']) )
	{
		$errmsg = 'Impossible de modifier de d&eacute;tail de la r&eacute;union : Param&egrave;tres manquants';
		// DEBUG :
		//echo "DEBUG : $query\n$errmsg\n";
		return $errmsg;
	}
	
	$idR=addslashes_if_needed($_REQUEST['idR']);
	$objetR=addslashes_if_needed($_POST['objetR']);
	$lieuR=addslashes_if_needed($_POST['lieuR']);
	$ordreJourR=addslashes_if_needed($_POST['ordreJourR']);
	$remarquesR=addslashes_if_needed($_POST['remarquesR']);
	$estAnnulee=( isset($_POST['isCancelled']) && ($_POST['isCancelled']==='on') )?'oui':'non';
	$montrerDispoR=( isset($_POST['isHidden']) && ($_POST['isHidden']==='on') )?'non':'oui';
	
	$query="UPDATE AWOR_Reunion SET objetR='$objetR', lieuR='$lieuR', ordreJourR='$ordreJourR', " 
		." remarquesR='$remarquesR', estAnnulee='$estAnnulee', montrerDispoR='$montrerDispoR'  WHERE idR='$idR'";
	if ( ! $result = @mysql_query($query) || (mysql_affected_rows() != 1) )
	{
		// Cas d'erreur
		$errmsg = 'Erreur lors de la modification de la r&eacute;union : ' . mysql_generate_errmsg();
		// DEBUG :
		//echo "DEBUG : $query\n$errmsg\n";
		return $errmsg;
	}
	// DEBUG :
	//echo "DEBUG : $query\n$errmsg\n";
	return;
}

function generate_html_reunion_detail2($idR)
{
	$query='SELECT r.objetR, r.ordreJourR, r.lieuR, r.remarquesR, r.montrerDispoR, r.estAnnulee, r.idP_Orga, r.idC_Fixe, p.nomP, p.prenomP'
			. " FROM AWOR_Reunion r, AWOR_Personne p WHERE r.idR='$idR' AND p.idP=r.idP_Orga";
	$result = @mysql_query($query);
	if ( ! $result || ( mysql_num_rows($result) !== 1 ) )
	{
		$errmsg="Impossible de r&eacute;cupr&eacute;rer les informations de la r&eacute;union : Erreur de base de donn&eacute;es\n";
		return $errmsg;
	}
	
	list($objetR, $ordreJourR, $lieuR, $remarquesR, $montrerDispoR, $estAnnulee, $idP_Orga, $idC_Fixe, $nomP, $prenomP) = mysql_fetch_row($result); 
	if ( $estAnnulee=='oui' ) { $etat = 'reunion_annulee'; } elseif ( $idC_Fixe!=null)  { $etat ='reunion_fixee'; } else { $etat = 'reunion_en_cours'; }
?>
	<table class="detail_reunion" summary="D&eacute;tail de la r&eacute;union que vous avez s&eacute;lectionn&eacute;e">
		<thead>
			<tr>
				<th colspan="2">
					D&eacute;tails de la r&eacute;union
<?php
	//~ echo "DEBUG : SESSION['session_idP']==" . $_SESSION['session_idP'] . "\n" . "idP_Orga==" . $idP_Orga;
	if ( isset($_SESSION['session_idP']) && ($_SESSION['session_idP'] == $idP_Orga ) )
	{
		echo '					';
		echo '<a href="#popfixer" onclick="loadid(\'include/ludo/div_create_or_modif.php?idR=';
		echo $idR . '&amp;objetR=' . urlencode($objetR) . '&amp;lieuR=' . urlencode($lieuR) . '&amp;ordreJourR=';
		echo urlencode($ordreJourR) . '&amp;remarquesR=' . urlencode($remarquesR);
		echo "','details_reunion',false);loadid('help/reunion_admin_info.php.hlp','help',false)\">(Editer)</a>\n";
	}
	$objetR=htmlentities($objetR, ENT_QUOTES);
	$ordreJourR=htmlentities($ordreJourR, ENT_QUOTES);
	$lieuR=htmlentities($lieuR, ENT_QUOTES);
	$remarquesR=htmlentities($remarquesR, ENT_QUOTES);
	$nomP=htmlentities($nomP, ENT_QUOTES);
	$prenomP=htmlentities($prenomP, ENT_QUOTES);
?>
				</th>
			</tr>
		</thead>
		<tbody>
			<tr>
				<td><strong>Objet :</strong></td>
				<td>
					<?php echo $objetR . "\n"; ?>
				</td>
			</tr>
			<tr>
				<td><strong>Organisateur :</strong></td>
				<td>
					<?php echo "$prenomP $nomP\n"; ?>
				</td>
			</tr>

			<tr>
				<td><strong>Lieu :</strong></td>
				<td>
					<?php echo $lieuR . "\n"; ?>
				</td>
			</tr>
			<tr>
				<td><strong>Ordre du jour :</strong></td>
				<td>
					<?php echo $ordreJourR . "\n"; ?>
				</td>
			</tr>
			<tr>
				<td><strong>Remarques :</strong></td>
				<td>
					<?php echo $remarquesR . "\n"; ?>
				</td>
			</tr>
			<tr>
				<td><strong>Etat :</strong></td>
<?php
	echo '				<td class="' . $etat .'">' ."\n";
	switch($etat)
	{
		case 'reunion_fixee':
			echo "Fix&eacute;e\n";
		break;
		case 'reunion_en_cours':
			echo "En pr&eacute;paration\n";
		break;
		case 'reunion_annulee':
			echo "Annul&eacute;e\n";
		break;
	}
	if ( $montrerDispoR === 'non' ) { echo ', disponibilit&eacute;s masqu&eacute;es'; }
?>
				</td>
			</tr>
		</tbody>
	</table>	
<?php
}

function html_generate_MySQLTableSuppr($table, $key_name, $columns='*', $where_clause='')
{
	require_once('include/ludo/html_elements.inc.php');
	require_once('include/connect.inc.php');
	
	if ( $where_clause !== '' ) { $where_clause="WHERE $where_clause"; }
	$query = "SELECT $columns FROM $table $where_clause;";
	//~ echo "DEBUG : $query\n";
	if ( ! $result = @mysql_query($query) ) 
	{
		return "Erreur de g&eacute;n&eacute;ration de la table $table\n";
	}
	elseif ( mysql_num_rows($result) > 0 )
	{
		$row = mysql_fetch_assoc($result);
		// Affichage des ent&ecirc;tes du tableau et du pied de tableau
		echo '<form action="" method="post">' . "\n" . '<table summary="Affichage des objets de la table ' . $table . ' pour la purger">' . "\n<thead>\n<tr>\n";
		echo '<td colspan="' . ( count($row) + 1 ) . "\">$table</td>\n</tr>\n<tr>\n";
		echo "<td></td><td>" . implode("</td>\n<td>",array_keys($row)) . "</td>\n";
		echo "</tr>\n</thead>\n<tfoot><tr>\n";
		echo '<td><input name="action" value="delete_from_' . $table . '" type="hidden" /><input value="Supprimer" type="submit" /></td>';
		for ( $i=0; $i < count($row); $i++ ) { echo "<td></td>"; }
		echo "</tr>\n</tfoot>\n<tbody>\n";
		
		$num=0;
		do
		{	if ( isset($row[$key_name]) ) { $num=$row[$key_name]; } else { $num=''; }
			echo "<tr>\n<td><input name=\"id[${num}]\" type=\"checkbox\" /></td>\n<td>" . implode("</td>\n<td>",$row) . "</td>\n</tr>\n";
		} while ( $row = mysql_fetch_assoc($result) );
		echo "</tbody>\n</table>\n</form>\n";
	}
}

function delete_from_awor_liste()
{
	require_once('include/connect.inc.php');
	if ( isset($_POST['id']) && is_array($_POST['id']) )
	{
		if ( ! base_delete_awor_liste( 'idL', array_keys($_POST['id'] ) ) )
		{
			echo "ROLLBACK<br />\n";
			mysql_query("ROLLBACK");
		}
	}
}

function delete_from_awor_fichier()
{
	require_once('include/connect.inc.php');
	if ( isset($_POST['id']) && is_array($_POST['id']) )
	{
		if ( ! base_delete_awor_fichier( 'idFic',  array_keys($_POST['id'] ) ) )
		{
			echo "ROLLBACK<br />\n";
			mysql_query("ROLLBACK");
		}
	}
}

function delete_from_awor_reunion()
{
	require_once('include/connect.inc.php');
	if ( isset($_POST['id']) && is_array($_POST['id']) )
	{
		if ( ! base_delete_awor_reunion( array_keys($_POST['id']) ) )
		{
			echo "ROLLBACK<br />\n";
			mysql_query("ROLLBACK");
		}
	}
}

function delete_from_awor_personne()
{
	require_once('include/connect.inc.php');
	if ( isset($_POST['id']) && is_array($_POST['id']) )
	{
		if ( ! base_delete_awor_personne( array_keys($_POST['id']) ) )
		{
			echo "ROLLBACK<br />\n";
			mysql_query("ROLLBACK");
		}
	}
}


function base_delete_awor_reunion($idR_array)
{
	echo "function base_delete_awor_reunion($idR_array)<br />\n";

	// Suppression des cr�neaux associ�s
	$idR_implode=implode(',',  $idR_array);
	$query = "SELECT idC FROM AWOR_Creneau WHERE idR IN ($idR_implode);";
	$idC_array=array();
	if ( $result = @mysql_query($query) ) 
	{
		while ( list($idC) = mysql_fetch_array($result) ) { $idC_array[]=$idC; }
	}
	if ( !base_delete_awor_creneau( $idC_array ) ) { return false; }
	
	// Suppression des listes associ�es
	$idR_Interne_implode=implode("','interne_idR_",  $idR_array);
	if ( $idR_Interne_implode != '' ) { $idR_Interne_implode = "'interne_idR_" . $idR_Interne_implode . "'"; }
	$query = "SELECT idL FROM AWOR_Liste WHERE libelleL IN ($idR_Interne_implode);";
	//~ echo "$query<br />\n";
	$idL_array=array();
	if ( $result = @mysql_query($query) ) 
	{
		while ( list($idL) = mysql_fetch_array($result) ) { $idL_array[]=$idL; }
	}
	//~ print_r($idL_array);
	if ( !base_delete_awor_liste('idL', $idL_array) ) { return false; }
	
	
	if ( !base_delete_awor_fichier('idR', $idR_array) ) { return false; }
	if ( !base_delete_awor_repondre('idR', $idR_array) ) { return false; }

	$idR_implode=implode(',', $idR_array);
	if ( $idR_implode!= '' )
	{
		$query="DELETE FROM AWOR_Reunion WHERE idR IN ($idR_implode);";
		echo "$query<br />\n";
		return ( mysql_query($query) !== false ) ;
	}
	return true;
}


function base_delete_awor_personne($idP_array)
{
	echo "function base_delete_awor_personne($idP_array)<br />\n";
	
	// Suppression des r�unions organis�es par les personnes concern�es
	$idP_implode=implode(',',  $idP_array);
	$query = "SELECT DISTINCT idR FROM AWOR_Reunion WHERE idP_Orga IN ($idP_implode);";
	$idR_array=array();
	if ( $result = @mysql_query($query) ) 
	{
		while ( list($idR) = mysql_fetch_array($result) ) { $idR_array[]=$idR; }
	}
	
		// Suppr Choisir, Repondre
	if ( !base_delete_awor_reunion($idR_array) ) { return false; }

	
	// Suppression des personnes dans les listes les contenant
	if ( !base_delete_awor_appartenir('idP', $idP_array) ) { return false; }
	
	// Suppression des listes priv�es appartenant aux personnes
	// TODO : voir pour les listes publiques appartenant aux personnes
	if ( !base_delete_awor_liste('idP_Createur', $idP_array) ) { return false; }
	
	// Suppression effective des personnes
	$idP_implode=implode(',', $idP_array);
	if ( $idP_implode!= '' )
	{
		$query="DELETE FROM AWOR_Personne WHERE idP IN ($idP_implode);";
		echo "$query<br />\n";
		return ( mysql_query($query) !== false ) ;
	}
}

function base_delete_awor_liste($idName, $id_array)
{
	// idName = ( idL | idP_Createur )
	echo "function base_delete_awor_liste($idName, $id_array)<br />\n";
	// Suppression du contenu des listes
	if ( !base_delete_awor_appartenir('idL', $id_array) ) { return false; }

	// Suppression des listes
	$id_implode=implode(',', $id_array);
	if ( $id_implode!= '' )
	{
		$query="DELETE FROM AWOR_Liste WHERE $idName IN ($id_implode);";
		echo "$query<br />\n";
		mysql_query($query);
	}
	return true;
}

function base_delete_awor_fichier($idName, $id_array)
{
	// $idName = (idFic | idR)
	echo "function base_delete_awor_fichier($idName, $id_array)<br />\n";
	require("include/ludo/config.inc.php");
		
	$id_implode=implode(',', $id_array);

	// Supression physique
	if ( isset($CONFIG['UPLOAD']['relative_path']) ) { $basepath=$CONFIG['UPLOAD']['relative_path']; } else { $basepath='fichiers/';}
	$basepath=$_SERVER['DOCUMENT_ROOT'].'/'.$basepath;
	
	$requete = "SELECT nomFic FROM AWOR_Fichier WHERE $idName IN ($id_implode);";
	echo "$requete<br />\n";
	if( ( $resultat = mysql_query($requete) ) )
	{
		while( list($fichier) = mysql_fetch_array($resultat))
		{
			echo "unlink($basepath.$fichier);<br />\n";
			unlink($basepath.$fichier);
		}
	}
	// Suppression dans la base
	if ( $id_implode!= '' )
	{
		$query="DELETE FROM AWOR_Fichier WHERE $idName IN ($id_implode);";
		echo "$query<br />\n";
		return ( mysql_query($query) !== false ) ;
	}
	return true;
}


function base_delete_awor_choisir($idName, $id_array)
{
	// idName = (idP|idR)
	echo "function base_delete_awor_choisir($idName, $id_array)<br />\n";
	$id_implode=implode(',', $id_array);
	if ( $id_implode!= '' )
	{
		$query="DELETE FROM AWOR_Choisir WHERE $idName IN ($id_implode);";
		echo "$query<br />\n";
		return ( mysql_query($query) !== false ) ;
	}
	return true;
}

function base_delete_awor_repondre($idName, $id_array)
{
	echo "function base_delete_awor_repondre($idName, $id_array)<br />\n";
	// idName=(idR|idP)
	
	// Suppression des Reponses
	$id_implode=implode(',', $id_array);
	if ( $id_implode!= '' )
	{
		$query="DELETE FROM AWOR_Repondre WHERE $idName IN ($id_implode);";
		echo "$query<br />\n";
		return ( mysql_query($query) !== false ) ;
	}
	return true;
}

function base_delete_awor_appartenir($idName, $id_array)
{
	// $idName = (idL | idP)
	echo "function base_delete_awor_appartenir($idName, $id_array)<br />\n";
	// Suppression dans la base
	$idL_implode=implode(',', $id_array);
	if ( $idL_implode!= '' )
	{
		$query="DELETE FROM AWOR_Appartenir WHERE $idName IN ($idL_implode);";
		echo "$query<br />\n";
		return ( mysql_query($query) !== false ) ;
	}
	return true;
}


function base_delete_awor_creneau($idC_array)
{
	echo "function base_delete_awor_creneau($idC_array)<br />\n";
	// Suppression des r�ponses aux cr�neaux
	if ( ! base_delete_awor_choisir('idC', $idC_array) ) { return false; }

	// Suppression des cr�neaux
	$idC_implode=implode(',', $idC_array);
	if ( $idC_implode!= '' )
	{
		$query="DELETE FROM AWOR_Creneau WHERE idC IN ($idC_implode);";
		echo "$query<br />\n";
		return ( mysql_query($query) !== false ) ;
	}
	return true;
}

// TODO : suppression des listes vides

?>