diff --git a/dev/tools/test/testdiv.php b/dev/tools/test/testdiv.php
index 5b57f0a3667e90f284f4e963cefc66d5a6f5a914..b529af4eb6079d041b21e61c243d6183707ab2ce 100644
--- a/dev/tools/test/testdiv.php
+++ b/dev/tools/test/testdiv.php
@@ -39,8 +39,8 @@
 </tr>
 
 <!-- Password -->
-<tr><td valign="top" class="nowrap"> &nbsp; <strong><label for="password">Mot de passe</label></strong> &nbsp; </td>
-<td valign="top" class="nowrap">
+<tr><td class="tdtop nowrap"> &nbsp; <strong><label for="password">Mot de passe</label></strong> &nbsp; </td>
+<td class="tdtop nowrap">
 <input id="password" name="password" class="flat" type="password" size="15" maxlength="30" value="" tabindex="2" />
 </td></tr>
 
diff --git a/htdocs/accountancy/admin/fiscalyear_card.php b/htdocs/accountancy/admin/fiscalyear_card.php
index 7c5c6d08c731c46f8c71646f60bd7ef27b2b36d5..2c22d8f191a9186ed69de16e8cb1ac9f898c4fe1 100644
--- a/htdocs/accountancy/admin/fiscalyear_card.php
+++ b/htdocs/accountancy/admin/fiscalyear_card.php
@@ -268,7 +268,7 @@ if ($action == 'create')
 			print '</td></tr>';
 
 			// Label
-			print '<tr><td valign="top">';
+			print '<tr><td class="tdtop">';
 			print $form->editfieldkey("Label", 'label', $object->label, $object, $conf->global->MAIN_EDIT_ALSO_INLINE, 'alpha:32');
 			print '</td><td colspan="2">';
 			print $form->editfieldval("Label", 'label', $object->label, $object, $conf->global->MAIN_EDIT_ALSO_INLINE, 'alpha:32');
diff --git a/htdocs/adherents/canvas/default/tpl/adherentcard_create.tpl.php b/htdocs/adherents/canvas/default/tpl/adherentcard_create.tpl.php
index 230598895713bdf88645031328a78b807d041b68..f0a50e2e9ba288c493b9d16f2cc3992eaf3c0863 100644
--- a/htdocs/adherents/canvas/default/tpl/adherentcard_create.tpl.php
+++ b/htdocs/adherents/canvas/default/tpl/adherentcard_create.tpl.php
@@ -108,7 +108,7 @@ echo $this->control->tpl['ajax_selectcountry']; ?>
 </tr>
 
 <tr>
-	<td valign="top"><?php echo $langs->trans("Note"); ?></td>
+	<td class="tdtop"><?php echo $langs->trans("Note"); ?></td>
 	<td colspan="3" valign="top"><textarea name="note" cols="70" rows="<?php echo ROWS_3; ?>"><?php echo $this->control->tpl['note']; ?></textarea></td>
 </tr>
 
diff --git a/htdocs/adherents/canvas/default/tpl/adherentcard_edit.tpl.php b/htdocs/adherents/canvas/default/tpl/adherentcard_edit.tpl.php
index 1d7f7892276683e6043e294b8fde8e9a472616d3..8f3af3fe8dfc85efb5b51bace2ff3cc29a6768cb 100644
--- a/htdocs/adherents/canvas/default/tpl/adherentcard_edit.tpl.php
+++ b/htdocs/adherents/canvas/default/tpl/adherentcard_edit.tpl.php
@@ -117,7 +117,7 @@ echo $this->control->tpl['ajax_selectcountry'];
 </tr>
 
 <tr>
-	<td valign="top"><?php echo $langs->trans("Note"); ?></td>
+	<td class="tdtop"><?php echo $langs->trans("Note"); ?></td>
 	<td colspan="3" valign="top"><textarea name="note" cols="70" rows="<?php echo ROWS_3; ?>"><?php echo $this->control->tpl['note']; ?></textarea></td>
 </tr>
 
diff --git a/htdocs/adherents/canvas/default/tpl/adherentcard_view.tpl.php b/htdocs/adherents/canvas/default/tpl/adherentcard_view.tpl.php
index acd1a0d701b4ed7429b6e96c567bc3672ad86569..e426429ae0571e483cb64522eab21347c6063c18 100644
--- a/htdocs/adherents/canvas/default/tpl/adherentcard_view.tpl.php
+++ b/htdocs/adherents/canvas/default/tpl/adherentcard_view.tpl.php
@@ -102,7 +102,7 @@ dol_htmloutput_errors($this->control->tpl['error'],$this->control->tpl['errors']
 </tr>
 
 <tr>
-	<td valign="top"><?php echo $langs->trans("Note"); ?></td>
+	<td class="tdtop"><?php echo $langs->trans("Note"); ?></td>
 	<td colspan="3"><?php echo $this->control->tpl['note']; ?></td>
 </tr>
 
diff --git a/htdocs/adherents/card.php b/htdocs/adherents/card.php
index ddcc6e50d5e292eb4883de65ab677437d66f009e..48461c64b02301bb9784bba3ca6381bea57a1577 100644
--- a/htdocs/adherents/card.php
+++ b/htdocs/adherents/card.php
@@ -873,7 +873,7 @@ else
 		}
 
 		// Address
-		print '<tr><td valign="top">'.$langs->trans("Address").'</td><td>';
+		print '<tr><td class="tdtop">'.$langs->trans("Address").'</td><td>';
 		print '<textarea name="address" wrap="soft" class="quatrevingtpercent" rows="2">'.(GETPOST('address','alpha')?GETPOST('address','alpha'):$object->address).'</textarea>';
 		print '</td></tr>';
 
diff --git a/htdocs/adherents/subscription.php b/htdocs/adherents/subscription.php
index d15bdd30fd9ded33c6c911e97213e366735fe2e3..0c9c8467f1f368a87f058cf63c3504e50cde46ca 100644
--- a/htdocs/adherents/subscription.php
+++ b/htdocs/adherents/subscription.php
@@ -1039,7 +1039,7 @@ if ($rowid > 0)
                 //print '<tr><td colspan="2"><b>'.$langs->trans("Payment").'</b></td></tr>';
 
                 // No more action
-                print '<tr><td valign="top" class="fieldrequired">'.$langs->trans('MoreActions');
+                print '<tr><td class="tdtop fieldrequired">'.$langs->trans('MoreActions');
                 print '</td>';
                 print '<td>';
                 print '<input type="radio" class="moreaction" id="none" name="paymentsave" value="none"'.(empty($bankdirect) && empty($invoiceonly) && empty($bankviainvoice)?' checked':'').'> '.$langs->trans("None").'<br>';
diff --git a/htdocs/adherents/type.php b/htdocs/adherents/type.php
index 5a76ccb59ce7dce290c0d5084306b954f1bcefd5..ff7e243c1ab0fd776e444a0d97ee4082549f0092 100644
--- a/htdocs/adherents/type.php
+++ b/htdocs/adherents/type.php
@@ -251,10 +251,10 @@ if ($action == 'create')
 	print $form->selectyesno("vote",0,1);
 	print '</td></tr>';
 
-	print '<tr><td valign="top">'.$langs->trans("Description").'</td><td>';
+	print '<tr><td class="tdtop">'.$langs->trans("Description").'</td><td>';
 	print '<textarea name="comment" wrap="soft" class="centpercent" rows="3"></textarea></td></tr>';
 
-	print '<tr><td valign="top">'.$langs->trans("WelcomeEMail").'</td><td>';
+	print '<tr><td class="tdtop">'.$langs->trans("WelcomeEMail").'</td><td>';
 	require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
 	$doleditor=new DolEditor('mail_valid',$object->mail_valid,'',280,'dolibarr_notes','',false,true,$conf->fckeditor->enabled,15,'90%');
 	$doleditor->Create();
@@ -314,10 +314,10 @@ if ($rowid > 0)
 		print yn($object->vote);
 		print '</tr>';
 
-		print '<tr><td valign="top">'.$langs->trans("Description").'</td><td>';
+		print '<tr><td class="tdtop">'.$langs->trans("Description").'</td><td>';
 		print nl2br($object->note)."</td></tr>";
 
-		print '<tr><td valign="top">'.$langs->trans("WelcomeEMail").'</td><td>';
+		print '<tr><td class="tdtop">'.$langs->trans("WelcomeEMail").'</td><td>';
 		print nl2br($object->mail_valid)."</td></tr>";
 
 		// Other attributes
@@ -647,10 +647,10 @@ if ($rowid > 0)
 		print $form->selectyesno("vote",$object->vote,1);
 		print '</td></tr>';
 
-		print '<tr><td valign="top">'.$langs->trans("Description").'</td><td>';
+		print '<tr><td class="tdtop">'.$langs->trans("Description").'</td><td>';
 		print '<textarea name="comment" wrap="soft" class="centpercent" rows="3">'.$object->note.'</textarea></td></tr>';
 
-		print '<tr><td valign="top">'.$langs->trans("WelcomeEMail").'</td><td>';
+		print '<tr><td class="tdtop">'.$langs->trans("WelcomeEMail").'</td><td>';
 		require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
 		$doleditor=new DolEditor('mail_valid',$object->mail_valid,'',280,'dolibarr_notes','',false,true,$conf->fckeditor->enabled,15,'90%');
 		$doleditor->Create();
diff --git a/htdocs/admin/company.php b/htdocs/admin/company.php
index 3d7202d5c70155de688443b0a1fdb1ad5d851604..0f8efb23da0dd421e2e8cdfbedc81a9a1ae6f2d6 100644
--- a/htdocs/admin/company.php
+++ b/htdocs/admin/company.php
@@ -786,7 +786,7 @@ else
 	print '</td></tr>';
 
 	$var=!$var;
-	print '<tr '.$bc[$var].'><td valign="top">'.$langs->trans("Note").'</td><td>' . (! empty($conf->global->MAIN_INFO_SOCIETE_NOTE) ? nl2br($conf->global->MAIN_INFO_SOCIETE_NOTE) : '') . '</td></tr>';
+	print '<tr '.$bc[$var].'><td class="tdtop">'.$langs->trans("Note").'</td><td>' . (! empty($conf->global->MAIN_INFO_SOCIETE_NOTE) ? nl2br($conf->global->MAIN_INFO_SOCIETE_NOTE) : '') . '</td></tr>';
 
 	print '</table>';
 
@@ -952,7 +952,7 @@ else
 	print '</tr>';
 	
 	$var=!$var;
-	print '<tr '.$bc[$var].'><td valign="top">'.$langs->trans("CompanyObject").'</td><td>' . (! empty($conf->global->MAIN_INFO_SOCIETE_OBJECT) ? nl2br($conf->global->MAIN_INFO_SOCIETE_OBJECT) : '') . '</td></tr>';
+	print '<tr '.$bc[$var].'><td class="tdtop">'.$langs->trans("CompanyObject").'</td><td>' . (! empty($conf->global->MAIN_INFO_SOCIETE_OBJECT) ? nl2br($conf->global->MAIN_INFO_SOCIETE_OBJECT) : '') . '</td></tr>';
 
 	print '</table>';
 	print '</form>';
diff --git a/htdocs/admin/modules.php b/htdocs/admin/modules.php
index cc8cc9b35978340f510de544366748ec353db053..ad33b4ce6196c95be91fe692a5457b25dbe314c7 100644
--- a/htdocs/admin/modules.php
+++ b/htdocs/admin/modules.php
@@ -485,11 +485,11 @@ if ($mode != 'marketplace')
         print '</td>';
 
         // Name
-        print '<td valign="top">'.$objMod->getName();
+        print '<td class="tdtop">'.$objMod->getName();
         print "</td>\n";
 
         // Desc
-        print '<td valign="top">';
+        print '<td class="tdtop">';
         print nl2br($objMod->getDesc());
         print "</td>\n";
 
diff --git a/htdocs/admin/tools/dolibarr_export.php b/htdocs/admin/tools/dolibarr_export.php
index ee27833b5b40b4c481ca11a005319aec71b6d8b9..8f1e0110ec1f7cbd1595418417e3b4cad243ab99 100644
--- a/htdocs/admin/tools/dolibarr_export.php
+++ b/htdocs/admin/tools/dolibarr_export.php
@@ -145,7 +145,7 @@ print '<tr '.$bc[false].'><td style="padding-left: 8px">';
 ?>
 <table class="centpercent">
 	<tr>
-		<td valign="top">
+		<td class="tdtop">
 
 		<div id="div_container_exportoptions">
 		<fieldset id="exportoptions"><legend><?php echo $langs->trans("ExportMethod"); ?></legend>
@@ -179,7 +179,7 @@ print '<tr '.$bc[false].'><td style="padding-left: 8px">';
 		</div>
 
 		</td>
-		<td valign="top">
+		<td class="tdtop">
 
 
 		<div id="div_container_sub_exportoptions">
diff --git a/htdocs/admin/tools/dolibarr_import.php b/htdocs/admin/tools/dolibarr_import.php
index 24cef75d53c4159be29c96060170e3e26b913a52..9f8af14f2b93fefc0eef1d2cdd9b81e5c8f89eb3 100644
--- a/htdocs/admin/tools/dolibarr_import.php
+++ b/htdocs/admin/tools/dolibarr_import.php
@@ -86,7 +86,7 @@ print $langs->trans("RestoreDesc3",$dolibarr_main_db_name).'<br><br>';
 
 <?php print $langs->trans("DatabaseName").' : <b>'.$dolibarr_main_db_name.'</b>'; ?><br><br>
 
-<table><tr><td valign="top">
+<table><tr><td class="tdtop">
 
 <?php if ($conf->use_javascript_ajax) { ?>
 <div id="div_container_exportoptions">
@@ -120,7 +120,7 @@ print $langs->trans("RestoreDesc3",$dolibarr_main_db_name).'<br><br>';
 </div>
 <?php } ?>
 
-</td><td valign="top">
+</td><td class="tdtop">
 
 
 <div id="div_container_sub_exportoptions">
diff --git a/htdocs/admin/triggers.php b/htdocs/admin/triggers.php
index d0d3c117be6e0dbfc2c9bc6a15338e42cf4e9c30..c1224bffe894a5e927650448a8efcc7a6a36e886 100644
--- a/htdocs/admin/triggers.php
+++ b/htdocs/admin/triggers.php
@@ -67,9 +67,9 @@ foreach ($triggers as $trigger)
 	$var=!$var;
 	print '<tr '.$bc[$var].'>';
 	print '<td valign="top" width="14" align="center">'.$trigger['picto'].'</td>';
-	print '<td valign="top">'.$trigger['file'].'</td>';
+	print '<td class="tdtop">'.$trigger['file'].'</td>';
 	print '<td valign="top" align="center">'.$trigger['status'].'</td>';
-	print '<td valign="top">';
+	print '<td class="tdtop">';
 	$text=$trigger['info'];
 	$text.="<br>\n<strong>".$langs->trans("File")."</strong>:<br>\n".$trigger['relpath'];
 	//$text.="\n".$langs->trans("ExternalModule",$trigger['isocreorexternal']);
diff --git a/htdocs/bookmarks/card.php b/htdocs/bookmarks/card.php
index bef65d409a3d7e2250b572151921e5e241c62785..b89dbf291b78fb35c9242eee599b21652a248701 100644
--- a/htdocs/bookmarks/card.php
+++ b/htdocs/bookmarks/card.php
@@ -44,7 +44,7 @@ $userid=GETPOST("userid","int");
 $position=GETPOST("position","int");
 $backtopage=GETPOST('backtopage','alpha');
 
