<link rel="stylesheet" href="/public/assets/css/cda-v4-3.css">
<?php
use App\Core\Csrf;
$old=$_SESSION['old']??[];
$errors=$_SESSION['form_errors']??[];
unset($_SESSION['old'],$_SESSION['form_errors']);
$professorId=(int)($professor['id']??0);
$returnUrl=$professorId>0
    ? '/public/professeurs-pro/voir?id='.$professorId
    : '/public/professeurs';

$raw=function(string $key,mixed $default='')use($old,$professor):mixed{return $old[$key]??($professor[$key]??$default);};
$pfv=function(string $key,string $default='')use($raw):string{return htmlspecialchars((string)$raw($key,$default));};
?>
<section class="page-intro">
<div><span class="page-kicker">Équipe pédagogique</span><h2><?= htmlspecialchars($pageTitle) ?></h2><p>Le code professeur sera généré automatiquement à l’enregistrement.</p></div>
<a class="button button-secondary" href="<?= htmlspecialchars($returnUrl) ?>">Retour au <?= $professorId>0?'dossier professeur':'professeurs' ?></a>
</section>

<?php if($errors): ?><div class="alert alert-error"><ul><?php foreach($errors as $e): ?><li><?= htmlspecialchars($e) ?></li><?php endforeach; ?></ul></div><?php endif; ?>

<form method="post" action="/public<?= htmlspecialchars($formAction) ?>" class="v4-form">
<?= Csrf::field() ?>

<?php if(!$professor): ?>
<section class="form-card">
<header class="form-card-header"><div class="form-step blue">0</div><div><h3>Compte utilisateur AXIOM</h3><p>Créez immédiatement l’accès personnel du professeur ou rattachez un compte ayant déjà la même adresse e-mail.</p></div><div class="form-icon blue">♙</div></header>
<div class="choice-grid">
<label class="choice-card"><input type="checkbox" id="createProfessorAccount" name="create_user_account" value="1" checked> <span><strong>Créer ou rattacher le compte utilisateur</strong><small>Le rôle Professeur / Animateur sera attribué automatiquement.</small></span></label>
</div>
<div class="form-grid grid-2" id="professorAccountFields">
<label class="field"><span>Mot de passe initial</span><span class="professor-password-field"><input id="professorInitialPassword" type="password" name="user_password" minlength="10" autocomplete="new-password" placeholder="10 caractères minimum"><button type="button" id="toggleProfessorPassword" aria-label="Afficher le mot de passe" aria-pressed="false" title="Afficher le mot de passe">👁</button></span><small>À renseigner pour un nouveau compte. Laisser vide seulement si l’adresse e-mail correspond déjà à un utilisateur.</small></label>
</div>
</section>
<?php endif; ?>

<section class="form-card">
<header class="form-card-header"><div class="form-step">1</div><div><h3>Identité</h3><p>Nom en majuscules, prénom normalisé automatiquement.</p></div><div class="form-icon">♬</div></header>
<div class="code-preview-v4"><span>Code professeur</span><strong><?= htmlspecialchars($professor['code_professeur'] ?? 'Généré automatiquement') ?></strong><small>Format proposé : P + 8 lettres du nom + 3 lettres du prénom.</small></div>
<div class="form-grid grid-4">
<label class="field"><span>Civilité</span><select name="civilite"><?php foreach(['Non renseigne','Mme','M.','Autre'] as $v):?><option value="<?=htmlspecialchars($v)?>" <?=$raw('civilite','Non renseigne')===$v?'selected':''?>><?=htmlspecialchars($v)?></option><?php endforeach?></select></label>
<label class="field"><span>Nom *</span><input required data-uppercase name="nom" value="<?= $pfv('nom') ?>"></label>
<label class="field"><span>Prénom *</span><input required data-firstname name="prenom" value="<?= $pfv('prenom') ?>"></label>
<label class="field"><span>Date de naissance</span><input type="date" name="date_naissance" value="<?= $pfv('date_naissance') ?>"></label>
<label class="field"><span>E-mail</span><input type="email" name="email" value="<?= $pfv('email') ?>"></label>
<label class="field"><span>Téléphone principal</span><input data-phone name="telephone_principal" value="<?= $pfv('telephone_principal') ?>"></label>
<label class="field"><span>Téléphone secondaire</span><input data-phone name="telephone_secondaire" value="<?= $pfv('telephone_secondaire') ?>"></label>
</div>
</section>

