<?php
use Cake\I18n\Time;
use Cake\I18n\Date;
use App\Controller\MaterielsController;



// (EP 21/5/19)
// --- Elements set by Controller for this view ---

/*
  TODO: $materiels doit etre enrichi avec des nouveaux attributs tels que (pour chaque materiel de la liste) :
- CAN_EDIT
- CAN_DELETE
- CAN_VALIDATE
- CAN_TBA
- CAN_ARCHIVE
 */

// Options des filtres
$nblines_options = $nblines_options;
$age_options = $age_options;
$domaine_options = $domaine_options;
$projet_options = $projet_options;

//debug($domain_options);
//debug($projet_options);

$nbMateriels = $nbMateriels;
$controller=$controller;
$materiels = $materiels;
$configuration = $configuration;
$searchfor = $searchfor;

// Uniquement quand un statut est sélectionné (pour filtrer)
$SELECTED_STATUS = isset($SELECTED_STATUS) ? $SELECTED_STATUS : null;

// TODO: yena plein d'autres
// ...

// - Constants :

// - User status:
$role = $role;
$username = $username;
$priviledgedUser = $priviledgedUser;
$USER_IS_UTILISATEUR = $USER_IS_UTILISATEUR;
$USER_IS_RESPONSABLE = $USER_IS_RESPONSABLE;
$USER_IS_RESPONSABLE_OR_MORE = $USER_IS_RESPONSABLE_OR_MORE;
$USER_IS_ADMIN = $USER_IS_ADMIN;
$USER_IS_ADMIN_OR_MORE = $USER_IS_ADMIN_OR_MORE;
$USER_IS_ADMINPLUS = $USER_IS_ADMINPLUS;
$USER_IS_ADMINPLUS_OR_MORE = $USER_IS_ADMINPLUS_OR_MORE;
$USER_IS_SUPERADMIN = $USER_IS_SUPERADMIN;
// (EP) TODO: Vraiment utile ??? A virer je pense
$PROFILE_USER = $PROFILE_USER;
$PROFILE_ADMIN = $PROFILE_ADMIN;
$PROFILE_RESPONSABLE = $PROFILE_RESPONSABLE;
$PROFILE_ADMINPLUS = $PROFILE_ADMINPLUS;
$PROFILE_SUPERADMIN = $PROFILE_SUPERADMIN;
$allProfiles = $allProfiles;

// - Materiel status:
$idGmNa = $idGmNa;
$idGtNa = $idGtNa;

// - Fonctions :
$displayElement = $displayElement;
$dateProchainControleVerif = $dateProchainControleVerif;
$echoActionButton = $echoActionButton;

// @TODO : get from Configurations
$METRO=false; 




/*
<!--
******************************************************************************
        FONCTIONS D'AFFICHAGE DES DIFFÉRENTES SECTIONS DE LA PAGE WEB
******************************************************************************
-->
*/

$displaySearchField = function($params, $searchfor, $html, $form) {
    /*
    <div class="actions" style="width: 100%; float: none; padding: 0 0;">
    echo $html->link('Chercher', [
        'action' => 'index',
        '?' => $params
    ], [
        'title' => 'Tous',
        'style' => 'margin-right: 5px',
        'escape' => false
    ]);
    echo "</div>";
    */
    //echo $this->Form->create('Materiel', ['url' => '/materiels/find']);
    /*
    echo $this->Form->create('Materiel', ['action' => 'index', '?'=>$params]);
    echo '<input name="searchfor" class="form-control mr-2 mr-sm-2 col-8 col-sm-6 col-md-6 col-lg-9" type="search" placeholder="Recherche (matériels)" aria-label="Search" id="MaterielSAll barre">';
    echo $this->Form->button('Chercher', [ 'class'=>'btn btn-outline-success', 'type'=>'submit', 'name' => 'MaterielSAll', 'id' => 'MaterielSAll', 'style' => 'margin: 0px;' ]);
    echo $this->Form->end();
    */
    // Bien mais insuffisant car les autres paramètres (page, age, domain, sont perdus)
     echo $this->Form->create('Materiel', [
        // OK mais renvoie sur la vue materiesl/find/ alors qu'on veut rester sur la liste des materiels
        //'url' => '/materiels/find'
        //'url' => '/materiels/index?searchfor='.$this->request->getQuery('searchfor'),
        'type' => 'get',
        //'valueSources' => 'query'
        'url' => [
            'action' => "index",
            //'?' => $params
        ]
     ]);
     //echo '<input name="s_all_2" class="search-input" type="text" id="MaterielSAll">';
     //echo $this->Form->control('s_all_2', [
     echo $this->Form->control('searchfor', [
         'id' => 'MaterielSAll',
         'class' => 'search-input',
         'label' => 'Filtrer',
         //'type' => 'text',
         'placeholder' => "Entrez un ou plusieurs mots séparés par un espace",
         'default' => $searchfor,
     ]);
     // (EP 202007) Ajouter un champ caché pour chaque paramètre passé dans l'url
     // afin de ne pas les perdre...
     //$parameters = ['aff', 'age', 'domaine', 'status', 'projet'];
     $parameters = ['nblines', 'age', 'domaine', 'status', 'projet'];
     foreach ($parameters as $param)
         if (isset($params[$param])) 
             echo $this->Form->hidden($param, [
                 'value' => $params[$param]
             ]);
     /*
     $param = 'age';
     echo $this->Form->hidden($param, [
         'value' => isset($params[$param]) ? $params[$param] : null
     ]);
     $param = 'domain';
     echo $this->Form->hidden($param, [
         'value' => isset($params[$param]) ? $params[$param] : null
     ]);
     $param = 'status';
     echo $this->Form->hidden($param, [
         'value' => isset($params[$param]) ? $params[$param] : null
     ]);
     */
     /*
     echo $this->Form->submit('Chercher', [
     'name' => 'MaterielSAll',
     'id' => 'MaterielSAll',
     'style' => 'margin: 0px;'
     ]);
     */
     echo $this->Form->end();
};





$displayExportCurrentButton = function($SELECTED_STATUS, $params, $nbMateriels, $html) {
    ?>
    <div class="actions" style="width: 100%; float: none; padding: 0 0;">
    <?php
    echo $html->link(''.' '.'exportCurrent', [
            //'action' => 'index',
            //'CREATED',
            //'?' => ['height' => 400, 'width' => 500]
            //'?' => $params + ['status'=>'CREATED']
            //'?' => $params
            '?' => array_merge($params, ['exportcurrent'=>1])
            //'?' => null
            //[$args],
            //"http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']
    ], [
        'title' => 'Exporter la liste courante',
        'style' => 'margin-right: 5px',
        'escape' => false
    ]);
    
    echo '</p>';
    
    echo "</div>";

}; // displayExportCurrentButton()






