<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<?php 

/****************************************************************
 * pageTitreSection
 *
 * Tāche: Afficher le titre d'une section de la page selon
 *        les param&egrave;tres pr&eacute;difinis par l'utilisateur.
 *
 * Entr&eacute;es: $titre: Titre de la section.
 *          $specs: Donn&eacute;es des couleurs personnalis&eacute;es.
 *
 ***************************************************************/

function pageTitreSection($titre, $specs)
{
	print("<font size=4 color=#$specs[11]><u><b>$titre</b></u></font>");
}

/****************************************************************
 * pageTitre
 *
 * Tāche: Afficher le titre de la page selon les param&egrave;tres
 *        pr&eacute;d&eacute;finis par l'utilisateur.
 *
 * Entr&eacute;es: titre: Titre de la page.
 *          specs: Donn&eacute;es des couleurs personnalis&eacute;es.
 *
 ***************************************************************/

function pageTitre($titre, $specs)
{
	print("<center><font size=5 color=#$specs[9]><u><b>$titre</b></u></font></center>");
}

/****************************************************************
 * pageGetCouleurTitre
 *
 * Tāche: Obtenir la couleur de titre de la page selon
 *        les param&egrave;tres pr&eacute;d&eacute;finis par l'utilisateur.
 *
 * Entr&eacute;es: specs: Donn&eacute;es des couleurs personnalis&eacute;es.
 *
 * Valeur de retour: Couleur de titre de la page.
 *
 ***************************************************************/

function pageGetCouleurTitre($specs)
{
	return $specs[9];
}

/****************************************************************
 * pageColorSelect
 *
 * Tāche: Construire un menu d&eacute;roulant permettant
 *        de s&eacute;lectionner une couleur.
 *
 * Entr&eacute;es: name: Nom du menu d&eacute;roulant.
 *          value: Valeur &agrave; s&eacute;lectionner par d&eacute;faut.
 *
 ***************************************************************/

function pageColorSelect($name, $value, $script)
{
	//Tableau de correspondance entre les valeurs hexad&eacute;cimales
	//et les noms des couleurs.
	$choix = array(
		"000000" => "Noir",
		"FFFFFF" => "Blanc",
		"FF0000" => "Rouge",
		"00FF00" => "Vert",
		"0000FF" => "Bleu");

	//Cr&eacute;er le menu d&eacute;roulant.
	print("\n<select name='$name' onClick=\"$script\">\n");
	
	//Ajouter les valeurs dans le menu d&eacute;roulant.
	foreach ($choix as $key=>$elem)
	{
		print("<option ");
	
		//S&eacute;lectionner la valeur qui est dans la DB.
		if ($key == $value)
			print("selected ");
			
		print("value=\"$key\">$elem</option>\n");
	}
	
	print ("</select>\n");
}

/****************************************************************
 * pageErreur
 *
 * Tāche: Afficher une erreur en gros caract&egrave;res.
 *
 * Entr&eacute;es: description: Description de l'erreur.
 *
 ***************************************************************/
 
function pageErreur($description)
{
	print("<b><u><font size=6>Erreur: $description</font></u></b>");
}

/****************************************************************
 * pageGetSpecs
 *
 * Tāche: Lire les informations de personnalisation des
 *        couleurs et les conserver dans un tableau de donn&eacute;es.
 * 
 * Entr&eacute;es: session_id: Num&eacute;ro de la session pour laquelle
 *                      lire les donn&eacute;es.
 *
 * Valeur de retour: Tableau de donn&eacute;es des couleurs. Ce
 *                   tableau ne doit jamais &ecirc;tre lu
 *                   directement dans le code mais sera
 *                   utilis&eacute; par les fonctions de couleurs.
 *
 ***************************************************************/

function pageGetSpecs($session_id)
{
	if (canUseColor($session_id))
	{
    	//Lire les donn&eacute;es dans la DB.
    	$sql = "SELECT bgcolor, textcolor, vlinkcolor, alinkcolor, linkcolor, coltextcolor, colbgcolor,
    	               valtextcolor, valbgcolor, titlecolor, captioncolor, sectcolor, msgcolor
    			FROM usager
    			WHERE Bidsession = '$session_id';";
    			
    	$result = mysql_query($sql);
    	
    	$num = mysql_numrows($result);
    	
    	//V&eacute;rifier que les donn&eacute;es ont &eacute;t&eacute; lues comme il faut.
    	if ($num < 1)
    	{
    		die("Erreur de lecture des couleurs.");
    	}
    	
    	$row = mysql_fetch_row($result);
    	
    	mysql_free_result($result);
	}
	else
	{
		$row = pageDefaultSpecs();
	}
	
	//Retourner un tableau de donn&eacute;es.
	return $row;
}

/****************************************************************
 * pageDefaultSpecs
 *
 * Tāche: Obtenir les donn&eacute;e sur les couleurs personnalis&eacute;es
 *        par d&eacute;faut. Ces couleurs sont utilis&eacute;s pour les
 *        utilisateurs n'ayant pas le droit de modifier les
 *        couleurs ainsi que pour la page de login.
 *
 * Valeur de retour: Donn&eacute;es des couleurs par d&eacute;faut.
 *
 ***************************************************************/

