<?php
/**
 * Traitement du formulaire de contact avec PHPMailer
 * SERVICES-AE - Contact Form Handler
 */

// Inclure les fichiers nécessaires
require_once 'config/smtp-config.php';
require_once 'PHPMailer/src/Exception.php';
require_once 'PHPMailer/src/PHPMailer.php';
require_once 'PHPMailer/src/SMTP.php';

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;

// Fonction pour nettoyer les données d'entrée
function sanitizeInput($data) {
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    return $data;
}

// Fonction pour valider l'email
function isValidEmail($email) {
    return filter_var($email, FILTER_VALIDATE_EMAIL);
}

// Traitement du formulaire
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $response = array();
    
    try {
        // Récupération et nettoyage des données
        $firstName = sanitizeInput($_POST['first_name'] ?? '');
        $lastName = sanitizeInput($_POST['last_name'] ?? '');
        $email = sanitizeInput($_POST['email'] ?? '');
        $phone = sanitizeInput($_POST['phone'] ?? '');
        $subject = sanitizeInput($_POST['subject'] ?? 'Contact depuis le site web');
        $message = sanitizeInput($_POST['message'] ?? '');
        
        // Validation des champs obligatoires
        if (empty($firstName)) {
            throw new Exception('Le prénom est obligatoire.');
        }
        
        if (empty($lastName)) {
            throw new Exception('Le nom est obligatoire.');
        }
        
        if (empty($email) || !isValidEmail($email)) {
            throw new Exception('Une adresse email valide est obligatoire.');
        }
        
        if (empty($message)) {
            throw new Exception('Le message est obligatoire.');
        }
        
        // Configuration de PHPMailer
        $mail = new PHPMailer(true);
        
        // Configuration SMTP
        $mail->isSMTP();
        $mail->Host = SMTP_HOST;
        $mail->SMTPAuth = SMTP_AUTH;
        $mail->Username = SMTP_USERNAME;
        $mail->Password = SMTP_PASSWORD;
        $mail->SMTPSecure = SMTP_SECURE;
        $mail->Port = SMTP_PORT;
        $mail->CharSet = EMAIL_CHARSET;
        
        // Désactiver la vérification SSL en local (à supprimer en production)
        $mail->SMTPOptions = array(
            'ssl' => array(
                'verify_peer' => false,
                'verify_peer_name' => false,
                'allow_self_signed' => true
            )
        );
        
        // Configuration du debug si nécessaire
        if (EMAIL_DEBUG) {
            $mail->SMTPDebug = SMTP::DEBUG_SERVER;
        }
        
        // Expéditeur et destinataire
        $mail->setFrom(FROM_EMAIL, FROM_NAME);
        $mail->addAddress(TO_EMAIL, TO_NAME);
        $mail->addReplyTo($email, "$firstName $lastName");
        
        // Contenu de l'email
        $mail->isHTML(true);
        $mail->Subject = "Nouveau message de contact - $subject";
        
        // Corps de l'email en HTML
        $emailBody = "
        <html>
        <head>
            <title>Nouveau message de contact - SERVICES-AE</title>
        </head>
        <body>
            <h2>Nouveau message depuis le formulaire de contact</h2>
            <hr>
            <p><strong>Nom complet :</strong> $firstName $lastName</p>
            <p><strong>Email :</strong> $email</p>
            <p><strong>Téléphone :</strong> " . ($phone ? $phone : 'Non renseigné') . "</p>
            <p><strong>Sujet :</strong> $subject</p>
            <hr>
            <p><strong>Message :</strong></p>
            <p>" . nl2br($message) . "</p>
            <hr>
            <p><em>Message envoyé le " . date('d/m/Y à H:i:s') . "</em></p>
        </body>
        </html>";
        
        $mail->Body = $emailBody;
        
        // Version texte alternative
        $mail->AltBody = "
        Nouveau message de contact - SERVICES-AE
        
        Nom : $firstName $lastName
        Email : $email
        Téléphone : " . ($phone ? $phone : 'Non renseigné') . "
        Sujet : $subject
        
        Message :
        $message
        
        Envoyé le " . date('d/m/Y à H:i:s');
        
        // Envoi de l'email à l'administration
        $mail->send();
        
        // Préparation de l'email de confirmation pour le client
        $clientMail = new PHPMailer(true);
        
        // Configuration SMTP identique
        $clientMail->isSMTP();
        $clientMail->Host = SMTP_HOST;
        $clientMail->SMTPAuth = SMTP_AUTH;
        $clientMail->Username = SMTP_USERNAME;
        $clientMail->Password = SMTP_PASSWORD;
        $clientMail->SMTPSecure = SMTP_SECURE;
        $clientMail->Port = SMTP_PORT;
        $clientMail->CharSet = EMAIL_CHARSET;
        
        // Options SSL
        $clientMail->SMTPOptions = array(
            'ssl' => array(
                'verify_peer' => false,
                'verify_peer_name' => false,
                'allow_self_signed' => true
            )
        );
        
        // Expéditeur et destinataire pour la confirmation
        $clientMail->setFrom(FROM_EMAIL, FROM_NAME);
        $clientMail->addAddress($email, "$firstName $lastName");
        
        // Attachement du logo comme image intégrée
        $logoPath = 'images/logos/logo-ae-c.png';
        if (file_exists($logoPath)) {
            $clientMail->addEmbeddedImage($logoPath, 'logo_ae', 'logo-ae-c.png');
        }
        
        // Contenu de l'email de confirmation
        $clientMail->isHTML(true);
        $clientMail->Subject = "Confirmation de réception de votre message - SERVICES-AE";
        
        // Lecture du template HTML
        $templatePath = 'email_template/email.html';
        if (file_exists($templatePath)) {
            $confirmationBody = file_get_contents($templatePath);
            
            // Création du contenu personnalisé du message avec taille 13px
            $messageContent = "<p style='margin: 0; margin-bottom: 16px;'><span style='color: #ffffff; font-size: 13px;'>Bonjour $firstName $lastName,</span></p>";
            $messageContent .= "<p style='margin: 0; margin-bottom: 16px;'><span style='color: #ffffff; font-size: 13px;'>Nous avons bien reçu votre message et vous remercions de nous avoir contactés.</span></p>";
            $messageContent .= "<p style='margin: 0; margin-bottom: 16px;'><span style='color: #ffffff; font-size: 13px; letter-spacing: 0.1px;'><strong>📋 R É C A P I T U L A T I F &nbsp;  D E &nbsp;  V O T R E &nbsp;  D E M A N D E</strong></span></p>";
            $messageContent .= "<p style='margin: 0; margin-bottom: 16px;'><span style='color: #ffffff; font-size: 13px;'>Sujet : " . ($subject ?: 'Contact depuis le site web') . "</span></p>";
            $messageContent .= "<p style='margin: 0; margin-bottom: 16px;'><span style='color: #ffffff; font-size: 13px;'>Email : $email</span></p>";
            if ($phone) {
                $phoneSpaced = implode(' ', str_split($phone));
                $messageContent .= "<p style='margin: 0; margin-bottom: 16px;'><span style='color: #ffffff; font-size: 13px; letter-spacing: 1px;'>Téléphone : $phoneSpaced</span></p>";
            }
            $messageContent .= "<p style='margin: 0; margin-bottom: 16px;'><span style='color: #ffffff; font-size: 13px;'>Votre message :</span></p>";
            $messageContent .= "<p style='margin: 0; margin-bottom: 16px;'><span style='color: #ffffff; font-size: 13px;'>" . nl2br($message) . "</span></p>";
            $messageContent .= "<p style='margin: 0; margin-bottom: 16px;'><span style='color: #ffffff; font-size: 13px; letter-spacing: 0.1px;'><strong>✅ N O T R E &nbsp;  E N G A G E M E N T</strong></span></p>";
            $messageContent .= "<p style='margin: 0; margin-bottom: 16px;'><span style='color: #ffffff; font-size: 13px;'>• Nous vous répondrons dans un délai de 24 heures maximum</span></p>";
            $messageContent .= "<p style='margin: 0; margin-bottom: 16px;'><span style='color: #ffffff; font-size: 13px;'>• Un technicien qualifié prendra en charge votre demande</span></p>";
            $messageContent .= "<p style='margin: 0;'><span style='color: #ffffff; font-size: 13px;'>• Nous vous proposerons une solution adaptée à vos besoins</span></p>";
            
            // Remplacement du contenu dans le template
            $confirmationBody = str_replace('contenu de message', $messageContent, $confirmationBody);
            
            // Remplacement du logo par la version intégrée (CID)
            $confirmationBody = str_replace('src="images/1_logo-ae.png"', 'src="cid:logo_ae"', $confirmationBody);
            
            // Remplacement du numéro de téléphone et mise en couleur blanche avec espacement
            $telSpaced = implode(' ', str_split($tel));
            $confirmationBody = str_replace(
                '<p style="margin: 0; margin-bottom: 16px;">&nbsp;Appelez-nous au :&nbsp;<strong>+33 6 12 34 56 78</strong></p>',
                '<p style="margin: 0; margin-bottom: 16px;"><span style="color: #ffffff;">&nbsp;Appelez-nous au :&nbsp;<strong>' . $telSpaced . '</strong></span></p>',
                $confirmationBody
            );
            
            // Mise en couleur blanche de "Besoin d'une réponse urgente ?"
            $confirmationBody = str_replace(
                '<p style="margin: 0; margin-bottom: 16px;"><strong>Besoin d\'une réponse urgente ?</strong></p>',
                '<p style="margin: 0; margin-bottom: 16px;"><span style="color: #ffffff;"><strong>Besoin d\'une réponse urgente ?</strong></span></p>',
                $confirmationBody
            );
            
            // Suppression de la ligne Email contact
            $confirmationBody = str_replace(
                '<p style="margin: 0;">&nbsp;Email :&nbsp;<strong><a href="mailto:contact@services-ae.net" target="_blank" style="text-decoration: underline; color: #7747FF;" rel="noopener">contact@services-ae.net</a></strong></p>',
                '',
                $confirmationBody
            );
            
            // Mise à jour de la date dans le footer
            $confirmationBody = str_replace(
                'Ce message a été généré automatiquement le 10/10/2025 à 09:33:03',
                'Ce message a été généré automatiquement le ' . date('d/m/Y à H:i:s'),
                $confirmationBody
            );
            
        } else {
            // Fallback si le template n'existe pas
            $messageContent = "Bonjour $firstName $lastName,\n\n";
            $messageContent .= "Nous avons bien reçu votre message et vous remercions de nous avoir contactés.\n\n";
            $messageContent .= "📋 Récapitulatif de votre demande\n";
            $messageContent .= "Sujet : " . ($subject ?: 'Contact depuis le site web') . "\n\n";
            $messageContent .= "Email : $email\n\n";
            if ($phone) {
                $messageContent .= "Téléphone : $phone\n\n";
            }
            $messageContent .= "Votre message :\n$message\n\n";
            $messageContent .= "✅ Notre engagement\n";
            $messageContent .= "• Nous vous répondrons dans un délai de 24 heures maximum\n";
            $messageContent .= "• Un technicien qualifié prendra en charge votre demande\n";
            $messageContent .= "• Nous vous proposerons une solution adaptée à vos besoins\n\n";
            $messageContent .= "📞 Contact urgent : " . $tel . "\n";
            $messageContent .= "📧 Email : contact@services-ae.net";
            
            $confirmationBody = nl2br($messageContent);
        }
        
        $clientMail->Body = $confirmationBody;"
        <!DOCTYPE html>
        <html xmlns:v='urn:schemas-microsoft-com:vml' xmlns:o='urn:schemas-microsoft-com:office:office' lang='fr'>
        <head>
            <title>Confirmation de réception - SERVICES-AE</title>
            <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
            <meta name='viewport' content='width=device-width, initial-scale=1.0'>
            <link href='https://fonts.googleapis.com/css?family=Montserrat' rel='stylesheet' type='text/css'>
            <style>
                * { box-sizing: border-box; }
                body { margin: 0; padding: 0; background-color: #f4f4f4; }
                .nl-container { background-color: transparent; }
                .row-content { width: 640px; margin: 0 auto; }
                .message-box { background: white; padding: 20px; border-radius: 8px; margin: 20px 0; }
                .contact-info { background: #ff6b35; color: white; padding: 15px; border-radius: 5px; text-align: center; margin: 15px 0; }
                @media (max-width: 640px) {
                    .row-content { width: 100% !important; }
                    .column { width: 100%; display: block; }
                }
            </style>
        </head>
        <body>
            <table class='nl-container' width='100%' border='0' cellpadding='0' cellspacing='0' role='presentation'>
                <tbody>
                    <tr>
                        <td>
                            <!-- Header Section -->
                            <table class='row' align='center' width='100%' border='0' cellpadding='0' cellspacing='0' role='presentation'>
                                <tbody>
                                    <tr>
                                        <td>
                                            <table class='row-content' align='center' border='0' cellpadding='0' cellspacing='0' role='presentation' style='background-color: #000000; color: #ffffff;'>
                                                <tbody>
                                                    <tr>
                                                        <td class='column' style='padding: 15px 20px; text-align: center;'>
                                                            <table width='100%' border='0' cellpadding='0' cellspacing='0' role='presentation'>
                                                                <tr>
                                                                    <td style='text-align: center; padding: 10px 0;'>
                                                                        " . (file_exists($logoPath) ? "<img src='cid:logo_ae' alt='SERVICES-AE' style='max-width: 180px; height: auto; display: block; margin: 0 auto;'>" : "") . "
                                                                    </td>
                                                                </tr>
                                                            </table>
                                                            <table width='100%' border='0' cellpadding='0' cellspacing='0' role='presentation'>
                                                                <tr>
                                                                    <td style='padding: 10px 0;'>
                                                                        <div style='border-top: 1px solid #333333;'></div>
                                                                    </td>
                                                                </tr>
                                                            </table>
                                                            <table width='100%' border='0' cellpadding='0' cellspacing='0' role='presentation'>
                                                                <tr>
                                                                    <td style='text-align: center; padding: 10px 0;'>
                                                                        <h1 style='margin: 0; color: #ffffff; font-family: Montserrat, sans-serif; font-size: 22px; font-weight: 400; letter-spacing: 2px;'>
                                                                            CONFIRMATION DE RÉCEPTION
                                                                        </h1>
                                                                    </td>
                                                                </tr>
                                                            </table>
                                                        </td>
                                                    </tr>
                                                </tbody>
                                            </table>
                                        </td>
                                    </tr>
                                </tbody>
                            </table>
                            
                            <!-- Content Section -->
                            <table class='row' align='center' width='100%' border='0' cellpadding='0' cellspacing='0' role='presentation'>
                                <tbody>
                                    <tr>
                                        <td>
                                            <table class='row-content' align='center' border='0' cellpadding='0' cellspacing='0' role='presentation' style='background-color: #ffffff; padding: 30px 20px;'>
                                                <tbody>
                                                    <tr>
                                                        <td class='column'>
                                                            <p style='color: #333333; font-family: Montserrat, sans-serif; font-size: 16px; line-height: 1.6; margin: 0 0 20px 0;'>
                                                                Bonjour <strong>$firstName $lastName</strong>,
                                                            </p>
                                                            
                                                            <p style='color: #333333; font-family: Montserrat, sans-serif; font-size: 16px; line-height: 1.6; margin: 0 0 25px 0;'>
                                                                Nous avons bien reçu votre message et vous remercions de nous avoir contactés.
                                                            </p>
                                                            
                                                            <div class='message-box' style='border-left: 4px solid #ff6b35;'>
                                                                <h3 style='color: #333333; font-family: Montserrat, sans-serif; font-size: 18px; margin: 0 0 15px 0;'>
                                                                    📋 Récapitulatif de votre demande
                                                                </h3>
                                                                <p style='color: #666666; font-size: 14px; margin: 5px 0;'><strong>Sujet :</strong> " . ($subject ?: 'Contact depuis le site web') . "</p>
                                                                <p style='color: #666666; font-size: 14px; margin: 5px 0;'><strong>Email :</strong> $email</p>
                                                                " . ($phone ? "<p style='color: #666666; font-size: 14px; margin: 5px 0;'><strong>Téléphone :</strong> $phone</p>" : "") . "
                                                                <div style='background: #f8f9fa; padding: 15px; border-radius: 5px; margin: 15px 0;'>
                                                                    <p style='color: #333333; font-size: 14px; margin: 0; line-height: 1.5;'>
                                                                        <strong>Votre message :</strong><br>
                                                                        " . nl2br($message) . "
                                                                    </p>
                                                                </div>
                                                            </div>
                                                            
                                                            <div style='background: #e8f5e8; padding: 20px; border-radius: 8px; margin: 25px 0;'>
                                                                <h4 style='color: #28a745; font-family: Montserrat, sans-serif; font-size: 16px; margin: 0 0 15px 0;'>
                                                                    ✅ Notre engagement
                                                                </h4>
                                                                <ul style='color: #333333; font-size: 14px; line-height: 1.6; margin: 0; padding-left: 20px;'>
                                                                    <li>Nous vous répondrons dans un délai de 24 heures maximum</li>
                                                                    <li>Un technicien qualifié prendra en charge votre demande</li>
                                                                    <li>Nous vous proposerons une solution adaptée à vos besoins</li>
                                                                </ul>
                                                            </div>
                                                            
                                                            <div class='contact-info'>
                                                                <p style='margin: 0 0 10px 0; font-weight: bold; font-size: 16px;'>
                                                                    🚀 Besoin d'une réponse urgente ?
                                                                </p>
                                                                <p style='margin: 5px 0; font-size: 15px;'>
                                                                    📞 <strong>" . $tel . "</strong>
                                                                </p>
                                                                <p style='margin: 5px 0; font-size: 15px;'>
                                                                    📧 <strong>contact@services-ae.net</strong>
                                                                </p>
                                                            </div>
                                                        </td>
                                                    </tr>
                                                </tbody>
                                            </table>
                                        </td>
                                    </tr>
                                </tbody>
                            </table>
                            
                            <!-- Footer Section -->
                            <table class='row' align='center' width='100%' border='0' cellpadding='0' cellspacing='0' role='presentation'>
                                <tbody>
                                    <tr>
                                        <td>
                                            <table class='row-content' align='center' border='0' cellpadding='0' cellspacing='0' role='presentation' style='background-color: #f8f9fa; padding: 20px;'>
                                                <tbody>
                                                    <tr>
                                                        <td class='column' style='text-align: center;'>
                                                            <p style='color: #666666; font-family: Montserrat, sans-serif; font-size: 14px; margin: 0 0 10px 0;'>
                                                                <strong>SERVICES-AE</strong> - Votre partenaire informatique de confiance
                                                            </p>
                                                            <p style='color: #666666; font-family: Montserrat, sans-serif; font-size: 12px; margin: 0 0 10px 0;'>
                                                                Solutions IT • Maintenance • Réseaux • Vidéo Surveillance • Développement
                                                            </p>
                                                            <p style='color: #999999; font-size: 11px; margin: 0;'>
                                                                <em>Ce message a été généré automatiquement le " . date('d/m/Y à H:i:s') . "</em>
                                                            </p>
                                                        </td>
                                                    </tr>
                                                </tbody>
                                            </table>
                                        </td>
                                    </tr>
                                </tbody>
                            </table>
                        </td>
                    </tr>
                </tbody>
            </table>
        </body>
        </html>";
        
        $clientMail->Body = $confirmationBody;
        
        // Version texte de la confirmation
        $altTextContent = "SERVICES-AE - Confirmation de réception\n\n";
        $altTextContent .= "Bonjour $firstName $lastName,\n\n";
        $altTextContent .= "Nous avons bien reçu votre message et vous remercions de nous avoir contactés.\n\n";
        $altTextContent .= "Récapitulatif de votre demande :\n";
        $altTextContent .= "Sujet : " . ($subject ?: 'Contact depuis le site web') . "\n";
        $altTextContent .= "Email : $email\n";
        if ($phone) {
            $altTextContent .= "Téléphone : $phone\n";
        }
        $altTextContent .= "\nVotre message :\n$message\n\n";
        $altTextContent .= "Notre engagement :\n";
        $altTextContent .= "- Nous vous répondrons dans un délai de 24 heures maximum\n";
        $altTextContent .= "- Un technicien qualifié prendra en charge votre demande\n";
        $altTextContent .= "- Nous vous proposerons une solution adaptée à vos besoins\n\n";
        $altTextContent .= "Pour une réponse urgente :\n";
        $altTextContent .= "Téléphone : " . $tel . "\n";
        $altTextContent .= "Email : contact@services-ae.net\n\n";
        $altTextContent .= "SERVICES-AE - Votre partenaire informatique de confiance\n";
        $altTextContent .= "Message généré automatiquement le " . date('d/m/Y à H:i:s');
        
        $clientMail->AltBody = $altTextContent;
        
        // Envoi de l'email de confirmation
        $clientMail->send();
        
        $response['success'] = true;
        $response['message'] = 'Votre message a été envoyé avec succès. Un email de confirmation vous a été envoyé. Nous vous répondrons dans les plus brefs délais.';
        
    } catch (Exception $e) {
        $response['success'] = false;
        $response['message'] = 'Erreur lors de l\'envoi du message : ' . $e->getMessage();
        
        // Log de l'erreur pour le debug
        if (EMAIL_DEBUG) {
            error_log("Erreur PHPMailer: " . $mail->ErrorInfo);
        }
    }
    
    // Retourner la réponse en JSON pour AJAX
    if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
        header('Content-Type: application/json');
        echo json_encode($response);
        exit;
    } else {
        // Redirection avec message pour les soumissions normales
        if ($response['success']) {
            header("Location: contact-ae.php?success=1&message=" . urlencode($response['message']));
        } else {
            header("Location: contact-ae.php?error=1&message=" . urlencode($response['message']));
        }
        exit;
    }
} else {
    // Méthode non autorisée
    header("Location: contact-ae.php");
    exit;
}
?>