noalyss-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Noalyss-commit] [noalyss] 04/11: CCARD : rewriting interface, code clea


From: dwm
Subject: [Noalyss-commit] [noalyss] 04/11: CCARD : rewriting interface, code cleanup
Date: Thu, 8 Aug 2024 14:52:16 -0400 (EDT)

sparkyx pushed a commit to branch unstable
in repository noalyss.

commit 3f0444a3be2cc5403a1be10749dd25559fc66420
Author: sparkyx <danydb@noalyss.eu>
AuthorDate: Fri Aug 2 16:27:32 2024 +0200

    CCARD : rewriting interface, code cleanup
---
 html/css/style-classic7.css                        |   10 +-
 html/js/noalyss_script.js                          | 3244 ++++++++++----------
 include/ajax/ajax_fiche_def_detail.php             |   16 +-
 include/cfgfiche.inc.php                           |   39 +-
 include/class/fiche_def.class.php                  |  152 +-
 include/lib/icon_action.class.php                  |   15 +-
 .../{fiche_def_list.php => fiche_def-display.php}  |    9 +-
 include/template/fiche_def-input_detail-2.php      |  126 +
 .../fiche_def-input_detail.php}                    |   32 +-
 include/template/fiche_def-input_new.php           |   43 +
 include/template/fiche_def_input.php               |   71 +-
 11 files changed, 1945 insertions(+), 1812 deletions(-)

diff --git a/html/css/style-classic7.css b/html/css/style-classic7.css
index 8a8578e33..f414de9d6 100644
--- a/html/css/style-classic7.css
+++ b/html/css/style-classic7.css
@@ -390,7 +390,7 @@ span.even {
     display:block;
 }
 /* highlight table row */
