diff --git a/htdocs/core/class/html.formother.class.php b/htdocs/core/class/html.formother.class.php
index 474c07f4b0ad15c7aa45538ef9373e240c9525ed..fc8ee1c30d0c830350ea4ba648e67d73521ea203 100644
--- a/htdocs/core/class/html.formother.class.php
+++ b/htdocs/core/class/html.formother.class.php
@@ -960,16 +960,15 @@ class FormOther
 
 
 
-
     /**
-     * 	Show a HTML Tab with boxes of a particular area including personalized choices of user.
+     * 	Get array with HTML tabs with boxes of a particular area including personalized choices of user.
      *  Class 'Form' must be known.
      *
      * 	@param	   User         $user		 Object User
      * 	@param	   String       $areacode    Code of area for pages (0=value for Home page)
      * 	@return    array                     array('selectboxlist'=>, 'boxactivated'=>, 'boxlist'=>)
      */
-    static function printBoxesArea($user,$areacode)
+    static function getBoxesArea($user,$areacode)
     {
         global $conf,$langs,$db;
 
@@ -980,9 +979,8 @@ class FormOther
         // $boxactivated will be array of boxes enabled into global setup
         // $boxidactivatedforuser will be array of boxes choosed by user
         
-        $selectboxlist=$boxlist='';
+        $selectboxlist='';
         $boxactivated=InfoBox::listBoxes($db,'activated',$areacode,(empty($user->conf->$confuserzone)?null:$user));	// Search boxes of common+user (or common only if user has no specific setup)
-        //var_dump($boxactivated);
         
         $boxidactivatedforuser=array();
         foreach($boxactivated as $box)
@@ -990,6 +988,7 @@ class FormOther
         	if (empty($user->conf->$confuserzone) || $box->fk_user == $user->id) $boxidactivatedforuser[$box->id]=$box->id;	// We keep only boxes to show for user
         }
         
+        // Define selectboxlist
         $arrayboxtoactivatelabel=array();
         if (! empty($user->conf->$confuserzone))
         {
@@ -1092,8 +1091,8 @@ class FormOther
 	        $selectboxlist.='</script>'."\n";
         }
 
+        // Define boxlista and boxlistb
         $nbboxactivated=count($boxidactivatedforuser);
-        //print load_fiche_titre(($nbboxactivated?$langs->trans("OtherInformationsBoxes"):''),$selectboxlist,'','','otherboxes');
 
         if ($nbboxactivated)
         {
@@ -1102,13 +1101,13 @@ class FormOther
 
         	$emptybox=new ModeleBoxes($db);
 
-            $boxlist.='<table width="100%" class="notopnoleftnoright">';
-            $boxlist.='<tr><td class="notopnoleftnoright">'."\n";
+            //$boxlist.='<table width="100%" class="notopnoleftnoright">';
+            //$boxlist.='<tr><td class="notopnoleftnoright">'."\n";
 
-            $boxlist.='<div class="fichehalfleft">';
+            //$boxlist.='<div class="fichehalfleft">';
 
-            $boxlist.="\n<!-- Box left container -->\n";
-            $boxlist.='<div id="left" class="connectedSortable">'."\n";
+            $boxlista.="\n<!-- Box left container -->\n";
+            $boxlista.='<div id="left" class="connectedSortable">'."\n";
 
             // Define $box_max_lines
             $box_max_lines=5;
@@ -1124,9 +1123,9 @@ class FormOther
                     $ii++;
                     //print 'box_id '.$boxactivated[$ii]->box_id.' ';
                     //print 'box_order '.$boxactivated[$ii]->box_order.'<br>';
-                    // Affichage boite key
+                    // Show box
                     $box->loadBox($box_max_lines);
-                    $boxlist.= $box->outputBox();
+                    $boxlista.= $box->outputBox();
                 }
             }
 
@@ -1135,15 +1134,15 @@ class FormOther
             	$emptybox->box_id='A';
             	$emptybox->info_box_head=array();
             	$emptybox->info_box_contents=array();
-            	$boxlist.= $emptybox->outputBox(array(),array());
+            	$boxlista.= $emptybox->outputBox(array(),array());
             }
-            $boxlist.= "</div>\n";
-            $boxlist.= "<!-- End box left container -->\n";
+            $boxlista.= "</div>\n";
+            $boxlista.= "<!-- End box left container -->\n";
 