-$bookmark=new Bookmark($db);
+$object=new Bookmark($db);
 
 
 /*
@@ -69,14 +69,14 @@ if ($action == 'add' || $action == 'addproduct' || $action == 'update')
 		exit;
 	}
 
-	if ($action == 'update') $bookmark->fetch(GETPOST("id",'int'));
+	if ($action == 'update') $object->fetch(GETPOST("id",'int'));
 	// Check if null because user not admin can't set an user and send empty value here.
 	if(!empty($userid))
-		$bookmark->fk_user=$userid;
-	$bookmark->title=$title;
-	$bookmark->url=$url;
-	$bookmark->target=$target;
-	$bookmark->position=$position;
+		$object->fk_user=$userid;
+	$object->title=$title;
+	$object->url=$url;
+	$object->target=$target;
+	$object->position=$position;
 
 	if (! $title) {
 		$error++;
@@ -90,10 +90,10 @@ if ($action == 'add' || $action == 'addproduct' || $action == 'update')
 
 	if (! $error)
 	{
-		$bookmark->favicon='none';
+		$object->favicon='none';
 
-		if ($action == 'update') $res=$bookmark->update();
-		else $res=$bookmark->create();
+		if ($action == 'update') $res=$object->update();
+		else $res=$object->create();
 
 		if ($res > 0)
 		{
@@ -103,14 +103,14 @@ if ($action == 'add' || $action == 'addproduct' || $action == 'update')
 		}
 		else
 		{
-			if ($bookmark->errno == 'DB_ERROR_RECORD_ALREADY_EXISTS')
+			if ($object->errno == 'DB_ERROR_RECORD_ALREADY_EXISTS')
 			{
 				$langs->load("errors");
 				setEventMessages($langs->transnoentities("WarningBookmarkAlreadyExists"), null, 'warnings');
 			}
 			else
 			{
-				setEventMessages($bookmark->error, $bookmark->errors, 'errors');
+				setEventMessages($object->error, $object->errors, 'errors');
 			}
 			$action = $invertedaction;
 		}
@@ -133,7 +133,7 @@ $form=new Form($db);
 $head = array();
 $h=1;
 
-$head[$h][0] = $_SERVER["PHP_SELF"].($bookmark->id?'id='.$bookmark->id:'');
+$head[$h][0] = $_SERVER["PHP_SELF"].($object->id?'id='.$object->id:'');
 $head[$h][1] = $langs->trans("Card");
 $head[$h][2] = 'card';
 $h++;
@@ -157,7 +157,7 @@ if ($action == 'create')
 
 	print '<table class="border" width="100%">';
 
-	print '<tr><td width="25%" class="fieldrequired">'.$langs->trans("BookmarkTitle").'</td><td><input class="flat" name="title" size="30" value="'.$title.'"></td><td class="hideonsmartphone">'.$langs->trans("SetHereATitleForLink").'</td></tr>';
+	print '<tr><td class="titlefieldcreate fieldrequired">'.$langs->trans("BookmarkTitle").'</td><td><input class="flat" name="title" size="30" value="'.$title.'"></td><td class="hideonsmartphone">'.$langs->trans("SetHereATitleForLink").'</td></tr>';
 
 	print '<tr><td class="fieldrequired">'.$langs->trans("UrlOrLink").'</td><td><input class="flat" name="url" size="50" value="'.$url.'"></td><td class="hideonsmartphone">'.$langs->trans("UseAnExternalHttpLinkOrRelativeDolibarrLink").'</td></tr>';
 
@@ -172,7 +172,7 @@ if ($action == 'create')
 
 	// Position
 	print '<tr><td>'.$langs->trans("Position").'</td><td>';
-	print '<input class="flat" name="position" size="5" value="'.(isset($_POST["position"])?$_POST["position"]:$bookmark->position).'">';
+	print '<input class="flat" name="position" size="5" value="'.(isset($_POST["position"])?$_POST["position"]:$object->position).'">';
 	print '</td><td class="hideonsmartphone">&nbsp;</td></tr>';
 
 	print '</table>';
@@ -193,8 +193,9 @@ if ($id > 0 && ! preg_match('/^add/i',$action))
 	/*
 	 * Fact bookmark mode or visually edition
 	 */
-	$bookmark->fetch($id);
-
+	$object->fetch($id);
+	
+	$hselected = 'card';
 	$head = array(
 		array(
 			'',
@@ -208,18 +209,22 @@ if ($id > 0 && ! preg_match('/^add/i',$action))
 		print '<form name="edit" method="POST" action="'.$_SERVER["PHP_SELF"].'" enctype="multipart/form-data">';
 		print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
 		print '<input type="hidden" name="action" value="update">';
-		print '<input type="hidden" name="id" value="'.$bookmark->id.'">';
-		print '<input type="hidden" name="urlsource" value="'.DOL_URL_ROOT.'/bookmarks/card.php?id='.$bookmark->id.'">';
+		print '<input type="hidden" name="id" value="'.$object->id.'">';
+		print '<input type="hidden" name="urlsource" value="'.DOL_URL_ROOT.'/bookmarks/card.php?id='.$object->id.'">';
 		print '<input type="hidden" name="backtopage" value="'.$backtopage.'">';
 	}
 
+
 	dol_fiche_head($head, $hselected, $langs->trans("Bookmark"),0,'bookmark');
+	
+	$linkback = '<a href="'.DOL_URL_ROOT.'/bookmarks/list.php">'.$langs->trans("BackToList").'</a>';
+	
+	dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref', '' , '', 0, '', '', 0);
 
+    print '<div class="underbanner clearboth"></div>';
 	print '<table class="border" width="100%">';
 
-	print '<tr><td class="titlefield">'.$langs->trans("Ref").'</td><td>'.$bookmark->ref.'</td></tr>';
-
-	print '<tr><td>';
+	print '<tr><td class="titlefield">';
 	if ($action == 'edit') {
 		print '<span class="fieldrequired">';
 	}
@@ -231,8 +236,8 @@ if ($id > 0 && ! preg_match('/^add/i',$action))
 	}
 
 	print '</td><td>';
-	if ($action == 'edit') print '<input class="flat minwidth200" name="title" value="'.(isset($_POST["title"])?GETPOST("title",'',2):$bookmark->title).'">';
-	else print $bookmark->title;
+	if ($action == 'edit') print '<input class="flat minwidth200" name="title" value="'.(isset($_POST["title"])?GETPOST("title",'',2):$object->title).'">';
+	else print $object->title;
 	print '</td></tr>';
 
 	print '<tr><td>';
@@ -244,34 +249,34 @@ if ($id > 0 && ! preg_match('/^add/i',$action))
 		print '</span>';
 	}
 	print '</td><td>';
-	if ($action == 'edit') print '<input class="flat" name="url" size="80" value="'.(isset($_POST["url"])?$_POST["url"]:$bookmark->url).'">';
-	else print '<a href="'.(preg_match('/^http/i',$bookmark->url)?$bookmark->url:DOL_URL_ROOT.$bookmark->url).'"'.($bookmark->target?' target="_blank"':'').'>'.$bookmark->url.'</a>';
+	if ($action == 'edit') print '<input class="flat" name="url" size="80" value="'.(isset($_POST["url"])?$_POST["url"]:$object->url).'">';
+	else print '<a href="'.(preg_match('/^http/i',$object->url)?$object->url:DOL_URL_ROOT.$object->url).'"'.($object->target?' target="_blank"':'').'>'.$object->url.'</a>';
 	print '</td></tr>';
 
 	print '<tr><td>'.$langs->trans("BehaviourOnClick").'</td><td>';
 	if ($action == 'edit')
 	{
 		$liste=array(1=>$langs->trans("OpenANewWindow"),0=>$langs->trans("ReplaceWindow"));
-		print $form->selectarray('target',$liste,isset($_POST["target"])?$_POST["target"]:$bookmark->target);
+		print $form->selectarray('target',$liste,isset($_POST["target"])?$_POST["target"]:$object->target);
 	}
 	else
 	{
-		if ($bookmark->target == 0) print $langs->trans("ReplaceWindow");
-		if ($bookmark->target == 1) print $langs->trans("OpenANewWindow");
+		if ($object->target == 0) print $langs->trans("ReplaceWindow");
+		if ($object->target == 1) print $langs->trans("OpenANewWindow");
 	}
 	print '</td></tr>';
 
 	print '<tr><td>'.$langs->trans("Owner").'</td><td>';
 	if ($action == 'edit' && $user->admin)
 	{
-		print $form->select_dolusers(isset($_POST['userid'])?$_POST['userid']:($bookmark->fk_user?$bookmark->fk_user:''), 'userid', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
+		print $form->select_dolusers(isset($_POST['userid'])?$_POST['userid']:($object->fk_user?$object->fk_user:''), 'userid', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
 	}
 	else
 	{
-		if ($bookmark->fk_user)
+		if ($object->fk_user)
 		{
 			$fuser=new User($db);
-			$fuser->fetch($bookmark->fk_user);
+			$fuser->fetch($object->fk_user);
 			print $fuser->getNomUrl(1);
 		}
 		else
@@ -283,12 +288,12 @@ if ($id > 0 && ! preg_match('/^add/i',$action))
 
 	// Position
 	print '<tr><td>'.$langs->trans("Position").'</td><td>';
-	if ($action == 'edit') print '<input class="flat" name="position" size="5" value="'.(isset($_POST["position"])?$_POST["position"]:$bookmark->position).'">';
-	else print $bookmark->position;
+	if ($action == 'edit') print '<input class="flat" name="position" size="5" value="'.(isset($_POST["position"])?$_POST["position"]:$object->position).'">';
+	else print $object->position;
 	print '</td></tr>';
 
 	// Date creation
-	print '<tr><td>'.$langs->trans("DateCreation").'</td><td>'.dol_print_date($bookmark->datec,'dayhour').'</td></tr>';
+	print '<tr><td>'.$langs->trans("DateCreation").'</td><td>'.dol_print_date($object->datec,'dayhour').'</td></tr>';
 
 	print '</table>';
 
@@ -308,13 +313,13 @@ if ($id > 0 && ! preg_match('/^add/i',$action))
 	// Edit
 	if ($user->rights->bookmark->creer && $action != 'edit')
 	{
-		print "  <a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?id=".$bookmark->id."&amp;action=edit\">".$langs->trans("Edit")."</a>\n";
+		print "  <a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?id=".$object->id."&amp;action=edit\">".$langs->trans("Edit")."</a>\n";
 	}
 
 	// Remove
 	if ($user->rights->bookmark->supprimer && $action != 'edit')
 	{
-		print "  <a class=\"butActionDelete\" href=\"list.php?bid=".$bookmark->id."&amp;action=delete\">".$langs->trans("Delete")."</a>\n";
+		print "  <a class=\"butActionDelete\" href=\"list.php?bid=".$object->id."&amp;action=delete\">".$langs->trans("Delete")."</a>\n";
 	}
 
 	print '</div>';
diff --git a/htdocs/bookmarks/class/bookmark.class.php b/htdocs/bookmarks/class/bookmark.class.php
index 06490f21cda84a152aacb726a7e119b350f8fde5..0e0d6df5f350892a462cf92fb232b634cef010b5 100644
--- a/htdocs/bookmarks/class/bookmark.class.php
+++ b/htdocs/bookmarks/class/bookmark.class.php
@@ -26,8 +26,13 @@
 /**
  *		Class to manage bookmarks
  */
-class Bookmark
+class Bookmark extends CommonObject
 {
+    public $element='bookmark';
+    public $table_element='bookmark';
+    protected $ismultientitymanaged = 1;	// 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
+    public $picto = 'bookmark';
+    
     var $db;
 
     var $id;
@@ -228,4 +233,15 @@ class Bookmark
 		return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables);
 	}
 
+	/**
+	 *	Return label of contact status
+	 *
+	 *	@param      int			$mode       0=libelle long, 1=libelle court, 2=Picto + Libelle court, 3=Picto, 4=Picto + Libelle long, 5=Libelle court + Picto
+	 * 	@return 	string					Label of contact status
+	 */
+	function getLibStatut($mode)
+	{
+	    return '';
+	}
+	
 }
diff --git a/htdocs/categories/card.php b/htdocs/categories/card.php
index 87b869fd738a21f9873402856fc962141a9c8f64..ed497cbbb7faecf34238cf9848cad15e85ba913d 100644
--- a/htdocs/categories/card.php
+++ b/htdocs/categories/card.php
@@ -250,7 +250,7 @@ if ($user->rights->categorie->creer)
 		print'</td></tr>';
 
 		// Description
-		print '<tr><td valign="top">'.$langs->trans("Description").'</td><td>';
+		print '<tr><td class="tdtop">'.$langs->trans("Description").'</td><td>';
 		require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
 		$doleditor=new DolEditor('description',$description,'',200,'dolibarr_notes','',false,true,$conf->global->FCKEDITOR_ENABLE_PRODUCTDESC,ROWS_6,'90%');
 		$doleditor->Create();
diff --git a/htdocs/categories/class/categorie.class.php b/htdocs/categories/class/categorie.class.php
index da0f1c73d121d08c4c1879e363e08aefd40df5a9..3c4568ae70e05d85e6c818eb54462ac527772716 100644
--- a/htdocs/categories/class/categorie.class.php
+++ b/htdocs/categories/class/categorie.class.php
@@ -49,8 +49,10 @@ class Categorie extends CommonObject
 	const TYPE_MEMBER = 3;     // TODO Replace this value with 'member'
 	const TYPE_CONTACT = 4;    // TODO Replace this value with 'contact'
 	const TYPE_USER = 4;       // categorie contact and user are same !   TODO Replace this value with 'user'
-    	const TYPE_ACCOUNT = 5;    // for bank account TODO Replace this value with 'account'
-    	const TYPE_PROJECT = 6;
+    const TYPE_ACCOUNT = 5;    // for bank account TODO Replace this value with 'account'
+    const TYPE_PROJECT = 6;
+    public $picto = 'category';
+    
 
 	/**
 	 * @var array ID mapping from type string
@@ -205,6 +207,7 @@ class Categorie extends CommonObject
 				$res = $this->db->fetch_array($resql);
 
 				$this->id			= $res['rowid'];
+				//$this->ref			= $res['rowid'];
 				$this->fk_parent	= $res['fk_parent'];
 				$this->label		= $res['label'];
 				$this->description	= $res['description'];
@@ -1703,6 +1706,18 @@ class Categorie extends CommonObject
 	    }
 	}
 
+	/**
+	 *	Return label of contact status
+	 *
+	 *	@param      int			$mode       0=libelle long, 1=libelle court, 2=Picto + Libelle court, 3=Picto, 4=Picto + Libelle long, 5=Libelle court + Picto
+	 * 	@return 	string					Label of contact status
+	 */
+	function getLibStatut($mode)
+	{
+	    return '';
+	}
+	
+	
     /**
      *  Initialise an instance with random values.
      *  Used to build previews or test instances.
diff --git a/htdocs/categories/photos.php b/htdocs/categories/photos.php
index 6da030db8936890c6e10c6fdf83a237d2e5b3f14..ee03f9f47711169d17618044c01607b064090b1c 100644
--- a/htdocs/categories/photos.php
+++ b/htdocs/categories/photos.php
@@ -36,8 +36,6 @@ $langs->load("categories");
 $langs->load("bills");
 
 
-$mesg = '';
-
 $id=GETPOST('id','int');
 $ref=GETPOST('ref');
 $type=GETPOST('type');
@@ -105,33 +103,38 @@ if ($object->id)
     else                                        $title=$langs->trans("Category");
 
 	$head = categories_prepare_head($object,$type);
-	dol_fiche_head($head, 'photos', $title, 0, 'category');
 
+
+	dol_fiche_head($head, 'photos', $title, 0, 'category');
+	
+	$linkback = '<a href="'.DOL_URL_ROOT.'/categories/index.php?leftmenu=cat&type='.$type.'">'.$langs->trans("BackToList").'</a>';
+	
+	$object->ref = $object->label;
+	$morehtmlref='<br><div class="refidno"><a href="'.DOL_URL_ROOT.'/categories/index.php?leftmenu=cat&type='.$type.'">'.$langs->trans("Root").'</a> >> ';
+	$ways = $object->print_all_ways(" &gt;&gt; ", '', 1);
+	foreach ($ways as $way)
+	{
+	    $morehtmlref.=$way."<br>\n";
+	}
+	$morehtmlref.='</div>';
+	
+	dol_banner_tab($object, 'ref', $linkback, ($user->societe_id?0:1), 'ref', 'ref', $morehtmlref, '', 0, '', '', 1);
+	
 	/*
 	 * Confirmation de la suppression de photo
 	*/
 	if ($action == 'delete')
 	{
-		print $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id.'&type='.$type.'&file='.$_GET["file"], $langs->trans('DeletePicture'), $langs->trans('ConfirmDeletePicture'), 'confirm_delete', '', 0, 1);
+	    print $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id.'&type='.$type.'&file='.$_GET["file"], $langs->trans('DeletePicture'), $langs->trans('ConfirmDeletePicture'), 'confirm_delete', '', 0, 1);
 	}
 
