<div class="row" data-form="dodaj_wniosek">
    <div class="col-xs-12">
        <div class="box box-danger">
            <?php if (!empty($nrEwid)) : ?>
                <input type="hidden" id="nr_ew_id_pod" value="<?php echo $nrEwid; ?>">
            <?php endif; ?>
            <?php use Cake\Routing\Router;

            echo $this->Form->create(null, ['templates' => ['submitContainer' => '{{content}}',], 'id' => 'pWniosekDodajWniosekForm', 'name' => 'pWniosekDodajWniosekForm', 'class' => 'form-horizontal', 'type' => 'file']); ?>
            <?php
            function renderWniosekField($value) {
                if (is_string($value)) {
                    return $value;
                }
                if (is_array($value) && !empty($value)) {
                    return implode(', ', $value);
                }
                return '';
            }

            // Ensure $nowyWniosek is an array to avoid undefined index warnings
            if (!is_array($nowyWniosek)) {
                $nowyWniosek = [];
            }

            // Pre-compute safe accessors for nested values
            $bWnioskujacy = $nowyWniosek['bWnioskujacy'] ?? [];
            $cNazwaWyswietlana = $bWnioskujacy['cNazwaWyswietlana'] ?? '';
            ?>
            <div class="box-body">
                <?php if (!empty($nrEwid)) : ?>
                    <div class="form-group">
                        <label class="col-xs-12 col-md-2 control-label">Wniosek składany w imieniu:</label>
                        <div class="col-xs-12 col-md-10">
                            <?php echo $this->Form->input('imie', array('class' => 'form-control width-33', 'readonly' => 'readonly', 'div' => false, 'value' => $cNazwaWyswietlana)); ?>

                        </div>
                    </div>
                <?php endif; ?>
                <div class="form-group">
                    <label class="col-xs-12 col-md-2 control-label">Rodzaj wniosku</label>
                    <div class="col-xs-12 col-md-10">
                        <?php echo $this->Form->input('pWniosek.dat:Kod.dat2:NumerIGid', array('class' => 'form-control width-33', 'div' => false, 'id' => 'codeList', 'label' => false, 'type' => 'select', 'options' => $codes)); ?>
                    </div>
                </div>
                <div class="form-group">
                    <label class="col-xs-12 col-md-2 control-label">Data Od</label>
                    <div class="col-xs-12 col-md-2 ">
                        <?php echo $this->Form->input('pWniosek.dat:DataOd', array('class' => 'form-control datepicker-from input-125', 'div' => false, 'label' => false, 'required' => 'required', 'autocomplete' => 'off')); ?>
                    </div>
                </div>
                <div class="form-group">
                    <label class="col-xs-12 col-md-2 control-label">Data Do</label>
                    <div class="col-xs-12 col-md-2">
                        <?php echo $this->Form->input('pWniosek.dat:DataDo', array('class' => 'form-control datepicker-to input-125', 'div' => false, 'label' => false, 'required' => 'required', 'autocomplete' => 'off')); ?>
                    </div>
                </div>
                <div id="kng">
                    <div class="form-group">
                        <label class="col-xs-12 col-md-2 control-label">Godziny</label>
                        <div class="col-xs-12 col-md-2">
                            <?php echo $this->Form->input('pWniosek.dat:Godziny', array('class' => 'form-control hourpicker input-125', 'div' => false, 'label' => false, 'required' => 'false', 'autocomplete' => 'off', 'value' => '0:00')); ?>
                        </div>
                        <div>
                            (dla nieobecności godzinowych)
                        </div>
                    </div>
                    <?php if ($nowyWniosek['bCzyWprowadzanieGodzinOdDoNieobecnosci'] == 'true') : ?>
                        <div class="form-group">
                            <label class="col-xs-12 col-md-2 control-label">Godzina Od</label>
                            <div class="col-xs-12 col-md-2 ">
                                <?php echo $this->Form->input('pWniosek.dat:GodzinaOd', array('class' => 'form-control timepicker input-125', 'div' => false, 'label' => false, 'required' => 'required', 'autocomplete' => 'off', 'value' => '00:00')); ?>
                            </div>
                        </div>
                        <div class="form-group">
                            <label class="col-xs-12 col-md-2 control-label">Godzina Do</label>
                            <div class="col-xs-12 col-md-2">
                                <?php echo $this->Form->input('pWniosek.dat:GodzinaDo', array('class' => 'form-control timepicker input-125', 'div' => false, 'label' => false, 'required' => 'required', 'autocomplete' => 'off', 'value' => '00:00')); ?>
                            </div>
                        </div>
                    <?php endif; ?>
                </div>

                <?php if (isset($saldo['bInformacjeOSaldach']['bInformacjaOSaldach']) && !empty($saldo['bInformacjeOSaldach']['bInformacjaOSaldach'])) : ?>
                    <?php
                    if (isset($saldo['bInformacjeOSaldach']['bInformacjaOSaldach']['bLimitOgolemDni'])) {
                        $tmp = $saldo['bInformacjeOSaldach']['bInformacjaOSaldach'];
                        $saldo['bInformacjeOSaldach']['bInformacjaOSaldach'] = array();
                        $saldo['bInformacjeOSaldach']['bInformacjaOSaldach'][] = $tmp;
                    }

                    $maksimum = $saldo['bInformacjeOSaldach']['bInformacjaOSaldach'][0]['bLimitOgolemDni'];
                    $pozostalo = $saldo['bInformacjeOSaldach']['bInformacjaOSaldach'][0]['bPozostaloOgolemDni'];
                    $godzin = $saldo['bInformacjeOSaldach']['bInformacjaOSaldach'][0]['bPozostaloOgolemGodzin'];
                    if (0 == $maksimum) {
                        $maksimum = 100;
                    }
                    $percentage = $pozostalo * 100 / $maksimum;
                    $percentage = 100 - $percentage;
                    $deg = $percentage * 360 / 100;
                    ?>
                    <div id="CounterFreeDaysHolder" class="CounterFreeDaysHolder">
                        <?php if ($nowyWniosek['bCzyInformacjaOGodzinachNaWniosku'] == 'true') : ?>
                            <h4 class="">Do wykorzystania pozostało: <?= $pozostalo ?> DNI / <?= $godzin ?> GODZIN</h4>
                        <?php else : ?>
                            <h4 class="">Do wykorzystania pozostało: <?= $pozostalo ?> DNI</h4>
                        <?php endif; ?>
                        <canvas id="pieChart" style="height: 180px; width: 350px;" height="180" width="350"></canvas>

                        <?php if ($nowyWniosek['bCzyInformacjaOGodzinachNaWniosku'] == 'true') : ?>
                            <div class="text-red ">
                                <h4 class="text-bold">UWAGA!!!</h4>
                                <h5 class="text-bold"> W przypadku pracowników, których norma pracy nie wynosi 8 godzin
                                    dziennie</h5>
                                <h5 class="text-bold"> należy stan urlopu weryfikować w godzinach </h5>
                            </div>
                        <?php endif; ?>
                    </div>
                <?php endif; ?>

                <div class="form-group">
                    <label class="col-xs-12 col-md-2 control-label">Dodatkowy opis</label>
                    <div class="col-xs-12 col-md-10">
                        <?php echo $this->Form->input('pWniosek.dat:Opis', array('class' => 'form-control width-33', 'div' => false, 'label' => false)); ?>
                    </div>
                </div>
                <?php if (!empty($mozliwePowody)): ?>
                    <div class="form-group" id="wniosek_powod">
                        <label class="col-xs-12 col-md-2 control-label">Powód</label>
                        <div class="col-xs-12 col-md-10">
                            <?php echo $this->Form->input('pWniosek.dat:Powod', array('class' => 'form-control width-33', 'div' => false, 'id' => 'powodList', 'label' => false, 'type' => 'select', 'options' => $mozliwePowody)); ?>
                        </div>
                    </div>
                <?php endif; ?>
                <?php
                echo $this->Form->input('pWniosek.dat:Wnioskujacy.dat1:Email', array('type' => 'hidden', 'id' => 'employee-email'));
                echo $this->Form->input('pWniosek.dat:Wnioskujacy.dat1:Gid', array('type' => 'hidden', 'id' => 'employee-gid'));
                echo $this->Form->input('pWniosek.dat:Wnioskujacy.dat1:Nazwa', array('type' => 'hidden', 'id' => 'employee-name'));
                echo $this->Form->input('pWniosek.Code', array('type' => 'hidden', 'id' => 'wniosek-code'));
                ?>
                <?php if (isset($mozliwePodlegli) && $mozliwePodlegli) : ?>
                    <div class="form-group custom-error-holder">
                        <label class="col-xs-12 col-md-2 control-label">Wniosek składam za podwładnego</label>
                        <div class="col-xs-12 col-md-10" id="employee-search-holder">
                            <div class="input-group">
                                <div class="input-group-addon ac-search-trigger" id="employee-search-trigger"
                                     data-zmetody="wniosek_podlegli"><i
                                        class="fa fa-search"></i></div>
                                <input type="text" class="form-control width-no-search" id="employee-search"
                                       name="employee-search"
                                       data-loader="#employee-search-trigger" placeholder="Wyszukaj pracownika"
                                       value="<?php if (isset($nowyWniosek['dat:Wnioskujacy']['dat1:Nazwa']) && !empty($nowyWniosek['dat:Wnioskujacy']['dat1:Nazwa'])) echo $nowyWniosek['dat:Wnioskujacy']['dat1:Nazwa']; ?>"/>
                            </div>
                            <?php /*
                    <div class="loader-holder" id="substitute-search-loader">
                        <div class="loader"></div>
                    </div>
                    */ ?>
                        </div>
                    </div>
                <?php endif; ?>
                <?php
                echo $this->Form->input('pWniosek.dat:Zastepca.dat1:Email', array('type' => 'hidden', 'id' => 'substitute-email'));
                echo $this->Form->input('pWniosek.dat:Zastepca.dat1:Gid', array('type' => 'hidden', 'id' => 'substitute-gid'));
                echo $this->Form->input('pWniosek.dat:Zastepca.dat1:Nazwa', array('type' => 'hidden', 'id' => 'substitute-name'));
                ?>
                <?php if (isset($nowyWniosek['bCzyBezZastepcy']) && $nowyWniosek['bCzyBezZastepcy'] === "false") : ?>
                    <div class="form-group custom-error-holder" id="wniosekZastepca">
                        <label class="col-xs-12 col-md-2 control-label">Zastępca</label>
                        <div class="col-xs-12 col-md-10" id="substitute-search-holder">
                            <div class="input-group">
                                <div class="input-group-addon ac-search-trigger" id="substitute-search-trigger"
                                     data-zmetody="wniosek"><i
                                        class="fa fa-search"></i></div>
                                <input type="text" class="form-control width-no-search" id="substitute-search"
                                       name="substitute-search"
                                       data-loader="#substitute-search-loader" placeholder="Wyszukaj zastępcę"
                                       value="<?php if (isset($nowyWniosek['dat:Zastepca']['dat1:Nazwa']) && !empty($nowyWniosek['dat:Zastepca']['dat1:Nazwa'])) echo $nowyWniosek['dat:Zastepca']['dat1:Nazwa']; ?>"/>
                            </div>
                            <?php /*
                    <div class="loader-holder" id="substitute-search-loader">
                        <div class="loader"></div>
                    </div>
                    */ ?>
                        </div>
                    </div>
                <?php endif; ?>
                <div class="form-group">
                    <label class="col-xs-12 col-md-2 control-label">Załącznik</label>
                    <div class="col-xs-12 col-md-10" data-file-multiple style="display: none;">
                        <label class="btn btn-primary" for="file-selector">
                            <input name="data[file][]" id="file-selector"
                                   onchange="fileInputMultiple(this, '#remove-attachments');" type="file"
                                   style="display:none;">
                            <span>Wybierz plik</span>
                        </label>
                        <a href="#" class="btn btn-danger" id="remove-attachments"
                           onclick="clearFileInputSingle('#file-selector', this)">
                            <i class="fa fa-trash"></i>
                        </a>
                    </div>
                </div>
                <div class="box-body" id="pola_dodatkowe">
                    <?php
                    // Grupowanie pól według kodu
                    $fieldsByCode = [];
                    foreach ($extensionCode as $field) {
                        $fieldsByCode[$field['code']][] = $field;
                    }

                    foreach ($fieldsByCode as $code => $fields):
                        ?>
                        <div class="form-group" data-text="<?php echo htmlspecialchars($code); ?>" style="display: none;">
                            <?php foreach ($fields as $field): ?>
                            <?php
                                $inputName = "pWniosek.dat:{$field['inputName']}_{$field['codeKey']}";
                                $fieldOptions = [
                                    'class' => 'form-control width-33',
                                    'div' => false,
                                    'label' => false
                                ];

                                // Ustawienie dodatkowych opcji na podstawie typu
                                switch ($field['typ']) {
                                    case 'text':
                                        // Text input - nic dodatkowego
                                        break;

                                    case 'select':
                                        $fieldOptions['type'] = 'select';
                                        $fieldOptions['options'] = $field['opcje'] ?? [];
                                        break;

                                    case 'date':
                                        $fieldOptions['class'] = 'form-control datepicker-from input-125';
                                        break;

                                    case 'checkbox':
                                        // Checkbox ma inną strukturę
                                        ?>
                                        <div class="form-group">
                                            <div class="col-xs-12 col-md-2 control-label" style="padding-top: 0 !important;">
                                                <?php echo $this->Form->checkbox($inputName, ['id' => $inputName]); ?>
                                            </div>
                                            <label class="col-xs-12 col-md-10"><?php echo $field['label']; ?></label>
                                        </div>
                                        <?php
                                        continue 2; // Przejdź do następnego pola

                                    case 'textField':
                                        // Checkbox ma inną strukturę
                                        ?>
                                        <div class="form-group">
                                            <label class="col-xs-offset-1 col-xs-10"><?php echo $field['label']; ?></label>
                                        </div>
                                        <?php
                                        continue 2; // Przejdź do następnego pola
                                }

                                // Dodanie atrybutów readonly i required
                                if ($field['readonly'] === 'true') {
                                    $fieldOptions['readonly'] = 'readonly';
                                }
                                if ($field['czyWymagany'] === 'true') {
                                    $fieldOptions['required'] = 'required';
                                }
                                ?>
                                <div class="form-group">
                                    <label class="col-xs-12 col-md-2 control-label"><?php echo $field['label']; ?></label>
                                    <div class="col-xs-12 col-md-10">
                                        <?php echo $this->Form->input($inputName, $fieldOptions); ?>
                                    </div>
                                </div>
                            <?php endforeach; ?>
                        </div>
                    <?php endforeach; ?>
                </div>
                <div class="box-body" id="wniosek_zdalna">
                    <div class="col-xs-12 col-md-10 col-md-offset-2">
                        <div class="form-group">
                            <h5><b>Praca zdalna</b></h5>
                            <h5 id="wniosek_zdalana_saldo" <?php if (($nowyWniosek['bCzyZdalnaSaldo'] ?? '') != 'true') { ?> style="display: none" <?php } ?>>
                                Pozostało: <?php echo (!empty($nowyWniosek['bZdalnaSaldo'])) ? $nowyWniosek['bZdalnaSaldo'] : '0'; ?>
                                dni
                            </h5>
                            <hr>
                            <div class="col-xs-12 col-md-12" style="padding-left: 0;">
                                <?php echo (!empty($nowyWniosek['bZdalnaTekst'])) ? $nowyWniosek['bZdalnaTekst'] : ''; ?>
                            </div>
                        </div>
                        <div
                            class="form-group" <?php if (($nowyWniosek['bZdalnaCzyAdres'] ?? '') != 'true') { ?> style="display: none" <?php } ?>>
                            <label class="col-xs-12 col-md-12 control-label" style="text-align: left; padding-left: 0;">Praca
                                świadczona
                                pod adresem</label>
                            <div class="col-xs-12 col-md-12" style="padding-left: 0;">
                                <?php echo $this->Form->input('pWniosek.dat:ZdalnaAdres', array('class' => 'form-control width-50', 'div' => false, 'label' => false, 'value' => $nowyWniosek['bZdalnaAdres'] ?? '')); ?>
                            </div>
                        </div>

                        <div class="form-group">
                            <?php
                            $rodzajZdalnej = '0';
                            $bZdalnaMozliweRodzajeCint = $nowyWniosek['bZdalnaMozliweRodzaje']['cint'] ?? null;
                            if (!is_array($bZdalnaMozliweRodzajeCint)) {
                                $bZdalnaMozliweRodzaje = [
                                    (string)$bZdalnaMozliweRodzajeCint,
                                ];
                                $rodzajZdalnej = (string)$bZdalnaMozliweRodzajeCint;
                            } else {
                                $bZdalnaMozliweRodzaje = $bZdalnaMozliweRodzajeCint;
                            }
                            echo $this->Form->input('pWniosek.dat:bZdalnaRodzaj', array('type' => 'hidden', 'id' => 'bZdalnaRodzaj', 'value' => $rodzajZdalnej));
                            ?>
                            <fieldset>
                                <div <?php if (!in_array('0', $bZdalnaMozliweRodzaje)) { ?> style="display: none" <?php } ?>>
                                    <input type="radio" id="wszystkieDni" name="ZdalnaMozliweRodzaje"
                                           value="wszystkieDni" <?php if ($rodzajZdalnej == '0') { ?> checked <?php } ?>>
                                    <label for="wszystkieDni">Wszystkie dni tygodnia</label>
                                </div>

                                <div <?php if (!in_array('1', $bZdalnaMozliweRodzaje)) { ?> style="display: none" <?php } ?>>
                                    <input type="radio" id="wybraneDniTygodnia" name="ZdalnaMozliweRodzaje"
                                           value="wybraneDniTygodnia" <?php if ($rodzajZdalnej == '1') { ?> checked <?php } ?>>
                                    <label for="wybraneDniTygodnia">Wybrane dni tygodnia</label>
                                </div>

                                <div <?php if (!in_array('2', $bZdalnaMozliweRodzaje)) { ?> style="display: none" <?php } ?>>
                                    <input type="radio" id="wybraneDni" name="ZdalnaMozliweRodzaje"
                                           value="wybraneDni" <?php if ($rodzajZdalnej == '2') { ?> checked <?php } ?>>
                                    <label for="wybraneDni">Wybrane dni</label>
                                </div>
                            </fieldset>
                            <div class="form-group"
                                 id="weekDay" <?php if ($rodzajZdalnej != '1') { ?>  style="display: none" <?php } ?>>
                                <div class="row">
                                    <div class="col-xs-1 col-md-1 text-right">
                                        <?php echo $this->Form->checkbox('pWniosek.dat:bZdalnaPo', array('id' => 'bZdalnaPo')); ?>
                                    </div>
                                    <div class="col-xs-11 col-md-11">Poniedziałek</div>
                                </div>
                                <div class="row">
                                    <div class="col-xs-1 col-md-1 text-right">
                                        <?php echo $this->Form->checkbox('pWniosek.dat:bZdalnaWt', array('id' => 'bZdalnaWt')); ?>
                                    </div>
                                    <div class="col-xs-11 col-md-11">Wtorek</div>
                                </div>
                                <div class="row">
                                    <div class="col-xs-1 col-md-1 text-right">
                                        <?php echo $this->Form->checkbox('pWniosek.dat:bZdalnaSr', array('id' => 'bZdalnaSr')); ?>
                                    </div>
                                    <div class="col-xs-11 col-md-11">Środa</div>
                                </div>
                                <div class="row">
                                    <div class="col-xs-1 col-md-1 text-right">
                                        <?php echo $this->Form->checkbox('pWniosek.dat:bZdalnaCz', array('id' => 'bZdalnaCz')); ?>
                                    </div>
                                    <div class="col-xs-11 col-md-11">Czwartek</div>
                                </div>
                                <div class="row">
                                    <div class="col-xs-1 col-md-1 text-right">
                                        <?php echo $this->Form->checkbox('pWniosek.dat:bZdalnaPt', array('id' => 'bZdalnaPt')); ?>
                                    </div>
                                    <div class="col-xs-11 col-md-11">Piątek</div>
                                </div>
                                <div class="row">
                                    <div class="col-xs-1 col-md-1 text-right">
                                        <?php echo $this->Form->checkbox('pWniosek.dat:bZdalnaSo', array('id' => 'bZdalnaSo')); ?>
                                    </div>
                                    <div class="col-xs-11 col-md-11">Sobota</div>
                                </div>
                                <div class="row">
                                    <div class="col-xs-1 col-md-1 text-right">
                                        <?php echo $this->Form->checkbox('pWniosek.dat:bZdalnaNi', array('id' => 'bZdalnaNi')); ?>
                                    </div>
                                    <div class="col-xs-11 col-md-11">Niedziela</div>
                                </div>

                            </div>
                            <div class="form-group"
                                 id="calendarDay" <?php if ($rodzajZdalnej != '2') { ?>  style="display: none" <?php } ?>>
                                <div class="row">
                                    <div class="col-xs-11 col-xs-offset-1 col-md-11 col-md-offset-1">
                                        <?php echo $this->Form->input('pWniosek.dat:bZdalnaDni', array('type' => 'hidden', 'id' => 'bZdalnaDni')); ?>
                                        <div id="datepicker"></div>
                                    </div>
                                </div>
                            </div>
                        </div>
                        <div class="form-group">
                            <div class="col-xs-12 col-md-12" style="padding-left: 0;">
                                <?php echo (!empty($nowyWniosek['bZdalnaOswiadczenieBanerTekst'])) ? $nowyWniosek['bZdalnaOswiadczenieBanerTekst'] : ''; ?>
                            </div>
                        </div>
                        <div class="form-group"
                             <?php if (empty($nowyWniosek['bZdalnaOswiadczenie0Tekst'] ?? null)) { ?>style="display: none" <?php } ?>>
                            <div class="col-xs-1 col-md-1 text-right">
                                <?php echo $this->Form->checkbox('pWniosek.dat:bZdalnaOswiadczenie0', array('id' => 'bZdalnaOswiadczenie0')); ?>
                            </div>
                            <div class="col-xs-11 col-md-11">
                                <?php echo renderWniosekField($nowyWniosek['bZdalnaOswiadczenie0Tekst'] ?? ''); ?>
                            </div>
                        </div>
                        <div class="form-group"
                             <?php if (empty($nowyWniosek['bZdalnaOswiadczenie1Tekst'] ?? null)) { ?>style="display: none" <?php } ?>>
                            <div class="col-xs-1 col-md-1 text-right">
                                <?php echo $this->Form->checkbox('pWniosek.dat:bZdalnaOswiadczenie1', array('id' => 'bZdalnaOswiadczenie1')); ?>
                            </div>
                            <div class="col-xs-11 col-md-11">
                                <?php echo renderWniosekField($nowyWniosek['bZdalnaOswiadczenie1Tekst'] ?? ''); ?>
                            </div>
                        </div>
                        <div class="form-group"
                             <?php if (empty($nowyWniosek['bZdalnaOswiadczenie2Tekst'] ?? null)) { ?>style="display: none" <?php } ?>>
                            <div class="col-xs-1 col-md-1 text-right">
                                <?php echo $this->Form->checkbox('pWniosek.dat:bZdalnaOswiadczenie2', array('id' => 'bZdalnaOswiadczenie2')); ?>
                            </div>
                            <div class="col-xs-11 col-md-11">
                                <?php echo renderWniosekField($nowyWniosek['bZdalnaOswiadczenie2Tekst'] ?? ''); ?>
                            </div>
                        </div>
                        <div class="form-group"
                             <?php if (empty($nowyWniosek['bZdalnaOswiadczenie3Tekst'] ?? null)) { ?>style="display: none" <?php } ?>>
                            <div class="col-xs-1 col-md-1 text-right">
                                <?php echo $this->Form->checkbox('pWniosek.dat:bZdalnaOswiadczenie3', array('id' => 'bZdalnaOswiadczenie3')); ?>
                            </div>
                            <div class="col-xs-11 col-md-11">
                                <?php echo renderWniosekField($nowyWniosek['bZdalnaOswiadczenie3Tekst'] ?? ''); ?>
                            </div>
                        </div>
                        <div class="form-group"
                             <?php if (empty($nowyWniosek['bZdalnaOswiadczenie4Tekst'] ?? null)) { ?>style="display: none" <?php } ?>>
                            <div class="col-xs-1 col-md-1 text-right">
                                <?php echo $this->Form->checkbox('pWniosek.dat:bZdalnaOswiadczenie4', array('id' => 'bZdalnaOswiadczenie4')); ?>
                            </div>
                            <div class="col-xs-11 col-md-11">
                                <?php echo renderWniosekField($nowyWniosek['bZdalnaOswiadczenie4Tekst'] ?? ''); ?>
                            </div>
                        </div>
                        <div class="form-group"
                             <?php if (empty($nowyWniosek['bZdalnaOswiadczenie5Tekst'] ?? null)) { ?>style="display: none" <?php } ?>>
                            <div class="col-xs-1 col-md-1 text-right">
                                <?php echo $this->Form->checkbox('pWniosek.dat:bZdalnaOswiadczenie5', array('id' => 'bZdalnaOswiadczenie5')); ?>
                            </div>
                            <div class="col-xs-11 col-md-11">
                                <?php echo renderWniosekField($nowyWniosek['bZdalnaOswiadczenie5Tekst'] ?? ''); ?>
                            </div>
                        </div>
                    </div>
                </div>

                <div class="form-group">
                    <label class="col-xs-12 col-md-2 control-label">&nbsp;</label>
                    <div class="col-xs-12 col-md-10">
                        <div id="SprawdzWniosekResponse" style="position: relative; top: -20px;">

                        </div>
                        <a data-menu-action="<?php echo (isset($start_location) && !empty($start_location)) ? 'index' : 'wnioski'; ?>"
                           style="margin-right: 10px;" class="btn btn-default btn-flat pull-left"
                           href="<?php echo (isset($start_location) && !empty($start_location)) ? Router::url('/') : Router::url('/wnioski'); ?>">Anuluj</a>
                        <a class="btn btn-primary btn-flat pull-left" id="SprawdzWniosek">Sprawdź wniosek</a>
                        <?php echo $this->Form->submit('Wyślij', array('class' => 'btn btn-success btn-flat pull-left hidden', 'disabled' => 'disabled')); ?>
                        <?php if ($uprawnienia['ModulRejestruCzasuPracyWspolpracownikow']['bCzyUruchamianie'] == 'true') : ?>
                            <a id="PokazWspolpracownikowBtn" class="btn btn-flat btn-primary pull-right"><i
                                    class="fa fa-users"></i> Czas pracy współpracowników</a>
                        <?php endif; ?>
                    </div>
                    <div class="clearfix"></div>
                </div>
                <?php
                $InformacjaOSaldach = $saldo['bInformacjeOSaldach']['bInformacjaOSaldach'] ?? [];
                $freeDaysCurrent = (int)($InformacjaOSaldach['bUrlopWykorzystanieDni'] ?? 0);
                $freeHoursCurrent = (int)($InformacjaOSaldach['bUrlopWykorzystanieGodzin'] ?? 0);
                $freeDaysMax = (int)($InformacjaOSaldach['bUrlopWypoczynkowySaldoDni'] ?? 0);
                $freeHoursMax = (int)($InformacjaOSaldach['bUrlopWypoczynkowySaldoGodzin'] ?? 0);
                $previousFreeDays = (int)($InformacjaOSaldach['bUrlopZalegly1goStyczniaDni'] ?? 0);
                $previousFreeHours = (int)($InformacjaOSaldach['bUrlopZalegly1goStyczniaGodzin'] ?? 0);
                if (0 !== $freeHoursMax) {
                    $freeHoursPercent = ($freeHoursCurrent / $freeHoursMax) * 100;
                }
                ?>

                <?php
                /**
                 * <div class="progress">
                 * <div class="progress-bar progress-bar-danger" role="progressbar"
                 * style="width: <?php echo $freeHoursPercent; ?>%">
                 * Wykorzystano
                 * </div>
                 * <div class="progress-bar progress-bar-success"
                 * style="width: <?php echo 100 - $freeHoursPercent; ?>%">
                 * Wymiar
                 * </div>
                 * </div>
                 * <div class="row">
                 * <div class="col-xs-12 col-md-9">
                 * <div class="progress-legend progress-legend-danger">
                 * <span>Wykorzystano <?php echo $freeDaysCurrent . ' dni (' . $freeHoursCurrent . ' godzin)'; ?></span>
                 * </div>
                 * <div class="progress-legend progress-legend-success">
                 * <span>Wymiar urlopu: <?php echo $freeDaysMax . ' dni (' . $freeHoursMax . ' godzin)'; ?>, w tym zaległy na 1-go stycznia: <?php echo $previousFreeDays . ' dni (' . $previousFreeDays . ' godzin)'; ?></span>
                 * </div>
                 * </div>
                 * <div class="col-xs-12 col-md-3 text-right">
                 * <a id="PokazWspolpracownikowBtn" class="btn btn-flat btn-primary"><i class="fa fa-users"></i> Pokaż współpracowników</a>
                 * </div>
                 * </div>
                 */
                ?>
            </div>
        </div>
    </div>