-            $boxlist.= '</div><div class="fichehalfright"><div class="ficheaddleft">';
+            //$boxlist.= '</div><div class="fichehalfright"><div class="ficheaddleft">';
 
-            $boxlist.= "\n<!-- Box right container -->\n";
-            $boxlist.= '<div id="right" class="connectedSortable">'."\n";
+            $boxlistb.= "\n<!-- Box right container -->\n";
+            $boxlistb.= '<div id="right" class="connectedSortable">'."\n";
 
             $ii=0;
             foreach ($boxactivated as $key => $box)
@@ -1155,9 +1154,9 @@ class FormOther
                     $ii++;
                     //print 'box_id '.$boxactivated[$ii]->box_id.' ';
                     //print 'box_order '.$boxactivated[$ii]->box_order.'<br>';
-                    // Affichage boite key
+                    // Show box
                     $box->loadBox($box_max_lines);
-                    $boxlist.= $box->outputBox();
+                    $boxlistb.= $box->outputBox();
                 }
             }
 
@@ -1166,19 +1165,19 @@ class FormOther
             	$emptybox->box_id='B';
             	$emptybox->info_box_head=array();
             	$emptybox->info_box_contents=array();
-            	$boxlist.= $emptybox->outputBox(array(),array());
+            	$boxlistb.= $emptybox->outputBox(array(),array());
             }
-            $boxlist.= "</div>\n";
-            $boxlist.= "<!-- End box right container -->\n";
+            $boxlistb.= "</div>\n";
+            $boxlistb.= "<!-- End box right container -->\n";
 
-            $boxlist.= '</div></div>';
-            $boxlist.= "\n";
+            //$boxlist.= '</div></div>';
+            //$boxlist.= "\n";
 
-            $boxlist.= "</td></tr>";
-            $boxlist.= "</table>";
+            //$boxlist.= "</td></tr>";
+            //$boxlist.= "</table>";
         }
 
-        return array('selectboxlist'=>count($boxactivated)?$selectboxlist:'', 'boxactivated'=>$boxactivated, 'boxlist'=>$boxlist);
+        return array('selectboxlist'=>count($boxactivated)?$selectboxlist:'', 'boxactivated'=>$boxactivated, 'boxlista'=>$boxlista, 'boxlistb'=>$boxlistb);
     }
 
 
