diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index a603fd242ccfd8d8a92e0d67ea6f474e07bcf0f3..304924fe15031408867150d1e3520ded5c0f08a8 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -4,15 +4,14 @@ How to contribute to Dolibarr
 Bug reports and feature requests
 --------------------------------
 
-*Note*: Issues are not a support forum. If you need help using the software, please use [the forums](http://www.dolibarr.org/forum).
+<a name=not-a-support-forum></a>*Note*: Issues are not a support forum. If you need help using the software, please use [the forums](http://www.dolibarr.org/forum).
 
-**NEW**
-
-Issues are now managed on [GitHub](https://github.com/Dolibarr/dolibarr/Issues).
+Issues are managed on [GitHub](https://github.com/Dolibarr/dolibarr/Issues).
 
 1. Please [use the search engine](https://help.github.com/articles/searching-issues) to check if nobody's already reported your problem.
 2. [Create an issue](https://help.github.com/articles/creating-an-issue). Choose an appropriate title. Prepend appropriately with Bug or Feature Request.
-3. Report with as much detail as possible ([Use screenshots or even screencasts whenever possible](https://help.github.com/articles/issue-attachments)).
+4. Tell us the version you are using!
+3. Write a report with as much detail as possible (Use [screenshots](https://help.github.com/articles/issue-attachments) or even screencasts and provide logging and debugging informations whenever possible).
 
 We're still figuring out how to migrate old issues to GitHub. In the meantime, they are still available at [Doliforge](https://doliforge.org/projects/dolibarr).
 
@@ -41,9 +40,45 @@ Choose your base branch accordingly.
 ### General rules
 Please don't edit the ChangeLog file. A project manager will update it from your commit messages.
 
-### Commits
+### <a name=commits></a>Commits
 Use clear commit messages with the following structure:
 
+```
+[KEYWORD] [ISSUENUM] DESC
+
+LONGDESC
+```
+
+#### Keyword
+In uppercase to appear in ChangeLog when generated.
+
+The keyword can be ommitted if your commit does not fit in any of the following categories:
+- Fix: for a bug fix
+- Close: for closing a referenced feature request
+- New: for an unreferenced new feature (Opening a feature request and using close is prefered)
+
+#### Issuenum
+If your commit fixes a referenced bug or feature request.
+
+In the form of a # followed by the GitHub issue number.
+
+#### Desc
+A short description of the commit content.
+
+This should ideally be less than 50 characters.
+
+#### LongDesc
+A long description of the commit content.
+
+You can really go to town here and explain in depth what you've been doing.
+
+Feel free to express technical details, use cases or anything relevant to the current commit.
+
+This section can span multiple lines.
+
+Try to keep lines under 72 characters.
+
+#### Samples
 <pre>
 FIX|Fix #456 Short description (where #456 is number of bug fix, if it exists. In upper case to appear into ChangeLog)
 or
@@ -57,8 +92,10 @@ Long description (Can span accross multiple lines).
 </pre>
 
 ### Pull Requests
-When submitting a pull request, use same rule than Commits. With upper case keyword to appear into ChangeLog.
+When submitting a pull request, use same rule as [Commits](#commits) for the message.
 
+If your pull request only contains one commit, GitHub will be smart enough to fill it for you.
+Otherwise, please be a bit verbose about what you're providing.
 
 ### Resources
 [Developer documentation](http://wiki.dolibarr.org/index.php/Developer_documentation)
@@ -67,18 +104,18 @@ Translations
 ------------
 The source language (en_US) is maintained in the repository. See the [Code](#code) section above.
 
-All other translations are managed online at [Transifex](https://www.transifex.com/projects/p/dolibarr).
+All other translations are managed online at [Transifex](https://www.transifex.com/dolibarr-association/dolibarr/).
 
 Join an existing translation team or create your own and translate into the interface.
 
 Your translations will be available in the next major release.
 
 ### Resources
-[Translator documentation](http://wiki.dolibarr.org/index.php/Developer_documentation)
+[Translator documentation](http://wiki.dolibarr.org/index.php/Translator_documentation)
 
 Documentation
 -------------
 The project's documentation is maintained on the [Wiki](http://wiki.dolibarr.org/index.php).
 
-*You need to create an account before being able to edit.*
+*Note*: to help prevent spam, you need to create an account before being able to edit.
 
diff --git a/dev/cliparts/commons.svg b/dev/cliparts/commons.svg
new file mode 100644
index 0000000000000000000000000000000000000000..1abca065694d8abb7bf0b6bede10660d13a4898d
--- /dev/null
+++ b/dev/cliparts/commons.svg
@@ -0,0 +1,2058 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="210mm"
+   height="297mm"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="commons.svg">
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="3.7437097"
+     inkscape:cx="394.58694"
+     inkscape:cy="927.47511"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="1920"
+     inkscape:window-height="1027"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1" />
+  <defs
+     id="defs4">
+    <linearGradient
+       id="linearGradient3301">
+      <stop
+         id="stop3303"
+         style="stop-color:#ffffff"
+         offset="0" />
+      <stop
+         id="stop3305"
+         style="stop-color:#cdc8c9"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2290">
+      <stop
+         id="stop2292"
+         style="stop-color:#575b4e"
+         offset="0" />
+      <stop
+         id="stop2294"
+         style="stop-color:#32352c"
+         offset="1" />
+    </linearGradient>
+    <filter
+       color-interpolation-filters="sRGB"
+       inkscape:menu-tooltip="Increase or decrease lightness and contrast"
+       inkscape:menu="Color"
+       height="1"
+       width="1"
+       y="0"
+       x="0"
+       inkscape:label="Lightness-Contrast"
+       id="filter4043">
+      <feColorMatrix
+         result="fbSourceGraphic"
+         values="0"
+         type="saturate"
+         id="feColorMatrix4045" />
+      <feColorMatrix
+         id="feColorMatrix4715"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         flood-color="rgb(128,128,128)"
+         flood-opacity="0"
+         result="result1"
+         id="feFlood4717" />
+      <feBlend
+         result="result2"
+         mode="normal"
+         in2="fbSourceGraphic"
+         id="feBlend4719" />
+      <feComposite
+         result="result3"
+         operator="arithmetic"
+         k2="1"
+         in2="fbSourceGraphic"
+         id="feComposite4721" />
+      <feComposite
+         operator="in"
+         in2="fbSourceGraphic"
+         id="feComposite4723" />
+    </filter>
+    <filter
+       color-interpolation-filters="sRGB"
+       inkscape:menu-tooltip="Increase or decrease lightness and contrast"
+       inkscape:menu="Color"
+       height="1"
+       width="1"
+       y="0"
+       x="0"
+       inkscape:label="Lightness-Contrast"
+       id="filter4047">
+      <feColorMatrix
+         result="fbSourceGraphic"
+         values="0"
+         type="saturate"
+         id="feColorMatrix4049" />
+      <feColorMatrix
+         id="feColorMatrix4725"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         flood-color="rgb(128,128,128)"
+         flood-opacity="0"
+         result="result1"
+         id="feFlood4727" />
+      <feBlend
+         result="result2"
+         mode="normal"
+         in2="fbSourceGraphic"
+         id="feBlend4729" />
+      <feComposite
+         result="result3"
+         operator="arithmetic"
+         k2="1"
+         in2="fbSourceGraphic"
+         id="feComposite4731" />
+      <feComposite
+         operator="in"
+         in2="fbSourceGraphic"
+         id="feComposite4733" />
+    </filter>
+    <filter
+       color-interpolation-filters="sRGB"
+       inkscape:menu-tooltip="Increase or decrease lightness and contrast"
+       inkscape:menu="Color"
+       height="1"
+       width="1"
+       y="0"
+       x="0"
+       inkscape:label="Lightness-Contrast"
+       id="filter4051">
+      <feColorMatrix
+         result="fbSourceGraphic"
+         values="0"
+         type="saturate"
+         id="feColorMatrix4053" />
+      <feColorMatrix
+         id="feColorMatrix4735"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         flood-color="rgb(128,128,128)"
+         flood-opacity="0"
+         result="result1"
+         id="feFlood4737" />
+      <feBlend
+         result="result2"
+         mode="normal"
+         in2="fbSourceGraphic"
+         id="feBlend4739" />
+      <feComposite
+         result="result3"
+         operator="arithmetic"
+         k2="1"
+         in2="fbSourceGraphic"
+         id="feComposite4741" />
+      <feComposite
+         operator="in"
+         in2="fbSourceGraphic"
+         id="feComposite4743" />
+    </filter>
+    <filter
+       color-interpolation-filters="sRGB"
+       inkscape:menu-tooltip="Increase or decrease lightness and contrast"
+       inkscape:menu="Color"
+       height="1"
+       width="1"
+       y="0"
+       x="0"
+       inkscape:label="Lightness-Contrast"
+       id="filter4055">
+      <feColorMatrix
+         result="fbSourceGraphic"
+         values="0"
+         type="saturate"
+         id="feColorMatrix4057" />
+      <feColorMatrix
+         id="feColorMatrix4745"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         flood-color="rgb(128,128,128)"
+         flood-opacity="0"
+         result="result1"
+         id="feFlood4747" />
+      <feBlend
+         result="result2"
+         mode="normal"
+         in2="fbSourceGraphic"
+         id="feBlend4749" />
+      <feComposite
+         result="result3"
+         operator="arithmetic"
+         k2="1"
+         in2="fbSourceGraphic"
+         id="feComposite4751" />
+      <feComposite
+         operator="in"
+         in2="fbSourceGraphic"
+         id="feComposite4753" />
+    </filter>
+    <filter
+       color-interpolation-filters="sRGB"
+       inkscape:menu-tooltip="Increase or decrease lightness and contrast"
+       inkscape:menu="Color"
+       height="1"
+       width="1"
+       y="0"
+       x="0"
+       inkscape:label="Lightness-Contrast"
+       id="filter4059">
+      <feColorMatrix
+         result="fbSourceGraphic"
+         values="0"
+         type="saturate"
+         id="feColorMatrix4061" />
+      <feColorMatrix
+         id="feColorMatrix4755"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         flood-color="rgb(128,128,128)"
+         flood-opacity="0"
+         result="result1"
+         id="feFlood4757" />
+      <feBlend
+         result="result2"
+         mode="normal"
+         in2="fbSourceGraphic"
+         id="feBlend4759" />
+      <feComposite
+         result="result3"
+         operator="arithmetic"
+         k2="1"
+         in2="fbSourceGraphic"
+         id="feComposite4761" />
+      <feComposite
+         operator="in"
+         in2="fbSourceGraphic"
+         id="feComposite4763" />
+    </filter>
+    <filter
+       color-interpolation-filters="sRGB"
+       inkscape:menu-tooltip="Increase or decrease lightness and contrast"
+       inkscape:menu="Color"
+       height="1"
+       width="1"
+       y="0"
+       x="0"
+       inkscape:label="Lightness-Contrast"
+       id="filter4063">
+      <feColorMatrix
+         result="fbSourceGraphic"
+         values="0"
+         type="saturate"
+         id="feColorMatrix4065" />
+      <feColorMatrix
+         id="feColorMatrix4765"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         flood-color="rgb(128,128,128)"
+         flood-opacity="0"
+         result="result1"
+         id="feFlood4767" />
+      <feBlend
+         result="result2"
+         mode="normal"
+         in2="fbSourceGraphic"
+         id="feBlend4769" />
+      <feComposite
+         result="result3"
+         operator="arithmetic"
+         k2="1"
+         in2="fbSourceGraphic"
+         id="feComposite4771" />
+      <feComposite
+         operator="in"
+         in2="fbSourceGraphic"
+         id="feComposite4773" />
+    </filter>
+    <filter
+       color-interpolation-filters="sRGB"
+       inkscape:menu-tooltip="Increase or decrease lightness and contrast"
+       inkscape:menu="Color"
+       height="1"
+       width="1"
+       y="0"
+       x="0"
+       inkscape:label="Lightness-Contrast"
+       id="filter4067">
+      <feColorMatrix
+         result="fbSourceGraphic"
+         values="0"
+         type="saturate"
+         id="feColorMatrix4069" />
+      <feColorMatrix
+         id="feColorMatrix4775"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         flood-color="rgb(128,128,128)"
+         flood-opacity="0"
+         result="result1"
+         id="feFlood4777" />
+      <feBlend
+         result="result2"
+         mode="normal"
+         in2="fbSourceGraphic"
+         id="feBlend4779" />
+      <feComposite
+         result="result3"
+         operator="arithmetic"
+         k2="1"
+         in2="fbSourceGraphic"
+         id="feComposite4781" />
+      <feComposite
+         operator="in"
+         in2="fbSourceGraphic"
+         id="feComposite4783" />
+    </filter>
+    <filter
+       color-interpolation-filters="sRGB"
+       inkscape:menu-tooltip="Increase or decrease lightness and contrast"
+       inkscape:menu="Color"
+       height="1"
+       width="1"
+       y="0"
+       x="0"
+       inkscape:label="Lightness-Contrast"
+       id="filter4071">
+      <feColorMatrix
+         result="fbSourceGraphic"
+         values="0"
+         type="saturate"
+         id="feColorMatrix4073" />
+      <feColorMatrix
+         id="feColorMatrix4785"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         flood-color="rgb(128,128,128)"
+         flood-opacity="0"
+         result="result1"
+         id="feFlood4787" />
+      <feBlend
+         result="result2"
+         mode="normal"
+         in2="fbSourceGraphic"
+         id="feBlend4789" />
+      <feComposite
+         result="result3"
+         operator="arithmetic"
+         k2="1"
+         in2="fbSourceGraphic"
+         id="feComposite4791" />
+      <feComposite
+         operator="in"
+         in2="fbSourceGraphic"
+         id="feComposite4793" />
+    </filter>
+    <filter
+       color-interpolation-filters="sRGB"
+       inkscape:menu-tooltip="Increase or decrease lightness and contrast"
+       inkscape:menu="Color"
+       height="1"
+       width="1"
+       y="0"
+       x="0"
+       inkscape:label="Lightness-Contrast"
+       id="filter4075">
+      <feColorMatrix
+         result="fbSourceGraphic"
+         values="0"
+         type="saturate"
+         id="feColorMatrix4077" />
+      <feColorMatrix
+         id="feColorMatrix4795"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         flood-color="rgb(128,128,128)"
+         flood-opacity="0"
+         result="result1"
+         id="feFlood4797" />
+      <feBlend
+         result="result2"
+         mode="normal"
+         in2="fbSourceGraphic"
+         id="feBlend4799" />
+      <feComposite
+         result="result3"
+         operator="arithmetic"
+         k2="1"
+         in2="fbSourceGraphic"
+         id="feComposite4801" />
+      <feComposite
+         operator="in"
+         in2="fbSourceGraphic"
+         id="feComposite4803" />
+    </filter>
+    <filter
+       color-interpolation-filters="sRGB"
+       inkscape:menu-tooltip="Increase or decrease lightness and contrast"
+       inkscape:menu="Color"
+       height="1"
+       width="1"
+       y="0"
+       x="0"
+       inkscape:label="Lightness-Contrast"
+       id="filter4079">
+      <feColorMatrix
+         result="fbSourceGraphic"
+         values="0"
+         type="saturate"
+         id="feColorMatrix4081" />
+      <feColorMatrix
+         id="feColorMatrix4805"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         flood-color="rgb(128,128,128)"
+         flood-opacity="0"
+         result="result1"
+         id="feFlood4807" />
+      <feBlend
+         result="result2"
+         mode="normal"
+         in2="fbSourceGraphic"
+         id="feBlend4809" />
+      <feComposite
+         result="result3"
+         operator="arithmetic"
+         k2="1"
+         in2="fbSourceGraphic"
+         id="feComposite4811" />
+      <feComposite
+         operator="in"
+         in2="fbSourceGraphic"
+         id="feComposite4813" />
+    </filter>
+    <filter
+       color-interpolation-filters="sRGB"
+       inkscape:menu-tooltip="Increase or decrease lightness and contrast"
+       inkscape:menu="Color"
+       height="1"
+       width="1"
+       y="0"
+       x="0"
+       inkscape:label="Lightness-Contrast"
+       id="filter4083">
+      <feColorMatrix
+         result="fbSourceGraphic"
+         values="0"
+         type="saturate"
+         id="feColorMatrix4085" />
+      <feColorMatrix
+         id="feColorMatrix4815"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         flood-color="rgb(128,128,128)"
+         flood-opacity="0"
+         result="result1"
+         id="feFlood4817" />
+      <feBlend
+         result="result2"
+         mode="normal"
+         in2="fbSourceGraphic"
+         id="feBlend4819" />
+      <feComposite
+         result="result3"
+         operator="arithmetic"
+         k2="1"
+         in2="fbSourceGraphic"
+         id="feComposite4821" />
+      <feComposite
+         operator="in"
+         in2="fbSourceGraphic"
+         id="feComposite4823" />
+    </filter>
+    <filter
+       color-interpolation-filters="sRGB"
+       inkscape:menu-tooltip="Increase or decrease lightness and contrast"
+       inkscape:menu="Color"
+       height="1"
+       width="1"
+       y="0"
+       x="0"
+       inkscape:label="Lightness-Contrast"
+       id="filter4087">
+      <feColorMatrix
+         result="fbSourceGraphic"
+         values="0"
+         type="saturate"
+         id="feColorMatrix4089" />
+      <feColorMatrix
+         id="feColorMatrix4825"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         flood-color="rgb(128,128,128)"
+         flood-opacity="0"
+         result="result1"
+         id="feFlood4827" />
+      <feBlend
+         result="result2"
+         mode="normal"
+         in2="fbSourceGraphic"
+         id="feBlend4829" />
+      <feComposite
+         result="result3"
+         operator="arithmetic"
+         k2="1"
+         in2="fbSourceGraphic"
+         id="feComposite4831" />
+      <feComposite
+         operator="in"
+         in2="fbSourceGraphic"
+         id="feComposite4833" />
+    </filter>
+    <filter
+       color-interpolation-filters="sRGB"
+       inkscape:menu-tooltip="Increase or decrease lightness and contrast"
+       inkscape:menu="Color"
+       height="1"
+       width="1"
+       y="0"
+       x="0"
+       inkscape:label="Lightness-Contrast"
+       id="filter4091">
+      <feColorMatrix
+         result="fbSourceGraphic"
+         values="0"
+         type="saturate"
+         id="feColorMatrix4093" />
+      <feColorMatrix
+         id="feColorMatrix4835"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         flood-color="rgb(128,128,128)"
+         flood-opacity="0"
+         result="result1"
+         id="feFlood4837" />
+      <feBlend
+         result="result2"
+         mode="normal"
+         in2="fbSourceGraphic"
+         id="feBlend4839" />
+      <feComposite
+         result="result3"
+         operator="arithmetic"
+         k2="1"
+         in2="fbSourceGraphic"
+         id="feComposite4841" />
+      <feComposite
+         operator="in"
+         in2="fbSourceGraphic"
+         id="feComposite4843" />
+    </filter>
+    <filter
+       color-interpolation-filters="sRGB"
+       inkscape:menu-tooltip="Increase or decrease lightness and contrast"
+       inkscape:menu="Color"
+       height="1"
+       width="1"
+       y="0"
+       x="0"
+       inkscape:label="Lightness-Contrast"
+       id="filter4095">
+      <feColorMatrix
+         result="fbSourceGraphic"
+         values="0"
+         type="saturate"
+         id="feColorMatrix4097" />
+      <feColorMatrix
+         id="feColorMatrix4845"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         flood-color="rgb(128,128,128)"
+         flood-opacity="0"
+         result="result1"
+         id="feFlood4847" />
+      <feBlend
+         result="result2"
+         mode="normal"
+         in2="fbSourceGraphic"
+         id="feBlend4849" />
+      <feComposite
+         result="result3"
+         operator="arithmetic"
+         k2="1"
+         in2="fbSourceGraphic"
+         id="feComposite4851" />
+      <feComposite
+         operator="in"
+         in2="fbSourceGraphic"
+         id="feComposite4853" />
+    </filter>
+    <filter
+       color-interpolation-filters="sRGB"
+       inkscape:menu-tooltip="Increase or decrease lightness and contrast"
+       inkscape:menu="Color"
+       height="1"
+       width="1"
+       y="0"
+       x="0"
+       inkscape:label="Lightness-Contrast"
+       id="filter4099">
+      <feColorMatrix
+         result="fbSourceGraphic"
+         values="0"
+         type="saturate"
+         id="feColorMatrix4101" />
+      <feColorMatrix
+         id="feColorMatrix4855"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         flood-color="rgb(128,128,128)"
+         flood-opacity="0"
+         result="result1"
+         id="feFlood4857" />
+      <feBlend
+         result="result2"
+         mode="normal"
+         in2="fbSourceGraphic"
+         id="feBlend4859" />
+      <feComposite
+         result="result3"
+         operator="arithmetic"
+         k2="1"
+         in2="fbSourceGraphic"
+         id="feComposite4861" />
+      <feComposite
+         operator="in"
+         in2="fbSourceGraphic"
+         id="feComposite4863" />
+    </filter>
+    <filter
+       color-interpolation-filters="sRGB"
+       inkscape:menu-tooltip="Increase or decrease lightness and contrast"
+       inkscape:menu="Color"
+       height="1"
+       width="1"
+       y="0"
+       x="0"
+       inkscape:label="Lightness-Contrast"
+       id="filter4103">
+      <feColorMatrix
+         result="fbSourceGraphic"
+         values="0"
+         type="saturate"
+         id="feColorMatrix4105" />
+      <feColorMatrix
+         id="feColorMatrix4865"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         flood-color="rgb(128,128,128)"
+         flood-opacity="0"
+         result="result1"
+         id="feFlood4867" />
+      <feBlend
+         result="result2"
+         mode="normal"
+         in2="fbSourceGraphic"
+         id="feBlend4869" />
+      <feComposite
+         result="result3"
+         operator="arithmetic"
+         k2="1"
+         in2="fbSourceGraphic"
+         id="feComposite4871" />
+      <feComposite
+         operator="in"
+         in2="fbSourceGraphic"
+         id="feComposite4873" />
+    </filter>
+    <filter
+       color-interpolation-filters="sRGB"
+       inkscape:menu-tooltip="Increase or decrease lightness and contrast"
+       inkscape:menu="Color"
+       height="1"
+       width="1"
+       y="0"
+       x="0"
+       inkscape:label="Lightness-Contrast"
+       id="filter4107">
+      <feColorMatrix
+         result="fbSourceGraphic"
+         values="0"
+         type="saturate"
+         id="feColorMatrix4109" />
+      <feColorMatrix
+         id="feColorMatrix4875"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         flood-color="rgb(128,128,128)"
+         flood-opacity="0"
+         result="result1"
+         id="feFlood4877" />
+      <feBlend
+         result="result2"
+         mode="normal"
+         in2="fbSourceGraphic"
+         id="feBlend4879" />
+      <feComposite
+         result="result3"
+         operator="arithmetic"
+         k2="1"
+         in2="fbSourceGraphic"
+         id="feComposite4881" />
+      <feComposite
+         operator="in"
+         in2="fbSourceGraphic"
+         id="feComposite4883" />
+    </filter>
+    <filter
+       color-interpolation-filters="sRGB"
+       inkscape:menu-tooltip="Increase or decrease lightness and contrast"
+       inkscape:menu="Color"
+       height="1"
+       width="1"
+       y="0"
+       x="0"
+       inkscape:label="Lightness-Contrast"
+       id="filter4111">
+      <feColorMatrix
+         result="fbSourceGraphic"
+         values="0"
+         type="saturate"
+         id="feColorMatrix4113" />
+      <feColorMatrix
+         id="feColorMatrix4885"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         flood-color="rgb(128,128,128)"
+         flood-opacity="0"
+         result="result1"
+         id="feFlood4887" />
+      <feBlend
+         result="result2"
+         mode="normal"
+         in2="fbSourceGraphic"
+         id="feBlend4889" />
+      <feComposite
+         result="result3"
+         operator="arithmetic"
+         k2="1"
+         in2="fbSourceGraphic"
+         id="feComposite4891" />
+      <feComposite
+         operator="in"
+         in2="fbSourceGraphic"
+         id="feComposite4893" />
+    </filter>
+    <filter
+       color-interpolation-filters="sRGB"
+       inkscape:menu-tooltip="Increase or decrease lightness and contrast"
+       inkscape:menu="Color"
+       height="1"
+       width="1"
+       y="0"
+       x="0"
+       inkscape:label="Lightness-Contrast"
+       id="filter4115">
+      <feColorMatrix
+         result="fbSourceGraphic"
+         values="0"
+         type="saturate"
+         id="feColorMatrix4117" />
+      <feColorMatrix
+         id="feColorMatrix4895"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         flood-color="rgb(128,128,128)"
+         flood-opacity="0"
+         result="result1"
+         id="feFlood4897" />
+      <feBlend
+         result="result2"
+         mode="normal"
+         in2="fbSourceGraphic"
+         id="feBlend4899" />
+      <feComposite
+         result="result3"
+         operator="arithmetic"
+         k2="1"
+         in2="fbSourceGraphic"
+         id="feComposite4901" />
+      <feComposite
+         operator="in"
+         in2="fbSourceGraphic"
+         id="feComposite4903" />
+    </filter>
+    <filter
+       color-interpolation-filters="sRGB"
+       inkscape:menu-tooltip="Increase or decrease lightness and contrast"
+       inkscape:menu="Color"
+       height="1"
+       width="1"
+       y="0"
+       x="0"
+       inkscape:label="Lightness-Contrast"
+       id="filter4119">
+      <feColorMatrix
+         result="fbSourceGraphic"
+         values="0"
+         type="saturate"
+         id="feColorMatrix4121" />
+      <feColorMatrix
+         id="feColorMatrix4905"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         flood-color="rgb(128,128,128)"
+         flood-opacity="0"
+         result="result1"
+         id="feFlood4907" />
+      <feBlend
+         result="result2"
+         mode="normal"
+         in2="fbSourceGraphic"
+         id="feBlend4909" />
+      <feComposite
+         result="result3"
+         operator="arithmetic"
+         k2="1"
+         in2="fbSourceGraphic"
+         id="feComposite4911" />
+      <feComposite
+         operator="in"
+         in2="fbSourceGraphic"
+         id="feComposite4913" />
+    </filter>
+    <filter
+       color-interpolation-filters="sRGB"
+       inkscape:menu-tooltip="Increase or decrease lightness and contrast"
+       inkscape:menu="Color"
+       height="1"
+       width="1"
+       y="0"
+       x="0"
+       inkscape:label="Lightness-Contrast"
+       id="filter4123">
+      <feColorMatrix
+         result="fbSourceGraphic"
+         values="0"
+         type="saturate"
+         id="feColorMatrix4125" />
+      <feColorMatrix
+         id="feColorMatrix4915"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         flood-color="rgb(128,128,128)"
+         flood-opacity="0"
+         result="result1"
+         id="feFlood4917" />
+      <feBlend
+         result="result2"
+         mode="normal"
+         in2="fbSourceGraphic"
+         id="feBlend4919" />
+      <feComposite
+         result="result3"
+         operator="arithmetic"
+         k2="1"
+         in2="fbSourceGraphic"
+         id="feComposite4921" />
+      <feComposite
+         operator="in"
+         in2="fbSourceGraphic"
+         id="feComposite4923" />
+    </filter>
+    <filter
+       color-interpolation-filters="sRGB"
+       inkscape:menu-tooltip="Increase or decrease lightness and contrast"
+       inkscape:menu="Color"
+       height="1"
+       width="1"
+       y="0"
+       x="0"
+       inkscape:label="Lightness-Contrast"
+       id="filter4127">
+      <feColorMatrix
+         result="fbSourceGraphic"
+         values="0"
+         type="saturate"
+         id="feColorMatrix4129" />
+      <feColorMatrix
+         id="feColorMatrix4925"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         flood-color="rgb(128,128,128)"
+         flood-opacity="0"
+         result="result1"
+         id="feFlood4927" />
+      <feBlend
+         result="result2"
+         mode="normal"
+         in2="fbSourceGraphic"
+         id="feBlend4929" />
+      <feComposite
+         result="result3"
+         operator="arithmetic"
+         k2="1"
+         in2="fbSourceGraphic"
+         id="feComposite4931" />
+      <feComposite
+         operator="in"
+         in2="fbSourceGraphic"
+         id="feComposite4933" />
+    </filter>
+    <filter
+       color-interpolation-filters="sRGB"
+       inkscape:menu-tooltip="Increase or decrease lightness and contrast"
+       inkscape:menu="Color"
+       height="1"
+       width="1"
+       y="0"
+       x="0"
+       inkscape:label="Lightness-Contrast"
+       id="filter4131">
+      <feColorMatrix
+         result="fbSourceGraphic"
+         values="0"
+         type="saturate"
+         id="feColorMatrix4133" />
+      <feColorMatrix
+         id="feColorMatrix4935"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         flood-color="rgb(128,128,128)"
+         flood-opacity="0"
+         result="result1"
+         id="feFlood4937" />
+      <feBlend
+         result="result2"
+         mode="normal"
+         in2="fbSourceGraphic"
+         id="feBlend4939" />
+      <feComposite
+         result="result3"
+         operator="arithmetic"
+         k2="1"
+         in2="fbSourceGraphic"
+         id="feComposite4941" />
+      <feComposite
+         operator="in"
+         in2="fbSourceGraphic"
+         id="feComposite4943" />
+    </filter>
+    <filter
+       color-interpolation-filters="sRGB"
+       inkscape:menu-tooltip="Increase or decrease lightness and contrast"
+       inkscape:menu="Color"
+       height="1"
+       width="1"
+       y="0"
+       x="0"
+       inkscape:label="Lightness-Contrast"
+       id="filter4135">
+      <feColorMatrix
+         result="fbSourceGraphic"
+         values="0"
+         type="saturate"
+         id="feColorMatrix4137" />
+      <feColorMatrix
+         id="feColorMatrix4945"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         flood-color="rgb(128,128,128)"
+         flood-opacity="0"
+         result="result1"
+         id="feFlood4947" />
+      <feBlend
+         result="result2"
+         mode="normal"
+         in2="fbSourceGraphic"
+         id="feBlend4949" />
+      <feComposite
+         result="result3"
+         operator="arithmetic"
+         k2="1"
+         in2="fbSourceGraphic"
+         id="feComposite4951" />
+      <feComposite
+         operator="in"
+         in2="fbSourceGraphic"
+         id="feComposite4953" />
+    </filter>
+    <filter
+       color-interpolation-filters="sRGB"
+       inkscape:menu-tooltip="Increase or decrease lightness and contrast"
+       inkscape:menu="Color"
+       height="1"
+       width="1"
+       y="0"
+       x="0"
+       inkscape:label="Lightness-Contrast"
+       id="filter4139">
+      <feColorMatrix
+         result="fbSourceGraphic"
+         values="0"
+         type="saturate"
+         id="feColorMatrix4141" />
+      <feColorMatrix
+         id="feColorMatrix4955"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         flood-color="rgb(128,128,128)"
+         flood-opacity="0"
+         result="result1"
+         id="feFlood4957" />
+      <feBlend
+         result="result2"
+         mode="normal"
+         in2="fbSourceGraphic"
+         id="feBlend4959" />
+      <feComposite
+         result="result3"
+         operator="arithmetic"
+         k2="1"
+         in2="fbSourceGraphic"
+         id="feComposite4961" />
+      <feComposite
+         operator="in"
+         in2="fbSourceGraphic"
+         id="feComposite4963" />
+    </filter>
+    <filter
+       color-interpolation-filters="sRGB"
+       inkscape:menu-tooltip="Increase or decrease lightness and contrast"
+       inkscape:menu="Color"
+       height="1"
+       width="1"
+       y="0"
+       x="0"
+       inkscape:label="Lightness-Contrast"
+       id="filter4143">
+      <feColorMatrix
+         result="fbSourceGraphic"
+         values="0"
+         type="saturate"
+         id="feColorMatrix4145" />
+      <feColorMatrix
+         id="feColorMatrix4965"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         flood-color="rgb(128,128,128)"
+         flood-opacity="0"
+         result="result1"
+         id="feFlood4967" />
+      <feBlend
+         result="result2"
+         mode="normal"
+         in2="fbSourceGraphic"
+         id="feBlend4969" />
+      <feComposite
+         result="result3"
+         operator="arithmetic"
+         k2="1"
+         in2="fbSourceGraphic"
+         id="feComposite4971" />
+      <feComposite
+         operator="in"
+         in2="fbSourceGraphic"
+         id="feComposite4973" />
+    </filter>
+    <filter
+       color-interpolation-filters="sRGB"
+       inkscape:menu-tooltip="Increase or decrease lightness and contrast"
+       inkscape:menu="Color"
+       height="1"
+       width="1"
+       y="0"
+       x="0"
+       inkscape:label="Lightness-Contrast"
+       id="filter4147">
+      <feColorMatrix
+         result="fbSourceGraphic"
+         values="0"
+         type="saturate"
+         id="feColorMatrix4149" />
+      <feColorMatrix
+         id="feColorMatrix4975"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         flood-color="rgb(128,128,128)"
+         flood-opacity="0"
+         result="result1"
+         id="feFlood4977" />
+      <feBlend
+         result="result2"
+         mode="normal"
+         in2="fbSourceGraphic"
+         id="feBlend4979" />
+      <feComposite
+         result="result3"
+         operator="arithmetic"
+         k2="1"
+         in2="fbSourceGraphic"
+         id="feComposite4981" />
+      <feComposite
+         operator="in"
+         in2="fbSourceGraphic"
+         id="feComposite4983" />
+    </filter>
+    <filter
+       color-interpolation-filters="sRGB"
+       inkscape:menu-tooltip="Increase or decrease lightness and contrast"
+       inkscape:menu="Color"
+       height="1"
+       width="1"
+       y="0"
+       x="0"
+       inkscape:label="Lightness-Contrast"
+       id="filter4151">
+      <feColorMatrix
+         result="fbSourceGraphic"
+         values="0"
+         type="saturate"
+         id="feColorMatrix4153" />
+      <feColorMatrix
+         id="feColorMatrix4985"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         flood-color="rgb(128,128,128)"
+         flood-opacity="0"
+         result="result1"
+         id="feFlood4987" />
+      <feBlend
+         result="result2"
+         mode="normal"
+         in2="fbSourceGraphic"
+         id="feBlend4989" />
+      <feComposite
+         result="result3"
+         operator="arithmetic"
+         k2="1"
+         in2="fbSourceGraphic"
+         id="feComposite4991" />
+      <feComposite
+         operator="in"
+         in2="fbSourceGraphic"
+         id="feComposite4993" />
+    </filter>
+    <linearGradient
+       id="linearGradient2290-873">
+      <stop
+         id="stop5537"
+         style="stop-color:#595f49"
+         offset="0" />
+      <stop
+         id="stop5539"
+         style="stop-color:#32362a"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3301-174">
+      <stop
+         id="stop5569"
+         style="stop-color:#ffffff"
+         offset="0" />
+      <stop
+         id="stop5571"
+         style="stop-color:#cfc5c8"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3301-538">
+      <stop
+         id="stop5621"
+         style="stop-color:#ffffff"
+         offset="0" />
+      <stop
+         id="stop5623"
+         style="stop-color:#cfc5c8"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2290-629">
+      <stop
+         id="stop5627"
+         style="stop-color:#595f49"
+         offset="0" />
+      <stop
+         id="stop5629"
+         style="stop-color:#32362a"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2290-873-789">
+      <stop
+         id="stop6406"
+         style="stop-color:#5b6344"
+         offset="0" />
+      <stop
+         id="stop6408"
+         style="stop-color:#333827"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2290-629-99">
+      <stop
+         id="stop6434"
+         style="stop-color:#5b6344"
+         offset="0" />
+      <stop
+         id="stop6436"
+         style="stop-color:#333827"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3301-174-110">
+      <stop
+         id="stop6470"
+         style="stop-color:#ffffff"
+         offset="0" />
+      <stop
+         id="stop6472"
+         style="stop-color:#d1c2c6"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3301-538-48">
+      <stop
+         id="stop6482"
+         style="stop-color:#ffffff"
+         offset="0" />
+      <stop
+         id="stop6484"
+         style="stop-color:#d1c2c6"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="609.51"
+       x2="302.86"
+       y1="366.65"
+       x1="302.86"
+       gradientTransform="matrix(2.7744,0,0,1.9697,-1892.2,-872.89)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4018-809-142-461"
+       xlink:href="#linearGradient6715-910-452-648"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient6715-910-452-648"
+       y2="609.51"
+       gradientUnits="userSpaceOnUse"
+       x2="302.86"
+       gradientTransform="matrix(2.7744,0,0,1.9697,-1892.2,-872.89)"
+       y1="366.65"
+       x1="302.86"
+       inkscape:collect="always">
+      <stop
+         id="stop7364"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="0" />
+      <stop
+         id="stop7366"
+         style="stop-color:#000000"
+         offset=".5" />
+      <stop
+         id="stop7368"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       r="117.14"
+       cy="486.65"
+       cx="605.71"
+       gradientTransform="matrix(2.7744,0,0,1.9697,-1891.6,-872.89)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient4020-921-903-925"
+       xlink:href="#linearGradient5060-178-894-114"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient5060-178-894-114"
+       inkscape:collect="always">
+      <stop
+         id="stop7372"
+         style="stop-color:#000000"
+         offset="0" />
+      <stop
+         id="stop7374"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       r="117.14"
+       cy="486.65"
+       cx="605.71"
+       gradientTransform="matrix(-2.7744,0,0,1.9697,112.76,-872.89)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient4022-96-722-645"
+       xlink:href="#linearGradient5060-460-114-794"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient5060-460-114-794"
+       inkscape:collect="always">
+      <stop
+         id="stop7378"
+         style="stop-color:#000000"
+         offset="0" />
+      <stop
+         id="stop7380"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       r="17.5"
+       cy="36.812"
+       cx="25.375"
+       gradientTransform="matrix(1,0,0,0.45357,0,20.115)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient4016-299-617-898"
+       xlink:href="#radialGradient1415-35-218-227"
+       inkscape:collect="always" />
+    <radialGradient
+       id="radialGradient1415-35-218-227"
+       gradientUnits="userSpaceOnUse"
+       cy="36.812"
+       cx="25.375"
+       gradientTransform="matrix(1,0,0,0.45357,0,20.115)"
+       r="17.5"
+       inkscape:collect="always">
+      <stop
+         id="stop7384"
+         style="stop-color:#000000"
+         offset="0" />
+      <stop
+         id="stop7386"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       y2="29.719"
+       x2="14.844"
+       y1="29.719"
+       x1="7.8705"
+       gradientTransform="matrix(1.9894275,0,0,1.6124079,326.90889,61.942025)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3993-332-664-477"
+       xlink:href="#linearGradient2290-873-789-138"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient2290-873-789-138">
+      <stop
+         id="stop7390"
+         style="stop-color:#636144"
+         offset="0" />
+      <stop
+         id="stop7392"
+         style="stop-color:#383727"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="matrix(1.9206676,0,0,1.6124079,327.22094,61.61627)"
+       y2="26.093"
+       x2="30.13"
+       y1="26.093"
+       x1="16.353"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3990-904-452-173"
+       xlink:href="#linearGradient1482-781-381-431"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient1482-781-381-431"
+       y2="26.093"
+       gradientUnits="userSpaceOnUse"
+       x2="30.13"
+       y1="26.093"
+       x1="16.353"
+       inkscape:collect="always">
+      <stop
+         id="stop7396"
+         style="stop-color:#3c382a"
+         offset="0" />
+      <stop
+         id="stop7398"
+         style="stop-color:#786f52"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="30.566"
+       x2="38.416"
+       y1="39.052"
+       x1="22.55"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4014-537-71-46"
+       xlink:href="#linearGradient1423-931-498-227"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient1423-931-498-227"
+       y2="30.566"
+       gradientUnits="userSpaceOnUse"
+       x2="38.416"
+       y1="39.052"
+       x1="22.55"
+       inkscape:collect="always">
+      <stop
+         id="stop7402"
+         style="stop-color:#2c463c"
+         offset="0" />
+      <stop
+         id="stop7404"
+         style="stop-color:#6fa493"
+         offset=".5" />
+      <stop
+         id="stop7406"
+         style="stop-color:#284137"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="30.917"
+       x2="33.904"
+       y1="35.303"
+       x1="23.661"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4012-958-624-527"
+       xlink:href="#linearGradient1425-184-436-936"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient1425-184-436-936"
+       y2="30.917"
+       gradientUnits="userSpaceOnUse"
+       x2="33.904"
+       y1="35.303"
+       x1="23.661"
+       inkscape:collect="always">
+      <stop
+         id="stop7410"
+         style="stop-color:#9a798b"
+         offset="0" />
+      <stop
+         id="stop7412"
+         style="stop-color:#caded6"
+         offset=".5" />
+      <stop
+         id="stop7414"
+         style="stop-color:#946b83"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="29.719"
+       x2="14.844"
+       y1="29.719"
+       x1="7.8705"
+       gradientTransform="matrix(1.9686844,0,0,1.6124079,327.09044,61.616268)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3983-23-564-355"
+       xlink:href="#linearGradient2290-629-99-410"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient2290-629-99-410">
+      <stop
+         id="stop7418"
+         style="stop-color:#636144"
+         offset="0" />
+      <stop
+         id="stop7420"
+         style="stop-color:#383727"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="matrix(1.9206676,0,0,1.6124079,327.22094,61.61627)"
+       y2="57.125"
+       x2="35.888"
+       y1="16.125"
+       x1="16.667"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3977-245-360-122"
+       xlink:href="#linearGradient1469-774-680-510"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient1469-774-680-510"
+       y2="57.125"
+       gradientUnits="userSpaceOnUse"
+       x2="35.888"
+       y1="16.125"
+       x1="16.667"
+       inkscape:collect="always">
+      <stop
+         id="stop7424"
+         style="stop-color:#ffffff"
+         offset="0" />
+      <stop
+         id="stop7426"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       r="4.625"
+       cy="23.672"
+       cx="16.875"
+       gradientTransform="matrix(1,0,0,1.0135,0,-0.3049)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient4008-272-475-622"
+       xlink:href="#radialGradient1431-457-720-402"
+       inkscape:collect="always" />
+    <radialGradient
+       id="radialGradient1431-457-720-402"
+       gradientUnits="userSpaceOnUse"
+       cy="23.672"
+       cx="16.875"
+       gradientTransform="matrix(1,0,0,1.0135,0,-0.3049)"
+       r="4.625"
+       inkscape:collect="always">
+      <stop
+         id="stop7430"
+         style="stop-color:#8c637b"
+         offset="0" />
+      <stop
+         id="stop7432"
+         style="stop-color:#000000"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       y2="27.073"
+       x2="18.422"
+       y1="18.849"
+       x1="12.836"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4010-13-206-770"
+       xlink:href="#linearGradient1433-902-718-214"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient1433-902-718-214"
+       y2="27.073"
+       gradientUnits="userSpaceOnUse"
+       x2="18.422"
+       y1="18.849"
+       x1="12.836"
+       inkscape:collect="always">
+      <stop
+         id="stop7436"
+         style="stop-color:#010000"
+         offset="0" />
+      <stop
+         id="stop7438"
+         style="stop-color:#a38395"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       r="1.75"
+       cy="22.688"
+       cx="14.75"
+       gradientTransform="matrix(1,0,0,1.0357,0,-0.81027)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient4006-332-943-671"
+       xlink:href="#radialGradient2824-387-578-214"
+       inkscape:collect="always" />
+    <radialGradient
+       id="radialGradient2824-387-578-214"
+       gradientUnits="userSpaceOnUse"
+       cy="22.688"
+       cx="14.75"
+       gradientTransform="matrix(1,0,0,1.0357,0,-0.81027)"
+       r="1.75"
+       inkscape:collect="always">
+      <stop
+         id="stop7442"
+         style="stop-color:#ffffff"
+         offset="0" />
+      <stop
+         id="stop7444"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       gradientTransform="matrix(1.9206676,0,0,1.6124079,327.22095,61.616268)"
+       y2="12.847"
+       x2="29.395"
+       y1="9.4122"
+       x1="29.395"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3969-54-102-383"
+       xlink:href="#linearGradient1461-63-76-600"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient1461-63-76-600"
+       y2="12.847"
+       gradientUnits="userSpaceOnUse"
+       x2="29.395"
+       y1="9.4122"
+       x1="29.395"
+       inkscape:collect="always">
+      <stop
+         id="stop7448"
+         style="stop-color:#636144"
+         offset="0" />
+      <stop
+         id="stop7450"
+         style="stop-color:#121610"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="30.191"
+       x2="6.5596"
+       y1="29.374"
+       x1="6.5596"
+       gradientTransform="matrix(2.8383625,0,0,3.1961149,362.88197,-21.596877)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3964-53-485-97"
+       xlink:href="#linearGradient3301-174-110-76"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient3301-174-110-76">
+      <stop
+         id="stop7454"
+         style="stop-color:#ffffff"
+         offset="0" />
+      <stop
+         id="stop7456"
+         style="stop-color:#d1c2ca"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="24.701"
+       x2="7.9151"
+       y1="30.817"
+       x1="7.9151"
+       gradientTransform="matrix(2.5322081,0,0,1.2466976,363.15086,38.687829)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3966-710-670-446"
+       xlink:href="#linearGradient1458-906-752-598"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient1458-906-752-598"
+       y2="24.701"
+       gradientUnits="userSpaceOnUse"
+       x2="7.9151"
+       gradientTransform="matrix(1.3184,0,0,0.77319,18.707,-14.22)"
+       y1="30.817"
+       x1="7.9151"
+       inkscape:collect="always">
+      <stop
+         id="stop7460"
+         style="stop-color:#eeebeb"
+         offset="0" />
+      <stop
+         id="stop7462"
+         style="stop-color:#ae93a3"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="30.191"
+       x2="6.5596"
+       y1="29.374"
+       x1="6.5596"
+       gradientTransform="matrix(1.2584982,0,0,3.0611564,355.91955,4.2919439)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3959-358-405-821"
+       xlink:href="#linearGradient3301-538-48-57"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient3301-538-48-57">
+      <stop
+         id="stop7466"
+         style="stop-color:#ffffff"
+         offset="0" />
+      <stop
+         id="stop7468"
+         style="stop-color:#d1c2ca"
+         offset="1" />
+    </linearGradient>
+  </defs>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:groupmode="layer"
+     inkscape:label="Calque 1">
+    <g
+       id="g8014"
+       style="opacity:0.27956992"
+       transform="matrix(0.99771798,0,0,1.0176646,-1.1510876,-0.81544515)"
+       inkscape:export-filename="/home/ldestailleur/git/dolibarr/htdocs/public/theme/common/nophoto.png"
+       inkscape:export-xdpi="76.774879"
+       inkscape:export-ydpi="76.774879">
+      <path
+         id="path2629"
+         sodipodi:rx="1.75"
+         sodipodi:ry="1.8125"
+         style="color:#000000;fill:#ffffff;filter:url(#filter4151)"
+         sodipodi:type="arc"
+         d="M 16.5,22.6875 C 16.5,23.688516 15.716498,24.5 14.75,24.5 13.783502,24.5 13,23.688516 13,22.6875 c 0,-1.001016 0.783502,-1.8125 1.75,-1.8125 0.966498,0 1.75,0.811484 1.75,1.8125 z"
+         transform="matrix(0.87603572,0,0,0.73543535,365.14025,95.249691)"
+         sodipodi:cy="22.6875"
+         sodipodi:cx="14.75" />
+      <g
+         id="g6707"
+         transform="matrix(0.04710822,0,0,0.03364773,413.9391,121.78327)"
+         style="filter:url(#filter4147)">
+        <rect
+           id="rect6709"
+           style="opacity:0.40206;color:#000000;fill:url(#linearGradient4018-809-142-461)"
+           height="478.35999"
+           width="1339.6"
+           y="-150.7"
+           x="-1559.3" />
+        <path
+           inkscape:connector-curvature="0"
+           id="path6711"
+           sodipodi:nodetypes="cccc"
+           style="opacity:0.40206;color:#000000;fill:url(#radialGradient4020-921-903-925)"
+           d="m -219.62,-150.68 v 478.33 c 142.88,0.9 345.4,-107.17 345.4,-239.2 0,-132.02 -159.44,-239.13 -345.4,-239.13 z" />
+        <path
+           inkscape:connector-curvature="0"
+           id="path6713"
+           sodipodi:nodetypes="cccc"
+           style="opacity:0.40206;color:#000000;fill:url(#radialGradient4022-96-722-645)"
+           d="m -1559.3,-150.68 v 478.33 c -142.8,0.9 -345.4,-107.17 -345.4,-239.2 0,-132.02 159.5,-239.13 345.4,-239.13 z" />
+      </g>
+      <path
+         id="path2664"
+         sodipodi:rx="17.5"
+         sodipodi:ry="7.9375"
+         style="color:#000000;fill:url(#radialGradient4016-299-617-898);display:block;filter:url(#filter4143)"
+         sodipodi:type="arc"
+         d="m 42.875,36.8125 c 0,4.38376 -7.835017,7.9375 -17.5,7.9375 -9.664983,0 -17.5,-3.55374 -17.5,-7.9375 0,-4.38376 7.835017,-7.9375 17.5,-7.9375 9.664983,0 17.5,3.55374 17.5,7.9375 z"
+         transform="matrix(1.3313876,0,0,1.307695,353.93744,77.67053)"
+         sodipodi:cy="36.8125"
+         sodipodi:cx="25.375" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path2608"
+         sodipodi:nodetypes="csscssscssc"
+         style="color:#000000;fill:url(#linearGradient3993-332-664-477);stroke:#2c2325;stroke-width:3.51960182;display:block;filter:url(#filter4139)"
+         d="m 344.37789,92.124638 c -6.66722,0 -12.06044,1.805896 -12.06044,4.031019 0,0.253148 0.30154,0.464373 0.43521,0.704622 -0.0196,0.08062 -0.18649,0.06611 -0.18649,0.151567 0,0 -0.24872,26.301594 -0.24872,26.554754 0,2.22512 5.39322,4.03102 12.06044,4.03102 6.66703,0 12.06026,-1.8059 12.06026,-4.03102 l -0.24777,-26.554754 c 0,-0.08546 -0.1671,-0.07095 -0.18823,-0.151567 0.13445,-0.240249 0.436,-0.451474 0.436,-0.704622 0,-2.225123 -5.39323,-4.031019 -12.06026,-4.031019 z" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path8417"
+         sodipodi:nodetypes="ccccccccczcc"
+         style="color:#000000;fill:url(#linearGradient3990-904-452-173);stroke:#2c2325;stroke-width:1.75980091;display:block;filter:url(#filter4135)"
+         d="m 331.33675,123.93261 h 77.10136 c 2.13386,0.16285 4.26196,-1.85427 4.26196,-2.99423 V 92.482592 c -0.19398,-1.791385 -7.62313,-3.908477 -9.36901,-4.07133 H 398.66 l -5.61604,-4.974278 h -20.27649 l -6.59749,4.888821 c 0,0 -12.92033,0.340218 -22.93469,1.88168 -10.01552,1.53985 -12.17319,4.171298 -12.17319,6.125537 l 0.27446,27.599588 z" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path2300"
+         sodipodi:nodetypes="cccc"
+         style="color:#000000;fill:#404735;display:block;filter:url(#filter4131)"
+         d="m 392.3143,84.040024 2.61787,6.107801 3.58972,-0.732033 -6.20759,-5.375768 z" />
+      <path
+         id="path2302"
+         sodipodi:rx="1.9697975"
+         sodipodi:ry="1.9697975"
+         style="color:#000000;fill:#58634d;stroke:#af9da2;stroke-width:0.7956;display:block;filter:url(#filter4127)"
+         sodipodi:type="arc"
+         d="m 43.133513,33.908371 c 0,1.087889 -0.881909,1.969797 -1.969798,1.969797 -1.087889,0 -1.969797,-0.881908 -1.969797,-1.969797 0,-1.087889 0.881908,-1.969798 1.969797,-1.969798 1.087889,0 1.969798,0.881909 1.969798,1.969798 z"
+         transform="matrix(2.4140872,0,0,2.0266354,304.77411,45.451879)"
+         sodipodi:cy="33.908371"
+         sodipodi:cx="41.163715" />
+      <path
+         id="path2280"
+         sodipodi:rx="10.142858"
+         sodipodi:ry="10.142858"
+         style="color:#000000;fill:url(#linearGradient4014-537-71-46);display:block;filter:url(#filter4123)"
+         sodipodi:type="arc"
+         d="m 40.714286,33.57143 c 0,5.601746 -4.541112,10.142858 -10.142858,10.142858 -5.601745,0 -10.142857,-4.541112 -10.142857,-10.142858 0,-5.601745 4.541112,-10.142857 10.142857,-10.142857 5.601746,0 10.142858,4.541112 10.142858,10.142857 z"
+         transform="matrix(2.079891,0,0,1.7460765,320.84337,54.544731)"
+         sodipodi:cy="33.57143"
+         sodipodi:cx="30.571428" />
+      <path
+         id="path2278"
+         sodipodi:rx="10.142858"
+         sodipodi:ry="10.142858"
+         style="color:#000000;fill:url(#linearGradient4012-958-624-527);display:block;filter:url(#filter4119)"
+         sodipodi:type="arc"
+         d="m 40.714286,33.57143 c 0,5.601746 -4.541112,10.142858 -10.142858,10.142858 -5.601745,0 -10.142857,-4.541112 -10.142857,-10.142858 0,-5.601745 4.541112,-10.142857 10.142857,-10.142857 5.601746,0 10.142858,4.541112 10.142858,10.142857 z"
+         transform="matrix(2.079891,0,0,1.7460765,321.16125,57.59186)"
+         sodipodi:cy="33.57143"
+         sodipodi:cx="30.571428" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path7949"
+         sodipodi:nodetypes="csscssscssc"
+         style="color:#000000;fill:url(#linearGradient3983-23-564-355);display:block;filter:url(#filter4115)"
+         d="m 344.37789,91.798932 c -6.59787,0 -11.93502,1.805896 -11.93502,4.031019 0,0.253148 0.29827,0.464374 0.43061,0.704622 -0.0194,0.08062 -0.18458,0.06611 -0.18458,0.151567 0,0 -0.24603,26.3016 -0.24603,26.55475 0,2.22513 5.33715,4.03102 11.93502,4.03102 6.59788,0 11.93541,-1.80589 11.93541,-4.03102 l -0.24584,-26.55475 c 0,-0.08546 -0.16518,-0.07095 -0.18438,-0.151567 0.13061,-0.240248 0.43022,-0.451474 0.43022,-0.704622 0,-2.225123 -5.33753,-4.031019 -11.93541,-4.031019 z" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path2298"
+         sodipodi:nodetypes="ccccc"
+         style="color:#000000;fill:#808a6a;display:block;filter:url(#filter4111)"
+         d="m 373.78561,84.447964 -1.45586,5.862715 -0.67991,1.95585 -5.3337,-3.339296 7.46947,-4.479269 z" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path2276"
+         sodipodi:nodetypes="ccccccc"
+         style="color:#000000;fill:#a3b39d;display:block;filter:url(#filter4107)"
+         d="m 363.77126,106.75564 9.43239,-13.837698 h 21.53453 l 9.29411,11.472288 -9.10012,-14.079551 h -22.69846 l -8.46245,16.444961 z" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path7953"
+         sodipodi:nodetypes="cssssccc"
+         style="color:#000000;fill:#929579;display:block;filter:url(#filter4103)"
+         d="m 366.23355,88.825651 c 0,0 -23.32651,1.028716 -31.0303,4.434122 -1.63602,0.723971 -2.85757,1.356034 -2.85757,2.325092 0,2.225125 5.42416,4.880765 11.86127,4.880765 6.43654,0 11.52439,-2.410554 11.52439,-4.635679 0,-0.507908 -0.34572,-1.014205 -0.84125,-1.462454 l 16.56576,-2.921683 -5.2223,-2.620163 z" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path2683"
+         sodipodi:nodetypes="ccsccscccccccc"
+         style="color:#000000;fill:none;stroke:url(#linearGradient3977-245-360-122);stroke-width:1.75980091;display:block;filter:url(#filter4099)"
+         d="m 374.37911,84.967159 -7.52326,4.503455 c 0,0 -12.37871,0.701397 -21.60559,2.120317 -9.22823,1.420531 -11.94732,2.957156 -12.1874,4.858185 l 0.43425,26.753084 c 0.56852,1.87199 6.20395,3.34251 11.96308,3.34251 5.7595,0 10.56694,-2.57985 11.13546,-4.45185 l 50.87464,0.20154 c 2.8061,0.05 3.32467,-1.1303 3.32467,-2.17997 V 93.222687 c 0,-1.148034 -5.45662,-3.005528 -7.06613,-3.155482 l -5.63332,0.101582 -6.22489,-5.201628 h -17.49151 z" />
+      <path
+         id="path8415"
+         sodipodi:rx="10.142858"
+         sodipodi:ry="10.142858"
+         style="color:#000000;fill:#283938;display:block;filter:url(#filter4095)"
+         sodipodi:type="arc"
+         d="m 40.714286,33.57143 c 0,5.601746 -4.541112,10.142858 -10.142858,10.142858 -5.601745,0 -10.142857,-4.541112 -10.142857,-10.142858 0,-5.601745 4.541112,-10.142857 10.142857,-10.142857 5.601746,0 10.142858,4.541112 10.142858,10.142857 z"
+         transform="matrix(2.079891,0,0,1.7460765,321.36119,59.086723)"
+         sodipodi:cy="33.57143"
+         sodipodi:cx="30.571428" />
+      <path
+         id="path2589"
+         sodipodi:rx="4.125"
+         sodipodi:ry="4.1875"
+         style="color:#000000;fill:url(#radialGradient4008-272-475-622);stroke:url(#linearGradient4010-13-206-770);stroke-width:0.59631002;filter:url(#filter4091)"
+         sodipodi:type="arc"
+         d="m 19.875,22.5625 c 0,2.312692 -1.846825,4.1875 -4.125,4.1875 -2.278175,0 -4.125,-1.874808 -4.125,-4.1875 0,-2.312692 1.846825,-4.1875 4.125,-4.1875 2.278175,0 4.125,1.874808 4.125,4.1875 z"
+         transform="matrix(3.2209596,0,0,2.704008,333.92101,56.697618)"
+         sodipodi:cy="22.5625"
+         sodipodi:cx="15.75" />
+      <path
+         id="path2599"
+         sodipodi:rx="1.75"
+         sodipodi:ry="1.8125"
+         style="color:#000000;fill:#ffffff;fill-opacity:0.52866002;filter:url(#filter4087)"
+         sodipodi:type="arc"
+         d="M 16.5,22.6875 C 16.5,23.688516 15.716498,24.5 14.75,24.5 13.783502,24.5 13,23.688516 13,22.6875 c 0,-1.001016 0.783502,-1.8125 1.75,-1.8125 0.966498,0 1.75,0.811484 1.75,1.8125 z"
+         transform="matrix(3.2209596,0,0,2.704008,336.64526,55.603484)"
+         sodipodi:cy="22.6875"
+         sodipodi:cx="14.75" />
+      <path
+         id="path8405"
+         sodipodi:rx="1.75"
+         sodipodi:ry="1.8125"
+         style="color:#000000;fill:url(#radialGradient4006-332-943-671);filter:url(#filter4083)"
+         sodipodi:type="arc"
+         d="M 16.5,22.6875 C 16.5,23.688516 15.716498,24.5 14.75,24.5 13.783502,24.5 13,23.688516 13,22.6875 c 0,-1.001016 0.783502,-1.8125 1.75,-1.8125 0.966498,0 1.75,0.811484 1.75,1.8125 z"
+         transform="matrix(0.79271716,0,0,0.6654891,379.9452,108.34708)"
+         sodipodi:cy="22.6875"
+         sodipodi:cx="14.75" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path1507"
+         sodipodi:nodetypes="ccccccccc"
+         style="color:#000000;fill:url(#linearGradient3969-54-102-383);display:block;filter:url(#filter4079)"
+         d="m 369.90395,86.727908 5.62756,-3.419917 1.74588,-3.910088 h 12.22313 l 2.52184,4.724355 5.43357,3.908476 -4.85161,-17.589758 -19.01269,-6.44e-4 -3.68768,16.286932 z" />
+      <rect
+         id="rect3297"
+         style="color:#000000;fill:url(#linearGradient3964-53-485-97);stroke:url(#linearGradient3966-710-670-446);stroke-width:1.75980091;filter:url(#filter4075)"
+         rx="2.8877237"
+         ry="2.4242551"
+         height="7.390955"
+         width="17.916946"
+         y="69.092522"
+         x="374.237" />
+      <path
+         id="path2288"
+         sodipodi:rx="6.0714288"
+         sodipodi:ry="2.5"
+         style="color:#000000;fill:#323328;display:block;filter:url(#filter4071)"
+         sodipodi:type="arc"
+         d="m 14.857143,38.214287 c 0,1.380712 -2.718271,2.5 -6.0714289,2.5 -3.3531575,0 -6.0714287,-1.119288 -6.0714287,-2.5 0,-1.380712 2.7182712,-2.5 6.0714287,-2.5 3.3531579,0 6.0714289,1.119288 6.0714289,2.5 z"
+         transform="matrix(0.69036478,0,0,0.89382218,342.00741,61.734063)"
+         sodipodi:cy="38.214287"
+         sodipodi:cx="8.7857141" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path2312"
+         sodipodi:nodetypes="czcccsc"
+         style="color:#000000;fill:#c5cabc;display:block;filter:url(#filter4067)"
+         d="m 332.41329,95.881548 c -0.26025,2.878158 4.69392,6.256142 11.8993,6.257762 7.32581,0.002 11.23436,-3.521498 11.62234,-6.615717 l 8.73135,-2.768504 -9.89527,1.628532 c 0.19398,3.094211 -3.26898,6.175529 -10.44862,6.080389 -7.84862,-0.10642 -10.70868,-2.668535 -11.9091,-4.582462 z" />
+      <rect
+         id="rect2282"
+         style="color:#000000;fill:url(#linearGradient3959-358-405-821);stroke:#4c3d42;stroke-width:1.75980091;filter:url(#filter4063)"
+         rx="1.3356707"
+         ry="1.1213007"
+         height="7.0787935"
+         width="7.9442654"
+         y="91.150742"
+         x="360.95364" />
+      <path
+         id="path2612"
+         sodipodi:rx="1.75"
+         sodipodi:ry="1.8125"
+         style="color:#000000;fill:#ffffff;filter:url(#filter4059)"
+         sodipodi:type="arc"
+         d="M 16.5,22.6875 C 16.5,23.688516 15.716498,24.5 14.75,24.5 13.783502,24.5 13,23.688516 13,22.6875 c 0,-1.001016 0.783502,-1.8125 1.75,-1.8125 0.966498,0 1.75,0.811484 1.75,1.8125 z"
+         transform="matrix(0.74875307,0,0,0.62858108,335.77273,81.589164)"
+         sodipodi:cy="22.6875"
+         sodipodi:cx="14.75" />
+      <path
+         id="path2641"
+         sodipodi:rx="1.625"
+         sodipodi:ry="0.6875"
+         style="color:#000000;fill:#c8bfc2;fill-opacity:0.52866002;display:block;filter:url(#filter4055)"
+         sodipodi:type="arc"
+         d="m 42.25,20.5625 c 0,0.379696 -0.727537,0.6875 -1.625,0.6875 -0.897463,0 -1.625,-0.307804 -1.625,-0.6875 0,-0.379696 0.727537,-0.6875 1.625,-0.6875 0.897463,0 1.625,0.307804 1.625,0.6875 z"
+         transform="matrix(1.9946133,0,0,2.6385443,324.94016,41.122564)"
+         sodipodi:cy="20.5625"
+         sodipodi:cx="40.625" />
+      <path
+         id="path2639"
+         sodipodi:rx="1.625"
+         sodipodi:ry="0.6875"
+         style="color:#000000;fill:#5e4c51;display:block;filter:url(#filter4051)"
+         sodipodi:type="arc"
+         d="m 42.25,20.5625 c 0,0.379696 -0.727537,0.6875 -1.625,0.6875 -0.897463,0 -1.625,-0.307804 -1.625,-0.6875 0,-0.379696 0.727537,-0.6875 1.625,-0.6875 0.897463,0 1.625,0.307804 1.625,0.6875 z"
+         transform="matrix(1.9946133,0,0,2.6385443,325.0602,41.727218)"
+         sodipodi:cy="20.5625"
+         sodipodi:cx="40.625" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path2650"
+         sodipodi:nodetypes="cs"
+         style="color:#000000;fill:none;stroke:#816b71;stroke-width:1.75980091;display:block;filter:url(#filter4047)"
+         d="m 371.91681,107.44413 c 4.99949,-5.42898 16.81736,-6.76082 23.57619,-1.67852" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path2668"
+         style="color:#000000;fill:#ffffff;filter:url(#filter4043)"
+         d="m 384.12435,112.05905 c -3.11148,0 -5.58915,2.20577 -5.58915,4.91139 0,0.61916 0.47248,1.03678 0.7145,1.58177 0.24392,0.029 0.39757,0.2193 0.64918,0.2193 3.10572,0 5.59107,-2.15742 5.59107,-4.85658 0,-0.63529 -0.52819,-1.08031 -0.7798,-1.63821 -0.22088,-0.0226 -0.35724,-0.21767 -0.5858,-0.21767 z" />
+    </g>
+    <path
+       transform="matrix(0.70970535,0,0,0.72487497,289.90468,8.1459463)"
+       d="m 214.28571,137.36218 a 101.42857,99.285713 0 1 1 -202.857144,0 101.42857,99.285713 0 1 1 202.857144,0 z"
+       sodipodi:ry="99.285713"
+       sodipodi:rx="101.42857"
+       sodipodi:cy="137.36218"
+       sodipodi:cx="112.85714"
+       id="path2996"
+       style="fill:none;stroke:#dbdbdb;stroke-width:8.42921066;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       sodipodi:type="arc"
+       inkscape:export-filename="/home/ldestailleur/git/dolibarr/htdocs/public/theme/common/nophoto.png"
+       inkscape:export-xdpi="76.774879"
+       inkscape:export-ydpi="76.774879" />
+    <path
+       d="m 150,192.36218 a 3.5714285,10 0 1 1 -7.14285,0 3.5714285,10 0 1 1 7.14285,0 z"
+       sodipodi:ry="10"
+       sodipodi:rx="3.5714285"
+       sodipodi:cy="192.36218"
+       sodipodi:cx="146.42857"
+       id="path2998"
+       style="opacity:0.55199998;fill:#e8dad4;fill-opacity:0.43137255;stroke:none"
+       sodipodi:type="arc" />
+    <rect
+       transform="matrix(0.743975,-0.66820745,0.77306797,0.63432319,0,0)"
+       y="327.93024"
+       x="81.318336"
+       height="0.7751227"
+       width="143.95984"
+       id="rect3777"
+       style="fill:none;stroke:#dbdbdb;stroke-width:5.06745768;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       inkscape:export-filename="/home/ldestailleur/git/dolibarr/htdocs/public/theme/common/nophoto.png"
+       inkscape:export-xdpi="76.774879"
+       inkscape:export-ydpi="76.774879" />
+  </g>
+</svg>
diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php
index 812acf5c92380b91d4cc80522312d00aa0809ec4..01957fcedf523f25be94adb2c47778ceb2ef84b4 100644
--- a/htdocs/accountancy/journal/bankjournal.php
+++ b/htdocs/accountancy/journal/bankjournal.php
@@ -40,6 +40,7 @@ require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php';
 require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php';
 require_once DOL_DOCUMENT_ROOT.'/compta/sociales/class/chargesociales.class.php';
 require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
+require_once DOL_DOCUMENT_ROOT.'/don/class/paymentdonation.class.php';
 require_once DOL_DOCUMENT_ROOT.'/compta/tva/class/tva.class.php';
 require_once DOL_DOCUMENT_ROOT.'/compta/salaries/class/paymentsalary.class.php';
 require_once DOL_DOCUMENT_ROOT.'/fourn/class/paiementfourn.class.php';
@@ -120,6 +121,7 @@ $paymentsupplierstatic = new PaiementFourn($db);
 $societestatic = new Societe($db);
 $userstatic = new User($db);
 $chargestatic = new ChargeSociales($db);
+$paymentdonstatic = new PaymentDonation($db);
 $paymentvatstatic = new TVA($db);
 $paymentsalstatic = new PaymentSalary($db);
 
@@ -133,7 +135,8 @@ if ($result) {
 	$cptcli = (! empty($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER) ? $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER : $langs->trans("CodeNotDef"));
 	$accountancy_account_salary = (! empty($conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT) ? $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT : $langs->trans("CodeNotDef"));
 	$accountancy_account_pay_vat = (! empty($conf->global->ACCOUNTING_VAT_PAY_ACCOUNT) ? $conf->global->ACCOUNTING_VAT_PAY_ACCOUNT : $langs->trans("CodeNotDef"));
-
+	$accountancy_account_pay_donation = (! empty($conf->global->DONATION_ACCOUNTINGACCOUNT) ? $conf->global->DONATION_ACCOUNTINGACCOUNT : $langs->trans("CodeNotDef"));
+	
 	$tabpay = array ();
 	$tabbq = array ();
 	$tabtp = array ();
@@ -174,95 +177,100 @@ if ($result) {
 		// get_url may return -1 which is not traversable
 		if (is_array($links))
 		{
-		
-		foreach ( $links as $key => $val )
-		{
-			$tabtype[$obj->rowid] = $links[$key]['type'];
-
-			if ($links[$key]['type'] == 'payment')
-			{
-				$paymentstatic->id = $links[$key]['url_id'];
-				$tabpay[$obj->rowid]["lib"] .= ' ' . $paymentstatic->getNomUrl(2);
-			}
-			else if ($links[$key]['type'] == 'payment_supplier')
+			foreach ( $links as $key => $val )
 			{
-				$paymentsupplierstatic->id = $links[$key]['url_id'];
-				$paymentsupplierstatic->ref = $links[$key]['url_id'];
-				$tabpay[$obj->rowid]["lib"] .= ' ' . $paymentsupplierstatic->getNomUrl(2);
-			}
-			else if ($links[$key]['type'] == 'company')
-			{
-				$societestatic->id = $links[$key]['url_id'];
-				$societestatic->name = $links[$key]['label'];
-				$tabpay[$obj->rowid]["soclib"] = $societestatic->getNomUrl(1, '', 30);
-				$tabtp[$obj->rowid][$compta_soc] += $obj->amount;
-			}
-			else if ($links[$key]['type'] == 'user')
-			{
-				$userstatic->id = $links[$key]['url_id'];
-				$userstatic->name = $links[$key]['label'];
-				$tabpay[$obj->rowid]["soclib"] = $userstatic->getNomUrl(1, '', 30);
-				// $tabtp[$obj->rowid][$compta_user] += $obj->amount;
-			}
-			else if ($links[$key]['type'] == 'sc')
-			{
-				$chargestatic->id = $links[$key]['url_id'];
-				$chargestatic->ref = $links[$key]['url_id'];
-
-				$tabpay[$obj->rowid]["lib"] .= ' ' . $chargestatic->getNomUrl(2);
-				if (preg_match('/^\((.*)\)$/i', $links[$key]['label'], $reg)) {
-					if ($reg[1] == 'socialcontribution')
-						$reg[1] = 'SocialContribution';
-					$chargestatic->lib = $langs->trans($reg[1]);
+				$tabtype[$obj->rowid] = $links[$key]['type'];
+
+				if ($links[$key]['type'] == 'payment')
+				{
+					$paymentstatic->id = $links[$key]['url_id'];
+					$tabpay[$obj->rowid]["lib"] .= ' ' . $paymentstatic->getNomUrl(2);
+				}
+				else if ($links[$key]['type'] == 'payment_supplier')
+				{
+					$paymentsupplierstatic->id = $links[$key]['url_id'];
+					$paymentsupplierstatic->ref = $links[$key]['url_id'];
+					$tabpay[$obj->rowid]["lib"] .= ' ' . $paymentsupplierstatic->getNomUrl(2);
 				}
-				else
+				else if ($links[$key]['type'] == 'company')
 				{
-					$chargestatic->lib = $links[$key]['label'];
+					$societestatic->id = $links[$key]['url_id'];
+					$societestatic->name = $links[$key]['label'];
+					$tabpay[$obj->rowid]["soclib"] = $societestatic->getNomUrl(1, '', 30);
+					$tabtp[$obj->rowid][$compta_soc] += $obj->amount;
 				}
-				$chargestatic->ref = $chargestatic->lib;
-				$tabpay[$obj->rowid]["soclib"] = $chargestatic->getNomUrl(1, 30);
+				else if ($links[$key]['type'] == 'user')
+				{
+					$userstatic->id = $links[$key]['url_id'];
+					$userstatic->name = $links[$key]['label'];
+					$tabpay[$obj->rowid]["soclib"] = $userstatic->getNomUrl(1, '', 30);
+					// $tabtp[$obj->rowid][$compta_user] += $obj->amount;
+				}
+				else if ($links[$key]['type'] == 'sc')
+				{
+					$chargestatic->id = $links[$key]['url_id'];
+					$chargestatic->ref = $links[$key]['url_id'];
+
+					$tabpay[$obj->rowid]["lib"] .= ' ' . $chargestatic->getNomUrl(2);
+					if (preg_match('/^\((.*)\)$/i', $links[$key]['label'], $reg)) {
+						if ($reg[1] == 'socialcontribution')
+							$reg[1] = 'SocialContribution';
+						$chargestatic->lib = $langs->trans($reg[1]);
+					}
+					else
+					{
+						$chargestatic->lib = $links[$key]['label'];
+					}
+					$chargestatic->ref = $chargestatic->lib;
+					$tabpay[$obj->rowid]["soclib"] = $chargestatic->getNomUrl(1, 30);
 
-				$sqlmid = 'SELECT cchgsoc.accountancy_code';
-				$sqlmid .= " FROM " . MAIN_DB_PREFIX . "c_chargesociales cchgsoc ";
-				$sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "chargesociales as chgsoc ON  chgsoc.fk_type=cchgsoc.id";
-				$sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "paiementcharge as paycharg ON  paycharg.fk_charge=chgsoc.rowid";
-				$sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "bank_url as bkurl ON  bkurl.url_id=paycharg.rowid";
-				$sqlmid .= " WHERE bkurl.fk_bank=" . $obj->rowid;
+					$sqlmid = 'SELECT cchgsoc.accountancy_code';
+					$sqlmid .= " FROM " . MAIN_DB_PREFIX . "c_chargesociales cchgsoc ";
+					$sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "chargesociales as chgsoc ON  chgsoc.fk_type=cchgsoc.id";
+					$sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "paiementcharge as paycharg ON  paycharg.fk_charge=chgsoc.rowid";
+					$sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "bank_url as bkurl ON  bkurl.url_id=paycharg.rowid";
+					$sqlmid .= " WHERE bkurl.fk_bank=" . $obj->rowid;
 
 
-				dol_syslog("accountancy/journal/bankjournal.php:: sqlmid=" . $sqlmid, LOG_DEBUG);
-				$resultmid = $db->query($sqlmid);
-				if ($resultmid)
+					dol_syslog("accountancy/journal/bankjournal.php:: sqlmid=" . $sqlmid, LOG_DEBUG);
+					$resultmid = $db->query($sqlmid);
+					if ($resultmid)
+					{
+						$objmid = $db->fetch_object($resultmid);
+						$tabtp[$obj->rowid][$objmid->accountancy_code] += $obj->amount;
+					}
+				}
+				else if ($links[$key]['type'] == 'payment_donation')
 				{
-					$objmid = $db->fetch_object($resultmid);
-					$tabtp[$obj->rowid][$objmid->accountancy_code] += $obj->amount;
+					$paymentdonstatic->id = $links[$key]['url_id'];
+					$paymentdonstatic->fk_donation = $links[$key]['url_id'];
+					$tabpay[$obj->rowid]["lib"] .= ' ' . $langs->trans("PaymentDonation");
+					$tabtp[$obj->rowid][$accountancy_account_pay_donation] += $obj->amount;
 				}
+				else if ($links[$key]['type'] == 'payment_vat')
+				{
+					$paymentvatstatic->id = $links[$key]['url_id'];
+					$paymentvatstatic->ref = $links[$key]['url_id'];
+					$tabpay[$obj->rowid]["lib"] .= ' ' . $langs->trans("PaymentVat");
+					$tabtp[$obj->rowid][$accountancy_account_pay_vat] += $obj->amount;
+				}
+				else if ($links[$key]['type'] == 'payment_salary')
+				{
+					$paymentsalstatic->id = $links[$key]['url_id'];
+					$paymentsalstatic->ref = $links[$key]['url_id'];
+					$paymentsalstatic->label = $links[$key]['label'];
+					$tabpay[$obj->rowid]["lib"] .= ' ' . $paymentsalstatic->getNomUrl(2);
+					$tabtp[$obj->rowid][$accountancy_account_salary] += $obj->amount;
+				}
+				else if ($links[$key]['type'] == 'banktransfert')
+				{
+					$tabpay[$obj->rowid]["lib"] .= ' ' . $paymentvatstatic->getNomUrl(2);
+					$tabtp[$obj->rowid][$cpttva] += $obj->amount;
+				}
+				/*else {
+					$tabtp [$obj->rowid] [$accountancy_account_salary] += $obj->amount;
+				}*/
 			}
-			else if ($links[$key]['type'] == 'payment_vat')
-			{
-				$paymentvatstatic->id = $links[$key]['url_id'];
-				$paymentvatstatic->ref = $links[$key]['url_id'];
-				$tabpay[$obj->rowid]["lib"] .= ' ' . $langs->trans("PaymentVat");
-				$tabtp[$obj->rowid][$accountancy_account_pay_vat] += $obj->amount;
-			}
-			else if ($links[$key]['type'] == 'payment_salary')
-			{
-				$paymentsalstatic->id = $links[$key]['url_id'];
-				$paymentsalstatic->ref = $links[$key]['url_id'];
-				$paymentsalstatic->label = $links[$key]['label'];
-				$tabpay[$obj->rowid]["lib"] .= ' ' . $paymentsalstatic->getNomUrl(2);
-				$tabtp[$obj->rowid][$accountancy_account_salary] += $obj->amount;
-			}
-			else if ($links[$key]['type'] == 'banktransfert')
-			{
-				$tabpay[$obj->rowid]["lib"] .= ' ' . $paymentvatstatic->getNomUrl(2);
-				$tabtp[$obj->rowid][$cpttva] += $obj->amount;
-			}
-			/*else {
-				$tabtp [$obj->rowid] [$accountancy_account_salary] += $obj->amount;
-			}*/
-		}
-		
 		}
 		
 		$tabbq[$obj->rowid][$compta_bank] += $obj->amount;
diff --git a/htdocs/adherents/list.php b/htdocs/adherents/list.php
index 2f495e60bf7de3f29177ed8d7f03ea1a99fe272e..d89360631db949513b746927604b1326240a3861 100644
--- a/htdocs/adherents/list.php
+++ b/htdocs/adherents/list.php
@@ -195,9 +195,10 @@ if ($resql)
 	if (! empty($conf->categorie->enabled))
 	{
 		require_once DOL_DOCUMENT_ROOT . '/categories/class/categorie.class.php';
+        $moreforfilter.='<div class="divsearchfield">';
 		$moreforfilter.=$langs->trans('Categories'). ': ';
 		$moreforfilter.=$formother->select_categories(Categorie::TYPE_MEMBER,$search_categ,'search_categ',1);
-		$moreforfilter.=' &nbsp; &nbsp; &nbsp; ';
+		$moreforfilter.='</div>';
 	}
 	if (! empty($moreforfilter))
 	{
@@ -209,7 +210,7 @@ if ($resql)
 	    print '</div>';
 	}
 
-	print '<table class="liste">';
+    print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">';
 	print '<tr class="liste_titre">';
 	print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"d.rowid",$param,"","",$sortfield,$sortorder);
 	print_liste_field_titre($langs->trans("Name")." / ".$langs->trans("Company"),$_SERVER["PHP_SELF"],"d.lastname",$param,"","",$sortfield,$sortorder);
diff --git a/htdocs/adherents/stats/byproperties.php b/htdocs/adherents/stats/byproperties.php
index 6f5edf529d9f456a8ce83afbd91e54c5f4b3a7aa..dcf77a2dbad45a68218403f4f859bf176f708ca5 100644
--- a/htdocs/adherents/stats/byproperties.php
+++ b/htdocs/adherents/stats/byproperties.php
@@ -116,7 +116,7 @@ else
 }
 
 // Print array
-print '<table class="border" width="100%">';
+print '<table class="noborder" width="100%">';
 print '<tr class="liste_titre">';
 print '<td align="center">'.$langs->trans("Nature").'</td>';
 print '<td align="center">'.$langs->trans("NbOfMembers").'</td>';
diff --git a/htdocs/adherents/stats/geo.php b/htdocs/adherents/stats/geo.php
index 3b2ca4c3ecd931f1776630324cd850452e024a4d..f8b6a54f7b72e2fcc7492e067de14b9bfea31677 100644
--- a/htdocs/adherents/stats/geo.php
+++ b/htdocs/adherents/stats/geo.php
@@ -282,7 +282,7 @@ if (count($arrayjs) && $mode == 'memberbycountry')
 if ($mode)
 {
     // Print array / Affiche le tableau
-    print '<table class="border" width="100%">';
+    print '<table class="noborder" width="100%">';
     print '<tr class="liste_titre">';
     print '<td align="center">'.$label.'</td>';
     if ($label2) print '<td align="center">'.$label2.'</td>';
diff --git a/htdocs/adherents/stats/index.php b/htdocs/adherents/stats/index.php
index a3c8fd69aad80f520255665e82cb472bea14279d..43b994adafeb62f4a1374e56c25e4fff10acd564 100644
--- a/htdocs/adherents/stats/index.php
+++ b/htdocs/adherents/stats/index.php
@@ -167,8 +167,8 @@ print '<br><br>';
 $data = $stats->getAllByYear();
 
 
-print '<table class="border" width="100%">';
-print '<tr height="24">';
+print '<table class="noborder">';
+print '<tr class="liste_titre" height="24">';
 print '<td align="center">'.$langs->trans("Year").'</td>';
 print '<td align="center">'.$langs->trans("NbOfSubscriptions").'</td>';
 print '<td align="center">'.$langs->trans("AmountTotal").'</td>';
@@ -176,14 +176,15 @@ print '<td align="center">'.$langs->trans("AmountAverage").'</td>';
 print '</tr>';
 
 $oldyear=0;
+$var=false;
 foreach ($data as $val)
 {
     $year = $val['year'];
-    print $avg;
     while ($oldyear > $year+1)
     {	// If we have empty year
         $oldyear--;
-        print '<tr height="24">';
+        $var=!$var;
+        print '<tr '.$bc[$var].' height="24">';
         print '<td align="center">';
         print '<a href="month.php?year='.$oldyear.'&amp;mode='.$mode.'">';
         print $oldyear;
@@ -194,7 +195,8 @@ foreach ($data as $val)
         print '<td align="right">0</td>';
         print '</tr>';
     }
-    print '<tr height="24">';
+    $var=!$var;
+    print '<tr '.$bc[$var].' height="24">';
     print '<td align="center">';
     //print '<a href="month.php?year='.$year.'">';
     print $year;
diff --git a/htdocs/adherents/type.php b/htdocs/adherents/type.php
index 75102ed9f501975bff74974f2cba563213099016..b2fe0ac404be4baaa6b880d9175952625982954c 100644
--- a/htdocs/adherents/type.php
+++ b/htdocs/adherents/type.php
@@ -168,7 +168,7 @@ if (! $rowid && $action != 'create' && $action != 'edit')
 
 	print load_fiche_titre($langs->trans("MembersTypes"));
 
-	dol_fiche_head('');
+	//dol_fiche_head('');
 
 	$sql = "SELECT d.rowid, d.libelle, d.cotisation, d.vote";
 	$sql.= " FROM ".MAIN_DB_PREFIX."adherent_type as d";
@@ -211,7 +211,7 @@ if (! $rowid && $action != 'create' && $action != 'edit')
 		dol_print_error($db);
 	}
 
-	dol_fiche_end();
+	//dol_fiche_end();
 
 	/*
 	 * Hotbar
diff --git a/htdocs/admin/company.php b/htdocs/admin/company.php
index eb78ead387b8ce0f51c2d0898cfc0ab509ca9803..b9660c8a04d56b2c491598dcfe1a7e33e33c3afe 100644
--- a/htdocs/admin/company.php
+++ b/htdocs/admin/company.php
@@ -380,7 +380,7 @@ if ($action == 'edit' || $action == 'updateedit')
 			print '<img src="'.DOL_URL_ROOT.'/viewimage.php?modulepart=companylogo&amp;file='.urlencode('/thumbs/'.$mysoc->logo_mini).'">';
 		}
 	} else {
-		print '<img height="30" src="'.DOL_URL_ROOT.'/public/theme/common/nophoto.jpg">';
+		print '<img height="30" src="'.DOL_URL_ROOT.'/public/theme/common/nophoto.png">';
 	}
 	print '</td></tr></table>';
 	print '</td></tr>';
@@ -769,7 +769,7 @@ else
 	}
 	else
 	{
-		print '<img height="30" src="'.DOL_URL_ROOT.'/public/theme/common/nophoto.jpg">';
+		print '<img height="30" src="'.DOL_URL_ROOT.'/public/theme/common/nophoto.png">';
 	}
 	print '</td></tr></table>';
 
diff --git a/htdocs/asterisk/wrapper.php b/htdocs/asterisk/wrapper.php
index e0f115e31c51119a75ae4ab39e2cecd16b076c13..f168de78b6edcc504b46799c2b5cc0ac2575f221 100644
--- a/htdocs/asterisk/wrapper.php
+++ b/htdocs/asterisk/wrapper.php
@@ -112,6 +112,34 @@ $strMaxRetry = "2";
 
 llxHeader();
 
+$sql = "SELECT s.nom as name FROM ".MAIN_DB_PREFIX."societe as s";
+$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."socpeople as sp ON sp.fk_soc = s.rowid";
+$sql.= " WHERE s.entity IN (".getEntity('societe', 1).")";
+$sql.= " AND (s.phone='".$db->escape($called)."'";
+$sql.= " OR sp.phone='".$db->escape($called)."'";
+$sql.= " OR sp.phone_perso='".$db->escape($called)."'";
+$sql.= " OR sp.phone_mobile='".$db->escape($called)."')";
+$sql.= $db->plimit(1);
+
+dol_syslog('click to dial search information with phone '.$called, LOG_DEBUG);
+$resql = $db->query($sql);
+if ($resql)
+{
+	$obj = $db->fetch_object($resql);
+	if ($obj)
+	{
+		$found = $obj->name;
+	} else {
+		$found = $notfound;
+	}
+	$db->free($resql);
+}
+else
+{
+	dol_print_error($db,'Error');
+	$found = 'Error';
+}
+
 $number=strtolower($called);
 $pos=strpos($number,"local");
 if (! empty($number))
@@ -120,7 +148,7 @@ if (! empty($number))
     {
         $errno=0;
         $errstr=0;
-        $strCallerId = "Dolibarr <".strtolower($caller).">";
+        $strCallerId = "Dolibarr call $found <".strtolower($number).">";
         $oSocket = @fsockopen($strHost, $port, $errno, $errstr, 10);
         if (!$oSocket)
         {
diff --git a/htdocs/comm/action/class/actioncomm.class.php b/htdocs/comm/action/class/actioncomm.class.php
index 9b61da3e1965197e898b09cab67efa0818c6184d..acee9c383743e9769b9dc129e45453f50dd85a9d 100644
--- a/htdocs/comm/action/class/actioncomm.class.php
+++ b/htdocs/comm/action/class/actioncomm.class.php
@@ -220,7 +220,7 @@ class ActionComm extends CommonObject
         	$this->userassigned[$tmpid]=array('id'=>$tmpid);
         }
 
-        if (is_object($this->contact) && $this->contact->id > 0 && ! ($this->contactid > 0)) $this->contactid = $this->contact->id;		// For backward compatibility. Using this->contact->xx is deprecated
+        if (is_object($this->contact) && isset($this->contact->id) && $this->contact->id > 0 && ! ($this->contactid > 0)) $this->contactid = $this->contact->id;		// For backward compatibility. Using this->contact->xx is deprecated
 
 
         $userownerid=$this->userownerid;
diff --git a/htdocs/comm/askpricesupplier/list.php b/htdocs/comm/askpricesupplier/list.php
index 2e78045b3085cf840d44f9975ae86e16b17eb06e..ae7ed58b29c49760a76bd406d317c89a0f9cb2e9 100644
--- a/htdocs/comm/askpricesupplier/list.php
+++ b/htdocs/comm/askpricesupplier/list.php
@@ -242,7 +242,6 @@ if ($result)
 	print '<form method="GET" action="'.$_SERVER["PHP_SELF"].'">';
 
 	$i = 0;
-	print '<table class="liste" width="100%">';
 
 	$moreforfilter='';
 
@@ -250,25 +249,32 @@ if ($result)
  	if ($user->rights->societe->client->voir || $socid)
  	{
  		$langs->load("commercial");
+	 	$moreforfilter.='<div class="divsearchfield">';
 	 	$moreforfilter.=$langs->trans('ThirdPartiesOfSaleRepresentative'). ': ';
 		$moreforfilter.=$formother->select_salesrepresentatives($search_sale,'search_sale',$user);
-	 	$moreforfilter.=' &nbsp; &nbsp; &nbsp; ';
+	 	$moreforfilter.='</div>';
  	}
 	// If the user can view prospects other than his'
 	if ($user->rights->societe->client->voir || $socid)
 	{
+	    $moreforfilter.='<div class="divsearchfield">';
 	    $moreforfilter.=$langs->trans('LinkedToSpecificUsers'). ': ';
 	    $moreforfilter.=$form->select_dolusers($search_user,'search_user',1);
+	    $moreforfilter.='</div>';
 	}
-	if (! empty($moreforfilter))
-	{
-	    print '<tr class="liste_titre">';
-	    print '<td class="liste_titre" colspan="10">';
-	    print $moreforfilter;
-	    print '</td></tr>';
-	}
-
-	print '<tr class="liste_titre">';
+    if (! empty($moreforfilter))
+    {
+        print '<div class="liste_titre liste_titre_bydiv centpercent">';
+        print $moreforfilter;
+        $parameters=array();
+        $reshook=$hookmanager->executeHooks('printFieldPreListTitle',$parameters);    // Note that $action and $object may have been modified by hook
+        print $hookmanager->resPrint;
+        print '</div>';
+    }
+	
+
+    print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">';
+    print '<tr class="liste_titre">';
 	print_liste_field_titre($langs->trans('Ref'),$_SERVER["PHP_SELF"],'p.ref','',$param,'',$sortfield,$sortorder);
 	print_liste_field_titre($langs->trans('Company'),$_SERVER["PHP_SELF"],'s.nom','',$param,'',$sortfield,$sortorder);
 	print_liste_field_titre($langs->trans('AskPriceSupplierDate'),$_SERVER["PHP_SELF"],'p.date_livraison','',$param, 'align="center"',$sortfield,$sortorder);
diff --git a/htdocs/comm/list.php b/htdocs/comm/list.php
index fcc1783daf5fc493ce03e51c7bc7f9212bbef90c..1cc0f2fa9682be60e2b860734cdcc9c7edf8b80d 100644
--- a/htdocs/comm/list.php
+++ b/htdocs/comm/list.php
@@ -193,15 +193,18 @@ if ($result)
  	$moreforfilter='';
 	if (! empty($conf->categorie->enabled))
 	{
+	 	$moreforfilter.='<div class="divsearchfield">';
 	 	$moreforfilter.=$langs->trans('Categories'). ': ';
 		$moreforfilter.=$formother->select_categories(2,$search_categ,'search_categ',1);
-	 	$moreforfilter.=' &nbsp; &nbsp; &nbsp; ';
+	 	$moreforfilter.='</div>';
 	}
  	// If the user can view prospects other than his'
  	if ($user->rights->societe->client->voir || $socid)
  	{
+	 	$moreforfilter.='<div class="divsearchfield">';
 	 	$moreforfilter.=$langs->trans('SalesRepresentatives'). ': ';
 		$moreforfilter.=$formother->select_salesrepresentatives($search_sale,'search_sale',$user);
+		$moreforfilter.='</div>';
  	}
  	if ($moreforfilter)
 	{
@@ -213,7 +216,7 @@ if ($result)
 	    print '</div>';
 	}
 
-	print '<table class="liste">'."\n";
+    print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">';
 
 	print '<tr class="liste_titre">';
 	print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","",$param,"",$sortfield,$sortorder);
diff --git a/htdocs/comm/propal/list.php b/htdocs/comm/propal/list.php
index f595ad8aec0d4b2341804a997e065953c1e01775..7d1539ff0f52dd53fe6f60c271a66f867fb5f445 100644
--- a/htdocs/comm/propal/list.php
+++ b/htdocs/comm/propal/list.php
@@ -265,7 +265,6 @@ if ($result)
 	if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
 
 	$i = 0;
-	print '<table class="liste" width="100%">';
 
 	$moreforfilter='';
 
@@ -298,12 +297,13 @@ if ($result)
 	}
 	if (! empty($moreforfilter))
 	{
-	    print '<tr class="liste_titre">';
-	    print '<td class="liste_titre" colspan="10">';
+        print '<div class="liste_titre liste_titre_bydiv centpercent">';
 	    print $moreforfilter;
-	    print '</td></tr>';
+	    print '</div>';
 	}
 
+	print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">';
+	
 	print '<tr class="liste_titre">';
 	print_liste_field_titre($langs->trans('Ref'),$_SERVER["PHP_SELF"],'p.ref','',$param,'',$sortfield,$sortorder);
 	print_liste_field_titre($langs->trans('RefCustomer'),$_SERVER["PHP_SELF"],'p.ref_client','',$param,'',$sortfield,$sortorder);
diff --git a/htdocs/comm/propal/stats/index.php b/htdocs/comm/propal/stats/index.php
index e99c7122a10dc2a867b7045ab3e4fe5b330eae19..5b45020b7e1a45db4a852ee0a56ab4d6067f5778 100644
--- a/htdocs/comm/propal/stats/index.php
+++ b/htdocs/comm/propal/stats/index.php
@@ -234,7 +234,7 @@ print '<div class="fichecenter"><div class="fichethirdleft">';
 	// Show filter box
 	print '<form name="stats" method="POST" action="'.$_SERVER["PHP_SELF"].'">';
 	print '<input type="hidden" name="mode" value="'.$mode.'">';
-	print '<table class="border" width="100%">';
+	print '<table class="noborder" width="100%">';
 	print '<tr class="liste_titre"><td class="liste_titre" colspan="2">'.$langs->trans("Filter").'</td></tr>';
 	// Company
 	print '<tr><td align="left">'.$langs->trans("ThirdParty").'</td><td align="left">';
@@ -262,8 +262,8 @@ print '<div class="fichecenter"><div class="fichethirdleft">';
 	print '<br><br>';
 //}
 
-print '<table class="border" width="100%">';
-print '<tr height="24">';
+print '<table class="noborder" width="100%">';
+print '<tr class="liste_titre" height="24">';
 print '<td align="center">'.$langs->trans("Year").'</td>';
 print '<td align="center">'.$langs->trans("NbOfProposals").'</td>';
 print '<td align="center">%</td>';
@@ -274,13 +274,15 @@ print '<td align="center">%</td>';
 print '</tr>';
 
 $oldyear=0;
+$var=true;
 foreach ($data as $val)
 {
     $year = $val['year'];
     while (! empty($year) && $oldyear > $year+1)
     {	// If we have empty year
         $oldyear--;
-        print '<tr height="24">';
+        $var=!$var;
+        print '<tr '.$bc[$var].' height="24">';
         print '<td align="center"><a href="'.$_SERVER["PHP_SELF"].'?year='.$oldyear.'&amp;mode='.$mode.($socid>0?'&socid='.$socid:'').($userid>0?'&userid='.$userid:'').'">'.$oldyear.'</a></td>';
         print '<td align="right">0</td>';
         print '<td align="right"></td>';
@@ -290,7 +292,7 @@ foreach ($data as $val)
         print '<td align="right"></td>';
         print '</tr>';
     }
-    print '<tr height="24">';
+    print '<tr '.$bc[$var].' height="24">';
     print '<td align="center"><a href="'.$_SERVER["PHP_SELF"].'?year='.$year.($socid>0?'&socid='.$socid:'').($userid>0?'&userid='.$userid:'').'">'.$year.'</a></td>';
     print '<td align="right">'.$val['nb'].'</td>';
 	print '<td align="right" style="'.(($val['nb_diff'] >= 0) ? 'color: green;':'color: red;').'">'.round($val['nb_diff']).'</td>';
diff --git a/htdocs/comm/prospect/list.php b/htdocs/comm/prospect/list.php
index 670d170de9787ae22b757e2be4c345906bc76433..2282b39420e21664b17a7db66a6d99f7b5f2e8c5 100644
--- a/htdocs/comm/prospect/list.php
+++ b/htdocs/comm/prospect/list.php
@@ -359,15 +359,18 @@ if ($resql)
 	if (! empty($conf->categorie->enabled))
 	{
 		require_once DOL_DOCUMENT_ROOT . '/categories/class/categorie.class.php';
+		$moreforfilter.='<div class="divsearchfield">';
 	 	$moreforfilter.=$langs->trans('Categories'). ': ';
 		$moreforfilter.=$formother->select_categories(Categorie::TYPE_CUSTOMER,$search_categ,'search_categ',1);
-	 	$moreforfilter.=' &nbsp; &nbsp; &nbsp; ';
+	 	$moreforfilter.='</div>';
 	}
  	// If the user can view prospects other than his'
  	if ($user->rights->societe->client->voir || $socid)
  	{
+	 	$moreforfilter.='<div class="divsearchfield">';
 	 	$moreforfilter.=$langs->trans('SalesRepresentatives'). ': ';
 		$moreforfilter.=$formother->select_salesrepresentatives($search_sale,'search_sale',$user);
+		$moreforfilter.='</div>';
  	}
  	if ($moreforfilter)
 	{
@@ -379,7 +382,7 @@ if ($resql)
 	    print '</div>';
 	}
 
-	print '<table class="liste">';
+    print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">';
 
 	print '<tr class="liste_titre">';
 	print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","",$param,'',$sortfield,$sortorder);
diff --git a/htdocs/commande/list.php b/htdocs/commande/list.php
index c4ea9cbf83841a50c537ac3bebefee74267cadb4..29d58eaf46759b7d68e2934fc7f0b5d38ab762c6 100644
--- a/htdocs/commande/list.php
+++ b/htdocs/commande/list.php
@@ -273,15 +273,15 @@ if ($resql)
 		$moreforfilter.=$formother->select_salesrepresentatives($search_sale, 'search_sale', $user, 0, 1, 'maxwidth300');
 	 	$moreforfilter.='</div>';
  	}
-	// If the user can view prospects other than his'
-	if ($user->rights->societe->client->voir || $socid)
+	// If the user can view other users
+	if ($user->rights->user->user->lire)
 	{
 		$moreforfilter.='<div class="divsearchfield">';
 		$moreforfilter.=$langs->trans('LinkedToSpecificUsers'). ': ';
 	    $moreforfilter.=$form->select_dolusers($search_user, 'search_user', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
 	 	$moreforfilter.='</div>';
 	}
-	// If the user can view prospects other than his'
+	// If the user can view categories or products
 	if ($conf->categorie->enabled && $user->rights->produit->lire)
 	{
 		include_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
@@ -301,7 +301,7 @@ if ($resql)
     	print '</div>';
 	}
 
-	print '<table class="liste">';
+    print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">';
 	print '<tr class="liste_titre">';
 	print_liste_field_titre($langs->trans('Ref'),$_SERVER["PHP_SELF"],'c.ref','',$param,'width="25%"',$sortfield,$sortorder);
 	print_liste_field_titre($langs->trans('RefCustomerOrder'),$_SERVER["PHP_SELF"],'c.ref_client','',$param,'',$sortfield,$sortorder);
diff --git a/htdocs/commande/stats/index.php b/htdocs/commande/stats/index.php
index c4d48d8f72e05a407446e1dbb0529a3bc4833b59..04cfad1732df6826764710216e3363083e89310d 100644
--- a/htdocs/commande/stats/index.php
+++ b/htdocs/commande/stats/index.php
@@ -250,7 +250,7 @@ print '<div class="fichecenter"><div class="fichethirdleft">';
 	// Show filter box
 	print '<form name="stats" method="POST" action="'.$_SERVER["PHP_SELF"].'">';
 	print '<input type="hidden" name="mode" value="'.$mode.'">';
-	print '<table class="border" width="100%">';
+	print '<table class="noborder" width="100%">';
 	print '<tr class="liste_titre"><td class="liste_titre" colspan="2">'.$langs->trans("Filter").'</td></tr>';
 	// Company
 	print '<tr><td align="left">'.$langs->trans("ThirdParty").'</td><td align="left">';
@@ -275,8 +275,8 @@ print '<div class="fichecenter"><div class="fichethirdleft">';
 	print '<br><br>';
 //}
 
-print '<table class="border" width="100%">';
-print '<tr height="24">';
+print '<table class="noborder" width="100%">';
+print '<tr class="liste_titre" height="24">';
 print '<td align="center">'.$langs->trans("Year").'</td>';
 print '<td align="center">'.$langs->trans("NbOfOrders").'</td>';
 print '<td align="center">%</td>';
@@ -287,13 +287,15 @@ print '<td align="center">%</td>';
 print '</tr>';
 
 $oldyear=0;
+$var=true;
 foreach ($data as $val)
 {
 	$year = $val['year'];
 	while (! empty($year) && $oldyear > $year+1)
 	{ // If we have empty year
 		$oldyear--;
-		print '<tr height="24">';
+		$var=!$var;
+		print '<tr '.$bc[$var].' height="24">';
 		print '<td align="center"><a href="'.$_SERVER["PHP_SELF"].'?year='.$oldyear.'&amp;mode='.$mode.($socid>0?'&socid='.$socid:'').($userid>0?'&userid='.$userid:'').'">'.$oldyear.'</a></td>';
 
 		print '<td align="right">0</td>';
@@ -305,7 +307,8 @@ foreach ($data as $val)
 		print '</tr>';
 	}
 
-	print '<tr height="24">';
+	$var=!$var;
+	print '<tr '.$bc[$var].' height="24">';
 	print '<td align="center"><a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'&amp;mode='.$mode.($socid>0?'&socid='.$socid:'').($userid>0?'&userid='.$userid:'').'">'.$year.'</a></td>';
 	print '<td align="right">'.$val['nb'].'</td>';
 	print '<td align="right" style="'.(($val['nb_diff'] >= 0) ? 'color: green;':'color: red;').'">'.round($val['nb_diff']).'</td>';
diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php
index 5c19e054fd092e4b812cc726d01b1d0f2f9c29c4..c736d4cd0032ebf057b11a5b40b44a65f878a9e5 100644
--- a/htdocs/compta/facture.php
+++ b/htdocs/compta/facture.php
@@ -2973,16 +2973,16 @@ else if ($id > 0 || ! empty($ref))
 
 	print '<td rowspan="' . $nbrows . '" colspan="2" valign="top">';
 
-	print '<table class="nobordernopadding" width="100%">';
+	print '<table class="nobordernopadding paymenttable" width="100%">';
 
 	// List of payments already done
 	print '<tr class="liste_titre">';
-	print '<td>' . ($object->type == Facture::TYPE_CREDIT_NOTE ? $langs->trans("PaymentsBack") : $langs->trans('Payments')) . '</td>';
-	print '<td>' . $langs->trans('Type') . '</td>';
+	print '<td class="liste_titre">' . ($object->type == Facture::TYPE_CREDIT_NOTE ? $langs->trans("PaymentsBack") : $langs->trans('Payments')) . '</td>';
+	print '<td class="liste_titre">' . $langs->trans('Type') . '</td>';
 	if (! empty($conf->banque->enabled))
-		print '<td align="right">' . $langs->trans('BankAccount') . '</td>';
-	print '<td align="right">' . $langs->trans('Amount') . '</td>';
-	print '<td width="18">&nbsp;</td>';
+		print '<td class="liste_titre" align="right">' . $langs->trans('BankAccount') . '</td>';
+	print '<td class="liste_titre" align="right">' . $langs->trans('Amount') . '</td>';
+	print '<td class="liste_titre" width="18">&nbsp;</td>';
 	print '</tr>';
 
 	$var = true;
@@ -3033,7 +3033,7 @@ else if ($id > 0 || ! empty($ref))
 				$i ++;
 			}
 		} else {
-			print '<tr ' . $bc [$var] . '><td colspan="' . $nbcols . '">' . $langs->trans("None") . '</td><td></td><td></td></tr>';
+			print '<tr ' . $bc[false] . '><td colspan="' . $nbcols . '">' . $langs->trans("None") . '</td><td></td><td></td></tr>';
 		}
 		// }
 		$db->free($result);
diff --git a/htdocs/compta/facture/list.php b/htdocs/compta/facture/list.php
index b507f5284dde7624536500229437d4e0a128853b..e4993eacb888e71399f6c1fd58081f1d0aa51d20 100644
--- a/htdocs/compta/facture/list.php
+++ b/htdocs/compta/facture/list.php
@@ -275,7 +275,6 @@ if ($resql)
 
     $i = 0;
     print '<form method="GET" action="'.$_SERVER["PHP_SELF"].'">'."\n";
-    print '<table class="liste" width="100%">';
 
  	// If the user can view prospects other than his'
     $moreforfilter='';
@@ -308,12 +307,16 @@ if ($resql)
 
     if ($moreforfilter)
     {
-        print '<tr class="liste_titre">';
-        print '<td class="liste_titre" colspan="11">';
+   		print '<div class="liste_titre liste_titre_bydiv centpercent">';
         print $moreforfilter;
-        print '</td></tr>';
+    	$parameters=array();
+    	$reshook=$hookmanager->executeHooks('printFieldPreListTitle',$parameters);    // Note that $action and $object may have been modified by hook
+	    print $hookmanager->resPrint;
+        print '</div>';
     }
 
+    print '<table class="liste '.($moreforfilter?"listwithfilterbefore":"").'">';
+    		
     print '<tr class="liste_titre">';
     print_liste_field_titre($langs->trans('Ref'),$_SERVER['PHP_SELF'],'f.facnumber','',$param,'',$sortfield,$sortorder);
 	print_liste_field_titre($langs->trans('RefCustomer'),$_SERVER["PHP_SELF"],'f.ref_client','',$param,'',$sortfield,$sortorder);
diff --git a/htdocs/compta/facture/mergepdftool.php b/htdocs/compta/facture/mergepdftool.php
index 72276b7706926717f7521a9a4803954c6f84be8a..b78b31d1a02f6136ac027e4c80a1400617cb5275 100644
--- a/htdocs/compta/facture/mergepdftool.php
+++ b/htdocs/compta/facture/mergepdftool.php
@@ -616,32 +616,38 @@ if ($resql)
 	}
 
 	$i = 0;
-	print '<table class="liste" width="100%">';
 
  	// If the user can view prospects other than his'
     $moreforfilter='';
  	if ($user->rights->societe->client->voir || $socid)
  	{
  		$langs->load("commercial");
+ 		$moreforfilter.='<div class="divsearchfield">';
  		$moreforfilter.=$langs->trans('ThirdPartiesOfSaleRepresentative'). ': ';
 		$moreforfilter.=$formother->select_salesrepresentatives($search_sale,'search_sale',$user);
-	 	$moreforfilter.=' &nbsp; &nbsp; &nbsp; ';
+	 	$moreforfilter.='</div>';
  	}
     // If the user can view prospects other than his'
     if ($user->rights->societe->client->voir || $socid)
     {
+        $moreforfilter.='<div class="divsearchfield">';
         $moreforfilter.=$langs->trans('LinkedToSpecificUsers'). ': ';
         $moreforfilter.=$form->select_dolusers($search_user,'search_user',1);
+        $moreforfilter.='</div>';
     }
-    if ($moreforfilter)
+    if (! empty($moreforfilter))
     {
-        print '<tr class="liste_titre">';
-        print '<td class="liste_titre" colspan="13">';
+        print '<div class="liste_titre liste_titre_bydiv centpercent">';
         print $moreforfilter;
-        print '</td></tr>';
+        $parameters=array();
+        $reshook=$hookmanager->executeHooks('printFieldPreListTitle',$parameters);    // Note that $action and $object may have been modified by hook
+        print $hookmanager->resPrint;
+        print '</div>';
     }
 
-	print '<tr class="liste_titre">';
+    print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">';
+    
+    print '<tr class="liste_titre">';
 	print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"f.facnumber","",$param,"",$sortfield,$sortorder);
     print_liste_field_titre($langs->trans('RefCustomer'),$_SERVER["PHP_SELF"],'f.ref_client','',$param,'',$sortfield,$sortorder);
 	print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"f.datef","",$param,'align="center"',$sortfield,$sortorder);
diff --git a/htdocs/compta/facture/stats/index.php b/htdocs/compta/facture/stats/index.php
index f61e92687f6816fb4c988d6068a42f5af25febaa..2b7e17d93696889a44e3138c94c8b62137ce735e 100644
--- a/htdocs/compta/facture/stats/index.php
+++ b/htdocs/compta/facture/stats/index.php
@@ -234,7 +234,7 @@ print '<div class="fichecenter"><div class="fichethirdleft">';
 	// Show filter box
 	print '<form name="stats" method="POST" action="'.$_SERVER["PHP_SELF"].'">';
 	print '<input type="hidden" name="mode" value="'.$mode.'">';
-	print '<table class="border" width="100%">';
+	print '<table class="noborder" width="100%">';
 	print '<tr class="liste_titre"><td class="liste_titre" colspan="2">'.$langs->trans("Filter").'</td></tr>';
 	// Company
 	print '<tr><td>'.$langs->trans("ThirdParty").'</td><td>';
@@ -259,8 +259,8 @@ print '<div class="fichecenter"><div class="fichethirdleft">';
 	print '<br><br>';
 //}
 
-print '<table class="border" width="100%">';
-print '<tr height="24">';
+print '<table class="noborder" width="100%">';
+print '<tr class="liste_titre" height="24">';
 print '<td align="center">'.$langs->trans("Year").'</td>';
 print '<td align="center">'.$langs->trans("NumberOfBills").'</td>';
 print '<td align="center">%</td>';
@@ -271,13 +271,15 @@ print '<td align="center">%</td>';
 print '</tr>';
 
 $oldyear=0;
+$var=true;
 foreach ($data as $val)
 {
 	$year = $val['year'];
 	while ($year && $oldyear > $year+1)
 	{	// If we have empty year
 		$oldyear--;
-		print '<tr height="24">';
+		$var=!$var;
+		print '<tr '.$bc[$var].' height="24">';
 		print '<td align="center"><a href="'.$_SERVER["PHP_SELF"].'?year='.$oldyear.'&amp;mode='.$mode.($socid>0?'&socid='.$socid:'').($userid>0?'&userid='.$userid:'').'">'.$oldyear.'</a></td>';
 		print '<td align="right">0</td>';
 		print '<td align="right"></td>';
@@ -287,7 +289,8 @@ foreach ($data as $val)
 		print '<td align="right"></td>';
 		print '</tr>';
 	}
-	print '<tr height="24">';
+	$var=!$var;
+	print '<tr '.$bc[$var].' height="24">';
 	print '<td align="center"><a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'&amp;mode='.$mode.($socid>0?'&socid='.$socid:'').($userid>0?'&userid='.$userid:'').'">'.$year.'</a></td>';
 	print '<td align="right">'.$val['nb'].'</td>';
 	print '<td align="right" style="'.(($val['nb_diff'] >= 0) ? 'color: green;':'color: red;').'">'.round($val['nb_diff']).'</td>';
diff --git a/htdocs/compta/paiement/cheque/list.php b/htdocs/compta/paiement/cheque/list.php
index d44aef51dcedadcc7fcd63c1ae4e3c5faa588ec4..c322863efc1ac2db0a21682380f069eb520eea48 100644
--- a/htdocs/compta/paiement/cheque/list.php
+++ b/htdocs/compta/paiement/cheque/list.php
@@ -117,7 +117,7 @@ if ($resql)
 	print_barre_liste($langs->trans("MenuChequeDeposits"), $page, $_SERVER["PHP_SELF"], $params, $sortfield, $sortorder, '', $num);
 
 	print '<form method="GET" action="'.$_SERVER["PHP_SELF"].'">';
-	print '<table class="liste" width="100%">';
+	print '<table class="liste">';
 	print '<tr class="liste_titre">';
 	print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"bc.number","",$params,"",$sortfield,$sortorder);
 	print_liste_field_titre($langs->trans("DateCreation"),$_SERVER["PHP_SELF"],"dp","",$params,'align="center"',$sortfield,$sortorder);
@@ -148,42 +148,52 @@ if ($resql)
 	print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
     print "</td></tr>\n";
 
-	$var=true;
-	while ($i < min($num,$limit))
-	{
-		$objp = $db->fetch_object($resql);
-		$var=!$var;
-		print "<tr ".$bc[$var].">";
-
-		// Num ref cheque
-		print '<td width="80">';
-		$checkdepositstatic->id=$objp->rowid;
-		$checkdepositstatic->ref=($objp->ref?$objp->ref:$objp->rowid);
-		$checkdepositstatic->statut=$objp->statut;
-		print $checkdepositstatic->getNomUrl(1);
-		print '</td>';
-
-		// Date
-		print '<td align="center">'.dol_print_date($db->jdate($objp->dp),'day').'</td>';  // TODO Use date hour
-
-		// Bank
-		print '<td>';
-		if ($objp->bid) print '<a href="'.DOL_URL_ROOT.'/compta/bank/account.php?account='.$objp->bid.'">'.img_object($langs->trans("ShowAccount"),'account').' '.$objp->label.'</a>';
-		else print '&nbsp;';
-		print '</td>';
-
-		// Number of cheques
-		print '<td align="right">'.$objp->nbcheque.'</td>';
-
-		// Amount
-		print '<td align="right">'.price($objp->amount).'</td>';
-
-		// Statut
-		print '<td align="right">';
-		print $checkdepositstatic->LibStatut($objp->statut,5);
-		print "</td></tr>\n";
-		$i++;
-	}
+    if ($num > 0)
+    {
+    	$var=true;
+    	while ($i < min($num,$limit))
+    	{
+    		$objp = $db->fetch_object($resql);
+    		$var=!$var;
+    		print "<tr ".$bc[$var].">";
+    
+    		// Num ref cheque
+    		print '<td width="80">';
+    		$checkdepositstatic->id=$objp->rowid;
+    		$checkdepositstatic->ref=($objp->ref?$objp->ref:$objp->rowid);
+    		$checkdepositstatic->statut=$objp->statut;
+    		print $checkdepositstatic->getNomUrl(1);
+    		print '</td>';
+    
+    		// Date
+    		print '<td align="center">'.dol_print_date($db->jdate($objp->dp),'day').'</td>';  // TODO Use date hour
+    
+    		// Bank
+    		print '<td>';
+    		if ($objp->bid) print '<a href="'.DOL_URL_ROOT.'/compta/bank/account.php?account='.$objp->bid.'">'.img_object($langs->trans("ShowAccount"),'account').' '.$objp->label.'</a>';
+    		else print '&nbsp;';
+    		print '</td>';
+    
+    		// Number of cheques
+    		print '<td align="right">'.$objp->nbcheque.'</td>';
+    
+    		// Amount
+    		print '<td align="right">'.price($objp->amount).'</td>';
+    
+    		// Statut
+    		print '<td align="right">';
+    		print $checkdepositstatic->LibStatut($objp->statut,5);
+    		print "</td></tr>\n";
+    		$i++;
+    	}
+    }
+    else
+    {
+   		$var=!$var;
+   		print "<tr ".$bc[$var].">";
+   		print '<td colspan="6">'.$langs->trans("None")."</td>";
+   		print '</tr>';
+    }
 	print "</table>";
 	print "</form>\n";
 }
@@ -192,6 +202,6 @@ else
 	dol_print_error($db);
 }
 
-$db->close();
 
 llxFooter();
+$db->close();
diff --git a/htdocs/compta/paiement/class/paiement.class.php b/htdocs/compta/paiement/class/paiement.class.php
index 45c9d0b526b3ba806a86c79d295d1db8658274f4..35d0f838ff957ca74982088d20e1b55cb70841b3 100644
--- a/htdocs/compta/paiement/class/paiement.class.php
+++ b/htdocs/compta/paiement/class/paiement.class.php
@@ -906,7 +906,7 @@ class Paiement extends CommonObject
 
         if ($withpicto) $result.=($link.img_object($langs->trans("ShowPayment"), 'payment', 'class="classfortooltip"').$linkend);
 		if ($withpicto && $withpicto != 2) $result.=' ';
-		if ($withpicto != 2) $result.=$link.$this->ref.$linkend;
+		if ($withpicto != 2) $result.=$link.($this->ref?$this->ref:$this->id).$linkend;
 		return $result;
 	}
 
diff --git a/htdocs/compta/paiement/list.php b/htdocs/compta/paiement/list.php
index 8231f607ef7a7459760e5c193bcadd444b70e1ce..6e3d31364ce9214376d25997893a91d51e6b45d2 100644
--- a/htdocs/compta/paiement/list.php
+++ b/htdocs/compta/paiement/list.php
@@ -305,6 +305,5 @@ else
     dol_print_error($db);
 }
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/compta/stats/cabyuser.php b/htdocs/compta/stats/cabyuser.php
index 385ac1f140c94cda64dbb3157381b58f715c2093..cb8151cf33c337912029d6eed20f6ebb37c21d00 100644
--- a/htdocs/compta/stats/cabyuser.php
+++ b/htdocs/compta/stats/cabyuser.php
@@ -280,7 +280,7 @@ if ($modecompta == 'CREANCES-DETTES') {
            $sortorder
 	   );
     } else {
-	print '<td colspan="1"></td>';
+	print_liste_field_titre('');
 }
 print_liste_field_titre(
 	$langs->trans("AmountTTC"),
diff --git a/htdocs/compta/stats/casoc.php b/htdocs/compta/stats/casoc.php
index 7b9cfdd791379566611276da215eb9f3a525dd36..dade07fd0e387d7cfe89fa740060602a22e10f70 100644
--- a/htdocs/compta/stats/casoc.php
+++ b/htdocs/compta/stats/casoc.php
@@ -350,7 +350,7 @@ if ($modecompta == 'CREANCES-DETTES') {
            $sortorder
 	);
     } else {
-	print '<td colspan="1"></td>';
+	print_liste_field_titre('');
 }
 print_liste_field_titre(
 	$langs->trans("AmountTTC"),
diff --git a/htdocs/contact/list.php b/htdocs/contact/list.php
index 649179c10826f5fb692dc2a06979a702e3c8ee18..4082ebbae8086c083013b56032117314c2a4ff18 100644
--- a/htdocs/contact/list.php
+++ b/htdocs/contact/list.php
@@ -288,9 +288,10 @@ if ($result)
     if (! empty($conf->categorie->enabled))
     {
 		require_once DOL_DOCUMENT_ROOT . '/categories/class/categorie.class.php';
-    	$moreforfilter.=$langs->trans('Categories'). ': ';
+        $moreforfilter.='<div class="divsearchfield">';
+		$moreforfilter.=$langs->trans('Categories'). ': ';
     	$moreforfilter.=$formother->select_categories(Categorie::TYPE_CONTACT,$search_categ,'search_categ',1);
-    	$moreforfilter.=' &nbsp; &nbsp; &nbsp; ';
+    	$moreforfilter.='</div>';
     }
     if ($moreforfilter)
     {
@@ -299,7 +300,7 @@ if ($result)
     	print '</div>';
     }
 
-    print '<table class="liste">';
+	print '<table class="liste '.($moreforfilter?"listwithfilterbefore":"").'">';
 
     // Ligne des titres
     print '<tr class="liste_titre">';
diff --git a/htdocs/contrat/card.php b/htdocs/contrat/card.php
index 5615eaf76a4da85d0582fba362b1d6e4c8454a5d..f7363984fb8f5494fa102550594bf8cf506fdfa9 100644
--- a/htdocs/contrat/card.php
+++ b/htdocs/contrat/card.php
@@ -1407,26 +1407,19 @@ else
                     print '<td align="right" class="nowrap">';
                     if ($user->rights->contrat->creer && count($arrayothercontracts) && ($object->statut >= 0))
                     {
-                        print '<a href="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'&amp;action=move&amp;rowid='.$objp->rowid.'">';
+                        print '<a style="padding-left: 5px;" href="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'&amp;action=move&amp;rowid='.$objp->rowid.'">';
                         print img_picto($langs->trans("MoveToAnotherContract"),'uparrow');
                         print '</a>';
                     }
-                    else {
-                        print '&nbsp;';
-                    }
                     if ($user->rights->contrat->creer && ($object->statut >= 0))
                     {
-                        print '<a href="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'&amp;action=editline&amp;rowid='.$objp->rowid.'">';
+                        print '<a style="padding-left: 5px;" href="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'&amp;action=editline&amp;rowid='.$objp->rowid.'">';
                         print img_edit();
                         print '</a>';
                     }
-                    else {
-                        print '&nbsp;';
-                    }
                     if ( $user->rights->contrat->creer && ($object->statut >= 0))
                     {
-                        print '&nbsp;';
-                        print '<a href="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'&amp;action=deleteline&amp;rowid='.$objp->rowid.'">';
+                        print '<a style="padding-left: 5px;" href="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'&amp;action=deleteline&amp;rowid='.$objp->rowid.'">';
                         print img_delete();
                         print '</a>';
                     }
diff --git a/htdocs/contrat/list.php b/htdocs/contrat/list.php
index 97d20e2acb18a4d3ca360c95f5613e09c9976a16..9619713859ae817c24a812128ab4adf2f6577f93 100644
--- a/htdocs/contrat/list.php
+++ b/htdocs/contrat/list.php
@@ -49,8 +49,10 @@ $search_ref_supplier=GETPOST('search_ref_supplier','alpha');
 $sall=GETPOST('sall');
 $search_status=GETPOST('search_status');
 $socid=GETPOST('socid');
+$search_user=GETPOST('search_user','int');
+$search_sale=GETPOST('search_sale','int');
+$search_product_category=GETPOST('search_product_category','int');
 
-$search_sale = GETPOST('search_sale','int');
 $optioncss = GETPOST('optioncss','alpha');
 
 if (! $sortfield) $sortfield="c.rowid";
@@ -69,7 +71,9 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both
 	$search_name="";
 	$search_contract="";
 	$search_ref_supplier="";
-	$search_sale="";
+    $search_user='';
+    $search_sale='';
+    $search_product_category='';
 	$sall="";
 	$search_status="";
 }
@@ -82,6 +86,7 @@ if ($search_status == '') $search_status=1;
  */
 
 $now=dol_now();
+$form=new Form($db);
 $formother = new FormOther($db);
 $socstatic = new Societe($db);
 
@@ -99,8 +104,15 @@ $sql.= " FROM ".MAIN_DB_PREFIX."societe as s";
 if ($search_sale > 0 || (! $user->rights->societe->client->voir && ! $socid)) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
 $sql.= ", ".MAIN_DB_PREFIX."contrat as c";
 $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."contratdet as cd ON c.rowid = cd.fk_contrat";
+if ($search_product_category > 0) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie_product as cp ON cp.fk_product=cd.fk_product';
+if ($search_user > 0)
+{
+    $sql.=", ".MAIN_DB_PREFIX."element_contact as ec";
+    $sql.=", ".MAIN_DB_PREFIX."c_type_contact as tc";
+}
 $sql.= " WHERE c.fk_soc = s.rowid ";
-$sql.= " AND c.entity = ".$conf->entity;
+$sql.= ' AND c.entity IN ('.getEntity('contract', 1).')';
+if ($search_product_category > 0) $sql.=" AND cp.fk_categorie = ".$search_product_category;
 if ($socid) $sql.= " AND s.rowid = ".$db->escape($socid);
 if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
 
@@ -122,6 +134,7 @@ if ($search_sale > 0)
 if ($sall) {
     $sql .= natural_search(array('s.nom', 'cd.label', 'cd.description'), $sall);
 }
+if ($search_user > 0) $sql.= " AND ec.fk_c_type_contact = tc.rowid AND tc.element='contrat' AND tc.source='internal' AND ec.element_id = c.rowid AND ec.fk_socpeople = ".$search_user;
 $sql.= " GROUP BY c.rowid, c.ref, c.datec, c.date_contrat, c.statut, c.ref_supplier, s.nom, s.rowid";
 $sql.= $db->order($sortfield,$sortorder);
 $sql.= $db->plimit($conf->liste_limit + 1, $offset);
@@ -136,26 +149,47 @@ if ($resql)
 
     print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">';
     if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
-    print '<table class="liste" width="100%">';
 
     // If the user can view prospects other than his'
     $moreforfilter='';
     if ($user->rights->societe->client->voir || $socid)
     {
     	$langs->load("commercial");
+    	$moreforfilter.='<div class="divsearchfield">';
     	$moreforfilter.=$langs->trans('ThirdPartiesOfSaleRepresentative'). ': ';
     	$moreforfilter.=$formother->select_salesrepresentatives($search_sale,'search_sale',$user);
-    	$moreforfilter.=' &nbsp; &nbsp; &nbsp; ';
+    	$moreforfilter.='</div>';
     }
-
-    if ($moreforfilter)
+	// If the user can view other users
+	if ($user->rights->user->user->lire)
+	{
+		$moreforfilter.='<div class="divsearchfield">';
+		$moreforfilter.=$langs->trans('LinkedToSpecificUsers'). ': ';
+	    $moreforfilter.=$form->select_dolusers($search_user, 'search_user', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
+	 	$moreforfilter.='</div>';
+	}
+	// If the user can view categories of products
+	if ($conf->categorie->enabled && $user->rights->produit->lire)
+	{
+		include_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
+		$moreforfilter.='<div class="divsearchfield">';
+		$moreforfilter.=$langs->trans('IncludingProductWithTag'). ': ';
+		$cate_arbo = $form->select_all_categories(Categorie::TYPE_PRODUCT, null, 'parent', null, null, 1);
+		$moreforfilter.=$form->selectarray('search_product_category', $cate_arbo, $search_product_category, 1, 0, 0, '', 0, 0, 0, 0, '', 1);
+		$moreforfilter.='</div>';
+	}
+    
+    if (! empty($moreforfilter))
     {
-    	print '<tr class="liste_titre">';
-    	print '<td class="liste_titre" colspan="9">';
-    	print $moreforfilter;
-    	print '</td></tr>';
+        print '<div class="liste_titre liste_titre_bydiv centpercent">';
+        print $moreforfilter;
+        $parameters=array();
+        $reshook=$hookmanager->executeHooks('printFieldPreListTitle',$parameters);    // Note that $action and $object may have been modified by hook
+        print $hookmanager->resPrint;
+        print '</div>';
     }
 
+    print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">';
     print '<tr class="liste_titre">';
 
     $param='&search_contract='.$search_contract;
@@ -171,10 +205,11 @@ if ($resql)
     //print_liste_field_titre($langs->trans("DateCreation"), $_SERVER["PHP_SELF"], "c.datec","","$param",'align="center"',$sortfield,$sortorder);
     print_liste_field_titre($langs->trans("DateContract"), $_SERVER["PHP_SELF"], "c.date_contrat","","$param",'align="center"',$sortfield,$sortorder);
     //print_liste_field_titre($langs->trans("Status"), $_SERVER["PHP_SELF"], "c.statut","","$param",'align="center"',$sortfield,$sortorder);
-    print '<td class="liste_titre" width="16">'.$staticcontratligne->LibStatut(0,3).'</td>';
-    print '<td class="liste_titre" width="16">'.$staticcontratligne->LibStatut(4,3,0).'</td>';
-    print '<td class="liste_titre" width="16">'.$staticcontratligne->LibStatut(4,3,1).'</td>';
-    print '<td class="liste_titre" width="16">'.$staticcontratligne->LibStatut(5,3).'</td>';
+    print_liste_field_titre($staticcontratligne->LibStatut(0,3), '', '', '', '', 'width="16"');
+    print_liste_field_titre($staticcontratligne->LibStatut(4,3,0), '', '', '', '', 'width="16"');
+    print_liste_field_titre($staticcontratligne->LibStatut(4,3,1), '', '', '', '', 'width="16"');
+    print_liste_field_titre($staticcontratligne->LibStatut(5,3), '', '', '', '', 'width="16"');
+    print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'','','',$sortfield,$sortorder,'maxwidthsearch ');
     print "</tr>\n";
 
     print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
@@ -190,7 +225,8 @@ if ($resql)
     print '</td>';
     print '<td class="liste_titre">&nbsp;</td>';
     //print '<td class="liste_titre">&nbsp;</td>';
-    print '<td colspan="5" class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
+    print '<td class="liste_titre" colspan="5"></td>';
+    print '<td class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
 	print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
     print "</td></tr>\n";
 
@@ -250,6 +286,7 @@ if ($resql)
         print '<td align="center">'.($obj->nb_running>0?$obj->nb_running:'').'</td>';
         print '<td align="center">'.($obj->nb_expired>0?$obj->nb_expired:'').'</td>';
         print '<td align="center">'.($obj->nb_closed>0 ?$obj->nb_closed:'').'</td>';
+        print '<td></td>';
         print "</tr>\n";
         $i++;
     }
diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php
index 8cc9eaa09a0b503968cb35ac3cc62c437413c428..4aea23291c2bf2e5c75fd29bd60ac14293f1770b 100644
--- a/htdocs/core/class/html.form.class.php
+++ b/htdocs/core/class/html.form.class.php
@@ -4591,34 +4591,36 @@ class Form
     {
     	global $conf, $langs;
 
+    	$out = '';
+    	
     	// Add code for jquery to use multiselect
     	if (! empty($conf->global->MAIN_USE_JQUERY_MULTISELECT) || defined('REQUIRE_JQUERY_MULTISELECT'))
     	{
     		$tmpplugin=empty($conf->global->MAIN_USE_JQUERY_MULTISELECT)?constant('REQUIRE_JQUERY_MULTISELECT'):$conf->global->MAIN_USE_JQUERY_MULTISELECT;
-   			print '<!-- JS CODE TO ENABLE '.$tmpplugin.' for id '.$htmlname.' -->
+   			$out.='<!-- JS CODE TO ENABLE '.$tmpplugin.' for id '.$htmlname.' -->
     			<script type="text/javascript">
 	    			function formatResult(record) {'."\n";
 						if ($elemtype == 'category')
 						{
-							print '	//return \'<span><img src="'.DOL_URL_ROOT.'/theme/eldy/img/object_category.png'.'"> <a href="'.DOL_URL_ROOT.'/categories/viewcat.php?type=0&id=\'+record.id+\'">\'+record.text+\'</a></span>\';
+							$out.='	//return \'<span><img src="'.DOL_URL_ROOT.'/theme/eldy/img/object_category.png'.'"> <a href="'.DOL_URL_ROOT.'/categories/viewcat.php?type=0&id=\'+record.id+\'">\'+record.text+\'</a></span>\';
 								  	return \'<span><img src="'.DOL_URL_ROOT.'/theme/eldy/img/object_category.png'.'"> \'+record.text+\'</span>\';';
 						}
 						else
 						{
-							print 'return record.text;';
+							$out.='return record.text;';
 						}
-			print '	};
+			$out.= '	};
     				function formatSelection(record) {'."\n";
 						if ($elemtype == 'category')
 						{
-							print '	//return \'<span><img src="'.DOL_URL_ROOT.'/theme/eldy/img/object_category.png'.'"> <a href="'.DOL_URL_ROOT.'/categories/viewcat.php?type=0&id=\'+record.id+\'">\'+record.text+\'</a></span>\';
+							$out.='	//return \'<span><img src="'.DOL_URL_ROOT.'/theme/eldy/img/object_category.png'.'"> <a href="'.DOL_URL_ROOT.'/categories/viewcat.php?type=0&id=\'+record.id+\'">\'+record.text+\'</a></span>\';
 								  	return \'<span><img src="'.DOL_URL_ROOT.'/theme/eldy/img/object_category.png'.'"> \'+record.text+\'</span>\';';
 						}
 						else
 						{
-							print 'return record.text;';
+							$out.='return record.text;';
 						}
-			print '	};
+			$out.= '	};
 	    			$(document).ready(function () {
     					$(\'#'.$htmlname.'\').'.$tmpplugin.'({
     						dir: \'ltr\',
@@ -4636,7 +4638,7 @@ class Form
     	// Try also magic suggest
 
     	// Add data-role="none" to disable jmobile decoration
-		$out = '<select data-role="none" id="'.$htmlname.'" class="multiselect'.($morecss?' '.$morecss:'').'" multiple name="'.$htmlname.'[]"'.($moreattrib?' '.$moreattrib:'').($width?' style="width: '.(preg_match('/%/',$width)?$width:$width.'px').'"':'').'>'."\n";
+		$out .= '<select data-role="none" id="'.$htmlname.'" class="multiselect'.($morecss?' '.$morecss:'').'" multiple name="'.$htmlname.'[]"'.($moreattrib?' '.$moreattrib:'').($width?' style="width: '.(preg_match('/%/',$width)?$width:$width.'px').'"':'').'>'."\n";
     	if (is_array($array) && ! empty($array))
     	{
     		if ($value_as_key) $array=array_combine($array, $array);
@@ -4665,6 +4667,84 @@ class Form
     }
 
 
+    /**
+     *	Show a multiselect form from an array.
+     *
+     *	@param	string	$htmlname		Name of select
+     *	@param	array	$array			Array with array to show
+     *	@return	string					HTML multiselect string
+     *  @see selectarray
+     */
+    static function multiSelectArrayWithCheckbox($htmlname, $array)
+    {
+        $lis='';
+        $liststring='';
+        
+        foreach($array as $key => $val)
+        {
+           if (isset($val['cond']) && ! $val['cond']) continue; 
+	       if ($val['label']) 
+	       {
+	           $lis.='<li><input type="checkbox" value="'.$key.'"'.($val['checked']?' checked="checked"':'').'/>'.dol_escape_htmltag($val['label']).'</li>';
+	           $liststring.=$key.',';
+	       }
+        }
+        
+        
+        $out ='<!-- Component multiSelectArrayWithCheckbox '.$htmlname.' --> 
+            
+            <dl class="dropdown"> 
+          
+            <dt>
+            <a href="#">
+              '.img_picto('','list').'    
+              <input type="hidden" class="'.$htmlname.'" name="'.$htmlname.'" value="'.$liststring.'">
+            </a>
+            </dt>
+          
+            <dd>
+                <div class="multiselectcheckbox'.$htmlname.'">
+                    <ul>
+                    '.$lis.'
+                    </ul>
+                </div>
+            </dd>
+        </dl>
+            
+        <script type="text/javascript">
+          $(".dropdown dt a").on(\'click\', function () {
+              $(".dropdown dd ul").slideToggle(\'fast\');
+          });
+    
+          $(".dropdown dd ul li a").on(\'click\', function () {
+              $(".dropdown dd ul").hide();
+          });
+    
+          function getSelectedValue(id) {
+               return $("#" + id).find("dt a span.value").html();
+          }
+    
+          $(document).bind(\'click\', function (e) {
+              var $clicked = $(e.target);
+              if (!$clicked.parents().hasClass("dropdown")) $(".dropdown dd ul").hide();
+          });
+    
+          $(\'.multiselectcheckbox'.$htmlname.' input[type="checkbox"]\').on(\'click\', function () {
+            
+              var title = $(this).val() + ",";
+            
+              if ($(this).is(\':checked\')) {
+                  $(\'.'.$htmlname.'\').val(title + $(\'.'.$htmlname.'\').val());
+              } 
+              else {
+                  $(\'.'.$htmlname.'\').val( $(\'.'.$htmlname.'\').val().replace(title, \'\') )
+              }
+          });        
+        </script>            
+            
+        ';
+        return $out;
+    }
 
 	/**
 	 * 	Render list of categories linked to object with id $id and type $type
@@ -5202,8 +5282,8 @@ class Form
             }
             else
 			{
-				$nophoto='/public/theme/common/nophoto.jpg';
-				if (in_array($modulepart,array('userphoto','contact')))	// For module that are "physical" users
+				$nophoto='/public/theme/common/nophoto.png';
+				if (in_array($modulepart,array('userphoto','contact')))	// For module thar are "physical" users
 				{
 					$nophoto='/public/theme/common/user_anonymous.png';
 					if ($object->gender == 'man') $nophoto='/public/theme/common/user_man.png';
diff --git a/htdocs/core/lib/company.lib.php b/htdocs/core/lib/company.lib.php
index aba1876577750c18b364e15b71a495f1260bc2b2..d7fbaedfebade00789f9810f87045ef48d673813 100644
--- a/htdocs/core/lib/company.lib.php
+++ b/htdocs/core/lib/company.lib.php
@@ -632,40 +632,6 @@ function show_contacts($conf,$langs,$db,$object,$backtopage='')
 	print "</tr>\n";
 
 
-    print '<tr class="liste_titre">';
-    // Name - Position
-    print '<td class="liste_titre">';
-    print '<input type="text" class="flat" name="search_name" size="20" value="'.$search_name.'">';
-    print '</td>';
-
-    // Address / Phone
-    print '<td>';
-    //print '<input type="text" class="flat" name="search_addressphone" size="20" value="'.$search_addressphone.'">';
-    print '</td>';
-
-    // Email
-    print '<td>&nbsp;</td>';
-
-    // Status
-    print '<td class="liste_titre maxwidthonsmartphone">';
-    print $form->selectarray('search_status', array('-1'=>'','0'=>$contactstatic->LibStatut(0,1),'1'=>$contactstatic->LibStatut(1,1)),$search_status);
-    print '</td>';
-
-    // Add to agenda
-    if (! empty($conf->agenda->enabled) && $user->rights->agenda->myactions->create)
-    {
-    	$colspan++;
-        print '<td>&nbsp;</td>';
-    }
-
-	// Edit
-    print '<td class="liste_titre" align="right">';
-    print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
-    print '</td>';
-
-    print "</tr>";
-
-
     $sql = "SELECT p.rowid, p.lastname, p.firstname, p.fk_pays as country_id, p.civility, p.poste, p.phone as phone_pro, p.phone_mobile, p.phone_perso, p.fax, p.email, p.skype, p.statut ";
     $sql .= ", p.civility as civility_id, p.address, p.zip, p.town";
     $sql .= " FROM ".MAIN_DB_PREFIX."socpeople as p";
@@ -683,6 +649,39 @@ function show_contacts($conf,$langs,$db,$object,$backtopage='')
 	$var=true;
 	if ($num)
     {
+        print '<tr class="liste_titre">';
+        // Name - Position
+        print '<td class="liste_titre">';
+        print '<input type="text" class="flat" name="search_name" size="20" value="'.$search_name.'">';
+        print '</td>';
+    
+        // Address / Phone
+        print '<td>';
+        //print '<input type="text" class="flat" name="search_addressphone" size="20" value="'.$search_addressphone.'">';
+        print '</td>';
+    
+        // Email
+        print '<td>&nbsp;</td>';
+    
+        // Status
+        print '<td class="liste_titre maxwidthonsmartphone">';
+        print $form->selectarray('search_status', array('-1'=>'','0'=>$contactstatic->LibStatut(0,1),'1'=>$contactstatic->LibStatut(1,1)),$search_status);
+        print '</td>';
+    
+        // Add to agenda
+        if (! empty($conf->agenda->enabled) && $user->rights->agenda->myactions->create)
+        {
+        	$colspan++;
+            print '<td>&nbsp;</td>';
+        }
+    
+    	// Edit
+        print '<td class="liste_titre" align="right">';
+        print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
+        print '</td>';
+    
+        print "</tr>";
+    
         $i=0;
 
         while ($i < $num)
diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php
index 443749dd271c2806292805e4808106dbc654d500..7f4a1b8d8559aa3a871f263321e6c352561aeb0f 100644
--- a/htdocs/core/lib/functions.lib.php
+++ b/htdocs/core/lib/functions.lib.php
@@ -915,7 +915,7 @@ function dol_format_address($object,$withcountry=0,$sep="\n",$outputlangs='')
 	else if (in_array($object->country_code,array('ES','TR'))) // ES: title firstname name \n address lines \n zip town \n state \n country
 	{
 		$ret .= ($ret ? $sep : '' ).$object->zip;
-		$ret .= ($object->town?' '.$object->town:'');
+		$ret .= ($object->town?(($object->zip?' ':'').$object->town):'');
 		if ($object->state && in_array($object->country_code,$countriesusingstate))
 		{
 			$ret.="\n".$object->state;
@@ -925,10 +925,10 @@ function dol_format_address($object,$withcountry=0,$sep="\n",$outputlangs='')
 	else                                        		// Other: title firstname name \n address lines \n zip town \n country
 	{
 		$ret .= ($ret ? $sep : '' ).$object->zip;
-		$ret .= ($object->town?' '.$object->town:'');
+		$ret .= ($object->town?(($object->zip?' ':'').$object->town):'');
 		if ($object->state && in_array($object->country_code,$countriesusingstate))
 		{
-			$ret.=", ".$object->state;
+			$ret.=($ret?", ":'').$object->state;
 		}
 	}
 	if (! is_object($outputlangs)) $outputlangs=$langs;
@@ -2680,7 +2680,8 @@ function getTitleFieldOfList($name, $thead=0, $file="", $field="", $begin="", $m
 
 	$sortorder=strtoupper($sortorder);
 	$out='';
-
+    $sortimg='';
+    
 	$tag='th';
 	if ($thead==2) $tag='div';
 
@@ -2689,25 +2690,33 @@ function getTitleFieldOfList($name, $thead=0, $file="", $field="", $begin="", $m
 	if ($field && ($sortfield == $field || $sortfield == preg_replace("/^[^\.]+\./","",$field))) $out.= '<'.$tag.' class="'.$prefix.'liste_titre_sel" '. $moreattrib.'>';
 	else $out.= '<'.$tag.' class="'.$prefix.'liste_titre" '. $moreattrib.'>';
 
-	if (! empty($conf->dol_optimize_smallscreen) && empty($thead) && $field)    // If this is a sort field
+	if (empty($thead) && $field)    // If this is a sort field
 	{
 		$options=preg_replace('/sortfield=([a-zA-Z0-9,\s\.]+)/i','',$moreparam);
 		$options=preg_replace('/sortorder=([a-zA-Z0-9,\s\.]+)/i','',$options);
 		$options=preg_replace('/&+/i','&',$options);
 		if (! preg_match('/^&/',$options)) $options='&'.$options;
 
-		if ($sortorder == 'DESC' ) 	$out.= '<a href="'.$file.'?sortfield='.$field.'&sortorder=asc&begin='.$begin.$options.'">';
-		if ($sortorder == 'ASC' ) 	$out.= '<a href="'.$file.'?sortfield='.$field.'&sortorder=desc&begin='.$begin.$options.'">';
+		if ($field != $sortfield)
+		{
+            if ($sortorder == 'DESC') $out.= '<a href="'.$file.'?sortfield='.$field.'&sortorder=desc&begin='.$begin.$options.'">';
+            if ($sortorder == 'ASC' || ! $sortorder) $out.= '<a href="'.$file.'?sortfield='.$field.'&sortorder=asc&begin='.$begin.$options.'">';
+		}
+		else
+		{
+            if ($sortorder == 'DESC' || ! $sortorder) $out.= '<a href="'.$file.'?sortfield='.$field.'&sortorder=asc&begin='.$begin.$options.'">';
+            if ($sortorder == 'ASC') $out.= '<a href="'.$file.'?sortfield='.$field.'&sortorder=desc&begin='.$begin.$options.'">';
+		}
 	}
 
 	$out.=$name;
 
-	if (! empty($conf->dol_optimize_smallscreen) && empty($thead) && $field)    // If this is a sort field
+	if (empty($thead) && $field)    // If this is a sort field
 	{
 		$out.='</a>';
 	}
 
-	if (empty($conf->dol_optimize_smallscreen) && empty($thead) && $field)    // If this is a sort field
+	if (empty($thead) && $field)    // If this is a sort field
 	{
 		$options=preg_replace('/sortfield=([a-zA-Z0-9,\s\.]+)/i','',$moreparam);
 		$options=preg_replace('/sortorder=([a-zA-Z0-9,\s\.]+)/i','',$options);
@@ -2715,27 +2724,33 @@ function getTitleFieldOfList($name, $thead=0, $file="", $field="", $begin="", $m
 		if (! preg_match('/^&/',$options)) $options='&'.$options;
 
 		//print "&nbsp;";
-		$out.= '<img width="2" src="'.DOL_URL_ROOT.'/theme/common/transparent.png" alt=""><span class="nowrap">';
+		$sortimg.= '<img width="2" src="'.DOL_URL_ROOT.'/theme/common/transparent.png" alt="">';
+		$sortimg.= '<span class="nowrap">';
 
 		if (! $sortorder || $field != $sortfield)
 		{
-			$out.= '<a href="'.$file.'?sortfield='.$field.'&sortorder=asc&begin='.$begin.$options.'">'.img_down("A-Z",0).'</a>';
-			$out.= '<a href="'.$file.'?sortfield='.$field.'&sortorder=desc&begin='.$begin.$options.'">'.img_up("Z-A",0).'</a>';
+			//$out.= '<a href="'.$file.'?sortfield='.$field.'&sortorder=asc&begin='.$begin.$options.'">'.img_down("A-Z",0).'</a>';
+			//$out.= '<a href="'.$file.'?sortfield='.$field.'&sortorder=desc&begin='.$begin.$options.'">'.img_up("Z-A",0).'</a>';
 		}
 		else
 		{
 			if ($sortorder == 'DESC' ) {
-				$out.= '<a href="'.$file.'?sortfield='.$field.'&sortorder=asc&begin='.$begin.$options.'">'.img_down("A-Z",0).'</a>';
-				$out.= '<a href="'.$file.'?sortfield='.$field.'&sortorder=desc&begin='.$begin.$options.'">'.img_up("Z-A",1).'</a>';
+				//$out.= '<a href="'.$file.'?sortfield='.$field.'&sortorder=asc&begin='.$begin.$options.'">'.img_down("A-Z",0).'</a>';
+				//$out.= '<a href="'.$file.'?sortfield='.$field.'&sortorder=desc&begin='.$begin.$options.'">'.img_up("Z-A",1).'</a>';
+				$sortimg.= img_up("Z-A",0);
 			}
 			if ($sortorder == 'ASC' ) {
-				$out.= '<a href="'.$file.'?sortfield='.$field.'&sortorder=asc&begin='.$begin.$options.'">'.img_down("A-Z",1).'</a>';
-				$out.= '<a href="'.$file.'?sortfield='.$field.'&sortorder=desc&begin='.$begin.$options.'">'.img_up("Z-A",0).'</a>';
+				//$out.= '<a href="'.$file.'?sortfield='.$field.'&sortorder=asc&begin='.$begin.$options.'">'.img_down("A-Z",1).'</a>';
+				//$out.= '<a href="'.$file.'?sortfield='.$field.'&sortorder=desc&begin='.$begin.$options.'">'.img_up("Z-A",0).'</a>';
+				$sortimg.= img_down("A-Z",0);
 			}
 		}
 
-		$out.= '</span>';
+		$sortimg.= '</span>';
 	}
+	
+	$out.=$sortimg;
+	
 	$out.='</'.$tag.'>';
 
 	return $out;
diff --git a/htdocs/core/lib/usergroups.lib.php b/htdocs/core/lib/usergroups.lib.php
index cb62b63377ff82a2441afb7b55845822f8190678..10b97265a9311143571c6a27de6bbad5ba11d882 100644
--- a/htdocs/core/lib/usergroups.lib.php
+++ b/htdocs/core/lib/usergroups.lib.php
@@ -355,7 +355,7 @@ function show_theme($fuser,$edit=0,$foruserprofile=false)
     					print '<div class="inline-block" style="margin-top: 10px; margin-bottom: 10px; margin-right: 20px; margin-left: 20px;">';
     					$file=$dirtheme."/".$subdir."/thumb.png";
     					$url=$urltheme."/".$subdir."/thumb.png";
-    					if (! file_exists($file)) $url=$urltheme."/common/nophoto.jpg";
+    					if (! file_exists($file)) $url=DOL_URL_ROOT.'/public/theme/common/nophoto.png';
     					print '<a href="'.$_SERVER["PHP_SELF"].($edit?'?action=edit&theme=':'?theme=').$subdir.(GETPOST("optioncss")?'&optioncss='.GETPOST("optioncss",'alpha',1):'').($fuser?'&id='.$fuser->id:'').'" style="font-weight: normal;" alt="'.$langs->trans("Preview").'">';
     					if ($subdir == $conf->global->MAIN_THEME) $title=$langs->trans("ThemeCurrentlyActive");
     					else $title=$langs->trans("ShowPreview");
diff --git a/htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php b/htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php
index 12ea7aa7b082d667fa3745f6e3ffe83dcc5e2f0f..542f53c24b7958ef1bb13073672474c94e83df4a 100644
--- a/htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php
+++ b/htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php
@@ -270,7 +270,11 @@ class doc_generic_invoice_odt extends ModelePDFFactures
 				{
 					// On peut utiliser le nom de la societe du contact
 					if (! empty($conf->global->MAIN_USE_COMPANY_NAME_OF_CONTACT)) $socobject = $object->contact;
-					else $socobject = $object->client;
+					else {
+			                        $socobject = $object->client;
+                        			// if we have a BILLING contact and we dont use it as recipient we store the contact object for later use
+                        			$contactobject = $object->contact;
+                    			}
 				}
 				else
 				{
@@ -344,8 +348,12 @@ class doc_generic_invoice_odt extends ModelePDFFactures
 				$array_objet=$this->get_substitutionarray_object($object,$outputlangs);
 				$array_propal=is_object($propal_object)?$this->get_substitutionarray_object($propal_object,$outputlangs,'propal'):array();
 				$array_other=$this->get_substitutionarray_other($outputlangs);
+		                // retrieve contact information for use in invoice as contact_xxx tags
+                		$array_thirdparty_contact = array();
+                		if ($usecontact)
+                    			$array_thirdparty_contact=$this->get_substitutionarray_contact($contactobject,$outputlangs,'contact');
 
-				$tmparray = array_merge($array_user,$array_soc,$array_thirdparty,$array_objet,$array_propal,$array_other);
+				$tmparray = array_merge($array_user,$array_soc,$array_thirdparty,$array_objet,$array_propal,$array_other,$array_thirdparty_contact);
 				complete_substitutions_array($tmparray, $outputlangs, $object);
 				// Call the ODTSubstitution hook
 				$parameters=array('file'=>$file,'object'=>$object,'outputlangs'=>$outputlangs,'substitutionarray'=>&$tmparray);
diff --git a/htdocs/core/modules/modWebServicesClient.class.php b/htdocs/core/modules/modWebServicesClient.class.php
index dd13d8920dbc41a54b0bbb7ebae6a70c6d6c4e58..307f3420640a3bbc1586dfe76accbd5a40e3e674 100644
--- a/htdocs/core/modules/modWebServicesClient.class.php
+++ b/htdocs/core/modules/modWebServicesClient.class.php
@@ -18,7 +18,7 @@
 /**
  *      \defgroup   webservices     Module webservices
  *      \brief      Module to enable client for supplier WebServices
- *       \file       htdocs/core/modules/modSyncSupplierWebServices.class.php
+ *       \file       htdocs/core/modules/modWebServicesClient.class.php
  *       \ingroup    webservices
  *       \brief      File to describe client for supplier webservices module
  */
diff --git a/htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php b/htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php
index 80ec0ba6fe0a47e08ef5f75b6033e476f2598065..d6773eb2c80aa567462c4159bba6e869e6722e80 100644
--- a/htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php
+++ b/htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php
@@ -288,9 +288,9 @@ class doc_generic_proposal_odt extends ModelePDFPropales
 				dol_mkdir($conf->propal->dir_temp);
 
 
-				// If BILLING contact defined on invoice, we use it
+				// If CUSTOMER contact defined on proposal, we use it
 				$usecontact=false;
-				$arrayidcontact=$object->getIdContact('external','BILLING');
+				$arrayidcontact=$object->getIdContact('external','CUSTOMER');
 				if (count($arrayidcontact) > 0)
 				{
 					$usecontact=true;
@@ -302,13 +302,16 @@ class doc_generic_proposal_odt extends ModelePDFPropales
 				{
 					// On peut utiliser le nom de la societe du contact
 					if (! empty($conf->global->MAIN_USE_COMPANY_NAME_OF_CONTACT)) $socobject = $object->contact;
-					else $socobject = $object->client;
+					else {
+                        			$socobject = $object->client;
+                        			// if we have a CUSTOMER contact and we dont use it as recipient we store the contact object for later use
+                        			$contactobject = $object->contact;
+                    			}
 				}
 				else
 				{
 					$socobject=$object->client;
 				}
-
 				// Make substitution
 				$substitutionarray=array(
 				'__FROM_NAME__' => $this->emetteur->name,
@@ -369,8 +372,12 @@ class doc_generic_proposal_odt extends ModelePDFPropales
 				$array_thirdparty=$this->get_substitutionarray_thirdparty($socobject,$outputlangs);
 				$array_objet=$this->get_substitutionarray_object($object,$outputlangs);
 				$array_other=$this->get_substitutionarray_other($outputlangs);
+		                // retrieve contact information for use in proposal as contact_xxx tags
+                		$array_thirdparty_contact = array();
+                		if ($usecontact)
+                    			$array_thirdparty_contact=$this->get_substitutionarray_contact($contactobject,$outputlangs,'contact');
 
-				$tmparray = array_merge($array_user,$array_soc,$array_thirdparty,$array_objet,$array_other);
+				$tmparray = array_merge($array_user,$array_soc,$array_thirdparty,$array_objet,$array_other,$array_thirdparty_contact);
 				complete_substitutions_array($tmparray, $outputlangs, $object);
 				// Call the ODTSubstitution hook
 				$parameters=array('file'=>$file,'object'=>$object,'outputlangs'=>$outputlangs,'substitutionarray'=>&$tmparray);
diff --git a/htdocs/fourn/list.php b/htdocs/fourn/list.php
index 5693031c630ce365492d93c8325774cd51c22855..8fb3385091955433e3cbf7b70ebf2b62ff05f7f6 100644
--- a/htdocs/fourn/list.php
+++ b/htdocs/fourn/list.php
@@ -195,9 +195,10 @@ if ($resql)
 	if (! empty($conf->categorie->enabled))
 	{
 		require_once DOL_DOCUMENT_ROOT . '/categories/class/categorie.class.php';
+		$moreforfilter.='<div class="divsearchfield">';
 		$moreforfilter.=$langs->trans('Categories'). ': ';
 		$moreforfilter.=$htmlother->select_categories(Categorie::TYPE_SUPPLIER,$search_categ,'search_categ',1);
-		$moreforfilter.=' &nbsp; &nbsp; &nbsp; ';
+		$moreforfilter.='</div>';
 	}
 	if ($moreforfilter)
 	{
@@ -209,8 +210,8 @@ if ($resql)
 		print '</div>';
 	}
 
-	print '<table class="liste">';
-
+    print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">';
+	
 	print '<tr class="liste_titre">';
 	print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","",$param,'valign="middle"',$sortfield,$sortorder);
 	print_liste_field_titre($langs->trans("Zip"),$_SERVER["PHP_SELF"],"s.zip","",$param,'valign="middle"',$sortfield,$sortorder);
diff --git a/htdocs/install/filelist.xml b/htdocs/install/filelist.xml
index fb931f9fcdc5f889508aae9f9b69e1f46ac9a0fc..6e5416e24811b16dafb00f38a3e1e26d23098cae 100644
--- a/htdocs/install/filelist.xml
+++ b/htdocs/install/filelist.xml
@@ -6873,7 +6873,7 @@
 <md5file name="modCashDesk.class.php">69982f8171837cd8669bfe9c2f08dc8f</md5file>
 <md5file name="modLdap.class.php">ddf6dfeb77c98411b4d5434f20c24483</md5file>
 <md5file name="modFacture.class.php">c23010fa68c5996cb5977f84a6bb7ceb</md5file>
-<md5file name="modSyncSupplierWebServices.class.php">90a300e9bd857966226c68dca8660456</md5file>
+<md5file name="modWebServicesClient.class.php">822961d86ae558588632b3b08c085b89</md5file>
 <md5file name="index.html">d41d8cd98f00b204e9800998ecf8427e</md5file>
 <md5file name="modIncoterm.class.php">b4e9f07aa5268af49d3bb9429719b201</md5file>
 <md5file name="modFTP.class.php">8293bd60fe13ac64c22f8500b346821c</md5file>
diff --git a/htdocs/product/list.php b/htdocs/product/list.php
index 68e6143c48c6f26a8d39de814c72e86d5773b7a6..d973a3d41ef86373e984aedb665f19daed306603 100644
--- a/htdocs/product/list.php
+++ b/htdocs/product/list.php
@@ -281,8 +281,6 @@ else
     		print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
     		print '<input type="hidden" name="type" value="'.$type.'">';
 
-    		print '<table class="liste" width="100%">';
-
     		// Filter on categories
     	 	$moreforfilter='';
     	 	$colspan=6;
@@ -294,19 +292,23 @@ else
 
     		if (! empty($conf->categorie->enabled))
     		{
-    		 	$moreforfilter.=$langs->trans('Categories'). ': ';
+                $moreforfilter.='<div class="divsearchfield">';
+    		    $moreforfilter.=$langs->trans('Categories'). ': ';
     			$moreforfilter.=$htmlother->select_categories(Categorie::TYPE_PRODUCT,$search_categ,'search_categ',1);
-    		 	$moreforfilter.=' &nbsp; &nbsp; &nbsp; ';
+    		 	$moreforfilter.='</div>';
     		}
     	 	if ($moreforfilter)
     		{
-    			print '<tr class="liste_titre">';
-    			print '<td class="liste_titre" colspan="'.$colspan.'">';
+        		print '<div class="liste_titre liste_titre_bydiv centpercent">';
     		    print $moreforfilter;
-    		    print '</td></tr>';
+            	$parameters=array();
+            	$reshook=$hookmanager->executeHooks('printFieldPreListTitle',$parameters);    // Note that $action and $object may have been modified by hook
+        	    print $hookmanager->resPrint;
+    		    print '</div>';
     		}
 
     		// Lignes des titres
+    		print '<table class="liste '.($moreforfilter?"listwithfilterbefore":"").'">';
     		print '<tr class="liste_titre">';
     		print_liste_field_titre($langs->trans("Ref"), $_SERVER["PHP_SELF"], "p.ref",$param,"","",$sortfield,$sortorder);
     		print_liste_field_titre($langs->trans("Label"), $_SERVER["PHP_SELF"], "p.label",$param,"","",$sortfield,$sortorder);
diff --git a/htdocs/product/reassort.php b/htdocs/product/reassort.php
index 8bd2096af69aa1b81f3f694de45da85f37e89506..cee05f69340459b8f0e54ae10f1705898e73e419 100644
--- a/htdocs/product/reassort.php
+++ b/htdocs/product/reassort.php
@@ -215,27 +215,35 @@ if ($resql)
 	print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
 	print '<input type="hidden" name="type" value="'.$type.'">';
 
-	print '<table class="liste" width="100%">';
-
 	// Filter on categories
  	$moreforfilter='';
 	if (! empty($conf->categorie->enabled))
 	{
+	 	$moreforfilter.='<div class="divsearchfield">';
 	 	$moreforfilter.=$langs->trans('Categories'). ': ';
 		$moreforfilter.=$htmlother->select_categories(Categorie::TYPE_PRODUCT,$search_categ,'search_categ');
-	 	$moreforfilter.=' &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ';
+	 	$moreforfilter.='</div>';
 	}
+	
+	$moreforfilter.='<div class="divsearchfield">';
 	$moreforfilter.=$langs->trans("StockTooLow").' <input type="checkbox" name="toolowstock" value="1"'.($toolowstock?' checked':'').'>';
- 	if ($moreforfilter)
-	{
-		print '<tr class="liste_titre">';
-		print '<td class="liste_titre" colspan="9">';
-	    print $moreforfilter;
-	    print '</td></tr>';
-	}
+	$moreforfilter.='</div>';
+    
+    if (! empty($moreforfilter))
+    {
+        print '<div class="liste_titre liste_titre_bydiv centpercent">';
+        print $moreforfilter;
+        $parameters=array();
+        $reshook=$hookmanager->executeHooks('printFieldPreListTitle',$parameters);    // Note that $action and $object may have been modified by hook
+        print $hookmanager->resPrint;
+        print '</div>';
+    }
+	
 
 	$param="&tosell=$tosell&tobuy=$tobuy".(isset($type)?"&type=$type":"")."&fourn_id=$fourn_id&snom=$snom&sref=$sref";
-
+    
+	print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">';
+	
 	// Lignes des titres
 	print "<tr class=\"liste_titre\">";
 	print_liste_field_titre($langs->trans("Ref"), $_SERVER["PHP_SELF"], "p.ref",$param,"","",$sortfield,$sortorder);
diff --git a/htdocs/product/reassortlot.php b/htdocs/product/reassortlot.php
index 86410df8a00d523ede3eb41913aa7507a308b4e6..d7f5905fbd31085086f17366aaa32c8582d58c88 100644
--- a/htdocs/product/reassortlot.php
+++ b/htdocs/product/reassortlot.php
@@ -227,27 +227,32 @@ if ($resql)
 	print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
 	print '<input type="hidden" name="type" value="'.$type.'">';
 
-	print '<table class="liste" width="100%">';
-
 	// Filter on categories
  	$moreforfilter='';
 	if (! empty($conf->categorie->enabled))
 	{
+	 	$moreforfilter.='<div class="divsearchfield">';
 	 	$moreforfilter.=$langs->trans('Categories'). ': ';
 		$moreforfilter.=$htmlother->select_categories(Categorie::TYPE_PRODUCT,$search_categ,'search_categ');
-	 	$moreforfilter.=' &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ';
+	 	$moreforfilter.='</div>';
 	}
 	//$moreforfilter.=$langs->trans("StockTooLow").' <input type="checkbox" name="toolowstock" value="1"'.($toolowstock?' checked':'').'>';
- 	if ($moreforfilter)
-	{
-		print '<tr class="liste_titre">';
-		print '<td class="liste_titre" colspan="11">';
-	    print $moreforfilter;
-	    print '</td></tr>';
-	}
+    
+    if (! empty($moreforfilter))
+    {
+        print '<div class="liste_titre liste_titre_bydiv centpercent">';
+        print $moreforfilter;
+        $parameters=array();
+        $reshook=$hookmanager->executeHooks('printFieldPreListTitle',$parameters);    // Note that $action and $object may have been modified by hook
+        print $hookmanager->resPrint;
+        print '</div>';
+    }
+	
 
 	$param="&tosell=$tosell&tobuy=$tobuy".(isset($type)?"&type=$type":"")."&fourn_id=$fourn_id&snom=$snom&sref=$sref&batch=$batch&eatby=$eatby&sellby=$sellby";
 
+    print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">';
+	
 	// Lignes des titres
 	print "<tr class=\"liste_titre\">";
 	print_liste_field_titre($langs->trans("Ref"), $_SERVER["PHP_SELF"], "p.ref",$param,"","",$sortfield,$sortorder);
diff --git a/htdocs/product/stats/commande.php b/htdocs/product/stats/commande.php
index 9491b18da1e15c8ab0585ab72d8b0a9f9d91aea4..f90235a143fadb1ee411c536becf4888609d5142 100644
--- a/htdocs/product/stats/commande.php
+++ b/htdocs/product/stats/commande.php
@@ -188,7 +188,8 @@ if ($id > 0 || ! empty($ref))
 	            }
 
 				print_barre_liste($langs->trans("CustomersOrders"),$page,$_SERVER["PHP_SELF"],"&amp;id=$product->id",$sortfield,$sortorder,'',$num,$totalrecords,'');
-				print '<div class="liste_titre">';
+                print '<div class="liste_titre liste_titre_bydiv centpercent">';
+                print '<div class="divsearchfield">';
 			    print $langs->trans('Period').' ('.$langs->trans("OrderDate") .') - ';
 				print $langs->trans('Month') . ':<input class="flat" type="text" size="4" name="search_month" value="' . $search_month . '"> ';
 				print $langs->trans('Year') . ':' . $formother->selectyear($search_year ? $search_year : - 1, 'search_year', 1, 20, 5);
@@ -197,9 +198,10 @@ if ($id > 0 || ! empty($ref))
 				print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
 			    print '</div>';
 				print '</div>';
+				print '</div>';
 
 				$i = 0;
-	            print '<table class="noborder" width="100%">';
+	            print '<table class="tagtable liste listwithfilterbefore" width="100%">';
 				print '<tr class="liste_titre">';
 				print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"c.rowid","",$option,'',$sortfield,$sortorder);
 				print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","",$option,'',$sortfield,$sortorder);
diff --git a/htdocs/product/stats/commande_fournisseur.php b/htdocs/product/stats/commande_fournisseur.php
index e7a803c299c5e02c14ff044b0271c3eec4297efd..3d117a7f40a8d089fd7e38c6336ba73782d75d6d 100644
--- a/htdocs/product/stats/commande_fournisseur.php
+++ b/htdocs/product/stats/commande_fournisseur.php
@@ -198,7 +198,8 @@ if ($id > 0 || ! empty($ref)) {
 				}
 
 				print_barre_liste($langs->trans("SuppliersOrders"), $page, $_SERVER["PHP_SELF"], "&amp;id=$product->id", $sortfield, $sortorder, '', $num, $totalrecords, '');
-				print '<div class="liste_titre">';
+                print '<div class="liste_titre liste_titre_bydiv centpercent">';
+                print '<div class="divsearchfield">';
 				print $langs->trans('Period') . ' (' . $langs->trans("OrderDate") . ') - ';
 				print $langs->trans('Month') . ':<input class="flat" type="text" size="4" name="search_month" value="' . $search_month . '"> ';
 				print $langs->trans('Year') . ':' . $formother->selectyear($search_year ? $search_year : - 1, 'search_year', 1, 20, 5);
@@ -207,9 +208,10 @@ if ($id > 0 || ! empty($ref)) {
 				print '<input type="image" class="liste_titre" name="button_removefilter" src="' . img_picto($langs->trans("Search"), 'searchclear.png', '', '', 1) . '" value="' . dol_escape_htmltag($langs->trans("RemoveFilter")) . '" title="' . dol_escape_htmltag($langs->trans("RemoveFilter")) . '">';
 				print '</div>';
 				print '</div>';
+				print '</div>';
 
 				$i = 0;
-				print '<table class="noborder" width="100%">';
+				print '<table class="tagtable liste listwithfilterbefore" width="100%">';
 				print '<tr class="liste_titre">';
 				print_liste_field_titre($langs->trans("Ref"), $_SERVER["PHP_SELF"], "c.rowid", "", $option, '', $sortfield, $sortorder);
 				print_liste_field_titre($langs->trans("Company"), $_SERVER["PHP_SELF"], "s.nom", "", $option, '', $sortfield, $sortorder);
diff --git a/htdocs/product/stats/contrat.php b/htdocs/product/stats/contrat.php
index 84417c013b72ab590fa760063d3eae8e16510f89..9d4d7d53abc9a444a41ea6414fa76d284b621e8f 100644
--- a/htdocs/product/stats/contrat.php
+++ b/htdocs/product/stats/contrat.php
@@ -147,7 +147,7 @@ if ($id > 0 || ! empty($ref))
 			print_barre_liste($langs->trans("Contrats"),$page,$_SERVER["PHP_SELF"],"&amp;id=$product->id",$sortfield,$sortorder,'',$num,0,'');
 
 			$i = 0;
-			print "<table class=\"noborder\" width=\"100%\">";
+			print '<table class="tagtable liste listwithfilterbefore" width="100%">';
 
 			print '<tr class="liste_titre">';
 			print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"c.rowid","","&amp;id=".$product->id,'',$sortfield,$sortorder);
@@ -155,9 +155,9 @@ if ($id > 0 || ! empty($ref))
 			print_liste_field_titre($langs->trans("CustomerCode"),$_SERVER["PHP_SELF"],"s.code_client","","&amp;id=".$product->id,'',$sortfield,$sortorder);
 			print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"c.date_contrat","","&amp;id=".$product->id,'align="center"',$sortfield,$sortorder);
 			//print_liste_field_titre($langs->trans("AmountHT"),$_SERVER["PHP_SELF"],"c.amount","","&amp;id=".$product->id,'align="right"',$sortfield,$sortorder);
-			print '<td class="liste_titre" width="16">'.$staticcontratligne->LibStatut(0,3).'</td>';
-			print '<td class="liste_titre" width="16">'.$staticcontratligne->LibStatut(4,3).'</td>';
-			print '<td class="liste_titre" width="16">'.$staticcontratligne->LibStatut(5,3).'</td>';
+			print_liste_field_titre($staticcontratligne->LibStatut(0,3),$_SERVER["PHP_SELF"],"",'','','width="16"',$sortfield,$sortorder,'maxwidthsearch ');
+			print_liste_field_titre($staticcontratligne->LibStatut(4,3),$_SERVER["PHP_SELF"],"",'','','width="16"',$sortfield,$sortorder,'maxwidthsearch ');
+			print_liste_field_titre($staticcontratligne->LibStatut(5,3),$_SERVER["PHP_SELF"],"",'','','width="16"',$sortfield,$sortorder,'maxwidthsearch ');
 			print "</tr>\n";
 
 			$contratstatic=new Contrat($db);
diff --git a/htdocs/product/stats/facture.php b/htdocs/product/stats/facture.php
index 2a79b97e399868c6942cdee4f5429d6800a1a84f..6fb09bffa8b3ebeb0fa95f908001fb968b2f738c 100644
--- a/htdocs/product/stats/facture.php
+++ b/htdocs/product/stats/facture.php
@@ -22,7 +22,7 @@
 /**
  *	\file       htdocs/product/stats/facture.php
  *	\ingroup    product service facture
- *	\brief      Page des stats des factures clients pour un produit
+ *	\brief      Page of invoice statistics for a product
  */
 
 require '../../main.inc.php';
@@ -128,7 +128,8 @@ if ($id > 0 || ! empty($ref))
 		print '</div>';
 
 
-        if ($user->rights->facture->lire) {
+        if ($user->rights->facture->lire) 
+        {
             $sql = "SELECT distinct s.nom as name, s.rowid as socid, s.code_client,";
             $sql.= " f.facnumber, d.total_ht as total_ht,";
             $sql.= " f.datef, f.paye, f.fk_statut as statut, f.rowid as facid, d.qty";
@@ -189,7 +190,8 @@ if ($id > 0 || ! empty($ref))
                 }
 
                 print_barre_liste($langs->trans("CustomersInvoices"),$page,$_SERVER["PHP_SELF"],"&amp;id=".$product->id,$sortfield,$sortorder,'',$num,$totalrecords,'');
-                print '<div class="liste_titre">';
+                print '<div class="liste_titre liste_titre_bydiv centpercent">';
+                print '<div class="divsearchfield">';
                 print $langs->trans('Period').' ('.$langs->trans("DateInvoice") .') - ';
 				print $langs->trans('Month') . ':<input class="flat" type="text" size="4" name="search_month" value="' . $search_month . '"> ';
 				print $langs->trans('Year') . ':' . $formother->selectyear($search_year ? $search_year : - 1, 'search_year', 1, 20, 5);
@@ -198,9 +200,10 @@ if ($id > 0 || ! empty($ref))
 				print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
                 print '</div>';
 				print '</div>';
+				print '</div>';
 
                 $i = 0;
-                print '<table class="noborder" width="100%">';
+                print '<table class="tagtable liste listwithfilterbefore" width="100%">';
                 print '<tr class="liste_titre">';
                 print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"s.rowid","",$option,'',$sortfield,$sortorder);
                 print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","",$option,'',$sortfield,$sortorder);
diff --git a/htdocs/product/stats/facture_fournisseur.php b/htdocs/product/stats/facture_fournisseur.php
index 9b56cee75523b948fa351654c19a501434fe4bfa..677bff934a73345b0c4a9c33e082ee5ce646c899 100644
--- a/htdocs/product/stats/facture_fournisseur.php
+++ b/htdocs/product/stats/facture_fournisseur.php
@@ -190,7 +190,8 @@ if ($id > 0 || ! empty($ref))
 				}
 
 				print_barre_liste($langs->trans("SuppliersInvoices"), $page, $_SERVER["PHP_SELF"], "&amp;id=$product->id", $sortfield, $sortorder, '', $num, $totalrecords, '');
-				print '<div class="liste_titre">';
+                print '<div class="liste_titre liste_titre_bydiv centpercent">';
+                print '<div class="divsearchfield">';
 				print $langs->trans('Period') . ' (' . $langs->trans("DateInvoice") . ') - ';
 				print $langs->trans('Month') . ':<input class="flat" type="text" size="4" name="search_month" value="' . $search_month . '"> ';
 				print $langs->trans('Year') . ':' . $formother->selectyear($search_year ? $search_year : - 1, 'search_year', 1, 20, 5);
@@ -199,9 +200,10 @@ if ($id > 0 || ! empty($ref))
 				print '<input type="image" class="liste_titre" name="button_removefilter" src="' . img_picto($langs->trans("Search"), 'searchclear.png', '', '', 1) . '" value="' . dol_escape_htmltag($langs->trans("RemoveFilter")) . '" title="' . dol_escape_htmltag($langs->trans("RemoveFilter")) . '">';
 				print '</div>';
 				print '</div>';
+				print '</div>';
 
 				$i = 0;
-				print '<table class="noborder" width="100%">';
+				print '<table class="tagtable liste listwithfilterbefore" width="100%">';
 				print '<tr class="liste_titre">';
 				print_liste_field_titre($langs->trans("Ref"), $_SERVER["PHP_SELF"], "s.rowid", "", $option, '', $sortfield, $sortorder);
 				print_liste_field_titre($langs->trans("Company"), $_SERVER["PHP_SELF"], "s.nom", "", $option, '', $sortfield, $sortorder);
diff --git a/htdocs/product/stats/propal.php b/htdocs/product/stats/propal.php
index 690f9c8c4214882988f8ad26ea4b37e057b67f62..295487344fdb60a9938d17680facceb7f28f20a3 100644
--- a/htdocs/product/stats/propal.php
+++ b/htdocs/product/stats/propal.php
@@ -191,7 +191,8 @@ if ($id > 0 || ! empty($ref))
 				}
 
 				print_barre_liste($langs->trans("Proposals"), $page, $_SERVER["PHP_SELF"], "&amp;id=$product->id", $sortfield, $sortorder, '', $num, $totalrecords, '');
-				print '<div class="liste_titre">';
+                print '<div class="liste_titre liste_titre_bydiv centpercent">';
+                print '<div class="divsearchfield">';
 				print $langs->trans('Period') . ' (' . $langs->trans("DatePropal") . ') - ';
 				print $langs->trans('Month') . ':<input class="flat" type="text" size="4" name="search_month" value="' . $search_month . '"> ';
 				print $langs->trans('Year') . ':' . $formother->selectyear($search_year ? $search_year : - 1, 'search_year', 1, 20, 5);
@@ -200,9 +201,10 @@ if ($id > 0 || ! empty($ref))
 				print '<input type="image" class="liste_titre" name="button_removefilter" src="' . img_picto($langs->trans("Search"), 'searchclear.png', '', '', 1) . '" value="' . dol_escape_htmltag($langs->trans("RemoveFilter")) . '" title="' . dol_escape_htmltag($langs->trans("RemoveFilter")) . '">';
 				print '</div>';
 				print '</div>';
+				print '</div>';
 
 				$i = 0;
-				print '<table class="noborder" width="100%">';
+				print '<table class="tagtable liste listwithfilterbefore" width="100%">';
 				print '<tr class="liste_titre">';
 				print_liste_field_titre($langs->trans("Ref"), $_SERVER["PHP_SELF"], "p.rowid", "", $option, '', $sortfield, $sortorder);
 				print_liste_field_titre($langs->trans("Company"), $_SERVER["PHP_SELF"], "s.nom", "", $option, '', $sortfield, $sortorder);
diff --git a/htdocs/projet/list.php b/htdocs/projet/list.php
index 8e98bf9e93f326fa5a9e98da9c605299a14daa20..16fac9bb1bd7fc23d5014cc216ab9544b350cc1c 100644
--- a/htdocs/projet/list.php
+++ b/htdocs/projet/list.php
@@ -274,15 +274,18 @@ if ($resql)
 	if (! empty($moreforfilter))
 	{
 		print '<div class="liste_titre liste_titre_bydiv centpercent">';
+        //print '<tr class="liste_titre">';
+        //print '<td class="liste_titre" colspan="'.$colspan.'">';
 		print $moreforfilter;
     	$parameters=array();
     	$reshook=$hookmanager->executeHooks('printFieldPreListTitle',$parameters);    // Note that $action and $object may have been modified by hook
     	print $hookmanager->resPrint;
     	print '</div>';
-	}
+        //print '</td></tr>';
+    }
 
-	print '<table class="liste">';
-	
+	print '<table class="liste '.($moreforfilter?"listwithfilterbefore":"").'">';
+    		
 	print '<tr class="liste_titre">';
 	print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"p.ref","",$param,"",$sortfield,$sortorder);
 	print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"p.title","",$param,"",$sortfield,$sortorder);
diff --git a/htdocs/projet/stats/index.php b/htdocs/projet/stats/index.php
index 42d367ce8331d00cb48413f2441a17418a5b1f27..d28d7d6f14abb508f2f1706326230144fa225385 100644
--- a/htdocs/projet/stats/index.php
+++ b/htdocs/projet/stats/index.php
@@ -269,7 +269,8 @@ dol_fiche_head($head,'byyear',$langs->trans("Statistics"), 0, '');
 print '<div class="fichecenter"><div class="fichethirdleft">';
 
 print '<form name="stats" method="POST" action="'.$_SERVER["PHP_SELF"].'">';
-print '<table class="border" width="100%">';
+
+print '<table class="noborder" width="100%">';
 print '<tr class="liste_titre"><td class="liste_titre" colspan="2">'.$langs->trans("Filter").'</td></tr>';
 // Company
 print '<tr><td>'.$langs->trans("ThirdParty").'</td><td>';
@@ -293,8 +294,8 @@ print '</table>';
 print '</form>';
 print '<br><br>';
 
-print '<table class="border" width="100%">';
-print '<tr height="24">';
+print '<table class="noborder" width="100%">';
+print '<tr class="liste_titre" height="24">';
 print '<td align="center">'.$langs->trans("Year").'</td>';
 print '<td align="center">'.$langs->trans("NbOfProjects").'</td>';
 if (! empty($conf->global->PROJECT_USE_OPPORTUNITIES))
@@ -305,13 +306,15 @@ if (! empty($conf->global->PROJECT_USE_OPPORTUNITIES))
 print '</tr>';
 
 $oldyear=0;
+$var=true;
 foreach ($data_all_year as $val)
 {
 	$year = $val['year'];
 	while ($year && $oldyear > $year+1)
 	{	// If we have empty year
 		$oldyear--;
-		print '<tr height="24">';
+		$var=!$var;
+		print '<tr '.$bc[$var].' height="24">';
 		print '<td align="center"><a href="'.$_SERVER["PHP_SELF"].'?year='.$oldyear.'&amp;mode='.$mode.($socid>0?'&socid='.$socid:'').($userid>0?'&userid='.$userid:'').'">'.$oldyear.'</a></td>';
 		if (! empty($conf->global->PROJECT_USE_OPPORTUNITIES))
 		{
@@ -321,7 +324,8 @@ foreach ($data_all_year as $val)
 		print '<td align="right">0</td>';
 		print '</tr>';
 	}
-	print '<tr height="24">';
+	$var=!$var;
+	print '<tr '.$bc[$var].' height="24">';
 	print '<td align="center"><a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'&amp;mode='.$mode.($socid>0?'&socid='.$socid:'').($userid>0?'&userid='.$userid:'').'">'.$year.'</a></td>';
 	print '<td align="right">'.$val['nb'].'</td>';
 	if (! empty($conf->global->PROJECT_USE_OPPORTUNITIES))
diff --git a/htdocs/projet/tasks/index.php b/htdocs/projet/tasks/index.php
index 082fbdd8d7b26188be048ff10a448b03cd8d386b..39484f05014d200843798fe7d7fef222d2ae8010 100644
--- a/htdocs/projet/tasks/index.php
+++ b/htdocs/projet/tasks/index.php
@@ -141,7 +141,7 @@ if (! empty($moreforfilter))
 	print '</div>';
 }
 
-print '<table class="liste">';
+print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'" id="tablelines3">';
 print '<tr class="liste_titre">';
 print '<td>'.$langs->trans("Project").'</td>';
 print '<td>'.$langs->trans("ProjectStatus").'</td>';
diff --git a/htdocs/public/test/test_arrays.php b/htdocs/public/test/test_arrays.php
index d31b10ff5ef9632c32431021e169be07e59adc9f..2801ebb8855dff6914aab1df857d4069c7f7018a 100644
--- a/htdocs/public/test/test_arrays.php
+++ b/htdocs/public/test/test_arrays.php
@@ -146,9 +146,7 @@ $nav.='</form>';
 
 print_barre_liste('Title of my list', 3, $_SERVER["PHP_SELF"], '', '', '', 'Text in middle', 20, 5000, '', 0, $nav);
 
-?>
-<table class="liste noborder tagtable centpercent" id="tablelines3">
-<?php
+
 $moreforfilter.='<div class="divsearchfield">';
 $moreforfilter.=$langs->trans('This is a select list for a filter A'). ': ';
 $cate_arbo = array('field1'=>'value1a into the select list A','field2'=>'value2a');
@@ -175,11 +173,15 @@ $moreforfilter.='</div>';
 
 if (! empty($moreforfilter))
 {
-    print '<tr class="liste_titre">';
-    print '<td class="liste_titre" colspan="10">';
+    print '<div class="liste_titre liste_titre_bydiv centpercent">';
     print $moreforfilter;
-    print '</td></tr>';
+    $parameters=array();
+    $reshook=$hookmanager->executeHooks('printFieldPreListTitle',$parameters);    // Note that $action and $object may have been modified by hook
+    print $hookmanager->resPrint;
+    print '</div>';
 }
+
+print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'" id="tablelines3">';
 ?>
 <tr class="liste_titre">
 <?php print getTitleFieldOfList($langs->trans('title1'),0,$_SERVER["PHP_SELF"],'aaa','','','align="left"',$sortfield,$sortorder); ?>
@@ -188,7 +190,9 @@ if (! empty($moreforfilter))
 </tr>
 <tr class="pair"><td><?php echo $productspecimen->getNomUrl(1); ?></td><td align="right">b1</td><td class="tdlineupdown" align="left">c1</td></tr>
 <tr class="impair"><td>a2</td><td align="right">b2</td><td class="tdlineupdown" align="left">c2</td></tr>
-</table>
+<?php 
+print '</table>';
+?>
 <br>
 
 
diff --git a/htdocs/public/theme/common/nophoto.jpg b/htdocs/public/theme/common/nophoto.jpg
deleted file mode 100644
index 14eeb1cf01fcd037f612061d53c9bf18d61be901..0000000000000000000000000000000000000000
Binary files a/htdocs/public/theme/common/nophoto.jpg and /dev/null differ
diff --git a/htdocs/public/theme/common/nophoto.png b/htdocs/public/theme/common/nophoto.png
new file mode 100644
index 0000000000000000000000000000000000000000..bce088ef784902b7f05b0a8fdcc9c141ab5a2341
Binary files /dev/null and b/htdocs/public/theme/common/nophoto.png differ
diff --git a/htdocs/societe/list.php b/htdocs/societe/list.php
index a5792642a64f29327090c055cf9f54d4cdafd9e2..501e54cce11cabc02f7a437b59bf4c8b458cf3b0 100644
--- a/htdocs/societe/list.php
+++ b/htdocs/societe/list.php
@@ -208,9 +208,9 @@ $title=$langs->trans("ListOfThirdParties");
 
 $sql = "SELECT s.rowid, s.nom as name, s.barcode, s.town, s.datec, s.code_client, s.code_fournisseur, ";
 $sql.= " st.libelle as stcomm, s.prefix_comm, s.client, s.fournisseur, s.canvas, s.status as status,";
-$sql.= " s.siren as idprof1, s.siret as idprof2, ape as idprof3, idprof4 as idprof4";
-$sql.= ",s.fk_pays";
-$sql.= ",typent.code as typent_code";
+$sql.= " s.siren as idprof1, s.siret as idprof2, ape as idprof3, idprof4 as idprof4,";
+$sql.= " s.fk_pays, s.tms as date_update, s.datec as date_creation,";
+$sql.= " typent.code as typent_code";
 // We'll need these fields in order to filter by sale (including the case where the user can only see his prospects)
 if ($search_sale) $sql .= ", sc.fk_soc, sc.fk_user";
 // We'll need these fields in order to filter by categ
@@ -321,22 +321,18 @@ if ($resql)
 	$moreforfilter='';
     if (! empty($conf->categorie->enabled))
     {
+        $moreforfilter.='<div class="divsearchfield">';
         $moreforfilter.=$langs->trans('Categories'). ': ';
         $moreforfilter.=$htmlother->select_categories(Categories::TYPE_CUSTOMER,$search_categ,'search_categ');
-        $moreforfilter.=' &nbsp; &nbsp; &nbsp; ';
+        $moreforfilter.='</div>';
     }
     // If the user can view prospects other than his'
     if ($user->rights->societe->client->voir || $socid)
     {
+        $moreforfilter.='<div class="divsearchfield">';
         $moreforfilter.=$langs->trans('SalesRepresentatives'). ': ';
         $moreforfilter.=$htmlother->select_salesrepresentatives($search_sale,'search_sale',$user);
-    }
-    if ($moreforfilter)
-    {
-        print '<tr class="liste_titre">';
-        print '<td class="liste_titre" colspan="8">';
-        print $moreforfilter;
-        print '</td></tr>';
+        $moreforfilter.='</div>'; 
     }
 	*/
 	if (! empty($moreforfilter))
@@ -349,10 +345,29 @@ if ($resql)
 	    print '</div>';
 	}
 
-	print '<table class="liste">';
+	// Define list of fields to show into list
+    $arrayfields=array(
+        's.nom'=>array('label'=>$langs->trans("Company"), 'checked'=>1),
+        's.barcode'=>array('label'=>$langs->trans("BarCode"), 'checked'=>1, 'cond'=>(! empty($conf->barcode->enabled))),
+        's.town'=>array('label'=>$langs->trans("Town"), 'checked'=>1),
+        'country.code_iso'=>array('label'=>$langs->trans("Country"), 'checked'=>1),
+        'typent.code'=>array('label'=>$langs->trans("ThirdPartyType"), 'checked'=>1),
+        's.siren'=>array('label'=>$langs->trans("ProfId1Short"), 'checked'=>1),
+        's.siret'=>array('label'=>$langs->trans("ProfId2Short"), 'checked'=>1),
+        's.ape'=>array('label'=>$langs->trans("ProfId3Short"), 'checked'=>1),
+        's.idprof4'=>array('label'=>$langs->trans("ProfId4Short"), 'checked'=>1),
+        's.status'=>array('label'=>$langs->trans("Status"), 'checked'=>1, 'position'=>200),
+        's.tms'=>array('label'=>$langs->trans("DateModificationShort"), 'checked'=>0, 'position'=>500),
+        's.datec'=>array('label'=>$langs->trans("DateCreation"), 'checked'=>0, 'position'=>500),
+    );
+    if ($conf->global->MAIN_FEATURES_LEVEL >= 2)
+    {
+        $selectotherfields=$form->multiSelectArrayWithCheckbox('selectotherfields', $arrayfields);
+    }
+    
+	print '<table class="liste '.($moreforfilter?"listwithfilterbefore":"").'">';
 
-    // Lines of titles
-    print '<tr class="liste_titre">';
+	print '<tr class="liste_titre">';
 	print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","",$param,"",$sortfield,$sortorder);
     if (! empty($conf->barcode->enabled)) print_liste_field_titre($langs->trans("BarCode"), $_SERVER["PHP_SELF"], "s.barcode",$param,'','',$sortfield,$sortorder);
 	print_liste_field_titre($langs->trans("Town"),$_SERVER["PHP_SELF"],"s.town","",$param,'',$sortfield,$sortorder);
@@ -367,7 +382,7 @@ if ($resql)
     $reshook=$hookmanager->executeHooks('printFieldListTitle',$parameters);    // Note that $action and $object may have been modified by hook
     print $hookmanager->resPrint;
 	print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"s.status","",$param,'align="right"',$sortfield,$sortorder);
-	print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'','','',$sortfield,$sortorder,'maxwidthsearch ');
+	print_liste_field_titre($selectotherfields, $_SERVER["PHP_SELF"],"",'','','align="right"',$sortfield,$sortorder,'maxwidthsearch ');
 	print "</tr>\n";
 
 	// Fields title search
@@ -376,18 +391,19 @@ if ($resql)
 	print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
 	print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
 	if (! empty($search_nom_only) && empty($search_nom)) $search_nom=$search_nom_only;
-	print '<input class="flat" type="text" name="search_nom" size="8" value="'.htmlspecialchars($search_nom).'">';
+	
+	print '<input class="flat" type="text" name="search_nom" size="8" value="'.dol_escape_htmltag($search_nom).'">';
 	print '</td>';
 	// Barcode
 	if (! empty($conf->barcode->enabled))
 	{
 		print '<td class="liste_titre">';
-		print '<input class="flat" type="text" name="sbarcode" size="6" value="'.htmlspecialchars($sbarcode).'">';
+		print '<input class="flat" type="text" name="sbarcode" size="6" value="'.dol_escape_htmltag($sbarcode).'">';
 		print '</td>';
     }
 	// Town
 	print '<td class="liste_titre">';
-	print '<input class="flat" size="8" type="text" name="search_town" value="'.htmlspecialchars($search_town).'">';
+	print '<input class="flat" size="8" type="text" name="search_town" value="'.dol_escape_htmltag($search_town).'">';
 	print '</td>';
 	//Country
 	print '<td class="liste_titre" align="center">';
@@ -399,19 +415,19 @@ if ($resql)
 	print '</td>';
 	// IdProf1
 	print '<td class="liste_titre">';
-	print '<input class="flat" size="4" type="text" name="search_idprof1" value="'.htmlspecialchars($search_idprof1).'">';
+	print '<input class="flat" size="4" type="text" name="search_idprof1" value="'.dol_escape_htmltag($search_idprof1).'">';
 	print '</td>';
 	// IdProf2
 	print '<td class="liste_titre">';
-	print '<input class="flat" size="4" type="text" name="search_idprof2" value="'.htmlspecialchars($search_idprof2).'">';
+	print '<input class="flat" size="4" type="text" name="search_idprof2" value="'.dol_escape_htmltag($search_idprof2).'">';
 	print '</td>';
 	// IdProf3
 	print '<td class="liste_titre">';
-	print '<input class="flat" size="4" type="text" name="search_idprof3" value="'.htmlspecialchars($search_idprof3).'">';
+	print '<input class="flat" size="4" type="text" name="search_idprof3" value="'.dol_escape_htmltag($search_idprof3).'">';
 	print '</td>';
 	// IdProf4
 	print '<td class="liste_titre">';
-	print '<input class="flat" size="4" type="text" name="search_idprof4" value="'.htmlspecialchars($search_idprof4).'">';
+	print '<input class="flat" size="4" type="text" name="search_idprof4" value="'.dol_escape_htmltag($search_idprof4).'">';
 	print '</td>';
 	// Type (customer/prospect/supplier)
 	print '<td class="liste_titre" align="middle">';
diff --git a/htdocs/theme/eldy/img/list.png b/htdocs/theme/eldy/img/list.png
new file mode 100644
index 0000000000000000000000000000000000000000..f5df34a3bc9f8393c23f35e25fb7b18b4b51654b
Binary files /dev/null and b/htdocs/theme/eldy/img/list.png differ
diff --git a/htdocs/theme/eldy/img/sort_asc.png b/htdocs/theme/eldy/img/sort_asc.png
index aca0f6eb77aa8b601a073daa9a94bfa9bd5cc7e8..82b250c72bd73cedf7196138285647383a216300 100644
Binary files a/htdocs/theme/eldy/img/sort_asc.png and b/htdocs/theme/eldy/img/sort_asc.png differ
diff --git a/htdocs/theme/eldy/img/sort_desc.png b/htdocs/theme/eldy/img/sort_desc.png
index 57c1ad0fcb41a2dac762e6d46dc4556590002172..a5aa5f4e506530874aa5814fa5aa354c5b8f4f72 100644
Binary files a/htdocs/theme/eldy/img/sort_desc.png and b/htdocs/theme/eldy/img/sort_desc.png differ
diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php
index d768f446a0d25ac6c4b8e4fc1f90c74c736716fb..98713d0a77a6afced1f816e0c8327b7ba3d2d614 100644
--- a/htdocs/theme/eldy/style.css.php
+++ b/htdocs/theme/eldy/style.css.php
@@ -452,8 +452,10 @@ textarea.centpercent {
 div.divsearchfield {
 	float: <?php print $left; ?>;
 	margin-<?php print $right; ?>: 12px;
-	margin-top: 1px;
-    margin-bottom: 2px;
+    margin-<?php print $left; ?>: 2px;
+	margin-top: 3px;
+    margin-bottom: 3px;
+  	padding-left: 2px;
 }
 div.confirmmessage {
 	padding-top: 6px;
@@ -535,7 +537,7 @@ td.showDragHandle {
 	float: none;
 	vertical-align: top;
 }
-#id-right {	/* This must stay id-right ant not be replaced with echo $right */
+#id-right {	/* This must stay id-right and not be replaced with echo $right */
 	width: 100%;
 }
 #id-left {
@@ -613,7 +615,7 @@ div.arearef {
 	margin-bottom: 10px;
 }
 div.heightref {
-	min-height: 74px; 
+	min-height: 80px; 
 }
 div.divphotoref {
 	padding-right: 10px;
@@ -625,12 +627,14 @@ div.statusref {
 	margin-bottom: 10px;
 }
 img.photoref {
-	height: 68px;
-	width: 68px;
 	border: 1px solid #CCC;
 	-moz-box-shadow: 3px 3px 4px #DDD;
     -webkit-box-shadow: 3px 3px 4px #DDD;
     box-shadow: 3px 3px 4px #DDD;
+    padding: 4px;
+	height: 80px;
+	width: 80px;
+    object-fit: contain
 }
 .underrefbanner {
 	border-bottom: 2px solid #888;
@@ -1592,9 +1596,11 @@ a.tab:link, a.tab:visited, a.tab:hover, a.tab#active {
 	-webkit-box-shadow: 0 -1px 4px rgba(0,0,0,.1);
 	box-shadow: 0 -1px 4px rgba(0,0,0,.1);
 	margin-bottom: 0 0.2em 0 0.2em !important;
+
 	border-right: 1px solid #AAA !important;
 	border-left: 1px solid #AAA !important;
 	border-top: 1px solid #BBB !important;
+
 	-moz-border-radius:4px 4px 0 0;
     -webkit-border-radius: 4px 4px 0 0;
 	border-radius: 4px 4px 0 0;
@@ -1924,10 +1930,12 @@ tr.nocellnopadd td.nobordernopadding, tr.nocellnopadd td.nocellnopadd
 
 table.border, table.dataTable, .table-border, .table-border-col, .table-key-border-col, .table-val-border-col, div.border {
 	border: 1px solid #E0E0E0;
-	border-collapse: collapse;
+	border-collapse: collapse !important;
 	padding: 1px 2px 1px 3px;			/* t r b l */
 }
-
+table.borderplus {
+	border: 1px solid #BBB;
+}
 .border tbody tr, .border tbody tr td {
 	height: 20px;
 }
@@ -1966,7 +1974,7 @@ td.border, div.tagtable div div.border {
 
 /* Main boxes */
 
-table.noborder, table.formdoc, div.noborder {
+table.liste, table.noborder, table.formdoc, div.noborder {
 	width: 100%;
 
 	border-collapse: separate !important;
@@ -1994,25 +2002,28 @@ table.noborder, table.formdoc, div.noborder {
 	-webkit-box-shadow: 2px 2px 4px #CCC;
 	box-shadow: 2px 2px 4px #CCC;
 
-	-moz-border-radius: 0.2em;
+/*	-moz-border-radius: 0.2em;
 	-webkit-border-radius: 0.2em;
-	border-radius: 0.2em;
+	border-radius: 0.2em;*/
 }
 
-table.noborder tr, div.noborder form {
+table.liste tr, table.noborder tr, div.noborder form {
 	border-top-color: #FEFEFE;
 
 	border-right-width: 1px;
-	border-right-color: #BBBBBB;
+	border-right-color: #BBB;
 	border-right-style: solid;
 
 	border-left-width: 1px;
-	border-left-color: #BBBBBB;
+	border-left-color: #BBB;
 	border-left-style: solid;
 	min-height: 20px;
 }
 
-table.noborder th, table.noborder td, div.noborder form, div.noborder form div {
+table.liste th, table.noborder th {
+	padding: 10px 2px 10px 3px;			/* t r b l */
+}
+table.liste td, table.noborder td, div.noborder form, div.noborder form div {
 	padding: 5px 2px 5px 3px;			/* t r b l */
 }
 
@@ -2040,42 +2051,12 @@ td.borderright {
 }
 
 
-/* For lists */
-
-table.liste {
-	width: 100%;
-
-	border-collapse: collapse;
-/*	border-top-color: #FEFEFE;
-	border-top-width: 1px;
-	border-top-color: #CCC;
-	border-top-style: solid;
-*/
-
-	border-right-width: 1px;
-	border-right-color: #CCC;
-	border-right-style: solid;
-
-/*
-	border-bottom-width: 1px;
-	border-bottom-color: #BBBBBB;
-	border-bottom-style: solid;
-*/
-	border-left-width: 1px;
-	border-left-color: #CCC;
-	border-left-style: solid;
-
-	margin-bottom: 2px;
-	margin-top: 0px;
-
-    -moz-box-shadow: 0px 3px 4px #CCC;
-    -webkit-box-shadow: 0px 3px 4px #CC;
-    box-shadow: 0px 3px 4px #CCC;
-}
-table.liste td {
-	padding-right: 2px;
+/* For table with no filter before */
+table.listwithfilterbefore {
+	border-top: none !important;
 }
 
+
 .tagtable, .table-border { display: table; }
 .tagtr, .table-border-row  { display: table-row; }
 .tagtd, .table-border-col, .table-key-border-col, .table-val-border-col { display: table-cell; }
@@ -2323,27 +2304,28 @@ div.liste_titre {
 div.liste_titre {
 	min-height: 26px !important;	/* We cant use height because it's a div and it should be higher if content is more. but min-height does not work either for div */
 
-	padding-left: 3px;
 	padding-top: 2px;
 	padding-bottom: 2px;
 
 	border-right-width: 1px;
-	border-right-color: #CCC;
+	border-right-color: #BBB;
 	border-right-style: solid;
 
 	border-left-width: 1px;
-	border-left-color: #CCC;
+	border-left-color: #BBB;
 	border-left-style: solid;
 
 	border-top-width: 1px;
-	border-top-color: #CCC;
+	border-top-color: #BBB;
 	border-top-style: solid;
 }
 div.liste_titre_bydiv {
 	box-shadow: none;
 	border-collapse: collapse;
 	display: table;
-	padding: 2px 2px 2px 0;
+	padding: 2px 0px 2px 0;
+	box-shadow: 2px 2px 4px #CCC;
+	width: calc(100% - 1px);	/* 1px more, i don't know why */
 }
 tr.liste_titre, tr.liste_titre_sel, form.liste_titre, form.liste_titre_sel, table.dataTable.tr
 {
@@ -2436,6 +2418,10 @@ div.tabBar .noborder {
 	box-shadow: 0px 0px 0px #DDD !important;
 }
 
+#tablelines tr.liste_titre td, .paymenttable tr.liste_titre td, .margintable tr.liste_titre td, .tableforservicepart1 tr.liste_titre td {
+	border-bottom: 1px solid #AAA !important;
+}
+
 
 /*
  *  Boxes
@@ -3424,7 +3410,7 @@ table.dataTable tr.odd td.sorting_1, table.dataTable tr.even td.sorting_1 {
 	background-color: #FFF !important;
 	border-radius: inherit !important;
 }
-.paging_full_numbers a.paginate_button_disabled:hover {
+.paging_full_numbers a.paginate_button_disabled:hover, .paging_full_numbers a.disabled:hover {
     background-color: #FFF !important;
 }
 .paginate_button, .paginate_active {
@@ -3452,7 +3438,9 @@ div.dataTables_length {
 div.dataTables_length select {
 	background: #fff;
 }
-
+.dataTables_wrapper .dataTables_paginate {
+	padding-top: 0px !important;
+}
 
 /* ============================================================================== */
 /*  Select2                                                                       */
@@ -3549,6 +3537,62 @@ a span.select2-chosen
 }
 
 
+/* ============================================================================== */
+/*  Multiselect with checkbox                                                     */
+/* ============================================================================== */
+
+dl.dropdown {
+    margin:0px;
+    padding:0px;
+}
+.dropdown dd, .dropdown dt {
+    margin:0px;
+    padding:0px;
+}
+.dropdown ul {
+    margin: -1px 0 0 0;
+    text-align: left;
+}
+.dropdown dd {
+    position:relative;
+}
+.dropdown dt a {
+    display:block;
+    overflow: hidden;
+    border:0;
+}
+.dropdown dt a span, .multiSel span {
+    cursor:pointer;
+    display:inline-block;
+    padding: 0 3px 2px 0;
+}
+.dropdown dd ul {
+    background-color: #FFF;
+    border: 1px solid #888;
+    display:none;
+    right:0px;						/* pop is align on right */
+    padding: 2px 15px 2px 5px;
+    position:absolute;
+    top:2px;
+    list-style:none;
+    max-height: 200px;
+    overflow: auto;
+}
+.dropdown span.value {
+    display:none;
+}
+.dropdown dd ul li {
+	white-space: nowrap;
+	font-weight: normal;
+}
+.dropdown dd ul li a {
+    padding:5px;
+    display:block;
+}
+.dropdown dd ul li a:hover {
+    background-color:#fff;
+}
+
 
 /* ============================================================================== */
 /*  JMobile                                                                       */
diff --git a/htdocs/theme/md/img/list.png b/htdocs/theme/md/img/list.png
new file mode 100644
index 0000000000000000000000000000000000000000..f5df34a3bc9f8393c23f35e25fb7b18b4b51654b
Binary files /dev/null and b/htdocs/theme/md/img/list.png differ
diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php
index 0db79b5470aabf5de208e00ed27417998a66452a..65c65bdfd98840199c9e76b555040c31ab193ef3 100644
--- a/htdocs/theme/md/style.css.php
+++ b/htdocs/theme/md/style.css.php
@@ -251,6 +251,7 @@ input, textarea, select {
 	border:solid 1px rgba(0,0,0,.3);
 	border-top:solid 1px rgba(0,0,0,.3);
 	border-bottom:solid 1px rgba(0,0,0,.2);
+	background-color: #FFF;
 	/* box-shadow: 1px 1px 1px rgba(0,0,0,.2) inset;*/
 	padding:4px;
 	margin-left:1px;
@@ -456,6 +457,10 @@ textarea.centpercent {
 div.divsearchfield {
 	float: <?php print $left; ?>;
 	margin-<?php print $right; ?>: 12px;
+	margin-<?php print $left; ?>: 2px;
+	margin-top: 3px;
+    margin-bottom: 3px;
+  	padding-left: 2px;	
 }
 div.confirmmessage {
 	padding-top: 6px;
@@ -1551,9 +1556,9 @@ a.tab:link, a.tab:visited, a.tab:hover, a.tab#active {
 	-webkit-box-shadow: 0 -1px 4px rgba(0,0,0,.1);
 	box-shadow: 0 -1px 4px rgba(0,0,0,.1);
 
-    border-right: 1px solid #CCCCCC;
-	border-left: 1px solid #f4f4f4;
-	border-top: 1px solid #D8D8D8;
+	border-right: 1px solid #AAA !important;
+	border-left: 1px solid #AAA !important;
+	border-top: 1px solid #BBB !important;
 
 	-moz-border-radius:3px 3px 0px 0px;
 	-webkit-border-radius:3px 3px 0px 0px;
@@ -1788,7 +1793,7 @@ tr.nocellnopadd td.nobordernopadding, tr.nocellnopadd td.nocellnopadd
 
 table.border, table.dataTable, .table-border, .table-border-col, .table-key-border-col, .table-val-border-col, div.border {
 	border: 1px solid #f4f4f4;
-	border-collapse: collapse;
+	border-collapse: collapse !important;
 	padding: 1px 2px 1px 3px;			/* t r b l */
 }
 
@@ -1822,7 +1827,7 @@ td.border, div.tagtable div div.border {
 
 /* Main boxes */
 
-table.noborder, table.formdoc, div.noborder {
+table.liste, table.noborder, table.formdoc, div.noborder {
 	width: 100%;
 
 	border-collapse: separate !important;
@@ -1856,6 +1861,9 @@ table.noborder tr, div.noborder form {
 	height: 26px;
 }
 
+table.liste th, table.noborder th {
+	padding: 5px 2px 5px 3px;			/* t r b l */
+}
 table.noborder th, table.noborder td, div.noborder form, div.noborder form div {
 	padding: 1px 2px 1px 3px;			/* t r b l */
 }
@@ -1883,35 +1891,9 @@ td.borderright {
 	border-right-style: solid !important;
 }
 
-/* For lists */
-
-table.liste {
-	width: 100%;
-	border-collapse: collapse;
-	border-top-color: #FEFEFE;
-
-	border-right-width: 1px;
-	border-right-color: #CCC;
-	border-right-style: solid;
-
-/*
-	border-bottom-width: 1px;
-	border-bottom-color: #BBBBBB;
-	border-bottom-style: solid;
-*/
-	border-left-width: 1px;
-	border-left-color: #CCC;
-	border-left-style: solid;
-
-	margin-bottom: 2px;
-	margin-top: 0px;
-
-    -moz-box-shadow: 0px 3px 4px #CCC;
-    -webkit-box-shadow: 0px 3px 4px #CC;
-    box-shadow: 0px 3px 4px #CCC;
-}
-table.liste td {
-	padding-right: 2px;
+/* For table with no filter before */
+table.listwithfilterbefore {
+	border-top: none !important;
 }
 
 .tagtable, .table-border { display: table; }
@@ -2050,6 +2032,9 @@ div.pagination li.pagination .active {
 div.pagination li.paginationafterarrows {
 	margin-left: 10px;
 }
+.paginationatbottom {
+	margin-top: 9px;
+}
 
 /* Prepare to remove class pair - impair
 .noborder > tbody > tr:nth-child(even) td {
@@ -2139,6 +2124,29 @@ div.liste_titre .tagtd {
 }
 div.liste_titre {
 	min-height: 26px !important;	/* We cant use height because it's a div and it should be higher if content is more. but min-height doe not work either for div */
+
+	padding-top: 2px;
+	padding-bottom: 2px;
+
+	border-right-width: 1px;
+	border-right-color: #BBB;
+	border-right-style: solid;
+
+	border-left-width: 1px;
+	border-left-color: #BBB;
+	border-left-style: solid;
+
+	border-top-width: 1px;
+	border-top-color: #BBB;
+	border-top-style: solid;
+}
+div.liste_titre_bydiv {
+	box-shadow: none;
+	border-collapse: collapse;
+	display: table;
+	padding: 2px 0px 2px 0;
+	box-shadow: 2px 2px 4px #CCC;
+	width: calc(100% - 1px);	/* 1px more, i don't know why */
 }
 tr.liste_titre, tr.liste_titre_sel, form.liste_titre, form.liste_titre_sel, table.dataTable.tr
 {
@@ -2236,6 +2244,10 @@ div.tabBar .noborder {
 	box-shadow: 0px 0px 0px #f4f4f4 !important;
 }
 
+#tablelines tr.liste_titre td, .paymenttable tr.liste_titre td, .margintable tr.liste_titre td, .tableforservicepart1 tr.liste_titre td {
+	border-bottom: 1px solid #AAA !important;
+}
+
 
 /*
  *  Boxes
@@ -2425,7 +2437,12 @@ td.legendLabel { padding: 2px 2px 2px 0 !important; }
 	margin-bottom: 2px;
 	margin-top: 2px;
 }
-.photointooltip {
+.photowithmargin {
+/*	-webkit-box-shadow: 0px 0px 3px #777;
+	-moz-box-shadow: 0px 0px 3px #777;
+	box-shadow: 0px 0px 3px #777;*/
+}
+.photointoolitp {
 	margin-top: 8px;
 	float: left;
 	/*text-align: center; */
@@ -3221,7 +3238,7 @@ table.dataTable tr.odd td.sorting_1, table.dataTable tr.even td.sorting_1 {
 	background-color: #FFF !important;
 	border-radius: inherit !important;
 }
-.paging_full_numbers a.paginate_button_disabled:hover {
+.paging_full_numbers a.paginate_button_disabled:hover, .paging_full_numbers a.disabled:hover {
     background-color: #FFF !important;
 }
 .paginate_button, .paginate_active {
@@ -3242,10 +3259,26 @@ table.dataTable tr.odd td.sorting_1, table.dataTable tr.even td.sorting_1 {
 	background-image: none;
 }
 
+div.dataTables_length {
+	float: right !important;
+	padding-left: 8px;
+}
+div.dataTables_length select {
+	background: #fff;
+}
+.dataTables_wrapper .dataTables_paginate {
+	padding-top: 0px !important;
+}
+
+
 /* ============================================================================== */
 /*  Select2                                                                       */
 /* ============================================================================== */
 
+.selectoptiondisabledwhite {
+	background: #FFFFFF !important;
+}
+
 .select2-choice,
 .select2-drop.select2-drop-above.select2-drop-active,
 .select2-container-active .select2-choice,
@@ -3333,6 +3366,63 @@ a span.select2-chosen
 }
 
 
+/* ============================================================================== */
+/*  Multiselect with checkbox                                                     */
+/* ============================================================================== */
+
+dl.dropdown {
+    margin:0px;
+    padding:0px;
+}
+.dropdown dd, .dropdown dt {
+    margin:0px;
+    padding:0px;
+}
+.dropdown ul {
+    margin: -1px 0 0 0;
+    text-align: left;
+}
+.dropdown dd {
+    position:relative;
+}
+.dropdown dt a {
+    display:block;
+    overflow: hidden;
+    border:0;
+}
+.dropdown dt a span, .multiSel span {
+    cursor:pointer;
+    display:inline-block;
+    padding: 0 3px 2px 0;
+}
+.dropdown dd ul {
+    background-color: #FFF;
+    border: 1px solid #888;
+    display:none;
+    right:0px;						/* pop is align on right */
+    padding: 2px 15px 2px 5px;
+    position:absolute;
+    top:2px;
+    list-style:none;
+    max-height: 200px;
+    overflow: auto;
+}
+.dropdown span.value {
+    display:none;
+}
+.dropdown dd ul li {
+	white-space: nowrap;
+	font-weight: normal;
+}
+.dropdown dd ul li a {
+    padding:5px;
+    display:block;
+}
+.dropdown dd ul li a:hover {
+    background-color:#fff;
+}
+
+
 /* ============================================================================== */
 /*  JMobile                                                                       */
 /* ============================================================================== */
@@ -3559,7 +3649,7 @@ border-top-right-radius: 6px;
 	#tooltip {
 		position: absolute;
 		width: <?php print dol_size(350,'width'); ?>px;
-	}	
+	}
 }
 @media only screen and (max-width: 570px)
 {
@@ -3573,7 +3663,7 @@ border-top-right-radius: 6px;
 	#tooltip {
 		position: absolute;
 		width: <?php print dol_size(300,'width'); ?>px;
-	}	
+	}
 }
 
 
diff --git a/htdocs/viewimage.php b/htdocs/viewimage.php
index f9f2b54b2929c525ee46df956bb8d9b42635f90b..3f3d7cc27df0ce794ae8eb9ba6b8ee5f9b8005e6 100644
--- a/htdocs/viewimage.php
+++ b/htdocs/viewimage.php
@@ -173,7 +173,7 @@ else					// Open and return file
     // This test is to avoid error images when image is not available (for example thumbs).
     if (! dol_is_file($original_file))
     {
-        $original_file=DOL_DOCUMENT_ROOT.'/public/theme/common/nophoto.jpg';
+        $original_file=DOL_DOCUMENT_ROOT.'/public/theme/common/nophoto.png';
         /*$error='Error: File '.$_GET["file"].' does not exists or filesystems permissions are not allowed';
         dol_print_error(0,$error);
         print $error;
diff --git a/test/phpunit/ModulesTest.php b/test/phpunit/ModulesTest.php
index 3c8b96ffe2addff8bd2fb662f86ddb56f524a141..9210ae1a46a50c1928b1a8f387a2be73a684e087 100755
--- a/test/phpunit/ModulesTest.php
+++ b/test/phpunit/ModulesTest.php
@@ -133,7 +133,7 @@ class ModulesTest extends PHPUnit_Framework_TestCase
 		'Facture','Fckeditor','Ficheinter','Fournisseur','FTP','GeoIPMaxmind','Gravatar','Holiday','Import','Label','Ldap',
 		'Mailing','MailmanSpip','Margin',
 		'Notification','OpenSurvey','Paybox','Paypal','Prelevement','Product','ProductBatch','Projet','Propale',
-		'Salaries','Service','Skype','Societe','Stock','SyncSupplierWebServices','Syslog','Tax','User','WebServices','Workflow');
+		'Salaries','Service','Skype','Societe','Stock','WebServicesClient','Syslog','Tax','User','WebServices','Workflow');
 		foreach($modulelist as $modlabel)
 		{
     		require_once(DOL_DOCUMENT_ROOT.'/core/modules/mod'.$modlabel.'.class.php');