$displayStatusButtons = function($SELECTED_STATUS, $params, $nbMateriels, $html) {
    ?>
    <div class="actions" style="width: 100%; float: none; padding: 0 0;">
    <?php
    
    echo '<p>';
    echo "Afficher les matériels : ";
    echo '</br>';
    echo '</br>';
    $b_all = $b_cre = $b_val = $b_toarc = $b_arc = '';
    $SELECTED = '<i class="icon-ok"></i>';
    //if (isset($SELECTED_STATUS)) {
    if ($SELECTED_STATUS) {
        if ($SELECTED_STATUS == 'CREATED')
            $b_cre = $SELECTED;
        else if ($SELECTED_STATUS == 'VALIDATED')
            $b_val = $SELECTED;
        else if ($SELECTED_STATUS == 'TOBEARCHIVED')
            $b_toarc = $SELECTED;
        else if ($SELECTED_STATUS == 'ARCHIVED')
            $b_arc = $SELECTED;
    } else $b_all = $SELECTED;
        
    
    //debug($params);
    /*
     * Affichage des boutons de filtrage par statut (en haut de la page)
     */ 

    $statuses = [
        'TOUS' => [$b_all, 'TOUS', 'Tous les matériels', 5],
        'CREATED' => [$b_cre, 'A valider', 'Seulement les matériels créés', 5],
        'VALIDATED' => [$b_val, 'Validés', "Seulement les matériels validés", 5],
        'TOBEARCHIVED' => [$b_toarc, 'A sortir', "Seulement les matériels à archiver", 5],
        'ARCHIVED' => [$b_arc, 'Archivés', "Seulement les matériels sortis de l'inventaire", 0],
    ];
    // https://book.cakephp.org/3/en/views/helpers/html.html#creating-links
    foreach ($statuses as $status=>$status_params) {
        $i=-1;
        if ($status=='TOUS') $status=null;
        echo $html->link($status_params[++$i].' '.$status_params[++$i], [
            //'action' => 'index',
            //'CREATED',
            //'?' => ['height' => 400, 'width' => 500]
            //'?' => $params + ['status'=>'CREATED']
            '?' => array_merge($params, ['status'=>$status])
            //'?' => null
            //[$args],
            //"http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']
        ], [
            'title' => $status_params[++$i],
            //'style' => 'margin-right: 5px',
            'style' => 'margin-right: '.$status_params[++$i].'px',
            'escape' => false
        ]);
    }
    
    /*
    //echo $this->Html->link($b_all . ' Tous', [
    echo $html->link($b_all . ' TOUS', [
        //'action' => 'index',
        //'?' => $params
        '?' => array_merge($params, ['status'=>null])
    ], [
        'title' => 'Tous',
        'style' => 'margin-right: 5px',
        'escape' => false
    ]);

    $status = 'CREATED';
    echo $html->link($b_cre . ' A valider', [
        //'action' => 'index',
        //'CREATED',
        // https://book.cakephp.org/3/en/views/helpers/html.html#creating-links
        //'?' => ['height' => 400, 'width' => 500]
        //'?' => $params + ['status'=>'CREATED']
        '?' => array_merge($params, ['status'=>$status])
        //'?' => null
        //[$args],
        //"http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']
    ], [
        'title' => 'Liste des matériels créés',
        'style' => 'margin-right: 5px',
        'escape' => false
    ]);
    
    $status = 'VALIDATED';
    echo $html->link($b_val . ' Validés', [
        //'action' => 'index',
        //'VALIDATED',
        //'?' => $params
        '?' => array_merge($params, ['status'=>$status])
    ], [
        'title' => "Liste des materiels qu'on peut archiver",
        'style' => 'margin-right: 5px',
        'escape' => false
    ]);
    
    $status = 'TOBEARCHIVED';
    echo $html->link($b_toarc . ' A sortir', [
        //'action' => 'index',
        //'TOBEARCHIVED',
        //'?' => $params
        '?' => array_merge($params, ['status'=>$status])
    ], [
        'title' => "A sortir de l'inventaire",
        'style' => 'margin-right: 5px',
        'escape' => false
    ]);
    
    $status = 'ARCHIVED';
    echo $html->link($b_arc . ' Archivés', [
        //'action' => 'index',
        //'ARCHIVED',
        //'?' => $params
        '?' => array_merge($params, ['status'=>$status])
    ], [
        'title' => "Sortis de l'inventaire",
        'style' => 'margin-right: 0px',
        'escape' => false
    ]);
    */
    
    echo '</p>';
    
    // ACTIONS : buttons "Tout selectionner", "Tout decocher"
    // - show only with "A valider" and "A sortir"
    if ($SELECTED_STATUS && $nbMateriels>0) {
        echo $html->link('<i class="icon-check"></i> Tout cocher', '#all', [
            'onclick' => 'selectAll()',
            'title' => 'Sélectionner tout les matériels',
            'style' => ': 400px; margin-right: 50px',
            'escape' => false
        ]);
        echo $html->link('<i class="icon-check-empty"></i> Tout décocher', '#none', [
            'onclick' => 'selectNone()',
            'title' => 'Sélectionner aucun matériel',
            'style' => 'margin-right: 50px',
            'escape' => false
        ]);
    }
    
    echo "</div>";

}; // displayStatusButtons()


