+function check_date() {
+ if (!is_date(get_post('reconcile_date'))) {
+ display_error(_("Invalid reconcile date format"));
+ set_focus('reconcile_date');
+ return false;
+ }
+ return true;
+}
+//
+// This function can be used directly in table pager
+// if we would like to change page layout.
+//
+function rec_checkbox($row)
+{
+ $name = "rec_" .$row['id'];
+ $hidden = 'last['.$row['id'].']';
+ $value = $row['reconciled'] != '';
+
+// save also in hidden field for testing during 'Reconcile'
+ return is_closed_trans($row['type'], $row['trans_no']) ? "--" : checkbox(null, $name, $value, true, _('Reconcile this transaction'))
+ . hidden($hidden, $value, false);
+}
+
+function systype_name($dummy, $type)
+{
+ global $systypes_array;
+
+ return $systypes_array[$type];
+}
+
+function trans_view($trans)
+{
+ return get_trans_view_str($trans["type"], $trans["trans_no"]);
+}
+
+function gl_view($row)
+{
+ return get_gl_view_str($row["type"], $row["trans_no"]);
+}
+
+function fmt_debit($row)
+{
+ $value = $row["amount"];
+ return $value>=0 ? price_format($value) : '';
+}
+
+function fmt_credit($row)
+{
+ $value = -$row["amount"];
+ return $value>0 ? price_format($value) : '';
+}
+
+function fmt_person($trans)
+{
+ return get_counterparty_name($trans["type"], $trans["trans_no"]);
+}
+
+function fmt_memo($row)
+{
+ $value = $row["memo_"];
+ return $value;
+}
+
+function update_data()
+{
+ global $Ajax;
+
+ unset($_POST["beg_balance"]);
+ unset($_POST["end_balance"]);
+ $Ajax->activate('summary');
+}
+//---------------------------------------------------------------------------------------------
+// Update db record if respective checkbox value has changed.