--- /tmp/dsg/dolibarr/htdocs/core/menus/standard/github_auguria.lib.php
+++ /tmp/dsg/dolibarr/htdocs/core/menus/standard/client_auguria.lib.php
@@ -59,14 +59,14 @@
 	global $usemenuhider;

 	$usemenuhider = 1;

 

-	// Show/Hide vertical menu. The hamburger icon for .menuhider action.

-	if ($mode != 'jmobile' && $mode != 'topnb' && $usemenuhider && empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER))

-	{

-		$showmode = 1;

-		$classname = 'class="tmenu menuhider"';

-		$idsel = 'menu';

-

-		$menu->add('#', (!empty($conf->global->THEME_TOPMENU_DISABLE_IMAGE) ? '<span class="fa fa-bars"></span>' : ''), 0, $showmode, $atarget, "xxx", '', 0, $id, $idsel, $classname);

+    // Show/Hide vertical menu. The hamburger icon for .menuhider action.

+    if ($mode != 'jmobile' && $mode != 'topnb' && $usemenuhider && empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER))

+	{

+	    $showmode = 1;

+	    $classname = 'class="tmenu menuhider"';

+	    $idsel = 'menu';

+

+	    $menu->add('#', (!empty($conf->global->THEME_TOPMENU_DISABLE_IMAGE) ? '<span class="fa fa-bars"></span>' : ''), 0, $showmode, $atarget, "xxx", '', 0, $id, $idsel, $classname);

 	}

 

 	$num = count($newTabMenu);

@@ -74,29 +74,28 @@
 	{

 		$idsel = (empty($newTabMenu[$i]['mainmenu']) ? 'none' : $newTabMenu[$i]['mainmenu']);

 

-		$shorturl = '';

-

 		$showmode = dol_auguria_showmenu($type_user, $newTabMenu[$i], $listofmodulesforexternal);

-		if ($showmode == 1) {

+		if ($showmode == 1)

+		{

 			$newTabMenu[$i]['url'] = make_substitutions($newTabMenu[$i]['url'], $substitarray);

 

 			$url = $shorturl = $newTabMenu[$i]['url'];

 

 			if (!preg_match("/^(http:\/\/|https:\/\/)/i", $newTabMenu[$i]['url']))

 			{

-				$tmp = explode('?', $newTabMenu[$i]['url'], 2);

+			    $tmp = explode('?', $newTabMenu[$i]['url'], 2);

 				$url = $shorturl = $tmp[0];

 				$param = (isset($tmp[1]) ? $tmp[1] : '');

 

 				// Complete param to force leftmenu to '' to close open menu when we click on a link with no leftmenu defined.

-				if ((!preg_match('/mainmenu/i', $param)) && (!preg_match('/leftmenu/i', $param)) && !empty($newTabMenu[$i]['url']))

-				{

-					$param .= ($param ? '&' : '').'mainmenu='.$newTabMenu[$i]['mainmenu'].'&leftmenu=';

-				}

-				if ((!preg_match('/mainmenu/i', $param)) && (!preg_match('/leftmenu/i', $param)) && empty($newTabMenu[$i]['url']))

-				{

-					$param .= ($param ? '&' : '').'leftmenu=';

-				}

+			    if ((!preg_match('/mainmenu/i', $param)) && (!preg_match('/leftmenu/i', $param)) && !empty($newTabMenu[$i]['url']))

+			    {

+			        $param .= ($param ? '&' : '').'mainmenu='.$newTabMenu[$i]['mainmenu'].'&leftmenu=';

+			    }

+			    if ((!preg_match('/mainmenu/i', $param)) && (!preg_match('/leftmenu/i', $param)) && empty($newTabMenu[$i]['url']))

+			    {

+			        $param .= ($param ? '&' : '').'leftmenu=';

+			    }

 				//$url.="idmenu=".$newTabMenu[$i]['rowid'];    // Already done by menuLoad

 				$url = dol_buildpath($url, 1).($param ? '?'.$param : '');

 				//$shorturl = $shorturl.($param?'?'.$param:'');

@@ -108,20 +107,17 @@
 			// TODO Find a generic solution

 			if (preg_match('/search_project_user=__search_project_user__/', $shorturl))

 			{

-				$search_project_user = GETPOST('search_project_user', 'int');

-				if ($search_project_user) $shorturl = preg_replace('/search_project_user=__search_project_user__/', 'search_project_user='.$search_project_user, $shorturl);

-				else $shorturl = preg_replace('/search_project_user=__search_project_user__/', '', $shorturl);

+			    $search_project_user = GETPOST('search_project_user', 'int');

+			    if ($search_project_user) $shorturl = preg_replace('/search_project_user=__search_project_user__/', 'search_project_user='.$search_project_user, $shorturl);

+			    else $shorturl = preg_replace('/search_project_user=__search_project_user__/', '', $shorturl);

 			}

 

 			// Define the class (top menu selected or not)

 			if (!empty($_SESSION['idmenu']) && $newTabMenu[$i]['rowid'] == $_SESSION['idmenu']) $classname = 'class="tmenusel"';

 			elseif (!empty($_SESSION["mainmenu"]) && $newTabMenu[$i]['mainmenu'] == $_SESSION["mainmenu"]) $classname = 'class="tmenusel"';

 			else $classname = 'class="tmenu"';

-		} elseif ($showmode == 2) {

-			$classname = 'class="tmenu"';

-		} else {

-			$classname = '';

-		}

+		}

+		elseif ($showmode == 2) $classname = 'class="tmenu"';

 

 		$menu->add($shorturl, $newTabMenu[$i]['titre'], 0, $showmode, ($newTabMenu[$i]['target'] ? $newTabMenu[$i]['target'] : $atarget), ($newTabMenu[$i]['mainmenu'] ? $newTabMenu[$i]['mainmenu'] : $newTabMenu[$i]['rowid']), ($newTabMenu[$i]['leftmenu'] ? $newTabMenu[$i]['leftmenu'] : ''), $newTabMenu[$i]['position'], $id, $idsel, $classname);

 	}

@@ -149,7 +145,8 @@
 		 {

 		 $urllogo=DOL_URL_ROOT.'/viewimage.php?cache=1&amp;modulepart=mycompany&amp;file='.urlencode('logos/thumbs/'.$mysoc->logo_mini);

 		 }*/

-		else {

+		else

+		{

 			$urllogo = DOL_URL_ROOT.'/theme/dolibarr_512x512_white.png';

 			$logoContainerAdditionalClass = '';

 		}

@@ -167,8 +164,8 @@
 	if (empty($noout)) {

 		foreach ($menu->liste as $menuval) {

 			print_start_menu_entry_auguria($menuval['idsel'], $menuval['classname'], $menuval['enabled']);

-			print_text_menu_entry_auguria($menuval['titre'], $menuval['enabled'], ($menuval['url'] != '#' ?DOL_URL_ROOT:'').$menuval['url'], $menuval['id'], $menuval['idsel'], $menuval['classname'], ($menuval['target'] ? $menuval['target'] : $atarget));

-			print_end_menu_entry_auguria($menuval['enabled']);

+	    	print_text_menu_entry_auguria($menuval['titre'], $menuval['enabled'], ($menuval['url'] != '#' ?DOL_URL_ROOT:'').$menuval['url'], $menuval['id'], $menuval['idsel'], $menuval['classname'], ($menuval['target'] ? $menuval['target'] : $atarget));

+		    print_end_menu_entry_auguria($menuval['enabled']);

 		}

 	}

 

@@ -190,7 +187,7 @@
  */

 function print_start_menu_array_auguria()

 {

-	global $conf;

+    global $conf;

 

 	print '<div class="tmenudiv">';

 	print '<ul role="navigation" class="tmenu"'.(empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER) ? '' : ' title="Top menu"').'>';

@@ -307,22 +304,22 @@
 

 	if (is_array($moredata) && !empty($moredata['searchform']))	// searchform can contains select2 code or link to show old search form or link to switch on search page

 	{

-		print "\n";

-		print "<!-- Begin SearchForm -->\n";

-		print '<div id="blockvmenusearch" class="blockvmenusearch">'."\n";

-		print $moredata['searchform'];

-		print '</div>'."\n";

-		print "<!-- End SearchForm -->\n";

+        print "\n";

+        print "<!-- Begin SearchForm -->\n";

+        print '<div id="blockvmenusearch" class="blockvmenusearch">'."\n";

+        print $moredata['searchform'];

+        print '</div>'."\n";

+        print "<!-- End SearchForm -->\n";

 	}

 

 	if (is_array($moredata) && !empty($moredata['bookmarks']))

 	{

-		print "\n";

-		print "<!-- Begin Bookmarks -->\n";

-		print '<div id="blockvmenubookmarks" class="blockvmenubookmarks">'."\n";

-		print $moredata['bookmarks'];

-		print '</div>'."\n";

-		print "<!-- End Bookmarks -->\n";

+	    print "\n";

+	    print "<!-- Begin Bookmarks -->\n";

+	    print '<div id="blockvmenubookmarks" class="blockvmenubookmarks">'."\n";

+	    print $moredata['bookmarks'];

+	    print '</div>'."\n";

+	    print "<!-- End Bookmarks -->\n";

 	}

 

 	$substitarray = getCommonSubstitutionArray($langs, 0, null, null);

@@ -334,7 +331,7 @@
 	// We update newmenu for special dynamic menus

 	if ($conf->banque->enabled && $user->rights->banque->lire && $mainmenu == 'bank')	// Entry for each bank account

 	{

-		include_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; // Required for to get Account::TYPE_CASH for example

+	    include_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; // Required for to get Account::TYPE_CASH for example

 

 		$sql = "SELECT rowid, label, courant, rappro, courant";

 		$sql .= " FROM ".MAIN_DB_PREFIX."bank_account";

@@ -360,7 +357,8 @@
 				}

 				$i++;

 			}

-		} else dol_print_error($db);

+		}

+		else dol_print_error($db);

 		$db->free($resql);

 	}

 

@@ -390,16 +388,13 @@
 					$nature = '';

 

 					// Must match array $sourceList defined into journals_list.php

-					if ($objp->nature == 2 && !empty($conf->facture->enabled) && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_SALES)) $nature = "sells";

-					if ($objp->nature == 3

-						&& (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_invoice->enabled))

-						&& empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_PURCHASES))

-						$nature = "purchases";

-					if ($objp->nature == 4 && !empty($conf->banque->enabled)) $nature = "bank";

-					if ($objp->nature == 5 && !empty($conf->expensereport->enabled) && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS)) $nature = "expensereports";

-					if ($objp->nature == 1) $nature = "various";

-					if ($objp->nature == 8) $nature = "inventory";

-					if ($objp->nature == 9) $nature = "hasnew";

+					if ($objp->nature == 2 && ! empty($conf->facture->enabled)) $nature="sells";

+					if ($objp->nature == 3 && (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_invoice->enabled))) $nature="purchases";

+					if ($objp->nature == 4 && ! empty($conf->banque->enabled)) $nature="bank";

+					if ($objp->nature == 5 && ! empty($conf->expensereport->enabled)) $nature="expensereports";

+					if ($objp->nature == 1) $nature="various";

+					if ($objp->nature == 8) $nature="inventory";

+					if ($objp->nature == 9) $nature="hasnew";

 

 					// To enable when page exists

 					if (empty($conf->global->ACCOUNTANCY_SHOW_DEVELOP_JOURNAL))

@@ -409,17 +404,20 @@
 

 					if ($nature)

 					{

-						$langs->load('accountancy');

-						$journallabel = $langs->transnoentities($objp->label); // Labels in this table are set by loading llx_accounting_abc.sql. Label can be 'ACCOUNTING_SELL_JOURNAL', 'InventoryJournal', ...

-						$newmenu->add('/accountancy/journal/'.$nature.'journal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal='.$objp->rowid, $journallabel, 2, $user->rights->accounting->comptarapport->lire);

+                        $langs->load('accountancy');

+                        $journallabel = $langs->transnoentities($objp->label); // Labels in this table are set by loading llx_accounting_abc.sql. Label can be 'ACCOUNTING_SELL_JOURNAL', 'InventoryJournal', ...

+                        $newmenu->add('/accountancy/journal/'.$nature.'journal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal='.$objp->rowid, $journallabel, 2, $user->rights->accounting->comptarapport->lire);

 					}

 					$i++;

 				}

-			} else {

+			}

+			else

+			{

 				// Should not happend. Entries are added

 				$newmenu->add('', $langs->trans("NoJournalDefined"), 2, $user->rights->accounting->comptarapport->lire);

 			}

-		} else dol_print_error($db);

+		}

+		else dol_print_error($db);

 		$db->free($resql);

 	}

 

@@ -470,12 +468,14 @@
 				$lastopened = true;

 				for ($j = ($i + 1); $j < $num; $j++)

 				{

-					if (empty($menu_array[$j]['level'])) $lastopened = false;

+				    if (empty($menu_array[$j]['level'])) $lastopened = false;

 				}

 				if ($altok % 2 == 0)

 				{

 					print '<div class="blockvmenu blockvmenuimpair'.$invert.($lastopened ? ' blockvmenulast' : '').($altok == 1 ? ' blockvmenufirst' : '').'">'."\n";

-				} else {

+				}

+				else

+				{

 					print '<div class="blockvmenu blockvmenupair'.$invert.($lastopened ? ' blockvmenulast' : '').($altok == 1 ? ' blockvmenufirst' : '').'">'."\n";

 				}

 			}

@@ -533,12 +533,15 @@
 					else print '</span>';

 					print '</div>'."\n";

 					$lastlevel0 = 'enabled';

-				} elseif ($showmenu)                 // Not enabled but visible (so greyed)

+				}

+				elseif ($showmenu)                 // Not enabled but visible (so greyed)

 				{

 					print '<div class="menu_titre">'.$tabstring.'<font class="vmenudisabled">'.$menu_array[$i]['titre'].'</font></div>'."\n";

 					$lastlevel0 = 'greyed';

-				} else {

-					$lastlevel0 = 'hidden';

+				}

+				else

+				{

+				    $lastlevel0 = 'hidden';

 				}

 				if ($showmenu)

 				{

@@ -556,14 +559,15 @@
 				{

 					print '<div class="menu_contenu'.$cssmenu.'">'.$tabstring;

 					if ($shorturlwithoutparam) print '<a class="vsmenu" title="'.dol_escape_htmltag($menu_array[$i]['titre']).'" href="'.$url.'"'.($menu_array[$i]['target'] ? ' target="'.$menu_array[$i]['target'].'"' : '').'>';

-					else print '<span class="vsmenu" title="'.dol_escape_htmltag($menu_array[$i]['titre']).'">';

+					else print '<span class="vsmenu">';

 					print $menu_array[$i]['titre'];

 					if ($shorturlwithoutparam) print '</a>';

 					else print '</span>';

 					// If title is not pure text and contains a table, no carriage return added

 					if (!strstr($menu_array[$i]['titre'], '<table')) print '<br>';

 					print '</div>'."\n";

-				} elseif ($showmenu && $lastlevel0 == 'enabled')       // Not enabled but visible (so greyed), except if parent was not enabled.

+				}

+				elseif ($showmenu && $lastlevel0 == 'enabled')       // Not enabled but visible (so greyed), except if parent was not enabled.

 				{

 					print '<div class="menu_contenu'.$cssmenu.'">'.$tabstring.'<font class="vsmenudisabled vsmenudisabledmargin">'.$menu_array[$i]['titre'].'</font><br></div>'."\n";

 				}

--- /tmp/dsg/dolibarr/htdocs/core/menus/standard/github_auguria_menu.php
+++ /tmp/dsg/dolibarr/htdocs/core/menus/standard/client_auguria_menu.php
@@ -29,31 +29,31 @@
 class MenuManager

 {

 	/**

-	 * @var DoliDB Database handler.

-	 */

-	public $db;

-

-	public $type_user; // Put 0 for internal users, 1 for external users

-	public $atarget = ""; // To store default target to use onto links

-	public $name = "auguria";

-

-	public $menu_array;

-	public $menu_array_after;

-

-	public $tabMenu;

-

-

-	/**

-	 *  Constructor

-	 *

+     * @var DoliDB Database handler.

+     */

+    public $db;

+

+    public $type_user; // Put 0 for internal users, 1 for external users

+    public $atarget = ""; // To store default target to use onto links

+    public $name = "auguria";

+

+    public $menu_array;

+    public $menu_array_after;

+

+    public $tabMenu;

+

+

+    /**

+     *  Constructor

+     *

 	 *  @param	DoliDB		$db     	Database handler

-	 *  @param	int			$type_user	Type of user

-	 */

-	public function __construct($db, $type_user)

-	{

-		$this->type_user = $type_user;

-		$this->db = $db;

-	}

+     *  @param	int			$type_user	Type of user

+     */

+    public function __construct($db, $type_user)

+    {

+    	$this->type_user = $type_user;

+    	$this->db = $db;

+    }

 

 

    	/**

@@ -65,252 +65,270 @@
    	 */

    	public function loadMenu($forcemainmenu = '', $forceleftmenu = '')

    	{

-		global $conf, $user, $langs;

+    	global $conf, $user, $langs;

 

    		// On sauve en session le menu principal choisi

-		if (GETPOSTISSET("mainmenu")) $_SESSION["mainmenu"] = GETPOST("mainmenu", 'aZ09');

-		if (GETPOSTISSET("idmenu"))   $_SESSION["idmenu"] = GETPOST("idmenu", 'int');

-

-		// Read mainmenu and leftmenu that define which menu to show

-		if (GETPOSTISSET("mainmenu"))

-		{

-			// On sauve en session le menu principal choisi

-			$mainmenu = GETPOST("mainmenu", 'aZ09');

-			$_SESSION["mainmenu"] = $mainmenu;

-			$_SESSION["leftmenuopened"] = "";

-		} else {

-			// On va le chercher en session si non defini par le lien

-			$mainmenu = isset($_SESSION["mainmenu"]) ? $_SESSION["mainmenu"] : '';

-		}

+    	if (isset($_GET["mainmenu"])) $_SESSION["mainmenu"] = $_GET["mainmenu"];

+    	if (isset($_GET["idmenu"]))   $_SESSION["idmenu"] = $_GET["idmenu"];

+

+    	// Read mainmenu and leftmenu that define which menu to show

+    	if (isset($_GET["mainmenu"]))

+    	{

+    		// On sauve en session le menu principal choisi

+    		$mainmenu = $_GET["mainmenu"];

+    		$_SESSION["mainmenu"] = $mainmenu;

+    		$_SESSION["leftmenuopened"] = "";

+    	}

+    	else

+    	{

+    		// On va le chercher en session si non defini par le lien

+    		$mainmenu = isset($_SESSION["mainmenu"]) ? $_SESSION["mainmenu"] : '';

+    	}

 		if (!empty($forcemainmenu)) $mainmenu = $forcemainmenu;

 

-		if (GETPOSTISSET("leftmenu"))

-		{

-			// On sauve en session le menu principal choisi

-			$leftmenu = GETPOST("leftmenu", 'aZ09');

-			$_SESSION["leftmenu"] = $leftmenu;

-

-			if ($_SESSION["leftmenuopened"] == $leftmenu)	// To collapse

-			{

-				//$leftmenu="";

-				$_SESSION["leftmenuopened"] = "";

-			} else {

-				$_SESSION["leftmenuopened"] = $leftmenu;

-			}

-		} else {

-			// On va le chercher en session si non defini par le lien

-			$leftmenu = isset($_SESSION["leftmenu"]) ? $_SESSION["leftmenu"] : '';

-		}

-		if (!empty($forceleftmenu)) $leftmenu = $forceleftmenu;

-

-		require_once DOL_DOCUMENT_ROOT.'/core/class/menubase.class.php';

-		$tabMenu = array();

-		$menuArbo = new Menubase($this->db, 'auguria');

-		$menuArbo->menuLoad($mainmenu, $leftmenu, $this->type_user, 'auguria', $tabMenu);

-		$this->tabMenu = $tabMenu;

-		//var_dump($tabMenu);

-

-		//if ($forcemainmenu == 'all') { var_dump($this->tabMenu); exit; }

+    	if (isset($_GET["leftmenu"]))

+    	{

+    		// On sauve en session le menu principal choisi

+    		$leftmenu = $_GET["leftmenu"];

+    		$_SESSION["leftmenu"] = $leftmenu;

+

+    		if ($_SESSION["leftmenuopened"] == $leftmenu)	// To collapse

+    		{

+    			//$leftmenu="";

+    			$_SESSION["leftmenuopened"] = "";

+    		}

+    		else

+    		{

+    			$_SESSION["leftmenuopened"] = $leftmenu;

+    		}

+    	} else {

+    		// On va le chercher en session si non defini par le lien

+    		$leftmenu = isset($_SESSION["leftmenu"]) ? $_SESSION["leftmenu"] : '';

+    	}

+    	if (!empty($forceleftmenu)) $leftmenu = $forceleftmenu;

+

+    	require_once DOL_DOCUMENT_ROOT.'/core/class/menubase.class.php';

+    	$tabMenu = array();

+    	$menuArbo = new Menubase($this->db, 'auguria');

+    	$menuArbo->menuLoad($mainmenu, $leftmenu, $this->type_user, 'auguria', $tabMenu);

+    	$this->tabMenu = $tabMenu;

+    	//var_dump($tabMenu);

+

+    	//if ($forcemainmenu == 'all') { var_dump($this->tabMenu); exit; }

    	}

 

 

-	/**

-	 *  Show menu.

-	 *  Menu defined in sql tables were stored into $this->tabMenu BEFORE this is called.

-	 *

-	 *	@param	string	$mode		    'top', 'topnb', 'left', 'jmobile' (used to get full xml ul/li menu)

-	 *  @param	array	$moredata		An array with more data to output

-	 *  @return int                     0 or nb of top menu entries if $mode = 'topnb'

+    /**

+     *  Show menu.

+     *  Menu defined in sql tables were stored into $this->tabMenu BEFORE this is called.

+     *

+     *	@param	string	$mode		    'top', 'topnb', 'left', 'jmobile' (used to get full xml ul/li menu)

+     *  @param	array	$moredata		An array with more data to output

+     *  @return int                     0 or nb of top menu entries if $mode = 'topnb'

 	 */

 	public function showmenu($mode, $moredata = null)

 	{

-		global $conf, $langs, $user;

-

-		require_once DOL_DOCUMENT_ROOT.'/core/menus/standard/auguria.lib.php';

-

-		if ($this->type_user == 1)

-		{

-			$conf->global->MAIN_SEARCHFORM_SOCIETE_DISABLED = 1;

-			$conf->global->MAIN_SEARCHFORM_CONTACT_DISABLED = 1;

-		}

+    	global $conf, $langs, $user;

+

+        require_once DOL_DOCUMENT_ROOT.'/core/menus/standard/auguria.lib.php';

+

+        if ($this->type_user == 1)

+        {

+        	$conf->global->MAIN_SEARCHFORM_SOCIETE_DISABLED = 1;

+	        $conf->global->MAIN_SEARCHFORM_CONTACT_DISABLED = 1;

+        }

 

 		require_once DOL_DOCUMENT_ROOT.'/core/class/menu.class.php';

-		$this->menu = new Menu();

-

-		if (empty($conf->global->MAIN_MENU_INVERT))

-		{

-			if ($mode == 'top')  print_auguria_menu($this->db, $this->atarget, $this->type_user, $this->tabMenu, $this->menu, 0, $mode);

-			if ($mode == 'left') print_left_auguria_menu($this->db, $this->menu_array, $this->menu_array_after, $this->tabMenu, $this->menu, 0, '', '', $moredata);

-		} else {

-			$conf->global->MAIN_SHOW_LOGO = 0;

-			if ($mode == 'top')  print_left_auguria_menu($this->db, $this->menu_array, $this->menu_array_after, $this->tabMenu, $this->menu, 0);

-			if ($mode == 'left') print_auguria_menu($this->db, $this->atarget, $this->type_user, $this->tabMenu, $this->menu, 0, $mode);

-		}

+        $this->menu = new Menu();

+

+        if (empty($conf->global->MAIN_MENU_INVERT))

+        {

+        	if ($mode == 'top')  print_auguria_menu($this->db, $this->atarget, $this->type_user, $this->tabMenu, $this->menu, 0, $mode);

+        	if ($mode == 'left') print_left_auguria_menu($this->db, $this->menu_array, $this->menu_array_after, $this->tabMenu, $this->menu, 0, '', '', $moredata);

+        }

+        else

+        {

+        	$conf->global->MAIN_SHOW_LOGO = 0;

+        	if ($mode == 'top')  print_left_auguria_menu($this->db, $this->menu_array, $this->menu_array_after, $this->tabMenu, $this->menu, 0);

+        	if ($mode == 'left') print_auguria_menu($this->db, $this->atarget, $this->type_user, $this->tabMenu, $this->menu, 0, $mode);

+        }

 

 		if ($mode == 'topnb')

 		{

-			print_auguria_menu($this->db, $this->atarget, $this->type_user, $this->tabMenu, $this->menu, 1, $mode);

-			return $this->menu->getNbOfVisibleMenuEntries();

+		    print_auguria_menu($this->db, $this->atarget, $this->type_user, $this->tabMenu, $this->menu, 1, $mode);

+		    return $this->menu->getNbOfVisibleMenuEntries();

 		}

 

-		if ($mode == 'jmobile')     // Used to get menu in xml ul/li

-		{

-			print_auguria_menu($this->db, $this->atarget, $this->type_user, $this->tabMenu, $this->menu, 1, $mode);

-

-			// $this->menu->liste is top menu

-			//var_dump($this->menu->liste);exit;

-			$lastlevel = array();

-			print '<!-- Generate menu list from menu handler '.$this->name.' -->'."\n";

-			foreach ($this->menu->liste as $key => $val)		// $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu'

-			{

-				print '<ul class="ulmenu" data-inset="true">';

-				print '<li class="lilevel0">';

-				if ($val['enabled'] == 1)

-				{

-					$substitarray = array('__LOGIN__' => $user->login, '__USER_ID__' => $user->id, '__USER_SUPERVISOR_ID__' => $user->fk_user);

-					$substitarray['__USERID__'] = $user->id; // For backward compatibility

-					$val['url'] = make_substitutions($val['url'], $substitarray);

-

-					$relurl = dol_buildpath($val['url'], 1);

-					$canonurl = preg_replace('/\?.*$/', '', $val['url']);

-

-					print '<a class="alilevel0" href="#">';

+        if ($mode == 'jmobile')     // Used to get menu in xml ul/li

+        {

+        	print_auguria_menu($this->db, $this->atarget, $this->type_user, $this->tabMenu, $this->menu, 1, $mode);

+

+            // $this->menu->liste is top menu

+            //var_dump($this->menu->liste);exit;

+        	$lastlevel = array();

+        	print '<!-- Generate menu list from menu handler '.$this->name.' -->'."\n";

+        	foreach ($this->menu->liste as $key => $val)		// $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu'

+        	{

+        		print '<ul class="ulmenu" data-inset="true">';

+        		print '<li class="lilevel0">';

+        		if ($val['enabled'] == 1)

+        		{

+        			$substitarray = array('__LOGIN__' => $user->login, '__USER_ID__' => $user->id, '__USER_SUPERVISOR_ID__' => $user->fk_user);

+        			$substitarray['__USERID__'] = $user->id; // For backward compatibility

+        			$val['url'] = make_substitutions($val['url'], $substitarray);

+

+        			$relurl = dol_buildpath($val['url'], 1);

+        			$canonurl = preg_replace('/\?.*$/', '', $val['url']);

+

+        			print '<a class="alilevel0" href="#">';

 

 					// Add font-awesome

 					if ($val['level'] == 0 && $val['mainmenu'] == 'home') print '<span class="fa fa-home fa-fw paddingright" aria-hidden="true"></span>';

 

 					print $val['titre'];

-					print '</a>'."\n";

-

-					// Search submenu fot this mainmenu entry

-					$tmpmainmenu = $val['mainmenu'];

-					$tmpleftmenu = 'all';

-					$submenu = new Menu();

-					print_left_auguria_menu($this->db, $this->menu_array, $this->menu_array_after, $this->tabMenu, $submenu, 1, $tmpmainmenu, $tmpleftmenu);

-					$nexturl = dol_buildpath($submenu->liste[0]['url'], 1);

-

-					$canonrelurl = preg_replace('/\?.*$/', '', $relurl);

-					$canonnexturl = preg_replace('/\?.*$/', '', $nexturl);

-					//var_dump($canonrelurl);

-					//var_dump($canonnexturl);

-					print '<ul>'."\n";

-					if (($canonrelurl != $canonnexturl && !in_array($val['mainmenu'], array('tools')))

-						|| (strpos($canonrelurl, '/product/index.php') !== false || strpos($canonrelurl, '/compta/bank/list.php') !== false))

+        			print '</a>'."\n";

+

+        			// Search submenu fot this mainmenu entry

+        			$tmpmainmenu = $val['mainmenu'];

+        			$tmpleftmenu = 'all';

+        			$submenu = new Menu();

+        			print_left_auguria_menu($this->db, $this->menu_array, $this->menu_array_after, $this->tabMenu, $submenu, 1, $tmpmainmenu, $tmpleftmenu);

+        			$nexturl = dol_buildpath($submenu->liste[0]['url'], 1);

+

+        			$canonrelurl = preg_replace('/\?.*$/', '', $relurl);

+        			$canonnexturl = preg_replace('/\?.*$/', '', $nexturl);

+        			//var_dump($canonrelurl);

+        			//var_dump($canonnexturl);

+        			print '<ul>'."\n";

+        			if (($canonrelurl != $canonnexturl && !in_array($val['mainmenu'], array('tools')))

+        				|| (strpos($canonrelurl, '/product/index.php') !== false || strpos($canonrelurl, '/compta/bank/list.php') !== false))

 					{

 						// We add sub entry

 						print str_pad('', 1).'<li class="lilevel1 ui-btn-icon-right ui-btn">'; // ui-btn to highlight on clic

 						print '<a href="'.$relurl.'">';

-						if ($langs->trans(ucfirst($val['mainmenu'])."Dashboard") == ucfirst($val['mainmenu'])."Dashboard")  // No translation

-						{

-							if (in_array($val['mainmenu'], array('cashdesk', 'externalsite', 'website', 'collab'))) print $langs->trans("Access");

-							else print $langs->trans("Dashboard");

-						} else print $langs->trans(ucfirst($val['mainmenu'])."Dashboard");

+					    if ($langs->trans(ucfirst($val['mainmenu'])."Dashboard") == ucfirst($val['mainmenu'])."Dashboard")  // No translation

+        				{

+        				    if (in_array($val['mainmenu'], array('cashdesk', 'externalsite', 'website', 'collab'))) print $langs->trans("Access");

+        				    else print $langs->trans("Dashboard");

+        				}

+						else print $langs->trans(ucfirst($val['mainmenu'])."Dashboard");

 						print '</a>';

 						print '</li>'."\n";

-					}

-

-					if ($val['level'] == 0)

+        			}

+

+    				if ($val['level'] == 0)

 					{

-						if ($val['enabled'])

-						{

-							$lastlevel[0] = 'enabled';

-						} elseif ($showmenu)                 // Not enabled but visible (so greyed)

-						{

-							$lastlevel[0] = 'greyed';

-						} else {

-							$lastlevel[0] = 'hidden';

-						}

+					    if ($val['enabled'])

+					    {

+					        $lastlevel[0] = 'enabled';

+					    }

+					    elseif ($showmenu)                 // Not enabled but visible (so greyed)

+					    {

+					        $lastlevel[0] = 'greyed';

+					    }

+					    else

+					    {

+					        $lastlevel[0] = 'hidden';

+					    }

 					}

 

 					$lastlevel2 = array();

 					foreach ($submenu->liste as $key2 => $val2)		// $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu'

-					{

+        			{

 						$showmenu = true;

 						if (!empty($conf->global->MAIN_MENU_HIDE_UNAUTHORIZED) && empty($val2['enabled'])) $showmenu = false;

 

-						// If at least one parent is not enabled, we do not show any menu of all children

+        				// If at least one parent is not enabled, we do not show any menu of all children

 						if ($val2['level'] > 0)

 						{

-							$levelcursor = $val2['level'] - 1;

-							while ($levelcursor >= 0)

-							{

-								if ($lastlevel2[$levelcursor] != 'enabled') $showmenu = false;

-								$levelcursor--;

-							}

+						    $levelcursor = $val2['level'] - 1;

+						    while ($levelcursor >= 0)

+						    {

+                                if ($lastlevel2[$levelcursor] != 'enabled') $showmenu = false;

+                                $levelcursor--;

+						    }

 						}

 

 						if ($showmenu)		// Visible (option to hide when not allowed is off or allowed)

-	   					{

-	   						$substitarray = array('__LOGIN__' => $user->login, '__USER_ID__' => $user->id, '__USER_SUPERVISOR_ID__' => $user->fk_user);

-	   						$substitarray['__USERID__'] = $user->id; // For backward compatibility

-	   						$val2['url'] = make_substitutions($val2['url'], $substitarray); // Make also substitution of __(XXX)__ and __[XXX]__

-

-	   						if (!preg_match("/^(http:\/\/|https:\/\/)/i", $val2['url']))

-	   						{

-	   							$relurl2 = dol_buildpath($val2['url'], 1);

-	   						} else {

-	   							$relurl2 = $val2['url'];

-	   						}

-							$canonurl2 = preg_replace('/\?.*$/', '', $val2['url']);

-							//var_dump($val2['url'].' - '.$canonurl2.' - '.$val2['level']);

-							if (in_array($canonurl2, array('/admin/index.php', '/admin/tools/index.php', '/core/tools.php'))) $relurl2 = '';

-

-							$disabled = '';

-							if (!$val2['enabled'])

-							{

-								$disabled = " vsmenudisabled";

-							}

-

-							print str_pad('', $val2['level'] + 1);

-							print '<li class="lilevel'.($val2['level'] + 1);

-							if ($val2['level'] == 0) print ' ui-btn-icon-right ui-btn'; // ui-btn to highlight on clic

-							print $disabled.'">'; // ui-btn to highlight on clic

-							if ($relurl2)

-							{

-								if ($val2['enabled'])	// Allowed

-								{

-									print '<a href="'.$relurl2.'"';

-									//print ' data-ajax="false"';

-									print '>';

-									$lastlevel2[$val2['level']] = 'enabled';

-								} else // Not allowed but visible (greyed)

-								{

-									print '<a href="#" class="vsmenudisabled">';

-									$lastlevel2[$val2['level']] = 'greyed';

-								}

-							} else {

-								if ($val2['enabled'])	// Allowed

-								{

-									$lastlevel2[$val2['level']] = 'enabled';

-								} else {

-									$lastlevel2[$val2['level']] = 'greyed';

-								}

-							}

-							print $val2['titre'];

-							if ($relurl2)

-							{

-								if ($val2['enabled'])	// Allowed

-									print '</a>';

-								else print '</a>';

-							}

-							print '</li>'."\n";

-	   					}

-					}

-					//var_dump($submenu);

-					print '</ul>';

-				}

-				if ($val['enabled'] == 2)

-				{

-					print '<font class="vsmenudisabled">'.$val['titre'].'</font>';

-				}

-				print '</li>';

-				print '</ul>'."\n";

-			}

-		}

-

-		unset($this->menu);

-

-		//print 'xx'.$mode;

-		return 0;

-	}

+       					{

+       						$substitarray = array('__LOGIN__' => $user->login, '__USER_ID__' => $user->id, '__USER_SUPERVISOR_ID__' => $user->fk_user);

+       						$substitarray['__USERID__'] = $user->id; // For backward compatibility

+       						$val2['url'] = make_substitutions($val2['url'], $substitarray); // Make also substitution of __(XXX)__ and __[XXX]__

+

+       						if (!preg_match("/^(http:\/\/|https:\/\/)/i", $val2['url']))

+       						{

+       							$relurl2 = dol_buildpath($val2['url'], 1);

+       						}

+       						else

+       						{

+       							$relurl2 = $val2['url'];

+       						}

+	        				$canonurl2 = preg_replace('/\?.*$/', '', $val2['url']);

+	        				//var_dump($val2['url'].' - '.$canonurl2.' - '.$val2['level']);

+	        				if (in_array($canonurl2, array('/admin/index.php', '/admin/tools/index.php', '/core/tools.php'))) $relurl2 = '';

+

+	        				$disabled = '';

+	        				if (!$val2['enabled'])

+	        				{

+	        				    $disabled = " vsmenudisabled";

+	        				}

+

+	        				print str_pad('', $val2['level'] + 1);

+	        				print '<li class="lilevel'.($val2['level'] + 1);

+	        				if ($val2['level'] == 0) print ' ui-btn-icon-right ui-btn'; // ui-btn to highlight on clic

+	        				print $disabled.'">'; // ui-btn to highlight on clic

+	        				if ($relurl2)

+	        				{

+	        					if ($val2['enabled'])	// Allowed

+	        					{

+	        						print '<a href="'.$relurl2.'"';

+		        					//print ' data-ajax="false"';

+		        					print '>';

+		        					$lastlevel2[$val2['level']] = 'enabled';

+	        					}

+	        					else					// Not allowed but visible (greyed)

+	        					{

+				        			print '<a href="#" class="vsmenudisabled">';

+				        			$lastlevel2[$val2['level']] = 'greyed';

+	        					}

+	        				}

+	        				else

+	        				{

+	        				    if ($val2['enabled'])	// Allowed

+	        				    {

+	        				        $lastlevel2[$val2['level']] = 'enabled';

+	        				    }

+	        				    else

+	        				    {

+	        				        $lastlevel2[$val2['level']] = 'greyed';

+	        				    }

+	        				}

+	        				print $val2['titre'];

+	        				if ($relurl2)

+	        				{

+	        					if ($val2['enabled'])	// Allowed

+	        						print '</a>';

+	        					else

+	        						print '</a>';

+	        				}

+	        				print '</li>'."\n";

+       					}

+        			}

+        			//var_dump($submenu);

+        			print '</ul>';

+        		}

+        		if ($val['enabled'] == 2)

+        		{

+        			print '<font class="vsmenudisabled">'.$val['titre'].'</font>';

+        		}

+        		print '</li>';

+        		print '</ul>'."\n";

+        	}

+        }