//$displaySelectors = function($form, $request,
$displayFilters = function($form, $request, 
    $df,
    /*
    $displayNbLinesSelector, 
    $displayAgeSelector,
    */
    //$f1_func,
    //$f1_func,
    $f1_name, $f1_label, $f1_options,
    //$f2_func, $f2_options,
    $f2_name, $f2_label, $f2_options,
    //$displayDomaineSelector, $domain_options, 
    //$displayProjetSelector, $projet_options
    $f3_name, $f3_label, $f3_options,
    $f4_name, $f4_label, $f4_options
) {
    //echo '<div>';
    echo '<div class="col-lg-2 col-md-3 col-sm-4">';
    echo '<table><tr>';
        
        // Filtre 1
        echo '<td>';
        //$displayNbLinesSelector($form, $request);
        //$f1_func($form, $request);
        $df($f1_name, $f1_label, $form, $request, $f1_options);
        echo '</td>';
        
        // Filtre 2
        echo '<td>';
        //$displayAgeSelector($form, $request);
        //$f2_func($form, $request, $f2_options);
        $df($f2_name, $f2_label, $form, $request, $f2_options);
        echo '</td>';

        // Filtre 3
        echo '<td>';
        //$displayDomaineSelector($form, $request, $domain_options);
        //$df('domain', $form, $request, $domain_options);
        $df($f3_name, $f3_label, $form, $request, $f3_options);
        echo '</td>';

        // Filtre 4
        echo '<td>';
        //$displayProjetSelector('projet', $form, $request, $projet_options);
        //$df('projet', $form, $request, $projet_options);
        $df($f4_name, $f4_label, $form, $request, $f4_options);
        echo '</td>';
        
    echo '</tr></table>';
    echo '</div>';
};

/*
$displayNbLinesSelector = function($form, $request, $options) {
    //echo '<div class="col-lg-2 col-md-3 col-sm-4">';
    //echo $this->Form->create('materiels', [
    // echo $this->Form->create('materiels', ['url' => '/materiels/execActions?page=index']);
    //echo $this->Form->control('aff_par_defaut', [
    echo $form->control('aff_par_defaut', [
        'label' => 'Nombre lignes',
        'onchange' => "updateUrlWithSelectedValue('aff-par-defaut', 'aff')",
        'options' => $options,
    ]);
    //echo '</div>';
}; // displayNbLinesSelector()

$age_options = [
     '0' => 'Tous',
     '5' => 'Récents (5 ans max)',
     '10' => '5-10 ans',
     '15' => '10-15 ans',
     '20' => '15-20 ans',
     //'20plus' => '+ 20 ans',
     '21' => '+ 20 ans',
     //'unknown' => 'inconnu',
     '-1' => 'inconnu',
];

$displayAgeSelector = function($form, $request, $options) {
    //echo '<div class="col-lg-2 col-md-3 col-sm-4">';
    echo $form->control('age_selector', [
        'label' => 'Age',
        'onchange' => "updateUrlWithSelectedValue('age-selector', 'age')",
        'options' => $options,
        'default' => '0',
        // Inutile car géré via javascript
        //'default' => '5',
    ]);
    //echo '</div>';
}; // $displayAgeSelector()

$displayDomaineSelector = function($form, $request, $options) {
    //echo '<div class="col-lg-2 col-md-3 col-sm-4">';
    echo $form->control('domain_selector', [
        'label' => 'Domaine',
        'onchange' => "updateUrlWithSelectedValue('domain-selector', 'domain')",
        'options' => $options,
        // Inutile car géré via javascript
        'default' => 0,
    ]);
    //echo '</div>';
};

$displayProjetSelector = function($form, $request, $options) {
    //echo '<div class="col-lg-2 col-md-3 col-sm-4">';
    echo $form->control('projet_selector', [
        'label' => 'Projet',
        'onchange' => "updateUrlWithSelectedValue('projet-selector', 'projet')",
        'options' => $options,
        // Inutile car géré via javascript
        'default' => 0,
    ]);
    //echo '</div>';
};

$displayProjetSelector = function($filter_name, // 'projet' 
        $form, $request, $options
    ) {
    //echo '<div class="col-lg-2 col-md-3 col-sm-4">';
    $html_filter_name = $filter_name.'-selector';
    //echo $form->control('projet_selector', [
    echo $form->control($filter_name.'_selector', [ // 'projet_selector'
    //'label' => 'Projet',
    'label' => ucfirst($filter_name), // 'Projet'
    //'onchange' => "updateUrlWithSelectedValue('projet-selector', 'projet')",
    //'onchange' => "updateUrlWithSelectedValue($filter_name.'-selector', $filter_name)", // ('projet-selector', 'projet')
    'onchange' => "updateUrlWithSelectedValue('$html_filter_name', '$filter_name')", // ('projet-selector', 'projet')
    'options' => $options,
    // Inutile car géré via javascript
    'default' => 0,
    ]);
    //echo '</div>';
};
*/

$displayFilter = function($filter_name, $filter_label,// 'projet'
    $form, $request, $options
    ) {
        //echo '<div class="col-lg-2 col-md-3 col-sm-4">';
        $html_filter_name = $filter_name.'-selector';
        //echo $form->control('projet_selector', [
        echo $form->control($filter_name.'_selector', [ // 'projet_selector'
        //'label' => 'Projet',
        'label' => $filter_label ? $filter_label : ucfirst($filter_name), // 'Projet'
        //'onchange' => "updateUrlWithSelectedValue('projet-selector', 'projet')",
        //'onchange' => "updateUrlWithSelectedValue($filter_name.'-selector', $filter_name)", // ('projet-selector', 'projet')
        'onchange' => "updateUrlWithSelectedValue('$html_filter_name', '$filter_name')", // ('projet-selector', 'projet')
        'options' => $options,
        // Inutile car géré via javascript
        'default' => 0,
        ]);
        //echo '</div>';
};