</div>

<div id="saldoWniosku">
    <?php echo $this->element('saldo', array('saldo' => $saldo, 'showBack' => false, 'showHeader' => true)); ?>
</div>

<div class="row">
    <div class="col-xs-12">
        <div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
            <div class="panel panel-default">
                <div class="panel-heading" role="tab" id="headingOne">
                    <h4 class="panel-title">
                        <a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseOne"
                           aria-expanded="true" aria-controls="collapseOne">
                            Informacje o przetwarzaniu <i class="fa fa-chevron-down"></i>
                        </a>
                    </h4>
                </div>
                <div id="collapseOne" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingOne">
                    <div class="panel-body">
                        <div class="wniosek-people-container">
                            <div class="form-horizontal">
                                <div class="form-group">
                                    <label class="col-xs-12 col-md-2 control-label">Muszą zaakceptować</label>
                                    <div class="col-xs-12 col-md-10 ">
                                        <input
                                            value="<?php echo !empty($nowyWniosek['bAkceptujacyOpis']) ? $nowyWniosek['bAkceptujacyOpis'] : ''; ?>"
                                            disabled="disabled" type="text" class="form-control"/>
                                    </div>
                                </div>
                                <div class="form-group">
                                    <label class="col-xs-12 col-md-2 control-label">Zaakceptowali</label>
                                    <div class="col-xs-12 col-md-10 ">
                                        <input
                                            value="<?php echo !empty($nowyWniosek['bAkceptacjeOpis']) ? $nowyWniosek['bAkceptacjeOpis'] : ''; ?>"
                                            disabled="disabled" type="text" class="form-control"/>
                                    </div>
                                </div>
                                <div class="form-group">
                                    <label class="col-xs-12 col-md-2 control-label">Odrzucili</label>
                                    <div class="col-xs-12 col-md-10 ">
                                        <input
                                            value="<?php echo !empty($nowyWniosek['bOdrzuceniaOpis']) ? $nowyWniosek['bOdrzuceniaOpis'] : ''; ?>"
                                            disabled="disabled" type="text" class="form-control"/>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<div class="modal fade" id="receivers-list-modal" data-single="1">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                <h4 class="modal-title">Wybierz zastępcę</h4>
            </div>
            <div class="modal-body" id="receivers-list-body">
                <div class="row">
                    <div class="loader-holder" id="receivers-list-loader">
                        <div class="loader"></div>
                    </div>
                </div>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">Anuluj</button>
                <button type="button" class="btn btn-success" id="receivers-list-submit" data-module="appliactions"
                        data-from="">Wybierz
                </button>
            </div>
        </div><!-- /.modal-content -->
    </div><!-- /.modal-dialog -->