function pageDefaultSpecs()
{
	$row = array("FFFFFF", "000000", "FF0000", "FF0000", "0000FF", "000000",
				 "FFFFFF", "000000", "FFFFFF", "FF0000", "000000", "000000",
				 "FF0000");

	return $row;
}

/****************************************************************
 * pageMakeBody
 *
 * Tāche: Cr&eacute;er le tag <body> de la page selon les param&egrave;tres
 *        de couleurs de l'utilisateur.
 *
 * Entr&eacute;es: specs: Donn&eacute;es des couleurs.
 *
 ***************************************************************/

function pageMakeBody($specs)
{
	print("<body bgcolor=#$specs[0] text=#$specs[1] vlink=#$specs[2] alink=#$specs[3] link=#$specs[4]>");
}

/****************************************************************
 * pageMakeBodyEx
 *
 * Tāche: M&ecirc;me chose que pageMakeBody(), avec en plus un
 *        argument pour l'&eacute;v&eacute;nement onLoad.
 *
 * Entr&eacute;es: onLoad: Fonction JavaScript &agrave; appeler au onLoad.
 *          specs: Donn&eacute;es des couleurs.
 *
 ***************************************************************/

function pageMakeBodyEx($onLoad, $specs)
{
	print("<body bgcolor=#$specs[0] text=#$specs[1] vlink=#$specs[2] alink=#$specs[3] 
		         link=#$specs[4] onLoad=\"$onLoad\">");
}

/****************************************************************
 * pageCouleur
 *
 * Tāche: Afficher du texte d'un certaine couleur.
 *
 * Entr&eacute;es: texte: Texte &agrave; afficher.
 *          couleur: Couleur avec laquelle afficher le texte.
 *
 ***************************************************************/

function pageCouleur($texte, $couleur)
{
	print("<font color=#$couleur>".$texte."</font>");
}

/****************************************************************
 * pageCouleurTarget
 *
 * Tāche: Afficher du texte selon une certaine couleur tout
 *        en lui attribuant un id de mani&egrave;re &agrave; pouvoir
 *        changer sa couleur ult&eacute;rieurement en JavaScript.
 *
 ***************************************************************/

function pageCouleurTarget($texte, $couleur, $nom)
{
	print("<font id=\"".$nom."_target\" color=#$couleur>$texte</a></font>");
}

/****************************************************************
 * pageCaptionCouleur
 *
 * Tāche: Afficher du texte avec la couleur de nom de champ.
 *
 * Entr&eacute;es: texte: Texte &agrave; afficher.
 *          specs: Donn&eacute;es sur les couleurs personnalis&eacute;es.
 *
 ***************************************************************/

function pageCaptionCouleur($texte, $specs)
{
	pageCouleur($texte, $specs[10]);
}

/****************************************************************
 * pageTitreCol
 *
 * Tāche: Afficher le titre d'une colonne avec la
 *        couleur de l'utilisateur.
 *
 * Entr&eacute;es: titre: Titre de la colonne &agrave; afficher.
 *          specs: Donn&eacute;es des couleurs personnalis&eacute;es.
 *
 ***************************************************************/

function pageTitreCol($titre, $specs)
{
	pageCouleur($titre, $specs[5]);
}

/****************************************************************
 * pageCouleurTableau
 *
 * Tāche: Afficher le texte dans un tableau avec
 *        la couleur de l'utilisateur.
 *
 * Entr&eacute;es: texte: Texte &agrave; afficher.
 *          specs: Donn&eacute;es des couleurs personnalis&eacute;es.
 *
 ***************************************************************/

function pageCouleurTableau($texte, $specs)
{
	pageCouleur($texte, $specs[7]);
}

/****************************************************************
 * pageCouleurCol
 *
 * Tāche: Fournir la couleur hexad&eacute;cimale
 *        d'arri&egrave;re-plan d'un titre de colonne.
 *
 * Entr&eacute;es: specs: Donn&eacute;es sur les couleurs personnalis&eacute;es.
 *
 * Valeur de retour: Couleur.
 *
 ***************************************************************/

function pageCouleurCol($specs)
{
	return $specs[6];
}

/****************************************************************
 * pageBgCouleurTableau
 *
 * Tāche: Fournir la couleur hexad&eacute;cimale
 *        d'arri&egrave;re-plan pour un tableau.
 *
 * Entr&eacute;es: specs: Donn&eacute;es sur les couleurs personnalis&eacute;es.
 *
 * Valeur de retour: Couleur.
 *
 ***************************************************************/

function pageBgCouleurTableau($specs)
{
	return $specs[8];
}

/****************************************************************
 * pageMakeSelect
 *
 * Tāche: Cr&eacute;er un menu d&eacute;roulant de mani&egrave;re simple et efficace.
 *
 * Entr&eacute;es: nom: Nom de la valeur repr&eacute;sent&eacute;e par le
 *               menu d&eacute;roulant.
 *          valeur: Valeur initiale qui est s&eacute;lectionn&eacute;e
 *                  dans le menu d&eacute;roulant.
 *          liste: Liste de donn&eacute;es (tableau associatif)
 *                 contenant comme cl&eacute; la valeur de l'&eacute;l&eacute;ment
 *                 du menu et comme valeur le nom &agrave; afficher
 *                 dans le menu d&eacute;roulant.
 *
 ***************************************************************/

function pageMakeSelect($nom, $valeur, $liste)
{
	//Cr&eacute;er le tag <SELECT>.
	print("<select name=\"$nom\">\n");
	
	//G&eacute;n&eacute;rer les &eacute;l&eacute;ments du menu d&eacute;roulant.
	foreach ($liste as $key=>$elem)
	{
		print("<option ");
		
		//S&eacute;lectionner l'&eacute;l&eacute;ment correspondant &agrave; la valeur.
		if ($key == $valeur)
			print("selected ");
		
		print("value=\"$key\">$elem</option>\n");
	}
	
	//Compl&eacute;ter le menu d&eacute;roulant.
	print("</select>\n");
}

/****************************************************************
 * pageAide
 *
 * Tāche: Afficher un texte d'aide relatif &agrave; une section
 *        d'une page afin d'expliquer de mani&egrave;re plus
 *        approfondie son fonctionnement.
 *
 * Entr&eacute;es: texte: Texte &agrave; afficher comme aide.
 *
 ***************************************************************/

function pageAide($texte)
{
	print("<dl><dd>$texte</dd></dl>");
}

/****************************************************************
 * pageDebug
 *
 * Tāche: Affiche un texte de d&eacute;bogage destin&eacute; &agrave; faciliter
 *        le d&eacute;velomment. Le contenu de cette fonction
 *        devra &ecirc;tre mis en commentaire de mettre le
 *        bottin en production.
 *
 * Entr&eacute;es: texte: Texte &agrave; afficher.
 *
 ***************************************************************/

function pageDebug($texte)
{
	print("<br>DEBUG: <u>$texte</u><br>");
}

/****************************************************************
 * pageUserError
 *
 * Tāche: Afficher un message d'erreur de traitement, par
 *        exemple lorsque l'utilisateur a oubli&eacute; d'entrer
 *        une information obligatoire dans un formulaire.
 *
 * Entr&eacute;es: texte: Texte (message d'erreur) &agrave; afficher.
 *          specs: Donn&eacute;es des couleurs personnalis&eacute;es.
 *
 ***************************************************************/

function pageUserError($texte, $specs)
{
	print("<font size=4 color=#$specs[12]><b>Erreur: </b><font size=3>$texte</font></font>");
}

/****************************************************************
 * pageUserNotice
 *
 * Tāche: Afficher un message d'information &agrave; l'utilisateur.
 *        M&ecirc;me chose que pageUserError, mais sans afficher
 *        le texte "Erreur".
 *
 * Entr&eacute;es: texte: Texte du message &agrave; afficher.
 *          specs: Donn&eacute;es des couleurs personnalis&eacute;es.
 *
 ***************************************************************/

function pageUserNotice($texte, $specs)
{
	print("<font size=3 color=#$specs[12]><b>$texte</b></font>");
}

/****************************************************************
 * pageCouleurMessage
 *
 * Tāche: Afficher un texte de la couleur d'un message syst&egrave;me.
 *        &Agrave; la diff&eacute;rence de pageUserNotice, cette fonction
 *        ne sp&eacute;cifie pas la taille du texte &agrave; afficher.
 *
 * Entr&eacute;es: texte: Texte du message &agrave; afficher.
 *          specs: Donn&eacute;es des couleurs personnalis&eacute;es.
 *
 ***************************************************************/

function pageCouleurMessage($texte, $specs)
{
	print("<font color=#$specs[12]>$texte</font>");
}

/****************************************************************
 * pageBoutonMenu
 *
 * Tāche: Afficher un bouton de retour au menu principal.
 *
 * Entr&eacute;es: session_id: Num&eacute;ro d'identification de la
 *                      session courante.
 *
 ***************************************************************/

function pageBoutonMenu($session_id)
{
	//IMPORTANT: Le fichier incluant "mise_en_page.php" et souhaitant utiliser
	//cette fonction doit pr&eacute;alablement inclure le fichier "gui.php" afin que 
	//la fonction "makeLinkButton" soit d&eacute;finie.

	//Param&egrave;tre du bouton de retour au menu principal.
	$bouton = array("session_id" => $session_id);

	//Cr&eacute;er le bouton de retour au menu.
	makeLinkButton("../menu.php", "bouton_menu_principal", $bouton, "Menu principal");
}

/****************************************************************
 * pageMenu
 *
 * Tāche: Afficher le bas d'une page standard, c'est &agrave; dire
 *        une ligne suivie d'un bouton de retour au menu
 *        principal.
 *
 * Entr&eacute;es: session_id: Num&eacute;ro d'identification de la
 *                      session courante.
 *
 ***************************************************************/

function pageMenu($session_id)
{
	print("<hr><center>");
	pageBoutonMenu($session_id);
	print("</center>");
}

?>