$displayActionButtonsForSelectedOrAllElements = function($form, $SELECTED_STATUS, $USER_IS_RESPONSABLE, $USER_IS_ADMIN_OR_MORE, $USER_IS_SUPERADMIN) {

    //if (isset($SELECTED_STATUS)) {
    if ($SELECTED_STATUS) {
        switch ($SELECTED_STATUS) {
            case 'CREATED':
                $action = 'Valider les';
                break;
            case 'VALIDATED':
                $action = "Demander l'archivage des";
                break;
            case 'TOBEARCHIVED':
                $action = "Sortir les";
                break;
        }
        
        if ($SELECTED_STATUS != 'ARCHIVED') {
            //if (! ($role == 'Super Administrateur' && $SELECTED_STATUS == 'TOBEARCHIVED')) {
            if (! ($USER_IS_SUPERADMIN && $SELECTED_STATUS=='TOBEARCHIVED') ) {
                //echo $this->Form->submit($action . ' matériels cochés', [
                //    'name' => 'updateSelectedStatus',
                //    'id' => 'updateSelectedStatus',
                //    'style' => 'margin: 0px'
                //]);
                //echo $this->Form->button($action . ' matériels cochés', [ 'class'=>'btn btn-outline-success', 'type'=>'submit', 'name' => 'updateSelectedStatus', 'id' => 'updateSelectedStatus', 'style' => 'margin: 0px']);
                echo $form->button($action . ' matériels cochés', [ 'class'=>'btn btn-outline-success', 'type'=>'submit', 'name' => 'updateSelectedStatus', 'id' => 'updateSelectedStatus', 'style' => 'margin: 0px']);
                echo "<br /><br />";
            }
        }
        //echo $this->Form->submit('Exporter la liste des matériels cochés', [
        //    'name' => 'export',
        //   'id' => 'export',
        //    'style' => 'margin: 0px;'
        //]);
        echo $form->button('Exporter la liste des matériels cochés', ['class'=>'btn btn-outline-success', 'type'=>'submit', 'name' => 'export', 'id' => 'export', 'style' => 'margin: 0px;' ]);
        echo "<br /><br />";
    } // if $SELECTED_STATUS
    
    if ($USER_IS_ADMIN_OR_MORE || $USER_IS_RESPONSABLE) {
        //echo $this->Form->submit('Exporter la liste complete', [
        //    'name' => 'exportAll',
        //    'id' => 'exportAll',
        //    'style' => 'margin: 0px;'
        //]);
        
        //echo $form->button('Exporter la liste actuelle', ['class'=>'btn btn-outline-success', 'type'=>'submit', 'name' => 'exportCurrent', 'id' => 'exportCurrent', 'style' => 'margin: 0px;']);
        //echo "<br /><br />";
        
        echo $form->button('Exporter la liste complète (tous les matériels)', ['class'=>'btn btn-outline-success', 'type'=>'submit', 'name' => 'exportAll', 'id' => 'exportAll', 'style' => 'margin: 0px;']);
    }
    
}; // $displayActionButtonsForSelectedOrAllElements()


    
/*
 * Couleurs en fonction du statut du matos
 *
 */
$displayColorLegend = function() {
    // CREATED => bleu
    // VALIDATED => vert
    // TBA => orange
    // ARCHIVED => rouge
    //echo "<p><i><b><u>Couleur</u> :</b> <div>bleu=à valider</div> ; vert=validé ; orange=à sortir ; rouge=archivé (couleur date rouge = fin garantie)</i></p>";
    echo "<p><i><b><u>Couleur</u> :</b> <i style='color:blue'>bleu=à valider</i> ; <i style='color:green'>vert=validé</i> ; <i style='color:orange'>orange=à sortir</i> ; <i style='color:red'>rouge=archivé</i> ; couleur date rouge = <i style='color:red'>fin garantie</i></i></p>";
};