</div><!-- /.modal -->


<?php echo $this->Html->script('appliactions'); ?>

<script>
    jQuery.validator.addMethod("datefrom", function (value, element) {
        if ($('[name="data[pWniosek][dat:DataDo]"]').val() == undefined || $('[name="data[pWniosek][dat:DataDo]"]').val().length == 0) {
            return true;
        } else {
            return ($('[name="data[pWniosek][dat:DataOd]"]').val() > $('[name="data[pWniosek][dat:DataDo]"]').val()) ? false : true;
        }
    }, "'Data od' nie może być większa od 'Data do'");

    jQuery.validator.addMethod("selectpeople", function (value, element) {
        var s_text = $('#substitute-search').val();
        var s_email = $('#substitute-email').val();
        var s_gid = $('#substitute-gid').val();
        var s_name = $('#substitute-name').val();
        if (s_text.length > 0) {
            if (s_email.length > 0 && s_gid.length > 0 && s_name.length > 0) {
                return true;
            } else {
                return false;
            }
        } else {
            return true;
        }
    }, "Proszę wybrać poprawną wartość w polu 'Zastępca'");

    $(document).ready(function () {
        <?php
        $codeList = [];
        foreach ($extensionCode as $item) {
            $codeList[] = $item['code'];
        }
        ?>

        wniosek_dodatkowe($.inArray($('#codeList option:selected').val(), <?php echo json_encode($codeList); ?>) !== -1);
        wniosek_zdalna($.inArray($('#codeList option:selected').val(), <?php echo json_encode($pracaZdalna); ?>) !== -1, $.inArray($('#codeList option:selected').val(), <?php echo json_encode($czyZastepca); ?>) !== -1);
        wniosek_zdalna_saldo($.inArray($('#codeList option:selected').val(), <?php echo json_encode($pracaZdalnaSaldo); ?>) !== -1);

        <?php if($rodzajZdalnej == '2') { ?> createCalendar(); <?php }?>

        $('#wszystkieDni').click(function () {
            $('#bZdalnaRodzaj').val(0);
            $('#weekDay').hide();
            $('#calendarDay').hide();
        })

        $('#wybraneDniTygodnia').click(function () {
            $('#bZdalnaRodzaj').val(1);
            $('#weekDay').show();
            $('#calendarDay').hide();
        })

        $('#wybraneDni').click(function () {
            $('#bZdalnaRodzaj').val(2);
            $('#weekDay').hide();
            createCalendar();
            $('#calendarDay').show();
        })

        $("#pWniosekDodajWniosekForm").validate({
            rules: {
                'data[pWniosek][dat:DataOd]': {
                    datefrom: true
                },
                'substitute-search': {
                    selectpeople: true
                }
            },
            submitHandler: function (form) {
                $('#table-loading2[data-main-loader]').css('visibility', 'visible');
                $('#table-loading2[data-main-loader]').css('opacity', '1');
                $('#table-loading2[data-main-loader]').css('display', 'block');

                var counter = 0;
                $('[data-file-multiple] input[type="file"]').each(function () {
                    if ($(this).val().length == 0 || $(this).val().length == null || $(this).val().length == undefined) {
                        $(this).parents('[data-file-multiple]').remove();
                    }
                });

                var formData = $(form).serializeArray();
                var formAction = $(form).attr('action');

                $('#pWniosekDodajWniosekForm').ajaxSubmit({
                    success: function (response) {
                        response = JSON.parse(response);

                        $('#table-loading2[data-main-loader]').css('visibility', 'hidden');
                        $('#table-loading2[data-main-loader]').css('opacity', '0');
                        $('#table-loading2[data-main-loader]').css('display', 'none');

                        if (response['error'] != undefined) {
                            showError(response['error']);
                        } else {
                            hideMessages();
                            showSuccess(response['message']);
                            loadAjaxView('/wnioski');
                        }
                    },
                    complete: function (xhr) {
                        console.log(xhr);
                    }
                });
            }
        });
    });