-	print($mesg);
-
+	print '<br>';
+	
+	print '<div class="underbanner clearboth"></div>';
 	print '<table class="border" width="100%">';
 
-	// Path of category
-	print '<tr><td class="titlefield notopnoleft">';
-	$ways = $object->print_all_ways(" &gt;&gt; ", '', 1);
-	print $langs->trans("Ref").'</td><td>';
-	print '<a href="'.DOL_URL_ROOT.'/categories/index.php?leftmenu=cat&type='.$type.'">'.$langs->trans("Root").'</a> >> ';
-	foreach ($ways as $way)
-	{
-		print $way."<br>\n";
-	}
-	print '</td></tr>';
-
 	// Description
-	print '<tr><td class="notopnoleft">';
+	print '<tr><td class="titlefield notopnoleft">';
 	print $langs->trans("Description").'</td><td>';
 	print dol_htmlentitiesbr($object->description);
 	print '</td></tr>';
@@ -144,7 +147,7 @@ if ($object->id)
 
 	print "</table>\n";
 
-	print "</div>\n";
+	print dol_fiche_end();
 
 
 
diff --git a/htdocs/categories/traduction.php b/htdocs/categories/traduction.php
index 1967727b32f08577d16a3491656a49dffffc5b68..a239b35704501344532f8ce72c57b534f4483713 100644
--- a/htdocs/categories/traduction.php
+++ b/htdocs/categories/traduction.php
@@ -1,7 +1,7 @@
 <?php
 /* Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@capnetworks.com>
  * Copyright (C) 2007       Rodolphe Quiedeville    <rodolphe@quiedeville.org>
- * Copyright (C) 2010-2012  Destailleur Laurent     <eldy@users.sourceforge.net>
+ * Copyright (C) 2010-2016  Destailleur Laurent     <eldy@users.sourceforge.net>
  * Copyright (C) 2015       Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
  *
  * This program is free software; you can redistribute it and/or modify
@@ -156,25 +156,40 @@ elseif ($type == Categorie::TYPE_PROJECT)   $title=$langs->trans("ProjectsCatego
 else                                        $title=$langs->trans("Category");
 
 $head = categories_prepare_head($object,$type);
+
+// Calculate $cnt_trans
+$cnt_trans = 0;
+if (! empty($object->multilangs))
+{
+    foreach ($object->multilangs as $key => $value)
+    {
+        $cnt_trans++;
+    }
+}
+
 dol_fiche_head($head, 'translation', $title, 0, 'category');
 
-print '<table class="border" width="100%">';
+$linkback = '<a href="'.DOL_URL_ROOT.'/categories/index.php?leftmenu=cat&type='.$type.'">'.$langs->trans("BackToList").'</a>';
 
-// Reference
-print '<tr>';
-print '<td class="titlefield notopnoleft">';
+$object->ref = $object->label;
+$morehtmlref='<br><div class="refidno"><a href="'.DOL_URL_ROOT.'/categories/index.php?leftmenu=cat&type='.$type.'">'.$langs->trans("Root").'</a> >> ';
 $ways = $object->print_all_ways(" &gt;&gt; ", '', 1);
-print $langs->trans("Ref").'</td><td>';
-print '<a href="'.DOL_URL_ROOT.'/categories/index.php?leftmenu=cat&type='.$type.'">'.$langs->trans("Root").'</a> >> ';
 foreach ($ways as $way)
 {
-    print $way."<br>\n";
+    $morehtmlref.=$way."<br>\n";
 }
-print '</td>';
-print '</tr>';
+$morehtmlref.='</div>';
+
+dol_banner_tab($object, 'ref', $linkback, ($user->societe_id?0:1), 'ref', 'ref', $morehtmlref, '', 0, '', '', 1);
+
+print '<br>';
+
+print '<div class="underbanner clearboth"></div>';
+
+print '<table class="border" width="100%">';
 
 // Description
-print '<tr><td class="notopnoleft tdtop">';
+print '<tr><td class="titlefield notopnoleft">';
 print $langs->trans("Description").'</td><td>';
 print dol_htmlentitiesbr($object->description);
 print '</td></tr>';
@@ -187,6 +202,32 @@ print '</td></tr>';
 
 print '</table>';
 
+dol_fiche_end();
+
+
+
+
+/* ************************************************************************** */
+/*                                                                            */
+/* Barre d'action                                                             */
+/*                                                                            */
+/* ************************************************************************** */
+
+print "\n<div class=\"tabsAction\">\n";
+
+if ($action == '')
+{
+    if ($user->rights->produit->creer || $user->rights->service->creer)
+    {
+        print '<a class="butAction" href="'.$_SERVER['PHP_SELF'].'?action=add&id='.$object->id.'">'.$langs->trans("Add").'</a>';
+        if ($cnt_trans > 0) print '<a class="butAction" href="'.$_SERVER['PHP_SELF'].'?action=edit&id='.$object->id.'">'.$langs->trans("Update").'</a>';
+    }
+}
+
+print "\n</div>\n";
+
+
+
 if ($action == 'edit')
 {
 	//WYSIWYG Editor
@@ -201,9 +242,9 @@ if ($action == 'edit')
 	{
 		foreach ($object->multilangs as $key => $value)
 		{
-			print "<br><b><u>".$langs->trans('Language_'.$key)." :</u></b><br>";
+		    print "<br><b><u>".$langs->trans('Language_'.$key)." :</u></b><br>";
 			print '<table class="border" width="100%">';
-			print '<tr><td class="fieldtitlecreate fieldrequired">'.$langs->trans('Label').'</td><td><input name="libelle-'.$key.'" size="40" value="'.$object->multilangs[$key]["label"].'"></td></tr>';
+			print '<tr><td class="titlefield fieldrequired">'.$langs->trans('Label').'</td><td><input name="libelle-'.$key.'" size="40" value="'.$object->multilangs[$key]["label"].'"></td></tr>';
 			print '<tr><td class="tdtop">'.$langs->trans('Description').'</td><td>';
 			$doleditor = new DolEditor("desc-$key", $object->multilangs[$key]["description"], '', 160, 'dolibarr_notes', '', false, true, $conf->global->FCKEDITOR_ENABLE_PRODUCTDESC, ROWS_3,'90%');
 			$doleditor->Create();
@@ -213,7 +254,9 @@ if ($action == 'edit')
 			print '</table>';
 		}
 	}
-
+    
+	print '<br>';
+	
 	print '<div class="center">';
 	print '<input type="submit" class="button" value="'.$langs->trans("Save").'">';
 	print '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
@@ -223,46 +266,29 @@ if ($action == 'edit')
 	print '</form>';
 
 }
-else
+else if ($action != 'add')
 {
-	$cnt_trans = 0;
-	if (! empty($object->multilangs))
+    if ($cnt_trans) print '<div class="underbanner clearboth"></div>';
+    
+    if (! empty($object->multilangs))
 	{
 		foreach ($object->multilangs as $key => $value)
 		{
-			$cnt_trans++;
-			$s=picto_from_langcode($key);
-			print "<br>".($s?$s.' ':'')." <b>".$langs->trans('Language_'.$key).":</b><br>";
+		    $s=picto_from_langcode($key);
 			print '<table class="border" width="100%">';
-			print '<tr><td class="fieldtitlecreate>'.$langs->trans('Label').'</td><td>'.$object->multilangs[$key]["label"].'</td></tr>';
-			print '<tr><td class="tdtop">'.$langs->trans('Description').'</td><td>'.$object->multilangs[$key]["description"].'</td></tr>';
-			print '<tr><td>'.$langs->trans('Note').'</td><td>'.$object->multilangs[$key]["note"].'</td></tr>';
+			print '<tr class="liste_titre"><td colspan="2">'.($s?$s.' ':'')." <b>".$langs->trans('Language_'.$key).":</b> ".'<a href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&langtodelete='.$key.'">'.img_delete('', '').'</a></td></tr>';
+			print '<tr><td class="titlefield">'.$langs->trans('Label').'</td><td>'.$object->multilangs[$key]["label"].'</td></tr>';
+			print '<tr><td>'.$langs->trans('Description').'</td><td>'.$object->multilangs[$key]["description"].'</td></tr>';
+			if (! empty($conf->global->CATEGORY_USE_OTHER_FIELD_IN_TRANSLATION))
+			{
+                print '<tr><td>'.$langs->trans('Other').' ('.$langs->trans("NotUsed").')</td><td>'.$object->multilangs[$key]["other"].'</td></tr>';
+			}
 			print '</table>';
 		}
 	}
-	if (! $cnt_trans) print '<br>'. $langs->trans('NoTranslation');
-}
-
-print "</div>\n";
-
-
-/* ************************************************************************** */
-/*                                                                            */
-/* Barre d'action                                                             */
-/*                                                                            */
-/* ************************************************************************** */
-
-print "\n<div class=\"tabsAction\">\n";
-
-if ($action == '')
-if ($user->rights->produit->creer || $user->rights->service->creer)
-{
-	print '<a class="butAction" href="'.$_SERVER['PHP_SELF'].'?action=add&id='.$object->id.'">'.$langs->trans("Add").'</a>';
-	print '<a class="butAction" href="'.$_SERVER['PHP_SELF'].'?action=edit&id='.$object->id.'">'.$langs->trans("Update").'</a>';
+	if (! $cnt_trans && $action != 'add') print '<div class="opacitymedium">'. $langs->trans('NoTranslation').'</div>';
 }
 
-print "\n</div>\n";
-
 
 /*
  * Form to add a new translation
@@ -280,11 +306,11 @@ if ($action == 'add' && ($user->rights->produit->creer || $user->rights->service
 	print '<input type="hidden" name="id" value="'.$id.'">';
 
 	print '<table class="border" width="100%">';
-	print '<tr><td class="fieldtitlecreate fieldrequired">'.$langs->trans('Translation').'</td><td>';
+	print '<tr><td class="titlefield fieldrequired">'.$langs->trans('Translation').'</td><td>';
     print $formadmin->select_language('','forcelangprod',0,$object->multilangs);
 	print '</td></tr>';
 	print '<tr><td class="fieldrequired">'.$langs->trans('Label').'</td><td><input name="libelle" size="40"></td></tr>';
-	print '<tr><td class="tdtop">'.$langs->trans('Description').'</td><td>';
+	print '<tr><td>'.$langs->trans('Description').'</td><td>';
 	$doleditor = new DolEditor('desc', '', '', 160, 'dolibarr_notes', '', false, true, $conf->global->FCKEDITOR_ENABLE_PRODUCTDESC, ROWS_3,'90%');
 	$doleditor->Create();
 	print '</td></tr>';
diff --git a/htdocs/categories/viewcat.php b/htdocs/categories/viewcat.php
index ed836cbccbbb39015aa16ce20f02f721c63e7906..a1c33c568f3ae6a9ab0e4f76216167e7706d1314 100644
--- a/htdocs/categories/viewcat.php
+++ b/htdocs/categories/viewcat.php
@@ -68,6 +68,7 @@ $extralabels = $extrafields->fetch_name_optionals_label($object->table_element);
 // Initialize technical object to manage hooks. Note that conf->hooks_modules contains array array
 $hookmanager->initHooks(array('categorycard'));
 
+
 /*
  *	Actions
  */
@@ -190,8 +191,22 @@ else                                        $title=$langs->trans("Category");
 
 $head = categories_prepare_head($object,$type);
 
+
 dol_fiche_head($head, 'card', $title, 0, 'category');
 
