diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php
index c6a4141c152aca4b3a31ada9075acb52f98b15cb..3325b31e547569b88cbb06b16c01db00a1875743 100644
--- a/htdocs/core/class/html.form.class.php
+++ b/htdocs/core/class/html.form.class.php
@@ -1060,7 +1060,7 @@ class Form
                     }
 
                     //if ($obj->admin) $out.= ' *';
-                    if ($conf->global->MAIN_SHOW_LOGIN) $out.= ' ('.$obj->login.')';
+                    if (! empty($conf->global->MAIN_SHOW_LOGIN)) $out.= ' ('.$obj->login.')';
                     $out.= '</option>';
                     $i++;
                 }
diff --git a/htdocs/core/modules/modHoliday.class.php b/htdocs/core/modules/modHoliday.class.php
index 667348c2ca466f8288c2609ca1cd40c33a1027f7..7c36423468d3f90f8d1f769e0eca988fe6ebfc6c 100644
--- a/htdocs/core/modules/modHoliday.class.php
+++ b/htdocs/core/modules/modHoliday.class.php
@@ -184,55 +184,87 @@ class modHoliday extends DolibarrModules
 
 		// Add here entries to declare new menus
 		$this->menu[$r]=array(	'fk_menu'=>0,			// Put 0 if this is a top menu
-									'type'=>'top',			// This is a Top menu entry
-									'titre'=>'CPTitreMenu',
-									'mainmenu'=>'holiday',
-									'url'=>'/holiday/index.php?leftmenu=holiday',
-									'langs'=>'holiday',	// Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
-									'position'=>100,
-									'enabled'=>'1',			// Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled.
-									'perms'=>'$user->rights->holiday->write',			// Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules
-									'target'=>'',
-									'user'=>2);				// 0=Menu for internal users, 1=external users, 2=both
-		// $r++;
-		//
-		// Example to declare a Left Menu entry:
-		// $this->menu[$r]=array(	'fk_menu'=>'r=0',		// Use r=value where r is index key used for the parent menu entry (higher parent must be a top menu entry)
-		//							'type'=>'left',			// This is a Left menu entry
-		//							'titre'=>'MyModule left menu 1',
-		//							'mainmenu'=>'mymodule',
-		//							'url'=>'/mymodule/pagelevel1.php',
-		//							'langs'=>'mylangfile',	// Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
-		//							'position'=>100,
-		//							'enabled'=>'1',			// Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled.
-		//							'perms'=>'1',			// Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules
-		//							'target'=>'',
-		//							'user'=>2);				// 0=Menu for internal users, 1=external users, 2=both
-		// $r++;
-		//
-		// Example to declare another Left Menu entry:
-		// $this->menu[$r]=array(	'fk_menu'=>'r=1',		// Use r=value where r is index key used for the parent menu entry (higher parent must be a top menu entry)
-		//							'type'=>'left',			// This is a Left menu entry
-		//							'titre'=>'MyModule left menu 2',
-		//							'mainmenu'=>'mymodule',
-		//							'url'=>'/mymodule/pagelevel2.php',
-		//							'langs'=>'mylangfile',	// Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
-		//							'position'=>100,
-		//							'enabled'=>'1',			// Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled.
-		//							'perms'=>'1',			// Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules
-		//							'target'=>'',
-		//							'user'=>2);				// 0=Menu for internal users, 1=external users, 2=both
-		// $r++;
-
+								'type'=>'top',			// This is a Top menu entry
+								'titre'=>'CPTitreMenu',
+								'mainmenu'=>'holiday',
+								'leftmenu'=>'holiday',
+								'url'=>'/holiday/index.php',
+								'langs'=>'holiday',	// Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
+								'position'=>100,
+								'enabled'=>'1',			// Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled.
+								'perms'=>'$user->rights->holiday->write',			// Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules
+								'target'=>'',
+								'user'=>2);				// 0=Menu for internal users, 1=external users, 2=both
+		$r++;
+		$this->menu[$r]=array(	'fk_menu'=>'fk_mainmenu=holiday',			// Put 0 if this is a top menu
+								'type'=>'left',			// This is a Top menu entry
+								'titre'=>'CPTitreMenu',
+								'mainmenu'=>'holiday',
+								'leftmenu'=>'holiday',
+								'url'=>'/holiday/index.php?mainmenu=holiday&leftmenu=holiday',
+								'langs'=>'holiday',	// Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
+								'position'=>100,
+								'enabled'=>'1',			// Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled.
+								'perms'=>'$user->rights->holiday->write',			// Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules
+								'target'=>'',
+								'user'=>2);				// 0=Menu for internal users, 1=external users, 2=both
+		$r++;
+		$this->menu[$r]=array(	'fk_menu'=>'fk_mainmenu=holiday,fk_leftmenu=holiday',		// Use r=value where r is index key used for the parent menu entry (higher parent must be a top menu entry)
+								'type'=>'left',			// This is a Left menu entry
+								'titre'=>'MenuAddCP',
+								'mainmenu'=>'holiday',
+								'leftmenu'=>'holiday_add',
+								'url'=>'/holiday/fiche.php?mainmenu=holiday&action=request',
+								'langs'=>'holiday',	// Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
+								'position'=>101,
+								'enabled'=>'$conf->holiday->enabled',			// Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled.
+								'perms'=>'$user->rights->holiday->write',		// Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules
+								'target'=>'',
+								'user'=>2);				// 0=Menu for internal users, 1=external users, 2=both
+		$r++;
+		$this->menu[$r]=array(	'fk_menu'=>'fk_mainmenu=holiday,fk_leftmenu=holiday',		// Use r=value where r is index key used for the parent menu entry (higher parent must be a top menu entry)
+								'type'=>'left',			// This is a Left menu entry
+								'titre'=>'MenuConfCP',
+								'mainmenu'=>'holiday',
+								'leftmenu'=>'holiday_conf',
+								'url'=>'/holiday/define_holiday.php?mainmenu=holiday&action=request',
+								'langs'=>'holiday',	// Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
+								'position'=>102,
+								'enabled'=>'$conf->holiday->enabled',			// Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled.
+								'perms'=>'$user->rights->holiday->define_holiday',		// Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules
+								'target'=>'',
+								'user'=>2);				// 0=Menu for internal users, 1=external users, 2=both
+		$r++;
+		$this->menu[$r]=array(	'fk_menu'=>'fk_mainmenu=holiday,fk_leftmenu=holiday',		// Use r=value where r is index key used for the parent menu entry (higher parent must be a top menu entry)
+								'type'=>'left',			// This is a Left menu entry
+								'titre'=>'MenuLogCP',
+								'mainmenu'=>'holiday_def',
+								'url'=>'/holiday/view_log.php?mainmenu=holiday&action=request',
+								'leftmenu'=>'holiday',
+								'langs'=>'holiday',	// Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
+								'position'=>103,
+								'enabled'=>'$conf->holiday->enabled',			// Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled.
+								'perms'=>'$user->rights->holiday->view_log',		// Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules
+								'target'=>'',
+								'user'=>2);				// 0=Menu for internal users, 1=external users, 2=both
+		$r++;
+		$this->menu[$r]=array(	'fk_menu'=>'fk_mainmenu=holiday,fk_leftmenu=holiday',		// Use r=value where r is index key used for the parent menu entry (higher parent must be a top menu entry)
+								'type'=>'left',			// This is a Left menu entry
+								'titre'=>'MenuReportMonth',
+								'mainmenu'=>'holiday',
+								'leftmenu'=>'holiday_report',
+								'url'=>'/holiday/month_report.php?mainmenu=holiday&action=request',
+								'langs'=>'holiday',	// Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
+								'position'=>104,
+								'enabled'=>'$conf->holiday->enabled',			// Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled.
+								'perms'=>'$user->rights->holiday->view_log',		// Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules
+								'target'=>'',
+								'user'=>2);				// 0=Menu for internal users, 1=external users, 2=both
+		$r++;
 
 		// Exports
 		$r=1;
 
