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

$action = getValue('action');
$ancrage = getValue('ancrage');

class testCompXsl
{

    public static $callback_php = 'testCompXsl.php';

    public static $fichier_xml = 'application/xsl/outils/testCompXsl.xsl';

    public static $form_id = 'formtest';

    public static $form_id_popup = 'formtestpopup';

    // static function checkValueJS($form, $id) {
    // $js = 'TraiteUrl(\'critere_recherche.php?action='.$id.'&form='.$form.'\', this);';
    // return $js;
    // }
    static function buildXml($action)
    {
        $array = array();
        $array['action'] = $action;
        $array['infos'] = array();
        $true = true;
        $false = false;
        $valeurtest = 'test';
        $formid = testCompXsl::$form_id;
        
        if ('AffichePopup' != $action) {
            $id = 'BtnPopup';
            $action = 'OpenPopup(\'' . testCompXsl::$callback_php . '?action=AffichePopup\', \'win_pop_testcomp\', 1000, 600);';
            $libelle = 'Ouvrir popup';
            $compXsl = new ComposantXslAction($id);
            $compXsl->setAction($action);
            $compXsl->setLibelle($libelle);
            $array['infos']['btnPopup'] = $compXsl->buildXml();
        } else {
            $formid = testCompXsl::$form_id_popup;
        }
        $array['infos']['!formid'] = $formid;
        
        // --------------------------------------------------------------------------------------------
        // Tests sur les inputs text
        // --------------------------------------------------------------------------------------------
        
        $id = 'inputtext1';
        $libelle = 'Test input text 1';
        $compXsl = new ComposantXslTexte($id, $true);
        $compXsl->setLibelle($libelle);
        $compXsl->setLibelleVisible($true);
        $compXsl->setValeur($valeurtest);
        $array['infos'][$id] = $compXsl->buildXml();
        
        $id = 'inputtext1disab';
        $libelle = 'Test input text 1 disabled';
        $compXsl = new ComposantXslTexte($id, $false);
        $compXsl->setLibelle($libelle);
        $compXsl->setLibelleVisible($true);
        $compXsl->setValeur($valeurtest);
        $array['infos'][$id] = $compXsl->buildXml();
        
        $id = 'inputtext1ro';
        $libelle = 'Test input text 1 readonly';
        $compXsl = new ComposantXslTexte($id, $true);
        $compXsl->setLibelle($libelle);
        $compXsl->setLibelleVisible($true);
        $compXsl->setValeur($valeurtest);
        $compXsl->setReadonly($true);
        $array['infos'][$id] = $compXsl->buildXml();
        
        $id = 'inputpasswd1';
        $libelle = 'Test input passwd 1';
        $compXsl = new ComposantXslTexte($id, $true);
        $compXsl->setEstPassword();
        $compXsl->setLibelle($libelle);
        $compXsl->setLibelleVisible($true);
        $compXsl->setValeur($valeurtest);
        $array['infos'][$id] = $compXsl->buildXml();
        
        $id = 'inputpasswd1disab';
        $libelle = 'Test input passwd 1';
        $compXsl = new ComposantXslTexte($id, $false);
        $compXsl->setEstPassword();
        $compXsl->setLibelle($libelle);
        $compXsl->setLibelleVisible($true);
        $compXsl->setValeur($valeurtest);
        $array['infos'][$id] = $compXsl->buildXml();
        
        //
        // Gestion de la popup pour le champ texte
        //
        $id = 'inputtexticon';
        $format = 'A50';
        $popupid = 'UTILISATEURS_STE';
        $objet = 'HASTUTIL';
        $valeur = 'YA';
        
        $popupResp = new AffichePopup($popupid);
        $popupResp->setVariable('action', 'initPopup');
        $popupResp->setVariable('formName', $formid);
        $popupResp->setVariable('inputField', $id);
        $popupResp->setVariable('labelField', $id . '_lib');
        $popupResp->setToSession();
        $img_onclick = $popupResp->getUrl();
        
        $libelle = 'Test input icône 1';
        $action = ControleSaisie::getJSCheckValue($formid, $id);
        $compXsl = new ComposantXslTexte($id, $true, $format, $objet);
        $compXsl->setLibelle($libelle);
        $compXsl->setLibelleVisible($true);
        $compXsl->setImgOnclick($img_onclick);
        $compXsl->setAction($action);
        $compXsl->setValeur($valeur);
        
        $array['infos'][$id] = $compXsl->buildXml();
        
        $id = 'inputtexticondisab';
        $format = 'A50';
        $popupid = 'UTILISATEURS_STE';
        $objet = 'HASTUTIL';
        $valeur = 'YA';
        
        $popupResp = new AffichePopup($popupid);
        $popupResp->setVariable('action', 'initPopup');
        $popupResp->setVariable('formName', $formid);
        $popupResp->setVariable('inputField', $id);
        $popupResp->setVariable('labelField', $id . '_lib');
        $popupResp->setToSession();
        $img_onclick = $popupResp->getUrl();
        
        $libelle = 'Test input icône 1';
        $action = ControleSaisie::getJSCheckValue($formid, $id);
        $compXsl = new ComposantXslTexte($id, $false, $format, $objet);
        $compXsl->setLibelle($libelle);
        $compXsl->setLibelleVisible($true);
        $compXsl->setImgOnclick($img_onclick);
        $compXsl->setAction($action);
        $compXsl->setValeur($valeur);
        $array['infos'][$id] = $compXsl->buildXml();
        
        $valeurtxtarea = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum';
        $id = 'inputtxtarea1';
        $libelle = 'Test textarea 1';
        $compXsl = new ComposantXslTexte($id, $true);
        $compXsl->setRowsCols(4, 40);
        $compXsl->setLibelle($libelle);
        $compXsl->setLibelleVisible($true);
        $compXsl->setValeur($valeurtxtarea);
        $array['infos'][$id] = $compXsl->buildXml();
        
        $id = 'inputtxtarea1disab';
        $libelle = 'Test textarea disabled';
        $compXsl = new ComposantXslTexte($id, $false);
        $compXsl->setRowsCols(4, 40);
        $compXsl->setLibelle($libelle);
        $compXsl->setLibelleVisible($true);
        $compXsl->setValeur($valeurtxtarea);
        $array['infos'][$id] = $compXsl->buildXml();
        
        $id = 'inputtxtarea1ro';
        $libelle = 'Test textarea readonly';
        $compXsl = new ComposantXslTexte($id, $true);
        $compXsl->setRowsCols(4, 40);
        $compXsl->setLibelle($libelle);
        $compXsl->setLibelleVisible($true);
        $compXsl->setValeur($valeurtxtarea);
        $compXsl->setReadonly(true);
        $array['infos'][$id] = $compXsl->buildXml();
        
        $id = 'inputtxtcalendrier';
        $libelle = 'calendrier';
        $format = 'D';
        $valeur = '25/12/2017';
        $action = ControleSaisie::getJSCheckValue($formid, $id);
        $compXsl = new ComposantXslTexte($id, $true, $format);
        $compXsl->setLibelle($libelle);
        $compXsl->setLibelleVisible($true);
        $compXsl->setAction($action);
        $compXsl->setValeur($valeur);
        $array['infos'][$id] = $compXsl->buildXml();
        
        $id = 'inputtxtcalendrierdisab';
        $libelle = 'calendrier';
        $format = 'D';
        $action = ControleSaisie::getJSCheckValue($formid, $id);
        $compXsl = new ComposantXslTexte($id, $false, $format);
        $compXsl->setLibelle($libelle);
        $compXsl->setLibelleVisible($true);
        $compXsl->setAction($action);
        $compXsl->setValeur($valeur);
        $array['infos'][$id] = $compXsl->buildXml();
        
        // --------------------------------------------------------------------------------------------
        // Test sur le composant sélection
        // --------------------------------------------------------------------------------------------
        $id = 'inputselect1';
        $libelle = 'Test sélection 1';
        $compXsl = new ComposantXslSelection($id, $true);
        $compXsl->setLibelle($libelle);
        $compXsl->setLibelleVisible($true);
        $array['infos'][$id] = $compXsl->buildXml();
        
        $id = 'inputselect1disab';
        $libelle = 'Test sélection 1';
        $compXsl = new ComposantXslSelection($id, $false);
        $compXsl->setLibelle($libelle);
        $compXsl->setLibelleVisible($true);
        $array['infos'][$id] = $compXsl->buildXml();
        
        $id = 'inputselect2';
        $libelle = 'Test sélection 2';
        $option[] = array(
            '!value' => 'code1',
            '!texte' => 'valeur1'
        );
        $option[] = array(
            '!value' => 'code2',
            '!texte' => 'valeur2'
        );
        $option[] = array(
            '!value' => 'code3',
            '!texte' => 'valeur3'
        );
        $option[] = array(
            '!value' => 'code4',
            '!texte' => 'valeur4'
        );
        $option[] = array(
            '!value' => 'code5',
            '!texte' => 'valeur5'
        );
        $option[] = array(
            '!value' => 'code6',
            '!texte' => 'valeur6'
        );
        $option[] = array(
            '!value' => 'code7',
            '!texte' => 'valeur7'
        );
        $option[] = array(
            '!value' => 'code8',
            '!texte' => 'valeur8'
        );
        $valeur = 'code3';
        
        $compXsl = new ComposantXslSelection($id, $true);
        $compXsl->setLibelle($libelle);
        $compXsl->setLibelleVisible($true);
        $compXsl->setListeOptions($option);
        $compXsl->setValeur($valeur);
        $array['infos'][$id] = $compXsl->buildXml();
        
        $id = 'inputselect2disab';
        $libelle = 'Test sélection 2';
        $compXsl = new ComposantXslSelection($id, $false);
        $compXsl->setLibelle($libelle);
        $compXsl->setLibelleVisible($true);
        $compXsl->setListeOptions($option);
        $compXsl->setValeur($valeur);
        $array['infos'][$id] = $compXsl->buildXml();
        
        $id = 'inputselect3';
        $libelle = 'Test sélection 3';
        $compXsl = new ComposantXslSelection($id, $true);
        $compXsl->setLibelle($libelle);
        $compXsl->setLibelleVisible($true);
        $compXsl->setListeOptions($option);
        $compXsl->setValeur($valeur);
        $compXsl->setIsMultiple($true);
        $array['infos'][$id] = $compXsl->buildXml();
        
        $id = 'inputselect3disab';
        $libelle = 'Test sélection 3';
        $compXsl = new ComposantXslSelection($id, $false);
        $compXsl->setLibelle($libelle);
        $compXsl->setLibelleVisible($true);
        $compXsl->setListeOptions($option);
        $compXsl->setValeur($valeur);
        $compXsl->setIsMultiple($true);
        $array['infos'][$id] = $compXsl->buildXml();
        
        // --------------------------------------------------------------------------------------------
        // Test sur le composant fichier
        // --------------------------------------------------------------------------------------------
        $id = 'inputfile1';
        $libelle = 'Test input file 1';
        $compXsl = new ComposantXslFichier($id, $true);
        $compXsl->setLibelle($libelle);
        $compXsl->setLibelleVisible($true);
        $compXsl->setValeur($valeur);
        $array['infos'][$id] = $compXsl->buildXml();
        
        // --------------------------------------------------------------------------------------------
        // Test sur le composant ajout docs rattachés
        // --------------------------------------------------------------------------------------------
        $id = 'ajoutdocratt';
        $libelle = 'Ajout document rattaché';
        $action = 'alert("meuh");';
        $action = 'OpenPopup(\'' . DocumentsRattaches::$callback_php . '?action=' . DocumentsRattaches::$actAffichePopup . '\', \'pop_ajoutdocrat\', 800, 600);';
        $compXsl = new ComposantXslAction($id, $true);
        $compXsl->setLibelle($libelle);
        $compXsl->setLibelleVisible($true);
        $compXsl->setAction($action);
        $array['infos'][$id] = $compXsl->buildXml();
        
        // --------------------------------------------------------------------------------------------
        // Test sur le composant double liste
        // --------------------------------------------------------------------------------------------
        // $id = 'doubleliste';
        // $libelle = 'Double liste';
        // $action = 'OpenPopup(\''.DoubleListe::$callback_php.'?action='. DoubleListe::$actAffichePopup .'&'.DoubleListe::$form_id.'=form1&'.DoubleListe::$is_inside_form.'=0&'.DoubleListe::$element_id.'=ACHETEURS\', \'pop_doubleliste\', 800, 600);';
        // $compXsl = new ComposantXslAction($id, $true);
        // $compXsl->setLibelle($libelle);
        // $compXsl->setLibelleVisible($true);
        // $compXsl->setAction($action);
        // $array['infos'][$id] = $compXsl->buildXml();
        
        // --------------------------------------------------------------------------------------------
        // Test sur le composant quantité
        // --------------------------------------------------------------------------------------------
        
        $id = 'inputtextqte';
        $libelle = 'Test quantité';
        $actionPlus = 'alert("action plus");';
        $actionMoins = 'alert("action moins");';
        $compXsl = new ComposantXslQuantite($id);
        $compXsl->setLibelle($libelle);
        $compXsl->setLibelleVisible($true);
        $compXsl->setActionPlus($actionPlus);
        $compXsl->setActionMoins($actionMoins);
        $array['infos'][$id] = $compXsl->buildXml();
        
        // --------------------------------------------------------------------------------------------
        // Tests sur les actions
        // --------------------------------------------------------------------------------------------
        
        $id = 'inputbtnppal';
        $libelle = 'Action principale';
        $action = 'alert("Action principale");';
        $compXsl = new ComposantXslAction($id);
        $compXsl->setLibelle($libelle);
        $compXsl->setAction($action);
        $compXsl->setEstPrimaire($true);
        $array['infos'][$id] = $compXsl->buildXml();
        
        $id = 'inputbtnsecond';
        $libelle = 'Action secondaire';
        $action = 'alert("Action secondaire");';
        $compXsl = new ComposantXslAction($id);
        $compXsl->setLibelle($libelle);
        $compXsl->setEstPrimaire($false);
        $compXsl->setAction($action);
        $array['infos'][$id] = $compXsl->buildXml();
        
        $id = 'inputbtnflechegaucheppal';
        $libelle = 'Action principale gauche';
        $action = 'alert("Action principale gauche");';
        $compXsl = new ComposantXslAction($id);
        $compXsl->setLibelle($libelle);
        $compXsl->setAction($action);
        $compXsl->setEstPrimaire($true);
        $compXsl->setEstFlecheGauche();
        $array['infos'][$id] = $compXsl->buildXml();
        
        $id = 'inputbtnflechedroiteppal';
        $libelle = 'Action principale droite';
        $action = 'alert("Action principale droite");';
        $compXsl = new ComposantXslAction($id);
        $compXsl->setLibelle($libelle);
        $compXsl->setAction($action);
        $compXsl->setEstPrimaire($true);
        $compXsl->setEstFlecheDroite();
        $array['infos'][$id] = $compXsl->buildXml();
        
        $id = 'inputbtnflechegauchesecond';
        $libelle = 'Action secondaire gauche';
        $action = 'alert("Action secondaire gauche");';
        $compXsl = new ComposantXslAction($id);
        $compXsl->setLibelle($libelle);
        $compXsl->setAction($action);
        $compXsl->setEstPrimaire($false);
        $compXsl->setEstFlecheGauche();
        $array['infos'][$id] = $compXsl->buildXml();
        
        $id = 'inputbtnflechedroitesecondaire';
        $libelle = 'Action secondaire droite';
        $action = 'alert("Action secondaire droite");';
        $compXsl = new ComposantXslAction($id);
        $compXsl->setLibelle($libelle);
        $compXsl->setAction($action);
        $compXsl->setEstPrimaire($false);
        $compXsl->setEstFlecheDroite();
        $array['infos'][$id] = $compXsl->buildXml();
        
        $id = 'actionimg1';
        $libelle = 'action image 1';
        $action = 'alert("action image 1");';
        $taille = 32;
        $image = ComposantXslAction::img_picto_pdf;
        $compXsl = new ComposantXslAction($id);
        $compXsl->setAction($action);
        $compXsl->setLibelle($libelle);
        $compXsl->setLibelleVisible($true);
        $compXsl->setImage($image);
        $compXsl->setImg_taille($taille);
        $array['infos'][$id] = $compXsl->buildXml();
        
        // --------------------------------------------------------------------------------------------
        // Test sur lien action
        // --------------------------------------------------------------------------------------------
        
        $id = 'lienaction1';
        $libelle = 'lien action 1';
        $action = 'http://www.google.fr';
        $target = '_blank';
        $compXsl = new ComposantXslLienAction($id);
        $compXsl->setLibelle($libelle);
        $compXsl->setLibelleVisible($true);
        $compXsl->setAction($action);
        $compXsl->setTarget($target);
        $array['infos'][$id] = $compXsl->buildXml();
        
        // --------------------------------------------------------------------------------------------
        // Test sur menu contextuel
        // --------------------------------------------------------------------------------------------
        
        $idMenu = 'MC1';
        $compXslMenu = new ComposantXslMenuContextuel($idMenu);
        
        $id = 'LMC1';
        $libelle = 'ligne menu contextuel 1';
        $action = 'alert("ligne menu contextuel 1");';
        $classeIcone = 'img_result_ok_mini_16x16';
        $compXsl = new ComposantXslLigneMenuContextuel($id);
        $compXsl->setLibelle($libelle);
        $compXsl->setClasseIcone($classeIcone);
        $compXsl->setAction($action);
        $compXslMenu->addMenu($compXsl);
        
        // On créé une ligne de séparation
        $idVide = '';
        $menuSeparateur = new ComposantXslLigneMenuContextuel($idVide);
        $menuSeparateur->setSeparateur();
        $compXslMenu->addMenu($menuSeparateur);
        
        $id = 'LMC2';
        $libelle = 'ligne menu contextuel 2';
        $action = 'alert("ligne menu contextuel 2");';
        $classeIcone = 'img_result_ok_mini_16x16';
        $compXsl = new ComposantXslLigneMenuContextuel($id);
        $compXsl->setLibelle($libelle);
        $compXsl->setClasseIcone($classeIcone);
        $compXsl->setAction($action);
        $compXslMenu->addMenu($compXsl);
        
        $array['infos'][$idMenu] = $compXslMenu->buildXml();
        
        $array['popup_title'] = trad('Test composants');
        return $array;
    }
}
;

switch ($action) {
    case 'Affiche':
        $genXsl = new GenXslt(true);
        $array = testCompXsl::buildXml($action);
        Affichage::innerHTMLPointeur($ancrage, $genXsl->XslHtml(testCompXsl::$fichier_xml, $array));
        break;
    case 'AffichePopup':
        $genXsl = new GenXslt(true);
        $array = testCompXsl::buildXml($action);
        echo $genXsl->XslHtml(testCompXsl::$fichier_xml, $array);
        break;
    case 'checkValue':
        
        break;
}