+$linkback = '<a href="'.DOL_URL_ROOT.'/categories/index.php?leftmenu=cat&type='.$type.'">'.$langs->trans("BackToList").'</a>';
+
+$object->ref = $object->label;
+$morehtmlref='<br><div class="refidno"><a href="'.DOL_URL_ROOT.'/categories/index.php?leftmenu=cat&type='.$type.'">'.$langs->trans("Root").'</a> >> ';
+$ways = $object->print_all_ways(" &gt;&gt; ", '', 1);
+foreach ($ways as $way)
+{
+    $morehtmlref.=$way."<br>\n";
+}
+$morehtmlref.='</div>';
+
+dol_banner_tab($object, 'ref', $linkback, ($user->societe_id?0:1), 'ref', 'ref', $morehtmlref, '', 0, '', '', 1);
+
 
 /*
  * Confirmation suppression
@@ -202,21 +217,13 @@ if ($action == 'delete')
 	print $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;type='.$type, $langs->trans('DeleteCategory'), $langs->trans('ConfirmDeleteCategory'), 'confirm_delete', '', '', 1);
 }
 
-print '<table width="100%" class="border">';
+print '<br>';
 
-// Path of category
-print '<tr><td class="titlefield notopnoleft">';
-$ways = $object->print_all_ways(" &gt;&gt; ", '', 1);
-print $langs->trans("Ref").'</td><td>';
-print '<a href="'.DOL_URL_ROOT.'/categories/index.php?leftmenu=cat&type='.$type.'">'.$langs->trans("Root").'</a> >> ';
-foreach ($ways as $way)
-{
-	print $way."<br>\n";
-}
-print '</td></tr>';
+print '<div class="underbanner clearboth"></div>';
+print '<table width="100%" class="border">';
 
 // Description
-print '<tr><td class="notopnoleft">';
+print '<tr><td class="titlefield notopnoleft">';
 print $langs->trans("Description").'</td><td>';
 print dol_htmlentitiesbr($object->description);
 print '</td></tr>';
@@ -359,7 +366,7 @@ if ($object->type == Categorie::TYPE_PRODUCT)
 				print '<td class="nowrap" valign="top">';
 				print $prod->getNomUrl(1);
 				print "</td>\n";
-				print '<td valign="top">'.$prod->label."</td>\n";
+				print '<td class="tdtop">'.$prod->label."</td>\n";
 				// Link to delete from category
 				print '<td align="right">';
 				$typeid=$object->type;
@@ -520,8 +527,8 @@ if ($object->type == Categorie::TYPE_MEMBER)
 				$member->ref=$member->login;
 				print $member->getNomUrl(1,0);
 				print "</td>\n";
-				print '<td valign="top">'.$member->lastname."</td>\n";
-				print '<td valign="top">'.$member->firstname."</td>\n";
+				print '<td class="tdtop">'.$member->lastname."</td>\n";
+				print '<td class="tdtop">'.$member->firstname."</td>\n";
 				// Link to delete from category
 				print '<td align="right">';
 				$typeid=$object->type;
@@ -628,8 +635,8 @@ if ($object->type == Categorie::TYPE_ACCOUNT)
                 print '<td class="nowrap" valign="top">';
                 print $account->getNomUrl(1,0);
                 print "</td>\n";
-                print '<td valign="top">'.$account->bank."</td>\n";
-                print '<td valign="top">'.$account->number."</td>\n";
+                print '<td class="tdtop">'.$account->bank."</td>\n";
+                print '<td class="tdtop">'.$account->number."</td>\n";
                 // Link to delete from category
                 print '<td align="right">';
                 $typeid=$object->type;
@@ -683,8 +690,8 @@ if ($object->type == Categorie::TYPE_PROJECT)
 				print '<td class="nowrap" valign="top">';
 				print $project->getNomUrl(1,0);
 				print "</td>\n";
-				print '<td valign="top">'.$project->ref."</td>\n";
-				print '<td valign="top">'.$project->title."</td>\n";
+				print '<td class="tdtop">'.$project->ref."</td>\n";
+				print '<td class="tdtop">'.$project->title."</td>\n";
 				// Link to delete from category
 				print '<td align="right">';
 				$typeid=$object->type;
diff --git a/htdocs/comm/address.php b/htdocs/comm/address.php
index bdfb7af660056e2046fb43bdca02c1c325a9b0f5..72e2dbadff47c4f0d4dede3bf9a072e7b07af388 100644
--- a/htdocs/comm/address.php
+++ b/htdocs/comm/address.php
@@ -253,7 +253,7 @@ if ($action == 'create')
         print '<tr><td class="fieldrequired">'.$langs->trans('Label').'</td><td><input type="text" size="30" name="label" id="label" value="'.($object->label?$object->label:$langs->trans('RequiredField')).'"></td></tr>';
         print '<tr><td class="fieldrequired">'.$langs->trans('Name').'</td><td><input type="text" size="30" name="name" id="name" value="'.($object->name?$object->name:$langs->trans('RequiredField')).'"></td></tr>';
 
-        print '<tr><td valign="top">'.$langs->trans('Address').'</td><td colspan="3"><textarea name="address" class="quatrevingtpercent" rows="3" wrap="soft">';
+        print '<tr><td class="tdtop">'.$langs->trans('Address').'</td><td colspan="3"><textarea name="address" class="quatrevingtpercent" rows="3" wrap="soft">';
         print $object->address;
         print '</textarea></td></tr>';
 
@@ -353,7 +353,7 @@ elseif ($action == 'edit')
         print '<tr><td>'.$langs->trans('AddressLabel').'</td><td colspan="3"><input type="text" size="40" name="label" value="'.$object->label.'"></td></tr>';
         print '<tr><td>'.$langs->trans('Name').'</td><td colspan="3"><input type="text" size="40" name="name" value="'.$object->name.'"></td></tr>';
 
-        print '<tr><td valign="top">'.$langs->trans('Address').'</td><td colspan="3"><textarea name="address" class="quatrevingtpercent" rows="3" wrap="soft">';
+        print '<tr><td class="tdtop">'.$langs->trans('Address').'</td><td colspan="3"><textarea name="address" class="quatrevingtpercent" rows="3" wrap="soft">';
         print $object->address;
         print '</textarea></td></tr>';
 
diff --git a/htdocs/comm/multiprix.php b/htdocs/comm/multiprix.php
index 7510c0a5b966a69f1e1d3a757636be101a061f0c..80c6305fcecc1e912b10e5dce984d5e6fa2b59fe 100644
--- a/htdocs/comm/multiprix.php
+++ b/htdocs/comm/multiprix.php
@@ -91,7 +91,7 @@ if ($_socid > 0)
 	dol_fiche_head($head, $tabchoice, $langs->trans("ThirdParty"), 0, 'company');
 
 	print '<table width="100%" border="0">';
-	print '<tr><td valign="top">';
+	print '<tr><td class="tdtop">';
 	print '<table class="border" width="100%">';
 
 	print '<tr><td colspan="2" width="25%">';
diff --git a/htdocs/comm/propal/card.php b/htdocs/comm/propal/card.php
index 01ac00cd6d2942f8d0dcd5b25b611fd8e14a60e7..9b416fd1457270519ba68ebfd4426d23f0c47737 100644
--- a/htdocs/comm/propal/card.php
+++ b/htdocs/comm/propal/card.php
@@ -1601,7 +1601,7 @@ if ($action == 'create')
 		}
 		print '</td></tr>';
 
-		print '<tr><td valign="top"><input type="radio" name="createmode" value="empty" checked></td>';
+		print '<tr><td class="tdtop"><input type="radio" name="createmode" value="empty" checked></td>';
 		print '<td valign="top" colspan="2">' . $langs->trans("CreateEmptyPropal") . '</td></tr>';
 	}
 
diff --git a/htdocs/commande/orderstoinvoice.php b/htdocs/commande/orderstoinvoice.php
index 74861d3ee67fb925bf00d92765c73495f08ce8ae..d7c5682e0a95f784aead5afaf439bfb4cda7c662 100644
--- a/htdocs/commande/orderstoinvoice.php
+++ b/htdocs/commande/orderstoinvoice.php
@@ -421,7 +421,7 @@ if ($action == 'create' && !$error)
 	print '</tr>'."\n";
 
 	// Type
-	print '<tr><td valign="top" class="fieldrequired">'.$langs->trans('Type').'</td><td colspan="2">';
+	print '<tr><td class="tdtop fieldrequired">'.$langs->trans('Type').'</td><td colspan="2">';
 	print '<table class="nobordernopadding">'."\n";
 
 	// Standard invoice
diff --git a/htdocs/compta/deplacement/card.php b/htdocs/compta/deplacement/card.php
index 46eb7512d40b8bf6266f2ac076536f173ad91640..6bc4f628ba97aad637d214165525dfd62af99ba3 100644
--- a/htdocs/compta/deplacement/card.php
+++ b/htdocs/compta/deplacement/card.php
@@ -373,7 +373,7 @@ else if ($id)
             print '</td></tr>';
 
             // Public note
-            print '<tr><td valign="top">'.$langs->trans("NotePublic").'</td>';
+            print '<tr><td class="tdtop">'.$langs->trans("NotePublic").'</td>';
             print '<td valign="top" colspan="3">';
 
             $doleditor = new DolEditor('note_public', $object->note_public, '', 200, 'dolibarr_notes', 'In', false, true, true, ROWS_8, '90%');
@@ -384,7 +384,7 @@ else if ($id)
             // Private note
             if (empty($user->societe_id))
             {
-                print '<tr><td valign="top">'.$langs->trans("NotePrivate").'</td>';
+                print '<tr><td class="tdtop">'.$langs->trans("NotePrivate").'</td>';
                 print '<td valign="top" colspan="3">';
 
                 $doleditor = new DolEditor('note_private', $object->note_private, '', 200, 'dolibarr_notes', 'In', false, true, true, ROWS_8, '90%');
@@ -456,7 +456,7 @@ else if ($id)
             print '</td></tr>';
 
             // Km/Price
-            print '<tr><td valign="top">';
+            print '<tr><td class="tdtop">';
             print $form->editfieldkey("FeesKilometersOrAmout",'km',$object->km,$object,$conf->global->MAIN_EDIT_ALSO_INLINE && $user->rights->deplacement->creer,'numeric:6');
             print '</td><td>';
             print $form->editfieldval("FeesKilometersOrAmout",'km',$object->km,$object,$conf->global->MAIN_EDIT_ALSO_INLINE && $user->rights->deplacement->creer,'numeric:6');
diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php
index 16fdc406db9411106b8e0c75405dc928b3a08a3d..59298616f05902a95fece62dc1be3a6ca996df7c 100644
--- a/htdocs/compta/facture.php
+++ b/htdocs/compta/facture.php
@@ -2208,7 +2208,7 @@ if ($action == 'create')
 		$optionsav .= '</option>';
 	}
 
-	print '<tr><td valign="top" class="fieldrequired">' . $langs->trans('Type') . '</td><td colspan="2">';
+	print '<tr><td class="tdtop fieldrequired">' . $langs->trans('Type') . '</td><td colspan="2">';
 
 	print '<div class="tagtable">' . "\n";
 
diff --git a/htdocs/compta/paiement.php b/htdocs/compta/paiement.php
index aec64683e3a62ea6cf833c20cf4783d13216fbf5..4c2ed3b1aaa7920bb51a5248f3b0adc5e29f1bf4 100644
--- a/htdocs/compta/paiement.php
+++ b/htdocs/compta/paiement.php
@@ -512,7 +512,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
 
 		// Comments
 		print '<tr><td>'.$langs->trans('Comments').'</td>';
-		print '<td valign="top">';
+		print '<td class="tdtop">';
 		print '<textarea name="comment" wrap="soft" class="quatrevingtpercent" rows="'.ROWS_3.'">'.GETPOST('comment').'</textarea></td></tr>';
         
         print '</table>';
diff --git a/htdocs/compta/paiement_charge.php b/htdocs/compta/paiement_charge.php
index 3822f9f91f52a0f237f409c73d3cb9bc1c1f3c41..342294dfc12f76c9f0f287acd92cc5126c16921b 100644
--- a/htdocs/compta/paiement_charge.php
+++ b/htdocs/compta/paiement_charge.php
@@ -203,7 +203,7 @@ if ($action == 'create')
 		$db->free();
 	}
 	print '<tr><td>'.$langs->trans("AlreadyPaid").'</td><td>'.price($sumpaid,0,$outputlangs,1,-1,-1,$conf->currency).'</td></tr>';
-	print '<tr><td valign="top">'.$langs->trans("RemainderToPay").'</td><td>'.price($total-$sumpaid,0,$outputlangs,1,-1,-1,$conf->currency).'</td></tr>';
+	print '<tr><td class="tdtop">'.$langs->trans("RemainderToPay").'</td><td>'.price($total-$sumpaid,0,$outputlangs,1,-1,-1,$conf->currency).'</td></tr>';
 
 	print '<tr class="liste_titre">';
 	print "<td colspan=\"2\">".$langs->trans("Payment").'</td>';
@@ -234,8 +234,8 @@ if ($action == 'create')
 	print '<td><input name="num_paiement" type="text" value="'.GETPOST('num_paiement').'"></td></tr>'."\n";
 
 	print '<tr>';
-	print '<td valign="top">'.$langs->trans("Comments").'</td>';
-	print '<td valign="top"><textarea name="note" wrap="soft" cols="60" rows="'.ROWS_3.'"></textarea></td>';
+	print '<td class="tdtop">'.$langs->trans("Comments").'</td>';
+	print '<td class="tdtop"><textarea name="note" wrap="soft" cols="60" rows="'.ROWS_3.'"></textarea></td>';
 	print '</tr>';
 
 	print '</table>';
diff --git a/htdocs/contact/canvas/default/tpl/contactcard_create.tpl.php b/htdocs/contact/canvas/default/tpl/contactcard_create.tpl.php
index 3fce45b848fab8a0bf8f0e56fb230b3336a54b1c..fbd1d1909a84728d09533dbd6454fbb0360720ab 100644
--- a/htdocs/contact/canvas/default/tpl/contactcard_create.tpl.php
+++ b/htdocs/contact/canvas/default/tpl/contactcard_create.tpl.php
@@ -114,7 +114,7 @@ echo $this->control->tpl['ajax_selectcountry']; ?>
 </tr>
 
 <tr>
-	<td valign="top"><?php echo $langs->trans("Note"); ?></td>
+	<td class="tdtop"><?php echo $langs->trans("Note"); ?></td>
 	<td colspan="3" valign="top"><textarea name="note" cols="70" rows="<?php echo ROWS_3; ?>"><?php echo $this->control->tpl['note']; ?></textarea></td>
 </tr>
 
diff --git a/htdocs/contact/canvas/default/tpl/contactcard_edit.tpl.php b/htdocs/contact/canvas/default/tpl/contactcard_edit.tpl.php
index c275902d384b707b1ba7ad022e7962f957447f62..56e91894cddc99e034608c5af55e70408e6fd72b 100644
--- a/htdocs/contact/canvas/default/tpl/contactcard_edit.tpl.php
+++ b/htdocs/contact/canvas/default/tpl/contactcard_edit.tpl.php
@@ -129,7 +129,7 @@ echo $this->control->tpl['ajax_selectcountry'];
 </tr>
 
 <tr>
-	<td valign="top"><?php echo $langs->trans("Note"); ?></td>
+	<td class="tdtop"><?php echo $langs->trans("Note"); ?></td>
 	<td colspan="3" valign="top"><textarea name="note" cols="70" rows="<?php echo ROWS_3; ?>"><?php echo $this->control->tpl['note']; ?></textarea></td>
 </tr>
 
diff --git a/htdocs/contact/canvas/default/tpl/contactcard_view.tpl.php b/htdocs/contact/canvas/default/tpl/contactcard_view.tpl.php
index 0b4b8a07fcb2d257727f03240ce46858a5931720..5dc1c12808fd8c8313bd2142f0d22d92958dfa8b 100644
--- a/htdocs/contact/canvas/default/tpl/contactcard_view.tpl.php
+++ b/htdocs/contact/canvas/default/tpl/contactcard_view.tpl.php
@@ -114,7 +114,7 @@ dol_htmloutput_errors($this->control->tpl['error'],$this->control->tpl['errors']
 </tr>
 
 <tr>
-	<td valign="top"><?php echo $langs->trans("Note"); ?></td>
+	<td class="tdtop"><?php echo $langs->trans("Note"); ?></td>
 	<td colspan="3"><?php echo $this->control->tpl['note']; ?></td>
 </tr>
 
diff --git a/htdocs/contrat/card.php b/htdocs/contrat/card.php
index f263763f7ab1ebb977099406ec3c8b75dd3c93d1..a27dbfbc71a7dc20b9430a13e9a992fd921666eb 100644
--- a/htdocs/contrat/card.php
+++ b/htdocs/contrat/card.php
@@ -1161,14 +1161,14 @@ if ($action == 'create')
         print "</td></tr>";
     }
 
-    print '<tr><td>'.$langs->trans("NotePublic").'</td><td valign="top">';
+    print '<tr><td>'.$langs->trans("NotePublic").'</td><td class="tdtop">';
     $doleditor=new DolEditor('note_public', $note_public, '', '100', 'dolibarr_notes', 'In', 1, true, true, ROWS_3, '90%');
     print $doleditor->Create(1);
     print '</td></tr>';
 
     if (empty($user->societe_id))
     {
-        print '<tr><td>'.$langs->trans("NotePrivate").'</td><td valign="top">';
+        print '<tr><td>'.$langs->trans("NotePrivate").'</td><td class="tdtop">';
         $doleditor=new DolEditor('note_private', $note_private, '', '100', 'dolibarr_notes', 'In', 1, true, true, ROWS_3, '90%');
         print $doleditor->Create(1);
         print '</td></tr>';
diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php
index ab0999cfdb8996429368a1afe4f6e005bd961264..22a397fb4e73688658f0f8445b3ac11723d71a2a 100644
--- a/htdocs/core/class/html.form.class.php
+++ b/htdocs/core/class/html.form.class.php
@@ -3445,7 +3445,7 @@ class Form
                         foreach($input['values'] as $selkey => $selval)
                         {
                             $more.='<tr>';
-                            if ($i==0) $more.='<td valign="top">'.$input['label'].'</td>';
+                            if ($i==0) $more.='<td class="tdtop">'.$input['label'].'</td>';
                             else $more.='<td>&nbsp;</td>';
                             $more.='<td width="20"><input type="radio" class="flat" id="'.$input['name'].'" name="'.$input['name'].'" value="'.$selkey.'"';
                             if ($input['disabled']) $more.=' disabled';
diff --git a/htdocs/core/lib/admin.lib.php b/htdocs/core/lib/admin.lib.php
index d79e65f766f2df60abfd5c72ac7fce54b8d93b98..8b5bb4839a2da40c7b6d24ccadd03553e27d7e23 100644
--- a/htdocs/core/lib/admin.lib.php
+++ b/htdocs/core/lib/admin.lib.php
@@ -260,7 +260,7 @@ function run_sql($sqlfile,$silent=1,$entity='',$usesavepoint=1,$handler='',$oker
             $newsql=preg_replace('/__ENTITY__/i',(!empty($entity)?$entity:$conf->entity),$sql);
 
             // Ajout trace sur requete (eventuellement a commenter si beaucoup de requetes)
-            if (! $silent) print '<tr><td valign="top">'.$langs->trans("Request").' '.($i+1)." sql='".dol_htmlentities($newsql,ENT_NOQUOTES)."'</td></tr>\n";
+            if (! $silent) print '<tr><td class="tdtop">'.$langs->trans("Request").' '.($i+1)." sql='".dol_htmlentities($newsql,ENT_NOQUOTES)."'</td></tr>\n";
             dol_syslog('Admin.lib::run_sql Request '.($i+1), LOG_DEBUG);
 			$sqlmodified=0;
 
diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php
index eb69364596fbe854d8de6d408a379e5d9e527b01..acd74643a38a1229e5a2d9edc6728814f8893ef1 100644
--- a/htdocs/core/lib/functions.lib.php
+++ b/htdocs/core/lib/functions.lib.php
@@ -1090,7 +1090,7 @@ function dol_banner_tab($object, $paramid, $morehtml='', $shownav=1, $fieldid='r
 	if (! empty($object->name_alias)) $morehtmlref.='<div class="refidno">'.$object->name_alias.'</div>';      // For thirdparty
 	if ($object->element == 'product' && ! empty($object->label)) $morehtmlref.='<div class="refidno">'.$object->label.'</div>';
 
-	if ($object->element != 'product') 
+	if ($object->element != 'product' && $object->element != 'bookmark') 
 	{
     	$morehtmlref.='<div class="refidno">';
     	$morehtmlref.=$object->getBannerAddress('refaddress',$object);
diff --git a/htdocs/core/modules/dons/html_cerfafr.html b/htdocs/core/modules/dons/html_cerfafr.html
index 594031479772806dad0885ca36b85bdd7b54bba7..bd066d73a054caf675ab1eebc64cafccc695dbec 100644
--- a/htdocs/core/modules/dons/html_cerfafr.html
+++ b/htdocs/core/modules/dons/html_cerfafr.html
@@ -57,87 +57,87 @@
                                 <font size="+1"><b>Cochez la case concernée (1) :</b></font><br>
                                 <table width="100%" border="0" bgcolor="#ffffff" cellspacing="0" cellpadding="3">
                                     <tr>
-                                        <td valign="top"><INPUT type="checkbox"></td>
+                                        <td class="tdtop"><INPUT type="checkbox"></td>
                                         <td>Association ou fondation reconnue d'utilité publique par décret en date du ........./ ..... /........... publié au Journal
                                             officiel du ......./ ....../ .......... . ou association située dans le département de la Moselle, du Bas-Rhin ou
                                             du Haut-Rhin dont la mission a été reconnue d'utilité publique par arrêté préfectoral en date du …./.…/……..</td>
                                     </tr>
                                     <tr>
-                                        <td valign="top"><INPUT type="checkbox"></td>
+                                        <td class="tdtop"><INPUT type="checkbox"></td>
                                         <td>Fondation universitaire ou fondation partenariale mentionnées respectivement aux articles L. 719-12 et
                                             L. 719-13 du code de l'éducation</td>
                                     </tr>
                                     <tr>
-                                        <td valign="top"><INPUT type="checkbox"></td>
+                                        <td class="tdtop"><INPUT type="checkbox"></td>
                                         <td>Fondation d'entreprise</td>
                                     </tr>
                                     <tr>
-                                        <td valign="top"><INPUT type="checkbox" checked="checked"></td>
+                                        <td class="tdtop"><INPUT type="checkbox" checked="checked"></td>
                                         <td>Oeuvre ou organisme d'intérêt général</td>
                                     </tr>
                                     <tr>
-                                        <td valign="top"><INPUT type="checkbox"></td>
+                                        <td class="tdtop"><INPUT type="checkbox"></td>
                                         <td>Musée de France</td>
                                     </tr>
                                     <tr>
-                                        <td valign="top"><INPUT type="checkbox"></td>
+                                        <td class="tdtop"><INPUT type="checkbox"></td>
                                         <td>Établissement d'enseignement supérieur ou d’enseignement artistique public ou privé, d’intérêt général, à but
                                             non lucratif</td>
                                     </tr>
                                     <tr>
-                                        <td valign="top"><INPUT type="checkbox"></td>
+                                        <td class="tdtop"><INPUT type="checkbox"></td>
                                         <td>Organisme ayant pour objet exclusif de participer financièrement à la création d'entreprises</td>
                                     </tr>
                                     <tr>
-                                        <td valign="top"><INPUT type="checkbox"></td>
+                                        <td class="tdtop"><INPUT type="checkbox"></td>
                                         <td>Association cultuelle ou de bienfaisance et établissement public des cultes reconnus d'Alsace-Moselle</td>
                                     </tr>
                                     <tr>
-                                        <td valign="top"><INPUT type="checkbox"></td>
+                                        <td class="tdtop"><INPUT type="checkbox"></td>
                                         <td>Organisme ayant pour activité principale l'organisation de festivals</td>
                                     </tr>
                                     <tr>
-                                        <td valign="top"><INPUT type="checkbox"></td>
+                                        <td class="tdtop"><INPUT type="checkbox"></td>
                                         <td>Association fournissant gratuitement une aide alimentaire ou des soins médicaux à des personnes en difficulté ou
                                             favorisant leur logement</td>
                                     </tr>
                                     <tr>
-                                        <td valign="top"><INPUT type="checkbox"></td>
+                                        <td class="tdtop"><INPUT type="checkbox"></td>
                                         <td>Fondation du patrimoine ou fondation ou association qui affecte irrévocablement les dons à la Fondation du
                                             patrimoine, en vue de subventionner les travaux prévus par les conventions conclues entre la Fondation du
                                             patrimoine et les propriétaires des immeubles (article L. 143-2-1 du code du patrimoine)</td>
                                     </tr>
                                     <tr>
-                                        <td valign="top"><INPUT type="checkbox"></td>
+                                        <td class="tdtop"><INPUT type="checkbox"></td>
                                         <td>Établissement de recherche public ou privé, d’intérêt général, à but non lucratif</td>
                                     </tr>
                                     <tr>
-                                        <td valign="top"><INPUT type="checkbox"></td>
+                                        <td class="tdtop"><INPUT type="checkbox"></td>
                                         <td>Entreprise d’insertion ou entreprise de travail temporaire d’insertion (articles L. 5132-5 et L. 5132-6 du code du
                                             travail).</td>
                                     </tr>
                                     <tr>
-                                        <td valign="top"><INPUT type="checkbox"></td>
+                                        <td class="tdtop"><INPUT type="checkbox"></td>
                                         <td>Associations intermédiaires (article L. 5132-7 du code du travail)</td>
                                     </tr>
                                     <tr>
-                                        <td valign="top"><INPUT type="checkbox"></td>
+                                        <td class="tdtop"><INPUT type="checkbox"></td>
                                         <td>Ateliers et chantiers d’insertion (article L. 5132-15 du code du travail)</td>
                                     </tr>
                                     <tr>
-                                        <td valign="top"><INPUT type="checkbox"></td>
+                                        <td class="tdtop"><INPUT type="checkbox"></td>
                                         <td>Entreprises adaptées (article L. 5213-13 du code du travail)</td>
                                     </tr>
                                     <tr>
-                                        <td valign="top"><INPUT type="checkbox"></td>
+                                        <td class="tdtop"><INPUT type="checkbox"></td>
                                         <td>Agence nationale de la recherche (ANR)</td>
                                     </tr>
                                     <tr>
-                                        <td valign="top"><INPUT type="checkbox"></td>
+                                        <td class="tdtop"><INPUT type="checkbox"></td>
                                         <td>Société ou organisme agréé de recherche scientifique ou technique (2)</td>
                                     </tr>
                                     <tr>
-                                        <td valign="top"><INPUT type="checkbox"></td>
+                                        <td class="tdtop"><INPUT type="checkbox"></td>
                                         <td>Autre organisme : ………………………………………………………………………………………………</td>
                                     </tr>
                                 </table>
@@ -250,7 +250,7 @@
 		<font size="-1">
         <table>
             <tr>
-                <td valign="top">(3)</td>
+                <td class="tdtop">(3)</td>
                 <td>
                     L’organisme bénéficiaire peut cocher une ou plusieurs cases.<br>
                     L’organisme bénéficiaire peut, en application de l’article L. 80 C du livre des procédures fiscales, demander à l’administration s’il relève
@@ -261,7 +261,7 @@
                 </td>
             </tr>
             <tr>
-                <td valign="top">(4)</td>
+                <td class="tdtop">(4)</td>
                 <td>
                     Notamment : abandon de revenus ou de produits ; frais engagés par les bénévoles, dont ils renoncent expressément au remboursement<br>
                 </td>
diff --git a/htdocs/core/tpl/passwordforgotten.tpl.php b/htdocs/core/tpl/passwordforgotten.tpl.php
index d5863281ff8e4c41d713563ea01a5c2ab3d77f43..b641627b7894b998a9bf5786171aff3375e1a6d6 100644
--- a/htdocs/core/tpl/passwordforgotten.tpl.php
+++ b/htdocs/core/tpl/passwordforgotten.tpl.php
@@ -102,7 +102,7 @@ if (! empty($hookmanager->resArray['options'])) {
 	?>
 	<!-- Captcha -->
 	<tr>
-	<td valign="top" class="nowrap none center">
+	<td class="tdtop nowrap none center">
 
 	<table class="login_table_securitycode centpercent"><tr>
 	<td>
diff --git a/htdocs/don/payment/payment.php b/htdocs/don/payment/payment.php
index a0062632770b3991200f49587e3e540a78f9369a..7eae70c962925da8a2f3ddf3e89816a9382ac51e 100644
--- a/htdocs/don/payment/payment.php
+++ b/htdocs/don/payment/payment.php
@@ -196,7 +196,7 @@ if (GETPOST("action") == 'create')
 		$db->free();
 	}
 	print '<tr><td>'.$langs->trans("AlreadyPaid").'</td><td colspan="2">'.price($sumpaid,0,$outputlangs,1,-1,-1,$conf->currency).'</td></tr>';
-	print '<tr><td valign="top">'.$langs->trans("RemainderToPay").'</td><td colspan="2">'.price($total-$sumpaid,0,$outputlangs,1,-1,-1,$conf->currency).'</td></tr>';
+	print '<tr><td class="tdtop">'.$langs->trans("RemainderToPay").'</td><td colspan="2">'.price($total-$sumpaid,0,$outputlangs,1,-1,-1,$conf->currency).'</td></tr>';
 
 	print '<tr class="liste_titre">';
 	print "<td colspan=\"3\">".$langs->trans("Payment").'</td>';
@@ -227,7 +227,7 @@ if (GETPOST("action") == 'create')
 	print '<td colspan="2"><input name="num_payment" type="text" value="'.GETPOST('num_payment').'"></td></tr>'."\n";
 
 	print '<tr>';
-	print '<td valign="top">'.$langs->trans("Comments").'</td>';
+	print '<td class="tdtop">'.$langs->trans("Comments").'</td>';
 	print '<td valign="top" colspan="2"><textarea name="note" wrap="soft" cols="60" rows="'.ROWS_3.'"></textarea></td>';
 	print '</tr>';
 
diff --git a/htdocs/ecm/docdir.php b/htdocs/ecm/docdir.php
index 1b36d0433d1e666b3b9b91f1d52832a2603106cb..cf135e5ecb17045149bbcfba4890565a79efaa1a 100644
--- a/htdocs/ecm/docdir.php
+++ b/htdocs/ecm/docdir.php
@@ -166,7 +166,7 @@ if ($action == 'create')
 	print '</td></tr>'."\n";
 
 	// Description
-	print '<tr><td valign="top">'.$langs->trans("Description").'</td><td>';
+	print '<tr><td class="tdtop">'.$langs->trans("Description").'</td><td>';
 	print '<textarea name="desc" rows="4" cols="90">';
 	print $ecmdir->description;
 	print '</textarea>';
diff --git a/htdocs/ecm/docfile.php b/htdocs/ecm/docfile.php
index 89caaf918248c7bd5e09e5326c81b7ecae5dc7fa..9a0ca16f6627c9bed1711e7e35519c5c8d069cf8 100644
--- a/htdocs/ecm/docfile.php
+++ b/htdocs/ecm/docfile.php
@@ -207,7 +207,7 @@ print ' -> ';
 if (GETPOST('action') == 'edit') print '<input type="text" name="label" class="quatrevingtpercent" value="'.$urlfile.'">';
 else print $urlfile;
 print '</td></tr>';
-/*print '<tr><td valign="top">'.$langs->trans("Description").'</td><td>';
+/*print '<tr><td class="tdtop">'.$langs->trans("Description").'</td><td>';
 if ($_GET["action"] == 'edit')
 {
 	print '<textarea class="flat" name="description" cols="80">';
diff --git a/htdocs/ecm/search.php b/htdocs/ecm/search.php
index dd37c86592ac2e5d69f033c92d7ecd986b902118..0d5cf7a4f552bbb16d171be73a74555983d2d479 100644
--- a/htdocs/ecm/search.php
+++ b/htdocs/ecm/search.php
@@ -182,7 +182,7 @@ print "</table></form>";
 
 
 
-print '</td><td valign="top">';
+print '</td><td class="tdtop">';
 
 // Right area
 $relativepath=$ecmdir->getRelativePath();
diff --git a/htdocs/expensereport/card.php b/htdocs/expensereport/card.php
index ea75f7eeab606efaa1b06bf27006414eb2bd9707..2d93c88159c1bb9c71438429543f7b68cc7a18a6 100644
--- a/htdocs/expensereport/card.php
+++ b/htdocs/expensereport/card.php
@@ -1266,7 +1266,7 @@ if ($action == 'create')
 	// Public note
 	print '<tr>';
 	print '<td class="border" valign="top">' . $langs->trans('NotePublic') . '</td>';
-	print '<td valign="top">';
+	print '<td class="tdtop">';
 
 	$doleditor = new DolEditor('note_public', $note_public, '', 80, 'dolibarr_notes', 'In', 0, false, true, ROWS_3, '90%');
 	print $doleditor->Create(1);
@@ -1276,7 +1276,7 @@ if ($action == 'create')
 	if (empty($user->societe_id)) {
 		print '<tr>';
 		print '<td class="border" valign="top">' . $langs->trans('NotePrivate') . '</td>';
-		print '<td valign="top">';
+		print '<td class="tdtop">';
 
 		$doleditor = new DolEditor('note_private', $note_private, '', 80, 'dolibarr_notes', 'In', 0, false, true, ROWS_3, '90%');
 		print $doleditor->Create(1);
diff --git a/htdocs/expensereport/payment/payment.php b/htdocs/expensereport/payment/payment.php
index e361a9954c03eaca15b0294505322b137b626364..8ba724fb9818c09b97c05c0c512f0c3cb4e7d7c5 100644
--- a/htdocs/expensereport/payment/payment.php
+++ b/htdocs/expensereport/payment/payment.php
@@ -204,7 +204,7 @@ if (GETPOST("action") == 'create')
 		$db->free();
 	}
 	print '<tr><td>'.$langs->trans("AlreadyPaid").'</td><td colspan="2">'.price($sumpaid,0,$outputlangs,1,-1,-1,$conf->currency).'</td></tr>';
-	print '<tr><td valign="top">'.$langs->trans("RemainderToPay").'</td><td colspan="2">'.price($total-$sumpaid,0,$outputlangs,1,-1,-1,$conf->currency).'</td></tr>';
+	print '<tr><td class="tdtop">'.$langs->trans("RemainderToPay").'</td><td colspan="2">'.price($total-$sumpaid,0,$outputlangs,1,-1,-1,$conf->currency).'</td></tr>';
 
 	print '<tr class="liste_titre">';
 	print "<td colspan=\"3\">".$langs->trans("Payment").'</td>';
@@ -235,7 +235,7 @@ if (GETPOST("action") == 'create')
 	print '<td colspan="2"><input name="num_payment" type="text" value="'.GETPOST('num_payment').'"></td></tr>'."\n";
 
 	print '<tr>';
-	print '<td valign="top">'.$langs->trans("Comments").'</td>';
+	print '<td class="tdtop">'.$langs->trans("Comments").'</td>';
 	print '<td valign="top" colspan="2"><textarea name="note" wrap="soft" cols="60" rows="'.ROWS_3.'"></textarea></td>';
 	print '</tr>';
 
diff --git a/htdocs/fourn/facture/paiement.php b/htdocs/fourn/facture/paiement.php
index 1032b8b20ba348256df01b4144a43d31723ed95c..1048e41c18c5a0f3cc94f9e58aebfe5ffca3e363 100644
--- a/htdocs/fourn/facture/paiement.php
+++ b/htdocs/fourn/facture/paiement.php
@@ -379,7 +379,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
             }
             print '<tr><td>'.$langs->trans('Numero').'</td><td><input name="num_paiement" type="text" value="'.(empty($_POST['num_paiement'])?'':$_POST['num_paiement']).'"></td></tr>';
             print '<tr><td>'.$langs->trans('Comments').'</td>';
-            print '<td valign="top">';
+            print '<td class="tdtop">';
             print '<textarea name="comment" wrap="soft" class="quatrevingtpercent" rows="'.ROWS_3.'">'.(empty($_POST['comment'])?'':$_POST['comment']).'</textarea></td></tr>';
             print '</table>';
             dol_fiche_end();
diff --git a/htdocs/install/fileconf.php b/htdocs/install/fileconf.php
index 32dff5f10efe39f8e577350a69e64d7eedf16c6a..2b8f57d9d3cfe4de325b52a705a163f0102f222d 100644
--- a/htdocs/install/fileconf.php
+++ b/htdocs/install/fileconf.php
@@ -117,7 +117,7 @@ if (! empty($force_install_message))
 	<!-- Documents root $dolibarr_main_document_root -->
 	<tr>
 	<?php
-	print '<td valign="top" class="label"><b>';
+	print '<td class="tdtop label"><b>';
 	print $langs->trans("WebPagesDirectory");
 	print "</b></td>";
 
@@ -148,7 +148,7 @@ if (! empty($force_install_message))
 
 	<!-- Documents URL $dolibarr_main_data_root -->
 	<tr>
-		<td valign="top" class="label"><b> <?php print $langs->trans("DocumentsDirectory"); ?></b>
+		<td class="tdtop label"><b> <?php print $langs->trans("DocumentsDirectory"); ?></b>
 		</td>
 		<?php
 		$dolibarr_main_data_root = @$force_install_main_data_root;
@@ -185,9 +185,9 @@ if (! empty($force_install_message))
 	}
 	?>
 	<tr>
-		<td valign="top" class="label"><b> <?php echo $langs->trans("URLRoot"); ?></b>
+		<td class="tdtop label"><b> <?php echo $langs->trans("URLRoot"); ?></b>
 		</td>
-		<td valign="top" class="label">
+		<td class="tdtop label">
 			<input type="text"
 			       class="minwidth300"
 			       name="main_url"
@@ -209,7 +209,7 @@ if (! empty($force_install_message))
 	if (! empty($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == 'on') {   // Enabled if the installation process is "https://"
 	    ?>
 	<tr>
-		<td valign="top" class="label"><?php echo $langs->trans("ForceHttps"); ?></td>
+		<td class="tdtop label"><?php echo $langs->trans("ForceHttps"); ?></td>
 		<td class="label" valign="top">
 			<input type="checkbox"
 			       name="main_force_https"
@@ -261,7 +261,7 @@ if (! empty($force_install_message))
 	?>
 	<tr>
 		<!-- Driver type -->
-		<td valign="top" class="label"><b> <?php echo $langs->trans("DriverType"); ?>
+		<td class="tdtop label"><b> <?php echo $langs->trans("DriverType"); ?>
 		</b></td>
 
 		<td class="label">
@@ -337,9 +337,9 @@ if (! empty($force_install_message))
 	</tr>
 
 	<tr class="hidesqlite">
-		<td valign="top" class="label"><b> <?php echo $langs->trans("DatabaseServer"); ?>
+		<td class="tdtop label"><b> <?php echo $langs->trans("DatabaseServer"); ?>
 		</b></td>
-		<td valign="top" class="label">
+		<td class="tdtop label">
 			<input type="text"
 			       name="db_host"
 			       value="<?php print (!empty($force_install_dbserver) ? $force_install_dbserver : (!empty($dolibarr_main_db_host) ? $dolibarr_main_db_host : 'localhost')); ?>"
@@ -354,8 +354,8 @@ if (! empty($force_install_message))
 	</tr>
 
 	<tr class="hidesqlite">
-		<td valign="top" class="label"><?php echo $langs->trans("Port"); ?></td>
-		<td valign="top" class="label">
+		<td class="tdtop label"><?php echo $langs->trans("Port"); ?></td>
+		<td class="tdtop label">
 			<input type="text"
 			       name="db_port"
 			       id="db_port"
diff --git a/htdocs/loan/card.php b/htdocs/loan/card.php
index 6dd6b17ccfffdea43029be4202c84bfffd759b53..8ef8e09eba982c89e917d601546387ea491542d3 100644
--- a/htdocs/loan/card.php
+++ b/htdocs/loan/card.php
@@ -253,7 +253,7 @@ if ($action == 'create')
     // Note Private
     print '<tr>';
     print '<td class="border" valign="top">'.$langs->trans('NotePrivate').'</td>';
-    print '<td valign="top">';
+    print '<td class="tdtop">';
 
     $doleditor = new DolEditor('note_private', GETPOST('note_private', 'alpha'), '', 160, 'dolibarr_notes', 'In', false, true, true, ROWS_6, '90%');
     print $doleditor->Create(1);
@@ -263,7 +263,7 @@ if ($action == 'create')
     // Note Public
     print '<tr>';
     print '<td class="border" valign="top">'.$langs->trans('NotePublic').'</td>';
-    print '<td valign="top">';
+    print '<td class="tdtop">';
     $doleditor = new DolEditor('note_public', GETPOST('note_public', 'alpha'), '', 160, 'dolibarr_notes', 'In', false, true, true, ROWS_6, '90%');
     print $doleditor->Create(1);
     print '</td></tr>';
diff --git a/htdocs/loan/payment/payment.php b/htdocs/loan/payment/payment.php
index fff2cf7a03d2a66e856ab488d5f434689c23bde6..408fe3c646f81799c4eb687f503d708a12b2b034 100644
--- a/htdocs/loan/payment/payment.php
+++ b/htdocs/loan/payment/payment.php
@@ -186,7 +186,7 @@ if ($action == 'create')
 		$db->free();
 	}
 	print '<tr><td>'.$langs->trans("AlreadyPaid").'</td><td colspan="2">'.price($sumpaid, 0, $outputlangs, 1, -1, -1, $conf->currency).'</td></tr>';
-	print '<tr><td valign="top">'.$langs->trans("RemainderToPay").'</td><td colspan="2">'.price($total-$sumpaid, 0, $outputlangs, 1, -1, -1, $conf->currency).'</td></tr>';
+	print '<tr><td class="tdtop">'.$langs->trans("RemainderToPay").'</td><td colspan="2">'.price($total-$sumpaid, 0, $outputlangs, 1, -1, -1, $conf->currency).'</td></tr>';
 	print '</tr>';
 
 	print '</table>';
@@ -223,12 +223,12 @@ if ($action == 'create')
 	print '<td colspan="2"><input name="num_payment" type="text" value="'.GETPOST('num_payment').'"></td></tr>'."\n";
 
 	print '<tr>';
-	print '<td valign="top">'.$langs->trans("NotePrivate").'</td>';
+	print '<td class="tdtop">'.$langs->trans("NotePrivate").'</td>';
 	print '<td valign="top" colspan="2"><textarea name="note_private" wrap="soft" cols="60" rows="'.ROWS_3.'"></textarea></td>';
 	print '</tr>';
 
 	print '<tr>';
-	print '<td valign="top">'.$langs->trans("NotePublic").'</td>';
+	print '<td class="tdtop">'.$langs->trans("NotePublic").'</td>';
 	print '<td valign="top" colspan="2"><textarea name="note_public" wrap="soft" cols="60" rows="'.ROWS_3.'"></textarea></td>';
 	print '</tr>';
 
diff --git a/htdocs/product/canvas/product/tpl/card_create.tpl.php b/htdocs/product/canvas/product/tpl/card_create.tpl.php
index c5f968dee4f617e0aa0e63a0459897232d59d729..514c5d213d544f688e445da73604d158ff6c2301 100644
--- a/htdocs/product/canvas/product/tpl/card_create.tpl.php
+++ b/htdocs/product/canvas/product/tpl/card_create.tpl.php
@@ -90,7 +90,7 @@ $statutarray=array('1' => $langs->trans("OnSell"), '0' => $langs->trans("NotOnSe
 <?php echo $object->volume_units; ?>
 </td></tr>
 
-<tr><td valign="top"><?php echo $langs->trans("NoteNotVisibleOnBill"); ?></td><td>
+<tr><td class="tdtop"><?php echo $langs->trans("NoteNotVisibleOnBill"); ?></td><td>
 <?php echo $object->textarea_note; ?>
 </td></tr>
 </table>
diff --git a/htdocs/product/canvas/product/tpl/card_edit.tpl.php b/htdocs/product/canvas/product/tpl/card_edit.tpl.php
index 822cb03a6e021f608f85476ba6dd831add1c2b05..686ad7217b709d170ff4d9375b5db00a850055ec 100644
--- a/htdocs/product/canvas/product/tpl/card_edit.tpl.php
+++ b/htdocs/product/canvas/product/tpl/card_edit.tpl.php
@@ -90,7 +90,7 @@ dol_htmloutput_errors($object->error,$object->errors);
 <?php echo $object->volume_units; ?>
 </td></tr>
 
-<tr><td valign="top"><?php echo $langs->trans("NoteNotVisibleOnBill"); ?></td><td>
+<tr><td class="tdtop"><?php echo $langs->trans("NoteNotVisibleOnBill"); ?></td><td>
 <?php echo $object->textarea_note; ?>
 </td></tr>
 </table>
diff --git a/htdocs/product/canvas/product/tpl/card_view.tpl.php b/htdocs/product/canvas/product/tpl/card_view.tpl.php
index 93114e573f8984193355a30901d0c805104ad22a..771005781cd74bec83aff5acb2b87227dfddd446 100644
--- a/htdocs/product/canvas/product/tpl/card_view.tpl.php
+++ b/htdocs/product/canvas/product/tpl/card_view.tpl.php
@@ -53,7 +53,7 @@ $object=$GLOBALS['object'];
 </tr>
 
 <tr>
-<td valign="top"><?php echo $langs->trans("Description"); ?></td>
+<td class="tdtop"><?php echo $langs->trans("Description"); ?></td>
 <td colspan="2"><?php echo $object->description; ?></td>
 </tr>
 
@@ -83,7 +83,7 @@ $object=$GLOBALS['object'];
 </tr>
 
 <tr>
-<td valign="top"><?php echo $langs->trans("Note"); ?></td>
+<td class="tdtop"><?php echo $langs->trans("Note"); ?></td>
 <td colspan="2"><?php echo $object->note; ?></td>
 </tr>
 
diff --git a/htdocs/product/canvas/service/tpl/card_create.tpl.php b/htdocs/product/canvas/service/tpl/card_create.tpl.php
index 39c91695f8fc7c5def3139cd147c28a546cc2fc7..e25f69d8848d6bcaa9dd1430cc794ada42f5d1dd 100644
--- a/htdocs/product/canvas/service/tpl/card_create.tpl.php
+++ b/htdocs/product/canvas/service/tpl/card_create.tpl.php
@@ -63,7 +63,7 @@ $statutarray=array('1' => $langs->trans("OnSell"), '0' => $langs->trans("NotOnSe
 <?php echo $object->duration_unit; ?>
 </td></tr>
 
-<tr><td valign="top"><?php echo $langs->trans("NoteNotVisibleOnBill"); ?></td><td>
+<tr><td class="tdtop"><?php echo $langs->trans("NoteNotVisibleOnBill"); ?></td><td>
 <?php echo $object->textarea_note; ?>
 </td></tr>
 </table>
diff --git a/htdocs/product/canvas/service/tpl/card_edit.tpl.php b/htdocs/product/canvas/service/tpl/card_edit.tpl.php
index fd403e647c6474552ccaa42ebe6f6f50d5a502f6..27348b7820d5e10bd3dd84effc88542bfd0e55b8 100644
--- a/htdocs/product/canvas/service/tpl/card_edit.tpl.php
+++ b/htdocs/product/canvas/service/tpl/card_edit.tpl.php
@@ -62,7 +62,7 @@ dol_htmloutput_errors($object->error,$object->errors);
 <?php echo $object->duration_unit; ?>
 </td></tr>
 
-<tr><td valign="top"><?php echo $langs->trans("NoteNotVisibleOnBill"); ?></td><td>
+<tr><td class="tdtop"><?php echo $langs->trans("NoteNotVisibleOnBill"); ?></td><td>
 <?php echo $object->textarea_note; ?>
 </td></tr>
 </table>
diff --git a/htdocs/product/canvas/service/tpl/card_view.tpl.php b/htdocs/product/canvas/service/tpl/card_view.tpl.php
index 5a53835109ae6f7c415d08861803489c1df86983..fd5d9ad73bfd9a3d0433affb55dfa06401cb6a0a 100644
--- a/htdocs/product/canvas/service/tpl/card_view.tpl.php
+++ b/htdocs/product/canvas/service/tpl/card_view.tpl.php
@@ -53,7 +53,7 @@ $object=$GLOBALS['object'];
 </tr>
 
 <tr>
-<td valign="top"><?php echo $langs->trans("Description"); ?></td>
+<td class="tdtop"><?php echo $langs->trans("Description"); ?></td>
 <td colspan="2"><?php echo $object->description; ?></td>
 </tr>
 
@@ -63,7 +63,7 @@ $object=$GLOBALS['object'];
 </td></tr>
 
 <tr>
-<td valign="top"><?php echo $langs->trans("Note"); ?></td>
+<td class="tdtop"><?php echo $langs->trans("Note"); ?></td>
 <td colspan="2"><?php echo $object->note; ?></td>
 </tr>
 
diff --git a/htdocs/product/stock/fiche-valo.php b/htdocs/product/stock/fiche-valo.php
index 8add246afa2adcf3f1d843c65611f57ec3cc7570..e05013cbe77a263446018a49f33b577eb44aee16 100644
--- a/htdocs/product/stock/fiche-valo.php
+++ b/htdocs/product/stock/fiche-valo.php
@@ -71,7 +71,7 @@ if ($_GET["id"])
 	print '<tr><td>'.$langs->trans("LocationSummary").'</td><td colspan="3">'.$entrepot->lieu.'</td></tr>';
 
 	// Description
-	print '<tr><td valign="top">'.$langs->trans("Description").'</td><td colspan="3">'.nl2br($entrepot->description).'</td></tr>';
+	print '<tr><td class="tdtop">'.$langs->trans("Description").'</td><td colspan="3">'.nl2br($entrepot->description).'</td></tr>';
 
 	print '<tr><td>'.$langs->trans('Address').'</td><td colspan="3">';
 	print $entrepot->address;
@@ -90,12 +90,12 @@ if ($_GET["id"])
 	$calcproducts=$entrepot->nb_products();
 
 	// Nb of products
-	print '<tr><td valign="top">'.$langs->trans("NumberOfProducts").'</td><td colspan="3">';
+	print '<tr><td class="tdtop">'.$langs->trans("NumberOfProducts").'</td><td colspan="3">';
 	print empty($calcproducts['nb'])?'0':$calcproducts['nb'];
 	print "</td></tr>";
 
 	// Value
-	print '<tr><td valign="top">'.$langs->trans("EstimatedStockValueShort").'</td><td colspan="3">';
+	print '<tr><td class="tdtop">'.$langs->trans("EstimatedStockValueShort").'</td><td colspan="3">';
 	print empty($calcproducts['value'])?'0':$calcproducts['value'];
 	print "</td></tr>";
 
diff --git a/htdocs/product/traduction.php b/htdocs/product/traduction.php
index f616004db42a8ebbade4d167680bd4a24fffd6fe..e7986fde074d8b1d4e06f568bcbbb817d3405ea7 100644
--- a/htdocs/product/traduction.php
+++ b/htdocs/product/traduction.php
@@ -187,6 +187,48 @@ $titre=$langs->trans("CardProduct".$object->type);
 $picto=($object->type==Product::TYPE_SERVICE?'service':'product');
 
 
+// Calculate $cnt_trans
+$cnt_trans = 0;
+if (! empty($object->multilangs))
+{
+    foreach ($object->multilangs as $key => $value)
+    {
+        $cnt_trans++;
+    }
+}
+
+
+dol_fiche_head($head, 'translation', $titre, 0, $picto);
+
+$linkback = '<a href="'.DOL_URL_ROOT.'/product/list.php">'.$langs->trans("BackToList").'</a>';
+
+dol_banner_tab($object, 'ref', $linkback, ($user->societe_id?0:1), 'ref', 'ref', '', '', 0, '', '', 1);
+
+dol_fiche_end();
+
+
+
+/* ************************************************************************** */
+/*                                                                            */
+/* Barre d'action                                                             */
+/*                                                                            */
+/* ************************************************************************** */
+
+print "\n<div class=\"tabsAction\">\n";
+
+if ($action == '')
+{
+    if ($user->rights->produit->creer || $user->rights->service->creer)
+    {
+        print '<a class="butAction" href="'.DOL_URL_ROOT.'/product/traduction.php?action=add&id='.$object->id.'">'.$langs->trans("Add").'</a>';
+        if ($cnt_trans > 0) print '<a class="butAction" href="'.DOL_URL_ROOT.'/product/traduction.php?action=edit&id='.$object->id.'">'.$langs->trans("Update").'</a>';
+    }
+}
+
+print "\n</div>\n";
+
+
+
 if ($action == 'edit')
 {
 	//WYSIWYG Editor
@@ -197,12 +239,6 @@ if ($action == 'edit')
 	print '<input type="hidden" name="action" value="vedit">';
 	print '<input type="hidden" name="id" value="'.$object->id.'">';
 
-    dol_fiche_head($head, 'translation', $titre, 0, $picto);
-    
-    $linkback = '<a href="'.DOL_URL_ROOT.'/product/list.php">'.$langs->trans("BackToList").'</a>';
-    
-    dol_banner_tab($object, 'ref', $linkback, ($user->societe_id?0:1), 'ref');
-	
 	if (! empty($object->multilangs))
 	{
 		foreach ($object->multilangs as $key => $value)
@@ -211,14 +247,14 @@ if ($action == 'edit')
 			print "<br>".($s?$s.' ':'')." <b>".$langs->trans('Language_'.$key).":</b> ".'<a href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&langtodelete='.$key.'">'.img_delete('', '')."</a><br>";
 		    
 			print '<table class="border" width="100%">';
-			print '<tr><td valign="top" class="titlefieldcreate fieldrequired">'.$langs->trans('Label').'</td><td><input name="libelle-'.$key.'" size="40" value="'.$object->multilangs[$key]["label"].'"></td></tr>';
-			print '<tr><td valign="top">'.$langs->trans('Description').'</td><td>';
+			print '<tr><td class="tdtop titlefieldcreate fieldrequired">'.$langs->trans('Label').'</td><td><input name="libelle-'.$key.'" size="40" value="'.$object->multilangs[$key]["label"].'"></td></tr>';
+			print '<tr><td class="tdtop">'.$langs->trans('Description').'</td><td>';
 			$doleditor = new DolEditor("desc-$key", $object->multilangs[$key]["description"], '', 160, 'dolibarr_notes', '', false, true, $conf->global->FCKEDITOR_ENABLE_PRODUCTDESC, ROWS_3, '90%');
 			$doleditor->Create();
 			print '</td></tr>';
 			if (! empty($conf->global->PRODUCT_USE_OTHER_FIELD_IN_TRANSLATION))
 			{
-                print '<tr><td valign="top">'.$langs->trans('Other').' ('.$langs->trans("NotUsed").')</td><td>';
+                print '<tr><td class="tdtop">'.$langs->trans('Other').' ('.$langs->trans("NotUsed").')</td><td>';
                 $doleditor = new DolEditor("other-$key", $object->multilangs[$key]["other"], '', 160, 'dolibarr_notes', '', false, true, $conf->global->FCKEDITOR_ENABLE_PRODUCTDESC, ROWS_3, '90%');
                 $doleditor->Create();
 			}
@@ -227,8 +263,6 @@ if ($action == 'edit')
 		}
 	}
 
