diff --git a/htdocs/paypal/admin/paypal.php b/htdocs/paypal/admin/paypal.php
index 2d0be83c80d116e9ed67c95909bcdab3bb87e0ee..4c3dd2d961eddd7d98b9eb1e7ae9c4a0f99fc427 100644
--- a/htdocs/paypal/admin/paypal.php
+++ b/htdocs/paypal/admin/paypal.php
@@ -141,7 +141,7 @@ print '<td>'.$langs->trans("Value").'</td>';
 print "</tr>\n";
 
 print '<tr class="oddeven">';
-print '<td class="titlefield fieldrequired">';
+print '<td class="titlefield">';
 print $langs->trans("PaypalLiveEnabled").'</td><td>';
 if (empty($conf->global->PAYPAL_API_SANDBOX))
 {
diff --git a/htdocs/public/paypal/newpayment.php b/htdocs/public/paypal/newpayment.php
index 08bf0c4faedf8fc1e7a69fe1a16ffbd9b0f02253..5be4e49f232db422f993f0db08dca68762c1db24 100644
--- a/htdocs/public/paypal/newpayment.php
+++ b/htdocs/public/paypal/newpayment.php
@@ -276,7 +276,7 @@ $paramcreditor='PAYPAL_CREDITOR_'.$suffix;
 if (! empty($conf->global->$paramcreditor)) $creditor=$conf->global->$paramcreditor;
 else if (! empty($conf->global->PAYPAL_CREDITOR)) $creditor=$conf->global->PAYPAL_CREDITOR;
 
-print '<span id="dolpaymentspan"></span>'."\n";
+print '<span id="dopaymentspan"></span>'."\n";
 print '<div class="center">'."\n";
 print '<form id="dolpaymentform" class="center" name="paymentform" action="'.$_SERVER["PHP_SELF"].'" method="POST">'."\n";
 print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'."\n";
@@ -969,12 +969,13 @@ if ($found && ! $error)	// We are in a management option and no error
 
 	if ($conf->global->PAYPAL_API_INTEGRAL_OR_PAYPALONLY == 'integral')
 	{
-		print '<br><input class="button" type="submit" name="dopayment" value="'.$langs->trans("PaypalOrCBDoPayment").'">';
+		print '<br><input class="button" type="submit" id="dopayment" name="dopayment" value="'.$langs->trans("PaypalOrCBDoPayment").'">';
 	}
 	if ($conf->global->PAYPAL_API_INTEGRAL_OR_PAYPALONLY == 'paypalonly')
 	{
-		print '<br><input class="button" type="submit" name="dopayment" value="'.$langs->trans("PaypalDoPayment").'">';
+		print '<br><input class="button" type="submit" id="dopayment" name="dopayment" value="'.$langs->trans("PaypalDoPayment").'">';
 	}
+	print '<img id="hourglasstopay" class="hidden" src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/working.gif'.'">';
 }
 else
 {
@@ -986,9 +987,22 @@ print '</td></tr>'."\n";
 print '</table>'."\n";
 print '</form>'."\n";
 print '</div>'."\n";
+
+
+print '<script type="text/javascript" language="javascript">
+jQuery(document).ready(function() {
+	jQuery("#dopayment").click(function() {
+		jQuery("#dopayment").hide();
+        jQuery("#hourglasstopay").show();
+	});
+});
+</script>';
+
+
 print '<br>';
 
 
+
 htmlPrintOnlinePaymentFooter($mysoc,$langs);
 
 llxFooter('', 'public');
diff --git a/htdocs/public/stripe/newpayment.php b/htdocs/public/stripe/newpayment.php
index 64ea70cfbeb8b6a100c154bcb07f56c319c462da..a430baafb59fd520c07af6bc22be00bd21d24f2a 100644
--- a/htdocs/public/stripe/newpayment.php
+++ b/htdocs/public/stripe/newpayment.php
@@ -90,8 +90,8 @@ if (! $action)
 //$urlwithroot=$urlwithouturlroot.DOL_URL_ROOT;		// This is to use external domain name found into config file
 $urlwithroot=DOL_MAIN_URL_ROOT;						// This is to use same domain name than current
 
-$urlok=$urlwithroot.'/public/paypal/paymentok.php?';
-$urlko=$urlwithroot.'/public/paypal/paymentko.php?';
+$urlok=$urlwithroot.'/public/stripe/paymentok.php?';
+$urlko=$urlwithroot.'/public/stripe/paymentko.php?';
 
 // Complete urls for post treatment
 $SOURCE=GETPOST("source",'alpha');
@@ -1119,8 +1119,8 @@ if (preg_match('/^dopayment/',$action))
     <div id="card-errors" role="alert"></div>
     </div>
     <br>
-    <button>'.$langs->trans("ToPay").'</button>
-    
+    <button class="button" id="buttontopay">'.$langs->trans("ToPay").'</button>
+    <img id="hourglasstopay" class="hidden" src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/working.gif'.'">
     </td></tr></tbody></table>
         
     </form>
@@ -1131,82 +1131,84 @@ if (preg_match('/^dopayment/',$action))
     
     <script type="text/javascript" language="javascript">';
     ?>
+
+    // Create a Stripe client
+    var stripe = Stripe('<?php echo $stripe['publishable_key']; ?>');
     
-        // Create a Stripe client
-        var stripe = Stripe('<?php echo $stripe['publishable_key']; ?>');
-        
-        // Create an instance of Elements
-        var elements = stripe.elements();
-        
-        // Custom styling can be passed to options when creating an Element.
-        // (Note that this demo uses a wider set of styles than the guide below.)
-        var style = {
-          base: {
-            color: '#32325d',
-            lineHeight: '24px',
-            fontFamily: '"Helvetica Neue", Helvetica, sans-serif',
-            fontSmoothing: 'antialiased',
-            fontSize: '16px',
-            '::placeholder': {
-              color: '#aab7c4'
-            }
-          },
-          invalid: {
-            color: '#fa755a',
-            iconColor: '#fa755a'
-          }
-        };
-        
-        // Create an instance of the card Element
-        var card = elements.create('card', {style: style});
-        
-        // Add an instance of the card Element into the `card-element` <div>
-        card.mount('#card-element');
-        
-        // Handle real-time validation errors from the card Element.
-        card.addEventListener('change', function(event) {
-          var displayError = document.getElementById('card-errors');
-          if (event.error) {
-            displayError.textContent = event.error.message;
-          } else {
-            displayError.textContent = '';
-          }
-        });
-        
-        // Handle form submission
-        var form = document.getElementById('payment-form');
-        console.log(form);
-        form.addEventListener('submit', function(event) {
-          event.preventDefault();
-        
-          stripe.createToken(card).then(function(result) {
-            if (result.error) {
-              // Inform the user if there was an error
-              var errorElement = document.getElementById('card-errors');
-              errorElement.textContent = result.error.message;
-            } else {
-              // Send the token to your server
-              stripeTokenHandler(result.token);
-            }
-          });
-        });
-        
-        function stripeTokenHandler(token) {
-          // Insert the token ID into the form so it gets submitted to the server
-          var form = document.getElementById('payment-form');
-          var hiddenInput = document.createElement('input');
-          hiddenInput.setAttribute('type', 'hidden');
-          hiddenInput.setAttribute('name', 'stripeToken');
-          hiddenInput.setAttribute('value', token.id);
-          form.appendChild(hiddenInput);
-        
-          // Submit the form
-          console.log("submit");
-          form.submit();
-        }        
+    // Create an instance of Elements
+    var elements = stripe.elements();
+    
+    // Custom styling can be passed to options when creating an Element.
+    // (Note that this demo uses a wider set of styles than the guide below.)
+    var style = {
+      base: {
+        color: '#32325d',
+        lineHeight: '24px',
+        fontFamily: '"Helvetica Neue", Helvetica, sans-serif',
+        fontSmoothing: 'antialiased',
+        fontSize: '16px',
+        '::placeholder': {
+          color: '#aab7c4'
+        }
+      },
+      invalid: {
+        color: '#fa755a',
+        iconColor: '#fa755a'
+      }
+    };
+    
+    // Create an instance of the card Element
+    var card = elements.create('card', {style: style});
+    
+    // Add an instance of the card Element into the `card-element` <div>
+    card.mount('#card-element');
+    
+    // Handle real-time validation errors from the card Element.
+    card.addEventListener('change', function(event) {
+      var displayError = document.getElementById('card-errors');
+      if (event.error) {
+        displayError.textContent = event.error.message;
+      } else {
+        displayError.textContent = '';
+      }
+    });
+    
+    // Handle form submission
+    var form = document.getElementById('payment-form');
+    console.log(form);
+    form.addEventListener('submit', function(event) {
+      event.preventDefault();
+    
+      stripe.createToken(card).then(function(result) {
+        if (result.error) {
+          // Inform the user if there was an error
+          var errorElement = document.getElementById('card-errors');
+          errorElement.textContent = result.error.message;
+        } else {
+          // Send the token to your server
+          stripeTokenHandler(result.token);
+        }
+      });
+    });
+    
+    function stripeTokenHandler(token) {
+      // Insert the token ID into the form so it gets submitted to the server
+      var form = document.getElementById('payment-form');
+      var hiddenInput = document.createElement('input');
+      hiddenInput.setAttribute('type', 'hidden');
+      hiddenInput.setAttribute('name', 'stripeToken');
+      hiddenInput.setAttribute('value', token.id);
+      form.appendChild(hiddenInput);
+    
+      // Submit the form
+      jQuery('#buttontopay').hide();
+      jQuery('#hourglasstopay').show();
+      console.log("submit");
+      form.submit();
+    }        
     
     <?php
-        print '</script>';    
+    print '</script>';    
 }
 
 