$displayActionButtonsForMateriel = function($materiel, $username, $USER_IS_RESPONSABLE, $USER_IS_ADMIN_OR_MORE, $USER_IS_SUPERADMIN, $controller, $html) {

    // TODO: Dans l'idéal, ces variables doivent etre définies par le controleur et passées à la vue
    // (sous forme d'un tableau contenant ces droits pour CHAQUE materiel)
    // Car la vue doit être la moins "intelligente" possible, la plus simple possible
    $IS_CREATED = ($materiel->status == 'CREATED');
    $IS_VALIDATED = ($materiel->status == 'VALIDATED');
    $IS_TOBEARCHIVED = ($materiel->status == 'TOBEARCHIVED');
    $IS_ARCHIVED = ($materiel->status == 'ARCHIVED');
    /*
     * Couleurs en fonction du statut du matos
     *
     */
    // CREATED => bleu
    if ($IS_CREATED) $color = 'blue';
    // VALIDATED => vert
    if ($IS_VALIDATED) $color = 'green';
    // TBA => orange
    if ($IS_TOBEARCHIVED) $color = 'orange';
    // ARCHIVED => rouge
    if ($IS_ARCHIVED) $color = 'red';
    $color = "style='color: $color'";
    
    $USER_IS_CREATOR_OR_OWNER = in_array($username, [$materiel->nom_createur, $materiel->nom_responsable]);
    $USER_IS_SAME_GROUP_AS_MATERIEL = (
        ( isset($priviledgedUser->groupes_metier_id) && $priviledgedUser->groupes_metier_id!=$idGmNa && $materiel->groupes_metier_id==$priviledgedUser->groupes_metier_id )
        ||
        ( isset($priviledgedUser->groupes_thematique_id) && $priviledgedUser->groupes_thematique_id!=$idGtNa && $materiel->groupes_thematique_id==$priviledgedUser->groupes_thematique_id )
        );
    $USER_IS_RESPONSABLE_AND_SAME_GROUP_AS_MATERIEL = $USER_IS_RESPONSABLE && $USER_IS_SAME_GROUP_AS_MATERIEL;
    $CONTEXT1 = $USER_IS_ADMIN_OR_MORE || $USER_IS_CREATOR_OR_OWNER || $USER_IS_RESPONSABLE_AND_SAME_GROUP_AS_MATERIEL;
    
    // Détermination des autorisations pour tous les boutons "éditer", "supprimer", "valider", ...
    $id = $materiel->id;
    
    $CAN_EDIT = $controller->isAuthorizedAction('edit', $id);
    //$CAN_EDIT = $IS_CREATED && ($USER_IS_ADMIN_OR_MORE || $USER_IS_CREATOR_OR_OWNER || $USER_IS_RESPONSABLE_AND_SAME_GROUP_AS_MATERIEL);
    //$CAN_EDIT = $IS_CREATED && ($USER_IS_ADMIN_OR_MORE || $USER_IS_UTILISATEUR_AND_CREATOR_OR_OWNER || $USER_IS_RESPONSABLE_AND_SAME_GROUP_AS_MATERIEL || $USER_IS_RESPONSABLE_AND_CREATOR_OR_OWNER);
    
    $CAN_DELETE = $controller->isAuthorizedAction('delete', $id);
    //$CAN_DELETE = $CAN_EDIT;
    
    /*
     $CAN_VALIDATE_OR_INVALIDATE = $USER_IS_ADMIN_OR_MORE || ( ($materiel->materiel_administratif == 0) && $USER_IS_RESPONSABLE && $USER_IS_SAME_GROUP_AS_MATERIEL );
     $CAN_VALIDATE = $IS_CREATED && $CAN_VALIDATE_OR_INVALIDATE;
     $CAN_INVALIDATE = !$IS_CREATED && $CAN_VALIDATE_OR_INVALIDATE;
     $CAN_TBA = $IS_VALIDATED && ($USER_IS_ADMIN_OR_MORE || $USER_IS_CREATOR_OR_OWNER || ($USER_IS_RESPONSABLE && $USER_IS_SAME_GROUP_AS_MATERIEL));
     $CAN_ARCHIVE = $IS_TOBEARCHIVED && $CAN_VALIDATE_OR_INVALIDATE;
     */
    $CAN_INVALIDATE = $controller->isAuthorizedAction('statusCreated', $id);
    $CAN_VALIDATE = $controller->isAuthorizedAction('statusValidated', $id);
    $CAN_TBA = $controller->isAuthorizedAction('statusTobearchived', $id);
    $CAN_ARCHIVE = $controller->isAuthorizedAction('statusArchived', $id);
    
    echo '<td class="actions" style="padding: 6px 0; text-align: left;">';
                    
    // 1) EDIT icon
    /*
     if (
     in_array($materiel->status, [
     'CREATED',
     // (EP 17/5/19) ben non, on peut pas si c'est validé !!!
     //'VALIDATED'
     ])
     &&
     (
     $USER_IS_ADMIN_OR_MORE
     ||
     $USER_IS_CREATOR_OR_OWNER
     ||
     ($USER_IS_RESPONSABLE && $USER_IS_SAME_GROUP_AS_MATERIEL)
     )
     )
     */
    if ($CAN_EDIT) echo $html->link(__('<i class="icon-pencil"></i>'), ['action' => 'edit', $materiel->id], ['title' => 'Editer', 'style' => 'margin: 0 2px', 'escape' => false ]);
    
    // 2) VALIDER/TBA/ARCHIVER icon
    /*
     if (
     $USER_IS_ADMIN
     ||
     ($USER_IS_RESPONSABLE && $USER_IS_SAME_GROUP_AS_MATERIEL)
     ) {
     */
    //if ($materiel->status=='CREATED' && !$USER_IS_RESPONSABLE) {
    if ($CAN_VALIDATE)
        echo $html->link('<i class="icon-ok-sign"></i>', [
               'action' => 'statusValidated',
               $materiel->id
            ], 
            [
                'title' => 'Valider',
                'style' => 'margin: 0 2px',
                'escape' => false,
                'confirm' => 'Êtes-vous sur de vouloir valider ' . $materiel->designation . ' ?'
            ]
        );
    //else if (h($materiel->status) == 'VALIDATED') {
    if ($CAN_TBA)
        echo $html->link('<i class="icon-inbox"></i>', [
                'action' => 'statusTobearchived',
                $materiel->id
            ], 
            [
                'title' => 'Demander la sortie de l\'inventaire',
                'style' => 'margin: 0 2px',
                'escape' => false,
                'confirm' => 'Êtes-vous sur de vouloir faire une demande d\'archive ' . $materiel->designation . ' ?'
            ]
        );
    //else if ($materiel->status=='TOBEARCHIVED' && !$USER_IS_RESPONSABLE)
    if ($CAN_ARCHIVE)
        echo $html->link('<i class="icon-inbox"></i>', [
                'action' => 'statusArchived',
                $materiel->id
            ], 
            [
                'title' => 'Sortir de l\'inventaire',
                'style' => 'margin: 0 2px',
                'escape' => false,
                'confirm' => 'Êtes-vous sur de vouloir archiver ' . $materiel->designation . ' ?'
            ]
        );
            
    // 3) DELETE icon
    /*
     if (h($materiel->status) == 'CREATED') {
     if (
     $USER_IS_ADMIN_OR_MORE
     ||
     $USER_IS_CREATOR_OR_OWNER
     ||
     ($USER_IS_RESPONSABLE && $USER_IS_SAME_GROUP_AS_MATERIEL)
     )
     */
    if ($CAN_DELETE)
        echo $html->link(__('<i class="icon-trash"></i>'), [
                'action' => 'delete',
                $materiel->id
            ], 
            [
                'title' => 'Supprimer',
                'style' => 'margin: 0 2px',
                'escape' => false,
                'confirm' => __('Êtes-vous sur de vouloir supprimer {0} ?', $materiel->designation)
            ]
        );
                
    echo "</td>";
    
    return $color;
            
}; // displayActionButtonsForMateriel


/*
 * On récupère les paramètres passés actuellement à l'URL (age, domain, searchfor...)
 * afin de les rappeler quand on clique sur les boutons de filtrage
 */
//$args = explode('?',$_SERVER['REQUEST_URI']);
//$args = count($args)==2 ? '?'.$args[1] : null;
$params = $this->request->getParam('?');
if (!$params) $params=[];
// S'il y a des paramètres, supprimer le paramètre 'page' car inapproprié
if ($params) unset($params['page']);


?>






<!--
****************************************************************************** 
                                PAGE WEB HTML
****************************************************************************** 
-->

<div class="materiels index col-lg-12 col-md-12 col-sm-12">


<!--  TITRE -->
<?php echo '<h2><i class="icon-list"></i> Liste des matériels ('.$nbMateriels.')</h2>'; ?>

<!--  BOUTONS STATUT (admin+ only) 
<div class="actions" style="width: 100%; float: none; padding: 0 0;">
-->
<?php
/*echo '<p>';
echo $this->Html->link('<i class="icon-plus"></i> Nouveau Matériel', [
    'action' => 'add'
], [
    'title' => 'Ajouter un matériel',
    'escape' => false
]);
echo '</p>';*/
if ($USER_IS_ADMIN_OR_MORE) $displayExportCurrentButton($SELECTED_STATUS, $params, $nbMateriels, $this->Html);

if ($USER_IS_ADMIN_OR_MORE) $displayStatusButtons($SELECTED_STATUS, $params, $nbMateriels, $this->Html);
//</div>


// <!-- SELECTEURS : NOMBRE LIGNES PAR PAGE et AGE -->
//$displaySelectors(
$displayFilters(
    $this->Form, $this->request, 
    $displayFilter, 
    //$displayNbLinesSelector, 
    'nblines', 'Lignes par page', $nblines_options,
    //$displayAgeSelector, $age_options,
    'age', '', $age_options,
    //$displayDomaineSelector, $domain_options, 
    //$displayProjetSelector, $projet_options
    'domaine', '', $domaine_options,
    'projet', '', $projet_options
);
//$displayNbLinesSelector($this->Form, $this->request);


// Formulaire de RECHERCHE de materiels

// Search field
echo "\n";
echo "\n";
$displaySearchField($params, $searchfor, $this->Html, $this->Form);
echo "\n";
echo "\n";

// DEBUT FORMULAIRE