</script>

<script>
    $(document).ready(function () {
        datepickerFromToInit();
        initEditor();
        initMultipleFiles();
        timepickerValid();
        $('[name="data[pWniosek][dat:DataOd]"]').focusout(function () {
            $.ajax({
                url: local_url + 'ajax/api/daj_nieobecnych_wspolpracownikow/' + $(this).val()
            }).done(function (response) {
                console.log(response);
            });
        });
    });
</script>

<?php echo $this->element('pokaz_wspolpracownikow'); ?>

<script>
    if (typeof ($('#pieChart').get(0)) !== "undefined") {
        var pieChartCanvas = $('#pieChart').get(0).getContext('2d');
        var pieChart = new Chart(pieChartCanvas);
        var PieData = [
            {
                value: <?php echo round((($maksimum ?? 0) - ($pozostalo ?? 0)), 0) ?>,
                color: '#f56954',
                highlight: '#f56954',
                label: 'Wykorzystane'
            },
            {
                value: <?php echo (int)($pozostalo ?? 0) ?>,
                color: '#00c0ef',
                highlight: '#00c0ef',
                label: 'Pozostało'
            },
        ];
        var pieOptions = {};
        pieChart.Doughnut(PieData, pieOptions);
    }
</script>

<script>
    $(function () {
        $('#datepicker').on('blur', function () {
            $('#bZdalnaDni').val($('#datepicker').multiDatesPicker('value'));
        });

        $('[name="pWniosek[dat:DataOd]"], [name="pWniosek[dat:DataDo]"]').on('blur', function () {
            checkFormAgain();
            createCalendar();
        });

        $('[name="pWniosek[dat:Kod][dat2:NumerIGid]"], [name="pWniosek[dat:Wnioskujacy][dat1:Gid]"]').change(function () {
            $('#SprawdzWniosekResponse').html('');
            checkFormAgain();
        });

        $('[name="ZdalnaMozliweRodzaje"], [name="pWniosek[dat:ZdalnaAdres]"]').on('change', function () {
            checkFormAgain();
        });

        $('#bZdalnaPo, #bZdalnaWt, #bZdalnaSr, #bZdalnaCz, #bZdalnaPt, #bZdalnaSo, #bZdalnaNi').on('change', function () {
            checkFormAgain();
        });

        $('#bZdalnaOswiadczenie0, #bZdalnaOswiadczenie1, #bZdalnaOswiadczenie2, #bZdalnaOswiadczenie3, #bZdalnaOswiadczenie4, #bZdalnaOswiadczenie5').on('change', function () {
            checkFormAgain();
        });

        var knG = <?php echo json_encode($knG) ?>;
        var valCodeList = $('#codeList option:selected').val();
        var parent = $("#kng");
        hasKnG(knG, valCodeList, parent);
        $('#codeList').change(function () {
            hasKnG(knG, this.value, parent);
            wniosek_dodatkowe($.inArray(this.value, <?php echo json_encode($codeList); ?>) !== -1);
            wniosek_zdalna($.inArray(this.value, <?php echo json_encode($pracaZdalna); ?>) !== -1, $.inArray(this.value, <?php echo json_encode($czyZastepca); ?>) !== -1);
            wniosek_zdalna_saldo($.inArray(this.value, <?php echo json_encode($pracaZdalnaSaldo); ?>) !== -1);
        });

        $('#SprawdzWniosek').click(function () {
            $('#bZdalnaDni').val($('#datepicker').multiDatesPicker('value'));

            if ($('#pWniosekDodajWniosekForm').valid()) {
                $('#SprawdzWniosekResponse').html('<b>Proszę czekać...</b>');
                $('#table-loading2[data-main-loader]').css('visibility', 'visible');
                $('#table-loading2[data-main-loader]').css('opacity', '1');
                $('#table-loading2[data-main-loader]').css('display', 'block');
                var full_url_check = local_url + 'ajax/api/sprawdz_wniosek';
                if (undefined !== $('#nr_ew_id_pod').val()) {
                    full_url_check = local_url + 'ajax/api/sprawdz_wniosek/' + $('#nr_ew_id_pod').val();
                }
                $.ajax({
                    method: 'POST',
                    data: $('#pWniosekDodajWniosekForm').serializeArray(),
                    url: full_url_check
                }).done(function (response) {
                    var response = JSON.parse(response);
                    $('#table-loading2[data-main-loader]').css('visibility', 'hidden');
                    $('#table-loading2[data-main-loader]').css('opacity', '0');
                    $('#table-loading2[data-main-loader]').css('display', 'none');
                    if ((response['login'] != undefined && response['login'] == true)) {
                        window.location = local_url + 'login';
                    } else {
                        var r = response['bKomunikaty']['bKomunikat'];
                        if (r['bGid'] !== undefined) {
                            var content = '<div style="margin-bottom: 10px;">';
                            content += '<div class="pull-left"><svg style="margin-right: 10px; position: relative; top: 3px;" width="16px" height="16px"><g transform="scale(0.5)"><path fill="' + r['bKolorWypelnieniaObrazkaHTML'] + '" d="' + r['bObrazekSVG'] + '" /></g></svg></div>';
                            content += '<div class="pull-left"><b>' + r['bTytul'] + '</b><br />' + r['bOpis'] + '</div>';
                            content += '<div class="clearfix"></div>';
                            content += '</div>';
                            $('#SprawdzWniosekResponse').html(content);
                            if (r['bStatus'] > 0) {
                                $('#SprawdzWniosek').addClass('hidden');
                                $('form input[type="submit"][disabled="disabled"]').removeAttr('disabled').removeClass('hidden');
                            }
                        } else {
                            var content = '';
                            for (var rr in r) {
                                var _r = r[rr];
                                content += '<div style="margin-bottom: 10px;">';
                                content += '<div class="pull-left"><svg style="margin-right: 10px; position: relative; top: 3px;" width="16px" height="16px"><g transform="scale(0.5)"><path fill="' + _r['bKolorWypelnieniaObrazkaHTML'] + '" d="' + _r['bObrazekSVG'] + '" /></g></svg></div>';
                                content += '<div class="pull-left"><b>' + _r['bTytul'] + '</b><br />' + _r['bOpis'] + '</div>';
                                content += '<div class="clearfix"></div>';
                                content += '</div>';
                            }
                            $('#SprawdzWniosekResponse').html(content);
                            if (r[0]['bStatus'] > 0) {
                                $('#SprawdzWniosek').addClass('hidden');
                                $('form input[type="submit"][disabled="disabled"]').removeAttr('disabled').removeClass('hidden');
                            }
                        }
                    }
                });
            }
        });
    })