diff --git a/htdocs/stripe/admin/stripe.php b/htdocs/stripe/admin/stripe.php
index 056e43690b24247d4d2913b35949bced19b571f1..f135927b28a360122934e3bd9c6447df8935a20a 100644
--- a/htdocs/stripe/admin/stripe.php
+++ b/htdocs/stripe/admin/stripe.php
@@ -134,7 +134,7 @@ print '<td>'.$langs->trans("Value").'</td>';
 print "</tr>\n";
 
 print '<tr class="oddeven">';
-print '<td class="titlefield fieldrequired">';
+print '<td class="titlefield">';
 print $langs->trans("StripeLiveEnabled").'</td><td>';
 if (!empty($conf->global->STRIPE_LIVE))
 {
@@ -229,7 +229,7 @@ $token='';
 // Url list
 print '<u>'.$langs->trans("FollowingUrlAreAvailableToMakePayments").':</u><br>';
 print img_picto('','object_globe.png').' '.$langs->trans("ToOfferALinkForOnlinePaymentOnFreeAmount",$servicename).':<br>';
-print '<strong>'.getStripePaymentUrl(1,'free')."</strong><br><br>\n";
+print '<strong>'.getStripePaymentUrl(1,'free')."</strong><br>\n";
 if (! empty($conf->commande->enabled))
 {
 	print img_picto('','object_globe.png').' '.$langs->trans("ToOfferALinkForOnlinePaymentOnOrder",$servicename).':<br>';
@@ -250,7 +250,6 @@ if (! empty($conf->commande->enabled))
         }
         print '</form>';
 	}