diff --git a/htdocs/index.php b/htdocs/index.php
index d876b718ce8a7d8ed137668a0a581a44eb46c22a..3e2fa24eed0c857f9d81192edcd37ad48c5d8fac 100644
--- a/htdocs/index.php
+++ b/htdocs/index.php
@@ -73,7 +73,7 @@ if (! empty($conf->global->MAIN_APPLICATION_TITLE)) $title=$langs->trans("HomeAr
 llxHeader('',$title);
 
 
-$resultboxes=FormOther::printBoxesArea($user,"0");
+$resultboxes=FormOther::getBoxesArea($user,"0");
 
 
 print load_fiche_titre($langs->trans("HomeArea"),$resultboxes['selectboxlist'],'title_home');
@@ -107,38 +107,41 @@ print '<div class="fichecenter"><div class="fichethirdleft">';
 /*
  * Informations area
  */
-
-print '<table summary="Login info" class="noborder" width="100%">';
-print '<tr class="liste_titre"><th class="liste_titre" colspan="2">'.$langs->trans("Informations").'</th></tr>';
-print '<tr '.$bc[false].'>';
-print '<td class="nowrap">'.$langs->trans("User").'</td><td>'.$user->getNomUrl(0).'</td></tr>';
-print '<tr '.$bc[true].'>';
-print '<td class="nowrap">'.$langs->trans("PreviousConnexion").'</td><td>';
-if ($user->datepreviouslogin) print dol_print_date($user->datepreviouslogin,"dayhour",'tzuser');
-else print $langs->trans("Unknown");
-print '</td>';
-print "</tr>\n";
-print "</table>\n";
-
+$boxinfo='';
+$boxinfo.= '<div class="box">';
+$boxinfo.= '<table summary="'.dol_escape_htmltag($langs->trans("LoginInformation")).'" class="noborder boxtable" width="100%">';
+$boxinfo.= '<tr class="liste_titre"><th class="liste_titre" colspan="2">'.$langs->trans("Informations").'</th></tr>';
+$boxinfo.= '<tr '.$bc[false].'>';
+$boxinfo.= '<td class="nowrap">'.$langs->trans("User").'</td><td>'.$user->getNomUrl(0).'</td></tr>';
+$boxinfo.= '<tr '.$bc[true].'>';
+$boxinfo.= '<td class="nowrap">'.$langs->trans("PreviousConnexion").'</td><td>';
+if ($user->datepreviouslogin) $boxinfo.= dol_print_date($user->datepreviouslogin,"dayhour",'tzuser');
+else $boxinfo.= $langs->trans("Unknown");
+$boxinfo.= '</td>';
+$boxinfo.= "</tr>\n";
+$boxinfo.= "</table>\n";
+$boxinfo.= '</div>';
+print $boxinfo;
 
 /*
  * Dashboard Dolibarr states (statistics)
  * Hidden for external users
  */
+$boxstat='';
+
 $langs->load("commercial");
 $langs->load("bills");
 $langs->load("orders");
 $langs->load("contracts");
 
-//print memory_get_usage();
 if (empty($user->societe_id))
 {
-    print '<br>';
-    print '<table  summary="'.$langs->trans("DolibarrStateBoard").'" class="noborder" width="100%">';
-    print '<tr class="liste_titre">';
-    print '<th class="liste_titre">'.$langs->trans("DolibarrStateBoard").'</th>';
-    print '</tr>';
-    print '<tr class="impair"><td class="tdboxstats nohover">';
+    $boxstat.='<div class="box">';
+    $boxstat.='<table summary="'.dol_escape_htmltag($langs->trans("DolibarrStateBoard")).'" class="noborder boxtable" width="100%">';
+    $boxstat.='<tr class="liste_titre">';
+    $boxstat.='<th class="liste_titre">'.$langs->trans("DolibarrStateBoard").'</th>';
+    $boxstat.='</tr>';
+    $boxstat.='<tr class="impair"><td class="tdboxstats nohover">';
 
     $var=true;
 
@@ -292,19 +295,21 @@ if (empty($user->societe_id))
 	            $var=!$var;
 	            if (!empty($langfile[$key])) $langs->load($langfile[$key]);
 	            $text=$langs->trans($titres[$key]);
-	            print '<a href="'.$links[$key].'" class="boxstatsindicator thumbstat nobold nounderline">';
-	            print '<div class="boxstats">';
-	            print '<span class="boxstatstext">'.img_object("",$icons[$key]).' '.$text.'</span><br>';
-	            print '<span class="boxstatsindicator">'.$board->nb[$val].'</span>';
-	            print '</div>';
-	            print '</a>';
+	            $boxstat.='<a href="'.$links[$key].'" class="boxstatsindicator thumbstat nobold nounderline">';
+	            $boxstat.='<div class="boxstats">';
+	            $boxstat.='<span class="boxstatstext">'.img_object("",$icons[$key]).' '.$text.'</span><br>';
+	            $boxstat.='<span class="boxstatsindicator">'.$board->nb[$val].'</span>';
+	            $boxstat.='</div>';
+	            $boxstat.='</a>';
 	        }
 	    }
     }
 
-    print '</td></tr>';
-    print '</table>';
+    $boxstat.='</td></tr>';
+    $boxstat.='</table>';
+    $boxstat.='</div>';
 }
+print $boxstat;
 
 print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
 
@@ -317,21 +322,18 @@ $showweather=empty($conf->global->MAIN_DISABLE_METEO)?1:0;
 //Array that contains all WorkboardResponse classes to process them
 $dashboardlines=array();
 
