public function run() {
	
	$book = $_POST; 

	$checkCodeBarre = $this->database->checkCodeBarre($book['code']);
   $checkShelfMark = $this->database->checkShelfMark($book['titre'],$book['cote']);
	
	if(!$checkCodeBarre){

			$this->setView(getViewByName("Message"));
			$this->getView()->setMessage("Ce code barre existe déjà", "error");
			return false;
		}

	if(!$checkShelfMark){

			$this->setView(getViewByName("Message"));
			$this->getView()->setMessage("La cote saisie ne correspond pas au titre de ce livre", "error");
			return false;
	 }

		$sql  = $this->database->addBook($book);
		
		if(!$sql){

			$this->setView(getViewByName("Message"));
			$this->getView()->setMessage("Erreur lors de l'enregistrement du livre", "error");
			return false;
	 }
		

		$this->setView(getViewByName("Message"));
		$this->getView()->setMessage("Enregistrement du Livre réussi", "success");
 
	}
	public function run() {
	
		$members = $this->database->loadMembers();
		$this->setView(getViewByName("ManageMember"));
		$this->getView()->setMembers($members);
			
	}
	public function run() {
	
	
		$this->setView(getViewByName("RegisterMemberForm"));
	
			
	}
	public function run() {
	
		$books = $this->database->loadBooks();
		$this->setView(getViewByName("MyBooksSearch"));
		$this->getView()->setBooks($books);
			
	}
	public function run() {
	
		 $book = NULL;

		 $option = $_POST['search_book'];
		 $arg		= $_POST['argument'];


		if($option=="titre"){
			$books = $this->database->loadBooksByTitle($arg);
		}

		if($option=="auteur"){
			$books = $this->database->loadBooksByAuthor($arg);
		}

		if($option=="mot-cle"){
			$books = $this->database->loadBookByKeyword($arg);
		}

		$this->setView(getViewByName("ManageBook"));
		$this->getView()->setBooks($books);
			
			
	}
