diff --git a/htdocs/admin/commande.php b/htdocs/admin/commande.php
index 9da39314d564ad043342b436ceebc4455c8aba1f..d5cdd51e2ec0c857a967e5b5cf3aacc1b248897f 100644
--- a/htdocs/admin/commande.php
+++ b/htdocs/admin/commande.php
@@ -247,12 +247,12 @@ if ($handle)
 
 				// Info
 				$htmltooltip='';
-				$htmltooltip.='<b>'.$langs->trans("Version").'</b>: '.$module->getVersion().'<br>';
+				$htmltooltip.=''.$langs->trans("Version").': <b>'.$module->getVersion().'</b><br>';
 				$facture->type=0;
 				$nextval=$module->getNextValue($mysoc,$commande);
 				if ("$nextval" != $langs->trans("NotAvailable"))	// Keep " on nextval
 				{
-					$htmltooltip.='<b>'.$langs->trans("NextValue").'</b>: ';
+					$htmltooltip.=''.$langs->trans("NextValue").': ';
 					if ($nextval)
 					{
 						$htmltooltip.=$nextval.'<br>';
@@ -373,17 +373,17 @@ while (($file = readdir($handle))!==false)
 		print '</td>';
 
 		// Info
-		$htmltooltip =    '<b>'.$langs->trans("Name").'</b>: '.$module->name;
-		$htmltooltip.='<br><b>'.$langs->trans("Type").'</b>: '.($module->type?$module->type:$langs->trans("Unknown"));
-		$htmltooltip.='<br><b>'.$langs->trans("Height").'/'.$langs->trans("Width").'</b>: '.$module->page_hauteur.'/'.$module->page_largeur;
-		$htmltooltip.='<br><br>'.$langs->trans("FeaturesSupported").':';
-		$htmltooltip.='<br><b>'.$langs->trans("Logo").'</b>: '.yn($module->option_logo);
-		$htmltooltip.='<br><b>'.$langs->trans("PaymentMode").'</b>: '.yn($module->option_modereg);
-		$htmltooltip.='<br><b>'.$langs->trans("PaymentConditions").'</b>: '.yn($module->option_condreg);
-		$htmltooltip.='<br><b>'.$langs->trans("MultiLanguage").'</b>: '.yn($module->option_multilang);
-		// \TODO : $htmltooltip.='<br><b>'.$langs->trans("Escompte").'</b>: '.yn($module->option_escompte);
-		$htmltooltip.='<br><b>'.$langs->trans("CreditNote").'</b>: '.yn($module->option_credit_note);
-		$htmltooltip.='<br><b>'.$langs->trans("WatermarkOnDraftOrders").'</b>: '.yn($module->option_draft_watermark);
+		$htmltooltip =    ''.$langs->trans("Name").': '.$module->name;
+		$htmltooltip.='<br>'.$langs->trans("Type").': '.($module->type?$module->type:$langs->trans("Unknown"));
+		$htmltooltip.='<br>'.$langs->trans("Height").'/'.$langs->trans("Width").': '.$module->page_hauteur.'/'.$module->page_largeur;
+		$htmltooltip.='<br><br><u>'.$langs->trans("FeaturesSupported").':</u>';
+		$htmltooltip.='<br>'.$langs->trans("Logo").': '.yn($module->option_logo,1,1);
+		$htmltooltip.='<br>'.$langs->trans("PaymentMode").': '.yn($module->option_modereg,1,1);
+		$htmltooltip.='<br>'.$langs->trans("PaymentConditions").': '.yn($module->option_condreg,1,1);
+		$htmltooltip.='<br>'.$langs->trans("MultiLanguage").': '.yn($module->option_multilang,1,1);
+		//$htmltooltip.='<br>'.$langs->trans("Escompte").': '.yn($module->option_escompte,1,1);
+		//$htmltooltip.='<br>'.$langs->trans("CreditNote").': '.yn($module->option_credit_note,1,1);
+		$htmltooltip.='<br>'.$langs->trans("WatermarkOnDraftOrders").': '.yn($module->option_draft_watermark,1,1);
 
 		print '<td align="center">';
 		print $html->textwithhelp('',$htmltooltip,1,0);
diff --git a/htdocs/admin/dons.php b/htdocs/admin/dons.php
index a99857284a59a1c6ef11fdaa5e00a7644b162a4c..2d192e5e6f90100ec3f00430110040ae270615b9 100644
--- a/htdocs/admin/dons.php
+++ b/htdocs/admin/dons.php
@@ -1,5 +1,5 @@
 <?php
-/* Copyright (C) 2005-208 Laurent Destailleur  <eldy@users.sourceforge.net>
+/* Copyright (C) 2005-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -16,7 +16,7 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
-/**	
+/**
  *      \file       htdocs/admin/dons.php
  *		\ingroup    dons
  *		\brief      Page d'administration/configuration du module Dons
@@ -71,12 +71,12 @@ if ($_GET["action"] == 'specimen')
 		$mesg='<div class="error">'.$langs->trans("ErrorModuleNotFound").'</div>';
 		dolibarr_syslog($langs->trans("ErrorModuleNotFound"), LOG_ERR);
 	}
-} 
+}
 
 if ($_GET["action"] == 'setdoc')
 {
 	$db->begin();
-	
+
     if (dolibarr_set_const($db, "DON_ADDON_MODEL",$_GET["value"]))
     {
         $conf->global->DON_ADDON_MODEL = $_GET["value"];
@@ -89,7 +89,7 @@ if ($_GET["action"] == 'setdoc')
     $result1=$db->query($sql_del);
     $sql = "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom,type) VALUES ('".$_GET["value"]."','".$type."')";
     $result2=$db->query($sql);
-    if ($result1 && $result2) 
+    if ($result1 && $result2)
     {
 		$db->commit();
     }
@@ -184,7 +184,7 @@ while (($file = readdir($handle))!==false)
         $var = !$var;
         $name = substr($file, 0, strlen($file) -12);
         $classname = substr($file, 0, strlen($file) -12);
-	
+
 		require_once($dir.'/'.$file);
 		$module=new $classname($db);
 
@@ -200,7 +200,7 @@ while (($file = readdir($handle))!==false)
 	        print '<td>';
 	        print $module->description;
 	        print '</td>';
-	
+
 			// Active
 			if (in_array($name, $def))
 			{
@@ -223,7 +223,7 @@ while (($file = readdir($handle))!==false)
 				print '<a href="'.$_SERVER["PHP_SELF"].'?action=set&amp;value='.$name.'">'.$langs->trans("Activate").'</a>';
 				print "</td>";
 			}
-	
+
 			// Defaut
 			print "<td align=\"center\">";
 			if ($conf->global->DON_ADDON_MODEL == "$name")
@@ -235,21 +235,21 @@ while (($file = readdir($handle))!==false)
 				print '<a href="'.$_SERVER["PHP_SELF"].'?action=setdoc&amp;value='.$name.'" alt="'.$langs->trans("Default").'">'.$langs->trans("Default").'</a>';
 			}
 			print '</td>';
-			
+
 			// Info
-	    	$htmltooltip =    '<b>'.$langs->trans("Name").'</b>: '.$module->name;
-	    	$htmltooltip.='<br><b>'.$langs->trans("Type").'</b>: '.($module->type?$module->type:$langs->trans("Unknown"));
-	    	$htmltooltip.='<br><b>'.$langs->trans("Height").'/'.$langs->trans("Width").'</b>: '.$module->page_hauteur.'/'.$module->page_largeur;
-	    	$htmltooltip.='<br><br>'.$langs->trans("FeaturesSupported").':';
-	    	$htmltooltip.='<br><b>'.$langs->trans("Logo").'</b>: '.yn($module->option_logo);
-	    	$htmltooltip.='<br><b>'.$langs->trans("MultiLanguage").'</b>: '.yn($module->option_multilang);
+	    	$htmltooltip =    ''.$langs->trans("Name").': '.$module->name;
+	    	$htmltooltip.='<br>'.$langs->trans("Type").': '.($module->type?$module->type:$langs->trans("Unknown"));
+	    	$htmltooltip.='<br>'.$langs->trans("Height").'/'.$langs->trans("Width").': '.$module->page_hauteur.'/'.$module->page_largeur;
+	    	$htmltooltip.='<br><br><u>'.$langs->trans("FeaturesSupported").':</u>';
+	    	$htmltooltip.='<br>'.$langs->trans("Logo").': '.yn($module->option_logo,1,1);
+	    	$htmltooltip.='<br>'.$langs->trans("MultiLanguage").': '.yn($module->option_multilang,1,1);
 	    	print '<td align="center">';
 	    	print $html->textwithhelp('',$htmltooltip,1,0);
 	    	print '</td>';
 	    	print '<td align="center">';
 	    	print '<a href="'.$_SERVER["PHP_SELF"].'?action=specimen&module='.$name.'" target="specimen">'.img_object($langs->trans("Preview"),'generic').'</a>';
 	    	print '</td>';
-	    	
+
 	        print "</tr>\n";
 	    }
     }
diff --git a/htdocs/admin/expedition.php b/htdocs/admin/expedition.php
index 434254044756b1f50622813f62076c87d389b0ca..d861f535bc43626419b598d080d25032b375d0f7 100644
--- a/htdocs/admin/expedition.php
+++ b/htdocs/admin/expedition.php
@@ -439,11 +439,11 @@ if(is_dir($dir))
 			print '</td>';
 
 			// Info
-			$htmltooltip =    '<b>'.$langs->trans("Name").'</b>: '.$module->name;
-			$htmltooltip.='<br><b>'.$langs->trans("Type").'</b>: '.($module->type?$module->type:$langs->trans("Unknown"));
-			$htmltooltip.='<br><b>'.$langs->trans("Width").'/'.$langs->trans("Height").'</b>: '.$module->page_largeur.'/'.$module->page_hauteur;
-			$htmltooltip.='<br><br>'.$langs->trans("FeaturesSupported").':';
-			$htmltooltip.='<br><b>'.$langs->trans("Logo").'</b>: '.yn($module->option_logo);
+			$htmltooltip =    ''.$langs->trans("Name").': '.$module->name;
+			$htmltooltip.='<br>'.$langs->trans("Type").': '.($module->type?$module->type:$langs->trans("Unknown"));
+			$htmltooltip.='<br>'.$langs->trans("Width").'/'.$langs->trans("Height").': '.$module->page_largeur.'/'.$module->page_hauteur;
+			$htmltooltip.='<br><br><u>'.$langs->trans("FeaturesSupported").':</u>';
+			$htmltooltip.='<br>'.$langs->trans("Logo").': '.yn($module->option_logo,1,1);
 			print '<td align="center">';
 			print $html->textwithhelp('',$htmltooltip,1,0);
 			print '</td>';
diff --git a/htdocs/admin/facture.php b/htdocs/admin/facture.php
index 8a1251801ffc1b4e600884b945fb7f6d08f71f64..824e04795497af029ace4b443477cc8c02523e0a 100644
--- a/htdocs/admin/facture.php
+++ b/htdocs/admin/facture.php
@@ -3,7 +3,7 @@
  * Copyright (C) 2004-2008 Laurent Destailleur  <eldy@users.sourceforge.net>
  * Copyright (C) 2005      Eric Seigne          <eric.seigne@ryxeo.com>
  * Copyright (C) 2005-2007 Regis Houssin        <regis@dolibarr.fr>
- * Copyright (C) 2008 	Raphael Bertrand (Resultic)  <raphael.bertrand@resultic.fr>
+ * Copyright (C) 2008 	   Raphael Bertrand (Resultic)  <raphael.bertrand@resultic.fr>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -288,12 +288,12 @@ while (($file = readdir($handle))!==false)
 
 				// Example for standard invoice
 				$htmltooltip='';
-				$htmltooltip.='<b>'.$langs->trans("Version").'</b>: '.$module->getVersion().'<br>';
+				$htmltooltip.=''.$langs->trans("Version").': <b>'.$module->getVersion().'</b><br>';
 				$facture->type=0;
 		        $nextval=$module->getNextValue($mysoc,$facture);
 				if ("$nextval" != $langs->trans("NotAvailable"))	// Keep " on nextval
 				{
-					$htmltooltip.='<b>'.$langs->trans("NextValueForInvoices").'</b>: ';
+					$htmltooltip.=$langs->trans("NextValueForInvoices").': ';
 			        if ($nextval)
 					{
 						$htmltooltip.=$nextval.'<br>';
@@ -308,7 +308,7 @@ while (($file = readdir($handle))!==false)
 		        $nextval=$module->getNextValue($mysoc,$facture);
 				if ("$nextval" != $langs->trans("NotAvailable"))	// Keep " on nextval
 				{
-					$htmltooltip.='<b>'.$langs->trans("NextValueForCreditNotes").'</b>: ';
+					$htmltooltip.=$langs->trans("NextValueForCreditNotes").': ';
 					if ($nextval)
 					{
 						$htmltooltip.=$nextval;
@@ -428,17 +428,17 @@ while (($file = readdir($handle))!==false)
 		print '</td>';
 
 		// Info
-    	$htmltooltip =    '<b>'.$langs->trans("Name").'</b>: '.$module->name;
-    	$htmltooltip.='<br><b>'.$langs->trans("Type").'</b>: '.($module->type?$module->type:$langs->trans("Unknown"));
-    	$htmltooltip.='<br><b>'.$langs->trans("Height").'/'.$langs->trans("Width").'</b>: '.$module->page_hauteur.'/'.$module->page_largeur;
-    	$htmltooltip.='<br><br>'.$langs->trans("FeaturesSupported").':';
-    	$htmltooltip.='<br><b>'.$langs->trans("Logo").'</b>: '.yn($module->option_logo,1,1);
-    	$htmltooltip.='<br><b>'.$langs->trans("PaymentMode").'</b>: '.yn($module->option_modereg,1,1);
-    	$htmltooltip.='<br><b>'.$langs->trans("PaymentConditions").'</b>: '.yn($module->option_condreg,1,1);
-    	$htmltooltip.='<br><b>'.$langs->trans("Escompte").'</b>: '.yn($module->option_escompte,1,1);
-    	$htmltooltip.='<br><b>'.$langs->trans("CreditNote").'</b>: '.yn($module->option_credit_note,1,1);
-    	$htmltooltip.='<br><b>'.$langs->trans("MultiLanguage").'</b>: '.yn($module->option_multilang,1,1);
-		$htmltooltip.='<br><b>'.$langs->trans("WatermarkOnDraftInvoices").'</b>: '.yn($module->option_draft_watermark,1,1);
+    	$htmltooltip =    ''.$langs->trans("Name").': '.$module->name;
+    	$htmltooltip.='<br>'.$langs->trans("Type").': '.($module->type?$module->type:$langs->trans("Unknown"));
+    	$htmltooltip.='<br>'.$langs->trans("Height").'/'.$langs->trans("Width").': '.$module->page_hauteur.'/'.$module->page_largeur;
+    	$htmltooltip.='<br><br><u>'.$langs->trans("FeaturesSupported").':</u>';
+    	$htmltooltip.='<br>'.$langs->trans("Logo").': '.yn($module->option_logo,1,1);
+    	$htmltooltip.='<br>'.$langs->trans("PaymentMode").': '.yn($module->option_modereg,1,1);
+    	$htmltooltip.='<br>'.$langs->trans("PaymentConditions").': '.yn($module->option_condreg,1,1);
+    	$htmltooltip.='<br>'.$langs->trans("Escompte").': '.yn($module->option_escompte,1,1);
+    	$htmltooltip.='<br>'.$langs->trans("CreditNote").': '.yn($module->option_credit_note,1,1);
+    	$htmltooltip.='<br>'.$langs->trans("MultiLanguage").': '.yn($module->option_multilang,1,1);
+		$htmltooltip.='<br>'.$langs->trans("WatermarkOnDraftInvoices").': '.yn($module->option_draft_watermark,1,1);
 
 
     	print '<td align="center">';
diff --git a/htdocs/admin/fichinter.php b/htdocs/admin/fichinter.php
index 7a83fbf3ba6bc7829a1517ed96ec5e4c8e1597e6..b084fa4cbfd1cc1d2de0e3c2661ae690dc7c94fa 100644
--- a/htdocs/admin/fichinter.php
+++ b/htdocs/admin/fichinter.php
@@ -229,10 +229,11 @@ if ($handle)
 
 				// Info
 				$htmltooltip='';
+				$htmltooltip.=''.$langs->trans("Version").': <b>'.$module->getVersion().'</b><br>';
 				$nextval=$module->getNextValue($mysoc,$ficheinter);
 				if ($nextval != $langs->trans("NotAvailable"))
 				{
-					$htmltooltip='<b>'.$langs->trans("NextValue").'</b>: '.$nextval;
+					$htmltooltip.=''.$langs->trans("NextValue").': '.$nextval;
 				}
 				print '<td align="center">';
 				print $html->textwithhelp('',$htmltooltip,1,0);
@@ -342,15 +343,15 @@ while (($file = readdir($handle))!==false)
 		print '</td>';
 
 		// Info
-		$htmltooltip =    '<b>'.$langs->trans("Type").'</b>: '.($module->type?$module->type:$langs->trans("Unknown"));
-		$htmltooltip.='<br><b>'.$langs->trans("Width").'</b>: '.$module->page_largeur;
-		$htmltooltip.='<br><b>'.$langs->trans("Height").'</b>: '.$module->page_hauteur;
-		$htmltooltip.='<br><br>'.$langs->trans("FeaturesSupported").':';
-		$htmltooltip.='<br><b>'.$langs->trans("Logo").'</b>: '.yn($module->option_logo);
-		$htmltooltip.='<br><b>'.$langs->trans("PaymentMode").'</b>: '.yn($module->option_modereg);
-		$htmltooltip.='<br><b>'.$langs->trans("PaymentConditions").'</b>: '.yn($module->option_condreg);
-		$htmltooltip.='<br><b>'.$langs->trans("MultiLanguage").'</b>: '.yn($module->option_multilang);
-		$htmltooltip.='<br><b>'.$langs->trans("WatermarkOnDraftOrders").'</b>: '.yn($module->option_draft_watermark);
+		$htmltooltip =    ''.$langs->trans("Name").': '.$module->name;
+		$htmltooltip.='<br>'.$langs->trans("Type").': '.($module->type?$module->type:$langs->trans("Unknown"));
+		$htmltooltip.='<br>'.$langs->trans("Width").'/'.$langs->trans("Height").': '.$module->page_largeur.'/'.$module->page_hauteur;
+		$htmltooltip.='<br><br><u>'.$langs->trans("FeaturesSupported").':</u>';
+		$htmltooltip.='<br>'.$langs->trans("Logo").': '.yn($module->option_logo,1,1);
+		$htmltooltip.='<br>'.$langs->trans("PaymentMode").': '.yn($module->option_modereg,1,1);
+		$htmltooltip.='<br>'.$langs->trans("PaymentConditions").': '.yn($module->option_condreg,1,1);
+		$htmltooltip.='<br>'.$langs->trans("MultiLanguage").': '.yn($module->option_multilang,1,1);
+		$htmltooltip.='<br>'.$langs->trans("WatermarkOnDraftOrders").': '.yn($module->option_draft_watermark,1,1);
 		print '<td align="center">';
 		print $html->textwithhelp('',$htmltooltip,1,0);
 		print '</td>';
diff --git a/htdocs/admin/fournisseur.php b/htdocs/admin/fournisseur.php
index 18ddd79ee446418a7f7f43506b34204c51456165..ddb7b0ff6afce013aba8de139daff298e8161c0d 100644
--- a/htdocs/admin/fournisseur.php
+++ b/htdocs/admin/fournisseur.php
@@ -225,18 +225,18 @@ if ($handle)
 					print '<a href="'.$_SERVER["PHP_SELF"].'?action=setmod&amp;value='.$file.'" alt="'.$langs->trans("Default").'">'.$langs->trans("Activate").'</a>';
 				}
 				print '</td>';
-				 
+
 				$commande=new CommandeFournisseur($db);
 				$commande->initAsSpecimen();
-				 
+
 				// Info
 				$htmltooltip='';
-				$htmltooltip.='<b>'.$langs->trans("Version").'</b>: '.$module->getVersion().'<br>';
+				$htmltooltip.=''.$langs->trans("Version").': <b>'.$module->getVersion().'</b><br>';
 				$facture->type=0;
 				$nextval=$module->getNextValue($mysoc,$commande);
 				if ("$nextval" != $langs->trans("NotAvailable"))	// Keep " on nextval
 				{
-					$htmltooltip.='<b>'.$langs->trans("NextValue").'</b>: ';
+					$htmltooltip.=''.$langs->trans("NextValue").': ';
 					if ($nextval)
 					{
 						$htmltooltip.=$nextval.'<br>';
@@ -357,13 +357,13 @@ while (($file = readdir($handle))!==false)
 		print '</td>';
 
 		// Info
-		$htmltooltip =    '<b>'.$langs->trans("Type").'</b>: '.($module->type?$module->type:$langs->trans("Unknown"));
-		$htmltooltip.='<br><b>'.$langs->trans("Width").'</b>: '.$module->page_largeur;
-		$htmltooltip.='<br><b>'.$langs->trans("Height").'</b>: '.$module->page_hauteur;
-		$htmltooltip.='<br><br>'.$langs->trans("FeaturesSupported").':';
-		$htmltooltip.='<br><b>'.$langs->trans("Logo").'</b>: '.yn($module->option_logo);
-		$htmltooltip.='<br><b>'.$langs->trans("PaymentMode").'</b>: '.yn($module->option_modereg);
-		$htmltooltip.='<br><b>'.$langs->trans("PaymentConditions").'</b>: '.yn($module->option_condreg);
+		$htmltooltip =    ''.$langs->trans("Name").': '.$module->name;
+		$htmltooltip.='<br>'.$langs->trans("Type").': '.($module->type?$module->type:$langs->trans("Unknown"));
+		$htmltooltip.='<br>'.$langs->trans("Width").'/'.$langs->trans("Height").': '.$module->page_largeur.'/'.$module->page_hauteur;
+		$htmltooltip.='<br><br><u>'.$langs->trans("FeaturesSupported").':</u>';
+		$htmltooltip.='<br>'.$langs->trans("Logo").': '.yn($module->option_logo,1,1);
+		$htmltooltip.='<br>'.$langs->trans("PaymentMode").': '.yn($module->option_modereg,1,1);
+		$htmltooltip.='<br>'.$langs->trans("PaymentConditions").': '.yn($module->option_condreg,1,1);
 		print '<td align="center">';
 		print $html->textwithhelp('',$htmltooltip,1,0);
 		print '</td>';
diff --git a/htdocs/admin/livraison.php b/htdocs/admin/livraison.php
index a6596a22cacb7c06d856b77fb6f16ad96a9e4c24..e4beef06754a0de0a7090c2b9689e9abd90e7b00 100644
--- a/htdocs/admin/livraison.php
+++ b/htdocs/admin/livraison.php
@@ -43,7 +43,7 @@ if (!$user->admin) accessforbidden();
 /*
  * Actions
  */
- 
+
 if ($_POST["action"] == 'updateMask')
 {
 	$maskconstdelivery=$_POST['maskconstdelivery'];
@@ -111,7 +111,7 @@ if ($_GET["action"] == 'del')
 if ($_GET["action"] == 'setdoc')
 {
 	$db->begin();
-	
+
     if (dolibarr_set_const($db, "LIVRAISON_ADDON_PDF",$_GET["value"]))
     {
         $conf->global->LIVRAISON_ADDON_PDF = $_GET["value"];
@@ -124,7 +124,7 @@ if ($_GET["action"] == 'setdoc')
     $result1=$db->query($sql_del);
     $sql = "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom,type) VALUES ('".$_GET["value"]."','".$type."')";
     $result2=$db->query($sql);
-    if ($result1 && $result2) 
+    if ($result1 && $result2)
     {
 		$db->commit();
     }
@@ -224,10 +224,10 @@ if ($handle)
 				print '<tr '.$bc[$var].'><td>'.$module->nom."</td><td>\n";
 				print $module->info();
 				print '</td>';
-	
+
 				// Affiche example
 				print '<td nowrap="nowrap">'.$module->getExample().'</td>';
-				
+
 				print '<td align="center">';
 				if ($conf->global->LIVRAISON_ADDON == "$file")
 				{
@@ -238,18 +238,18 @@ if ($handle)
 					print '<a href="'.$_SERVER["PHP_SELF"].'?action=setmod&amp;value='.$file.'" alt="'.$langs->trans("Default").'">'.$langs->trans("Default").'</a>';
 				}
 				print '</td>';
-				
+
 				$livraison=new Livraison($db);
 				$livraison->initAsSpecimen();
-				
+
 				// Info
 				$htmltooltip='';
-				$htmltooltip.='<b>'.$langs->trans("Version").'</b>: '.$module->getVersion().'<br>';
+				$htmltooltip.=''.$langs->trans("Version").': <b>'.$module->getVersion().'</b><br>';
 				$facture->type=0;
 		        $nextval=$module->getNextValue($mysoc,$livraison);
 				if ("$nextval" != $langs->trans("NotAvailable"))	// Keep " on nextval
 				{
-					$htmltooltip.='<b>'.$langs->trans("NextValue").'</b>: ';
+					$htmltooltip.=''.$langs->trans("NextValue").': ';
 			        if ($nextval)
 					{
 						$htmltooltip.=$nextval.'<br>';
@@ -259,11 +259,11 @@ if ($handle)
 						$htmltooltip.=$langs->trans($module->error).'<br>';
 					}
 				}
-	
+
 				print '<td align="center">';
 				print $html->textwithhelp('',$htmltooltip,1,0);
 				print '</td>';
-				
+
 				print '</tr>';
 		    }
 		}
@@ -373,11 +373,10 @@ if(is_dir($dir))
 			print '</td>';
 
 			// Info
-			$htmltooltip =    '<b>'.$langs->trans("Type").'</b>: '.($module->type?$module->type:$langs->trans("Unknown"));
-			$htmltooltip.='<br><b>'.$langs->trans("Width").'</b>: '.$module->page_largeur;
-			$htmltooltip.='<br><b>'.$langs->trans("Height").'</b>: '.$module->page_hauteur;
+			$htmltooltip =    ''.$langs->trans("Type").': '.($module->type?$module->type:$langs->trans("Unknown"));
+			$htmltooltip.='<br>'.$langs->trans("Width").'/'.$langs->trans("Height").': '.$module->page_largeur.'/'.$module->page_hauteur;
 			$htmltooltip.='<br><br>'.$langs->trans("FeaturesSupported").':';
-			$htmltooltip.='<br><b>'.$langs->trans("Logo").'</b>: '.yn($module->option_logo);
+			$htmltooltip.='<br>'.$langs->trans("Logo").': '.yn($module->option_logo,1,1);
 	    	print '<td align="center">';
 	    	print $html->textwithhelp('',$htmltooltip,1,0);
 	    	print '</td>';
diff --git a/htdocs/admin/propale.php b/htdocs/admin/propale.php
index e4f1f009c296efe5f8d21607a08037bc94728ba1..89e763f93db7978c70f0a14a61e6c133ad9a6987 100644
--- a/htdocs/admin/propale.php
+++ b/htdocs/admin/propale.php
@@ -1,6 +1,6 @@
 <?php
 /* Copyright (C) 2003-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
- * Copyright (C) 2004-2008 Laurent Destailleur  <eldy@users.sourceforge.net>
+ * Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
  * Copyright (C) 2004      Sebastien Di Cintio  <sdicintio@ressource-toi.org>
  * Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
  * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
@@ -267,12 +267,12 @@ if ($handle)
 
 				// Info
 				$htmltooltip='';
-				$htmltooltip.='<b>'.$langs->trans("Version").'</b>: '.$module->getVersion().'<br>';
+				$htmltooltip.=''.$langs->trans("Version").': <b>'.$module->getVersion().'</b><br>';
 				$facture->type=0;
 		        $nextval=$module->getNextValue($mysoc,$propale);
 				if ("$nextval" != $langs->trans("NotAvailable"))	// Keep " on nextval
 				{
-					$htmltooltip.='<b>'.$langs->trans("NextValue").'</b>: ';
+					$htmltooltip.=''.$langs->trans("NextValue").': ';
 			        if ($nextval)
 					{
 						$htmltooltip.=$nextval.'<br>';
@@ -392,17 +392,17 @@ while (($file = readdir($handle))!==false)
 		print '</td>';
 
 		// Info
-    	$htmltooltip =    '<b>'.$langs->trans("Name").'</b>: '.$module->name;
-    	$htmltooltip.='<br><b>'.$langs->trans("Type").'</b>: '.($module->type?$module->type:$langs->trans("Unknown"));
-    	$htmltooltip.='<br><b>'.$langs->trans("Height").'/'.$langs->trans("Width").'</b>: '.$module->page_hauteur.'/'.$module->page_largeur;
-    	$htmltooltip.='<br><br>'.$langs->trans("FeaturesSupported").':';
-    	$htmltooltip.='<br><b>'.$langs->trans("Logo").'</b>: '.yn($module->option_logo);
-    	$htmltooltip.='<br><b>'.$langs->trans("PaymentMode").'</b>: '.yn($module->option_modereg);
-    	$htmltooltip.='<br><b>'.$langs->trans("PaymentConditions").'</b>: '.yn($module->option_condreg);
-    	$htmltooltip.='<br><b>'.$langs->trans("MultiLanguage").'</b>: '.yn($module->option_multilang);
-		//TODO : $htmltooltip.='<br><b>'.$langs->trans("Escompte").'</b>: '.yn($module->option_escompte);
-		$htmltooltip.='<br><b>'.$langs->trans("CreditNote").'</b>: '.yn($module->option_credit_note);
-		$htmltooltip.='<br><b>'.$langs->trans("WatermarkOnDraftProposal").'</b>: '.yn($module->option_draft_watermark);
+    	$htmltooltip =    ''.$langs->trans("Name").': '.$module->name;
+    	$htmltooltip.='<br>'.$langs->trans("Type").': '.($module->type?$module->type:$langs->trans("Unknown"));
+    	$htmltooltip.='<br>'.$langs->trans("Height").'/'.$langs->trans("Width").': '.$module->page_hauteur.'/'.$module->page_largeur;
+    	$htmltooltip.='<br><br><u>'.$langs->trans("FeaturesSupported").':</u>';
+    	$htmltooltip.='<br>'.$langs->trans("Logo").': '.yn($module->option_logo,1,1);
+    	$htmltooltip.='<br>'.$langs->trans("PaymentMode").': '.yn($module->option_modereg,1,1);
+    	$htmltooltip.='<br>'.$langs->trans("PaymentConditions").': '.yn($module->option_condreg,1,1);
+    	$htmltooltip.='<br>'.$langs->trans("MultiLanguage").': '.yn($module->option_multilang,1,1);
+		//$htmltooltip.='<br>'.$langs->trans("Escompte").': '.yn($module->option_escompte,1,1);
+		//$htmltooltip.='<br>'.$langs->trans("CreditNote").': '.yn($module->option_credit_note,1,1);
+		$htmltooltip.='<br>'.$langs->trans("WatermarkOnDraftProposal").': '.yn($module->option_draft_watermark,1,1);
 
 
 
diff --git a/htdocs/admin/societe.php b/htdocs/admin/societe.php
index eca79f38dd3676269bb22b69e4e67ce1672aa5a2..e472c6ee26c7bd5a1e33408d2ff686672fca0045 100644
--- a/htdocs/admin/societe.php
+++ b/htdocs/admin/societe.php
@@ -47,7 +47,7 @@ if ($_GET["action"] == 'setcodeclient')
 	}
 	else
 	{
-		dolibarr_print_error($db);	
+		dolibarr_print_error($db);
 	}
 }
 
@@ -60,7 +60,7 @@ if ($_GET["action"] == 'setcodecompta')
 	}
 	else
 	{
-		dolibarr_print_error($db);	
+		dolibarr_print_error($db);
 	}
 }
 
@@ -80,8 +80,8 @@ if ($_POST["action"] == 'usesearchtoselectcompany')
 // define constants for tigre model
 if ($_POST["action"] == 'updateMask')
 {
-	dolibarr_set_const($db, "CODE_TIGRE_MASK_CUSTOMER",$_POST["maskcustomer"]);
-	dolibarr_set_const($db, "CODE_TIGRE_MASK_SUPPLIER",$_POST["masksupplier"]);
+	dolibarr_set_const($db, "COMPANY_ELEPHANT_MASK_CUSTOMER",$_POST["maskcustomer"]);
+	dolibarr_set_const($db, "COMPANY_ELEPHANT_MASK_SUPPLIER",$_POST["masksupplier"]);
 }
 
 
@@ -120,7 +120,7 @@ $handle = opendir($dir);
 if ($handle)
 {
 	$var = true;
-	
+
 	// Loop on each module find in opened directory
 	while (($file = readdir($handle))!==false)
     {
@@ -141,7 +141,7 @@ if ($handle)
 	  print $modCodeTiers->info($langs);
 	  print "</td>\n";
 	  print '<td nowrap="nowrap">'.$modCodeTiers->getExample($langs)."</td>\n";
-	  
+
 	  if ($conf->global->SOCIETE_CODECLIENT_ADDON == "$file")
 	    {
 	      print "<td align=\"center\">\n";
@@ -157,7 +157,7 @@ if ($handle)
   		$s=$modCodeTiers->getToolTip($langs,$soc,-1);
 		print $form->textwithhelp('',$s,1);
 		print '</td>';
-		
+
 	  print '</tr>';
 	}
     }
@@ -205,7 +205,7 @@ if ($handle)
 	  print $modCodeCompta->info($langs);
 	  print '</td>';
 	  print '<td nowrap="nowrap">'.$modCodeCompta->getExample($langs)."</td>\n";
-	  
+
 	  if ($conf->global->SOCIETE_CODECOMPTA_ADDON == "$file")
 	    {
 	      print '<td align="center">';
@@ -224,7 +224,7 @@ if ($handle)
   closedir($handle);
 }
 print "</table>\n";
-	
+
 print '<br>';
 
 
@@ -246,7 +246,7 @@ print '<td width="80%">'.$langs->trans("UseSearchToSelectCompany").'</td>';
 if (! $conf->use_javascript_ajax)
 {
   print '<td nowrap="nowrap" align="right" colspan="2">';
-  print $langs->trans("NotAvailableWhenAjaxDisabled");	
+  print $langs->trans("NotAvailableWhenAjaxDisabled");
   print "</td>";
 }
 else
diff --git a/htdocs/includes/modules/commande/mod_commande_saphir.php b/htdocs/includes/modules/commande/mod_commande_saphir.php
index 220d5e309f71acf92e8aaa5be0fb12305a0c48e8..85bd41b7a323778ef9d94f05d5b7b20a020db3b3 100644
--- a/htdocs/includes/modules/commande/mod_commande_saphir.php
+++ b/htdocs/includes/modules/commande/mod_commande_saphir.php
@@ -40,7 +40,7 @@ class mod_commande_saphir extends ModeleNumRefCommandes
 	var $error = '';
 	var $nom = 'Saphir';
 
-	
+
     /**     \brief      Renvoi la description du modele de num�rotation
      *      \return     string      Texte descripif
      */
@@ -49,23 +49,29 @@ class mod_commande_saphir extends ModeleNumRefCommandes
     	global $conf,$langs;
 
 		$langs->load("bills");
-		
+
 		$form = new Form($db);
-    	
+
 		$texte = $langs->trans('GenericNumRefModelDesc')."<br>\n";
 		$texte.= '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
 		$texte.= '<input type="hidden" name="action" value="updateMask">';
 		$texte.= '<input type="hidden" name="maskconstorder" value="COMMANDE_SAPHIR_MASK">';
 		$texte.= '<table class="nobordernopadding" width="100%">';
-		
-		// Parametrage du prefix des factures
+
+		$tooltip=$langs->trans("GenericMaskCodes",$langs->transnoentities("Order"));
+		$tooltip.=$langs->trans("GenericMaskCodes2");
+		$tooltip.=$langs->trans("GenericMaskCodes3");
+		$tooltip.=$langs->trans("GenericMaskCodes4a",$langs->transnoentities("Order"),$langs->transnoentities("Order"));
+		$tooltip.=$langs->trans("GenericMaskCodes5");
+
+		// Parametrage du prefix
 		$texte.= '<tr><td>'.$langs->trans("Mask").':</td>';
-		$texte.= '<td align="right">'.$form->textwithhelp('<input type="text" class="flat" size="24" name="maskorder" value="'.$conf->global->COMMANDE_SAPHIR_MASK.'">',$langs->trans("GenericMaskCodes",$langs->transnoentities("Order"),$langs->transnoentities("Order"),$langs->transnoentities("Order")),1,1).'</td>';
+		$texte.= '<td align="right">'.$form->textwithhelp('<input type="text" class="flat" size="24" name="maskorder" value="'.$conf->global->COMMANDE_SAPHIR_MASK.'">',$tooltip,1,1).'</td>';
 
 		$texte.= '<td align="left" rowspan="2">&nbsp; <input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button"></td>';
 
 		$texte.= '</tr>';
-		
+
 		$texte.= '</table>';
 		$texte.= '</form>';
 
@@ -78,12 +84,12 @@ class mod_commande_saphir extends ModeleNumRefCommandes
     function getExample()
     {
      	global $conf,$langs,$mysoc;
-    	
+
     	$old_code_client=$mysoc->code_client;
     	$mysoc->code_client='CCCCCCCCCC';
      	$numExample = $this->getNextValue($mysoc,'');
 		$mysoc->code_client=$old_code_client;
-     	
+
 		if (! $numExample)
 		{
 			$numExample = $langs->trans('NotConfigured');
@@ -101,22 +107,22 @@ class mod_commande_saphir extends ModeleNumRefCommandes
 		global $db,$conf;
 
 		require_once(DOL_DOCUMENT_ROOT ."/lib/functions2.lib.php");
-		
+
 		// We get cursor rule
 		$mask=$conf->global->COMMANDE_SAPHIR_MASK;
-		
-		if (! $mask) 
+
+		if (! $mask)
 		{
 			$this->error='NotConfigured';
 			return 0;
 		}
 
 		$numFinal=get_next_value($db,$mask,'commande','ref','',$objsoc->code_client,$commande->date);
-		
+
 		return  $numFinal;
 	}
-    
-  
+
+
 	/**		\brief      Return next free value
     *      	\param      objsoc      Object third party
 	* 		\param		objforref	Object for number to search
@@ -126,7 +132,7 @@ class mod_commande_saphir extends ModeleNumRefCommandes
     {
         return $this->getNextValue($objsoc,$objforref);
     }
-	
-}    
+
+}
 
 ?>
\ No newline at end of file
diff --git a/htdocs/includes/modules/facture/mercure/mercure.modules.php b/htdocs/includes/modules/facture/mercure/mercure.modules.php
index d102a459d592eb6f15977f8d2c5d032d05f25143..d3adb1e43bd931acad21e51cecbefd6f832ebabc 100644
--- a/htdocs/includes/modules/facture/mercure/mercure.modules.php
+++ b/htdocs/includes/modules/facture/mercure/mercure.modules.php
@@ -39,7 +39,7 @@ class mod_facture_mercure extends ModeleNumRefFactures
 	var $version='dolibarr';		// 'development', 'experimental', 'dolibarr'
 	var $error = '';
 
-	
+
     /**     \brief      Renvoi la description du modele de numerotation
      *      \return     string      Texte descripif
      */
@@ -48,47 +48,53 @@ class mod_facture_mercure extends ModeleNumRefFactures
 		global $conf,$langs;
 
 		$langs->load("bills");
-		
+
 		$form = new Form($db);
-		
+
 		$texte = $langs->trans('GenericNumRefModelDesc')."<br>\n";
 		$texte.= '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
 		$texte.= '<input type="hidden" name="action" value="updateMask">';
 		$texte.= '<input type="hidden" name="maskconstinvoice" value="FACTURE_MERCURE_MASK_INVOICE">';
 		$texte.= '<input type="hidden" name="maskconstcredit" value="FACTURE_MERCURE_MASK_CREDIT">';
 		$texte.= '<table class="nobordernopadding" width="100%">';
-		
-		// Parametrage du prefix des factures
+
+		$tooltip=$langs->trans("GenericMaskCodes",$langs->transnoentities("Invoice"));
+		$tooltip.=$langs->trans("GenericMaskCodes2");
+		$tooltip.=$langs->trans("GenericMaskCodes3");
+		$tooltip.=$langs->trans("GenericMaskCodes4a",$langs->transnoentities("Invoice"),$langs->transnoentities("Invoice"));
+		$tooltip.=$langs->trans("GenericMaskCodes5");
+
+		// Parametrage du prefix
 		$texte.= '<tr><td>'.$langs->trans("Mask").' ('.$langs->trans("InvoiceStandard").'):</td>';
-		$texte.= '<td align="right">'.$form->textwithhelp('<input type="text" class="flat" size="24" name="maskinvoice" value="'.$conf->global->FACTURE_MERCURE_MASK_INVOICE.'">',$langs->trans("GenericMaskCodes",$langs->transnoentities("Invoice"),$langs->transnoentities("Invoice"),$langs->transnoentities("Invoice")),1,1).'</td>';
+		$texte.= '<td align="right">'.$form->textwithhelp('<input type="text" class="flat" size="24" name="maskinvoice" value="'.$conf->global->FACTURE_MERCURE_MASK_INVOICE.'">',$tooltip,1,1).'</td>';
 
 		$texte.= '<td align="left" rowspan="2">&nbsp; <input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button"></td>';
 
 		$texte.= '</tr>';
-		
+
 		// Parametrage du prefix des avoirs
 		$texte.= '<tr><td>'.$langs->trans("Mask").' ('.$langs->trans("InvoiceAvoir").'):</td>';
-		$texte.= '<td align="right">'.$form->textwithhelp('<input type="text" class="flat" size="24" name="maskcredit" value="'.$conf->global->FACTURE_MERCURE_MASK_CREDIT.'">',$langs->trans("GenericMaskCodes",$langs->transnoentities("Invoice"),$langs->transnoentities("Invoice"),$langs->transnoentities("Invoice")),1,1).'</td>';
+		$texte.= '<td align="right">'.$form->textwithhelp('<input type="text" class="flat" size="24" name="maskcredit" value="'.$conf->global->FACTURE_MERCURE_MASK_CREDIT.'">',$tooltip,1,1).'</td>';
 		$texte.= '</tr>';
-		
+
 		$texte.= '</table>';
 		$texte.= '</form>';
 
 		return $texte;
     }
 
-    /**     \brief      Renvoi un exemple de numerotation
+    /**     \brief      Return an example of number value
      *      \return     string      Example
      */
     function getExample()
     {
     	global $conf,$langs,$mysoc;
-    	
+
     	$old_code_client=$mysoc->code_client;
     	$mysoc->code_client='CCCCCCCCCC';
     	$numExample = $this->getNextValue($mysoc,'');
 		$mysoc->code_client=$old_code_client;
-        
+
 		if (! $numExample)
 		{
 			$numExample = $langs->trans('NotConfigured');
@@ -106,12 +112,12 @@ class mod_facture_mercure extends ModeleNumRefFactures
 		global $db,$conf;
 
 		require_once(DOL_DOCUMENT_ROOT ."/lib/functions2.lib.php");
-		
-		// On defini critere recherche compteur
+
+		// Get Mask value
+		$mask = '';
 		if (is_object($facture) && $facture->type == 2) $mask=$conf->global->FACTURE_MERCURE_MASK_CREDIT;
 		else $mask=$conf->global->FACTURE_MERCURE_MASK_INVOICE;
-		
-		if (! $mask) 
+		if (! $mask)
 		{
 			$this->error='NotConfigured';
 			return 0;
@@ -120,13 +126,13 @@ class mod_facture_mercure extends ModeleNumRefFactures
 		$where='';
 		if ($facture->type == 2) $where.= " AND type = 2";
 		else $where.=" AND type != 2";
-		
+
 		$numFinal=get_next_value($db,$mask,'facture','facnumber',$where,$objsoc->code_client,$facture->date);
-		
+
 		return  $numFinal;
 	}
-    
-  
+
+
 	/**		\brief      Return next free value
     *      	\param      objsoc      Object third party
 	* 		\param		objforref	Object for number to search
@@ -136,6 +142,6 @@ class mod_facture_mercure extends ModeleNumRefFactures
     {
         return $this->getNextValue($objsoc,$objforref);
     }
-	
-}    
+
+}
 ?>
\ No newline at end of file
diff --git a/htdocs/includes/modules/fichinter/mod_arctic.php b/htdocs/includes/modules/fichinter/mod_arctic.php
index 09530ed51cac47a6c23deb13505a78c999e79df6..f15d067e1a6ffba5aee6987424493ce7a955c2ca 100644
--- a/htdocs/includes/modules/fichinter/mod_arctic.php
+++ b/htdocs/includes/modules/fichinter/mod_arctic.php
@@ -38,7 +38,7 @@ class mod_arctic extends ModeleNumRefFicheinter
 	var $version='dolibarr';		// 'development', 'experimental', 'dolibarr'
 	var $error = '';
 	var $nom = 'Artic';
-	
+
 	/**   \brief      Constructeur
 	*/
 	function mod_arctic()
@@ -54,23 +54,29 @@ class mod_arctic extends ModeleNumRefFicheinter
     	global $conf,$langs;
 
 		$langs->load("bills");
-		
+
 		$form = new Form($db);
-    	
+
 		$texte = $langs->trans('GenericNumRefModelDesc')."<br>\n";
 		$texte.= '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
 		$texte.= '<input type="hidden" name="action" value="updateMask">';
 		$texte.= '<input type="hidden" name="maskconst" value="FICHINTER_ARTIC_MASK">';
 		$texte.= '<table class="nobordernopadding" width="100%">';
-		
-		// Parametrage du prefix des factures
+
+		$tooltip=$langs->trans("GenericMaskCodes",$langs->transnoentities("InterventionCard"));
+		$tooltip.=$langs->trans("GenericMaskCodes2");
+		$tooltip.=$langs->trans("GenericMaskCodes3");
+		$tooltip.=$langs->trans("GenericMaskCodes4a",$langs->transnoentities("InterventionCard"),$langs->transnoentities("InterventionCard"));
+		$tooltip.=$langs->trans("GenericMaskCodes5");
+
+		// Parametrage du prefix
 		$texte.= '<tr><td>'.$langs->trans("Mask").':</td>';
-		$texte.= '<td align="right">'.$form->textwithhelp('<input type="text" class="flat" size="24" name="maskvalue" value="'.$conf->global->FICHINTER_ARTIC_MASK.'">',$langs->trans("GenericMaskCodes",$langs->transnoentities("InterventionCard"),$langs->transnoentities("InterventionCard"),$langs->transnoentities("InterventionCard")),1,1).'</td>';
+		$texte.= '<td align="right">'.$form->textwithhelp('<input type="text" class="flat" size="24" name="maskvalue" value="'.$conf->global->FICHINTER_ARTIC_MASK.'">',$tooltip,1,1).'</td>';
 
 		$texte.= '<td align="left" rowspan="2">&nbsp; <input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button"></td>';
 
 		$texte.= '</tr>';
-		
+
 		$texte.= '</table>';
 		$texte.= '</form>';
 
@@ -83,12 +89,12 @@ class mod_arctic extends ModeleNumRefFicheinter
     function getExample()
     {
      	global $conf,$langs,$mysoc;
-    	
+
     	$old_code_client=$mysoc->code_client;
     	$mysoc->code_client='CCCCCCCCCC';
      	$numExample = $this->getNextValue($mysoc,'');
 		$mysoc->code_client=$old_code_client;
-     	
+
 		if (! $numExample)
 		{
 			$numExample = $langs->trans('NotConfigured');
@@ -106,22 +112,22 @@ class mod_arctic extends ModeleNumRefFicheinter
 		global $db,$conf;
 
 		require_once(DOL_DOCUMENT_ROOT ."/lib/functions2.lib.php");
-		
+
 		// On d�fini critere recherche compteur
 		$mask=$conf->global->FICHINTER_ARTIC_MASK;
-		
-		if (! $mask) 
+
+		if (! $mask)
 		{
 			$this->error='NotConfigured';
 			return 0;
 		}
 
 		$numFinal=get_next_value($db,$mask,'fichinter','ref','',$objsoc->code_client,$ficheinter->date);
-		
+
 		return  $numFinal;
   }
-    
-  
+
+
 	/**		\brief      Return next free value
     *      	\param      objsoc      Object third party
 	* 		\param		objforref	Object for number to search
@@ -132,6 +138,6 @@ class mod_arctic extends ModeleNumRefFicheinter
         return $this->getNextValue($objsoc,$objforref);
     }
 
-}    
+}
 
 ?>
\ No newline at end of file
diff --git a/htdocs/includes/modules/livraison/mod_livraison_saphir.php b/htdocs/includes/modules/livraison/mod_livraison_saphir.php
index 4a4a6de9a39ee99fc9119dd055d698ff8e701114..575e328dd8efb28b72db1baf9038e95ab61d8ddd 100644
--- a/htdocs/includes/modules/livraison/mod_livraison_saphir.php
+++ b/htdocs/includes/modules/livraison/mod_livraison_saphir.php
@@ -37,8 +37,8 @@ class mod_livraison_saphir extends ModeleNumRefDeliveryOrder
 	var $version='dolibarr';		// 'development', 'experimental', 'dolibarr'
 	var $error = '';
 	var $nom = 'Saphir';
-	
-	
+
+
     /**     \brief      Renvoi la description du modele de numerotation
      *      \return     string      Texte descripif
      */
@@ -47,23 +47,29 @@ class mod_livraison_saphir extends ModeleNumRefDeliveryOrder
     	global $conf,$langs;
 
 		$langs->load("bills");
-		
+
 		$form = new Form($db);
-    	
+
 		$texte = $langs->trans('GenericNumRefModelDesc')."<br>\n";
 		$texte.= '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
 		$texte.= '<input type="hidden" name="action" value="updateMask">';
 		$texte.= '<input type="hidden" name="maskconstdelivery" value="LIVRAISON_SAPHIR_MASK">';
 		$texte.= '<table class="nobordernopadding" width="100%">';
-		
-		// Parametrage du prefix des factures
+
+		$tooltip=$langs->trans("GenericMaskCodes",$langs->transnoentities("Delivery"));
+		$tooltip.=$langs->trans("GenericMaskCodes2");
+		$tooltip.=$langs->trans("GenericMaskCodes3");
+		$tooltip.=$langs->trans("GenericMaskCodes4a",$langs->transnoentities("Delivery"),$langs->transnoentities("Delivery"));
+		$tooltip.=$langs->trans("GenericMaskCodes5");
+
+		// Parametrage du prefix
 		$texte.= '<tr><td>'.$langs->trans("Mask").':</td>';
-		$texte.= '<td align="right">'.$form->textwithhelp('<input type="text" class="flat" size="24" name="maskdelivery" value="'.$conf->global->LIVRAISON_SAPHIR_MASK.'">',$langs->trans("GenericMaskCodes",$langs->transnoentities("Delivery"),$langs->transnoentities("Delivery"),$langs->transnoentities("Delivery")),1,1).'</td>';
+		$texte.= '<td align="right">'.$form->textwithhelp('<input type="text" class="flat" size="24" name="maskdelivery" value="'.$conf->global->LIVRAISON_SAPHIR_MASK.'">',$tooltip,1,1).'</td>';
 
 		$texte.= '<td align="left" rowspan="2">&nbsp; <input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button"></td>';
 
 		$texte.= '</tr>';
-		
+
 		$texte.= '</table>';
 		$texte.= '</form>';
 
@@ -76,12 +82,12 @@ class mod_livraison_saphir extends ModeleNumRefDeliveryOrder
     function getExample()
     {
      	global $conf,$langs,$mysoc;
-    	
+
     	$old_code_client=$mysoc->code_client;
     	$mysoc->code_client='CCCCCCCCCC';
 		$numExample = $this->getNextValue($mysoc,'');
     	$mysoc->code_client=$old_code_client;
-    	
+
 		if (! $numExample)
 		{
 			$numExample = $langs->trans('NotConfigured');
@@ -100,22 +106,22 @@ class mod_livraison_saphir extends ModeleNumRefDeliveryOrder
 		global $db,$conf;
 
 		require_once(DOL_DOCUMENT_ROOT ."/lib/functions2.lib.php");
-		
+
 		// On d�fini critere recherche compteur
 		$mask=$conf->global->LIVRAISON_SAPHIR_MASK;
-		
-		if (! $mask) 
+
+		if (! $mask)
 		{
 			$this->error='NotConfigured';
 			return 0;
 		}
 
 		$numFinal=get_next_value($db,$mask,'livraison','ref','',$objsoc->code_client,$livraison->date_livraison);
-		
+
 		return  $numFinal;
     }
 
-  
+
 	/**		\brief      Return next free value
     *      	\param      objsoc      Object third party
 	* 		\param		objforref	Object for number to search
@@ -125,7 +131,7 @@ class mod_livraison_saphir extends ModeleNumRefDeliveryOrder
     {
         return $this->getNextValue($objsoc,$objforref);
     }
-    
+
 
 	/**     \brief      Renvoie la r�f�rence de commande suivante non utilis�e
      *      \param      objsoc      Objet soci�t�
@@ -136,7 +142,7 @@ class mod_livraison_saphir extends ModeleNumRefDeliveryOrder
     {
         return $this->getNextValue($objsoc,$livraison);
     }
-    
-}    
+
+}
 
 ?>
\ No newline at end of file
diff --git a/htdocs/includes/modules/propale/mod_propale_saphir.php b/htdocs/includes/modules/propale/mod_propale_saphir.php
index 177786ce7c0f1993c4f5244a40ee357cfd500d2d..3dd3bc731c50d4be5c36512a7a8654d8867da83e 100644
--- a/htdocs/includes/modules/propale/mod_propale_saphir.php
+++ b/htdocs/includes/modules/propale/mod_propale_saphir.php
@@ -39,7 +39,7 @@ class mod_propale_saphir extends ModeleNumRefPropales
 	var $version='dolibarr';		// 'development', 'experimental', 'dolibarr'
 	var $error = '';
 	var $nom = 'Saphir';
-	
+
 
     /**     \brief      Renvoi la description du modele de num�rotation
      *      \return     string      Texte descripif
@@ -49,23 +49,29 @@ class mod_propale_saphir extends ModeleNumRefPropales
     	global $conf,$langs;
 
 		$langs->load("bills");
-		
+
 		$form = new Form($db);
-    	
+
 		$texte = $langs->trans('GenericNumRefModelDesc')."<br>\n";
 		$texte.= '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
 		$texte.= '<input type="hidden" name="action" value="updateMask">';
 		$texte.= '<input type="hidden" name="maskconstpropal" value="PROPALE_SAPHIR_MASK">';
 		$texte.= '<table class="nobordernopadding" width="100%">';
-		
-		// Parametrage du prefix des factures
+
+		$tooltip=$langs->trans("GenericMaskCodes",$langs->transnoentities("Proposal"));
+		$tooltip.=$langs->trans("GenericMaskCodes2");
+		$tooltip.=$langs->trans("GenericMaskCodes3");
+		$tooltip.=$langs->trans("GenericMaskCodes4a",$langs->transnoentities("Proposal"),$langs->transnoentities("Proposal"));
+		$tooltip.=$langs->trans("GenericMaskCodes5");
+
+		// Parametrage du prefix
 		$texte.= '<tr><td>'.$langs->trans("Mask").':</td>';
-		$texte.= '<td align="right">'.$form->textwithhelp('<input type="text" class="flat" size="24" name="maskpropal" value="'.$conf->global->PROPALE_SAPHIR_MASK.'">',$langs->trans("GenericMaskCodes",$langs->transnoentities("Proposal"),$langs->transnoentities("Proposal"),$langs->transnoentities("Proposal")),1,1).'</td>';
+		$texte.= '<td align="right">'.$form->textwithhelp('<input type="text" class="flat" size="24" name="maskpropal" value="'.$conf->global->PROPALE_SAPHIR_MASK.'">',$tooltip,1,1).'</td>';
 
 		$texte.= '<td align="left" rowspan="2">&nbsp; <input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button"></td>';
 
 		$texte.= '</tr>';
-		
+
 		$texte.= '</table>';
 		$texte.= '</form>';
 
@@ -78,12 +84,12 @@ class mod_propale_saphir extends ModeleNumRefPropales
     function getExample()
     {
      	global $conf,$langs,$mysoc;
-    	
+
     	$old_code_client=$mysoc->code_client;
     	$mysoc->code_client='CCCCCCCCCC';
      	$numExample = $this->getNextValue($mysoc,'');
 		$mysoc->code_client=$old_code_client;
-     	
+
 		if (! $numExample)
 		{
 			$numExample = $langs->trans('NotConfigured');
@@ -101,20 +107,20 @@ class mod_propale_saphir extends ModeleNumRefPropales
 		global $db,$conf;
 
 		require_once(DOL_DOCUMENT_ROOT ."/lib/functions2.lib.php");
-		
+
 		// On d�fini critere recherche compteur
 		$mask=$conf->global->PROPALE_SAPHIR_MASK;
-		
-		if (! $mask) 
+
+		if (! $mask)
 		{
 			$this->error='NotConfigured';
 			return 0;
 		}
 
 		$numFinal=get_next_value($db,$mask,'propal','ref','',$objsoc->code_client,$propal->date);
-		
+
 		return  $numFinal;
 	}
 
-}    
+}
 ?>
\ No newline at end of file
diff --git a/htdocs/includes/modules/societe/mod_codeclient_elephant.php b/htdocs/includes/modules/societe/mod_codeclient_elephant.php
new file mode 100644
index 0000000000000000000000000000000000000000..63a2c6f98452c9e5379e4a65907b50a02db5c688
--- /dev/null
+++ b/htdocs/includes/modules/societe/mod_codeclient_elephant.php
@@ -0,0 +1,285 @@
+<?php
+/* Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
+ * Copyright (C) 2006-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
+ * Copyright (C) 2007      Regis Houssin        <regis@dolibarr.fr>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * or see http://www.gnu.org/
+ */
+
+/**
+ *       \file       htdocs/includes/modules/societe/mod_codeclient_elephant.class.php
+ *       \ingroup    societe
+ *       \brief      File of class to manage third party code with elephant rule
+ *       \version    $Id$
+ */
+
+require_once(DOL_DOCUMENT_ROOT."/includes/modules/societe/modules_societe.class.php");
+
+
+/**
+ *       \class 		mod_codeclient_elephant
+ *       \brief 		Class to manage third party code with elephant rule
+ */
+class mod_codeclient_elephant extends ModeleThirdPartyCode
+{
+	var $nom;							// Nom du modele
+	var $code_modifiable;				// Code modifiable
+	var $code_modifiable_invalide;		// Code modifiable si il est invalide
+	var $code_modifiable_null;			// Code modifiables si il est null
+	var $code_null;						// Code facultatif
+	var $version;		// 'development', 'experimental', 'dolibarr'
+	var $code_auto; // Numerotation automatique
+
+	var $searchcode; // String de recherche
+	var $numbitcounter; // Nombre de chiffres du compteur
+	var $prefixIsRequired; // Le champ prefix du tiers doit etre renseign� quand on utilise {pre}
+
+
+	/**		\brief      Constructeur classe
+	 */
+	function mod_codeclient_elephant()
+	{
+		$this->nom = "Elephant";
+		$this->version = "dolibarr";
+		$this->code_modifiable = 0;
+		$this->code_modifiable_invalide = 1;
+		$this->code_modifiable_null = 1;
+		$this->code_null = 0;
+		$this->code_auto = 1;
+		$this->prefixIsRequired = 0;
+	}
+
+
+	/**		\brief      Renvoi la description du module
+	 *      	\return     string      Texte descripif
+	 */
+	function info($langs)
+	{
+		global $conf,$langs;
+
+		$langs->load("companies");
+
+		$form = new Form($db);
+
+		$texte = $langs->trans('GenericNumRefModelDesc')."<br>\n";
+		$texte.= '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
+		$texte.= '<input type="hidden" name="action" value="updateMask">';
+		$texte.= '<input type="hidden" name="maskcustomer" value="COMPANY_ELEPHANT_MASK_CUSTOMER">';
+		$texte.= '<input type="hidden" name="masksupplier" value="COMPANY_ELEPHANT_MASK_SUPPLIER">';
+		$texte.= '<table class="nobordernopadding" width="100%">';
+
+		$tooltip=$langs->trans("GenericMaskCodes",$langs->transnoentities("ThirdParty"));
+		//$tooltip.=$langs->trans("GenericMaskCodes2");	Not required for third party numbering
+		$tooltip.=$langs->trans("GenericMaskCodes3");
+		$tooltip.=$langs->trans("GenericMaskCodes4b");
+		$tooltip.=$langs->trans("GenericMaskCodes5");
+
+		// Parametrage du prefix customers
+		$texte.= '<tr><td>'.$langs->trans("Mask").' ('.$langs->trans("CustomerCodeModel").'):</td>';
+		$texte.= '<td align="right">'.$form->textwithhelp('<input type="text" class="flat" size="24" name="maskcustomer" value="'.$conf->global->COMPANY_ELEPHANT_MASK_CUSTOMER.'">',$tooltip,1,1).'</td>';
+
+		$texte.= '<td align="left" rowspan="2">&nbsp; <input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button"></td>';
+
+		$texte.= '</tr>';
+
+		// Parametrage du prefix suppliers
+		$texte.= '<tr><td>'.$langs->trans("Mask").' ('.$langs->trans("SupplierCodeModel").'):</td>';
+		$texte.= '<td align="right">'.$form->textwithhelp('<input type="text" class="flat" size="24" name="masksupplier" value="'.$conf->global->COMPANY_ELEPHANT_MASK_SUPPLIER.'">',$tooltip,1,1).'</td>';
+		$texte.= '</tr>';
+
+		$texte.= '</table>';
+		$texte.= '</form>';
+
+		return $texte;
+	}
+
+
+	/**	   \brief      Return an example of number value
+	 *     \param      $type       Client ou fournisseur (1:client, 2:fournisseur)
+	 *     \return     string      Texte descripif
+	 */
+	function getExample($langs,$objsoc=0,$type=-1)
+	{
+		if ($type == 0 || $type == -1)
+		{
+			$examplecust = $this->getNextValue($objsoc,0);
+			if (! $examplecust)
+			{
+				$examplecust = $langs->trans('NotConfigured');
+			}
+		}
+		if ($type == 1 || $type == -1)
+		{
+			$examplesup = $this->getNextValue($objsoc,1);
+			if (! $examplesup)
+			{
+				$examplesup = $langs->trans('NotConfigured');
+			}
+		}
+
+		if ($type == 0) return $examplecust;
+		if ($type == 1) return $examplesup;
+		return $examplecust.'<br>'.$examplesup;
+	}
+
+	/**		\brief      Return next value
+	 *     	\param      objsoc      Object third party
+	 *	    \param      $type       Client ou fournisseur (1:client, 2:fournisseur)
+	 *     	\return     string      Value if OK, '' if module not configured, <0 if KO
+	 */
+	function getNextValue($objsoc=0,$type=-1)
+	{
+		global $db,$conf;
+
+		require_once(DOL_DOCUMENT_ROOT ."/lib/functions2.lib.php");
+
+		// Get Mask value
+		$mask = '';
+		if ($type==0) $mask = $conf->global->COMPANY_ELEPHANT_MASK_CUSTOMER;
+		if ($type==1) $mask = $conf->global->COMPANY_ELEPHANT_MASK_SUPPLIER;
+		if (! $mask)
+		{
+			$this->error='NotConfigured';
+			return '';
+		}
+
+		$field='';$where='';
+		if ($type == 0)
+		{
+			$field = 'code_client';
+			//$where = ' AND client in (1,2)';
+		}
+		else if ($type == 1)
+		{
+			$field = 'code_fournisseur';
+			//$where = ' AND fournisseur = 1';
+		}
+		else return -1;
+
+		$now=gmmktime();
+
+		$numFinal=get_next_value($db,$mask,'societe',$field,$where,'',$now);
+
+		return  $numFinal;
+	}
+
+
+	/**
+	 *   \brief  Verifie si le mask utilise le prefix
+	 *
+	 */
+	function verif_prefixIsUsed()
+	{
+		global $conf;
+
+		$mask = $conf->global->COMPANY_ELEPHANT_MASK_CUSTOMER;
+		if (eregi('\{pre\}',$mask)) return 1;
+
+		$mask = $conf->global->COMPANY_ELEPHANT_MASK_SUPPLIER;
+		if (eregi('\{pre\}',$mask)) return 1;
+
+		return 0;
+	}
+
+
+	/**
+	 * 		\brief		Verifie la validite du code
+	 *		\param		$db			Handler acces base
+	 *		\param		$code		Code a verifier/corriger
+	 *		\param		$soc		Objet societe
+	 *   	\param    	$type   	0 = client/prospect , 1 = fournisseur
+	 *		\return		int			<0 if KO, 0 if OK
+	 */
+	function verif($db, &$code, $soc, $type)
+	{
+		global $conf;
+
+		require_once(DOL_DOCUMENT_ROOT ."/lib/functions2.lib.php");
+
+		$result=0;
+		$code = strtoupper(trim($code));
+
+		if (! $code && $this->code_null)
+		{
+			$result=0;
+		}
+		else
+		{
+			// Get Mask value
+			$mask = '';
+			if ($type==0) $mask = $conf->global->COMPANY_ELEPHANT_MASK_CUSTOMER;
+			if ($type==1) $mask = $conf->global->COMPANY_ELEPHANT_MASK_SUPPLIER;
+			if (! $mask)
+			{
+				$this->error='NotConfigured';
+				return '';
+			}
+
+			$result=check_value($mask,$code);
+		}
+
+		dolibarr_syslog("mod_codeclient_elephant::verif type=".$type." result=".$result);
+		return $result;
+	}
+
+
+	/**
+	 *		\brief		Renvoi une valeur correcte
+	 *		\param		$db			Handler acces base
+	 *		\param		$code		Code reference eventuel
+	 *		\return		string		Code correct, <0 si KO
+	 */
+	function get_correct($db, $code)
+	{
+
+	}
+
+
+	/**
+	 *		\brief		Renvoi si un code est pris ou non (par autre tiers)
+	 *		\param		$db			Handler acces base
+	 *		\param		$code		Code a verifier
+	 *		\param		$soc		Objet societe
+	 *		\return		int			0 si dispo, <0 si erreur
+	 */
+	function verif_dispo($db, $code, $soc)
+	{
+		$sql = "SELECT code_client FROM ".MAIN_DB_PREFIX."societe";
+		$sql.= " WHERE code_client = '".$code."'";
+		$sql.= " AND rowid != '".$soc->id."'";
+
+		$resql=$db->query($sql);
+		if ($resql)
+		{
+			if ($db->num_rows($resql) == 0)
+			{
+				return 0;
+			}
+			else
+			{
+				return -1;
+			}
+		}
+		else
+		{
+			return -2;
+		}
+
+	}
+
+}
+
+?>
diff --git a/htdocs/includes/modules/societe/mod_codeclient_leopard.php b/htdocs/includes/modules/societe/mod_codeclient_leopard.php
index 1658dd63e21047fcb447d82bb3f5d0f09e891a35..b0eef718a0ab177db2d3e10dac36786f5a07f811 100644
--- a/htdocs/includes/modules/societe/mod_codeclient_leopard.php
+++ b/htdocs/includes/modules/societe/mod_codeclient_leopard.php
@@ -17,7 +17,7 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  * or see http://www.gnu.org/
  */
- 
+
 /**
  *       \file       htdocs/includes/modules/societe/mod_codeclient_leopard.class.php
  *       \ingroup    societe
@@ -35,7 +35,7 @@ require_once(DOL_DOCUMENT_ROOT."/includes/modules/societe/modules_societe.class.
 class mod_codeclient_leopard extends ModeleThirdPartyCode
 {
 	/*
-	* Attention ce module est utilise par defaut si aucun module n'a 
+	* Attention ce module est utilise par defaut si aucun module n'a
 	* ete definit dans la configuration
 	*
 	* Le fonctionnement de celui-ci doit dont rester le plus ouvert
@@ -50,7 +50,7 @@ class mod_codeclient_leopard extends ModeleThirdPartyCode
 	var $version;		// 'development', 'experimental', 'dolibarr'
 	var $code_auto; // Numerotation automatique
 
-	
+
 	/**		\brief      Constructeur classe
 	*/
 	function mod_codeclient_leopard()
@@ -64,17 +64,17 @@ class mod_codeclient_leopard extends ModeleThirdPartyCode
 		$this->code_auto = 0;
 	}
 
-	
+
 	/**
 	*		\brief      Renvoie la description du module
 	*		\return     string      Texte descripif
 	*/
 	function info($langs)
 	{
-		return "Renvoie toujours ok, pour ceux qui ne veulent pas faire de test. Verification mais pas de generation automatique.";
+		return $langs->trans("LeopardNumRefModelDesc");
 	}
 
-	
+
 	/**
 	* 		\brief		V�rifie la validit� du code
 	*		\param		$db			Handler acces base
diff --git a/htdocs/includes/modules/societe/mod_codeclient_lion.php b/htdocs/includes/modules/societe/mod_codeclient_monkey.php
similarity index 88%
rename from htdocs/includes/modules/societe/mod_codeclient_lion.php
rename to htdocs/includes/modules/societe/mod_codeclient_monkey.php
index 89f43fada64b04505bd5c025fb9c8f85cc5a0798..6e08a4219e4eb028b2abf5d564f4999e9f08b858 100644
--- a/htdocs/includes/modules/societe/mod_codeclient_lion.php
+++ b/htdocs/includes/modules/societe/mod_codeclient_monkey.php
@@ -29,10 +29,10 @@ require_once(DOL_DOCUMENT_ROOT."/includes/modules/societe/modules_societe.class.
 
 
 /**
-        \class 		mod_codeclient_lion
-        \brief 		Classe permettant la gestion lion des codes tiers
+        \class 		mod_codeclient_monkey
+        \brief 		Classe permettant la gestion monkey des codes tiers
 */
-class mod_codeclient_lion extends ModeleThirdPartyCode
+class mod_codeclient_monkey extends ModeleThirdPartyCode
 {
 	var $nom;							// Nom du modele
 	var $code_modifiable;				// Code modifiable
@@ -45,10 +45,10 @@ class mod_codeclient_lion extends ModeleThirdPartyCode
 
 	/**		\brief      Constructeur classe
 	*/
-	function mod_codeclient_lion()
+	function mod_codeclient_monkey()
 	{
-		$this->nom = "Lion";
-		$this->version = "dolibarr";
+		$this->nom = "Monkey";
+		$this->version = "experimental";
 		$this->code_modifiable = 0;
 		$this->code_modifiable_invalide = 1;
 		$this->code_modifiable_null = 1;
@@ -62,7 +62,7 @@ class mod_codeclient_lion extends ModeleThirdPartyCode
 	*/
 	function info($langs)
 	{
-		return "Verifie si le code client/fournisseur est de la forme numerique 999 et sur au moins 3 chiffres. Verification mais pas de generation automatique.";
+		return $langs->trans("MonkeyNumRefModelDesc");
 	}
 
 
@@ -71,14 +71,14 @@ class mod_codeclient_lion extends ModeleThirdPartyCode
 	*/
 	function getExample($langs)
 	{
-		return "001";
+		return "000001";
 	}
 
 
 	/**
-	* 		\brief		V�rifie la validit� du code
+	* 		\brief		Verifie la validite du code
 	*		\param		$db			Handler acces base
-	*		\param		$code		Code a v�rifier/corriger
+	*		\param		$code		Code a verifier/corriger
 	*		\param		$soc		Objet societe
 	*		\return		int			<0 si KO, 0 si OK
 	*/
@@ -117,7 +117,7 @@ class mod_codeclient_lion extends ModeleThirdPartyCode
 				}
 			}
 		}
-		dolibarr_syslog("mod_codeclient_lion::verif result=".$result);
+		dolibarr_syslog("mod_codeclient_monkey::verif result=".$result);
 		return $result;
 	}
 
diff --git a/htdocs/includes/modules/societe/mod_codeclient_tigre.php b/htdocs/includes/modules/societe/mod_codeclient_tigre.php
deleted file mode 100644
index e9d0356f8954cda16e64100e32fe6b0f14d3da67..0000000000000000000000000000000000000000
--- a/htdocs/includes/modules/societe/mod_codeclient_tigre.php
+++ /dev/null
@@ -1,452 +0,0 @@
-<?php
-/* Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
- * Copyright (C) 2006-2007 Laurent Destailleur  <eldy@users.sourceforge.net>
- * Copyright (C) 2007      Regis Houssin        <regis@dolibarr.fr>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * or see http://www.gnu.org/
- */
-
-/**
- *       \file       htdocs/includes/modules/societe/mod_codeclient_tigre.class.php
- *       \ingroup    societe
- *       \brief      Fichier de la classe des gestion tigre des codes clients
- *       \version    $Id$
- */
-
-require_once(DOL_DOCUMENT_ROOT."/includes/modules/societe/modules_societe.class.php");
-
-
-/**
-        \class 		mod_codeclient_tigre
-        \brief 		Classe permettant la gestion tigre des codes tiers
-*/
-class mod_codeclient_tigre extends ModeleThirdPartyCode
-{
-	var $nom;							// Nom du modele
-	var $code_modifiable;				// Code modifiable
-	var $code_modifiable_invalide;		// Code modifiable si il est invalide
-	var $code_modifiable_null;			// Code modifiables si il est null
-	var $code_null;						// Code facultatif
-	var $version;		// 'development', 'experimental', 'dolibarr'
-	var $code_auto; // Numerotation automatique
-	
-	var $searchcode; // String de recherche
-	var $numbitcounter; // Nombre de chiffres du compteur
-	var $prefixIsRequired; // Le champ prefix du tiers doit etre renseign� quand on utilise {pre}
-
-
-	/**		\brief      Constructeur classe
-	*/
-	function mod_codeclient_tigre()
-	{
-		$this->nom = "Tigre";
-		$this->version = "experimental";
-		$this->code_modifiable = 0;
-		$this->code_modifiable_invalide = 1;
-		$this->code_modifiable_null = 1;
-		$this->code_null = 0;
-		$this->code_auto = 1;
-		$this->prefixIsRequired = 0;
-	}
-
-	
-	/**		\brief      Renvoi la description du module
-	*      	\return     string      Texte descripif
-	*/
-	function info($langs)
-	{
-		global $conf,$langs;
-
-		  $langs->load("companies");
-		  
-		  $form = new Form($db);
-    	
-      $texte = $langs->trans('TigreNumRefModelDesc1')."<br>\n";
-      $texte.= '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
-      $texte.= '<input type="hidden" name="action" value="updateMask">';
-      $texte.= '<table class="nobordernopadding" width="100%">';
-      
-      // Parametrage du masque
-      $texte.= '<tr><td>'.$langs->trans("CustomerCodeModel").'</td>';
-      $texte.= '<td align="right">'.$form->textwithhelp('<input type="text" class="flat" size="24" name="maskcustomer" value="'.$conf->global->CODE_TIGRE_MASK_CUSTOMER.'">',$langs->trans("TigreMaskCodes"),1,1).'</td>';
-      $texte.= '</tr>';
-      
-      $texte.= '<tr><td>'.$langs->trans("SupplierCodeModel").'</td>';
-      $texte.= '<td align="right">'.$form->textwithhelp('<input type="text" class="flat" size="24" name="masksupplier" value="'.$conf->global->CODE_TIGRE_MASK_SUPPLIER.'">',$langs->trans("TigreMaskCodes"),1,1).'</td>';
-      $texte.= '</tr>';
-     
-      $texte.= '<tr><td>&nbsp;</td><td align="left"><input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button"></td></tr>';
-
-      $texte.= '</table>';
-      $texte.= '</form>';
-
-      return $texte;
-	}
-
-
-	/**		\brief      Renvoi la description du module
-	*     \param      $type       Client ou fournisseur (1:client, 2:fournisseur)
-	*     \return     string      Texte descripif
-	*/
-	function getExample($langs,$objsoc=0,$type=-1)
-	{
-		if ($type == 0)
-		{
-			$example = $this->getNextValue($objsoc,0);
-		}
-		else if ($type == 1)
-		{
-			$example = $this->getNextValue($objsoc,1);
-		}
-		else
-		{
-			$example = $this->getNextValue($objsoc,0)."<br>".$this->getNextValue($objsoc,1);
-		}
-		return $example;
-	}
-	
-	/**		\brief      Renvoi prochaine valeur attribu�e
-	*     \param      $type       Client ou fournisseur (1:client, 2:fournisseur)
-	*     \return     string      Valeur
-	*/
-  function getNextValue($objsoc=0,$type=-1)
-  {
-  	global $db,$conf;
-  	
-  	$mask = $this->buildMask($objsoc,$type);
-  	
-  	if ($type == 0)
-  	{
-  		$field = 'code_client';
-  	}
-  	else if ($type == 1)
-  	{
-  		$field = 'code_fournisseur';
-  	}
-
-    // On r�cup�re la valeur max (r�ponse imm�diate car champ ind�x�)
-    $posindice  = $this->numbitcounter;
-
-    $sql = "SELECT MAX(0+SUBSTRING(".$field.",-".$posindice."))";
-    $sql.= " FROM ".MAIN_DB_PREFIX."societe";
-    $sql.= " WHERE ".$field." REGEXP '^".$this->searchcode."$'";
-
-    $resql=$db->query($sql);
-
-    if ($resql)
-    {
-    	$row = $db->fetch_row($resql);
-      $max = $row[0];
-    }
-    
-    // On applique le nombre de chiffres du compteur
-    $arg = '%0'.$this->numbitcounter.'s';
-
-    $num = sprintf($arg,$max+1);
-    $mask = eregi_replace('\{0+\}',$num,$mask);
-      
-    dolibarr_syslog("mod_codeclient_tigre::getNextValue return ".$mask);
-
-    return $mask;
-  }
-  
- /**		\brief      Construction du masque de num�rotation
- 	*     \param      objsoc      Objet soci�t�
-	*     \param      $type       Client ou fournisseur (1:client, 2:fournisseur)
-	*     \return     string      Valeur
-	*/
-  function buildMask($objsoc=0,$type=-1)
-  {
-  	global $conf;
-
-  	if ($type==0)
-  	{
-  		$mask = $conf->global->CODE_TIGRE_MASK_CUSTOMER;
-  	}
-  	else if ($type==1)
-  	{
-  		$mask = $conf->global->CODE_TIGRE_MASK_SUPPLIER;
-  	}
-  	
-  	$maskElement = preg_split('/[|]{1}/', $mask);
-
-  	$foundCounter = 0;
-  	$substrBegin = 0;
-  	$substrEnd = 0;
-  	$maskRebuild = '';
-  	$error = 0;
-  	$this->searchcode = '';
-
-  	for ($i = 0; $i < count($maskElement); $i++)
-    {
-      	// Ajout du jour en cours
-      	if ($maskElement[$i] == '{dd}')
-  	    {
-  		    $maskRebuild .= strftime("%d",time());
-  		    $this->searchcode .= '([0-9]{2})';
-  	    }
-  	    else if (eregi('\{d+\}',$maskElement[$i]) && (eregi('\{d+\}',$$maskElement[$i]) != '{dd}'))
-  	    {
-  		    $error++;
-  	    }
-  	
-  	    // Ajout du mois en cours
-  	    if ($maskElement[$i] == '{mm}')
-  	    {
-  		    $maskRebuild .= strftime("%m",time());
-  		    $this->searchcode .= '([0-9]{2})';
-  	    }
-  	    else if (eregi('\{m+\}',$maskElement[$i]) && (eregi('\{m+\}',$maskElement[$i]) != '{mm}'))
-  	    {
-  		    $error++;
-  	    }
-  	
-  	    // Ajout de l'ann�e en cours
-  	    if ($maskElement[$i] == '{aa}')
-  	    {
-  		    $maskRebuild .= substr(strftime("%Y",time()),2);
-  		    $this->searchcode .= '([0-9]{2})';
-  	    }
-  	    else if ($maskElement[$i] == '{aaaa}')
-  	    {
-  		    $maskRebuild .= strftime("%Y",time());
-  		    $this->searchcode .= '([0-9]{4})';
-  	    }
-  	    else if (eregi('\{a+\}',$maskElement[$i]) && ((eregi('\{a+\}',$maskElement[$i]) != '{aa}') || (eregi('\{a+\}',$maskElement[$i]) != '{aaa}')))
-  	    {
-  		    $error++;
-  	    }
-  	
-  	    // Ajout du pr�fix de la soci�t�
-  	    if (is_object($objsoc) && $objsoc->prefix_comm && $maskElement[$i] == '{pre}')
-  	    {
-  		    if ((!$objsoc->fournisseur && !$objsoc->code_fournisseur) || (!$objsoc->client && !$objsoc->code_client))
-  		    {
-  		    	$maskRebuild .= strtoupper($objsoc->prefix_comm);
-  		    	$this->searchcode .= '([0-9A-Z]{1,})';
-  		    }
-  		    else
-  		    {
-  	    		$maskRebuild .= 'ABC';
-  	    		$this->searchcode .= '([0-9A-Z]{1,})';
-  	    	}
-  	    }
-  	    else if (is_object($objsoc) && !$objsoc->prefix_comm && $maskElement[$i] == '{pre}')
-  	    {
-  		    $maskRebuild .= 'ABC';
-  		    $error++;
-  		    $this->prefixIsRequired = 1;
-  	    }
-  	    else if (!is_object($objsoc) && $maskElement[$i] == '{pre}')
-  	    {
-  	    	if (is_string($objsoc) && $objsoc)
-  	    	{
-  	    		$maskRebuild .= $objsoc;
-  	    		$this->searchcode .= '([0-9A-Z]{1,})';
-  	    	}
-  	    	else if ($objsoc === 0)
-  	    	{
-  	    		$maskRebuild .= 'ABC';
-  	    		$this->searchcode .= '([0-9A-Z]{1,})';
-  	    	}
-  	    	else
-  	    	{
-  	    		$error++;
-  	    		$this->prefixIsRequired = 1;
-  	    	}
-  	    }
-  	    
-  	    // Ajout des s�parateurs �ventuels : \ / -
-  	    if (eregi('[\/-]{1}',$maskElement[$i]))
-  	    {
-  	    	$maskRebuild .= $maskElement[$i];
-  	    	$this->searchcode .= '([\/-]{1})';
-  	    }
-  	    else if (eregi('[\/-]{2,}',$maskElement[$i]))
-  	    {
-  	    	$error++;
-  	    }
-  	    
-  	    // Ajout des champs libres �ventuels
-  	    if (eregi('^[0-9A-Z]+$',$maskElement[$i]))
-  	    {
-  	    	$maskRebuild .= strtoupper($maskElement[$i]);
-  	    	$this->searchcode .= '([0-9A-Z]+)';
-  	    }
-  	
-  	    // D�finition du compteur
-  	    if (eregi('\{0+\}',$maskElement[$i]))
-  	    {
-  		    // D�fini le nombre de chiffres du compteur
-  		    $this->numbitcounter = strlen(substr($maskElement[$i],1,-1));
-  		    // Permettra d'effectuer une recherche dans la table
-  		    $this->searchcode .= '([0-9]{'.$this->numbitcounter.'})';
-  		    
-  		    $maskRebuild .= $maskElement[$i];
-  		    $foundCounter = 1;
-  	    }
-  	    else if ($i == count($maskElement) && !eregi('\{0+\}',$maskElement[$i]) && $foundCounter == 0)
-  	    {
-  	    	$error++;
-  	    }
-  	}
-
-  	return $maskRebuild;
-  }
-  
- /**
-  *   \brief  V�rifie si le mask utilise le pr�fix
-  *
-  */
-  function verif_prefixIsUsed()
-  {
-  	global $conf;
-  	
-  	$mask = $conf->global->CODE_TIGRE_MASK_CUSTOMER;
-  	if (eregi('\{pre\}',$mask)) return 1;
-  	
-  	$mask = $conf->global->CODE_TIGRE_MASK_SUPPLIER;
-  	if (eregi('\{pre\}',$mask)) return 1;
-  	
-  	return 0;
-  }
-
-
-	/**
-	* 		\brief		V�rifie la validit� du code
-	*		\param		$db			Handler acces base
-	*		\param		$code		Code a v�rifier/corriger
-	*		\param		$soc		Objet societe
-	*   \param    $type   0 = client/prospect , 1 = fournisseur
-	*		\return		int			<0 si KO, 0 si OK
-	*/
-	function verif($db, &$code, $soc, $type)
-	{
-		$result=0;
-		$code = strtoupper(trim($code));
-
-		if (! $code && $this->code_null) 
-		{
-			$result=0;
-		}
-		else
-		{
-			if ($this->verif_syntax($code) >= 0)
-			{	
-				$is_dispo = $this->verif_dispo($db, $code, $soc);
-				if ($is_dispo <> 0)
-				{
-					$result=-3;
-				}
-				else if ($type == 0 && $soc->prefixCustomerIsRequired && !$soc->prefix_comm)
-				{
-					$result=-4;
-				}
-				else if ($type == 1 && $soc->prefixSupplierIsRequired && !$soc->prefix_comm)
-				{
-					$result=-5;
-				}
-				else
-				{
-					$result=0;
-				}
-			}
-			else
-			{
-				if (strlen($code) == 0)
-				{
-					$result=-2;
-				}
-				else
-				{
-					$result=-1;
-				}
-			}
-		}
-		dolibarr_syslog("mod_codeclient_tigre::verif result=".$result);
-		return $result;
-	}
-
-	
-	/**
-	*		\brief		Renvoi une valeur correcte
-	*		\param		$db			Handler acces base
-	*		\param		$code		Code reference eventuel
-	*		\return		string		Code correct, <0 si KO
-	*/
-	function get_correct($db, $code)
-	{
-		
-	}
-
-	
-	/**
-	*		\brief		Renvoi si un code est pris ou non (par autre tiers)
-	*		\param		$db			Handler acces base
-	*		\param		$code		Code a verifier
-	*		\param		$soc		Objet societe
-	*		\return		int			0 si dispo, <0 si erreur
-	*/
-	function verif_dispo($db, $code, $soc)
-	{
-		$sql = "SELECT code_client FROM ".MAIN_DB_PREFIX."societe";
-		$sql.= " WHERE code_client = '".$code."'";
-		$sql.= " AND rowid != '".$soc->id."'";
-
-		$resql=$db->query($sql);
-		if ($resql)
-		{
-			if ($db->num_rows($resql) == 0)
-			{
-				return 0;
-			}
-			else
-			{
-				return -1;
-			}
-		}
-		else
-		{
-			return -2;
-		}
-
-	}
-
-
-	/**
-	*	\brief		Renvoi si un code respecte la syntaxe
-	*	\param		$code		Code a verifier
-	*	\return		int			0 si OK, <0 si KO
-	*/
-	function verif_syntax($code)
-	{
-		$res = 0;
-		return $res;
-	}
-
-
-	/**
-	*	Renvoi 0 si numerique, sinon renvoi nb de car non numerique
-	*/
-	function is_num($str)
-	{
-		$ok = 0;
-		return $ok;
-	}
-
-}
-
-?>
diff --git a/htdocs/includes/modules/societe/mod_codeclient_zebre.php b/htdocs/includes/modules/societe/mod_codeclient_zebre.php
deleted file mode 100644
index f9df52052b3a30bd4d6f9156af8eda77c1152b42..0000000000000000000000000000000000000000
--- a/htdocs/includes/modules/societe/mod_codeclient_zebre.php
+++ /dev/null
@@ -1,270 +0,0 @@
-<?php
-/* Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
- * Copyright (C) 2006-2007 Laurent Destailleur  <eldy@users.sourceforge.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * or see http://www.gnu.org/
- */
-
-/**
- *       \file       htdocs/includes/modules/societe/mod_codeclient_zebre.class.php
- *       \ingroup    societe
- *       \brief      Fichier de la classe des gestion zebre des codes clients
- *       \version    $Id$
- */
-
-require_once(DOL_DOCUMENT_ROOT."/includes/modules/societe/modules_societe.class.php");
-
-
-/**
-        \class 		mod_codeclient_zebre
-        \brief 		Classe permettant la gestion zebre des codes tiers
-*/
-class mod_codeclient_zebre extends ModeleThirdPartyCode
-{
-	var $nom;							// Nom du modele
-	var $code_modifiable;				// Can be changed if valid
-	var $code_modifiable_invalide;		// Can be changed if not valid
-	var $code_modifiable_null;			// Can be changed if not defined
-	var $code_null;						// Can be undefined
-	var $version;		// 'development', 'experimental', 'dolibarr'
-	var $code_auto; 	// Numerotation automatique
-
-
-	/**		\brief      Constructeur classe
-	*/
-	function mod_codeclient_zebre()
-	{
-		$this->nom = "Zebre";
-		$this->version = "dolibarr";
-		$this->code_modifiable = 0;				// Can be changed if valid
-		$this->code_modifiable_invalide = 1;	// Can be changed if not valid
-		$this->code_modifiable_null = 1;		// Can be changed if not defined
-		$this->code_null = 0;					// Can be undefined
-		$this->code_auto = 0;
-	}
-
-
-	/**
-	*		\brief      Renvoie la description du module
-	*		\return     string      Texte descripif
-	*/
-	function info($langs)
-	{
-		return "Verifie si le code client/fournisseur est de la forme CCCC9999. Les quatres premieres lettres etant une representation mnemotechnique, suivi du code postal en 2 chiffres et un numero d'ordre pour la prise en compte des doublons. Verification mais pas de generation automatique.";
-	}
-
-
-	/**		\brief      Renvoi la description du module
-	*      	\return     string      Texte descripif
-	*/
-	function getExample($langs)
-	{
-		return "ABCD7501";
-	}
-
-
-	/**
-	* 		\brief		V�rifie la validit� du code
-	*		\param		$db			Handler acces base
-	*		\param		$code		Code a v�rifier/corriger
-	*		\param		$soc		Objet societe
-	*		\return		int			<0 si KO, 0 si OK
-	*/
-	function verif($db, &$code, $soc)
-	{
-		$result=0;
-		$code = strtoupper(trim($code));
-
-		if (! $code && $this->code_null)
-		{
-			$result=0;
-		}
-		else
-		{
-			if ($this->verif_syntax($code) == 0)
-			{
-				$i = 1;
-
-				$is_dispo = $this->verif_dispo($db, $code, $soc);
-				while ($is_dispo <> 0 && $i < 99)
-				{
-					$arr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
-
-					$code = substr($code,0,6) . substr("00".$i, -2);
-
-					$is_dispo = $this->verif_dispo($db, $code, $soc);
-
-					$i++;
-				}
-
-				if ($is_dispo <> 0)
-				{
-					$result=-3;
-				}
-			}
-			else
-			{
-				if (strlen(trim($code)) == 0)
-				{
-					$result=-2;
-				}
-				else
-				{
-					$result=-1;
-				}
-			}
-		}
-		dolibarr_syslog("mod_codeclient_zebre::verif result=".$result);
-		return $result;
-	}
-
-
-	/**
-	*		\brief		Renvoi une valeur correcte
-	*		\param		$db			Handler acces base
-	*		\param		$code		Code reference eventuel
-	*		\return		string		Code correct, <0 si KO
-	*/
-	function get_correct($db, $code)
-	{
-		if ($this->verif_syntax($code) == 0)
-		{
-			$i = 1;
-
-			$is_dispo = $this->verif_dispo($db, $code, $soc);
-
-			while ( $is_dispo <> 0 && $i < 99)
-			{
-				$arr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
-
-				$code = substr($code,0,6) . substr("00".$i, -2);
-
-				$is_dispo = $this->verif_dispo($db, $code, $soc);
-
-				$i++;
-			}
-
-			return $is_dispo;
-
-		}
-		else
-		{
-			return -1;
-		}
-
-	}
-
-
-	/**
-	*		\brief		Renvoi si un code est pris ou non (par autre tiers)
-	*		\param		$db			Handler acces base
-	*		\param		$code		Code a verifier
-	*		\param		$soc		Objet societe
-	*		\return		int			0 si dispo, <0 si erreur
-	*/
-	function verif_dispo($db, $code, $soc)
-	{
-		$sql = "SELECT code_client FROM ".MAIN_DB_PREFIX."societe";
-		$sql.= " WHERE code_client = '".$code."'";
-		$sql.= " AND rowid != '".$soc->id."'";
-
-		$resql=$db->query($sql);
-		if ($resql)
-		{
-			if ($db->num_rows($resql) == 0)
-			{
-				return 0;
-			}
-			else
-			{
-				return -1;
-			}
-		}
-		else
-		{
-			return -2;
-		}
-	}
-
-
-	/**
-	*	\brief		Renvoi si un code respecte la syntaxe
-	*	\param		$code		Code a verifier
-	*	\return		int			0 si OK, <0 si KO
-	*/
-	function verif_syntax(&$code)
-	{
-		$res = 0;
-
-		if (strlen($code) <> 8)
-		{
-			$res = -1;
-		}
-		else
-		{
-			if ($this->is_alpha(substr($code,0,4)) == 0 && $this->is_num(substr($code,4,4)) == 0 )
-			{
-				$res = 0;
-			}
-			else
-			{
-				$res = -2;
-			}
-
-		}
-		return $res;
-	}
-
-
-	function is_alpha($str)
-	{
-		$ok = 0;
-		// Je n'ai pas trouv� de fonction pour tester une chaine alpha sans les caract�re accentu�s
-		// dommage
-		$alpha = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
-
-		for ($i = 0 ; $i < 4 ; $i++)
-		{
-			if (strpos($alpha, substr($str,$i, 1)) === false)
-			{
-				$ok++;
-			}
-		}
-
-		return $ok;
-	}
-
-
-	function is_num($str)
-	{
-		$ok = 0;
-
-		$alpha = '0123456789';
-
-		for ($i = 0 ; $i < 4 ; $i++)
-		{
-			if (strpos($alpha, substr($str,$i, 1)) === false)
-			{
-				$ok++;
-			}
-		}
-
-		return $ok;
-	}
-
-}
-
-?>
diff --git a/htdocs/includes/modules/societe/modules_societe.class.php b/htdocs/includes/modules/societe/modules_societe.class.php
index bb64f2334fcaba020bae4e3b2fecf87f77527c44..3ee966e6bc059b2dc87ce2c41310a8e688c631f7 100644
--- a/htdocs/includes/modules/societe/modules_societe.class.php
+++ b/htdocs/includes/modules/societe/modules_societe.class.php
@@ -1,6 +1,6 @@
 <?php
 /* Copyright (C) 2003-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
- * Copyright (C) 2004-2007 Laurent Destailleur  <eldy@users.sourceforge.net>
+ * Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
  * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
  * Copyright (C) 2005-2007 Regis Houssin        <regis@dolibarr.fr>
  *
@@ -81,7 +81,7 @@ class ModeleThirdPartyCode
         return $langs->trans("NotAvailable");
     }
 
-    
+
 	/**     \brief      Renvoi version du module numerotation
 	*      	\return     string      Valeur
 	*/
@@ -94,9 +94,9 @@ class ModeleThirdPartyCode
 		if ($this->version == 'experimental') return $langs->trans("VersionExperimental");
 		if ($this->version == 'dolibarr') return DOL_VERSION;
 		return $langs->trans("NotAvailable");
-	}	
+	}
 
-	/** 
+	/**
      *      \brief      Renvoi la liste des mod�les actifs
      *      \param      db      Handler de base
      */
@@ -104,7 +104,7 @@ class ModeleThirdPartyCode
     {
         $liste=array();
         $sql ="";
-        
+
         $resql = $db->query($sql);
         if ($resql)
         {
@@ -124,7 +124,7 @@ class ModeleThirdPartyCode
         return $liste;
     }
 
-    /** 
+    /**
      *      \brief      Return description of module parameters
      *      \param      langs      	Output language
 	 *		\param		soc			Third party object
@@ -134,20 +134,22 @@ class ModeleThirdPartyCode
     function getToolTip($langs,$soc,$type)
     {
 		$s='';
+		$s.=$langs->trans("Name").': <b>'.$this->nom.'</b><br>';
 		$s.=$langs->trans("Version").': <b>'.$this->getVersion().'</b><br>';
 		if ($type == 0)  $s.=$langs->trans("CustomerCodeDesc").'<br>';
 		if ($type == 1)  $s.=$langs->trans("SupplierCodeDesc").'<br>';
 		if ($type != -1) $s.=$langs->trans("ValidityControledByModule").': <b>'.$this->getNom($langs).'</b><br>';
 		$s.='<br>';
-		$s.='<u>'.$langs->trans("ThisIsModuleRules").'</u>:<br>';
-		if ($type == 0)  $s.=$langs->trans("RequiredIfCustomer").': <b>'.yn(!$this->code_null).'</b><br>';
-		if ($type == 1)  $s.=$langs->trans("RequiredIfSupplier").': <b>'.yn(!$this->code_null).'</b><br>';
-		if ($type == -1) $s.=$langs->trans("Required").': <b>'.yn(!$this->code_null).'</b><br>';
-		$s.=$langs->trans("CanBeModifiedIfOk").': <b>'.yn($this->code_modifiable).'</b><br>';
-		$s.=$langs->trans("CanBeModifiedIfKo").': <b>'.yn($this->code_modifiable_invalide).'</b><br>';
-		$s.=$langs->trans("AutomaticCode").': <b>'.yn($this->code_auto).'</b><br>';
-		if ($type == 0) $s.=$langs->trans("Example").': <b>'.$this->getExample($langs,$soc,0).'</b>';
-		if ($type == 1) $s.=$langs->trans("Example").': <b>'.$this->getExample($langs,$soc,1).'</b>';
+		$s.='<u>'.$langs->trans("ThisIsModuleRules").':</u><br>';
+		if ($type == 0)  $s.=$langs->trans("RequiredIfCustomer").': '.yn(!$this->code_null,1,1).'<br>';
+		if ($type == 1)  $s.=$langs->trans("RequiredIfSupplier").': '.yn(!$this->code_null,1,1).'<br>';
+		if ($type == -1) $s.=$langs->trans("Required").': '.yn(!$this->code_null,1,1).'<br>';
+		$s.=$langs->trans("CanBeModifiedIfOk").': '.yn($this->code_modifiable,1,1).'<br>';
+		$s.=$langs->trans("CanBeModifiedIfKo").': '.yn($this->code_modifiable_invalide,1,1).'<br>';
+		$s.=$langs->trans("AutomaticCode").': '.yn($this->code_auto,1,1).'<br>';
+		$s.='<br>';
+		if ($type == 0 || $type == -1)  $s.=$langs->trans("NextValue").': <b>'.$this->getExample($langs,$soc,0).'</b><br>';
+		if ($type == 1 || $type == -1)  $s.=$langs->trans("NextValue").': <b>'.$this->getExample($langs,$soc,1).'</b>';
 		return $s;
 	}
 }
diff --git a/htdocs/includes/modules/supplier_order/mod_commande_fournisseur_orchidee.php b/htdocs/includes/modules/supplier_order/mod_commande_fournisseur_orchidee.php
index c6440f85825865836ee6a98465ff849f9215af5d..6dd0fc51a38ca4680b3b46b22f789841948227c8 100644
--- a/htdocs/includes/modules/supplier_order/mod_commande_fournisseur_orchidee.php
+++ b/htdocs/includes/modules/supplier_order/mod_commande_fournisseur_orchidee.php
@@ -38,7 +38,7 @@ class mod_commande_fournisseur_orchidee extends ModeleNumRefSuppliersOrders
 	var $version='dolibarr';		// 'development', 'experimental', 'dolibarr'
 	var $error = '';
 	var $nom = 'Orchidee';
-	
+
 
     /**     \brief      Renvoi la description du modele de num�rotation
      *      \return     string      Texte descripif
@@ -49,23 +49,29 @@ class mod_commande_fournisseur_orchidee extends ModeleNumRefSuppliersOrders
 
 		$langs->load("bills");
 		$langs->load("admin");
-		
+
 		$form = new Form($db);
-    	
+
 		$texte = $langs->trans('GenericNumRefModelDesc')."<br>\n";
 		$texte.= '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
 		$texte.= '<input type="hidden" name="action" value="updateMask">';
 		$texte.= '<input type="hidden" name="maskconstorder" value="COMMANDE_FOURNISSEUR_ORCHIDEE_MASK">';
 		$texte.= '<table class="nobordernopadding" width="100%">';
-		
-		// Parametrage du prefix des factures
+
+		$tooltip=$langs->trans("GenericMaskCodes",$langs->transnoentities("Order"));
+		$tooltip.=$langs->trans("GenericMaskCodes2");
+		$tooltip.=$langs->trans("GenericMaskCodes3");
+		$tooltip.=$langs->trans("GenericMaskCodes4a",$langs->transnoentities("Order"),$langs->transnoentities("Order"));
+		$tooltip.=$langs->trans("GenericMaskCodes5");
+
+		// Parametrage du prefix
 		$texte.= '<tr><td>'.$langs->trans("Mask").':</td>';
-		$texte.= '<td align="right">'.$form->textwithhelp('<input type="text" class="flat" size="24" name="maskorder" value="'.$conf->global->COMMANDE_FOURNISSEUR_ORCHIDEE_MASK.'">',$langs->trans("GenericMaskCodes",$langs->transnoentities("Order"),$langs->transnoentities("Order"),$langs->transnoentities("Order")),1,1).'</td>';
+		$texte.= '<td align="right">'.$form->textwithhelp('<input type="text" class="flat" size="24" name="maskorder" value="'.$conf->global->COMMANDE_FOURNISSEUR_ORCHIDEE_MASK.'">',$tooltip,1,1).'</td>';
 
 		$texte.= '<td align="left" rowspan="2">&nbsp; <input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button"></td>';
 
 		$texte.= '</tr>';
-		
+
 		$texte.= '</table>';
 		$texte.= '</form>';
 
@@ -78,12 +84,12 @@ class mod_commande_fournisseur_orchidee extends ModeleNumRefSuppliersOrders
     function getExample()
     {
     	global $conf,$langs,$mysoc;
-    	
+
     	$old_code_client=$mysoc->code_client;
     	$mysoc->code_client='CCCCCCCCCC';
     	$numExample = $this->getNextValue($mysoc,'');
 		$mysoc->code_client=$old_code_client;
-    	
+
 		if (! $numExample)
 		{
 			$numExample = $langs->trans('NotConfigured');
@@ -101,22 +107,22 @@ class mod_commande_fournisseur_orchidee extends ModeleNumRefSuppliersOrders
 		global $db,$conf;
 
 		require_once(DOL_DOCUMENT_ROOT ."/lib/functions2.lib.php");
-		
+
 		// On d�fini critere recherche compteur
 		$mask=$conf->global->COMMANDE_FOURNISSEUR_ORCHIDEE_MASK;
-		
-		if (! $mask) 
+
+		if (! $mask)
 		{
 			$this->error='NotConfigured';
 			return 0;
 		}
 
 		$numFinal=get_next_value($db,$mask,'commande_fournisseur','ref','',$objsoc->code_client,$commande->date_commande);
-		
+
 		return  $numFinal;
 	}
-    
-  
+
+
     /**     \brief      Renvoie la r�f�rence de commande suivante non utilis�e
      *      \param      objsoc      Objet soci�t�
      *      \param      commande		Objet commande
@@ -126,6 +132,6 @@ class mod_commande_fournisseur_orchidee extends ModeleNumRefSuppliersOrders
     {
         return $this->getNextValue($objsoc,$commande);
     }
-}    
+}
 
 ?>
\ No newline at end of file
diff --git a/htdocs/langs/ca_ES/admin.lang b/htdocs/langs/ca_ES/admin.lang
index f3efc5dacbcfb61a167ff71f3ac581d51afc8719..8b164fdd62e3335ad27d3a2606a859d0d53dd783 100644
--- a/htdocs/langs/ca_ES/admin.lang
+++ b/htdocs/langs/ca_ES/admin.lang
@@ -205,7 +205,7 @@ SetupIsReadyForUse = La instal·lació ha finalitzat i Dolibarr està disponible
 CurrentVersion = Versió actual de Dolibarr
 CallUpdatePage = Trucar a la pàgina d'actualització de l'estructura i dades de la base de dades %s.
 LastStableVersion = Última versió estable
-GenericMaskCodes = Podeu introduir qualsevol màscara numèrica. En aquesta màscara, pot utilitzar les següents etiquetes: <br> <b> (000000) </b> correspon a un nombre que s'incrementa en cadascun %s. Introduïu tants zeros com longuitud desitgi mostrar. El comptador es completarà a partir de zeros per l'esquerra per tal de tenir tants zeros com la màscara. <br> <b> 000.000 (000) </b> Igual que l'anterior, amb una compensació corresponent al número a la dreta del signe + s'aplica a partir del primer %s. <br> <b> (000000) @ x </b> igual que l'anterior, però el comptador es restableix a zero quan s'arriba a x mesos (x entre 1 i 12). Si aquesta opció s'utilitza i x és de 2 o superior, llavors la seqüència () (aa mm) (o) (aaaa) mm també és necessària. <br> <b> dd () </b> dies (01 a 31). <br> <b> mm () </ b> mes (01 a 12). <br> <b> yy () </ b>, <b> (aaaa) </ b> o <b> (i) </ b> de més de 2 anys, 4 o l'1 de números. <br> <b> cccc000 () </b> el codi de client en n caràcters seguits d'una ref. client sense offset i 0 al comptador global. <br> Tots els altres caràcters de la màscara es mantindran intactes. <br> No es permeten espais. <br> <u> exemple, en la 99 % s del tercer de l'empresa dóna 31.01.2007: </u> <br> <b> ABC yy () (mm) - (000000) < /b> donarà <b> ABC0701-000099 </b> <br> <b> 0000 (100)-ZZZ/() dd / XXX </b> donarà <b> 0199-ZZZ/31/XXX </b ><br>
+GenericMaskCodes = 
 GenericNumRefModelDesc = Retorna un nombre creat d'acord amb una màscara definida.
 ServerAvailableOnIPOrPort = Servidor disponible a l'adreça <b>%s</b> al port <b>%s</b>
 ServerNotAvailableOnIPOrPort = Servidor no disponible en l'adreça <b>%s</b> al port <b>%s</b>
diff --git a/htdocs/langs/da_DA/admin.lang b/htdocs/langs/da_DA/admin.lang
index 40579c9fb5659d1309c8d51a05b8e63b68e355cc..14f1633c57fc026f98a17603b238a8dd9a6a28e1 100644
--- a/htdocs/langs/da_DA/admin.lang
+++ b/htdocs/langs/da_DA/admin.lang
@@ -217,7 +217,7 @@ SetupIsReadyForUse=Installer er færdig og Dolibarr er klar til brug med denne n
 CurrentVersion=Dolibarr aktuelle version
 CallUpdatePage=Gå til den side, der opdaterer database struktur og oplysningerne% s.
 LastStableVersion=Seneste stabile version
-GenericMaskCodes=Du kan indtaste et hvilket som helst nummerressourcer maske. I denne maske, Følgende tags kan bruges: <br> <b>(000000)</b> svarer til et nummer, der skal øges for hver% s. Angiv så mange nuller som den ønskede længde på tælleren. Tælleren vil blive suppleret af nuller fra venstre for at få så mange nuller som maske. <br> <b>(000000 +000)</b> samme som tidligere, men en offset svarende til antallet til højre for tegnet + anvendes starter den første% s. <br> <b>(000000 @ x)</b> samme som tidligere, men tælleren er nulstillet når måned x er nået (x mellem 1 og 12). Hvis denne indstilling er anvendt, og x er 2 eller højere, så SEQUENCE (yy) (mm) eller (ÅÅÅÅ) (mm) er også påkrævet. <br> <b>(dd)</b> dag (01 til 31). <br> <b>(mm)</b> måned (01 til 12). <br> <b>(yy), (ÅÅÅÅ)</b> eller <b>(y)</b> år over 2, 4 eller 1 numre. <br> <b>(cccc000)</b> kunden kode på n tegn efterfulgt af en klients ref counter uden kompensation og zeroized whith den globale counter. <br><br> Alle andre tegn i maske vil forblive intakt. <br> Mellemrum er ikke tilladt. <br><br> <u>Eksempel på 99.% s af den tredje part TheCompany gjort 31/01/2007:</u> <br> <b>ABC (yy) (mm) - (000000)</b> vil give <b>ABC0701-000099</b> <br> <b>(0000 +100)-ZZZ / (dd) / XXX</b> vil give <b>0199-ZZZ/31/XXX</b> <br>
+GenericMaskCodes=
 GenericNumRefModelDesc=Retur en tilpasselig antal henhold til en bestemt maske.
 ServerAvailableOnIPOrPort=Server findes på <b>adressen% s port% s</b>
 ServerNotAvailableOnIPOrPort=Serveren er ikke tilgængelig på <b>adressen% s port% s</b>
diff --git a/htdocs/langs/de_DE/admin.lang b/htdocs/langs/de_DE/admin.lang
index b745c36a9c4befbf465a50d1ffa967cd8565a9a2..56b4a26bf55cda0a0c92dbba9203755367d88c38 100644
--- a/htdocs/langs/de_DE/admin.lang
+++ b/htdocs/langs/de_DE/admin.lang
@@ -215,7 +215,7 @@ SetupIsReadyForUse=Installation abgeschlossen ist und Dolibarr ist bereit für d
 CurrentVersion=Dolibarr aktuelle Version
 CallUpdatePage=Gehen Sie zu der Seite, dass Updates der Datenbankstruktur und der Daten% s.
 LastStableVersion=Letzte stabile Version
-GenericMaskCodes=Sie können alle Nummern Maske. In dieser Maske, die folgende Tags verwendet werden können: <br> <b>(000000)</b> entspricht einer Zahl, die erhöht auf jedem% s. Geben Sie so viele Nullen, wie die gewünschte Länge des Zählers. Der Zähler wird durch Nullen ergänzt werden, von der linken Seite, um so viele Nullen, wie die Maske. <br> <b>(000000 +000)</b> wie oben, sondern ein Ausgleich entsprechend der Zahl auf der rechten Seite das +-Zeichen wird ab dem ersten% s. <br> <b>@ X (000000)</b> wie oben, aber der Zähler auf Null zurückgesetzt, wenn Monat x erreicht ist (x zwischen 1 und 12). Wenn diese Option verwendet wird, und x ist 2 oder höher, dann SEQUENCE (yy) (mm) oder (JJJJ) (mm) ist ebenfalls erforderlich. <br> <b>tt ()</b> Tag (01 bis 31). <br> <b>() mm</b> Monat (01 bis 12). <br> <b>yy (), (JJJJ)</b> oder <b>(y)</b> Jahr über 2, 4 oder 1-Nummern. <br> <b>() cccc000</b> den Client-Code auf n-Zeichen, gefolgt von einem Client-ref Zähler ohne Offset-und zeroized whith der globalen Zähler. <br><br> Alle anderen Zeichen in der Maske bleiben. <br> Leerzeichen sind nicht zulässig. <br><br> <u>Beispiel auf der 99.% s des Dritten TheCompany getan 31/01/2007:</u> <br> <b>ABC (yy) (mm) - (000000)</b> wird <b>ABC0701-000099</b> <br> <b>(0000 +100)-ZZZ / tt () / XXX</b> wird <b>0199-ZZZ/31/XXX</b> <br>
+GenericMaskCodes=
 GenericNumRefModelDesc=Zurück eine anpassbare Zahl nach einem definierten Maske.
 ServerAvailableOnIPOrPort=Server ist verfügbar unter der <b>Adresse% s</b> auf <b>Port% s</b>
 ServerNotAvailableOnIPOrPort=Server nicht verfügbar ist unter der <b>Adresse% s</b> auf <b>Port% s</b>
diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang
index 18ccb9f7eb9c74bc8d18ee0e275220974886af36..74cc51fba9d83c642c87bfcbb7d9408eef7857d3 100644
--- a/htdocs/langs/en_US/admin.lang
+++ b/htdocs/langs/en_US/admin.lang
@@ -206,7 +206,12 @@ SetupIsReadyForUse=Install is finished and Dolibarr is ready to use with this ne
 CurrentVersion=Dolibarr current version
 CallUpdatePage=Go to the page that updates database structure and datas %s.
 LastStableVersion=Last stable version
-GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:<br><b>{000000}</b> corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask. <br><b>{000000+000}</b> same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s. <br><b>{000000@x}</b> same as previous but the counter is reset to zero when month x is reached (x between 1 and 12). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required. <br><b>{dd}</b> day (01 to 31).<br><b>{mm}</b> month (01 to 12).<br><b>{yy}</b>, <b>{yyyy}</b> or <b>{y}</b> year over 2, 4 or 1 numbers. <br> <b>{cccc000}</b> the client code on n characters followed by a client's ref counter without offset and zeroized whith the global counter.<br><br>All other characters in the mask will remain intact.<br>Spaces are not allowed.<br><br><u>Example on the 99th %s of the third party TheCompany done 31/01/2007:</u><br><b>ABC{yy}{mm}-{000000}</b> will give <b>ABC0701-000099</b><br><b>{0000+100}-ZZZ/{dd}/XXX</b> will give <b>0199-ZZZ/31/XXX</b><br>
+GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:<br><b>{000000}</b> corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask. <br><b>{000000+000}</b> same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s. <br><b>{000000@x}</b> same as previous but the counter is reset to zero when month x is reached (x between 1 and 12). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required. <br><b>{dd}</b> day (01 to 31).<br><b>{mm}</b> month (01 to 12).<br><b>{yy}</b>, <b>{yyyy}</b> or <b>{y}</b> year over 2, 4 or 1 numbers. <br>
+GenericMaskCodes2=<b>{cccc}</b> the client code<br><b>{cccc000}</b> the client code on n characters is followed by a client's ref counter without offset and zeroized whith the global counter.<br>
+GenericMaskCodes3=All other characters in the mask will remain intact.<br>Spaces are not allowed.<br>
+GenericMaskCodes4a=<u>Example on the 99th %s of the third party TheCompany done 2007-01-31:</u><br>
+GenericMaskCodes4b=<u>Example on third party created on 2007-03-01:</u><br>
+GenericMaskCodes5=<b>ABC{yy}{mm}-{000000}</b> will give <b>ABC0701-000099</b><br><b>{0000+100}-ZZZ/{dd}/XXX</b> will give <b>0199-ZZZ/31/XXX</b>
 GenericNumRefModelDesc=Return a customizable number according to a defined mask. 
 ServerAvailableOnIPOrPort=Server is available at address <b>%s</b> on port <b>%s</b>
 ServerNotAvailableOnIPOrPort=Server is not available at address <b>%s</b> on port <b>%s</b>
diff --git a/htdocs/langs/en_US/companies.lang b/htdocs/langs/en_US/companies.lang
index 97c81c2b8f2f490bc950c9b6ab1d38f5c9971abc..1d9acb0d5e86c2d4df5f4cde924ad08d3c4ae4a6 100644
--- a/htdocs/langs/en_US/companies.lang
+++ b/htdocs/langs/en_US/companies.lang
@@ -258,5 +258,7 @@ AutomaticallyGenerated=Automatically generated
 FiscalYearInformation=Information on the fiscal year
 FiscalMonthStart=Starting month of the fiscal year
 
-# Tigre
-TigreNumRefModelDesc1=Return a customizable customer/supplier number according to a defined mask. 
+# Monkey
+MonkeyNumRefModelDesc=Check that customer/supplier code contains 6 numbers.
+# Leopard
+LeopardNumRefModelDesc=Customer/supplier code is free. This code can be modified at any time.
diff --git a/htdocs/langs/es_ES/admin.lang b/htdocs/langs/es_ES/admin.lang
index 2070d12f6674177b908244684ff4bbfa157b3fc8..f5322910c4bf261b753b8a648cbdf3bc9e8d4f37 100644
--- a/htdocs/langs/es_ES/admin.lang
+++ b/htdocs/langs/es_ES/admin.lang
@@ -205,7 +205,7 @@ SetupIsReadyForUse = La instalación ha finalizado y Dolibarr está disponible c
 CurrentVersion = Versión actual de Dolibarr
 CallUpdatePage = Llamar a la página de actualización de la estructura y datos de la base de datos %s.
 LastStableVersion = Última versión estable
-GenericMaskCodes = Puede introducir cualquier máscara numérica. En esta máscara, puede utilizar las siguientes etiquetas:<br><b>{000000} </b> corresponde a un número que se incrementa en cada uno de %s. Introduzca tantos ceros como longuitud desee mostrar. El contador se completará a partir de ceros por la izquierda con el fin de tener tantos ceros como la máscara. <br> <b> 000.000 (000) </ b> Igual que el anterior, con una compensación correspondiente al número a la derecha del signo + se aplica a partir del primer %s. <br> <b> (000000) @ x </b> igual que el anterior, pero el contador se restablece a cero cuando se llega a x meses (x entre 1 y 12). Si esta opción se utiliza y x es de 2 o superior, entonces la secuencia () (aa mm) (o) (aaaa) mm también es necesaria. <br> <b> dd () </ b> días (01 a 31). <br> <b> mm () </ b> mes (01 a 12). <br> <b> yy () < / b>, <b> (aaaa) </ b> o <b> (y) </ b> de más de 2 años, 4 o el 1 de números. <br> <b> cccc000 () </ b> el código de cliente en n caracteres seguidos de una ref. cliente sin offset y a 0 en el contador global. <br> <br> Todos los demás caracteres de la máscara se mantendrán intactos. <br> No se permiten espacios. <br> <br> <u> ejemplo, en la 99 %s del tercero de la empresa da 31/01/2007: </ u> <br> <b> ABC yy () ( mm) - (000000) </ b> dará <b> ABC0701-000099 </ b> <br> <b> 0000 (100)-ZZZ / () dd / XXX </ b> dará <b> 0199-ZZZ/31/XXX </ b> <br>
+GenericMaskCodes =
 GenericNumRefModelDesc = Devuelve un número creado acorde a una máscara definida.
 ServerAvailableOnIPOrPort = Servidor disponible en la dirección <b>%s</b> en el puerto <b>%s</b>
 ServerNotAvailableOnIPOrPort = Servidor no disponible en la dirección <b>%s</b> en el puerto <b>%s</b>
diff --git a/htdocs/langs/fi_FI/admin.lang b/htdocs/langs/fi_FI/admin.lang
index 5d8915454129d8c6abad9c384d0411ee466787f6..db5304ab22ac8374673202e96d5660a56db9b258 100644
--- a/htdocs/langs/fi_FI/admin.lang
+++ b/htdocs/langs/fi_FI/admin.lang
@@ -215,7 +215,7 @@ SetupIsReadyForUse=Asenna on päättynyt ja Dolibarr on valmis käyttämään t
 CurrentVersion=Dolibarr nykyinen versio
 CallUpdatePage=Siirry sivun päivitykset tietokannan rakennetta ja datas% s.
 LastStableVersion=Viimeisin vakaa versio
-GenericMaskCodes=Voit kirjoittaa minkä tahansa numerointiin mask. Tässä mask, seuraavia koodeja voidaan käyttää: <br> <b>(000000)</b> vastaa numero, jonka on kasvatettu kunkin% s. Kirjoita niin monta nollaa kuin toivottu pituus vastatakaus. Laskuri on täydennettävä nollilla vasemmalta, jotta on niin monta nollaa kuin peittää. <br> <b>(000000 +000)</b> sama kuin edellinen, mutta offset vastaa numeron oikealla puolella olevaa plusmerkkiä sovelletaan alkaa ensimmäiset% s. <br> <b>(000000 @ x)</b> sama kuin edellinen, mutta nollautuu nollaan, kun kuukausi x on saavutettu (x välillä 1 ja 12). Jos tämä vaihtoehto on käytössä, ja x on 2 tai enemmän, sitten järjestyksessä (yy) (mm) tai (vvvv) (mm) on myös tarpeen. <br> <b>(dd)</b> vrk (01-31). <br> <b>(mm)</b> kk (01-12). <br> <b>(yy), (vvvv)</b> tai <b>(y)</b> vuodessa yli 2, 4 tai 1-numerot. <br> <b>(cccc000)</b> asiakkaan koodi n merkkiä seuraa asiakkaan ref counter ilman tasoitusta ja zeroized whith maailmanlaajuisen laskuri. <br><br> Kaikki muut merkit ja maski pysyy ennallaan. <br> Välilyönnit eivät ole sallittuja. <br><br> <u>Esimerkki on 99% s on kolmannen osapuolen TheCompany tehnyt 31/01/2007:</u> <br> <b>ABC (yy) (mm) - (000000)</b> antaa <b>ABC0701-000099</b> <br> <b>(0000 +100)-ZZZ / (dd) / XXX</b> antaa <b>0199-ZZZ/31/XXX</b> <br>
+GenericMaskCodes=
 GenericNumRefModelDesc=Paluu mukautettavan numeron mukaan määritelty mask.
 ServerAvailableOnIPOrPort=Server on saatavilla <b>osoitteessa% s satama% s</b>
 ServerNotAvailableOnIPOrPort=Palvelin ei ole käytettävissä <b>osoitteessa% s satama% s</b>
diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang
index 5f3713b7f3f417cb5481338042884709ea2f5e5a..74b351773b239e083fd107421d80863f5efb4f8c 100644
--- a/htdocs/langs/fr_FR/admin.lang
+++ b/htdocs/langs/fr_FR/admin.lang
@@ -205,7 +205,12 @@ SetupIsReadyForUse=L'installation est terminée et Dolibarr est prêt à être u
 CurrentVersion=Version en cours de Dolibarr
 CallUpdatePage=Appeler la page de mise a jour de la structure et données de la base %s.
 LastStableVersion=Dernière version stable
-GenericMaskCodes=Vous pouvez saisir tout masque de numérotation. Dans ce masque, les balises suivantes peuvent etre utilisées:<br><b>{000000}</b> correspond a un numéro qui sera incrémenté à chaque %s. Mettre autant de zéro que la longueur désirée du compteur. Le compteur sera complété par des 0 à gauche afin d'avoir autant de zéro que dans le masque.<br><b>{000000+000}</b> idem précédemment mais un offset correpondant au nombre à droite du + est appliqué dès la premiere %s.<br><b>{000000@x}</b> idem précédemment mais le compteur est remis à zero le xeme mois de l'année (x entre 1 et 12). Si cette option est utilisée et x vaut 2 ou plus, alors la sequence {yy}{mm} ou {yyyy}{mm} est obligatoire. <br><b>{dd}</b> jour (01 à 31).<br><b>{mm}</b> mois (01 à 12).<br><b>{yy}</b>, <b>{yyyy}</b> ou <b>{y}</b> annee sur 2, 4 ou 1 chiffres.<br> <b>{cccc000}</b> le code client sur n lettres et suivi d'un compteur propre au client sans offset, complété par des zéros pour en avoir autant que dans le masque, et remis à zéro en même temps que le compteur global.<br><br> Tout autre caractère dans le masque sera laissé inchangé.<br>Les espaces ne sont pas permis.<br><br><u>Exemple sur la 99eme %s du tiers LaCompanie faite le 31/03/2007:</u><br><b>ABC{yy}{mm}-{000000}</b> donnera <b>ABC0703-000099</b><br><b>{0000+100}-XXX/{dd}/YYY</b> donnera <b>0199-XXX/31/YYY</b><br>
+GenericMaskCodes=Vous pouvez saisir tout masque de numérotation. Dans ce masque, les balises suivantes peuvent etre utilisées:<br><b>{000000}</b> correspond a un numéro qui sera incrémenté à chaque %s. Mettre autant de zéro que la longueur désirée du compteur. Le compteur sera complété par des 0 à gauche afin d'avoir autant de zéro que dans le masque.<br><b>{000000+000}</b> idem précédemment mais un offset correpondant au nombre à droite du + est appliqué dès la premiere %s.<br><b>{000000@x}</b> idem précédemment mais le compteur est remis à zero le xeme mois de l'année (x entre 1 et 12). Si cette option est utilisée et x vaut 2 ou plus, alors la sequence {yy}{mm} ou {yyyy}{mm} est obligatoire. <br><b>{dd}</b> jour (01 à 31).<br><b>{mm}</b> mois (01 à 12).<br><b>{yy}</b>, <b>{yyyy}</b> ou <b>{y}</b> annee sur 2, 4 ou 1 chiffres.<br>
+GenericMaskCodes2=<b>{cccc}</b> le code client sur n lettres<br><b>{cccc000}</b> le code client sur n lettres est suivi d'un compteur propre au client sans offset, complété par des zéros pour en avoir autant que dans le masque, et remis à zéro en même temps que le compteur global.<br>
+GenericMaskCodes3=Tout autre caractère dans le masque sera laissé inchangé.<br>Les espaces ne sont pas permis.<br>
+GenericMaskCodes4a=<u>Exemple sur la 99eme %s du tiers LaCompanie faite le 31/03/2007:</u><br>
+GenericMaskCodes4b=<u>Exemple sur un tiers crée le 31/03/2007:</u><br>
+GenericMaskCodes5=<b>ABC{yy}{mm}-{000000}</b> donnera <b>ABC0703-000099</b><br><b>{0000+100}-XXX/{dd}/YYY</b> donnera <b>0199-XXX/31/YYY</b>
 GenericNumRefModelDesc=Renvoie un numéro personalisable selon un masque à définir.
 ServerAvailableOnIPOrPort=Serveur disponible a l'adresse <b>%s</b> sur le port <b>%s</b>
 ServerNotAvailableOnIPOrPort=Serveur non disponible à l'adresse <b>%s</b> sur le port <b>%s</b>
diff --git a/htdocs/langs/fr_FR/companies.lang b/htdocs/langs/fr_FR/companies.lang
index 227c6b6267b5d6e7fedc6d426c667f06aefe3f0b..9dc45c86b64b36f1670b7e24dd873a0477988f0a 100644
--- a/htdocs/langs/fr_FR/companies.lang
+++ b/htdocs/langs/fr_FR/companies.lang
@@ -261,6 +261,7 @@ AutomaticallyGenerated=Généré automatiquement
 FiscalYearInformation=Information sur l'année fiscale
 FiscalMonthStart=Mois de début d'exercice
 
-# Tigre
-TigreNumRefModelDesc1=Renvoie un code client/fournisseur personnalisable selon un masque à définir.
-TigreMaskCodes=Vous pouvez saisir tout masque de numérotation. Dans ce masque, les balises suivantes peuvent etre utilisées:<br><b>{000000}</b> correspond a un numéro qui sera incrémenté à chaque code client/fournisseur. Mettre autant de zéro que la longueur désirée du compteur. Le compteur sera complété par des 0 à gauche afin d'avoir autant de zéro que dans le masque.<br><b>{dd}</b> jour de la création du code client/fournisseur (01 à 31).<br><b>{mm}</b> mois de la création du code client/fournisseur (01 à 12).<br><b>{yy}</b> et/ou {yyyy} annee, sur 2 ou 4 chiffres, de la création du code client/fournisseur.<br><b>{pre}</b> prefix du tiers.<br>Tout autre caractère dans le masque sera laissé inchangé.<br>Vous pouvez utiliser les caractères suivant comme séparateur : slash, anti-slash et tiret<br>Différencier les éléments utilisés avec un pipe <b>|</b> (altgr+6).<br>Les espaces ne sont pas permis.<br><br><u>Exemple de code client/fournisseur simple</u><br><b>CC|{00000}</b> donnera <b>CC00001</b><br><b>CF|-|{00000}</b> donnera <b>CF-00001</b><br><br><u>Exemple sur le 99eme code client/fournisseur fait le 31/01/2007:</u><br><b>ABC|-|{yy}|{mm}|-|{000000}</b> donnera <b>ABC-0701-000099</b><br><b>{0000}|-|{pre}|/|{dd}|/|INV</b> donnera <b>0099-SFR/31/INV</b><br>
+# Monkey
+MonkeyNumRefModelDesc=Vérifie que le code client/fournisseur est un nombre sur 6 chiffres, sans ruptures.
+# Leopard
+LeopardNumRefModelDesc=Code client/fournisseur libre sans vérification. Peut-etre modifié à tout moment.
diff --git a/htdocs/langs/it_IT/admin.lang b/htdocs/langs/it_IT/admin.lang
index a5fe4e4d43035c96a14827679d359794a8adbc43..fb50997929ad3964139a687e06434b953ee6d689 100644
--- a/htdocs/langs/it_IT/admin.lang
+++ b/htdocs/langs/it_IT/admin.lang
@@ -192,7 +192,11 @@ SetupIsReadyForUse							   =Installare 
 CurrentVersion								   =Dolibarr versione corrente
 CallUpdatePage								   =Vai alla pagina che aggiorna la struttura del database e dati su %s.
 LastStableVersion							   =Ultima versione stabile
-GenericMaskCodes							   =Puoi inserire uno schema di numerazione. In questo schema, possono essere utilizzati i seguenti tag : <br><br> <b> {000000} </b> Corrisponde a un numero che sar� incrementato in ogni %s. Inserisci il numero di zeri euivalente alla lunghezza desiderata del contatore. Il contatore sar� completato da zeri a sinistra al fine di avere tanti zeri come lo schema definito. <br><b> {000000+000} </b> Come il precedente, ma un offset corrispondente al numero a destra del segno + viene applicato a partire dalla prima %s. <br> <b> {000000@x} </b> Lo stesso come il precedente, ma il contatore non viene reimpostato a zero quando il mese x � raggiunto (x � tra 1 e 12). Se viene utilizzata questa opzione e x � 2 o superiore, allora la sequenza {yy}{mm} o {yyyy}{mm} � anche necessaria. <br> <b> {dd} </b> giorno (da 01 a 31). <br> <b> {mm} </b> mese (da 01 a 12). <br> <b> {yy} </b>, <b> {yyyy} </b> o <b> {y}  </b> anno pi� di 2, 4 o 1 numeri. <br><br> <b> {cccc000} </b> Il codice cliente su n caratteri seguiti dal contatore rif. cliente senza offset e azzerato con il contatore globale. <br> <br> Tutti gli altri caratteri nello schema rimarranno intatti. <br> Spazi non sono ammessi. <br> <br> <u> Esempio sulla 99a %s del terzo TheCompany fatta il 31/01/2007: </u> <br> <b> ABC{yy}{mm}-{000000} </b> dar� <b> ABC0701-000099 </b> <br> <b> {0000+100}-ZZZ/{dd}/XXX </b> dar� <b> 0199-ZZZ/31/XXX </b> <br>
+GenericMaskCodes							   =Puoi inserire uno schema di numerazione. In questo schema, possono essere utilizzati i seguenti tag : <br><b> {000000} </b> Corrisponde a un numero che sar� incrementato in ogni %s. Inserisci il numero di zeri euivalente alla lunghezza desiderata del contatore. Il contatore sar� completato da zeri a sinistra al fine di avere tanti zeri come lo schema definito. <br><b> {000000+000} </b> Come il precedente, ma un offset corrispondente al numero a destra del segno + viene applicato a partire dalla prima %s. <br> <b> {000000@x} </b> Lo stesso come il precedente, ma il contatore non viene reimpostato a zero quando il mese x � raggiunto (x � tra 1 e 12). Se viene utilizzata questa opzione e x � 2 o superiore, allora la sequenza {yy}{mm} o {yyyy}{mm} � anche necessaria. <br> <b> {dd} </b> giorno (da 01 a 31). <br> <b> {mm} </b> mese (da 01 a 12). <br> <b> {yy} </b>, <b> {yyyy} </b> o <b> {y}  </b> anno pi� di 2, 4 o 1 numeri.<br>
+GenericMaskCodes2=<b> {cccc000} </b> Il codice cliente su n caratteri seguiti dal contatore rif. cliente senza offset e azzerato con il contatore globale.<br>
+GenericMaskCodes3=Tutti gli altri caratteri nello schema rimarranno intatti. <br> Spazi non sono ammessi. <br>
+GenericMaskCodes4a=<u> Esempio sulla 99a %s del terzo TheCompany fatta il 31/01/2007: </u> <br>
+GenericMaskCodes5=<b> ABC{yy}{mm}-{000000} </b> dar� <b> ABC0701-000099 </b> <br> <b> {0000+100}-ZZZ/{dd}/XXX </b> dar� <b> 0199-ZZZ/31/XXX </b>
 GenericNumRefModelDesc							   =Ritorna un numero personalizzabile in base allo schema definito.
 ServerAvailableOnIPOrPort						   =Server � disponibile presso l'indirizzo <b> %s </b> sulla porta <b> %s </b>
 ServerNotAvailableOnIPOrPort						   =Server non � disponibile presso l'indirizzo <b> %s </b> sulla porta <b> %s </b>
diff --git a/htdocs/langs/nl_BE/admin.lang b/htdocs/langs/nl_BE/admin.lang
index 4b2c419921fbeabdf92b94d97c6f79c2d62d4a34..2c10c61ec992af718a19b44dca1c56beed8297b3 100644
--- a/htdocs/langs/nl_BE/admin.lang
+++ b/htdocs/langs/nl_BE/admin.lang
@@ -218,7 +218,7 @@ SetupIsReadyForUse=Installatie is voltooid en Dolibarr is gereed voor gebruik me
 CurrentVersion=Dolibarr huidige versie
 CallUpdatePage=Ga naar de pagina die updates database structuur en data% s.
 LastStableVersion=Laatste stabiele versie
-GenericMaskCodes=U kunt elke nummering masker. In dit masker, de volgende tags kunnen worden gebruikt: <br> <b>(000000)</b> komt overeen met een aantal dat zal worden verhoogd voor elk% s. Voer zoveel nullen als de gewenste lengte van de teller. De teller zal worden aangevuld met nullen van links om zoveel nullen als het masker. <br> <b>(000000 +000)</b> hetzelfde als de vorige, maar een compensatie overeenkomt met het aantal aan het recht van het + teken is toegepast, beginnend op eerste% s. <br> <b>(000000 @ x)</b> hetzelfde als de vorige, maar de teller op nul wanneer maand x is bereikt (x tussen 1 en 12). Als deze optie wordt gebruikt en x 2 of hoger, dan sequentie yy () () of (mm jjjj) () mm is ook nodig. <br> <b>dd ()</b> dag (01 tot 31). <br> <b>() mm</b> maand (01 tot 12). <br> <b>yy (), (jjjj)</b> of <b>(y)</b> jaar gedurende 2, 4 of 1 nummers. <br> <b>() cccc000</b> de client code op n tekens gevolgd door een klant ref teller zonder offset en zeroized breken de wereldwijde teller. <br><br> Alle andere tekens in het masker blijft intact. <br> Spaties zijn niet toegestaan. <br><br> <u>Voorbeeld op de 99e% s van de derde partij TheCompany gedaan 31/01/2007:</u> <br> <b>ABC yy () (MM) - (000.000)</b> geeft <b>ABC0701-000099</b> <br> <b>0000 +100 ()-ZZZ / dd () / XXX</b> zal <b>0199-ZZZ/31/XXX</b> <br>
+GenericMaskCodes=
 GenericNumRefModelDesc=Terugkeer een aanpasbare aantal volgens een omschreven masker.
 ServerAvailableOnIPOrPort=Server is beschikbaar op het <b>adres% s</b> op <b>poort% s</b>
 ServerNotAvailableOnIPOrPort=Server is niet beschikbaar op het <b>adres% s</b> op <b>poort% s</b>
diff --git a/htdocs/langs/nl_BE/bills.lang b/htdocs/langs/nl_BE/bills.lang
index 7c6dfc0af1cc15ca33870f927a08bd9d9f117cd4..98df9e22ac6d20c2c174cf49435c65649f868efb 100644
--- a/htdocs/langs/nl_BE/bills.lang
+++ b/htdocs/langs/nl_BE/bills.lang
@@ -286,9 +286,6 @@ MarsNumRefModelDesc1=Numéro de facture sous la forme, PREF-10-2004-005, qui cor
 MarsNumRefModelDesc2=Le nombre final est formaté sur 3 chiffres ou plus.
 MarsNumRefModelDesc3=Si la constante FACTURE_MARS_DELTA est définie, un offset est appliqué sur le compteur
 
-# mercure
-MercureNumRefModelDesc1=Renvoie le numéro de facture sous une forme numérique simple, la première facture porte le numéro 1, la quinzième facture ayant le numéro 15, le numéro est préfixé par la lettre F, ce module peut être utilisé avec dans le cas d'une numérotaion double.
-
 # neptune
 NeptuneNumRefModelDesc1=Renvoie le numéro de facture sous une forme du préfix FA suivi de l'année sur 2 chiffres et d'un compteur simple sur 4 chiffres.
 NeptuneNumRefModelDesc2=Si la constante FACTURE_NEPTUNE_DELTA est définie, un offset est appliqué sur le compteur
diff --git a/htdocs/langs/nl_NL/admin.lang b/htdocs/langs/nl_NL/admin.lang
index 2bc3aef58de0e4d54481a4e0233fadc5292dc96a..c58a5f46be5496a03d3dd127ff96fd1b269d5250 100644
--- a/htdocs/langs/nl_NL/admin.lang
+++ b/htdocs/langs/nl_NL/admin.lang
@@ -217,7 +217,7 @@ SetupIsReadyForUse=Installatie is voltooid en Dolibarr is gereed voor gebruik me
 CurrentVersion=Dolibarr huidige versie
 CallUpdatePage=Ga naar de pagina die updates database structuur en data% s.
 LastStableVersion=Laatste stabiele versie
-GenericMaskCodes=U kunt elke nummering masker. In dit masker, de volgende tags kunnen worden gebruikt: <br> <b>(000000)</b> komt overeen met een aantal dat zal worden verhoogd voor elk% s. Voer zoveel nullen als de gewenste lengte van de teller. De teller zal worden aangevuld met nullen van links om zoveel nullen als het masker. <br> <b>(000000 +000)</b> hetzelfde als de vorige, maar een compensatie overeenkomt met het aantal aan het recht van het + teken is toegepast, beginnend op eerste% s. <br> <b>(000000 @ x)</b> hetzelfde als de vorige, maar de teller op nul wanneer maand x is bereikt (x tussen 1 en 12). Als deze optie wordt gebruikt en x 2 of hoger, dan sequentie yy () () of (mm jjjj) () mm is ook nodig. <br> <b>dd ()</b> dag (01 tot 31). <br> <b>() mm</b> maand (01 tot 12). <br> <b>yy (), (jjjj)</b> of <b>(y)</b> jaar gedurende 2, 4 of 1 nummers. <br> <b>() cccc000</b> de client code op n tekens gevolgd door een klant ref teller zonder offset en zeroized breken de wereldwijde teller. <br><br> Alle andere tekens in het masker blijft intact. <br> Spaties zijn niet toegestaan. <br><br> <u>Voorbeeld op de 99e% s van de derde partij TheCompany gedaan 31/01/2007:</u> <br> <b>ABC yy () (MM) - (000.000)</b> geeft <b>ABC0701-000099</b> <br> <b>0000 +100 ()-ZZZ / dd () / XXX</b> zal <b>0199-ZZZ/31/XXX</b> <br>
+GenericMaskCodes=
 GenericNumRefModelDesc=Terugkeer een aanpasbare aantal volgens een omschreven masker.
 ServerAvailableOnIPOrPort=Server is beschikbaar op het <b>adres% s</b> op <b>poort% s</b>
 ServerNotAvailableOnIPOrPort=Server is niet beschikbaar op het <b>adres% s</b> op <b>poort% s</b>
diff --git a/htdocs/langs/pl_PL/admin.lang b/htdocs/langs/pl_PL/admin.lang
index b0f97a6908717d8fbceff54cbbc0e05aff4c3526..5297cc801e848347519a2def33cad4c5439e63e5 100644
--- a/htdocs/langs/pl_PL/admin.lang
+++ b/htdocs/langs/pl_PL/admin.lang
@@ -217,7 +217,7 @@ SetupIsReadyForUse=Instalacja jest zakończona i Dolibarr jest gotowy do użycia
 CurrentVersion=Dolibarr aktualnej wersji
 CallUpdatePage=Wejdź na stronę aktualizacji struktury bazy danych i danych% s.
 LastStableVersion=Ostatnia wersja stabilna
-GenericMaskCodes=Można wprowadzić wszelkie maski numeracji. W tym maskę, następujących tagów może być wykorzystana: <br> <b>(000000)</b> odpowiada szereg które będą zwiększane w każdym% s. Wpisz tyle zer w żądanej długości licznik. Licznik zostanie uzupełniona zerami od lewej w celu uzyskania jak wiele zer jak maska. <br> <b>(000000 +000)</b> samo jak poprzednie, ale offset odpowiadającą liczbie z prawej znak + jest stosowana począwszy od pierwszego% s. <br> <b>(X) @ 000000</b> samo jak poprzednie, ale zostanie wyzerowany do zera, kiedy zostanie osiągnięte miesięcy x (x pomiędzy 1 i 12). Jeśli opcja ta jest używana i x 2 lub wyższej, a następnie sekwencję rr () () lub (mm rrrr mm) () jest wymagana. <br> <b>dd ()</b> dni (od 01 do 31). <br> <b>(mm)</b> miesiące (od 01 do 12). <br> <b>rr (), (RRRR)</b> lub <b>(y)</b> roku ponad 2, 4 lub 1 numerów. <br> <b>() cccc000</b> klient kod na n znaków, a następnie klienta ref licznik bez wyrównania i zeroized whith globalnej licznik. <br><br> Wszystkie inne znaki w masce pozostaną nienaruszone. <br> Spacje są niedozwolone. <br><br> <u>Przykład na 99-cie% s strony trzeciej TheCompany zrobić 31/01/2007:</u> <br> <b>ABC rr) ((MM) - () 000000</b> dadzą <b>ABC0701-000099</b> <br> <b>(0000 +100) ZZZ / dd () / XXX</b> będzie <b>0199-ZZZ/31/XXX</b> <br>
+GenericMaskCodes=
 GenericNumRefModelDesc=Zwrotu dostosowywalne numer zgodnie z definicją maska.
 ServerAvailableOnIPOrPort=Serwer dostępny jest pod <b>adresem% s</b> na <b>porcie% s</b>
 ServerNotAvailableOnIPOrPort=Serwer nie jest dostępna pod <b>adresem% s</b> na <b>porcie% s</b>
diff --git a/htdocs/langs/pt_PT/admin.lang b/htdocs/langs/pt_PT/admin.lang
index e86fa65b052bb8715721424eb8e8a3f96fa3899d..45539a4182f5a54326c8b141615e1d4dfc694243 100644
--- a/htdocs/langs/pt_PT/admin.lang
+++ b/htdocs/langs/pt_PT/admin.lang
@@ -342,7 +342,7 @@ SetupIsReadyForUse=Instale Dolibarr está acabada e está pronto para uso com es
 CurrentVersion=Dolibarr versão atual
 CallUpdatePage=Ir para a página que atualiza estrutura de dados e dados% s.
 LastStableVersion=Última versão estável
-GenericMaskCodes=Você pode entrar em qualquer numeração máscara. Nesta máscara, as seguintes tags poderiam ser utilizados: <br> <b>(000000)</b> corresponde a um número que será incrementado a cada% s. Digite tantos zeros como o comprimento desejado do balcão. O contador será completado por zeros a partir da esquerda, a fim de ter tantos zeros como a máscara. <br> <b>000.000 (000)</b> mesmo que anterior mas uma compensação correspondente ao número à direita do sinal é aplicado a partir de primeiro% s. <br> <b>000000) (@ x</b> mesmo como os anteriores, mas o contador é reposto a zero, quando é atingido mês x (x entre 1 e 12). Se esta opção for utilizada e x é 2 ou superior, então seqüência (yy)) ou ((MM AAAA)) (milímetros é também necessária. <br> <b>(dd)</b> dia (01 a 31). <br> <b>(MM)</b> mês (01 a 12). <br> <b>yy (), (yyyy) (y)</b> anos ou mais de 2, 4 ou 1 números. <br> <b>() cccc000</b> código do cliente sobre n caracteres seguido por um cliente do contador ref sem compensação e zeroized Com o contador global. <br><br> Todos os outros caracteres na máscara permanecerá intacta. <br> Espaços não são permitidos. <br><br> <u>Exemplo, sobre o 99.% S do terceiro TheCompany feito 31/01/2007:</u> <br> <b>ABC (yy) (MM) - (000000)</b> dará <b>ABC0701-000099</b> <br> <b>0000 (100)-ZZZ / dd) (/ XXX</b> dará <b>0199-ZZZ/31/XXX</b> <br>
+GenericMaskCodes=
 GenericNumRefModelDesc=Retornar customizable um número definido de acordo com uma máscara.
 ServerAvailableOnIPOrPort=Server está disponível no <b>endereço% s</b> na <b>porta% s</b>
 ServerNotAvailableOnIPOrPort=Servidor não está disponível no <b>endereço% s</b> na <b>porta% s</b>
diff --git a/htdocs/langs/ro_RO/admin.lang b/htdocs/langs/ro_RO/admin.lang
index 81c082055ed5b8d82ab48e64bff69006215bc3aa..b6bb4c882f31e34e8966cf1e6110c90d53dc0d14 100644
--- a/htdocs/langs/ro_RO/admin.lang
+++ b/htdocs/langs/ro_RO/admin.lang
@@ -215,7 +215,7 @@ SetupIsReadyForUse=Instalarea este terminat şi Dolibarr este gata pentru a fi u
 CurrentVersion=Dolibarr versiunea curentă
 CallUpdatePage=Du-te la pagina care se actualizează datele şi structura bazei de date% s.
 LastStableVersion=Ultima versiune stabilă
-GenericMaskCodes=Puteţi introduce orice numerotare masca. În acest masca, următoarele tag-uri ar putea fi folosite: <br> <b>(000000)</b> corespunde un număr care va fi pe fiecare incremented% s. Introduceţi oricât de multe zerouri ca lungimea dorită din contra. În contra va fi completat de zero-uri de la stânga pentru a avea cât mai multe zero-uri ca masca. <br> <b>000000 (000)</b> fel ca precedenta, dar un offset corespunzător numărului de la dreptul de a semnul +, se aplică, începând cu prima% s. <br> <b>(000000 @ x)</b> aceeaşi ca şi precedent, dar contra este readus la zero, atunci când se ajunge la luna x (x intre 1 si 12). Dacă această opţiune este folosită şi x este de 2 sau mai mare, apoi secventa (aa) (mm) sau (AAAA) (mm) este, de asemenea, necesară. <br> <b>() zz</b> zi (01 - 31). <br> <b>(mm)</b> luni (01 la 12). <br> <b>(aa), (AAAA)</b> sau <b>(Y)</b> ani mai mult de 2, 4 sau 1 numere. <br> <b>() cccc000</b> cod de client pe n caractere urmat de un client, fără a compensa ref contra şi zeroized whith global contra. <br><br> Toate celelalte caractere în masca va rămâne intactă. <br> Spaţiile nu sunt permise. <br><br> <u>Exemplu pe 99th% s de-a treia parte TheCompany făcut 31/01/2007:</u> <br> <b>ABC (aa) (mm) - (000000)</b> va da <b>ABC0701-000099</b> <br> <b>(0000) 100-zzz / () zz / XXX</b> va da <b>0199-ZZZ/31/XXX</b> <br>
+GenericMaskCodes=
 GenericNumRefModelDesc=Întoarceţi-vă un număr de personalizabil definite în conformitate cu o masca.
 ServerAvailableOnIPOrPort=Server este disponibil la <b>adresa% s</b> pe <b>portul% s</b>
 ServerNotAvailableOnIPOrPort=Serverul nu este disponibil la <b>adresa% s</b> pe <b>portul% s</b>
diff --git a/htdocs/langs/ru_RU/admin.lang b/htdocs/langs/ru_RU/admin.lang
index 0a85ad5e6c61c5aa40fcea00ed6a10d4c4b7402d..f0ce12b443f79ca02598aebf3b8251b58a19dc7f 100644
--- a/htdocs/langs/ru_RU/admin.lang
+++ b/htdocs/langs/ru_RU/admin.lang
@@ -215,7 +215,7 @@ SetupIsReadyForUse=Установка закончена, и Dolibarr готов
 CurrentVersion=Dolibarr текущей версии
 CallUpdatePage=Зайдите на страницу, которая обновления структуры базы данных и данных% s.
 LastStableVersion=Последняя стабильная версия
-GenericMaskCodes=Вы можете войти в любой нумерации маска. В этой маске, следующие теги можно использовать: <br> <b>(000000)</b> соответствует число, которое будет увеличивается на каждом% s. Введите столько нулей в качестве желаемой длины счетчика. Счетчик будет завершена к нулями слева, с тем чтобы иметь столько нулей, как маска. <br> <b>000000 (000)</b> же, как и предыдущий, но компенсировать соответствующий номер Право + знак применяется начиная с первого% s. <br> <b>(000000 @ X)</b> же, как и предыдущий, но счетчик сбрасывается до нуля, когда в месяц х достигнуто (X в период с 1 по 12). Если эта опция используется и Х 2 или выше, то последовательность (ГГ) () или мм гггг () () мм Также требуется. <br> <b>() дд</b> сутки (от 01 до 31). <br> <b>() мм</b> в месяц (от 01 до 12). <br> <b>YY (), ()</b> или <b>гггг (Y)</b> в год в течение 2, 4 или 1 числа. <br> <b>() cccc000</b> код клиента по N символов, после чего клиент исх борьбы без смещения и zeroized whith Глобальной контртеррористической стратегии. <br><br> Все другие символы в маске останутся нетронутыми. <br> Пространства, не допускается. <br><br> <u>Пример на 99-й% х сторонних TheCompany сделали 31/01/2007:</u> <br> <b>ABC YY () (мм) - () 000000</b> даст <b>ABC0701-000099</b> <br> <b>(100) 0000-ZZZ / (ДД) / XXX</b> даст <b>0199-ZZZ/31/XXX</b> <br>
+GenericMaskCodes=
 GenericNumRefModelDesc=Возврат количества настраиваемых в соответствии с определенной маской.
 ServerAvailableOnIPOrPort=Сервер доступен по <b>адресу% S порт% S</b>
 ServerNotAvailableOnIPOrPort=Сервер не доступен по <b>адресу% S порт% S</b>
diff --git a/htdocs/lib/functions2.lib.php b/htdocs/lib/functions2.lib.php
index 73a896d9577ccd38222e05d3d61b67c71c6b73c7..a35ea9a608626b41b476fac370720ccbe4878e96 100644
--- a/htdocs/lib/functions2.lib.php
+++ b/htdocs/lib/functions2.lib.php
@@ -63,13 +63,13 @@ function array2table($data,$tableMarkup=1,$tableoptions='',$troptions='',$tdopti
 /**
  * Return next value for a mask
  *
- * @param unknown_type $db
- * @param 	$mask
- * @param unknown_type $table
- * @param unknown_type $field
- * @param unknown_type $where			To add a filter on selection (for exemple to filter for invoice types)
- * @param unknown_type $valueforccc
- * @param unknown_type $date
+ * @param unknown_type 	$db				Database handler
+ * @param 				$mask			Mask to use
+ * @param unknown_type 	$table			Table containing field with counter
+ * @param unknown_type 	$field			Field containing already used values of counter
+ * @param unknown_type 	$where			To add a filter on selection (for exemple to filter on invoice types)
+ * @param unknown_type 	$valueforccc
+ * @param unknown_type 	$date
  * @return 	string		New value
  */
 function get_next_value($db,$mask,$table,$field,$where='',$valueforccc='',$date='')
@@ -268,6 +268,102 @@ function get_next_value($db,$mask,$table,$field,$where='',$valueforccc='',$date=
 }
 
 
+/**
+ * Check value
+ *
+ * @param unknown_type 	$db				Database handler
+ * @param 				$mask			Mask to use
+ * @param unknown_type 	$table			Table containing field with counter
+ * @param unknown_type 	$field			Field containing already used values of counter
+ * @param unknown_type 	$where			To add a filter on selection (for exemple to filter on invoice types)
+ * @param unknown_type 	$valueforccc
+ * @param unknown_type 	$date
+ * @return		int			<0 if KO, 0 if OK
+ */
+function check_value($mask,$value)
+{
+	$result=0;
+
+	// Extract value for mask counter, mask raz and mask offset
+	if (! eregi('\{(0+)([@\+][0-9]+)?([@\+][0-9]+)?\}',$mask,$reg)) return 'ErrorBadMask';
+	$masktri=$reg[1].$reg[2].$reg[3];
+	$maskcounter=$reg[1];
+	$maskraz=-1;
+	$maskoffset=0;
+	if (strlen($maskcounter) < 3) return 'CounterMustHaveMoreThan3Digits';
+
+	// Extract value for third party mask counter
+	if (eregi('\{(c+)(0*)\}',$mask,$regClientRef))
+	{
+		$maskrefclient=$regClientRef[1].$regClientRef[2];
+		$maskrefclient_maskclientcode=$regClientRef[1];
+		$maskrefclient_maskcounter=$regClientRef[2];
+		$maskrefclient_maskoffset=0; //default value of maskrefclient_counter offset
+		$maskrefclient_clientcode=substr($valueforccc,0,strlen($maskrefclient_maskclientcode));//get n first characters of client code to form maskrefclient_clientcode
+		$maskrefclient_clientcode=str_pad($maskrefclient_clientcode,strlen($maskrefclient_maskclientcode),"#",STR_PAD_RIGHT);//padding maskrefclient_clientcode for having exactly n characters in maskrefclient_clientcode
+		$maskrefclient_clientcode=dol_string_nospecial($maskrefclient_clientcode);//sanitize maskrefclient_clientcode for sql insert and sql select like
+		if (strlen($maskrefclient_maskcounter) > 0 && strlen($maskrefclient_maskcounter) < 3) return 'CounterMustHaveMoreThan3Digits';
+	}
+	else $maskrefclient='';
+
+	$maskwithonlyymcode=$mask;
+	$maskwithonlyymcode=eregi_replace('\{(0+)([@\+][0-9]+)?([@\+][0-9]+)?\}',$maskcounter,$maskwithonlyymcode);
+	$maskwithonlyymcode=eregi_replace('\{dd\}','dd',$maskwithonlyymcode);
+	$maskwithonlyymcode=eregi_replace('\{(c+)(0*)\}',$maskrefclient,$maskwithonlyymcode);
+	$maskwithnocode=$maskwithonlyymcode;
+	$maskwithnocode=eregi_replace('\{yyyy\}','yyyy',$maskwithnocode);
+	$maskwithnocode=eregi_replace('\{yy\}','yy',$maskwithnocode);
+	$maskwithnocode=eregi_replace('\{y\}','y',$maskwithnocode);
+	$maskwithnocode=eregi_replace('\{mm\}','mm',$maskwithnocode);
+	// Now maskwithnocode = 0000ddmmyyyyccc for example
+	// and maskcounter    = 0000 for example
+	//print "maskwithonlyymcode=".$maskwithonlyymcode." maskwithnocode=".$maskwithnocode."\n<br>";
+
+	// If an offset is asked
+	if (! empty($reg[2]) && eregi('^\+',$reg[2])) $maskoffset=eregi_replace('^\+','',$reg[2]);
+	if (! empty($reg[3]) && eregi('^\+',$reg[3])) $maskoffset=eregi_replace('^\+','',$reg[3]);
+
+	// Define $sqlwhere
+
+	// If a restore to zero after a month is asked we check if there is already a value for this year.
+	if (! empty($reg[2]) && eregi('^@',$reg[2]))  $maskraz=eregi_replace('^@','',$reg[2]);
+	if (! empty($reg[3]) && eregi('^@',$reg[3]))  $maskraz=eregi_replace('^@','',$reg[3]);
+	if ($maskraz >= 0)
+	{
+		if ($maskraz > 12) return 'ErrorBadMaskBadRazMonth';
+
+		// Define reg
+		if ($maskraz > 1 && ! eregi('^(.*)\{(y+)\}\{(m+)\}',$maskwithonlyymcode,$reg)) return 'ErrorCantUseRazInStartedYearIfNoYearMonthInMask';
+		if ($maskraz <= 1 && ! eregi('^(.*)\{(y+)\}',$maskwithonlyymcode,$reg)) return 'ErrorCantUseRazIfNoYearInMask';
+		//print "x".$maskwithonlyymcode." ".$maskraz;
+	}
+	//print "masktri=".$masktri." maskcounter=".$maskcounter." maskraz=".$maskraz." maskoffset=".$maskoffset."<br>\n";
+
+	// Check we have a number in ($posnumstart+1).', '.strlen($maskcounter)
+	//
+
+	// Check length
+	$len=strlen($maskwithnocode);
+	if (strlen($value) != $len) $result=-1;
+
+	// Define $maskLike
+	$maskLike = dol_string_nospecial($mask);
+	$maskLike = str_replace("%","_",$maskLike);
+	// Replace protected special codes with matching number of _ as wild card caracter
+	$maskLike = str_replace(dol_string_nospecial('{yyyy}'),'____',$maskLike);
+	$maskLike = str_replace(dol_string_nospecial('{yy}'),'__',$maskLike);
+	$maskLike = str_replace(dol_string_nospecial('{y}'),'_',$maskLike);
+	$maskLike = str_replace(dol_string_nospecial('{mm}'),'__',$maskLike);
+	$maskLike = str_replace(dol_string_nospecial('{dd}'),'__',$maskLike);
+	$maskLike = str_replace(dol_string_nospecial('{'.$masktri.'}'),str_pad("",strlen($maskcounter),"_"),$maskLike);
+	if ($maskrefclient) $maskLike = str_replace(dol_string_nospecial('{'.$maskrefclient.'}'),str_pad("",strlen($maskrefclient),"_"),$maskLike);
+
+
+	dolibarr_syslog("functions2::check_value result=".$result,LOG_DEBUG);
+	return $result;
+}
+
+
 /**
  *	\brief   Convert a binary data to string that represent hexadecimal value
  *	\param   bin		Value to convert
diff --git a/htdocs/lib/lib_foot.js b/htdocs/lib/lib_foot.js
index 5ce21a2c0517ada28ef1eb7d25d58550837f7f22..2e5a07588ee96ec9c817c7caf8dde16d40acd2ba 100644
--- a/htdocs/lib/lib_foot.js
+++ b/htdocs/lib/lib_foot.js
@@ -14,7 +14,7 @@
 ***********************************************/
 
 var offsetxpoint=-60 //Customize x offset of tooltip
-var offsetypoint=20 //Customize y offset of tooltip
+var offsetypoint=18 //Customize y offset of tooltip
 var ie=document.all
 var ns6=document.getElementById && !document.all
 var enabletip=false
@@ -47,7 +47,8 @@ function positiontip(e)
 		var bottomedge=ie&&!window.opera? ietruebody().clientHeight-event.clientY-offsetypoint : window.innerHeight-e.clientY-offsetypoint-20
 		
 		var leftedge=(offsetxpoint<0)? offsetxpoint*(-1) : -1000
-		
+		//alert('curX='+curX+' curY='+curY+' rightedge='+rightedge+' bottomedge='+bottomedge+' leftedge='+leftedge+' tipobj.offsetHeight='+tipobj.offsetHeight);
+				
 		//if the horizontal distance isn't enough to accomodate the width of the context menu
 		if (rightedge<tipobj.offsetWidth)
 		//move the horizontal position of the menu to the left by it's width
diff --git a/htdocs/soc.php b/htdocs/soc.php
index 0f305454db285c7cabba492f18ee762c7d043010..ed7fc88e2ee88ca2e773cbb4090051e9affd88cd 100644
--- a/htdocs/soc.php
+++ b/htdocs/soc.php
@@ -131,29 +131,13 @@ if ((! $_POST["getcustomercode"] && ! $_POST["getsuppliercode"])
 
 	if (! $error)
 	{
-		// On v�rifie si un tiers devient client ou fournisseur pour l'obtention d'un code automatiqe
-		if ($soc->client && $soc->code_client == -1)
-		{
-			$soc->code_client = -1;
-		}
-		else if ($_POST['code_auto'])
-		{
-			$soc->code_client = '';
-		}
-
-		if ($soc->fournisseur && $soc->code_fournisseur == -1)
-		{
-			$soc->code_fournisseur = -1;
-		}
-		else if ($_POST['code_auto'])
-		{
-			$soc->code_fournisseur = '';
-		}
-
 		if ($_POST["action"] == 'add')
 		{
 			$db->begin();
 
+			if (empty($soc->client))      $soc->code_client='';
+			if (empty($soc->fournisseur)) $soc->code_fournisseur='';
+
 			$result = $soc->create($user);
 			if ($result >= 0)
 			{
@@ -223,6 +207,10 @@ if ((! $_POST["getcustomercode"] && ! $_POST["getsuppliercode"])
 			$oldsoc=new Societe($db);
 			$result=$oldsoc->fetch($socid);
 
+			// To not set code if third party is not concerned. But if it had values, we keep them.
+			if (empty($soc->client) && empty($oldsoc->code_client))          $soc->code_client='';
+			if (empty($soc->fournisseur)&& empty($oldsoc->code_fournisseur)) $soc->code_fournisseur='';
+
 			$result = $soc->update($socid,$user,1,$oldsoc->codeclient_modifiable(),$oldsoc->codefournisseur_modifiable());
 			if ($result >= 0)
 			{
@@ -408,15 +396,9 @@ $_GET["action"] == 'create' || $_POST["action"] == 'create')
 
 		print '<td width="25%">'.$langs->trans('CustomerCode').'</td><td width="25%">';
 		print '<table class="nobordernopadding"><tr><td>';
-		if ($modCodeClient->code_auto)
-		{
-			print '<input type="hidden" name="code_client" value="-1">';
-			print $langs->trans('AutomaticallyGenerated').'&nbsp;';
-		}
-		else
-		{
-			print '<input type="text" name="code_client" size="16" value="'.$soc->code_client.'" maxlength="15">';
-		}
+		$tmpcode=$soc->code_client;
+		if ($modCodeClient->code_auto) $tmpcode=$modCodeClient->getNextValue($soc,0);
+		print '<input type="text" name="code_client" size="16" value="'.$tmpcode.'" maxlength="15">';
 		print '</td><td>';
 		$s=$modCodeClient->getToolTip($langs,$soc,0);
 		print $form->textwithhelp('',$s,1);
@@ -431,15 +413,9 @@ $_GET["action"] == 'create' || $_POST["action"] == 'create')
 		print '</td>';
 		print '<td>'.$langs->trans('SupplierCode').'</td><td>';
 		print '<table class="nobordernopadding"><tr><td>';
-		if ($modCodeFournisseur->code_auto)
-		{
-			print '<input type="hidden" name="code_fournisseur" value="-1">';
-			print $langs->trans('AutomaticallyGenerated').'&nbsp;';
-		}
-		else
-		{
-			print '<input type="text" name="code_fournisseur" size="16" value="'.$soc->code_fournisseur.'" maxlength="15">';
-		}
+		$tmpcode=$soc->code_fournisseur;
+		if ($modCodeFournisseur->code_auto) $tmpcode=$modCodeFournisseur->getNextValue($soc,1);
+		print '<input type="text" name="code_fournisseur" size="16" value="'.$tmpcode.'" maxlength="15">';
 		print '</td><td>';
 		$s=$modCodeFournisseur->getToolTip($langs,$soc,1);
 		print $form->textwithhelp('',$s,1);
@@ -752,8 +728,9 @@ elseif ($_GET["action"] == 'edit' || $_POST["action"] == 'edit')
 		print '<table class="nobordernopadding"><tr><td>';
 		if ((!$soc->code_client || $soc->code_client == -1) && $modCodeClient->code_auto)
 		{
-			print '<input type="hidden" name="code_client" value="-1">';
-			print $langs->trans('AutomaticallyGenerated').'&nbsp;';
+			$tmpcode=$soc->code_client;
+			if (empty($tmpcode) && $modCodeClient->code_auto) $tmpcode=$modCodeClient->getNextValue($soc,0);
+			print '<input type="text" name="code_client" size="16" value="'.$tmpcode.'" maxlength="15">';
 		}
 		else if ($soc->codeclient_modifiable())
 		{
@@ -781,8 +758,9 @@ elseif ($_GET["action"] == 'edit' || $_POST["action"] == 'edit')
 		print '<table class="nobordernopadding"><tr><td>';
 		if ((!$soc->code_fournisseur || $soc->code_fournisseur == -1) && $modCodeFournisseur->code_auto)
 		{
-			print '<input type="hidden" name="code_fournisseur" value="-1">';
-			print $langs->trans('AutomaticallyGenerated').'&nbsp;';
+			$tmpcode=$soc->code_fournisseur;
+			if (empty($tmpcode) && $modCodeFournisseur->code_auto) $tmpcode=$modCodeFournisseur->getNextValue($soc,1);
+			print '<input type="text" name="code_fournisseur" size="16" value="'.$tmpcode.'" maxlength="15">';
 		}
 		else if ($soc->codefournisseur_modifiable())
 		{
diff --git a/htdocs/societe.class.php b/htdocs/societe.class.php
index dbd5932e3019d1908c4dd3fc727368abcfad2e9a..ec38c660cd22303dec812c1a6f2ecc5457e5c932 100644
--- a/htdocs/societe.class.php
+++ b/htdocs/societe.class.php
@@ -82,9 +82,9 @@ class Societe extends CommonObject
 	var $mode_reglement;
 	var $cond_reglement;
 
-	var $client;
-	var $prospect;
-	var $fournisseur;
+	var $client;					// 0=no customer, 1=customer, 2=prospect
+	var $prospect;					// 0=no prospect, 1=prospect
+	var $fournisseur;				// =0no supplier, 1=supplier
 
 	var $prefixCustomerIsRequired;
 	var $prefixSupplierIsRequired;
@@ -145,8 +145,8 @@ class Societe extends CommonObject
 
 		$this->db->begin();
 
-		// Pour code automatique
-		if ($this->code_client == -1) $this->get_codeclient($this->prefix_comm,0);
+		// For automatic creation during create action (not used by Dolibarr)
+		if ($this->code_client == -1)      $this->get_codeclient($this->prefix_comm,0);
 		if ($this->code_fournisseur == -1) $this->get_codefournisseur($this->prefix_comm,1);
 
 		$result = $this->verify();
@@ -154,7 +154,7 @@ class Societe extends CommonObject
 		if ($result >= 0)
 		{
 			$sql = "INSERT INTO ".MAIN_DB_PREFIX."societe (nom, datec, datea, fk_user_creat)";
-			$sql.= " VALUES ('".addslashes($this->nom)."', ".$this->db->idate(mktime()).", ".$this->db->idate(mktime()).",";
+			$sql.= " VALUES ('".addslashes($this->nom)."', ".$this->db->idate(gmmktime()).", ".$this->db->idate(gmmktime()).",";
 			$sql.= " ".($user->id > 0 ? "'".$user->id."'":"null");
 			$sql.= ")";
 
@@ -348,7 +348,7 @@ class Societe extends CommonObject
 		//Gencod
         $this->gencod=trim($this->gencod);
 
-		// Pour code client/fournisseur automatique
+		// For automatic creation (not used by Dolibarr)
 		if ($this->code_client == -1) $this->get_codeclient($this->prefix_comm,0);
 		if ($this->code_fournisseur == -1) $this->get_codefournisseur($this->prefix_comm,1);
 
@@ -401,8 +401,7 @@ class Societe extends CommonObject
 
 			if ($allowmodcodeclient)
 			{
-				// Attention check_codeclient peut modifier le code suivant le module utilise
-				$this->check_codeclient();
+				//$this->check_codeclient();
 
 				$sql .= ", code_client = ".($this->code_client?"'".addslashes($this->code_client)."'":"null");
 
@@ -414,8 +413,7 @@ class Societe extends CommonObject
 
 			if ($allowmodcodefournisseur)
 			{
-				// Attention check_codefournisseur peut modifier le code suivant le module utilise
-				$this->check_codefournisseur();
+				//$this->check_codefournisseur();
 
 				$sql .= ", code_fournisseur = ".($this->code_fournisseur?"'".addslashes($this->code_fournisseur)."'":"null");
 
@@ -1516,7 +1514,7 @@ class Societe extends CommonObject
 
 	/**
 	 *    \brief      Verifie code client
-	 *    \return     int		<0 si KO, 0 si OK, peut modifier le code client suivant le module utilis�
+	 *    \return     int		<0 si KO, 0 si OK, peut modifier le code client suivant le module utilise
 	 */
 	function check_codeclient()
 	{
@@ -1541,7 +1539,7 @@ class Societe extends CommonObject
 
 	/**
 	 *    \brief      Verifie code fournisseur
-	 *    \return     int		<0 si KO, 0 si OK, peut modifier le code client suivant le module utilis�
+	 *    \return     int		<0 si KO, 0 si OK, peut modifier le code client suivant le module utilise
 	 */
 	function check_codefournisseur()
 	{
diff --git a/htdocs/theme/auguria/auguria.css.php b/htdocs/theme/auguria/auguria.css.php
index e672361255b4274b7871e3b06ccfb5b9bd9dbcd0..e4ee52a2d7348f6d17e8dc563f489ccd4687e17c 100644
--- a/htdocs/theme/auguria/auguria.css.php
+++ b/htdocs/theme/auguria/auguria.css.php
@@ -377,7 +377,7 @@ div.blockvmenupair
 	border-spacing: 0px;
 	padding: 0px;
 	width: 166px;
-    border : 0px solid #68ACCF;	
+    border : 0px solid #68ACCF;
 }
 div.blockvmenuimpair
 {
@@ -385,7 +385,7 @@ div.blockvmenuimpair
 	border-spacing: 0px;
 	padding: 0px;
 	width: 166px;
-    border : 0px solid #68ACCF;	
+    border : 0px solid #68ACCF;
 }
 
 
@@ -442,7 +442,7 @@ div.menu_contenu {
 div.menu_fin {
 	background: url(<?php echo $dolibarr_main_url_root.'/theme/auguria/img/bg-bas-rubrique.png' ?>);
 	margin: 0px;
-	padding: 0px;	
+	padding: 0px;
 	height:6px;
     width:165px;
     background-repeat:no-repeat;
@@ -850,7 +850,7 @@ border: 0px;
 table.box {
 margin: 2px;
 }
- 
+
 tr.box_titre {
 background: #68ACCF;
 color: #FFFFFF;
@@ -1090,7 +1090,7 @@ div.menuFleche
 #dhtmltooltip
 {
 position: absolute;
-width: 420px;
+width: 450px;
 border: 1px solid #444444;
 padding: 2px;
 background-color: #FFFFE0;
@@ -1128,7 +1128,7 @@ table.dp {
 	text-align:center;
 	background-color:#617389;color:#FFFFFF; font-weight:bold;
 	border: 1px outset black;
-	cursor:pointer;	
+	cursor:pointer;
 }
 .dpButtons:Active,.tpButtons:Active{border: 1px outset black;}
 .dpDayNames td,.dpExplanation {background-color:#D9DBE1; font-weight:bold; text-align:center; font-size:11px;}
@@ -1149,7 +1149,7 @@ table.dp {
 .tpMinute {margin-top:5px;}
 .tpMinute td:Hover {background-color:black; color:white; }
 .tpMinute td {background-color:#D9DBE1; text-align:center; cursor:pointer;}
-	
+
 .dpInvisibleButtons
 {
 border-style:none;
diff --git a/htdocs/theme/bluelagoon/bluelagoon.css b/htdocs/theme/bluelagoon/bluelagoon.css
index 4c33a9f14f113bcb387d9d82499ff939ce756ebc..42691024cb1a5e3fb38dff9169746ae010cebb0b 100644
--- a/htdocs/theme/bluelagoon/bluelagoon.css
+++ b/htdocs/theme/bluelagoon/bluelagoon.css
@@ -657,7 +657,7 @@ tr.nonpayed {
 #dhtmltooltip
 {
 position: absolute;
-width: 420px;
+width: 450px;
 border: 1px solid #444444;
 padding: 2px;
 background-color: #FFFFE0;
diff --git a/htdocs/theme/dev/dev.css b/htdocs/theme/dev/dev.css
index 230ebafc7d9b54dca23f24e6d74fd5746947ddbe..6a909d43fb6ecf5cf461b9751b91a30f265eb1e7 100644
--- a/htdocs/theme/dev/dev.css
+++ b/htdocs/theme/dev/dev.css
@@ -843,7 +843,7 @@ tr.nonpayed {
 #dhtmltooltip
 {
 position: absolute;
-width: 420px;
+width: 450px;
 border: 1px solid #444444;
 padding: 2px;
 background-color: lightyellow;
diff --git a/htdocs/theme/eldy/eldy.css.php b/htdocs/theme/eldy/eldy.css.php
index 19b7aa9dc4d9c81cd5292b7e068004b1355bcc2d..71b931d93e550aeb9327eb5c2c9635aadd9b2424 100644
--- a/htdocs/theme/eldy/eldy.css.php
+++ b/htdocs/theme/eldy/eldy.css.php
@@ -220,7 +220,7 @@ a.tmenu:link
   color: #234046;
   padding: 0px 5px 0px 5px;
   margin: 0px 1px 2px 1px;
-  font-size: 12px; 
+  font-size: 12px;
   font-family: helvetica, verdana, arial, sans-serif;
   font-weight: normal;
 }
@@ -230,7 +230,7 @@ a.tmenu:visited
   padding: 0px 5px 0px 5px;
   margin: 0px 1px 2px 1px;
   border: 0px solid #b3c5cc;
-  font-size: 12px; 
+  font-size: 12px;
   font-family: helvetica, verdana, arial, sans-serif;
   font-weight: normal;
 }
@@ -303,7 +303,7 @@ div.tmenu ul {
 	padding: 0px 0px 0px 0px;
     margin: 0px 0px 0px 0px;
 	list-style: none;
-	
+
 }
 div.tmenu li {
 	float: left;
@@ -777,7 +777,7 @@ padding-bottom: 4px;
 margin: 0px 0px;
 }
 
-   
+
 table.border {
 border: 1px solid #9CACBB;
 border-collapse: collapse;
@@ -907,7 +907,7 @@ tr.box_titre {
 background: #7699A9;
 background-image: url(<?php echo $dolibarr_main_url_root.'/theme/eldy/img/liste_titre.png' ?>);
 color: #334444;
-font-size: 12px; 
+font-size: 12px;
 font-family: arial, helvetica, verdana, sans-serif;
 font-weight: bold;
 border-bottom: 1px solid #FDFFFF;
@@ -918,13 +918,13 @@ white-space: nowrap;
 
 tr.box_impair {
 background: #e6ebed;
-font-size: 12px; 
+font-size: 12px;
 font-family: arial, helvetica, verdana, sans-serif;
 }
 
 tr.box_pair {
 background: #d0d4d7;
-font-size: 12px; 
+font-size: 12px;
 font-family: arial, helvetica, verdana, sans-serif;
 }
 
@@ -1044,7 +1044,7 @@ padding: 2px;
 #dhtmltooltip
 {
 position: absolute;
-width: 420px;
+width: 450px;
 border-top: solid 1px #BBBBBB;
 border-left: solid 1px #BBBBBB;
 border-right: solid 1px #444444;
@@ -1252,7 +1252,7 @@ div.autocomplete ul li {
       cursor:pointer;
     }
 
-	
+
 /* ============================================================================== */
 /*  Ajax - In place editor                                                        */
 /* ============================================================================== */
@@ -1288,7 +1288,7 @@ form.inplaceeditor-form a { /* The cancel link */
 }
 
 
-    
+
 /* ============================================================================== */
 /* Admin Menu                                                                     */
 /* ============================================================================== */
diff --git a/htdocs/theme/freelug/freelug.css.php b/htdocs/theme/freelug/freelug.css.php
index 2e4ec07eb48110f5fc91e1408a35c9fbdf93e966..cddea1de27414329f14de9364d578acd28ab7c5f 100644
--- a/htdocs/theme/freelug/freelug.css.php
+++ b/htdocs/theme/freelug/freelug.css.php
@@ -1,6 +1,6 @@
 <?php
-/* Copyright (C) 2002      Rodolphe Quiedeville <rodolphe@quiedeville.org> 
- * Copyright (C) 2004-2008 Laurent Destailleur  <eldy@users.sourceforge.net> 
+/* Copyright (C) 2002      Rodolphe Quiedeville <rodolphe@quiedeville.org>
+ * Copyright (C) 2004-2008 Laurent Destailleur  <eldy@users.sourceforge.net>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -58,18 +58,18 @@ a:visited { font-family: helvetica, verdana, arial, sans-serif; font-weight: bol
 a:active  { font-family: helvetica, verdana, arial, sans-serif; font-weight: bold; color: #000000; text-decoration: none; }
 a:hover   { font-family: helvetica, verdana, arial, sans-serif; font-weight: bold; color: #000000; text-decoration: underline; }
 input
-{ 
+{
 	font-size: 12px;
-    font-family: helvetica, verdana, arial, sans-serif; 
+    font-family: helvetica, verdana, arial, sans-serif;
     background: #FFFFFF;
     border: 1px solid #8C9C9B;
     padding: 0px 0px 0px 0px;
     margin: 0px 0px 0px 0px;
 }
 input.flat
-{ 
+{
 	font-size: 12px;
-    font-family: helvetica, verdana, arial, sans-serif; 
+    font-family: helvetica, verdana, arial, sans-serif;
     background: #FFFFFF;
     border: 1px solid #8C9C9B;
     padding: 0px 0px 0px 0px;
@@ -105,7 +105,7 @@ select.flat
 	font-size: 11px;
 	font-family: arial,verdana,heletica, sans-serif;
     padding: 0px 2px 0px 2px;
-    margin: 0px 0px 0px 0px; 
+    margin: 0px 0px 0px 0px;
 	border-left: 1px solid #cccccc;
 	border-right: 1px solid #aaaaaa;
 	border-top: 1px solid #dddddd;
@@ -118,7 +118,7 @@ select.flat
 	font-size: 11px;
 	font-family: arial,verdana,heletica, sans-serif;
     padding: 0px 2px 0px 2px;
-    margin: 0px 0px 0px 0px; 
+    margin: 0px 0px 0px 0px;
 	border-left: 1px solid #cccccc;
 	border-right: 1px solid #aaaaaa;
 	border-top: 1px solid #dddddd;
@@ -169,8 +169,8 @@ div.tmenu
     font-weight: bold;
     font-size: 12px;
     height: 20px;
-    background: #dddddd; 
-    color: #000000; 
+    background: #dddddd;
+    color: #000000;
     text-decoration: none;
 }
 
@@ -209,11 +209,11 @@ table.tmenu
     margin: 0px 0px 0px 6px;
 }
 
-.menu 
-{ 
-  background: #ccccb3; 
+.menu
+{
+  background: #ccccb3;
   font-size: 12px;
-  color: #000000; 
+  color: #000000;
   text-decoration: none;
 }
 
@@ -247,7 +247,7 @@ a.tmenu:hover
 }
 
 a.tmenusel
-{ 
+{
   color: #202020;
   background: #bbbbcc;
   padding: 0px 8px;
@@ -265,7 +265,7 @@ div.tmenu ul {
 	padding: 0px 0px 0px 0px;
     margin: 0px 0px 0px 0px;
 	list-style: none;
-	
+
 }
 div.tmenu li {
 	float: left;
@@ -311,7 +311,7 @@ div.tmenu li a:active
 }
 div.tmenu li a:link
 {
-	
+
 	font-weight: normal;
 }
 
@@ -372,12 +372,12 @@ a.help:active  { font-family: helvetica, verdana, arial, sans-serif; text-align:
 a.help:hover   { font-family: helvetica, verdana, arial, sans-serif; text-align:left; font-weight: normal; }
 
 div.blockvmenupair
-{ 
+{
 	border-right: 1px solid #555555;
 	border-bottom: 1px solid #555555;
 	background: #dddddd;
 	font-family: helvetica, verdana, arial, sans-serif;
-	color: #202020; 
+	color: #202020;
 	text-align:left;
 	text-decoration: none;
     padding: 3px;
@@ -390,7 +390,7 @@ div.blockvmenuimpair
 	border-bottom: 1px solid #555555;
 	background: #dddddd;
 	font-family: helvetica, verdana, arial, sans-serif;
-	color: #202020; 
+	color: #202020;
 	text-align:left;
 	text-decoration: none;
     padding: 3px;
@@ -410,24 +410,24 @@ div.help
     margin: 1px 0px 0px 0px;
 }
 
-td.barre { 
+td.barre {
            border-right: 1px solid #000000;
            border-bottom: 1px solid #000000;
            background: #DDDDDD;
 		   font-size: 12px;
-           font-family: helvetica, verdana; 
-           color: #000000; 
+           font-family: helvetica, verdana;
+           color: #000000;
            text-align:left;
            text-decoration: none
 }
 
 td.barre_select {
-           background: #b3cccc; 
-           color: #000000 
+           background: #b3cccc;
+           color: #000000
 }
 
 td.photo {
-	background: #FCFCFC; 
+	background: #FCFCFC;
 	color: #000000;
     border: 1px solid #b3c5cc;
 }
@@ -521,39 +521,39 @@ a.butAction:hover   { font-family: helvetica, verdana, arial, sans-serif; backgr
 .butActionRefused         { font-family: helvetica, verdana, arial, sans-serif; background: white; border: 1px solid #AAAAAA; color: #AAAAAA !important; padding: 0em 0.7em; margin: 0em 0.5em; text-decoration: none !important; white-space: nowrap; cursor: not-allowed; }
 
 a.butActionDelete:link    { font-family: helvetica, verdana, arial, sans-serif;
-                      background: white; 
-                      border: 1px solid #997777; 
-                      color: #436976; 
-                      padding: 0em 0.7em; 
-                      margin: 0em 0.5em; 
-                      text-decoration: none; 
+                      background: white;
+                      border: 1px solid #997777;
+                      color: #436976;
+                      padding: 0em 0.7em;
+                      margin: 0em 0.5em;
+                      text-decoration: none;
                       white-space: nowrap; }
 
 a.butActionDelete:active    { font-family: helvetica, verdana, arial, sans-serif;
-                      background: white; 
-                      border: 1px solid #997777; 
-                      color: #436976; 
-                      padding: 0em 0.7em; 
-                      margin: 0em 0.5em; 
-                      text-decoration: none; 
+                      background: white;
+                      border: 1px solid #997777;
+                      color: #436976;
+                      padding: 0em 0.7em;
+                      margin: 0em 0.5em;
+                      text-decoration: none;
                       white-space: nowrap; }
 
 a.butActionDelete:visited    { font-family: helvetica, verdana, arial, sans-serif;
-                      background: white; 
-                      border: 1px solid #997777; 
-                      color: #436976; 
-                      padding: 0em 0.7em; 
-                      margin: 0em 0.5em; 
-                      text-decoration: none; 
+                      background: white;
+                      border: 1px solid #997777;
+                      color: #436976;
+                      padding: 0em 0.7em;
+                      margin: 0em 0.5em;
+                      text-decoration: none;
                       white-space: nowrap; }
 
 a.butActionDelete:hover    { font-family: helvetica, verdana, arial, sans-serif;
-                      background: #FFe7ec; 
-                      border: 1px solid #997777; 
-                      color: #436976; 
-                      padding: 0em 0.7em; 
-                      margin: 0em 0.5em; 
-                      text-decoration: none; 
+                      background: #FFe7ec;
+                      border: 1px solid #997777;
+                      color: #436976;
+                      padding: 0em 0.7em;
+                      margin: 0em 0.5em;
+                      text-decoration: none;
                       white-space: nowrap; }
 
 
@@ -623,14 +623,14 @@ width: 100%;
 
 /*
  *  Tableaux
- */ 
+ */
 
 
 
 
 
 
-td.border { 
+td.border {
             border-top: 1px solid #000000;
             border-right: 1px solid #000000;
             border-bottom: 1px solid #000000;
@@ -654,7 +654,7 @@ div.warning {
 }
 
 div.error {
-  color: #550000; font-weight: bold; 
+  color: #550000; font-weight: bold;
   padding: 0.2em 0.2em 0.2em 0.2em;
   margin: 0.5em 0em 0.5em 0em;
   border: 1px solid #969090;
@@ -692,22 +692,22 @@ a.impayee:hover { font-weight: bold; color: #550000; }
 div.titre {
     font-family: helvetica, verdana, arial, sans-serif;
     font-weight: bold;
-    color: #777799; 
+    color: #777799;
     text-decoration: none
 }
 
 
 /*
  * Widgets standard
- */ 
-input.liste_titre { 
+ */
+input.liste_titre {
     background: #777799;
     border: 0px;
 }
 
-tr.liste_titre { 
+tr.liste_titre {
     color: #FFFFFF;
-    background: #777799; 
+    background: #777799;
     font-family: helvetica, verdana, arial, sans-serif;
     font-weight: bold;
     border-left: 1px solid #FFFFFF;
@@ -717,9 +717,9 @@ tr.liste_titre {
     white-space: nowrap;
 }
 
-td.liste_titre { 
+td.liste_titre {
     color: #FFFFFF;
-    background: #777799; 
+    background: #777799;
     font-family: helvetica, verdana, arial, sans-serif;
     font-weight: bold;
     border-top: 1px solid #FFFFFF;
@@ -728,9 +728,9 @@ td.liste_titre {
 }
 
 .liste_titre_sel
-{ 
+{
     color: #DCCCBB;
-    background: #777799; 
+    background: #777799;
     font-family: helvetica, verdana, arial, sans-serif;
     font-weight: bold;
     border-top: 1px solid #FFFFFF;
@@ -745,9 +745,9 @@ tr.liste_total td {
     border-top: 1px solid #888888;
 }
 
-th { 
+th {
     color: #FFFFFF;
-    background: #777799; 
+    background: #777799;
     font-family: helvetica, verdana, arial, sans-serif;
     font-weight: bold;
     border-left: 1px solid #FFFFFF;
@@ -759,40 +759,40 @@ th {
 }
 
 
-.pair { 
-    background: #dcdcd0; 
-    font-size: 12px; 
+.pair {
+    background: #dcdcd0;
+    font-size: 12px;
     }
 
-.impair { 
-    background: #eeeedd;           
-    font-size: 12px; 
+.impair {
+    background: #eeeedd;
+    font-size: 12px;
     }
 
 /*
  *  Boxes
  */
-tr.box_titre { 
+tr.box_titre {
                color: #FFFFFF;
                background: #777799;
                font-family: Helvetica, Verdana;
                font-size: 1.0em;
                font-weight: bold; }
 
-tr.box_pair { 
-              background: #dcdcd0; 
+tr.box_pair {
+              background: #dcdcd0;
               font-size: 0.95em; }
 
-tr.box_impair { 
-                background: #eeeedd; 
+tr.box_impair {
+                background: #eeeedd;
                 font-family: Helvetica, Verdana;
                 font-size: 0.95em; }
 
-tr.fiche { 
+tr.fiche {
            font-family: Helvetica, Verdana;
            font-size: 0.6em; }
 
-td.delete { 
+td.delete {
   background: red;
   font-weight: bold;
   }
@@ -850,7 +850,7 @@ padding: 2px;
 #dhtmltooltip
 {
 position: absolute;
-width: 420px;
+width: 450px;
 border-top: solid 1px #BBBBBB;
 border-left: solid 1px #BBBBBB;
 border-right: solid 1px #444444;
@@ -881,7 +881,7 @@ table.dp {
 }
 .dp td, .tpHour td, .tpMinute td{padding:2px; font-size:10px;}
 /* Barre titre */
-.dpHead,.tpHead,.tpHour td:Hover .tpHead{ 
+.dpHead,.tpHead,.tpHour td:Hover .tpHead{
 	font-weight:bold;
 	background-color:#777799;
 	color:white;
diff --git a/htdocs/theme/rodolphe/rodolphe.css b/htdocs/theme/rodolphe/rodolphe.css
index 2acc8013f433cd77ccdce881d76e5e3ab331bed4..17a733b9effeb72885ad7f82dced0c9b0e94ba4b 100644
--- a/htdocs/theme/rodolphe/rodolphe.css
+++ b/htdocs/theme/rodolphe/rodolphe.css
@@ -731,7 +731,7 @@ tr.nonpayed {
 #dhtmltooltip
 {
 position: absolute;
-width: 420px;
+width: 450px;
 border: 1px solid #444444;
 padding: 2px;
 background-color: lightyellow;
diff --git a/htdocs/theme/yellow/yellow.css.php b/htdocs/theme/yellow/yellow.css.php
index ea82549780dcdc0488ed975fad89dd9a57e9f402..7687fb0068b19cf049db672628d9a51343b10d4b 100644
--- a/htdocs/theme/yellow/yellow.css.php
+++ b/htdocs/theme/yellow/yellow.css.php
@@ -1,6 +1,6 @@
 <?php
-/* Copyright (C) 2002-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org> 
- * Copyright (C) 2004-2008 Laurent Destailleur  <eldy@users.sourceforge.net> 
+/* Copyright (C) 2002-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
+ * Copyright (C) 2004-2008 Laurent Destailleur  <eldy@users.sourceforge.net>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -41,8 +41,8 @@ if (! isset($conf->global->MAIN_FEATURES_LEVEL) || $conf->global->MAIN_FEATURES_
 /* ============================================================================== */
 
 body {
-  background: #ebebe0; 
-  font-size: 12px; 
+  background: #ebebe0;
+  font-size: 12px;
   font-family: helvetica, verdana, arial, sans-serif;
   margin-top: 0;
   margin-bottom: 0;
@@ -55,15 +55,15 @@ a:visited { font-family: helvetica, verdana, arial, sans-serif; font-weight: bol
 a:active  { font-family: helvetica, verdana, arial, sans-serif; font-weight: bold; color: #000000; text-decoration: none; }
 a:hover   { font-family: helvetica, verdana, arial, sans-serif; font-weight: bold; color: #000000; text-decoration: underline; }
 input
-{ 
+{
 	font-size: 12px;
-    font-family: helvetica, verdana, arial, sans-serif; 
+    font-family: helvetica, verdana, arial, sans-serif;
     border: 1px solid #cccccc;
     padding: 0px 0px 0px 0px;
     margin: 0px 0px 0px 0px;
 }
 input.flat
-{ 
+{
 	font-size: 12px;
     font-family: helvetica, verdana, arial, sans-serif;
     border: 1px solid #cccccc;
@@ -94,7 +94,7 @@ select.flat
     padding: 0px 0px 0px 0px;
     margin: 0px 0px 0px 0px;
 }
-.button 
+.button
 {
 	font-family: arial,verdana,helvetica, sans-serif;
 	font-size: 100%;
@@ -156,8 +156,8 @@ div.tmenu
     font-weight: bold;
     font-size: 12px;
     height: 20px;
-    background: #dcdcb3; 
-    color: #000000; 
+    background: #dcdcb3;
+    color: #000000;
     text-decoration: none;
 }
 a.tmenudisabled
@@ -221,7 +221,7 @@ a.tmenu:hover
 }
 
 a.tmenusel
-{ 
+{
   color: #234046;
   background: #eeeecc;
   padding: 0px 5px;
@@ -349,7 +349,7 @@ div.blockvmenupair
 	border-bottom: 1px solid #555555;
 	background: #dcdcb3;
 	font-family: helvetica, verdana, arial, sans-serif;
-	color: #000000; 
+	color: #000000;
 	text-align:left;
 	text-decoration: none;
     padding-left: 3px;
@@ -366,7 +366,7 @@ div.blockvmenuimpair
 	border-bottom: 1px solid #555555;
 	background: #dcdcb3;
 	font-family: helvetica, verdana, arial, sans-serif;
-	color: #000000; 
+	color: #000000;
 	text-align:left;
 	text-decoration: none;
     padding-left: 3px;
@@ -383,7 +383,7 @@ div.help
 	border-bottom: 1px solid #000000;
 	background: #f0f0f0;
 	font-family: helvetica, verdana, arial, sans-serif;
-	color: #000000; 
+	color: #000000;
 	text-align:left;
 	text-decoration: none;
     padding-left: 3px;
@@ -393,23 +393,23 @@ div.help
     margin: 1px 0px 0px 0px;
 }
 
-td.barre { 
+td.barre {
 	border-right: 1px solid #000000;
 	border-bottom: 1px solid #000000;
 	background: #b3c5cc;
 	font-family: helvetica, verdana, arial, sans-serif;
-	color: #000000; 
+	color: #000000;
 	text-align:left;
 	text-decoration: none
 }
 
-td.barre_select { 
-	background: #b3c5cc; 
-	color: #000000 
+td.barre_select {
+	background: #b3c5cc;
+	color: #000000
 }
-td.photo { 
-	background: #FFFFFF; 
-	color: #000000 
+td.photo {
+	background: #FFFFFF;
+	color: #000000
 }
 
 
@@ -506,8 +506,8 @@ a.butActionDelete:link    { font-family: helvetica, verdana, arial, sans-serif;
 a.butActionDelete:active  { font-family: helvetica, verdana, arial, sans-serif; background: white; border: 1px solid #997777; color: #436976; padding: 0em 0.7em; margin: 0em 0.5em; text-decoration: none; white-space: nowrap; }
 a.butActionDelete:visited { font-family: helvetica, verdana, arial, sans-serif; background: white; border: 1px solid #997777; color: #436976; padding: 0em 0.7em; margin: 0em 0.5em; text-decoration: none; white-space: nowrap; }
 a.butActionDelete:hover   { font-family: helvetica, verdana, arial, sans-serif; background: #FFe7ec; border: 1px solid #997777; color: #436976; padding: 0em 0.7em; margin: 0em 0.5em; text-decoration: none; white-space: nowrap; }
-                      
-                  
+
+
 
 /* ============================================================================== */
 /* Tables                                                                         */
@@ -574,15 +574,15 @@ background: #ddddcc;
 }
 
 
-td.border { 
+td.border {
             border-top: 1px solid #000000;
             border-right: 1px solid #000000;
             border-bottom: 1px solid #000000;
             border-left: 1px solid #000000;
             }
 
-div.menus { 
-            background: #eeeecc; 
+div.menus {
+            background: #eeeecc;
             color: #bbbb88;
             font-size: 0.95em;
             border-top:    1px dashed #ccccb3;
@@ -592,15 +592,15 @@ div.menus {
             }
 
 
-a.leftmenu { 
-             font-weight: bold; 
+a.leftmenu {
+             font-weight: bold;
              color: #202020;
              }
 
 
 
-div.leftmenu { 
-               background: #ccccb3; 
+div.leftmenu {
+               background: #ccccb3;
                text-align: left;
                border-right: 1px solid #000000;
                border-bottom: 1px solid #000000;
@@ -626,7 +626,7 @@ div.warning {
 }
 
 div.error {
-  color: #550000; font-weight: bold; 
+  color: #550000; font-weight: bold;
   padding: 0.2em 0.2em 0.2em 0.2em;
   margin: 0.5em 0em 0.5em 0em;
   border: 1px solid #000000;
@@ -644,7 +644,7 @@ div.info {
  *   Liens Payes/Non payes
  */
 
-a.normal:link { font-weight: normal } 
+a.normal:link { font-weight: normal }
 a.normal:visited { font-weight: normal }
 a.normal:active { font-weight: normal }
 a.normal:hover { font-weight: normal }
@@ -661,22 +661,22 @@ a.impayee:hover { font-weight: bold; color: #550000; }
 /*
  *  ???
  */
-div.titre { 
+div.titre {
 	font-family: helvetica, verdana, arial, sans-serif;
-            font-weight: bold; 
-            color: #666633; 
+            font-weight: bold;
+            color: #666633;
             text-decoration: none }
 
 /*
  *  Tableaux
- */ 
+ */
 
-input.liste_titre { 
+input.liste_titre {
     background: #BBBB88;
     border: 0px;
 }
 
-tr.liste_titre { 
+tr.liste_titre {
     background: #BBBB88;
     font-family: helvetica, verdana, arial, sans-serif;
     font-weight: bold;
@@ -684,7 +684,7 @@ tr.liste_titre {
     white-space: nowrap;
 }
 
-td.liste_titre { 
+td.liste_titre {
     background: #BBBB88;
     font-family: helvetica, verdana, arial, sans-serif;
     font-weight: bold;
@@ -694,24 +694,24 @@ td.liste_titre {
 }
 
 .liste_titre_sel
-{ 
+{
     color: #fcfffc;
     background: #BBBB88;
     font-family: helvetica, verdana, arial, sans-serif;
-    font-weight: bold; 
+    font-weight: bold;
     border-top: 1px solid #FFFFFF;
     border-bottom: 1px solid #FFFFFF;
     white-space: nowrap;
 }
 
-tr.liste_total td { 
+tr.liste_total td {
     background: #F0F0F0;
     font-weight: bold;
     white-space: nowrap;
     border-top: 1px solid #888888;
 }
 
-th { 
+th {
     background: #BBBB88;
     font-family: helvetica, verdana, arial, sans-serif;
     font-weight: bold;
@@ -723,52 +723,52 @@ th {
     font-size: 1.0em;
 }
 
-.pair { 
-    background: #eeeecc; 
-    font-size: 1.0em; 
+.pair {
+    background: #eeeecc;
+    font-size: 1.0em;
 }
 
-.impair { 
-    background: #dcdcb3;           
-    font-size: 1.0em; 
+.impair {
+    background: #dcdcb3;
+    font-size: 1.0em;
 }
 
 
 /*
  *  Boxes
  */
-tr.box_titre { 
+tr.box_titre {
                background: #BBBB88;
                font-family: Helvetica, Verdana;
                font-size: 1.0em;
                font-weight: bold; }
 
-tr.box_pair { 
-              background: #dcdcb3; 
+tr.box_pair {
+              background: #dcdcb3;
               font-size: 0.95em; }
 
-tr.box_impair { 
-                background: #eeeecc; 
+tr.box_impair {
+                background: #eeeecc;
                 font-family: Helvetica, Verdana;
                 font-size: 0.95em; }
 
-tr.fiche { 
+tr.fiche {
            font-family: Helvetica, Verdana;
            font-size: 0.6em; }
 /*
  * Widgets standard
  */
 
-td.delete { 
+td.delete {
             background: red;
             font-weight: bold;
             }
 
-td.small { 
+td.small {
            font-size: 10px;
            }
 
-tr.nonpayed { 
+tr.nonpayed {
            font-weight: bold;
            }
 
@@ -803,7 +803,7 @@ table.valid {
 #dhtmltooltip
 {
 position: absolute;
-width: 420px;
+width: 450px;
 border: 1px solid #444444;
 padding: 2px;
 background-color: lightyellow;
@@ -815,13 +815,13 @@ z-index: 100;
 /* ============================================================================== */
 /* Calendar                                                                       */
 /* ============================================================================== */
-.bodyline { 
+.bodyline {
 	-moz-border-radius:8px;
-	border: 1px #ECECE4 outset; 
+	border: 1px #ECECE4 outset;
 	padding:0px;
 	margin-bottom:5px;
 }
-table.dp { 
+table.dp {
     width: 180px;
     background-color: #FFFFFF;
     border-top: solid 2px #DDDDDD;
@@ -831,19 +831,19 @@ table.dp {
 }
 .dp td, .tpHour td, .tpMinute td{padding:2px; font-size:10px;}
 /* Barre titre */
-.dpHead,.tpHead,.tpHour td:Hover .tpHead{ 
+.dpHead,.tpHead,.tpHour td:Hover .tpHead{
 	font-weight:bold;
 	background-color:#ccc5b3;
-	color:black; 
+	color:black;
 	font-size:11px;
 	cursor:auto;
 }
 /* Barre navigation */
 .dpButtons,.tpButtons {
 	text-align:center;
-	background-color:#dcdcb3;color:#000000; font-weight:bold; 
+	background-color:#dcdcb3;color:#000000; font-weight:bold;
 	border: 1px outset black;
-	cursor:pointer;	
+	cursor:pointer;
 }
 .dpButtons:Active,.tpButtons:Active{border: 1px outset black;}
 .dpDayNames td,.dpExplanation {background-color:#D9DBE1; font-weight:bold; text-align:center; font-size:11px;}
@@ -964,7 +964,7 @@ div.autocomplete ul li {
       cursor:pointer;
     }
 
-	
+
 /* ============================================================================== */
 /*  Ajax - In place editor                                                        */
 /* ============================================================================== */
@@ -1000,7 +1000,7 @@ form.inplaceeditor-form a { /* The cancel link */
 }
 
 
-    
+
 /* ============================================================================== */
 /* Admin Menu                                                                     */
 /* ============================================================================== */