</script>

<script>
    $(function () {
        const elemsData = document.querySelectorAll('[data-menu-action]');
        elemsData.forEach(elem => elem.onclick = testFun);
    });

    function testFun(e) {
        e.preventDefault();

        $(this).parents('.sidebar').find('li.active:not(.treeview)').removeClass('active');
        $(this).parents('li').addClass('active');

        var url = $(this).data('menu-action');
        localStorage.setItem('menu_action', url);

        loadAjaxView(url);
    }
</script>

<?php echo $this->element('alert_close'); ?>

<script>
    /**
     * ===== SCENARIUSZE POLA GODZINY/GodzinaOd/GodzinaDo =====
     *
     * Formaty:
     * - Godziny: H:MM (max 24:00)
     * - Godzina Od/Do: HH:MM (max 23:59)
     *
     * Zawijanie przez 24h: 27:00 -> 03:00, 30:00 -> 06:00, etc.
     *
     * Scenariusze:
     * 1. blur Godziny -> limit Godziny <= 24:00 -> oblicz Godzina Do = Godzina Od + Godziny
     * 2. [taki sam jak 1] - wypełniam Godziny -> oblicz Godzina Do
     * 3. input Godzina Od -> limit Godzina Od <= 23:59
     * 4. change Godzina Od -> oblicz Godzina Do = Godzina Od + Godziny
     * 5. input Godzina Do -> limit Godzina Do <= 23:59
     * 6. change Godzina Do -> oblicz Godziny = Godzina Do - Godzina Od
     *
     * UWAGA: limitGodziny() NIE jest wywoływany na event "input" dla pola Godziny
     *        ponieważ przeszkadzało to w prawidłowym wpisywaniu wartości (np. "8:30").
     *        Limit jest stosowany dopiero na event "blur" (gdy użytkownik opuści pole).
     */

    // Parsuj czas do minut (akceptuje H:MM lub HH:MM)
    function parseTimeToMinutes(str) {
        if (!str || str === '0:00') return 0;
        var parts = String(str).trim().split(':');
        var h = parseInt(parts[0], 10) || 0;
        var m = parts.length > 1 ? parseInt(parts[1], 10) || 0 : 0;
        return h * 60 + m;
    }

    // Konwertuj minuty do formatu H:MM
    function minutesToHours(mins) {
        if (mins < 0) mins = 0;
        var h = Math.floor(mins / 60);
        var m = mins % 60;
        return String(h) + ':' + String(m).padStart(2, '0');
    }

    // Konwertuj minuty do formatu HH:MM
    function minutesToHHMM(mins) {
        if (mins < 0) mins = 0;
        var h = Math.floor(mins / 60);
        var m = mins % 60;
        return String(h).padStart(2, '0') + ':' + String(m).padStart(2, '0');
    }

    // Limituj wartość do max (HH:MM lub H:MM)
    function limitToMax(value, maxHHMM) {
        var maxMins = parseTimeToMinutes(maxHHMM);
        var valueMins = parseTimeToMinutes(value);
        if (valueMins > maxMins) {
            return maxHHMM;
        }
        return value;
    }

    // Oblicz Godzina Do = Godzina Od + Godziny (z zawijaniem przez 24h)
    function calculateGodzinaDo() {
        if (!isSingleDayPeriod()) {
            return; // Nie stosuj limitu dla okresów dłuższych niż 1 dzień
        }
        var $godziny = $('[name="pWniosek[dat:Godziny]"]');
        var $od = $('[name="pWniosek[dat:GodzinaOd]"]');
        var $do = $('[name="pWniosek[dat:GodzinaDo]"]');

        var godzinyVal = $godziny.val() || '0:00';
        var odVal = $od.val() || '00:00';

        var mGodziny = parseTimeToMinutes(godzinyVal);
        var mOd = parseTimeToMinutes(odVal);

        // Scenariusz 5: Godzina Od pusta/00:00 + Godziny -> Godzina Do = Godziny
        if (mGodziny > 0 && mOd === 0) {
            // Jeśli > 24h, odejmij 24h (np. 27:00 -> 03:00)
            var wrappedMins = mGodziny % (24 * 60);
            $do.val(minutesToHHMM(wrappedMins));
        }
        // Scenariusz 1-4: Godzina Od + Godziny -> Godzina Do
        else if (mGodziny > 0 && mOd > 0) {
            var mDo = mOd + mGodziny;
            // Jeśli > 24h, odejmij 24h (np. 27:00 -> 03:00)
            var wrappedMDo = mDo % (24 * 60);
            $do.val(minutesToHHMM(wrappedMDo));
        }
    }

    // Oblicz Godziny = Godzina Do - Godzina Od
    function calculateGodziny() {
        if (!isSingleDayPeriod()) {
            return; // Nie stosuj limitu dla okresów dłuższych niż 1 dzień
        }
        var $godziny = $('[name="pWniosek[dat:Godziny]"]');
        var $od = $('[name="pWniosek[dat:GodzinaOd]"]');
        var $do = $('[name="pWniosek[dat:GodzinaDo]"]');

        var odVal = $od.val() || '00:00';
        var doVal = $do.val() || '00:00';

        var mOd = parseTimeToMinutes(odVal);
        var mDo = parseTimeToMinutes(doVal);

        // Scenariusz 6: Godzina Od = 00:00 + Godzina Do (dowolna wartość) -> Godziny = Godzina Do
        if (mOd === 0) {
            // Jeśli Godzina Do = 00:00, wyzeruj Godziny
            if (mDo === 0) {
                $godziny.val('0:00');
            } else {
                $godziny.val(minutesToHours(mDo));
            }
        }
        // Scenariusz 7: Godzina Do < Godzina Od -> Godziny = 24 - (Godzina Od - Godzina Do)
        else if (mDo >= 0 && mOd > 0 && mDo < mOd) {
            var mGodziny = (24 * 60) - (mOd - mDo);
            $godziny.val(minutesToHours(mGodziny));
        }
        // Scenariusz 4: Godzina Do >= Godzina Od -> Godziny = Godzina Do - Godzina Od
        else if (mDo > 0 && mOd > 0 && mDo >= mOd) {
            var mGodziny = mDo - mOd;
            $godziny.val(minutesToHours(mGodziny));
        }
        // Obsługa przypadku gdy Godzina Do = 00:00 i Godzina Od > 0
        else if (mDo === 0 && mOd > 0) {
            $godziny.val('0:00');
        }
    }

    // Sprawdź czy DataOd i DataDo są takie same lub różnią się o 1 dzień
    function isSingleDayPeriod() {
        var dataOd = $('[name="pWniosek[dat:DataOd]"]').val();
        var dataDo = $('[name="pWniosek[dat:DataDo]"]').val();

        if (!dataOd || !dataDo || dataOd.length === 0 || dataDo.length === 0) {
            return true; // Domyślnie stosuj limit
        }

        var od = new Date(dataOd);
        var doDate = new Date(dataDo);

        // Oblicz różnicę w dniach
        var diffTime = doDate - od;
        var diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));

        // Stosuj limit jeśli: ten sam dzień (0) lub różnica 1 dzień
        return diffDays <= 1;
    }

    // Normalizuj format Godziny do H:MM (usuń leading zero z godzin)
    function normalizeGodzinyFormat() {
        var $godziny = $('[name="pWniosek[dat:Godziny]"]');
        var val = $godziny.val();
        if (val && val.length > 3 && val.charAt(0) === '0') {
            // Zamień "08:00" na "8:00"
            $godziny.val(val.substring(1));
        }
    }

    // Limituj Godziny do 24:00 (tylko dla jednodniowych nieobecności)
    function limitGodziny() {
        if (!isSingleDayPeriod()) {
            return; // Nie stosuj limitu dla okresów dłuższych niż 1 dzień
        }

        var $godziny = $('[name="pWniosek[dat:Godziny]"]');
        var val = $godziny.val();

        // Napraw pustą lub nieprawidłową wartość
        if (!val || val === ':00' || val.length < 2) {
            $godziny.val('0:00');
            return;
        }

        var limitedVal = limitToMax(val, '24:00');
        $godziny.val(limitedVal);
        normalizeGodzinyFormat();
    }

    // Limituj Godzina Od/Do do 23:59 (tylko dla jednodniowych nieobecności)
    function limitGodzinaHHMM(field) {
        var $field = $('[name="pWniosek[dat:' + field + ']"]');
        var val = limitToMax($field.val(), '23:59');
        $field.val(val);
    }

    $(document).ready(function () {
        // Scenariusz 1 & 2: Zmiana Godziny (blur) -> Godzina Do = Godzina Od + Godziny
        $(document).on('blur', '[name="pWniosek[dat:Godziny]"]', function () {
            limitGodziny();       // Upewnij się że limit się wykonał
            calculateGodzinaDo();
        });

        // Scenariusz 3: Zmiana Godzina Od -> Godzina Do = Godzina Od + Godziny
        $(document).on('input', '[name="pWniosek[dat:GodzinaOd]"]', function () {
            limitGodzinaHHMM('GodzinaOd');
        });
        $(document).on('change', '[name="pWniosek[dat:GodzinaOd]"]', function () {
            calculateGodzinaDo();
        });

        // Scenariusz 4: Zmiana Godzina Do -> Godziny = Godzina Do - Godzina Od
        $(document).on('input', '[name="pWniosek[dat:GodzinaDo]"]', function () {
            limitGodzinaHHMM('GodzinaDo');
        });
        $(document).on('change', '[name="pWniosek[dat:GodzinaDo]"]', function () {
            calculateGodziny();
        });
    });