+

+        unset($this->menu);

+

+        //print 'xx'.$mode;

+        return 0;

+    }

 }

--- /tmp/dsg/dolibarr/htdocs/core/menus/standard/github_eldy.lib.php
+++ /tmp/dsg/dolibarr/htdocs/core/menus/standard/client_eldy.lib.php
@@ -54,22 +54,21 @@
 

 	$substitarray = getCommonSubstitutionArray($langs, 0, null, null);

 

-	if (empty($noout)) {

-		print_start_menu_array();

+	if (empty($noout)) print_start_menu_array();

+

+    $usemenuhider = 1;

+

+	// Show/Hide vertical menu. The hamburger icon for .menuhider action.

+	if ($mode != 'jmobile' && $mode != 'topnb' && $usemenuhider && empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER))

+	{

+    	$showmode = 1;

+    	$classname = 'class="tmenu menuhider"';

+    	$idsel = 'menu';

+

+    	$menu->add('#', (!empty($conf->global->THEME_TOPMENU_DISABLE_IMAGE) ? '<span class="fa fa-bars"></span>' : ''), 0, $showmode, $atarget, "xxx", '', 0, $id, $idsel, $classname);

 	}

 

-	$usemenuhider = 1;

-

-	// Show/Hide vertical menu. The hamburger icon for .menuhider action.

-	if ($mode != 'jmobile' && $mode != 'topnb' && $usemenuhider && empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) {

-		$showmode = 1;

-		$classname = 'class="tmenu menuhider"';

-		$idsel = 'menu';

-

-		$menu->add('#', (!empty($conf->global->THEME_TOPMENU_DISABLE_IMAGE) ? '<span class="fa fa-bars"></span>' : ''), 0, $showmode, $atarget, "xxx", '', 0, $id, $idsel, $classname);

-	}

-

-	$menu_arr = array();

+    $menu_arr = array();

 

 	// Home

 	$menu_arr[] = array(

@@ -93,9 +92,9 @@
 

 	// Members

 	$tmpentry = array(

-		'enabled' => (!empty($conf->adherent->enabled)),

-		'perms' => (!empty($user->rights->adherent->lire)),

-		'module' => 'adherent'

+	    'enabled' => (!empty($conf->adherent->enabled)),

+	    'perms' => (!empty($user->rights->adherent->lire)),

+	    'module' => 'adherent'

 	);

 	$menu_arr[] = array(

 		'name' => 'Members',

@@ -118,13 +117,13 @@
 

 	// Third parties

 	$tmpentry = array(

-		'enabled'=> ((!empty($conf->societe->enabled) &&

-			(empty($conf->global->SOCIETE_DISABLE_PROSPECTS) || empty($conf->global->SOCIETE_DISABLE_CUSTOMERS))

-			)

-			|| (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled))

-			),

-		'perms'=> (!empty($user->rights->societe->lire) || !empty($user->rights->fournisseur->lire)),

-		'module'=>'societe|fournisseur'

+	    'enabled'=> ((!empty($conf->societe->enabled) &&

+	        (empty($conf->global->SOCIETE_DISABLE_PROSPECTS) || empty($conf->global->SOCIETE_DISABLE_CUSTOMERS))

+	        )

+	        || (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled))

+	        ),

+	    'perms'=> (!empty($user->rights->societe->lire) || !empty($user->rights->fournisseur->lire)),

+	    'module'=>'societe|fournisseur'

 	);

 	$menu_arr[] = array(

 		'name' => 'Companies',

@@ -149,7 +148,7 @@
 	$tmpentry = array(

 		'enabled'=> (!empty($conf->product->enabled) || !empty($conf->service->enabled) || !empty($conf->expedition->enabled)),

 		'perms'=> (!empty($user->rights->produit->lire) || !empty($user->rights->service->lire) || !empty($user->rights->expedition->lire)),

-		'module'=>'product|service'

+	    'module'=>'product|service'

 	);

 	$menu_arr[] = array(

 		'name' => 'Products',

@@ -158,7 +157,7 @@
 					? (array("TMenuProducts", " | ", "TMenuServices"))

 					: (!empty($conf->product->enabled) ? "TMenuProducts" : "TMenuServices"),

 		'level' => 0,

-		'enabled' => $showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal),

+	    'enabled' => $showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal),

 		'target' => $atarget,

 		'mainmenu' => "products",

 		'leftmenu' => '',

@@ -172,36 +171,36 @@
 		'submenus' => array(),

 	);

 

-	// MRP - GPAO

+	// MRP

 	$tmpentry = array(

-		'enabled'=>(!empty($conf->bom->enabled) || !empty($conf->mrp->enabled)),

-		'perms'=>(!empty($user->rights->bom->read) || !empty($user->rights->mrp->read)),

-		'module'=>'bom|mrp'

+	    'enabled'=>(!empty($conf->bom->enabled) || !empty($conf->mrp->enabled)),

+	    'perms'=>(!empty($user->rights->bom->read) || !empty($user->rights->mrp->read)),

+	    'module'=>'bom|mrp'

 	);

 	$menu_arr[] = array(

-		'name' => 'TMenuMRP',

-		'link' => '/mrp/index.php?mainmenu=mrp&amp;leftmenu=',

-		'title' => "TMenuMRP",

-		'level' => 0,

-		'enabled' => $showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal),

-		'target' => $atarget,

-		'mainmenu' => "mrp",

-		'leftmenu' => '',

-		'position' => 31,

-		'id' => $id,

-		'idsel' => 'mrp',

-		'classname' =>  $classname = ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "mrp") ? 'class="tmenusel"' : 'class="tmenu"',

-		'prefix' => '',

-		'session' => (($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "mrp") ? 0 : 1),

-		'loadLangs' => array("mrp"),

-		'submenus' => array(),

+	    'name' => 'TMenuMRP',

+	    'link' => '/mrp/index.php?mainmenu=mrp&amp;leftmenu=',

+	    'title' => "TMenuMRP",

+	    'level' => 0,

+	    'enabled' => $showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal),

+	    'target' => $atarget,

+	    'mainmenu' => "mrp",

+	    'leftmenu' => '',

+	    'position' => 30,

+	    'id' => $id,

+	    'idsel' => 'mrp',

+	    'classname' =>  $classname = ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "mrp") ? 'class="tmenusel"' : 'class="tmenu"',

+	    'prefix' => '',

+	    'session' => (($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "mrp") ? 0 : 1),

+	    'loadLangs' => array("mrp"),

+	    'submenus' => array(),

 	);

 

 	// Projects

 	$tmpentry = array(

-		'enabled'=> (!empty($conf->projet->enabled) ? 1 : 0),

-		'perms'=> (!empty($user->rights->projet->lire) ? 1 : 0),

-		'module'=>'projet'

+	    'enabled'=> (!empty($conf->projet->enabled) ? 1 : 0),

+	    'perms'=> (!empty($user->rights->projet->lire) ? 1 : 0),

+	    'module'=>'projet'

 	);

 	$menu_arr[] = array(

 		'name' => 'Projet',

@@ -210,7 +209,7 @@
 					? (($conf->global->PROJECT_USE_OPPORTUNITIES == 2) ? "Leads" : "Projects")

 					: "Projects",

 		'level' => 0,

-		'enabled' => $showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal),

+	    'enabled' => $showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal),

 		'target' => $atarget,

 		'mainmenu' => "project",

 		'leftmenu' => '',

@@ -224,23 +223,25 @@
 		'submenus' => array(),

 	);

 

-	// Commercial (propal, commande, supplier_proposal, supplier_order, contrat, ficheinter)

+	// Commercial

 	$tmpentry = array(

-		'enabled'=>(!empty($conf->propal->enabled)

-			|| !empty($conf->commande->enabled)

-			|| !empty($conf->supplier_proposal->enabled)

-			|| !empty($conf->supplier_order->enabled)

-			|| !empty($conf->contrat->enabled)

-			|| !empty($conf->ficheinter->enabled)

-		) ? 1 : 0,

-		'perms'=>(!empty($user->rights->propal->lire)

-			|| !empty($user->rights->commande->lire)

-			|| !empty($user->rights->supplier_proposal->lire)

-			|| !empty($user->rights->supplier_order->lire)

-			|| !empty($user->rights->contrat->lire)

-			|| !empty($user->rights->ficheinter->lire)

-		),

-		'module'=>'propal|commande|supplier_proposal|supplier_order|contrat|ficheinter'

+	    'enabled'=>(!empty($conf->propal->enabled) ||

+	        !empty($conf->commande->enabled) ||

+	    	!empty($conf->fournisseur->enabled) ||

+	    	!empty($conf->supplier_proposal->enabled) ||

+	    	!empty($conf->supplier_order->enabled) ||

+	    	!empty($conf->contrat->enabled) ||

+	        !empty($conf->ficheinter->enabled)

+	        ) ? 1 : 0,

+		'perms'=>(!empty($user->rights->propal->lire) ||

+				  !empty($user->rights->commande->lire) ||

+				  !empty($user->rights->fournisseur->lire) ||

+				  !empty($user->rights->supplier_proposal->lire) ||

+				  !empty($user->rights->supplier_order->lire) ||

+				  !empty($user->rights->contrat->lire) ||

+				  !empty($user->rights->ficheinter->lire)

+			),

+	    'module'=>'propal|commande|supplier_proposal|supplier_order|contrat|ficheinter'

 	);

 

 	$onlysupplierorder = !empty($user->rights->fournisseur->commande->lire) &&

@@ -256,7 +257,7 @@
 		'link' => ($onlysupplierorder ? '/fourn/commande/index.php?mainmenu=commercial&amp;leftmenu=' : '/comm/index.php?mainmenu=commercial&amp;leftmenu='),

 		'title' => "Commercial",

 		'level' => 0,

-		'enabled' => $showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal),

+	    'enabled' => $showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal),

 		'target' => $atarget,

 		'mainmenu' => "commercial",

 		'leftmenu' => '',

@@ -272,25 +273,25 @@
 

 	// Billing - Financial

 	$tmpentry = array(

-		'enabled'=>(!empty($conf->facture->enabled) ||

-			!empty($conf->don->enabled) ||

-			!empty($conf->tax->enabled) ||

-			!empty($conf->salaries->enabled) ||

-			!empty($conf->supplier_invoice->enabled) ||

-			!empty($conf->loan->enabled) ||

-			!empty($conf->margins->enabled)

-			) ? 1 : 0,

-		'perms'=>(!empty($user->rights->facture->lire) || !empty($user->rights->don->contact->lire)

-			|| !empty($user->rights->tax->charges->lire) || !empty($user->rights->salaries->read)

-			|| !empty($user->rights->fournisseur->facture->lire) || !empty($user->rights->loan->read) || !empty($user->rights->margins->liretous)),

-		'module'=>'facture|supplier_invoice|don|tax|salaries|loan'

+	    'enabled'=>(!empty($conf->facture->enabled) ||

+	        !empty($conf->don->enabled) ||

+	        !empty($conf->tax->enabled) ||

+	        !empty($conf->salaries->enabled) ||

+	        !empty($conf->supplier_invoice->enabled) ||

+	        !empty($conf->loan->enabled) ||

+            !empty($conf->margins->enabled)

+	        ) ? 1 : 0,

+	    'perms'=>(!empty($user->rights->facture->lire) || !empty($user->rights->don->contact->lire)

+	        || !empty($user->rights->tax->charges->lire) || !empty($user->rights->salaries->read)

+	        || !empty($user->rights->fournisseur->facture->lire) || !empty($user->rights->loan->read) || !empty($user->rights->margins->liretous)),

+	    'module'=>'facture|supplier_invoice|don|tax|salaries|loan'

 	);

 	$menu_arr[] = array(

 		'name' => 'Compta',

 		'link' => '/compta/index.php?mainmenu=billing&amp;leftmenu=',

 		'title' =>  "MenuFinancial",

 		'level' => 0,

-		'enabled' => $showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal),

+	    'enabled' => $showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal),

 		'target' => $atarget,

 		'mainmenu' => "billing",

 		'leftmenu' => '',

@@ -306,16 +307,16 @@
 

 	// Bank

 	$tmpentry = array(

-		'enabled'=>(!empty($conf->banque->enabled) || !empty($conf->prelevement->enabled)),

+	    'enabled'=>(!empty($conf->banque->enabled) || !empty($conf->prelevement->enabled)),

 		'perms'=>(!empty($user->rights->banque->lire) || !empty($user->rights->prelevement->lire) || !empty($user->rights->paymentbybanktransfer->read)),

-		'module'=>'banque|prelevement|paymentbybanktransfer'

+	    'module'=>'banque|prelevement|paymentbybanktransfer'

 	);

 	$menu_arr[] = array(

 		'name' => 'Bank',

 		'link' => '/compta/bank/list.php?mainmenu=bank&amp;leftmenu=',

 		'title' =>  "MenuBankCash",

 		'level' => 0,

-		'enabled' => $showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal),

+	    'enabled' => $showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal),

 		'target' => $atarget,

 		'mainmenu' => "bank",

 		'leftmenu' => '',

@@ -333,16 +334,16 @@
 

 	// Accounting

 	$tmpentry = array(

-		'enabled'=>(!empty($conf->comptabilite->enabled) || !empty($conf->accounting->enabled) || !empty($conf->asset->enabled) || !empty($conf->intracommreport->enabled)),

-		'perms'=>(!empty($user->rights->compta->resultat->lire) || !empty($user->rights->accounting->mouvements->lire) || !empty($user->rights->asset->read) || !empty($user->rights->intracommreport->read)),

-		'module'=>'comptabilite|accounting|asset|intracommreport'

+	    'enabled'=>(!empty($conf->comptabilite->enabled) || !empty($conf->accounting->enabled) || !empty($conf->asset->enabled)),

+	    'perms'=>(!empty($user->rights->compta->resultat->lire) || !empty($user->rights->accounting->mouvements->lire) || !empty($user->rights->asset->read)),

+        'module'=>'comptabilite|accounting|asset'

 	);

 	$menu_arr[] = array(

 		'name' => 'Accounting',

 		'link' => '/accountancy/index.php?mainmenu=accountancy&amp;leftmenu=',

 		'title' =>  "MenuAccountancy",

 		'level' => 0,

-		'enabled' => $showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal),

+	    'enabled' => $showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal),

 		'target' => $atarget,

 		'mainmenu' => "accountancy",

 		'leftmenu' => '',

@@ -354,23 +355,22 @@
 

 		'session' => (($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "accountancy") ? 0 : 1),

 

-		'loadLangs' => array("compta", "accountancy", "assets", "intracommreport"),

+		'loadLangs' => array("compta", "accountancy", "assets"),

 		'submenus' => array(),

 	);

 

 	// HRM

 	$tmpentry = array(

-		'enabled'=>(!empty($conf->hrm->enabled) || (!empty($conf->holiday->enabled)) || !empty($conf->deplacement->enabled) || !empty($conf->expensereport->enabled) || !empty($conf->recruitment->enabled)),

-		'perms'=>(!empty($user->rights->hrm->employee->read) || !empty($user->rights->holiday->write) || !empty($user->rights->deplacement->lire) || !empty($user->rights->expensereport->lire) || !empty($user->rights->recruitment->recruitmentjobposition->read)),

-		'module'=>'hrm|holiday|deplacement|expensereport|recruitment'

-	);

-

+	    'enabled'=>(!empty($conf->hrm->enabled) || !empty($conf->holiday->enabled) || !empty($conf->deplacement->enabled) || !empty($conf->expensereport->enabled)),

+	    'perms'=>(!empty($user->rights->hrm->employee->read) || !empty($user->rights->holiday->write) || !empty($user->rights->deplacement->lire) || !empty($user->rights->expensereport->lire)),

+	    'module'=>'hrm|holiday|deplacement|expensereport'

+	);

 	$menu_arr[] = array(

 		'name' => 'HRM',

 		'link' => '/hrm/index.php?mainmenu=hrm&amp;leftmenu=',

 		'title' =>  "HRM",

 		'level' => 0,

-		'enabled' => $showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal),

+	    'enabled' => $showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal),

 		'target' => $atarget,

 		'mainmenu' => "hrm",

 		'leftmenu' => '',

@@ -388,16 +388,16 @@
 

 	// Tools

 	$tmpentry = array(

-		'enabled'=>1,

-		'perms'=>1,

-		'module'=>''

+	    'enabled'=>1,

+	    'perms'=>1,

+	    'module'=>''

 	);

 	$menu_arr[] = array(

 		'name' => 'Tools',

 		'link' => '/core/tools.php?mainmenu=tools&amp;leftmenu=',

 		'title' =>  "Tools",

 		'level' => 0,

-		'enabled' => $showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal),

+	    'enabled' => $showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal),

 		'target' => $atarget,

 		'mainmenu' => "tools",

 		'leftmenu' => '',

@@ -414,26 +414,34 @@
 	);

 

 	// Add menus

