<?php

class ComposantXslTexte extends ComposantXsl
{

    const imgClasseCalendrier = 'calendrier';

    protected $longueurMax;

    protected $img_onclick;

    protected $est_password;

    protected $img_classe;

    protected $lbl_final;

    protected $rows;

    protected $cols;

    public function setValeur(& $valeur, $nePasCompleter = false)
    {
        ComposantXsl::setValeur($valeur);
        if (! $nePasCompleter) {
            if (! is_null($this->valeur) && '' != $this->valeur) {
                if (! is_null($this->format) && '' != $this->format) {
                    switch (ControleSaisie::GetTypeChamp($this->format)) {
                        // case 'N': // Debug : on transforme tous les champs numérique en champs avec séparateur
                        // $this->format .= 'C';
                        case 'NC': // NC = numérique avec séparateur de virgule
                            $valeurTmp = ControleSaisie::checkValueFormat($this->format, $this->valeur);
                            if ('' != $valeurTmp['valeurModifiee'])
                                $this->valeur = $valeurTmp['valeurModifiee'];
                            break;
                    }
                }
            }
            if (! is_null($this->objet) && '' != $this->objet) {
                $valeurTmp = ControleSaisie::checkValueobjet($this->objet, $this->valeur);
                $this->lbl_final = (! is_null($valeurTmp['libelleValeur']) && '' != $valeurTmp['libelleValeur']) ? $valeurTmp['libelleValeur'] : Trad('n/a');
            }
        }
    }

    public function setLongueurMax($longueurMax)
    {
        $this->longueurMax = $longueurMax;
    }

    public function setImgOnclick(& $img_onclick)
    {
        $this->img_onclick = $img_onclick;
    }

    public function setImgClasse(& $img_classe)
    {
        $this->img_classe = $img_classe;
    }

    public function setLibelleFinal(& $lbl_final)
    {
        $this->lbl_final = $lbl_final;
    }

    public function setEstPassword()
    {
        $this->est_password = true;
    }

    public function getLibelleFinal()
    {
        return $this->lbl_final;
    }

    public function setRowsCols($rows, $cols)
    {
        $this->rows = $rows;
        $this->cols = $cols;
    }

    public function getType()
    {
        return ComposantXSL::kTexte;
    }

    public static function getJsAction($id)
    {
        return 'SwitchCalendrier("' . $id . '");';
    }

    public function &buildXml()
    {
        $array = $this->getArray();
        
        if (! is_null($this->format) && 'D' == $this->format) {
            $this->img_classe = ComposantXslTexte::imgClasseCalendrier;
            $this->img_onclick = ComposantXslTexte::getJsAction($this->id);
        }
        
        if (! is_null($this->longueurMax))
            $array['!maxlength'] = $this->longueurMax;
        if (! is_null($this->img_onclick))
            $array['!img_onclick'] = $this->img_onclick;
        if (! is_null($this->img_classe))
            $array['!img_classe'] = $this->img_classe;
        if (! is_null($this->lbl_final))
            $array['!lbl_final'] = $this->lbl_final;
        if (! is_null($this->est_password))
            $array['!est_password'] = $this->est_password;
        if (! is_null($this->rows))
            $array['!rows'] = $this->rows;
        if (! is_null($this->cols))
            $array['!cols'] = $this->cols;
        
        // $array['classSpecial'] = 'val'; 


        return $array;
    }
}
