?>

<?php 
        $length_page = 10;
        $records_by_page_array = array(5, 10, 15, 20, 25, 30, 40, 50);
        $records_by_page = isset($_POST['records_by_page']) ? $_POST['records_by_page'] : 10;
        $filter_form = "automatic_form";
        $list_form = "result_form";
        $default_array = array('submit_filter' => '1');
        if (allowAccess(request_approve_all)) {
            //$default_array[idEncode("IF(((T_request*Id_author='".$_sess_user_id."'@AND@T_status*Name@IN@(".implode(",",$rw_array_for_walk)."))@OR@(T_status*Name@IN@(".implode(",",$manage_array_for_walk).")@AND@T_caver*Login='******'user_login'])."')),'<convert>#label=626<convert>','<convert>#label=627<convert>')")] = '<convert>#label=626<convert>'; //Oui
            $default_array[idEncode("IF(((T_request*Id_author='" . $_sess_user_id . "'@AND@T_status*Name@IN@(" . implode(",", $rw_array_for_walk) . "))@OR@(T_status*Name@IN@(" . implode(",", $manage_array_for_walk) . ")@AND@T_request*Id_recipient='" . $_sess_user_id . "')),'<convert>#label=626<convert>','<convert>#label=627<convert>')")] = '<convert>#label=626<convert>';
            //Oui
            $default_array[idEncode("(SELECT@Language@FROM@" . $_SESSION['Application_host'] . "*T_caver@WHERE@Id=T_request*Id_author)")] = $_SESSION['language'];
        } elseif (allowAccess(request_edit_mine)) {
            $default_array[idEncode('T_status*Name')] = $def_status_array;
        }
        $result = getRowsFromSQL($sql, $columns_params, $links, $records_by_page, $filter_form, $list_form, $_POST, $input_type, $style, $default_order, true, true, "", $default_array, $images);
        $resource_id = $result['resource_id'];
        $filter_fields = getFilterFields($sql, $columns_params, $_POST, $filter_form, "<convert>#label=542<convert>", false, $resource_id, $default_array);
        //Tous
        $rows = $result['rows'];
        $total_count = $result['total_count'];
        $local_count = $result['local_count'];
        $count_page = ceil($total_count / $records_by_page);
        $current_page = isset($_POST['current']) ? $_POST['current'] : 1;
        $order = isset($_POST['order']) ? $_POST['order'] : '';
        $by = isset($_POST['by']) ? $_POST['by'] : $default_order;
        if ($total_count > 0) {
            $navigator = getPageNavigator($length_page, $current_page, $count_page, $filter_form);
        } else {
function displayCalendarNames()
{
    global $master_array;
    $calendars = $master_array['calendars'];
    echo '<div class="calendars" id="calendars">';
    for ($ct1 = 1; $ct1 <= count($calendars); $ct1++) {
        $calendar = $calendars[$ct1];
        $inputId = 'view-' . idEncode($calendar['id']);
        $isWebCal = '';
        if ($calendar['isWebCal']) {
            $isWebCal = ' webcal';
        }
        if (!defined(DEFAULT_CALENDAR)) {
            define(DEFAULT_CALENDAR, $calendar['name']);
        }
        $isDefault = '';
        if ($calendar['name'] == DEFAULT_CALENDAR) {
            $isDefault = ' default';
        }
        echo '<div class="calendar-info color-' . $ct1 . $isWebCal . $isDefault . '">';
        echo '<span class="cal-details">';
        echo '<input type="checkbox" name="' . $inputId . '" id="' . $inputId . '" checked="checked" />';
        echo '<label class="name" for="' . $inputId . '">';
        echo $calendar['name'];
        echo '</label>';
        echo '</span> ';
        echo '<span class="links">';
        if ($calendar['isWebCal']) {
            echo '<a href="' . $calendar['filename'] . '">ics</a>';
            echo ' <span class="faded">rss</span>';
        } else {
            echo '<a href="phpicalendar-karl/calendars/' . $calendar['id'] . '.ics' . '">ics</a>';
            echo ' <a href="phpicalendar-karl/rss/rss.php?cal=' . $calendar['id'] . '&amp;rssview=month">rss</a>';
        }
        echo '</span>';
        echo '</div>';
    }
    echo '</div>';
}
function getFilterFields($sql, $columns_params, $POST_vars, $filter_form, $msg_all, $small = false, $resource = false, $default_values = array())
{
    $time_start = startMetro();
    $default_size_text = 20;
    $default_size_number = 10;
    $field_set_array = array();
    // Check if it takes into account the default values or the POST values
    $buttons = array("submit_filter", "reset_filter", "reset", "overview_filter", "current", "order", "by", "records_by_page", "PHPSESSID");
    $get_post_values = false;
    foreach ($buttons as $key => $value) {
        if (isset($POST_vars[$value])) {
            $get_post_values = true;
            break;
        }
    }
    // other
    if (isset($POST_vars['reset_filter'])) {
        foreach ($POST_vars as $key => $value) {
            if (!is_array($value)) {
                unset($POST_vars[$key]);
            }
        }
    }
    //end of other
    if ($get_post_values) {
        $values_array = $POST_vars;
    } else {
        $values_array = $default_values;
    }
    // End of check if it takes into account the default values or the POST values
    $connect_db = connect();
    if (!$resource) {
        if (strpos($sql, " LIMIT ") !== false) {
            $head_sql = substr($sql, 0, strpos($sql, " LIMIT "));
        } else {
            $head_sql = $sql;
        }
        $head_sql .= " LIMIT 0 ";
        $resource = mysql_query($head_sql) or die(reportError(mysql_error(), __FILE__, "function", __FUNCTION__, 'Erreur SQL : ' . $sql));
    }
    $time_start_b = startMetro();
    $fields = mysql_num_fields($resource);
    //CHRONOPHAGE?
    endMetro($time_start_b, __FUNCTION__ . " head query");
    $column_side = 1;
    for ($i = 0; $i < $fields; $i++) {
        $new_field = "";
        $names = $columns_params[$i];
        //mysql_field_name($resource, $i);
        $name_array = explode("|", $names);
        $name = $name_array[0];
        $label = $name_array[1];
        $sub_querry = $name_array[2];
        $multiple_size = $name_array[3];
        if (strpos($name, "[hidden]") === false) {
            $len = mysql_field_len($resource, $i);
            $type = mysql_field_type($resource, $i);
            $flags = mysql_field_flags($resource, $i);
            if (strpos($flags, "not_null") !== false) {
                $mandatory = "*";
            } else {
                $mandatory = "";
            }
            if ($sub_querry != "" || strpos($flags, "enum") !== false) {
                $multiple = "";
                $mult_suffix = "";
                if ($multiple_size > 0) {
                    $multiple = "size=\"" . $multiple_size . "\" multiple=\"multiple\"";
                    $mult_suffix = "[]";
                    //The POST var must know that it's an array of values !! ... this is the trick ! On name attribute only !!!
                    $msg_all = "";
                }
                $new_field .= "<select class=\"select2\" id=\"" . idEncode($name) . "\" name=\"" . idEncode($name) . $mult_suffix . "\" " . $multiple . ">\n";
                $selected = $values_array[idEncode($name)];
                if ($sub_querry != "") {
                    if (strpos($sub_querry, ";") !== false) {
                        $enum_array = explode(";", $sub_querry);
                        $new_field .= getOptionsFromArray($enum_array, $msg_all, $selected);
                    } else {
                        $comparedCol = "value";
                        $textCol = "text";
                        $new_field .= getOptions($sub_querry, $msg_all, $selected, $comparedCol, $textCol);
                    }
                } else {
                    $enum_array = getEnumArray($name);
                    $new_field .= getOptionsFromArray($enum_array, $msg_all, $selected);
                }
                $new_field .= "</select>";
            } else {
                switch ($type) {
                    case "string":
                        $new_field .= "<input class=\"input1\" id=\"" . idEncode($name) . "\" name=\"" . idEncode($name) . "\" value=\"" . $values_array[idEncode($name)] . "\" ";
                        $new_field .= "type=\"text\" ";
                        $len = $len / 3;
                        $new_field .= "size=\"" . min($default_size, 0 + $len) . "\" maxlength=\"" . $len . "\" />";
                        break;
                    case "int":
                    case "real":
                        $name_from = idEncode(">=|" . $name);
                        $name_to = idEncode("<=|" . $name);
                        $new_field .= "<input class=\"input1\" id=\"" . $name_from . "\" name=\"" . $name_from . "\" value=\"" . $values_array[$name_from] . "\" type=\"text\" size=\"" . $default_size_number . "\" />";
                        $new_field .= " &le; x &le; <input class=\"input1\" id=\"" . $name_to . "\" name=\"" . $name_to . "\" value=\"" . $values_array[$name_to] . "\" type=\"text\" size=\"" . $default_size_number . "\" />";
                        $name = "<=|" . $name;
                        break;
                    case "datetime":
                    case "date":
                        $name_from = idEncode(">=|" . $name);
                        $name_to = idEncode("<=|" . $name);
                        $new_field .= "<input class=\"input1\" id=\"" . $name_from . "\" name=\"" . $name_from . "\" value=\"" . $values_array[$name_from] . "\" type=\"text\" size=\"10\" maxlength=\"10\" readonly=\"readonly\" /> <a href=\"JavaScript:showCalendar(document." . $filter_form . ".elements['" . $name_from . "'],'yyyy-MM-DD','Pick a date')\"><img src=\"../images/icons/cal.gif\" alt=\"Click Here to use a calendar\" title=\"Click Here to use a calendar\" style=\"cursor:pointer;vertical-align:text-top;border:0px none;\" /></a>";
                        $new_field .= " &le; x &le; <input class=\"input1\" id=\"" . $name_to . "\" name=\"" . $name_to . "\" value=\"" . $values_array[$name_to] . "\" type=\"text\" size=\"10\" maxlength=\"10\" readonly=\"readonly\" /> <a href=\"JavaScript:showCalendar(document." . $filter_form . ".elements['" . $name_to . "'],'yyyy-MM-DD','Pick a date')\"><img src=\"../images/icons/cal.gif\" alt=\"Click Here to use a calendar\" title=\"Click Here to use a calendar\" style=\"cursor:pointer;vertical-align:text-top;border:0px none;\" /></a>";
                        $name = "<=|" . $name;
                        break;
                    default:
                        break;
                }
            }
            $field_set = "<tr><td class=\"label\">\n";
            $field_set .= "<label class=\"label_portlet\" for=\"" . idEncode($name) . "\">\n";
            $field_set .= str_replace("[hidden]", "", $label) . "\n";
            $field_set .= "</label>\n";
            $field_set .= "</td>\n";
            $field_set .= "<td class=\"field\">\n";
            $field_set .= $new_field . "\n";
            $field_set .= "</td></tr>\n";
            $field_set_array[] .= $field_set;
        }
    }
    $field_set = "<tr><td>\n<table border=\"0\" cellspacing=\"1\" cellpadding=\"0\">\n";
    for ($i = 0; $i < count($field_set_array); $i++) {
        $field_set .= $field_set_array[$i];
        if ($i == ceil(count($field_set_array) / 2) - 1 && !$small) {
            $field_set .= "</table>\n</td>\n<td>\n<table border=\"0\" cellspacing=\"1\" cellpadding=\"0\">\n";
        }
    }
    $field_set .= "</table>\n</td></tr>\n";
    mysql_free_result($resource);
    close($connect_db);
    endMetro($time_start, __FUNCTION__);
    return $field_set;
}