-print '<table class="noborder" width="100%">'."\n";
-print '<tr class="liste_titre">';
-print '<th class="liste_titre" colspan="2">'.$langs->trans("DolibarrWorkBoard").'</th>';
-print '<th class="liste_titre" align="right">'.$langs->trans("Number").'</th>';
-print '<th class="liste_titre" align="right">'.$form->textwithpicto($langs->trans("Late"),$langs->trans("LateDesc")).'</th>';
-print '<th class="liste_titre">&nbsp;</th>';
+$boxwork='';
+$boxwork.='<table summary="'.dol_escape_htmltag($langs->trans("WorkingBoard")).'" class="noborder boxtable" width="100%">'."\n";
+$boxwork.='<tr class="liste_titre">';
+$boxwork.='<th class="liste_titre" colspan="2">'.$langs->trans("DolibarrWorkBoard").'</th>';
+$boxwork.='<th class="liste_titre" align="right">'.$langs->trans("Number").'</th>';
+$boxwork.='<th class="liste_titre" align="right">'.$form->textwithpicto($langs->trans("Late"),$langs->trans("LateDesc")).'</th>';
+$boxwork.='<th class="liste_titre">&nbsp;</th>';
 //print '<th class="liste_titre" width="20">&nbsp;</th>';
-if ($showweather) print '<th class="liste_titre hideonsmartphone" width="80">&nbsp;</th>';
-print '</tr>'."\n";
+if ($showweather) $boxwork.='<th class="liste_titre hideonsmartphone" width="80">&nbsp;</th>';
+$boxwork.='</tr>'."\n";
 
-
-//
 // Do not include sections without management permission
-//
-
 require DOL_DOCUMENT_ROOT.'/core/class/workboardresponse.class.php';
 
 // Number of actions to do (late)
@@ -357,7 +359,6 @@ if (! empty($conf->projet->enabled) && empty($conf->global->PROJECT_HIDE_TASKS)
 {
     include_once DOL_DOCUMENT_ROOT.'/projet/class/task.class.php';
     $board=new Task($db);
-
     $dashboardlines[] = $board->load_board($user);
 }
 
@@ -367,7 +368,6 @@ if (! empty($conf->propal->enabled) && $user->rights->propale->lire)
     include_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php';
     $board=new Propal($db);
 	$dashboardlines[] = $board->load_board($user,"opened");
-
 	// Number of commercial proposals CLOSED signed (billed)
 	$dashboardlines[] = $board->load_board($user,"signed");
 }
@@ -377,7 +377,6 @@ if (! empty($conf->commande->enabled) && $user->rights->commande->lire)
 {
     include_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php';
     $board=new Commande($db);
-
 	$dashboardlines[] = $board->load_board($user);
 }
 
@@ -386,7 +385,6 @@ if (! empty($conf->supplier_order->enabled) && $user->rights->fournisseur->comma
 {
     include_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php';
     $board=new CommandeFournisseur($db);
-
 	$dashboardlines[] = $board->load_board($user);
 }
 
@@ -396,7 +394,6 @@ if (! empty($conf->contrat->enabled) && $user->rights->contrat->lire)
     include_once DOL_DOCUMENT_ROOT.'/contrat/class/contrat.class.php';
     $board=new Contrat($db);
     $dashboardlines[] = $board->load_board($user,"inactives");
-
 	// Number of active services (expired)
     $dashboardlines[] = $board->load_board($user,"expired");
 }