<section class="form-card">
<header class="form-card-header"><div class="form-step pink">2</div><div><h3>Adresse</h3><p>Autocomplétion d’adresse et remplissage automatique de la ville.</p></div><div class="form-icon pink">⌂</div></header>
<div class="form-grid grid-4">
<label class="field address-field-v4" style="grid-column:span 2"><span>Adresse</span><input autocomplete="off" data-address-autocomplete name="adresse_ligne1" value="<?= $pfv('adresse_ligne1') ?>"><div id="addressSuggestions" class="address-suggestions" hidden></div></label>
<label class="field"><span>Complément</span><input name="adresse_ligne2" value="<?= $pfv('adresse_ligne2') ?>"></label>
<label class="field"><span>Code postal</span><input data-postcode name="code_postal" value="<?= $pfv('code_postal') ?>"></label>
<label class="field"><span>Ville</span><input data-city data-uppercase name="ville" value="<?= $pfv('ville') ?>"></label>
</div>
</section>

<input type="hidden" name="statut_intervenant" value="<?= $pfv('statut_intervenant','autre') ?>">
<input type="hidden" name="type_contrat" value="<?= $pfv('type_contrat') ?>">
<input type="hidden" name="date_debut_contrat" value="<?= $pfv('date_debut_contrat') ?>">
<input type="hidden" name="date_fin_contrat" value="<?= $pfv('date_fin_contrat') ?>">

<section class="form-card">
<header class="form-card-header"><div class="form-step green">3</div><div><h3>Autorisations</h3></div><div class="form-icon green">✓</div></header>
<div class="choice-grid">
<label class="choice-card"><input type="checkbox" name="rgpd_accepte" <?= $raw('rgpd_accepte') ? 'checked' : '' ?>><span><strong>RGPD</strong><small>Consentement enregistré.</small></span></label>
<label class="choice-card"><input type="checkbox" name="dispense_mutuelle" <?= $raw('dispense_mutuelle') ? 'checked' : '' ?>><span><strong>Dispense mutuelle</strong><small>Justificatif à joindre.</small></span></label>
<label class="choice-card"><input type="checkbox" name="teletravail_autorise" <?= $raw('teletravail_autorise') ? 'checked' : '' ?>><span><strong>Télétravail autorisé</strong><small>La Direction pourra alors ajouter du télétravail ponctuel ou annualisé au planning prévisionnel.</small></span></label>
<label class="choice-card"><input type="checkbox" name="reunions_autorisees" <?= $raw('reunions_autorisees') ? 'checked' : '' ?>><span><strong>Peut ajouter ses réunions</strong><small>Autorise exceptionnellement ce professeur à ajouter une réunion uniquement à son propre planning. La Direction conserve l’invitation de plusieurs professeurs.</small></span></label>
</div>
<div class="form-grid grid-2">
<label class="field"><span>Date de dispense</span><input type="date" name="dispense_mutuelle_date" value="<?= $pfv('dispense_mutuelle_date') ?>"></label>
<label class="field"><span>Droit à l’image</span><select name="droit_image"><?php foreach(['non_renseigne'=>'Non renseigné','accorde'=>'Accordé','refuse'=>'Refusé'] as $v=>$label):?><option value="<?=$v?>" <?=$raw('droit_image','non_renseigne')===$v?'selected':''?>><?=$label?></option><?php endforeach?></select></label>
</div>
<label class="field"><span>Observations</span><textarea name="notes" rows="5"><?= $pfv('notes') ?></textarea></label>
</section>

<div class="sticky-actions"><a class="button button-secondary" href="<?= htmlspecialchars($returnUrl) ?>">Annuler</a><button class="button button-primary" type="submit"><?= htmlspecialchars($submitLabel) ?></button></div>
</form>

<script src="/public/assets/js/cda-v4-form.js"></script>
<script src="/public/assets/js/professor-address.js"></script>
<style>.professor-password-field{position:relative;display:block}.professor-password-field input{width:100%;padding-right:48px}.professor-password-field button{position:absolute;right:7px;top:50%;transform:translateY(-50%);width:36px;height:32px;border:0;border-radius:8px;background:#eef4ff;color:#173e91;cursor:pointer;font-size:17px}.professor-password-field button:hover,.professor-password-field button:focus-visible{background:#dce8ff;outline:2px solid #2f6fff;outline-offset:1px}</style>
<script>document.addEventListener('DOMContentLoaded',()=>{const c=document.getElementById('createProfessorAccount'),f=document.getElementById('professorAccountFields');if(c&&f){const sync=()=>{f.hidden=!c.checked};c.addEventListener('change',sync);sync()}const p=document.getElementById('professorInitialPassword'),b=document.getElementById('toggleProfessorPassword');if(p&&b){b.addEventListener('click',()=>{const show=p.type==='password';p.type=show?'text':'password';b.setAttribute('aria-pressed',show?'true':'false');b.setAttribute('aria-label',show?'Masquer le mot de passe':'Afficher le mot de passe');b.title=show?'Masquer le mot de passe':'Afficher le mot de passe';b.textContent=show?'🙈':'👁'})}});</script>
