diff --git a/include/balance.inc.php b/include/balance.inc.php
index 2b38736c7..928d20d00 100644
--- a/include/balance.inc.php
+++ b/include/balance.inc.php
@@ -99,26 +99,37 @@ echo '
';
/* add a all ledger choice */
echo _('Filtre')." ";
+// temp var used to set the filter
$rad=new IRadio();
+
$array_ledger=$g_user->get_ledger('ALL',3);
$array=get_array_column($array_ledger,'jrn_def_id');
-$selected=(isset($_GET['r_jrn']))?$_GET['r_jrn']:array();
-$select_cat=(isset($_GET['r_cat']))?$_GET['r_cat']:array();
+$selected=$http->get('r_jrn','array',array());
+$select_cat=$http->get('r_cat','array',array());
+
$array_cat=Acc_Ledger::array_cat();
+// filter type : none(0), ledger(1), catgory of ledger (sale,purchase...)(=2)
+$filter=$http->get('p_filter',"string",0);
+$filter = ($filter=="")?0:$filter;
echo '
';
-if ( ! isset($_GET['p_filter']) || $_GET['p_filter']==0) $rad->selected='t';
-else $rad->selected=false;
+$rad->selected=false;
+if ( $filter==0) $rad->selected='t';
+
echo '- '.$rad->input('p_filter',0)._('Aucun filtre, tous les journaux').'
';
-if ( isset($_GET['p_filter']) && $_GET['p_filter']==1) $rad->selected='t';
-else $rad->selected=false;
+
+$rad->selected=false;
+if ( $filter==1) $rad->selected='t';
echo '- '.$rad->input('p_filter',1)._('Filtré par journal');
echo HtmlInput::button_choice_ledger(array('div'=>'','type'=>'ALL','all_type'=>1));
echo '
';
-if ( isset($_GET['p_filter']) && $_GET['p_filter']==2) $rad->selected='t';
-else $rad->selected=false;
+
+$rad->selected=false;
+if ( $filter==2) $rad->selected='t';
+
echo '- '.$rad->input('p_filter',2)._('Filtré par catégorie').HtmlInput::select_cat($array_cat).'
';
echo '
';
+
echo _('Totaux par sous-niveaux');
$ck_lev1=new ICheckBox('lvl1');
$ck_lev2=new ICheckBox('lvl2');
@@ -211,19 +222,19 @@ if ( isset ($_GET['view'] ) )
$to_periode=$http->get("to_periode","number");
$from_poste=$http->get("from_poste","string");
$to_poste=$http->get("to_poste","string");
- $p_filter=$http->get("p_filter");
+
echo "