<?php
/**
 * Submit Contact Form Handler
 * Handles database insertion and shows a modern results screen.
 */

// Database Configuration
$db_host = "localhost";
$db_user = "root";
$db_pass = "";
$db_name = "portfolio_db";

// Initialize status variables
$status = "error";
$status_title = "เกิดข้อผิดพลาด";
$status_message = "ไม่สามารถประมวลผลข้อมูลการติดต่อของคุณได้ในขณะนี้";

// Check if form is submitted via POST
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // 1. Sanitize input data to prevent XSS
    $name = isset($_POST['name']) ? htmlspecialchars(strip_tags(trim($_POST['name']))) : '';
    $email = isset($_POST['email']) ? filter_var(trim($_POST['email']), FILTER_SANITIZE_EMAIL) : '';
    $phone = isset($_POST['phone']) ? htmlspecialchars(strip_tags(trim($_POST['phone']))) : '';
    $message = isset($_POST['message']) ? htmlspecialchars(strip_tags(trim($_POST['message']))) : '';

    // 2. Validate required inputs
    if (empty($name) || empty($email) || empty($message)) {
        $status_message = "กรุณากรอกข้อมูลที่จำเป็นให้ครบถ้วน (ชื่อ, อีเมล, และข้อความ)";
    } elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        $status_message = "รูปแบบอีเมลไม่ถูกต้อง กรุณาตรวจสอบอีกครั้ง";
    } else {
        try {
            // 3. Connect to MySQL Server (Create database if not exists)
            $conn = new mysqli($db_host, $db_user, $db_pass);
            
            if ($conn->connect_error) {
                throw new Exception("Connection failed: " . $conn->connect_error);
            }
            
            // Auto-create database if not exists
            $create_db_query = "CREATE DATABASE IF NOT EXISTS `$db_name` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci";
            $conn->query($create_db_query);
            
            // Select the database
            $conn->select_db($db_name);
            
            // Auto-create table messages if not exists
            $create_table_query = "CREATE TABLE IF NOT EXISTS `messages` (
                `id` INT AUTO_INCREMENT PRIMARY KEY,
                `name` VARCHAR(100) NOT NULL,
                `email` VARCHAR(100) NOT NULL,
                `phone` VARCHAR(20) DEFAULT NULL,
                `message` TEXT NOT NULL,
                `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
            ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;";
            $conn->query($create_table_query);
            
            // 4. Insert data using prepared statements
            $stmt = $conn->prepare("INSERT INTO `messages` (`name`, `email`, `phone`, `message`) VALUES (?, ?, ?, ?)");
            $stmt->bind_param("ssss", $name, $email, $phone, $message);
            
            if ($stmt->execute()) {
                $status = "success";
                $status_title = "ส่งข้อความสำเร็จ!";
                $status_message = "ขอบคุณสำหรับการติดต่อ คุณนัฐปธาน ได้รับข้อความของคุณแล้วและจะติดต่อกลับโดยเร็วที่สุด";
            } else {
                throw new Exception("Execution failed: " . $stmt->error);
            }
            
            // Close database resources
            $stmt->close();
            $conn->close();
            
        } catch (Exception $e) {
            // Fallback: log error and show informative message
            error_log("Database Error: " . $e->getMessage());
            $status_message = "มีข้อผิดพลาดทางเทคนิคในการเชื่อมต่อระบบฐานข้อมูล กรุณาลองใหม่อีกครั้งในภายหลัง";
        }
    }
} else {
    $status_message = "ไม่ได้รับอนุญาตให้เข้าถึงหน้านี้โดยตรง";
}
?>

<!DOCTYPE html>
<html lang="th">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title><?php echo $status_title; ?> | Natpathan Portfolio</title>
    <link rel="stylesheet" href="style.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
    <style>
        .result-wrapper {
            min-height: 100vh;
            display: flex;
            justify-content: center;
            align-items: center;
            background-color: var(--bg-main);
            padding: 2rem;
        }
        .result-card {
            max-width: 500px;
            width: 100%;
            text-align: center;
            padding: 3rem 2rem;
        }
        .result-icon {
            width: 80px;
            height: 80px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 2.5rem;
            margin: 0 auto 2rem;
        }
        .result-icon.success {
            background: rgba(34, 197, 94, 0.1);
            color: #22c55e;
            border: 2px solid rgba(34, 197, 94, 0.2);
            box-shadow: 0 0 20px rgba(34, 197, 94, 0.2);
        }
        .result-icon.error {
            background: rgba(239, 68, 68, 0.1);
            color: #ef4444;
            border: 2px solid rgba(239, 68, 68, 0.2);
            box-shadow: 0 0 20px rgba(239, 68, 68, 0.2);
        }
        .result-title {
            font-size: 2rem;
            margin-bottom: 1rem;
        }
        .result-desc {
            color: var(--text-secondary);
            margin-bottom: 2rem;
            font-size: 1.05rem;
        }
        .countdown-text {
            font-size: 0.85rem;
            color: var(--text-secondary);
            margin-top: 1.5rem;
        }
        .countdown-num {
            color: var(--color-accent);
            font-weight: 700;
        }
    </style>
</head>
<body>
    <div class="result-wrapper">
        <div class="result-card glass-card">
            <div class="result-icon <?php echo $status; ?>">
                <?php if ($status == "success"): ?>
                    <i class="fa-solid fa-circle-check"></i>
                <?php else: ?>
                    <i class="fa-solid fa-circle-xmark"></i>
                <?php endif; ?>
            </div>
            
            <h1 class="result-title <?php echo ($status == 'success') ? '' : 'text-gradient'; ?>" 
                style="<?php echo ($status == 'success') ? 'color: #22c55e;' : ''; ?>">
                <?php echo $status_title; ?>
            </h1>
            
            <p class="result-desc">
                <?php echo $status_message; ?>
            </p>
            
            <a href="index.html" class="btn btn-primary">
                <i class="fa-solid fa-arrow-left"></i> กลับสู่หน้าแรก
            </a>
            
            <div class="countdown-text">
                ระบบจะนำทางกลับสู่หน้าแรกโดยอัตโนมัติภายใน <span id="countdown" class="countdown-num">5</span> วินาที
            </div>
        </div>
    </div>

    <script>
        let seconds = 5;
        const countdownEl = document.getElementById('countdown');
        
        const interval = setInterval(() => {
            seconds--;
            countdownEl.innerText = seconds;
            if (seconds <= 0) {
                clearInterval(interval);
                window.location.href = "index.html";
            }
        }, 1000);
    </script>
</body>
</html>