</script>

<script>
    $(document).find('.datepicker-from').datetimepicker({
        format: "YYYY-MM-DD",
        locale: 'pl',
        keepOpen: false,
        showClose: true,
        useCurrent: false
    });

    $(document).find('.datepicker-to').datetimepicker({
        format: "YYYY-MM-DD",
        locale: 'pl',
        keepOpen: false,
        showClose: true
    });
</script>


<script>
    $(function () {
        // Inicjalizacja datepickerów dla pól DateOd/DateDo w polach dodatkowych
        $(document).find('.datepicker-ext-from').datetimepicker({
            format: "YYYY-MM-DD",
            locale: 'pl',
            keepOpen: false,
            showClose: true,
            useCurrent: false
        }).on('dp.change', function (ev) {
            var $fromInput = $(this);
            var rangeKey = $fromInput.find('input').data('range-key');
            var $group = $fromInput.closest('.date-range-group');
            var $toInput = $group.find('.datepicker-ext-to');

            var fromDate = $fromInput.find('input').val();
            var toDate = $toInput.find('input').val();

            // Jeśli data "Od" jest większa niż data "Do", ustaw datę "Do" na datę "Od"
            if (fromDate && toDate && fromDate > toDate) {
                $toInput.data('DateTimePicker').date(moment(fromDate, 'YYYY-MM-DD'));
            }

            // Ustaw minimalną datę dla pola "Do"
            if (fromDate) {
                $toInput.data('DateTimePicker').minDate(moment(fromDate, 'YYYY-MM-DD'));
            } else {
                $toInput.data('DateTimePicker').minDate(false);
            }
        });

        $(document).find('.datepicker-ext-to').datetimepicker({
            format: "YYYY-MM-DD",
            locale: 'pl',
            keepOpen: false,
            showClose: true,
            useCurrent: false
        }).on('dp.change', function (ev) {
            var $toInput = $(this);
            var rangeKey = $toInput.find('input').data('range-key');
            var $group = $toInput.closest('.date-range-group');
            var $fromInput = $group.find('.datepicker-ext-from');

            var fromDate = $fromInput.find('input').val();
            var toDate = $toInput.find('input').val();

            // Jeśli data "Do" jest mniejsza niż data "Od", ustaw datę "Od" na datę "Do"
            if (fromDate && toDate && toDate < fromDate) {
                $fromInput.data('DateTimePicker').date(moment(toDate, 'YYYY-MM-DD'));
            }

            // Ustaw maksymalną datę dla pola "Od"
            if (toDate) {
                $fromInput.data('DateTimePicker').maxDate(moment(toDate, 'YYYY-MM-DD'));
            } else {
                $fromInput.data('DateTimePicker').maxDate(false);
            }
        });
    });
</script>