-tr.odd {
+div.odd,tr.odd {
     background-color: #DCE7F5;
     /*! opacity: 50%; */
 }
@@ -405,7 +405,7 @@ tr.odd > td,tr.even > td {
 tr.highlight {
     font-weight: bold;
 }
-tr.even {
+div.even,tr.even {
     /*! background-color: #F7F8FC; */
 }
 td.odd{
@@ -630,6 +630,12 @@ h1.legend, legend {
     font-style: italic;
     font-size: 19.2px;
     font-size: 1.2rem;
+    border: navy;
+    border-width: 1px;
+    border-style: solid;
+    padding: 1rem;
+    width: 20rem;
+    border-radius: 5px;
 }
 fieldset fieldset legend {
     color:#888;
diff --git a/html/js/noalyss_script.js b/html/js/noalyss_script.js
index 9dfd5697c..b448b4b64 100644
--- a/html/js/noalyss_script.js
+++ b/html/js/noalyss_script.js
@@ -25,46 +25,45 @@
  */
 var ask_reload = 0;
 // tag_choose Element  which contains all the selected tags 
-var tag_choose = ''; 
+var tag_choose = '';
 var aDraggableElement = new Array();
 
 // document.viewport depends of prototype.js
 var viewport = document.viewport.getDimensions(); // Gets the viewport as an 
object literal
 var width = viewport.width; // Usable window width
 var height = viewport.height;
- /**
+
+/**
  * return undefined if nothing is found , otherwise return the DOM elemnt
  * @param {type} p_name_dom
  * @param {type} name_child
  * @returns {undefined}
  */
-function in_child(p_element,name_child) {
-    var element=p_element
-    if ( typeof p_element !== "object" ) {
-      element=document.getElementById(p_element);
-        
+function in_child(p_element, name_child) {
+    var element = p_element
+    if (typeof p_element !== "object") {
+        element = document.getElementById(p_element);
+
     }
-    if ( ! element ) return undefined;
-    for ( var e=0; e < element.childElementCount;e++) {
-        if ( element.childNodes[e].id == name_child) {
+    if (!element) return undefined;
+    for (var e = 0; e < element.childElementCount; e++) {
+        if (element.childNodes[e].id == name_child) {
             return element.childNodes[e];
         }
     }
 }
+
 /**
  * callback function when we just need to update a hidden div with an info
  * message
  */
-function infodiv(req, json)
-{
-    try
-    {
+function infodiv(req, json) {
+    try {
         remove_waiting_box();
         var answer = req.responseXML;
         var a = answer.getElementsByTagName('ctl');
         var html = answer.getElementsByTagName('code');
-        if (a.length === 0)
-        {
+        if (a.length === 0) {
             var rec = req.responseText;
             alert_box('erreur :' + rec);
         }
@@ -73,27 +72,23 @@ function infodiv(req, json)
 
         code_html = unescape_xml(code_html);
         g(name_ctl + "info").innerHTML = code_html;
-    } catch (e)
-    {
+    } catch (e) {
         alert_box("success_box" + e.message);
     }
-    try
-    {
+    try {
         code_html.evalScripts();
-    } catch (e)
-    {
+    } catch (e) {
         alert_box(content[53] + "\n" + e.message);
     }
 
 }
+
 /**
  * delete a row from a table (tb) the input button send the this
  * as second parameter
  */
-function deleteRow(tb, obj)
-{
-    smoke.confirm(content[50], function (e)
-    {
+function deleteRow(tb, obj) {
+    smoke.confirm(content[50], function (e) {
         if (e) {
             var td = obj.parentNode;
             var tr = td.parentNode;
@@ -105,18 +100,18 @@ function deleteRow(tb, obj)
         }
     });
 }
-function deleteRowRec(tb, obj)
-{
+
+function deleteRowRec(tb, obj) {
     var tr = obj;
     var lidx = tr.rowIndex;
     g(tb).deleteRow(lidx);
 }
+
 /*!\brief remove trailing and heading space
  * \param the string to modify
  * \return string without heading and trailing space
  */
-function trim(s)
-{
+function trim(s) {
     return s.replace(/^\s+/, '').replace(/\s+$/, '');
 }
 
@@ -125,33 +120,27 @@ function trim(s)
  * @param ID is a string
  * @return the found object of undefined if not found
  */
-function g(ID)
-{
-    if (document.getElementById)
-    {
+function g(ID) {
+    if (document.getElementById) {
         return this.document.getElementById(ID);
-    } else if (document.all)
-    {
+    } else if (document.all) {
         return document.all[ID];
-    } else
-    {
+    } else {
         return undefined;
     }
 }
+
 /**
  * enable the type of periode
  */
-function enable_type_periode()
-{
-    if ($("type_periode").options[$("type_periode").selectedIndex].value == 0)
-    {
+function enable_type_periode() {
+    if ($("type_periode").options[$("type_periode").selectedIndex].value == 0) 
{
         $('from_periode').enable();
         $('to_periode').enable();
         $('from_date').disable();
         $('to_date').disable();
         $('p_step').enable();
-    } else
-    {
+    } else {
         $('from_periode').disable();
         $('to_periode').disable();
         $('from_date').enable();
@@ -164,8 +153,7 @@ function enable_type_periode()
  * will reload the window but it is dangerous if we have submitted
  * a form with POST
  */
-function refresh_window()
-{
+function refresh_window() {
     window.location.reload();
 }
 
@@ -174,41 +162,34 @@ function refresh_window()
  * we receive a json object as parameter and the function returns the string
  *       with the format variable=value&var2=val2...
  */
-function encodeJSON(obj)
-{
-    if (typeof obj != 'object')
-    {
+function encodeJSON(obj) {
+    if (typeof obj != 'object') {
         alert_box('encodeParameter  obj n\'est pas  un objet');
     }
-    try
-    {
+    try {
         var str = '';
         var e = 0;
-        for (var i in obj)
-        {
-            if (e !== 0)
-            {
+        for (var i in obj) {
+            if (e !== 0) {
                 str += '&';
-            } else
-            {
+            } else {
                 e = 1;
             }
             str += i;
             str += '=' + encodeURI(obj[i]);
         }
         return str;
-    } catch (e)
-    {
+    } catch (e) {
         alert_box('encodeParameter ' + e.message);
         return "";
     }
 }
-function  hide(p_param)
-{
+
+function hide(p_param) {
     g(p_param).style.display = 'none';
 }
-function show(p_param)
-{
+
+function show(p_param) {
     g(p_param).style.display = 'block';
 }
 
@@ -217,23 +198,21 @@ function show(p_param)
  *@param Field id of  the control
  *@param selectIt : the value selected in case of Field is a object select, 
numeric
  */
-function SetFocus(Field, SelectIt)
-{
+function SetFocus(Field, SelectIt) {
     var elem = g(Field);
-    if (elem)
-    {
+    if (elem) {
         elem.focus();
     }
     return true;
 }
+
 /**
  *  set a DOM id with a value in the parent window (the caller),
  @param p_ctl is the name of the control
  @param p_value is the value to set in
  @param p_add if we don't replace the current value but we add something
  */
-function set_inparent(p_ctl, p_value, p_add)
-{
+function set_inparent(p_ctl, p_value, p_add) {
     self.opener.set_value(p_ctl, p_value, p_add);
 }
 
@@ -244,77 +223,64 @@ function set_inparent(p_ctl, p_value, p_add)
  @param p_value is the value to set in
  @param p_add if we don't replace the current value but we add something
  */
-function set_value(p_ctl, p_value, p_add)
-{
-    if (g(p_ctl))
-    {
+function set_value(p_ctl, p_value, p_add) {
+    if (g(p_ctl)) {
         var g_ctrl = g(p_ctl);
-        if (p_add != undefined && p_add === 1)
-        {
-            if (g_ctrl.value)
-            {
+        if (p_add != undefined && p_add === 1) {
+            if (g_ctrl.value) {
                 p_value = g_ctrl.value + ',' + p_value;
             }
         }
-        if (g_ctrl.tagName === 'INPUT')
-        {
+        if (g_ctrl.tagName === 'INPUT') {
             g(p_ctl).value = p_value;
         }
-        if (g_ctrl.tagName === 'SPAN')
-        {
+        if (g_ctrl.tagName === 'SPAN') {
             g(p_ctl).innerHTML = p_value;
         }
-        if (g_ctrl.tagName === 'SELECT')
-        {
+        if (g_ctrl.tagName === 'SELECT') {
             g(p_ctl).value = p_value;
         }
     }
 }
+
 /**
  *  compute small math in numeric cells
  * @param string value
- * @returns float 
+ * @returns float
  */
-function compute_number(value)
-{
+function compute_number(value) {
     var retval = 0;
-    
+
     var exp = new RegExp("^[0-9/*+-.()]+$", "g");
     /*pour éviter un eval() mal intentionné*/
     var res = exp.test(value);
-    if (res)
-    {
+    if (res) {
         /*pour gérer un nombre non valide comme 5..36 ou 5.3.6
          parce qu'il est possible d'entrer plusieurs
          points dans le nombre et eval() lève une exception*/
-        try
-        {
+        try {
             retval = eval(value);
-        } catch (e)
-        {
-           return parseFloat(value);
+        } catch (e) {
+            return parseFloat(value);
         }
         /*pour gérer les divisions par 0*/
-        if (retval == Infinity)
-        {
+        if (retval == Infinity) {
             return 0;
-        } else
-        {
+        } else {
             return retval;
         }
     } else {
         return 0;
     }
 }
+
 /**
  * format the number change comma to point
  *@param HTML obj
  */
-function format_number(obj, p_prec)
-{
+function format_number(obj, p_prec) {
     var precision = 2;
-    if (p_prec === undefined)
-    {
+    if (p_prec === undefined) {
         precision = 2;
     } else {
         precision = p_prec;
@@ -323,12 +289,11 @@ function format_number(obj, p_prec)
     value = value.replace(/ /g, '');
     value = value.replace(/,/g, '.');
 
-    
-    value=compute_number(value);    
-    
+
+    value = compute_number(value);
+
     value = parseFloat(value);
-    if (isNaN(value))
-    {
+    if (isNaN(value)) {
         value = 0;
     }
     var arrondi = Math.pow(10, precision);
@@ -342,29 +307,29 @@ function format_number(obj, p_prec)
  * Replace slash , space and minus by dot
  * @param p_object DOM Element date to check
  */
-function format_date(p_object)
-{
-    p_object.value=p_object.value.replace(/\//g,'.');
-    p_object.value=p_object.value.replace(/-/g,'.');
-    p_object.value=p_object.value.replace(/ /g,'.');
-    p_object.value=p_object.value.replace(/\.\./g,'.');
+function format_date(p_object) {
+    p_object.value = p_object.value.replace(/\//g, '.');
+    p_object.value = p_object.value.replace(/-/g, '.');
+    p_object.value = p_object.value.replace(/ /g, '.');
+    p_object.value = p_object.value.replace(/\.\./g, '.');
     var tmp_value = p_object.value;
-    a_split=tmp_value.split('.');
-    if (a_split[2] && a_split[2].match(/[0-9]{2}/) && a_split[2].length==2) {
-        a_split[2]="20"+a_split[2];
-        p_object.value=a_split[0]+"."+a_split[1]+"."+a_split[2];
+    a_split = tmp_value.split('.');
+    if (a_split[2] && a_split[2].match(/[0-9]{2}/) && a_split[2].length == 2) {
+        a_split[2] = "20" + a_split[2];
+        p_object.value = a_split[0] + "." + a_split[1] + "." + a_split[2];
     }
-    var nMonth=parseFloat(a_split[1])-1;
+    var nMonth = parseFloat(a_split[1]) - 1;
     var ma_date = new Date(a_split[2], nMonth, a_split[0]);
-    if(ma_date.getFullYear()==a_split[2] && ma_date.getMonth()==nMonth && 
ma_date.getDate() == a_split[0]){
+    if (ma_date.getFullYear() == a_split[2] && ma_date.getMonth() == nMonth && 
ma_date.getDate() == a_split[0]) {
         return;
     } else {
-        new Effect.Highlight(p_object.id,{startcolor:"#ff0000"});
-        p_object.value="";
+        new Effect.Highlight(p_object.id, {startcolor: "#ff0000"});
+        p_object.value = "";
     }
-    
-    
+
+
 }
+
 /**
  * check if the object is hidden or show and perform the opposite,
  * show the hidden obj or hide the shown one. With display : flex,
@@ -372,29 +337,34 @@ function format_date(p_object)
  * @param button id of the button
  * @param rotate : if true with rotate the object of p_button otherwise
  */
-function toggleHideShow(p_obj, p_button,rotate)
-{
-    var div_obj=g(p_obj);
+function toggleHideShow(p_obj, p_button, rotate) {
+    var div_obj = g(p_obj);
     var stat = div_obj.style.display;
-    
-    var str = ( g(p_button))?g(p_button).value:"";
 
-    if (stat === 'none')
-    {
+    var str = (g(p_button)) ? g(p_button).value : "";
+
+    if (stat === 'none') {
         // specific for the DIV id search_form
-        if( div_obj.id=='search_form') { show(p_obj); } else { $(p_obj).show()}
+        if (div_obj.id == 'search_form') {
+            show(p_obj);
+        } else {
+            $(p_obj).show()
+        }
         str = str.replace(/Afficher/, content[62]);
         g(p_button).value = str;
-    } else
-    {
+    } else {
         // specific for the DIV di search_form
-        if(!div_obj.id=='search_form') { hide(p_obj); } else { $(p_obj).hide()}
+        if (!div_obj.id == 'search_form') {
+            hide(p_obj);
+        } else {
+            $(p_obj).hide()
+        }
         str = str.replace(/Cacher/, content[63]);
         g(p_button).value = str;
     }
-    if ( ! rotate ) return;
-    if ( stat == "none") {
-        g(p_button).addClassName ("icon-up-open-1")
+    if (!rotate) return;
+    if (stat == "none") {
+        g(p_button).addClassName("icon-up-open-1")
         g(p_button).removeClassName(" icon-down-open-2")
     } else {
         g(p_button).removeClassName("icon-up-open-1")
@@ -403,22 +373,22 @@ function toggleHideShow(p_obj, p_button,rotate)
     }
 
 }
+
 /**
  * open popup with the search windows
  *@param p_dossier the dossier where to search
  *@param p_style style of the detail value are E for expert or S for simple
  */
-function popup_recherche(p_dossier)
-{
+function popup_recherche(p_dossier) {
     var w = window.open("recherche.php?gDossier=" + p_dossier + "&ac=SEARCH", 
'', 'statusbar=no,scrollbars=yes,toolbar=no');
     w.focus();
 }
+
 /**
  * replace the special characters (><'") by their HTML representation
  *@return a string without the offending char.
  */
-function unescape_xml(code_html)
-{
+function unescape_xml(code_html) {
     code_html = code_html.replace(/\&lt;/, '<');
     code_html = code_html.replace(/\&gt;/, '>');
     code_html = code_html.replace(/\&quot;/, '"');
@@ -426,41 +396,47 @@ function unescape_xml(code_html)
     code_html = code_html.replace(/\&amp;/, '&');
     return code_html;
 }
+
 /**
  * Firefox splits the XML into 4K chunk, so to retrieve everything we need
  * to get the different parts thanks textContent
  *@param xmlNode a node (result of var data = 
=answer.getElementsByTagName('code'))
  *@return all the content of the XML node
  */
-function getNodeText(xmlNode)
-{
+function getNodeText(xmlNode) {
     if (!xmlNode)
         return '';
-    if (typeof (xmlNode.textContent) != "undefined")
-    {
+    if (typeof (xmlNode.textContent) != "undefined") {
         return xmlNode.textContent;
     }
     if (xmlNode.firstChild && xmlNode.firstChild.nodeValue)
         return xmlNode.firstChild.nodeValue;
     return "";
 }
+
 /**
  * change the periode in the calendar of the dashboard
  *@param object select
  */
-function change_month(obj)
-{
+function change_month(obj) {
     var action = new Ajax.Request(
-            "ajax_misc.php",
-            {
-                method: 'get',
-                parameters: {gDossier: obj.gDossier, op: 'cal', "per": 
obj.value, t: obj.type_display, notitle: obj.notitle},
-                onFailure: ajax_misc_failure,
-                onSuccess: success_misc
-            }
+        "ajax_misc.php",
+        {
+            method: 'get',
+            parameters: {
+                gDossier: obj.gDossier,
+                op: 'cal',
+                "per": obj.value,
+                t: obj.type_display,
+                notitle: obj.notitle
+            },
+            onFailure: ajax_misc_failure,
+            onSuccess: success_misc
+        }
     );
 
 }
+
 /**
  * basic answer to ajax on success, it will fill the DOMID code with
  * the code. In that case, you need to create the object before the 
Ajax.Request
@@ -470,14 +446,11 @@ function change_month(obj)
  *@param value is the html code, with it you fill the ctl element
  */
 
-function success_misc(req)
-{
-    try
-    {
+function success_misc(req) {
+    try {
         var answer = req.responseXML;
         var html = answer.getElementsByTagName('code');
-        if (html.length === 0)
-        {
+        if (html.length === 0) {
             var rec = req.responseText;
             alert_box('erreur :' + rec);
         }
@@ -485,82 +458,74 @@ function success_misc(req)
         var code_html = getNodeText(nodeXml);
         code_html = unescape_xml(code_html);
         $("user_cal").innerHTML = code_html;
-    } catch (e)
-    {
+    } catch (e) {
         alert_box(e.message);
     }
-    try
-    {
+    try {
         code_html.evalScripts();
-    } catch (e)
-    {
+    } catch (e) {
         alert_box(content[53] + "\n" + e.message);
     }
 
 
 }
-function loading()
-{
-    var str='<div class="loading_msg"></div>';
-    str+='<div class="loading_msg"></div>';
-    str+='<div class="loading_msg"></div>';
-    str+='<div class="loading_msg"></div>';
-    str+='<div class="loading_msg"></div>';
+
+function loading() {
+    var str = '<div class="loading_msg"></div>';
+    str += '<div class="loading_msg"></div>';
+    str += '<div class="loading_msg"></div>';
+    str += '<div class="loading_msg"></div>';
+    str += '<div class="loading_msg"></div>';
 
     return str;
 }
 
-function ajax_misc_failure()
-{
+function ajax_misc_failure() {
     alert_box(content[53]);
 }
+
 /**
  * remove a document_modele
  */
-function cat_doc_remove(p_dt_id, p_dossier)
-{
+function cat_doc_remove(p_dt_id, p_dossier) {
     var queryString = "gDossier=" + p_dossier + "&op=rem_cat_doc" + "&dt_id=" 
+ p_dt_id;
     var action = new Ajax.Request(
-            "ajax_misc.php", {method: 'get',
-                parameters: queryString,
-                onFailure: ajax_misc_failure,
-                onSuccess: function (req)
-                {
-                    try
-                    {
-                        var answer = req.responseXML;
-                        var html = answer.getElementsByTagName('dtid');
-                        if (html.length === 0)
-                        {
-                            var rec = req.responseText;
-                            alert_box('erreur <br>' + rec);
-                            return;
-                        }
-                        var nodeXML = html[0];
-                        var row_id = getNodeText(nodeXML);
-                        if (row_id === 'nok')
-                        {
-                            var message_node = 
answer.getElementsByTagName('message');
-                            var message_text = getNodeText(message_node[0]);
-                            alert_box('erreur <br>' + message_text);
-                            return;
-                        }
-                        $('row' + row_id).style.textDecoration = 
"line-through";
-                        $('X' + row_id).style.display = 'none';
-                        $('M' + row_id).style.display = 'none';
-                    } catch (e)
-                    {
-                        alert_box(e.message);
+        "ajax_misc.php", {
+            method: 'get',
+            parameters: queryString,
+            onFailure: ajax_misc_failure,
+            onSuccess: function (req) {
+                try {
+                    var answer = req.responseXML;
+                    var html = answer.getElementsByTagName('dtid');
+                    if (html.length === 0) {
+                        var rec = req.responseText;
+                        alert_box('erreur <br>' + rec);
+                        return;
+                    }
+                    var nodeXML = html[0];
+                    var row_id = getNodeText(nodeXML);
+                    if (row_id === 'nok') {
+                        var message_node = 
answer.getElementsByTagName('message');
+                        var message_text = getNodeText(message_node[0]);
+                        alert_box('erreur <br>' + message_text);
+                        return;
                     }
+                    $('row' + row_id).style.textDecoration = "line-through";
+                    $('X' + row_id).style.display = 'none';
+                    $('M' + row_id).style.display = 'none';
+                } catch (e) {
+                    alert_box(e.message);
                 }
             }
+        }
     );
 }
+
 /**
  * change a document_modele
  */
-function cat_doc_change(p_dt_id, p_dossier)
-{
+function cat_doc_change(p_dt_id, p_dossier) {
     var queryString = "gDossier=" + p_dossier + "&op=mod_cat_doc" + "&dt_id=" 
+ p_dt_id;
     var nTop = calcy(posY);
     var nLeft = "200px";
@@ -569,17 +534,17 @@ function cat_doc_change(p_dt_id, p_dossier)
     removeDiv('change_doc_div');
     waiting_box();
     var action = new Ajax.Request(
-            "ajax_misc.php",
-            {
-                method: 'get', parameters: queryString,
-                onFailure: ajax_misc_failure,
-                onSuccess: function (req) {
-                    remove_waiting_box();
-                    add_div({id: 'change_doc_div', style: str_style, cssclass: 
'inner_box', drag: "1"});
-                    $('change_doc_div').innerHTML = req.responseText;
+        "ajax_misc.php",
+        {
+            method: 'get', parameters: queryString,
+            onFailure: ajax_misc_failure,
+            onSuccess: function (req) {
+                remove_waiting_box();
+                add_div({id: 'change_doc_div', style: str_style, cssclass: 
'inner_box', drag: "1"});
+                $('change_doc_div').innerHTML = req.responseText;
 
-                }
             }
+        }
     );
 }
 
@@ -588,10 +553,8 @@ function cat_doc_change(p_dt_id, p_dossier)
  *@param obj with 4 attributes gdossier, ctl,popup
  *@param p_function_callback callback function to be called after,
  */
-function popup_select_tva(obj,p_function_callback)
-{
-    try
-    {
+function popup_select_tva(obj, p_function_callback) {
+    try {
         if ($('tva_select')) {
             removeDiv('tva_select');
         }
@@ -605,48 +568,50 @@ function popup_select_tva(obj,p_function_callback)
             queryString += '&filter=' + obj.filter;
 
         var action = new Ajax.Request(
-                "ajax_misc.php",
-                {method: 'get',
-                    parameters: queryString,
-                    onFailure: ajax_misc_failure,
-                    onSuccess: function (req)
-                    {
-                        try
-                        {
-                            var answer = req.responseXML;
-                            var popup = answer.getElementsByTagName('popup');
-                            if (popup.length === 0)
-                            {
-                                var rec = req.responseText;
-                                alert_box('erreur :' + rec);
-                            }
-                            var html = answer.getElementsByTagName('code');
-
-                            var name_ctl = popup[0].firstChild.nodeValue;
-                            var nodeXml = html[0];
-                            var code_html = getNodeText(nodeXml);
-                            code_html = unescape_xml(code_html);
+            "ajax_misc.php",
+            {
+                method: 'get',
+                parameters: queryString,
+                onFailure: ajax_misc_failure,
+                onSuccess: function (req) {
+                    try {
+                        var answer = req.responseXML;
+                        var popup = answer.getElementsByTagName('popup');
+                        if (popup.length === 0) {
+                            var rec = req.responseText;
+                            alert_box('erreur :' + rec);
+                        }
+                        var html = answer.getElementsByTagName('code');
 
-                            var nTop = posY - 200;
-                            var nLeft = "15%";
-                            var str_style = "top:" + nTop + "px;left:" + nLeft 
+ ";right:" + nLeft + ";width:55em;height:auto";
+                        var name_ctl = popup[0].firstChild.nodeValue;
+                        var nodeXml = html[0];
+                        var code_html = getNodeText(nodeXml);
+                        code_html = unescape_xml(code_html);
 
-                            var popup = {'id': 'tva_select', 'cssclass': 
'inner_box', 'style': str_style, 'html': code_html, 'drag': false};
-                            add_div(popup);
-                            $('lk_tva_select_table').focus();
-                            sorttable.makeSortable($('tva_select_table'));
-                            if ( p_function_callback) {
-                                p_function_callback.call(null);
-                            }
-                        } catch (e)
-                        {
-                            alert_box("success_popup_select_tva " + e.message);
+                        var nTop = posY - 200;
+                        var nLeft = "15%";
+                        var str_style = "top:" + nTop + "px;left:" + nLeft + 
";right:" + nLeft + ";width:55em;height:auto";
+
+                        var popup = {
+                            'id': 'tva_select',
+                            'cssclass': 'inner_box',
+                            'style': str_style,
+                            'html': code_html,
+                            'drag': false
+                        };
+                        add_div(popup);
+                        $('lk_tva_select_table').focus();
+                        sorttable.makeSortable($('tva_select_table'));
+                        if (p_function_callback) {
+                            p_function_callback.call(null);
                         }
+                    } catch (e) {
+                        alert_box("success_popup_select_tva " + e.message);
                     }
                 }
+            }
         );
-    } catch (e)
-    {
+    } catch (e) {
         alert_box("popup_select_tva " + e.message);
     }
 }
@@ -656,40 +621,36 @@ function popup_select_tva(obj,p_function_callback)
  * display the popup with vat and explanation
  *@param obj with 4 attributes gdossier, ctl,popup
  */
-function set_tva_label(obj)
-{
-    try
-    {
+function set_tva_label(obj) {
+    try {
         var queryString = "gDossier=" + obj.gDossier + "&op=label_tva" + 
"&id=" + obj.value;
         if (obj.jcode)
             queryString += '&code=' + obj.jcode;
         var action = new Ajax.Request(
-                "ajax_misc.php",
-                {method: 'get',
-                    parameters: queryString,
-                    onFailure: ajax_misc_failure,
-                    onSuccess: success_set_tva_label
-                }
+            "ajax_misc.php",
+            {
+                method: 'get',
+                parameters: queryString,
+                onFailure: ajax_misc_failure,
+                onSuccess: success_set_tva_label
+            }
         );
-    } catch (e)
-    {
+    } catch (e) {
         alert_box("set_tva_label " + e.message);
     }
 }
+
 /**
  * display the popup with vat and explanations
  *@param string req answer from ajax
  */
-function success_set_tva_label(req)
-{
-    try
-    {
+function success_set_tva_label(req) {
+    try {
         var answer = req.responseXML;
         var code = answer.getElementsByTagName('code');
         var value = answer.getElementsByTagName('value');
 
-        if (code.length === 0)
-        {
+        if (code.length === 0) {
             var rec = req.responseText;
             alert_box('erreur :' + rec);
         }
@@ -697,8 +658,7 @@ function success_set_tva_label(req)
         var label_code = code[0].firstChild.nodeValue;
         var label_value = value[0].firstChild.nodeValue;
         set_value(label_code, label_value);
-    } catch (e)
-    {
+    } catch (e) {
         alert_box("success_set_tva_label " + e.message);
     }
 
@@ -716,10 +676,8 @@ function success_set_tva_label(req)
  * @returns html dom element
  * @see add_div
  */
-function create_div(obj)
-{
-    try
-    {
+function create_div(obj) {
+    try {
         var top = document;
         var elt = null;
         if (!$(obj.id)) {
@@ -727,27 +685,21 @@ function create_div(obj)
         } else {
             elt = $(obj.id);
         }
-        if (obj.id)
-        {
+        if (obj.id) {
             elt.setAttribute('id', obj.id);
         }
-        if (obj.style)
-        {
-            if (elt.style.setAttribute)
-            { /* IE7 bug */
+        if (obj.style) {
+            if (elt.style.setAttribute) { /* IE7 bug */
                 elt.style.setAttribute('cssText', obj.style);
-            } else
-            { /* good Browser */
+            } else { /* good Browser */
                 elt.setAttribute('style', obj.style);
             }
         }
-        if (obj.cssclass)
-        {
+        if (obj.cssclass) {
             elt.setAttribute('class', obj.cssclass); /* FF */
             elt.setAttribute('className', obj.cssclass); /* IE */
         }
-        if (obj.html)
-        {
+        if (obj.html) {
             elt.innerHTML = obj.html;
         }
 
@@ -757,22 +709,22 @@ function create_div(obj)
 
         /* if ( obj.effect && obj.effect != 'none' ) { 
Effect.Grow(obj.id,{direction:'top-right',duration:0.1}); }
          else if ( ! obj.effect ){ 
Effect.Grow(obj.id,{direction:'top-right',duration:0.1}); }*/
-        if (obj.drag)
-        {
-            aDraggableElement[obj.id] = new Draggable(obj.id, {starteffect: 
function ()
-                {
-                    new Effect.Highlight(obj.id, {scroll: window, queue: 
'end'});
-                }}
+        if (obj.drag) {
+            aDraggableElement[obj.id] = new Draggable(obj.id, {
+                    starteffect: function () {
+                        new Effect.Highlight(obj.id, {scroll: window, queue: 
'end'});
+                    }
+                }
             );
 
 
         }
         return elt;
-    } catch (e)
-    {
+    } catch (e) {
         error_message("create_div " + e.message);
     }
 }
+
 /**
  * add dynamically a object for AJAX
  *@param obj.
@@ -783,51 +735,47 @@ function create_div(obj)
  *   - html is the content
  *   - drag is the div can be moved
  */
-function add_div(obj)
-{
+function add_div(obj) {
     try {
         var elt = create_div(obj);
         /* elt.setStyle({visibility:'visible'}); */
         elt.style.visibility = 'visible';
         elt.show();
         return elt;
-    } catch (e)
-    {
+    } catch (e) {
         alert_box("add_div " + e.message);
     }
 }
+
 /**
  * remove a object created with add_div
  * @param elt id of the elt
  */
-function removeDiv(elt)
-{
-    if (g(elt))
-    {
+function removeDiv(elt) {
+    if (g(elt)) {
         document.body.removeChild(g(elt));
     }
     // if reloaded if asked the window will be reloaded when
     // the box is closed
-    if (ask_reload === 1)
-    {
+    if (ask_reload === 1) {
         // avoid POST window.location = window.location.href;
         window.location.reload();
     }
 }
-function waiting_node()
-{
+
+function waiting_node() {
     $('info_div').innerHTML = 'Un instant';
     $('info_div').style.display = "block";
 }
+
 /**
  *show a box while loading
  *must be remove when ajax is successfull
  * the id is wait_box
  */
-function waiting_box()
-{
+function waiting_box() {
     var obj = {
-        id: 'wait_box', html:  loading()+'<p>' + content[65] + '</p>'
+        id: 'wait_box', html: loading() + '<p>' + content[65] + '</p>'
     };
     var y = fixed_position(10, 250)
     obj.style = y + ";width:20%;margin-left:40%;";
@@ -839,6 +787,7 @@ function waiting_box()
 
 
 }
+
 /**
  * call add_div to add a DIV and after call the ajax
  * the queryString, the callback for function for success and error management
@@ -851,42 +800,37 @@ function waiting_box()
  *  - obj.fixed optional let you determine the position, otherwise works like 
IPopup
  *@see add_div IBox
  */
-function show_box(obj)
-{
+function show_box(obj) {
     add_div(obj);
-    if (!obj.fixed)
-    {
+    if (!obj.fixed) {
         g(obj.id).style.top = calcy(40) + "px";
         show(obj.id);
-    } else
-    {
+    } else {
         show(obj.id);
     }
 
     var action = new Ajax.Request(
-            obj.callback,
-            {
-                method: 'GET',
-                parameters: obj.qs,
-                onFailure: eval(obj.js_error),
-                onSuccess: eval(obj.js_success)
-            });
+        obj.callback,
+        {
+            method: 'GET',
+            parameters: obj.qs,
+            onFailure: eval(obj.js_error),
+            onSuccess: eval(obj.js_success)
+        });
 }
+
 /**
  * receive answer from ajax and just display it into the IBox
  * XML must contains at least 2 fields : ctl is the ID of the IBOX and
  * code is the HTML to put in it
  *@see fill_box
  */
-function success_box(req, json)
-{
-    try
-    {
+function success_box(req, json) {
+    try {
         var answer = req.responseXML;
         var a = answer.getElementsByTagName('ctl');
         var html = answer.getElementsByTagName('code');
-        if (a.length === 0)
-        {
+        if (a.length === 0) {
             var rec = req.responseText;
             alert_box(content[48] + rec);
         }
@@ -899,30 +843,25 @@ function success_box(req, json)
 
         if (name_ctl == 'popup')
             g(name_ctl).style.width = 'auto';
-    } catch (e)
-    {
+    } catch (e) {
         alert_box("success_box" + e.message);
     }
-    try
-    {
+    try {
         code_html.evalScripts();
-    } catch (e)
-    {
+    } catch (e) {
         alert_box(content[53] + "\n" + e.message);
     }
 }
 
-function error_box()
-{
+function error_box() {
     alert_box(content[53]);
 }
+
 /**
  * show the ledger choice
  */
-function show_ledger_choice(json_obj)
-{
-    try
-    {
+function show_ledger_choice(json_obj) {
+    try {
         waiting_box();
         var i = 0;
         var query = "gDossier=" + json_obj.dossier + '&type=' + json_obj.type 
+ '&div=' + json_obj.div + '&op=ledger_show';
@@ -933,68 +872,71 @@ function show_ledger_choice(json_obj)
         }
         query = encodeURI(query);
         var action = new Ajax.Request(
-                "ajax_misc.php",
-                {method: 'get',
-                    parameters: query,
-                    onFailure: ajax_misc_failure,
-                    onSuccess: function (req, json) {
-                        try {
-                            if ( req.responseText === 'NOCONX') { 
reconnect();return;}
-                            var obj = {
-                                id: json_obj.div + 'jrn_search',
-                                cssclass: 'inner_box',
-                                style: 
';position:absolute;width:auto;z-index:20;margin-left:20%',
-                                drag: 1
-                            };
-                            //var y=calcy(posY);
-                            var y = posY;
-
-                            obj.style = "top:" + y + 'px;' + obj.style;
-                            /* if ( json_obj.class ) 
-                             { 
-                             obj.cssclass=json_obj.class;
-                             }*/
-                            add_div(obj);
-
-
-                            var answer = req.responseXML;
-                            var a = answer.getElementsByTagName('ctl');
-                            var html = answer.getElementsByTagName('code');
-                            if (a.length === 0) {
-                                var rec = req.responseText;
-                                alert_box('erreur :' + rec);
-                            }
-                            var name_ctl = a[0].firstChild.nodeValue;
-                            var code_html = getNodeText(html[0]);
+            "ajax_misc.php",
+            {
+                method: 'get',
+                parameters: query,
+                onFailure: ajax_misc_failure,
+                onSuccess: function (req, json) {
+                    try {
+                        if (req.responseText === 'NOCONX') {
+                            reconnect();
+                            return;
+                        }
+                        var obj = {
+                            id: json_obj.div + 'jrn_search',
+                            cssclass: 'inner_box',
+                            style: 
';position:absolute;width:auto;z-index:20;margin-left:20%',
+                            drag: 1
+                        };
+                        //var y=calcy(posY);
+                        var y = posY;
+
+                        obj.style = "top:" + y + 'px;' + obj.style;
+                        /* if ( json_obj.class )
+                         {
+                         obj.cssclass=json_obj.class;
+                         }*/
+                        add_div(obj);
 
-                            code_html = unescape_xml(code_html);
-                            remove_waiting_box();
-                            g(obj.id).innerHTML = code_html;
 
-                        } catch (e) {
-                            alert_box("show_ledger_callback" + e.message);
-                        }
-                        try {
-                            code_html.evalScripts();
-                        } catch (e) {
-                            alert_box(content[53] + "\n" + e.message);
+                        var answer = req.responseXML;
+                        var a = answer.getElementsByTagName('ctl');
+                        var html = answer.getElementsByTagName('code');
+                        if (a.length === 0) {
+                            var rec = req.responseText;
+                            alert_box('erreur :' + rec);
                         }
+                        var name_ctl = a[0].firstChild.nodeValue;
+                        var code_html = getNodeText(html[0]);
+
+                        code_html = unescape_xml(code_html);
+                        remove_waiting_box();
+                        g(obj.id).innerHTML = code_html;
 
+                    } catch (e) {
+                        alert_box("show_ledger_callback" + e.message);
+                    }
+                    try {
+                        code_html.evalScripts();
+                    } catch (e) {
+                        alert_box(content[53] + "\n" + e.message);
                     }
 
                 }
+
+            }
         );
     } catch (e) {
         alert_box('show_ledger_choice' + e.message);
     }
 }
+
 /**
  * hide the ledger choice
  */
-function hide_ledger_choice(p_frm_search)
-{
-    try
-    {
+function hide_ledger_choice(p_frm_search) {
+    try {
         var nb = $(p_frm_search).nb_jrn.value;
         var div = "";
         if ($(p_frm_search).div) {
@@ -1023,25 +965,25 @@ function hide_ledger_choice(p_frm_search)
     }
 
 }
+
 /**
  * show the cat of ledger choice
  */
-function show_cat_choice()
-{
+function show_cat_choice() {
     g('div_cat').style.visibility = 'visible';
 }
+
 /**
  * hide the cat of ledger choice
  */
-function hide_cat_choice()
-{
+function hide_cat_choice() {
     g('div_cat').style.visibility = 'hidden';
 }
+
 /**
  * add a row for the forecast item
  */
-function for_add_row(tableid)
-{
+function for_add_row(tableid) {
     style = 'class="input_text"';
     var mytable = g(tableid).tBodies[0];
     var nNumberRow = mytable.rows.length;
@@ -1050,8 +992,7 @@ function for_add_row(tableid)
     var nNumberCell = rowToCopy.cells.length;
     var nb = g("nbrow");
     var oNewRow = mytable.insertRow(nNumberRow);
-    for (var e = 0; e < nNumberCell; e++)
-    {
+    for (var e = 0; e < nNumberCell; e++) {
         var newCell = oRow.insertCell(e);
         var tt = rowToCopy.cells[e].innerHTML;
         new_tt = tt.replace(/an_cat0/g, "an_cat" + nb.value);
@@ -1070,86 +1011,75 @@ function for_add_row(tableid)
     $("an_cat_amount" + nb.value).value = "0";
     nb.value++;
 }
+
 /**
  * toggle all the checkbox in a given form
  * @param form_id id of the form
  */
-function toggle_checkbox(form_id)
-{
+function toggle_checkbox(form_id) {
     var form = g(form_id);
-    for (var i = 0; i < form.length; i++)
-    {
+    for (var i = 0; i < form.length; i++) {
         var e = form.elements[i];
-        if (e.type === 'checkbox')
-        {
-            if (e.checked === true)
-            {
+        if (e.type === 'checkbox') {
+            if (e.checked === true) {
                 e.checked = false;
-            } else
-            {
+            } else {
                 e.checked = true;
             }
         }
     }
 }
+
 /**
  * select all the checkbox in a given form
  * @param form_id id of the form
  */
-function select_checkbox(form_id)
-{
+function select_checkbox(form_id) {
     var form = $(form_id);
-    for (var i = 0; i < form.length; i++)
-    {
+    for (var i = 0; i < form.length; i++) {
         var e = form.elements[i];
-        if (e.type === 'checkbox')
-        {
+        if (e.type === 'checkbox') {
             e.checked = true;
         }
     }
 }
+
 /**
- * select all the checkbox in a given form if the specific attribute 
+ * select all the checkbox in a given form if the specific attribute
  * has the given value
  * @param form_id id of the form
  * @param attribute name
  * @param attribute value
  */
-function select_checkbox_attribute(form_id, p_attribute_name, 
p_attribute_value)
-{
+function select_checkbox_attribute(form_id, p_attribute_name, 
p_attribute_value) {
     var form = $(form_id);
-    for (var i = 0; i < form.length; i++)
-    {
+    for (var i = 0; i < form.length; i++) {
         var e = form.elements[i];
-        if (e.type === 'checkbox' && e.getAttribute(p_attribute_name) == 
p_attribute_value)
-        {
+        if (e.type === 'checkbox' && e.getAttribute(p_attribute_name) == 
p_attribute_value) {
             e.checked = true;
         }
     }
 }
+
 /**
  * unselect all the checkbox in a given form
  * @param form_id id of the form
  */
-function unselect_checkbox(form_id)
-{
+function unselect_checkbox(form_id) {
     var form = $(form_id);
-    for (var i = 0; i < form.length; i++)
-    {
+    for (var i = 0; i < form.length; i++) {
         var e = form.elements[i];
-        if (e.type === 'checkbox')
-        {
+        if (e.type === 'checkbox') {
             e.checked = false;
         }
     }
 }
+
 /**
  * show the calculator
  */
-function show_calc()
-{
-    if (g('calc1'))
-    {
+function show_calc() {
+    if (g('calc1')) {
         this.document.getElementById('inp').value = "";
         this.document.getElementById('inp').focus();
         return;
@@ -1163,48 +1093,52 @@ function show_calc()
     shtml += '<form name="calc_line"  method="GET" onSubmit="cal();return 
false;" >' + content[68] + '<input class="input_text" type="text" id="inp" 
name="calculator"> <input type="button" value="Efface" class="button" 
onClick="Clean();return false;" > <input type="button" value="Efface 
historique" class="button" onClick="CleanHistory();return false;" > <input 
type="button" class="button" value="Fermer" onClick="removeDiv(\'calc1\')" >';
     shtml += '</form><span class="highligth" style="display:block" 
id="sub_total">  ' + content[67] + '  </span><span style="display:block"  
id="listing"> </span>';
 
-    var obj = {id: sid, html: shtml,
+    var obj = {
+        id: sid, html: shtml,
         drag: false, style: 'z-index:98'
     };
     add_div(obj);
     this.document.getElementById('inp').focus();
 }
-function display_periode(p_dossier, p_id)
-{
 
-    try
-    {
+function display_periode(p_dossier, p_id) {
+
+    try {
         var queryString = "gDossier=" + p_dossier + "&op=input_per" + "&p_id=" 
+ p_id;
-        var popup = {'id': 'mod_periode', 'cssclass': 'inner_box', 'html': 
loading(), 'style': 'width:30em', 'drag': true};
+        var popup = {
+            'id': 'mod_periode',
+            'cssclass': 'inner_box',
+            'html': loading(),
+            'style': 'width:30em',
+            'drag': true
+        };
         if (!$('mod_periode')) {
             add_div(popup);
         }
         var action = new Ajax.Request(
-                "ajax_misc.php",
-                {method: 'get',
-                    parameters: queryString,
-                    onFailure: ajax_misc_failure,
-                    onSuccess: success_display_periode
-                }
+            "ajax_misc.php",
+            {
+                method: 'get',
+                parameters: queryString,
+                onFailure: ajax_misc_failure,
+                onSuccess: success_display_periode
+            }
         );
         $('mod_periode').style.top = (posY - 70) + "px";
         $('mod_periode').style.left = (posX - 70) + "px";
-    } catch (e)
-    {
+    } catch (e) {
         alert_box("display_periode " + e.message);
     }
 
 }
-function success_display_periode(req)
-{
-    try
-    {
+
+function success_display_periode(req) {
+    try {
 
         var answer = req.responseXML;
         var html = answer.getElementsByTagName('data');
 
-        if (html.length === 0)
-        {
+        if (html.length === 0) {
             var rec = req.responseText;
             alert_box('erreur :' + rec);
         }
@@ -1213,41 +1147,38 @@ function success_display_periode(req)
         code_html = unescape_xml(code_html);
 
         $('mod_periode').innerHTML = code_html;
-    } catch (e)
-    {
+    } catch (e) {
         alert_box("success_display_periode".e.message);
     }
-    try
-    {
+    try {
         code_html.evalScripts();
-    } catch (e)
-    {
+    } catch (e) {
         alert_box(content[53] + "\n" + e.message);
     }
 
 }
-function save_periode(obj)
-{
-    try
-    {
+
+function save_periode(obj) {
+    try {
         var queryString = $(obj).serialize() + "&op=save_per";
 
         var action = new Ajax.Request(
-                "ajax_misc.php",
-                {method: 'post',
-                    parameters: queryString,
-                    onFailure: ajax_misc_failure,
-                    onSuccess: success_display_periode
-                }
+            "ajax_misc.php",
+            {
+                method: 'post',
+                parameters: queryString,
+                onFailure: ajax_misc_failure,
+                onSuccess: success_display_periode
+            }
         );
 
-    } catch (e)
-    {
+    } catch (e) {
         alert_box("display_periode " + e.message);
     }
 
     return false;
 }
+
 /**
  * basic answer to ajax on success, it will fill the ctl with
  * the code. In that case, you need to create the object before the 
Ajax.Request
@@ -1256,10 +1187,12 @@ function save_periode(obj)
  *@param ctl is the ID of the object containing the html (div, button...)
  *@param code is the html code, with it you fill the ctl element
  */
-function fill_box(req)
-{
+function fill_box(req) {
     try {
-        if (req.responseText=='NOCONX') { reconnect(); return;}
+        if (req.responseText == 'NOCONX') {
+            reconnect();
+            return;
+        }
         remove_waiting_box();
 
         var answer = req.responseXML;
@@ -1292,13 +1225,13 @@ function fill_box(req)
 
 
 }
+
 /**
  *display a popin to  let you modified a predefined operation
  *@param dossier_id
  *@param od_id from table op_predef
  */
-function mod_predf_op(dossier_id, od_id,p_ledger)
-{
+function mod_predf_op(dossier_id, od_id, p_ledger) {
     var target = "mod_predf_op";
     removeDiv(target);
     var str_style = "top:10%;left:2%;width:96%";
@@ -1307,31 +1240,30 @@ function mod_predf_op(dossier_id, od_id,p_ledger)
 
     add_div(div);
 
-    var qs = "gDossier=" + dossier_id + '&op=mod_predf&id=' + 
od_id+'&ledger_id='+p_ledger;
+    var qs = "gDossier=" + dossier_id + '&op=mod_predf&id=' + od_id + 
'&ledger_id=' + p_ledger;
 
     var action = new Ajax.Request('ajax_misc.php',
-            {
-                method: 'get',
-                parameters: qs,
-                onFailure: null,
-                onSuccess: fill_box
-            }
+        {
+            method: 'get',
+            parameters: qs,
+            onFailure: null,
+            onSuccess: fill_box
+        }
     );
 
 }
 
-function save_predf_op(obj)
-{
+function save_predf_op(obj) {
     waiting_box();
     var querystring = $(obj).serialize() + '&op=save_predf';
     // Create a ajax request to get all the person
     var action = new Ajax.Request('ajax_misc.php',
-            {
-                method: 'post',
-                parameters: querystring,
-                onFailure: null,
-                onSuccess: refresh_window
-            }
+        {
+            method: 'post',
+            parameters: querystring,
+            onFailure: null,
+            onSuccess: refresh_window
+        }
     );
 
     return false;
@@ -1343,23 +1275,19 @@ function save_predf_op(obj)
  * @param {type} dossier
  * @param {type} ctl_concern
  * @param {float or string} amount_id Amount or DOM Id of the element 
containing the amount
- * @param {float} ledger 
+ * @param {float} ledger
  * @param {type} p_id_targetDom Element (div) where to display the search 
result
  * @param p_tiers id of the Tiers
  * @returns {undefined}
  */
-function search_reconcile(dossier, ctl_concern, amount_id, ledger, 
p_id_target, p_tiers)
-{
-    if (amount_id === undefined)
-    {
+function search_reconcile(dossier, ctl_concern, amount_id, ledger, 
p_id_target, p_tiers) {
+    if (amount_id === undefined) {
         amount_id = 0;
-    } else if ($(amount_id))
-    {
-        if ($(amount_id).value)
-        {
+    } else if ($(amount_id)) {
+        if ($(amount_id).value) {
             amount_id = $(amount_id).value;
         } else if
-                ($(amount_id).innerHTML) {
+        ($(amount_id).innerHTML) {
             amount_id = $(amount_id).innerHTML;
         }
     }
@@ -1379,7 +1307,8 @@ function search_reconcile(dossier, ctl_concern, 
amount_id, ledger, p_id_target,
     var hide_operation = $(ctl_concern).getAttribute("hide_operation");
     var single_operation = $(ctl_concern).getAttribute("single_operation");
 
-    var param_send = {gDossier: dossier,
+    var param_send = {
+        gDossier: dossier,
         ctlc: ctl_concern,
         op: 'search_op',
         ac: 'JSSEARCH',
@@ -1388,31 +1317,31 @@ function search_reconcile(dossier, ctl_concern, 
amount_id, ledger, p_id_target,
         target: target,
         tiers: tiers,
         hide_operation: hide_operation,
-        single_operation:single_operation
+        single_operation: single_operation
     };
 
     var qs = encodeJSON(param_send);
 
     var action = new Ajax.Request('ajax_misc.php',
-            {
-                method: 'get',
-                parameters: qs,
-                onFailure: null,
-                onSuccess: function (req) {
-                    remove_waiting_box();
-                    var div = {id: target, cssclass: 'inner_box', style: 
str_style, drag: 0};
-                    add_div(div);
-                    $(target).innerHTML = req.responseText;
-                    req.responseText.evalScripts();
-                }
+        {
+            method: 'get',
+            parameters: qs,
+            onFailure: null,
+            onSuccess: function (req) {
+                remove_waiting_box();
+                var div = {id: target, cssclass: 'inner_box', style: 
str_style, drag: 0};
+                add_div(div);
+                $(target).innerHTML = req.responseText;
+                req.responseText.evalScripts();
             }
+        }
     );
 }
+
 /**
  * search in a popin obj if the object form
  */
-function search_operation(obj)
-{
+function search_operation(obj) {
     try {
         var dossier = g('gDossier').value;
         waiting_box();
@@ -1422,23 +1351,23 @@ function search_operation(obj)
         }
         var qs = Form.serialize('search_form_ajx') + "&op=search_op";
         var action = new Ajax.Request('ajax_misc.php',
-                {
-                    method: 'get',
-                    parameters: qs,
-                    onFailure: null,
-                    onSuccess: function (req) {
-                        remove_waiting_box();
-                        $(target).innerHTML = req.responseText;
-                        req.responseText.evalScripts();
-                    }
+            {
+                method: 'get',
+                parameters: qs,
+                onFailure: null,
+                onSuccess: function (req) {
+                    remove_waiting_box();
+                    $(target).innerHTML = req.responseText;
+                    req.responseText.evalScripts();
                 }
+            }
         );
-    } catch (e)
-    {
+    } catch (e) {
         remove_waiting_box();
         alert_box(e.message);
     }
 }
+
 /**
  * Update the field e_concerned, from class_iconcerned
  * Value is the field where to put the quick-code but only if one checkbox has 
been
@@ -1446,25 +1375,20 @@ function search_operation(obj)
  * @param {type} obj
  * @returns {undefined}
  */
-function set_reconcile(obj)
-{
+function set_reconcile(obj) {
 
-    try
-    {
+    try {
         var ctlc = obj.elements['ctlc'];
         var tiers = obj.elements['tiers'];
         if (!obj.elements['target'])
             return;
         var target = obj.elements['target'].value;
         var single_operation = obj.elements['single_operation'].value;
-        for (var e = 0; e < obj.elements.length; e++)
-        {
+        for (var e = 0; e < obj.elements.length; e++) {
 
             var elmt = obj.elements[e];
-            if (elmt.type === "checkbox")
-            {
-                if (elmt.checked === true)
-                {
+            if (elmt.type === "checkbox") {
+                if (elmt.checked === true) {
                     var str_name = elmt.name;
                     var nValue = str_name.replace("jr_concerned", "");
                     if ($(ctlc.value).value != '') {
@@ -1475,50 +1399,50 @@ function set_reconcile(obj)
                         if (tiers && tiers.value != "") {
                             $(tiers.value).value = elmt.value;
                             /* set the name */
-                            new Ajax.Request("fid.php",{
-                                method:"get",
-                                
parameters:{gDossier:obj.elements['gDossier'].value,"FID":elmt.value},
-                                onSuccess:function(req){
+                            new Ajax.Request("fid.php", {
+                                method: "get",
+                                parameters: {gDossier: 
obj.elements['gDossier'].value, "FID": elmt.value},
+                                onSuccess: function (req) {
                                     // find the row number
                                     //tiers.value = e_othern
-                                    var tiers_card=new String(tiers.value);
-                                    var num=tiers_card.replace("e_other","");
-                                    var tiers_name_id="e_other"+"_name"+num;
+                                    var tiers_card = new String(tiers.value);
+                                    var num = tiers_card.replace("e_other", 
"");
+                                    var tiers_name_id = "e_other" + "_name" + 
num;
                                     var answer = req.responseText.evalJSON();
-                                    $(tiers_name_id).value=answer["name"];
+                                    $(tiers_name_id).value = answer["name"];
                                 }
                             });
                         }
                     }
-                    if (single_operation==0) {
+                    if (single_operation == 0) {
                         $(ctlc.value).value += nValue;
                     } else {
                         $(ctlc.value).value = nValue;
-                        
+
                     }
                 }
             }
         }
         removeDiv(obj.elements['target'].value);
-    } catch (e)
-    {
+    } catch (e) {
         alert_box(e.message)
     }
 }
-function remove_waiting_node()
-{
+
+function remove_waiting_node() {
     $('info_div').innerHTML = "";
     $('info_div').style.display = "none";
 
 }
-function remove_waiting_box()
-{
+
+function remove_waiting_box() {
     if ($('wait_box')) {
         Effect.Fade('wait_box', {duration: 0.6});
     }
 
     remove_waiting_node();
 }
+
 /**
  * Show all the detail of a profile : Menu, Management, Repository and
  * let the user to modify it
@@ -1526,38 +1450,37 @@ function remove_waiting_box()
  * @param {type} profile_id
  * @returns {undefined}
  */
-function get_profile_detail(gDossier, profile_id)
-{
+function get_profile_detail(gDossier, profile_id) {
     waiting_box();
     var qs = "op=display_profile&gDossier=" + gDossier + "&p_id=" + profile_id 
+ "&ctl=detail_profile";
     var action = new Ajax.Request('ajax_misc.php',
-            {
-                method: 'get',
-                parameters: qs,
-                onFailure: null,
-                onSuccess: function (req) {
-                    remove_waiting_box();
-                    $('list_profile').hide();
-                    $('detail_profile').innerHTML = req.responseText;
-                    req.responseText.evalScripts();
-                    $('detail_profile').show();
-                    if (profile_id != "-1")
-                        profile_show('profile_gen_div');
-                }
+        {
+            method: 'get',
+            parameters: qs,
+            onFailure: null,
+            onSuccess: function (req) {
+                remove_waiting_box();
+                $('list_profile').hide();
+                $('detail_profile').innerHTML = req.responseText;
+                req.responseText.evalScripts();
+                $('detail_profile').show();
+                if (profile_id != "-1")
+                    profile_show('profile_gen_div');
             }
+        }
     );
 }
-function get_profile_detail_success_obsolete(xml)
-{
+
+function get_profile_detail_success_obsolete(xml) {
     remove_waiting_box();
 
 }
+
 /**
  *  compute the string to position a div in a fixed way
  * @return string
  */
-function fixed_position(p_sx, p_sy)
-{
+function fixed_position(p_sx, p_sy) {
     var sx = p_sx;
     var sy = calcy(p_sy);
 
@@ -1565,135 +1488,135 @@ function fixed_position(p_sx, p_sy)
     return str_style;
 
 }
+
 /**
  * compute Y even if the windows has scrolled down or up
  *@return the correct Y position
  */
-function calcy(p_sy)
-{
+function calcy(p_sy) {
     var sy = p_sy;
-    if (window.pageYOffset)
-    {
+    if (window.pageYOffset) {
         sy = window.pageYOffset + p_sy;
-    } else
-    {
+    } else {
         sy = document.documentElement.scrollTop + p_sy;
     }
 
     return sy;
 
 }
+
 /**
  *  display a box with the menu option
  * @param {type} gdossier
  * @param {type} pm_id
  * @returns {undefined}
  */
-function mod_menu(gdossier, pm_id)
-{
+function mod_menu(gdossier, pm_id) {
     waiting_box();
     removeDiv('divdm' + pm_id);
     var qs = "op=det_menu&gDossier=" + gdossier + "&pm_id=" + pm_id + 
"&ctl=divdm" + pm_id;
     var pos = fixed_position(50, 250);
     var action = new Ajax.Request('ajax_misc.php',
-            {
-                method: 'get',
-                parameters: qs,
-                onFailure: null,
-                onSuccess: function (req) {
-                    try {
-                        remove_waiting_box();
-                        add_div({id: "divdm" + pm_id, drag: 1, cssclass: 
"inner_box", style: pos});
-                        $('divdm' + pm_id).innerHTML = req.responseText;
-                    } catch (e) {
-                        alert_box(e.message);
-                    }
+        {
+            method: 'get',
+            parameters: qs,
+            onFailure: null,
+            onSuccess: function (req) {
+                try {
+                    remove_waiting_box();
+                    add_div({id: "divdm" + pm_id, drag: 1, cssclass: 
"inner_box", style: pos});
+                    $('divdm' + pm_id).innerHTML = req.responseText;
+                } catch (e) {
+                    alert_box(e.message);
                 }
             }
+        }
     );
 }
+
 /**
  * Display the submenu of a menu or a module, used in setting the menu
- * 
+ *
  * @param {type} p_dossier
  * @param {type} p_profile
  * @param {type} p_dep
  * @returns {undefined}
  */
-function display_sub_menu(p_dossier, p_profile, p_dep, p_level)
-{
+function display_sub_menu(p_dossier, p_profile, p_dep, p_level) {
     waiting_box();
     new Ajax.Request('ajax_misc.php',
-            {
-                method: 'get',
-                parameters: {op: 'display_submenu',
-                    gDossier: p_dossier,
-                    dep: p_dep,
-                    p_profile: p_profile,
-                    p_level: p_level
-                },
-                onSuccess: function (req) {
-                    try {
-                        remove_waiting_box();
-                        if ($('menu_table').rows.length > p_level) {
-                            $('menu_table').rows[1].remove();
-                        }
-                        $('sub' + p_dep).addClassName("selectedmenu");
-                        var new_row = document.createElement('TR');
-                        new_row.innerHTML = req.responseText;
-                        $('menu_table').appendChild(new_row);
-                    } catch (e) {
-                        alert_box(e.message);
+        {
+            method: 'get',
+            parameters: {
+                op: 'display_submenu',
+                gDossier: p_dossier,
+                dep: p_dep,
+                p_profile: p_profile,
+                p_level: p_level
+            },
+            onSuccess: function (req) {
+                try {
+                    remove_waiting_box();
+                    if ($('menu_table').rows.length > p_level) {
+                        $('menu_table').rows[1].remove();
                     }
+                    $('sub' + p_dep).addClassName("selectedmenu");
+                    var new_row = document.createElement('TR');
+                    new_row.innerHTML = req.responseText;
+                    $('menu_table').appendChild(new_row);
+                } catch (e) {
+                    alert_box(e.message);
                 }
-            })
+            }
+        })
 }
+
 /**
  * in CFGPRO, ask to confirm before removing a submenu and its children
  * @param {type} p_dossier
  * @param {type} profile_menu_id
  * @returns {undefined}
  */
-function remove_sub_menu(p_dossier, profile_menu_id)
-{
+function remove_sub_menu(p_dossier, profile_menu_id) {
     confirm_box(null, content[47],
-            function () {
-                waiting_box();
-                new Ajax.Request('ajax_misc.php',
-                        {
-                            method: 'get',
-                            parameters: {op: 'remove_submenu', gDossier: 
p_dossier,
-                                p_profile_menu_id: profile_menu_id},
-                            onSuccess: function (req) {
-                                try {
-                                    remove_waiting_box();
-                                    $('sub' + profile_menu_id).remove();
-                                    if ($('menu_table').rows.length > 1) {
-                                        $('menu_table').rows[1].remove();
-                                    }
-
-                                } catch (e)
-                                {
-                                    alert_box(e.message);
-                                }
+        function () {
+            waiting_box();
+            new Ajax.Request('ajax_misc.php',
+                {
+                    method: 'get',
+                    parameters: {
+                        op: 'remove_submenu', gDossier: p_dossier,
+                        p_profile_menu_id: profile_menu_id
+                    },
+                    onSuccess: function (req) {
+                        try {
+                            remove_waiting_box();
+                            $('sub' + profile_menu_id).remove();
+                            if ($('menu_table').rows.length > 1) {
+                                $('menu_table').rows[1].remove();
                             }
+
+                        } catch (e) {
+                            alert_box(e.message);
                         }
-                )
-            });
+                    }
+                }
+            )
+        });
 
 }
+
 /**
  *  add a menu to a profile, propose only the available menu
- * @param obj json object 
- *   - dossier  : , 
- *   - p_id : profile id , 
- *   - type : Type of menu are "pr" for Printing "me" for plain menu 
+ * @param obj json object
+ *   - dossier  : ,
+ *   - p_id : profile id ,
+ *   - type : Type of menu are "pr" for Printing "me" for plain menu
  *   - p_level : level of menu (0 -> module,1-> top menu, 2->submenu)
  *   - dep : the parent menu id  (pm_id)
- * 
+ *
  */
-function add_menu(obj)
-{
+function add_menu(obj) {
     var pdossier = obj.dossier;
     var p_id = obj.p_id;
     var p_type = obj.type;
@@ -1702,164 +1625,165 @@ function add_menu(obj)
     removeDiv('divdm' + p_id);
     var pos = fixed_position(250, 150) + ";width:50%;";
     var action = new Ajax.Request('ajax_misc.php',
-            {
-                method: 'get',
-                parameters: {op: 'add_menu',
-                    'gDossier': pdossier,
-                    'p_id': p_id,
-                    'ctl': 'divdm' + p_id,
-                    'type': p_type,
-                    'dep': obj.dep,
-                    'p_level': obj.p_level},
-                onFailure: null,
-                onSuccess: function (req) {
-                    try {
-                        remove_waiting_box();
-                        add_div({id: "divdm" + p_id, drag: 1, "cssclass": 
"inner_box", "style": pos});
-                        $('divdm' + p_id).innerHTML = req.responseText;
-                    } catch (e) {
-                        alert_box(e.message);
-                    }
+        {
+            method: 'get',
+            parameters: {
+                op: 'add_menu',
+                'gDossier': pdossier,
+                'p_id': p_id,
+                'ctl': 'divdm' + p_id,
+                'type': p_type,
+                'dep': obj.dep,
+                'p_level': obj.p_level
+            },
+            onFailure: null,
+            onSuccess: function (req) {
+                try {
+                    remove_waiting_box();
+                    add_div({id: "divdm" + p_id, drag: 1, "cssclass": 
"inner_box", "style": pos});
+                    $('divdm' + p_id).innerHTML = req.responseText;
+                } catch (e) {
+                    alert_box(e.message);
                 }
             }
+        }
     );
 }
+
 /**
  *  Display a box to enter data for adding a new plugin from
  * the CFGMENU
  * @param {type} p_dossier
  * @returns {undefined}
  */
-function add_plugin(p_dossier)
-{
+function add_plugin(p_dossier) {
     waiting_box();
     removeDiv('divplugin');
     var qs = "op=add_plugin&gDossier=" + p_dossier + "&ctl=divplugin";
 
     var action = new Ajax.Request('ajax_misc.php',
-            {
-                method: 'get',
-                parameters: qs,
-                onFailure: null,
-                onSuccess: function (req) {
-                    try {
-                        remove_waiting_box();
-                        var pos = fixed_position(250, 150) + ";width:30%";
-                        add_div({id: "divplugin", drag: 1, cssclass: 
"inner_box", style: pos});
-                        $('divplugin').innerHTML = req.responseText;
-                    } catch (e) {
-                        alert_box(e.message);
-                    }
+        {
+            method: 'get',
+            parameters: qs,
+            onFailure: null,
+            onSuccess: function (req) {
+                try {
+                    remove_waiting_box();
+                    var pos = fixed_position(250, 150) + ";width:30%";
+                    add_div({id: "divplugin", drag: 1, cssclass: "inner_box", 
style: pos});
+                    $('divplugin').innerHTML = req.responseText;
+                } catch (e) {
+                    alert_box(e.message);
                 }
             }
+        }
     );
 }
+
 /**
  * Modify a menu
  * @param {type} p_dossier
  * @param {type} me_code
  * @returns {undefined}
  */
-function mod_plugin(p_dossier, me_code)
-{
+function mod_plugin(p_dossier, me_code) {
     waiting_box();
     removeDiv('divplugin');
     var qs = "op=mod_plugin&gDossier=" + p_dossier + "&ctl=divplugin&me_code=" 
+ me_code;
 
     var action = new Ajax.Request('ajax_misc.php',
-            {
-                method: 'get',
-                parameters: qs,
-                onFailure: null,
-                onSuccess: function (req) {
-                    try {
-                        remove_waiting_box();
-                        var pos = fixed_position(250, 150) + ";width:30%";
-                        add_div({id: "divplugin", drag: 1, cssclass: 
"inner_box", style: pos});
-                        $('divplugin').innerHTML = req.responseText;
+        {
+            method: 'get',
+            parameters: qs,
+            onFailure: null,
+            onSuccess: function (req) {
+                try {
+                    remove_waiting_box();
+                    var pos = fixed_position(250, 150) + ";width:30%";
+                    add_div({id: "divplugin", drag: 1, cssclass: "inner_box", 
style: pos});
+                    $('divplugin').innerHTML = req.responseText;
 
-                    } catch (e) {
-                        alert_box(e.message);
-                    }
+                } catch (e) {
+                    alert_box(e.message);
                 }
             }
+        }
     );
 }
-function create_menu(p_dossier)
-{
+
+function create_menu(p_dossier) {
     waiting_box();
     removeDiv('divmenu');
     var qs = "op=create_menu&gDossier=" + p_dossier + "&ctl=divmenu";
 
     var action = new Ajax.Request('ajax_misc.php',
-            {
-                method: 'get',
-                parameters: qs,
-                onFailure: null,
-                onSuccess: function (req) {
-                    try {
-                        remove_waiting_box();
-                        var pos = fixed_position(250, 150) + ";width:30%";
-                        add_div({
-                            id: "divmenu",
-                            drag: 1,
-                            cssclass: "inner_box",
-                            style: pos
-                        });
-                        $('divmenu').innerHTML = req.responseText;
-                    } catch (e) {
-                        alert_box(e.message);
-                    }
+        {
+            method: 'get',
+            parameters: qs,
+            onFailure: null,
+            onSuccess: function (req) {
+                try {
+                    remove_waiting_box();
+                    var pos = fixed_position(250, 150) + ";width:30%";
+                    add_div({
+                        id: "divmenu",
+                        drag: 1,
+                        cssclass: "inner_box",
+                        style: pos
+                    });
+                    $('divmenu').innerHTML = req.responseText;
+                } catch (e) {
+                    alert_box(e.message);
                 }
             }
+        }
     );
 }
-function modify_menu(p_dossier, me_code)
-{
+
+function modify_menu(p_dossier, me_code) {
     waiting_box();
     removeDiv('divmenu');
     var qs = "op=modify_menu&gDossier=" + p_dossier + "&ctl=divmenu&me_code=" 
+ me_code;
 
     var action = new Ajax.Request('ajax_misc.php',
-            {
-                method: 'get',
-                parameters: qs,
-                onFailure: null,
-                onSuccess: function (req) {
-                    try {
-                        remove_waiting_box();
-                        var pos = fixed_position(250, 150) + ";width:30%";
-                        add_div({
-                            id: "divmenu",
-                            drag: 1,
-                            cssclass: "inner_box",
-                            style: pos
-                        });
-                        $('divmenu').innerHTML = req.responseText;
+        {
+            method: 'get',
+            parameters: qs,
+            onFailure: null,
+            onSuccess: function (req) {
+                try {
+                    remove_waiting_box();
+                    var pos = fixed_position(250, 150) + ";width:30%";
+                    add_div({
+                        id: "divmenu",
+                        drag: 1,
+                        cssclass: "inner_box",
+                        style: pos
+                    });
+                    $('divmenu').innerHTML = req.responseText;
 
-                    } catch (e) {
-                        alert_box(e.message);
-                    }
+                } catch (e) {
+                    alert_box(e.message);
                 }
             }
+        }
     );
 }
-function get_properties(obj)
-{
+
+function get_properties(obj) {
     var a_array = [];
     var s_type = "[" + typeof obj + "]";
-    for (var m in obj)
-    {
+    for (var m in obj) {
         a_array.push(m);
     }
     alert_box(s_type + a_array.join(","));
 }
+
 /**
  *  add a line in the form for the report
  * @param p_dossier dossier id to connect
  */
-function rapport_add_row(p_dossier)
-{
+function rapport_add_row(p_dossier) {
     style = 'style="border: 1px solid blue;"';
     var table = $("rap1");
     var line = table.rows.length;
@@ -1882,13 +1806,12 @@ function rapport_add_row(p_dossier)
 
     g('form' + line).value = '';
 }
+
 /**
  * Search an action in an inner box
  */
-function search_action(dossier, ctl_concern)
-{
-    try
-    {
+function search_action(dossier, ctl_concern) {
+    try {
         waiting_box();
         var dossier = g('gDossier').value;
 
@@ -1899,7 +1822,8 @@ function search_action(dossier, ctl_concern)
         var div = {id: target, cssclass: 'inner_box', style: str_style, html: 
loading(), drag: 1};
 
 
-        var target = {gDossier: dossier,
+        var target = {
+            gDossier: dossier,
             ctlc: ctl_concern,
             op: 'search_action',
             ctl: target
@@ -1908,73 +1832,66 @@ function search_action(dossier, ctl_concern)
         var qs = encodeJSON(target);
 
         var action = new Ajax.Request('ajax_misc.php',
-                {
-                    method: 'get',
-                    parameters: qs,
-                    onFailure: null,
-                    onSuccess: function (req) {
-                        try {
-                            remove_waiting_box();
-                            add_div(div);
-                            $('search_action_div').innerHTML = 
req.responseText;
-                            req.responseText.evalScripts();
-                        } catch (e) {
-                            alert_box(e.message);
-                        }
+            {
+                method: 'get',
+                parameters: qs,
+                onFailure: null,
+                onSuccess: function (req) {
+                    try {
+                        remove_waiting_box();
+                        add_div(div);
+                        $('search_action_div').innerHTML = req.responseText;
+                        req.responseText.evalScripts();
+                    } catch (e) {
+                        alert_box(e.message);
                     }
                 }
+            }
         );
     } catch (e) {
         alert_box(e.message);
     }
 }
 
-function result_search_action(obj)
-{
-    try
-    {
+function result_search_action(obj) {
+    try {
         var queryString = $(obj).serialize() + "&op=search_action";
         var action = new Ajax.Request(
-                "ajax_misc.php",
-                {method: 'get',
-                    parameters: queryString,
-                    onFailure: ajax_misc_failure,
-                    onSuccess: function (req) {
-                        try {
-                            remove_waiting_box();
-                            $('search_action_div').innerHTML = 
req.responseText;
-                            req.responseText.evalScripts();
-                        } catch (e) {
-                            alert_box(e.message);
-                        }
+            "ajax_misc.php",
+            {
+                method: 'get',
+                parameters: queryString,
+                onFailure: ajax_misc_failure,
+                onSuccess: function (req) {
+                    try {
+                        remove_waiting_box();
+                        $('search_action_div').innerHTML = req.responseText;
+                        req.responseText.evalScripts();
+                    } catch (e) {
+                        alert_box(e.message);
                     }
                 }
+            }
         )
 
-    } catch (e)
-    {
+    } catch (e) {
         alert_box("display_periode " + e.message);
     }
 
     return false;
 }
 
-function set_action_related(p_obj)
-{
+function set_action_related(p_obj) {
 
-    try
-    {
+    try {
         var obj = $(p_obj);
         var ctlc = obj.elements['ctlc'];
 
-        for (var e = 0; e < obj.elements.length; e++)
-        {
+        for (var e = 0; e < obj.elements.length; e++) {
 
             var elmt = obj.elements[e];
-            if (elmt.type === "checkbox")
-            {
-                if (elmt.checked === true)
-                {
+            if (elmt.type === "checkbox") {
+                if (elmt.checked === true) {
                     var str_name = elmt.name;
                     var nValue = elmt.value;
                     if ($(ctlc.value).value != '') {
@@ -1986,19 +1903,18 @@ function set_action_related(p_obj)
         }
         removeDiv('search_action_div');
         return false;
-    } catch (e)
-    {
+    } catch (e) {
         alert_box(e.message);
         return false;
     }
 }
+
 /**
  * Show a form to modify or add a new repository
- *@param p_dossier 
+ *@param p_dossier
  *@param r_id : repository id
  */
-function stock_repo_change(p_dossier, r_id)
-{
+function stock_repo_change(p_dossier, r_id) {
     var queryString = "gDossier=" + p_dossier + "&op=mod_stock_repo" + 
"&r_id=" + r_id;
     var nTop = calcy(posY);
     var nLeft = "10.1562%";
@@ -2007,21 +1923,21 @@ function stock_repo_change(p_dossier, r_id)
     removeDiv('change_stock_repo_div');
     waiting_box();
     var action = new Ajax.Request(
-            "ajax_misc.php",
-            {
-                method: 'get', parameters: queryString,
-                onFailure: ajax_misc_failure,
-                onSuccess: function (req) {
-                    remove_waiting_box();
-                    add_div({id: 'change_stock_repo_div', style: str_style, 
cssclass: 'inner_box', drag: "1"});
-                    $('change_stock_repo_div').innerHTML = req.responseText;
+        "ajax_misc.php",
+        {
+            method: 'get', parameters: queryString,
+            onFailure: ajax_misc_failure,
+            onSuccess: function (req) {
+                remove_waiting_box();
+                add_div({id: 'change_stock_repo_div', style: str_style, 
cssclass: 'inner_box', drag: "1"});
+                $('change_stock_repo_div').innerHTML = req.responseText;
 
-                }
             }
+        }
     );
 }
-function stock_inv_detail(p_dossier, p_id)
-{
+
+function stock_inv_detail(p_dossier, p_id) {
     var queryString = "gDossier=" + p_dossier + "&op=view_mod_stock" + 
"&c_id=" + p_id + "&ctl=view_mod_stock_div";
     var nTop = calcy(posY);
     var nLeft = "10%";
@@ -2030,23 +1946,22 @@ function stock_inv_detail(p_dossier, p_id)
     removeDiv('view_mod_stock_div');
     waiting_box();
     var action = new Ajax.Request(
-            "ajax_misc.php",
-            {
-                method: 'get', parameters: queryString,
-                onFailure: ajax_misc_failure,
-                onSuccess: function (req) {
-                    remove_waiting_box();
-                    add_div({id: 'view_mod_stock_div', style: str_style, 
cssclass: 'inner_box', drag: "1"});
-                    $('view_mod_stock_div').innerHTML = req.responseText;
-                    req.responseText.evalScripts();
-                }
+        "ajax_misc.php",
+        {
+            method: 'get', parameters: queryString,
+            onFailure: ajax_misc_failure,
+            onSuccess: function (req) {
+                remove_waiting_box();
+                add_div({id: 'view_mod_stock_div', style: str_style, cssclass: 
'inner_box', drag: "1"});
+                $('view_mod_stock_div').innerHTML = req.responseText;
+                req.responseText.evalScripts();
             }
+        }
     );
 }
-function show_fin_chdate(obj_id)
-{
-    try
-    {
+
+function show_fin_chdate(obj_id) {
+    try {
         var ch = $(obj_id).options[$(obj_id).selectedIndex].value;
         if (ch == 2) {
             $('chdate_ext').hide();
@@ -2072,50 +1987,67 @@ function show_fin_chdate(obj_id)
         alert_box(e.message);
     }
 }
+
 /**
  * tab menu for the profile parameter
  */
-function profile_show(p_div)
-{
+function profile_show(p_div) {
     try {
-        var div = ['profile_gen_div', 'profile_menu_div', 'profile_print_div', 
'profile_gestion_div', 'profile_repo_div','profile_menu_mobile_div'];
+        var div = ['profile_gen_div', 'profile_menu_div', 'profile_print_div', 
'profile_gestion_div', 'profile_repo_div', 'profile_menu_mobile_div'];
         for (var r = 0; r < div.length; r++) {
             $(div[r]).hide();
         }
         $(p_div).show();
-    } catch (e)
-    {
+    } catch (e) {
         alert_box(e.message);
     }
 }
-function detail_category_show(p_div, p_dossier, p_id)
-{
+
+function detail_category_show(p_div, p_dossier, p_id) {
     $(p_div).show();
     waiting_box();
     $('detail_category_div').innerHTML = "";
     var queryString = "gDossier=" + p_dossier + "&id=" + p_id + "&op=fddetail";
     var action = new Ajax.Request(
-            "ajax_misc.php",
-            {
-                method: 'get', parameters: queryString,
-                onFailure: ajax_misc_failure,
-                onSuccess: function (req) {
-                    remove_waiting_box();
-                    $('list_cat_div').hide();
-                    $('detail_category_div').innerHTML = req.responseText;
-                    $('detail_category_div').show();
-                    req.responseText.evalScripts();
-                }
+        "ajax_misc.php",
+        {
+            method: 'get', parameters: queryString,
+            onFailure: ajax_misc_failure,
+            onSuccess: function (req) {
+                remove_waiting_box();
+                $('list_cat_div').hide();
+                $('detail_category_div').innerHTML = req.responseText;
+                $('detail_category_div').show();
+                req.responseText.evalScripts();
             }
+        }
     );
 }
+
+/**
+ * check that the form is correct for a new category of card
+ */
+function check_new_category()
+{
+    if ( $('nom_mod_id').value.trim()=="") {
+        new Effect.Highlight('nom_mod_id',{startcolor:"#ff0000"});
+        smoke.alert('Nom catégorie obligatoire');
+        return false;
+    }
+    var TemplateCard= document.getElementsByName('FICHE_REF');
+    for (i = 0;i< TemplateCard.length;i++) {
+        if (TemplateCard[i].checked) return true;
+    }
+    new Effect.Highlight('template_category_ck',{startcolor:"#ff0000"});
+    smoke.alert('Choisissez une catégorie');
+    return false;
+}
 /**
  *  check if the parameter is a valid a valid date or not, returns true if it 
is valid otherwise
  * false
  * @param p_str_date the string of the date (format DD.MM.YYYY)
  */
-function check_date(p_str_date)
-{
+function check_date(p_str_date) {
     var format = /^\d{2}\.\d{2}\.\d{4}$/;
     if (!format.test(p_str_date)) {
         return false;
@@ -2131,78 +2063,81 @@ function check_date(p_str_date)
     }
 
 }
+
 /**
  *  get the string in the id and check if the date is valid
  * @param p_id_date is the id of the element to check
  * @return true if the date is valid
  * @see check_date
  */
-function check_date_id(p_id_date)
-{
+function check_date_id(p_id_date) {
     var str_date = $(p_id_date).value;
     return check_date(str_date);
 }
+
 /**
  *
  * @param ag_id to view
  * @param dossier is the folder
  * @param modify : show the modify button values : 0 for no 1 for yes
  */
-function view_action(ag_id, dossier, modify)
-{
+function view_action(ag_id, dossier, modify) {
     waiting_box();
     layer++;
     id = 'action' + layer;
 
     querystring = 'gDossier=' + dossier + '&op=vw_action&ag_id=' + ag_id + 
'&div=' + id + '&mod=' + modify;
     var action = new Ajax.Request(
-            "ajax_misc.php",
-            {
-                method: 'get',
-                parameters: querystring,
-                onFailure: error_box,
-                onSuccess: function (req) {
-                    try {
-                         if (req.responseText === 'NOCONX') { 
reconnect();return;}
-                        remove_waiting_box();
-                        var answer = req.responseXML;
-                        var ctl = answer.getElementsByTagName('ctl');
-                        if (ctl.length == 0) {
-                            throw 'ajax failed ctl view_action';
-                        }
-                        var ctl_txt = getNodeText(ctl[0]);
-                        var html = answer.getElementsByTagName('code');
-                        if (html.length === 0)
-                        {
-                            var rec = req.responseText;
-                            throw 'ajax failed  html view_action';
-                        }
-                        var code_html = getNodeText(html[0]);
-                        code_html = unescape_xml(code_html);
-                        var pos = fixed_position(0, 50) + 
";width:90%;left:5%;";
-                        add_div({
-                            id: id,
-                            cssclass: "inner_box",
-                            style: pos
-                        });
-                        $(id).innerHTML = code_html;
-                        if (ctl_txt == 'ok') {
-                            // compute detail
-                            var detail=in_child(id,"follow_up_detail");
-                            if (detail) {   
-                              compute_all_ledger();
-                            }
-                                             
-                            
+        "ajax_misc.php",
+        {
+            method: 'get',
+            parameters: querystring,
+            onFailure: error_box,
+            onSuccess: function (req) {
+                try {
+                    if (req.responseText === 'NOCONX') {
+                        reconnect();
+                        return;
+                    }
+                    remove_waiting_box();
+                    var answer = req.responseXML;
+                    var ctl = answer.getElementsByTagName('ctl');
+                    if (ctl.length == 0) {
+                        throw 'ajax failed ctl view_action';
+                    }
+                    var ctl_txt = getNodeText(ctl[0]);
+                    var html = answer.getElementsByTagName('code');
+                    if (html.length === 0) {
+                        var rec = req.responseText;
+                        throw 'ajax failed  html view_action';
+                    }
+                    var code_html = getNodeText(html[0]);
+                    code_html = unescape_xml(code_html);
+                    var pos = fixed_position(0, 50) + ";width:90%;left:5%;";
+                    add_div({
+                        id: id,
+                        cssclass: "inner_box",
+                        style: pos
+                    });
+                    $(id).innerHTML = code_html;
+                    if (ctl_txt == 'ok') {
+                        // compute detail
+                        var detail = in_child(id, "follow_up_detail");
+                        if (detail) {
+                            compute_all_ledger();
                         }
-                        code_html.evalScripts();
-                    } catch (e) {
-                        alert_box('view_action' + e.message);
+
+
                     }
+                    code_html.evalScripts();
+                } catch (e) {
+                    alert_box('view_action' + e.message);
                 }
             }
+        }
     );
 }
+
 /**
  *  filter quickly a table
  * @param  phrase : phrase to seach
@@ -2230,11 +2165,9 @@ function filter_table(phrase, _id, colnr, start_row) {
 
     for (var r = start_row; r < table.rows.length; r++) {
         var found = 0;
-        for (var col = 0; col < aCol.length; col++)
-        {
+        for (var col = 0; col < aCol.length; col++) {
             var idx = aCol[col];
-            if (table.rows[r].cells[idx])
-            {
+            if (table.rows[r].cells[idx]) {
                 ele = table.rows[r].cells[idx].innerHTML.replace(/<[^>]+>/g, 
"");
                 //var displayStyle = 'none';
                 if (ele.toLowerCase().indexOf(words) >= 0) {
@@ -2264,6 +2197,7 @@ function filter_table(phrase, _id, colnr, start_row) {
     $('info_div').style.display = "none";
     $('info_div').innerHTML = "";
 }
+
 /**
  *  filter quickly a list
  * @param  phrase : DOM id of the input text where we find the word to seach, 
the searchable content use the className searchContent
@@ -2291,10 +2225,10 @@ function filter_list(phrase, _id) {
 
         let e = 0;
         for (e = 0; e < la_content.length; e++) {
-               ele += la_content[e].innerText;
+            ele += la_content[e].innerText;
         }
 
-        console.debug (`ele = ${ele}`);
+        console.debug(`ele = ${ele}`);
         if (ele.toLowerCase().indexOf(words) >= 0) {
             tot_found++;
             l_list.childNodes[r].style.display = 'block';
@@ -2317,7 +2251,7 @@ function filter_list(phrase, _id) {
 }
 
 /**
- *  filter quickly a select 
+ *  filter quickly a select
  * @param  phrase : DOM id of the input text where we find the word to seach
  * @param  _id : id of the list
  * @returns nothing
@@ -2339,7 +2273,7 @@ function filter_multiselect(phrase, _id) {
             tot_found++;
             l_list.options[r].style.display = 'block';
         } else {
-           l_list.options[r].style.display = 'none';
+            l_list.options[r].style.display = 'none';
         }
         $('info_div').style.display = "none";
         $('info_div').innerHTML = "";
@@ -2354,12 +2288,12 @@ function filter_multiselect(phrase, _id) {
         }
     }
 }
+
 /**
- * 
+ *
  * Display the task late or for today in dashboard
  */
-function display_task(p_id)
-{
+function display_task(p_id) {
 
     $(p_id).style.top = posY + 'px';
     $(p_id).style.left = "10%";
@@ -2367,22 +2301,23 @@ function display_task(p_id)
     $(p_id).style.display = 'block';
 
 }
+
 /**
- * 
+ *
  * Set a message in the info
  */
-function info_message(p_message)
-{
+function info_message(p_message) {
     $('info_div').innerHTML = p_message;
     $('info_div').style.display = "block";
 }
+
 /**
  *  hide the info box
  */
-function info_hide()
-{
+function info_hide() {
     $('info_div').style.display = "none";
 }
+
 /**
  * Show the navigator in a internal window
  * @returns {undefined}
@@ -2393,34 +2328,33 @@ function ask_navigator(p_dossier) {
         removeDiv('navi_div')
         var queryString = "gDossier=" + p_dossier + "&op=navigator";
         var action = new Ajax.Request(
-                "ajax_misc.php",
-                {
-                    method: 'get', parameters: queryString,
-                    onFailure: ajax_misc_failure,
-                    onSuccess: function (req) {
-                        remove_waiting_box();
-                        add_div({id: 'navi_div', style: 'top:2em;', cssclass: 
'inner_box'});
-                        $('navi_div').innerHTML = req.responseText;
-                        try
-                        {
-                            req.responseText.evalScripts();
-                            sorttable.makeSortable($("navi_tb"));
-                        } catch (e)
-                        {
-                            alert_box("answer_box Impossible executer script 
de la reponse\n" + e.message);
-                        }
-
+            "ajax_misc.php",
+            {
+                method: 'get', parameters: queryString,
+                onFailure: ajax_misc_failure,
+                onSuccess: function (req) {
+                    remove_waiting_box();
+                    add_div({id: 'navi_div', style: 'top:2em;', cssclass: 
'inner_box'});
+                    $('navi_div').innerHTML = req.responseText;
+                    try {
+                        req.responseText.evalScripts();
+                        sorttable.makeSortable($("navi_tb"));
+                    } catch (e) {
+                        alert_box("answer_box Impossible executer script de la 
reponse\n" + e.message);
                     }
+
                 }
+            }
         );
     } catch (e) {
         info_message(e.message);
     }
 
 }
+
 /**
  *  Display an internal windows to set the user's preference
- * 
+ *
  */
 function set_preference(p_dossier) {
     try {
@@ -2428,34 +2362,36 @@ function set_preference(p_dossier) {
         removeDiv('preference_div')
         var queryString = "gDossier=" + p_dossier + "&op=preference";
         var action = new Ajax.Request(
-                "ajax_misc.php",
-                {
-                    method: 'get', parameters: queryString,
-                    onFailure: ajax_misc_failure,
-                    onSuccess: function (req) {
-                        remove_waiting_box();
-                        if (req.responseText === 'NOCONX') { 
reconnect();return;}
-                        add_div({id: 'preference_div', drag: 1});
-                        $('preference_div').innerHTML = req.responseText;
-                        try
-                        {
-                            req.responseText.evalScripts();
-                        } catch (e)
-                        {
-                            alert_box("answer_box Impossible executer script 
de la reponse\n" + e.message);
-                        }
-
+            "ajax_misc.php",
+            {
+                method: 'get', parameters: queryString,
+                onFailure: ajax_misc_failure,
+                onSuccess: function (req) {
+                    remove_waiting_box();
+                    if (req.responseText === 'NOCONX') {
+                        reconnect();
+                        return;
+                    }
+                    add_div({id: 'preference_div', drag: 1});
+                    $('preference_div').innerHTML = req.responseText;
+                    try {
+                        req.responseText.evalScripts();
+                    } catch (e) {
+                        alert_box("answer_box Impossible executer script de la 
reponse\n" + e.message);
                     }
+
                 }
+            }
         );
     } catch (e) {
         info_message(e.message);
     }
 
 }
+
 /**
  *  Display user's bookmark
- * 
+ *
  */
 function show_bookmark(p_dossier) {
     try {
@@ -2465,30 +2401,29 @@ function show_bookmark(p_dossier) {
         param = param.gsub('?', '');
         var queryString = "gDossier=" + p_dossier + "&op=bookmark&" + param;
         var action = new Ajax.Request(
-                "ajax_misc.php",
-                {
-                    method: 'get', parameters: queryString,
-                    onFailure: ajax_misc_failure,
-                    onSuccess: function (req) {
-                        remove_waiting_box();
-                        add_div({id: 'bookmark_div', cssclass: 'inner_box', 
drag: 1});
-                        $('bookmark_div').innerHTML = req.responseText;
-                        try
-                        {
-                            req.responseText.evalScripts();
-                        } catch (e)
-                        {
-                            alert_box(content[53] + "\n" + e.message);
-                        }
-
+            "ajax_misc.php",
+            {
+                method: 'get', parameters: queryString,
+                onFailure: ajax_misc_failure,
+                onSuccess: function (req) {
+                    remove_waiting_box();
+                    add_div({id: 'bookmark_div', cssclass: 'inner_box', drag: 
1});
+                    $('bookmark_div').innerHTML = req.responseText;
+                    try {
+                        req.responseText.evalScripts();
+                    } catch (e) {
+                        alert_box(content[53] + "\n" + e.message);
                     }
+
                 }
+            }
         );
     } catch (e) {
         info_message(e.message);
     }
 
 }
+
 /**
  *  save the bookmark
  */
@@ -2497,31 +2432,30 @@ function save_bookmark() {
         waiting_box();
         var queryString = "op=bookmark&" + $("bookmark_frm").serialize();
         var action = new Ajax.Request(
-                "ajax_misc.php",
-                {
-                    method: 'get', parameters: queryString,
-                    onFailure: ajax_misc_failure,
-                    onSuccess: function (req) {
-                        remove_waiting_box();
-                        // removeDiv('bookmark_div');
-                        // 
-                        $('bookmark_div').innerHTML = req.responseText;
-                        try
-                        {
-                            req.responseText.evalScripts();
-                        } catch (e)
-                        {
-                            alert_box(content[53] + "\n" + e.message);
-                        }
-
+            "ajax_misc.php",
+            {
+                method: 'get', parameters: queryString,
+                onFailure: ajax_misc_failure,
+                onSuccess: function (req) {
+                    remove_waiting_box();
+                    // removeDiv('bookmark_div');
+                    //
+                    $('bookmark_div').innerHTML = req.responseText;
+                    try {
+                        req.responseText.evalScripts();
+                    } catch (e) {
+                        alert_box(content[53] + "\n" + e.message);
                     }
+
                 }
+            }
         );
     } catch (e) {
         info_message(e.message);
     }
 
 }
+
 /**
  *  remove selected bookmark
  */
@@ -2530,101 +2464,95 @@ function remove_bookmark() {
         waiting_box();
         var queryString = "op=bookmark&" + $("bookmark_del_frm").serialize();
         var action = new Ajax.Request(
-                "ajax_misc.php",
-                {
-                    method: 'get', parameters: queryString,
-                    onFailure: ajax_misc_failure,
-                    onSuccess: function (req) {
-                        remove_waiting_box();
-                        $('bookmark_div').innerHTML = req.responseText;
-                        try
-                        {
-                            req.responseText.evalScripts();
-                        } catch (e)
-                        {
-                            alert_box(content[53] + "\n" + e.message);
-                        }
-
+            "ajax_misc.php",
+            {
+                method: 'get', parameters: queryString,
+                onFailure: ajax_misc_failure,
+                onSuccess: function (req) {
+                    remove_waiting_box();
+                    $('bookmark_div').innerHTML = req.responseText;
+                    try {
+                        req.responseText.evalScripts();
+                    } catch (e) {
+                        alert_box(content[53] + "\n" + e.message);
                     }
+
                 }
+            }
         );
     } catch (e) {
         error_message(e.message);
     }
 
 }
+
 /**
  * display the error message into the div error_content_div (included into 
error_div)
  *@param message message to display
  *@note there is no protection
  */
-function error_message(message)
-{
+function error_message(message) {
     $('error_content_div').innerHTML = message;
     $('error_div').style.visibility = 'visible';
 }
+
 /**
  *  show the detail of a tag and propose to save it
  */
-function show_tag(p_dossier, p_ac, p_tag_id, p_post)
-{
+function show_tag(p_dossier, p_ac, p_tag_id, p_post) {
     try {
         waiting_box();
         var queryString = "op=tag_detail&tag=" + p_tag_id + "&gDossier=" + 
p_dossier + "&ac=" + p_ac + '&form=' + p_post;
         var action = new Ajax.Request(
-                "ajax_misc.php",
-                {
-                    method: 'get', parameters: queryString,
-                    onFailure: ajax_misc_failure,
-                    onSuccess: function (req) {
-                        var answer = req.responseXML;
-                        var html = answer.getElementsByTagName('code');
-                        if (html.length === 0)
-                        {
-                            var rec = req.responseText;
-                            alert_box('erreur :' + rec);
-                        }
-                        var code_html = getNodeText(html[0]);
-                        code_html = unescape_xml(code_html);
-                        remove_waiting_box();
-                        var posy = calcy(250);
-                        add_div({id: 'tag_div', cssclass: 'inner_box', drag: 
0, style: "position:fixed;top:15%;"});
-                        $('tag_div').innerHTML = code_html;
-                        try
-                        {
-                            code_html.evalScripts();
-                        } catch (e)
-                        {
-                            alert_box(content[53] + "\n" + e.message);
-                        }
-
+            "ajax_misc.php",
+            {
+                method: 'get', parameters: queryString,
+                onFailure: ajax_misc_failure,
+                onSuccess: function (req) {
+                    var answer = req.responseXML;
+                    var html = answer.getElementsByTagName('code');
+                    if (html.length === 0) {
+                        var rec = req.responseText;
+                        alert_box('erreur :' + rec);
+                    }
+                    var code_html = getNodeText(html[0]);
+                    code_html = unescape_xml(code_html);
+                    remove_waiting_box();
+                    var posy = calcy(250);
+                    add_div({id: 'tag_div', cssclass: 'inner_box', drag: 0, 
style: "position:fixed;top:15%;"});
+                    $('tag_div').innerHTML = code_html;
+                    try {
+                        code_html.evalScripts();
+                    } catch (e) {
+                        alert_box(content[53] + "\n" + e.message);
                     }
+
                 }
+            }
         );
     } catch (e) {
         error_message(e.message);
     }
 }
 
-/** 
+/**
  *  save the modified tag
  */
-function save_tag()
-{
+function save_tag() {
     try {
         waiting_box();
         var queryString = "op=tag_save&" + $("tag_detail_frm").serialize();
         var action = new Ajax.Request(
-                "ajax_misc.php",
-                {
-                    method: 'get',
-                    parameters: queryString,
-                    onFailure: ajax_misc_failure,
-                    onSuccess: function (req, j) {
-                        remove_waiting_box();
-                        removeDiv('tag_div');
-                    }
+            "ajax_misc.php",
+            {
+                method: 'get',
+                parameters: queryString,
+                onFailure: ajax_misc_failure,
+                onSuccess: function (req, j) {
+                    remove_waiting_box();
+                    removeDiv('tag_div');
                 }
+            }
         );
     } catch (e) {
         error_message(e.message);
@@ -2633,44 +2561,44 @@ function save_tag()
     return false;
 
 }
+
 /**
  * Show a list of tag which can be added to the current followup document
  * @param {type} p_dossier
  * @param {type} ag_id
  * @returns {undefined}
  */
-function action_tag_select(p_dossier, ag_id)
-{
+function action_tag_select(p_dossier, ag_id) {
     try {
         waiting_box();
         var queryString = "ag_id=" + ag_id + "&op=tag_list&gDossier=" + 
p_dossier;
         var action = new Ajax.Request(
-                "ajax_misc.php",
-                {
-                    method: 'get', parameters: queryString,
-                    onFailure: ajax_misc_failure,
-                    onSuccess: function (req, j) {
-                        var answer = req.responseXML;
-                        var html = answer.getElementsByTagName('code');
-                        if (html.length === 0)
-                        {
-                            var rec = unescape_xml(req.responseText);
-                            error_message('erreur :' + rec);
-                        }
-                        var code_html = getNodeText(html[0]);
-                        code_html = unescape_xml(code_html);
-                        var pos = fixed_position(35, 229);
-                        add_div({id: 'tag_div', style: pos, cssclass: 
'inner_box tag', drag: 0});
-
-                        remove_waiting_box();
-                        $('tag_div').innerHTML = code_html;
+            "ajax_misc.php",
+            {
+                method: 'get', parameters: queryString,
+                onFailure: ajax_misc_failure,
+                onSuccess: function (req, j) {
+                    var answer = req.responseXML;
+                    var html = answer.getElementsByTagName('code');
+                    if (html.length === 0) {
+                        var rec = unescape_xml(req.responseText);
+                        error_message('erreur :' + rec);
                     }
+                    var code_html = getNodeText(html[0]);
+                    code_html = unescape_xml(code_html);
+                    var pos = fixed_position(35, 229);
+                    add_div({id: 'tag_div', style: pos, cssclass: 'inner_box 
tag', drag: 0});
+
+                    remove_waiting_box();
+                    $('tag_div').innerHTML = code_html;
                 }
+            }
         );
     } catch (e) {
         error_message(e.message);
     }
 }
+
 /**
  *  Add the current tag to the current ag_id
  * @param {type} p_dossier
@@ -2678,68 +2606,65 @@ function action_tag_select(p_dossier, ag_id)
  * @param p_isgroup g it is a group , t is a single tag
  * @returns {undefined}
  */
-function action_tag_add(p_dossier, ag_id, t_id,p_isgroup)
-{
+function action_tag_add(p_dossier, ag_id, t_id, p_isgroup) {
     try {
         waiting_box();
-        var queryString = "t_id=" + t_id + "&ag_id=" + ag_id + 
"&op=tag_add&gDossier=" + p_dossier+"&isgroup="+p_isgroup;
+        var queryString = "t_id=" + t_id + "&ag_id=" + ag_id + 
"&op=tag_add&gDossier=" + p_dossier + "&isgroup=" + p_isgroup;
         var action = new Ajax.Request(
-                "ajax_misc.php",
-                {
-                    method: 'get', parameters: queryString,
-                    onFailure: ajax_misc_failure,
-                    onSuccess: function (req, j) {
-                        var answer = req.responseXML;
-                        var html = answer.getElementsByTagName('code');
-                        if (html.length === 0)
-                        {
-                            var rec = unescape_xml(req.responseText);
-                            error_message('erreur :' + rec);
-                        }
-                        var code_html = getNodeText(html[0]);
-                        code_html = unescape_xml(code_html);
-                        remove_waiting_box();
-                        $('action_tag_td').innerHTML = code_html;
-                        removeDiv('tag_div');
+            "ajax_misc.php",
+            {
+                method: 'get', parameters: queryString,
+                onFailure: ajax_misc_failure,
+                onSuccess: function (req, j) {
+                    var answer = req.responseXML;
+                    var html = answer.getElementsByTagName('code');
+                    if (html.length === 0) {
+                        var rec = unescape_xml(req.responseText);
+                        error_message('erreur :' + rec);
                     }
+                    var code_html = getNodeText(html[0]);
+                    code_html = unescape_xml(code_html);
+                    remove_waiting_box();
+                    $('action_tag_td').innerHTML = code_html;
+                    removeDiv('tag_div');
                 }
+            }
         );
     } catch (e) {
         error_message(e.message);
     }
 }
+
 /**
  *  remove the current tag to the current ag_id
  * @param {type} p_dossier
  * @param {type} ag_id
  * @returns {undefined}
  */
-function action_tag_remove(p_dossier, ag_id, t_id)
-{
+function action_tag_remove(p_dossier, ag_id, t_id) {
     confirm_box(null, content[50], function () {
         try {
             waiting_box();
             var queryString = "t_id=" + t_id + "&ag_id=" + ag_id + 
"&op=tag_remove&gDossier=" + p_dossier;
             var action = new Ajax.Request(
-                    "ajax_misc.php",
-                    {
-                        method: 'get', parameters: queryString,
-                        onFailure: ajax_misc_failure,
-                        onSuccess: function (req) {
-                            var answer = req.responseXML;
-                            var html = answer.getElementsByTagName('code');
-                            if (html.length === 0)
-                            {
-                                var rec = unescape_xml(req.responseText);
-                                error_message('erreur :' + rec);
-                            }
-                            var code_html = getNodeText(html[0]);
-                            code_html = unescape_xml(code_html);
-                            remove_waiting_box();
-                            $('action_tag_td').innerHTML = code_html;
-
+                "ajax_misc.php",
+                {
+                    method: 'get', parameters: queryString,
+                    onFailure: ajax_misc_failure,
+                    onSuccess: function (req) {
+                        var answer = req.responseXML;
+                        var html = answer.getElementsByTagName('code');
+                        if (html.length === 0) {
+                            var rec = unescape_xml(req.responseText);
+                            error_message('erreur :' + rec);
                         }
+                        var code_html = getNodeText(html[0]);
+                        code_html = unescape_xml(code_html);
+                        remove_waiting_box();
+                        $('action_tag_td').innerHTML = code_html;
+
                     }
+                }
             );
         } catch (e) {
             error_message(e.message);
@@ -2755,19 +2680,20 @@ function action_tag_remove(p_dossier, ag_id, t_id)
 function activate_tag(p_dossier, p_tag_id) {
     waiting_box();
     new Ajax.Request("ajax_misc.php",
-            {
-                method: "get",
-                parameters: {gDossier: p_dossier, op: 'tag_activate', t_id: 
p_tag_id},
-                onSuccess: function (req) {
-                    remove_waiting_box();
-                    var answer = req.responseText.evalJSON();
-                    var tagId = "tag_onoff" + p_tag_id;
-                    $(tagId).update(answer.code);
-                    $(tagId).setStyle(answer.style);
-                    remove_waiting_box();
-                }
-            })
+        {
+            method: "get",
+            parameters: {gDossier: p_dossier, op: 'tag_activate', t_id: 
p_tag_id},
+            onSuccess: function (req) {
+                remove_waiting_box();
+                var answer = req.responseText.evalJSON();
+                var tagId = "tag_onoff" + p_tag_id;
+                $(tagId).update(answer.code);
+                $(tagId).setStyle(answer.style);
+                remove_waiting_box();
+            }
+        })
 }
+
 /**
  * Display a div with available tags, this div can update the cell
  * tag_choose_td
@@ -2775,52 +2701,50 @@ function activate_tag(p_dossier, p_tag_id) {
  * @param {string} p_prefix is the prefix of the div
  * @param {string} Calling object either Tag_Operation or Tag_Action
  * @returns {undefined}
- * 
+ *
  */
-function search_display_tag(p_dossier, p_prefix,p_object)
-{
+function search_display_tag(p_dossier, p_prefix, p_object) {
     try {
         waiting_box();
-        var queryString = { op : 
"search_display_tag",gDossier:p_dossier,pref:p_prefix,caller_obj:p_object};
+        var queryString = {op: "search_display_tag", gDossier: p_dossier, 
pref: p_prefix, caller_obj: p_object};
         var action = new Ajax.Request(
-                "ajax_misc.php",
-                {
-                    method: 'get', parameters: queryString,
-                    onFailure: ajax_misc_failure,
-                    onSuccess: function (req, j) {
-                        var answer = req.responseXML;
-                        var html = answer.getElementsByTagName('code');
-                        if (html.length === 0)
-                        {
-                            var rec = unescape_xml(req.responseText);
-                            error_message('erreur :' + rec);
-                        }
-                        var code_html = getNodeText(html[0]);
-                        code_html = unescape_xml(code_html);
-                        remove_waiting_box();
-                        add_div({id: p_prefix + 'tag_div', style: 
'left:10%;width:70%', cssclass: 'inner_box', drag: 1});
-                        $(p_prefix + 'tag_div').style.top = calcy(200)+"px"
-                        $(p_prefix + 'tag_div').style.left = 20+ "%";
-                        remove_waiting_box();
-                        $(p_prefix + 'tag_div').innerHTML = code_html;
-                        code_html.evalScripts();
+            "ajax_misc.php",
+            {
+                method: 'get', parameters: queryString,
+                onFailure: ajax_misc_failure,
+                onSuccess: function (req, j) {
+                    var answer = req.responseXML;
+                    var html = answer.getElementsByTagName('code');
+                    if (html.length === 0) {
+                        var rec = unescape_xml(req.responseText);
+                        error_message('erreur :' + rec);
                     }
+                    var code_html = getNodeText(html[0]);
+                    code_html = unescape_xml(code_html);
+                    remove_waiting_box();
+                    add_div({id: p_prefix + 'tag_div', style: 
'left:10%;width:70%', cssclass: 'inner_box', drag: 1});
+                    $(p_prefix + 'tag_div').style.top = calcy(200) + "px"
+                    $(p_prefix + 'tag_div').style.left = 20 + "%";
+                    remove_waiting_box();
+                    $(p_prefix + 'tag_div').innerHTML = code_html;
+                    code_html.evalScripts();
                 }
+            }
         );
     } catch (e) {
         error_message(e.message);
     }
 }
+
 /**
  *  Add the selected tag (p_tag_id) to the cell of tag_choose_td in the search 
screen
  * in the search screen
  * @param {type} p_dossier
  * @param {type} p_tag_id
- * @param p_prefix is the prefix of the widget 
+ * @param p_prefix is the prefix of the widget
  * @param p_obj is either g for group of tag or t for a single tag
  */
-function search_add_tag(p_dossier, p_tag_id, p_prefix,p_obj)
-{
+function search_add_tag(p_dossier, p_tag_id, p_prefix, p_obj) {
     try {
         var clear_button = 0;
         if (tag_choose === '' && p_prefix === 'search') {
@@ -2828,38 +2752,37 @@ function search_add_tag(p_dossier, p_tag_id, 
p_prefix,p_obj)
             clear_button = 1;
         }
         waiting_box();
-        var queryString = "op=search_add_tag&gDossier=" + p_dossier + "&id=" + 
p_tag_id + "&clear=" + clear_button + '&pref=' + p_prefix+"&obj="+p_obj;
+        var queryString = "op=search_add_tag&gDossier=" + p_dossier + "&id=" + 
p_tag_id + "&clear=" + clear_button + '&pref=' + p_prefix + "&obj=" + p_obj;
         var action = new Ajax.Request(
-                "ajax_misc.php",
-                {
-                    method: 'get', parameters: queryString,
-                    onFailure: ajax_misc_failure,
-                    onSuccess: function (req, j) {
-                        var answer = req.responseXML;
-                        var html = answer.getElementsByTagName('html');
-                        if (html.length === 0)
-                        {
-                            var rec = unescape_xml(req.responseText);
-                            error_message('erreur :' + rec);
-                        }
-                        var code_html = getNodeText(html[0]);
-                        code_html = unescape_xml(code_html);
-                        remove_waiting_box();
-                        $(p_prefix + 'tag_choose_td').innerHTML = $(p_prefix + 
'tag_choose_td').innerHTML + code_html;
-                        removeDiv(p_prefix + 'tag_div');
+            "ajax_misc.php",
+            {
+                method: 'get', parameters: queryString,
+                onFailure: ajax_misc_failure,
+                onSuccess: function (req, j) {
+                    var answer = req.responseXML;
+                    var html = answer.getElementsByTagName('html');
+                    if (html.length === 0) {
+                        var rec = unescape_xml(req.responseText);
+                        error_message('erreur :' + rec);
                     }
+                    var code_html = getNodeText(html[0]);
+                    code_html = unescape_xml(code_html);
+                    remove_waiting_box();
+                    $(p_prefix + 'tag_choose_td').innerHTML = $(p_prefix + 
'tag_choose_td').innerHTML + code_html;
+                    removeDiv(p_prefix + 'tag_div');
                 }
+            }
         );
     } catch (e) {
         error_message(e.message);
     }
 }
+
 /**
  * Clear the tags in the cell tag_choose_td of the search screen
  * @returns {undefined}
  */
-function search_clear_tag(p_dossier, p_prefix)
-{
+function search_clear_tag(p_dossier, p_prefix) {
     if (p_prefix != 'search') {
         $(p_prefix + 'tag_choose_td').innerHTML = "";
         return;
@@ -2867,54 +2790,53 @@ function search_clear_tag(p_dossier, p_prefix)
     try {
         var queryString = "op=search_clear_tag&gDossier=" + p_dossier + 
"&pref=" + p_prefix;
         var action = new Ajax.Request(
-                "ajax_misc.php",
-                {
-                    method: 'get', parameters: queryString,
-                    onFailure: ajax_misc_failure,
-                    onSuccess: function (req, j) {
-                        var answer = req.responseXML;
-                        var html = answer.getElementsByTagName('html');
-                        if (html.length === 0)
-                        {
-                            var rec = unescape_xml(req.responseText);
-                            error_message('erreur :' + rec);
-                        }
-                        var code_html = getNodeText(html[0]);
-                        code_html = unescape_xml(code_html);
-                        $(p_prefix + 'tag_choose_td').innerHTML = code_html;
-                        tag_choose = "";
+            "ajax_misc.php",
+            {
+                method: 'get', parameters: queryString,
+                onFailure: ajax_misc_failure,
+                onSuccess: function (req, j) {
+                    var answer = req.responseXML;
+                    var html = answer.getElementsByTagName('html');
+                    if (html.length === 0) {
+                        var rec = unescape_xml(req.responseText);
+                        error_message('erreur :' + rec);
                     }
+                    var code_html = getNodeText(html[0]);
+                    code_html = unescape_xml(code_html);
+                    $(p_prefix + 'tag_choose_td').innerHTML = code_html;
+                    tag_choose = "";
                 }
+            }
         );
     } catch (e) {
         error_message(e.message);
     }
 }
-function action_show_checkbox()
-{
+
+function action_show_checkbox() {
     var a = document.getElementsByName('ag_id_td');
     for (var i = 0; i < a.length; i++) {
         a[i].style.display = 'block';
     }
 }
-function action_hide_checkbox()
-{
+
+function action_hide_checkbox() {
     var a = document.getElementsByName('ag_id_td');
     for (var i = 0; i < a.length; i++) {
         a[i].style.display = 'none';
     }
 }
+
 /**
- * 
+ *
  * @param {type} obj
  * object attribute : g
- *   - Dossier dossier_id, 
+ *   - Dossier dossier_id,
  *   - invalue DOM Element where you can find the periode to zoom
  *   - outdiv  ID of the target (DIV)
- *   
+ *
  */
-function calendar_zoom(obj)
-{
+function calendar_zoom(obj) {
     try {
         waiting_box();
         var per_periode = null;
@@ -2927,38 +2849,53 @@ function calendar_zoom(obj)
             notitle = 1;
         }
         var action = new Ajax.Request(
-                "ajax_misc.php",
-                {
-                    method: 'get',
-                    parameters: {"notitle": notitle, "op": 'calendar_zoom', 
'from': from, 'gDossier': obj.gDossier, 'in': per_periode, 'out': obj.outdiv, 
'distype': obj.distype},
-                    onFailure: ajax_misc_failure,
-                    onSuccess: function (req, j) {
-                        if (req.responseText === 'NOCONX') { 
reconnect();return;}
-                        var answer = req.responseXML;
-                        var html = answer.getElementsByTagName('html');
-                        if (html.length === 0)
-                        {
-                            var rec = unescape_xml(req.responseText);
-                            error_message('erreur :' + rec);
-                        }
-                        var code_html = getNodeText(html[0]);
-                        code_html = unescape_xml(code_html);
+            "ajax_misc.php",
+            {
+                method: 'get',
+                parameters: {
+                    "notitle": notitle,
+                    "op": 'calendar_zoom',
+                    'from': from,
+                    'gDossier': obj.gDossier,
+                    'in': per_periode,
+                    'out': obj.outdiv,
+                    'distype': obj.distype
+                },
+                onFailure: ajax_misc_failure,
+                onSuccess: function (req, j) {
+                    if (req.responseText === 'NOCONX') {
+                        reconnect();
+                        return;
+                    }
+                    var answer = req.responseXML;
+                    var html = answer.getElementsByTagName('html');
+                    if (html.length === 0) {
+                        var rec = unescape_xml(req.responseText);
+                        error_message('erreur :' + rec);
+                    }
+                    var code_html = getNodeText(html[0]);
+                    code_html = unescape_xml(code_html);
 
-                        // if the target doesn't exist 
-                        // then create it
-                        if (obj.outdiv === undefined) {
-                            obj.outdiv = 'calendar_zoom_div';
-                        }
-                        if ($(obj.outdiv) == undefined) {
-                            var str_style = 'top:10%;margin-left:2%;';
+                    // if the target doesn't exist
+                    // then create it
+                    if (obj.outdiv === undefined) {
+                        obj.outdiv = 'calendar_zoom_div';
+                    }
+                    if ($(obj.outdiv) == undefined) {
+                        var str_style = 'top:10%;margin-left:2%;';
 //                            var str_style = fixed_position(0, 120);
-                            add_div({id: obj.outdiv, style: 
'margin-left:3%;width:94%;' + str_style, cssclass: "inner_box", drag: 0});
-                        }
-                        remove_waiting_box();
-                        $(obj.outdiv).innerHTML = code_html;
-                        $(obj.outdiv).show();
+                        add_div({
+                            id: obj.outdiv,
+                            style: 'margin-left:3%;width:94%;' + str_style,
+                            cssclass: "inner_box",
+                            drag: 0
+                        });
                     }
+                    remove_waiting_box();
+                    $(obj.outdiv).innerHTML = code_html;
+                    $(obj.outdiv).show();
                 }
+            }
         );
     } catch (e) {
         error_message('calendar_zoom ' + e.message);
@@ -2966,11 +2903,11 @@ function calendar_zoom(obj)
 
 
 }
+
 /**
  *  add a line in the form for the stock
  */
-function stock_add_row()
-{
+function stock_add_row() {
     try {
         style = 'class="input_text"';
         var mytable = g("stock_tb").tBodies[0];
@@ -2979,8 +2916,7 @@ function stock_add_row()
         var nCell = mytable.rows[1].cells.length;
         var row = mytable.insertRow(line);
         var nb = g("row");
-        for (var e = 0; e < nCell; e++)
-        {
+        for (var e = 0; e < nCell; e++) {
             var newCell = row.insertCell(e);
             if (mytable.rows[1].cells[e].hasClassName('num')) {
                 newCell.addClassName("num");
@@ -3007,32 +2943,38 @@ function stock_add_row()
     }
 
 }
-function show_description(p_id)
-{
+
+function show_description(p_id) {
     $('print_desc' + p_id).hide();
     $('input_desc' + p_id).show();
 
 }
+
 /**
  * Display an empty card to fill , with the right card category
  * @param pn_fiche_card_id : fiche_def.fd_id
  * @param pn_dossier_id
  */
-function select_cat(pn_fiche_card_id, pn_dossier_id, ps_element_id)
-{
-    dis_blank_card({"ctl": "div_new_card", "fd_id": pn_fiche_card_id, "op2": 
"bc", "op": "card", gDossier: pn_dossier_id, "elementId": ps_element_id});
+function select_cat(pn_fiche_card_id, pn_dossier_id, ps_element_id) {
+    dis_blank_card({
+        "ctl": "div_new_card",
+        "fd_id": pn_fiche_card_id,
+        "op2": "bc",
+        "op": "card",
+        gDossier: pn_dossier_id,
+        "elementId": ps_element_id
+    });
     removeDiv('select_card_div');
 }
+
 /**
  * Show the DIV and hide the other, the array of possible DIV are
- * in a_tabs, 
+ * in a_tabs,
  * @param {array} a_tabs name of possible tabs
  * @param {strng} p_display_tab tab to display
  */
-function show_tabs(a_tabs, p_display_tab)
-{
-    try
-    {
+function show_tabs(a_tabs, p_display_tab) {
+    try {
         if (a_tabs.length == 0) {
             console.error('a_tabs in empty');
             throw ("a_tabs empty");
@@ -3048,12 +2990,12 @@ function show_tabs(a_tabs, p_display_tab)
     }
 
 }
+
 /**
  * Change the class of all the "LI" element of a UL or OL
  * @param node of ul (this)
  */
-function unselect_other_tab(p_tab)
-{
+function unselect_other_tab(p_tab) {
     try {
         var other = p_tab.getElementsByTagName("li");
         var i = 0;
@@ -3068,25 +3010,25 @@ function unselect_other_tab(p_tab)
         alert_box('unselect_other_tab ' + e.message);
     }
 }
+
 /**
  * logout function call from ajax
  * @see ajax_disconnected
  * @returns {undefined}
  */
-function logout()
-{
+function logout() {
     var tmp_place = window.location.href
     var tmp_b = tmp_place.split('/')
     var tmp_last = tmp_b.length - 1
     var place_logout = tmp_place.replace(tmp_b[tmp_last], 'logout.php');
     window.location.href = place_logout;
 }
+
 /**
  * Create a div which can be used in a anchor
  * @returns {undefined}
  */
-function create_anchor_up()
-{
+function create_anchor_up() {
     if (document.getElementById('up_top'))
         return;
 
@@ -3098,22 +3040,25 @@ function create_anchor_up()
     parent.insertBefore(newElt, $('info_div'));
 
 }
+
 /**
  * Initialize the window to show the button "UP" if the window is scrolled
  * vertically
  * @returns {undefined}
  */
-function init_scroll()
-{
-    var up = new Element('div', {"class": "",
+function init_scroll() {
+    var up = new Element('div', {
+        "class": "",
         "style": "padding:5px;left:auto;width:auto;height: 
auto;display:none;position:fixed;bottom:30%;right:50px;text-align:center;font-size:20px",
         id: "go_up"
     });
     up.innerHTML = '<a class="icon" 
onclick="document.getElementById(\'go_up\').hide()" 
style="float:right;font-size:70%">&#xe816;</a> <a class="icon" href="#up_top" 
>&#xe81a;</a><a href="javascript:show_calc()" class="icon">&#xf1ec;</a>';
     document.body.appendChild(up);
     window.onscroll = function () {
-        if ( document.getElementById("select_box_content") )
-            { 
document.getElementById("select_box_content").setStyle({display:"none"})};
+        if (document.getElementById("select_box_content")) {
+            document.getElementById("select_box_content").setStyle({display: 
"none"})
+        }
+        ;
         if (document.viewport.getScrollOffsets().top > 0) {
             if ($('go_up').visible() == false) {
                 $('go_up').setOpacity(0.65);
@@ -3124,8 +3069,9 @@ function init_scroll()
             $('go_up').hide();
         }
     }
-    
+
 }
+
 /**
  * Confirm a form thanks a modal dialog Box, it returns true if we agree 
otherwise
  * false
@@ -3139,14 +3085,12 @@ function init_scroll()
  * @param p_waiting if true display a waiting box
  * @returns true or false
  */
-function confirm_box(p_obj, p_message, p_callback_true,p_waiting)
-{
+function confirm_box(p_obj, p_message, p_callback_true, p_waiting) {
     waiting_box();
-        try {
+    try {
         // Find id of the end
         var name = "";
-        if (p_obj != null)
-        {
+        if (p_obj != null) {
             if (typeof (p_obj) === "object") {
                 name = p_obj.id;
             } else {
@@ -3155,18 +3099,18 @@ function confirm_box(p_obj, p_message, 
p_callback_true,p_waiting)
         }
 
         // execute the callback function or submit the form
-        if ( ! p_callback_true )
-        {
+        if (!p_callback_true) {
 
             smoke.confirm(p_message, function (e) {
                 if (e) {
-                    if (p_waiting){waiting_box();}
+                    if (p_waiting) {
+                        waiting_box();
+                    }
                     $(name).submit();
                 }
             });
         } else {
-            smoke.confirm(p_message, function (e)
-            {
+            smoke.confirm(p_message, function (e) {
                 if (e) {
                     p_callback_true.apply();
                 }
@@ -3178,43 +3122,41 @@ function confirm_box(p_obj, p_message, 
p_callback_true,p_waiting)
     remove_waiting_box();
     return false;
 }
+
 /**
  * Alert box in CSS and HTML to replace the common javascript alert
  * @param p_message message to display
  * @returns void
  */
-function alert_box(p_message)
-{
+function alert_box(p_message) {
     smoke.alert(p_message, undefined, {ok: 'ok', classname: "inner_box"});
 }
 
 
 /**
- *  Colorize the rows of the table 
+ *  Colorize the rows of the table
  * @param string p_table id of the table
  */
-function alternate_row_color(p_table)
-{
-    var table_colored=$(p_table);
-    if (! table_colored.tBodies[0] ) return;
+function alternate_row_color(p_table) {
+    var table_colored = $(p_table);
+    if (!table_colored.tBodies[0]) return;
 
     var len = table_colored.tBodies[0].rows.length;
     var i = 0;
     var localClass = "";
     for (i = 1; i < len; i++) {
         localClass = (i % 2 == 0) ? "even" : "odd";
-        if ( table_colored.tBodies[0].rows[i].hasClassName("odd"))
-        {
+        if (table_colored.tBodies[0].rows[i].hasClassName("odd")) {
             table_colored.tBodies[0].rows[i].removeClassName("odd");
         }
-        if (table_colored.tBodies[0].rows[i].hasClassName("even"))
-        {
+        if (table_colored.tBodies[0].rows[i].hasClassName("even")) {
             table_colored.tBodies[0].rows[i].removeClassName("even");
         }
         table_colored.tBodies[0].rows[i].addClassName(localClass);
     }
 
 }
+
 /**
  * Make an DOM element draggable or not
  * @param object_id DOM id
@@ -3225,14 +3167,16 @@ function pin(object_id) {
         aDraggableElement[object_id] = undefined;
         $('pin_' + object_id).innerHTML = "&#xf047;";
     } else {
-        aDraggableElement[object_id] = new Draggable(object_id, {starteffect: 
function ()
-            {
-                new Effect.Highlight(object_id, {scroll: window, queue: 
'end'});
-            }}
+        aDraggableElement[object_id] = new Draggable(object_id, {
+                starteffect: function () {
+                    new Effect.Highlight(object_id, {scroll: window, queue: 
'end'});
+                }
+            }
         );
         $('pin_' + object_id).innerHTML = "&#xe809;";
     }
 }
+
 /**
  * Show only the rows into the table (p_table_id) with the attribute 
(p_attribute_name) and if this attribute
  * has the value of  (attribut_value)
@@ -3240,8 +3184,7 @@ function pin(object_id) {
  * @param p_attribute_name the name of the attribute
  * @param p_attribute_value the value of the attribute we want to show
  */
-function show_only_row(p_table_id, p_attribute_name, p_attribute_value)
-{
+function show_only_row(p_table_id, p_attribute_name, p_attribute_value) {
     if (!$(p_table_id)) {
         throw "Invalide table id"
     }
@@ -3256,12 +3199,12 @@ function show_only_row(p_table_id, p_attribute_name, 
p_attribute_value)
         }
     }
 }
+
 /**
- * Show all the rows into the table (p_table_id) 
+ * Show all the rows into the table (p_table_id)
  * @param p_table_id table id
  */
-function show_all_row(p_table_id)
-{
+function show_all_row(p_table_id) {
     if (!$(p_table_id)) {
         throw "Invalide table id"
     }
@@ -3273,6 +3216,7 @@ function show_all_row(p_table_id)
     }
 
 }
+
 /**
  * @class
  * Periode handling
@@ -3280,16 +3224,16 @@ function show_all_row(p_table_id)
  *   - id of the row of the periode row_per_(p_periode_id) , attribute 
exercice =per_exercice,periode_id=p_id
  *   - (this.dialog)
  *   - id of the table with the rows : periode_tbl
- * 
+ *
  * Members :
  *   - periode_id the concerned Periode , 0 none
  *   - p_ledger : the id of ledger (jrn_def.jrn_def_id), 0 for global
  *   - pcallback : default ajax_misc.php (this.callback) with the parameter { 
op:'periode',gDossier,[action:display,remove,save],p_id:p_periode_id}
- *   - dossier 
+ *   - dossier
  *   - js_obj_name : name of the js object (this.js_obj_name)
- *   - ajax_test : file to include for debugging 
- *   - dialog : id of the dialog box (update / add ) periode_box 
- * 
+ *   - ajax_test : file to include for debugging
+ *   - dialog : id of the dialog box (update / add ) periode_box
+ *
  */
 var Periode = function (p_ledger) {
     this.periode_id = 0;
@@ -3322,12 +3266,14 @@ var Periode = function (p_ledger) {
      */
     this.remove = function (p_periode_id) {
 
-        var js_param = {"gDossier": this.dossier,
+        var js_param = {
+            "gDossier": this.dossier,
             "op": "periode",
             "act": "remove",
             "p_id": p_periode_id,
             "ledger_id": 0,
-            "js_var": this.js_obj_name};
+            "js_var": this.js_obj_name
+        };
         if (this.ajax_test != "") {
             js_param["TestAjaxFile"] = this.ajax_test;
         }
@@ -3336,27 +3282,26 @@ var Periode = function (p_ledger) {
             if (e) {
                 waiting_box();
                 new Ajax.Request(here.pcallback,
-                        {
-                            method: "POST",
-                            parameters: js_param,
-                            onSuccess: function (req) {
-                                var answer = req.responseText.evalJSON();
-                                remove_waiting_box();
-                                if (answer.status == "OK")
-                                {
-                                    $("row_per_" + p_periode_id).remove();
-                                    alternate_row_color("periode_tbl");
-                                } else {
-                                    smoke.alert(answer.content);
-                                }
+                    {
+                        method: "POST",
+                        parameters: js_param,
+                        onSuccess: function (req) {
+                            var answer = req.responseText.evalJSON();
+                            remove_waiting_box();
+                            if (answer.status == "OK") {
+                                $("row_per_" + p_periode_id).remove();
+                                alternate_row_color("periode_tbl");
+                            } else {
+                                smoke.alert(answer.content);
                             }
-                        });
+                        }
+                    });
             }
         });
     };
 
     /**
-     * display a dialog box to update a periode, call save either display 
+     * display a dialog box to update a periode, call save either display
      * an error box or update the row.
      * the name of variable is requested
      * to build the right button , javascript in the html of answer
@@ -3367,28 +3312,35 @@ var Periode = function (p_ledger) {
             smoke.alert("ERROR BOX_ADD")
         }
 
-        var js_param = {"gDossier": this.dossier,
+        var js_param = {
+            "gDossier": this.dossier,
             "op": "periode",
             "act": "show",
             "p_id": p_periode_id,
             "ledger_id": this.p_ledger,
-            "js_var": this.js_obj_name};
+            "js_var": this.js_obj_name
+        };
         if (this.ajax_test != "") {
             js_param["TestAjaxFile"] = this.ajax_test;
         }
         var here = this;
         new Ajax.Request(here.pcallback,
-                {
-                    method: "POST",
-                    parameters: js_param,
-                    onSuccess: function (req) {
-                        remove_waiting_box();
-                        var json = req.responseText.evalJSON();
-                        var y = 100;
-                        add_div({"id": "mod_periode", "style": 
"position:fixed;top:" + y + "px;width:50%", "cssclass": "inner_box", 'html': 
"wait"});
-                        $('mod_periode').update(json.content);
-                    }
-                });
+            {
+                method: "POST",
+                parameters: js_param,
+                onSuccess: function (req) {
+                    remove_waiting_box();
+                    var json = req.responseText.evalJSON();
+                    var y = 100;
+                    add_div({
+                        "id": "mod_periode",
+                        "style": "position:fixed;top:" + y + "px;width:50%",
+                        "cssclass": "inner_box",
+                        'html': "wait"
+                    });
+                    $('mod_periode').update(json.content);
+                }
+            });
     };
     /**
      * close the periode, call ajax and receive a json object with the 
attribute
@@ -3419,7 +3371,8 @@ var Periode = function (p_ledger) {
         if (this.js_obj_name == "") {
             smoke.alert("ERROR BOX_ADD")
         }
-        var js_param = {"gDossier": this.dossier,
+        var js_param = {
+            "gDossier": this.dossier,
             "op": "periode",
             "act": "close",
             "ledger_id": this.p_ledger,
@@ -3432,32 +3385,32 @@ var Periode = function (p_ledger) {
         var here = this;
         waiting_box();
         new Ajax.Request(here.pcallback,
-                {
-                    method: "POST",
-                    parameters: js_param,
-                    onSuccess: function (req) {
-                        remove_waiting_box();
-                        var json = req.responseText.evalJSON();
-                        if (json.status == 'OK')
-                        {
-                            $('row_per_' + p_periode_id).update(json.content);
-                            new Effect.Highlight('row_per_' + p_periode_id, 
{startcolor: '#FAD4D4', endcolor: '#F78082'});
-                        } else {
-                            smoke.alert(json.content);
-                        }
+            {
+                method: "POST",
+                parameters: js_param,
+                onSuccess: function (req) {
+                    remove_waiting_box();
+                    var json = req.responseText.evalJSON();
+                    if (json.status == 'OK') {
+                        $('row_per_' + p_periode_id).update(json.content);
+                        new Effect.Highlight('row_per_' + p_periode_id, 
{startcolor: '#FAD4D4', endcolor: '#F78082'});
+                    } else {
+                        smoke.alert(json.content);
                     }
-                });
+                }
+            });
     };
     /**
      * reopen the periode
-     * @parameter p_periode_id is the SQL id of parm_periode or the id of 
+     * @parameter p_periode_id is the SQL id of parm_periode or the id of
      * jrn_periode
      */
     this.open_periode = function (p_periode_id) {
         if (this.js_obj_name == "") {
             smoke.alert("ERROR BOX_ADD")
         }
-        var js_param = {"gDossier": this.dossier,
+        var js_param = {
+            "gDossier": this.dossier,
             "op": "periode",
             "act": "reopen",
             "ledger_id": this.p_ledger,
@@ -3472,21 +3425,23 @@ var Periode = function (p_ledger) {
             if (e) {
                 waiting_box();
                 new Ajax.Request(here.pcallback,
-                        {
-                            method: "POST",
-                            parameters: js_param,
-                            onSuccess: function (req) {
-                                remove_waiting_box();
-                                var json = req.responseText.evalJSON();
-                                if (json.status == 'OK')
-                                {
-                                    $('row_per_' + 
p_periode_id).update(json.content);
-                                    new Effect.Highlight('row_per_' + 
p_periode_id, {startcolor: '#FAD4D4', endcolor: '#F78082'});
-                                } else {
-                                    smoke.alert(json.content);
-                                }
+                    {
+                        method: "POST",
+                        parameters: js_param,
+                        onSuccess: function (req) {
+                            remove_waiting_box();
+                            var json = req.responseText.evalJSON();
+                            if (json.status == 'OK') {
+                                $('row_per_' + 
p_periode_id).update(json.content);
+                                new Effect.Highlight('row_per_' + 
p_periode_id, {
+                                    startcolor: '#FAD4D4',
+                                    endcolor: '#F78082'
+                                });
+                            } else {
+                                smoke.alert(json.content);
                             }
-                        });
+                        }
+                    });
             }
         });
     };
@@ -3512,7 +3467,10 @@ var Periode = function (p_ledger) {
                 if (answer.status == "OK") {
                     $('row_per_' + 
js_param['periode_id']).update(answer.content);
                     removeDiv('mod_periode');
-                    new Effect.Highlight('row_per_' + js_param['periode_id'], 
{startcolor: '#FAD4D4', endcolor: '#F78082'});
+                    new Effect.Highlight('row_per_' + js_param['periode_id'], {
+                        startcolor: '#FAD4D4',
+                        endcolor: '#F78082'
+                    });
                 } else {
                     smoke.alert(answer.content);
                 }
@@ -3522,7 +3480,7 @@ var Periode = function (p_ledger) {
     };
     /**
      * Thanks the object DOMID sel_per_closed[] the selected periodes are
-     * closed 
+     * closed
      * @see Periode._close
      */
     this.close_selected = function () {
@@ -3537,26 +3495,27 @@ var Periode = function (p_ledger) {
             }
         }
         if (count == 0) {
-            smoke.signal("Sélectionner au moins une période", function () {}, 
{duration: 1500});
+            smoke.signal("Sélectionner au moins une période", function () {
+            }, {duration: 1500});
             return;
         }
         smoke.confirm("Confirmer fermeture de " + count + " periode", function 
(e) {
-            if (e) {
-                var a_selected = document.getElementsByName('sel_per_close[]');
-                var i = 0;
-                for (i = 0; i < a_selected.length; i++) {
-                    if (a_selected[i].checked == true) {
-                        // Close the selected periode
-                        here._close(a_selected[i].value);
+                if (e) {
+                    var a_selected = 
document.getElementsByName('sel_per_close[]');
+                    var i = 0;
+                    for (i = 0; i < a_selected.length; i++) {
+                        if (a_selected[i].checked == true) {
+                            // Close the selected periode
+                            here._close(a_selected[i].value);
+                        }
                     }
                 }
             }
-        }
         );
     };
     /**
      *  Insert a periode into the list, always at the bottom !
-     * DomId : 
+     * DomId :
      *   # FORM id :insert_periode_frm
      *   # DIV id = periode_add
      *   # table id = periode_tbl
@@ -3621,12 +3580,11 @@ var progressBar = [];
 var progressIdx = 0;
 
 /**
- * Start the progress bar 
+ * Start the progress bar
  * @param {string} p_taskid id to monitor
  * @param {int} p_message
  */
-function progress_bar_start(p_taskid, p_message)
-{
+function progress_bar_start(p_taskid, p_message) {
     try {
         progressIdx++;
         // block the window
@@ -3638,7 +3596,11 @@ function progress_bar_start(p_taskid, p_message)
 
         add_div({id: "blocking" + progressIdx, cssclass: "smoke-base 
smoke-visible "});
 
-        add_div({id: "message" + progressIdx, cssclass: "inner_box", style: 
"z-index:1000;position:fixed;top:30%;width:40%;left:30%"});
+        add_div({
+            id: "message" + progressIdx,
+            cssclass: "inner_box",
+            style: "z-index:1000;position:fixed;top:30%;width:40%;left:30%"
+        });
         $("message" + progressIdx).update('<h3>' + content[65] + '</h3>' + 
message);
         // Create a div
         add_div({id: "progressDiv" + progressIdx, cssclass: "progressbar", 
html: '<span id="progressValue">0</span>'});
@@ -3650,20 +3612,18 @@ function progress_bar_start(p_taskid, p_message)
 }
 
 /**
- * Check every second the status 
+ * Check every second the status
  * @param {integer} p_idx idx of progressbar
  * @param {string} p_taskid  id to monitor
  */
-function progress_bar_check(p_idx, p_taskid)
-{
+function progress_bar_check(p_idx, p_taskid) {
     try {
 
         new Ajax.Request("ajax_misc.php", {
             parameters: {gDossier: 0, task_id: p_taskid, op: "progressBar"},
             method: "get",
             onSuccess: function (req) {
-                try
-                {
+                try {
                     var answer = req.responseText.evalJSON();
                     var progress_div = $("progressDiv" + progressIdx);
                     var a_child = progress_div.childNodes;
@@ -3707,13 +3667,16 @@ function progress_bar_check(p_idx, p_taskid)
  * In the user's setting  box, update the period list with the choosen exercice
  * @param {int} p_dossier
  */
-function updatePeriodePreference(p_dossier)
-{
+function updatePeriodePreference(p_dossier) {
     waiting_box();
     var exercice = $('exercice_setting').value;
-    new Ajax.Updater('setting_period', "ajax_misc.php", {method: "get", 
parameters: {"op": "pref_exercice", "gDossier": p_dossier, "exercice": 
exercice}});
+    new Ajax.Updater('setting_period', "ajax_misc.php", {
+        method: "get",
+        parameters: {"op": "pref_exercice", "gDossier": p_dossier, "exercice": 
exercice}
+    });
     remove_waiting_box();
 }
+
 /**
  * Update the from and to periode list when changing the exercice
  * @param {int} p_dossier
@@ -3722,29 +3685,36 @@ function updatePeriodePreference(p_dossier)
  * @param {type} p_periode_to id of the ending periode
  * @param {type} p_last possible value = 1 to show last date or 0 the first
  */
-function updatePeriode(p_dossier, p_exercice, p_periode_from, p_periode_to, 
p_last)
-{
+function updatePeriode(p_dossier, p_exercice, p_periode_from, p_periode_to, 
p_last) {
     waiting_box();
     var exercice = $(p_exercice).value;
-    new Ajax.Updater(p_periode_from, "ajax_misc.php", 
-        {   method: "get",
-            parameters: {op: "periode_change", "gDossier": p_dossier, 
"exercice": exercice,
-                field: p_periode_from, "type": "from", "last": p_last}});
-    if ( p_periode_to && p_last ) {
-        new Ajax.Updater(p_periode_to, "ajax_misc.php", 
-        {   method: "get", 
-            parameters: {op: "periode_change", "gDossier": p_dossier, 
"exercice": exercice, 
-                field: p_periode_to, "type": "to", "last": p_last}});
+    new Ajax.Updater(p_periode_from, "ajax_misc.php",
+        {
+            method: "get",
+            parameters: {
+                op: "periode_change", "gDossier": p_dossier, "exercice": 
exercice,
+                field: p_periode_from, "type": "from", "last": p_last
+            }
+        });
+    if (p_periode_to && p_last) {
+        new Ajax.Updater(p_periode_to, "ajax_misc.php",
+            {
+                method: "get",
+                parameters: {
+                    op: "periode_change", "gDossier": p_dossier, "exercice": 
exercice,
+                    field: p_periode_to, "type": "to", "last": p_last
+                }
+            });
     }
     remove_waiting_box();
 }
+
 /**
- * 
+ *
  * @param {string} p_domid DOM id of the span containing the padlock icon
  * @returns none
  */
-function toggle_lock(p_domid)
-{
+function toggle_lock(p_domid) {
     var padlock = document.getElementById(p_domid);
     if (padlock == null) {
         console.error("domid invalid");
@@ -3762,27 +3732,26 @@ function toggle_lock(p_domid)
 
 
 }
+
 /**
- * 
+ *
  * @returns {undefined}
  */
-function show_ledger_fin_currency()
-{
-    var ledger=$('p_jrn').value;
-    var dossier=$('gDossier').value;
+function show_ledger_fin_currency() {
+    var ledger = $('p_jrn').value;
+    var dossier = $('gDossier').value;
     // $('ledger_currency').
-    var a=new Ajax.Updater("ledger_currency",
-                    "ajax_misc.php",
-                    { 
-                        parameters: 
{"op":"currencyCode","gDossier":dossier,"ledger":ledger}
-                    });
+    var a = new Ajax.Updater("ledger_currency",
+        "ajax_misc.php",
+        {
+            parameters: {"op": "currencyCode", "gDossier": dossier, "ledger": 
ledger}
+        });
 }
 
-/*** 
- * Update Preference, applied the new CSS 
+/***
+ * Update Preference, applied the new CSS
  */
-function updatePreference()
-{
+function updatePreference() {
     try {
         waiting_box();
         var param = $('preference_frm').serialize() + 
"&op=preference&action=save";
@@ -3791,17 +3760,16 @@ function updatePreference()
             method: "post",
             parameters: param,
             onSuccess: function (req) {
-              var answer = req.responseText.evalJSON();
-               // $('pagestyle').setAttribute('href', style.style);
-                if ( answer['psw']=='NOK') {
+                var answer = req.responseText.evalJSON();
+                // $('pagestyle').setAttribute('href', style.style);
+                if (answer['psw'] == 'NOK') {
                     smoke.alert(answer['msg']);
                 } else {
                     removeDiv('preference_div');
                 }
             }
         });
-    } catch (e)
-    {
+    } catch (e) {
         smoke.alert(content[48] + e.message);
     }
     remove_waiting_box();
@@ -3814,8 +3782,7 @@ function updatePreference()
  * @param string p_value_domid : id of domElement containing 1 or 0
  * @see param_jrn.php
  */
-function toggle_onoff(icon_domid, p_value_domid)
-{
+function toggle_onoff(icon_domid, p_value_domid) {
     if ($(p_value_domid).value == 0) {
         $(p_value_domid).value = 1;
         $(icon_domid).innerHTML = '&#xf205;';
@@ -3826,14 +3793,14 @@ function toggle_onoff(icon_domid, p_value_domid)
         $(icon_domid).style = 'color:red';
     }
 }
+
 /**
  * turn on or off ,  set an domElement to 1 or 0 and change the icon
  * @param string icon_domid : id of the domElement which must be changed
  * @param string p_value_domid : id of domElement containing 1 or 0
  * @see param_jrn.php
  */
-function toggle_checkbox_onoff(icon_domid, p_value_domid)
-{
+function toggle_checkbox_onoff(icon_domid, p_value_domid) {
 
     if ($(p_value_domid).value == 0) {
         $(p_value_domid).value = 1;
@@ -3843,15 +3810,15 @@ function toggle_checkbox_onoff(icon_domid, 
p_value_domid)
         $(icon_domid).innerHTML = '&#xf096;';
     }
 }
+
 /**
  * in CFGLED show or hide the row depending if the warning is enable or not
- * 
+ *
  * @param {type} p_enable
  * @param {type} p_row
  * @returns {undefined}
  */
-function toggle_row_warning_enable(p_enable, p_row)
-{
+function toggle_row_warning_enable(p_enable, p_row) {
     if ($(p_enable).value == 1) {
         $(p_row).show();
     } else {
@@ -3866,17 +3833,16 @@ function toggle_row_warning_enable(p_enable, p_row)
  * @param p_json2 object 2 to merge
  * @returns new json object
  */
-function json_concat(p_json1,p_json2)
-{
+function json_concat(p_json1, p_json2) {
 
-        var result = {};
-        for (var key in p_json1) {
-            result[key] = p_json1[key];
-        }
-        for (var key in p_json2) {
-            result[key] = p_json2[key];
-        }
-        return result;
+    var result = {};
+    for (var key in p_json1) {
+        result[key] = p_json1[key];
+    }
+    for (var key in p_json2) {
+        result[key] = p_json2[key];
+    }
+    return result;
 
 }
 
@@ -3886,22 +3852,21 @@ function json_concat(p_json1,p_json2)
  * @param string p_click is the DOM id of the checkbox you clicked
  * @param string p_name is the name of all the checkbox to uncheck
  */
-function uncheck_other(p_click,p_name) 
-{
-    var aCheckbox=document.getElementsByName(p_name);
+function uncheck_other(p_click, p_name) {
+    var aCheckbox = document.getElementsByName(p_name);
     if (aCheckbox.length == 0) return;
-    var i=0;
-    for (i=0;i<aCheckbox.length;i++) {
-        aCheckbox[i].checked=false;
+    var i = 0;
+    for (i = 0; i < aCheckbox.length; i++) {
+        aCheckbox[i].checked = false;
     }
-    p_click.checked=true;
+    p_click.checked = true;
 }
+
 /**
  * @class operation Tag Manage the tag with operations
  * @returns {undefined}
  */
-var operation_tag = function (p_div)
-{
+var operation_tag = function (p_div) {
     this.ctl = p_div;
     /**
      * Show a list of tag which can be added to the current followup document
@@ -3909,36 +3874,34 @@ var operation_tag = function (p_div)
      * @param {type} jrn_id
      * @returns {undefined}
      */
-    this.select = function (p_dossier, p_jrn_id)
-    {
+    this.select = function (p_dossier, p_jrn_id) {
         try {
             waiting_box();
-            var queryString = 
{jrn_id:p_jrn_id,op:"operation_tag_select",gDossier:p_dossier,ctl:this.ctl};
+            var queryString = {jrn_id: p_jrn_id, op: "operation_tag_select", 
gDossier: p_dossier, ctl: this.ctl};
             var action = new Ajax.Request(
-                    "ajax_misc.php",
-                    {
-                        method: 'get', 
-                        parameters: queryString,
-                        onFailure: ajax_misc_failure,
-                        onSuccess: function (req, j) {
-                            remove_waiting_box();
-                            
-                            var answer = req.responseXML;
-                            var html = answer.getElementsByTagName('code');
-                            if (html.length === 0)
-                            {
-                                var rec = unescape_xml(req.responseText);
-                                error_message('erreur :' + rec);
-                            }
-                            var code_html = getNodeText(html[0]);
-                            code_html = unescape_xml(code_html);
-                            var pos = fixed_position(35, 229);
-                            add_div({id: 'tag_div', style: pos, cssclass: 
'inner_box tag', drag: 0});
+                "ajax_misc.php",
+                {
+                    method: 'get',
+                    parameters: queryString,
+                    onFailure: ajax_misc_failure,
+                    onSuccess: function (req, j) {
+                        remove_waiting_box();
 
-                            remove_waiting_box();
-                            $('tag_div').innerHTML = code_html;
+                        var answer = req.responseXML;
+                        var html = answer.getElementsByTagName('code');
+                        if (html.length === 0) {
+                            var rec = unescape_xml(req.responseText);
+                            error_message('erreur :' + rec);
                         }
+                        var code_html = getNodeText(html[0]);
+                        code_html = unescape_xml(code_html);
+                        var pos = fixed_position(35, 229);
+                        add_div({id: 'tag_div', style: pos, cssclass: 
'inner_box tag', drag: 0});
+
+                        remove_waiting_box();
+                        $('tag_div').innerHTML = code_html;
                     }
+                }
             );
         } catch (e) {
             error_message(e.message);
@@ -3952,33 +3915,33 @@ var operation_tag = function (p_div)
      * @param p_isgroup g it is a group , t is a single tag
      * @returns void
      */
-    this.add = function (p_dossier, p_jrn_id, t_id, p_isgroup)
-    {
+    this.add = function (p_dossier, p_jrn_id, t_id, p_isgroup) {
         try {
             waiting_box();
-            var queryString = 
{t_id:t_id,jrn_id:p_jrn_id,op:"operation_tag_add",
-                gDossier:p_dossier,ctl:this.ctl,isgroup:p_isgroup};
-            var ctl=this.ctl;
+            var queryString = {
+                t_id: t_id, jrn_id: p_jrn_id, op: "operation_tag_add",
+                gDossier: p_dossier, ctl: this.ctl, isgroup: p_isgroup
+            };
+            var ctl = this.ctl;
             var action = new Ajax.Request(
-                    "ajax_misc.php",
-                    {
-                        method: 'get', parameters: queryString,
-                        onFailure: ajax_misc_failure,
-                        onSuccess: function (req, j) {
-                            var answer = req.responseXML;
-                            var html = answer.getElementsByTagName('code');
-                            if (html.length === 0)
-                            {
-                                var rec = unescape_xml(req.responseText);
-                                error_message('erreur :' + rec);
-                            }
-                            var code_html = getNodeText(html[0]);
-                            code_html = unescape_xml(code_html);
-                            remove_waiting_box();
-                            $('operation_tag_td'+ctl).innerHTML = code_html;
-                            removeDiv('tag_div');
+                "ajax_misc.php",
+                {
+                    method: 'get', parameters: queryString,
+                    onFailure: ajax_misc_failure,
+                    onSuccess: function (req, j) {
+                        var answer = req.responseXML;
+                        var html = answer.getElementsByTagName('code');
+                        if (html.length === 0) {
+                            var rec = unescape_xml(req.responseText);
+                            error_message('erreur :' + rec);
                         }
+                        var code_html = getNodeText(html[0]);
+                        code_html = unescape_xml(code_html);
+                        remove_waiting_box();
+                        $('operation_tag_td' + ctl).innerHTML = code_html;
+                        removeDiv('tag_div');
                     }
+                }
             );
         } catch (e) {
             error_message(e.message);
@@ -3990,39 +3953,43 @@ var operation_tag = function (p_div)
      * @param {int} ag_id
      * @returns void
      */
-    this.remove = function (p_dossier, p_jrn_id, t_id)
-    {
-        var ctl=this.ctl;
+    this.remove = function (p_dossier, p_jrn_id, t_id) {
+        var ctl = this.ctl;
         confirm_box(null, content[50], function () {
             try {
                 waiting_box();
-                var queryString = 
{t_id:t_id,jrn_id:p_jrn_id,op:"operation_tag_remove",gDossier:p_dossier,ctl:ctl};
+                var queryString = {
+                    t_id: t_id,
+                    jrn_id: p_jrn_id,
+                    op: "operation_tag_remove",
+                    gDossier: p_dossier,
+                    ctl: ctl
+                };
                 var action = new Ajax.Request(
-                        "ajax_misc.php",
-                        {
-                            method: 'get', 
-                            parameters: queryString,
-                            onFailure: ajax_misc_failure,
-                            onSuccess: function (req, j) {
-                                var answer = req.responseXML;
-                                var html = answer.getElementsByTagName('code');
-                                if (html.length === 0)
-                                {
-                                    var rec = unescape_xml(req.responseText);
-                                    error_message('erreur :' + rec);
-                                }
-                                var code_html = getNodeText(html[0]);
-                                code_html = unescape_xml(code_html);
-                                remove_waiting_box();
-                                $('operation_tag_td'+ctl).innerHTML = 
code_html;
-
+                    "ajax_misc.php",
+                    {
+                        method: 'get',
+                        parameters: queryString,
+                        onFailure: ajax_misc_failure,
+                        onSuccess: function (req, j) {
+                            var answer = req.responseXML;
+                            var html = answer.getElementsByTagName('code');
+                            if (html.length === 0) {
+                                var rec = unescape_xml(req.responseText);
+                                error_message('erreur :' + rec);
                             }
+                            var code_html = getNodeText(html[0]);
+                            code_html = unescape_xml(code_html);
+                            remove_waiting_box();
+                            $('operation_tag_td' + ctl).innerHTML = code_html;
+
                         }
+                    }
                 );
-                } catch (e) {
-                    error_message(e.message);
-                }
-            });
+            } catch (e) {
+                error_message(e.message);
+            }
+        });
     };
 };
 
@@ -4032,23 +3999,24 @@ var operation_tag = function (p_div)
  * @param p_max_size MAX_FILE_SIZE constant (see config.inc.php or 
constant.php)
  * @returns true if the sum of filesize is greater than the limit
  */
-function check_file_size(p_object,p_max_size)
-{
-    var sum_file=0;
-    for(var i=0;i<p_object.elements.length;i++) {
-        var a=p_object.elements[i];
+function check_file_size(p_object, p_max_size) {
+    var sum_file = 0;
+    for (var i = 0; i < p_object.elements.length; i++) {
+        var a = p_object.elements[i];
 
-        if ( p_object.elements[i].getAttribute('type')=="file" )
-        {
-            for (let x = 0; x < p_object.elements[i].files.length ; x++) {
-                if( p_object.elements[i].files[x]){
+        if (p_object.elements[i].getAttribute('type') == "file") {
+            for (let x = 0; x < p_object.elements[i].files.length; x++) {
+                if (p_object.elements[i].files[x]) {
 
-                    sum_file+=p_object.elements[i].files[x].size;
+                    sum_file += p_object.elements[i].files[x].size;
                 }
             }
         }
     }
-    if ( sum_file > p_max_size) {alert_box(content[78]);return false;}
+    if (sum_file > p_max_size) {
+        alert_box(content[78]);
+        return false;
+    }
     return true;
 }
 
@@ -4059,82 +4027,86 @@ function check_file_size(p_object,p_max_size)
  * @param p_info name of the waiting box
  * @returns true if  file size is less than the maximum
  */
-function check_receipt_size(p_max_size,p_info)
-{
-    document.getElementById(p_info).style.display="inline";
-    
-    var f=document.getElementById("receipt_id");
-    if ( f && f.files[0] && f.files[0].size > parseFloat(p_max_size)) {
-        document.getElementById("receipt_info_id").innerHTML=content[78];
-        document.getElementById(p_info).style.display="none";
+function check_receipt_size(p_max_size, p_info) {
+    document.getElementById(p_info).style.display = "inline";
+
+    var f = document.getElementById("receipt_id");
+    if (f && f.files[0] && f.files[0].size > parseFloat(p_max_size)) {
+        document.getElementById("receipt_info_id").innerHTML = content[78];
+        document.getElementById(p_info).style.display = "none";
         return false;
     }
-    document.getElementById("receipt_info_id").innerHTML="";
+    document.getElementById("receipt_info_id").innerHTML = "";
     document.getElementById("form_file").submit();
     return true;
 }
+
 /**
  *  toggle size of a div : fullsize or normal
- * 
+ *
  */
 function full_size(p_div) {
-    div_dom=document.getElementById(p_div);
-    if ( ! div_dom ) return;
-    if ( div_dom.hasClassName('fullsize')) {
-       
div_dom.removeClassName('fullsize');$('size_'+p_div).innerHTML='&#xe80a;';
+    div_dom = document.getElementById(p_div);
+    if (!div_dom) return;
+    if (div_dom.hasClassName('fullsize')) {
+        div_dom.removeClassName('fullsize');
+        $('size_' + p_div).innerHTML = '&#xe80a;';
     } else {
-        div_dom.addClassName('fullsize');$('size_'+p_div).innerHTML='&#xe83d;';
+        div_dom.addClassName('fullsize');
+        $('size_' + p_div).innerHTML = '&#xe83d;';
     }
-    
+
 }
 
 /**
  *  download a document from an url
  */
-function download_document(p_url) 
-{
+function download_document(p_url) {
     waiting_box();
-    document.location=p_url;
+    document.location = p_url;
     remove_waiting_box();
 }
+
 /**
  *  download a document from a form
  */
-function download_document_form(p_form_id) 
-{
+function download_document_form(p_form_id) {
     waiting_box();
-    var url="export.php?"+$(p_form_id).serialize();
-   document.location=url;
-   remove_waiting_box();
-   return false;
+    var url = "export.php?" + $(p_form_id).serialize();
+    document.location = url;
+    remove_waiting_box();
+    return false;
 }
+
 /**
  *  Pause a javascript
  */
-function pausecomp(millis)
- {
-  var date = new Date();
-  var curDate = null;
-  do { curDate = new Date(); }
-  while(curDate-date < millis);
+function pausecomp(millis) {
+    var date = new Date();
+    var curDate = null;
+    do {
+        curDate = new Date();
+    }
+    while (curDate - date < millis);
 }
+
 /**
  *  propose to reconnect
  * @returns {undefined}
  */
-function reconnect(){
+function reconnect() {
     remove_waiting_box();
-    new Ajax.Request('ajax_misc.php',{
-        method:'get',
-        parameters:{op:"disconnect"},
-        onSuccess:function (req) {
-            var pos="position:fixed;top:0px;width:95%;height:95%";
-            var div= add_div({
-                        'id':"reconnect_bx",
-                        cssclass:"inner_box",
-                        style:pos
-                    });
-            div.innerHTML=req.responseText;
+    new Ajax.Request('ajax_misc.php', {
+        method: 'get',
+        parameters: {op: "disconnect"},
+        onSuccess: function (req) {
+            var pos = "position:fixed;top:0px;width:95%;height:95%";
+            var div = add_div({
+                'id': "reconnect_bx",
+                cssclass: "inner_box",
+                style: pos
+            });
+            div.innerHTML = req.responseText;
         }
     });
 }
@@ -4143,12 +4115,14 @@ function reconnect(){
  *  enlarge an INPUT TEXT
  *
  */
-function enlarge_text(p_domid,p_size) {
+function enlarge_text(p_domid, p_size) {
     try {
-        var element= document.getElementById(p_domid);
-        if ( !element) {console.error (`enlarge text doesn't exist 
[${p_domid}]`)}
-        var current_size=parseInt(element.getAttribute('size'));
-        element.setAttribute('size',current_size+parseInt(p_size));
+        var element = document.getElementById(p_domid);
+        if (!element) {
+            console.error(`enlarge text doesn't exist [${p_domid}]`)
+        }
+        var current_size = parseInt(element.getAttribute('size'));
+        element.setAttribute('size', current_size + parseInt(p_size));
     } catch (e) {
         console.error(`enlarge text fails with ${p_domid} ${p_size} `);
         console.error(e.message);
@@ -4161,44 +4135,42 @@ function enlarge_text(p_domid,p_size) {
  * @brief display a box with the customer , supplier or event for today or late
  * @param p_detail , what to do
  */
-function event_display_detail(p_dossier,p_detail) {
-
-       try
-               {
-                // create div if not exists
-               var dgbox="situation_detail_div";
-               waiting_box();
-
-               var 
queryString={gDossier:p_dossier,op:'event_display_detail','what':p_detail};
-                // call ajax and update content of the div
-               var action = new Ajax.Request(
-                                         "ajax_misc.php" ,
-                                         {
-                                             method:'get',
-                                             parameters:queryString,
-                                             onFailure:ajax_misc_failure,
-                                             onSuccess:function(req){
-                                                       remove_waiting_box();
-                               if (req.responseText == 'NOCONX') {
-                                   reconnect();
-                                   return;
-                               }
-                                if ( ! document.getElementById(dgbox)) {
-                                    var div_style="position:fixed;"+";top:30%";
-                                    
add_div({id:dgbox,cssclass:'inner_box',html:loading(),style:div_style,drag:true});
+function event_display_detail(p_dossier, p_detail) {
 
-                                }
+    try {
+        // create div if not exists
+        var dgbox = "situation_detail_div";
+        waiting_box();
+
+        var queryString = {gDossier: p_dossier, op: 'event_display_detail', 
'what': p_detail};
+        // call ajax and update content of the div
+        var action = new Ajax.Request(
+            "ajax_misc.php",
+            {
+                method: 'get',
+                parameters: queryString,
+                onFailure: ajax_misc_failure,
+                onSuccess: function (req) {
+                    remove_waiting_box();
+                    if (req.responseText == 'NOCONX') {
+                        reconnect();
+                        return;
+                    }
+                    if (!document.getElementById(dgbox)) {
+                        var div_style = "position:fixed;" + ";top:30%";
+                        add_div({id: dgbox, cssclass: 'inner_box', html: 
loading(), style: div_style, drag: true});
+
+                    }
 
-                                                       
$(dgbox).update(req.responseText)
+                    $(dgbox).update(req.responseText)
 
-                                             }
-                                         }
-                     );
-                event_display_main(p_dossier);
-               }catch( e)
-               {
-                       alert_box(e.message);
-               }
+                }
+            }
+        );
+        event_display_main(p_dossier);
+    } catch (e) {
+        alert_box(e.message);
+    }
 }
 
 /**
@@ -4206,33 +4178,31 @@ function event_display_detail(p_dossier,p_detail) {
  * @param p_dossier
  */
 function event_display_main(p_dossier) {
-       try
-               {
-               waiting_box();
-                var dgbox="situation_div";
-                var 
queryString={gDossier:p_dossier,op:'event_display_detail','what':"main_display"};
-               var action = new Ajax.Request(
-                                         "ajax_misc.php" ,
-                                         {
-                                             method:'GET',
-                                             parameters:queryString,
-                                             onFailure:ajax_misc_failure,
-                                             onSuccess:function(req){
-                                                       remove_waiting_box();
-                               if (req.responseText == 'NOCONX') {
-                                   reconnect();
-                                   return;
-                               }
-
-                                  $(dgbox).update(req.responseText)
-
-                                             }
-                                         }
-                     );
-               }catch( e)
-               {
-                       alert_box(e.message);
-               }
+    try {
+        waiting_box();
+        var dgbox = "situation_div";
+        var queryString = {gDossier: p_dossier, op: 'event_display_detail', 
'what': "main_display"};
+        var action = new Ajax.Request(
+            "ajax_misc.php",
+            {
+                method: 'GET',
+                parameters: queryString,
+                onFailure: ajax_misc_failure,
+                onSuccess: function (req) {
+                    remove_waiting_box();
+                    if (req.responseText == 'NOCONX') {
+                        reconnect();
+                        return;
+                    }
+
+                    $(dgbox).update(req.responseText)
+
+                }
+            }
+        );
+    } catch (e) {
+        alert_box(e.message);
+    }
 }
 
 /**
@@ -4240,45 +4210,45 @@ function event_display_main(p_dossier) {
  * @param p_pass_domid DOM ID of the INPUT element with the password
  * @param p_result_domid DOM ID of the element to update
  */
-function check_password_strength(p_pass_domid,p_result_domid,details)
-{
-       try
-               {
-          if ( $(p_pass_domid).value=="") {   
$(p_result_domid).update("");return;}
-              var queryString= {
-                    'op':"password_chk"
-                    ,pass:$(p_pass_domid).value
-                   };
-               var action = new Ajax.Request(
-                                         "ajax_misc.php" ,
-                                         {
-                                             method:'GET',
-                                             parameters:queryString,
-                                             onFailure:ajax_misc_failure,
-                                             onSuccess:function(req){
-                                                       remove_waiting_box();
-                               if (req.responseText == 'NOCONX') {
-                                   return;
-                               }
-                            var answer=req.responseJSON;
-                              console.debug(answer);
-                              if (answer['password']=='nok') {
-
-                                
$(p_pass_domid).setStyle("background-color:red");
-                                if ( details) {
-                                    $(p_result_domid).update(answer['msg'])
-                                }
-                                return;
-                              }
-                              $(p_pass_domid).setStyle("background-color: 
lightgreen");
-                              $(p_result_domid).update("")
-                                             }
-                                         }
-                     );
-               }catch( e)
-               {
-                       alert_box(e.message);
-               }
+function check_password_strength(p_pass_domid, p_result_domid, details) {
+    try {
+        if ($(p_pass_domid).value == "") {
+            $(p_result_domid).update("");
+            return;
+        }
+        var queryString = {
+            'op': "password_chk"
+            , pass: $(p_pass_domid).value
+        };
+        var action = new Ajax.Request(
+            "ajax_misc.php",
+            {
+                method: 'GET',
+                parameters: queryString,
+                onFailure: ajax_misc_failure,
+                onSuccess: function (req) {
+                    remove_waiting_box();
+                    if (req.responseText == 'NOCONX') {
+                        return;
+                    }
+                    var answer = req.responseJSON;
+                    console.debug(answer);
+                    if (answer['password'] == 'nok') {
+
+                        $(p_pass_domid).setStyle("background-color:red");
+                        if (details) {
+                            $(p_result_domid).update(answer['msg'])
+                        }
+                        return;
+                    }
+                    $(p_pass_domid).setStyle("background-color: lightgreen");
+                    $(p_result_domid).update("")
+                }
+            }
+        );
+    } catch (e) {
+        alert_box(e.message);
+    }
 }
 
 /**
diff --git a/include/ajax/ajax_fiche_def_detail.php 
b/include/ajax/ajax_fiche_def_detail.php
index bebf233cb..891295ccc 100644
--- a/include/ajax/ajax_fiche_def_detail.php
+++ b/include/ajax/ajax_fiche_def_detail.php
@@ -28,19 +28,11 @@
 if ( ! defined ('ALLOWED') ) die('Appel direct ne sont pas permis');
 global $g_user;
 
-$g_user->can_request(FICCAT,0);
+if ( $g_user->check_action(FICCAT) == 0 && $g_user->check_module("CCARD") == 0 
)
+    return;
+
 $http=new HttpInput();
 $id=$http->get("id","number");
 $fd=new Fiche_Def($cn,$id);
-if ( $id > 0 )
-{
-
-       echo $fd->input_detail();
-       echo HtmlInput::button("retour_b", _("Retour à la liste"), 
"onclick=\"$('detail_category_div').hide();$('list_cat_div').show()\"");
-}
-else
-{
-       $fd->input_new();
-
-}
+$fd->input_new();
 ?>
diff --git a/include/cfgfiche.inc.php b/include/cfgfiche.inc.php
index 7e45027b6..da3468b4f 100644
--- a/include/cfgfiche.inc.php
+++ b/include/cfgfiche.inc.php
@@ -88,23 +88,21 @@ if ( $action == 'remove_cat' )
 
/*******************************************************************************************/
 if ( isset ($_POST['change_name']))
 {
-    if (isset ($_REQUEST['label']) )
-    {
-       $fiche_def=new Fiche_Def($cn,$_REQUEST['fd_id']);
-    $label=$http->request("label");
-        $fiche_def->SaveLabel($label);
-        if ( isset($_REQUEST['create']))
-        {
-            $fiche_def->set_autocreate(true);
-        }
-        else
-        {
-            $fiche_def->set_autocreate(false);
-        }
-        $fiche_def->save_class_base($http->request('class_base'));
-           $fiche_def->save_description($http->request('fd_description'));
+       $fiche_def=new Fiche_Def($cn,$http->request('fd_id','number'));
 
+    $label=$http->request("nom_mod");
+    $fiche_def->SaveLabel($label);
+    if ( isset($_REQUEST['create']))
+    {
+        $fiche_def->set_autocreate(true);
+    }
+    else
+    {
+        $fiche_def->set_autocreate(false);
     }
+    $fiche_def->save_class_base($http->request('class_base'));
+    $fiche_def->save_description($http->request('fd_description'));
+
        echo $fiche_def->input_detail();
        echo $retour;
        return;
@@ -152,8 +150,15 @@ if ( isset($_POST['add_modele']))
                alert(_('Doublon'));
        }
 }
+$fiche_def_id=$http->request("fd","number",0);
 $fiche_def=new Fiche_def($cn);
+if ( $fiche_def_id != 0 ){
+    $fiche_def->id=$fiche_def_id;
+    $fiche_def->load();
+    echo $fiche_def->input_detail();
+} elseif ($fiche_def_id == 0)
+{
+    $fiche_def->display();
 
-$fiche_def->display();
-$dossier=Dossier::id();
+}
 ?>
diff --git a/include/class/fiche_def.class.php 
b/include/class/fiche_def.class.php
index d48fd6767..9e4375a5c 100644
--- a/include/class/fiche_def.class.php
+++ b/include/class/fiche_def.class.php
@@ -56,19 +56,7 @@ class Fiche_Def
     */
     function input ()
     {
-        $ref=$this->cn->get_array("select * from fiche_def_ref order by 
frd_text");
-        $iradio=new IRadio();
-        /* the accounting item */
-        $class_base=new IPoste('class_base');
-        $class_base->set_attribute('ipopup','ipop_account');
-        $class_base->set_attribute('account','class_base');
-        $class_base->set_attribute('label','acc_label');
-        $f_class_base=$class_base->input();
-        $fd_description=new ITextarea('fd_description');
-        $fd_description->width=80;
-        $fd_description->heigh=4;
-        $fd_description->style='class="itextarea" 
style="margin-left:0px;vertical-align:text-top"';
-        require_once  NOALYSS_TEMPLATE.'/fiche_def_input.php';
+
         return;
     }
 
@@ -131,7 +119,7 @@ class Fiche_Def
         $this->label=$row['fd_label'];
         $this->class_base=$row['fd_class_base'];
         $this->fiche_def=$row['frd_id'];
-        $this->create_account=$row['fd_create_account'];
+        $this->create_account=($row['fd_create_account']=='f')?false:true;
         $this->fd_description=$row['fd_description'];
     }
     /*!
@@ -196,7 +184,7 @@ frd_text , fd_description FROM fiche_def join fiche_def_ref 
on (fiche_def.frd_id
 $order
 ");
 
-               require_once NOALYSS_TEMPLATE.'/fiche_def_list.php';
+               require_once NOALYSS_TEMPLATE.'/fiche_def-display.php';
        }
     /*!
      * \brief Add a fiche category thanks the element from the array
@@ -220,7 +208,7 @@ $order
         $http->set_array($array);
         $p_nom_mod = $http->extract('nom_mod',"string","");
         $p_fd_description = $http->extract('fd_description',"string", "");
-        $p_class_base=$http->extract('class_base',"string", "");
+
         $p_fiche_def= $http->extract('FICHE_REF',"string", "");
         $p_create= $http->extract('create',"string", "off");
         
@@ -253,6 +241,12 @@ $order
                         alert (_('Catégorie existante'));
                        return 1;
                }
+        $default_acc=$this->cn->get_value("select frd_class_base from 
fiche_def_ref where frd_id=$1",[$p_fiche_def]);
+
+        // if the account is empty, takes the account of the template from 
fiche_def_ref
+        $p_class_base=$http->extract('class_base',"string", "");
+        
$p_class_base=(noalyss_trim($p_class_base)=='')?$default_acc:$p_class_base;
+
         // Set the value of fiche_def.fd_create_account
         // automatic creation for 'poste comptable'
         if ( $p_create == "on" && noalyss_strlentrim($p_class_base) != 0)
@@ -457,41 +451,7 @@ $order
         echo $bar;
 
     }
-    /*!\brief show input for the basic attribute : label, class_base, 
create_account
-     * use only when we want to update
-     *
-     *\return HTML string with the form
-     */
-    function input_base()
-    {
-        $r="";
-        $r.=_('Label');
-        $label=new IText('label',$this->label);
-        $r.=$label->input();
-        $r.='<br>';
-        /* the accounting item */
-        $class_base=new IPoste('class_base',$this->class_base);
-        $class_base->set_attribute('ipopup','ipop_account');
-        $class_base->set_attribute('account','class_base');
-        $class_base->set_attribute('label','acc_label');
-        $fd_description=new ITextarea('fd_description',$this->fd_description);
-        $fd_description->width=80;
-        $fd_description->heigh=4;
-        $fd_description->style='class="itextarea" 
style="margin-left:0px;vertical-align:text-top"';
-
-        $r.=_('Poste Comptable de base').' : ';
-        $r.=$class_base->input();
-        $r.='<span id="acc_label"></span><br>';
-               $r.='<br/>';
-               $r.=" Description ".$fd_description->input();
-        /* auto Create */
-               $r.='<br/>';
-        $ck=new ICheckBox('create');
-        $ck->selected=($this->create_account=='f')?false:true;
-        $r.=_('Chaque fiche aura automatiquement son propre poste comptable : 
');
-        $r.=$ck->input();
-        return $r;
-    }
+
     /*!\brief Display all the attribut of the fiche_def
      *\param $str give the action possible values are remove, empty
      */
@@ -607,6 +567,7 @@ $order
 
         $Res=$this->cn->exec_sql($sql,array($t,$this->id));
 
+
     }
     /*!\brief Save the class base
      * \param $p_label label
@@ -770,7 +731,8 @@ $order
         }
         return $array;
     }
-    /*!\brief count the number of fiche_def (category) which has the frd_id 
(type of category)
+    /*!
+     * \brief count the number of fiche_def (category) which has the frd_id 
(type of category)
      *\param $p_frd_id is the frd_id in constant.php the FICHE_TYPE_
      *\return the number of cat. of card of the given type
      *\see constant.php
@@ -780,6 +742,11 @@ $order
         $ret=$this->cn->count_sql("select fd_id from fiche_def where 
frd_id=$1",array($p_frd_id));
         return $ret;
     }
+
+    /**
+     * @brief ask for detail
+     * @return string
+     */
        function input_detail()
        {
                $r = "";
@@ -790,16 +757,32 @@ $order
                $r.= '<H2 class="info">' . $this->id . " " . h($this->label) . 
'</H2>';
                $r.='<fieldset><legend>'._('Données générales').'</legend>';
 
-               /* show the values label class_base and create account */
-               $r.='<form method="post">';
-               $r.=dossier::hidden();
-               $r.=HtmlInput::hidden("fd_id", $this->id);
-               $r.=HtmlInput::hidden("p_action", "fiche");
-               $r.= $this->input_base();
-               $r.='<hr>';
-               $r.=HtmlInput::submit('change_name', _('Sauver'));
-               $r.='</form>';
+        $nom_mod=$this->label;
+        /* the accounting item */
+        $class_base=new IPoste('class_base');
+        $class_base->set_attribute('ipopup','ipop_account');
+        $class_base->set_attribute('account','class_base');
+        $class_base->set_attribute('label','acc_label');
+        $class_base->value=$this->class_base;
+        $f_class_base=$class_base->input();
+        $fd_description=new ITextarea('fd_description');
+        $fd_description->width=80;
+        $fd_description->heigh=4;
+        $fd_description->style='class="itextarea  form-control input_text" 
style="margin-left:0px;vertical-align:text-top"';
+        $fd_description->value=$this->fd_description;
+        $r.='<form method="post">';
+        $r.=\HtmlInput::hidden('fd_id',$this->id);
+        ob_start();
+        require_once  NOALYSS_TEMPLATE.'/fiche_def_input.php';
+        $r.=ob_get_contents();
+        ob_clean();
+        $r.=HtmlInput::submit('change_name', _('Sauver'));
+        $r.='</form>';
+
+               require NOALYSS_TEMPLATE.'/fiche_def-input_detail.php';
+
                $r.='</fieldset>';
+        $r.='<hr>';
                /* attributes */
                $r.='<fieldset><legend>'._('Détails').'</legend>';
 
@@ -807,33 +790,46 @@ $order
                $r.=dossier::hidden();
                $r.=HtmlInput::hidden("fd_id", $this->id);
                $r.=HtmlInput::hidden("action", "");
-               $r.= $this->DisplayAttribut("remove");
-               $r.= HtmlInput::submit('add_line_bt', _('Ajoutez cet élément'),
-                        'onclick="$(\'action\').value=\'add_line\'"');
-               $r.= HtmlInput::submit("save_line_bt", _("Sauvez"),
-                        'onclick="$(\'action\').value=\'save_line\'"');
-                        
-               $r.=HtmlInput::submit('remove_cat_bt', _('Effacer cette 
catégorie'), 'onclick="$(\'action\').value=\'remove_cat\';return 
confirm_box(\'input_detail_frm\',\'' . _('Vous confirmez ?') . '\')"');
-               // if there is nothing to remove then hide the button
-               if (strpos($r, "chk_remove") != 0)
-               {
-                    $r.=HtmlInput::submit('remove_line_bt', _("Enleve les 
éléments cochés"), 
-                            
'onclick="$(\'action\').value=\'remove_line\';return 
confirm_box(\'input_detail_frm\',\'' . _('Vous confirmez ?') . '\')"');
-               }
+               // $r.= $this->DisplayAttribut("remove");
+        ob_start();
+        require NOALYSS_TEMPLATE."/fiche_def-input_detail-2.php";
+        $r.=ob_get_contents();
+        ob_clean();
+
                $r.= "</form>";
-               $r.=" <p class=\"notice\"> " . _("Attention : il n'y aura pas 
de demande de confirmation pour enlever les
-                                   attributs sélectionnés. Il ne sera pas 
possible de revenir en arrière") . "</p>";
+
                $r.='</fieldset>';
                return $r;
        }
+
+
+    /**
+     * @brief input for creating a new category
+     * @return void
+     */
        function input_new()
        {
                $single=new Single_Record("dup");
-               echo '<form method="post" style="display:inline">';
+               echo '<form method="post" style="display:inline" 
onsubmit="return check_new_category()">';
                echo $single->hidden();
                echo HtmlInput::hidden("p_action","fiche");
                echo dossier::hidden();
-               echo $this->input(); //    CreateCategory($cn,$search);
+        $ref=$this->cn->get_array("select * from fiche_def_ref order by 
frd_text");
+        $iradio=new IRadio();
+        $nom_mod="";
+        /* the accounting item */
+        $class_base=new IPoste('class_base');
+        $class_base->set_attribute('ipopup','ipop_account');
+        $class_base->set_attribute('account','class_base');
+        $class_base->set_attribute('label','acc_label');
+        $f_class_base=$class_base->input();
+        $fd_description=new ITextarea('fd_description');
+        $fd_description->width=80;
+        $fd_description->heigh=4;
+        $fd_description->style='class="itextarea  form-control input_text" 
style="margin-left:0px;vertical-align:text-top"';
+        require_once  NOALYSS_TEMPLATE.'/fiche_def_input.php';
+        require_once  NOALYSS_TEMPLATE.'/fiche_def-input_new.php';
+
                echo HtmlInput::submit("add_modele" ,_("Sauve"));
                echo '</FORM>';
        }
diff --git a/include/lib/icon_action.class.php 
b/include/lib/icon_action.class.php
index 42fe5d19d..31f0f4277 100644
--- a/include/lib/icon_action.class.php
+++ b/include/lib/icon_action.class.php
@@ -72,7 +72,19 @@ class Icon_Action
                 $p_javascript, $id, $p_style);
         return $r;
     }
-
+    /**
+     *
+     * @param type $id
+     * @param type $p_javascript
+     * @param type $p_style
+     * @return type
+     */
+    static function icon_remove($id, $p_javascript, $p_style="")
+    {
+        $r=sprintf('<input  class="smallbutton icon" onclick="%s" id="%s" 
type="button" %s value="&#xe828;">',
+            $p_javascript, $id, $p_style);
+        return $r;
+    }
     /**
      * 
      * @param string $id
@@ -497,4 +509,5 @@ class Icon_Action
             );
         return $r;
     }
+
 }
diff --git a/include/template/fiche_def_list.php 
b/include/template/fiche_def-display.php
similarity index 87%
rename from include/template/fiche_def_list.php
rename to include/template/fiche_def-display.php
index e57eedbb8..7532cf21f 100644
--- a/include/template/fiche_def_list.php
+++ b/include/template/fiche_def-display.php
@@ -50,13 +50,18 @@ $max=Database::num_row($res);
        </tR>
 <?php
 $dossier=Dossier::id();
+$http=new HttpInput();
+$ac=$http->request("ac");
+
+
 for ($i=0;$i<$max;$i++):
        $class=($i%2==0)?' class="even" ':' class="odd" ';
        $row=Database::fetch_array($res, $i);
+    
$url=http_build_query(array("ac"=>$ac,"gDossier"=>$dossier,"fd"=>$row['fd_id']));
 ?>
        <tr <?php echo $class?> >
                <td>
-               <?php echo HtmlInput::anchor(h($row['fd_label']), 
"javascript:void(0)", 
"onclick=\"detail_category_show('detail_category_div','".$dossier."','".$row['fd_id']."')\"")?>
+               <?php echo HtmlInput::anchor(h($row['fd_label']), 
"do.php?".$url)?>
                </td>
                <td>
                        <?php echo h($row['fd_class_base'])?>
@@ -84,6 +89,6 @@ endfor;
 echo HtmlInput::button("cat_fiche_def_add",_("Ajout d'une nouvelle 
catégorie"), 
"onclick=\"detail_category_show('detail_category_div','".$dossier."','-1')\"");
 ?>
 </div>
-<div id="detail_category_div" style="display:none"">
+<div id="detail_category_div" style="display:none;margin-left:1rem">
 
 </div>
\ No newline at end of file
diff --git a/include/template/fiche_def-input_detail-2.php 
b/include/template/fiche_def-input_detail-2.php
new file mode 100644
index 000000000..e0239a310
--- /dev/null
+++ b/include/template/fiche_def-input_detail-2.php
@@ -0,0 +1,126 @@
+<?php
+/*
+ *   This file is part of NOALYSS.
+ *
+ *   NOALYSS is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   NOALYSS is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with NOALYSS; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+// Copyright Author Dany De Bontridder danydb@aevalys.eu 4/08/24
+/*! 
+ * \file
+ * \brief manage attribut
+ */
+$cn = Dossier::connect();
+
+$existing_attribut = $cn->get_array('
+                select jnt_id,ad_id,ad_text,jnt_order 
+                from attr_def 
+                    join jnt_fic_attr jfa using (ad_id  ) 
+                where
+                    fd_id=$1 order by jnt_order ', [$this->id]);
+
+$available_attribut = $cn->get_array('
+                select ad_id,ad_text,ad_default_order 
+                from attr_def 
+                where 
+                    ad_id not in (select ad_id from jnt_fic_attr jfa where 
fd_id=$1) order by 2', [$this->id]);
+
+?>
+
+<div class="row">
+    <div class="col">
+        <h3>Attributs de la classe</h3>
+<div id="attribut_card">
+        <?php
+        $i = 0;
+        foreach ($existing_attribut
+
+        as $item):
+        $class = ($i % 2 == 0) ? 'even' : 'odd';
+        $i++;
+        ?>
+
+        <div id="attr_<?=$item['jnt_id']?>" style="cursor: move;" class="<?= 
$class ?>" order="<?= $item['jnt_order'] ?>">
+
+
+            <?php
+            echo $item['ad_text'];
+            ?>
+            <div style="float:right">
+             <?=\Icon_Action::trash("0","")?>
+            </div>
+        </div>
+            <?php
+            endforeach;
+            ?>
+</div>
+    </div>
+    <div class=" col-2">
+        <h4> Ranger les attributs</h4>
+        <p>
+            Supprimer un attribut n'est pas réversible: les données de ces 
attributs
+            seront définitivement perdus.
+        </p>
+        <!--        <input type="submit" class="button" value="Sauver les 
attributs">-->
+    </div>
+
+<div class="col border-dark">
+    <h3>Attributs disponibles</h3>
+    <?php
+    echo HtmlInput::filter_table("avail_attribut_id", '0', '0');
+    ?>
+    <table id="avail_attribut_id" style="width: 90%">
+        <?php
+        $i = 0;
+        foreach ($available_attribut          as $item):
+        $class = ($i % 2 == 0) ? 'even' : 'odd';
+        $i++;
+        ?>
+        <tr class="<?= $class ?>">
+            <td>
+                <?php
+                // ajout de l'attribut donc cette ligne disparait, et apparait 
de l'autre cote + maj db
+                $js_add=sprintf("f")
+                ?>
+
+                <span class="icon" onclick="<?=$js_add?>">&#x21e6;</span>
+            </td>
+
+
+            <td>
+
+                <?php
+                echo $item['ad_text'];
+                ?>
+            </td>
+            <?php
+            endforeach;
+            ?>
+
+    </table>
+
+</div>
+
+</div>
+<div class="row">
+
+</div>
+<script>
+
+(function() {
+
+    Sortable.create('attribut_card',{tag:'div',onChange:function(e) 
{console.debug(e)},onUpdate:function(e) { console.debug(e)}});
+
+})();
+</script>
diff --git a/include/ajax/ajax_fiche_def_detail.php 
b/include/template/fiche_def-input_detail.php
similarity index 58%
copy from include/ajax/ajax_fiche_def_detail.php
copy to include/template/fiche_def-input_detail.php
index bebf233cb..e6bfda114 100644
--- a/include/ajax/ajax_fiche_def_detail.php
+++ b/include/template/fiche_def-input_detail.php
@@ -1,5 +1,4 @@
 <?php
-
 /*
  *   This file is part of NOALYSS.
  *
@@ -16,31 +15,10 @@
  *   You should have received a copy of the GNU General Public License
  *   along with NOALYSS; if not, write to the Free Software
  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+// Copyright Author Dany De Bontridder danydb@aevalys.eu 2/08/24
+/*! 
+ * \file
+ * \brief input card category detail
  */
-
-// Copyright Author Dany De Bontridder danydb@aevalys.eu
-
-/**
- * @file
- * @brief show detail of a fiche_def (category of card) + Attribut
- *
- */
-if ( ! defined ('ALLOWED') ) die('Appel direct ne sont pas permis');
-global $g_user;
-
-$g_user->can_request(FICCAT,0);
-$http=new HttpInput();
-$id=$http->get("id","number");
-$fd=new Fiche_Def($cn,$id);
-if ( $id > 0 )
-{
-
-       echo $fd->input_detail();
-       echo HtmlInput::button("retour_b", _("Retour à la liste"), 
"onclick=\"$('detail_category_div').hide();$('list_cat_div').show()\"");
-}
-else
-{
-       $fd->input_new();
-
-}
 ?>
diff --git a/include/template/fiche_def-input_new.php 
b/include/template/fiche_def-input_new.php
new file mode 100644
index 000000000..f099258da
--- /dev/null
+++ b/include/template/fiche_def-input_new.php
@@ -0,0 +1,43 @@
+<?php
+/*
+ *   This file is part of NOALYSS.
+ *
+ *   NOALYSS is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   NOALYSS is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with NOALYSS; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+// Copyright Author Dany De Bontridder danydb@aevalys.eu 2/08/24
+/*! 
+ * \file
+ * \brief for new category of cards, proposed the template on which the 
category of card will  be based
+ */
+?>
+<h3><?php echo _("Modèles de catégorie")?></h3>
+<p class="text-muted">
+    <?php echo _("Choisissez un modèle pour cette nouvelle catégorie de 
fiche")?>
+</p>
+<ul id="template_category_ck">
+    <?php
+    if ( !empty ($ref)  ) {
+        foreach ($ref as $i=>$v) { ?>
+            <li style="list-style-type: none">
+            <?php echo $iradio->input("FICHE_REF",$v['frd_id']);
+            echo $v['frd_text'];
+            if ( !empty ($v['frd_class_base']) != 0 )
+                echo "&nbsp;&nbsp<I>Class base = ".$v['frd_class_base']."</I>";
+
+        }?>
+        </li>
+    <?php }
+    ?>
+</UL>
diff --git a/include/template/fiche_def_input.php 
b/include/template/fiche_def_input.php
index ceefb0c98..929f1f8e0 100644
--- a/include/template/fiche_def_input.php
+++ b/include/template/fiche_def_input.php
@@ -1,41 +1,40 @@
 <?php
 //This file is part of NOALYSS and is under GPL 
 //see licence.txt
-?><TABLE BORDER="0" CELLSPACING="0">
-<TR>
-<TD><?php echo _('Catégorie de fiche')?> </TD>
-<TD><INPUT TYPE="INPUT" class="input_text" NAME="nom_mod"></TD>
-</TR>
-<tr>
-       <td style="vertical-align: text-top">
-               Description
-       </td>
-       <td>
+/**
+ * @file
+ * @brief input detail of card category , variable to set
+ *    -  $nom_mod name of the category
+ *    - $fd_description ITextarea for the description
+ *    - $f_class_base base account
+ */
+?>
+<div class="content" style="margin-left: 2rem;">
+    <div class="form-group">
+        <label for="nom_mod"><?=_('Categorie de fiche')?></label>
+        <input id="nom_mod_id" type="text" class="input_text form-control" 
style="width: 50rem" name="nom_mod" value="<?=$nom_mod?>">
+    </div>
+<div class="form-group">
+    <label for="fd_description"><?=_("Description")?></label>
                <?php echo $fd_description->input(); ?>
-       </td>
-</tr>
-<TR>
-   <TD> <?php echo _('Classe de base')?> </TD>
-<TD><?php echo $f_class_base?> </TD>
-<td><span id="class_base_label"></span></td>
-</TR>
-<TR>
-<TD colspan='2'> <INPUT TYPE="CHECKBOX" NAME="create" CHECKED><?php echo 
_("Création automatique du poste comptable uniquement s'il n'y a qu'un seul 
poste")?></TD>
-</TR>
-</table>
-<h2><?php echo _("Modèles de catégorie")?></h2>
-<ul>
-<?php
-  if ( !empty ($ref)  ) {
-    foreach ($ref as $i=>$v) { ?>
-    <li style="list-style-type: none">
-<?php echo $iradio->input("FICHE_REF",$v['frd_id']);
-   echo $v['frd_text'];
-   if ( !empty ($v['frd_class_base']) != 0 )
-          echo "&nbsp;&nbsp<I>Class base = ".$v['frd_class_base']."</I>";
+</div>
+    <div class="form-group">
+        <p class="text-muted">
+            <?php echo _("Choisissez poste comptable qui sera la base des 
postes comptables pour les fiches de cette catégorie")?>
+        </p>
+
+        <label for="class_base"><?=_("Poste comptable de base")?></label>
+        <?php echo $f_class_base?>
+
+    </div>
+    <div class="form-group">
+        <INPUT TYPE="CHECKBOX" NAME="create" <?php if ($this->create_account) 
echo 'CHECKED';?> ><?php echo _("Création automatique du poste comptable")?>
+        <p class="text-muted">
+            <?php echo _("Cochez cette case si chaque fiche de cette catégorie 
doit avoir un poste comptable propre, il sera calculé automatiquement si vous 
n'en donnez pas un. ")?>
+        </p>
+        <p class="text-muted">
+            <?php echo _("Si vous ne cochez pas et que le poste comptable de 
base n'est pas vide alors toutes les fiches auront le poste comptable de base 
comme poste comptable par défaut")?>
+        </p>
+    </div>
+</div>
 
-    }?>
-    </li>
-  <?php }
-?>
-</UL>
\ No newline at end of file



reply via email to

[Prev in Thread] Current Thread [Next in Thread]