@@ -445,7 +442,6 @@ if (! empty($conf->expensereport->enabled) && $user->rights->expensereport->appr
 {
     include_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport.class.php';
     $board=new ExpenseReport($db);
-
 	$dashboardlines[] = $board->load_board($user,'toapprove');
 }
 
@@ -454,7 +450,6 @@ if (! empty($conf->expensereport->enabled) && $user->rights->expensereport->to_p
 {
     include_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport.class.php';
     $board=new ExpenseReport($db);
-
 	$dashboardlines[] = $board->load_board($user,'topay');
 }
 
@@ -483,55 +478,76 @@ foreach($valid_dashboardlines as $board)
 foreach($valid_dashboardlines as $board)
 {
     $var=!$var;
-    print '<tr '.$bc[$var].'><td width="16">'.$board->img.'</td><td>'.$board->label.'</td>';
-    print '<td align="right"><a class="dashboardlineindicator" href="'.$board->url.'"><span class="dashboardlineindicator">'.$board->nbtodo.'</span></a></td>';
-    print '<td align="right">';
+    $boxwork.= '<tr '.$bc[$var].'><td width="16">'.$board->img.'</td><td>'.$board->label.'</td>';
+    $boxwork.= '<td align="right"><a class="dashboardlineindicator" href="'.$board->url.'"><span class="dashboardlineindicator">'.$board->nbtodo.'</span></a></td>';
+    $boxwork.= '<td align="right">';
     //if ($board->nbtodolate > 0)
     //{
         $textlate = $langs->trans("Late").' = '.$langs->trans("DateReference").' > '.$langs->trans("DateToday").' '.(ceil($board->warning_delay) >= 0 ? '+' : '').ceil($board->warning_delay).' '.$langs->trans("days");
-        print '<a title="'.dol_escape_htmltag($textlate).'" class="dashboardlineindicatorlate'.($board->nbtodolate>0?' dashboardlineko':' dashboardlineok').'" href="'.$board->url.'"><span class="dashboardlineindicatorlate'.($board->nbtodolate>0?' dashboardlineko':' dashboardlineok').'">';
-        print $board->nbtodolate;
-        print '</span></a>';
+        $boxwork.= '<a title="'.dol_escape_htmltag($textlate).'" class="dashboardlineindicatorlate'.($board->nbtodolate>0?' dashboardlineko':' dashboardlineok').'" href="'.$board->url.'"><span class="dashboardlineindicatorlate'.($board->nbtodolate>0?' dashboardlineko':' dashboardlineok').'">';
+        $boxwork.= $board->nbtodolate;
+        $boxwork.= '</span></a>';
     //}
-    print '</td>';
-    print '<td align="left">';
-    if ($board->nbtodolate > 0) print img_picto($langs->trans("NActionsLate",$board->nbtodolate).' (>'.ceil($board->warning_delay).' '.$langs->trans("days").')',"warning");
-    else print '&nbsp;';
-    print '</td>';
+    $boxwork.='</td>';
+    $boxwork.='<td align="left">';
+    if ($board->nbtodolate > 0) $boxwork.=img_picto($langs->trans("NActionsLate",$board->nbtodolate).' (>'.ceil($board->warning_delay).' '.$langs->trans("days").')',"warning");
+    else $boxwork.='&nbsp;';
+    $boxwork.='</td>';
     /*print '<td class="nowrap" align="right">';
     print ' (>'.ceil($board->warning_delay).' '.$langs->trans("days").')';
     print '</td>';*/
     
     if ($showweather)
     {
-        print '<td class="nohover hideonsmartphone" rowspan="'.$rowspan.'" width="80" style="border-left: 1px solid #DDDDDD" align="center">';
+        $boxwork.='<td class="nohover hideonsmartphone" rowspan="'.$rowspan.'" width="80" style="border-left: 1px solid #DDDDDD" align="center">';
         $text='';
         if ($totallate > 0) $text=$langs->transnoentitiesnoconv("WarningYouHaveAtLeastOneTaskLate").' ('.$langs->transnoentitiesnoconv("NActionsLate",$totallate).')';
         $options='height="64px"';
         if ($rowspan <= 2) $options='height="24"';  // Weather logo is smaller if dashboard has few elements
         else if ($rowspan <= 3) $options='height="48"';  // Weather logo is smaller if dashboard has few elements
-        print showWeather($totallate,$text,$options);
-        print '</td>';
+        $boxwork.=showWeather($totallate,$text,$options);
+        $boxwork.='</td>';
         $showweather=0;
     }
-    print '</tr>';
-    print "\n";
+    $boxwork.='</tr>';
+    $boxwork.="\n";
 }
 
+$boxwork.='</table>';   // End table array of working board
+
+print $boxwork;
 
-print '</table>';   // End table array
+print '</div></div></div><div class="clearboth"></div>';
 
+print '<div class="fichecenter fichecenterbis">';
 
-print '</div></div></div><div class="clearboth"></div><div class="fichecenter fichecenterbis">';
 
 /*
  * Show boxes
  */
 
-print $resultboxes['boxlist'];
+$boxlist.='<table width="100%" class="notopnoleftnoright">';
+$boxlist.='<tr><td class="notopnoleftnoright">'."\n";
+
+$boxlist.='<div class="fichehalfleft">';
+
+$boxlist.=$resultboxes['boxlista'];
+
+$boxlist.= '</div><div class="fichehalfright"><div class="ficheaddleft">';
+
+$boxlist.=$resultboxes['boxlistb'];
+
+$boxlist.= '</div></div>';
+$boxlist.= "\n";
+
+$boxlist.= "</td></tr>";
+$boxlist.= "</table>";
+
+print $boxlist;
 
 print '</div>';
 
+
 /*
  * Show security warnings
  */