
        <?php
        if (!(isset($edit) ? $edit : false)) {
        ?>
        <div class="row panel-fix">
            <div class="col-md-12 top-focus-box">
                <div class="form-group">
                    <?php
                    $this->Form->label($this->_('ClientContacts.contact_info.field_contact_id', true), 'contact_id');
                    $this->Form->fieldSelect('contact_id', ($contacts ?? null), ($vars->contact_id ?? null), ['id' => 'contact_id', 'class' => 'form-control']);
                    ?>
                    <p class="help-block"><i class="fas fa-lightbulb fa-fw"></i> <?php $this->_('ClientContacts.contact_info.text_select_contact');?></p>
                </div>
            </div>
        </div>
        <?php
        }
        ?>
        <h4><?php $this->_('ClientContacts.contact_info.heading_contact');?></h4>
        <div class="row panel-fix">
            <div class="col-md-6">
                <?php
                if (($show_avatar ?? false)) {
                ?>
                <div class="form-group" id="avatar_section">
                    <?php if (!empty($user->avatar) && file_exists($user->avatar)) { ?>
                    <div id="avatar_preview">
                        <img src="<?php echo WEBDIR . 'uploads/avatar/' . ($user->id ?? null) . '/';?>" class="img-thumbnail mb-2" style="width: 120px; height: 120px"/>
                        <br>
                        <a href="#" class="mb-2 d-inline-block" id="remove_avatar_link"><?php $this->_('ClientMain.edit.link_remove_avatar');?></a>
                        <br>
                    </div>
                    <?php } ?>
                    <?php
                    $this->Form->label($this->_('ClientContacts.contact_info.field_avatar', true), 'avatar', ['class' => 'd-block']);
                    $this->Form->fieldFile('avatar', ['id' => 'avatar', 'class' => 'form-control']);
                    $this->Form->fieldHidden('remove_avatar', '0', ['id' => 'remove_avatar']);
                    ?>
                </div>
                <?php
                }
                ?>
                <div class="form-group">
                    <?php
                    $disabled = (in_array('first_name', $read_only_contact_fields ?? []) && $edit && !empty($contact->first_name ?? null)) ? ['disabled' => 'disabled'] : [];
                    $this->Form->label($this->_('ClientContacts.contact_info.field_first_name', true), 'first_name');
                    $this->Form->fieldText('first_name', ($vars->first_name ?? null), array_merge(['id' => 'first_name', 'class' => 'form-control', 'placeholder' => $this->_('ClientContacts.contact_info.field_first_name', true)], $disabled));
                    ?>
                </div>
                <div class="form-group">
                    <?php
                    $disabled = (in_array('last_name', $read_only_contact_fields ?? []) && $edit && !empty($contact->last_name ?? null)) ? ['disabled' => 'disabled'] : [];
                    $this->Form->label($this->_('ClientContacts.contact_info.field_last_name', true), 'last_name');
                    $this->Form->fieldText('last_name', ($vars->last_name ?? null), array_merge(['id' => 'last_name', 'class' => 'form-control', 'placeholder' => $this->_('ClientContacts.contact_info.field_last_name', true)], $disabled));
                    ?>
                </div>
                <?php
                if ((!isset($show_company) || $show_company)) {
                ?>
                    <?php
                    if (in_array('company', $required_contact_fields ?? []) || in_array('company', $shown_contact_fields ?? [])) {
                    ?>
                    <div class="form-group">
                        <?php
                        $disabled = (in_array('company', $read_only_contact_fields ?? []) && $edit && !empty($contact->company ?? null)) ? ['disabled' => 'disabled'] : [];
                        $this->Form->label($this->_('ClientContacts.contact_info.field_company', true), 'company');
                        $this->Form->fieldText('company', ($vars->company ?? null), array_merge(['id' => 'company', 'class' => 'form-control', 'placeholder' => $this->_('ClientContacts.contact_info.field_company', true)], $disabled));
                        ?>
                    </div>
                    <?php
                    }

                    if (in_array('title', $required_contact_fields ?? []) || in_array('title', $shown_contact_fields ?? [])) {
                    ?>
                    <div class="form-group">
                        <?php
                        $disabled = (in_array('title', $read_only_contact_fields ?? []) && $edit && !empty($contact->title ?? null)) ? ['disabled' => 'disabled'] : [];
                        $this->Form->label($this->_('ClientContacts.contact_info.field_title', true), 'title');
                        $this->Form->fieldText('title', ($vars->title ?? null), array_merge(['id' => 'title', 'class' => 'form-control', 'placeholder' => $this->_('ClientContacts.contact_info.field_title', true)], $disabled));
                        ?>
                    </div>
                    <?php
                    }
                    ?>
                <?php
                }

                if (in_array('address1', $required_contact_fields ?? []) || in_array('address1', $shown_contact_fields ?? [])) {
                ?>
                <div class="form-group">
                    <?php
                    $disabled = (in_array('address1', $read_only_contact_fields ?? []) && $edit && !empty($contact->address1 ?? null)) ? ['disabled' => 'disabled'] : [];
                    $this->Form->label($this->_('ClientContacts.contact_info.field_address1', true), 'address1');
                    $this->Form->fieldText('address1', ($vars->address1 ?? null), array_merge(['id' => 'address1', 'class' => 'form-control', 'placeholder' => $this->_('ClientContacts.contact_info.field_address1', true)], $disabled));
                    ?>
                </div>
                <?php
                }

                if (in_array('address2', $required_contact_fields ?? []) || in_array('address2', $shown_contact_fields ?? [])) {
                ?>
                <div class="form-group">
                    <?php
                    $disabled = (in_array('address2', $read_only_contact_fields ?? []) && $edit && !empty($contact->address2 ?? null)) ? ['disabled' => 'disabled'] : [];
                    $this->Form->label($this->_('ClientContacts.contact_info.field_address2', true), 'address2');
                    $this->Form->fieldText('address2', ($vars->address2 ?? null), array_merge(['id' => 'address2', 'class' => 'form-control', 'placeholder' => $this->_('ClientContacts.contact_info.field_address2', true)], $disabled));
                    ?>
                </div>
                <?php
                }
                ?>
            </div>
            <div class="col-md-6">
                <?php
                if (in_array('city', $required_contact_fields ?? []) || in_array('city', $shown_contact_fields ?? [])) {
                ?>
                <div class="form-group">
                    <?php
                    $disabled = (in_array('city', $read_only_contact_fields ?? []) && $edit && !empty($contact->city ?? null)) ? ['disabled' => 'disabled'] : [];
                    $this->Form->label($this->_('ClientContacts.contact_info.field_city', true), 'city');
                    $this->Form->fieldText('city', ($vars->city ?? null), array_merge(['id' => 'city', 'class' => 'form-control', 'placeholder' => $this->_('ClientContacts.contact_info.field_city', true)], $disabled));
                    ?>
                </div>
                <?php
                }

                if (in_array('country', $required_contact_fields ?? []) || in_array('country', $shown_contact_fields ?? [])) {
                ?>
                <div class="form-group">
                    <?php
                    $disabled = (in_array('country', $read_only_contact_fields ?? []) && $edit && !empty($contact->country ?? null)) ? ['disabled' => 'disabled'] : [];
                    $this->Form->label($this->_('ClientContacts.contact_info.field_country', true), 'country');
                    $this->Form->fieldSelect('country', ($countries ?? null), ($vars->country ?? null), array_merge(['id' => 'country', 'class' => 'form-control'], $disabled));
                    ?>
                </div>
                <?php
                }

                if (in_array('state', $required_contact_fields ?? []) || in_array('state', $shown_contact_fields ?? [])) {
                ?>
                <div class="form-group">
                    <?php
                    $disabled = (in_array('state', $read_only_contact_fields ?? []) && $edit && !empty($contact->state ?? null)) ? ['disabled' => 'disabled'] : [];
                    $this->Form->label($this->_('ClientContacts.contact_info.field_state', true), 'state');
                    $this->Form->fieldSelect('state', ($states ?? null), ($vars->state ?? null), array_merge(['id' => 'state', 'class' => 'form-control'], $disabled));
                    ?>
                </div>
                <?php
                }

                if (in_array('zip', $required_contact_fields ?? []) || in_array('zip', $shown_contact_fields ?? [])) {
                ?>
                <div class="form-group">
                    <?php
                    $disabled = (in_array('zip', $read_only_contact_fields ?? []) && $edit && !empty($contact->zip ?? null)) ? ['disabled' => 'disabled'] : [];
                    $this->Form->label($this->_('ClientContacts.contact_info.field_zip', true), 'zip');
                    $this->Form->fieldText('zip', ($vars->zip ?? null), array_merge(['id' => 'zip', 'class' => 'form-control', 'placeholder' => $this->_('ClientContacts.contact_info.field_zip', true)], $disabled));
                    ?>
                </div>
                <?php
                }

                if (($show_email ?? false)) {
                ?>
                <div class="form-group">
                    <?php
                    $disabled = (in_array('email', $read_only_contact_fields ?? []) && $edit && !empty($contact->email ?? null)) ? ['disabled' => 'disabled'] : [];
                    $this->Form->label($this->_('ClientContacts.contact_info.field_email', true), 'email');
                    $this->Form->fieldText('email', ($vars->email ?? null), array_merge(['id' => 'email', 'class' => 'form-control', 'placeholder' => $this->_('ClientContacts.contact_info.field_email', true)], $disabled));
                    ?>
                </div>
                <?php
                }
                ?>
            </div>
        </div>