-	print '<br>';
 }
 if (! empty($conf->facture->enabled))
 {
@@ -272,7 +271,6 @@ if (! empty($conf->facture->enabled))
         }
         print '</form>';
 	}
-	print '<br>';
 }
 if (! empty($conf->contrat->enabled))
 {
@@ -294,7 +292,6 @@ if (! empty($conf->contrat->enabled))
         }
         print '</form>';
 	}
-	print '<br>';
 }
 if (! empty($conf->adherent->enabled))
 {
diff --git a/htdocs/theme/common/dolibarr_box.png b/htdocs/theme/common/dolibarr_box.png
index 074b41951badb0f25e1f06b8c0c3d6b43a21f8df..69595524187aecf0831e12606a8a43d7c0fce971 100644
Binary files a/htdocs/theme/common/dolibarr_box.png and b/htdocs/theme/common/dolibarr_box.png differ
diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php
index a8e7729f31b94260a3d699d5c7eda16a20b72453..80edfc6fea93f243ee697c30c52ee30437ac73f7 100644
--- a/htdocs/theme/eldy/style.css.php
+++ b/htdocs/theme/eldy/style.css.php
@@ -3264,7 +3264,7 @@ div.visible {
     display: block;
 }
 
-div.hidden {
+div.hidden, td.hidden, img.hidden {
     display: none;
 }
 
@@ -3272,10 +3272,6 @@ tr.visible {
     display: block;
 }
 
-td.hidden {
-    display: none;
-}
-
 
 /* ============================================================================== */
 /*  Module website                                                                */
diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php
index 5c96fa501ae684d4790d1325e24567edf751f94e..36e2dc4e6f3c577f1f8b77239aa925f6f5a10f88 100644
--- a/htdocs/theme/md/style.css.php
+++ b/htdocs/theme/md/style.css.php
@@ -3362,7 +3362,7 @@ div.visible {
     display: block;
 }
 
-div.hidden {
+div.hidden, td.hidden, img.hidden {
     display: none;
 }
 
@@ -3370,10 +3370,6 @@ tr.visible {
     display: block;
 }
 
-td.hidden {
-    display: none;
-}
-
 
 /* ============================================================================== */
 /*  Module website                                                                */