echo $this->Form->create('materiels', [
    'url' => '/materiels/execActions?page='.$this->request->getQuery('page')
]);

// <!-- AFFICHAGE DES MATERIELS -->

if ($nbMateriels == 0) echo 'Aucun matériel';
else {

// $form2 = $this->Form;
// /echo $this->Form->create('materiels', ['url' => '/materiels/execActions']);
if ($SELECTED_STATUS) echo $this->Form->hidden('what', ['value'=>$SELECTED_STATUS]);
?>
<table style="border-collapse: separate; border-spacing: 0;">

	<!-- HEAD (Titres) -->
	<thead>
		<tr>
            <?php if ($SELECTED_STATUS) { echo '<th></th>'; }?>
			<th class="actions"><?= __('') ?></th>
			<th><?= $this->Paginator->sort('designation','Désignation') ?></th>
			<th><?= $this->Paginator->sort('numero_laboratoire', 'N° interne (labo)') ?></th>
			<th><?= $this->paginator->sort('hors_service', ' ') ?></th>
			<th><?= $this->Paginator->sort('categorie_id', 'Catégorie') ?></th>
			<th><?= $this->Paginator->sort('organisme_id', 'Org.') ?></th>
			<th><?= $this->Paginator->sort('numero_inventaire_organisme', 'N° Invent. Org.') ?></th>
			<th><?= $this->Paginator->sort('nom_responsable', "Nom de l'utilisateur") ?></th>
			<th><?= $this->Paginator->sort('status', 'Statut') ?></th>
			<th><?= $this->Paginator->sort('date_acquisition', 'Date Achat') ?></th>
			<th><?= $this->Paginator->sort('etiquette', 'Et') ?></th>
			<?php if ($METRO) echo "<th>".$this->Paginator->sort('metrologie', 'Metro')."</th>" ?>
		</tr>
	</thead>
	
	
	<!-- BODY (Lignes matériels) -->
	<tbody>
    	
   	<?php
    // Pour changer la couleur du nom du matos si la garantie est passée
    $time = Time::now(); // On récupère la date et l'heure actuelles
    $today = new date("$time->year-$time->month-$time->day"); // On extrait la date pour la vérification de fin de garantie
    //$today = $today->format('Ydm'); // On formatte la date initialement en 31-12-2000 (par exemple) en un format qui pourra etre comparé : 20001231
    $today = $today->format('Ymd'); // On formatte la date initialement en 31-12-2000 (par exemple) en un format qui pourra etre comparé : 20001231
    
    // BOUCLE SUR CHAQUE MATERIEL, ligne par ligne
    //$mc = new MaterielsController();
    foreach ($materiels as $materiel) :

        // Date fin garantie ?
        $date_color = '';
        if ($materiel->date_fin_garantie !== NULL) {
            //debug("today $today");
            $timeFin = new time($materiel->date_fin_garantie);
            $dateFin = new date("$timeFin->year-$timeFin->month-$timeFin->day");
            //$dateFin = $dateFin->format('Ydm');
            $dateFin = $dateFin->format('Ymd');
            //debug("datefin $dateFin");
            if ($today>=$dateFin) $date_color = 'style="color: #FF0000"';
            //debug("couleur $date_color");
        }
        ?>

		<tr>            
        <?php
        //<tr style="color:<?=$color>;">
        
        // (1) COLONNE SELECTION (checkbox)
        if ($SELECTED_STATUS) {
            echo '<td class="smallText">' . $this->Form->checkbox($materiel->id, [
                'style' => 'margin: 3px',
                'id' => $materiel->id
            ]) . '</td>';
        }
        
        // <!-- (2) COLONNE ACTIONS (Edit, Delete, Validate, TBA, Archive) -->
        $color = $displayActionButtonsForMateriel($materiel, $username, $USER_IS_RESPONSABLE, $USER_IS_ADMIN_OR_MORE, $USER_IS_SUPERADMIN, $controller, $this->Html);                
        ?>
		
        <!-- (3) LES AUTRES COLONNES (DATA : designation, num labo, hs, categ, ...) -->
		<td class="smallText"><?= $materiel->has('designation') ? $this->Html->link($materiel->designation, ['controller' => 'Materiels', 'action' => 'view', $materiel->id],[$color]) : '' ?></td>
		<td class="smallText"><?= h($materiel->numero_laboratoire) ?></td>
		<td class="smallText" style="color: red"><strong><?= ($materiel->hors_service) ? 'HS' : '' ?></strong></td>
		<td class="smallText"><?= $materiel->has('category') ? h($materiel->category->nom) : '' ?></td>
		<td class="smallText"><?= $materiel->has('organisme') ? h($materiel->organisme->nom) : '' ?></td>
		<td class="smallText"><?= h($materiel->numero_inventaire_organisme) ?></td>
		<td class="smallText"><?= h($materiel->nom_responsable) ?></td>
               
		<?php
		// (4) COLONNE MATERIEL STATUS : C/V/TBA/A
        switch (h($materiel->status)) {
            case 'CREATED':
                $statut = 'C';
                break;
            case 'VALIDATED':
                $statut = 'V';
                break;
            case 'TOBEARCHIVED':
                $statut = 'TBA';
                break;
            case 'ARCHIVED':
                $statut = 'A';
                break;
            default:
                $statut = '';
                break;
        }
        ?>
		<td class="smallText" <?=$color?>><?= $statut ?></td>
			
			
		<!--
		// (5) COLONNES Date acquisition et Etiquette posée 
		-->
		<td class="smallText" <?=$date_color?>><?= h($materiel->date_acquisition) ?></td>
		<td class="smallText"><?= h($materiel->etiquette)=='1' ? 'O':'N' ?></td>

		<!--
		// (6) COLONNE METRO o/n 
		-->
		<?php if ($METRO)
	    echo '<td class="smallText">'. (h($materiel->metrologie)=='1' ? 'Y':'N').'</td>';
		?>

		</tr>
	<?php endforeach; ?>
   	</tbody>
	</table>
    
    <?php
    
    $displayColorLegend();
    
    $displayActionButtonsForSelectedOrAllElements($this->Form, $SELECTED_STATUS, $USER_IS_RESPONSABLE, $USER_IS_ADMIN_OR_MORE, $USER_IS_SUPERADMIN);
    
	echo $this->element('pagination_with_first_and_last'); 
    
    $this->Form->end();
    
} // (nbMateriels>0) 

?>
</div>


<!--
<div class="actions">
			<php echo $this->element('menu') ?>
			<php

