diff --git a/htdocs/compta/paiement.php b/htdocs/compta/paiement.php
index 467448830a71c0878041d8c655b55816602bc4f6..358e73d4f8523565f5f2602d55e58e0d505cc7ab 100644
--- a/htdocs/compta/paiement.php
+++ b/htdocs/compta/paiement.php
@@ -2,7 +2,7 @@
 /* Copyright (C) 2001-2006 Rodolphe Quiedeville  <rodolphe@quiedeville.org>
  * Copyright (C) 2004-2011 Laurent Destailleur   <eldy@users.sourceforge.net>
  * Copyright (C) 2005      Marc Barilley / Ocebo <marc@ocebo.com>
- * Copyright (C) 2005-2010 Regis Houssin         <regis@dolibarr.fr>
+ * Copyright (C) 2005-2012 Regis Houssin         <regis@dolibarr.fr>
  * Copyright (C) 2007      Franky Van Liedekerke <franky.van.liedekerke@telenet.be>
  *
  * This program is free software; you can redistribute it and/or modify
@@ -210,140 +210,155 @@ $form=new Form($db);
 
 if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paiement')
 {
-    $facture = new Facture($db);
-    $result=$facture->fetch($facid);
-
-    if ($result >= 0)
-    {
-        $facture->fetch_thirdparty();
-
-        $title='';
-        if ($facture->type != 2) $title.=$langs->trans("EnterPaymentReceivedFromCustomer");
-        if ($facture->type == 2) $title.=$langs->trans("EnterPaymentDueToCustomer");
-        print_fiche_titre($title);
-
-        dol_htmloutput_errors($errmsg);
-
-        // Bouchon
-        if ($facture->type == 2)
-        {
-            print $langs->trans("FeatureNotYetAvailable");
-            llxFooter();
-            exit;
-        }
-
-        // Initialize data for confirmation (this is used because data can be change during confirmation)
-        if ($action == 'add_paiement')
-        {
-            $i=0;
-
-            $formquestion[$i++]=array('type' => 'hidden','name' => 'facid', 'value' => $facture->id);
-            $formquestion[$i++]=array('type' => 'hidden','name' => 'socid', 'value' => $facture->socid);
-            $formquestion[$i++]=array('type' => 'hidden','name' => 'type',  'value' => $facture->type);
-        }
-
-        // Invoice with Paypal transaction
-        if ($conf->paypalplus->enabled && $conf->global->PAYPAL_ENABLE_TRANSACTION_MANAGEMENT && ! empty($facture->ref_int))
-        {
-        	if (! empty($conf->global->PAYPAL_BANK_ACCOUNT)) $accountid=$conf->global->PAYPAL_BANK_ACCOUNT;
-        	$paymentnum=$facture->ref_int;
-        }
-        if ($conf->use_javascript_ajax && !empty($conf->global->MAIN_JS_ON_PAYMENT))
-        {
-            print "\n".'<script type="text/javascript" language="javascript">';
-            print 'jQuery(document).ready(function () {';
-            print 'jQuery("#selectpaiementcode").change(function() {
-                            code=jQuery("#selectpaiementcode option:selected").val();
-                            if (code == \'CHQ\')
-                            {
-                                jQuery(\'.fieldrequireddyn\').addClass(\'fieldrequired\');
-                            	if (jQuery(\'#fieldchqemetteur\').val() == \'\')
-                            	{
-                                	jQuery(\'#fieldchqemetteur\').val(jQuery(\'#thirdpartylabel\').val());
-                            	}
-                            }
-                            else
-                            {
-                                jQuery(\'.fieldrequireddyn\').removeClass(\'fieldrequired\');
-                            }
-                        });
-
-        			function elemToJson(selector)
-            		{
-            			var subJson = {};
-            			jQuery.map(selector.serializeArray(), function(n,i)
-            			{
-            				subJson[n["name"]] = n["value"];
+	$facture = new Facture($db);
+	$result=$facture->fetch($facid);
+	
+	if ($result >= 0)
+	{
+		$facture->fetch_thirdparty();
+		
+		$title='';
+		if ($facture->type != 2) $title.=$langs->trans("EnterPaymentReceivedFromCustomer");
+		if ($facture->type == 2) $title.=$langs->trans("EnterPaymentDueToCustomer");
+		print_fiche_titre($title);
+		
+		dol_htmloutput_errors($errmsg);
+		
+		// Bouchon
+		if ($facture->type == 2)
+		{
+			print $langs->trans("FeatureNotYetAvailable");
+			llxFooter();
+			exit;
+		}
+		
+		// Initialize data for confirmation (this is used because data can be change during confirmation)
+		if ($action == 'add_paiement')
+		{
+			$i=0;
+			
+			$formquestion[$i++]=array('type' => 'hidden','name' => 'facid', 'value' => $facture->id);
+			$formquestion[$i++]=array('type' => 'hidden','name' => 'socid', 'value' => $facture->socid);
+			$formquestion[$i++]=array('type' => 'hidden','name' => 'type',  'value' => $facture->type);
+		}
+		
+		// Invoice with Paypal transaction
+		// TODO add hook possibility (regis)
+		if ($conf->paypalplus->enabled && $conf->global->PAYPAL_ENABLE_TRANSACTION_MANAGEMENT && ! empty($facture->ref_int))
+		{
+			if (! empty($conf->global->PAYPAL_BANK_ACCOUNT)) $accountid=$conf->global->PAYPAL_BANK_ACCOUNT;
+			$paymentnum=$facture->ref_int;
+		}
+		if ($conf->use_javascript_ajax)
+		{
+			print "\n".'<script type="text/javascript" language="javascript">';
+			print '$(document).ready(function () {
+            			setPaiementCode();
+            			
+            			$("#selectpaiementcode").change(function() {
+            				setPaiementCode();
             			});
-            			return subJson;
-            		}
-            		function callForResult(imgId)
-            		{
-            		    var json = {};
-		            	var form = jQuery("#payment_form");
-
-		            	json["amountPayment"] = jQuery("#amountpayment").attr("value");
-		            	json["amounts"] = elemToJson(form.find("input[name*=\"amount_\"]"));
-		            	json["remains"] = elemToJson(form.find("input[name*=\"remain_\"]"));
-
-		            	if(imgId != null)json["imgClicked"] = imgId;
-
-            			jQuery.post("ajaxpayment.php", json, function(data)
+            			
+            			function setPaiementCode()
             			{
-            				json = jQuery.parseJSON(data);
-
-            				form.data(json);
-
-            				for(var key in json)
+            				var code = $("#selectpaiementcode option:selected").val();
+            				
+            				if (code == \'CHQ\')
             				{
-            					if(key == "result")	{
-            						if(json["makeRed"]) {
-            							jQuery("#"+key).css("color", "red");
-            						} else {
-            							jQuery("#"+key).removeAttr("style");
-            						}
-            						json[key]=json["label"]+" "+json[key];
-            						jQuery("#"+key).text(json[key]);
-            					} else {
-            						form.find("input[name*=\""+key+"\"]").each(function() {
-            							jQuery(this).attr("value", json[key]);
-            						});
+            					$(\'.fieldrequireddyn\').addClass(\'fieldrequired\');
+            					if ($(\'#fieldchqemetteur\').val() == \'\')
+            					{
+            						$(\'#fieldchqemetteur\').val(jQuery(\'#thirdpartylabel\').val());
             					}
             				}
-            			});
-
-            		}
-            		function callToBreakdown(imgSelector) {
-		            	var form = jQuery("#payment_form"), imgId;
-
-		            	imgId =  imgSelector.attr("id");
-		            	callForResult(imgId);
-            		}
-
-            		jQuery("#payment_form").find("img").click(function() {
-            				callToBreakdown(jQuery(this));
-                    	});
-
-            			jQuery("#payment_form").find("input[name*=\"amount_\"]").change(function() {
-            				callForResult();
-                    	});
-
-            			jQuery("#amountpayment").change(function() {
-            				callForResult();
-                    	});
-             	});
-             </script>'."\n";
-        }
-
-        print '<form id="payment_form" name="add_paiement" action="'.$_SERVER["PHP_SELF"].'" method="POST">';
-        print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
-        print '<input type="hidden" name="action" value="add_paiement">';
-        print '<input type="hidden" name="facid" value="'.$facture->id.'">';
-        print '<input type="hidden" name="socid" value="'.$facture->socid.'">';
-        print '<input type="hidden" name="type" value="'.$facture->type.'">';
-        print '<input type="hidden" name="thirdpartylabel" id="thirdpartylabel" value="'.dol_escape_htmltag($facture->client->name).'">';
-
-        print '<table class="border" width="100%">';
+            				else
+            				{
+            					$(\'.fieldrequireddyn\').removeClass(\'fieldrequired\');
+            					$(\'#fieldchqemetteur\').val(\'\');
+            				}
+            			}';
+			// For paiement auto-completion
+			if (! empty($conf->global->MAIN_JS_ON_PAYMENT))
+			{
+				print "\n".'
+						function elemToJson(selector)
+						{
+							var subJson = {};
+							$.map(selector.serializeArray(), function(n,i)
+							{
+								subJson[n["name"]] = n["value"];
+							});
+							return subJson;
+						}
+						function callForResult(imgId)
+						{
+							var json = {};
+							var form = $("#payment_form");
+							
+							json["amountPayment"] = $("#amountpayment").attr("value");
+							json["amounts"] = elemToJson(form.find("input[name*=\"amount_\"]"));
+							json["remains"] = elemToJson(form.find("input[name*=\"remain_\"]"));
+							
+							if (imgId != null) {
+								json["imgClicked"] = imgId;
+							}
+							
+							$.post("ajaxpayment.php", json, function(data)
+							{
+								json = $.parseJSON(data);
+								
+								form.data(json);
+								
+								for (var key in json)
+								{
+									if (key == "result")	{
+										if (json["makeRed"]) {
+											$("#"+key).css("color", "red");
+										} else {
+											$("#"+key).removeAttr("style");
+										}
+										json[key]=json["label"]+" "+json[key];
+										$("#"+key).text(json[key]);
+									} else {
+										form.find("input[name*=\""+key+"\"]").each(function() {
+											$(this).attr("value", json[key]);
+										});
+									}
+								}
+							});
+						}
+						function callToBreakdown(imgSelector) {
+							var form = $("#payment_form"), imgId;
+							
+							imgId =  imgSelector.attr("id");
+							callForResult(imgId);
+						}
+						
+						$("#payment_form").find("img").click(function() {
+							callToBreakdown(jQuery(this));
+						});
+						
+						$("#payment_form").find("input[name*=\"amount_\"]").change(function() {
+							callForResult();
+						});
+						
+						$("#amountpayment").change(function() {
+							callForResult();
+						});';
+			}
+			print '});
+			</script>'."\n";
+		}
+		
+		print '<form id="payment_form" name="add_paiement" action="'.$_SERVER["PHP_SELF"].'" method="POST">';
+		print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
+		print '<input type="hidden" name="action" value="add_paiement">';
+		print '<input type="hidden" name="facid" value="'.$facture->id.'">';
+		print '<input type="hidden" name="socid" value="'.$facture->socid.'">';
+		print '<input type="hidden" name="type" value="'.$facture->type.'">';
+		print '<input type="hidden" name="thirdpartylabel" id="thirdpartylabel" value="'.dol_escape_htmltag($facture->client->name).'">';
+		
+		print '<table class="border" width="100%">';
 
         // Third party
         print '<tr><td><span class="fieldrequired">'.$langs->trans('Company').'</span></td><td colspan="2">'.$facture->client->getNomUrl(4)."</td></tr>\n";