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

/**
 * Script dédié à la gestion des formulaires métiers
 */

// Si l'utilisateur apppelle la page d'accueil des formulaires métiers
if ('accueil' == getValue('action')) {
    $ObjFormMetier = new FormulaireMetier2();
    
    $ObjXSLT = new GenXslt();
    
    // On insère le cadre général des formulaires métiers
    Affichage::innerHTMLPointeur("men_gene", $ObjXSLT->XslHtml('application/xsl/gestion_formulaires_metiers.xsl', $ObjFormMetier->buildXMLFormulaires()));
    
    // On charge la liste des formulaires métiers
    $html = $ObjXSLT->XslHtml('application/xsl/template_bloc_liste_form_metier.xsl', $ObjFormMetier->getListeFormulaireForDiv($_SESSION['Session_SocUsr'], $_SESSION['Session_Login'], $_SESSION['Session_CodeCtrEmetteur']));
    Affichage::innerHTMLPointeur("BLOC_FORMULAIRE_METIER", $html);
    
    $connecteur->disconnect();
    exit();
}// Si l'utilisateur sélectionne un formulaire métier
elseif ('selectFormulaire' == getValue('action')) {
    
    $mode_favori = getValue('MODE_FAV_GLOBAL');
    
    $ObjFormMetier = new FormulaireMetier2();
    
    // On réinitialise les listes de métier et de spécialité
    Affichage::reinitElement('BLOC_METIER');
    Affichage::reinitElement('BLOC_SPECIALITE');
    
    // On recharge la liste des métiers
    $ObjXSLT = new GenXslt();
    $html = $ObjXSLT->XslHtml('application/xsl/template_bloc_liste_form_metier.xsl', $ObjFormMetier->getListeMetierForDiv(getValue('CODE_FM'), $mode_favori));
    Affichage::innerHTMLPointeur('BLOC_METIER', $html);
    
    if (null !== getValue('LIB_FORM'))
        Affichage::innerHTML('LIB_FORM', mb_substr(getValue('LIB_FORM'), 0, 50) . '...');
    
    Affichage::innerHTML('LIB_MET', '');
    Affichage::innerHTML('LIB_SPE', '');
    Affichage::innerHTML('BLOC_LIGNE_FORM', '');
    
    $connecteur->disconnect();
    exit();
}// Si l'utilisateur sélectionne un métier
elseif ('selectMetier' == getValue('action')) {
    
    $mode_favori = getValue('MODE_FAV_GLOBAL');
    
    $ObjFormMetier = new FormulaireMetier2();
    
    // On réinitialise les listes de spécialité
    Affichage::reinitElement('BLOC_SPECIALITE');
    
    // On recharge la liste des spécialités
    $ObjXSLT = new GenXslt();
    $html = $ObjXSLT->XslHtml('application/xsl/template_bloc_liste_form_metier.xsl', $ObjFormMetier->getListeSpecialiteForDiv(getValue('CODE_FM'), getValue('CODE_MET'), $mode_favori));
    Affichage::innerHTMLPointeur('BLOC_SPECIALITE', $html);
    
    if (null !== getValue('LIB_MET'))
        Affichage::innerHTML('LIB_MET', mb_substr(getValue('LIB_MET'), 0, 50) . "...");
    
    Affichage::innerHTML('LIB_SPE', '');
    Affichage::innerHTML('BLOC_LIGNE_FORM', '');
    
    $connecteur->disconnect();
    exit();
}// Si l'utilisateur recherche un formulaire
elseif ('searchFormulaire' == getValue('action')) {
    $ObjFormMetier = new FormulaireMetier2();
    
    // On réinitialise les listes de spécialité
    Affichage::reinitElement('BLOC_FORMULAIRE_METIER');
    Affichage::reinitElement('BLOC_METIER');
    Affichage::reinitElement('BLOC_SPECIALITE');
    
    // On charge la liste des formulaires métiers
    $ObjXSLT = new GenXslt();
    $html = $ObjXSLT->XslHtml('application/xsl/template_bloc_liste_form_metier.xsl', $ObjFormMetier->getListeFormulaireForDiv($_SESSION['Session_SocUsr'], $_SESSION['Session_Login'], $_SESSION['Session_CodeCtrEmetteur'], getValue("SEARCH_FORMULAIRE_METIER")));
    Affichage::innerHTMLPointeur('BLOC_FORMULAIRE_METIER', $html);
}// Si l'utilisateur recherche un métier
elseif ('searchMetier' == getValue('action')) {
    
    $mode_favori = getValue('MODE_FAV_GLOBAL');
    
    $ObjFormMetier = new FormulaireMetier2();
    
    // On réinitialise les listes de spécialité
    Affichage::reinitElement('BLOC_METIER');
    Affichage::reinitElement('BLOC_SPECIALITE');
    
    // On recharge la liste des métiers
    $ObjXSLT = new GenXslt();
    $html = $ObjXSLT->XslHtml('application/xsl/template_bloc_liste_form_metier.xsl', $ObjFormMetier->getListeMetierForDiv(getValue('CODE_FM'), $mode_favori, getValue("SEARCH_METIER")));
    Affichage::innerHTMLPointeur('BLOC_METIER', $html);
}// Si l'utilisateur recherche une spécialité
elseif ('searchSpecialite' == getValue('action')) {
    $mode_favori = getValue('MODE_FAV_GLOBAL');
    
    $ObjFormMetier = new FormulaireMetier2();
    
    // On réinitialise les listes de spécialité
    Affichage::reinitElement('BLOC_SPECIALITE');
    
    // On recharge la liste des spécialités
    $ObjXSLT = new GenXslt();
    $html = $ObjXSLT->XslHtml('application/xsl/template_bloc_liste_form_metier.xsl', $ObjFormMetier->getListeSpecialiteForDiv(getValue('CODE_FM'), getValue('CODE_MET'), $mode_favori, getValue("SEARCH_SPECIALITE")));
    Affichage::innerHTMLPointeur('BLOC_SPECIALITE', $html);
}// Si l'utilisateur réinitialise la liste des formulaires métiers
elseif ('reinitFormulaire' == getValue('action')) {
    
    $ObjFormMetier = new FormulaireMetier2();
    
    // On réinitialise les listes des formulaires, des métier et des spécialités
    Affichage::reinitElement('BLOC_FORMULAIRE_METIER');
    Affichage::reinitElement('BLOC_METIER');
    Affichage::reinitElement('BLOC_SPECIALITE');
    
    // On charge la liste des formulaires métiers
    $ObjXSLT = new GenXslt();
    $html = $ObjXSLT->XslHtml('application/xsl/template_bloc_liste_form_metier.xsl', $ObjFormMetier->getListeFormulaireForDiv($_SESSION['Session_SocUsr'], $_SESSION['Session_Login'], $_SESSION['Session_CodeCtrEmetteur']));
    Affichage::innerHTMLPointeur('BLOC_FORMULAIRE_METIER', $html);
    
    Affichage::innerHTML('LIB_FORM', '');
    Affichage::innerHTML('LIB_MET', '');
    Affichage::innerHTML('LIB_SPE', '');
    Affichage::innerHTML('BLOC_LIGNE_FORM', '');
}// Si l'utilisateur sélectionne une spécialité
elseif ('selectSpecialite' == getValue('action')) {
    
    $mode_favori = getValue('MODE_FAV_GLOBAL');
    
    $ObjFormMetier = new FormulaireMetier2();
    
    $result = $ObjFormMetier->buildXMLLignesFormulaire(getValue('CODE_FM'), getValue('CODE_MET'), getValue('CODE_SPE'), $mode_favori);
    
    $ObjXSLT = new GenXslt();
    $html = $ObjXSLT->XslHtml('application/xsl/template_formulaire_metier.xsl', $result);
    
    Affichage::innerHTMLPointeur('BLOC_LIGNE_FORM', $html);
    
    Affichage::innerHTML('LIB_SPE', mb_substr(getValue('LIB_SPE'), 0, 50) . "...");
}// Sil'utilisateur saisie une quantité sur une ligne de formulaire métier
elseif ('saisieQTE' == getValue('action')) {
    
    // Création des objets nécessaires au contrôle de saisie et à l'affichage des messages uttilisateurs
    $champ_qte = getValue('OBJECT'); // On récupère l'identifiant du champ quantité
    
    $qte_saisie = getValue('val'); // On récupère la quantité saisie par l'utilisateur
    $art_code = getValue('COD_ART'); // On récupère le code article
    $art_no_lig_panier = getValue('NO_LIG'); // On récupère le numéro de ligne de l'article dans le panier, si 0 alors la ligne n'existe pas encore
    $art_cod_fab = getValue('COD_FAB'); // On récupère le code fabricant de l'article
    $art_ref_fab = getValue('REF_FAB'); // On récupère la référence fabricant de l'article
    $code_formulaire = getValue('CODE_FM'); // On récupère le code du formulaire métier
    $code_metier = getValue('CODE_MET'); // On récupère le code du métier du formulaire métier
    $code_specialite = getValue('CODE_SPE'); // On récupère la spécialité du formulaire métier
    $type_de_ligne = getValue('TYPE_LIGNE'); // On récupère le type de ligne 0 pour ligne catalogue et 1 pour ligne de type manuelle
    $ref_ligne_manuelle = getValue('REFLMAN'); // On récupère la référence de la ligne manuelle, si 0 alors la ligne est de type manuelle
                                                    
    // On contrôle la quantité saisie par l'utilisateur
    if (! ControleSaisie::CtrlQuantite($qte_saisie)) {
        Affichage::messageJS(trad('La quantité saisie est incorrecte, elle doit être de la forme 999999.999'));
        Affichage::setAttribut($champ_qte, 'value', '0.000');
        $connecteur->disconnect();
        exit();
    }
    
    /**
     * Spécification N°2307
     * On contrôle si la quantité saisie par l'utilisateur ne dépasse pas la quantité disponible pour un article stocké
     */
    if (53 == $_SESSION['Session_NumClient']) {
        
        $PanierEntete = new PanierEntete();
        $PanierEntete->getEntetePanier($_SESSION['id_panier'], $_SESSION['id_user']);
        
        $obj_article = new Article();
        
        // Alors on récupère la quantité en stock disponible pour le site de stock associé au centre de livraison et pour l'article donné
        // Si la quantité saisie est > quantité disponible alors on bloque la saisie et on informe l'utilisateur
        if (! $obj_article->ctrlQteDispoForArtStk($PanierEntete->getLIV_CTR(), $art_code, $qte_saisie)) {
            Affichage::messageJS(strBuild(trad('Quantité en stock insuffisante : @1@'), $obj_article->getQTE_DISPO_STK_LOCAL()));
            Affichage::setAttribut($champ_qte, 'value', strBuild(trad('Qté Max : @1@'), $obj_article->getQTE_DISPO_STK_LOCAL()));
            $connecteur->disconnect();
            exit();
        }
    }
    /**
     */
    
    $element_article['COD_FM'] = $code_formulaire;
    $element_article['COD_MET'] = $code_metier;
    $element_article['COD_SPE'] = $code_specialite;
    $element_article['COD_ART'] = $art_code;
    $element_article['COD_FAB'] = $art_cod_fab;
    $element_article['REF_FAB'] = $art_ref_fab;
    $element_article['TYPE_LIGNE'] = $type_de_ligne;
    $element_article['REFLMAN'] = $ref_ligne_manuelle;
    
    $info_article_panier = PanierLigne::getLigneArtFormInPanier($element_article);
    
    if (is_array($info_article_panier) && array_key_exists('id_lig', $info_article_panier))
        if ($qte_saisie > 0)
            // Mise à jour de la quantité de la ligne du panier
            PanierLigne::updateQteLignePanier($_SESSION['id_panier'], $info_article_panier['id_lig'], $qte_saisie);
        else
            PanierLigne::deleteLignePanier($_SESSION['id_panier'], $info_article_panier['id_lig']);
    elseif ($qte_saisie > 0)
        PanierLigne::insertNewLigneFromFormulaireMetier($_SESSION['id_user'], $_SESSION['id_panier'], $element_article, $qte_saisie);
    
    // On formate la quantité saisie par l'utilisateur
    Affichage::setValue($champ_qte, FormatageData::formatQte($qte_saisie));
    
    // On met à jour la quantité d'article et le montant global du panier
    Panier::updateMontantAndNbArticlePanier($_SESSION['id_panier']);
}// Si l'utilisateur active ou désactive le mode favori d'un article d'un formulaire métier
elseif ('switchFavStateByArticle' == getValue('action')) {
    
    $art_code = getValue('COD_ART'); // On récupère le code article
    $art_cod_fab = getValue('COD_FAB'); // On récupère le code fabricant de l'article
    $art_ref_fab = getValue('REF_FAB'); // On récupère la référence fabricant de l'article
    $code_formulaire = getValue('CODE_FM'); // On récupère le code du formulaire métier
    $code_metier = getValue('CODE_MET'); // On récupère le code du métier du formulaire métier
    $code_specialite = getValue('CODE_SPE'); // On récupère la spécialité du formulaire métier
    $ref_ligne_manuelle = getValue('REFLMAN'); // On récupère la référence de la ligne manuelle, si 0 alors la ligne est de type manuelle
    $ind_specialite_en_cours = getValue('IND_SPE'); // On récupère l'indice de la spécialité en cours
    $ind_metier_en_cours = getValue('IND_MET'); // On récupère l'indice du métier en cours
    
    $indice_art_en_cours = getValue('OBJECT');
    $indice_art_en_cours = explode('_', $indice_art_en_cours);
    $indice_art_en_cours = $indice_art_en_cours[2];
    $etat_favori = getValue('val'); // On récupère l'état avant demande de modification de mise en favori de l'article
                                                  
    // On récupère l'état actuel du mode favori et on définit l'état opossé comme étant le nouvel état
    if (1 == $etat_favori)
        $new_etat_favori = 0;
    else
        $new_etat_favori = 1;
    
    // On apppelle le wsdl de mise en favori
    $ObjFormMetier = new FormulaireMetier2();
    $result_wsdl = $ObjFormMetier->switchFavorisState($new_etat_favori, $code_formulaire, $code_metier, $code_specialite, $art_cod_fab, $art_ref_fab, $art_code, $ref_ligne_manuelle);
    
    // Si l'activation/désactivation du mode favori à réussi alors on met à jour l'action favori disponible au niveau de la ligne article
    if (array_key_exists('Retour', $result_wsdl) && 'Ok' == $result_wsdl['Retour']) {
        // Si l'article a été placé en favori, alors on réactualise l'icône favori de l'article de la spécialité ainsi que du métier associé
        if (1 == $new_etat_favori) {
            Affichage::setValue("ART_FAV_{$indice_art_en_cours}", 1); // Le champ valeur de létat favori vaut maintenant 1
            Affichage::setAttribut("ART_IMG_FAV_{$indice_art_en_cours}", 'className', 'dib img16 img_favorioui_16x16'); // On propose l'icône permettant la désactivation du mode favori
            Affichage::setAttribut("ART_IMG_FAV_{$indice_art_en_cours}", "title", trad("Désactiver la mise en favori de l'article"));
            
            // On met à jour également les symboles de mise en favori des listes de métiers et sépcialités
            Affichage::setValue("SPE_FAV_{$ind_specialite_en_cours}", 1); // Le champ valeur de létat favori vaut maintenant 1
            Affichage::setAttribut("SPE_IMG_FAV_{$ind_specialite_en_cours}", 'className', 'dib img16 img_favorioui_16x16'); // On propose l'icône permettant la désactivation du mode favori
            
            Affichage::setValue("MET_FAV_{$ind_metier_en_cours}", 1); // Le champ valeur de létat favori vaut maintenant 1
            Affichage::setAttribut("MET_IMG_FAV_{$ind_metier_en_cours}", 'className', 'dib img16 img_favorioui_16x16'); // On propose l'icône permettant la désactivation du mode favori
        }        // Sinon, on change simplement la mise en favori au niveau de l'article
        else {
            Affichage::setValue("ART_FAV_{$indice_art_en_cours}", 0); // Le champ valeur de létat favori vaut maintenant 0
            Affichage::setAttribut("ART_IMG_FAV_{$indice_art_en_cours}", 'className', 'dib img16 img_favorinon_16x16'); // On propose l'icône permettant l'activation du mode favori
            Affichage::setAttribut("ART_IMG_FAV_{$indice_art_en_cours}", "title", trad("Activer la mise en favori de l'article"));
        }
    } else
        Affichage::messageJS("Une erreur est survenue lors de la mise en favori de l'article" . $result_wsdl['Erreur']);
}// Si l'utilisateur active ou désactive le mode favori d'une spéicalité d'un formulaire métier
elseif ('switchFavStateBySpecialite' == getValue('action')) {
    $mode_favori = getValue('MODE_FAV_GLOBAL');
    $code_formulaire = getValue('CODE_FM'); // On récupère le code du formulaire métier
    $code_metier = getValue('CODE_MET'); // On récupère le code du métier du formulaire métier
    $code_specialite_en_cours = getValue('CODE_SPE');
    $code_specialite = getValue('CODE_SPE_FAV'); // On récupère la spécialité du formulaire métier
    $ind_metier_en_cours = getValue('IND_MET'); // On récupère l'indice du métier en cours
    
    $etat_favori = getValue('val'); // On récupère l'état avant demande de modification de mise en favori de l'article
    
    $ind_specialite_a_modifier = getValue('OBJECT');
    $ind_specialite_a_modifier = explode('_', $ind_specialite_a_modifier);
    $ind_specialite_a_modifier = $ind_specialite_a_modifier[2];
    
    // On récupère l'état actuel du mode favori et on définit l'état opossé comme étant le nouvel état
    if (1 == $etat_favori)
        $new_etat_favori = 0;
    else
        $new_etat_favori = 1;
    
    // On apppelle le wsdl de mise en favori
    $ObjFormMetier = new FormulaireMetier2();
    $result_wsdl = $ObjFormMetier->switchFavorisState($new_etat_favori, $code_formulaire, $code_metier, $code_specialite, '', '', '', '');
    
    // Si l'activation/désactivation du mode favori à réussi alors on met à jour l'action favori disponible au niveau de la ligne article
    if (array_key_exists('Retour', $result_wsdl) && 'Ok' == $result_wsdl['Retour']) {
        // Si l'article a été placé en favori, alors on réactualise l'icône favori de l'article de la spécialité ainsi que du métier associé
        if (1 == $new_etat_favori) {
            Affichage::setValue("SPE_FAV_{$ind_specialite_a_modifier}", 1); // Le champ valeur de létat favori vaut maintenant 1
            Affichage::setAttribut("SPE_IMG_FAV_{$ind_specialite_a_modifier}", 'className', 'dib img16 img_favorioui_16x16'); // On propose l'icône permettant la désactivation du mode favori
                                                                                                                            
            // On met à jour également le symbole de mise en favori du métier
            Affichage::setValue("MET_FAV_{$ind_metier_en_cours}", 1); // Le champ valeur de létat favori vaut maintenant 1
            Affichage::setAttribut("MET_IMG_FAV_{$ind_metier_en_cours}", 'className', 'dib img16 img_favorioui_16x16'); // On propose l'icône permettant la désactivation du mode favori
        }        // Sinon, on change simplement la mise en favori au niveau de l'article
        else {
            Affichage::setValue("SPE_FAV_{$ind_specialite_a_modifier}", 0); // Le champ valeur de létat favori vaut maintenant 0
            Affichage::setAttribut("SPE_IMG_FAV_{$ind_specialite_a_modifier}", 'className', 'dib img16 img_favorinon_16x16'); // On propose l'icône permettant l'activation du mode favori
                                                                                                                            
            // Si la spécialité sur laquelle l'utilisateur désactive le mode favoris est la spécialité en cours alors on raffraichit les lignes articles
            if ($code_specialite_en_cours == $code_specialite) {
                $result = $ObjFormMetier->buildXMLLignesFormulaire(getValue('CODE_FM'), getValue('CODE_MET'), getValue('CODE_SPE'), $mode_favori);
                $ObjXSLT = new GenXslt();
                $html = $ObjXSLT->XslHtml('application/xsl/template_formulaire_metier.xsl', $result);
                
                Affichage::innerHTMLPointeur('BLOC_LIGNE_FORM', $html);
            }
        }
    } else
        Affichage::messageJS('Une erreur est survenue lors de la mise en favori de la spécialité' . $result_wsdl['Erreur']);
}// Si l'utilisateur active ou désactive le mode favori d'une spéicalité d'un formulaire métier
elseif ('switchFavStateByMetier' == getValue('action')) {
    
    $mode_favori = getValue('MODE_FAV_GLOBAL');
    $code_formulaire = getValue('CODE_FM'); // On récupère le code du formulaire métier
    $code_metier_en_cours = getValue('CODE_MET'); // On récupère le code du métier qui est déjà sélectionné
    $code_metier = getValue('CODE_MET_FAV'); // On récupère le code du métier sur lequel la mise en favori est appelée
                                                      
    // On récupère l'indice du code métier sur lequel la mise en favori est appelée
    $ind_metier_a_modifier = getValue('OBJECT');
    $ind_metier_a_modifier = explode('_', $ind_metier_a_modifier);
    $ind_metier_a_modifier = $ind_metier_a_modifier[2];
    
    $etat_favori = getValue('val'); // On récupère l'état avant demande de modification de mise en favori du métier
                                                
    // On récupère l'état actuel du mode favori et on définit l'état opossé comme étant le nouvel état
    if (1 == $etat_favori)
        $new_etat_favori = 0;
    else
        $new_etat_favori = 1;
    
    // On apppelle le wsdl de mise en favori
    $ObjFormMetier = new FormulaireMetier2();
    $result_wsdl = $ObjFormMetier->switchFavorisState($new_etat_favori, $code_formulaire, $code_metier, '', '', '', '', '');
    
    // Si l'activation/désactivation du mode favori à réussi alors on met à jour l'action favori disponible au niveau de la ligne article
    if (array_key_exists('Retour', $result_wsdl) && 'Ok' == $result_wsdl['Retour']) {
        // Si l'article a été placé en favori, alors on réactualise l'icône favori de l'article de la spécialité ainsi que du métier associé
        if (1 == $new_etat_favori) {
            Affichage::setValue("MET_FAV_{$ind_metier_a_modifier}", 1); // Le champ valeur de létat favori vaut maintenant 1
            Affichage::setAttribut("MET_IMG_FAV_{$ind_metier_a_modifier}", 'className', 'dib img16 img_favorioui_16x16'); // On propose l'icône permettant la désactivation du mode favori
            Affichage::setAttribut("SPE_DIV_" . getValue("IND_SPE"), 'className', 'fondBleuClair');
        }        // Sinon, on change simplement la mise en favori au niveau de l'article
        else {
            Affichage::setValue("MET_FAV_{$ind_metier_a_modifier}", 0); // Le champ valeur de létat favori vaut maintenant 0
            Affichage::setAttribut("MET_IMG_FAV_{$ind_metier_a_modifier}", 'className', 'dib img16 img_favorinon_16x16'); // On propose l'icône permettant l'activation du mode favori
                                                                                                                        
            // Si le métier sur lequelle l'utilisateur désactive le mode favoris est le métier en cours et qu'une spécialité est déjà sélectionnée alors on raffraichit l'affichage des spécialités et celui les lignes articles
            if ($code_metier_en_cours == $code_metier && '' != getValue('CODE_SPE')) {
                // Mise à jour de la liste des spécialité
                $ObjXSLT = new GenXslt();
                $html = $ObjXSLT->XslHtml('application/xsl/template_bloc_liste_form_metier.xsl', $ObjFormMetier->getListeSpecialiteForDiv(getValue('CODE_FM'), getValue('CODE_MET'), $mode_favori));
                Affichage::innerHTMLPointeur('BLOC_SPECIALITE', $html);
                Affichage::setAttribut("SPE_DIV_" . getValue('IND_SPE'), 'className', 'fondBleuClair');
                
                // Mise à jour de la liste des articles
                $result = $ObjFormMetier->buildXMLLignesFormulaire(getValue('CODE_FM'), getValue('CODE_MET'), getValue('CODE_SPE'));
                $ObjXSLT = new GenXslt();
                $html = $ObjXSLT->XslHtml('application/xsl/template_formulaire_metier.xsl', $result);
                
                Affichage::innerHTMLPointeur('BLOC_LIGNE_FORM', $html);
            }
        }
    } else
        Affichage::messageJS('Une erreur est survenue lors de la mise en favori du métier' . $result_wsdl['Erreur']);
}// Si l'utilisateur active / désactive le mode d'affichage global des favoris
elseif ('switchFavModeGlobal' == getValue('action')) {
    $ObjXSLT = new GenXslt();
    $ObjFormMetier = new FormulaireMetier2();
    
    $mode_favori = getValue('MODE_FAV_GLOBAL');
    
    if (0 == $mode_favori) {
        $mode_favori = 1;
        
        Affichage::setValue('MODE_FAV_GLOBAL', $mode_favori);
        Affichage::setAttribut('IMG_FAV_GLOBAL', 'className', 'dib img32 img_favorioui_32x32');
        Affichage::setAttribut('IMG_FAV_GLOBAL', 'title', trad('Cliquez pour désactiver le filtre global sur les favoris'));
    } else {
        $mode_favori = 0;
        
        Affichage::setValue('MODE_FAV_GLOBAL', $mode_favori);
        Affichage::setAttribut('IMG_FAV_GLOBAL', 'className', 'dib img32 img_favorinon_32x32');
        Affichage::setAttribut('IMG_FAV_GLOBAL', 'title', trad('Cliquez pour activer le filtre global sur les favoris'));
    }
    
    // On recharge la liste des métiers
    if ('' != getValue('CODE_FM')) {
        
        $html = $ObjXSLT->XslHtml('application/xsl/template_bloc_liste_form_metier.xsl', $ObjFormMetier->getListeMetierForDiv(getValue('CODE_FM'), $mode_favori));
        Affichage::innerHTMLPointeur('BLOC_METIER', $html);
    }
    
    if ('' != getValue('CODE_FM') && '' != getValue('CODE_MET')) {
        $html = $ObjXSLT->XslHtml('application/xsl/template_bloc_liste_form_metier.xsl', $ObjFormMetier->getListeSpecialiteForDiv(getValue('CODE_FM'), getValue('CODE_MET'), $mode_favori));
        Affichage::innerHTMLPointeur('BLOC_SPECIALITE', $html);
    }
    
    $result = $ObjFormMetier->buildXMLLignesFormulaire(getValue('CODE_FM'), getValue('CODE_MET'), getValue('CODE_SPE'), $mode_favori);
    
    if ('' != getValue('CODE_FM') && '' != getValue('CODE_MET') && '' != getValue('CODE_SPE')) {
        
        $html = $ObjXSLT->XslHtml('application/xsl/template_formulaire_metier.xsl', $result);
        Affichage::innerHTMLPointeur('BLOC_LIGNE_FORM', $html);
    }
}

$connecteur->disconnect();
exit();