echo $this->element('menu_index', [
    'pluralHumanName' => 'Matériels',
    'singularHumanName' => 'Matériel'
])?>
</div>
-->









<!--
****************************************************************************** 
                                JAVASCRIPT
****************************************************************************** 
-->

<script type="text/javascript">

/*
// Pour changer l'url lorsque le nombre de lignes souhaité est modifié
//$(document).ready(function () {
$(document).ready(onSelectNbLines);
function onSelectNbLines() {
	$("#aff-par-defaut").bind("change", function (event) {
		var nbr=$("#aff-par-defaut :selected").val();
		var urlDeBase = window.location.href.split("?");
		var urlDecoupee = window.location.search.split("&"), i, j; // On sépare la chaine des paramètres en fonction du &
		var urlDecoupeeBis = new Array();
		var param = 0;
		var bool = false;
		//console.log(nbr);
		
		for(i=0; i<urlDecoupee.length; ++i) {
			urlDecoupeeBis[i] = urlDecoupee[i].split("="); // On sépare les parametres de leurs valeurs
			for(j=0; j<urlDecoupeeBis[i].length; ++j){
				if(urlDecoupeeBis[i][0] == "aff" || urlDecoupeeBis[i][0] == "?aff") {
					//console.info('toto');
					bool = true;
					param = i; // Si le parametre "aff" est trouvé, on le récupère
					break;
				}
			}
		}
		
		if(bool) { // Si le parametre recherché a ete trouvé, ...
			//console.log("coucouT");
			urlDecoupeeBis[param][1] = nbr; //urlDecoupeeBis[i][0] c'est le nom du parametre, et urlDecoupeeBis[i][1] c'est la valeur associée 
			var url = "";
			for(i=0; i<urlDecoupee.length; ++i) { //...  on reconstruit une url propre ...
				*/
				//////if(/^\?[a-zA-A0-9]*/.test(urlDecoupeeBis[0][0])) {
				/*
					if(i!=0) url += "&";
					// Sauf pour le 1er parametre, qui lui commence par un "?"
				} else url += "&";
				url += urlDecoupeeBis[i][0]+"="+urlDecoupeeBis[i][1];
				// On reforme les parametres "&nom=valeur" en les concatenant
			}
			window.location.href = urlDeBase[0]+url; // ... et on fait la redirection
		} else if(urlDecoupee[0]=="") window.location.href = window.location.href + '?aff=' + nbr; // Sinon on joute juste le parametre en fin d'url
		else window.location.href = window.location.href + '&aff=' + nbr;

	});
}
//);
*/

// Pour changer l'url lorsque l'age est modifié
//$(document).ready(function () {
/*
$(document).ready(onSelectAge);
function onSelectAge() {
	$("#age-selector").bind("change", function (event) {
*/
//$(document).ready($("#age-selector").onchange = onSelectAge);
//function changeAge(select_name, param_name) {
function updateUrlWithSelectedValue(select_name, param_name) {
	//$("#age-selector").bind("change", function (event) {
		
		// Exemple pour http://labinvent.devv/materiels/index/CREATED?aff=30&age=5&page=3 :
		
		// 5
		//var param_val=$("#age-selector :selected").val();
		selected_elem = "#" + select_name + " :selected";
		var param_val = $(selected_elem).val();

		// Array [ "http://labinvent.devv/materiels/CREATED", "aff=30&age=15&page=3" ]
		// Array [ "http://labinvent.devv/materiels/CREATED" ] s'il n'y a aucun argument (pas de chaine commençant par "?...")
		var urlDeBase = window.location.href.split("?");

		// Array [ "?aff=30", "age=15", "page=3" ]
		// Array [ "" ] si pas d'argument passé
		var args = window.location.search.split("&");

		var i; //, j; 
		//var param = 0;
		//var bool = false;
		//var argsBis = new Array();
		var argsBis = [];

		//console.log(param_val, args);

		// Si pas d'argument (paramètre) passé, args[0] = '' => on ne fait rien
		if (args[0]=='') args = [];
		//console.log(args);
		
		for(i=0; i<args.length; ++i) {
			// On sépare les parametres de leurs valeurs
			// ex: 
			argsBis[i] = args[i].split("=");
			/*
			for(j=0; j<argsBis[i].length; ++j){
				if(argsBis[i][0] == "age" || argsBis[i][0] == "?age") {
					bool = true;
					param = i; // Si le parametre "age" est trouvé, on le récupère
					break;
				}
			}
			*/
		}
		// Resultat :
		/*
		0: Array [ "?aff", "30" ]
		1: Array [ "age", "20" ]
		2: Array [ "page", "3" ]
		*/
		//console.log(argsBis);
		
		//if(bool) { // Si le parametre recherché a ete trouvé
		//argsBis[param][1] = age; //argsBis[i][0] c'est le nom du parametre, et argsBis[i][1] c'est la valeur associée 
		var oldargs = '';
		for(i=0; i<args.length; ++i) { //...  on reconstruit une url propre ...
			// On ne conserve pas l'argument de pagination (page=x) car les données ne seront plus les mêmes et cette page risque de ne plus exister => ERROR 
			// On ne conserve pas non plus l'argument 'age' car on va l'ajouter en tête des arguments 
			arg_name = argsBis[i][0];
			// Si "?arg" on supprime le ?
			if (arg_name.startsWith('?')) arg_name = arg_name.substring(1); 
			//if (['page','age'].includes(arg_name)) continue;
			if (['page', param_name].includes(arg_name)) continue;
			/*
			if (argsBis[i][0] == 'page') continue;
			if (argsBis[i][0] == 'age') continue;
			*/ 
			//if(/^\?[a-zA-A0-9]*/.test(argsBis[0][0])) {
			//	if(i!=0) oldargs += "&";
				// Sauf pour le 1er parametre, qui lui commence par un "?"
			//}
			//else oldargs += "&";
			/*
			// "&arg=valeur", sauf pour le 1er paramètre (pas de '&')
			if (i > 0) oldargs += "&";
			oldargs += arg_name + "=" + argsBis[i][1];
			*/
			oldargs += '&' + arg_name + "=" + argsBis[i][1];
			// On reforme les parametres "&nom=valeur" en les concatenant
		}
		//window.location.href = urlDeBase[0]+oldargs; // ... et on fait la redirection
		//} 
		//else if(args[0]=="") window.location.href = window.location.href + '?age=' + age; // Sinon on ajoute juste le parametre en fin d'url
		//else window.location.href = window.location.href + '&age=' + age;
		//console.log(urlDeBase[0]);
		//console.log(urlDeBase[0] + '?age='+age + oldargs);
		//new_url = urlDeBase[0] + '?age='+age + oldargs;
		new_url = urlDeBase[0] + '?'+param_name+'='+param_val+ oldargs;
		//if (oldargs) new_url += oldargs;
		window.location.href = new_url;

	//});
}
//);