-
-      // Agenda
-		$this->Agenda = 1;
-		$this->agendas = array('holiday:holidayAgenda');
-
 		// Example:
 		// $this->export_code[$r]=$this->rights_class.'_'.$r;
 		// $this->export_label[$r]='CustomersInvoicesAndInvoiceLines';	// Translation key (used only if key ExportDataset_xxx_z not found)
diff --git a/htdocs/holiday/class/holiday.class.php b/htdocs/holiday/class/holiday.class.php
index af159020ce58e3ab50a08e772126006d7bb17735..9664299657c5ab1131709315d192b6df8c588058 100644
--- a/htdocs/holiday/class/holiday.class.php
+++ b/htdocs/holiday/class/holiday.class.php
@@ -20,18 +20,14 @@
  *    \file       holiday.class.php
  *    \ingroup    holiday
  *    \brief      Class file of the module paid holiday.
- *		\version    $Id: holiday.class.php,v 1.00 2011/09/15 11:00:00 dmouillard Exp $
- *		\author		dmouillard@teclib.com <Dimitri Mouillard>
- *		\remarks	   Class file of the module paid holiday.
  */
+require_once DOL_DOCUMENT_ROOT .'/core/class/commonobject.class.php';
 
 
 /**
- *    \class      Holiday
- *    \brief      Class pour les Congés Payés
- *		\remarks	   Développé par Teclib ( http://www.teclib.com/ )
+ *	Class of the module paid holiday. Developed by Teclib ( http://www.teclib.com/ )
  */