-    dol_fiche_end();
-    
 	print '<div class="center">';
 	print '<input type="submit" class="button" value="'.$langs->trans("Save").'">';
 	print '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
@@ -238,23 +272,14 @@ if ($action == 'edit')
 	print '</form>';
 
 }
-else
+else if ($action != 'add')
 {
-    dol_fiche_head($head, 'translation', $titre, 0, $picto);
-    
-    $linkback = '<a href="'.DOL_URL_ROOT.'/product/list.php">'.$langs->trans("BackToList").'</a>';
+    if ($cnt_trans) print '<div class="underbanner clearboth"></div>';
     
-    dol_banner_tab($object, 'ref', $linkback, ($user->societe_id?0:1), 'ref');
-    
-    print '<div class="underbanner clearboth"></div>';
-    
-    
-    $cnt_trans = 0;
 	if (! empty($object->multilangs))
 	{
 		foreach ($object->multilangs as $key => $value)
 		{
-			$cnt_trans++;
 			$s=picto_from_langcode($key);
 			print '<table class="border" width="100%">';
 			print '<tr class="liste_titre"><td colspan="2">'.($s?$s.' ':'')." <b>".$langs->trans('Language_'.$key).":</b> ".'<a href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&langtodelete='.$key.'">'.img_delete('', '').'</a></td></tr>';
@@ -267,29 +292,9 @@ else
 			print '</table>';
 		}
 	}
-	if (! $cnt_trans) print '<br>'. $langs->trans('NoTranslation');
-
-	dol_fiche_end();
-}
-
-
-
-/* ************************************************************************** */
-/*                                                                            */
-/* Barre d'action                                                             */
-/*                                                                            */
-/* ************************************************************************** */
-
-print "\n<div class=\"tabsAction\">\n";
-
-if ($action == '')
-if ($user->rights->produit->creer || $user->rights->service->creer)
-{
-	print '<a class="butAction" href="'.DOL_URL_ROOT.'/product/traduction.php?action=add&id='.$object->id.'">'.$langs->trans("Add").'</a>';
-	print '<a class="butAction" href="'.DOL_URL_ROOT.'/product/traduction.php?action=edit&id='.$object->id.'">'.$langs->trans("Update").'</a>';
+	if (! $cnt_trans && $action != 'add') print '<div class="opacitymedium">'. $langs->trans('NoTranslation').'</div>';
 }
 