$(document).ready(function(){
    // Actualiser l'age sélectionné si passé en paramètre de l'url
    //$(document).ready(selectAge);
    selectAge();
    // Actualiser la pagination (nombre de lignes par page) sélectionnée si passée en paramètre de l'url
    //$(document).ready(selectNbLines);
    selectNbLines();
    // Actualiser le domaine sélectionné si passé en paramètre de l'url
    //$(document).ready(selectDomain);
    //selectDomain();
    selectFilterItem('domaine');
    //selectProjet('projet');
    selectFilterItem('projet');

    
    // Remplir le champ recherche général avec le texte de la dernière recherche effectuée
    //$(document).ready(setSearchField);
    //setSearchField();
});

/*
function setSearchField() {
	var searchfor = $_GET('s_all_2');
	//console.log(searchfor);
	//if (searchfor)
	//$("#MaterielSAll").val(searchfor);
	$("#s_all_2").val(searchfor);
	//document.getElementById('s-all-2').value = searchfor
}
*/

/*
function selectDomain() {
	var domain_id = parseInt($_GET('domain'));
	//console.log(domain_id);
	// NotANumber
	if (!isNaN(domain_id))
		$("#domain-selector")[0].selectedIndex = domain_id;
		//document.getElementById('domain-selector').selectedIndex = domain_id;
    	//$("#domain-selector").val(domain_id);
    	//document.getElementById('domain-selector').value = domain;
}
*/

//function selectProjet(filter_name) {
function selectFilterItem(filter_name) {
	//var id = parseInt($_GET('projet'));
	var id = parseInt($_GET(filter_name));
	var filter_selector_name = filter_name+'-selector';
	//console.log(domain_id);
	// NotANumber
	if (!isNaN(id))
		// PAS BON : sélectionne par l'INDEX
		//$("#projet-selector")[0].selectedIndex = id;
		// OK : sélectionne par la CLÉ
		$('#'+filter_selector_name).val(id);
		//$("#projet-selector").val(id);
		//document.getElementById('domain-selector').selectedIndex = domain_id;
    	//$("#domain-selector").val(domain_id);
    	//document.getElementById('domain-selector').value = domain;
}

//$(document).ready(function () {
function selectNbLines() {
	//var nblines = parseInt($_GET('aff'));
	var nblines = parseInt($_GET('nblines'));
	//document.getElementById('aff-par-defaut').value = affichage;
	if ( [20,30,50,100,150,200].includes(nblines) ) 
		//$("#aff-par-defaut").val(nblines);
		$("#nblines-selector").val(nblines);
	else
		$("#nblines-selector").val(<?=$configuration->aff_par_defaut?>);
	/*
	switch(affichage) {
	case 20 :
		//document.getElementById('aff-par-defaut').selectedIndex = 0;
		document.getElementById('aff-par-defaut').value = 20;
		break;
	case 30 :
		document.getElementById('aff-par-defaut').selectedIndex = 1;
		break;
	case 50 :
		document.getElementById('aff-par-defaut').selectedIndex = 2;
		break;
	case 100 :
		document.getElementById('aff-par-defaut').selectedIndex = 3;
		break;
	case 150 :
		document.getElementById('aff-par-defaut').selectedIndex = 4;
		//document.getElementById('aff-par-defaut').value = 20;
		break;
	case 200 :
		document.getElementById('aff-par-defaut').selectedIndex = 5;
		break;
	default : // Par défaut, lorsque le parametre "aff" n'existe pas, au premier affichage
		$("#aff-par-defaut").val(<S echo $configuration->aff_par_defaut S>);
		// On récupère la valeur dans la BD directement, mais en PHP, faut pas déconner
		break;
	}
	*/
}
//);

//$(document).ready(function () {
function selectAge() {
	var age = parseInt($_GET('age'));
	/*
	if ( [0,5,10,15,20,21,-1].includes(age) ) 
		$("#aff-par-defaut").val(age);
	else
		$("#aff-par-defaut").val(5);
	*/
	switch(age) {
    	// TOUS
    	case 0 : $("#age-selector")[0].selectedIndex = 0; break;
    	//case 0 : document.getElementById('age-selector').selectedIndex = 0; break;
    	// 5 ans max
    	case 5 : $("#age-selector")[0].selectedIndex = 1; break;
    	//case 5 : document.getElementById('age-selector').selectedIndex = 1; break;
    	// 5-10 ans
    	case 10 : $("#age-selector")[0].selectedIndex = 2; break;
    	//case 10 : document.getElementById('age-selector').selectedIndex = 2; break;
    	// 10-15
    	case 15 : document.getElementById('age-selector').selectedIndex = 3; break;
    	//case 15 : $("#age-selector").selectedIndex = 3; break;
    	// 15-20
    	case 20 : document.getElementById('age-selector').selectedIndex = 4; break;
    	//case 20 : $("#age-selector").selectedIndex = 4; break;
    	//case '20plus' :
    	case 21 : document.getElementById('age-selector').selectedIndex = 5; break;
    	//case 21 : $("#age-selector").selectedIndex = 5; break;
    	//case 'unknown' :
    	case -1 : document.getElementById('age-selector').selectedIndex = 6; break;
    	//case -1 : $("#age-selector").selectedIndex = 6; break;
    	// Par défaut, lorsque le parametre "age" n'existe pas => 0-5 ans
    	default : document.getElementById('age-selector').selectedIndex = 1;
    	//default : $("#age-selector").selectedIndex = 1; break;
    	//default : $("#age-selector").val(5);
	}
}
//);



// La fonction suivante permet de recuperer les parametres d’une URL
function $_GET(param) {
	var vars = {};
	window.location.href.replace( location.hash, '' ).replace( 
		/[?&]+([^=&]+)=?([^&]*)?/gi, // regexp
		function( m, key, value ) { // callback
			vars[key] = value !== undefined ? value : '';
		}
	);
	
	if ( param ) {
		return vars[param] ? vars[param] : null;	
	}
	return vars;
}

</script>