<?php
require_once 'application/class/class_ManageSession.php';

ManageSession::ctrlDataSession();
global $connecteur;

$action = getValue('action');
$val = trim(getValue('val'));
$form = trim(getValue('form'));
$format = trim(getValue('_format'));
$objet = trim(getValue('_objet'));
$type_suivi = trim(getValue('type_suivi'));
$initData = null;

switch ($action) {
    case ChampRecherche::GrpSoc:
        if ('grp' == $val) {
            $affGrp = '';
            $affSoc = 'none';
        } else {
            $affGrp = 'none';
            $affSoc = '';
        }
        $initData = 0; // Pas important ici;
        $objCritere = new CriteresRecherche($type_suivi, $initData, $form);
        
        // Dossier 26587 : pour des raison de compatibilité avec IE11, on échange "style" par "style.display"
        Affichage::setAttribut($objCritere->getIdGroupeLib(), 'style.display', $affGrp);
        Affichage::setAttribut($objCritere->getIdGroupeVal(), 'style.display', $affGrp);
        Affichage::setAttribut($objCritere->getIdSocieteLib(), 'style.display', $affSoc);
        Affichage::setAttribut($objCritere->getIdSocieteVal(), 'style.display', $affSoc);
        Affichage::setValueForm($form, ChampRecherche::Groupe, '');
        Affichage::setValueForm($form, ChampRecherche::Societe, '');
        break;
    
    case 'Societe':
        $resultat = ControleSaisie::checkValue($format, $objet, $val);
        $messageErreur = $resultat['messageErreur'];
        $valeurModifiee = $resultat['valeurModifiee'];
        $libelleValeur = $resultat['libelleValeur'];
        if ('' != $messageErreur) {
            $valeurModifiee = '';
            $libelleValeur = '';
            Affichage::setValueForm($form, ChampRecherche::SI, '', false);
            Affichage::setValueForm($form, ChampRecherche::CDC, '', false);
            Affichage::setValueForm($form, ChampRecherche::SCA, '', false);
            Affichage::setValueForm($form, ChampRecherche::CentreLivr, '', false);
            Affichage::setValueForm($form, ChampRecherche::CentreEmet, '', false);
            Affichage::messageJS($messageErreur);
        } else {
            // Spec 3633 : Plus de valeur par défaut
            // $isSISecto = Param::IsSISecto();
            // $isCDCSecto = Param::IsCDCSecto();
            // $isSCASecto = Param::IsSCASecto();
            
            // if ('' == $val) {
            // // Le cas échéant, on réactive les champs dépendants
            // if ($isSISecto) {
            // Affichage::setAttribut(ChampRecherche::SI, 'disabled', 'disabled');
            // Affichage::setValueForm($form, ChampRecherche::SI, '', false);
            // }
            // if ($isCDCSecto) {
            // Affichage::setAttribut(ChampRecherche::CDC, 'disabled', 'disabled');
            // Affichage::setValueForm($form, ChampRecherche::CDC, '', false);
            // }
            // if ($isSCASecto) {
            // Affichage::setAttribut(ChampRecherche::SCA, 'disabled', 'disabled');
            // Affichage::setValueForm($form, ChampRecherche::SCA, '', false);
            // }
            // } else {
            // $resultat = CriteresRecherche::getUserDefaut($val);
            // $messageErreur = $resultat['messageErreur'];
            // $SI = $resultat['SI'];
            // $CDC = $resultat['CDC'];
            // $SCA = $resultat['SCA'];
            // $CentreLivr = $resultat['CentreLivr'];
            // $CentreEmet = $resultat['CentreEmet'];
            
            // if ($isSISecto)
            // Affichage::setAttribut(ChampRecherche::SI, 'disabled', '');
            // if ($isCDCSecto)
            // Affichage::setAttribut(ChampRecherche::CDC, 'disabled', '');
            // if ($isSCASecto)
            // Affichage::setAttribut(ChampRecherche::SCA, 'disabled', '');
            
            // Affichage::setValueForm($form, ChampRecherche::SI, $SI, false);
            // Affichage::setValueForm($form, ChampRecherche::CDC, $CDC, false);
            // Affichage::setValueForm($form, ChampRecherche::SCA, $SCA, false);
            // Affichage::setValueForm($form, ChampRecherche::CentreLivr, $CentreLivr, false);
            // Affichage::setValueForm($form, ChampRecherche::CentreEmet, $CentreEmet, false);
            // }
        }
        
        Affichage::NF16UpdateInput($form, $action, $valeurModifiee, $libelleValeur);
        
        break;
    
    case ChampRecherche::rupture1:
        
        if ('' == $val) {
            // Pas de valeur pour rupture 1 : on masque la rupture 2 et son tri
            $valeur_display = false;
            
            // Et on change la valeur de la rupture 2 à la valeur par défaut
            Affichage::setValue(ChampRecherche::rupture2, '');
        } else {
            // Il y a une valeur pour rupture 1 : on affiche la rupture 2 et son tri
            $valeur_display = true;
            
            // On modifie le contenu de rupture 2 afin de ne pas y mettre la valeur de rupture1
            $htmlPointeur = CriteresRecherche::buildHtmlListeRupture($type_suivi, $action, $val);
            Affichage::innerHTMLPointeur(ChampRecherche::rupture2, $htmlPointeur);
        }


        
        Affichage::displayElement(ChampRecherche::rupture2 . '_div_lib', $valeur_display);
        Affichage::displayElement(ChampRecherche::rupture2 . '_div_valeur', $valeur_display);
        Affichage::displayElement(ChampRecherche::rupture2_ordre . '_div_lib', $valeur_display);
        Affichage::displayElement(ChampRecherche::rupture2_ordre . '_div_valeur', $valeur_display);
        
        Affichage::displayElement(ChampRecherche::rupture1_ordre . '_div_lib', $valeur_display);
        Affichage::displayElement(ChampRecherche::rupture1_ordre . '_div_valeur', $valeur_display);
        break;
    
    case ChampRecherche::rupture2:
        // rien à faire (pour le moment)
        break;
    
    case ChampRecherche::typeDate:
        $critereRecherche = new CriteresRecherche($type_suivi, CriteresRecherche::reinitLesChp, $form);
        $typeDate = getValue(ChampRecherche::typeDate);
        $valeurDisplay = ('QUELCONQUE' == $typeDate) ? 'none' : '';
        
        Affichage::setAttribut($critereRecherche->getIdDepuisDate(), 'style.display', $valeurDisplay);
        Affichage::setAttribut($critereRecherche->getIdDepuisDateLib(), 'style.display', $valeurDisplay);
        break;
    
    case ChampRecherche::depuisDate:
        $critereRecherche = new CriteresRecherche($type_suivi, CriteresRecherche::reinitLesChp, $form);
        $depuisDate = getValue(ChampRecherche::depuisDate);
        $valeurDisplay = ('PERIODE' == $depuisDate) ? '' : 'none';
        
        Affichage::setAttribut($critereRecherche->getIdFinDate(), 'style.display', $valeurDisplay);
        break;
    
    case CriteresRecherche::btnRechercher:
        $messageErreur = CriteresRecherche::Rechercher(getValueAll($_REQUEST));
        if ($messageErreur)
            Affichage::messageJS($messageErreur);
        
        break;
    
    case CriteresRecherche::btnViderSaufSoc:
        $initData = CriteresRecherche::viderChpSaufSociete;
    case CriteresRecherche::btnReinitSession:
        if (is_null($initData))
            $initData = CriteresRecherche::reinitLesChp;
    case CriteresRecherche::btnVider:
        if (is_null($initData)) {
            $initData = CriteresRecherche::viderLesChp;
        }
        // Ici, on choisi de réinitialiser les champs pour avoir toutes les valeurs par défaut
        $critereRecherche = new CriteresRecherche($type_suivi, CriteresRecherche::reinitLesChp, $form);
    
        // print_r($array); exit; 

  

        // Maintenant, on peu s'occuper des données selon l'action demandée par l'utilisateur
        $array = $critereRecherche->mettreAJourChamps($initData);

        foreach ($array as $nom => &$value) {
 
             $conditionNom =$nom;

             if(getValue('form') == 'form_ao_criteres_da')
             {
                 $nom = $nom.'_lib';
             }

            switch ($conditionNom) {


                case ChampRecherche::DocMesActions:
                case ChampRecherche::DocMoiSignataire:
                    $valChecked = (BoolSql($value)) ? 'on' : '';
                    Affichage::setAttributForFieldForm($form, $nom, 'checked', $valChecked);
                    break;
                case ChampRecherche::depuisDate:
                    Affichage::setAttribut($critereRecherche->getIdDepuisDate(), 'style.display', 'none');
                    Affichage::setAttribut($critereRecherche->getIdDepuisDateLib(), 'style.display', 'none');
                    Affichage::setValueForm($form, $nom, $value, false);
                    break;
                case ChampRecherche::debutDate:
                    Affichage::setAttribut($critereRecherche->getIdDepuisDate(), 'style.display', 'none');
                    Affichage::setValueForm($form, $nom, $value, false);
                    break;
                case ChampRecherche::finDate:
                    Affichage::setAttribut($critereRecherche->getIdFinDate(), 'style.display', 'none');
                    Affichage::setValueForm($form, $nom, $value, false);
                    break;
                
                default:
                    Affichage::setValueForm($form, $nom, $value, false);
                    break;
            }
        }
        exit; 

        
        break;
    
    case CriteresRecherche::btnExportCsv:
        echo "alert('ExportCsv');";
        break;
    
    default:
        $resultat = ControleSaisie::checkValue($format, $objet, $val);
        $messageErreur = $resultat['messageErreur'];
        if ('' != $messageErreur) {
            Affichage::messageJS($messageErreur);
            $valeurModifiee = '';
            $libelleValeur = '';
        } else {
            $valeurModifiee = $resultat['valeurModifiee'];
            $libelleValeur = $resultat['libelleValeur'];
        }
        Affichage::NF16UpdateInput($form, $action, $valeurModifiee, $libelleValeur);
        break;
}
