<?php
/**
 * Handler pentru formularul de contact (bilingual RO/EN).
 * Trimite mesajul către office@petcupartners.ro folosind funcția mail() a PHP.
 */

// Destinatarul fix
const DESTINATAR = 'office@petcupartners.ro';

// Determină limba (din POST sau cookie)
$lang_post   = isset($_POST['lang']) ? strtolower($_POST['lang']) : '';
$lang_cookie = isset($_COOKIE['lang']) ? strtolower($_COOKIE['lang']) : '';
if (in_array($lang_post, ['ro', 'en'], true)) {
    $lang = $lang_post;
} elseif (in_array($lang_cookie, ['ro', 'en'], true)) {
    $lang = $lang_cookie;
} else {
    $lang = 'ro';
}

// Încarcă stringurile limbii în $L (folosite pentru email și pentru redirect error labels)
require __DIR__ . '/lang/' . $lang . '.php';

// URL de întoarcere (păstrează limba)
function redirect_contact($extra_query = '') {
    global $lang;
    $q = 'pagina=contact&lang=' . urlencode($lang);
    if ($extra_query !== '') {
        $q .= '&' . $extra_query;
    }
    header('Location: index.php?' . $q);
    exit;
}

// Acceptă doar POST
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    redirect_contact();
}

// Honeypot — dacă e completat, ignorăm (bot)
if (!empty($_POST['website'])) {
    redirect_contact('trimis=1');
}

// Sanitizare intrări
$nume    = isset($_POST['nume'])    ? trim($_POST['nume'])    : '';
$telefon = isset($_POST['telefon']) ? trim($_POST['telefon']) : '';
$email   = isset($_POST['email'])   ? trim($_POST['email'])   : '';
$subiect = isset($_POST['subiect']) ? trim($_POST['subiect']) : '';
$mesaj   = isset($_POST['mesaj'])   ? trim($_POST['mesaj'])   : '';

// Validare câmpuri obligatorii
if ($nume === '' || $telefon === '' || $email === '' || $mesaj === '') {
    redirect_contact('eroare=campuri');
}

// Validare email
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    redirect_contact('eroare=email');
}

// Protecție CRLF injection pe antete
foreach ([$nume, $email, $telefon, $subiect] as $camp) {
    if (preg_match('/[\r\n]/', $camp)) {
        redirect_contact('eroare=trimitere');
    }
}

$site_name = $L['email_site_name'];

// Construire subiect email (folosește formularea limbii alese)
$subiect_email = '[Site ' . $site_name . '] ' . ($lang === 'en' ? 'New message from' : 'Mesaj nou de la') . ' ' . $nume;
if ($subiect !== '') {
    $subiect_email .= ' — ' . $subiect;
}

// Construire corp email (plain text, UTF-8)
$corp  = $L['email_body_intro'] . "\r\n";
$corp .= "================================================================\r\n\r\n";
$corp .= $L['email_body_name']    . "    " . $nume . "\r\n";
$corp .= $L['email_body_email']   . "   " . $email . "\r\n";
$corp .= $L['email_body_phone']   . "  " . $telefon . "\r\n";
if ($subiect !== '') {
    $corp .= $L['email_body_subject'] . " " . $subiect . "\r\n";
}
$corp .= "\r\n----------------------------------------------------------------\r\n";
$corp .= $L['email_body_msg'] . "\r\n\r\n";
$corp .= $mesaj . "\r\n\r\n";
$corp .= "----------------------------------------------------------------\r\n";
$corp .= $L['email_body_sent_at'] . " " . date('d.m.Y H:i:s') . "\r\n";
$corp .= $L['email_body_ip']      . "        " . (isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : $L['email_body_ip_unknown']) . "\r\n";
$corp .= "\r\n(lang: " . $lang . ")\r\n";

// Antete email (UTF-8, ca să fie corect afișate diacriticele)
$host = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : 'petcupartners.ro';
$from_email = 'no-reply@' . preg_replace('/^www\./', '', $host);

$antete  = 'From: ' . $L['email_from_label'] . ' <' . $from_email . '>' . "\r\n";
$antete .= 'Reply-To: ' . $nume . ' <' . $email . '>' . "\r\n";
$antete .= 'X-Mailer: PHP/' . phpversion() . "\r\n";
$antete .= 'MIME-Version: 1.0' . "\r\n";
$antete .= 'Content-Type: text/plain; charset=UTF-8' . "\r\n";
$antete .= 'Content-Transfer-Encoding: 8bit' . "\r\n";

// Codare subiect pentru diacritice (RFC 2047)
$subiect_encoded = '=?UTF-8?B?' . base64_encode($subiect_email) . '?=';

// Trimitere
$trimis = @mail(DESTINATAR, $subiect_encoded, $corp, $antete);

if ($trimis) {
    redirect_contact('trimis=1');
} else {
    error_log('[Contact form] Eșec trimitere email de la ' . $email);
    redirect_contact('eroare=trimitere');
}