public function run() {
		/* TODO START */
    	
		$tableau = $_POST["tableau"]; // contient tous les mots insérer par le joueur.
		$proposal= $_POST["word"];
	   $time = $_POST["chrono"]; // temps entre le début de la partie et la l'envoie d'un mot.
		
	    
		if(!isset($proposal) || trim($proposal)===''){
			$this->setMessageView("Vous devez entrer un mot de 8 lettres", "alert-error");
			return false;
		}

        if(strlen($proposal) != 8){
           $this->setMessageView("Vous devez entrer un mot de huit lettres", "alert-error");
			return false;
        }
      
        
		 $secretword = $this->database->getSecretWord(); 
		
		 $motus = $this->loadMotus($secretword, $tableau);
		 $this->setView(getViewByName("JSON"));
       $this->getView()->setObject($motus->getColors());
       
       $owner = $this->getSessionLogin();
		
      if($motus->getResult()){
		 	$this->database->addPointWon($owner, $time);
		}
	

		/* TODO END */
	}
	public function run() {
	
	 	$member = $_POST;
		$checkMember 		= $this->database->checkMemberPassword($member['id_adherent']);
	 	$saveUpdateMember = $this->database->updateMember($member);


		if(!$checkMember ){
			$this->setView(getViewByName("Message"));
			$this->getView()->setMessage("Cet adhérent n'existe pas", "error");
			return false;
		}
		
	 
		if(!$saveUpdateMember){
		
			$this->setView(getViewByName("Message"));
			$this->getView()->setMessage("Echec de la mise à jour", "error");
			return false;
		}
		
		$this->setView(getViewByName("Message"));
		$this->getView()->setMessage("	Mise à jour réussi", "success");
		
			
	}
	public function run() {
	

	
		$this->setView(getViewByName("GiveBackBook"));

		
	}
	public function run() {
		
	
		
		   $this->setView(getViewByName("LoginForm"));
	
	
  }
	public function run() {
	

	
		$this->setView(getViewByName("BorrowBookForm"));

		
	}
	public function run() {
	
		$selectMember 		= $_POST['pageid'];
		$members 	  		= $this->database->loadMembers();
		$borrowingBooks	= $this->database->borrowingBooks($selectMember);
		$this->setView(getViewByName("ManageMember"));
		$this->getView()->selectMember($members,$selectMember,$borrowingBooks);		
	}
	/**
	 * Dirige l'utilisateur vers le formulaire de modification de mot de passe.
	 *
	 * @see Action::run()
	 */
	public function run() {

		if ($this->getSessionLogin()===null) {
			$this->setMessageView("Vous devez être authentifié.");
			return;
		}

		$this->setView(getViewByName("UpdateUserForm"));
	}
	public function run() {
	

			$id_member  = $_POST['adherent'];
			$id_book    = $_POST['livre'];

			
			$getBookCode 		      = $this->database->getBookCode($id_book);
         $checkMemberCode  		= $this->database->checkMemberCode($id_member);
			$checkAvailabilityBook  = $this->database->checkAvailabilityBook($id_book);
			$checkMemberLate		   = $this->database->loadMemberLate($id_member);
			$borrowingBooks	      = $this->database->borrowingBooks($id_member);
			$bookNumber             = count($borrowingBooks);

			if(!$getBookCode){

				$this->setView(getViewByName("Message"));
				$this->getView()->setMessage("Ce numéro ne correspond à aucun livre", "error");
				return false;
		 	}

	
		
			if($checkMemberLate){

			$this->setView(getViewByName("Message"));
			$this->getView()->setMessage("Emprunt annulé: cet adhérent n'a pas rendu tous ces livres", "error");
			return false;
		  }

			if($checkMemberLate){

			$this->setView(getViewByName("Message"));
			$this->getView()->setMessage("Emprunt annulé: cet adhérent n'a pas rendu tous ces livres", "error");
			return false;
		  }


			if($bookNumber > 2){

				$this->setView(getViewByName("Message"));
				$this->getView()->setMessage("Cet Adhérent a emprunté plus de 3 livres", "error");
				return false;
		   }
			

		  $saveBorrowingBook = $this->database-> saveBorrowingBook($getBookCode,$id_member);
			

			$this->setView(getViewByName("Message"));
			$this->getView()->setMessage("Enregistrement du prêt terminé", "success");
			
	

		
	}
	public function run() {
	
	   
	    
		$scores = $this->database->loadScores();
		
		
		$this->setView(getViewByName("JSON"));
        $this->getView()->setObject($scores);
		
	}
	/**
	 * Traite les données envoyées par le formulaire d'ajout de sondage.
	 *
	 * Si l'utilisateur n'est pas connecté, un message lui demandant de se connecter est affiché.
	 *
	 * Sinon, la fonction ajoute le sondage à la base de données. Elle transforme
	 * les réponses et la question à l'aide de la fonction PHP 'htmlentities' pour éviter
	 * que du code exécutable ne soit inséré dans la base de données et affiché par la suite.
	 *
	 * Un des messages suivants doivent être affichés à l'utilisateur :
	 * - "La question est obligatoire.";
	 * - "Il faut saisir au moins 2 réponses.";
	 * - "Merci, nous avons ajouté votre sondage.".
	 *
	 * Le visiteur est finalement envoyé vers le formulaire d'ajout de sondage pour lui
	 * permettre d'ajouter un nouveau sondage s'il le désire.
	 *
	 * @see Action::run()
	 */
	public function run() {
		
		if ($this->getSessionLogin()===null) {
			$this->setMessageView("Vous devez être authentifié.", "alert-error");
			return;
		}
		
		$this->setView(getViewByName("AddSurveyForm"));
	
	
  }
	public function run() {
	
		$selectBook			  = $_POST['pageid'];
		$books	  			  = $this->database->loadBooks();
		$borrowingByBook	  = $this->database->borrowingByBook($selectBook);	
		$historyByBook      = $this->database->historyByBook($selectBook);	

	
		$this->setView(getViewByName("MyBooksSearch"));

		$this->getView()->selectBook($books,$selectBook,$borrowingByBook, $historyByBook);
	}
	public function run() {
		
	  /**
		* Permet d'afficher le formulaire d'ajout d'un sondage.
      */

		if ($this->getSessionLogin()===null) {
			$this->setMessageView("Vous devez être authentifié.", "alert-error");
			return;
		}
		
		$this->setView(getViewByName("AddSurveyForm"));
	
	
  }
	/**
	 * Traite les données envoyées par le visiteur via le formulaire de connexion
	 * (variables $_POST['login'] et $_POST['password']).
	 * Le mot de passe est vérifié en utilisant les méthodes de la classe Database.
	 * Si le mot de passe n'est pas correct, on affiche le message "Pseudo ou mot de passe incorrect."
	 * Si la vérification est réussie, le pseudo est affecté à la variable de session.
	 *
	 * @see Action::run()
	 */
	public function run() {

		$login     =  htmlentities($_POST['login']);
		$password  =  htmlentities($_POST['password']);

		if( !$this->database->checkPassword($login, $password)){
			$this->setMessageView("Login ou mot de passe incorrect.", "alert-error");
			return false;
		}

		$login = $login;
		$this->setSessionLogin($login);
		$this->setView(getViewByName("Message"));
		$this->getView()->setMessage("connexion réussie", "alert-success");

	}
	/**
	 * Traite les données envoyées par le visiteur via le formulaire de connexion
	 * (variables $_POST['nickname'] et $_POST['password']).
	 * Le mot de passe est vérifié en utilisant les méthodes de la classe Database.
	 * Si le mot de passe n'est pas correct, on affiche le message "Pseudo ou mot de passe incorrect."
	 * Si la vérification est réussie, le pseudo est affecté à la variable de session.
	 *
	 * @see Action::run()
	 */
	public function run() {

		$nickname  =  $_POST['nickname'];
		$password  =  $_POST['password'];

		if( !$this->database->checkPassword($nickname, $password)){
			$this->setMessageView("Pseudo ou mot de passe incorrect.", "alert-error");
			return false;
		}

		$login = $nickname;
		$this->setSessionLogin($login);
		$this->setView(getViewByName("Message"));
		$this->getView()->setMessage("connexion réussie", "alert-success");

	}
