diff --git a/app/api/contact/route.ts b/app/api/contact/route.ts index 521626d..32cb42b 100644 --- a/app/api/contact/route.ts +++ b/app/api/contact/route.ts @@ -4,29 +4,47 @@ import nodemailer from "nodemailer" export async function POST(req: Request) { try { const body = await req.json() - const { name, email, phone, service, message, recaptcha } = body + const { name, email, phone, service, message, recaptchaToken, recaptchaAction } = body + const recaptchaSecret = + process.env.RECAPTCHA_SECRET_KEY || + "6LfqD1osAAAAAEbpEApPkiQUbyjdKYx2OvhY2XTk" + const minScore = Number(process.env.RECAPTCHA_MIN_SCORE) || 0.5 - // 1. Verify reCaptcha - const recaptchaResponse = await fetch( - `https://www.google.com/recaptcha/api/siteverify?secret=${process.env.RECAPTCHA_SECRET_KEY}&response=${recaptcha}`, - { method: "POST" } - ) + if (!recaptchaToken) { + return NextResponse.json({ error: "Missing reCaptcha token" }, { status: 400 }) + } + + // 1. Verify reCaptcha v3 + const verifyBody = new URLSearchParams({ + secret: recaptchaSecret, + response: recaptchaToken, + }) + const recaptchaResponse = await fetch("https://www.google.com/recaptcha/api/siteverify", { + method: "POST", + headers: { "Content-Type": "application/x-www-form-urlencoded" }, + body: verifyBody.toString(), + }) const recaptchaData = await recaptchaResponse.json() - // For local testing without secret key, we might skip this - if (process.env.RECAPTCHA_SECRET_KEY && !recaptchaData.success) { + if (!recaptchaData.success || recaptchaData.action !== recaptchaAction || recaptchaData.score < minScore) { return NextResponse.json({ error: "reCaptcha verification failed" }, { status: 400 }) } // 2. Configure Nodemailer // NOTE: In a real environment, you'd use your SMTP credentials (Gmail, SendGrid, etc.) + const smtpUser = process.env.SMTP_USER + const smtpPass = process.env.SMTP_PASS + if (!smtpUser || !smtpPass) { + return NextResponse.json({ error: "SMTP is not configured" }, { status: 500 }) + } + const transporter = nodemailer.createTransport({ host: process.env.SMTP_HOST || "smtp.gmail.com", port: Number(process.env.SMTP_PORT) || 587, secure: false, auth: { - user: process.env.SMTP_USER, - pass: process.env.SMTP_PASS, + user: smtpUser, + pass: smtpPass, }, }) @@ -35,58 +53,60 @@ export async function POST(req: Request) { + -
-
-

Új üzenet érkezett

+
+
SkyFly Travel - Uj uzenet / New message
+ +
+
Magyar
+
Nev
+
${name}
+
Email
+
${email}
+
Telefonszam
+
${phone || "-"}
+
Szolgaltatas tipusa
+
${service}
+
Uzenet
+
${message}
-
-
- Név -
${name}
-
-
- Email -
${email}
-
-
- Telefonszám -
${phone || "-"}
-
-
- Szolgáltatás típusa -
${service}
-
-
- Üzenet -
${message}
-
-
-
- © 2026 SkyFly Travel Landing Page System + +
+
English
+
Name
+
${name}
+
Email
+
${email}
+
Phone
+
${phone || "-"}
+
Service type
+
${service}
+
Message
+
${message}
+ +
` - - // 4. Send Email +// 4. Send Email await transporter.sendMail({ - from: `"SkyFly Web" <${process.env.SMTP_USER}>`, - to: "bognar.szialrd83@gmail.com", - subject: `Weboldal Üzenet: ${name} (${service})`, + from: `"SkyFly Web" <${process.env.MAIL_FROM || smtpUser}>`, + to: "bognar.szilard83@gmail.com", + subject: `Weboldal uzenet / Website message: ${name} (${service})`, html: htmlEmail, }) diff --git a/components/contact-form.tsx b/components/contact-form.tsx index 9f47ba4..8857894 100644 --- a/components/contact-form.tsx +++ b/components/contact-form.tsx @@ -1,18 +1,29 @@ "use client" -import React, { useState, useRef } from "react" +import React, { useEffect, useState } from "react" import { useLanguage } from "@/lib/language-context" import { Button } from "@/components/ui/button" import { Input } from "@/components/ui/input" import { Textarea } from "@/components/ui/textarea" import { Card } from "@/components/ui/card" -import { cn } from "@/lib/utils" -import ReCAPTCHA from "react-google-recaptcha" import { Send, CheckCircle2, AlertCircle } from "lucide-react" +declare global { + interface Window { + grecaptcha?: { + ready: (cb: () => void) => void + execute: (siteKey: string, options: { action: string }) => Promise + } + } +} + export default function ContactForm() { - const { t } = useLanguage() - const recaptchaRef = useRef(null) + const { t, language } = useLanguage() + const siteKey = + process.env.NEXT_PUBLIC_RECAPTCHA_SITE_KEY || + "6LfqD1osAAAAANd6P-3qin0cRdFQSGX92F02A3dE" + const recaptchaAction = "contact_form" + const [recaptchaReady, setRecaptchaReady] = useState(false) const [status, setStatus] = useState<"idle" | "loading" | "success" | "error">("idle") const [formData, setFormData] = useState({ @@ -24,6 +35,59 @@ export default function ContactForm() { consent: false }) + useEffect(() => { + if (!siteKey) return + const scriptId = "recaptcha-v3" + const onReady = () => { + window.grecaptcha?.ready(() => setRecaptchaReady(true)) + } + + if (document.getElementById(scriptId)) { + onReady() + return + } + + const script = document.createElement("script") + script.id = scriptId + script.src = `https://www.google.com/recaptcha/api.js?render=${siteKey}` + script.async = true + script.defer = true + script.onload = onReady + script.onerror = () => setRecaptchaReady(false) + document.head.appendChild(script) + }, [siteKey]) + + const waitForRecaptcha = (timeoutMs = 4000) => + new Promise((resolve, reject) => { + const started = Date.now() + const tick = () => { + if (window.grecaptcha) { + window.grecaptcha.ready(() => resolve()) + return + } + if (Date.now() - started >= timeoutMs) { + reject(new Error("reCAPTCHA not ready")) + return + } + setTimeout(tick, 150) + } + tick() + }) + + const getRecaptchaToken = async () => { + if (!window.grecaptcha) { + throw new Error("reCAPTCHA not ready") + } + return new Promise((resolve, reject) => { + window.grecaptcha?.ready(() => { + window.grecaptcha + ?.execute(siteKey, { action: recaptchaAction }) + .then(resolve) + .catch(reject) + }) + }) + } + const handleChange = (e: React.ChangeEvent) => { const { name, value, type } = e.target as any setFormData(prev => ({ @@ -35,10 +99,14 @@ export default function ContactForm() { const handleSubmit = async (e: React.FormEvent) => { e.preventDefault() - const recaptchaValue = recaptchaRef.current?.getValue() - if (!recaptchaValue) { - alert("Please complete the reCaptcha") - return + if (!recaptchaReady) { + try { + await waitForRecaptcha() + setRecaptchaReady(true) + } catch { + alert("reCAPTCHA is not ready yet. Please try again.") + return + } } if (!formData.consent) { @@ -51,16 +119,21 @@ export default function ContactForm() { try { // In a static export environment, this would hit a PHP script on the server // or an external API. Here we assume an API route for local testing. - const response = await fetch("/api/contact", { + const recaptchaToken = await getRecaptchaToken() + const response = await fetch("/contact.php", { method: "POST", headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ ...formData, recaptcha: recaptchaValue }) + body: JSON.stringify({ + ...formData, + recaptchaToken, + recaptchaAction, + language, + }) }) if (response.ok) { setStatus("success") setFormData({ name: "", email: "", phone: "", service: "REPTÉRI TRANSZFER", message: "", consent: false }) - recaptchaRef.current?.reset() } else { setStatus("error") } @@ -192,10 +265,9 @@ export default function ContactForm() { {/* reCaptcha */}
- + + A weboldalt reCAPTCHA v3 védi. +
{status === "error" && ( diff --git a/contact.php b/contact.php index af3c0a7..ad74403 100644 --- a/contact.php +++ b/contact.php @@ -1,11 +1,6 @@ $message]; + if (!empty($_GET["debug"]) && $details) { + $response["details"] = $details; + } + echo json_encode($response); + exit; +} + if ($_SERVER["REQUEST_METHOD"] === "POST") { $data = json_decode(file_get_contents("php://input"), true); - - $name = strip_tags($data["name"]); - $email = filter_var($data["email"], FILTER_SANITIZE_EMAIL); - $phone = strip_tags($data["phone"]); - $service = strip_tags($data["service"]); - $message = strip_tags($data["message"]); - $recaptcha = $data["recaptcha"]; - // 1. Verify reCaptcha - $verifyResponse = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=$secretKey&response=$recaptcha"); - $responseData = json_decode($verifyResponse); + $name = strip_tags($data["name"] ?? ""); + $email = filter_var($data["email"] ?? "", FILTER_SANITIZE_EMAIL); + $phone = strip_tags($data["phone"] ?? ""); + $service = strip_tags($data["service"] ?? ""); + $message = strip_tags($data["message"] ?? ""); + $language = $data["language"] ?? "hu"; + $recaptchaToken = $data["recaptchaToken"] ?? ""; + $recaptchaAction = $data["recaptchaAction"] ?? ""; - if (!$responseData->success) { - http_response_code(400); - echo json_encode(["error" => "reCaptcha verification failed"]); - exit; + if (!$recaptchaToken) { + json_error("Missing reCaptcha token"); } - // 2. Prepare HTML Email - $subject = "Weboldal Üzenet: $name ($service)"; - + // 1. Verify reCaptcha v3 + $verifyResponse = null; + if (function_exists("curl_init")) { + $ch = curl_init("https://www.google.com/recaptcha/api/siteverify"); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + curl_setopt($ch, CURLOPT_POST, true); + curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([ + "secret" => $secretKey, + "response" => $recaptchaToken, + ])); + $verifyResponse = curl_exec($ch); + curl_close($ch); + } else { + $verifyResponse = file_get_contents( + "https://www.google.com/recaptcha/api/siteverify?secret=$secretKey&response=$recaptchaToken" + ); + } + + if ($verifyResponse === false || !$verifyResponse) { + $last = error_get_last(); + json_error("reCaptcha verification failed", 400, $last ? $last["message"] : "No response"); + } + + $responseData = json_decode($verifyResponse); + if (!$responseData) { + json_error("reCaptcha verification failed", 400, "Invalid JSON response"); + } + + if ( + !$responseData->success || + $responseData->action !== $expectedAction || + $responseData->score < $minScore + ) { + json_error("reCaptcha verification failed", 400, json_encode($responseData)); + } + + $isEnglish = $language === "en"; + $subject = $isEnglish + ? "Website message: $name ($service)" + : "Weboldal uzenet: $name ($service)"; + + $title = $isEnglish ? "New message" : "Uj uzenet"; + $labelName = $isEnglish ? "Name" : "Nev"; + $labelEmail = $isEnglish ? "Email" : "Email"; + $labelPhone = $isEnglish ? "Phone" : "Telefonszam"; + $labelService = $isEnglish ? "Service type" : "Szolgaltatas tipusa"; + $labelMessage = $isEnglish ? "Message" : "Uzenet"; + $htmlEmail = " + + +
-
-

Új üzenet érkezett

+
+ SkyFly Travel - $title
-
-

Név: $name

-

Email: $email

-

Telefonszám: $phone

-

Szolgáltatás: $service

-
-

Üzenet:

-

$message

+
+

$labelName: $name

+

$labelEmail: $email

+

$labelPhone: $phone

+

$labelService: $service

+

$labelMessage:

+

$message

@@ -64,13 +114,16 @@ if ($_SERVER["REQUEST_METHOD"] === "POST") { $headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n"; $headers .= "From: " . "\r\n"; + if ($email) { + $headers .= "Reply-To: $email" . "\r\n"; + } // 3. Send Email if (mail($toEmail, $subject, $htmlEmail, $headers)) { echo json_encode(["success" => true]); } else { - http_response_code(500); - echo json_encode(["error" => "Failed to send email"]); + $last = error_get_last(); + json_error("Failed to send email", 500, $last ? $last["message"] : "mail() returned false"); } } ?> diff --git a/images/1.jpg b/images/1.jpg index 7fa02f7..4cdcff1 100644 Binary files a/images/1.jpg and b/images/1.jpg differ diff --git a/images/1_cut.jpg b/images/1_cut.jpg index 948cc13..b423745 100644 Binary files a/images/1_cut.jpg and b/images/1_cut.jpg differ diff --git a/images/2.jpg b/images/2.jpg index 9936e90..de18beb 100644 Binary files a/images/2.jpg and b/images/2.jpg differ diff --git a/images/3.jpg b/images/3.jpg index 2441aed..fcfb505 100644 Binary files a/images/3.jpg and b/images/3.jpg differ diff --git a/images/Audi A6.JPG b/images/Audi A6.JPG index f262264..0913b03 100644 Binary files a/images/Audi A6.JPG and b/images/Audi A6.JPG differ diff --git a/images/E-osztály2.JPG b/images/E-osztály2.JPG index cc93fc5..ed7b335 100644 Binary files a/images/E-osztály2.JPG and b/images/E-osztály2.JPG differ diff --git a/images/E-osztály4.JPG b/images/E-osztály4.JPG index 19d4d8e..235da7b 100644 Binary files a/images/E-osztály4.JPG and b/images/E-osztály4.JPG differ diff --git a/images/Flotta3.jpg b/images/Flotta3.jpg index b4e8272..9143e50 100644 Binary files a/images/Flotta3.jpg and b/images/Flotta3.jpg differ diff --git a/images/Ford Mondeo fehér MUH416.JPG b/images/Ford Mondeo fehér MUH416.JPG index dab7966..f17ae7c 100644 Binary files a/images/Ford Mondeo fehér MUH416.JPG and b/images/Ford Mondeo fehér MUH416.JPG differ diff --git a/images/Ford Transit.jpg b/images/Ford Transit.jpg index 0833639..66cd355 100644 Binary files a/images/Ford Transit.jpg and b/images/Ford Transit.jpg differ diff --git a/images/Ford_tourneo_fekete1.JPG b/images/Ford_tourneo_fekete1.JPG index 6b1fa93..c42e803 100644 Binary files a/images/Ford_tourneo_fekete1.JPG and b/images/Ford_tourneo_fekete1.JPG differ diff --git a/images/Ford_tourneo_fekete2.JPG b/images/Ford_tourneo_fekete2.JPG index b2a2d31..daeb0ff 100644 Binary files a/images/Ford_tourneo_fekete2.JPG and b/images/Ford_tourneo_fekete2.JPG differ diff --git a/images/IMG_0494.JPG b/images/IMG_0494.JPG index cb1043c..c68b9b0 100644 Binary files a/images/IMG_0494.JPG and b/images/IMG_0494.JPG differ diff --git a/images/MB 0404-lq.jpg b/images/MB 0404-lq.jpg index 108dc9a..3b427f1 100644 Binary files a/images/MB 0404-lq.jpg and b/images/MB 0404-lq.jpg differ diff --git a/images/MB Sprinter (1).jpg b/images/MB Sprinter (1).jpg index fcdf12b..ec3468e 100644 Binary files a/images/MB Sprinter (1).jpg and b/images/MB Sprinter (1).jpg differ diff --git a/images/MB Sprinter (2).jpg b/images/MB Sprinter (2).jpg index 199dca8..e00cca1 100644 Binary files a/images/MB Sprinter (2).jpg and b/images/MB Sprinter (2).jpg differ diff --git a/images/NND.jpg b/images/NND.jpg index 5853108..421a21f 100644 Binary files a/images/NND.jpg and b/images/NND.jpg differ diff --git a/images/Opel Vivaro.JPG b/images/Opel Vivaro.JPG index ecc73b6..6aba934 100644 Binary files a/images/Opel Vivaro.JPG and b/images/Opel Vivaro.JPG differ diff --git a/images/PVR Skoda.JPG b/images/PVR Skoda.JPG index 9528017..d3f4e7b 100644 Binary files a/images/PVR Skoda.JPG and b/images/PVR Skoda.JPG differ diff --git a/images/Renault Grand Scenic es Renault Trafic.jpg b/images/Renault Grand Scenic es Renault Trafic.jpg index d0d1663..705c4e8 100644 Binary files a/images/Renault Grand Scenic es Renault Trafic.jpg and b/images/Renault Grand Scenic es Renault Trafic.jpg differ diff --git a/images/Renault Grand Scenic es Renault Trafic2.jpg b/images/Renault Grand Scenic es Renault Trafic2.jpg index 36c306c..4856988 100644 Binary files a/images/Renault Grand Scenic es Renault Trafic2.jpg and b/images/Renault Grand Scenic es Renault Trafic2.jpg differ diff --git a/images/Renault Grand Scenic es Renault Trafic_cut.jpg b/images/Renault Grand Scenic es Renault Trafic_cut.jpg index 53f4abb..e882c74 100644 Binary files a/images/Renault Grand Scenic es Renault Trafic_cut.jpg and b/images/Renault Grand Scenic es Renault Trafic_cut.jpg differ diff --git a/images/Setra 315 GT-HD.JPG b/images/Setra 315 GT-HD.JPG index 901684b..ad63364 100644 Binary files a/images/Setra 315 GT-HD.JPG and b/images/Setra 315 GT-HD.JPG differ diff --git a/images/Setra TOPP CLASS 415 HD (1)-lq.jpg b/images/Setra TOPP CLASS 415 HD (1)-lq.jpg index 2193ef5..09e5089 100644 Binary files a/images/Setra TOPP CLASS 415 HD (1)-lq.jpg and b/images/Setra TOPP CLASS 415 HD (1)-lq.jpg differ diff --git a/images/Setra TOPP CLASS 415 HD (2).jpg b/images/Setra TOPP CLASS 415 HD (2).jpg index e0c1ac7..80ce550 100644 Binary files a/images/Setra TOPP CLASS 415 HD (2).jpg and b/images/Setra TOPP CLASS 415 HD (2).jpg differ diff --git a/images/Skoda Enyaq.jpg b/images/Skoda Enyaq.jpg index ab9293d..1cf47e8 100644 Binary files a/images/Skoda Enyaq.jpg and b/images/Skoda Enyaq.jpg differ diff --git a/images/Skoda SuperB-inside.jpeg b/images/Skoda SuperB-inside.jpeg index e9abe88..c7ebff8 100644 Binary files a/images/Skoda SuperB-inside.jpeg and b/images/Skoda SuperB-inside.jpeg differ diff --git a/images/Skoda SuperB.jpeg b/images/Skoda SuperB.jpeg index 4662cd6..a6cb092 100644 Binary files a/images/Skoda SuperB.jpeg and b/images/Skoda SuperB.jpeg differ diff --git a/images/Skoda_barna.jpg b/images/Skoda_barna.jpg index 9675456..4b29b4b 100644 Binary files a/images/Skoda_barna.jpg and b/images/Skoda_barna.jpg differ diff --git a/images/Szolg2.jpg b/images/Szolg2.jpg index a44c600..e078862 100644 Binary files a/images/Szolg2.jpg and b/images/Szolg2.jpg differ diff --git a/images/Trafic barna.jpg b/images/Trafic barna.jpg index c185c54..c17710c 100644 Binary files a/images/Trafic barna.jpg and b/images/Trafic barna.jpg differ diff --git a/images/csalad4.jpg b/images/csalad4.jpg index f3e7450..a75f399 100644 Binary files a/images/csalad4.jpg and b/images/csalad4.jpg differ diff --git a/images/header.jpg b/images/header.jpg index b5a554f..6dd135c 100644 Binary files a/images/header.jpg and b/images/header.jpg differ diff --git a/images/m0_01.jpg b/images/m0_01.jpg index b027745..3241c12 100644 Binary files a/images/m0_01.jpg and b/images/m0_01.jpg differ diff --git a/images/m0_02.jpg b/images/m0_02.jpg index b22551b..d3985d9 100644 Binary files a/images/m0_02.jpg and b/images/m0_02.jpg differ diff --git a/images/m0_03.jpg b/images/m0_03.jpg index 94014e2..35e83e8 100644 Binary files a/images/m0_03.jpg and b/images/m0_03.jpg differ diff --git a/images/m0_04.jpg b/images/m0_04.jpg index d807251..a73a2d8 100644 Binary files a/images/m0_04.jpg and b/images/m0_04.jpg differ diff --git a/images/m0_05.jpg b/images/m0_05.jpg index 1ea78f3..d51067e 100644 Binary files a/images/m0_05.jpg and b/images/m0_05.jpg differ diff --git a/images/m0_06.jpg b/images/m0_06.jpg index a72048c..daf6aeb 100644 Binary files a/images/m0_06.jpg and b/images/m0_06.jpg differ diff --git a/images/m0_07.jpg b/images/m0_07.jpg index 52dea8c..8bbaa5f 100644 Binary files a/images/m0_07.jpg and b/images/m0_07.jpg differ diff --git a/images/m0_08.jpg b/images/m0_08.jpg index d069564..120b4ef 100644 Binary files a/images/m0_08.jpg and b/images/m0_08.jpg differ diff --git a/images/m0_09.jpg b/images/m0_09.jpg index ce90004..67fb758 100644 Binary files a/images/m0_09.jpg and b/images/m0_09.jpg differ diff --git a/images/m0_10.jpg b/images/m0_10.jpg index 77eb6fd..4a946de 100644 Binary files a/images/m0_10.jpg and b/images/m0_10.jpg differ diff --git a/images/m0_11.jpg b/images/m0_11.jpg index ddc1330..9be46e6 100644 Binary files a/images/m0_11.jpg and b/images/m0_11.jpg differ diff --git a/images/m0_12.jpg b/images/m0_12.jpg index 77eb6fd..4a946de 100644 Binary files a/images/m0_12.jpg and b/images/m0_12.jpg differ diff --git a/images/m0_13.jpg b/images/m0_13.jpg index bacc614..4c139b4 100644 Binary files a/images/m0_13.jpg and b/images/m0_13.jpg differ diff --git a/images/m0_14.jpg b/images/m0_14.jpg index 77eb6fd..4a946de 100644 Binary files a/images/m0_14.jpg and b/images/m0_14.jpg differ diff --git a/images/m1_01.jpg b/images/m1_01.jpg index b027745..3241c12 100644 Binary files a/images/m1_01.jpg and b/images/m1_01.jpg differ diff --git a/images/m1_02.jpg b/images/m1_02.jpg index d4a794c..eeaa9f5 100644 Binary files a/images/m1_02.jpg and b/images/m1_02.jpg differ diff --git a/images/m1_03.jpg b/images/m1_03.jpg index a20ffa7..871fc45 100644 Binary files a/images/m1_03.jpg and b/images/m1_03.jpg differ diff --git a/images/m1_04.jpg b/images/m1_04.jpg index daa2ec5..2a42211 100644 Binary files a/images/m1_04.jpg and b/images/m1_04.jpg differ diff --git a/images/m1_05.jpg b/images/m1_05.jpg index 4f35f17..fe1876f 100644 Binary files a/images/m1_05.jpg and b/images/m1_05.jpg differ diff --git a/images/m1_06.jpg b/images/m1_06.jpg index 3553a40..8d1c927 100644 Binary files a/images/m1_06.jpg and b/images/m1_06.jpg differ diff --git a/images/m1_07.jpg b/images/m1_07.jpg index 849f4eb..070ad19 100644 Binary files a/images/m1_07.jpg and b/images/m1_07.jpg differ diff --git a/images/m1_08.jpg b/images/m1_08.jpg index 7f88fbc..0080ec3 100644 Binary files a/images/m1_08.jpg and b/images/m1_08.jpg differ diff --git a/images/m1_09.jpg b/images/m1_09.jpg index 0fd574c..623200a 100644 Binary files a/images/m1_09.jpg and b/images/m1_09.jpg differ diff --git a/images/m1_10.jpg b/images/m1_10.jpg index 7f88fbc..0080ec3 100644 Binary files a/images/m1_10.jpg and b/images/m1_10.jpg differ diff --git a/images/m1_11.jpg b/images/m1_11.jpg index d92770a..e41d6de 100644 Binary files a/images/m1_11.jpg and b/images/m1_11.jpg differ diff --git a/images/m1_12.jpg b/images/m1_12.jpg index 7f88fbc..0080ec3 100644 Binary files a/images/m1_12.jpg and b/images/m1_12.jpg differ diff --git a/images/m1_15.jpg b/images/m1_15.jpg index 5f1b51d..6074e1c 100644 Binary files a/images/m1_15.jpg and b/images/m1_15.jpg differ diff --git a/images/m1_15.jpg.tmp b/images/m1_15.jpg.tmp deleted file mode 100644 index 6074e1c..0000000 Binary files a/images/m1_15.jpg.tmp and /dev/null differ diff --git a/images/map1_03.jpg b/images/map1_03.jpg index 0d01738..3207af5 100644 Binary files a/images/map1_03.jpg and b/images/map1_03.jpg differ diff --git a/images/map1_04.jpg b/images/map1_04.jpg index 6ee574f..bfaea9d 100644 Binary files a/images/map1_04.jpg and b/images/map1_04.jpg differ diff --git a/images/map1_05.jpg b/images/map1_05.jpg index b1f2359..546d0f3 100644 Binary files a/images/map1_05.jpg and b/images/map1_05.jpg differ diff --git a/images/map1_06.jpg b/images/map1_06.jpg index 0648c5f..00b623e 100644 Binary files a/images/map1_06.jpg and b/images/map1_06.jpg differ diff --git a/images/map1_07.jpg b/images/map1_07.jpg index d26f7b3..f211e51 100644 Binary files a/images/map1_07.jpg and b/images/map1_07.jpg differ diff --git a/images/map1_08.jpg b/images/map1_08.jpg index 3f2836e..3248d84 100644 Binary files a/images/map1_08.jpg and b/images/map1_08.jpg differ diff --git a/images/map1_09.jpg b/images/map1_09.jpg index b336ecb..7172a5a 100644 Binary files a/images/map1_09.jpg and b/images/map1_09.jpg differ diff --git a/images/map2_01.jpg b/images/map2_01.jpg index 871a073..84b86c3 100644 Binary files a/images/map2_01.jpg and b/images/map2_01.jpg differ diff --git a/images/map2_03.jpg b/images/map2_03.jpg index cd0d43c..abea177 100644 Binary files a/images/map2_03.jpg and b/images/map2_03.jpg differ diff --git a/images/map2_04.jpg b/images/map2_04.jpg index 1f849a2..b6757b8 100644 Binary files a/images/map2_04.jpg and b/images/map2_04.jpg differ diff --git a/images/map2_05.jpg b/images/map2_05.jpg index bfcdf1e..f2fa2ea 100644 Binary files a/images/map2_05.jpg and b/images/map2_05.jpg differ diff --git a/images/map2_06.jpg b/images/map2_06.jpg index 7192cf1..83b040b 100644 Binary files a/images/map2_06.jpg and b/images/map2_06.jpg differ diff --git a/images/map2_07.jpg b/images/map2_07.jpg index fb66692..4cc4da9 100644 Binary files a/images/map2_07.jpg and b/images/map2_07.jpg differ diff --git a/images/map2_08.jpg b/images/map2_08.jpg index 8ff14fa..19258ac 100644 Binary files a/images/map2_08.jpg and b/images/map2_08.jpg differ diff --git a/images/merci+rep.jpg b/images/merci+rep.jpg index a44c600..e078862 100644 Binary files a/images/merci+rep.jpg and b/images/merci+rep.jpg differ diff --git a/images/mobile/BTS.jpg b/images/mobile/BTS.jpg index 616e270..99dc395 100644 Binary files a/images/mobile/BTS.jpg and b/images/mobile/BTS.jpg differ diff --git a/images/mobile/BUD.jpg b/images/mobile/BUD.jpg index 1eaf077..92d6b29 100644 Binary files a/images/mobile/BUD.jpg and b/images/mobile/BUD.jpg differ diff --git a/images/mobile/VIE.jpg b/images/mobile/VIE.jpg index e68f8ab..2b6ca93 100644 Binary files a/images/mobile/VIE.jpg and b/images/mobile/VIE.jpg differ diff --git a/images/mobile/map.jpg b/images/mobile/map.jpg index 905c7a8..723fe08 100644 Binary files a/images/mobile/map.jpg and b/images/mobile/map.jpg differ diff --git a/images/mobile/map_mobile_03.jpg b/images/mobile/map_mobile_03.jpg index 0e1a414..b05f9c6 100644 Binary files a/images/mobile/map_mobile_03.jpg and b/images/mobile/map_mobile_03.jpg differ diff --git a/images/mobile/map_mobile_05.jpg b/images/mobile/map_mobile_05.jpg index 354a28e..31843c2 100644 Binary files a/images/mobile/map_mobile_05.jpg and b/images/mobile/map_mobile_05.jpg differ diff --git a/images/skoda.jpg b/images/skoda.jpg index ab9293d..1cf47e8 100644 Binary files a/images/skoda.jpg and b/images/skoda.jpg differ diff --git a/images/skyflytravel.hu.17aug.jpg b/images/skyflytravel.hu.17aug.jpg index e697e6a..028c8ed 100644 Binary files a/images/skyflytravel.hu.17aug.jpg and b/images/skyflytravel.hu.17aug.jpg differ diff --git a/images/skyflytravel.hu.17szept.jpg b/images/skyflytravel.hu.17szept.jpg index a36d548..94b36c4 100644 Binary files a/images/skyflytravel.hu.17szept.jpg and b/images/skyflytravel.hu.17szept.jpg differ diff --git a/images/skyflytravel.hu.18apr.jpg b/images/skyflytravel.hu.18apr.jpg index 23e9387..ae64661 100644 Binary files a/images/skyflytravel.hu.18apr.jpg and b/images/skyflytravel.hu.18apr.jpg differ diff --git a/images/skyflytravel.hu.18febr.jpg b/images/skyflytravel.hu.18febr.jpg index d618586..6864e71 100644 Binary files a/images/skyflytravel.hu.18febr.jpg and b/images/skyflytravel.hu.18febr.jpg differ diff --git a/images/skyflytravel.hu.18marc.jpg b/images/skyflytravel.hu.18marc.jpg index 220a927..c9e6890 100644 Binary files a/images/skyflytravel.hu.18marc.jpg and b/images/skyflytravel.hu.18marc.jpg differ diff --git a/images/sol2_02.jpg b/images/sol2_02.jpg index f10b4a3..502ff95 100644 Binary files a/images/sol2_02.jpg and b/images/sol2_02.jpg differ diff --git a/images/sol2_04.jpg b/images/sol2_04.jpg index c4ed55a..1279813 100644 Binary files a/images/sol2_04.jpg and b/images/sol2_04.jpg differ diff --git a/images/sol2_06.jpg b/images/sol2_06.jpg index 66b1721..eef23b4 100644 Binary files a/images/sol2_06.jpg and b/images/sol2_06.jpg differ diff --git a/images/sol_02.jpg b/images/sol_02.jpg index 94bb77d..599f4bb 100644 Binary files a/images/sol_02.jpg and b/images/sol_02.jpg differ diff --git a/images/sol_04.jpg b/images/sol_04.jpg index 74dde43..c675614 100644 Binary files a/images/sol_04.jpg and b/images/sol_04.jpg differ diff --git a/images/sol_06.jpg b/images/sol_06.jpg index b7ad876..bbd0aac 100644 Binary files a/images/sol_06.jpg and b/images/sol_06.jpg differ diff --git a/images/t1_01.jpg b/images/t1_01.jpg index 65e67cc..35b0c6d 100644 Binary files a/images/t1_01.jpg and b/images/t1_01.jpg differ diff --git a/images/t1_02.jpg b/images/t1_02.jpg index 05af129..03435a2 100644 Binary files a/images/t1_02.jpg and b/images/t1_02.jpg differ diff --git a/images/t1_03.jpg b/images/t1_03.jpg index c760c3c..7c0fe24 100644 Binary files a/images/t1_03.jpg and b/images/t1_03.jpg differ diff --git a/images/t1_04.jpg b/images/t1_04.jpg index 8891ccf..1c271d2 100644 Binary files a/images/t1_04.jpg and b/images/t1_04.jpg differ diff --git a/images/t1_05.jpg b/images/t1_05.jpg index b40cdb0..ccf19d5 100644 Binary files a/images/t1_05.jpg and b/images/t1_05.jpg differ diff --git a/images/t1_06_02.jpg b/images/t1_06_02.jpg index 9eea3b1..1c93582 100644 Binary files a/images/t1_06_02.jpg and b/images/t1_06_02.jpg differ diff --git a/images/t1_06_03.jpg b/images/t1_06_03.jpg index 78aff32..70663ec 100644 Binary files a/images/t1_06_03.jpg and b/images/t1_06_03.jpg differ diff --git a/images/t1_06_04.jpg b/images/t1_06_04.jpg index 7ff5f42..612d0c5 100644 Binary files a/images/t1_06_04.jpg and b/images/t1_06_04.jpg differ diff --git a/images/t1_06o_02.jpg b/images/t1_06o_02.jpg index b5cbb70..d2fdae8 100644 Binary files a/images/t1_06o_02.jpg and b/images/t1_06o_02.jpg differ diff --git a/images/t1_06o_03.jpg b/images/t1_06o_03.jpg index 1b9f9e9..3f4399c 100644 Binary files a/images/t1_06o_03.jpg and b/images/t1_06o_03.jpg differ diff --git a/images/t1_06o_04.jpg b/images/t1_06o_04.jpg index 820ee42..eadf8a9 100644 Binary files a/images/t1_06o_04.jpg and b/images/t1_06o_04.jpg differ diff --git a/images/t1_07.jpg b/images/t1_07.jpg index 9317713..390b00c 100644 Binary files a/images/t1_07.jpg and b/images/t1_07.jpg differ diff --git a/images/t1_08.jpg b/images/t1_08.jpg index 6e3e548..89c0a72 100644 Binary files a/images/t1_08.jpg and b/images/t1_08.jpg differ diff --git a/images/t1_09.jpg b/images/t1_09.jpg index 626956b..03d13e3 100644 Binary files a/images/t1_09.jpg and b/images/t1_09.jpg differ diff --git a/images/t1_10.jpg b/images/t1_10.jpg index c286394..a574921 100644 Binary files a/images/t1_10.jpg and b/images/t1_10.jpg differ diff --git a/images/t1_11.jpg b/images/t1_11.jpg index 685e543..3af1724 100644 Binary files a/images/t1_11.jpg and b/images/t1_11.jpg differ diff --git a/images/t1_12.jpg b/images/t1_12.jpg index 965357a..7efc731 100644 Binary files a/images/t1_12.jpg and b/images/t1_12.jpg differ diff --git a/images/t1_13.jpg b/images/t1_13.jpg index ecc83ea..0e16583 100644 Binary files a/images/t1_13.jpg and b/images/t1_13.jpg differ diff --git a/images/t1_14.jpg b/images/t1_14.jpg index 78dc186..5f2549e 100644 Binary files a/images/t1_14.jpg and b/images/t1_14.jpg differ diff --git a/images/t1_15.jpg b/images/t1_15.jpg index c0c85a3..ae69666 100644 Binary files a/images/t1_15.jpg and b/images/t1_15.jpg differ diff --git a/images/t1_16.jpg b/images/t1_16.jpg index 5261a7a..02810df 100644 Binary files a/images/t1_16.jpg and b/images/t1_16.jpg differ diff --git a/images/t1_17.jpg b/images/t1_17.jpg index f1a2a9d..1c80f34 100644 Binary files a/images/t1_17.jpg and b/images/t1_17.jpg differ diff --git a/images/t1_18.jpg b/images/t1_18.jpg index 87d31a3..ec7ceca 100644 Binary files a/images/t1_18.jpg and b/images/t1_18.jpg differ diff --git a/images/t1_20.jpg b/images/t1_20.jpg index ad370e9..3d9bbda 100644 Binary files a/images/t1_20.jpg and b/images/t1_20.jpg differ diff --git a/images/t1_21.jpg b/images/t1_21.jpg index 77187ae..905453e 100644 Binary files a/images/t1_21.jpg and b/images/t1_21.jpg differ diff --git a/images/t1_23.jpg b/images/t1_23.jpg index b7a3e33..bc1285c 100644 Binary files a/images/t1_23.jpg and b/images/t1_23.jpg differ diff --git a/images/t1_24.jpg b/images/t1_24.jpg index 6e4a413..38cb9e0 100644 Binary files a/images/t1_24.jpg and b/images/t1_24.jpg differ diff --git a/images/t1_25.jpg b/images/t1_25.jpg index 7ded147..94dfa1e 100644 Binary files a/images/t1_25.jpg and b/images/t1_25.jpg differ diff --git a/images/t1_27.jpg b/images/t1_27.jpg index 25d90f9..eca5bfd 100644 Binary files a/images/t1_27.jpg and b/images/t1_27.jpg differ diff --git a/images/t1_28.jpg b/images/t1_28.jpg index 848c231..3df28ed 100644 Binary files a/images/t1_28.jpg and b/images/t1_28.jpg differ diff --git a/images/t1_31.jpg b/images/t1_31.jpg index ea4a2f4..c696eb7 100644 Binary files a/images/t1_31.jpg and b/images/t1_31.jpg differ diff --git a/images/t1_34.jpg b/images/t1_34.jpg index 333c705..a85fd72 100644 Binary files a/images/t1_34.jpg and b/images/t1_34.jpg differ diff --git a/images/t1_35.jpg b/images/t1_35.jpg index b035d75..7b52356 100644 Binary files a/images/t1_35.jpg and b/images/t1_35.jpg differ diff --git a/images/t1_36.jpg b/images/t1_36.jpg index fa3873f..c14182b 100644 Binary files a/images/t1_36.jpg and b/images/t1_36.jpg differ diff --git a/images/t3_01.jpg b/images/t3_01.jpg index df38bb1..5d13bf9 100644 Binary files a/images/t3_01.jpg and b/images/t3_01.jpg differ diff --git a/images/t3_02.jpg b/images/t3_02.jpg index 9a24acb..450c322 100644 Binary files a/images/t3_02.jpg and b/images/t3_02.jpg differ diff --git a/images/t3_03.jpg b/images/t3_03.jpg index fde4661..ec1a157 100644 Binary files a/images/t3_03.jpg and b/images/t3_03.jpg differ diff --git a/images/t3_04.jpg b/images/t3_04.jpg index 094cac6..db86ae8 100644 Binary files a/images/t3_04.jpg and b/images/t3_04.jpg differ diff --git a/images/t3_05.jpg b/images/t3_05.jpg index d1abbd9..f904ee4 100644 Binary files a/images/t3_05.jpg and b/images/t3_05.jpg differ diff --git a/images/t3_06.jpg b/images/t3_06.jpg index e8e3947..47a5296 100644 Binary files a/images/t3_06.jpg and b/images/t3_06.jpg differ diff --git a/images/t3_07.jpg b/images/t3_07.jpg index 7e0c9fb..d10cfb8 100644 Binary files a/images/t3_07.jpg and b/images/t3_07.jpg differ diff --git a/images/t3_08.jpg b/images/t3_08.jpg index 7aa354d..6ea0507 100644 Binary files a/images/t3_08.jpg and b/images/t3_08.jpg differ diff --git a/images/t3_10.jpg b/images/t3_10.jpg index b7a3e33..bc1285c 100644 Binary files a/images/t3_10.jpg and b/images/t3_10.jpg differ diff --git a/images/vito.jpg b/images/vito.jpg index 86a1ae9..95759c5 100644 Binary files a/images/vito.jpg and b/images/vito.jpg differ diff --git a/images/zonnen.jpg b/images/zonnen.jpg index d11f353..b689fe1 100644 Binary files a/images/zonnen.jpg and b/images/zonnen.jpg differ diff --git a/public/images/airport.jpg b/public/images/airport.jpg index 5853108..421a21f 100644 Binary files a/public/images/airport.jpg and b/public/images/airport.jpg differ diff --git a/public/images/family.jpg b/public/images/family.jpg index f3e7450..a75f399 100644 Binary files a/public/images/family.jpg and b/public/images/family.jpg differ diff --git a/public/images/fleet-modern.jpg b/public/images/fleet-modern.jpg index ab9293d..1cf47e8 100644 Binary files a/public/images/fleet-modern.jpg and b/public/images/fleet-modern.jpg differ diff --git a/public/images/fleet/e-class.jpg b/public/images/fleet/e-class.jpg index 7936f13..1492804 100644 Binary files a/public/images/fleet/e-class.jpg and b/public/images/fleet/e-class.jpg differ diff --git a/public/images/fleet/superb.jpg b/public/images/fleet/superb.jpg index b7da4ac..8f1d314 100644 Binary files a/public/images/fleet/superb.jpg and b/public/images/fleet/superb.jpg differ diff --git a/public/images/fleet/transit.jpg b/public/images/fleet/transit.jpg index 84ebc8c..862adc0 100644 Binary files a/public/images/fleet/transit.jpg and b/public/images/fleet/transit.jpg differ diff --git a/public/images/fleet/v-class.jpg b/public/images/fleet/v-class.jpg index 4eeee56..46053b4 100644 Binary files a/public/images/fleet/v-class.jpg and b/public/images/fleet/v-class.jpg differ diff --git a/public/images/hero-main.jpg b/public/images/hero-main.jpg index a44c600..e078862 100644 Binary files a/public/images/hero-main.jpg and b/public/images/hero-main.jpg differ diff --git a/public/images/interior.jpg b/public/images/interior.jpg index e9abe88..c7ebff8 100644 Binary files a/public/images/interior.jpg and b/public/images/interior.jpg differ diff --git a/public/images/mercedes.jpg b/public/images/mercedes.jpg index cc93fc5..ed7b335 100644 Binary files a/public/images/mercedes.jpg and b/public/images/mercedes.jpg differ diff --git a/public/images/private-sky.jpg b/public/images/private-sky.jpg index 4662cd6..a6cb092 100644 Binary files a/public/images/private-sky.jpg and b/public/images/private-sky.jpg differ diff --git a/public/images/private.jpg b/public/images/private.jpg index 4662cd6..a6cb092 100644 Binary files a/public/images/private.jpg and b/public/images/private.jpg differ diff --git a/public/images/shared.jpg b/public/images/shared.jpg index 86a1ae9..95759c5 100644 Binary files a/public/images/shared.jpg and b/public/images/shared.jpg differ diff --git a/public/images/transit.jpg b/public/images/transit.jpg index 0833639..66cd355 100644 Binary files a/public/images/transit.jpg and b/public/images/transit.jpg differ