-class Holiday // extends CommonObject
+class Holiday extends CommonObject
 {
     var $db;
     var $error;
@@ -65,7 +61,7 @@ class Holiday // extends CommonObject
     /**
      *   Constructor
      *
-     *   @param      DB      Database handler
+     *   @param		DoliDB		$db      Database handler
      */
     function __construct($db)
     {
@@ -81,10 +77,11 @@ class Holiday // extends CommonObject
 
 
     /**
-     *      \brief      Créer un congés payés dans la base de données
-     *      \param      user        	User that create
-     *      \param      notrigger	    0=launch triggers after, 1=disable triggers
-     *      \return     int         	<0 if KO, Id of created object if OK
+     *   Créer un congés payés dans la base de données
+     *
+     *   @param		User	$user        	User that create
+     *   @param     int		$notrigger	    0=launch triggers after, 1=disable triggers
+     *   @return    int			         	<0 if KO, Id of created object if OK
      */
     function create($user, $notrigger=0)
     {
@@ -158,9 +155,10 @@ class Holiday // extends CommonObject
 
 
     /**
-     *    \brief      Load object in memory from database
-     *    \param      id          id object
-     *    \return     int         <0 if KO, >0 if OK
+     *	Load object in memory from database
+     *
+     *  @param	int		$id         Id object
+     *  @return int         		<0 if KO, >0 if OK
      */
     function fetch($id)
     {
@@ -227,11 +225,12 @@ class Holiday // extends CommonObject
     }
 
     /**
-     *    \brief      Liste les congés payés pour un utilisateur
-     *    \param      user id     ID de l'utilisateur à lister
-     *    \param      order       Filtrage par ordre
-     *    \param      filter      Filtre de séléction
-     *    \return     int         -1 si erreur, 1 si OK et 2 si pas de résultat
+     *	Liste les congés payés pour un utilisateur
+     *
+     *  @param		int		$user_id    ID de l'utilisateur à lister
+     *  @param      string	$order      Filtrage par ordre
+     *  @param      string	$filter     Filtre de séléction
+     *  @return     int      			-1 si erreur, 1 si OK et 2 si pas de résultat
      */
     function fetchByUser($user_id,$order='',$filter='')
     {
@@ -321,10 +320,11 @@ class Holiday // extends CommonObject
     }
 
     /**
-     *    \brief      Liste les congés payés de tout les utilisateurs
-     *    \param      order       Filtrage par ordre
-     *    \param      filter      Filtre de séléction
-     *    \return     int         -1 si erreur, 1 si OK et 2 si pas de résultat
+     *	Liste les congés payés de tout les utilisateurs
+     *
+     *  @param	string	$order      Filtrage par ordre
+     *  @param  string	$filter     Filtre de séléction
+     *  @return int         		-1 si erreur, 1 si OK et 2 si pas de résultat
      */
     function fetchAll($order,$filter)
     {
@@ -413,10 +413,11 @@ class Holiday // extends CommonObject
     }
 
     /**
-     *      \brief      Update database
-     *      \param      user        	User that modify
-     *      \param      notrigger	    0=launch triggers after, 1=disable triggers
-     *      \return     int         	<0 if KO, >0 if OK
+     *	Update database
+     *
+     *  @param	User	$user        	User that modify
+     *  @param  int		$notrigger	    0=launch triggers after, 1=disable triggers
+     *  @return int         			<0 if KO, >0 if OK
      */
     function update($user=0, $notrigger=0)
     {
@@ -521,9 +522,9 @@ class Holiday // extends CommonObject
     /**
      *   Delete object in database
      *
-     *	 @param     user        	User that delete
-     *   @param     notrigger	    0=launch triggers after, 1=disable triggers
-     *	 @return	int				<0 if KO, >0 if OK
+     *	 @param		User	$user        	User that delete
+     *   @param     int		$notrigger	    0=launch triggers after, 1=disable triggers
+     *	 @return	int						<0 if KO, >0 if OK
      */
     function delete($user, $notrigger=0)
     {
@@ -565,11 +566,12 @@ class Holiday // extends CommonObject
     }
 
     /**
+     *	verifDateHolidayCP
      *
-     * @param unknown_type $fk_user
-     * @param unknown_type $dateDebut
-     * @param unknown_type $dateFin
-     * @return boolean
+     * 	@param 	int		$fk_user		Id user
+     * 	@param 	date	$dateDebut		Start date
+     * 	@param 	date	$dateFin		End date
+     * 	@return boolean
      */
     function verifDateHolidayCP($fk_user,$dateDebut,$dateFin)
     {
@@ -588,9 +590,10 @@ class Holiday // extends CommonObject
     }
 
     /**
-     *    \brief      Retourne la traduction du statut d'un congé payé
-     *    \param      statut      int du statut du congé
-     *    \return     string      retourne la traduction du statut
+     *  Retourne la traduction du statut d'un congé payé
+     *
+     *  @param		int		$statut     int du statut du congé
+     *  @return     string      		retourne la traduction du statut
      */
     function getStatutCP($statut) {
 
@@ -620,9 +623,10 @@ class Holiday // extends CommonObject
     }
 
     /**
-     *    \brief      Affiche un select HTML des statuts de congés payés
-     *    \param      selected    int du statut séléctionné par défaut
-     *    \return     select      affiche le select des statuts
+     *   Affiche un select HTML des statuts de congés payés
+     *
+     *   @param 	int		$selected   int du statut séléctionné par défaut
+     *   @return    string				affiche le select des statuts
      */
     function selectStatutCP($selected='') {
 
@@ -652,9 +656,10 @@ class Holiday // extends CommonObject
     }
 
     /**
-     *    \brief      Retourne un select HTML des groupes d'utilisateurs
-     *    \param      prefix      nom du champ dans le formulaire
-     *    \return     select      retourne le select des groupes
+     *	Retourne un select HTML des groupes d'utilisateurs
+     *
+     *  @param	string	$prefix     nom du champ dans le formulaire
+     *  @return string				retourne le select des groupes
      */
     function selectUserGroup($prefix)
     {
@@ -709,8 +714,9 @@ class Holiday // extends CommonObject
     /**
      *  Met à jour une option du module Holiday Payés
      *
-     *  @param      name        nom du paramètre de configuration
-     *  @return     value       vrai si mise à jour OK sinon faux
+     *  @param	string	$name       nom du paramètre de configuration
+     *  @param	string	$value      vrai si mise à jour OK sinon faux
+     *  @return boolean				ok or ko
      */
     function updateConfCP($name,$value) {
 
@@ -730,8 +736,8 @@ class Holiday // extends CommonObject
     /**
      *  Retourne la valeur d'un paramètre de configuration
      *
-     *  @param      name        nom du paramètre de configuration
-     *  @return     string      retourne la valeur du paramètre
+     *  @param	string	$name       nom du paramètre de configuration
+     *  @return string      		retourne la valeur du paramètre
      */
     function getConfCP($name)
     {
@@ -759,9 +765,11 @@ class Holiday // extends CommonObject
     }
 
     /**
-     *    Met à jour le timestamp de la dernière mise à jour du solde des CP
+     *	Met à jour le timestamp de la dernière mise à jour du solde des CP
      *
-     *    @return     nothing      ne retourne rien
+     *	@param		int		$userID		Id of user
+     *	@param		int		$nbHoliday	Nb of days
+     *  @return     void
      */
     function updateSoldeCP($userID='',$nbHoliday='')
     {
@@ -827,9 +835,10 @@ class Holiday // extends CommonObject
     }
 
     /**
-     *    \brief      Retourne un checked si vrai
-     *    \param      name        nom du paramètre de configuration
-     *    \return     string      retourne checked si > 0
+     *	Retourne un checked si vrai
+     *
+     *  @param	string	$name       nom du paramètre de configuration
+     *  @return string      		retourne checked si > 0
      */
     function getCheckOption($name) {
 
@@ -851,9 +860,11 @@ class Holiday // extends CommonObject
 
 
     /**
-     *    Créer les entrées pour chaque utilisateur au moment de la configuration
+     *  Créer les entrées pour chaque utilisateur au moment de la configuration
      *
-     *    @return     nothing      ne retourne rien
+     *  @param	boolean		$single		Single
+     *  @param	int			$userid		Id user
+     *  @return void
      */
     function createCPusers($single=false,$userid='')
     {
@@ -879,9 +890,10 @@ class Holiday // extends CommonObject
     }
 
     /**
-     *    \brief      Supprime un utilisateur du module Congés Payés
-     *    \param      int          ID de l'utilisateur à supprimer
-     *    \return     boolean      Vrai si pas d'erreur, faut si Erreur
+     *  Supprime un utilisateur du module Congés Payés
+     *
+     *  @param	int		$user_id        ID de l'utilisateur à supprimer
+     *  @return boolean      			Vrai si pas d'erreur, faut si Erreur
      */
     function deleteCPuser($user_id) {
 
@@ -894,9 +906,10 @@ class Holiday // extends CommonObject
 
 
     /**
-     *    \brief      Retourne le solde de congés payés pour un utilisateur
-     *    \param      user_id      ID de l'utilisateur
-     *    \return     float        Retourne le solde de congés payés de l'utilisateur
+     *  Retourne le solde de congés payés pour un utilisateur
+     *
+     *  @param	int		$user_id    ID de l'utilisateur
+     *  @return float        		Retourne le solde de congés payés de l'utilisateur
      */
     function getCPforUser($user_id) {
 
@@ -919,9 +932,9 @@ class Holiday // extends CommonObject
      *    Liste la liste des utilisateurs du module congés
      *    uniquement pour vérifier si il existe de nouveau utilisateur
      *
-     *    @param      boolean     si vrai retourne une liste, si faux retourne un array
-     *    @param      boolean     si vrai retourne pour Dolibarr si faux retourne pour CP
-     *    @return     string      retourne un tableau de tout les utilisateurs actifs
+     *    @param      boolean	$liste	    si vrai retourne une liste, si faux retourne un array
+     *    @param      boolean   $type		si vrai retourne pour Dolibarr si faux retourne pour CP
+     *    @return     string      			retourne un tableau de tout les utilisateurs actifs
      */
     function fetchUsers($liste=true,$type=true)
     {
@@ -1093,8 +1106,9 @@ class Holiday // extends CommonObject
     }
 
     /**
-     *    \brief      Compte le nombre d'utilisateur actifs dans Dolibarr
-     *    \return     int      retourne le nombre d'utilisateur
+     *	Compte le nombre d'utilisateur actifs dans Dolibarr
+     *
+     *  @return     int      retourne le nombre d'utilisateur
      */
     function countActiveUsers() {
 
@@ -1109,10 +1123,11 @@ class Holiday // extends CommonObject
     }
 
     /**
-     *    \brief      Compare le nombre d'utilisateur actif de Dolibarr à celui des utilisateurs des congés payés
-     *    \param      nbUsersDolibarr    nombre d'utilisateur actifs dans Dolibarr
-     *    \param      nbUsersHoliday      nombre d'utilisateur actifs dans le module congés payés
-     *    \return     nothing            ne retourne rien
+     *  Compare le nombre d'utilisateur actif de Dolibarr à celui des utilisateurs des congés payés
+     *
+     *  @param    int	$userDolibarr	nombre d'utilisateur actifs dans Dolibarr
+     *  @param    int	$userCP    		nombre d'utilisateur actifs dans le module congés payés
+     *  @return   void
      */
     function verifNbUsers($userDolibarr,$userCP) {
 
@@ -1200,9 +1215,12 @@ class Holiday // extends CommonObject
 
 
     /**
-     *		\brief		Retourne le nombre de jours ouvrés entre deux dates
-     *    \param      Date de début et date de fin au format TimeStamp
-     *    \remarks    Prise en compte des jours fériés en France
+     *	Retourne le nombre de jours ouvrés entre deux dates
+     *  Prise en compte des jours fériés en France
+     *
+     *  @param	date	$date_start     Start date
+     *  @param	date	$date_stop		Stop date
+     *  @return	int						Nb of days
      */
 
     function getOpenDays($date_start, $date_stop) {
@@ -1214,7 +1232,7 @@ class Holiday // extends CommonObject
         $diff_year = date('Y', $date_stop) - date('Y', $date_start);
 
         for ($i = 0; $i <= $diff_year; $i++) {
-            $year = (int)date('Y', $date_start) + $i;
+            $year = (int) date('Y', $date_start) + $i;
             // Liste des jours feriés
             $arr_bank_holidays[] = '1_1_'.$year; // Jour de l'an
             $arr_bank_holidays[] = '1_5_'.$year; // Fete du travail
@@ -1247,8 +1265,9 @@ class Holiday // extends CommonObject
     }
 
     /**
-     *    \brief      Liste les évènements de congés payés enregistré
-     *    \return     int         -1 si erreur, 1 si OK et 2 si pas de résultat
+     *  Liste les évènements de congés payés enregistré
+     *
+     *  @return     int         -1 si erreur, 1 si OK et 2 si pas de résultat
      */
     function fetchEventsCP()
     {
@@ -1301,8 +1320,11 @@ class Holiday // extends CommonObject
     }
 
     /**
-     *    \brief      Créer un évènement de congés payés
-     *    \return     int         -1 si erreur, id si OK
+     *  Créer un évènement de congés payés
+     *
+     *	@param	User	$user			User
+     *	@param	int		$notrigger		No trigger
+     *  @return int         			-1 si erreur, id si OK
      */
     function createEventCP($user, $notrigger=0)
     {
@@ -1354,8 +1376,12 @@ class Holiday // extends CommonObject
     }
 
     /**
-     *    \brief      Met à jour les évènements de congés payés
-     *    \return     int         -1 si erreur, id si OK
+     *  Met à jour les évènements de congés payés
+     *
+     *	@param	int		$rowid		Row id
+     *	@param	string	$name		Name
+     *	@param	value	$value		Value
+     *  @return int         		-1 si erreur, id si OK
      */
     function updateEventCP($rowid, $name, $value) {
 
@@ -1372,7 +1398,13 @@ class Holiday // extends CommonObject
         return false;
     }
 
-    function selectEventCP() {
+    /**
+     * select event
+     *
+     * @return string|boolean
+     */
+    function selectEventCP()
+    {
 
         $sql = "SELECT *";
         $sql.= " FROM ".MAIN_DB_PREFIX."holiday_events";
@@ -1405,6 +1437,12 @@ class Holiday // extends CommonObject
 
     }
 
+    /**
+     * deleteEvent
+     *
+     * @param 	int		$rowid		Row id
+     * @return 	boolean				Success or not
+     */
     function deleteEventCP($rowid) {
 
         $sql = "DELETE FROM ".MAIN_DB_PREFIX."holiday_events";
@@ -1419,6 +1457,12 @@ class Holiday // extends CommonObject
         }
     }
 
+    /**
+     * getValueEventCp
+     *
+     * @param 	int		$rowid		Row id
+     * @return string|boolean
+     */
     function getValueEventCp($rowid) {
 
         $sql = "SELECT value";
@@ -1435,6 +1479,12 @@ class Holiday // extends CommonObject
         }
     }
 
+    /**
+     * getNameEventCp
+     *
+     * @param 	int		$rowid		Row id
+     * @return unknown|boolean
+     */
     function getNameEventCp($rowid) {
 
         $sql = "SELECT name";
@@ -1451,6 +1501,15 @@ class Holiday // extends CommonObject
         }
     }
 
+    /**
+     * addLogCP
+     *
+     * @param 	int		$fk_user_action		Id user creation
+     * @param 	int		$fk_user_update		Id user update
+     * @param 	int		$type				Type
+     * @param 	int		$new_solde			New value
+     * @return number|string
+     */
     function addLogCP($fk_user_action,$fk_user_update,$type,$new_solde) {
 
         global $conf, $langs, $db;
@@ -1513,10 +1572,11 @@ class Holiday // extends CommonObject
     }
 
     /**
-     *    \brief      Liste le log des congés payés
-     *    \param      order       Filtrage par ordre
-     *    \param      filter      Filtre de séléction
-     *    \return     int         -1 si erreur, 1 si OK et 2 si pas de résultat
+     *  Liste le log des congés payés
+     *
+     *  @param	string	$order      Filtrage par ordre
+     *  @param  string	$filter     Filtre de séléction
+     *  @return int         		-1 si erreur, 1 si OK et 2 si pas de résultat
      */
     function fetchLog($order,$filter)
     {
diff --git a/htdocs/holiday/class/holidayagenda.class.php b/htdocs/holiday/class/holidayagenda.class.php
deleted file mode 100644
index a1a3839ecd1c22c249e4a5cfe9f36f8cb98b91cd..0000000000000000000000000000000000000000
--- a/htdocs/holiday/class/holidayagenda.class.php
+++ /dev/null
@@ -1,278 +0,0 @@
-<?php
-/* Copyright (C) 2011	Anthony Hebert		<ahebert@teclib.com>
- * Copyright (C) 2012	Regis Houssin		<regis@dolibarr.fr>
- * Copyright (C) 2012	Laurent Destailleur	<eldy@users.sourceforge.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/**
- *	\file       holidayagenda.class.php
- *	\ingroup    holiday
- *	\brief      Fichier d'agenda pour le module Congés Payés
- */
-
-
-/**
- *	\class 		CommonAgenda
- *	\brief 		Classe mere pour heritage des classes Agenda
- */
-
-// FIXME this class not exist
-//require_once DOL_DOCUMENT_ROOT.'/core/class/commonagenda.class.php';
-require_once DOL_DOCUMENT_ROOT.'/projet/class/task.class.php';
-
-
-class HolidayAgenda// extends CommonAgenda
-{
-    var $db;
-
-    // Nombre de seconde à ajouter ou soustraire pour être GMT?
-    var $offset 	= 3600;
-
-    // Pays ou calendrier assujetti à l'heure d'été?
-    var $summerTime = 0;
-
-
-
-
-    /**
-     *	Constructor
-     *
-     *	@param	DoliDB	$db		Database access handler
-     */
-    function construct($db)
-    {
-        $this->db = $db;
-    }
-
-    /**
-     *    Fonction permettant d'altérer les paramètres javascript
-     *    du calendrier
-     *    @what string clé de paramètre recherché
-     */
-    function getParams($what = ''){
-
-        $params =  array(  'timeslotsPerHour' => 2,
-                         'businessHours'    => '{start: 0, end: 24, limitDisplay: true }');
-
-        if(empty($what)){
-            return $params;
-        }elseif(array_key_exists($what,$params)){
-            return $params[$what];
-        }else{
-            return false;
-        }
-    }
-
-    /**
-     *    Accesseur des évènements à mettre dans l'agenda
-     *    @param	$start		Timestamp de début
-     *    @param	$end		Timestamp de fin
-     *    @param	$options 	Array stockage de paramètre à utiliser au besoin.
-     * 	  @return   $events		Events encodés en Json
-     */
-    function getEvents($start,$end,$options)
-    {
-        global $langs,$conf,$user,$db;
-
-        $langs->load('holiday');
-        $data = array();
-
-        if(!isset($options['user']) or empty($options['user'])):
-        $users_id = $user->id;
-        else:
-        $users_id = $options['user'];
-        endif;
-
-        $sql  = "SELECT lcp.rowid as id,
-                  UNIX_TIMESTAMP(date_debut) as start,
-                  UNIX_TIMESTAMP(CONCAT(date_fin, ' 23:59:59')) as end,
-                  lu.firstname as prenom,
-                  lu.name as nom,
-                  lcp.description as title,
-                  lcp.statut as statut
-                  FROM llx_holiday lcp
-                  INNER JOIN llx_user lu
-                  ON lu.rowid = lcp.fk_user
-                  WHERE lcp.fk_user = {$users_id}
-                  AND lcp.statut in (1,3)
-                  AND (UNIX_TIMESTAMP(date_debut) BETWEEN LEFT('$start',10) AND LEFT('$end',10)
-                  OR UNIX_TIMESTAMP(CONCAT(date_fin, ' 23:59:59')) BETWEEN LEFT('$start',10) AND LEFT('$end',10))
-               ";
-
-        $qry  = $db->query($sql);
-        $nbr  = $db->num_rows($qry);
-
-        if($nbr)
-        {
-            $i = 0;
-            while($res = $db->fetch_object($qry))
-            {
-                $data[$i]['eventid']		   = $res->id;
-                $data[$i]['readonly']	   = 0;
-                $data[$i]['draggable']	   = 0;
-                $data[$i]['resizable']	   = 0;
-                $data[$i]['eventstart']		= (string)$res->start;
-                $data[$i]['eventend']		= (string)$res->end;
-                $data[$i]['eventmessage']  = $res->message;
-                $data[$i]['extraInfo']        = $res->message;
-                $data[$i]['color']			= "#7AAC22";
-                $data[$i]['type']			= $langs->trans('CPTitreMenu');
-                $data[$i]['icon']			= "<img src='".DOL_URL_ROOT."/holiday/img/holiday.png' height=13 width=13 />";
-
-
-                $data[$i]['eventtitle'] = "<strong>{$res->prenom} {$res->nom}<br />{$res->title}</strong>";
-                $data[$i]['eventtitle'] .= ($res->statut == 1) ? "<br />{$langs->trans('ToValidateCP')}" : "<br />{$langs->trans('ValidateCP')}";
-                $i++;
-            }
-        }
-
-
-
-
-        return $data;
-    }
-
-
-    function getFormItems()
-    {
-        global $conf;
-
-        $fields = array(
-							'selectedTab'		=> 'input',
-							'user'		=> 'select'
-
-        );
-
-        return $fields;
-
-    }
-
-
-    /**
-     *    Accesseur d'un formulaire à mettre en en-tête de l'agenda
-     * 	  @return   $form		code html
-     */
-    function getForm($get,$post)
-    {
-        global $user,$langs,$conf,$db;
-
-        $post = $get + $post;
-
-        if($user->admin){
-            $sql = "SELECT * from llx_user where statut = 1";
-            $options = "";
-            $qry = $db->query($sql);
-            while($res = $db->fetch_object($qry)){
-                $options .= ((isset($_POST['user']) && $res->rowid == $_POST['user']) or ($res->rowid == $user->id and !isset($_POST['user'])))
-                ? "<option value={$res->rowid} selected='selected'>{$res->firstname} {$res->name}</option>"
-                : "<option value={$res->rowid}>{$res->firstname} {$res->name}</option>";
-            }
-
-
-
-        }
-        else{
-            $options = "<option value={$user->id} selected='selected'>{$user->prenom} {$user->nom}</option>";
-        }
-
-        $HTML = <<<HTML
-<form method='post' action="{$_SERVER["PHP_SELF"]}">
-<table class='border' width='100%'>
-   <tr>
-      <td>
-        {$langs->trans('Collab')}
-      </td>
-      <td>
-         <select name='user' id='user'>
-      {$options}
-         </select>
-         <input type='hidden' name='selectedTab' value='holidayagenda' />
-         <input type='submit' value='Envoyer' class='button' />
-      </td>
-   </tr>
-</table>
-</form>
-HTML;
-      $form = $HTML;
-      return $form;
-    }
-
-    /**
-     *    Exporteur au format iCal
-     *    @see		http://tools.ietf.org/html/rfc5545
-     *	  @todo		Export en iCal
-     * 	  @return   $iCal		calendrier au format iCal
-     */
-    static function exportIniCal()
-    {
-    }
-
-    /**
-     *    Générateur du lien public d'accès au calendrier iCal
-     *    @see		http://tools.ietf.org/html/rfc5545
-     *	  @todo		Générer le lien
-     * 	  @return   $iCal		calendrier au format iCal
-     */
-    function getiCalLink()
-    {
-        global $conf,$user,$langs;
-    }
-
-
-
-    /**
-     *    Accesseur du label à afficher par print_fiche_titre()
-     * 	  @return   $label		Label de l'agenda
-     */
-    function getLabel()
-    {
-        global $user,$langs,$conf;
-        $langs->load('holiday');
-        ob_start();
-        print_fiche_titre($langs->trans('ListeCP'));
-        $label = ob_get_contents();
-        ob_end_clean();
-
-        return $label;
-    }
-
-
-
-
-    function getTitle()
-    {
-        global $langs;
-        $langs->load('holiday');
-        return $langs->trans('CPTitreMenu');
-
-    }
-
-
-    function getLink($action = "")
-    {
-        global $conf,$user;
-
-        $action = ($action == 'create') ? 'request' : '';
-        $url = DOL_URL_ROOT."/holiday/fiche.php";
-
-        return (empty($action)) ? $url : $url."?action={$action}";
-    }
-
-
-
-}
-
-?>
diff --git a/htdocs/holiday/define_holiday.php b/htdocs/holiday/define_holiday.php
index 4c004235df8807540607e8845c5a63bf319b1471..7d68e823a1debb00cadc19069f7d41bc2335217a 100644
--- a/htdocs/holiday/define_holiday.php
+++ b/htdocs/holiday/define_holiday.php
@@ -25,8 +25,9 @@
  *		\author		dmouillard@teclib.com <Dimitri Mouillard>
  */
 
-require('pre.inc.php');
+require('../main.inc.php');
 require_once(DOL_DOCUMENT_ROOT. "/user/class/user.class.php");
+require_once(DOL_DOCUMENT_ROOT. "/holiday/common.inc.php");
 
 // Protection if external user
 if ($user->societe_id > 0) accessforbidden();
@@ -41,7 +42,9 @@ $action=GETPOST('action');
  * View
  */
 
-llxHeader($langs->trans('CPTitreMenu'));
+$form = new Form($db);
+
+llxHeader(array(),$langs->trans('CPTitreMenu'));
 
 print_fiche_titre($langs->trans('MenuConfCP'));
 
@@ -111,7 +114,25 @@ elseif($action == 'add_event')
 $var=true;
 $i = 0;
 
-print '<div class="tabBar">';
+$cp_events = $holiday->fetchEventsCP();
+
+if($cp_events == 1)
+{
+	print '<br><form method="POST" action="'.$_SERVER["PHP_SELF"].'">'."\n";
+	print '<input type="hidden" name="action" value="add_event" />';
+
+	print_fiche_titre($langs->trans('DefineEventUserCP'),'','');
+
+	print $langs->trans('MotifCP').' : ';
+	print $holiday->selectEventCP();
+	print ' '.$langs->trans('UserCP').' : ';
+	print $form->select_users('',"userCP",1,"",0,'');
+	print ' <input type="submit" value="'.$langs->trans("addEventToUserCP").'" name="bouton" class="button"/>';
+
+	print '</form><br>';
+}
+
+dol_fiche_head();
 
 print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">'."\n";
 print '<input type="hidden" name="action" value="update" />';
@@ -148,27 +169,9 @@ foreach($listUsers as $users)
 print '</table>';
 print '</form>';
 
-$cp_events = $holiday->fetchEventsCP();
-
-if($cp_events == 1) {
-
-    $html = new Form($db);
-
-    print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">'."\n";
-    print '<input type="hidden" name="action" value="add_event" />';
-
-    print '<h3>'.$langs->trans('DefineEventUserCP').'</h3>';
-    print $langs->trans('MotifCP').' : ';
-    print $holiday->selectEventCP();
-    print ' '.$langs->trans('UserCP').' : ';
-    print $html->select_users('',"userCP",1,"",0,'');
-    print ' <input type="submit" value="'.$langs->trans("addEventToUserCP").'" name="bouton" class="button"/>';
+dol_fiche_end();
 
+llxFooter();
 
-    print '</form>';
-}
-print '</div>';
-// Fin de page
 $db->close();
-llxFooter();
 ?>
diff --git a/htdocs/holiday/fiche.php b/htdocs/holiday/fiche.php
index 69c36f8acc112fa74663ac02e6b75d28ae92eecd..1499bc230baa32f8f842c23693067ef1e980afd1 100644
--- a/htdocs/holiday/fiche.php
+++ b/htdocs/holiday/fiche.php
@@ -25,12 +25,13 @@
  *		\remarks	   Form and file creation of paid holiday.
  */
 
-require('pre.inc.php');
+require('../main.inc.php');
 require_once(DOL_DOCUMENT_ROOT. "/core/class/html.form.class.php");
 require_once(DOL_DOCUMENT_ROOT. "/user/class/usergroup.class.php");
 require_once(DOL_DOCUMENT_ROOT. "/core/class/html.formfile.class.php");
 require_once(DOL_DOCUMENT_ROOT. "/core/class/CMailFile.class.php");
 require_once(DOL_DOCUMENT_ROOT. "/core/class/html.formmail.class.php");
+require_once(DOL_DOCUMENT_ROOT. "/holiday/common.inc.php");
 
 // Get parameters
 $myparam = GETPOST("myparam");
@@ -61,9 +62,9 @@ if ($action == 'add')
     $date_debut = dol_mktime(0, 0, 0, $_POST['date_debut_month'], $_POST['date_debut_day'], $_POST['date_debut_year']);
     $date_fin = dol_mktime(0, 0, 0, $_POST['date_fin_month'], $_POST['date_fin_day'], $_POST['date_fin_year']);
 
-    $valideur = $_POST['valideur'];
-    $description = trim($_POST['description']);
-    $userID = $_POST['userID'];
+    $valideur = GETPOST('valideur');
+    $description = trim(GETPOST('description'));
+    $userID = GETPOST('userID');
 
     // Si pas de date de début
     if (empty($date_debut))
@@ -108,7 +109,7 @@ if ($action == 'add')
     }
 
     // Si pas de validateur choisi
-    if($valideur < 1)
+    if ($valideur < 1)
     {
         header('Location: fiche.php?action=request&error=Valideur');
         exit;
@@ -137,7 +138,7 @@ if ($action == 'add')
 
 }
 
-if($action == 'update')
+if ($action == 'update')
 {
 
     // Si pas le droit de modifier une demande
@@ -163,13 +164,13 @@ if($action == 'update')
             $description = trim($_POST['description']);
 
             // Si pas de date de début
-            if(empty($_POST['date_debut_'])) {
+            if (empty($_POST['date_debut_'])) {
                 header('Location: fiche.php?id='.$_POST['holiday_id'].'&action=edit&error=nodatedebut');
                 exit;
             }
 
             // Si pas de date de fin
-            if(empty($_POST['date_fin_'])) {
+            if (empty($_POST['date_fin_'])) {
                 header('Location: fiche.php?id='.$_POST['holiday_id'].'&action=edit&error=nodatefin');
                 exit;
             }
@@ -178,19 +179,19 @@ if($action == 'update')
             $testDateFin = strtotime($date_fin);
 
             // Si date de début après la date de fin
-            if($testDateDebut > $testDateFin) {
+            if ($testDateDebut > $testDateFin) {
                 header('Location: fiche.php?id='.$_POST['holiday_id'].'&action=edit&error=datefin');
                 exit;
             }
 
             // Si pas de valideur choisi
-            if($valideur < 1) {
+            if ($valideur < 1) {
                 header('Location: fiche.php?id='.$_POST['holiday_id'].'&action=edit&error=Valideur');
                 exit;
             }
 
             // Si pas de jours ouvrés dans la demande
-            if($cp->getOpenDays($testDateDebut,$testDateFin) < 1) {
+            if ($cp->getOpenDays($testDateDebut,$testDateFin) < 1) {
                 header('Location: fiche.php?id='.$_POST['holiday_id'].'&action=edit&error=DureeHoliday');
                 exit;
             }
@@ -203,10 +204,13 @@ if($action == 'update')
             $verif = $cp->update($user->id);
 
             // Si pas d'erreur SQL on redirige vers la fiche de la demande
-            if($verif > 0) {
+            if ($verif > 0)
+            {
                 header('Location: fiche.php?id='.$_POST['holiday_id']);
                 exit;
-            } else {
+            }
+            else
+           {
                 // Sinon on affiche le formulaire de demande avec le message d'erreur SQL
                 header('Location: fiche.php?id='.$_POST['holiday_id'].'&action=edit&error=SQL_Create&msg='.$cp->error);
                 exit;
@@ -223,7 +227,6 @@ if ($action == 'confirm_delete'  && $_GET['confirm'] == 'yes')
 {
     if($user->rights->holiday->delete)
     {
-
         $cp = new Holiday($db);
         $cp->fetch($_GET['id']);
 
@@ -568,17 +571,14 @@ if ($action == 'confirm_cancel' && $_GET['confirm'] == 'yes')
  * View
 ****************************************************/
 
-llxHeader($langs->trans('CPTitreMenu'));
+llxHeader(array(),$langs->trans('CPTitreMenu'));
 
 if ($action == 'request')
 {
-
     // Si l'utilisateur n'a pas le droit de faire une demande
     if(!$user->rights->holiday->write)
     {
-        print '<div class="tabBar">';
-        print $langs->trans('CantCreateCP');
-        print '</div>'."\n";
+        $errors[]=$langs->trans('CantCreateCP');
     }
     else
     {
@@ -586,39 +586,36 @@ if ($action == 'request')
         print_fiche_titre($langs->trans('MenuAddCP'));
 
         // Si il y a une erreur
-        if(isset($_GET['error'])) {
+        if (GETPOST('error')) {
 
-            switch($_GET['error']) {
+            switch(GETPOST('error')) {
                 case 'datefin' :
-                    $msg = $langs->trans('ErrorEndDateCP');
+                    $errors[] = $langs->trans('ErrorEndDateCP');
                     break;
                 case 'SQL_Create' :
-                    $msg = $langs->trans('ErrorSQLCreateCP').' <b>'.htmlentities($_GET['msg']).'</b>';
+                    $errors[] = $langs->trans('ErrorSQLCreateCP').' <b>'.htmlentities($_GET['msg']).'</b>';
                     break;
                 case 'CantCreate' :
-                    $msg = $langs->trans('CantCreateCP');
+                    $errors[] = $langs->trans('CantCreateCP');
                     break;
                 case 'Valideur' :
-                    $msg = $langs->trans('InvalidValidatorCP');
+                    $errors[] = $langs->trans('InvalidValidatorCP');
                     break;
                 case 'nodatedebut' :
-                    $msg = $langs->trans('NoDateDebut');
+                    $errors[] = $langs->trans('NoDateDebut');
                     break;
                 case 'nodatedebut' :
-                    $msg = $langs->trans('NoDateFin');
+                    $errors[] = $langs->trans('NoDateFin');
                     break;
                 case 'DureeHoliday' :
-                    $msg = $langs->trans('ErrorDureeCP');
+                    $errors[] = $langs->trans('ErrorDureeCP');
                     break;
                 case 'alreadyCP' :
-                    $msg = $langs->trans('alreadyCPexist');
+                    $errors[] = $langs->trans('alreadyCPexist');
                     break;
             }
 
-            print '<div class="tabBar">';
-            print $msg;
-            print '</div>'."\n";
-
+            dol_htmloutput_mesg('',$errors,'error');
         }
 
         $html = new Form($db);
@@ -680,8 +677,8 @@ if ($action == 'request')
         if(!isset($_GET['datep'])) {
             $html->select_date($nextMonth,'date_debut_');
         } else {
-            $date = substr($_GET['datep'],0,4)."-".substr($_GET['datep'],4,2)."-".substr($_GET['datep'],6,2);
-            $html->select_date($date,'date_debut_');
+            $tmpdate = dol_mktime(0, 0, 0, GETPOST('datepmonth'), GETPOST('datepday'), GETPOST('datepyear'));
+            $html->select_date($tmpdate,'date_debut_');
         }
         print '</td>';
         print '</tr>';
@@ -692,8 +689,8 @@ if ($action == 'request')
         if(!isset($_GET['datep'])) {
             $html->select_date($nextMonth,'date_fin_');
         } else {
-            $date = substr($_GET['datef'],0,4)."-".substr($_GET['datef'],4,2)."-".substr($_GET['datef'],6,2);
-            $html->select_date($date,'date_fin_');
+            $tmpdate = dol_mktime(0, 0, 0, GETPOST('datefmonth'), GETPOST('datefday'), GETPOST('datefyear'));
+            $html->select_date($tmpdate,'date_fin_');
         }
         print '</td>';
         print '</tr>';
@@ -703,10 +700,10 @@ if ($action == 'request')
         $idGroupValid = $cp->getConfCP('userGroup');
 
         $validator = new UserGroup($db,$idGroupValid);
-        $valideur = $validator->listUsersForGroup();
+        $valideurarray = $validator->listUsersForGroup();
 
         print '<td>';
-        $html->select_users('',"valideur",1,"",0,$valideur,'');
+        print $html->select_dolusers($valideur,"valideur",1,"",0,$valideurarray,'');
         print '</td>';
         print '</tr>';
         print '<tr>';
@@ -758,42 +755,39 @@ elseif(isset($_GET['id']))
             //print_fiche_titre($langs->trans('TitreRequestCP'));
 
             // Si il y a une erreur
-            if(isset($_GET['error'])) {
+            if (GETPOST('error')) {
 
-                switch($_GET['error']) {
+                switch(GETPOST('error')) {
                     case 'datefin' :
-                        $msg = $langs->trans('ErrorEndDateCP');
+                        $errors[] = $langs->trans('ErrorEndDateCP');
                         break;
                     case 'SQL_Create' :
-                        $msg = $langs->trans('ErrorSQLCreateCP').' <b>'.htmlentities($_GET['msg']).'</b>';
+                        $errors[] = $langs->trans('ErrorSQLCreateCP').' <b>'.htmlentities($_GET['msg']).'</b>';
                         break;
                     case 'CantCreate' :
-                        $msg = $langs->trans('CantCreateCP');
+                        $errors[] = $langs->trans('CantCreateCP');
                         break;
                     case 'Valideur' :
-                        $msg = $langs->trans('InvalidValidatorCP');
+                        $errors[] = $langs->trans('InvalidValidatorCP');
                         break;
                     case 'nodatedebut' :
-                        $msg = $langs->trans('NoDateDebut');
+                        $errors[] = $langs->trans('NoDateDebut');
                         break;
                     case 'nodatedebut' :
-                        $msg = $langs->trans('NoDateFin');
+                        $errors[] = $langs->trans('NoDateFin');
                         break;
                     case 'DureeHoliday' :
-                        $msg = $langs->trans('ErrorDureeCP');
+                        $errors[] = $langs->trans('ErrorDureeCP');
                         break;
                     case 'NoMotifRefuse' :
-                        $msg = $langs->trans('NoMotifRefuseCP');
+                        $errors[] = $langs->trans('NoMotifRefuseCP');
                         break;
                     case 'mail' :
-                        $msg = $langs->trans('ErrorMailNotSend').'<br /><b>'.$_GET['error_content'].'</b>';
+                        $errors[] = $langs->trans('ErrorMailNotSend').'<br /><b>'.$_GET['error_content'].'</b>';
                         break;
                 }
 
-                print '<div class="tabBar">';
-                print $msg;
-                print '</div>';
-
+                dol_htmloutput_mesg('',$errors,'error');
             }
 
             // On vérifie si l'utilisateur à le droit de lire cette demande
@@ -810,7 +804,7 @@ elseif(isset($_GET['id']))
                 }
 
                 // Si envoi en validation
-                if($_GET['action'] == 'sendToValidate' && $cp->statut == 1 && $userID == $cp->fk_user) {
+                if ($action == 'sendToValidate' && $cp->statut == 1 && $userID == $cp->fk_user) {
                     $html = new Form($db);
 
                     $ret=$html->form_confirm("fiche.php?id=".$_GET['id'],$langs->trans("TitleToValidCP"),$langs->trans("ConfirmToValidCP"),"confirm_send", '', 0, 1);
@@ -818,7 +812,7 @@ elseif(isset($_GET['id']))
                 }
 
                 // Si validation de la demande
-                if($_GET['action'] == 'valid' && $cp->statut == 2 && $userID == $cp->fk_validator) {
+                if ($action == 'valid' && $cp->statut == 2 && $userID == $cp->fk_validator) {
                     $html = new Form($db);
 
                     $ret=$html->form_confirm("fiche.php?id=".$_GET['id'],$langs->trans("TitleValidCP"),$langs->trans("ConfirmValidCP"),"confirm_valid", '', 0, 1);
@@ -826,7 +820,7 @@ elseif(isset($_GET['id']))
                 }
 
                 // Si refus de la demande
-                if($_GET['action'] == 'refuse' && $cp->statut == 2 && $userID == $cp->fk_validator) {
+                if ($action == 'refuse' && $cp->statut == 2 && $userID == $cp->fk_validator) {
                     $html = new Form($db);
 
                     $array_input = array(array('type'=>"text",'label'=>"Entrez ci-dessous un motif de refus :",'name'=>"detail_refuse",'size'=>"50",'value'=>""));
@@ -835,7 +829,7 @@ elseif(isset($_GET['id']))
                 }
 
                 // Si annulation de la demande
-                if($_GET['action'] == 'cancel' && $cp->statut == 2 && $userID == $cp->fk_validator) {
+                if ($action == 'cancel' && $cp->statut == 2 && $userID == $cp->fk_validator) {
                     $html = new Form($db);
 
                     $ret=$html->form_confirm("fiche.php?id=".$_GET['id'],$langs->trans("TitleCancelCP"),$langs->trans("ConfirmCancelCP"),"confirm_cancel", '', 0, 1);
@@ -870,7 +864,7 @@ elseif(isset($_GET['id']))
                 if(!$edit) {
                     print '<tr>';
                     print '<td>'.$langs->trans('DateDebCP').'</td>';
-                    print '<td>'.date('d-m-Y', strtotime($cp->date_debut)).'</td>';
+                    print '<td>'.dol_print_date($cp->date_debut,'day').'</td>';
                     print '</tr>';
                 } else {
                     print '<tr>';
@@ -884,7 +878,7 @@ elseif(isset($_GET['id']))
                 if(!$edit) {
                     print '<tr>';
                     print '<td>'.$langs->trans('DateFinCP').'</td>';
-                    print '<td>'.date('d-m-Y', strtotime($cp->date_fin)).'</td>';
+                    print '<td>'.dol_print_date($cp->date_fin,'day').'</td>';
                     print '</tr>';
                 } else {
                     print '<tr>';
diff --git a/htdocs/holiday/index.php b/htdocs/holiday/index.php
index 9acaaad8df37535a8dd810dd65eef77f02c7624a..c8f69cdfb089f7fc4ef5e6df4df1e2ee65ea3c21 100644
--- a/htdocs/holiday/index.php
+++ b/htdocs/holiday/index.php
@@ -23,15 +23,39 @@
  *		\brief      List of holiday.
  */
 
-require('pre.inc.php');
+require('../main.inc.php');
 require_once(DOL_DOCUMENT_ROOT. "/core/class/html.form.class.php");
 require_once(DOL_DOCUMENT_ROOT. "/core/class/html.formother.class.php");
 require_once(DOL_DOCUMENT_ROOT. "/user/class/user.class.php");
 require_once(DOL_DOCUMENT_ROOT. "/user/class/usergroup.class.php");
+require_once(DOL_DOCUMENT_ROOT. "/holiday/common.inc.php");
 
 // Protection if external user
 if ($user->societe_id > 0) accessforbidden();
 
+$sortfield = GETPOST("sortfield");
+$sortorder = GETPOST("sortorder");
+$page = GETPOST("page");
+$page = is_numeric($page) ? $page : 0;
+$page = $page == -1 ? 0 : $page;
+
+if (! $sortfield) $sortfield="cp.rowid";
+if (! $sortorder) $sortorder="DESC";
+$offset = $conf->liste_limit * $page ;
+$pageprev = $page - 1;
+$pagenext = $page + 1;
+
+$search_ref      = GETPOST('search_ref');
+$month_create    = GETPOST('month_create');
+$year_create     = GETPOST('year_create');
+$month_start     = GETPOST('month_start');
+$year_start      = GETPOST('year_start');
+$month_end       = GETPOST('month_end');
+$year_end        = GETPOST('year_end');
+$search_employe  = GETPOST('search_employe');
+$search_valideur = GETPOST('search_valideur');
+$search_statut   = GETPOST('select_statut');
+
 
 /*
  * Actions
@@ -45,44 +69,12 @@ if ($user->societe_id > 0) accessforbidden();
  * View
  */
 
-llxHeader($langs->trans('CPTitreMenu'));
-
-/*****************************************
- * Tri du tableau
-*****************************************/
-
-$sortfield = isset($_GET["sortfield"])?$_GET["sortfield"]:$_POST["sortfield"];
-$sortorder = isset($_GET["sortorder"])?$_GET["sortorder"]:$_POST["sortorder"];
-$page = isset($_GET["page"])? $_GET["page"]:$_POST["page"];
-$page = is_numeric($page) ? $page : 0;
-$page = $page == -1 ? 0 : $page;
-
-if (! $sortfield) $sortfield="cp.rowid";
-if (! $sortorder) $sortorder="DESC";
-$offset = $conf->liste_limit * $page ;
-$pageprev = $page - 1;
-$pagenext = $page + 1;
-
-$order = " ORDER BY $sortfield $sortorder " . $db->plimit( $conf->liste_limit + 1 ,$offset);
-
-
-/*************************************
- * Filtres de recherche
-*************************************/
-
 $max_year = 5;
 $min_year = 10;
 
-$search_ref = $_GET['search_ref'];
-$month_create   = $_GET['month_create'];
-$year_create    = $_GET['year_create'];
-$month_start   = $_GET['month_start'];
-$year_start    = $_GET['year_start'];
-$month_end     = $_GET['month_end'];
-$year_end      = $_GET['year_end'];
-$search_employe = $_GET['search_employe'];
-$search_valideur = $_GET['search_valideur'];
-$search_statut = $_GET['select_statut'];
+llxHeader(array(),$langs->trans('CPTitreMenu'));
+
+$order = $db->order($sortfield,$sortorder).$db->plimit($conf->liste_limit + 1, $offset);
 
 // WHERE
 if(!empty($search_ref)){
@@ -219,7 +211,7 @@ print "</tr>\n";
 // FILTRES
 print '<tr class="liste_titre">';
 print '<td class="liste_titre" align="left" width="50">';
-print '<input class="flat" size="4" type="text" name="search_ref" value="'.$_GET['search_ref'].'">';
+print '<input class="flat" size="4" type="text" name="search_ref" value="'.$search_ref.'">';
 
 // DATE CREATE
 print '<td class="liste_titre" colspan="1" align="center">';
diff --git a/htdocs/holiday/month_report.php b/htdocs/holiday/month_report.php
index 6bf294e695c36651030b9daa14332f84eac4ee43..c8ef3267ec66410e5546e776185af41ca406a642 100644
--- a/htdocs/holiday/month_report.php
+++ b/htdocs/holiday/month_report.php
@@ -24,10 +24,11 @@
  *		\author		flegastelois@teclib.com <François Legastelois>
  *		\remarks	   Monthly report of paid holiday.
  */
-require('pre.inc.php');
+require('../main.inc.php');
 require_once(DOL_DOCUMENT_ROOT.'/user/class/user.class.php');
 require_once(DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php');
 require_once(DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php');
+require_once(DOL_DOCUMENT_ROOT. "/holiday/common.inc.php");
 
 // Protection if external user
 if ($user->societe_id > 0) accessforbidden();
@@ -46,7 +47,7 @@ $html = new Form($db);
 $htmlother = new FormOther($db);
 
 
-llxHeader($langs->trans('CPTitreMenu'));
+llxHeader(array(),$langs->trans('CPTitreMenu'));
 
 $cp = new Holiday($db);
 
diff --git a/htdocs/holiday/pre.inc.php b/htdocs/holiday/pre.inc.php
deleted file mode 100644
index 16c802505314690cb8b8b1fbff9067513ffb011b..0000000000000000000000000000000000000000
--- a/htdocs/holiday/pre.inc.php
+++ /dev/null
@@ -1,112 +0,0 @@
-<?php
-/* Copyright (C) 2011	Laurent Destailleur	<eldy@users.sourceforge.net>
- * Copyright (C) 2011	Dimitri Mouillard	<dmouillard@teclib.com>
- * Copyright (C) 2012	Regis Houssin		<regis@dolibarr.fr>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/**
- *   	\file       pre.inc.php
- *		\ingroup    holiday
- *		\brief      Load files and menus.
- */
-
-$res=0;
-if (! $res && file_exists("../main.inc.php")) $res=@include("../main.inc.php");         // For root directory
-if (! $res && file_exists("../../main.inc.php")) $res=@include("../../main.inc.php");   // For "custom" directory
-if (! $res && file_exists("../../../main.inc.php")) $res=@include("../../../main.inc.php");
-if (! $res) die("Include of main fails");
-
-dol_include_once("/holiday/class/holiday.class.php");
-
-$langs->load("user");
-$langs->load("other");
-$langs->load("holiday");
-
-
-if (empty($conf->holiday->enabled))
-{
-    llxHeader('',$langs->trans('CPTitreMenu'));
-    print '<div class="tabBar">';
-    print '<span style="color: #FF0000;">'.$langs->trans('NotActiveModCP').'</span>';
-    print '</div>';
-    llxFooter();
-    exit();
-}
-
-
-$verifConf.= "SELECT value";
-$verifConf.= " FROM ".MAIN_DB_PREFIX."holiday_config";
-$verifConf.= " WHERE name = 'userGroup'";
-
-$result = $db->query($verifConf);
-$obj = $db->fetch_object($result);
-
-if($obj->value == NULL)
-{
-    llxHeader('',$langs->trans('CPTitreMenu'));
-    print '<div class="tabBar">';
-    print '<span style="color: #FF0000;">'.$langs->trans('NotConfigModCP').'</span>';
-    print '</div>';
-    llxFooter();
-    exit();
-}
-
-
-
-function llxHeader($title)
-{
-    global $user, $conf, $langs;
-
-    top_htmlhead('',$title);
-    top_menu($head);
-
-    $menu = new Menu();
-
-    $menu->add("/holiday/index.php?mainmenu=holiday",$langs->trans("CPTitreMenu"));
-    if($user->rights->holiday->write) {
-        $menu->add("/holiday/fiche.php?mainmenu=holiday&action=request",$langs->trans("MenuAddCP"),2);
-    }
-    if($user->rights->holiday->define_holiday) {
-        $menu->add("/holiday/define_holiday.php?leftmenu=setup&mainmenu=holiday",$langs->trans("MenuConfCP"),2);
-    }
-    if($user->rights->holiday->view_log) {
-        $menu->add("/holiday/view_log.php?mainmenu=holiday",$langs->trans("MenuLogCP"),2);
-    }
-    if($user->rights->holiday->view_log) {
-        $menu->add("/holiday/month_report.php?mainmenu=holiday",$langs->trans("MenuReportMonth"),2);
-    }
-
-    if(in_array('employees', $conf->modules) && $user->rights->employees->module_access)
-    {
-        $menu->add("/employees/index.php",$langs->trans("Menu_Title_EMPLOYEE"));
-        $menu->add("/employees/index.php",$langs->trans("Menu_List_EMPLOYEE"),2);
-        $menu->add("/employees/fiche.php?action=create",$langs->trans("Menu_Add_EMPLOYEE"),2);
-        $menu->add("/employees/hire.php?action=create",$langs->trans("Menu_Add_HIRE"),2);
-        $menu->add("/employees/salary.php?action=create",$langs->trans("Menu_Add_SALARY"),2);
-        $menu->add("/employees/job.php?action=create",$langs->trans("Menu_Add_JOB"),2);
-        $menu->add("/employees/disease.php?action=create",$langs->trans("Menu_Add_DISEASE"),2);
-        $menu->add("/employees/month_report_disease.php",$langs->trans("Menu_Report_Disease"),2);
-        $menu->add("/employees/set_hire_type.php",$langs->trans("Menu_Set_Hire_type"),2);
-
-        if(!isset($_SESSION['employees_passphrase'])){
-            $menu->add("/employees/store_secure.php",$langs->trans("Menu_Store_Secure"),2);
-        }
-    }
-
-    left_menu($menu->liste);
-}
-
-?>
diff --git a/htdocs/holiday/view_log.php b/htdocs/holiday/view_log.php
index c66b9779b4874ce48114cdaf00f12901ec1f7f7a..786f9d3dab6a99821273374c9056cd9afdfe4e46 100644
--- a/htdocs/holiday/view_log.php
+++ b/htdocs/holiday/view_log.php
@@ -23,8 +23,9 @@
  *  \ingroup    holiday
  */
 
-require('pre.inc.php');
+require('../main.inc.php');
 require_once(DOL_DOCUMENT_ROOT. "/user/class/user.class.php");
+require_once(DOL_DOCUMENT_ROOT. "/holiday/common.inc.php");
 
 // Protection if external user
 if ($user->societe_id > 0) accessforbidden();
@@ -38,7 +39,7 @@ if(!$user->rights->holiday->view_log) accessforbidden();
  * View
 */
 
-llxHeader($langs->trans('CPTitreMenu'));
+llxHeader(array(),$langs->trans('CPTitreMenu'));
 
 
 $cp = new Holiday($db);