-print "\n</div>\n";
 
 
 /*
@@ -308,18 +313,18 @@ if ($action == 'add' && ($user->rights->produit->creer || $user->rights->service
 	print '<input type="hidden" name="id" value="'.GETPOST("id",'int').'">';
 
 	print '<table class="border" width="100%">';
-	print '<tr><td valign="top" class="titlefieldcreate fieldrequired">'.$langs->trans('Language').'</td><td>';
+	print '<tr><td class="tdtop titlefieldcreate fieldrequired">'.$langs->trans('Language').'</td><td>';
     print $formadmin->select_language('','forcelangprod',0,$object->multilangs,1);
 	print '</td></tr>';
-	print '<tr><td valign="top" class="fieldrequired">'.$langs->trans('Label').'</td><td><input name="libelle" size="40"></td></tr>';
-	print '<tr><td valign="top">'.$langs->trans('Description').'</td><td>';
+	print '<tr><td class="tdtop fieldrequired">'.$langs->trans('Label').'</td><td><input name="libelle" size="40"></td></tr>';
+	print '<tr><td class="tdtop">'.$langs->trans('Description').'</td><td>';
 	$doleditor = new DolEditor('desc', '', '', 160, 'dolibarr_notes', '', false, true, $conf->global->FCKEDITOR_ENABLE_PRODUCTDESC, ROWS_3, '90%');
 	$doleditor->Create();
 	print '</td></tr>';
     // Other field (not used)
     if (! empty($conf->global->PRODUCT_USE_OTHER_FIELD_IN_TRANSLATION))
     {
-        print '<tr><td valign="top">'.$langs->trans('Other').' ('.$langs->trans("NotUsed").'</td><td>';
+        print '<tr><td class="tdtop">'.$langs->trans('Other').' ('.$langs->trans("NotUsed").'</td><td>';
     	$doleditor = new DolEditor('other', '', '', 160, 'dolibarr_notes', '', false, true, $conf->global->FCKEDITOR_ENABLE_PRODUCTDESC, ROWS_3, '90%');
     	$doleditor->Create();
     	print '</td></tr>';
diff --git a/htdocs/projet/card.php b/htdocs/projet/card.php
index be6de2313a06d864c7ad8aad5447d65868e1afe2..71f2dcd02c9cde75b824156f072bc8474e4fdbe4 100644
--- a/htdocs/projet/card.php
+++ b/htdocs/projet/card.php
@@ -766,7 +766,7 @@ elseif ($object->id > 0)
 	    print '</tr>';
 
 	    // Description
-        print '<tr><td valign="top">'.$langs->trans("Description").'</td>';
+        print '<tr><td class="tdtop">'.$langs->trans("Description").'</td>';
         print '<td>';
         print '<textarea name="description" wrap="soft" class="centpercent" rows="'.ROWS_3.'">'.$object->description.'</textarea>';
         print '</td></tr>';
diff --git a/htdocs/projet/tasks.php b/htdocs/projet/tasks.php
index 0e19e35b1f8fd524937305a7892ea6d49e83c099..cd8728b3013f788a6c34dfe0bb6f33a625279b20 100644
--- a/htdocs/projet/tasks.php
+++ b/htdocs/projet/tasks.php
@@ -392,7 +392,7 @@ if ($action == 'create' && $user->rights->projet->creer && (empty($object->third
 	print '</td></tr>';
 
 	// Description
-	print '<tr><td valign="top">'.$langs->trans("Description").'</td>';
+	print '<tr><td class="tdtop">'.$langs->trans("Description").'</td>';
 	print '<td>';
 	print '<textarea name="description" wrap="soft" cols="80" rows="'.ROWS_3.'">'.$description.'</textarea>';
 	print '</td></tr>';
diff --git a/htdocs/projet/tasks/task.php b/htdocs/projet/tasks/task.php
index cc0eb0fed6fcc172c285633d39f11a83b3fd0ed3..25d66c724a29a6d4336f7ab48928355aa0582588 100644
--- a/htdocs/projet/tasks/task.php
+++ b/htdocs/projet/tasks/task.php
@@ -398,7 +398,7 @@ if ($id > 0 || ! empty($ref))
 			print '</td></tr>';
 
 			// Description
-			print '<tr><td valign="top">'.$langs->trans("Description").'</td>';
+			print '<tr><td class="tdtop">'.$langs->trans("Description").'</td>';
 			print '<td>';
 			print '<textarea name="description" wrap="soft" cols="80" rows="'.ROWS_3.'">'.$object->description.'</textarea>';
 			print '</td></tr>';
@@ -509,7 +509,7 @@ if ($id > 0 || ! empty($ref))
 			print '</td></tr>';
 
 			// Description
-			print '<td valign="top">'.$langs->trans("Description").'</td><td colspan="3">';
+			print '<td class="tdtop">'.$langs->trans("Description").'</td><td colspan="3">';
 			print nl2br($object->description);
 			print '</td></tr>';
 
diff --git a/htdocs/public/members/new.php b/htdocs/public/members/new.php
index 6d2b469fb551ff675ffd903c5b1d0fe6ce23fbbc..b101e656f67f3c1a2c4b7ec9df88d5453fa4f3bf 100644
--- a/htdocs/public/members/new.php
+++ b/htdocs/public/members/new.php
@@ -518,8 +518,8 @@ foreach($extrafields->attribute_label as $key=>$value)
 }
 // Comments
 print '<tr>';
-print '<td valign="top">'.$langs->trans("Comments").'</td>';
-print '<td valign="top"><textarea name="note_private" id="note_private" wrap="soft" class="quatrevingtpercent" rows="'.ROWS_3.'">'.dol_escape_htmltag(GETPOST('note_private')).'</textarea></td>';
+print '<td class="tdtop">'.$langs->trans("Comments").'</td>';
+print '<td class="tdtop"><textarea name="note_private" id="note_private" wrap="soft" class="quatrevingtpercent" rows="'.ROWS_3.'">'.dol_escape_htmltag(GETPOST('note_private')).'</textarea></td>';
 print '</tr>'."\n";
 
 // Add specific fields used by Dolibarr foundation for example
diff --git a/htdocs/public/members/public_card.php b/htdocs/public/members/public_card.php
index cbac1692103450b593dc7b81b7725d893f07880a..8f28cd12827e6ff868da0cb7d76c3321c2c88c12 100644
--- a/htdocs/public/members/public_card.php
+++ b/htdocs/public/members/public_card.php
@@ -111,7 +111,7 @@ if ($id > 0)
 		//    print "<tr><td>$value</td><td>".$object->array_options["options_$key"]."&nbsp;</td></tr>\n";
 		//  }
 
-		print '<tr><td valign="top">'.$langs->trans("Comments").'</td><td>'.nl2br($object->note_public).'</td></tr>';
+		print '<tr><td class="tdtop">'.$langs->trans("Comments").'</td><td>'.nl2br($object->note_public).'</td></tr>';
 
 		print '</table>';
 	}
diff --git a/htdocs/societe/canvas/company/tpl/card_create.tpl.php b/htdocs/societe/canvas/company/tpl/card_create.tpl.php
index f6b4bfeeb963c58b4d9699b8a735ae6d67e8b44b..3d2dffafed743b8ad91fd073bb304b53b2c9304f 100644
--- a/htdocs/societe/canvas/company/tpl/card_create.tpl.php
+++ b/htdocs/societe/canvas/company/tpl/card_create.tpl.php
@@ -104,7 +104,7 @@
 <?php } ?>
 
 <tr>
-	<td valign="top"><?php echo $langs->trans('Address'); ?></td>
+	<td class="tdtop"><?php echo $langs->trans('Address'); ?></td>
 	<td colspan="3"><textarea name="adress" cols="40" rows="3"><?php echo $this->control->tpl['address']; ?></textarea></td>
 </tr>
 
diff --git a/htdocs/societe/canvas/company/tpl/card_edit.tpl.php b/htdocs/societe/canvas/company/tpl/card_edit.tpl.php
index f9481176098844ce38e92aaef4d25f5ba94ee740..1f6201ec829a3345d1969ad31731d72d7cb2065c 100644
--- a/htdocs/societe/canvas/company/tpl/card_edit.tpl.php
+++ b/htdocs/societe/canvas/company/tpl/card_edit.tpl.php
@@ -119,7 +119,7 @@ if ($this->control->tpl['fournisseur']) {
 <?php } ?>
 
 <tr>
-	<td valign="top"><?php echo $langs->trans('Address'); ?></td>
+	<td class="tdtop"><?php echo $langs->trans('Address'); ?></td>
 	<td colspan="3"><textarea name="adress" cols="40" rows="3"><?php echo $this->control->tpl['address']; ?></textarea></td>
 </tr>
 
diff --git a/htdocs/societe/canvas/company/tpl/card_view.tpl.php b/htdocs/societe/canvas/company/tpl/card_view.tpl.php
index fa58b02413c0b1c2ab18c0848f982d057e94aaf0..c6e80e87a91a1b0c9ae8275773d3a0af473b7edd 100644
--- a/htdocs/societe/canvas/company/tpl/card_view.tpl.php
+++ b/htdocs/societe/canvas/company/tpl/card_view.tpl.php
@@ -77,7 +77,7 @@ dol_fiche_head($head, 'card', $langs->trans("ThirdParty"),0,'company');
 <?php } ?>
 
 <tr>
-	<td valign="top"><?php echo $langs->trans('Address'); ?></td>
+	<td class="tdtop"><?php echo $langs->trans('Address'); ?></td>
 	<td colspan="3"><?php echo $this->control->tpl['address']; ?></td>
 </tr>
 
diff --git a/htdocs/societe/canvas/individual/tpl/card_create.tpl.php b/htdocs/societe/canvas/individual/tpl/card_create.tpl.php
index b30adb438255b169efab6b3bb657e3786f62ce47..67e8acf3534fe5c1af4a2563709035f444ee8a9e 100644
--- a/htdocs/societe/canvas/individual/tpl/card_create.tpl.php
+++ b/htdocs/societe/canvas/individual/tpl/card_create.tpl.php
@@ -114,7 +114,7 @@
 <?php } ?>
 
 <tr>
-	<td valign="top"><?php echo $langs->trans('Address'); ?></td>
+	<td class="tdtop"><?php echo $langs->trans('Address'); ?></td>
 	<td colspan="3"><textarea name="adresse" cols="40" rows="3"><?php echo $this->control->tpl['address']; ?></textarea></td>
 </tr>
 
diff --git a/htdocs/societe/canvas/individual/tpl/card_edit.tpl.php b/htdocs/societe/canvas/individual/tpl/card_edit.tpl.php
index 5da15b95956a952f72f322fd153844440b634a35..9054395890247796d73a045e9cdfe8cd7cc558cf 100644
--- a/htdocs/societe/canvas/individual/tpl/card_edit.tpl.php
+++ b/htdocs/societe/canvas/individual/tpl/card_edit.tpl.php
@@ -116,7 +116,7 @@ if ($this->control->tpl['fournisseur']) {
 <?php } ?>
 
 <tr>
-	<td valign="top"><?php echo $langs->trans('Address'); ?></td>
+	<td class="tdtop"><?php echo $langs->trans('Address'); ?></td>
 	<td colspan="3"><textarea name="adresse" cols="40" rows="3"><?php echo $this->control->tpl['address']; ?></textarea></td>
 </tr>
 
diff --git a/htdocs/societe/canvas/individual/tpl/card_view.tpl.php b/htdocs/societe/canvas/individual/tpl/card_view.tpl.php
index 7249c752c1c5b9b0966e3007ff4af0e1cc4d36c8..21f0cafcbb12825faa18785b3c21f059d30af453 100644
--- a/htdocs/societe/canvas/individual/tpl/card_view.tpl.php
+++ b/htdocs/societe/canvas/individual/tpl/card_view.tpl.php
@@ -76,7 +76,7 @@ dol_fiche_head($head, 'card', $langs->trans("ThirdParty"),0,'company');
 <?php } ?>
 
 <tr>
-	<td valign="top"><?php echo $langs->trans('Address'); ?></td>
+	<td class="tdtop"><?php echo $langs->trans('Address'); ?></td>
 	<td colspan="3"><?php echo $this->control->tpl['address']; ?></td>
 </tr>
 
diff --git a/htdocs/supplier_proposal/card.php b/htdocs/supplier_proposal/card.php
index d91823dfcf42225c40154500a6942380914bccd7..e02a512f3270760eb89a6555329b180e6c8f3c22 100644
--- a/htdocs/supplier_proposal/card.php
+++ b/htdocs/supplier_proposal/card.php
@@ -1132,7 +1132,7 @@ if ($action == 'create')
 			$projectid = ($originid ? $originid : 0);
 
 		print '<tr>';
-		print '<td valign="top">' . $langs->trans("Project") . '</td><td colspan="2">';
+		print '<td class="tdtop">' . $langs->trans("Project") . '</td><td colspan="2">';
 
 		$numprojet = $formproject->select_projects($soc->id, $projectid);
 		if ($numprojet == 0) {
@@ -1243,7 +1243,7 @@ if ($action == 'create')
 		}
 		print '</td></tr>';
 
-		print '<tr><td valign="top"><input type="radio" name="createmode" value="empty" checked></td>';
+		print '<tr><td class="tdtop"><input type="radio" name="createmode" value="empty" checked></td>';
 		print '<td valign="top" colspan="2">' . $langs->trans("CreateEmptyAsk") . '</td></tr>';
 	}
 
diff --git a/htdocs/user/bank.php b/htdocs/user/bank.php
index 7dc774c501ddd07f7fdddedf824d0e5f0c085e2e..63cdacf958d8c6d49a95b76a397f320229a524c7 100644
--- a/htdocs/user/bank.php
+++ b/htdocs/user/bank.php
@@ -165,7 +165,7 @@ if ($id && $action != 'edit')
 		print '</tr>';
 	}
 
-	print '<tr><td valign="top">'.$langs->trans("IBAN").'</td>';
+	print '<tr><td class="tdtop">'.$langs->trans("IBAN").'</td>';
 	print '<td colspan="4">'.$account->iban . '&nbsp;';
     if (! empty($account->iban)) {
         if (! checkIbanForAccount($account)) {
@@ -176,7 +176,7 @@ if ($id && $action != 'edit')
     }
     print '</td></tr>';
 
-	print '<tr><td valign="top">'.$langs->trans("BIC").'</td>';
+	print '<tr><td class="tdtop">'.$langs->trans("BIC").'</td>';
 	print '<td colspan="4">'.$account->bic.'&nbsp;';
     if (! empty($account->bic)) {
         if (! checkSwiftForAccount($account)) {
@@ -187,15 +187,15 @@ if ($id && $action != 'edit')
     }
     print '</td></tr>';
 
-	print '<tr><td valign="top">'.$langs->trans("BankAccountDomiciliation").'</td><td colspan="4">';
+	print '<tr><td class="tdtop">'.$langs->trans("BankAccountDomiciliation").'</td><td colspan="4">';
 	print $account->domiciliation;
 	print "</td></tr>\n";
 
-	print '<tr><td valign="top">'.$langs->trans("BankAccountOwner").'</td><td colspan="4">';
+	print '<tr><td class="tdtop">'.$langs->trans("BankAccountOwner").'</td><td colspan="4">';
 	print $account->proprio;
 	print "</td></tr>\n";
 
-	print '<tr><td valign="top">'.$langs->trans("BankAccountOwnerAddress").'</td><td colspan="4">';
+	print '<tr><td class="tdtop">'.$langs->trans("BankAccountOwnerAddress").'</td><td colspan="4">';
 	print $account->owner_address;
 	print "</td></tr>\n";
 
@@ -271,22 +271,22 @@ if ($id && $action == 'edit' && $user->rights->user->user->creer)
 	}
 
     // IBAN
-    print '<tr><td valign="top" class="fieldrequired">'.$langs->trans("IBAN").'</td>';
+    print '<tr><td class="tdtop fieldrequired">'.$langs->trans("IBAN").'</td>';
     print '<td colspan="4"><input size="30" type="text" name="iban" value="'.$account->iban.'"></td></tr>';
 
-    print '<tr><td valign="top" class="fieldrequired">'.$langs->trans("BIC").'</td>';
+    print '<tr><td class="tdtop fieldrequired">'.$langs->trans("BIC").'</td>';
     print '<td colspan="4"><input size="12" type="text" name="bic" value="'.$account->bic.'"></td></tr>';
 
-    print '<tr><td valign="top">'.$langs->trans("BankAccountDomiciliation").'</td><td colspan="4">';
+    print '<tr><td class="tdtop">'.$langs->trans("BankAccountDomiciliation").'</td><td colspan="4">';
     print '<textarea name="domiciliation" rows="4" cols="40">';
     print $account->domiciliation;
     print "</textarea></td></tr>";
 
-    print '<tr><td valign="top">'.$langs->trans("BankAccountOwner").'</td>';
+    print '<tr><td class="tdtop">'.$langs->trans("BankAccountOwner").'</td>';
     print '<td colspan="4"><input size="30" type="text" name="proprio" value="'.$account->proprio.'"></td></tr>';
     print "</td></tr>\n";
 
-    print '<tr><td valign="top">'.$langs->trans("BankAccountOwnerAddress").'</td><td colspan="4">';
+    print '<tr><td class="tdtop">'.$langs->trans("BankAccountOwnerAddress").'</td><td colspan="4">';
     print "<textarea name=\"owner_address\" rows=\"4\" cols=\"40\">";
     print $account->owner_address;
     print "</textarea></td></tr>";
diff --git a/htdocs/user/group/card.php b/htdocs/user/group/card.php
index 936673b18941f9dbd881e52d186a87c1ec5b71ad..5d78cfde2790fb45c03a024696c3036aa28f046c 100644
--- a/htdocs/user/group/card.php
+++ b/htdocs/user/group/card.php
@@ -244,7 +244,7 @@ if ($action == 'create')
 	{
 		if (empty($conf->multicompany->transverse_mode) && $conf->entity == 1 && $user->admin && ! $user->entity)
 		{
-			print "<tr>".'<td valign="top">'.$langs->trans("Entity").'</td>';
+			print "<tr>".'<td class="tdtop">'.$langs->trans("Entity").'</td>';
 			print "<td>".$mc->select_entities($conf->entity);
 			print "</td></tr>\n";
 		}
@@ -330,7 +330,7 @@ else
 			if (! empty($conf->multicompany->enabled) && is_object($mc) && empty($conf->multicompany->transverse_mode) && $conf->entity == 1 && $user->admin && ! $user->entity)
 			{
 				$mc->getInfo($object->entity);
-				print "<tr>".'<td valign="top">'.$langs->trans("Entity").'</td>';
+				print "<tr>".'<td class="tdtop">'.$langs->trans("Entity").'</td>';
 				print '<td width="75%" class="valeur">'.$mc->label;
 				print "</td></tr>\n";
 			}
@@ -406,7 +406,7 @@ else
                 {
                     if ($conf->entity == 1 && $conf->multicompany->transverse_mode)
                     {
-                        print '</td><td valign="top">'.$langs->trans("Entity").'</td>';
+                        print '</td><td class="tdtop">'.$langs->trans("Entity").'</td>';
                         print "<td>".$mc->select_entities($conf->entity);
                     }
                     else
@@ -518,7 +518,7 @@ else
             {
                 if (empty($conf->multicompany->transverse_mode) && $conf->entity == 1 && $user->admin && ! $user->entity)
                 {
-                    print "<tr>".'<td valign="top">'.$langs->trans("Entity").'</td>';
+                    print "<tr>".'<td class="tdtop">'.$langs->trans("Entity").'</td>';
                     print "<td>".$mc->select_entities($object->entity);
                     print "</td></tr>\n";
                 }
diff --git a/htdocs/websites/index.php b/htdocs/websites/index.php
index 69143108e667641016903ea726bbd1def5cd4136..0a7eb94cca2b8894c273d85db00eb37ce329e982 100644
--- a/htdocs/websites/index.php
+++ b/htdocs/websites/index.php
@@ -867,7 +867,7 @@ if ($action == 'editcss')
     print $website;
     print '</td></tr>';
 
-    print '<tr><td valign="top">';
+    print '<tr><td class="tdtop">';
     print $langs->trans('WEBSITE_CSS_INLINE');
     print '</td><td>';
     print '<textarea class="flat centpercent" rows="32" name="WEBSITE_CSS_INLINE">';