public function run() {
		/* TODO START */
     
        $owner = $this->getSessionLogin();
        if($owner == NULL){
        echo "vous devez être connecté";
        return false;
        }

		$motus = $this->database->loadMotus($owner);
		$this->setView(getViewByName("Motus"));
		$this->getView()->setMotus($motus);


		/* TODO END */
	}
	public function run() {
		
	  /** 
      * Permet d'afficher tous les sondages d'un utilisateur
      */ 
		
		if ($this->getSessionLogin()===null) {
			$this->setMessageView("Vous devez être authentifié.", "alert-error");
			return;
		}
      
		$author   = $this->getSessionLogin();	   
		$surveys  = $this->database->getSurveysIDByAuthor($author);
   
	   $this->setView(getViewByName("Surveys"));
	   $this->getView()->setSurveys($surveys);
	}
	/**
	 * Construit la liste des sondages de l'utilisateur et le dirige vers la vue "ServeysView" 
	 * de façon à afficher les sondages.
	 *
	 * Si l'utilisateur n'est pas connecté, un message lui demandant de se connecter est affiché.
	 *
	 * @see Action::run()
	 */
	public function run() {
		/* TODO START */

		
	if ($this->getSessionLogin()===null) {
			$this->setMessageView("Vous devez être authentifié.", "alert-error");
			return;
		}
      
	  	$owner   = $this->getSessionLogin();
 	    $surveys = $this->database->loadSurveysByOwner($owner);
   
	   $this->setView(getViewByName("Surveys"));
	   $this->getView()->setSurveys($surveys);

		/* TODO END */
	}
	/**
	 * Construit la liste des sondages dont la question contient le mot clé
	 * contenu dans la variable $_POST["keyword"]. L'utilisateur est ensuite 
	 * dirigé vers la vue "ServeysView" permettant d'afficher les sondages.
	 *
	 * Si la variable $_POST["keyword"] est "vide", le message "Vous devez entrer un mot clé
	 * avant de lancer la recherche." est affiché à l'utilisateur.
	 *
	 * @see Action::run()
	 */
	public function run() {
		/* TODO START */
    
		$keyword = $_POST["keyword"];

		if(!isset($keyword) || trim($keyword)===''){
			$this->setMessageView("Vous devez entrer un mot clé avant de lancer la recherche.", "alert-error");
			return false;
		}

		$surveys = $this->database->loadSurveysByKeyword($keyword);
		$this->setView(getViewByName("Surveys"));
	   $this->getView()->setSurveys($surveys);
		


		/* TODO END */
	}
	public function run() {
	
		$member = NULL;

		 $option = $_POST['search_member'];
		 $arg		= $_POST['argument'];
		
		if( $option == "nom"){
		  $members = $this->database->loadMembersByName($arg);
		}
	
		if( $option == "id"){
		  $members = $this->database->loadMembersByID($arg);
		}

		$this->setView(getViewByName("ManageMember"));
		$this->getView()->setMembers($members);
			
	}
	public function run() {
	
			$id_member  = $_POST['id_adherent'];
			$cote      	= $_POST['cote'];


			$checkMemberID = $this->database->checkMemberCode($id_member);
			$checkCote     = $this->database-> searchCOTE($cote);
			

			if(!$checkMemberID){

				$this->setView(getViewByName("Message"));
				$this->getView()->setMessage("Cet Adhérent n'existe pas", "error");
				return false;
		 	}

			if(!$checkCote){

				$this->setView(getViewByName("Message"));
				$this->getView()->setMessage("Cette cote n'existe pas", "error");
				return false;
		 	}
			

			$reservation 	= $this->database->reserveThisBook($cote, $id_member);
        

			if(!$reservation){

				$this->setView(getViewByName("Message"));
				$this->getView()->setMessage("Echec de la reservation", "error");
				return false;
		 	}

		$this->setView(getViewByName("Message"));
		$this->getView()->setMessage("Réservation enregistrée", "success");


		
	}
	public function run() {

	  /** 
   	* Permet d'afficher un sondage 
	   */
		$surveyID = $_GET['id'];

		$database = new Database();

		if($database->surveyNotExist($surveyID)){
			$this->setMessageView("Désolé, ce sondage n'existe pas. ", "alert-warning");
			return ;
		}

		$survey = $database->getSurvey($surveyID);
		$this->setView(getViewByName("Survey"));
	   $this->getView()->setSurvey($survey);
	
		
  
   }
	public function run() {

		$nickname  =  $_POST['nickname'];
		$password  =  $_POST['password'];

		$checkMemberPassword = $this->database->checkMemberPassword($nickname);

		if($checkMemberPassword==true && $password=="password"){
			
			$selectMember 		= $nickname;
			$members 	  		= $this->database->loadMembers();
			$borrowingBooks	= $this->database->borrowingBooks($selectMember);
		   $this->setView(getViewByName("MySpace"));
		   $this->getView()->selectMember($members,$selectMember,$borrowingBooks);		
			
			return true;

		}

		if($nickname =="admin" && $password== "password"){

				
			$login = $nickname;
			$this->setSessionLogin($login);
			$this->setView(getViewByName("Message"));
			$this->getView()->setMessage("connexion réussie", "success");
		
			header( "refresh:1.25;url=?action=Admin" );
		
			return true;	
		}


		$this->setView(getViewByName("LoginForm"));
		$this->getView()->setMessage("Identifiant ou mot de passe incorrect.", "error");
		return false;

	}
	public function run() {

	  /** 
      * Permet d'afficher les résultats du sondage
      */ 
		
		if ($this->getSessionLogin()===null) {
			$this->setMessageView("Vous devez être authentifié.", "alert-error");
			return;
		}

		$surveyID = $_GET['id'];
		$database       = new Database();

		if($database->surveyNotExist($surveyID)){
			$this->setMessageView("Désolé, ce sondage n'existe pas. ", "alert-warning");
			return ;
		}

		$responses = $database->getResponse($surveyID);	
		$survey    = $database->getSurvey($surveyID);

		$user      = $this->getSessionLogin();
		$author	  = $survey->getAuthor();
   
		if($author != $user){
			$this->setMessageView("Vous n'avez pas accès au résultat de ce sondage ", "alert-danger");
			return ;
		}

		$survey->addResponses($responses);

		$this->setView(getViewByName("ResultSurvey"));
	   $this->getView()->setSurvey($survey);

	}
	/**
	 * Dirige l'utilisateur vers le formulaire d'inscription.
	 *
	 * @see Action::run()
	 */	
	public function run() {
		$this->setView(getViewByName("SignUpForm"));
	}
	/**
	 * Déconnecte l'utilisateur courant. Pour cela, la valeur 'null'
	 * est affectée à la variable de session 'login' à l'aide d'une méthode
	 * de la classe Action.
	 *
	 * @see Action::run()
	 */	
	public function run() {
		$this->setSessionLogin(null);
		$this->setView(getViewByName("Default"));
	}