<?php
$this->Javascript->setInline('
    $(document).ready(function() {
        var contacts = ' . (isset($js_contacts) ? $js_contacts : null) . ";

        // Handle avatar removal
        $('#remove_avatar_link').click(function(e) {
            e.preventDefault();
            $('#remove_avatar').val('1');
            $('#avatar_preview').hide();
            $('#avatar').val('');
        });

        // Reset removal flag when a new avatar is selected
        $('#avatar').change(function() {
            if ($(this).val()) {
                $('#remove_avatar').val('0');
                $('#avatar_preview').show();
            }
        });

        // Function to toggle avatar section visibility
        function toggleAvatarSection() {
            var enable_login = $('#enable_login');
            var avatar = $('#avatar_section');

            if (enable_login.length === 0) {
                avatar.show();
            } else {
                if (enable_login.is(':checked')) {
                    avatar.show();
                } else {
                    avatar.hide();
                }
            }
        }

        // Initial check on page load
        toggleAvatarSection();

        // Listen for changes to the enable_login checkbox
        $('#enable_login').on('change', function() {
            toggleAvatarSection();
        });

        $('#contact_id').change(function() {
            if ($('#contact_id').val() != 'none') {
                // Populate contacts data onto form
                for (var i in contacts) {
                    if (contacts[i]['id'] == $('#contact_id').val()) {
                        // Set data
                        $('#first_name').val(contacts[i]['first_name']);
                        $('#last_name').val(contacts[i]['last_name']);
                        $('#address1').val(contacts[i]['address1']);
                        $('#address2').val(contacts[i]['address2']);
                        $('#city').val(contacts[i]['city']);
                        $('#country').val(contacts[i]['country']).trigger('change', [{state: contacts[i]['state']}]);
                        $('#zip').val(contacts[i]['zip']);
                        $('#email').val(contacts[i]['email']);
                        break;
                    }
                }
            }
        });

        $('#country').change(function(e, state) {
            $(this).blestaRequest('get', '" . $this->Html->safe($this->base_uri . 'main/getstates/') . "' + $(this).val(), null, function(data) {
                    // Remove all existing items
                    $('option', '#state').remove();

                    // Append all new items
                    $.each($(this).blestaSortObject(data), function(index, item) {
                        $('#state').append( new Option(item.value, item.key));
                    });

                    // Set state if given
                    if (state && state.state)
                        $('#state').val(state.state);
                },
                null,
                {dataType: 'json'}
            );
        });
    });
");
?>