-	foreach ($menu_arr as $key => $smenu) {

+	foreach ($menu_arr as $key => $smenu)

+	{

 		$smenu = (object) $smenu;

 

-		if ($smenu->enabled) {

-			if ($smenu->session) {

+		if ($smenu->enabled)

+		{

+			if ($smenu->session)

+			{

 				$_SESSION['idmenu'] = '';

 			}

 

 			// Load Langue

-			if (!empty($smenu->loadLangs)) {

+			if (!empty($smenu->loadLangs))

+			{

 				$langs->loadLangs($smenu->loadLangs);

 			}

 

 			// Trans title

 			$mtitle = '';

-			if (is_array($smenu->title)) {

-				foreach ($smenu->title as $item) {

+			if (is_array($smenu->title))

+			{

+				foreach ($smenu->title as $item)

+				{

 					$mtitle .= $langs->trans($item);

 				}

-			} else {

+			}

+			else

+			{

 				$mtitle = $langs->trans($smenu->title);

 			}

 			// Add item

@@ -443,70 +451,52 @@
 

 	// Show personalized menus

 	$menuArbo = new Menubase($db, 'eldy');

-

 	$newTabMenu = $menuArbo->menuTopCharger('', '', $type_user, 'eldy', $tabMenu); // Return tabMenu with only top entries

 

 	$num = count($newTabMenu);

-	for ($i = 0; $i < $num; $i++) {

+	for ($i = 0; $i < $num; $i++)

+	{

 		//var_dump($type_user.' '.$newTabMenu[$i]['url'].' '.$showmode.' '.$newTabMenu[$i]['perms']);

 		$idsel = (empty($newTabMenu[$i]['mainmenu']) ? 'none' : $newTabMenu[$i]['mainmenu']);

 

-		$newTabMenu[$i]['url'] = make_substitutions($newTabMenu[$i]['url'], $substitarray);

-

-		// url = url from host, shorturl = relative path into dolibarr sources

-		$url = $shorturl = $newTabMenu[$i]['url'];

-		if (!preg_match("/^(http:\/\/|https:\/\/)/i", $newTabMenu[$i]['url'])) {	// Do not change url content for external links

-			$tmp = explode('?', $newTabMenu[$i]['url'], 2);

-			$url = $shorturl = $tmp[0];

-			$param = (isset($tmp[1]) ? $tmp[1] : '');

-

-			if (!preg_match('/mainmenu/i', $param) || !preg_match('/leftmenu/i', $param)) {

-				$param .= ($param ? '&' : '').'mainmenu='.$newTabMenu[$i]['mainmenu'].'&amp;leftmenu=';

-			}

-			//$url.="idmenu=".$newTabMenu[$i]['rowid'];    // Already done by menuLoad

-			$url = dol_buildpath($url, 1).($param ? '?'.$param : '');

-			//$shorturl = $shorturl.($param?'?'.$param:'');

-			$shorturl = $url;

-			if (DOL_URL_ROOT) {

-				$shorturl = preg_replace('/^'.preg_quote(DOL_URL_ROOT, '/').'/', '', $shorturl);

-			}

+		$showmode = isVisibleToUserType($type_user, $newTabMenu[$i], $listofmodulesforexternal);

+		if ($showmode == 1)

+		{

+			$newTabMenu[$i]['url'] = make_substitutions($newTabMenu[$i]['url'], $substitarray);

+

+		    // url = url from host, shorturl = relative path into dolibarr sources

+			$url = $shorturl = $newTabMenu[$i]['url'];

+			if (!preg_match("/^(http:\/\/|https:\/\/)/i", $newTabMenu[$i]['url']))	// Do not change url content for external links

+			{

+				$tmp = explode('?', $newTabMenu[$i]['url'], 2);

+				$url = $shorturl = $tmp[0];

+				$param = (isset($tmp[1]) ? $tmp[1] : '');

+

+				if (!preg_match('/mainmenu/i', $param) || !preg_match('/leftmenu/i', $param)) $param .= ($param ? '&' : '').'mainmenu='.$newTabMenu[$i]['mainmenu'].'&amp;leftmenu=';

+				//$url.="idmenu=".$newTabMenu[$i]['rowid'];    // Already done by menuLoad

+				$url = dol_buildpath($url, 1).($param ? '?'.$param : '');

+				//$shorturl = $shorturl.($param?'?'.$param:'');

+                $shorturl = $url;

+				if (DOL_URL_ROOT) $shorturl = preg_replace('/^'.preg_quote(DOL_URL_ROOT, '/').'/', '', $shorturl);

+			}

+

+			// Define the class (top menu selected or not)

+			if (!empty($_SESSION['idmenu']) && $newTabMenu[$i]['rowid'] == $_SESSION['idmenu']) $classname = 'class="tmenusel"';

+			elseif (!empty($_SESSION["mainmenu"]) && $newTabMenu[$i]['mainmenu'] == $_SESSION["mainmenu"]) $classname = 'class="tmenusel"';

+			else $classname = 'class="tmenu"';

 		}

-

-		$showmode = isVisibleToUserType($type_user, $newTabMenu[$i], $listofmodulesforexternal);

-		if ($showmode == 1) {

-			// Define the class (top menu selected or not)

-			if (!empty($_SESSION['idmenu']) && $newTabMenu[$i]['rowid'] == $_SESSION['idmenu']) {

-				$classname = 'class="tmenusel"';

-			} elseif (!empty($_SESSION["mainmenu"]) && $newTabMenu[$i]['mainmenu'] == $_SESSION["mainmenu"]) {

-				$classname = 'class="tmenusel"';

-			} else {

-				$classname = 'class="tmenu"';

-			}

-		} elseif ($showmode == 2) {

-			$classname = 'class="tmenu"';

-		}

-

-		$menu->add(

-			$shorturl,

-			$newTabMenu[$i]['titre'],

-			0,

-			$showmode,

-			($newTabMenu[$i]['target'] ? $newTabMenu[$i]['target'] : $atarget),

-			($newTabMenu[$i]['mainmenu'] ? $newTabMenu[$i]['mainmenu'] : $newTabMenu[$i]['rowid']),

-			($newTabMenu[$i]['leftmenu'] ? $newTabMenu[$i]['leftmenu'] : ''),

-			$newTabMenu[$i]['position'],

-			$id,

-			$idsel,

-			$classname

-		);

+		elseif ($showmode == 2) $classname = 'class="tmenu"';

+

+		$menu->add($shorturl, $newTabMenu[$i]['titre'], 0, $showmode, ($newTabMenu[$i]['target'] ? $newTabMenu[$i]['target'] : $atarget), ($newTabMenu[$i]['mainmenu'] ? $newTabMenu[$i]['mainmenu'] : $newTabMenu[$i]['rowid']), ($newTabMenu[$i]['leftmenu'] ? $newTabMenu[$i]['leftmenu'] : ''), $newTabMenu[$i]['position'], $id, $idsel, $classname);

 	}

 

 	// Sort on position

 	$menu->liste = dol_sort_array($menu->liste, 'position');

 

-	// Output menu entries

+    // Output menu entries

 	// Show logo company

-	if (empty($conf->global->MAIN_MENU_INVERT) && empty($noout) && !empty($conf->global->MAIN_SHOW_LOGO) && empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) {

+	if (empty($conf->global->MAIN_MENU_INVERT) && empty($noout) && !empty($conf->global->MAIN_SHOW_LOGO) && empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER))

+	{

 		//$mysoc->logo_mini=(empty($conf->global->MAIN_INFO_SOCIETE_LOGO_MINI)?'':$conf->global->MAIN_INFO_SOCIETE_LOGO_MINI);

 		$mysoc->logo_squarred_mini = (empty($conf->global->MAIN_INFO_SOCIETE_LOGO_SQUARRED_MINI) ? '' : $conf->global->MAIN_INFO_SOCIETE_LOGO_SQUARRED_MINI);

 

@@ -515,14 +505,16 @@
 			$logoContainerAdditionalClass = '';

 		}

 

-		if (!empty($mysoc->logo_squarred_mini) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_squarred_mini)) {

+		if (!empty($mysoc->logo_squarred_mini) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_squarred_mini))

+		{

 			$urllogo = DOL_URL_ROOT.'/viewimage.php?cache=1&amp;modulepart=mycompany&amp;file='.urlencode('logos/thumbs/'.$mysoc->logo_squarred_mini);

 		}

 		/*elseif (! empty($mysoc->logo_mini) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_mini))

 		{

 			$urllogo=DOL_URL_ROOT.'/viewimage.php?cache=1&amp;modulepart=mycompany&amp;file='.urlencode('logos/thumbs/'.$mysoc->logo_mini);

 		}*/

-		else {

+		else

+		{

 			$urllogo = DOL_URL_ROOT.'/theme/dolibarr_512x512_white.png';

 			$logoContainerAdditionalClass = '';

 		}

@@ -531,25 +523,26 @@
 		print "\n".'<!-- Show logo on menu -->'."\n";

 		print_start_menu_entry('companylogo', 'class="tmenu tmenucompanylogo nohover"', 1);

 

+

 		print '<div class="center '.$logoContainerAdditionalClass.' menulogocontainer"><img class="mycompany" title="'.dol_escape_htmltag($title).'" alt="" src="'.$urllogo.'" style="max-width: 100px"></div>'."\n";

 

 		print_end_menu_entry(4);

 	}

 

-	if (empty($noout)) {

-		foreach ($menu->liste as $menuval) {

-			print_start_menu_entry($menuval['idsel'], $menuval['classname'], $menuval['enabled']);

-			print_text_menu_entry($menuval['titre'], $menuval['enabled'], (($menuval['url'] != '#' && !preg_match('/^(http:\/\/|https:\/\/)/i', $menuval['url'])) ? DOL_URL_ROOT:'').$menuval['url'], $menuval['id'], $menuval['idsel'], $menuval['classname'], ($menuval['target'] ? $menuval['target'] : $atarget));

-			print_end_menu_entry($menuval['enabled']);

-		}

-	}

+    if (empty($noout)) {

+        foreach ($menu->liste as $menuval) {

+            print_start_menu_entry($menuval['idsel'], $menuval['classname'], $menuval['enabled']);

+            print_text_menu_entry($menuval['titre'], $menuval['enabled'], (($menuval['url'] != '#' && !preg_match('/^(http:\/\/|https:\/\/)/i', $menuval['url'])) ? DOL_URL_ROOT:'').$menuval['url'], $menuval['id'], $menuval['idsel'], $menuval['classname'], ($menuval['target'] ? $menuval['target'] : $atarget));

+            print_end_menu_entry($menuval['enabled']);

+        }

+    }

 

 	$showmode = 1;

-	if (empty($noout)) {

-		print_start_menu_entry('', 'class="tmenuend"', $showmode);

-		print_end_menu_entry($showmode);

-		print_end_menu_array();

-	}

+    if (empty($noout)) {

+        print_start_menu_entry('', 'class="tmenuend"', $showmode);

+        print_end_menu_entry($showmode);

+        print_end_menu_array();

+    }

 

 	return 0;

 }

@@ -562,7 +555,7 @@
  */

 function print_start_menu_array()

 {

-	global $conf;

+    global $conf;

 

 	print '<div class="tmenudiv">';

 	print '<ul role="navigation" class="tmenu"'.(empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER) ? '' : ' title="Top menu"').'>';

@@ -578,7 +571,8 @@
  */

 function print_start_menu_entry($idsel, $classname, $showmode)

 {

-	if ($showmode) {

+	if ($showmode)

+	{

 		print '<li '.$classname.' id="mainmenutd_'.$idsel.'">';

 		//print '<div class="tmenuleft tmenusep"></div>';

 		print '<div class="tmenucenter">';

@@ -628,7 +622,8 @@
  */

 function print_end_menu_entry($showmode)

 {

-	if ($showmode) {

+	if ($showmode)

+	{

 		print '</div></li>';

 	}

 	print "\n";

@@ -661,10 +656,9 @@
  * @param	string		$forcemainmenu		'x'=Force mainmenu to mainmenu='x'

  * @param	string		$forceleftmenu		'all'=Force leftmenu to '' (= all). If value come being '', we change it to value in session and 'none' if not defined in session.

  * @param	array		$moredata			An array with more data to output

- * @param 	int			$type_user     		0=Menu for backoffice, 1=Menu for front office

  * @return	int								Nb of menu entries

  */

-function print_left_eldy_menu($db, $menu_array_before, $menu_array_after, &$tabMenu, &$menu, $noout = 0, $forcemainmenu = '', $forceleftmenu = '', $moredata = null, $type_user = 0)

+function print_left_eldy_menu($db, $menu_array_before, $menu_array_after, &$tabMenu, &$menu, $noout = 0, $forcemainmenu = '', $forceleftmenu = '', $moredata = null)

 {

 	global $user, $conf, $langs, $dolibarr_main_db_name, $mysoc;

 

@@ -675,24 +669,26 @@
 	$mainmenu = ($forcemainmenu ? $forcemainmenu : $_SESSION["mainmenu"]);

 	$leftmenu = ($forceleftmenu ? '' : (empty($_SESSION["leftmenu"]) ? 'none' : $_SESSION["leftmenu"]));

 

-	$usemenuhider = 0;

-

-	if (is_array($moredata) && !empty($moredata['searchform'])) {	// searchform can contains select2 code or link to show old search form or link to switch on search page

-		print "\n";

-		print "<!-- Begin SearchForm -->\n";

-		print '<div id="blockvmenusearch" class="blockvmenusearch">'."\n";

-		print $moredata['searchform'];

-		print '</div>'."\n";

-		print "<!-- End SearchForm -->\n";

+    $usemenuhider = 0;

+

+	if (is_array($moredata) && !empty($moredata['searchform']))	// searchform can contains select2 code or link to show old search form or link to switch on search page

+	{

+        print "\n";

+        print "<!-- Begin SearchForm -->\n";

+        print '<div id="blockvmenusearch" class="blockvmenusearch">'."\n";

+        print $moredata['searchform'];

+        print '</div>'."\n";

+        print "<!-- End SearchForm -->\n";

 	}

 

-	if (is_array($moredata) && !empty($moredata['bookmarks'])) {

-		print "\n";

-		print "<!-- Begin Bookmarks -->\n";

-		print '<div id="blockvmenubookmarks" class="blockvmenubookmarks">'."\n";

-		print $moredata['bookmarks'];

-		print '</div>'."\n";

-		print "<!-- End Bookmarks -->\n";

+	if (is_array($moredata) && !empty($moredata['bookmarks']))

+	{

+	    print "\n";

+	    print "<!-- Begin Bookmarks -->\n";

+	    print '<div id="blockvmenubookmarks" class="blockvmenubookmarks">'."\n";

+	    print $moredata['bookmarks'];

+	    print '</div>'."\n";

+	    print "<!-- End Bookmarks -->\n";

 	}

 

 	$substitarray = getCommonSubstitutionArray($langs, 0, null, null);

@@ -701,11 +697,13 @@
 	 * We update newmenu with entries found into database

 	 * --------------------------------------------------

 	 */

-	if ($mainmenu) {	// If this is empty, loading hard coded menu and loading personalised menu will fail

+	if ($mainmenu)	// If this is empty, loading hard coded menu and loading personalised menu will fail

+	{

 		/*

 		 * Menu HOME

 		 */

-		if ($mainmenu == 'home') {

+		if ($mainmenu == 'home')

+		{

 			$langs->load("users");

 

 			// Home - dashboard

@@ -714,21 +712,23 @@
 			// Setup

 			$newmenu->add("/admin/index.php?mainmenu=home&amp;leftmenu=setup", $langs->trans("Setup"), 0, $user->admin, '', $mainmenu, 'setup', 0, '', '', '', '<i class="fa fa-wrench fa-fw paddingright"></i>');

 

-			if ($usemenuhider || empty($leftmenu) || $leftmenu == "setup") {

-				// Load translation files required by the page

-				$langs->loadLangs(array("admin", "help"));

+			if ($usemenuhider || empty($leftmenu) || $leftmenu == "setup")

+			{

+			    // Load translation files required by the page

+                $langs->loadLangs(array("admin", "help"));

 

 				$warnpicto = '';

-				if (empty($conf->global->MAIN_INFO_SOCIETE_NOM) || empty($conf->global->MAIN_INFO_SOCIETE_COUNTRY)) {

+				if (empty($conf->global->MAIN_INFO_SOCIETE_NOM) || empty($conf->global->MAIN_INFO_SOCIETE_COUNTRY))

+				{

 					$langs->load("errors");

-					$warnpicto = img_warning($langs->trans("WarningMandatorySetupNotComplete"));

+					$warnpicto = ' '.img_warning($langs->trans("WarningMandatorySetupNotComplete"));

 				}

 				$newmenu->add("/admin/company.php?mainmenu=home", $langs->trans("MenuCompanySetup").$warnpicto, 1);

-

 				$warnpicto = '';

-				if (count($conf->modules) <= (empty($conf->global->MAIN_MIN_NB_ENABLED_MODULE_FOR_WARNING) ? 1 : $conf->global->MAIN_MIN_NB_ENABLED_MODULE_FOR_WARNING)) {	// If only user module enabled

+				if (count($conf->modules) <= (empty($conf->global->MAIN_MIN_NB_ENABLED_MODULE_FOR_WARNING) ? 1 : $conf->global->MAIN_MIN_NB_ENABLED_MODULE_FOR_WARNING))	// If only user module enabled

+				{

 					$langs->load("errors");

-					$warnpicto = img_warning($langs->trans("WarningMandatorySetupNotComplete"));

+					$warnpicto = ' '.img_warning($langs->trans("WarningMandatorySetupNotComplete"));

 				}

 				$newmenu->add("/admin/modules.php?mainmenu=home", $langs->trans("Modules").$warnpicto, 1);

 				$newmenu->add("/admin/ihm.php?mainmenu=home", $langs->trans("GUISetup"), 1);

@@ -741,18 +741,7 @@
 				$newmenu->add("/admin/security_other.php?mainmenu=home", $langs->trans("Security"), 1);

 				$newmenu->add("/admin/limits.php?mainmenu=home", $langs->trans("MenuLimits"), 1);

 				$newmenu->add("/admin/pdf.php?mainmenu=home", $langs->trans("PDF"), 1);

-

-				$warnpicto = '';

-				if ($conf->global->MAIN_MAIL_SENDMODE == 'mail' && empty($conf->global->MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP)) {

-					$langs->load("errors");

-					$warnpicto = img_warning($langs->trans("WarningPHPMailD"));

-				}

-				if (in_array($conf->global->MAIN_MAIL_SENDMODE, array('smtps', 'swiftmail')) && empty($conf->global->MAIN_MAIL_SMTP_SERVER)) {

-					$langs->load("errors");

-					$warnpicto = img_warning($langs->trans("ErrorSetupOfEmailsNotComplete"));

-				}

-

-				$newmenu->add("/admin/mails.php?mainmenu=home", $langs->trans("Emails").$warnpicto, 1);

+				$newmenu->add("/admin/mails.php?mainmenu=home", $langs->trans("Emails"), 1);

 				$newmenu->add("/admin/sms.php?mainmenu=home", $langs->trans("SMS"), 1);

 				$newmenu->add("/admin/dict.php?mainmenu=home", $langs->trans("Dictionary"), 1);

 				$newmenu->add("/admin/const.php?mainmenu=home", $langs->trans("OtherSetup"), 1);

@@ -760,25 +749,24 @@
 

 			// System tools

 			$newmenu->add("/admin/tools/index.php?mainmenu=home&amp;leftmenu=admintools", $langs->trans("AdminTools"), 0, $user->admin, '', $mainmenu, 'admintools', 0, '', '', '', '<i class="fa fa-server fa-fw paddingright"></i>');

-			if ($usemenuhider || empty($leftmenu) || preg_match('/^admintools/', $leftmenu)) {

-				// Load translation files required by the page

-				$langs->loadLangs(array('admin', 'help'));

+			if ($usemenuhider || empty($leftmenu) || preg_match('/^admintools/', $leftmenu))

+			{

+			    // Load translation files required by the page

+                $langs->loadLangs(array('admin', 'help'));

 

 				$newmenu->add('/admin/system/dolibarr.php?mainmenu=home&amp;leftmenu=admintools_info', $langs->trans('InfoDolibarr'), 1);

 				if ($usemenuhider || empty($leftmenu) || $leftmenu == 'admintools_info') {

-					$newmenu->add('/admin/system/modules.php?mainmenu=home&amp;leftmenu=admintools_info', $langs->trans('Modules'), 2);

-					$newmenu->add('/admin/triggers.php?mainmenu=home&amp;leftmenu=admintools_info', $langs->trans('Triggers'), 2);

-					$newmenu->add('/admin/system/filecheck.php?mainmenu=home&amp;leftmenu=admintools_info', $langs->trans('FileCheck'), 2);

-				}

+                    $newmenu->add('/admin/system/modules.php?mainmenu=home&amp;leftmenu=admintools_info', $langs->trans('Modules'), 2);

+				    $newmenu->add('/admin/triggers.php?mainmenu=home&amp;leftmenu=admintools_info', $langs->trans('Triggers'), 2);

+                    $newmenu->add('/admin/system/filecheck.php?mainmenu=home&amp;leftmenu=admintools_info', $langs->trans('FileCheck'), 2);

+                }

 				$newmenu->add('/admin/system/browser.php?mainmenu=home&amp;leftmenu=admintools', $langs->trans('InfoBrowser'), 1);

 				$newmenu->add('/admin/system/os.php?mainmenu=home&amp;leftmenu=admintools', $langs->trans('InfoOS'), 1);

 				$newmenu->add('/admin/system/web.php?mainmenu=home&amp;leftmenu=admintools', $langs->trans('InfoWebServer'), 1);

 				$newmenu->add('/admin/system/phpinfo.php?mainmenu=home&amp;leftmenu=admintools', $langs->trans('InfoPHP'), 1);

+				//if (function_exists('xdebug_is_enabled')) $newmenu->add('/admin/system/xdebug.php', $langs->trans('XDebug'),1);

 				$newmenu->add('/admin/system/database.php?mainmenu=home&amp;leftmenu=admintools', $langs->trans('InfoDatabase'), 1);

-				if (!empty($conf->global->MAIN_FEATURES_LEVEL)) {

-					$newmenu->add("/admin/system/perf.php?mainmenu=home&amp;leftmenu=admintools", $langs->trans("InfoPerf"), 1);

-					$newmenu->add("/admin/system/security.php?mainmenu=home&amp;leftmenu=admintools", $langs->trans("InfoSecurity"), 1);

-				}

+				//$newmenu->add("/admin/system/perf.php?mainmenu=home&amp;leftmenu=admintools", $langs->trans("InfoPerf"),1);

 				$newmenu->add("/admin/tools/dolibarr_export.php?mainmenu=home&amp;leftmenu=admintools", $langs->trans("Backup"), 1);

 				$newmenu->add("/admin/tools/dolibarr_import.php?mainmenu=home&amp;leftmenu=admintools", $langs->trans("Restore"), 1);

 				$newmenu->add("/admin/tools/update.php?mainmenu=home&amp;leftmenu=admintools", $langs->trans("MenuUpgrade"), 1);

@@ -787,20 +775,24 @@
 				$newmenu->add("/admin/tools/listsessions.php?mainmenu=home&amp;leftmenu=admintools", $langs->trans("Sessions"), 1);

 				$newmenu->add('/admin/system/about.php?mainmenu=home&amp;leftmenu=admintools', $langs->trans('ExternalResources'), 1);

 

-				if (!empty($conf->product->enabled) || !empty($conf->service->enabled)) {

+				if (!empty($conf->product->enabled) || !empty($conf->service->enabled))

+				{

 					$langs->load("products");

-					$newmenu->add("/product/admin/product_tools.php?mainmenu=home&amp;leftmenu=admintools", $langs->trans("ProductVatMassChange"), 1, $user->admin);

+				    $newmenu->add("/product/admin/product_tools.php?mainmenu=home&amp;leftmenu=admintools", $langs->trans("ProductVatMassChange"), 1, $user->admin);

 				}

 			}

 

 			$newmenu->add("/user/home.php?leftmenu=users", $langs->trans("MenuUsersAndGroups"), 0, $user->rights->user->user->lire, '', $mainmenu, 'users', 0, '', '', '', '<i class="fa fa-users fa-fw paddingright"></i>');

-			if ($user->rights->user->user->lire) {

-				if ($usemenuhider || empty($leftmenu) || $leftmenu == "users") {

+			if ($user->rights->user->user->lire)

+			{

+				if ($usemenuhider || empty($leftmenu) || $leftmenu == "users")

+				{

 					$newmenu->add("", $langs->trans("Users"), 1, $user->rights->user->user->lire || $user->admin);

 					$newmenu->add("/user/card.php?leftmenu=users&action=create", $langs->trans("NewUser"), 2, ($user->rights->user->user->creer || $user->admin) && !(!empty($conf->multicompany->enabled) && $conf->entity > 1 && $conf->global->MULTICOMPANY_TRANSVERSE_MODE), '', 'home');

 					$newmenu->add("/user/list.php?leftmenu=users", $langs->trans("ListOfUsers"), 2, $user->rights->user->user->lire || $user->admin);

 					$newmenu->add("/user/hierarchy.php?leftmenu=users", $langs->trans("HierarchicView"), 2, $user->rights->user->user->lire || $user->admin);

-					if (!empty($conf->categorie->enabled)) {

+					if (!empty($conf->categorie->enabled))

+					{

 						$langs->load("categories");

 						$newmenu->add("/categories/index.php?leftmenu=users&type=7", $langs->trans("UsersCategoriesShort"), 2, $user->rights->categorie->lire, '', $mainmenu, 'cat');

 					}

@@ -815,26 +807,28 @@
 		/*

 		 * Menu THIRDPARTIES

 		 */

-		if ($mainmenu == 'companies') {

+		if ($mainmenu == 'companies')

+		{

 			// Societes

-			if (!empty($conf->societe->enabled)) {

+			if (!empty($conf->societe->enabled))

+			{

 				$langs->load("companies");

 				$newmenu->add("/societe/index.php?leftmenu=thirdparties", $langs->trans("ThirdParty"), 0, $user->rights->societe->lire, '', $mainmenu, 'thirdparties');

 

-				if ($user->rights->societe->creer) {

+				if ($user->rights->societe->creer)

+				{

 					$newmenu->add("/societe/card.php?action=create", $langs->trans("MenuNewThirdParty"), 1);

-					if (!$conf->use_javascript_ajax) {

-						$newmenu->add("/societe/card.php?action=create&amp;private=1", $langs->trans("MenuNewPrivateIndividual"), 1);

-					}

+					if (!$conf->use_javascript_ajax) $newmenu->add("/societe/card.php?action=create&amp;private=1", $langs->trans("MenuNewPrivateIndividual"), 1);

 				}

 			}

 

 			$newmenu->add("/societe/list.php?leftmenu=thirdparties", $langs->trans("List"), 1);

 

 			// Prospects

-			if (!empty($conf->societe->enabled) && empty($conf->global->SOCIETE_DISABLE_PROSPECTS)) {

+			if (!empty($conf->societe->enabled) && empty($conf->global->SOCIETE_DISABLE_PROSPECTS))

+			{

 				$langs->load("commercial");

-				$newmenu->add("/societe/list.php?type=p&amp;leftmenu=prospects", $langs->trans("ListProspectsShort"), 2, $user->rights->societe->lire, '', $mainmenu, 'prospects');

+				$newmenu->add("/societe/list.php?type=p&amp;leftmenu=prospects", $langs->trans("ListProspectsShort"), 1, $user->rights->societe->lire, '', $mainmenu, 'prospects');

 				/* no more required, there is a filter that can do more

 				if ($usemenuhider || empty($leftmenu) || $leftmenu=="prospects") $newmenu->add("/societe/list.php?type=p&amp;sortfield=s.datec&amp;sortorder=desc&amp;begin=&amp;search_stcomm=-1", $langs->trans("LastProspectDoNotContact"), 2, $user->rights->societe->lire);

 				if ($usemenuhider || empty($leftmenu) || $leftmenu=="prospects") $newmenu->add("/societe/list.php?type=p&amp;sortfield=s.datec&amp;sortorder=desc&amp;begin=&amp;search_stcomm=0", $langs->trans("LastProspectNeverContacted"), 2, $user->rights->societe->lire);

@@ -842,40 +836,43 @@
 				if ($usemenuhider || empty($leftmenu) || $leftmenu=="prospects") $newmenu->add("/societe/list.php?type=p&amp;sortfield=s.datec&amp;sortorder=desc&amp;begin=&amp;search_stcomm=2", $langs->trans("LastProspectContactInProcess"), 2, $user->rights->societe->lire);

 				if ($usemenuhider || empty($leftmenu) || $leftmenu=="prospects") $newmenu->add("/societe/list.php?type=p&amp;sortfield=s.datec&amp;sortorder=desc&amp;begin=&amp;search_stcomm=3", $langs->trans("LastProspectContactDone"), 2, $user->rights->societe->lire);

 				*/

-				$newmenu->add("/societe/card.php?leftmenu=prospects&amp;action=create&amp;type=p", $langs->trans("MenuNewProspect"), 3, $user->rights->societe->creer);

+				$newmenu->add("/societe/card.php?leftmenu=prospects&amp;action=create&amp;type=p", $langs->trans("MenuNewProspect"), 2, $user->rights->societe->creer);

+				//$newmenu->add("/contact/list.php?leftmenu=customers&amp;type=p", $langs->trans("Contacts"), 2, $user->rights->societe->contact->lire);

 			}

 

 			// Customers/Prospects

-			if (!empty($conf->societe->enabled) && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS)) {

+			if (!empty($conf->societe->enabled) && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS))

+			{

 				$langs->load("commercial");

-				$newmenu->add("/societe/list.php?type=c&amp;leftmenu=customers", $langs->trans("ListCustomersShort"), 2, $user->rights->societe->lire, '', $mainmenu, 'customers');

-

-				$newmenu->add("/societe/card.php?leftmenu=customers&amp;action=create&amp;type=c", $langs->trans("MenuNewCustomer"), 3, $user->rights->societe->creer);

+				$newmenu->add("/societe/list.php?type=c&amp;leftmenu=customers", $langs->trans("ListCustomersShort"), 1, $user->rights->societe->lire, '', $mainmenu, 'customers');

+

+				$newmenu->add("/societe/card.php?leftmenu=customers&amp;action=create&amp;type=c", $langs->trans("MenuNewCustomer"), 2, $user->rights->societe->creer);

+				//$newmenu->add("/contact/list.php?leftmenu=customers&amp;type=c", $langs->trans("Contacts"), 2, $user->rights->societe->contact->lire);

 			}

 

 			// Suppliers

-			if (!empty($conf->societe->enabled) && ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) || !empty($conf->supplier_proposal->enabled))) {

+			if (!empty($conf->societe->enabled) && ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) || !empty($conf->supplier_proposal->enabled)))

+			{

 				$langs->load("suppliers");

-				$newmenu->add("/societe/list.php?type=f&amp;leftmenu=suppliers", $langs->trans("ListSuppliersShort"), 2, ($user->rights->fournisseur->lire), '', $mainmenu, 'suppliers');

-				$newmenu->add("/societe/card.php?leftmenu=suppliers&amp;action=create&amp;type=f", $langs->trans("MenuNewSupplier"), 3, $user->rights->societe->creer && ($user->rights->fournisseur->lire));

+				$newmenu->add("/societe/list.php?type=f&amp;leftmenu=suppliers", $langs->trans("ListSuppliersShort"), 1, ($user->rights->fournisseur->lire || $user->rights->supplier_proposal->lire), '', $mainmenu, 'suppliers');

+				$newmenu->add("/societe/card.php?leftmenu=suppliers&amp;action=create&amp;type=f", $langs->trans("MenuNewSupplier"), 2, $user->rights->societe->creer && ($user->rights->fournisseur->lire || $user->rights->supplier_proposal->lire));

 			}

 

 			// Categories

-			if (!empty($conf->categorie->enabled)) {

+			if (!empty($conf->categorie->enabled))

+			{

 				$langs->load("categories");

-				if (empty($conf->global->SOCIETE_DISABLE_PROSPECTS) || empty($conf->global->SOCIETE_DISABLE_CUSTOMERS)) {

+				if (empty($conf->global->SOCIETE_DISABLE_PROSPECTS) || empty($conf->global->SOCIETE_DISABLE_CUSTOMERS))

+				{

 					// Categories prospects/customers

 					$menutoshow = $langs->trans("CustomersProspectsCategoriesShort");

-					if (!empty($conf->global->SOCIETE_DISABLE_PROSPECTS)) {

-						$menutoshow = $langs->trans("CustomersCategoriesShort");

-					}

-					if (!empty($conf->global->SOCIETE_DISABLE_CUSTOMERS)) {

-						$menutoshow = $langs->trans("ProspectsCategoriesShort");

-					}

+					if (!empty($conf->global->SOCIETE_DISABLE_PROSPECTS)) $menutoshow = $langs->trans("CustomersCategoriesShort");

+					if (!empty($conf->global->SOCIETE_DISABLE_CUSTOMERS)) $menutoshow = $langs->trans("ProspectsCategoriesShort");

 					$newmenu->add("/categories/index.php?leftmenu=cat&amp;type=2", $menutoshow, 1, $user->rights->categorie->lire, '', $mainmenu, 'cat');

 				}

 				// Categories suppliers

-				if (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) {

+				if (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled))

+				{

 					$newmenu->add("/categories/index.php?leftmenu=catfournish&amp;type=1", $langs->trans("SuppliersCategoriesShort"), 1, $user->rights->categorie->lire);

 				}

 			}

@@ -884,20 +881,15 @@
 			$newmenu->add("/societe/index.php?leftmenu=thirdparties", (!empty($conf->global->SOCIETE_ADDRESSES_MANAGEMENT) ? $langs->trans("Contacts") : $langs->trans("ContactsAddresses")), 0, $user->rights->societe->contact->lire, '', $mainmenu, 'contacts');

 			$newmenu->add("/contact/card.php?leftmenu=contacts&amp;action=create", (!empty($conf->global->SOCIETE_ADDRESSES_MANAGEMENT) ? $langs->trans("NewContact") : $langs->trans("NewContactAddress")), 1, $user->rights->societe->contact->creer);

 			$newmenu->add("/contact/list.php?leftmenu=contacts", $langs->trans("List"), 1, $user->rights->societe->contact->lire);

-			if (empty($conf->global->SOCIETE_DISABLE_PROSPECTS)) {

-				$newmenu->add("/contact/list.php?leftmenu=contacts&type=p", $langs->trans("Prospects"), 2, $user->rights->societe->contact->lire);

-			}

-			if (empty($conf->global->SOCIETE_DISABLE_CUSTOMERS)) {

-				$newmenu->add("/contact/list.php?leftmenu=contacts&type=c", $langs->trans("Customers"), 2, $user->rights->societe->contact->lire);

-			}

-			if (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) {

-				$newmenu->add("/contact/list.php?leftmenu=contacts&type=f", $langs->trans("Suppliers"), 2, $user->rights->societe->contact->lire);

-			}

+			if (empty($conf->global->SOCIETE_DISABLE_PROSPECTS)) $newmenu->add("/contact/list.php?leftmenu=contacts&type=p", $langs->trans("Prospects"), 2, $user->rights->societe->contact->lire);

+			if (empty($conf->global->SOCIETE_DISABLE_CUSTOMERS)) $newmenu->add("/contact/list.php?leftmenu=contacts&type=c", $langs->trans("Customers"), 2, $user->rights->societe->contact->lire);

+			if (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) $newmenu->add("/contact/list.php?leftmenu=contacts&type=f", $langs->trans("Suppliers"), 2, $user->rights->societe->contact->lire);

 			$newmenu->add("/contact/list.php?leftmenu=contacts&type=o", $langs->trans("ContactOthers"), 2, $user->rights->societe->contact->lire);

 			//$newmenu->add("/contact/list.php?userid=$user->id", $langs->trans("MyContacts"), 1, $user->rights->societe->contact->lire);

 

 			// Categories

-			if (!empty($conf->categorie->enabled)) {

+			if (!empty($conf->categorie->enabled))

+			{

 				$langs->load("categories");

 				// Categories Contact

 				$newmenu->add("/categories/index.php?leftmenu=catcontact&amp;type=4", $langs->trans("ContactCategoriesShort"), 1, $user->rights->categorie->lire, '', $mainmenu, 'cat');

@@ -905,49 +897,51 @@
 		}

 

 		/*

-		 * Menu COMMERCIAL (propal, commande, supplier_proposal, supplier_order, contrat, ficheinter)

+		 * Menu COMMERCIAL

 		 */

-		if ($mainmenu == 'commercial') {

+		if ($mainmenu == 'commercial')

+		{

 			$langs->load("companies");

 

 			// Customer proposal

-			if (!empty($conf->propal->enabled)) {

+			if (!empty($conf->propal->enabled))

+			{

 				$langs->load("propal");

 				$newmenu->add("/comm/propal/index.php?leftmenu=propals", $langs->trans("Proposals"), 0, $user->rights->propale->lire, '', $mainmenu, 'propals', 100);

 				$newmenu->add("/comm/propal/card.php?action=create&amp;leftmenu=propals", $langs->trans("NewPropal"), 1, $user->rights->propale->creer);

 				$newmenu->add("/comm/propal/list.php?leftmenu=propals", $langs->trans("List"), 1, $user->rights->propale->lire);

 				if ($usemenuhider || empty($leftmenu) || $leftmenu == "propals") {

-					$newmenu->add("/comm/propal/list.php?leftmenu=propals&search_status=0", $langs->trans("PropalsDraft"), 2, $user->rights->propale->lire);

-					$newmenu->add("/comm/propal/list.php?leftmenu=propals&search_status=1", $langs->trans("PropalsOpened"), 2, $user->rights->propale->lire);

-					$newmenu->add("/comm/propal/list.php?leftmenu=propals&search_status=2", $langs->trans("PropalStatusSigned"), 2, $user->rights->propale->lire);

-					$newmenu->add("/comm/propal/list.php?leftmenu=propals&search_status=3", $langs->trans("PropalStatusNotSigned"), 2, $user->rights->propale->lire);

-					$newmenu->add("/comm/propal/list.php?leftmenu=propals&search_status=4", $langs->trans("PropalStatusBilled"), 2, $user->rights->propale->lire);

-					//$newmenu->add("/comm/propal/list.php?leftmenu=propals&search_status=2,3,4", $langs->trans("PropalStatusClosedShort"), 2, $user->rights->propale->lire);

-				}

+                    $newmenu->add("/comm/propal/list.php?leftmenu=propals&search_status=0", $langs->trans("PropalsDraft"), 2, $user->rights->propale->lire);

+				    $newmenu->add("/comm/propal/list.php?leftmenu=propals&search_status=1", $langs->trans("PropalsOpened"), 2, $user->rights->propale->lire);

+				    $newmenu->add("/comm/propal/list.php?leftmenu=propals&search_status=2", $langs->trans("PropalStatusSigned"), 2, $user->rights->propale->lire);

+				    $newmenu->add("/comm/propal/list.php?leftmenu=propals&search_status=3", $langs->trans("PropalStatusNotSigned"), 2, $user->rights->propale->lire);

+				    $newmenu->add("/comm/propal/list.php?leftmenu=propals&search_status=4", $langs->trans("PropalStatusBilled"), 2, $user->rights->propale->lire);

+                    //$newmenu->add("/comm/propal/list.php?leftmenu=propals&search_status=2,3,4", $langs->trans("PropalStatusClosedShort"), 2, $user->rights->propale->lire);

+                }

 				$newmenu->add("/comm/propal/stats/index.php?leftmenu=propals", $langs->trans("Statistics"), 1, $user->rights->propale->lire);

 			}

 

-			// Customers orders

-			if (!empty($conf->commande->enabled)) {

-				$langs->load("orders");

-				$newmenu->add("/commande/index.php?leftmenu=orders", $langs->trans("CustomersOrders"), 0, $user->rights->commande->lire, '', $mainmenu, 'orders', 200);

-				$newmenu->add("/commande/card.php?action=create&amp;leftmenu=orders", $langs->trans("NewOrder"), 1, $user->rights->commande->creer);

-				$newmenu->add("/commande/list.php?leftmenu=orders", $langs->trans("List"), 1, $user->rights->commande->lire);

-				if ($usemenuhider || empty($leftmenu) || $leftmenu == "orders") {

-					$newmenu->add("/commande/list.php?leftmenu=orders&search_status=0", $langs->trans("StatusOrderDraftShort"), 2, $user->rights->commande->lire);

-					$newmenu->add("/commande/list.php?leftmenu=orders&search_status=1", $langs->trans("StatusOrderValidated"), 2, $user->rights->commande->lire);

-					if (!empty($conf->expedition->enabled)) {

-						$newmenu->add("/commande/list.php?leftmenu=orders&search_status=2", $langs->trans("StatusOrderSentShort"), 2, $user->rights->commande->lire);

-					}

-					$newmenu->add("/commande/list.php?leftmenu=orders&search_status=3", $langs->trans("StatusOrderDelivered"), 2, $user->rights->commande->lire);

-					//$newmenu->add("/commande/list.php?leftmenu=orders&search_status=4", $langs->trans("StatusOrderProcessed"), 2, $user->rights->commande->lire);

-					$newmenu->add("/commande/list.php?leftmenu=orders&search_status=-1", $langs->trans("StatusOrderCanceledShort"), 2, $user->rights->commande->lire);

-				}

-				$newmenu->add("/commande/stats/index.php?leftmenu=orders", $langs->trans("Statistics"), 1, $user->rights->commande->lire);

-			}

+            // Customers orders

+            if (!empty($conf->commande->enabled))

+            {

+                $langs->load("orders");

+                $newmenu->add("/commande/index.php?leftmenu=orders", $langs->trans("CustomersOrders"), 0, $user->rights->commande->lire, '', $mainmenu, 'orders', 200);

+                $newmenu->add("/commande/card.php?action=create&amp;leftmenu=orders", $langs->trans("NewOrder"), 1, $user->rights->commande->creer);

+                $newmenu->add("/commande/list.php?leftmenu=orders", $langs->trans("List"), 1, $user->rights->commande->lire);

+                if ($usemenuhider || empty($leftmenu) || $leftmenu == "orders") {

+                    $newmenu->add("/commande/list.php?leftmenu=orders&search_status=0", $langs->trans("StatusOrderDraftShort"), 2, $user->rights->commande->lire);

+                    $newmenu->add("/commande/list.php?leftmenu=orders&search_status=1", $langs->trans("StatusOrderValidated"), 2, $user->rights->commande->lire);

+                    if (!empty($conf->expedition->enabled)) $newmenu->add("/commande/list.php?leftmenu=orders&search_status=2", $langs->trans("StatusOrderSentShort"), 2, $user->rights->commande->lire);

+                    $newmenu->add("/commande/list.php?leftmenu=orders&search_status=3", $langs->trans("StatusOrderDelivered"), 2, $user->rights->commande->lire);

+                    //$newmenu->add("/commande/list.php?leftmenu=orders&search_status=4", $langs->trans("StatusOrderProcessed"), 2, $user->rights->commande->lire);

+                    $newmenu->add("/commande/list.php?leftmenu=orders&search_status=-1", $langs->trans("StatusOrderCanceledShort"), 2, $user->rights->commande->lire);

+                }

+                $newmenu->add("/commande/stats/index.php?leftmenu=orders", $langs->trans("Statistics"), 1, $user->rights->commande->lire);

+            }

 

 			// Supplier proposal

-			if (!empty($conf->supplier_proposal->enabled)) {

+			if (!empty($conf->supplier_proposal->enabled))

+			{

 				$langs->load("supplier_proposal");

 				$newmenu->add("/supplier_proposal/index.php?leftmenu=propals_supplier", $langs->trans("SupplierProposalsShort"), 0, $user->rights->supplier_proposal->lire, '', $mainmenu, 'propals_supplier', 300);

 				$newmenu->add("/supplier_proposal/card.php?action=create&amp;leftmenu=supplier_proposals", $langs->trans("SupplierProposalNew"), 1, $user->rights->supplier_proposal->creer);

@@ -956,54 +950,53 @@
 			}

 

 			// Suppliers orders

-			if (!empty($conf->supplier_order->enabled)) {

+            if (!empty($conf->supplier_order->enabled))

+			{

 				$langs->load("orders");

 				$newmenu->add("/fourn/commande/index.php?leftmenu=orders_suppliers", $langs->trans("SuppliersOrders"), 0, $user->rights->fournisseur->commande->lire, '', $mainmenu, 'orders_suppliers', 400);

 				$newmenu->add("/fourn/commande/card.php?action=create&amp;leftmenu=orders_suppliers", $langs->trans("NewOrder"), 1, $user->rights->fournisseur->commande->creer);

 				$newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers", $langs->trans("List"), 1, $user->rights->fournisseur->commande->lire);

 

 				if ($usemenuhider || empty($leftmenu) || $leftmenu == "orders_suppliers") {

-					$newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=0", $langs->trans("StatusSupplierOrderDraftShort"), 2, $user->rights->fournisseur->commande->lire);

-					if (empty($conf->global->SUPPLIER_ORDER_HIDE_VALIDATED)) {

-						$newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=1", $langs->trans("StatusSupplierOrderValidated"), 2, $user->rights->fournisseur->commande->lire);

-					}

-					$newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=2", $langs->trans("StatusSupplierOrderApprovedShort"), 2, $user->rights->fournisseur->commande->lire);

-					$newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=3", $langs->trans("StatusSupplierOrderOnProcessShort"), 2, $user->rights->fournisseur->commande->lire);

-					$newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=4", $langs->trans("StatusSupplierOrderReceivedPartiallyShort"), 2, $user->rights->fournisseur->commande->lire);

-					$newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=5", $langs->trans("StatusSupplierOrderReceivedAll"), 2, $user->rights->fournisseur->commande->lire);

-					$newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=6,7", $langs->trans("StatusSupplierOrderCanceled"), 2, $user->rights->fournisseur->commande->lire);

-					$newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=9", $langs->trans("StatusSupplierOrderRefused"), 2, $user->rights->fournisseur->commande->lire);

-				}

-				// Billed is another field. We should add instead a dedicated filter on list. if ($usemenuhider || empty($leftmenu) || $leftmenu=="orders_suppliers") $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&billed=1", $langs->trans("Billed"), 2, $user->rights->fournisseur->commande->lire);

+                    $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=0", $langs->trans("StatusSupplierOrderDraftShort"), 2, $user->rights->fournisseur->commande->lire);

+                    if (empty($conf->global->SUPPLIER_ORDER_HIDE_VALIDATED)) $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=1", $langs->trans("StatusSupplierOrderValidated"), 2, $user->rights->fournisseur->commande->lire);

+                    $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=2", $langs->trans("StatusSupplierOrderApprovedShort"), 2, $user->rights->fournisseur->commande->lire);

+                    $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=3", $langs->trans("StatusSupplierOrderOnProcessShort"), 2, $user->rights->fournisseur->commande->lire);

+                    $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=4", $langs->trans("StatusSupplierOrderReceivedPartiallyShort"), 2, $user->rights->fournisseur->commande->lire);

+                    $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=5", $langs->trans("StatusSupplierOrderReceivedAll"), 2, $user->rights->fournisseur->commande->lire);

+                    $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=6,7", $langs->trans("StatusSupplierOrderCanceled"), 2, $user->rights->fournisseur->commande->lire);

+                    $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=9", $langs->trans("StatusSupplierOrderRefused"), 2, $user->rights->fournisseur->commande->lire);

+                }

+                // Billed is another field. We should add instead a dedicated filter on list. if ($usemenuhider || empty($leftmenu) || $leftmenu=="orders_suppliers") $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&billed=1", $langs->trans("Billed"), 2, $user->rights->fournisseur->commande->lire);

 

 

 				$newmenu->add("/commande/stats/index.php?leftmenu=orders_suppliers&amp;mode=supplier", $langs->trans("Statistics"), 1, $user->rights->fournisseur->commande->lire);

 			}

 

 			// Contrat

-			if (!empty($conf->contrat->enabled)) {

+			if (!empty($conf->contrat->enabled))

+			{

 				$langs->load("contracts");

 				$newmenu->add("/contrat/index.php?leftmenu=contracts", $langs->trans("ContractsSubscriptions"), 0, $user->rights->contrat->lire, '', $mainmenu, 'contracts', 2000);

 				$newmenu->add("/contrat/card.php?action=create&amp;leftmenu=contracts", $langs->trans("NewContractSubscription"), 1, $user->rights->contrat->creer);

 				$newmenu->add("/contrat/list.php?leftmenu=contracts", $langs->trans("List"), 1, $user->rights->contrat->lire);

 				$newmenu->add("/contrat/services_list.php?leftmenu=contracts", $langs->trans("MenuServices"), 1, $user->rights->contrat->lire);

 				if ($usemenuhider || empty($leftmenu) || $leftmenu == "contracts") {

-					$newmenu->add("/contrat/services_list.php?leftmenu=contracts&amp;mode=0", $langs->trans("MenuInactiveServices"), 2, $user->rights->contrat->lire);

-					$newmenu->add("/contrat/services_list.php?leftmenu=contracts&amp;mode=4", $langs->trans("MenuRunningServices"), 2, $user->rights->contrat->lire);

-					$newmenu->add("/contrat/services_list.php?leftmenu=contracts&amp;mode=4&amp;filter=expired", $langs->trans("MenuExpiredServices"), 2, $user->rights->contrat->lire);

-					$newmenu->add("/contrat/services_list.php?leftmenu=contracts&amp;mode=5", $langs->trans("MenuClosedServices"), 2, $user->rights->contrat->lire);

-				}

+                    $newmenu->add("/contrat/services_list.php?leftmenu=contracts&amp;mode=0", $langs->trans("MenuInactiveServices"), 2, $user->rights->contrat->lire);

+				    $newmenu->add("/contrat/services_list.php?leftmenu=contracts&amp;mode=4", $langs->trans("MenuRunningServices"), 2, $user->rights->contrat->lire);

+				    $newmenu->add("/contrat/services_list.php?leftmenu=contracts&amp;mode=4&amp;filter=expired", $langs->trans("MenuExpiredServices"), 2, $user->rights->contrat->lire);

+                    $newmenu->add("/contrat/services_list.php?leftmenu=contracts&amp;mode=5", $langs->trans("MenuClosedServices"), 2, $user->rights->contrat->lire);

+                }

 			}

 

 			// Interventions

-			if (!empty($conf->ficheinter->enabled)) {

+			if (!empty($conf->ficheinter->enabled))

+			{

 				$langs->load("interventions");

 				$newmenu->add("/fichinter/index.php?leftmenu=ficheinter", $langs->trans("Interventions"), 0, $user->rights->ficheinter->lire, '', $mainmenu, 'ficheinter', 2200);

 				$newmenu->add("/fichinter/card.php?action=create&amp;leftmenu=ficheinter", $langs->trans("NewIntervention"), 1, $user->rights->ficheinter->creer, '', '', '', 201);

 				$newmenu->add("/fichinter/list.php?leftmenu=ficheinter", $langs->trans("List"), 1, $user->rights->ficheinter->lire, '', '', '', 202);

-				if ($conf->global->MAIN_FEATURES_LEVEL >= 2) {

-					$newmenu->add("/fichinter/card-rec.php?leftmenu=ficheinter", $langs->trans("ListOfTemplates"), 1, $user->rights->ficheinter->lire, '', '', '', 203);

-				}

+				if ($conf->global->MAIN_FEATURES_LEVEL >= 2) $newmenu->add("/fichinter/card-rec.php?leftmenu=ficheinter", $langs->trans("ListOfTemplates"), 1, $user->rights->ficheinter->lire, '', '', '', 203);

 				$newmenu->add("/fichinter/stats/index.php?leftmenu=ficheinter", $langs->trans("Statistics"), 1, $user->rights->ficheinter->lire);

 			}

 		}

@@ -1012,17 +1005,20 @@
 		/*

 		 * Menu COMPTA-FINANCIAL

 		 */

-		if ($mainmenu == 'billing') {

+		if ($mainmenu == 'billing')

+		{

 			$langs->load("companies");

 

 			// Customers invoices

-			if (!empty($conf->facture->enabled)) {

+			if (!empty($conf->facture->enabled))

+			{

 				$langs->load("bills");

-				$newmenu->add("/compta/facture/index.php?leftmenu=customers_bills", $langs->trans("BillsCustomers"), 0, $user->rights->facture->lire, '', $mainmenu, 'customers_bills');

+				$newmenu->add("/compta/facture/list.php?leftmenu=customers_bills", $langs->trans("BillsCustomers"), 0, $user->rights->facture->lire, '', $mainmenu, 'customers_bills');

 				$newmenu->add("/compta/facture/card.php?action=create", $langs->trans("NewBill"), 1, $user->rights->facture->creer);

 				$newmenu->add("/compta/facture/list.php?leftmenu=customers_bills", $langs->trans("List"), 1, $user->rights->facture->lire, '', $mainmenu, 'customers_bills_list');

 

-				if ($usemenuhider || empty($leftmenu) || preg_match('/customers_bills(|_draft|_notpaid|_paid|_canceled)$/', $leftmenu)) {

+				if ($usemenuhider || empty($leftmenu) || preg_match('/customers_bills(|_draft|_notpaid|_paid|_canceled)$/', $leftmenu))

+				{

 					$newmenu->add("/compta/facture/list.php?leftmenu=customers_bills_draft&amp;search_status=0", $langs->trans("BillShortStatusDraft"), 2, $user->rights->facture->lire);

 					$newmenu->add("/compta/facture/list.php?leftmenu=customers_bills_notpaid&amp;search_status=1", $langs->trans("BillShortStatusNotPaid"), 2, $user->rights->facture->lire);

 					$newmenu->add("/compta/facture/list.php?leftmenu=customers_bills_paid&amp;search_status=2", $langs->trans("BillShortStatusPaid"), 2, $user->rights->facture->lire);

@@ -1032,7 +1028,8 @@
 

 				$newmenu->add("/compta/paiement/list.php?leftmenu=customers_bills_payment", $langs->trans("Payments"), 1, $user->rights->facture->lire, '', $mainmenu, 'customers_bills_payment');

 

-				if (!empty($conf->global->BILL_ADD_PAYMENT_VALIDATION)) {

+				if (!empty($conf->global->BILL_ADD_PAYMENT_VALIDATION))

+				{

 					$newmenu->add("/compta/paiement/tovalidate.php?leftmenu=customers_bills_tovalid", $langs->trans("MenuToValid"), 2, $user->rights->facture->lire, '', $mainmenu, 'customer_bills_tovalid');

 				}

 				$newmenu->add("/compta/paiement/rapport.php?leftmenu=customers_bills_reports", $langs->trans("Reportings"), 2, $user->rights->facture->lire, '', $mainmenu, 'customers_bills_reports');

@@ -1041,9 +1038,10 @@
 			}

 

 			// Suppliers invoices

-			if (!empty($conf->societe->enabled) && !empty($conf->supplier_invoice->enabled)) {

+			if (!empty($conf->societe->enabled) && !empty($conf->supplier_invoice->enabled))

+			{

 				$langs->load("bills");

-				$newmenu->add("/fourn/facture/index.php?leftmenu=suppliers_bills", $langs->trans("BillsSuppliers"), 0, $user->rights->fournisseur->facture->lire, '', $mainmenu, 'suppliers_bills');

+				$newmenu->add("/fourn/facture/list.php?leftmenu=suppliers_bills", $langs->trans("BillsSuppliers"), 0, $user->rights->fournisseur->facture->lire, '', $mainmenu, 'suppliers_bills');

 				$newmenu->add("/fourn/facture/card.php?leftmenu=suppliers_bills&amp;action=create", $langs->trans("NewBill"), 1, $user->rights->fournisseur->facture->creer, '', $mainmenu, 'suppliers_bills_create');

 				$newmenu->add("/fourn/facture/list.php?leftmenu=suppliers_bills", $langs->trans("List"), 1, $user->rights->fournisseur->facture->lire, '', $mainmenu, 'suppliers_bills_list');

 

@@ -1053,7 +1051,7 @@
 					$newmenu->add("/fourn/facture/list.php?leftmenu=suppliers_bills_paid&amp;search_status=2", $langs->trans("BillShortStatusPaid"), 2, $user->rights->fournisseur->facture->lire, '', $mainmenu, 'suppliers_bills_paid');

 				}

 

-				$newmenu->add("/fourn/paiement/list.php?leftmenu=suppliers_bills_payment", $langs->trans("Payments"), 1, $user->rights->fournisseur->facture->lire, '', $mainmenu, 'suppliers_bills_payment');

+				$newmenu->add("/fourn/facture/paiement.php?leftmenu=suppliers_bills_payment", $langs->trans("Payments"), 1, $user->rights->fournisseur->facture->lire, '', $mainmenu, 'suppliers_bills_payment');

 

 				$newmenu->add("/fourn/facture/rapport.php?leftmenu=suppliers_bills_report", $langs->trans("Reportings"), 2, $user->rights->fournisseur->facture->lire, '', $mainmenu, 'suppliers_bills_report');

 

@@ -1061,17 +1059,18 @@
 			}

 

 			// Orders

-			if (!empty($conf->commande->enabled)) {

+			if (!empty($conf->commande->enabled))

+			{

 				$langs->load("orders");

-				if (!empty($conf->facture->enabled)) {

-					$newmenu->add("/commande/list.php?leftmenu=orders&amp;search_status=-3&amp;billed=0&amp;contextpage=billableorders", $langs->trans("MenuOrdersToBill2"), 0, $user->rights->commande->lire, '', $mainmenu, 'orders');

-				}

+				if (!empty($conf->facture->enabled)) $newmenu->add("/commande/list.php?leftmenu=orders&amp;search_status=-3&amp;billed=0&amp;contextpage=billableorders", $langs->trans("MenuOrdersToBill2"), 0, $user->rights->commande->lire, '', $mainmenu, 'orders');

 				//if ($usemenuhider || empty($leftmenu) || $leftmenu=="orders") $newmenu->add("/commande/", $langs->trans("StatusOrderToBill"), 1, $user->rights->commande->lire);

 			}

 

 			// Supplier Orders to bill

-			if (!empty($conf->supplier_invoice->enabled)) {

-				if (!empty($conf->global->SUPPLIER_MENU_ORDER_RECEIVED_INTO_INVOICE)) {

+			if (!empty($conf->supplier_invoice->enabled))

+			{

+				if (!empty($conf->global->SUPPLIER_MENU_ORDER_RECEIVED_INTO_INVOICE))

+				{

 					$langs->load("supplier");

 					$newmenu->add("/fourn/commande/list.php?leftmenu=orders&amp;search_status=5&amp;billed=0", $langs->trans("MenuOrdersSupplierToBill"), 0, $user->rights->commande->lire, '', $mainmenu, 'orders');

 					//if ($usemenuhider || empty($leftmenu) || $leftmenu=="orders") $newmenu->add("/commande/", $langs->trans("StatusOrderToBill"), 1, $user->rights->commande->lire);

@@ -1080,92 +1079,106 @@
 

 

 			// Donations

-			if (!empty($conf->don->enabled)) {

+			if (!empty($conf->don->enabled))

+			{

 				$langs->load("donations");

 				$newmenu->add("/don/index.php?leftmenu=donations&amp;mainmenu=billing", $langs->trans("Donations"), 0, $user->rights->don->lire, '', $mainmenu, 'donations');

 				if ($usemenuhider || empty($leftmenu) || $leftmenu == "donations") {

-					$newmenu->add("/don/card.php?leftmenu=donations&amp;action=create", $langs->trans("NewDonation"), 1, $user->rights->don->creer);

-					$newmenu->add("/don/list.php?leftmenu=donations", $langs->trans("List"), 1, $user->rights->don->lire);

-				}

+                    $newmenu->add("/don/card.php?leftmenu=donations&amp;action=create", $langs->trans("NewDonation"), 1, $user->rights->don->creer);

+                    $newmenu->add("/don/list.php?leftmenu=donations", $langs->trans("List"), 1, $user->rights->don->lire);

+                }

 				// if ($leftmenu=="donations") $newmenu->add("/don/stats/index.php",$langs->trans("Statistics"), 1, $user->rights->don->lire);

 			}

 

 			// Taxes and social contributions

-			if (!empty($conf->tax->enabled)) {

-				$newmenu->add("/compta/charges/index.php?leftmenu=tax&amp;mainmenu=billing", $langs->trans("MenuTaxesAndSpecialExpenses"), 0, $user->rights->tax->charges->lire, '', $mainmenu, 'tax');

-

-				$newmenu->add("/compta/sociales/list.php?leftmenu=tax_social", $langs->trans("MenuSocialContributions"), 1, $user->rights->tax->charges->lire);

-				if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_social/i', $leftmenu)) {

-					$newmenu->add("/compta/sociales/card.php?leftmenu=tax_social&action=create", $langs->trans("MenuNewSocialContribution"), 2, $user->rights->tax->charges->creer);

-					$newmenu->add("/compta/sociales/list.php?leftmenu=tax_social", $langs->trans("List"), 2, $user->rights->tax->charges->lire);

-					$newmenu->add("/compta/sociales/payments.php?leftmenu=tax_social&amp;mainmenu=billing", $langs->trans("Payments"), 2, $user->rights->tax->charges->lire);

-				}

-				// VAT

-				if (empty($conf->global->TAX_DISABLE_VAT_MENUS)) {

-					global $mysoc;

-

-					$newmenu->add("/compta/tva/list.php?leftmenu=tax_vat&amp;mainmenu=billing", $langs->transcountry("VAT", $mysoc->country_code), 1, $user->rights->tax->charges->lire, '', $mainmenu, 'tax_vat');

-					if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_vat/i', $leftmenu)) {

-						$newmenu->add("/compta/tva/card.php?leftmenu=tax_vat&action=create", $langs->trans("New"), 2, $user->rights->tax->charges->creer);

-						$newmenu->add("/compta/tva/list.php?leftmenu=tax_vat", $langs->trans("List"), 2, $user->rights->tax->charges->lire);

-						$newmenu->add("/compta/tva/index.php?leftmenu=tax_vat", $langs->trans("ReportByMonth"), 2, $user->rights->tax->charges->lire);

-						$newmenu->add("/compta/tva/clients.php?leftmenu=tax_vat", $langs->trans("ReportByCustomers"), 2, $user->rights->tax->charges->lire);

-						$newmenu->add("/compta/tva/quadri_detail.php?leftmenu=tax_vat", $langs->trans("ReportByQuarter"), 2, $user->rights->tax->charges->lire);

-					}

-

-					//Local Taxes 1

-					if ($mysoc->useLocalTax(1) && (isset($mysoc->localtax1_assuj) && $mysoc->localtax1_assuj == "1")) {

-						$newmenu->add("/compta/localtax/list.php?leftmenu=tax_1_vat&amp;mainmenu=billing&amp;localTaxType=1", $langs->transcountry("LT1", $mysoc->country_code), 1, $user->rights->tax->charges->lire);

-						if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_1_vat/i', $leftmenu)) {

-							$newmenu->add("/compta/localtax/card.php?leftmenu=tax_1_vat&action=create&amp;localTaxType=1", $langs->trans("New"), 2, $user->rights->tax->charges->creer);

-							$newmenu->add("/compta/localtax/list.php?leftmenu=tax_1_vat&amp;localTaxType=1", $langs->trans("List"), 2, $user->rights->tax->charges->lire);

-							$newmenu->add("/compta/localtax/index.php?leftmenu=tax_1_vat&amp;localTaxType=1", $langs->trans("ReportByMonth"), 2, $user->rights->tax->charges->lire);

-							$newmenu->add("/compta/localtax/clients.php?leftmenu=tax_1_vat&amp;localTaxType=1", $langs->trans("ReportByCustomers"), 2, $user->rights->tax->charges->lire);

-							$newmenu->add("/compta/localtax/quadri_detail.php?leftmenu=tax_1_vat&amp;localTaxType=1", $langs->trans("ReportByQuarter"), 2, $user->rights->tax->charges->lire);

+			if (!empty($conf->tax->enabled) || !empty($conf->salaries->enabled) || !empty($conf->loan->enabled) || !empty($conf->banque->enabled))

+			{

+				global $mysoc;

+

+				$permtoshowmenu = ((!empty($conf->tax->enabled) && $user->rights->tax->charges->lire) || (!empty($conf->salaries->enabled) && !empty($user->rights->salaries->read)) || (!empty($conf->loan->enabled) && $user->rights->loan->read) || (!empty($conf->banque->enabled) && $user->rights->banque->lire));

+				$newmenu->add("/compta/charges/index.php?leftmenu=tax&amp;mainmenu=billing", $langs->trans("MenuTaxesAndSpecialExpenses"), 0, $permtoshowmenu, '', $mainmenu, 'tax');

+

+				// Social contributions

+				if (!empty($conf->tax->enabled))

+				{

+					$newmenu->add("/compta/sociales/list.php?leftmenu=tax_social", $langs->trans("MenuSocialContributions"), 1, $user->rights->tax->charges->lire);

+					if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_social/i', $leftmenu)) {

+                        $newmenu->add("/compta/sociales/card.php?leftmenu=tax_social&action=create", $langs->trans("MenuNewSocialContribution"), 2, $user->rights->tax->charges->creer);

+					    $newmenu->add("/compta/sociales/list.php?leftmenu=tax_social", $langs->trans("List"), 2, $user->rights->tax->charges->lire);

+                        $newmenu->add("/compta/sociales/payments.php?leftmenu=tax_social&amp;mainmenu=billing&amp;mode=sconly", $langs->trans("Payments"), 2, $user->rights->tax->charges->lire);

+                    }

+					// VAT

+					if (empty($conf->global->TAX_DISABLE_VAT_MENUS))

+					{

+						$newmenu->add("/compta/tva/list.php?leftmenu=tax_vat&amp;mainmenu=billing", $langs->transcountry("VAT", $mysoc->country_code), 1, $user->rights->tax->charges->lire, '', $mainmenu, 'tax_vat');

+						if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_vat/i', $leftmenu)) {

+                            $newmenu->add("/compta/tva/card.php?leftmenu=tax_vat&action=create", $langs->trans("New"), 2, $user->rights->tax->charges->creer);

+						    $newmenu->add("/compta/tva/list.php?leftmenu=tax_vat", $langs->trans("List"), 2, $user->rights->tax->charges->lire);

+						    $newmenu->add("/compta/tva/index.php?leftmenu=tax_vat", $langs->trans("ReportByMonth"), 2, $user->rights->tax->charges->lire);

+						    $newmenu->add("/compta/tva/clients.php?leftmenu=tax_vat", $langs->trans("ReportByCustomers"), 2, $user->rights->tax->charges->lire);

+                            $newmenu->add("/compta/tva/quadri_detail.php?leftmenu=tax_vat", $langs->trans("ReportByQuarter"), 2, $user->rights->tax->charges->lire);

+                        }

+						global $mysoc;

+

+						//Local Taxes 1

+						if ($mysoc->useLocalTax(1) && (isset($mysoc->localtax1_assuj) && $mysoc->localtax1_assuj == "1"))

+						{

+							$newmenu->add("/compta/localtax/list.php?leftmenu=tax_1_vat&amp;mainmenu=billing&amp;localTaxType=1", $langs->transcountry("LT1", $mysoc->country_code), 1, $user->rights->tax->charges->lire);

+							if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_1_vat/i', $leftmenu)) {

+                                $newmenu->add("/compta/localtax/card.php?leftmenu=tax_1_vat&action=create&amp;localTaxType=1", $langs->trans("New"), 2, $user->rights->tax->charges->creer);

+							    $newmenu->add("/compta/localtax/list.php?leftmenu=tax_1_vat&amp;localTaxType=1", $langs->trans("List"), 2, $user->rights->tax->charges->lire);

+							    $newmenu->add("/compta/localtax/index.php?leftmenu=tax_1_vat&amp;localTaxType=1", $langs->trans("ReportByMonth"), 2, $user->rights->tax->charges->lire);

+							    $newmenu->add("/compta/localtax/clients.php?leftmenu=tax_1_vat&amp;localTaxType=1", $langs->trans("ReportByCustomers"), 2, $user->rights->tax->charges->lire);

+                                $newmenu->add("/compta/localtax/quadri_detail.php?leftmenu=tax_1_vat&amp;localTaxType=1", $langs->trans("ReportByQuarter"), 2, $user->rights->tax->charges->lire);

+                            }

+						}

+						//Local Taxes 2

+						if ($mysoc->useLocalTax(2) && (isset($mysoc->localtax2_assuj) && $mysoc->localtax2_assuj == "1"))

+						{

+							$newmenu->add("/compta/localtax/list.php?leftmenu=tax_2_vat&amp;mainmenu=billing&amp;localTaxType=2", $langs->transcountry("LT2", $mysoc->country_code), 1, $user->rights->tax->charges->lire);

+							if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_2_vat/i', $leftmenu)) {

+                                $newmenu->add("/compta/localtax/card.php?leftmenu=tax_2_vat&action=create&amp;localTaxType=2", $langs->trans("New"), 2, $user->rights->tax->charges->creer);

+							    $newmenu->add("/compta/localtax/list.php?leftmenu=tax_2_vat&amp;localTaxType=2", $langs->trans("List"), 2, $user->rights->tax->charges->lire);

+							    $newmenu->add("/compta/localtax/index.php?leftmenu=tax_2_vat&amp;localTaxType=2", $langs->trans("ReportByMonth"), 2, $user->rights->tax->charges->lire);

+							    $newmenu->add("/compta/localtax/clients.php?leftmenu=tax_2_vat&amp;localTaxType=2", $langs->trans("ReportByCustomers"), 2, $user->rights->tax->charges->lire);

+                                $newmenu->add("/compta/localtax/quadri_detail.php?leftmenu=tax_2_vat&amp;localTaxType=2", $langs->trans("ReportByQuarter"), 2, $user->rights->tax->charges->lire);

+                            }

 						}

 					}

-					//Local Taxes 2

-					if ($mysoc->useLocalTax(2) && (isset($mysoc->localtax2_assuj) && $mysoc->localtax2_assuj == "1")) {

-						$newmenu->add("/compta/localtax/list.php?leftmenu=tax_2_vat&amp;mainmenu=billing&amp;localTaxType=2", $langs->transcountry("LT2", $mysoc->country_code), 1, $user->rights->tax->charges->lire);

-						if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_2_vat/i', $leftmenu)) {

-							$newmenu->add("/compta/localtax/card.php?leftmenu=tax_2_vat&action=create&amp;localTaxType=2", $langs->trans("New"), 2, $user->rights->tax->charges->creer);

-							$newmenu->add("/compta/localtax/list.php?leftmenu=tax_2_vat&amp;localTaxType=2", $langs->trans("List"), 2, $user->rights->tax->charges->lire);

-							$newmenu->add("/compta/localtax/index.php?leftmenu=tax_2_vat&amp;localTaxType=2", $langs->trans("ReportByMonth"), 2, $user->rights->tax->charges->lire);

-							$newmenu->add("/compta/localtax/clients.php?leftmenu=tax_2_vat&amp;localTaxType=2", $langs->trans("ReportByCustomers"), 2, $user->rights->tax->charges->lire);

-							$newmenu->add("/compta/localtax/quadri_detail.php?leftmenu=tax_2_vat&amp;localTaxType=2", $langs->trans("ReportByQuarter"), 2, $user->rights->tax->charges->lire);

-						}

-					}

-				}

-			}

-

-			// Salaries

-			if (!empty($conf->salaries->enabled)) {

-				$langs->load("salaries");

-				$newmenu->add("/salaries/list.php?leftmenu=tax_salary&amp;mainmenu=billing", $langs->trans("Salaries"), 0, $user->rights->salaries->read, '', $mainmenu, 'tax_salary');

-				if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_salary/i', $leftmenu)) {

-					$newmenu->add("/salaries/card.php?leftmenu=tax_salary&action=create", $langs->trans("NewPayment"), 1, $user->rights->salaries->write);

-					$newmenu->add("/salaries/list.php?leftmenu=tax_salary", $langs->trans("Payments"), 1, $user->rights->salaries->read);

-					$newmenu->add("/salaries/stats/index.php?leftmenu=tax_salary", $langs->trans("Statistics"), 1, $user->rights->salaries->read);

-				}

-			}

-

-			// Loan

-			if (!empty($conf->loan->enabled)) {

-				$langs->load("loan");

-				$newmenu->add("/loan/list.php?leftmenu=tax_loan&amp;mainmenu=billing", $langs->trans("Loans"), 0, $user->rights->loan->read, '', $mainmenu, 'tax_loan');

-				if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_loan/i', $leftmenu)) {

-					$newmenu->add("/loan/card.php?leftmenu=tax_loan&action=create", $langs->trans("NewLoan"), 1, $user->rights->loan->write);

-					//$newmenu->add("/loan/payment/list.php?leftmenu=tax_loan",$langs->trans("Payments"),2,$user->rights->loan->read);

-				}

-			}

-

-			// Various payment

-			if (!empty($conf->banque->enabled) && empty($conf->global->BANK_USE_OLD_VARIOUS_PAYMENT)) {

-				$langs->load("banks");

-				$newmenu->add("/compta/bank/various_payment/list.php?leftmenu=tax_various&amp;mainmenu=billing", $langs->trans("MenuVariousPayment"), 0, $user->rights->banque->lire, '', $mainmenu, 'tax_various');

-				if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_various/i', $leftmenu)) {

-					$newmenu->add("/compta/bank/various_payment/card.php?leftmenu=tax_various&action=create", $langs->trans("New"), 1, $user->rights->banque->modifier);

-					$newmenu->add("/compta/bank/various_payment/list.php?leftmenu=tax_various", $langs->trans("List"), 1, $user->rights->banque->lire);

+				}

+

+				// Salaries

+				if (!empty($conf->salaries->enabled))

+				{

+					$langs->load("salaries");

+					$newmenu->add("/salaries/list.php?leftmenu=tax_salary&amp;mainmenu=billing", $langs->trans("Salaries"), 0, $user->rights->salaries->read, '', $mainmenu, 'tax_salary');

+					if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_salary/i', $leftmenu)) {

+                        $newmenu->add("/salaries/card.php?leftmenu=tax_salary&action=create", $langs->trans("NewPayment"), 1, $user->rights->salaries->write);

+					    $newmenu->add("/salaries/list.php?leftmenu=tax_salary", $langs->trans("Payments"), 1, $user->rights->salaries->read);

+                        $newmenu->add("/salaries/stats/index.php?leftmenu=tax_salary", $langs->trans("Statistics"), 1, $user->rights->salaries->read);

+                    }

+				}

+

+				// Loan

+				if (!empty($conf->loan->enabled))

+				{

+					$langs->load("loan");

+					$newmenu->add("/loan/list.php?leftmenu=tax_loan&amp;mainmenu=billing", $langs->trans("Loans"), 0, $user->rights->loan->read, '', $mainmenu, 'tax_loan');

+					if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_loan/i', $leftmenu)) {

+                        $newmenu->add("/loan/card.php?leftmenu=tax_loan&action=create", $langs->trans("NewLoan"), 1, $user->rights->loan->write);

+                        //$newmenu->add("/loan/payment/list.php?leftmenu=tax_loan",$langs->trans("Payments"),2,$user->rights->loan->read);

+                    }

+				}

+

+				// Various payment

+				if (!empty($conf->banque->enabled) && empty($conf->global->BANK_USE_OLD_VARIOUS_PAYMENT))

+				{

+					$langs->load("banks");

+					$newmenu->add("/compta/bank/various_payment/list.php?leftmenu=tax_various&amp;mainmenu=billing", $langs->trans("MenuVariousPayment"), 0, $user->rights->banque->lire, '', $mainmenu, 'tax_various');

+					if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_various/i', $leftmenu)) {

+                        $newmenu->add("/compta/bank/various_payment/card.php?leftmenu=tax_various&action=create", $langs->trans("New"), 1, $user->rights->banque->modifier);

+                        $newmenu->add("/compta/bank/various_payment/list.php?leftmenu=tax_various", $langs->trans("List"), 1, $user->rights->banque->lire);

+                    }

 				}

 			}

 		}

@@ -1173,11 +1186,13 @@
 		/*

 		 * Menu COMPTA-FINANCIAL

 		 */

-		if ($mainmenu == 'accountancy') {

+		if ($mainmenu == 'accountancy')

+		{

 			$langs->load("companies");

 

 			// Accounting (Double entries)

-			if (!empty($conf->accounting->enabled)) {

+			if (!empty($conf->accounting->enabled))

+			{

 				$permtoshowmenu = (!empty($conf->accounting->enabled) || $user->rights->accounting->bind->write || $user->rights->compta->resultat->lire);

 				//$newmenu->add("/accountancy/index.php?leftmenu=accountancy", $langs->trans("MenuAccountancy"), 0, $permtoshowmenu, '', $mainmenu, 'accountancy');

 

@@ -1194,7 +1209,6 @@
 					$newmenu->add("/accountancy/admin/journals_list.php?id=35&mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("AccountingJournals"), 1, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_journal', 30);

 					$newmenu->add("/accountancy/admin/accountmodel.php?id=31&mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("Pcg_version"), 1, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_chartmodel', 40);

 					$newmenu->add("/accountancy/admin/account.php?mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("Chartofaccounts"), 1, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_chart', 41);

-					$newmenu->add("/accountancy/admin/subaccount.php?mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("ChartOfSubaccounts"), 1, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_chart', 41);

 					$newmenu->add("/accountancy/admin/categories_list.php?id=32&search_country_id=".$mysoc->country_id."&mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("AccountingCategory"), 1, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_chart', 50);

 					$newmenu->add("/accountancy/admin/defaultaccounts.php?mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("MenuDefaultAccounts"), 1, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_default', 60);

 					if (!empty($conf->banque->enabled)) {

@@ -1216,166 +1230,160 @@
 					$newmenu->add("/accountancy/admin/export.php?mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("ExportOptions"), 1, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_export', 130);

 				}

 

-				// Transfer in accounting

-				$newmenu->add("/accountancy/index.php?leftmenu=accountancy_transfer", $langs->trans("TransferInAccounting"), 0, $user->rights->accounting->bind->write, '', $mainmenu, 'transfer', 1);

-

-				// Binding

-				// $newmenu->add("", $langs->trans("Binding"), 0, $user->rights->accounting->bind->write, '', $mainmenu, 'dispatch');

-				if (!empty($conf->facture->enabled) && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_SALES)) {

-					$newmenu->add("/accountancy/customer/index.php?leftmenu=accountancy_dispatch_customer&amp;mainmenu=accountancy", $langs->trans("CustomersVentilation"), 1, $user->rights->accounting->bind->write, '', $mainmenu, 'dispatch_customer');

-					if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_dispatch_customer/', $leftmenu)) {

-						$newmenu->add("/accountancy/customer/list.php?mainmenu=accountancy&amp;leftmenu=accountancy_dispatch_customer", $langs->trans("ToBind"), 2, $user->rights->accounting->bind->write);

-						$newmenu->add("/accountancy/customer/lines.php?mainmenu=accountancy&amp;leftmenu=accountancy_dispatch_customer", $langs->trans("Binded"), 2, $user->rights->accounting->bind->write);

-					}

-				}

-				if (!empty($conf->supplier_invoice->enabled) && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_PURCHASES)) {

-					$newmenu->add("/accountancy/supplier/index.php?leftmenu=accountancy_dispatch_supplier&amp;mainmenu=accountancy", $langs->trans("SuppliersVentilation"), 1, $user->rights->accounting->bind->write, '', $mainmenu, 'dispatch_supplier');

-					if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_dispatch_supplier/', $leftmenu)) {

-						$newmenu->add("/accountancy/supplier/list.php?mainmenu=accountancy&amp;leftmenu=accountancy_dispatch_supplier", $langs->trans("ToBind"), 2, $user->rights->accounting->bind->write);

-						$newmenu->add("/accountancy/supplier/lines.php?mainmenu=accountancy&amp;leftmenu=accountancy_dispatch_supplier", $langs->trans("Binded"), 2, $user->rights->accounting->bind->write);

-					}

-				}

-				if (!empty($conf->expensereport->enabled) && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS)) {

-					$newmenu->add("/accountancy/expensereport/index.php?leftmenu=accountancy_dispatch_expensereport&amp;mainmenu=accountancy", $langs->trans("ExpenseReportsVentilation"), 1, $user->rights->accounting->bind->write, '', $mainmenu, 'dispatch_expensereport');

-					if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_dispatch_expensereport/', $leftmenu)) {

-						$newmenu->add("/accountancy/expensereport/list.php?mainmenu=accountancy&amp;leftmenu=accountancy_dispatch_expensereport", $langs->trans("ToBind"), 2, $user->rights->accounting->bind->write);

-						$newmenu->add("/accountancy/expensereport/lines.php?mainmenu=accountancy&amp;leftmenu=accountancy_dispatch_expensereport", $langs->trans("Binded"), 2, $user->rights->accounting->bind->write);

-					}

-				}

+                // Transfer in accounting

+                $newmenu->add("/accountancy/index.php?leftmenu=accountancy_transfer", $langs->trans("TransferInAccounting"), 0, $user->rights->accounting->bind->write, '', $mainmenu, 'transfer', 1);

+

+                // Binding

+                // $newmenu->add("", $langs->trans("Binding"), 0, $user->rights->accounting->bind->write, '', $mainmenu, 'dispatch');

+                if (!empty($conf->facture->enabled))

+                {

+                	$newmenu->add("/accountancy/customer/index.php?leftmenu=accountancy_dispatch_customer&amp;mainmenu=accountancy", $langs->trans("CustomersVentilation"), 1, $user->rights->accounting->bind->write, '', $mainmenu, 'dispatch_customer');

+                	if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_dispatch_customer/', $leftmenu)) {

+                		$newmenu->add("/accountancy/customer/list.php?mainmenu=accountancy&amp;leftmenu=accountancy_dispatch_customer", $langs->trans("ToBind"), 2, $user->rights->accounting->bind->write);

+                		$newmenu->add("/accountancy/customer/lines.php?mainmenu=accountancy&amp;leftmenu=accountancy_dispatch_customer", $langs->trans("Binded"), 2, $user->rights->accounting->bind->write);

+                	}

+                }

+                if (!empty($conf->supplier_invoice->enabled))

+                {

+                	$newmenu->add("/accountancy/supplier/index.php?leftmenu=accountancy_dispatch_supplier&amp;mainmenu=accountancy", $langs->trans("SuppliersVentilation"), 1, $user->rights->accounting->bind->write, '', $mainmenu, 'dispatch_supplier');

+                	if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_dispatch_supplier/', $leftmenu)) {

+                		$newmenu->add("/accountancy/supplier/list.php?mainmenu=accountancy&amp;leftmenu=accountancy_dispatch_supplier", $langs->trans("ToBind"), 2, $user->rights->accounting->bind->write);

+                		$newmenu->add("/accountancy/supplier/lines.php?mainmenu=accountancy&amp;leftmenu=accountancy_dispatch_supplier", $langs->trans("Binded"), 2, $user->rights->accounting->bind->write);

+                	}

+                }

+                if (!empty($conf->expensereport->enabled))

+                {

+                	$newmenu->add("/accountancy/expensereport/index.php?leftmenu=accountancy_dispatch_expensereport&amp;mainmenu=accountancy", $langs->trans("ExpenseReportsVentilation"), 1, $user->rights->accounting->bind->write, '', $mainmenu, 'dispatch_expensereport');

+                	if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_dispatch_expensereport/', $leftmenu)) {

+                		$newmenu->add("/accountancy/expensereport/list.php?mainmenu=accountancy&amp;leftmenu=accountancy_dispatch_expensereport", $langs->trans("ToBind"), 2, $user->rights->accounting->bind->write);

+                		$newmenu->add("/accountancy/expensereport/lines.php?mainmenu=accountancy&amp;leftmenu=accountancy_dispatch_expensereport", $langs->trans("Binded"), 2, $user->rights->accounting->bind->write);

+                	}

+                }

 

 				// Journals

-				if (!empty($conf->accounting->enabled) && !empty($user->rights->accounting->comptarapport->lire) && $mainmenu == 'accountancy') {

-					$newmenu->add('', $langs->trans("RegistrationInAccounting"), 1, $user->rights->accounting->comptarapport->lire, '', '', '');

+				if (!empty($conf->accounting->enabled) && !empty($user->rights->accounting->comptarapport->lire) && $mainmenu == 'accountancy')

+				{

+					$newmenu->add('', $langs->trans("RegistrationInAccounting"), 1, $user->rights->accounting->comptarapport->lire);

 

 					// Multi journal

 					$sql = "SELECT rowid, code, label, nature";

 					$sql .= " FROM ".MAIN_DB_PREFIX."accounting_journal";

 					$sql .= " WHERE entity = ".$conf->entity;

 					$sql .= " AND active = 1";

-					$sql .= " ORDER BY nature ASC, label DESC";

+					$sql .= " ORDER BY label DESC";

 

 					$resql = $db->query($sql);

-					if ($resql) {

+					if ($resql)

+					{

 						$numr = $db->num_rows($resql);

 						$i = 0;

 

-						if ($numr > 0) {

-							while ($i < $numr) {

+						if ($numr > 0)

+						{

+							while ($i < $numr)

+							{

 								$objp = $db->fetch_object($resql);

 

 								$nature = '';

 

 								// Must match array $sourceList defined into journals_list.php

-								if ($objp->nature == 2 && !empty($conf->facture->enabled) && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_SALES)) {

-									$nature = "sells";

+								if ($objp->nature == 2 && !empty($conf->facture->enabled)) $nature = "sells";

+								if ($objp->nature == 3 && (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_invoice->enabled))) $nature = "purchases";

+								if ($objp->nature == 4 && !empty($conf->banque->enabled)) $nature = "bank";

+								if ($objp->nature == 5 && !empty($conf->expensereport->enabled)) $nature = "expensereports";

+								if ($objp->nature == 1) $nature = "various";

+								if ($objp->nature == 8) $nature = "inventory";

+								if ($objp->nature == 9) $nature = "hasnew";

+

+								// To enable when page exists

+								if (empty($conf->global->ACCOUNTANCY_SHOW_DEVELOP_JOURNAL))

+								{

+									if ($nature == 'various' || $nature == 'hasnew' || $nature == 'inventory') $nature = '';

 								}

-								if ($objp->nature == 3

-									&& (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_invoice->enabled))

-									&& empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_PURCHASES)) {

-									$nature = "purchases";

-								}

-								if ($objp->nature == 4 && !empty($conf->banque->enabled)) {

-									$nature = "bank";

-								}

-								if ($objp->nature == 5 && !empty($conf->expensereport->enabled) && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS)) {

-									$nature = "expensereports";

-								}

-								if ($objp->nature == 1) {

-									$nature = "various";

-								}

-								if ($objp->nature == 8) {

-									$nature = "inventory";

-								}

-								if ($objp->nature == 9) {

-									$nature = "hasnew";

-								}

-

-								// To enable when page exists

-								if (empty($conf->global->ACCOUNTANCY_SHOW_DEVELOP_JOURNAL)) {

-									if ($nature == 'various' || $nature == 'hasnew' || $nature == 'inventory') {

-										$nature = '';

-									}

-								}

-

-								if ($nature) {

+

+								if ($nature)

+								{

 									$langs->load('accountancy');

 									$journallabel = $langs->transnoentities($objp->label); // Labels in this table are set by loading llx_accounting_abc.sql. Label can be 'ACCOUNTING_SELL_JOURNAL', 'InventoryJournal', ...

 									$newmenu->add('/accountancy/journal/'.$nature.'journal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal='.$objp->rowid, $journallabel, 2, $user->rights->accounting->comptarapport->lire);

 								}

 								$i++;

 							}

-						} else {

+						}

+						else

+						{

 							// Should not happend. Entries are added

 							$newmenu->add('', $langs->trans("NoJournalDefined"), 2, $user->rights->accounting->comptarapport->lire);

 						}

-					} else {

-						dol_print_error($db);

 					}

+					else dol_print_error($db);

 					$db->free($resql);

 				}

 

-				// Accounting

-				$newmenu->add("/accountancy/index.php?leftmenu=accountancy_accountancy", $langs->trans("MenuAccountancy"), 0, $user->rights->accounting->mouvements->lire, '', $mainmenu, 'accountancy', 1);

+                // Accounting

+                $newmenu->add("/accountancy/index.php?leftmenu=accountancy_accountancy", $langs->trans("MenuAccountancy"), 0, $user->rights->accounting->mouvements->lire, '', $mainmenu, 'accountancy', 1);

+

+

+                // General Ledger

+				$newmenu->add("/accountancy/bookkeeping/list.php?mainmenu=accountancy&amp;leftmenu=accountancy_accountancy", $langs->trans("Bookkeeping"), 1, $user->rights->accounting->mouvements->lire);

 

 				// Balance

 				$newmenu->add("/accountancy/bookkeeping/balance.php?mainmenu=accountancy&amp;leftmenu=accountancy_accountancy", $langs->trans("AccountBalance"), 1, $user->rights->accounting->mouvements->lire);

 

-				// General Ledger

-				$newmenu->add("/accountancy/bookkeeping/listbyaccount.php?mainmenu=accountancy&amp;leftmenu=accountancy_accountancy", $langs->trans("Bookkeeping"), 1, $user->rights->accounting->mouvements->lire);

-

-				// Journals

-				$newmenu->add("/accountancy/bookkeeping/list.php?mainmenu=accountancy&amp;leftmenu=accountancy_accountancy", $langs->trans("Journals"), 1, $user->rights->accounting->mouvements->lire);

+                // Closure

+                if (!empty($conf->global->MAIN_FEATURES_LEVEL) && $conf->global->MAIN_FEATURES_LEVEL >= 2) {

+                    $newmenu->add("/accountancy/closure/index.php?mainmenu=accountancy&amp;leftmenu=accountancy_closure", $langs->trans("MenuAccountancyClosure"), 1, $user->rights->accounting->fiscalyear->write, '', $mainmenu, 'closure');

+

+                    if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_closure/', $leftmenu)) {

+                        $newmenu->add("/accountancy/closure/validate.php?leftmenu=accountancy_closure", $langs->trans("MenuAccountancyValidationMovements"), 2, $user->rights->accounting->fiscalyear->write);

+                    }

+                }

 

 				// Files

-				if (empty($conf->global->ACCOUNTANCY_HIDE_EXPORT_FILES_MENU)) {

+				if (empty($conf->global->ACCOUNTANCY_HIDE_EXPORT_FILES_MENU))

+				{

 					$newmenu->add("/compta/accounting-files.php?mainmenu=accountancy&amp;leftmenu=accountancy_files", $langs->trans("AccountantFiles"), 1, $user->rights->accounting->mouvements->lire);

 				}

 

-				// Closure

-				if (!empty($conf->global->MAIN_FEATURES_LEVEL) && $conf->global->MAIN_FEATURES_LEVEL >= 2) {

-					$newmenu->add("/accountancy/closure/index.php?mainmenu=accountancy&amp;leftmenu=accountancy_closure", $langs->trans("MenuAccountancyClosure"), 1, $user->rights->accounting->fiscalyear->write, '', $mainmenu, 'closure');

-				}

-

 				// Reports

-				$newmenu->add("/accountancy/index.php?leftmenu=accountancy_report", $langs->trans("Reportings"), 1, $user->rights->accounting->comptarapport->lire, '', $mainmenu, 'ca');

-

-				if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/', $leftmenu)) {

-					$newmenu->add("/compta/resultat/index.php?leftmenu=accountancy_report", $langs->trans("MenuReportInOut"), 2, $user->rights->accounting->comptarapport->lire);

-					$newmenu->add("/compta/resultat/clientfourn.php?leftmenu=accountancy_report", $langs->trans("ByPredefinedAccountGroups"), 3, $user->rights->accounting->comptarapport->lire);

-					$newmenu->add("/compta/resultat/result.php?leftmenu=accountancy_report", $langs->trans("ByPersonalizedAccountGroups"), 3, $user->rights->accounting->comptarapport->lire);

-				}

+				$newmenu->add("/compta/resultat/index.php?mainmenu=accountancy&amp;leftmenu=accountancy_report", $langs->trans("Reportings"), 1, $user->rights->accounting->comptarapport->lire, '', $mainmenu, 'ca');

+

+                if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/', $leftmenu)) {

+                    $newmenu->add("/compta/resultat/index.php?leftmenu=accountancy_report", $langs->trans("MenuReportInOut"), 2, $user->rights->accounting->comptarapport->lire);

+                    $newmenu->add("/compta/resultat/clientfourn.php?leftmenu=accountancy_report", $langs->trans("ByPredefinedAccountGroups"), 3, $user->rights->accounting->comptarapport->lire);

+                    $newmenu->add("/compta/resultat/result.php?leftmenu=accountancy_report", $langs->trans("ByPersonalizedAccountGroups"), 3, $user->rights->accounting->comptarapport->lire);

+                }

 

 				$modecompta = 'CREANCES-DETTES';

-				if (!empty($conf->accounting->enabled) && !empty($user->rights->accounting->comptarapport->lire) && $mainmenu == 'accountancy') {

-					$modecompta = 'BOOKKEEPING'; // Not yet implemented. Should be BOOKKEEPINGCOLLECTED

-				}

-				if ($modecompta) {

+				if (!empty($conf->accounting->enabled) && !empty($user->rights->accounting->comptarapport->lire) && $mainmenu == 'accountancy') $modecompta = 'BOOKKEEPING'; // Not yet implemented. Should be BOOKKEEPINGCOLLECTED

+				if ($modecompta)

+				{

 					if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/', $leftmenu)) {

-						$newmenu->add("/compta/stats/index.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ReportTurnover"), 2, $user->rights->accounting->comptarapport->lire);

-						$newmenu->add("/compta/stats/casoc.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByCompanies"), 3, $user->rights->accounting->comptarapport->lire);

-						$newmenu->add("/compta/stats/cabyuser.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByUsers"), 3, $user->rights->accounting->comptarapport->lire);

-						$newmenu->add("/compta/stats/cabyprodserv.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByProductsAndServices"), 3, $user->rights->accounting->comptarapport->lire);

-						$newmenu->add("/compta/stats/byratecountry.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByVatRate"), 3, $user->rights->accounting->comptarapport->lire);

-					}

+                        $newmenu->add("/compta/stats/index.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ReportTurnover"), 2, $user->rights->accounting->comptarapport->lire);

+					    $newmenu->add("/compta/stats/casoc.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByCompanies"), 3, $user->rights->accounting->comptarapport->lire);

+					    $newmenu->add("/compta/stats/cabyuser.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByUsers"), 3, $user->rights->accounting->comptarapport->lire);

+					    $newmenu->add("/compta/stats/cabyprodserv.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByProductsAndServices"), 3, $user->rights->accounting->comptarapport->lire);

+                        $newmenu->add("/compta/stats/byratecountry.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByVatRate"), 3, $user->rights->accounting->comptarapport->lire);

+                    }

 				}

 

 				$modecompta = 'RECETTES-DEPENSES';

 				//if (! empty($conf->accounting->enabled) && ! empty($user->rights->accounting->comptarapport->lire) && $mainmenu == 'accountancy') $modecompta='';	// Not yet implemented. Should be BOOKKEEPINGCOLLECTED

-				if ($modecompta) {

+				if ($modecompta)

+				{

 					if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/', $leftmenu)) {

-						$newmenu->add("/compta/stats/index.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ReportTurnoverCollected"), 2, $user->rights->accounting->comptarapport->lire);

-						$newmenu->add("/compta/stats/casoc.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByCompanies"), 3, $user->rights->accounting->comptarapport->lire);

-						$newmenu->add("/compta/stats/cabyuser.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByUsers"), 3, $user->rights->accounting->comptarapport->lire);

-						//$newmenu->add("/compta/stats/cabyprodserv.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByProductsAndServices"),3,$user->rights->accounting->comptarapport->lire);

-						//$newmenu->add("/compta/stats/byratecountry.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByVatRate"),3,$user->rights->accounting->comptarapport->lire);

-					}

+					    $newmenu->add("/compta/stats/index.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ReportTurnoverCollected"), 2, $user->rights->accounting->comptarapport->lire);

+					    $newmenu->add("/compta/stats/casoc.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByCompanies"), 3, $user->rights->accounting->comptarapport->lire);

+					    $newmenu->add("/compta/stats/cabyuser.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByUsers"), 3, $user->rights->accounting->comptarapport->lire);

+					    //$newmenu->add("/compta/stats/cabyprodserv.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByProductsAndServices"),3,$user->rights->accounting->comptarapport->lire);

+                        //$newmenu->add("/compta/stats/byratecountry.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByVatRate"),3,$user->rights->accounting->comptarapport->lire);

+                    }

 				}

 

 				$modecompta = 'CREANCES-DETTES';

-				if (!empty($conf->accounting->enabled) && !empty($user->rights->accounting->comptarapport->lire) && $mainmenu == 'accountancy') {

-					$modecompta = 'BOOKKEEPING'; // Not yet implemented. Should be BOOKKEEPINGCOLLECTED

-				}

-				if ($modecompta && $conf->fournisseur->enabled) {

+				if (!empty($conf->accounting->enabled) && !empty($user->rights->accounting->comptarapport->lire) && $mainmenu == 'accountancy') $modecompta = 'BOOKKEEPING'; // Not yet implemented. Should be BOOKKEEPINGCOLLECTED

+				if ($modecompta && $conf->fournisseur->enabled)

+				{

 					if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/', $leftmenu)) {

 						$newmenu->add("/compta/stats/supplier_turnover.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ReportPurchaseTurnover"), 2, $user->rights->accounting->comptarapport->lire);

 						$newmenu->add("/compta/stats/supplier_turnover_by_thirdparty.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByCompanies"), 3, $user->rights->accounting->comptarapport->lire);

@@ -1385,75 +1393,69 @@
 

 				$modecompta = 'RECETTES-DEPENSES';

 				//if (! empty($conf->accounting->enabled) && ! empty($user->rights->accounting->comptarapport->lire) && $mainmenu == 'accountancy') $modecompta='';	// Not yet implemented. Should be BOOKKEEPINGCOLLECTED

-				if ($modecompta && $conf->fournisseur->enabled) {

+				if ($modecompta && $conf->fournisseur->enabled)

+				{

 					if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/', $leftmenu)) {

 						$newmenu->add("/compta/stats/supplier_turnover.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ReportPurchaseTurnoverCollected"), 2, $user->rights->accounting->comptarapport->lire);

 						$newmenu->add("/compta/stats/supplier_turnover_by_thirdparty.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByCompanies"), 3, $user->rights->accounting->comptarapport->lire);

 					}

 				}

-			}

+            }

 

 			// Accountancy (simple)

-			if (!empty($conf->comptabilite->enabled)) {

-				// Files

-				if (empty($conf->global->ACCOUNTANCY_HIDE_EXPORT_FILES_MENU)) {

-					$newmenu->add("/compta/accounting-files.php?mainmenu=accountancy&amp;leftmenu=accountancy_files", $langs->trans("AccountantFiles"), 0, $user->rights->compta->resultat->lire, '', $mainmenu, 'files');

-				}

-

-				// Bilan, resultats

-				$newmenu->add("/compta/resultat/index.php?leftmenu=report&amp;mainmenu=accountancy", $langs->trans("Reportings"), 0, $user->rights->compta->resultat->lire, '', $mainmenu, 'ca');

-

-				if ($usemenuhider || empty($leftmenu) || preg_match('/report/', $leftmenu)) {

-					$newmenu->add("/compta/resultat/index.php?leftmenu=report", $langs->trans("MenuReportInOut"), 1, $user->rights->compta->resultat->lire);

-					$newmenu->add("/compta/resultat/clientfourn.php?leftmenu=report", $langs->trans("ByCompanies"), 2, $user->rights->compta->resultat->lire);

-					/* On verra ca avec module compabilite expert

-					$newmenu->add("/compta/resultat/compteres.php?leftmenu=report","Compte de resultat",2,$user->rights->compta->resultat->lire);

-					$newmenu->add("/compta/resultat/bilan.php?leftmenu=report","Bilan",2,$user->rights->compta->resultat->lire);

-					*/

-					$newmenu->add("/compta/stats/index.php?leftmenu=report", $langs->trans("ReportTurnover"), 1, $user->rights->compta->resultat->lire);

-

-					/*

-					$newmenu->add("/compta/stats/cumul.php?leftmenu=report","Cumule",2,$user->rights->compta->resultat->lire);

-					if (! empty($conf->propal->enabled)) {

-						$newmenu->add("/compta/stats/prev.php?leftmenu=report","Previsionnel",2,$user->rights->compta->resultat->lire);

-						$newmenu->add("/compta/stats/comp.php?leftmenu=report","Transforme",2,$user->rights->compta->resultat->lire);

-					}

-					*/

-					$newmenu->add("/compta/stats/casoc.php?leftmenu=report", $langs->trans("ByCompanies"), 2, $user->rights->compta->resultat->lire);

-					$newmenu->add("/compta/stats/cabyuser.php?leftmenu=report", $langs->trans("ByUsers"), 2, $user->rights->compta->resultat->lire);

-					$newmenu->add("/compta/stats/cabyprodserv.php?leftmenu=report", $langs->trans("ByProductsAndServices"), 2, $user->rights->compta->resultat->lire);

-					$newmenu->add("/compta/stats/byratecountry.php?leftmenu=report", $langs->trans("ByVatRate"), 2, $user->rights->compta->resultat->lire);

+            if (!empty($conf->comptabilite->enabled))

+            {

+            	// Files

+            	if (empty($conf->global->ACCOUNTANCY_HIDE_EXPORT_FILES_MENU))

+            	{

+            		$newmenu->add("/compta/accounting-files.php?mainmenu=accountancy&amp;leftmenu=accountancy_files", $langs->trans("AccountantFiles"), 0, $user->rights->compta->resultat->lire, '', $mainmenu, 'files');

+            	}

+

+                // Bilan, resultats

+                $newmenu->add("/compta/resultat/index.php?leftmenu=report&amp;mainmenu=accountancy", $langs->trans("Reportings"), 0, $user->rights->compta->resultat->lire, '', $mainmenu, 'ca');

+

+                if ($usemenuhider || empty($leftmenu) || preg_match('/report/', $leftmenu)) {

+                    $newmenu->add("/compta/resultat/index.php?leftmenu=report", $langs->trans("MenuReportInOut"), 1, $user->rights->compta->resultat->lire);

+                    $newmenu->add("/compta/resultat/clientfourn.php?leftmenu=report", $langs->trans("ByCompanies"), 2, $user->rights->compta->resultat->lire);

+                    /* On verra ca avec module compabilite expert

+                    $newmenu->add("/compta/resultat/compteres.php?leftmenu=report","Compte de resultat",2,$user->rights->compta->resultat->lire);

+                    $newmenu->add("/compta/resultat/bilan.php?leftmenu=report","Bilan",2,$user->rights->compta->resultat->lire);

+                    */

+                    $newmenu->add("/compta/stats/index.php?leftmenu=report", $langs->trans("ReportTurnover"), 1, $user->rights->compta->resultat->lire);

+

+                    /*

+                    $newmenu->add("/compta/stats/cumul.php?leftmenu=report","Cumule",2,$user->rights->compta->resultat->lire);

+                    if (! empty($conf->propal->enabled)) {

+                        $newmenu->add("/compta/stats/prev.php?leftmenu=report","Previsionnel",2,$user->rights->compta->resultat->lire);

+                        $newmenu->add("/compta/stats/comp.php?leftmenu=report","Transforme",2,$user->rights->compta->resultat->lire);

+                    }

+                    */

+                    $newmenu->add("/compta/stats/casoc.php?leftmenu=report", $langs->trans("ByCompanies"), 2, $user->rights->compta->resultat->lire);

+                    $newmenu->add("/compta/stats/cabyuser.php?leftmenu=report", $langs->trans("ByUsers"), 2, $user->rights->compta->resultat->lire);

+                    $newmenu->add("/compta/stats/cabyprodserv.php?leftmenu=report", $langs->trans("ByProductsAndServices"), 2, $user->rights->compta->resultat->lire);

+                    $newmenu->add("/compta/stats/byratecountry.php?leftmenu=report", $langs->trans("ByVatRate"), 2, $user->rights->compta->resultat->lire);

 					//Achats

 					$newmenu->add("/compta/stats/supplier_turnover.php?leftmenu=accountancy_report", $langs->trans("ReportPurchaseTurnover"), 1, $user->rights->compta->resultat->lire);

 					$newmenu->add("/compta/stats/supplier_turnover_by_thirdparty.php?leftmenu=accountancy_report", $langs->trans("ByCompanies"), 2, $user->rights->compta->resultat->lire);

 					$newmenu->add("/compta/stats/supplier_turnover_by_prodserv.php?leftmenu=accountancy_report", $langs->trans("ByProductsAndServices"), 2, $user->rights->compta->resultat->lire);

-					// Journals

-					$newmenu->add("/compta/journal/sellsjournal.php?leftmenu=report", $langs->trans("SellsJournal"), 1, $user->rights->compta->resultat->lire, '', '', '', 50);

-					$newmenu->add("/compta/journal/purchasesjournal.php?leftmenu=report", $langs->trans("PurchasesJournal"), 1, $user->rights->compta->resultat->lire, '', '', '', 51);

-				}

-				//if ($leftmenu=="ca") $newmenu->add("/compta/journaux/index.php?leftmenu=ca",$langs->trans("Journals"),1,$user->rights->compta->resultat->lire||$user->rights->accounting->comptarapport->lire);

-			}

-

-			// Intracomm report

-			if (!empty($conf->intracommreport->enabled)) {

-				$newmenu->add("/intracommreport/list.php?leftmenu=intracommreport", $langs->trans("MenuIntracommReport"), 0, $user->rights->intracommreport->read, '', $mainmenu, 'intracommreport', 1);

-				if ($usemenuhider || empty($leftmenu) || preg_match('/intracommreport/', $leftmenu)) {

-					// DEB / DES

-					$newmenu->add("/intracommreport/card.php?action=create&leftmenu=intracommreport", $langs->trans("MenuIntracommReportNew"), 1, $user->rights->intracommreport->write, '', $mainmenu, 'intracommreport', 1);

-					$newmenu->add("/intracommreport/list.php?leftmenu=intracommreport", $langs->trans("MenuIntracommReportList"), 1, $user->rights->intracommreport->read, '', $mainmenu, 'intracommreport', 1);

-				}

-			}

+                    // Journaux

+                    $newmenu->add("/compta/journal/sellsjournal.php?leftmenu=report", $langs->trans("SellsJournal"), 1, $user->rights->compta->resultat->lire, '', '', '', 50);

+                    $newmenu->add("/compta/journal/purchasesjournal.php?leftmenu=report", $langs->trans("PurchasesJournal"), 1, $user->rights->compta->resultat->lire, '', '', '', 51);

+                }

+                //if ($leftmenu=="ca") $newmenu->add("/compta/journaux/index.php?leftmenu=ca",$langs->trans("Journaux"),1,$user->rights->compta->resultat->lire||$user->rights->accounting->comptarapport->lire);

+            }

 

 			// Assets

-			if (!empty($conf->asset->enabled)) {

+			if (!empty($conf->asset->enabled))

+			{

 				$newmenu->add("/asset/list.php?leftmenu=asset&amp;mainmenu=accountancy", $langs->trans("MenuAssets"), 0, $user->rights->asset->read, '', $mainmenu, 'asset');

 				$newmenu->add("/asset/card.php?leftmenu=asset&amp;action=create", $langs->trans("MenuNewAsset"), 1, $user->rights->asset->write);

 				$newmenu->add("/asset/list.php?leftmenu=asset&amp;mainmenu=accountancy", $langs->trans("MenuListAssets"), 1, $user->rights->asset->read);

 				$newmenu->add("/asset/type.php?leftmenu=asset_type", $langs->trans("MenuTypeAssets"), 1, $user->rights->asset->read, '', $mainmenu, 'asset_type');

 				if ($usemenuhider || empty($leftmenu) || preg_match('/asset_type/', $leftmenu)) {

-					$newmenu->add("/asset/type.php?leftmenu=asset_type&amp;action=create", $langs->trans("MenuNewTypeAssets"), 2, $user->rights->asset->setup_advance);

-					$newmenu->add("/asset/type.php?leftmenu=asset_type", $langs->trans("MenuListTypeAssets"), 2, $user->rights->asset->read);

-				}

+					$newmenu->add("/asset/type.php?leftmenu=asset_type&amp;action=create", $langs->trans("MenuNewTypeAssets"), 2, (empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->asset->write) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->asset->setup_advance));

+                    $newmenu->add("/asset/type.php?leftmenu=asset_type", $langs->trans("MenuListTypeAssets"), 2, $user->rights->asset->read);

+                }

 			}

 		}

 

@@ -1461,12 +1463,14 @@
 		/*

 		 * Menu BANK

 		 */

-		if ($mainmenu == 'bank') {

+		if ($mainmenu == 'bank')

+		{

 			// Load translation files required by the page

 			$langs->loadLangs(array("withdrawals", "banks", "bills", "categories"));

 

 			// Bank-Cash account

-			if (!empty($conf->banque->enabled)) {

+			if (!empty($conf->banque->enabled))

+			{

 				$newmenu->add("/compta/bank/list.php?leftmenu=bank&amp;mainmenu=bank", $langs->trans("MenuBankCash"), 0, $user->rights->banque->lire, '', $mainmenu, 'bank');

 

 				$newmenu->add("/compta/bank/card.php?action=create", $langs->trans("MenuNewFinancialAccount"), 1, $user->rights->banque->configurer);

@@ -1477,34 +1481,37 @@
 				$newmenu->add("/compta/bank/transfer.php", $langs->trans("MenuBankInternalTransfer"), 1, $user->rights->banque->transfer);

 			}

 

-			if (!empty($conf->categorie->enabled)) {

+			if (!empty($conf->categorie->enabled))

+			{

 				$langs->load("categories");

 				$newmenu->add("/categories/index.php?type=5", $langs->trans("Rubriques"), 1, $user->rights->categorie->creer, '', $mainmenu, 'tags');

-				$newmenu->add("/compta/bank/categ.php", $langs->trans("RubriquesTransactions"), 1, $user->rights->banque->configurer, '', $mainmenu, 'tags');

+				$newmenu->add("/compta/bank/categ.php", $langs->trans("RubriquesTransactions"), 1, $user->rights->categorie->creer, '', $mainmenu, 'tags');

 			}

 

 			// Direct debit order

-			if (!empty($conf->prelevement->enabled)) {

+			if (!empty($conf->prelevement->enabled))

+			{

 				$newmenu->add("/compta/prelevement/index.php?leftmenu=withdraw&amp;mainmenu=bank", $langs->trans("PaymentByDirectDebit"), 0, $user->rights->prelevement->bons->lire, '', $mainmenu, 'withdraw');

 

 				if ($usemenuhider || empty($leftmenu) || $leftmenu == "withdraw") {

-					$newmenu->add("/compta/prelevement/create.php?mainmenu=bank", $langs->trans("NewStandingOrder"), 1, $user->rights->prelevement->bons->creer);

-

-					$newmenu->add("/compta/prelevement/orders_list.php?mainmenu=bank", $langs->trans("WithdrawalsReceipts"), 1, $user->rights->prelevement->bons->lire);

-					$newmenu->add("/compta/prelevement/list.php?mainmenu=bank", $langs->trans("WithdrawalsLines"), 1, $user->rights->prelevement->bons->lire);

-					$newmenu->add("/compta/prelevement/rejets.php?mainmenu=bank", $langs->trans("Rejects"), 1, $user->rights->prelevement->bons->lire);

-					$newmenu->add("/compta/prelevement/stats.php?mainmenu=bank", $langs->trans("Statistics"), 1, $user->rights->prelevement->bons->lire);

-				}

+				    $newmenu->add("/compta/prelevement/create.php?mainmenu=bank", $langs->trans("NewStandingOrder"), 1, $user->rights->prelevement->bons->creer);

+

+				    $newmenu->add("/compta/prelevement/bons.php?mainmenu=bank", $langs->trans("WithdrawalsReceipts"), 1, $user->rights->prelevement->bons->lire);

+				    $newmenu->add("/compta/prelevement/list.php?mainmenu=bank", $langs->trans("WithdrawalsLines"), 1, $user->rights->prelevement->bons->lire);

+				    $newmenu->add("/compta/prelevement/rejets.php?mainmenu=bank", $langs->trans("Rejects"), 1, $user->rights->prelevement->bons->lire);

+				    $newmenu->add("/compta/prelevement/stats.php?mainmenu=bank", $langs->trans("Statistics"), 1, $user->rights->prelevement->bons->lire);

+                }

 			}

 

 			// Bank transfer order

-			if (!empty($conf->paymentbybanktransfer->enabled)) {

+			if (!empty($conf->paymentbybanktransfer->enabled))

+			{

 				$newmenu->add("/compta/paymentbybanktransfer/index.php?leftmenu=banktransfer&amp;mainmenu=bank", $langs->trans("PaymentByBankTransfer"), 0, $user->rights->paymentbybanktransfer->read, '', $mainmenu, 'banktransfer');

 

 				if ($usemenuhider || empty($leftmenu) || $leftmenu == "banktransfer") {

 					$newmenu->add("/compta/prelevement/create.php?type=bank-transfer&mainmenu=bank", $langs->trans("NewPaymentByBankTransfer"), 1, $user->rights->paymentbybanktransfer->create);

 

-					$newmenu->add("/compta/prelevement/orders_list.php?type=bank-transfer&mainmenu=bank", $langs->trans("PaymentByBankTransferReceipts"), 1, $user->rights->paymentbybanktransfer->read);

+					$newmenu->add("/compta/prelevement/bons.php?type=bank-transfer&mainmenu=bank", $langs->trans("PaymentByBankTransferReceipts"), 1, $user->rights->paymentbybanktransfer->read);

 					$newmenu->add("/compta/prelevement/list.php?type=bank-transfer&mainmenu=bank", $langs->trans("PaymentByBankTransferLines"), 1, $user->rights->paymentbybanktransfer->read);

 					$newmenu->add("/compta/prelevement/rejets.php?type=bank-transfer&mainmenu=bank", $langs->trans("Rejects"), 1, $user->rights->paymentbybanktransfer->read);

 					$newmenu->add("/compta/prelevement/stats.php?type=bank-transfer&mainmenu=bank", $langs->trans("Statistics"), 1, $user->rights->paymentbybanktransfer->read);

@@ -1512,16 +1519,18 @@
 			}

 

 			// Management of checks

-			if (empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT) && !empty($conf->banque->enabled) && (!empty($conf->facture->enabled) || !empty($conf->global->MAIN_MENU_CHEQUE_DEPOSIT_ON))) {

+			if (empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT) && !empty($conf->banque->enabled) && (!empty($conf->facture->enabled) || !empty($conf->global->MAIN_MENU_CHEQUE_DEPOSIT_ON)))

+			{

 				$newmenu->add("/compta/paiement/cheque/index.php?leftmenu=checks&amp;mainmenu=bank", $langs->trans("MenuChequeDeposits"), 0, $user->rights->banque->cheque, '', $mainmenu, 'checks');

 				if (preg_match('/checks/', $leftmenu)) {

-					$newmenu->add("/compta/paiement/cheque/card.php?leftmenu=checks_bis&amp;action=new&amp;mainmenu=bank", $langs->trans("NewChequeDeposit"), 1, $user->rights->banque->cheque);

-					$newmenu->add("/compta/paiement/cheque/list.php?leftmenu=checks_bis&amp;mainmenu=bank", $langs->trans("List"), 1, $user->rights->banque->cheque);

-				}

+                    $newmenu->add("/compta/paiement/cheque/card.php?leftmenu=checks_bis&amp;action=new&amp;mainmenu=bank", $langs->trans("NewChequeDeposit"), 1, $user->rights->banque->cheque);

+                    $newmenu->add("/compta/paiement/cheque/list.php?leftmenu=checks_bis&amp;mainmenu=bank", $langs->trans("List"), 1, $user->rights->banque->cheque);

+                }

 			}

 

 			// Cash Control

-			if (!empty($conf->takepos->enabled) || !empty($conf->cashdesk->enabled)) {

+			if (!empty($conf->takepos->enabled) || !empty($conf->cashdesk->enabled))

+			{

 				$permtomakecashfence = ($user->rights->cashdesk->run || $user->rights->takepos->run);

 				$newmenu->add("/compta/cashcontrol/cashcontrol_list.php?action=list", $langs->trans("POS"), 0, $permtomakecashfence, '', $mainmenu, 'cashcontrol');

 				$newmenu->add("/compta/cashcontrol/cashcontrol_card.php?action=create", $langs->trans("NewCashFence"), 1, $permtomakecashfence);

@@ -1532,29 +1541,36 @@
 		/*

 		 * Menu PRODUCTS-SERVICES

 		 */

-		if ($mainmenu == 'products') {

+		if ($mainmenu == 'products')

+		{

 			// Products

-			if (!empty($conf->product->enabled)) {

+			if (!empty($conf->product->enabled))

+			{

 				$newmenu->add("/product/index.php?leftmenu=product&amp;type=0", $langs->trans("Products"), 0, $user->rights->produit->lire, '', $mainmenu, 'product');

 				$newmenu->add("/product/card.php?leftmenu=product&amp;action=create&amp;type=0", $langs->trans("NewProduct"), 1, $user->rights->produit->creer);

 				$newmenu->add("/product/list.php?leftmenu=product&amp;type=0", $langs->trans("List"), 1, $user->rights->produit->lire);

-				if (!empty($conf->stock->enabled)) {

+				if (!empty($conf->stock->enabled))

+				{

 					$newmenu->add("/product/reassort.php?type=0", $langs->trans("MenuStocks"), 1, $user->rights->produit->lire && $user->rights->stock->lire);

 				}

-				if (!empty($conf->productbatch->enabled)) {

+				if (!empty($conf->productbatch->enabled))

+				{

 					$langs->load("stocks");

 					$newmenu->add("/product/reassortlot.php?type=0", $langs->trans("StocksByLotSerial"), 1, $user->rights->produit->lire && $user->rights->stock->lire);

 					$newmenu->add("/product/stock/productlot_list.php", $langs->trans("LotSerial"), 1, $user->rights->produit->lire && $user->rights->stock->lire);

 				}

-				if (!empty($conf->variants->enabled)) {

+				if (!empty($conf->variants->enabled))

+				{

 					$newmenu->add("/variants/list.php", $langs->trans("VariantAttributes"), 1, $user->rights->produit->lire);

 				}

-				if (!empty($conf->propal->enabled) || !empty($conf->commande->enabled) || !empty($conf->facture->enabled) || !empty($conf->fournisseur->enabled) || !empty($conf->supplier_proposal->enabled)) {

+				if (!empty($conf->propal->enabled) || !empty($conf->commande->enabled) || !empty($conf->facture->enabled) || !empty($conf->fournisseur->enabled) || !empty($conf->supplier_proposal->enabled))

+				{

 					$newmenu->add("/product/stats/card.php?id=all&leftmenu=stats&type=0", $langs->trans("Statistics"), 1, $user->rights->produit->lire && $user->rights->propale->lire);

 				}

 

 				// Categories

-				if (!empty($conf->categorie->enabled)) {

+				if (!empty($conf->categorie->enabled))

+				{

 					$langs->load("categories");

 					$newmenu->add("/categories/index.php?leftmenu=cat&amp;type=0", $langs->trans("Categories"), 1, $user->rights->categorie->lire, '', $mainmenu, 'cat');

 					//if ($usemenuhider || empty($leftmenu) || $leftmenu=="cat") $newmenu->add("/categories/list.php", $langs->trans("List"), 1, $user->rights->categorie->lire);

@@ -1562,15 +1578,18 @@
 			}

 

 			// Services

-			if (!empty($conf->service->enabled)) {

+			if (!empty($conf->service->enabled))

+			{

 				$newmenu->add("/product/index.php?leftmenu=service&amp;type=1", $langs->trans("Services"), 0, $user->rights->service->lire, '', $mainmenu, 'service');

 				$newmenu->add("/product/card.php?leftmenu=service&amp;action=create&amp;type=1", $langs->trans("NewService"), 1, $user->rights->service->creer);

 				$newmenu->add("/product/list.php?leftmenu=service&amp;type=1", $langs->trans("List"), 1, $user->rights->service->lire);

-				if (!empty($conf->propal->enabled) || !empty($conf->commande->enabled) || !empty($conf->facture->enabled) || !empty($conf->fournisseur->enabled) || !empty($conf->supplier_proposal->enabled)) {

+				if (!empty($conf->propal->enabled) || !empty($conf->commande->enabled) || !empty($conf->facture->enabled) || !empty($conf->fournisseur->enabled) || !empty($conf->supplier_proposal->enabled))

+				{

 					$newmenu->add("/product/stats/card.php?id=all&leftmenu=stats&type=1", $langs->trans("Statistics"), 1, $user->rights->service->lire && $user->rights->propale->lire);

 				}

 				// Categories

-				if (!empty($conf->categorie->enabled)) {

+				if (!empty($conf->categorie->enabled))

+				{

 					$langs->load("categories");

 					$newmenu->add("/categories/index.php?leftmenu=cat&amp;type=0", $langs->trans("Categories"), 1, $user->rights->categorie->lire, '', $mainmenu, 'cat');

 					//if ($usemenuhider || empty($leftmenu) || $leftmenu=="cat") $newmenu->add("/categories/list.php", $langs->trans("List"), 1, $user->rights->categorie->lire);

@@ -1578,119 +1597,121 @@
 			}

 

 			// Warehouse

-			if (!empty($conf->stock->enabled)) {

+			if (!empty($conf->stock->enabled))

+			{

 				$langs->load("stocks");

 				$newmenu->add("/product/stock/index.php?leftmenu=stock", $langs->trans("Warehouses"), 0, $user->rights->stock->lire, '', $mainmenu, 'stock');

 				$newmenu->add("/product/stock/card.php?action=create", $langs->trans("MenuNewWarehouse"), 1, $user->rights->stock->creer);

 				$newmenu->add("/product/stock/list.php", $langs->trans("List"), 1, $user->rights->stock->lire);

 				$newmenu->add("/product/stock/movement_list.php", $langs->trans("Movements"), 1, $user->rights->stock->mouvement->lire);

 

-				$newmenu->add("/product/stock/massstockmove.php", $langs->trans("MassStockTransferShort"), 1, $user->rights->stock->mouvement->creer);

-				if ($conf->supplier_order->enabled) {

-					$newmenu->add("/product/stock/replenish.php", $langs->trans("Replenishment"), 1, $user->rights->stock->mouvement->creer && $user->rights->fournisseur->lire);

-				}

-				$newmenu->add("/product/stock/stockatdate.php", $langs->trans("StockAtDate"), 1, $user->rights->produit->lire && $user->rights->stock->lire);

-

-				// Categories for warehouses

-				if (!empty($conf->categorie->enabled)) {

-					$newmenu->add("/categories/index.php?leftmenu=stock&amp;type=9", $langs->trans("Categories"), 1, $user->rights->categorie->lire, '', $mainmenu, 'cat');

-				}

+                $newmenu->add("/product/stock/massstockmove.php", $langs->trans("MassStockTransferShort"), 1, $user->rights->stock->mouvement->creer);

+                if ($conf->supplier_order->enabled) $newmenu->add("/product/stock/replenish.php", $langs->trans("Replenishment"), 1, $user->rights->stock->mouvement->creer && $user->rights->fournisseur->lire);

+

+                // Categories for warehouses

+                if (!empty($conf->categorie->enabled))

+                {

+                	$newmenu->add("/categories/index.php?leftmenu=stock&amp;type=9", $langs->trans("Categories"), 1, $user->rights->categorie->lire, '', $mainmenu, 'cat');

+                }

 			}

 

 			// Inventory

-			if ($conf->global->MAIN_FEATURES_LEVEL >= 2) {

-				if (!empty($conf->stock->enabled)) {

-					$langs->load("stocks");

-					if (empty($conf->global->MAIN_USE_ADVANCED_PERMS)) {

-						$newmenu->add("/product/inventory/list.php?leftmenu=stock_inventories", $langs->trans("Inventories"), 0, $user->rights->stock->lire, '', $mainmenu, 'stock');

-						if ($usemenuhider || empty($leftmenu) || $leftmenu == "stock_inventories") {

-							$newmenu->add("/product/inventory/card.php?action=create&leftmenu=stock_inventories", $langs->trans("NewInventory"), 1, $user->rights->stock->creer);

-							$newmenu->add("/product/inventory/list.php?leftmenu=stock_inventories", $langs->trans("List"), 1, $user->rights->stock->lire);

-						}

-					} else {

-						$newmenu->add("/product/inventory/list.php?leftmenu=stock_inventories", $langs->trans("Inventories"), 0, $user->rights->stock->inventory_advance->read, '', $mainmenu, 'stock');

-						if ($usemenuhider || empty($leftmenu) || $leftmenu == "stock_inventories") {

-							$newmenu->add("/product/inventory/card.php?action=create&leftmenu=stock_inventories", $langs->trans("NewInventory"), 1, $user->rights->stock->inventory_advance->write);

-							$newmenu->add("/product/inventory/list.php?leftmenu=stock_inventories", $langs->trans("List"), 1, $user->rights->stock->inventory_advance->read);

-						}

+			if ($conf->global->MAIN_FEATURES_LEVEL >= 2)

+			{

+    			if (!empty($conf->stock->enabled))

+    			{

+    				$langs->load("stocks");

+					if (empty($conf->global->MAIN_USE_ADVANCED_PERMS))

+					{

+						$newmenu->add("/product/inventory/list.php?leftmenu=stock", $langs->trans("Inventory"), 0, $user->rights->stock->lire, '', $mainmenu, 'stock');

+						$newmenu->add("/product/inventory/card.php?action=create", $langs->trans("NewInventory"), 1, $user->rights->stock->creer);

+						$newmenu->add("/product/inventory/list.php", $langs->trans("List"), 1, $user->rights->stock->lire);

 					}

-				}

+					else

+					{

+						$newmenu->add("/product/inventory/list.php?leftmenu=stock", $langs->trans("Inventory"), 0, $user->rights->stock->inventory_advance->read, '', $mainmenu, 'stock');

+						$newmenu->add("/product/inventory/card.php?action=create", $langs->trans("NewInventory"), 1, $user->rights->stock->inventory_advance->write);

+						$newmenu->add("/product/inventory/list.php", $langs->trans("List"), 1, $user->rights->stock->inventory_advance->read);

+					}

+    			}

 			}

 

 			// Shipments

-			if (!empty($conf->expedition->enabled)) {

+			if (!empty($conf->expedition->enabled))

+			{

 				$langs->load("sendings");

 				$newmenu->add("/expedition/index.php?leftmenu=sendings", $langs->trans("Shipments"), 0, $user->rights->expedition->lire, '', $mainmenu, 'sendings');

 				$newmenu->add("/expedition/card.php?action=create2&amp;leftmenu=sendings", $langs->trans("NewSending"), 1, $user->rights->expedition->creer);

 				$newmenu->add("/expedition/list.php?leftmenu=sendings", $langs->trans("List"), 1, $user->rights->expedition->lire);

 				if ($usemenuhider || empty($leftmenu) || $leftmenu == "sendings") {

-					$newmenu->add("/expedition/list.php?leftmenu=sendings&search_status=0", $langs->trans("StatusSendingDraftShort"), 2, $user->rights->expedition->lire);

-					$newmenu->add("/expedition/list.php?leftmenu=sendings&search_status=1", $langs->trans("StatusSendingValidatedShort"), 2, $user->rights->expedition->lire);

-					$newmenu->add("/expedition/list.php?leftmenu=sendings&search_status=2", $langs->trans("StatusSendingProcessedShort"), 2, $user->rights->expedition->lire);

-				}

+                    $newmenu->add("/expedition/list.php?leftmenu=sendings&search_status=0", $langs->trans("StatusSendingDraftShort"), 2, $user->rights->expedition->lire);

+				    $newmenu->add("/expedition/list.php?leftmenu=sendings&search_status=1", $langs->trans("StatusSendingValidatedShort"), 2, $user->rights->expedition->lire);

+                    $newmenu->add("/expedition/list.php?leftmenu=sendings&search_status=2", $langs->trans("StatusSendingProcessedShort"), 2, $user->rights->expedition->lire);

+                }

 				$newmenu->add("/expedition/stats/index.php?leftmenu=sendings", $langs->trans("Statistics"), 1, $user->rights->expedition->lire);

 			}

 

-			// Receptions

-			if (!empty($conf->reception->enabled)) {

+            // Receptions

+			if (!empty($conf->reception->enabled))

+			{

 				$langs->load("receptions");

 				$newmenu->add("/reception/index.php?leftmenu=receptions", $langs->trans("Receptions"), 0, $user->rights->reception->lire, '', $mainmenu, 'receptions');

 				$newmenu->add("/reception/card.php?action=create2&amp;leftmenu=receptions", $langs->trans("NewReception"), 1, $user->rights->reception->creer);

 				$newmenu->add("/reception/list.php?leftmenu=receptions", $langs->trans("List"), 1, $user->rights->reception->lire);

-				if ($usemenuhider || empty($leftmenu) || $leftmenu == "receptions") {

-					$newmenu->add("/reception/list.php?leftmenu=receptions&search_status=0", $langs->trans("StatusReceptionDraftShort"), 2, $user->rights->reception->lire);

-				}

-				if ($usemenuhider || empty($leftmenu) || $leftmenu == "receptions") {

-					$newmenu->add("/reception/list.php?leftmenu=receptions&search_status=1", $langs->trans("StatusReceptionValidatedShort"), 2, $user->rights->reception->lire);

-				}

-				if ($usemenuhider || empty($leftmenu) || $leftmenu == "receptions") {

-					$newmenu->add("/reception/list.php?leftmenu=receptions&search_status=2", $langs->trans("StatusReceptionProcessedShort"), 2, $user->rights->reception->lire);

-				}

+				if ($usemenuhider || empty($leftmenu) || $leftmenu == "receptions") $newmenu->add("/reception/list.php?leftmenu=receptions&search_status=0", $langs->trans("StatusReceptionDraftShort"), 2, $user->rights->reception->lire);

+				if ($usemenuhider || empty($leftmenu) || $leftmenu == "receptions") $newmenu->add("/reception/list.php?leftmenu=receptions&search_status=1", $langs->trans("StatusReceptionValidatedShort"), 2, $user->rights->reception->lire);

+				if ($usemenuhider || empty($leftmenu) || $leftmenu == "receptions") $newmenu->add("/reception/list.php?leftmenu=receptions&search_status=2", $langs->trans("StatusReceptionProcessedShort"), 2, $user->rights->reception->lire);

 				$newmenu->add("/reception/stats/index.php?leftmenu=receptions", $langs->trans("Statistics"), 1, $user->rights->reception->lire);

 			}

 		}

 

 		/*

-		 * Menu PRODUCTS-SERVICES MRP - GPAO

+		 * Menu PRODUCTS-SERVICES MRP

 		 */

-		if ($mainmenu == 'mrp') {

-			// BOM

-			if (!empty($conf->bom->enabled) || !empty($conf->mrp->enabled)) {

-				$langs->load("mrp");

-

-				$newmenu->add("", $langs->trans("MenuBOM"), 0, $user->rights->bom->read, '', $mainmenu, 'bom');

-				$newmenu->add("/bom/bom_card.php?leftmenu=bom&amp;action=create", $langs->trans("NewBOM"), 1, $user->rights->bom->write, '', $mainmenu, 'bom');

-				$newmenu->add("/bom/bom_list.php?leftmenu=bom", $langs->trans("List"), 1, $user->rights->bom->read, '', $mainmenu, 'bom');

-			}

-

-			if (!empty($conf->mrp->enabled)) {

-				$langs->load("mrp");

-

-				$newmenu->add("", $langs->trans("MenuMRP"), 0, $user->rights->mrp->read, '', $mainmenu, 'mo');

-				$newmenu->add("/mrp/mo_card.php?leftmenu=mo&amp;action=create", $langs->trans("NewMO"), 1, $user->rights->mrp->write, '', $mainmenu, 'mo');

-				$newmenu->add("/mrp/mo_list.php?leftmenu=mo", $langs->trans("List"), 1, $user->rights->mrp->read, '', $mainmenu, 'mo');

-			}

+		if ($mainmenu == 'mrp')

+		{

+		    // BOM

+		    if (!empty($conf->bom->enabled) || !empty($conf->mrp->enabled))

+		    {

+		        $langs->load("mrp");

+

+		        $newmenu->add("", $langs->trans("MenuBOM"), 0, $user->rights->bom->read, '', $mainmenu, 'bom');

+		        $newmenu->add("/bom/bom_card.php?leftmenu=bom&amp;action=create", $langs->trans("NewBOM"), 1, $user->rights->bom->write, '', $mainmenu, 'bom');

+		        $newmenu->add("/bom/bom_list.php?leftmenu=bom", $langs->trans("List"), 1, $user->rights->bom->read, '', $mainmenu, 'bom');

+		    }

+

+		    if (!empty($conf->mrp->enabled))

+		    {

+		    	$langs->load("mrp");

+

+		    	$newmenu->add("", $langs->trans("MenuMRP"), 0, $user->rights->mrp->read, '', $mainmenu, 'mo');

+		    	$newmenu->add("/mrp/mo_card.php?leftmenu=mo&amp;action=create", $langs->trans("NewMO"), 1, $user->rights->mrp->write, '', $mainmenu, 'mo');

+		    	$newmenu->add("/mrp/mo_list.php?leftmenu=mo", $langs->trans("List"), 1, $user->rights->mrp->read, '', $mainmenu, 'mo');

+		    }

 		}

 

 		/*

 		 * Menu PROJECTS

 		 */

-		if ($mainmenu == 'project') {

-			if (!empty($conf->projet->enabled)) {

+		if ($mainmenu == 'project')

+		{

+			if (!empty($conf->projet->enabled))

+			{

 				$langs->load("projects");

 

 				$search_project_user = GETPOST('search_project_user', 'int');

 

 				$tmpentry = array(

-					'enabled'=>(!empty($conf->projet->enabled)),

-					'perms'=>(!empty($user->rights->projet->lire)),

-					'module'=>'projet'

-				);

+                    'enabled'=>(!empty($conf->projet->enabled)),

+				    'perms'=>(!empty($user->rights->projet->lire)),

+                    'module'=>'projet'

+                );

 				$showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal);

 

 				$titleboth = $langs->trans("LeadsOrProjects");

 				$titlenew = $langs->trans("NewLeadOrProject"); // Leads and opportunities by default

-				if ($conf->global->PROJECT_USE_OPPORTUNITIES == 0) {

+				if ($conf->global->PROJECT_USE_OPPORTUNITIES == 0)

+				{

 					$titleboth = $langs->trans("Projects");

 					$titlenew = $langs->trans("NewProject");

 				}

@@ -1703,32 +1724,38 @@
 				$newmenu->add("/projet/index.php?leftmenu=projects".($search_project_user ? '&search_project_user='.$search_project_user : ''), $titleboth, 0, $user->rights->projet->lire, '', $mainmenu, 'projects');

 				$newmenu->add("/projet/card.php?leftmenu=projects&action=create".($search_project_user ? '&search_project_user='.$search_project_user : ''), $titlenew, 1, $user->rights->projet->creer);

 

-				if ($conf->global->PROJECT_USE_OPPORTUNITIES == 0) {

+				if ($conf->global->PROJECT_USE_OPPORTUNITIES == 0)

+				{

 					$newmenu->add("/projet/list.php?leftmenu=projets".($search_project_user ? '&search_project_user='.$search_project_user : '').'&search_status=99', $langs->trans("List"), 1, $showmode, '', 'project', 'list');

-				} elseif ($conf->global->PROJECT_USE_OPPORTUNITIES == 1) {

+				}

+				elseif ($conf->global->PROJECT_USE_OPPORTUNITIES == 1)

+				{

 					$newmenu->add("/projet/list.php?leftmenu=projets".($search_project_user ? '&search_project_user='.$search_project_user : ''), $langs->trans("List"), 1, $showmode, '', 'project', 'list');

-					$newmenu->add('/projet/list.php?mainmenu=project&amp;leftmenu=list&search_usage_opportunity=1&search_status=99&search_opp_status=openedopp&contextpage=lead', $langs->trans("ListOpenLeads"), 2, $showmode);

+					$newmenu->add('/projet/list.php?mainmenu=project&amp;leftmenu=list&search_usage_opportunity=1&search_status=99&contextpage=lead', $langs->trans("ListOpenLeads"), 2, $showmode);

 					$newmenu->add('/projet/list.php?mainmenu=project&amp;leftmenu=list&search_opp_status=notopenedopp&search_status=99&contextpage=project', $langs->trans("ListOpenProjects"), 2, $showmode);

-				} elseif ($conf->global->PROJECT_USE_OPPORTUNITIES == 2) {	// 2 = leads only

+				}

+				elseif ($conf->global->PROJECT_USE_OPPORTUNITIES == 2) {	// 2 = leads only

 					$newmenu->add('/projet/list.php?mainmenu=project&amp;leftmenu=list&search_usage_opportunity=1&search_status=99', $langs->trans("List"), 2, $showmode);

 				}

 

 				$newmenu->add("/projet/stats/index.php?leftmenu=projects", $langs->trans("Statistics"), 1, $user->rights->projet->lire);

 

 				// Categories

-				if (!empty($conf->categorie->enabled)) {

+				if (!empty($conf->categorie->enabled))

+				{

 					$langs->load("categories");

 					$newmenu->add("/categories/index.php?leftmenu=cat&amp;type=6", $langs->trans("Categories"), 1, $user->rights->categorie->lire, '', $mainmenu, 'cat');

 				}

 

-				if (empty($conf->global->PROJECT_HIDE_TASKS)) {

+				if (empty($conf->global->PROJECT_HIDE_TASKS))

+				{

 					// Project affected to user

-					$newmenu->add("/projet/activity/index.php?leftmenu=tasks".($search_project_user ? '&search_project_user='.$search_project_user : ''), $langs->trans("Activities"), 0, $user->rights->projet->lire, '', 'project', 'tasks');

+					$newmenu->add("/projet/activity/index.php?leftmenu=tasks".($search_project_user ? '&search_project_user='.$search_project_user : ''), $langs->trans("Activities"), 0, $user->rights->projet->lire);

 					$newmenu->add("/projet/tasks.php?leftmenu=tasks&action=create", $langs->trans("NewTask"), 1, $user->rights->projet->creer);

 					$newmenu->add("/projet/tasks/list.php?leftmenu=tasks".($search_project_user ? '&search_project_user='.$search_project_user : ''), $langs->trans("List"), 1, $user->rights->projet->lire);

-					$newmenu->add("/projet/tasks/stats/index.php?leftmenu=projects", $langs->trans("Statistics"), 1, $user->rights->projet->lire);

-

-					$newmenu->add("/projet/activity/perweek.php?leftmenu=tasks".($search_project_user ? '&search_project_user='.$search_project_user : ''), $langs->trans("NewTimeSpent"), 0, $user->rights->projet->lire);

+				    $newmenu->add("/projet/tasks/stats/index.php?leftmenu=projects", $langs->trans("Statistics"), 1, $user->rights->projet->lire);

+

+				    $newmenu->add("/projet/activity/perweek.php?leftmenu=tasks".($search_project_user ? '&search_project_user='.$search_project_user : ''), $langs->trans("NewTimeSpent"), 0, $user->rights->projet->lire);

 				}

 			}

 		}

@@ -1736,9 +1763,11 @@
 		/*

 		 * Menu HRM

 		*/

-		if ($mainmenu == 'hrm') {

+		if ($mainmenu == 'hrm')

+		{

 			// HRM module

-			if (!empty($conf->hrm->enabled)) {

+			if (!empty($conf->hrm->enabled))

+			{

 				$langs->load("hrm");

 

 				$newmenu->add("/user/list.php?mainmenu=hrm&leftmenu=hrm&mode=employee", $langs->trans("Employees"), 0, $user->rights->hrm->employee->read, '', $mainmenu, 'hrm');

@@ -1747,27 +1776,29 @@
 			}

 

 			// Leave/Holiday/Vacation module

-			if (!empty($conf->holiday->enabled)) {

-				// Load translation files required by the page

-				$langs->loadLangs(array("holiday", "trips"));

+			if (!empty($conf->holiday->enabled))

+			{

+			    // Load translation files required by the page

+                $langs->loadLangs(array("holiday", "trips"));

 

 				$newmenu->add("/holiday/list.php?mainmenu=hrm&leftmenu=hrm", $langs->trans("CPTitreMenu"), 0, $user->rights->holiday->read, '', $mainmenu, 'hrm');

-				$newmenu->add("/holiday/card.php?mainmenu=hrm&leftmenu=holiday&action=create", $langs->trans("New"), 1, $user->rights->holiday->write);

+				$newmenu->add("/holiday/card.php?mainmenu=hrm&leftmenu=holiday&action=request", $langs->trans("New"), 1, $user->rights->holiday->write);

 				$newmenu->add("/holiday/list.php?mainmenu=hrm&leftmenu=hrm", $langs->trans("List"), 1, $user->rights->holiday->read);

 				if ($usemenuhider || empty($leftmenu) || $leftmenu == "hrm") {

-					$newmenu->add("/holiday/list.php?search_statut=1&mainmenu=hrm&leftmenu=hrm", $langs->trans("DraftCP"), 2, $user->rights->holiday->read);

-					$newmenu->add("/holiday/list.php?search_statut=2&mainmenu=hrm&leftmenu=hrm", $langs->trans("ToReviewCP"), 2, $user->rights->holiday->read);

-					$newmenu->add("/holiday/list.php?search_statut=3&mainmenu=hrm&leftmenu=hrm", $langs->trans("ApprovedCP"), 2, $user->rights->holiday->read);

-					$newmenu->add("/holiday/list.php?search_statut=4&mainmenu=hrm&leftmenu=hrm", $langs->trans("CancelCP"), 2, $user->rights->holiday->read);

-					$newmenu->add("/holiday/list.php?search_statut=5&mainmenu=hrm&leftmenu=hrm", $langs->trans("RefuseCP"), 2, $user->rights->holiday->read);

-				}

+                    $newmenu->add("/holiday/list.php?search_statut=1&mainmenu=hrm&leftmenu=hrm", $langs->trans("DraftCP"), 2, $user->rights->holiday->read);

+				    $newmenu->add("/holiday/list.php?search_statut=2&mainmenu=hrm&leftmenu=hrm", $langs->trans("ToReviewCP"), 2, $user->rights->holiday->read);

+				    $newmenu->add("/holiday/list.php?search_statut=3&mainmenu=hrm&leftmenu=hrm", $langs->trans("ApprovedCP"), 2, $user->rights->holiday->read);

+				    $newmenu->add("/holiday/list.php?search_statut=4&mainmenu=hrm&leftmenu=hrm", $langs->trans("CancelCP"), 2, $user->rights->holiday->read);

+                    $newmenu->add("/holiday/list.php?search_statut=5&mainmenu=hrm&leftmenu=hrm", $langs->trans("RefuseCP"), 2, $user->rights->holiday->read);

+                }

 				$newmenu->add("/holiday/define_holiday.php?mainmenu=hrm&action=request", $langs->trans("MenuConfCP"), 1, $user->rights->holiday->read);

-				$newmenu->add("/holiday/month_report.php?mainmenu=hrm&leftmenu=holiday", $langs->trans("MenuReportMonth"), 1, $user->rights->holiday->readall);

+				$newmenu->add("/holiday/month_report.php?mainmenu=hrm&leftmenu=holiday", $langs->trans("MenuReportMonth"), 1, $user->rights->holiday->read_all);

 				$newmenu->add("/holiday/view_log.php?mainmenu=hrm&leftmenu=holiday&action=request", $langs->trans("MenuLogCP"), 1, $user->rights->holiday->define_holiday);

 			}

 

 			// Trips and expenses (old module)

-			if (!empty($conf->deplacement->enabled)) {

+			if (!empty($conf->deplacement->enabled))

+			{

 				$langs->load("trips");

 				$newmenu->add("/compta/deplacement/index.php?leftmenu=tripsandexpenses&amp;mainmenu=hrm", $langs->trans("TripsAndExpenses"), 0, $user->rights->deplacement->lire, '', $mainmenu, 'tripsandexpenses');

 				$newmenu->add("/compta/deplacement/card.php?action=create&amp;leftmenu=tripsandexpenses&amp;mainmenu=hrm", $langs->trans("New"), 1, $user->rights->deplacement->creer);

@@ -1776,24 +1807,27 @@
 			}

 

 			// Expense report

-			if (!empty($conf->expensereport->enabled)) {

+			if (!empty($conf->expensereport->enabled))

+			{

 				$langs->load("trips");

 				$newmenu->add("/expensereport/index.php?leftmenu=expensereport&amp;mainmenu=hrm", $langs->trans("TripsAndExpenses"), 0, $user->rights->expensereport->lire, '', $mainmenu, 'expensereport');

 				$newmenu->add("/expensereport/card.php?action=create&amp;leftmenu=expensereport&amp;mainmenu=hrm", $langs->trans("New"), 1, $user->rights->expensereport->creer);

 				$newmenu->add("/expensereport/list.php?leftmenu=expensereport&amp;mainmenu=hrm", $langs->trans("List"), 1, $user->rights->expensereport->lire);

 				if ($usemenuhider || empty($leftmenu) || $leftmenu == "expensereport") {

-					$newmenu->add("/expensereport/list.php?search_status=0&amp;leftmenu=expensereport&amp;mainmenu=hrm", $langs->trans("Draft"), 2, $user->rights->expensereport->lire);

-					$newmenu->add("/expensereport/list.php?search_status=2&amp;leftmenu=expensereport&amp;mainmenu=hrm", $langs->trans("Validated"), 2, $user->rights->expensereport->lire);

-					$newmenu->add("/expensereport/list.php?search_status=5&amp;leftmenu=expensereport&amp;mainmenu=hrm", $langs->trans("Approved"), 2, $user->rights->expensereport->lire);

-					$newmenu->add("/expensereport/list.php?search_status=6&amp;leftmenu=expensereport&amp;mainmenu=hrm", $langs->trans("Paid"), 2, $user->rights->expensereport->lire);

-					$newmenu->add("/expensereport/list.php?search_status=4&amp;leftmenu=expensereport&amp;mainmenu=hrm", $langs->trans("Canceled"), 2, $user->rights->expensereport->lire);

-					$newmenu->add("/expensereport/list.php?search_status=99&amp;leftmenu=expensereport&amp;mainmenu=hrm", $langs->trans("Refused"), 2, $user->rights->expensereport->lire);

-				}

+                    $newmenu->add("/expensereport/list.php?search_status=0&amp;leftmenu=expensereport&amp;mainmenu=hrm", $langs->trans("Draft"), 2, $user->rights->expensereport->lire);

+				    $newmenu->add("/expensereport/list.php?search_status=2&amp;leftmenu=expensereport&amp;mainmenu=hrm", $langs->trans("Validated"), 2, $user->rights->expensereport->lire);

+				    $newmenu->add("/expensereport/list.php?search_status=5&amp;leftmenu=expensereport&amp;mainmenu=hrm", $langs->trans("Approved"), 2, $user->rights->expensereport->lire);

+				    $newmenu->add("/expensereport/list.php?search_status=6&amp;leftmenu=expensereport&amp;mainmenu=hrm", $langs->trans("Paid"), 2, $user->rights->expensereport->lire);

+				    $newmenu->add("/expensereport/list.php?search_status=4&amp;leftmenu=expensereport&amp;mainmenu=hrm", $langs->trans("Canceled"), 2, $user->rights->expensereport->lire);

+                    $newmenu->add("/expensereport/list.php?search_status=99&amp;leftmenu=expensereport&amp;mainmenu=hrm", $langs->trans("Refused"), 2, $user->rights->expensereport->lire);

+                }

 				$newmenu->add("/expensereport/stats/index.php?leftmenu=expensereport&amp;mainmenu=hrm", $langs->trans("Statistics"), 1, $user->rights->expensereport->lire);

 			}

 

-			if (!empty($conf->projet->enabled)) {

-				if (empty($conf->global->PROJECT_HIDE_TASKS)) {

+			if (!empty($conf->projet->enabled))

+			{

+				if (empty($conf->global->PROJECT_HIDE_TASKS))

+				{

 					$langs->load("projects");

 

 					$search_project_user = GETPOST('search_project_user', 'int');

@@ -1807,26 +1841,31 @@
 		/*

 		 * Menu TOOLS

 		 */

-		if ($mainmenu == 'tools') {

-			if (empty($user->socid)) { // limit to internal users

+		if ($mainmenu == 'tools')

+		{

+			if (empty($user->socid)) // limit to internal users

+			{

 				$langs->load("mails");

 				$newmenu->add("/admin/mails_templates.php?leftmenu=email_templates", $langs->trans("EMailTemplates"), 0, 1, '', $mainmenu, 'email_templates');

 			}

 

-			if (!empty($conf->mailing->enabled)) {

+			if (!empty($conf->mailing->enabled))

+			{

 				$newmenu->add("/comm/mailing/index.php?leftmenu=mailing", $langs->trans("EMailings"), 0, $user->rights->mailing->lire, '', $mainmenu, 'mailing');

 				$newmenu->add("/comm/mailing/card.php?leftmenu=mailing&amp;action=create", $langs->trans("NewMailing"), 1, $user->rights->mailing->creer);

 				$newmenu->add("/comm/mailing/list.php?leftmenu=mailing", $langs->trans("List"), 1, $user->rights->mailing->lire);

 			}

 

-			if (!empty($conf->export->enabled)) {

+			if (!empty($conf->export->enabled))

+			{

 				$langs->load("exports");

 				$newmenu->add("/exports/index.php?leftmenu=export", $langs->trans("FormatedExport"), 0, $user->rights->export->lire, '', $mainmenu, 'export');

 				$newmenu->add("/exports/export.php?leftmenu=export", $langs->trans("NewExport"), 1, $user->rights->export->creer);

 				//$newmenu->add("/exports/export.php?leftmenu=export",$langs->trans("List"),1, $user->rights->export->lire);

 			}

 

-			if (!empty($conf->import->enabled)) {

+			if (!empty($conf->import->enabled))

+			{

 				$langs->load("exports");

 				$newmenu->add("/imports/index.php?leftmenu=import", $langs->trans("FormatedImport"), 0, $user->rights->import->run, '', $mainmenu, 'import');

 				$newmenu->add("/imports/import.php?leftmenu=import", $langs->trans("NewImport"), 1, $user->rights->import->run);

@@ -1836,28 +1875,28 @@
 		/*

 		 * Menu MEMBERS

 		 */

-		if ($mainmenu == 'members') {

-			if (!empty($conf->adherent->enabled)) {

+		if ($mainmenu == 'members')

+		{

+			if (!empty($conf->adherent->enabled))

+			{

 				// Load translation files required by the page

-				$langs->loadLangs(array("members", "compta"));

+                $langs->loadLangs(array("members", "compta"));

 

 				$newmenu->add("/adherents/index.php?leftmenu=members&amp;mainmenu=members", $langs->trans("Members"), 0, $user->rights->adherent->lire, '', $mainmenu, 'members');

 				$newmenu->add("/adherents/card.php?leftmenu=members&amp;action=create", $langs->trans("NewMember"), 1, $user->rights->adherent->creer);

 				$newmenu->add("/adherents/list.php?leftmenu=members", $langs->trans("List"), 1, $user->rights->adherent->lire);

 				$newmenu->add("/adherents/list.php?leftmenu=members&amp;statut=-1", $langs->trans("MenuMembersToValidate"), 2, $user->rights->adherent->lire);

 				$newmenu->add("/adherents/list.php?leftmenu=members&amp;statut=1", $langs->trans("MenuMembersValidated"), 2, $user->rights->adherent->lire);

-				$newmenu->add("/adherents/list.php?leftmenu=members&amp;statut=1&amp;filter=withoutsubscription", $langs->trans("WithoutSubscription"), 3, $user->rights->adherent->lire);

-				$newmenu->add("/adherents/list.php?leftmenu=members&amp;statut=1&amp;filter=uptodate", $langs->trans("UpToDate"), 3, $user->rights->adherent->lire);

-				$newmenu->add("/adherents/list.php?leftmenu=members&amp;statut=1&amp;filter=outofdate", $langs->trans("OutOfDate"), 3, $user->rights->adherent->lire);

+				$newmenu->add("/adherents/list.php?leftmenu=members&amp;statut=1&amp;filter=uptodate", $langs->trans("MenuMembersUpToDate"), 2, $user->rights->adherent->lire);

+				$newmenu->add("/adherents/list.php?leftmenu=members&amp;statut=1&amp;filter=outofdate", $langs->trans("MenuMembersNotUpToDate"), 2, $user->rights->adherent->lire);

 				$newmenu->add("/adherents/list.php?leftmenu=members&amp;statut=0", $langs->trans("MenuMembersResiliated"), 2, $user->rights->adherent->lire);

 				$newmenu->add("/adherents/stats/index.php?leftmenu=members", $langs->trans("MenuMembersStats"), 1, $user->rights->adherent->lire);

 

 				$newmenu->add("/adherents/cartes/carte.php?leftmenu=export", $langs->trans("MembersCards"), 1, $user->rights->adherent->export);

-				if (!empty($conf->global->MEMBER_LINK_TO_HTPASSWDFILE) && ($usemenuhider || empty($leftmenu) || $leftmenu == 'none' || $leftmenu == "members" || $leftmenu == "export")) {

-					$newmenu->add("/adherents/htpasswd.php?leftmenu=export", $langs->trans("Filehtpasswd"), 1, $user->rights->adherent->export);

-				}

-

-				if (!empty($conf->categorie->enabled)) {

+				if (!empty($conf->global->MEMBER_LINK_TO_HTPASSWDFILE) && ($usemenuhider || empty($leftmenu) || $leftmenu == 'none' || $leftmenu == "members" || $leftmenu == "export")) $newmenu->add("/adherents/htpasswd.php?leftmenu=export", $langs->trans("Filehtpasswd"), 1, $user->rights->adherent->export);

+

+				if (!empty($conf->categorie->enabled))

+				{

 					$langs->load("categories");

 					$newmenu->add("/categories/index.php?leftmenu=cat&amp;type=3", $langs->trans("Categories"), 1, $user->rights->categorie->lire, '', $mainmenu, 'cat');

 				}

@@ -1883,13 +1922,16 @@
 		$newmenu = $menuArbo->menuLeftCharger($newmenu, $mainmenu, $leftmenu, (empty($user->socid) ? 0 : 1), 'eldy', $tabMenu);

 		//var_dump($newmenu->liste);    //

 

-		if (!empty($conf->ftp->enabled) && $mainmenu == 'ftp') {	// Entry for FTP

+		if (!empty($conf->ftp->enabled) && $mainmenu == 'ftp')	// Entry for FTP

+		{

 			$MAXFTP = 20;

 			$i = 1;

-			while ($i <= $MAXFTP) {

+			while ($i <= $MAXFTP)

+			{

 				$paramkey = 'FTP_NAME_'.$i;

 				//print $paramkey;

-				if (!empty($conf->global->$paramkey)) {

+				if (!empty($conf->global->$paramkey))

+				{

 					$link = "/ftp/index.php?idmenu=".$_SESSION["idmenu"]."&numero_ftp=".$i;

 

 					$newmenu->add($link, dol_trunc($conf->global->$paramkey, 24));

@@ -1906,16 +1948,10 @@
 	//var_dump($menu_array_before);exit;

 	//var_dump($menu_array_after);exit;

 	$menu_array = $newmenu->liste;

-	if (is_array($menu_array_before)) {

-		$menu_array = array_merge($menu_array_before, $menu_array);

-	}

-	if (is_array($menu_array_after)) {

-		$menu_array = array_merge($menu_array, $menu_array_after);

-	}

+	if (is_array($menu_array_before)) $menu_array = array_merge($menu_array_before, $menu_array);

+	if (is_array($menu_array_after))  $menu_array = array_merge($menu_array, $menu_array_after);

 	//var_dump($menu_array);exit;

-	if (!is_array($menu_array)) {

-		return 0;

-	}

+	if (!is_array($menu_array)) return 0;

 

 	// TODO Use the position property in menu_array to reorder the $menu_array

 	//var_dump($menu_array);

@@ -1925,33 +1961,36 @@
 	while (findNextEntryForLevel($menu_array, $cursor, $position, $level))

 	{

 

-		$cursor++;

+	    $cursor++;

 	}*/

 

 	// Show menu

 	$invert = empty($conf->global->MAIN_MENU_INVERT) ? "" : "invert";

-	if (empty($noout)) {

+	if (empty($noout))

+	{

 		$altok = 0; $blockvmenuopened = false; $lastlevel0 = '';

 		$num = count($menu_array);

-		for ($i = 0; $i < $num; $i++) {     // Loop on each menu entry

+		for ($i = 0; $i < $num; $i++)     // Loop on each menu entry

+		{

 			$showmenu = true;

-			if (!empty($conf->global->MAIN_MENU_HIDE_UNAUTHORIZED) && empty($menu_array[$i]['enabled'])) {

-				$showmenu = false;

-			}

+			if (!empty($conf->global->MAIN_MENU_HIDE_UNAUTHORIZED) && empty($menu_array[$i]['enabled'])) 	$showmenu = false;

 

 			// Begin of new left menu block

-			if (empty($menu_array[$i]['level']) && $showmenu) {

+			if (empty($menu_array[$i]['level']) && $showmenu)

+			{

 				$altok++;

 				$blockvmenuopened = true;

 				$lastopened = true;

-				for ($j = ($i + 1); $j < $num; $j++) {

-					if (empty($menu_array[$j]['level'])) {

-						$lastopened = false;

-					}

-				}

-				if ($altok % 2 == 0) {

+				for ($j = ($i + 1); $j < $num; $j++)

+				{

+				    if (empty($menu_array[$j]['level'])) $lastopened = false;

+				}

+				if ($altok % 2 == 0)

+				{

 					print '<div class="blockvmenu blockvmenuimpair'.$invert.($lastopened ? ' blockvmenulast' : '').($altok == 1 ? ' blockvmenufirst' : '').'">'."\n";

-				} else {

+				}

+				else

+				{

 					print '<div class="blockvmenu blockvmenupair'.$invert.($lastopened ? ' blockvmenulast' : '').($altok == 1 ? ' blockvmenufirst' : '').'">'."\n";

 				}

 			}

@@ -1959,8 +1998,10 @@
 			// Add tabulation

 			$tabstring = '';

 			$tabul = ($menu_array[$i]['level'] - 1);

-			if ($tabul > 0) {

-				for ($j = 0; $j < $tabul; $j++) {

+			if ($tabul > 0)

+			{

+				for ($j = 0; $j < $tabul; $j++)

+				{

 					$tabstring .= '&nbsp;&nbsp;&nbsp;';

 				}

 			}

@@ -1970,99 +2011,93 @@
 			$menu_array[$i]['url'] = make_substitutions($menu_array[$i]['url'], $substitarray);

 

 			$url = $shorturl = $shorturlwithoutparam = $menu_array[$i]['url'];

-			if (!preg_match("/^(http:\/\/|https:\/\/)/i", $menu_array[$i]['url'])) {

-				$tmp = explode('?', $menu_array[$i]['url'], 2);

-				$url = $shorturl = $tmp[0];

-				$param = (isset($tmp[1]) ? $tmp[1] : ''); // params in url of the menu link

-

-				// Complete param to force leftmenu to '' to close open menu when we click on a link with no leftmenu defined.

-				if ((!preg_match('/mainmenu/i', $param)) && (!preg_match('/leftmenu/i', $param)) && !empty($menu_array[$i]['mainmenu'])) {

-					$param .= ($param ? '&' : '').'mainmenu='.$menu_array[$i]['mainmenu'].'&leftmenu=';

-				}

-				if ((!preg_match('/mainmenu/i', $param)) && (!preg_match('/leftmenu/i', $param)) && empty($menu_array[$i]['mainmenu'])) {

-					$param .= ($param ? '&' : '').'leftmenu=';

-				}

-				//$url.="idmenu=".$menu_array[$i]['rowid'];    // Already done by menuLoad

-				$url = dol_buildpath($url, 1).($param ? '?'.$param : '');

-				$shorturlwithoutparam = $shorturl;

-				$shorturl = $shorturl.($param ? '?'.$param : '');

+			if (!preg_match("/^(http:\/\/|https:\/\/)/i", $menu_array[$i]['url']))

+			{

+			    $tmp = explode('?', $menu_array[$i]['url'], 2);

+			    $url = $shorturl = $tmp[0];

+			    $param = (isset($tmp[1]) ? $tmp[1] : ''); // params in url of the menu link

+

+			    // Complete param to force leftmenu to '' to close open menu when we click on a link with no leftmenu defined.

+			    if ((!preg_match('/mainmenu/i', $param)) && (!preg_match('/leftmenu/i', $param)) && !empty($menu_array[$i]['mainmenu']))

+			    {

+			        $param .= ($param ? '&' : '').'mainmenu='.$menu_array[$i]['mainmenu'].'&leftmenu=';

+			    }

+			    if ((!preg_match('/mainmenu/i', $param)) && (!preg_match('/leftmenu/i', $param)) && empty($menu_array[$i]['mainmenu']))

+			    {

+			        $param .= ($param ? '&' : '').'leftmenu=';

+			    }

+			    //$url.="idmenu=".$menu_array[$i]['rowid'];    // Already done by menuLoad

+			    $url = dol_buildpath($url, 1).($param ? '?'.$param : '');

+			    $shorturlwithoutparam = $shorturl;

+			    $shorturl = $shorturl.($param ? '?'.$param : '');

 			}

 

 

 			print '<!-- Process menu entry with mainmenu='.$menu_array[$i]['mainmenu'].', leftmenu='.$menu_array[$i]['leftmenu'].', level='.$menu_array[$i]['level'].' enabled='.$menu_array[$i]['enabled'].', position='.$menu_array[$i]['position'].' -->'."\n";

 

 			// Menu level 0

-			if ($menu_array[$i]['level'] == 0) {

-				if ($menu_array[$i]['enabled']) {     // Enabled so visible

+			if ($menu_array[$i]['level'] == 0)

+			{

+				if ($menu_array[$i]['enabled'])     // Enabled so visible

+				{

 					print '<div class="menu_titre">'.$tabstring;

-					if ($shorturlwithoutparam) {

-						print '<a class="vmenu" title="'.dol_escape_htmltag(dol_string_nohtmltag($menu_array[$i]['titre'])).'" href="'.$url.'"'.($menu_array[$i]['target'] ? ' target="'.$menu_array[$i]['target'].'"' : '').'>';

-					} else {

-						print '<span class="vmenu">';

-					}

+					if ($shorturlwithoutparam) print '<a class="vmenu" title="'.dol_escape_htmltag($menu_array[$i]['titre']).'" href="'.$url.'"'.($menu_array[$i]['target'] ? ' target="'.$menu_array[$i]['target'].'"' : '').'>';

+					else print '<span class="vmenu">';

 					print ($menu_array[$i]['prefix'] ? $menu_array[$i]['prefix'] : '').$menu_array[$i]['titre'];

-					if ($shorturlwithoutparam) {

-						print '</a>';

-					} else {

-						print '</span>';

-					}

+					if ($shorturlwithoutparam) print '</a>';

+					else print '</span>';

 					print '</div>'."\n";

 					$lastlevel0 = 'enabled';

-				} elseif ($showmenu) {                 // Not enabled but visible (so greyed)

+				}

+				elseif ($showmenu)                 // Not enabled but visible (so greyed)

+				{

 					print '<div class="menu_titre">'.$tabstring.'<font class="vmenudisabled">'.$menu_array[$i]['titre'].'</font></div>'."\n";

 					$lastlevel0 = 'greyed';

-				} else {

-					$lastlevel0 = 'hidden';

-				}

-				if ($showmenu) {

+				}

+				else

+				{

+				    $lastlevel0 = 'hidden';

+				}

+				if ($showmenu)

+				{

 					print '<div class="menu_top"></div>'."\n";

 				}

 			}

 

 			// Menu level > 0

-			if ($menu_array[$i]['level'] > 0) {

+			if ($menu_array[$i]['level'] > 0)

+			{

 				$cssmenu = '';

-				if ($menu_array[$i]['url']) {

-					$cssmenu = ' menu_contenu'.dol_string_nospecial(preg_replace('/\.php.*$/', '', $menu_array[$i]['url']));

-				}

-

-				if ($menu_array[$i]['enabled'] && $lastlevel0 == 'enabled') {     // Enabled so visible, except if parent was not enabled.

+				if ($menu_array[$i]['url']) $cssmenu = ' menu_contenu'.dol_string_nospecial(preg_replace('/\.php.*$/', '', $menu_array[$i]['url']));

+

+				if ($menu_array[$i]['enabled'] && $lastlevel0 == 'enabled')     // Enabled so visible, except if parent was not enabled.

+				{

 					print '<div class="menu_contenu'.$cssmenu.'">'.$tabstring;

-					if ($shorturlwithoutparam) {

-						print '<a class="vsmenu" title="'.dol_escape_htmltag(dol_string_nohtmltag($menu_array[$i]['titre'])).'" href="'.$url.'"'.($menu_array[$i]['target'] ? ' target="'.$menu_array[$i]['target'].'"' : '').'>';

-					} else {

-						print '<span class="vsmenu" title="'.dol_escape_htmltag($menu_array[$i]['titre']).'">';

-					}

+					if ($shorturlwithoutparam) print '<a class="vsmenu" title="'.dol_escape_htmltag($menu_array[$i]['titre']).'" href="'.$url.'"'.($menu_array[$i]['target'] ? ' target="'.$menu_array[$i]['target'].'"' : '').'>';

+					else print '<span class="vsmenu">';

 					print $menu_array[$i]['titre'];

-					if ($shorturlwithoutparam) {

-						print '</a>';

-					} else {

-						print '</span>';

-					}

+					if ($shorturlwithoutparam) print '</a>';

+					else print '</span>';

 					// If title is not pure text and contains a table, no carriage return added

-					if (!strstr($menu_array[$i]['titre'], '<table')) {

-						print '<br>';

-					}

+					if (!strstr($menu_array[$i]['titre'], '<table')) print '<br>';

 					print '</div>'."\n";

-				} elseif ($showmenu && $lastlevel0 == 'enabled') {       // Not enabled but visible (so greyed), except if parent was not enabled.

+				}

+				elseif ($showmenu && $lastlevel0 == 'enabled')       // Not enabled but visible (so greyed), except if parent was not enabled.

+				{

 					print '<div class="menu_contenu'.$cssmenu.'">'.$tabstring.'<font class="vsmenudisabled vsmenudisabledmargin">'.$menu_array[$i]['titre'].'</font><br></div>'."\n";

 				}

 			}

 

 			// If next is a new block or if there is nothing after

-			if (empty($menu_array[$i + 1]['level'])) {               // End menu block

-				if ($showmenu) {

+			if (empty($menu_array[$i + 1]['level']))               // End menu block

+			{

+				if ($showmenu)

 					print '<div class="menu_end"></div>'."\n";

-				}

-				if ($blockvmenuopened) {

-					print '</div>'."\n"; $blockvmenuopened = false;

-				}

+				if ($blockvmenuopened) { print '</div>'."\n"; $blockvmenuopened = false; }

 			}

 		}

 

-		if ($altok) {

-			print '<div class="blockvmenuend"></div>'; // End menu block

-		}

+		if ($altok) print '<div class="blockvmenuend"></div>'; // End menu block

 	}

 

 	return count($menu_array);

--- /tmp/dsg/dolibarr/htdocs/core/menus/standard/github_eldy_menu.php
+++ /tmp/dsg/dolibarr/htdocs/core/menus/standard/client_eldy_menu.php
@@ -28,301 +28,312 @@
 class MenuManager

 {

 	/**

-	 * @var DoliDB Database handler.

-	 */

-	public $db;

-

-	public $type_user; // Put 0 for internal users, 1 for external users

-	public $atarget = ""; // To store default target to use onto links

-	public $name = "eldy";

-

-	public $menu_array;

-	public $menu_array_after;

-

-	public $tabMenu;

-

-

-	/**

-	 *  Constructor

-	 *

+     * @var DoliDB Database handler.

+     */

+    public $db;

+

+    public $type_user; // Put 0 for internal users, 1 for external users

+    public $atarget = ""; // To store default target to use onto links

+    public $name = "eldy";

+

+    public $menu_array;

+    public $menu_array_after;

+

+    public $tabMenu;

+

+

+    /**

+     *  Constructor

+     *

 	 *  @param	DoliDB		$db     	Database handler

-	 *  @param	int			$type_user	Type of user

-	 */

-	public function __construct($db, $type_user)

-	{

-		$this->type_user = $type_user;

-		$this->db = $db;

-	}

-

-

-	/**

-	 * Load this->tabMenu

-	 *

-	 * @param	string	$forcemainmenu		To force mainmenu to load

-	 * @param	string	$forceleftmenu		To force leftmenu to load

-	 * @return	void

-	 */

-	public function loadMenu($forcemainmenu = '', $forceleftmenu = '')

-	{

-		global $conf, $user, $langs;

-

-		// We save into session the main menu selected

-		if (GETPOSTISSET("mainmenu")) {

-			$_SESSION["mainmenu"] = GETPOST("mainmenu", 'aZ09');

+     *  @param	int			$type_user	Type of user

+     */

+    public function __construct($db, $type_user)

+    {

+    	$this->type_user = $type_user;

+        $this->db = $db;

+    }

+

+

+    /**

+     * Load this->tabMenu

+     *

+   	 * @param	string	$forcemainmenu		To force mainmenu to load

+   	 * @param	string	$forceleftmenu		To force leftmenu to load

+     * @return	void

+     */

+    public function loadMenu($forcemainmenu = '', $forceleftmenu = '')

+    {

+    	global $conf, $user, $langs;

+

+		// On sauve en session le menu principal choisi

+		if (isset($_GET["mainmenu"])) $_SESSION["mainmenu"] = $_GET["mainmenu"];

+		if (isset($_GET["idmenu"]))   $_SESSION["idmenu"] = $_GET["idmenu"];

+

+		// Read mainmenu and leftmenu that define which menu to show

+        if (isset($_GET["mainmenu"]))

+        {

+        	// On sauve en session le menu principal choisi

+        	$mainmenu = $_GET["mainmenu"];

+        	$_SESSION["mainmenu"] = $mainmenu;

+        	$_SESSION["leftmenuopened"] = "";

+        }

+        else

+        {

+        	// On va le chercher en session si non defini par le lien

+        	$mainmenu = isset($_SESSION["mainmenu"]) ? $_SESSION["mainmenu"] : '';

+        }

+        if (!empty($forcemainmenu)) $mainmenu = $forcemainmenu;

+

+        if (isset($_GET["leftmenu"]))

+        {

+        	// On sauve en session le menu principal choisi

+        	$leftmenu = $_GET["leftmenu"];

+        	$_SESSION["leftmenu"] = $leftmenu;

+

+        	if ($_SESSION["leftmenuopened"] == $leftmenu)	// To collapse

+        	{

+        		//$leftmenu="";

+        		$_SESSION["leftmenuopened"] = "";

+        	}

+        	else

+        	{

+        		$_SESSION["leftmenuopened"] = $leftmenu;

+        	}

+        } else {

+        	// On va le chercher en session si non defini par le lien

+        	$leftmenu = isset($_SESSION["leftmenu"]) ? $_SESSION["leftmenu"] : '';

+        }

+        if (!empty($forceleftmenu)) $leftmenu = $forceleftmenu;

+

+        require_once DOL_DOCUMENT_ROOT.'/core/class/menubase.class.php';

+        $tabMenu = array();

+        $menuArbo = new Menubase($this->db, 'eldy');

+        $menuArbo->menuLoad($mainmenu, $leftmenu, $this->type_user, 'eldy', $tabMenu);

+        $this->tabMenu = $tabMenu;

+        //var_dump($tabMenu);

+

+        //if ($forcemainmenu == 'all') { var_dump($this->tabMenu); exit; }

+    }

+

+

+    /**

+     *  Show menu.

+     *  Menu defined in sql tables were stored into $this->tabMenu BEFORE this is called.

+     *

+     *	@param	string	$mode			'top', 'topnb', 'left', 'jmobile' (used to get full xml ul/li menu)

+     *  @param	array	$moredata		An array with more data to output

+     *  @return int                     0 or nb of top menu entries if $mode = 'topnb'

+     */

+    public function showmenu($mode, $moredata = null)

+    {

+    	global $conf, $langs, $user;

+

+    	//var_dump($this->tabMenu);

+

+        require_once DOL_DOCUMENT_ROOT.'/core/menus/standard/eldy.lib.php';

+

+        if ($this->type_user == 1)

+        {

+        	$conf->global->MAIN_SEARCHFORM_SOCIETE_DISABLED = 1;

+        	$conf->global->MAIN_SEARCHFORM_CONTACT_DISABLED = 1;

+        }

+

+		require_once DOL_DOCUMENT_ROOT.'/core/class/menu.class.php';

+        $this->menu = new Menu();

+

+        if (empty($conf->global->MAIN_MENU_INVERT))

+        {

+        	if ($mode == 'top')  print_eldy_menu($this->db, $this->atarget, $this->type_user, $this->tabMenu, $this->menu, 0, $mode);

+        	if ($mode == 'left') print_left_eldy_menu($this->db, $this->menu_array, $this->menu_array_after, $this->tabMenu, $this->menu, 0, '', '', $moredata);

+        }

+        else

+		{

+        	$conf->global->MAIN_SHOW_LOGO = 0;

+        	if ($mode == 'top')  print_left_eldy_menu($this->db, $this->menu_array, $this->menu_array_after, $this->tabMenu, $this->menu, 0);

+        	if ($mode == 'left') print_eldy_menu($this->db, $this->atarget, $this->type_user, $this->tabMenu, $this->menu, 0, $mode);

 		}

-		if (GETPOSTISSET("idmenu")) {

-			$_SESSION["idmenu"] = GETPOST("idmenu", 'int');

+

+		if ($mode == 'topnb')

+		{

+		    print_eldy_menu($this->db, $this->atarget, $this->type_user, $this->tabMenu, $this->menu, 1, $mode); // no output

+		    return $this->menu->getNbOfVisibleMenuEntries();

 		}

 

-		// Read now mainmenu and leftmenu that define which menu to show

-		if (GETPOSTISSET("mainmenu")) {

-			// On sauve en session le menu principal choisi

-			$mainmenu = GETPOST("mainmenu", 'aZ09');

-			$_SESSION["mainmenu"] = $mainmenu;

-			$_SESSION["leftmenuopened"] = "";

-		} else {

-			// On va le chercher en session si non defini par le lien

-			$mainmenu = isset($_SESSION["mainmenu"]) ? $_SESSION["mainmenu"] : '';

-		}

-		if (!empty($forcemainmenu)) {

-			$mainmenu = $forcemainmenu;

-		}

-

-		if (GETPOSTISSET("leftmenu")) {

-			// On sauve en session le menu principal choisi

-			$leftmenu = GETPOST("leftmenu", 'aZ09');

-			$_SESSION["leftmenu"] = $leftmenu;

-

-			if ($_SESSION["leftmenuopened"] == $leftmenu) {	// To collapse

-				//$leftmenu="";

-				$_SESSION["leftmenuopened"] = "";

-			} else {

-				$_SESSION["leftmenuopened"] = $leftmenu;

-			}

-		} else {

-			// On va le chercher en session si non defini par le lien

-			$leftmenu = isset($_SESSION["leftmenu"]) ? $_SESSION["leftmenu"] : '';

-		}

-		if (!empty($forceleftmenu)) {

-			$leftmenu = $forceleftmenu;

-		}

-

-		require_once DOL_DOCUMENT_ROOT.'/core/class/menubase.class.php';

-		$tabMenu = array();

-		$menuArbo = new Menubase($this->db, 'eldy');

-		$menuArbo->menuLoad($mainmenu, $leftmenu, $this->type_user, 'eldy', $tabMenu);

-		$this->tabMenu = $tabMenu;

-		//var_dump($tabMenu);

-

-		//if ($forcemainmenu == 'all') { var_dump($this->tabMenu); exit; }

-	}

-

-

-	/**

-	 *  Show menu.

-	 *  Menu defined in sql tables were stored into $this->tabMenu BEFORE this is called.

-	 *

-	 *	@param	string	$mode			'top', 'topnb', 'left', 'jmobile' (used to get full xml ul/li menu)

-	 *  @param	array	$moredata		An array with more data to output

-	 *  @return int                     0 or nb of top menu entries if $mode = 'topnb'

-	 */

-	public function showmenu($mode, $moredata = null)

-	{

-		global $conf, $langs, $user;

-

-		//var_dump($this->tabMenu);

-

-		require_once DOL_DOCUMENT_ROOT.'/core/menus/standard/eldy.lib.php';

-

-		if ($this->type_user == 1) {

-			$conf->global->MAIN_SEARCHFORM_SOCIETE_DISABLED = 1;

-			$conf->global->MAIN_SEARCHFORM_CONTACT_DISABLED = 1;

-		}

-

-		require_once DOL_DOCUMENT_ROOT.'/core/class/menu.class.php';

-		$this->menu = new Menu();

-

-		if (empty($conf->global->MAIN_MENU_INVERT)) {

-			if ($mode == 'top') {

-				print_eldy_menu($this->db, $this->atarget, $this->type_user, $this->tabMenu, $this->menu, 0, $mode);

-			}

-			if ($mode == 'left') {

-				print_left_eldy_menu($this->db, $this->menu_array, $this->menu_array_after, $this->tabMenu, $this->menu, 0, '', '', $moredata, $this->type_user);

-			}

-		} else {

-			$conf->global->MAIN_SHOW_LOGO = 0;

-			if ($mode == 'top') {

-				print_left_eldy_menu($this->db, $this->menu_array, $this->menu_array_after, $this->tabMenu, $this->menu, 0, '', '', $moredata, $this->type_user);

-			}

-			if ($mode == 'left') {

-				print_eldy_menu($this->db, $this->atarget, $this->type_user, $this->tabMenu, $this->menu, 0, $mode);

-			}

-		}

-		if ($mode == 'topnb') {

-			print_eldy_menu($this->db, $this->atarget, $this->type_user, $this->tabMenu, $this->menu, 1, $mode); // no output

-			return $this->menu->getNbOfVisibleMenuEntries();

-		}

-

-		if ($mode == 'jmobile') {     // Used to get menu in xml ul/li

-			print_eldy_menu($this->db, $this->atarget, $this->type_user, $this->tabMenu, $this->menu, 1, $mode); // Fill this->menu that is empty with top menu

-

-			// $this->menu->liste is top menu

-			//var_dump($this->menu->liste);exit;

-			$lastlevel = array();

-			print '<!-- Generate menu list from menu handler '.$this->name.' -->'."\n";

-			foreach ($this->menu->liste as $key => $val) {		// $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu'

-				print '<ul class="ulmenu" data-inset="true">';

-				print '<li class="lilevel0">';

-

-				if ($val['enabled'] == 1) {

-					$substitarray = array('__LOGIN__' => $user->login, '__USER_ID__' => $user->id, '__USER_SUPERVISOR_ID__' => $user->fk_user);

-					$substitarray['__USERID__'] = $user->id; // For backward compatibility

-					$val['url'] = make_substitutions($val['url'], $substitarray);

+        if ($mode == 'jmobile')     // Used to get menu in xml ul/li

+        {

+            print_eldy_menu($this->db, $this->atarget, $this->type_user, $this->tabMenu, $this->menu, 1, $mode); // Fill this->menu that is empty with top menu

+

+            // $this->menu->liste is top menu

+            //var_dump($this->menu->liste);exit;

+            $lastlevel = array();

+        	print '<!-- Generate menu list from menu handler '.$this->name.' -->'."\n";

+        	foreach ($this->menu->liste as $key => $val)		// $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu'

+        	{

+        		print '<ul class="ulmenu" data-inset="true">';

+        		print '<li class="lilevel0">';

+

+        		if ($val['enabled'] == 1)

+        		{

+        			$substitarray = array('__LOGIN__' => $user->login, '__USER_ID__' => $user->id, '__USER_SUPERVISOR_ID__' => $user->fk_user);

+        			$substitarray['__USERID__'] = $user->id; // For backward compatibility

+        			$val['url'] = make_substitutions($val['url'], $substitarray);

 

 					$relurl = dol_buildpath($val['url'], 1);

 					$canonurl = preg_replace('/\?.*$/', '', $val['url']);

 

-					print '<a class="alilevel0" href="#">';

+        			print '<a class="alilevel0" href="#">';

 

 					// Add font-awesome

-					if ($val['level'] == 0 && $val['mainmenu'] == 'home') {

-						print '<span class="fa fa-home fa-fw paddingright" aria-hidden="true"></span>';

-					}

+					if ($val['level'] == 0 && $val['mainmenu'] == 'home') print '<span class="fa fa-home fa-fw paddingright" aria-hidden="true"></span>';

 

 					print $val['titre'];

-					print '</a>'."\n";

-

-					// Search submenu fot this mainmenu entry

-					$tmpmainmenu = $val['mainmenu'];

-					$tmpleftmenu = 'all';

-					$submenu = new Menu();

-					print_left_eldy_menu($this->db, $this->menu_array, $this->menu_array_after, $this->tabMenu, $submenu, 1, $tmpmainmenu, $tmpleftmenu, null, $this->type_user); // Fill $submenu (example with tmpmainmenu='home' tmpleftmenu='all', return left menu tree of Home)

-					// Note: $submenu contains menu entry with substitution not yet done

-					//if ($tmpmainmenu.'-'.$tmpleftmenu == 'home-all') { var_dump($submenu); exit; }

-					//if ($tmpmainmenu=='accountancy') { var_dump($submenu->liste); exit; }

-					$nexturl = dol_buildpath($submenu->liste[0]['url'], 1);

-

-					$canonrelurl = preg_replace('/\?.*$/', '', $relurl);

-					$canonnexturl = preg_replace('/\?.*$/', '', $nexturl);

-					//var_dump($canonrelurl);

-					//var_dump($canonnexturl);

-					print '<ul>'."\n";

-					if (($canonrelurl != $canonnexturl && !in_array($val['mainmenu'], array('tools')))

-						|| (strpos($canonrelurl, '/product/index.php') !== false || strpos($canonrelurl, '/compta/bank/list.php') !== false)) {

-						// We add sub entry

-						print str_pad('', 1).'<li class="lilevel1 ui-btn-icon-right ui-btn">'; // ui-btn to highlight on clic

-						print '<a href="'.$relurl.'">';

-						if ($langs->trans(ucfirst($val['mainmenu'])."Dashboard") == ucfirst($val['mainmenu'])."Dashboard") {  // No translation

-							if (in_array($val['mainmenu'], array('cashdesk', 'externalsite', 'website', 'collab'))) {

-								print $langs->trans("Access");

-							} else {

-								print $langs->trans("Dashboard");

-							}

-						} else {

-							print $langs->trans(ucfirst($val['mainmenu'])."Dashboard");

+        			print '</a>'."\n";

+

+        			// Search submenu fot this mainmenu entry

+        			$tmpmainmenu = $val['mainmenu'];

+        			$tmpleftmenu = 'all';

+        			$submenu = new Menu();

+	        		print_left_eldy_menu($this->db, $this->menu_array, $this->menu_array_after, $this->tabMenu, $submenu, 1, $tmpmainmenu, $tmpleftmenu); // Fill $submenu (example with tmpmainmenu='home' tmpleftmenu='all', return left menu tree of Home)

+	        		// Note: $submenu contains menu entry with substitution not yet done

+        		    //if ($tmpmainmenu.'-'.$tmpleftmenu == 'home-all') { var_dump($submenu); exit; }

+                    //if ($tmpmainmenu=='accountancy') { var_dump($submenu->liste); exit; }

+	        		$nexturl = dol_buildpath($submenu->liste[0]['url'], 1);

+

+        			$canonrelurl = preg_replace('/\?.*$/', '', $relurl);

+        			$canonnexturl = preg_replace('/\?.*$/', '', $nexturl);

+        			//var_dump($canonrelurl);

+        			//var_dump($canonnexturl);

+        			print '<ul>'."\n";

+        			if (($canonrelurl != $canonnexturl && !in_array($val['mainmenu'], array('tools')))

+        				|| (strpos($canonrelurl, '/product/index.php') !== false || strpos($canonrelurl, '/compta/bank/list.php') !== false))

+					{

+        				// We add sub entry

+        				print str_pad('', 1).'<li class="lilevel1 ui-btn-icon-right ui-btn">'; // ui-btn to highlight on clic

+        				print '<a href="'.$relurl.'">';

+        				if ($langs->trans(ucfirst($val['mainmenu'])."Dashboard") == ucfirst($val['mainmenu'])."Dashboard")  // No translation

+        				{

+        					if (in_array($val['mainmenu'], array('cashdesk', 'externalsite', 'website', 'collab'))) print $langs->trans("Access");

+        				    else print $langs->trans("Dashboard");

+        				}

+        				else print $langs->trans(ucfirst($val['mainmenu'])."Dashboard");

+        				print '</a>';

+        				print '</li>'."\n";

+        			}

+

+        			if ($val['level'] == 0)

+        			{

+        			    if ($val['enabled'])

+        			    {

+        			        $lastlevel[0] = 'enabled';

+        			    }

+        			    elseif ($showmenu)                 // Not enabled but visible (so greyed)

+        			    {

+        			        $lastlevel[0] = 'greyed';

+        			    }

+        			    else

+        			    {

+        			        $lastlevel[0] = 'hidden';

+        			    }

+        			}

+

+        			$lastlevel2 = array();

+       				foreach ($submenu->liste as $key2 => $val2)		// $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu'

+       				{

+						$showmenu = true;

+						if (!empty($conf->global->MAIN_MENU_HIDE_UNAUTHORIZED) && empty($val2['enabled'])) $showmenu = false;

+

+						// If at least one parent is not enabled, we do not show any menu of all children

+						if ($val2['level'] > 0)

+						{

+						    $levelcursor = $val2['level'] - 1;

+						    while ($levelcursor >= 0)

+						    {

+                                if ($lastlevel2[$levelcursor] != 'enabled') $showmenu = false;

+                                $levelcursor--;

+						    }

 						}

-						print '</a>';

-						print '</li>'."\n";

-					}

-

-					if ($val['level'] == 0) {

-						if ($val['enabled']) {

-							$lastlevel[0] = 'enabled';

-						} elseif ($showmenu) {                 // Not enabled but visible (so greyed)

-							$lastlevel[0] = 'greyed';

-						} else {

-							$lastlevel[0] = 'hidden';

-						}

-					}

-

-					$lastlevel2 = array();

-					foreach ($submenu->liste as $key2 => $val2) {		// $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu'

-						$showmenu = true;

-						if (!empty($conf->global->MAIN_MENU_HIDE_UNAUTHORIZED) && empty($val2['enabled'])) {

-							$showmenu = false;

-						}

-

-						// If at least one parent is not enabled, we do not show any menu of all children

-						if ($val2['level'] > 0) {

-							$levelcursor = $val2['level'] - 1;

-							while ($levelcursor >= 0) {

-								if ($lastlevel2[$levelcursor] != 'enabled') {

-									$showmenu = false;

-								}

-								$levelcursor--;

-							}

-						}

-

-						if ($showmenu) {		// Visible (option to hide when not allowed is off or allowed)

-							$substitarray = array('__LOGIN__' => $user->login, '__USER_ID__' => $user->id, '__USER_SUPERVISOR_ID__' => $user->fk_user);

-							$substitarray['__USERID__'] = $user->id; // For backward compatibility

-							$val2['url'] = make_substitutions($val2['url'], $substitarray); // Make also substitution of __(XXX)__ and __[XXX]__

-

-							if (!preg_match("/^(http:\/\/|https:\/\/)/i", $val2['url'])) {

-								$relurl2 = dol_buildpath($val2['url'], 1);

-							} else {

-								$relurl2 = $val2['url'];

-							}

-							$canonurl2 = preg_replace('/\?.*$/', '', $val2['url']);

-							//var_dump($val2['url'].' - '.$canonurl2.' - '.$val2['level']);

-							if (in_array($canonurl2, array('/admin/index.php', '/admin/tools/index.php', '/core/tools.php'))) {

-								$relurl2 = '';

-							}

-

-							$disabled = '';

-							if (!$val2['enabled']) {

-								$disabled = " vsmenudisabled";

-							}

-

-							print str_pad('', $val2['level'] + 1);

-							print '<li class="lilevel'.($val2['level'] + 1);

-							if ($val2['level'] == 0) {

-								print ' ui-btn-icon-right ui-btn'; // ui-btn to highlight on clic

-							}

-							print $disabled.'">'; // ui-btn to highlight on clic

-							if ($relurl2) {

-								if ($val2['enabled']) {	// Allowed

-									print '<a href="'.$relurl2.'"';

-									//print ' data-ajax="false"';

-									print '>';

-									$lastlevel2[$val2['level']] = 'enabled';

-								} else // Not allowed but visible (greyed)

-								{

-									print '<a href="#" class="vsmenudisabled">';

-									$lastlevel2[$val2['level']] = 'greyed';

-								}

-							} else {

-								if ($val2['enabled']) {	// Allowed

-									$lastlevel2[$val2['level']] = 'enabled';

-								} else {

-									$lastlevel2[$val2['level']] = 'greyed';

-								}

-							}

-							print $val2['titre'];

-							if ($relurl2) {

-								if ($val2['enabled']) {	// Allowed

-									print '</a>';

-								} else {

-									print '</a>';

-								}

-							}

-							print '</li>'."\n";

-						}

-					}

-					//var_dump($submenu);

-					print '</ul>';

-				}

-				if ($val['enabled'] == 2) {

-					print '<font class="vsmenudisabled">'.$val['titre'].'</font>';

-				}

-				print '</li>';

-				print '</ul>'."\n";

-			}

-		}

-

-		unset($this->menu);

-

-		//print 'xx'.$mode;

-		return 0;

-	}

+

+       					if ($showmenu)		// Visible (option to hide when not allowed is off or allowed)

+       					{

+       						$substitarray = array('__LOGIN__' => $user->login, '__USER_ID__' => $user->id, '__USER_SUPERVISOR_ID__' => $user->fk_user);

+       						$substitarray['__USERID__'] = $user->id; // For backward compatibility

+       						$val2['url'] = make_substitutions($val2['url'], $substitarray); // Make also substitution of __(XXX)__ and __[XXX]__

+

+       						if (!preg_match("/^(http:\/\/|https:\/\/)/i", $val2['url']))

+       						{

+       							$relurl2 = dol_buildpath($val2['url'], 1);

+       						}

+       						else

+       						{

+       							$relurl2 = $val2['url'];

+       						}

+	        				$canonurl2 = preg_replace('/\?.*$/', '', $val2['url']);

+	        				//var_dump($val2['url'].' - '.$canonurl2.' - '.$val2['level']);

+	        				if (in_array($canonurl2, array('/admin/index.php', '/admin/tools/index.php', '/core/tools.php'))) $relurl2 = '';

+

+	        				$disabled = '';

+	        				if (!$val2['enabled'])

+	        				{

+	        				    $disabled = " vsmenudisabled";

+	        				}

+

+	        				print str_pad('', $val2['level'] + 1);

+	        				print '<li class="lilevel'.($val2['level'] + 1);

+	        				if ($val2['level'] == 0) print ' ui-btn-icon-right ui-btn'; // ui-btn to highlight on clic

+	        				print $disabled.'">'; // ui-btn to highlight on clic

+	        				if ($relurl2)

+	        				{

+	        					if ($val2['enabled'])	// Allowed

+	        					{

+	        						print '<a href="'.$relurl2.'"';

+		        					//print ' data-ajax="false"';

+		        					print '>';

+		        					$lastlevel2[$val2['level']] = 'enabled';

+	        					}

+	        					else					// Not allowed but visible (greyed)

+	        					{

+				        			print '<a href="#" class="vsmenudisabled">';

+				        			$lastlevel2[$val2['level']] = 'greyed';

+	        					}

+	        				}

+	        				else

+	        				{

+	        				    if ($val2['enabled'])	// Allowed

+	        				    {

+	        				        $lastlevel2[$val2['level']] = 'enabled';

+	        				    }

+	        				    else

+	        				    {

+	        				        $lastlevel2[$val2['level']] = 'greyed';

+	        				    }

+	        				}

+                            print $val2['titre'];

+	        				if ($relurl2)

+	        				{

+	        					if ($val2['enabled'])	// Allowed

+	        						print '</a>';

+	        					else

+	        						print '</a>';

+	        				}

+	        				print '</li>'."\n";

+       					}

+       				}

+        			//var_dump($submenu);

+        			print '</ul>';

+        		}

+        		if ($val['enabled'] == 2)

+        		{

+        			print '<font class="vsmenudisabled">'.$val['titre'].'</font>';

+        		}

+        		print '</li>';

+        		print '</ul>'."\n";

+        	}

+        }

+

+        unset($this->menu);

+

+        //print 'xx'.$mode;

+        return 0;

+    }

 }

--- /tmp/dsg/dolibarr/htdocs/core/menus/standard/github_empty.php
+++ /tmp/dsg/dolibarr/htdocs/core/menus/standard/client_empty.php
@@ -26,25 +26,22 @@
 class MenuManager

 {

 	/**

-	 * @var DoliDB Database handler.

-	 */

-	public $db;

-

-	public $type_user = 0; // Put 0 for internal users, 1 for external users

-	public $atarget = ""; // To store default target to use onto links

-	public $name = "empty";

-

-	public $menu;

-	public $menu_array_after;

-

-	public $tabMenu;

+     * @var DoliDB Database handler.

+     */

+    public $db;

+

+    public $type_user = 0; // Put 0 for internal users, 1 for external users

+    public $atarget = ""; // To store default target to use onto links

+

+    public $menu;

+    public $menu_array_after;

 

 

 	/**

 	 *  Constructor

 	 *

 	 *  @param	DoliDB		$db     		Database handler

-	 *  @param	int			$type_user		Type of user

+     *  @param	int			$type_user		Type of user

 	 */

 	public function __construct($db, $type_user)

 	{

@@ -54,25 +51,24 @@
 

 

 	/**

-	 * Load this->tabMenu

-	 *

-	 * @param	string	$forcemainmenu		To force mainmenu to load

-	 * @param	string	$forceleftmenu		To force leftmenu to load

-	 * @return	void

+   	 * Load this->tabMenu

+   	 *

+   	 * @param	string	$forcemainmenu		To force mainmenu to load

+   	 * @param	string	$forceleftmenu		To force leftmenu to load

+   	 * @return	void

 	 */

 	public function loadMenu($forcemainmenu = '', $forceleftmenu = '')

 	{

 		// Do nothing

-		$this->tabMenu = array();

 	}

 

 

 	/**

 	 *  Show menu

 	 *

-	 *	@param	string	$mode			'top', 'left', 'jmobile'

-	 *  @param	array	$moredata		An array with more data to output

-	 *  @return int                     0 or nb of top menu entries if $mode = 'topnb'

+     *	@param	string	$mode			'top', 'left', 'jmobile'

+     *  @param	array	$moredata		An array with more data to output

+     *  @return int                     0 or nb of top menu entries if $mode = 'topnb'

 	 */

 	public function showmenu($mode, $moredata = null)

 	{

@@ -88,24 +84,25 @@
 		$noout = 0;

 		//if ($mode == 'jmobile') $noout=1;

 

-		if ($mode == 'topnb') {

-			return 1;

+		if ($mode == 'topnb')

+		{

+		    return 1;

 		}

 

-		if ($mode == 'top') {

-			if (empty($noout)) {

-				print_start_menu_array_empty();

-			}

-

-			$usemenuhider = 1;

+		if ($mode == 'top')

+		{

+			if (empty($noout)) print_start_menu_array_empty();

+

+            $usemenuhider = 1;

 

 			// Show/Hide vertical menu

-			if ($mode != 'jmobile' && $mode != 'topnb' && $usemenuhider && empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) {

-				$showmode = 1;

-				$classname = 'class="tmenu menuhider"';

-				$idsel = 'menu';

-

-				$this->menu->add('#', '', 0, $showmode, $atarget, "xxx", '', 0, $id, $idsel, $classname);

+			if ($mode != 'jmobile' && $mode != 'topnb' && $usemenuhider && empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER))

+			{

+			    $showmode = 1;

+			    $classname = 'class="tmenu menuhider"';

+			    $idsel = 'menu';

+

+			    $this->menu->add('#', '', 0, $showmode, $atarget, "xxx", '', 0, $id, $idsel, $classname);

 			}

 

 			// Home

@@ -120,214 +117,217 @@
 			$this->menu->liste = dol_sort_array($this->menu->liste, 'position');

 

 			// Output menu entries

-			foreach ($this->menu->liste as $menkey => $menuval) {

-				if (empty($noout)) {

-					print_start_menu_entry_empty($menuval['idsel'], $menuval['classname'], $menuval['enabled']);

-				}

-				if (empty($noout)) {

-					print_text_menu_entry_empty($menuval['titre'], $menuval['enabled'], ($menuval['url'] != '#' ?DOL_URL_ROOT:'').$menuval['url'], $menuval['id'], $menuval['idsel'], $menuval['classname'], ($menuval['target'] ? $menuval['target'] : $atarget));

-				}

-				if (empty($noout)) {

-					print_end_menu_entry_empty($menuval['enabled']);

-				}

+			foreach ($this->menu->liste as $menkey => $menuval)

+			{

+			    if (empty($noout)) print_start_menu_entry_empty($menuval['idsel'], $menuval['classname'], $menuval['enabled']);

+			    if (empty($noout)) print_text_menu_entry_empty($menuval['titre'], $menuval['enabled'], ($menuval['url'] != '#' ?DOL_URL_ROOT:'').$menuval['url'], $menuval['id'], $menuval['idsel'], $menuval['classname'], ($menuval['target'] ? $menuval['target'] : $atarget));

+			    if (empty($noout)) print_end_menu_entry_empty($menuval['enabled']);

 			}

 

 			$showmode = 1;

-			if (empty($noout)) {

-				print_start_menu_entry_empty('', 'class="tmenuend"', $showmode);

-			}

-			if (empty($noout)) {

-				print_end_menu_entry_empty($showmode);

-			}

-

-			if (empty($noout)) {

-				print_end_menu_array_empty();

-			}

-

-			if ($mode == 'jmobile') {

+			if (empty($noout)) print_start_menu_entry_empty('', 'class="tmenuend"', $showmode);

+			if (empty($noout)) print_end_menu_entry_empty($showmode);

+

+			if (empty($noout)) print_end_menu_array_empty();

+

+			if ($mode == 'jmobile')

+			{

 				$this->topmenu = clone $this->menu;

 				unset($this->menu->liste);

 			}

 		}

 

-		if ($mode == 'jmobile') {     // Used to get menu in xml ul/li

-			// Home

-			$showmode = 1;

-			$classname = 'class="tmenusel"';

-			$idsel = 'home';

-

-			$this->menu->add('/index.php', $langs->trans("Home"), 0, $showmode, $this->atarget, 'home', '', 10, $id, $idsel, $classname);

-

-			$substitarray = getCommonSubstitutionArray($langs, 0, null, null);

-

-			// $this->menu->liste is top menu

-			//var_dump($this->menu->liste);exit;

-			$lastlevel = array();

-			print '<!-- Generate menu list from menu handler '.$this->name.' -->'."\n";

-			foreach ($this->menu->liste as $key => $val) {		// $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu'

-				print '<ul class="ulmenu" data-inset="true">';

-				print '<li class="lilevel0">';

-

-				$val['url'] = make_substitutions($val['url'], $substitarray);

-

-				if ($val['enabled'] == 1) {

-					$relurl = dol_buildpath($val['url'], 1);

-					$canonurl = preg_replace('/\?.*$/', '', $val['url']);

-

-					print '<a class="alilevel0" href="#">';

-

-					// Add font-awesome

-					if ($val['level'] == 0 && $val['mainmenu'] == 'home') {

-						print '<span class="fa fa-home fa-fw paddingright" aria-hidden="true"></span>';

-					}

-

-					print $val['titre'];

-					print '</a>'."\n";

-

-					// Search submenu fot this mainmenu entry

-					$tmpmainmenu = $val['mainmenu'];

-					$tmpleftmenu = 'all';

-					$submenu = new Menu();

-

-					$langs->load("admin"); // Load translation file admin.lang

-					$submenu->add("/admin/index.php?leftmenu=setup", $langs->trans("Setup"), 0);

-					$submenu->add("/admin/company.php", $langs->trans("MenuCompanySetup"), 1);

-					$submenu->add("/admin/modules.php", $langs->trans("Modules"), 1);

-					$submenu->add("/admin/menus.php", $langs->trans("Menus"), 1);

-					$submenu->add("/admin/ihm.php", $langs->trans("GUISetup"), 1);

-					$submenu->add("/admin/translation.php?mainmenu=home", $langs->trans("Translation"), 1);

-					$submenu->add("/admin/defaultvalues.php?mainmenu=home", $langs->trans("DefaultValues"), 1);

-

-					$submenu->add("/admin/boxes.php?mainmenu=home", $langs->trans("Boxes"), 1);

-					$submenu->add("/admin/delais.php?mainmenu=home", $langs->trans("Alerts"), 1);

-					$submenu->add("/admin/proxy.php?mainmenu=home", $langs->trans("Security"), 1);

-					$submenu->add("/admin/limits.php?mainmenu=home", $langs->trans("MenuLimits"), 1);

-					$submenu->add("/admin/pdf.php?mainmenu=home", $langs->trans("PDF"), 1);

-					$submenu->add("/admin/mails.php?mainmenu=home", $langs->trans("Emails"), 1);

-					$submenu->add("/admin/sms.php?mainmenu=home", $langs->trans("SMS"), 1);

-					$submenu->add("/admin/dict.php?mainmenu=home", $langs->trans("DictionarySetup"), 1);

-					$submenu->add("/admin/const.php?mainmenu=home", $langs->trans("OtherSetup"), 1);

-

-					//if ($tmpmainmenu.'-'.$tmpleftmenu == 'home-all') { var_dump($submenu); exit; }

-					//if ($tmpmainmenu=='accountancy') { var_dump($submenu->liste); exit; }

-					$nexturl = dol_buildpath($submenu->liste[0]['url'], 1);

-

-					$canonrelurl = preg_replace('/\?.*$/', '', $relurl);

-					$canonnexturl = preg_replace('/\?.*$/', '', $nexturl);

-					//var_dump($canonrelurl);

-					//var_dump($canonnexturl);

-					print '<ul>'."\n";

-					if (($canonrelurl != $canonnexturl && !in_array($val['mainmenu'], array('tools')))

-						|| (strpos($canonrelurl, '/product/index.php') !== false || strpos($canonrelurl, '/compta/bank/list.php') !== false)) {

-						// We add sub entry

-						print str_pad('', 1).'<li class="lilevel1 ui-btn-icon-right ui-btn">'; // ui-btn to highlight on clic

-						print '<a href="'.$relurl.'">';

-						if ($langs->trans(ucfirst($val['mainmenu'])."Dashboard") == ucfirst($val['mainmenu'])."Dashboard") {  // No translation

-							if (in_array($val['mainmenu'], array('cashdesk', 'websites'))) {

-								print $langs->trans("Access");

-							} else {

-								print $langs->trans("Dashboard");

-							}

-						} else {

-							print $langs->trans(ucfirst($val['mainmenu'])."Dashboard");

-						}

-						print '</a>';

-						print '</li>'."\n";

-					}

-

-					if ($val['level'] == 0) {

-						if ($val['enabled']) {

-							$lastlevel[0] = 'enabled';

-						} elseif ($showmenu) {                 // Not enabled but visible (so greyed)

-							$lastlevel[0] = 'greyed';

-						} else {

-							$lastlevel[0] = 'hidden';

-						}

-					}

-

-					$lastlevel2 = array();

-					foreach ($submenu->liste as $key2 => $val2) {		// $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu'

-						$showmenu = true;

-						if (!empty($conf->global->MAIN_MENU_HIDE_UNAUTHORIZED) && empty($val2['enabled'])) {

-							$showmenu = false;

-						}

-

-						// If at least one parent is not enabled, we do not show any menu of all children

-						if ($val2['level'] > 0) {

-							$levelcursor = $val2['level'] - 1;

-							while ($levelcursor >= 0) {

-								if ($lastlevel2[$levelcursor] != 'enabled') {

-									$showmenu = false;

-								}

-								$levelcursor--;

-							}

-						}

-

-						if ($showmenu) {		// Visible (option to hide when not allowed is off or allowed)

-							$val2['url'] = make_substitutions($val2['url'], $substitarray);

-

-							$relurl2 = dol_buildpath($val2['url'], 1);

-							$canonurl2 = preg_replace('/\?.*$/', '', $val2['url']);

-							//var_dump($val2['url'].' - '.$canonurl2.' - '.$val2['level']);

-							if (in_array($canonurl2, array('/admin/index.php', '/admin/tools/index.php', '/core/tools.php'))) {

-								$relurl2 = '';

-							}

-

-							$disabled = '';

-							if (!$val2['enabled']) {

-								$disabled = " vsmenudisabled";

-							}

-

-							print str_pad('', $val2['level'] + 1);

-							print '<li class="lilevel'.($val2['level'] + 1);

-							if ($val2['level'] == 0) {

-								print ' ui-btn-icon-right ui-btn'; // ui-btn to highlight on clic

-							}

-							print $disabled.'">'; // ui-btn to highlight on clic

-							if ($relurl2) {

-								if ($val2['enabled']) {	// Allowed

-									print '<a href="'.$relurl2.'"';

-									//print ' data-ajax="false"';

-									print '>';

-									$lastlevel2[$val2['level']] = 'enabled';

-								} else // Not allowed but visible (greyed)

-								{

-									print '<a href="#" class="vsmenudisabled">';

-									$lastlevel2[$val2['level']] = 'greyed';

-								}

-							} else {

-								if ($val2['enabled']) {	// Allowed

-									$lastlevel2[$val2['level']] = 'enabled';

-								} else {

-									$lastlevel2[$val2['level']] = 'greyed';

-								}

-							}

-							//var_dump($val2['level']);

-							//var_dump($lastlevel2);

-							print $val2['titre'];

-							if ($relurl2) {

-								if ($val2['enabled']) {

-									// Allowed

-									print '</a>';

-								} else {

-									print '</a>';

-								}

-							}

-							print '</li>'."\n";

-						}

-					}

-					//var_dump($submenu);

-					print '</ul>';

-				}

-				if ($val['enabled'] == 2) {

-					print '<font class="vsmenudisabled">'.$val['titre'].'</font>';

-				}

-				print '</li>';

-				print '</ul>'."\n";

-			}

+		if ($mode == 'jmobile')     // Used to get menu in xml ul/li

+		{

+		    // Home

+		    $showmode = 1;

+		    $classname = 'class="tmenusel"';

+		    $idsel = 'home';

+

+		    $this->menu->add('/index.php', $langs->trans("Home"), 0, $showmode, $this->atarget, 'home', '', 10, $id, $idsel, $classname);

+

+		    $substitarray = getCommonSubstitutionArray($langs, 0, null, null);

+

+		    // $this->menu->liste is top menu

+		    //var_dump($this->menu->liste);exit;

+		    $lastlevel = array();

+		    print '<!-- Generate menu list from menu handler '.$this->name.' -->'."\n";

+		    foreach ($this->menu->liste as $key => $val)		// $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu'

+		    {

+		        print '<ul class="ulmenu" data-inset="true">';

+		        print '<li class="lilevel0">';

+

+		        $val['url'] = make_substitutions($val['url'], $substitarray);

+

+		        if ($val['enabled'] == 1)

+		        {

+		            $relurl = dol_buildpath($val['url'], 1);

+		            $canonurl = preg_replace('/\?.*$/', '', $val['url']);

+

+		            print '<a class="alilevel0" href="#">';

+

+		            // Add font-awesome

+		            if ($val['level'] == 0 && $val['mainmenu'] == 'home') print '<span class="fa fa-home fa-fw paddingright" aria-hidden="true"></span>';

+

+		            print $val['titre'];

+		            print '</a>'."\n";

+

+		            // Search submenu fot this mainmenu entry

+		            $tmpmainmenu = $val['mainmenu'];

+		            $tmpleftmenu = 'all';

+		            $submenu = new Menu();

+

+		            $langs->load("admin"); // Load translation file admin.lang

+		            $submenu->add("/admin/index.php?leftmenu=setup", $langs->trans("Setup"), 0);

+		            $submenu->add("/admin/company.php", $langs->trans("MenuCompanySetup"), 1);

+		            $submenu->add("/admin/modules.php", $langs->trans("Modules"), 1);

+		            $submenu->add("/admin/menus.php", $langs->trans("Menus"), 1);

+		            $submenu->add("/admin/ihm.php", $langs->trans("GUISetup"), 1);

+		            $submenu->add("/admin/translation.php?mainmenu=home", $langs->trans("Translation"), 1);

+		            $submenu->add("/admin/defaultvalues.php?mainmenu=home", $langs->trans("DefaultValues"), 1);

+

+		            $submenu->add("/admin/boxes.php", $langs->trans("Boxes"), 1);

+		            $submenu->add("/admin/delais.php", $langs->trans("Alerts"), 1);

+		            $submenu->add("/admin/proxy.php?mainmenu=home", $langs->trans("Security"), 1);

+		            $submenu->add("/admin/limits.php?mainmenu=home", $langs->trans("MenuLimits"), 1);

+		            $submenu->add("/admin/pdf.php?mainmenu=home", $langs->trans("PDF"), 1);

+		            $submenu->add("/admin/mails.php?mainmenu=home", $langs->trans("Emails"), 1);

+		            $submenu->add("/admin/sms.php?mainmenu=home", $langs->trans("SMS"), 1);

+		            $submenu->add("/admin/dict.php?mainmenu=home", $langs->trans("DictionarySetup"), 1);

+		            $submenu->add("/admin/const.php?mainmenu=home", $langs->trans("OtherSetup"), 1);

+

+		            //if ($tmpmainmenu.'-'.$tmpleftmenu == 'home-all') { var_dump($submenu); exit; }

+		            //if ($tmpmainmenu=='accountancy') { var_dump($submenu->liste); exit; }

+		            $nexturl = dol_buildpath($submenu->liste[0]['url'], 1);

+

+		            $canonrelurl = preg_replace('/\?.*$/', '', $relurl);

+		            $canonnexturl = preg_replace('/\?.*$/', '', $nexturl);

+		            //var_dump($canonrelurl);

+		            //var_dump($canonnexturl);

+		            print '<ul>'."\n";

+		            if (($canonrelurl != $canonnexturl && !in_array($val['mainmenu'], array('tools')))

+		                || (strpos($canonrelurl, '/product/index.php') !== false || strpos($canonrelurl, '/compta/bank/list.php') !== false))

+		            {

+		                // We add sub entry

+		                print str_pad('', 1).'<li class="lilevel1 ui-btn-icon-right ui-btn">'; // ui-btn to highlight on clic

+		                print '<a href="'.$relurl.'">';

+		                if ($langs->trans(ucfirst($val['mainmenu'])."Dashboard") == ucfirst($val['mainmenu'])."Dashboard")  // No translation

+		                {

+		                    if (in_array($val['mainmenu'], array('cashdesk', 'websites'))) print $langs->trans("Access");

+		                    else print $langs->trans("Dashboard");

+		                }

+		                else print $langs->trans(ucfirst($val['mainmenu'])."Dashboard");

+		                print '</a>';

+		                print '</li>'."\n";

+		            }

+

+		            if ($val['level'] == 0)

+		            {

+		                if ($val['enabled'])

+		                {

+		                    $lastlevel[0] = 'enabled';

+		                }

+		                elseif ($showmenu)                 // Not enabled but visible (so greyed)

+		                {

+		                    $lastlevel[0] = 'greyed';

+		                }

+		                else

+		                {

+		                    $lastlevel[0] = 'hidden';

+		                }

+		            }

+

+		            $lastlevel2 = array();

+		            foreach ($submenu->liste as $key2 => $val2)		// $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu'

+		            {

+		                $showmenu = true;

+		                if (!empty($conf->global->MAIN_MENU_HIDE_UNAUTHORIZED) && empty($val2['enabled'])) $showmenu = false;

+

+		                // If at least one parent is not enabled, we do not show any menu of all children

+		                if ($val2['level'] > 0)

+		                {

+		                    $levelcursor = $val2['level'] - 1;

+		                    while ($levelcursor >= 0)

+		                    {

+		                        if ($lastlevel2[$levelcursor] != 'enabled') $showmenu = false;

+		                        $levelcursor--;

+		                    }

+		                }

+

+		                if ($showmenu)		// Visible (option to hide when not allowed is off or allowed)

+		                {

+		                	$val2['url'] = make_substitutions($val2['url'], $substitarray);

+

+		                    $relurl2 = dol_buildpath($val2['url'], 1);

+		                    $canonurl2 = preg_replace('/\?.*$/', '', $val2['url']);

+		                    //var_dump($val2['url'].' - '.$canonurl2.' - '.$val2['level']);

+		                    if (in_array($canonurl2, array('/admin/index.php', '/admin/tools/index.php', '/core/tools.php'))) $relurl2 = '';

+

+		                    $disabled = '';

+		                    if (!$val2['enabled'])

+		                    {

+		                        $disabled = " vsmenudisabled";

+		                    }

+

+		                    print str_pad('', $val2['level'] + 1);

+		                    print '<li class="lilevel'.($val2['level'] + 1);

+		                    if ($val2['level'] == 0) print ' ui-btn-icon-right ui-btn'; // ui-btn to highlight on clic

+		                    print $disabled.'">'; // ui-btn to highlight on clic

+		                    if ($relurl2)

+		                    {

+		                        if ($val2['enabled'])	// Allowed

+		                        {

+		                            print '<a href="'.$relurl2.'"';

+		                            //print ' data-ajax="false"';

+		                            print '>';

+		                            $lastlevel2[$val2['level']] = 'enabled';

+		                        }

+		                        else					// Not allowed but visible (greyed)

+		                        {

+		                            print '<a href="#" class="vsmenudisabled">';

+		                            $lastlevel2[$val2['level']] = 'greyed';

+		                        }

+		                    }

+		                    else

+		                    {

+		                        if ($val2['enabled'])	// Allowed

+		                        {

+		                            $lastlevel2[$val2['level']] = 'enabled';

+		                        }

+		                        else

+		                        {

+		                            $lastlevel2[$val2['level']] = 'greyed';

+		                        }

+		                    }

+		                    //var_dump($val2['level']);

+		                    //var_dump($lastlevel2);

+		                    print $val2['titre'];

+		                    if ($relurl2)

+		                    {

+		                        if ($val2['enabled']) {

+                                    // Allowed

+                                    print '</a>';

+                                } else {

+                                    print '</a>';

+                                }

+		                    }

+		                    print '</li>'."\n";

+		                }

+		            }

+		            //var_dump($submenu);

+		            print '</ul>';

+		        }

+		        if ($val['enabled'] == 2)

+		        {

+		            print '<font class="vsmenudisabled">'.$val['titre'].'</font>';

+		        }

+		        print '</li>';

+		        print '</ul>'."\n";

+		    }

 		}

 

-		if ($mode == 'left') {

+		if ($mode == 'left')

+		{

 			// Put here left menu entries

 			// ***** START *****

 

@@ -340,8 +340,8 @@
 			$this->menu->add("/admin/translation.php?mainmenu=home", $langs->trans("Translation"), 1);

 			$this->menu->add("/admin/defaultvalues.php?mainmenu=home", $langs->trans("DefaultValues"), 1);

 

-			$this->menu->add("/admin/boxes.php?mainmenu=home", $langs->trans("Boxes"), 1);

-			$this->menu->add("/admin/delais.php?mainmenu=home", $langs->trans("Alerts"), 1);

+		    $this->menu->add("/admin/boxes.php", $langs->trans("Boxes"), 1);

+			$this->menu->add("/admin/delais.php", $langs->trans("Alerts"), 1);

 			$this->menu->add("/admin/proxy.php?mainmenu=home", $langs->trans("Security"), 1);

 			$this->menu->add("/admin/limits.php?mainmenu=home", $langs->trans("MenuLimits"), 1);

 			$this->menu->add("/admin/pdf.php?mainmenu=home", $langs->trans("PDF"), 1);

@@ -352,112 +352,158 @@
 

 			// ***** END *****

 

-			$menu_array_before = array();

-			$menu_array_after = array();

-

 			// do not change code after this

 

-			$menu_array = $this->menu->liste;

-			if (is_array($menu_array_before)) {

-				$menu_array = array_merge($menu_array_before, $menu_array);

-			}

-			if (is_array($menu_array_after)) {

-				$menu_array = array_merge($menu_array, $menu_array_after);

-			}

-			//var_dump($menu_array);exit;

-			if (!is_array($menu_array)) {

-				return 0;

-			}

-

-			if (empty($noout)) {

+			if (empty($noout))

+			{

 				$alt = 0; $altok = 0; $blockvmenuopened = false;

-				$num = count($menu_array);

-				for ($i = 0; $i < $num; $i++) {

+				$num = count($this->menu->liste);

+				for ($i = 0; $i < $num; $i++)

+				{

 					$alt++;

-					if (empty($menu_array[$i]['level'])) {

-						$altok++;

-						$blockvmenuopened = true;

+					if (empty($this->menu->liste[$i]['level']))

+					{

+			    		$altok++;

+    					$blockvmenuopened = true;

 						$lastopened = true;

-						for ($j = ($i + 1); $j < $num; $j++) {

-							if (empty($menu_array[$j]['level'])) {

-								$lastopened = false;

-							}

+        				for ($j = ($i + 1); $j < $num; $j++)

+        				{

+        				    if (empty($menu_array[$j]['level'])) $lastopened = false;

+        				}

+        				$alt = 0; // For menu manager "empty", we force to not have blockvmenufirst defined

+        				$lastopened = 1; // For menu manager "empty", we force to not have blockvmenulast defined

+						if (($alt % 2 == 0))

+						{

+							print '<div class="blockvmenub lockvmenuimpair blockvmenuunique'.($lastopened ? ' blockvmenulast' : '').($alt == 1 ? ' blockvmenufirst' : '').'">'."\n";

 						}

-						$alt = 0; // For menu manager "empty", we force to not have blockvmenufirst defined

-						$lastopened = 1; // For menu manager "empty", we force to not have blockvmenulast defined

-						if (($alt % 2 == 0)) {

-							print '<div class="blockvmenub lockvmenuimpair blockvmenuunique'.($lastopened ? ' blockvmenulast' : '').($alt == 1 ? ' blockvmenufirst' : '').'">'."\n";

-						} else {

+						else

+						{

 							print '<div class="blockvmenu blockvmenupair blockvmenuunique'.($lastopened ? ' blockvmenulast' : '').($alt == 1 ? ' blockvmenufirst' : '').'">'."\n";

 						}

 					}

 

 					// Add tabulation

 					$tabstring = '';

-					$tabul = ($menu_array[$i]['level'] - 1);

-					if ($tabul > 0) {

-						for ($j = 0; $j < $tabul; $j++) {

+					$tabul = ($this->menu->liste[$i]['level'] - 1);

+					if ($tabul > 0)

+					{

+						for ($j = 0; $j < $tabul; $j++)

+						{

 							$tabstring .= '&nbsp; &nbsp;';

 						}

 					}

 

-					if ($menu_array[$i]['level'] == 0) {

-						if ($menu_array[$i]['enabled']) {

-							print '<div class="menu_titre">'.$tabstring.'<a class="vmenu" href="'.dol_buildpath($menu_array[$i]['url'], 1).'"'.($menu_array[$i]['target'] ? ' target="'.$menu_array[$i]['target'].'"' : '').'>'.$menu_array[$i]['titre'].'</a></div>'."\n";

-						} else {

-							print '<div class="menu_titre">'.$tabstring.'<font class="vmenudisabled">'.$menu_array[$i]['titre'].'</font></div>'."\n";

+					if ($this->menu->liste[$i]['level'] == 0) {

+						if ($this->menu->liste[$i]['enabled'])

+						{

+							print '<div class="menu_titre">'.$tabstring.'<a class="vmenu" href="'.dol_buildpath($this->menu->liste[$i]['url'], 1).'"'.($this->menu->liste[$i]['target'] ? ' target="'.$this->menu->liste[$i]['target'].'"' : '').'>'.$this->menu->liste[$i]['titre'].'</a></div>'."\n";

+						}

+						else

+						{

+							print '<div class="menu_titre">'.$tabstring.'<font class="vmenudisabled">'.$this->menu->liste[$i]['titre'].'</font></div>'."\n";

 						}

 						print '<div class="menu_top"></div>'."\n";

 					}

 

-					if ($menu_array[$i]['level'] > 0) {

-						$cssmenu = '';

-						if ($menu_array[$i]['url']) {

-							$cssmenu = ' menu_contenu'.dol_string_nospecial(preg_replace('/\.php.*$/', '', $menu_array[$i]['url']));

+					if ($this->menu->liste[$i]['level'] > 0)

+					{

+        				$cssmenu = '';

+        				if ($this->menu->liste[$i]['url']) $cssmenu = ' menu_contenu'.dol_string_nospecial(preg_replace('/\.php.*$/', '', $this->menu->liste[$i]['url']));

+

+					    print '<div class="menu_contenu'.$cssmenu.'">';

+

+						if ($this->menu->liste[$i]['enabled'])

+						{

+							print $tabstring;

+							if ($this->menu->liste[$i]['url']) print '<a class="vsmenu" href="'.dol_buildpath($this->menu->liste[$i]['url'], 1).'"'.($this->menu->liste[$i]['target'] ? ' target="'.$this->menu->liste[$i]['target'].'"' : '').'>';

+							else print '<span class="vsmenu">';

+							if ($this->menu->liste[$i]['url']) print $this->menu->liste[$i]['titre'].'</a>';

+							else print '</span>';

 						}

-

-						print '<div class="menu_contenu'.$cssmenu.'">';

-

-						if ($menu_array[$i]['enabled']) {

-							print $tabstring;

-							if ($menu_array[$i]['url']) {

-								print '<a class="vsmenu"  itle="'.dol_escape_htmltag($menu_array[$i]['titre']).'" href="'.dol_buildpath($menu_array[$i]['url'], 1).'"'.($menu_array[$i]['target'] ? ' target="'.$menu_array[$i]['target'].'"' : '').'>';

-							} else {

-								print '<span class="vsmenu" title="'.dol_escape_htmltag($menu_array[$i]['titre']).'">';

-							}

-							if ($menu_array[$i]['url']) {

-								print $menu_array[$i]['titre'].'</a>';

-							} else {

-								print '</span>';

-							}

-						} else {

-							print $tabstring.'<font class="vsmenudisabled vsmenudisabledmargin">'.$menu_array[$i]['titre'].'</font>';

+						else

+						{

+							print $tabstring.'<font class="vsmenudisabled vsmenudisabledmargin">'.$this->menu->liste[$i]['titre'].'</font>';

 						}

 

 						// If title is not pure text and contains a table, no carriage return added

-						if (!strstr($menu_array[$i]['titre'], '<table')) {

-							print '<br>';

-						}

+						if (!strstr($this->menu->liste[$i]['titre'], '<table')) print '<br>';

 						print '</div>'."\n";

 					}

 

 					// If next is a new block or end

-					if (empty($menu_array[$i + 1]['level'])) {

+					if (empty($this->menu->liste[$i + 1]['level']))

+					{

 						print '<div class="menu_end"></div>'."\n";

 						print "</div>\n";

 					}

 				}

 

-				if ($altok) {

-					print '<div class="blockvmenuend"></div>';

-				}

+				if ($altok) print '<div class="blockvmenuend"></div>';

 			}

 

-			if ($mode == 'jmobile') {

+			if ($mode == 'jmobile')

+			{

 				$this->leftmenu = clone $this->menu;

-				unset($menu_array);

+				unset($this->menu->liste);

 			}

 		}

+        /*

+		if ($mode == 'jmobile')

+		{

+			$substitarray = getCommonSubstitutionArray($langs, 0, null, null);

+

+			foreach($this->menu->liste as $key => $val)		// $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu'

+			{

+				print '<ul class="ulmenu" data-inset="true">';

+				print '<li class="lilevel0">';

+

+		        $val['url'] = make_substitutions($val['url'], $substitarray);

+

+				if ($val['enabled'] == 1)

+				{

+					$relurl=dol_buildpath($val['url'],1);

+

+					print '<a href="#">'.$val['titre'].'</a>'."\n";

+					// Search submenu fot this entry

+					$tmpmainmenu=$val['mainmenu'];

+					$tmpleftmenu='all';

+					//$submenu=new Menu();

+					//$res=print_left_eldy_menu($this->db,$this->menu_array,$this->menu_array_after,$this->tabMenu,$submenu,1,$tmpmainmenu,$tmpleftmenu);

+					//$nexturl=dol_buildpath($submenu->liste[0]['url'],1);

+					$submenu=$this->leftmenu;

+

+					$canonrelurl=preg_replace('/\?.*$/','',$relurl);

+					$canonnexturl=preg_replace('/\?.*$/','',$nexturl);

+					//var_dump($canonrelurl);

+					//var_dump($canonnexturl);

+					print '<ul>';

+        			if ($canonrelurl != $canonnexturl && ! in_array($val['mainmenu'],array('home','tools')))

+					{

+						// We add sub entry

+						print '<li><a href="'.$relurl.'">'.$langs->trans("MainArea").'-'.$val['titre'].'</a></li>'."\n";

+					}

+					foreach($submenu->liste as $key2 => $val2)		// $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu'

+					{

+	                	$val2['url'] = make_substitutions($val2['url'], $substitarray);

+

+						$relurl2=dol_buildpath($val2['url'],1);

+						//var_dump($val2);

+						print '<li><a href="'.$relurl2.'">'.$val2['titre'].'</a></li>'."\n";

+					}

+					//var_dump($submenu);

+					print '</ul>';

+				}

+				if ($val['enabled'] == 2)

+				{

+					print '<font class="vsmenudisabled">'.$val['titre'].'</font>';

+				}

+				print '</li>';

+				print '</ul>'."\n";

+

+				break;	// Only first menu entry (so home)

+			}

+		}

+        */

 		unset($this->menu);

 

 		return $res;

@@ -472,7 +518,7 @@
  */

 function print_start_menu_array_empty()

 {

-	global $conf;

+    global $conf;

 

 	print '<div class="tmenudiv">';

 	print '<ul role="navigation" class="tmenu"'.(empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER) ? '' : ' title="Top menu"').'>';

@@ -488,7 +534,8 @@
  */

 function print_start_menu_entry_empty($idsel, $classname, $showmode)

 {

-	if ($showmode) {

+	if ($showmode)

+	{

 		print '<li '.$classname.' id="mainmenutd_'.$idsel.'">';

 		//print '<div class="tmenuleft tmenusep"></div>';

 		print '<div class="tmenucenter">';

@@ -511,7 +558,8 @@
 {

 	global $conf, $langs;

 

-	if ($showmode == 1) {

+	if ($showmode == 1)

+	{

 		print '<a class="tmenuimage" tabindex="-1" href="'.$url.'"'.($atarget ? ' target="'.$atarget.'"' : '').'>';

 		print '<div class="'.$id.' '.$idsel.'"><span class="'.$id.' tmenuimage" id="mainmenuspan_'.$idsel.'"></span></div>';

 		print '</a>';

@@ -521,7 +569,8 @@
 		print '</span>';

 		print '</a>';

 	}

-	if ($showmode == 2) {

+	if ($showmode == 2)

+	{

 		print '<div class="'.$id.' '.$idsel.' tmenudisabled"><span class="'.$id.'" id="mainmenuspan_'.$idsel.'"></span></div>';

 		print '<a class="tmenudisabled" id="mainmenua_'.$idsel.'" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">';

 	}

@@ -535,7 +584,8 @@
  */

 function print_end_menu_entry_empty($showmode)

 {

-	if ($showmode) {

+	if ($showmode)

+	{

 		print '</div></li>';

 		print "\n";

 	}