diff --git a/htdocs/admin/delais.php b/htdocs/admin/delais.php
index 1150949c7c681f8a7303d8df781b07c2fa94ecd1..bf8dd9b29f949263a400cf9fb489b44b101a7da7 100644
--- a/htdocs/admin/delais.php
+++ b/htdocs/admin/delais.php
@@ -2,7 +2,7 @@
 /* Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
  * Copyright (C) 2004-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
  * Copyright (C) 2005      Simon Tosser         <simon@kornog-computing.com>
- * Copyright (C) 2005-2009 Regis Houssin        <regis@dolibarr.fr>
+ * Copyright (C) 2005-2012 Regis Houssin        <regis@dolibarr.fr>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -72,10 +72,100 @@ print "<br>\n";
 $form = new Form($db);
 $countrynotdefined='<font class="error">'.$langs->trans("ErrorSetACountryFirst").' ('.$langs->trans("SeeAbove").')</font>';
 
+$modules=array(
+		'agenda' => array(
+				array(
+						'label' => $langs->trans("DelaysOfToleranceActionsToDo"),
+						'name' => 'ActionsToDo',
+						'img' => 'action',
+						'value' => (! empty($conf->global->MAIN_DELAY_ACTIONS_TODO)?$conf->global->MAIN_DELAY_ACTIONS_TODO:0)
+				)
+		),
+		'propal' => array(
+				array(
+						'label' => $langs->trans("DelaysOfTolerancePropalsToClose"),
+						'name' => 'PropalsToClose',
+						'img' => 'propal',
+						'value' => (! empty($conf->global->MAIN_DELAY_PROPALS_TO_CLOSE)?$conf->global->MAIN_DELAY_PROPALS_TO_CLOSE:0)
+				),
+				array(
+						'label' => $langs->trans("DelaysOfTolerancePropalsToBill"),
+						'name' => 'PropalsToBill',
+						'img' => 'propal',
+						'value' => (! empty($conf->global->MAIN_DELAY_PROPALS_TO_BILL)?$conf->global->MAIN_DELAY_PROPALS_TO_BILL:0)
+				)
+		),
+		'commande' => array(
+				array(
+						'label' => $langs->trans("DelaysOfToleranceOrdersToProcess"),
+						'name' => 'OrdersToProcess',
+						'img' => 'order',
+						'value' => (! empty($conf->global->MAIN_DELAY_ORDERS_TO_PROCESS)?$conf->global->MAIN_DELAY_ORDERS_TO_PROCESS:0)
+				)
+		),
+		'facture' => array(
+				array(
+						'label' => $langs->trans("DelaysOfToleranceCustomerBillsUnpaid"),
+						'name' => 'CustomerBillsUnpaid',
+						'img' => 'bill',
+						'value' => (! empty($conf->global->MAIN_DELAY_CUSTOMER_BILLS_UNPAYED)?$conf->global->MAIN_DELAY_CUSTOMER_BILLS_UNPAYED:0)
+				)
+		),
+		'fournisseur' => array(
+				array(
+						'label' => $langs->trans("DelaysOfToleranceSuppliersOrdersToProcess"),
+						'name' => 'SuppliersOrdersToProcess',
+						'img' => 'order',
+						'value' => (! empty($conf->global->MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS)?$conf->global->MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS:0)
+				),
+				array(
+						'label' => $langs->trans("DelaysOfToleranceSupplierBillsToPay"),
+						'name' => 'SupplierBillsToPay',
+						'img' => 'bill',
+						'value' => (! empty($conf->global->MAIN_DELAY_SUPPLIER_BILLS_TO_PAY)?$conf->global->MAIN_DELAY_SUPPLIER_BILLS_TO_PAY:0)
+				)
+		),
+		'service' => array(
+				array(
+						'label' => $langs->trans("DelaysOfToleranceNotActivatedServices"),
+						'name' => 'BoardNotActivatedServices',
+						'img' => 'service',
+						'value' => (! empty($conf->global->MAIN_DELAY_NOT_ACTIVATED_SERVICES)?$conf->global->MAIN_DELAY_NOT_ACTIVATED_SERVICES:0)
+				),
+				array(
+						'label' => $langs->trans("DelaysOfToleranceRunningServices"),
+						'name' => 'BoardRunningServices',
+						'img' => 'service',
+						'value' => (! empty($conf->global->MAIN_DELAY_RUNNING_SERVICES)?$conf->global->MAIN_DELAY_RUNNING_SERVICES:0)
+				)
+		),
+		'banque' => array(
+				array(
+						'label' => $langs->trans("DelaysOfToleranceTransactionsToConciliate"),
+						'name' => 'TransactionsToConciliate',
+						'img' => 'account',
+						'value' => (! empty($conf->global->MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE)?$conf->global->MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE:0)
+				),
+				array(
+						'label' => $langs->trans("DelaysOfToleranceChequesToDeposit"),
+						'name' => 'ChequesToDeposit',
+						'img' => 'account',
+						'value' => (! empty($conf->global->MAIN_DELAY_CHEQUES_TO_DEPOSIT)?$conf->global->MAIN_DELAY_CHEQUES_TO_DEPOSIT:0)
+				)
+		),
+		'adherent' => array(
+				array(
+						'label' => $langs->trans("DelaysOfToleranceMembers"),
+						'name' => 'Members',
+						'img' => 'user',
+						'value' => (! empty($conf->global->MAIN_DELAY_MEMBERS)?$conf->global->MAIN_DELAY_MEMBERS:0)
+				)
+		),
+);
 
 if ($action == 'edit')
 {
-    print '<form method="post" action="delais.php" name="form_index">';
+    print '<form method="post" action="'.$_SERVER['PHP_SELF'].'" name="form_index">';
     print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
     print '<input type="hidden" name="action" value="update">';
     $var=true;
@@ -83,99 +173,19 @@ if ($action == 'edit')
     print '<table class="noborder" width="100%">';
     print '<tr class="liste_titre"><td colspan="2">'.$langs->trans("DelaysOfToleranceBeforeWarning").'</td><td width="120px">'.$langs->trans("Value").'</td></tr>';
 
-    //
-    if (! empty($conf->agenda->enabled))
+    foreach($modules as $module => $delays)
     {
-        $var=!$var;
-        print '<tr '.$bc[$var].'>';
-        print '<td width="20px">'.img_object('','action').'</td>';
-        print '<td>'.$langs->trans("DelaysOfToleranceActionsToDo").'</td><td>';
-        print '<input size="5" name="ActionsToDo" value="'. ($conf->global->MAIN_DELAY_ACTIONS_TODO+0) . '"> ' . $langs->trans("days") . '</td></tr>';
-    }
-    if (! empty($conf->commande->enabled))
-    {
-        $var=!$var;
-        print '<tr '.$bc[$var].'>';
-        print '<td width="20px">'.img_object('','order').'</td>';
-        print '<td>'.$langs->trans("DelaysOfToleranceOrdersToProcess").'</td><td>';
-        print '<input size="5" name="OrdersToProcess" value="'. ($conf->global->MAIN_DELAY_ORDERS_TO_PROCESS+0) . '"> ' . $langs->trans("days") . '</td></tr>';
-    }
-    if (! empty($conf->fournisseur->enabled))
-    {
-        $var=!$var;
-        print '<tr '.$bc[$var].'>';
-        print '<td width="20px">'.img_object('','order').'</td>';
-        print '<td>'.$langs->trans("DelaysOfToleranceSuppliersOrdersToProcess").'</td><td>';
-        print '<input size="5" name="SuppliersOrdersToProcess" value="'. ($conf->global->MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS+0) . '"> ' . $langs->trans("days") . '</td></tr>';
-    }
-    if (! empty($conf->propal->enabled))
-    {
-        $var=!$var;
-        print '<tr '.$bc[$var].'>';
-        print '<td width="20px">'.img_object('','propal').'</td>';
-        print '<td>'.$langs->trans("DelaysOfTolerancePropalsToClose").'</td><td>';
-        print '<input size="5" name="PropalsToClose" value="'. ($conf->global->MAIN_DELAY_PROPALS_TO_CLOSE+0) . '"> ' . $langs->trans("days") . '</td></tr>';
-    }
-    if (! empty($conf->propal->enabled))
-    {
-        $var=!$var;
-        print '<tr '.$bc[$var].'>';
-        print '<td width="20px">'.img_object('','propal').'</td>';
-        print '<td>'.$langs->trans("DelaysOfTolerancePropalsToBill").'</td><td>';
-        print '<input size="5" name="PropalsToBill" value="'. ($conf->global->MAIN_DELAY_PROPALS_TO_BILL+0) . '"> ' . $langs->trans("days") . '</td></tr>';
-    }
-    if (! empty($conf->service->enabled))
-    {
-        $var=!$var;
-        print '<tr '.$bc[$var].'>';
-        print '<td width="20px">'.img_object('','service').'</td>';
-        print '<td>'.$langs->trans("DelaysOfToleranceNotActivatedServices").'</td><td>';
-        print '<input size="5" name="BoardNotActivatedServices" value="'. ($conf->global->MAIN_DELAY_NOT_ACTIVATED_SERVICES+0) . '"> ' . $langs->trans("days") . '</td></tr>';
-    }
-    if (! empty($conf->service->enabled))
-    {
-        $var=!$var;
-        print '<tr '.$bc[$var].'>';
-        print '<td width="20px">'.img_object('','service').'</td>';
-        print '<td>'.$langs->trans("DelaysOfToleranceRunningServices").'</td><td>';
-        print '<input size="5" name="BoardRunningServices" value="'. ($conf->global->MAIN_DELAY_RUNNING_SERVICES +0). '"> ' . $langs->trans("days") . '</td></tr>';
-    }
-    if (! empty($conf->facture->enabled))
-    {
-        $var=!$var;
-        print '<tr '.$bc[$var].'>';
-        print '<td width="20px">'.img_object('','bill').'</td>';
-        print '<td>'.$langs->trans("DelaysOfToleranceCustomerBillsUnpaid").'</td><td>';
-        print '<input size="5" name="CustomerBillsUnpaid" value="'. ($conf->global->MAIN_DELAY_CUSTOMER_BILLS_UNPAYED+0) . '"> ' . $langs->trans("days") . '</td></tr>';
-    }
-    if (! empty($conf->fournisseur->enabled))
-    {
-        $var=!$var;
-        print '<tr '.$bc[$var].'>';
-        print '<td width="20px">'.img_object('','bill').'</td>';
-        print '<td>'.$langs->trans("DelaysOfToleranceSupplierBillsToPay").'</td><td>';
-        print '<input size="5" name="SupplierBillsToPay" value="'. ($conf->global->MAIN_DELAY_SUPPLIER_BILLS_TO_PAY+0) . '"> ' . $langs->trans("days") . '</td></tr>';
-    }
-    if (! empty($conf->banque->enabled))
-    {
-        $var=!$var;
-        print '<tr '.$bc[$var].'>';
-        print '<td width="20px">'.img_object('','account').'</td>';
-        print '<td>'.$langs->trans("DelaysOfToleranceTransactionsToConciliate").'</td><td>';
-        print '<input size="5" name="TransactionsToConciliate" value="'. ($conf->global->MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE+0) . '"> ' . $langs->trans("days") . '</td></tr>';
-        $var=!$var;
-        print '<tr '.$bc[$var].'>';
-        print '<td width="20px">'.img_object('','account').'</td>';
-        print '<td>'.$langs->trans("DelaysOfToleranceChequesToDeposit").'</td><td>';
-        print '<input size="5" name="ChequesToDeposit" value="'. ($conf->global->MAIN_DELAY_CHEQUES_TO_DEPOSIT+0) . '"> ' . $langs->trans("days") . '</td></tr>';
-    }
-    if (! empty($conf->adherent->enabled))
-    {
-        $var=!$var;
-        print '<tr '.$bc[$var].'>';
-        print '<td width="20px">'.img_object('','user').'</td>';
-        print '<td>'.$langs->trans("DelaysOfToleranceMembers").'</td><td>';
-        print '<input size="5" name="Members" value="'. ($conf->global->MAIN_DELAY_MEMBERS+0). '"> ' . $langs->trans("days") . '</td></tr>';
+    	if (! empty($conf->$module->enabled))
+    	{
+    		foreach($delays as $delay)
+    		{
+    			$var=!$var;
+    			print '<tr '.$bc[$var].'>';
+    			print '<td width="20px">'.img_object('',$delay['img']).'</td>';
+    			print '<td>'.$delay['label'].'</td><td>';
+    			print '<input size="5" name="'.$delay['name'].'" value="'.$delay['value'].'"> '.$langs->trans("days").'</td></tr>';
+    		}
+    	}
     }
 
     print '</table>';
@@ -209,98 +219,19 @@ else
     print '<tr class="liste_titre"><td colspan="2">'.$langs->trans("DelaysOfToleranceBeforeWarning").'</td><td width="120px">'.$langs->trans("Value").'</td></tr>';
     $var=true;
 
-    $var=!$var;
-
-    if (! empty($conf->agenda->enabled))
-    {
-        print '<tr '.$bc[$var].'>';
-        print '<td width="20px">'.img_object('','action').'</td>';
-        print '<td>'.$langs->trans("DelaysOfToleranceActionsToDo").'</td><td>' . ($conf->global->MAIN_DELAY_ACTIONS_TODO+0) . ' ' . $langs->trans("days") . '</td></tr>';
-    }
-
-    if (! empty($conf->commande->enabled))
-    {
-        $var=!$var;
-        print '<tr '.$bc[$var].'>';
-        print '<td width="20px">'.img_object('','order').'</td>';
-        print '<td>'.$langs->trans("DelaysOfToleranceOrdersToProcess").'</td><td>' . ($conf->global->MAIN_DELAY_ORDERS_TO_PROCESS+0) . ' ' . $langs->trans("days") . '</td></tr>';
-    }
-
-    if (! empty($conf->fournisseur->enabled))
-    {
-        $var=!$var;
-        print '<tr '.$bc[$var].'>';
-        print '<td width="20px">'.img_object('','order').'</td>';
-        print '<td>'.$langs->trans("DelaysOfToleranceSuppliersOrdersToProcess").'</td><td>' . ($conf->global->MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS+0) . ' ' . $langs->trans("days") . '</td></tr>';
-    }
-
-    if (! empty($conf->propal->enabled))
-    {
-        $var=!$var;
-        print '<tr '.$bc[$var].'>';
-        print '<td width="20px">'.img_object('','propal').'</td>';
-        print '<td>'.$langs->trans("DelaysOfTolerancePropalsToClose").'</td><td>' . ($conf->global->MAIN_DELAY_PROPALS_TO_CLOSE+0). ' ' . $langs->trans("days") . '</td></tr>';
-    }
-
-    if (! empty($conf->propal->enabled))
-    {
-        $var=!$var;
-        print '<tr '.$bc[$var].'>';
-        print '<td width="20px">'.img_object('','propal').'</td>';
-        print '<td>'.$langs->trans("DelaysOfTolerancePropalsToBill").'</td><td>' . ($conf->global->MAIN_DELAY_PROPALS_TO_BILL+0) . ' ' . $langs->trans("days") . '</td></tr>';
-    }
-
-    if (! empty($conf->service->enabled))
-    {
-        $var=!$var;
-        print '<tr '.$bc[$var].'>';
-        print '<td width="20px">'.img_object('','service').'</td>';
-        print '<td>'.$langs->trans("DelaysOfToleranceNotActivatedServices").'</td><td>' . ($conf->global->MAIN_DELAY_NOT_ACTIVATED_SERVICES+0) . ' ' . $langs->trans("days") . '</td></tr>';
-    }
-
-    if (! empty($conf->service->enabled))
-    {
-        $var=!$var;
-        print '<tr '.$bc[$var].'>';
-        print '<td width="20px">'.img_object('','service').'</td>';
-        print '<td>'.$langs->trans("DelaysOfToleranceRunningServices").'</td><td>' . ($conf->global->MAIN_DELAY_RUNNING_SERVICES+0). ' ' . $langs->trans("days") . '</td></tr>';
-    }
-
-    if (! empty($conf->facture->enabled))
-    {
-        $var=!$var;
-        print '<tr '.$bc[$var].'>';
-        print '<td width="20px">'.img_object('','bill').'</td>';
-        print '<td>'.$langs->trans("DelaysOfToleranceCustomerBillsUnpaid").'</td><td>' . ($conf->global->MAIN_DELAY_CUSTOMER_BILLS_UNPAYED+0) . ' ' . $langs->trans("days") . '</td></tr>';
-    }
-
-    if (! empty($conf->fournisseur->enabled))
-    {
-        $var=!$var;
-        print '<tr '.$bc[$var].'>';
-        print '<td width="20px">'.img_object('','bill').'</td>';
-        print '<td>'.$langs->trans("DelaysOfToleranceSupplierBillsToPay").'</td><td>' . ($conf->global->MAIN_DELAY_SUPPLIER_BILLS_TO_PAY+0) . ' ' . $langs->trans("days") . '</td></tr>';
-    }
-
-    if (! empty($conf->banque->enabled))
-    {
-        $var=!$var;
-        print '<tr '.$bc[$var].'>';
-        print '<td width="20px">'.img_object('','account').'</td>';
-        print '<td>'.$langs->trans("DelaysOfToleranceTransactionsToConciliate").'</td><td>' . ($conf->global->MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE+0) . ' ' . $langs->trans("days") . '</td></tr>';
-
-        $var=!$var;
-        print '<tr '.$bc[$var].'>';
-        print '<td width="20px">'.img_object('','account').'</td>';
-        print '<td>'.$langs->trans("DelaysOfToleranceChequesToDeposit").'</td><td>' . ($conf->global->MAIN_DELAY_CHEQUES_TO_DEPOSIT+0) . ' ' . $langs->trans("days") . '</td></tr>';
-    }
-
-    if (! empty($conf->adherent->enabled))
+    foreach($modules as $module => $delays)
     {
-        $var=!$var;
-        print '<tr '.$bc[$var].'>';
-        print '<td width="20px">'.img_object('','user').'</td>';
-        print '<td>'.$langs->trans("DelaysOfToleranceMembers").'</td><td>' . ($conf->global->MAIN_DELAY_MEMBERS+0) . ' ' . $langs->trans("days") . '</td></tr>';
+    	if (! empty($conf->$module->enabled))
+    	{
+    		foreach($delays as $delay)
+    		{
+    			$var=!$var;
+    			print '<tr '.$bc[$var].'>';
+    			print '<td width="20px">'.img_object('',$delay['img']).'</td>';
+    			print '<td>'.$delay['label'].'</td>';
+    			print '<td>'.$delay['value'].' '.$langs->trans("days").'</td></tr>';
+    		}
+    	}
     }
 
     print '</table>';