// ─── TRANSLATIONS ──────────────────────────────────── const T = { az: { 'topbar.msg1':'🎉 Yay turlarına 15% endirim!','topbar.msg2':'✈️ Bütün turlarda ödənişsiz ləğv imkanı','topbar.msg3':'📞 24/7 dəstək: +994 50 000 00 00', 'nav.home':'Ana səhifə','nav.tours':'Turlar','nav.about':'Haqqımızda','nav.contact':'Əlaqə', 'nav.group':'Qrup Turları','nav.group.d':'Qrup turları','nav.private':'Fərdi Turlar','nav.private.d':'Fərdi turlar','nav.multiday':'Çox Günlük','nav.multiday.d':'Çox günlük turlar','nav.driver':'Yalnız Sürücü','nav.driver.d':'Yalnız sürücü', 'hero.t1':'Hər Anı','hero.t2':'Xatirəyə','hero.t3':'Çeviririk', 'hero.badge':'Azərbaycanın №1 Tur Agentliyi','hero.cta1':'Turları Kəşf Et','hero.cta2':'Bizimlə Əlaqə','hero.rating':'Orta Reytinq', 'hero.sub':'Azərbaycanın ən gözəl guşələrindən tutmuş dünyanın dörd bir yanına — hər səyahət bir hekayə, hər anın bir xatirədir.', 'hero.s1':'Məmnun Səyahətçi','hero.s2':'Marşrut','hero.s3':'İl təcrübə','hero.years':'Təcrübə','hero.popular':'Populyar:', 'search.dest.label':'Hara getmək istərsiniz?','search.dest':'Bakı, Şəki, İstanbul...','search.date.label':'Tarix','search.date':'Ay seçin','search.guests.label':'Səyahətçilər','search.guests':'2 nəfər','search.btn':'Axtar', 'search.where':'Hara getmək istərsiniz?','search.ph':'Məsələn: Şəki, Quba, Bakı...','search.start':'Başlanğıc tarixi','search.travelers':'Səyahətçilər', 'dest.tag':'Marşrutlar','dest.h1':'Növbəti səyahətini','dest.h2':'hara planlaşdırırsan?','dest.explore':'Kəşf et →','dest.top':'Ən çox seçilən', 'dest.az':'Azərbaycan','dest.az.r':'40+ marşrut','dest.tr':'Türkiyə','dest.tr.r':'18+ marşrut', 'dest.it':'İtaliya','dest.it.r':'12+ marşrut','dest.ca':'Kanada','dest.ca.r':'8+ marşrut','dest.uk':'Böyük Britaniya','dest.uk.r':'10+ marşrut', 'feat.tag':'Turlar','feat.h1':'Ölkənin ən','feat.h2':'maraqlı turları','feat.sub':'Azərbaycanın ən yaxşı marşrutları ilə səyahət edin. Rahatlıq və canlı təəssüratlardan həzz alın', 'vid.tag':'Şəhərlər','vid.h1':'Turlarımızı','vid.h2':'videoda kəşf et','vid.lahic':'Lahıc Şəhəri','vid.lahic.d':'2000 illik tarixi olan mis ustalarının şəhəri — Lahıcı videoda tanı.','vid.baku':'Bakı Şəhəri','vid.baku.d':'Azərbaycanın paytaxtı Bakının qədim küçələri və möhtəşəm memarlığı.', 'tours.tag':'Turlar','tours.h1':'Ən','tours.h2':'populyar','tours.h3':'turlar', 'tour.pop':'Ən populyar','tour.new':'Yeni','tour.prem':'Premium','tour.book':'İndi Rezerv Et','tour.buy':'İndi əldə et','tour.rev':'rəy','per.person':'/nəfər', 't1.meta':'1 gün · Bakı','t1.title':'Xınalıq Turu','t1.desc':'Azərbaycanın ən qədim kəndlərindən birini kəşf edin. Mədəniyyət, tarix və təbiətin qovuşduğu yer.', 't2.meta':'1 gün · Şamaxı','t2.title':'Lahıc Turu','t2.desc':'Mis ustalarının şəhəri Lahıcda minilliklər boyunca davam edən sənətkarlıq ənənəsini yaşayın.', 't3.meta':'1 gün · Qusar','t3.title':'Dağ Turu','t3.desc':'Qafqazın heyrətamiz dağ mənzərələri arasında azad nəfəs alın. Gənclik enerjisi, fantastik görünüş.', 't4.meta':'1 gün · Bakı','t4.title':'Alovlu Bakı','t4.desc':'Şəhərin simvolu olan Alov qüllələri və Bakının qədim şəhər hissəsini kəşf edin.', 't7.meta':'2 gün · Şəki','t7.title':'Şəki Turu','t7.desc':'Tarixi karvansara, ipək fabriki və möhtəşəm Şəki Xanları sarayı — Azərbaycanın incisi.', 't8.meta':'1 gün · Quba','t8.title':'Quba & Qrız Turu','t8.desc':'Qırmızı qəsəbənin sirli küçələri, Qrız dağ kəndi və sıx meşəliklər — unutulmaz bir gün.', 'tours.all':'Bütün turları gör →', 'drv.tag':'Yalnız Sürücü','drv.h1':'Bələdçisiz, özünüz','drv.h2':'kəşf edin', 'drv.desc':'Sürücüsü olan avtomobil kirayəsi — rəhbərlik olmadan, öz gündəliyinizlə. Azad səyahət sevənlər üçün ideal seçim.', 'drv.cta':'Sürücü Sifariş Et', 'drv.f1t':'Çevik Cədvəl','drv.f1d':'İstədiyiniz vaxtda, istədiyiniz yerdə dayanın.', 'drv.f2t':'Təcrübəli Sürücülər','drv.f2d':'Ölkənin hər bölgəsini yaxından tanıyan peşəkar sürücülər.', 'drv.f3t':'Münasib Qiymət','drv.f3d':'Tam tur paketindən daha uyğun qiymətlə.', 'drv.f4t':'Müxtəlif Nəqliyyat','drv.f4d':'Sedan, SUV, mini-bus — seçim sizindir.', 'why.tag':'Niyə Touran?','why.h1':'Səyahəti asan,','why.h2':'anları əbədi','why.h3':'edən agentlik', 'why.desc':'2010-dan bəri 4.800+ səyahətçiyə xidmət göstərən Touran, hər addımda yanınızdadır. Rezervasiyadan qayıdışa qədər tam dəstək.', 'why.l1':'14 il sahə təcrübəsi','why.l2':'Lisenziyalı tur bələdçiləri','why.l3':'24/7 müştəri dəstəyi','why.l4':'Ən aşağı qiymət zəmanəti', 'why.btn':'Bizimlə əlaqə →', 'why.c1t':'120+ Marşrut','why.c1d':'Yerli və beynəlxalq onlarca seçim', 'why.c2t':'Sığortalı Səyahət','why.c2d':'Hər paketdə tam sığorta daxildir', 'why.c3t':'Taksitli Ödəniş','why.c3d':'12 aya qədər faizsiz taksit', 'why.c4t':'4.9/5 Orta Reytinq','why.c4d':'Müştərilərimizin həqiqi rəyləri', 'rev.tag':'Rəylər','rev.h1':'Onlar nə dedi','rev.h2':'biz haqqımızda?', 'rv1.txt':'"Xınalıq turu inanılmaz idi! Bələdçimiz çox professionalıdı, mənzərələr isə nəfəsalıcı. Mütləq tövsiyə edirəm!"','rv1.name':'Aytən M.','rv1.date':'Mart 2026', 'rv2.txt':'"İtaliya turunu Touranla keçirdim. Hər şey mükəmməl planlanmışdı — otel, ekskursiyalar, nəqliyyat. Çox məmnun qaldım."','rv2.name':'Rəşad K.','rv2.date':'Yanvar 2026', 'rv3.txt':'"Ailəmlə Lahıca getdik. Uşaqlar çox sevindi, mən də. Qiymət-keyfiyyət nisbəti əla. Növbəti tur üçün yenə gəlib sifarişimizi verəcəyik."','rv3.name':'Nigar H.','rv3.date':'Fevral 2026', 'rv4.txt':'"Dağ turu gözləntilərimden yuxarı çıxdı. Hava şəraiti çətin olsa da komanda hər şeyi həll etdi. Peşəkar yanaşma üçün təşəkkürlər!"','rv4.name':'Elçin B.','rv4.date':'Aprel 2026', 'rv5.txt':'"Kanada turu ömrümün ən gözəl səyahəti idi. Niagara şəlaləsi qarşısında hisslərim sözlə ifadə ediləmir. Tourana sonsuz minnətdaram!"','rv5.name':'Sevinc Q.','rv5.date':'Mart 2026', 'rv6.txt':'"Alovlu Bakı turu şəhəri tamam fərqli gözlərlə görməyimə kömək etdi. Yerli tur olmasına baxmayaraq, çox maraqlı idi."','rv6.name':'Turxan A.','rv6.date':'Aprel 2026', 'lv.tag':'Son Baxılanlar','lv.h1':'Son','lv.h2':'Baxılanlar', 'lv.t1':'Xınalıq Turu','lv.t2':'Şahdağ Turu','lv.t3':'Qəbələ Turu','lv.t4':'Dubay Turu', 'lv.t5':'İstanbul Turu','lv.t6':'Roma Turu','lv.t7':'Paris Turu','lv.t8':'Barselona Turu', 'lv.m1':'1 gün · Bakı','lv.m2':'2 gün · Quba','lv.m3':'3 gün · Qəbələ','lv.m4':'5 gün · Dubai', 'lv.m5':'4 gün · İstanbul','lv.m6':'6 gün · Roma','lv.m7':'7 gün · Paris','lv.m8':'5 gün · Barselona', 'insta.tag':'Instagram','insta.h1':'Turlardan','insta.h2':'anlarımız','insta.handle':'@touran.az • İnstagramda izlə', 'con.tag':'Əlaqə','con.h1':'Planlarını','con.h2':'bizə','con.h3':'anlat', 'con.desc':'Hər sualınıza cavab verməyə, sizin üçün ideal turu planlaşdırmağa hazırıq. Zəng edin, yazın, gəlin.', 'con.phone':'Telefon','con.email':'E-poçt','con.addr':'Ünvan','con.addrval':'Bakı şəhəri, Nizami küçəsi', 'cf.name':'Adınız','cf.nameph':'Əli Həsənov','cf.email':'E-poçtunuz','cf.emailph':'ali@email.com', 'cf.subj':'Mövzu','cf.subjph':'Xınalıq turu haqqında','cf.msg':'Mesajınız','cf.msgph':'Sualınızı, istəyinizi yazın...','cf.send':'Göndər →', 'foot.desc':'Azərbaycanın ən etibarlı tur agentliyi. 2010-dan bəri hər anınızı xatirəyə çevirməkdəyik.', 'foot.l1h':'Keçidlər','foot.about':'Haqqımızda','foot.tours':'Turlar','foot.routes':'Marşrutlar','foot.blog':'Blog', 'foot.l2h':'Turlar','foot.group':'Qrup turlar','foot.private':'Fərdi turlar','foot.multiday':'Çox günlük turlar','foot.driver':'Yalnız sürücü', 'foot.l3h':'Əlaqə','foot.visa':'Viza dəstəyi','foot.flight':'Aviabilet','foot.hotel':'Otel rezervi','foot.ins':'Sığorta', 'foot.copy':'© AYVUS MMC tərəfindən hazırlanıb · Touran. Bütün hüquqlar qorunur.','foot.priv':'Məxfilik siyasəti','foot.terms':'Şərtlər', 'foot.addr':'Bakı şəhəri, Nizami küçəsi 12','foot.hours':'B.e–Ş: 09:00–18:00', 'tour.from':'başlayaraq','tour.rec':'Tövsiyə edilir','tour.top':'Ən çox seçilən','tour.drv':'Sürücü ilə', 'cat.group.tag':'Qrup Turları','cat.group.h':'Birgə Kəşf, Birgə Xatirə','cat.group.sub':'Yeni insanlar, maraqlı yerlər, yadda qalan anlar. Qrup turlarımızda hər addım birlikdə atılır — rahat qiymətlərlə.', 'cat.priv.tag':'Fərdi Turlar','cat.priv.h':'Özünüzə Xas Səyahət','cat.priv.sub':'Sizin tempinizlə, sizin seçimlərinizlə. Fərdi turlarımızda hər detalı siz müəyyən edirsiniz — biz isə ən yaxşısını təmin edirik.', 'cat.multi.tag':'Çox Günlük Turlar','cat.multi.h':'Daha Çox Yer, Daha Çox Xatirə','cat.multi.sub':'Birdən çox günü əhatə edən turlarımızda Azərbaycanı dərindən kəşf edin. Hər gün yeni bir macəra, hər gecə unudulmaz bir xatirə.', 'cat.drv.tag':'Yalnız Sürücü','cat.drv.h':'Azadlığı Yolda Hiss Et','cat.drv.sub':'Bələdçi olmadan, öz gündəliyinizlə. Təcrübəli sürücümüz sizi istədiyiniz yerə aparır — siz isə yolun tadını çıxarırsınız.', 'cta.group.h':'Axtardığınız turu tapmadınız?','cta.group.p':'Xüsusi qrup turu istəyirsinizsə, bizimlə əlaqə saxlayın — sizin üçün ayrıca paket hazırlayarıq.','cta.group.btn':'Bizimlə əlaqə →', 'cta.priv.h':'Xüsusi fərdi tur istəyirsiniz?','cta.priv.p':'Marşrutu, vaxtı, nəqliyyatı — hər şeyi birlikdə planlaşdıraq. Tamamilə sizin üçün.','cta.priv.btn':'Paket sifariş et →', 'cta.multi.h':'Yeni marşrutlar tezliklə əlavə olunacaq!','cta.multi.p':'Daha çox günlük tur seçimləri üçün bizimlə əlaqə saxlayın — sizin üçün xüsusi paket hazırlayaq.','cta.multi.btn':'Paket sifariş et →', 'cta.drv.p':'İstədiyiniz nöqtəni, vaxtı və nəqliyyatı seçin — sürücünüzü hazırlayarıq.','cta.drv.btn':'Bizimlə əlaqə →', 'td.book':'Rezerv Et','td.info':'Tur Məlumatları','td.start':'Başlama','td.end':'Bitmə','td.duration':'Müddət','td.type':'Tur növü', 'td.highlights':'Əsas Xüsusiyyətlər','td.itinerary':'Gün Cədvəli','td.incexc':'Daxildir / Daxil deyil','td.inc':'Daxildir','td.exc':'Daxil deyil','td.notes':'Qeydlər & Məlumatlar', 'td.othertours':'Digər turlar','td.recommended':'Tövsiyə Olunan Turlar','td.seeall':'Hamısına bax','td.view':'Bax →', 'td.co.title':'Rezervasiya','td.co.res':'Rezervasiya','td.co.deposit':'Depozit: $1','td.co.buy':'Birbaşa Satın Al','td.co.fullpay':'Tam ödəniş', 'td.co.tourinfo':'Tur Məlumatları','td.co.date':'Tur Tarixi','td.co.time':'Tur Vaxtı','td.co.adults':'Böyüklər','td.co.children':'Uşaqlar (3–12 yaş)', 'td.co.passenger':'Sərnişin Məlumatları','td.co.fname':'Ad','td.co.lname':'Soyad','td.co.phone':'Telefon','td.co.email':'E-poçt', 'td.co.pickup':'Götürmə Ünvanı','td.co.guidlang':'Bələdçi Dili', 'td.co.fname.ph':'Əli','td.co.lname.ph':'Həsənov','td.co.pickup.ph':'Küçə adı, bina nömrəsi...', 'td.co.success':'Sifarişiniz qəbul edildi!','td.co.successmsg':'Tezliklə sizinlə əlaqə saxlayacağıq. E-poçtunuza təsdiq göndəriləcək.', 'td.co.close':'Bağla','td.co.total':'Cəmi','td.co.submit':'İndi Sifariş Ver →', 'tour.cart':'Səbətə əlavə et', 'cart.title':'Səbət','cart.h1':'Turlarınız','cart.desc':'Sifariş və əldə etdiyiniz turların siyahısı', 'cart.total':'Ümumi məbləğ','cart.checkoutall':'Hamısını İndi Əldə Et →','cart.purchased':'Əldə etdiklərim', 'cart.empty.h':'Heç nə yoxdur','cart.empty.p':'Hələ heç bir tur əlavə etməmisiniz','cart.browse':'Turlara Bax →', 'cart.reserve':'Rezerv et','cart.buynow':'İndi əldə et','cart.adult':'böyük','cart.child':'uşaq', 'cart.paid':'✓ Ödəniş tamamlandı','cart.type.purchase':'Satın Alma','cart.type.res':'Rezervasiya','cart.waiting':'⏳ Gözləyin...', 'wl.tag':'İstək Siyahısı','wl.h1a':'Seçilmiş','wl.h1b':'turlarınız','wl.sub':'Bəyəndiyiniz turları buradan izləyin və rezerv edin', 'wl.empty.h':'İstək siyahınız boşdur','wl.empty.p':'Turları kəşf edin, bəyəndiklərinizə ürək basın','wl.browse':'Turlara Bax →', }, ru: { 'topbar.msg1':'🎉 Скидка 15% на летние туры!','topbar.msg2':'✈️ Бесплатная отмена на все туры','topbar.msg3':'📞 Поддержка 24/7: +994 50 000 00 00', 'nav.home':'Главная','nav.tours':'Туры','nav.about':'О нас','nav.contact':'Контакты', 'nav.group':'Групповые туры','nav.group.d':'Групповые туры','nav.private':'Частные туры','nav.private.d':'Частные туры','nav.multiday':'Многодневные','nav.multiday.d':'Многодневные','nav.driver':'Только водитель','nav.driver.d':'Только водитель', 'hero.t1':'Каждый миг —','hero.t2':'воспоминание,','hero.t3':'которое мы создаём', 'hero.badge':'Туристическое агентство №1 в Азербайджане','hero.cta1':'Посмотреть туры','hero.cta2':'Связаться с нами','hero.rating':'Средний рейтинг', 'hero.sub':'От живописных уголков Азербайджана до любой точки мира — каждое путешествие это история, каждый момент — воспоминание.', 'hero.s1':'Довольных туристов','hero.s2':'Маршрутов','hero.s3':'Лет опыта','hero.years':'Лет опыта','hero.popular':'Популярное:', 'search.dest.label':'Куда хотите поехать?','search.dest':'Баку, Шеки, Стамбул...','search.date.label':'Дата','search.date':'Выбрать месяц','search.guests.label':'Путешественники','search.guests':'2 человека','search.btn':'Искать', 'search.where':'Куда хотите поехать?','search.ph':'Напр.: Шеки, Куба, Баку...','search.start':'Дата начала','search.travelers':'Путешественники', 'dest.tag':'Направления','dest.h1':'Куда планируешь','dest.h2':'следующее путешествие?','dest.explore':'Открыть →','dest.top':'Самое популярное', 'dest.az':'Азербайджан','dest.az.r':'40+ маршрутов','dest.tr':'Турция','dest.tr.r':'18+ маршрутов', 'dest.it':'Италия','dest.it.r':'12+ маршрутов','dest.ca':'Канада','dest.ca.r':'8+ маршрутов','dest.uk':'Великобритания','dest.uk.r':'10+ маршрутов', 'feat.tag':'Туры','feat.h1':'Самые интересные','feat.h2':'туры страны','feat.sub':'Путешествуйте по лучшим маршрутам Азербайджана. Наслаждайтесь комфортом и яркими впечатлениями', 'vid.tag':'Города','vid.h1':'Открой наши туры','vid.h2':'в видео','vid.lahic':'Город Лагич','vid.lahic.d':'Город медных мастеров с 2000-летней историей — познакомьтесь с Лагичем в видео.','vid.baku':'Город Баку','vid.baku.d':'Старинные улочки и величественная архитектура столицы Азербайджана — Баку.', 'tours.tag':'Туры','tours.h1':'Самые','tours.h2':'популярные','tours.h3':'туры', 'tour.pop':'Популярное','tour.new':'Новое','tour.prem':'Премиум','tour.book':'Забронировать','tour.buy':'Получить сейчас','tour.rev':'отз.','per.person':'/чел.', 't1.meta':'1 день · Баку','t1.title':'Тур Хыналыг','t1.desc':'Откройте одно из самых древних сёл Азербайджана. Место, где культура, история и природа слились воедино.', 't2.meta':'1 день · Шамахы','t2.title':'Тур Лагич','t2.desc':'Погрузитесь в тысячелетние традиции медного мастерства в городе Лагич.', 't3.meta':'1 день · Гусар','t3.title':'Горный тур','t3.desc':'Дышите свободно среди захватывающих горных пейзажей Кавказа. Молодая энергия, фантастические виды.', 't4.meta':'1 день · Баку','t4.title':'Огненный Баку','t4.desc':'Откройте для себя знаменитые Пламенные башни и Старый город Баку.', 't7.meta':'2 дня · Шеки','t7.title':'Тур Шеки','t7.desc':'Исторический каравансарай, шёлковая фабрика и дворец Шекинских ханов — жемчужина Азербайджана.', 't8.meta':'1 день · Губа','t8.title':'Губа и Крыз','t8.desc':'Загадочные улочки Красного посёлка, горное село Крыз и густые леса — незабываемый день.', 'tours.all':'Все туры →', 'drv.tag':'Только водитель','drv.h1':'Исследуйте','drv.h2':'самостоятельно', 'drv.desc':'Аренда автомобиля с водителем — без гида, по своему расписанию. Идеально для свободного путешествия.', 'drv.cta':'Заказать водителя', 'drv.f1t':'Гибкое расписание','drv.f1d':'Останавливайтесь, где и когда захотите.', 'drv.f2t':'Опытные водители','drv.f2d':'Профессионалы, знающие каждый уголок страны.', 'drv.f3t':'Доступные цены','drv.f3d':'Дешевле, чем полный тур-пакет.', 'drv.f4t':'Разные авто','drv.f4d':'Седан, внедорожник, микроавтобус — ваш выбор.', 'why.tag':'Почему Touran?','why.h1':'Агентство, делающее','why.h2':'путешествия лёгкими,','why.h3':'а моменты — вечными', 'why.desc':'С 2010 года Touran обслуживает 4800+ туристов, сопровождая вас на каждом шагу. Полная поддержка от бронирования до возвращения.', 'why.l1':'14 лет полевого опыта','why.l2':'Лицензированные гиды','why.l3':'Поддержка 24/7','why.l4':'Гарантия лучшей цены', 'why.btn':'Связаться с нами →', 'why.c1t':'120+ Маршрутов','why.c1d':'Десятки местных и международных вариантов', 'why.c2t':'Страховка','why.c2d':'Полная страховка включена в каждый пакет', 'why.c3t':'Рассрочка','why.c3d':'Беспроцентная рассрочка до 12 месяцев', 'why.c4t':'Рейтинг 4.9/5','why.c4d':'Реальные отзывы наших клиентов', 'rev.tag':'Отзывы','rev.h1':'Что они говорят','rev.h2':'о нас?', 'rv1.txt':'"Тур в Хыналыг был невероятным! Гид был очень профессиональным, а пейзажи захватывали дух. Настоятельно рекомендую!"','rv1.name':'Айтен М.','rv1.date':'Март 2026', 'rv2.txt':'"Провёл тур по Италии с Touran. Всё было идеально спланировано — отель, экскурсии, транспорт. Очень доволен."','rv2.name':'Рашад К.','rv2.date':'Январь 2026', 'rv3.txt':'"Ездили с семьёй в Лагич. Дети были в восторге, и я тоже. Отличное соотношение цены и качества. Придём снова."','rv3.name':'Нигяр Г.','rv3.date':'Февраль 2026', 'rv4.txt':'"Горный тур превзошёл мои ожидания. Хотя погода была сложной, команда решила все проблемы. Спасибо за профессионализм!"','rv4.name':'Элчин Б.','rv4.date':'Апрель 2026', 'rv5.txt':'"Тур по Канаде был лучшим путешествием в моей жизни. Чувства перед Ниагарским водопадом не передать словами. Бесконечно благодарен Touran!"','rv5.name':'Севинч Г.','rv5.date':'Март 2026', 'rv6.txt':'"Тур «Огненный Баку» помог мне увидеть город другими глазами. Несмотря на то, что это местный тур, было очень интересно."','rv6.name':'Турхан А.','rv6.date':'Апрель 2026', 'lv.tag':'Недавно просмотренные','lv.h1':'Недавно','lv.h2':'просмотренные', 'lv.t1':'Тур Хыналыг','lv.t2':'Тур Шахдаг','lv.t3':'Тур Габала','lv.t4':'Тур Дубай', 'lv.t5':'Тур Стамбул','lv.t6':'Тур Рим','lv.t7':'Тур Париж','lv.t8':'Тур Барселона', 'lv.m1':'1 день · Баку','lv.m2':'2 дня · Губа','lv.m3':'3 дня · Габала','lv.m4':'5 дней · Дубай', 'lv.m5':'4 дня · Стамбул','lv.m6':'6 дней · Рим','lv.m7':'7 дней · Париж','lv.m8':'5 дней · Барселона', 'insta.tag':'Instagram','insta.h1':'Воспоминания','insta.h2':'из туров','insta.handle':'@touran.az • Подписывайтесь', 'con.tag':'Контакты','con.h1':'Расскажите нам','con.h2':'о ваших','con.h3':'планах', 'con.desc':'Мы готовы ответить на любой вопрос и спланировать для вас идеальный тур. Звоните, пишите, приходите.', 'con.phone':'Телефон','con.email':'Эл. почта','con.addr':'Адрес','con.addrval':'г. Баку, ул. Низами', 'cf.name':'Ваше имя','cf.nameph':'Али Гасанов','cf.email':'Ваша почта','cf.emailph':'ali@email.com', 'cf.subj':'Тема','cf.subjph':'О туре в Хыналыг','cf.msg':'Ваше сообщение','cf.msgph':'Напишите ваш вопрос или пожелание...','cf.send':'Отправить →', 'foot.desc':'Самое надёжное туристическое агентство Азербайджана. С 2010 года превращаем каждый момент в воспоминание.', 'foot.l1h':'Ссылки','foot.about':'О нас','foot.tours':'Туры','foot.routes':'Маршруты','foot.blog':'Блог', 'foot.l2h':'Туры','foot.group':'Групповые туры','foot.private':'Частные туры','foot.multiday':'Многодневные туры','foot.driver':'Только водитель', 'foot.l3h':'Услуги','foot.visa':'Визовая поддержка','foot.flight':'Авиабилеты','foot.hotel':'Бронирование отелей','foot.ins':'Страховка', 'foot.copy':'© Разработано AYVUS MMC · Touran. Все права защищены.','foot.priv':'Конфиденциальность','foot.terms':'Условия', 'foot.addr':'г. Баку, ул. Низами 12','foot.hours':'Пн–Сб: 09:00–18:00', 'tour.from':'от','tour.rec':'Рекомендуем','tour.top':'Самый популярный','tour.drv':'С водителем', 'cat.group.tag':'Групповые туры','cat.group.h':'Открываем вместе, помним вместе','cat.group.sub':'Новые люди, интересные места, незабываемые моменты. В наших групповых турах каждый шаг делается вместе — по доступным ценам.', 'cat.priv.tag':'Частные туры','cat.priv.h':'Путешествие на ваших условиях','cat.priv.sub':'В вашем темпе, по вашему выбору. В наших частных турах вы определяете каждую деталь — мы обеспечиваем лучшее.', 'cat.multi.tag':'Многодневные туры','cat.multi.h':'Больше мест, больше воспоминаний','cat.multi.sub':'Откройте Азербайджан в глубину с нашими многодневными турами. Каждый день — новое приключение, каждая ночь — незабываемое воспоминание.', 'cat.drv.tag':'Только водитель','cat.drv.h':'Почувствуй свободу в дороге','cat.drv.sub':'Без гида, по своему расписанию. Наш опытный водитель отвезёт вас куда угодно — вы просто наслаждаетесь дорогой.', 'cta.group.h':'Не нашли нужный тур?','cta.group.p':'Если вам нужен специальный групповой тур, свяжитесь с нами — составим отдельный пакет специально для вас.','cta.group.btn':'Связаться с нами →', 'cta.priv.h':'Хотите особый частный тур?','cta.priv.p':'Маршрут, время, транспорт — спланируем всё вместе. Полностью для вас.','cta.priv.btn':'Заказать пакет →', 'cta.multi.h':'Новые маршруты скоро добавятся!','cta.multi.p':'Для большего выбора многодневных туров свяжитесь с нами — составим специальный пакет.','cta.multi.btn':'Заказать пакет →', 'cta.drv.p':'Выберите точку, время и транспорт — подготовим водителя.','cta.drv.btn':'Связаться с нами →', 'td.book':'Забронировать','td.info':'Информация о туре','td.start':'Начало','td.end':'Конец','td.duration':'Длительность','td.type':'Тип тура', 'td.highlights':'Основные особенности','td.itinerary':'Программа дня','td.incexc':'Включено / Не включено','td.inc':'Включено','td.exc':'Не включено','td.notes':'Заметки и информация', 'td.othertours':'Другие туры','td.recommended':'Рекомендуемые туры','td.seeall':'Смотреть все','td.view':'Смотреть →', 'td.co.title':'Бронирование','td.co.res':'Бронирование','td.co.deposit':'Депозит: $1','td.co.buy':'Купить сразу','td.co.fullpay':'Полная оплата', 'td.co.tourinfo':'Информация о туре','td.co.date':'Дата тура','td.co.time':'Время тура','td.co.adults':'Взрослые','td.co.children':'Дети (3–12 лет)', 'td.co.passenger':'Данные пассажира','td.co.fname':'Имя','td.co.lname':'Фамилия','td.co.phone':'Телефон','td.co.email':'Эл. почта', 'td.co.pickup':'Адрес посадки','td.co.guidlang':'Язык гида', 'td.co.fname.ph':'Иван','td.co.lname.ph':'Иванов','td.co.pickup.ph':'Название улицы, номер дома...', 'td.co.success':'Ваш заказ принят!','td.co.successmsg':'Скоро мы с вами свяжемся. На ваш email будет отправлено подтверждение.', 'td.co.close':'Закрыть','td.co.total':'Итого','td.co.submit':'Заказать сейчас →', 'tour.cart':'В корзину', 'cart.title':'Корзина','cart.h1':'Ваши туры','cart.desc':'Список заказанных и купленных туров', 'cart.total':'Итого','cart.checkoutall':'Купить всё →','cart.purchased':'Мои покупки', 'cart.empty.h':'Пусто','cart.empty.p':'Вы ещё не добавили ни одного тура','cart.browse':'Смотреть туры →', 'cart.reserve':'Забронировать','cart.buynow':'Купить сейчас','cart.adult':'взр.','cart.child':'реб.', 'cart.paid':'✓ Оплачено','cart.type.purchase':'Покупка','cart.type.res':'Бронирование','cart.waiting':'⏳ Подождите...', 'wl.tag':'Список желаний','wl.h1a':'Избранные','wl.h1b':'туры','wl.sub':'Сохраняйте понравившиеся туры здесь и бронируйте их', 'wl.empty.h':'Ваш список желаний пуст','wl.empty.p':'Откройте туры и отметьте сердечком те, что вам понравились','wl.browse':'Смотреть туры →', }, en: { 'topbar.msg1':'🎉 15% off summer tours!','topbar.msg2':'✈️ Free cancellation on all tours','topbar.msg3':'📞 24/7 support: +994 50 000 00 00', 'nav.home':'Home','nav.tours':'Tours','nav.about':'About Us','nav.contact':'Contact', 'nav.group':'Group Tours','nav.group.d':'Group tours','nav.private':'Private Tours','nav.private.d':'Private tours','nav.multiday':'Multi-day Tours','nav.multiday.d':'Multi-day tours','nav.driver':'Driver Only','nav.driver.d':'Driver only service', 'hero.t1':'Every Moment, A','hero.t2':'Memory','hero.t3':'We Create', 'hero.badge':'Azerbaijan\'s #1 Tour Agency','hero.cta1':'Explore Tours','hero.cta2':'Contact Us','hero.rating':'Avg. Rating', 'hero.sub':'From the most beautiful corners of Azerbaijan to every corner of the world — every journey is a story, every moment a memory.', 'hero.s1':'Happy Travelers','hero.s2':'Routes','hero.s3':'Years experience','hero.years':'Experience','hero.popular':'Popular:', 'search.dest.label':'Where do you want to go?','search.dest':'Baku, Sheki, Istanbul...','search.date.label':'Date','search.date':'Choose month','search.guests.label':'Travelers','search.guests':'2 people','search.btn':'Search', 'search.where':'Where do you want to go?','search.ph':'E.g.: Sheki, Guba, Baku...','search.start':'Start date','search.travelers':'Travelers', 'dest.tag':'Destinations','dest.h1':'Where are you planning','dest.h2':'your next trip?','dest.explore':'Explore →','dest.top':'Most chosen', 'dest.az':'Azerbaijan','dest.az.r':'40+ routes','dest.tr':'Turkey','dest.tr.r':'18+ routes', 'dest.it':'Italy','dest.it.r':'12+ routes','dest.ca':'Canada','dest.ca.r':'8+ routes','dest.uk':'United Kingdom','dest.uk.r':'10+ routes', 'feat.tag':'Tours','feat.h1':'The most exciting','feat.h2':'tours in the country','feat.sub':'Travel along the best routes in Azerbaijan. Enjoy comfort and vivid impressions', 'vid.tag':'Cities','vid.h1':'Discover our tours','vid.h2':'on video','vid.lahic':'Lahij City','vid.lahic.d':'The city of copper craftsmen with 2000 years of history — discover Lahij on video.','vid.baku':'Baku City','vid.baku.d':'The ancient streets and magnificent architecture of Azerbaijan\'s capital city, Baku.', 'tours.tag':'Tours','tours.h1':'Most','tours.h2':'popular','tours.h3':'tours', 'tour.pop':'Most popular','tour.new':'New','tour.prem':'Premium','tour.book':'Book Now','tour.buy':'Get Now','tour.rev':'reviews','per.person':'/person', 't1.meta':'1 day · Baku','t1.title':'Khinalig Tour','t1.desc':'Explore one of the oldest villages in Azerbaijan. A place where culture, history and nature converge.', 't2.meta':'1 day · Shamakhi','t2.title':'Lahij Tour','t2.desc':'Experience the centuries-old coppersmithing craft tradition in the town of Lahij.', 't3.meta':'1 day · Gusar','t3.title':'Mountain Tour','t3.desc':'Breathe freely among the stunning mountain landscapes of the Caucasus. Vibrant energy, fantastic views.', 't4.meta':'1 day · Baku','t4.title':'Flame Baku','t4.desc':'Discover the iconic Flame Towers and the historic Old City of Baku.', 't7.meta':'2 days · Sheki','t7.title':'Sheki Tour','t7.desc':'Historic caravanserai, silk factory and the stunning Sheki Khans Palace — the jewel of Azerbaijan.', 't8.meta':'1 day · Guba','t8.title':'Guba & Gryz Tour','t8.desc':'The mysterious Red Settlement, the mountain village of Gryz and dense forests — an unforgettable day.', 'tours.all':'See all tours →', 'drv.tag':'Driver Only','drv.h1':'Explore on','drv.h2':'your own terms', 'drv.desc':'Car hire with a driver — no guide, your own schedule. Perfect for independent travellers who want full freedom.', 'drv.cta':'Book a Driver', 'drv.f1t':'Flexible Schedule','drv.f1d':'Stop wherever and whenever you like.', 'drv.f2t':'Experienced Drivers','drv.f2d':'Professionals who know every corner of the country.', 'drv.f3t':'Affordable Rates','drv.f3d':'More affordable than a full tour package.', 'drv.f4t':'Various Vehicles','drv.f4d':'Sedan, SUV, minibus — the choice is yours.', 'why.tag':'Why Touran?','why.h1':'The agency that makes','why.h2':'travel easy and','why.h3':'moments timeless', 'why.desc':'Since 2010, Touran has served 4,800+ travellers, supporting you every step of the way. Full support from booking to return.', 'why.l1':'14 years of field experience','why.l2':'Licensed tour guides','why.l3':'24/7 customer support','why.l4':'Best price guarantee', 'why.btn':'Contact us →', 'why.c1t':'120+ Routes','why.c1d':'Dozens of local and international options', 'why.c2t':'Insured Travel','why.c2d':'Full insurance included in every package', 'why.c3t':'Instalment Payment','why.c3d':'Interest-free instalments up to 12 months', 'why.c4t':'4.9/5 Average Rating','why.c4d':'Real reviews from our customers', 'rev.tag':'Reviews','rev.h1':'What they said','rev.h2':'about us?', 'rv1.txt':'"The Khinalig tour was incredible! Our guide was very professional and the scenery was breathtaking. Highly recommend!"','rv1.name':'Ayten M.','rv1.date':'March 2026', 'rv2.txt':'"I did the Italy tour with Touran. Everything was perfectly planned — hotel, excursions, transport. Very satisfied."','rv2.name':'Rashad K.','rv2.date':'January 2026', 'rv3.txt':'"Went to Lahij with my family. The kids loved it and so did I. Great value for money. We\'ll be back for the next tour."','rv3.name':'Nigar H.','rv3.date':'February 2026', 'rv4.txt':'"The mountain tour exceeded my expectations. Although the weather was tough, the team handled everything. Thanks for the professional approach!"','rv4.name':'Elchin B.','rv4.date':'April 2026', 'rv5.txt':'"The Canada tour was the most beautiful journey of my life. Words can\'t describe how I felt at Niagara Falls. Endless gratitude to Touran!"','rv5.name':'Sevinj Q.','rv5.date':'March 2026', 'rv6.txt':'"The Flame Baku tour helped me see the city through completely different eyes. Despite being a local tour, it was very interesting."','rv6.name':'Turkhan A.','rv6.date':'April 2026', 'lv.tag':'Last Viewed','lv.h1':'Last','lv.h2':'Viewed', 'lv.t1':'Khinalig Tour','lv.t2':'Shahdag Tour','lv.t3':'Gabala Tour','lv.t4':'Dubai Tour', 'lv.t5':'Istanbul Tour','lv.t6':'Rome Tour','lv.t7':'Paris Tour','lv.t8':'Barcelona Tour', 'lv.m1':'1 day · Baku','lv.m2':'2 days · Guba','lv.m3':'3 days · Gabala','lv.m4':'5 days · Dubai', 'lv.m5':'4 days · Istanbul','lv.m6':'6 days · Rome','lv.m7':'7 days · Paris','lv.m8':'5 days · Barcelona', 'insta.tag':'Instagram','insta.h1':'Memories','insta.h2':'from Tours','insta.handle':'@touran.az • Follow on Instagram', 'con.tag':'Contact','con.h1':'Tell us','con.h2':'your','con.h3':'plans', 'con.desc':'We\'re ready to answer any question and plan the perfect tour for you. Call, write, or visit us.', 'con.phone':'Phone','con.email':'Email','con.addr':'Address','con.addrval':'Baku city, Nizami street', 'cf.name':'Your name','cf.nameph':'Ali Hasanov','cf.email':'Your email','cf.emailph':'ali@email.com', 'cf.subj':'Subject','cf.subjph':'About the Khinalig tour','cf.msg':'Your message','cf.msgph':'Write your question or request...','cf.send':'Send →', 'foot.desc':'Azerbaijan\'s most trusted tour agency. Since 2010, turning every moment into a memory.', 'foot.l1h':'Links','foot.about':'About us','foot.tours':'Tours','foot.routes':'Routes','foot.blog':'Blog', 'foot.l2h':'Tours','foot.group':'Group tours','foot.private':'Private tours','foot.multiday':'Multi-day tours','foot.driver':'Driver only', 'foot.l3h':'Services','foot.visa':'Visa support','foot.flight':'Flights','foot.hotel':'Hotel booking','foot.ins':'Insurance', 'foot.copy':'© Developed by AYVUS LLC · Touran. All rights reserved.','foot.priv':'Privacy policy','foot.terms':'Terms', 'foot.addr':'Baku city, Nizami street 12','foot.hours':'Mon–Sat: 09:00–18:00', 'tour.from':'from','tour.rec':'Recommended','tour.top':'Most chosen','tour.drv':'With driver', 'cat.group.tag':'Group Tours','cat.group.h':'Discover Together, Remember Together','cat.group.sub':'New people, interesting places, memorable moments. In our group tours, every step is taken together — at affordable prices.', 'cat.priv.tag':'Private Tours','cat.priv.h':'A Journey Tailored to You','cat.priv.sub':'At your pace, by your choice. In our private tours, you determine every detail — we deliver the best.', 'cat.multi.tag':'Multi-Day Tours','cat.multi.h':'More Places, More Memories','cat.multi.sub':'Explore Azerbaijan in depth with our multi-day tours. Every day a new adventure, every evening an unforgettable memory.', 'cat.drv.tag':'Driver Only','cat.drv.h':'Feel the Freedom on the Road','cat.drv.sub':'No guide, your own schedule. Our experienced driver takes you wherever you want — you just enjoy the ride.', 'cta.group.h':'Can\'t find the tour you\'re looking for?','cta.group.p':'If you\'d like a special group tour, contact us — we\'ll prepare a custom package for you.','cta.group.btn':'Contact us →', 'cta.priv.h':'Want a special private tour?','cta.priv.p':'Route, time, transport — let\'s plan everything together. Completely for you.','cta.priv.btn':'Order a package →', 'cta.multi.h':'New routes coming soon!','cta.multi.p':'For more multi-day tour options, contact us — we\'ll create a custom package.','cta.multi.btn':'Order a package →', 'cta.drv.p':'Choose your destination, time and transport — we\'ll arrange a driver for you.','cta.drv.btn':'Contact us →', 'td.book':'Book Now','td.info':'Tour Information','td.start':'Start','td.end':'End','td.duration':'Duration','td.type':'Tour type', 'td.highlights':'Key Highlights','td.itinerary':'Daily Schedule','td.incexc':'Included / Not Included','td.inc':'Included','td.exc':'Not Included','td.notes':'Notes & Info', 'td.othertours':'Other Tours','td.recommended':'Recommended Tours','td.seeall':'See all','td.view':'View →', 'td.co.title':'Reservation','td.co.res':'Reservation','td.co.deposit':'Deposit: $1','td.co.buy':'Buy Directly','td.co.fullpay':'Full payment', 'td.co.tourinfo':'Tour Information','td.co.date':'Tour Date','td.co.time':'Tour Time','td.co.adults':'Adults','td.co.children':'Children (ages 3–12)', 'td.co.passenger':'Passenger Details','td.co.fname':'First Name','td.co.lname':'Last Name','td.co.phone':'Phone','td.co.email':'Email', 'td.co.pickup':'Pickup Address','td.co.guidlang':'Guide Language', 'td.co.fname.ph':'John','td.co.lname.ph':'Smith','td.co.pickup.ph':'Street name, building number...', 'td.co.success':'Your order has been received!','td.co.successmsg':'We will contact you shortly. A confirmation will be sent to your email.', 'td.co.close':'Close','td.co.total':'Total','td.co.submit':'Order Now →', 'tour.cart':'Add to Cart', 'cart.title':'Cart','cart.h1':'Your Tours','cart.desc':'List of your reserved and purchased tours', 'cart.total':'Total','cart.checkoutall':'Buy All Now →','cart.purchased':'My Purchases', 'cart.empty.h':'Nothing here','cart.empty.p':"You haven't added any tours yet",'cart.browse':'Browse Tours →', 'cart.reserve':'Reserve','cart.buynow':'Get Now','cart.adult':'adult','cart.child':'child', 'cart.paid':'✓ Payment complete','cart.type.purchase':'Purchase','cart.type.res':'Reservation','cart.waiting':'⏳ Please wait...', 'wl.tag':'Wishlist','wl.h1a':'Your favorite','wl.h1b':'tours','wl.sub':'Save the tours you love and book them right here', 'wl.empty.h':'Your wishlist is empty','wl.empty.p':'Explore the tours and tap the heart on the ones you love','wl.browse':'Browse Tours →', }, ar: { 'topbar.msg1':'🎉 خصم 15% على جولات الصيف!','topbar.msg2':'✈️ إلغاء مجاني لجميع الجولات','topbar.msg3':'📞 دعم 24/7: +994 50 000 00 00', 'nav.home':'الرئيسية','nav.tours':'الجولات','nav.about':'من نحن','nav.contact':'اتصل بنا', 'nav.group':'جولات جماعية','nav.group.d':'جولات جماعية','nav.private':'جولات خاصة','nav.private.d':'جولات خاصة','nav.multiday':'متعددة الأيام','nav.multiday.d':'متعددة الأيام','nav.driver':'سائق فقط','nav.driver.d':'سائق فقط', 'hero.t1':'كل لحظة تتحوّل إلى','hero.t2':'ذكرى','hero.t3':'لا تُنسى', 'hero.badge':'الوكالة السياحية الأولى في أذربيجان','hero.cta1':'استكشف الجولات','hero.cta2':'تواصل معنا','hero.rating':'متوسط التقييم', 'hero.sub':'من أجمل أرجاء أذربيجان إلى كل ركن في العالم — كل رحلة قصة، وكل لحظة ذكرى.', 'hero.s1':'مسافر سعيد','hero.s2':'مسار','hero.s3':'سنوات خبرة','hero.years':'سنوات خبرة','hero.popular':'الشائع:', 'search.dest.label':'إلى أين تريد الذهاب؟','search.dest':'باكو، شيكي، إسطنبول...','search.date.label':'التاريخ','search.date':'اختر الشهر','search.guests.label':'المسافرون','search.guests':'شخصان','search.btn':'بحث', 'search.where':'إلى أين تريد الذهاب؟','search.ph':'مثلاً: شيكي، قوبا، باكو...','search.start':'تاريخ البدء','search.travelers':'المسافرون', 'dest.tag':'الوجهات','dest.h1':'أين تخطط','dest.h2':'لرحلتك القادمة؟','dest.explore':'استكشف →','dest.top':'الأكثر اختياراً', 'dest.az':'أذربيجان','dest.az.r':'40+ مسار','dest.tr':'تركيا','dest.tr.r':'18+ مسار', 'dest.it':'إيطاليا','dest.it.r':'12+ مسار','dest.ca':'كندا','dest.ca.r':'8+ مسارات','dest.uk':'المملكة المتحدة','dest.uk.r':'10+ مسارات', 'feat.tag':'الجولات','feat.h1':'أكثر الجولات إثارة','feat.h2':'في البلاد','feat.sub':'سافر عبر أفضل المسارات في أذربيجان. استمتع بالراحة والانطباعات الحية', 'vid.tag':'المدن','vid.h1':'اكتشف جولاتنا','vid.h2':'بالفيديو','vid.lahic':'مدينة لاهيج','vid.lahic.d':'مدينة صانعي النحاس التي يمتد تاريخها 2000 عام — تعرّف على لاهيج بالفيديو.','vid.baku':'مدينة باكو','vid.baku.d':'الشوارع العريقة والعمارة الرائعة لعاصمة أذربيجان — باكو.', 'tours.tag':'الجولات','tours.h1':'أكثر','tours.h2':'الجولات','tours.h3':'شعبية', 'tour.pop':'الأكثر شعبية','tour.new':'جديد','tour.prem':'بريميوم','tour.book':'احجز الآن','tour.buy':'احصل عليه الآن','tour.rev':'تقييم','per.person':'/شخص', 't1.meta':'يوم واحد · باكو','t1.title':'جولة خنالق','t1.desc':'اكتشف إحدى أقدم قرى أذربيجان. مكان يلتقي فيه الثقافة والتاريخ والطبيعة.', 't2.meta':'يوم واحد · شاماخي','t2.title':'جولة لاهيج','t2.desc':'عايش تقاليد صناعة النحاس الممتدة لآلاف السنين في مدينة لاهيج.', 't3.meta':'يوم واحد · قوسار','t3.title':'جولة جبلية','t3.desc':'تنفس بحرية وسط المناظر الجبلية الخلابة للقوقاز. طاقة شبابية ومناظر رائعة.', 't4.meta':'يوم واحد · باكو','t4.title':'باكو المشتعلة','t4.desc':'اكتشف أبراج اللهب الشهيرة والمدينة القديمة في باكو.', 't7.meta':'يومان · شيكي','t7.title':'جولة شيكي','t7.desc':'القيصرية التاريخية ومصنع الحرير وقصر خانات شيكي الرائع — جوهرة أذربيجان.', 't8.meta':'يوم واحد · قوبا','t8.title':'جولة قوبا وقريز','t8.desc':'الأزقة الغامضة للحي الأحمر وقرية قريز الجبلية والغابات الكثيفة — يوم لا يُنسى.', 'tours.all':'عرض جميع الجولات →', 'drv.tag':'سائق فقط','drv.h1':'استكشف','drv.h2':'بشروطك الخاصة', 'drv.desc':'استئجار سيارة مع سائق — بدون مرشد، وفق جدولك الخاص. مثالي للمسافر المستقل الباحث عن الحرية الكاملة.', 'drv.cta':'احجز سائقاً', 'drv.f1t':'جدول مرن','drv.f1d':'توقف أينما وأينما تريد.', 'drv.f2t':'سائقون خبراء','drv.f2d':'محترفون يعرفون كل ركن من البلاد.', 'drv.f3t':'أسعار معقولة','drv.f3d':'أرخص من باقة الجولة الكاملة.', 'drv.f4t':'مركبات متنوعة','drv.f4d':'سيدان، دفع رباعي، حافلة صغيرة — الاختيار لك.', 'why.tag':'لماذا توران؟','why.h1':'الوكالة التي تجعل','why.h2':'السفر سهلاً','why.h3':'واللحظات خالدة', 'why.desc':'منذ عام 2010، خدمت توران أكثر من 4800 مسافر، مرافقةً إياك في كل خطوة. دعم كامل من الحجز حتى العودة.', 'why.l1':'14 عاماً من الخبرة الميدانية','why.l2':'مرشدون سياحيون مرخّصون','why.l3':'دعم العملاء 24/7','why.l4':'ضمان أفضل سعر', 'why.btn':'تواصل معنا →', 'why.c1t':'120+ مسار','why.c1d':'عشرات الخيارات المحلية والدولية', 'why.c2t':'سفر مؤمّن','why.c2d':'تأمين شامل مدرج في كل باقة', 'why.c3t':'دفع بالتقسيط','why.c3d':'تقسيط بدون فوائد حتى 12 شهراً', 'why.c4t':'متوسط تقييم 4.9/5','why.c4d':'مراجعات حقيقية من عملائنا', 'rev.tag':'التقييمات','rev.h1':'ماذا قالوا','rev.h2':'عنّا؟', 'rv1.txt':'"كانت جولة خنالق رائعة! كان المرشد محترفاً جداً والمناظر خلابة. أنصح بها بشدة!"','rv1.name':'أيتن م.','rv1.date':'مارس 2026', 'rv2.txt':'"أجريت جولة إيطاليا مع توران. كل شيء كان مخططاً بشكل مثالي — الفندق، الجولات، النقل. راضٍ جداً."','rv2.name':'رشاد ك.','rv2.date':'يناير 2026', 'rv3.txt':'"ذهبنا مع العائلة إلى لاهيج. أحب الأطفال الرحلة وكذلك أنا. قيمة ممتازة مقابل السعر. سنعود للجولة القادمة."','rv3.name':'نيجار ه.','rv3.date':'فبراير 2026', 'rv4.txt':'"فاقت الجولة الجبلية توقعاتي. رغم صعوبة الطقس، تعامل الفريق مع كل شيء باحترافية. شكراً!"','rv4.name':'إلتشين ب.','rv4.date':'أبريل 2026', 'rv5.txt':'"كانت جولة كندا أجمل رحلة في حياتي. لا يمكن وصف مشاعري أمام شلالات نياغارا. ممتنون لتوران إلى الأبد!"','rv5.name':'سيفينج ق.','rv5.date':'مارس 2026', 'rv6.txt':'"ساعدتني جولة باكو المشتعلة على رؤية المدينة بعيون مختلفة تماماً. رغم كونها جولة محلية كانت مثيرة للاهتمام."','rv6.name':'تورخان أ.','rv6.date':'أبريل 2026', 'lv.tag':'آخر المشاهدات','lv.h1':'آخر','lv.h2':'المشاهدات', 'lv.t1':'جولة خيناليغ','lv.t2':'جولة شاهداغ','lv.t3':'جولة غابالا','lv.t4':'جولة دبي', 'lv.t5':'جولة إسطنبول','lv.t6':'جولة روما','lv.t7':'جولة باريس','lv.t8':'جولة برشلونة', 'lv.m1':'يوم · باكو','lv.m2':'يومان · قوبا','lv.m3':'٣ أيام · غابالا','lv.m4':'٥ أيام · دبي', 'lv.m5':'٤ أيام · إسطنبول','lv.m6':'٦ أيام · روما','lv.m7':'٧ أيام · باريس','lv.m8':'٥ أيام · برشلونة', 'insta.tag':'انستغرام','insta.h1':'ذكريات','insta.h2':'من الجولات','insta.handle':'@touran.az • تابعنا', 'con.tag':'اتصل بنا','con.h1':'أخبرنا','con.h2':'عن','con.h3':'خططك', 'con.desc':'نحن جاهزون للإجابة على أي سؤال وتخطيط الجولة المثالية لك. اتصل، اكتب، أو تفضل بالزيارة.', 'con.phone':'الهاتف','con.email':'البريد الإلكتروني','con.addr':'العنوان','con.addrval':'مدينة باكو، شارع نظامي', 'cf.name':'اسمك','cf.nameph':'علي حسنوف','cf.email':'بريدك الإلكتروني','cf.emailph':'ali@email.com', 'cf.subj':'الموضوع','cf.subjph':'حول جولة خنالق','cf.msg':'رسالتك','cf.msgph':'اكتب سؤالك أو طلبك...','cf.send':'إرسال →', 'foot.desc':'أكثر وكالات السياحة موثوقية في أذربيجان. منذ عام 2010 نحوّل كل لحظة إلى ذكرى.', 'foot.l1h':'روابط','foot.about':'من نحن','foot.tours':'الجولات','foot.routes':'المسارات','foot.blog':'المدونة', 'foot.l2h':'الجولات','foot.group':'جولات جماعية','foot.private':'جولات خاصة','foot.multiday':'جولات متعددة الأيام','foot.driver':'سائق فقط', 'foot.l3h':'الخدمات','foot.visa':'دعم التأشيرة','foot.flight':'تذاكر الطيران','foot.hotel':'حجز الفندق','foot.ins':'التأمين', 'foot.copy':'© تم التطوير بواسطة AYVUS LLC · توران. جميع الحقوق محفوظة.','foot.priv':'سياسة الخصوصية','foot.terms':'الشروط والأحكام', 'foot.addr':'مدينة باكو، شارع نظامي 12','foot.hours':'الإثنين–السبت: 09:00–18:00', 'tour.from':'ابتداءً من','tour.rec':'موصى به','tour.top':'الأكثر اختياراً','tour.drv':'مع سائق', 'cat.group.tag':'جولات جماعية','cat.group.h':'نكتشف معاً ونتذكر معاً','cat.group.sub':'أناس جدد، أماكن مثيرة، لحظات لا تُنسى. في جولاتنا الجماعية، كل خطوة تُخطى معاً — بأسعار معقولة.', 'cat.priv.tag':'جولات خاصة','cat.priv.h':'رحلة على مقاسك','cat.priv.sub':'بإيقاعك وخياراتك. في جولاتنا الخاصة، أنت تحدد كل التفاصيل — ونحن نوفر الأفضل.', 'cat.multi.tag':'جولات متعددة الأيام','cat.multi.h':'مزيد من الأماكن، مزيد من الذكريات','cat.multi.sub':'استكشف أذربيجان بعمق مع جولاتنا متعددة الأيام. كل يوم مغامرة جديدة، كل مساء ذكرى لا تُنسى.', 'cat.drv.tag':'سائق فقط','cat.drv.h':'اشعر بالحرية على الطريق','cat.drv.sub':'بدون مرشد، وفق جدولك الخاص. سائقنا الخبير يأخذك أينما أردت — أنت تستمتع بالرحلة.', 'cta.group.h':'لم تجد الجولة التي تبحث عنها؟','cta.group.p':'إذا أردت جولة جماعية خاصة، تواصل معنا — سنعد حزمة خاصة لك.','cta.group.btn':'تواصل معنا →', 'cta.priv.h':'تريد جولة خاصة مميزة؟','cta.priv.p':'المسار، الوقت، الوسيلة — لنخطط كل شيء معاً. مخصصة تماماً لك.','cta.priv.btn':'اطلب حزمة →', 'cta.multi.h':'مسارات جديدة قريباً!','cta.multi.p':'للمزيد من خيارات الجولات متعددة الأيام، تواصل معنا — سنعد حزمة خاصة.','cta.multi.btn':'اطلب حزمة →', 'cta.drv.p':'اختر وجهتك، الوقت والمركبة — سنجهز لك سائقاً.','cta.drv.btn':'تواصل معنا →', 'td.book':'احجز الآن','td.info':'معلومات الجولة','td.start':'البداية','td.end':'النهاية','td.duration':'المدة','td.type':'نوع الجولة', 'td.highlights':'المميزات الرئيسية','td.itinerary':'جدول اليوم','td.incexc':'مشمول / غير مشمول','td.inc':'مشمول','td.exc':'غير مشمول','td.notes':'ملاحظات ومعلومات', 'td.othertours':'جولات أخرى','td.recommended':'الجولات الموصى بها','td.seeall':'عرض الكل','td.view':'عرض →', 'td.co.title':'الحجز','td.co.res':'حجز','td.co.deposit':'عربون: $1','td.co.buy':'شراء مباشر','td.co.fullpay':'دفع كامل', 'td.co.tourinfo':'معلومات الجولة','td.co.date':'تاريخ الجولة','td.co.time':'وقت الجولة','td.co.adults':'البالغون','td.co.children':'الأطفال (3–12 سنة)', 'td.co.passenger':'بيانات المسافر','td.co.fname':'الاسم','td.co.lname':'اللقب','td.co.phone':'الهاتف','td.co.email':'البريد الإلكتروني', 'td.co.pickup':'عنوان الاستلام','td.co.guidlang':'لغة المرشد', 'td.co.fname.ph':'محمد','td.co.lname.ph':'العلي','td.co.pickup.ph':'اسم الشارع، رقم المبنى...', 'td.co.success':'تم استلام طلبك!','td.co.successmsg':'سنتواصل معك قريباً. سيتم إرسال تأكيد إلى بريدك الإلكتروني.', 'td.co.close':'إغلاق','td.co.total':'الإجمالي','td.co.submit':'اطلب الآن →', 'tour.cart':'أضف إلى السلة', 'cart.title':'السلة','cart.h1':'جولاتك','cart.desc':'قائمة الجولات المحجوزة والمشتراة', 'cart.total':'المجموع','cart.checkoutall':'اشترِ الكل الآن →','cart.purchased':'مشترياتي', 'cart.empty.h':'لا يوجد شيء','cart.empty.p':'لم تضف أي جولة بعد','cart.browse':'استعرض الجولات →', 'cart.reserve':'احجز','cart.buynow':'احصل عليه الآن','cart.adult':'بالغ','cart.child':'طفل', 'cart.paid':'✓ تم الدفع','cart.type.purchase':'شراء','cart.type.res':'حجز','cart.waiting':'⏳ انتظر...', 'wl.tag':'قائمة الرغبات','wl.h1a':'جولاتك','wl.h1b':'المفضلة','wl.sub':'احفظ الجولات التي أعجبتك من هنا واحجزها', 'wl.empty.h':'قائمة رغباتك فارغة','wl.empty.p':'استكشف الجولات واضغط على القلب لما يعجبك','wl.browse':'استعرض الجولات →', }, cn: { 'topbar.msg1':'🎉 夏季旅游15%折扣!','topbar.msg2':'✈️ 所有旅游免费取消','topbar.msg3':'📞 24/7 支持: +994 50 000 00 00', 'nav.home':'首页','nav.tours':'旅游','nav.about':'关于我们','nav.contact':'联系', 'nav.group':'团体游','nav.group.d':'团体旅游','nav.private':'私人游','nav.private.d':'私人旅游','nav.multiday':'多日游','nav.multiday.d':'多日旅游','nav.driver':'仅司机','nav.driver.d':'仅司机服务', 'hero.t1':'每一刻','hero.t2':'化作','hero.t3':'美好回忆', 'hero.badge':'阿塞拜疆第一旅行社','hero.cta1':'探索旅游','hero.cta2':'联系我们','hero.rating':'平均评分', 'hero.sub':'从阿塞拜疆最美丽的角落到世界各地——每次旅行都是一个故事,每一刻都是美好回忆。', 'hero.s1':'满意游客','hero.s2':'路线','hero.s3':'年经验','hero.years':'经验','hero.popular':'热门:', 'search.dest.label':'您想去哪里?','search.dest':'巴库,舍基,伊斯坦布尔...','search.date.label':'日期','search.date':'选择月份','search.guests.label':'旅行者','search.guests':'2人','search.btn':'搜索', 'search.where':'您想去哪里?','search.ph':'例如:舍基,古巴,巴库...','search.start':'开始日期','search.travelers':'旅行者', 'dest.tag':'目的地','dest.h1':'您下次旅行','dest.h2':'打算去哪里?','dest.explore':'探索 →','dest.top':'最受欢迎', 'dest.az':'阿塞拜疆','dest.az.r':'40+条路线','dest.tr':'土耳其','dest.tr.r':'18+条路线', 'dest.it':'意大利','dest.it.r':'12+条路线','dest.ca':'加拿大','dest.ca.r':'8+条路线','dest.uk':'英国','dest.uk.r':'10+条路线', 'feat.tag':'旅游','feat.h1':'全国最精彩','feat.h2':'的旅游线路','feat.sub':'沿着阿塞拜疆最佳路线旅行,享受舒适与生动的印象', 'vid.tag':'城市','vid.h1':'通过视频','vid.h2':'探索我们的旅游','vid.lahic':'拉希奇城市','vid.lahic.d':'拥有2000年历史的铜匠之城——通过视频了解拉希奇。','vid.baku':'巴库城市','vid.baku.d':'阿塞拜疆首都巴库的古老街道和壮丽建筑。', 'tours.tag':'旅游','tours.h1':'最','tours.h2':'热门','tours.h3':'旅游', 'tour.pop':'最受欢迎','tour.new':'新品','tour.prem':'高级','tour.book':'立即预订','tour.buy':'立即获取','tour.rev':'评论','per.person':'/人', 't1.meta':'1天·巴库','t1.title':'希纳雷格之旅','t1.desc':'探索阿塞拜疆最古老的村庄之一,文化、历史与自然交汇之地。', 't2.meta':'1天·沙马希','t2.title':'拉希奇之旅','t2.desc':'在拉希奇铜匠之城体验延续数千年的手工艺传统。', 't3.meta':'1天·古萨尔','t3.title':'山地之旅','t3.desc':'在高加索令人惊叹的山地风光中自由呼吸,充满活力,景色奇幻。', 't4.meta':'1天·巴库','t4.title':'火焰巴库','t4.desc':'探索城市标志性的火焰塔和巴库古城区。', 't7.meta':'2天·舍基','t7.title':'舍基之旅','t7.desc':'历史驿站、丝绸工厂和壮观的舍基汗宫——阿塞拜疆的明珠。', 't8.meta':'1天·古巴','t8.title':'古巴&格里兹之旅','t8.desc':'神秘的红色定居点、格里兹山村和茂密森林——难忘的一天。', 'tours.all':'查看所有旅游 →', 'drv.tag':'仅司机','drv.h1':'按您的方式','drv.h2':'自由探索', 'drv.desc':'带司机的汽车租赁——无导游,按您的日程。适合追求完全自由的独立旅行者。', 'drv.cta':'预订司机', 'drv.f1t':'灵活日程','drv.f1d':'随时随地停车。', 'drv.f2t':'经验丰富的司机','drv.f2d':'熟悉全国每个角落的专业司机。', 'drv.f3t':'实惠价格','drv.f3d':'比完整旅游套餐更实惠。', 'drv.f4t':'多种车辆','drv.f4d':'轿车、SUV、迷你巴士——由您选择。', 'why.tag':'为什么选择Touran?','why.h1':'让旅行轻松,','why.h2':'让时光永恒的','why.h3':'旅行社', 'why.desc':'自2010年以来,Touran已为4800多名旅行者提供服务,每一步都陪伴您左右。从预订到返回,全程支持。', 'why.l1':'14年实地经验','why.l2':'持证导游','why.l3':'24/7客户支持','why.l4':'最低价格保证', 'why.btn':'联系我们 →', 'why.c1t':'120+条路线','why.c1d':'数十种本地和国际选择', 'why.c2t':'保险旅行','why.c2d':'每个套餐均含全险', 'why.c3t':'分期付款','why.c3d':'最长12个月免息分期', 'why.c4t':'4.9/5平均评分','why.c4d':'来自客户的真实评价', 'rev.tag':'评价','rev.h1':'他们如何评价','rev.h2':'我们?', 'rv1.txt':'"希纳雷格之旅令人难以置信!我们的导游非常专业,风景令人叹为观止。强烈推荐!"','rv1.name':'Ayten M.','rv1.date':'2026年3月', 'rv2.txt':'"我和Touran一起参加了意大利之旅。一切都计划得非常完美——酒店、游览、交通。非常满意。"','rv2.name':'Rashad K.','rv2.date':'2026年1月', 'rv3.txt':'"和家人一起去了拉希奇。孩子们很喜欢,我也是。性价比超高。我们下次还会来预订。"','rv3.name':'Nigar H.','rv3.date':'2026年2月', 'rv4.txt':'"山地之旅超出了我的预期。尽管天气恶劣,团队解决了一切。感谢专业的态度!"','rv4.name':'Elchin B.','rv4.date':'2026年4月', 'rv5.txt':'"加拿大之旅是我人生中最美好的旅程。站在尼亚加拉瀑布前,我的感受无法用语言表达。无限感谢Touran!"','rv5.name':'Sevinj Q.','rv5.date':'2026年3月', 'rv6.txt':'"火焰巴库之旅让我用全新的眼光看待这座城市。尽管是本地游,但非常有趣。"','rv6.name':'Turkhan A.','rv6.date':'2026年4月', 'lv.tag':'最近浏览','lv.h1':'最近','lv.h2':'浏览', 'lv.t1':'希纳雷格之旅','lv.t2':'沙赫达格之旅','lv.t3':'甘贾之旅','lv.t4':'迪拜之旅', 'lv.t5':'伊斯坦布尔之旅','lv.t6':'罗马之旅','lv.t7':'巴黎之旅','lv.t8':'巴塞罗那之旅', 'lv.m1':'1天·巴库','lv.m2':'2天·古巴','lv.m3':'3天·甘贾','lv.m4':'5天·迪拜', 'lv.m5':'4天·伊斯坦布尔','lv.m6':'6天·罗马','lv.m7':'7天·巴黎','lv.m8':'5天·巴塞罗那', 'insta.tag':'Instagram','insta.h1':'旅游中的','insta.h2':'美好瞬间','insta.handle':'@touran.az • 在Instagram上关注我们', 'con.tag':'联系','con.h1':'告诉我们','con.h2':'您的','con.h3':'计划', 'con.desc':'我们随时准备回答您的任何问题,为您规划完美的旅游。请致电、写信或亲临拜访。', 'con.phone':'电话','con.email':'电子邮件','con.addr':'地址','con.addrval':'巴库市,尼扎米街', 'cf.name':'您的姓名','cf.nameph':'张伟','cf.email':'您的电子邮件','cf.emailph':'zhang@email.com', 'cf.subj':'主题','cf.subjph':'关于希纳雷格之旅','cf.msg':'您的留言','cf.msgph':'请写下您的问题或请求...','cf.send':'发送 →', 'foot.desc':'阿塞拜疆最值得信赖的旅行社。自2010年以来,将每一刻化作美好回忆。', 'foot.l1h':'链接','foot.about':'关于我们','foot.tours':'旅游','foot.routes':'路线','foot.blog':'博客', 'foot.l2h':'旅游','foot.group':'团体游','foot.private':'私人游','foot.multiday':'多日游','foot.driver':'仅司机', 'foot.l3h':'联系我们','foot.visa':'签证支持','foot.flight':'机票','foot.hotel':'酒店预订','foot.ins':'保险', 'foot.copy':'© 由AYVUS LLC开发 · Touran。保留所有权利。','foot.priv':'隐私政策','foot.terms':'条款', 'foot.addr':'巴库市,尼扎米街12号','foot.hours':'周一至周六:09:00–18:00', 'tour.from':'起','tour.rec':'推荐','tour.top':'最受欢迎','tour.drv':'含司机', 'cat.group.tag':'团体游','cat.group.h':'共同探索,共同回忆','cat.group.sub':'结识新朋友,探索有趣地方,留下难忘时刻。在我们的团体游中,每一步都一起走——价格实惠。', 'cat.priv.tag':'私人游','cat.priv.h':'专属于您的旅程','cat.priv.sub':'按您的节奏,按您的选择。在我们的私人游中,您决定每个细节——我们提供最好的服务。', 'cat.multi.tag':'多日游','cat.multi.h':'更多地方,更多回忆','cat.multi.sub':'通过我们的多日游深度探索阿塞拜疆。每天新冒险,每晚难忘回忆。', 'cat.drv.tag':'仅司机','cat.drv.h':'在路上感受自由','cat.drv.sub':'无导游,按您的日程。我们经验丰富的司机带您去任何想去的地方——您只需享受旅途。', 'cta.group.h':'没找到您想要的旅游?','cta.group.p':'如果您想要特别团体游,请联系我们——我们将为您准备专属套餐。','cta.group.btn':'联系我们 →', 'cta.priv.h':'想要特别私人游?','cta.priv.p':'路线、时间、交通——让我们一起规划一切。完全为您量身定制。','cta.priv.btn':'订购套餐 →', 'cta.multi.h':'新路线即将推出!','cta.multi.p':'如需更多多日游选择,请联系我们——我们将为您创建专属套餐。','cta.multi.btn':'订购套餐 →', 'cta.drv.p':'选择您的目的地、时间和交通——我们将为您安排司机。','cta.drv.btn':'联系我们 →', 'td.book':'立即预订','td.info':'旅游信息','td.start':'开始','td.end':'结束','td.duration':'时长','td.type':'旅游类型', 'td.highlights':'主要亮点','td.itinerary':'行程','td.incexc':'包含/不包含','td.inc':'包含','td.exc':'不包含','td.notes':'备注与信息', 'td.othertours':'其他旅游','td.recommended':'推荐旅游','td.seeall':'查看全部','td.view':'查看 →', 'td.co.title':'预订','td.co.res':'预订','td.co.deposit':'定金:$1','td.co.buy':'直接购买','td.co.fullpay':'全额付款', 'td.co.tourinfo':'旅游信息','td.co.date':'旅游日期','td.co.time':'旅游时间','td.co.adults':'成人','td.co.children':'儿童(3-12岁)', 'td.co.passenger':'乘客信息','td.co.fname':'名','td.co.lname':'姓','td.co.phone':'电话','td.co.email':'电子邮件', 'td.co.pickup':'接送地址','td.co.guidlang':'导游语言', 'td.co.fname.ph':'张','td.co.lname.ph':'伟','td.co.pickup.ph':'街道名称,楼号...', 'td.co.success':'您的订单已收到!','td.co.successmsg':'我们将很快与您联系。确认邮件将发送到您的电子邮箱。', 'td.co.close':'关闭','td.co.total':'合计','td.co.submit':'立即下单 →', 'tour.cart':'加入购物车', 'cart.title':'购物车','cart.h1':'您的旅游','cart.desc':'您预订和购买的旅游列表', 'cart.total':'总计','cart.checkoutall':'立即全部购买 →','cart.purchased':'我的购买', 'cart.empty.h':'购物车为空','cart.empty.p':'您还没有添加任何旅游','cart.browse':'浏览旅游 →', 'cart.reserve':'预订','cart.buynow':'立即获取','cart.adult':'成人','cart.child':'儿童', 'cart.paid':'✓ 付款完成','cart.type.purchase':'购买','cart.type.res':'预订','cart.waiting':'⏳ 请稍候...', 'wl.tag':'心愿单','wl.h1a':'您的','wl.h1b':'收藏旅游','wl.sub':'在这里保存您喜欢的旅游并预订', 'wl.empty.h':'心愿单为空','wl.empty.p':'浏览旅游并点击心形图标收藏喜欢的','wl.browse':'浏览旅游 →', } }; // ─── PHP-dən gələn aktiv dil ───────────────────────── const PHP_LANG = window.__LANG__ || 'az'; let currentLang = PHP_LANG; function setLang(lang, noFetch) { currentLang = lang; const t = T[lang]; if (!t) return; // PHP-rendered səhifələrdə tam reload et ki bütün mətnlər dəyişsin const _path = window.location.pathname; const _phpPages = ['index.php', 'elaqe.php', 'group-tours.php', 'private-tours.php', 'multiday-tours.php', 'driver-tours.php', 'wishlist.php', 'cart.php']; const _isPhpPage = _phpPages.some(p => _path.endsWith(p)) || _path.endsWith('/') || _path === ''; const _currentLangParam = new URL(window.location.href).searchParams.get('lang'); if (_isPhpPage && !noFetch && _currentLangParam !== lang) { document.cookie = `lang=${lang};path=/;max-age=31536000`; const _url = new URL(window.location.href); _url.searchParams.set('lang', lang); window.location.href = _url.toString(); return; } document.documentElement.lang = lang; document.documentElement.dir = lang === 'ar' ? 'rtl' : 'ltr'; document.querySelectorAll('[data-i18n]').forEach(el => { const k = el.dataset.i18n; if (t[k] !== undefined) el.textContent = t[k]; }); document.querySelectorAll('[data-i18n-ph]').forEach(el => { const k = el.dataset.i18nPh; if (t[k] !== undefined) el.placeholder = t[k]; }); document.querySelectorAll('.lang-btn, .lang-option').forEach(btn => { btn.classList.toggle('active', btn.dataset.lang === lang); }); const toggle = document.getElementById('langToggle'); if (toggle) { toggle.querySelector('.lang-code').textContent = lang.toUpperCase(); } document.cookie = `lang=${lang};path=/;max-age=31536000`; if (!noFetch) fetch(`?lang=${lang}`, { credentials: 'same-origin' }); // Tur kartlarının başlıq/desc/meta/tags mətnlərini aktiv dilə görə yenilə document.querySelectorAll('.tour-card[data-title-az]').forEach(card => { const cap = lang.charAt(0).toUpperCase() + lang.slice(1); const title = card.dataset['title' + cap] || card.dataset.titleAz || ''; const desc = card.dataset['desc' + cap] || card.dataset.descAz || ''; const meta = card.dataset['meta' + cap] || card.dataset.metaAz || ''; const tagsStr = card.dataset['tags' + cap] || card.dataset.tagsAz || ''; const h3 = card.querySelector('h3'); const p = card.querySelector('.tc-body > p'); const m = card.querySelector('.tc-meta'); if (h3 && title) h3.textContent = title; if (p && desc) p.textContent = desc; if (m && meta) m.textContent = meta; const catsEl = card.querySelector('.tc-cats'); if (catsEl && tagsStr) { const tagArr = tagsStr.split(',').map(s => s.trim()).filter(Boolean).slice(0, 3); catsEl.innerHTML = tagArr.map(tg => `${tg}`).join(''); } }); // Breadcrumb tour adını yenilə const bcTitle = document.getElementById('td-breadcrumb-title'); if (bcTitle) { const cap = lang.charAt(0).toUpperCase() + lang.slice(1); bcTitle.textContent = bcTitle.dataset['title' + cap] || bcTitle.dataset.titleAz || bcTitle.textContent; } // Hero popular tags const heroTagsEl = document.getElementById('heroTags'); if (heroTagsEl) { try { const allTags = JSON.parse(heroTagsEl.dataset.tags || '{}'); const tags = allTags[lang] || allTags['az'] || []; heroTagsEl.querySelectorAll('.htag').forEach((el, i) => { if (tags[i]) el.textContent = tags[i]; }); } catch(e) {} } // Contact & footer address ['cinfoAddress', 'footerAddress'].forEach(id => { const el = document.getElementById(id); if (!el) return; try { const all = JSON.parse(el.dataset.addr || '{}'); const val = all[lang] || all['az'] || ''; if (val) el.textContent = val; } catch(e) {} }); // Re-render cart if on cart page so dynamic texts update if (typeof renderCart === 'function' && document.getElementById('cart-container')) { renderCart(); } } document.querySelectorAll('.lang-btn').forEach(btn => { btn.addEventListener('click', () => setLang(btn.dataset.lang)); }); // ─── LANG DROPDOWN ─────────────────────────────────── const langDropdown = document.getElementById('langDropdown'); const langToggle = document.getElementById('langToggle'); const langMenu = document.getElementById('langMenu'); if (langToggle) { langToggle.addEventListener('click', (e) => { e.stopPropagation(); langDropdown.classList.toggle('open'); langToggle.setAttribute('aria-expanded', langDropdown.classList.contains('open')); }); } document.querySelectorAll('.lang-option').forEach(btn => { btn.addEventListener('click', () => { setLang(btn.dataset.lang); if (langDropdown) langDropdown.classList.remove('open'); if (langToggle) langToggle.setAttribute('aria-expanded', 'false'); }); }); document.addEventListener('click', (e) => { if (langDropdown && !langDropdown.contains(e.target)) { langDropdown.classList.remove('open'); if (langToggle) langToggle.setAttribute('aria-expanded', 'false'); } }); // ─── SƏBƏTƏ ƏLAVƏ ET (tour card button) ───────────── document.addEventListener('click', e => { const btn = e.target.closest('.btn-cart-cta'); if (!btn) return; e.stopPropagation(); const card = btn.closest('[data-tour-key]'); if (!card) return; const key = card.dataset.tourKey || ''; const imgEl = card.querySelector('.tc-img'); const img = imgEl ? imgEl.style.backgroundImage.replace(/url\(["']?|["']?\)/g,'') : ''; const title = (card.querySelector('h3') || {}).textContent || ''; const meta = (card.querySelector('.tc-meta') || {}).textContent || ''; const price = (card.querySelector('.tc-price span') || {}).textContent || ''; const rating= (card.querySelector('.tc-rating') || {}).textContent?.match(/[\d.]+/)?.[0] || '4.8'; const cart = getCart(); cart.push({ key, img, title, meta, price, rating, date:'', time:'09:00', adults:1, children:0, total:price, type:'reservation', addedAt:Date.now() }); saveCart(cart); updateCartBadge(); window.location.href = 'cart.php'; }); // ─── NAVBAR SCROLL ─────────────────────────────────── const navbar = document.getElementById('navbar'); const navbarLocked = navbar.classList.contains('scrolled'); window.addEventListener('scroll', () => { if (navbarLocked) return; navbar.classList.toggle('scrolled', window.scrollY > 40); }); // ─── HAMBURGER MENU ───────────────────────────────────── const hamburger = document.getElementById('hamburger'); const mobileMenu = document.getElementById('mobileMenu'); let menuOpen = false; // Backdrop yarad const mmBackdrop = document.createElement('div'); mmBackdrop.className = 'mm-backdrop'; document.body.appendChild(mmBackdrop); // Close düyməsi və header mənmən içəriəsini inject et if (mobileMenu) { const mmHeader = document.createElement('div'); mmHeader.className = 'mm-header'; mmHeader.innerHTML = 'Touran' + ''; mobileMenu.insertBefore(mmHeader, mobileMenu.firstChild); const mmDivider = document.createElement('div'); mmDivider.className = 'mm-divider'; const ulEl = mobileMenu.querySelector('ul'); if (ulEl && ulEl.nextSibling) mobileMenu.insertBefore(mmDivider, ulEl.nextSibling); // Accessibility mobileMenu.setAttribute('role', 'dialog'); mobileMenu.setAttribute('aria-modal', 'true'); mobileMenu.setAttribute('aria-label', 'Naviqasiya menüsyü'); } hamburger.setAttribute('aria-controls', 'mobileMenu'); hamburger.setAttribute('aria-expanded', 'false'); function openMenu() { menuOpen = true; mobileMenu.classList.add('open'); mmBackdrop.classList.add('open'); document.body.style.overflow = 'hidden'; hamburger.setAttribute('aria-expanded', 'true'); hamburger.setAttribute('aria-label', 'Menünü bağla'); // Focus first focusable element const firstFocusable = mobileMenu.querySelector('a, button'); if (firstFocusable) setTimeout(() => firstFocusable.focus(), 50); } function closeMenu() { menuOpen = false; mobileMenu.classList.remove('open'); mmBackdrop.classList.remove('open'); document.body.style.overflow = ''; hamburger.setAttribute('aria-expanded', 'false'); hamburger.setAttribute('aria-label', 'Menünü aç'); hamburger.focus(); } hamburger.addEventListener('click', () => menuOpen ? closeMenu() : openMenu()); mmBackdrop.addEventListener('click', closeMenu); document.addEventListener('keydown', e => { if (e.key === 'Escape' && menuOpen) closeMenu(); }); const mmCloseBtn = document.getElementById('mmCloseBtn'); if (mmCloseBtn) mmCloseBtn.addEventListener('click', closeMenu); document.querySelectorAll('.mm-link').forEach(l => { l.addEventListener('click', closeMenu); }); // ─── SCROLL REVEAL ─────────────────────────────────── const revealObs = new IntersectionObserver( (entries) => { entries.forEach((e, i) => { if (e.isIntersecting) { setTimeout(() => e.target.classList.add('visible'), i * 80); revealObs.unobserve(e.target); } }); }, { threshold: 0.12, rootMargin: '0px 0px -40px 0px' } ); document.querySelectorAll('.tours-grid, .reviews-grid, .why-cards, .bento-grid, .insta-grid, .driver-features').forEach(grid => { Array.from(grid.children).forEach(child => { if (!child.classList.contains('reveal')) child.classList.add('reveal'); revealObs.observe(child); }); }); document.querySelectorAll('.reveal').forEach(el => revealObs.observe(el)); // ─── COUNTER ANIMATION ─────────────────────────────── function animateCounter(el, target, duration = 1800) { const step = (timestamp) => { if (!step.startTime) step.startTime = timestamp; const progress = Math.min((timestamp - step.startTime) / duration, 1); const eased = 1 - Math.pow(1 - progress, 3); el.textContent = Math.floor(eased * target).toLocaleString(); if (progress < 1) requestAnimationFrame(step); else el.textContent = target.toLocaleString(); }; requestAnimationFrame(step); } const counterObs = new IntersectionObserver((entries) => { entries.forEach(e => { if (e.isIntersecting) { animateCounter(e.target, parseInt(e.target.dataset.target)); counterObs.unobserve(e.target); } }); }, { threshold: 0.5 }); document.querySelectorAll('.stat-num').forEach(el => counterObs.observe(el)); // ─── HERO SEARCH → TOURS BRIDGE ────────────────────── const heroSearchInput = document.getElementById('heroSearch'); if (heroSearchInput) { heroSearchInput.addEventListener('keydown', e => { if (e.key === 'Enter') { document.getElementById('tours').scrollIntoView({ behavior: 'smooth' }); const tsInput = document.getElementById('tour-search'); if (tsInput) { tsInput.value = heroSearchInput.value; tsInput.dispatchEvent(new Event('input')); } } }); document.getElementById('heroSearchBtn')?.addEventListener('click', () => { const tsInput = document.getElementById('tour-search'); if (tsInput) { tsInput.value = heroSearchInput.value; tsInput.dispatchEvent(new Event('input')); } }); } // ─── TOUR SEARCH ───────────────────────────────────── const tourSearchInput = document.getElementById('tour-search'); const tourCards = document.querySelectorAll('.tour-card'); if (tourSearchInput) { tourSearchInput.addEventListener('input', () => { const q = tourSearchInput.value.toLowerCase().trim(); tourCards.forEach(card => { const match = !q || card.textContent.toLowerCase().includes(q); card.style.opacity = '0'; card.style.transform = 'scale(0.95)'; setTimeout(() => { card.style.display = match ? '' : 'none'; if (match) { card.style.opacity = '1'; card.style.transform = ''; } }, 150); }); }); } // ─── WISHLIST (localStorage) ───────────────────────── const wishlistBadgeEl = document.getElementById('wishlistBadge'); function getWishlist() { try { return JSON.parse(localStorage.getItem('touran_wishlist') || '[]'); } catch(e) { return []; } } function saveWishlist(items) { localStorage.setItem('touran_wishlist', JSON.stringify(items)); } function isInWishlist(key) { return getWishlist().some(i => i.key === key); } function updateWishlistBadge() { const n = getWishlist().length; if (wishlistBadgeEl) { wishlistBadgeEl.textContent = n > 0 ? n : ''; wishlistBadgeEl.classList.toggle('visible', n > 0); } } function toggleFav(btn, tourData) { const list = getWishlist(); const idx = list.findIndex(i => i.key === tourData.key); if (idx > -1) { list.splice(idx, 1); btn.textContent = '♡'; btn.style.color = ''; } else { list.push(tourData); btn.textContent = '♥'; btn.style.color = '#ec4899'; } saveWishlist(list); updateWishlistBadge(); } document.querySelectorAll('.tc-fav').forEach(btn => { const card = btn.closest('.tour-card'); if (!card) return; const key = card.dataset.tourKey || ''; if (isInWishlist(key)) { btn.textContent = '♥'; btn.style.color = '#ec4899'; } btn.addEventListener('click', e => { e.stopPropagation(); const imgEl = card.querySelector('.tc-img'); const img = imgEl ? imgEl.style.backgroundImage.replace(/url\(["']?|["']?\)/g,'') : ''; const price = (card.querySelector('.tc-price span') || {}).textContent || ''; const ratingText = (card.querySelector('.tc-rating') || {}).textContent || ''; const rating = ratingText.match(/[\d.]+/)?.[0] || '4.8'; const cntMatch = ratingText.match(/\((\d+)/); const cnt = cntMatch ? cntMatch[1] : ''; const titleKey = card.querySelector('h3')?.dataset?.i18n || ''; const metaKey = card.querySelector('.tc-meta')?.dataset?.i18n || ''; const descKey = card.querySelector('p')?.dataset?.i18n || ''; const badgeEl = card.querySelector('.tc-badge'); const badge = badgeEl?.dataset?.i18n || ''; const badgeIsNew = badgeEl?.classList?.contains('tc-badge-new') || false; const dateEl = card.querySelector('.tc-date'); const date = dateEl ? dateEl.textContent.trim() : ''; toggleFav(btn, { key, img, price, rating, cnt, titleKey, metaKey, descKey, badge, badgeIsNew, date }); }); }); document.querySelectorAll('.lv-fav').forEach(btn => { const card = btn.closest('.lv-card'); if (!card) return; const key = card.dataset.tourKey || ''; if (isInWishlist(key)) { btn.textContent = '♥'; btn.style.color = '#ec4899'; } btn.addEventListener('click', e => { e.stopPropagation(); const imgEl = card.querySelector('.lv-img'); const img = imgEl ? imgEl.style.backgroundImage.replace(/url\(["']?|["']?\)/g,'') : ''; const price = (card.querySelector('.lv-price') || {}).textContent || ''; const titleKey = card.querySelector('h4')?.dataset?.i18n || ''; const metaKey = card.querySelector('.lv-meta')?.dataset?.i18n || ''; toggleFav(btn, { key, img, price, rating: '4.8', titleKey, metaKey }); }); }); const wishlistBtn = document.getElementById('wishlistBtn'); if (wishlistBtn) { wishlistBtn.addEventListener('click', () => { window.location.href = 'wishlist.php'; }); } updateWishlistBadge(); // ─── CURSOR GLOW ───────────────────────────────────── if (window.matchMedia('(pointer: fine)').matches) { const glow = document.createElement('div'); glow.className = 'cursor-glow'; document.body.appendChild(glow); document.addEventListener('mousemove', (e) => { glow.style.left = e.clientX + 'px'; glow.style.top = e.clientY + 'px'; }); } // ─── SMOOTH ANCHOR SCROLL ──────────────────────────── document.querySelectorAll('a[href^="#"]').forEach(a => { a.addEventListener('click', (e) => { const target = document.querySelector(a.getAttribute('href')); if (target) { e.preventDefault(); target.scrollIntoView({ behavior: 'smooth', block: 'start' }); } }); }); // ─── HERO BACKGROUND SLIDESHOW ─────────────────────── (function() { const slides = document.querySelectorAll('.hss-slide'); if (!slides.length) return; let current = 0; setInterval(() => { slides[current].classList.remove('active'); current = (current + 1) % slides.length; slides[current].classList.add('active'); }, 6000); })(); // ─── INIT ──────────────────────────────────────────── // Səbət səhifəsi üçün qlobal dəyişənlər (setLang-dan əvvəl olmalıdır) let cartPage = 0, purchasedPage = 0; const PAGE_SIZE = 6; setLang(currentLang); // ─── TOUR DETAIL DATA ──────────────────────────────── const TOUR_DETAIL_DATA = { t1: { highlights: ['Dünyanın ən yüksək məskunlaşmış kəndlərindən biri — Xınalıq','Böyük Qafqaz dağlarının möhtəşəm panoramik mənzərələri','Yerli mədəniyyət, ənənə və Atəşpərəstlər məbədi','Beş Barmaq Dağı xüsusi foto dayancağı'], itinerary: [{time:'09:00',desc:'Bakıdan / oteldən götürülmə'},{time:'11:00',desc:'Quba şəhərindən keçiş, qısa fasilə'},{time:'12:30',desc:'Xınalıq kəndinə çatış'},{time:'13:00',desc:'Nahar fasiləsi (öz hesabınıza)'},{time:'14:00',desc:'Kənd gəzintisi — tarixi məbəd, ənənəvi evlər'},{time:'16:00',desc:'Beş Barmaq Dağı, panoramik görünüş'},{time:'17:30',desc:'Fotoşəkil fasiləsi, azad vaxt'},{time:'20:30',desc:'Bakıya qayıdış — ev/otelə çatdırılma'}], includes: ['Kondisioner avtobus','Peşəkar bələdçi','Sığorta','Otel/ev götürülmə-çatdırılma'], excludes: ['Nahar (öz hesabınıza)','Giriş biletləri','Şəxsi xərclər'] }, t2: { highlights: ['1700 il yaşı olan unikal mis-sənətkarlıq kəndi — Lahıc','Usta emalatxanalarına xüsusi giriş imkanı','Qədim daş döşəmələr, tarixi memarlıq nümunələri','Bağçasaray dərəsi boyunca təbiət gəzintisi'], itinerary: [{time:'09:00',desc:'Bakıdan / oteldən götürülmə'},{time:'10:30',desc:'Şamaxı, İmamzadə ziyarətgahı, qısa dayanacaq'},{time:'12:30',desc:'Lahıc kəndinə çatış'},{time:'13:00',desc:'Nahar fasiləsi (öz hesabınıza)'},{time:'14:00',desc:'Mis ustaları emalatxanalarına baş çəkmə'},{time:'15:30',desc:'Qədim kənd küçələri, ənənəvi evlər gəzintisi'},{time:'17:00',desc:'Suvenir alışverişi, azad vaxt'},{time:'20:00',desc:'Bakıya qayıdış — ev/otelə çatdırılma'}], includes: ['Kondisioner avtobus','Peşəkar bələdçi','Sığorta','Otel/ev götürülmə-çatdırılma'], excludes: ['Nahar (öz hesabınıza)','Suvenirlər','Şəxsi xərclər'] }, t3: { highlights: ['Qafqazın ən möhtəşəm dağ mənzərələri — Qusar rayonu','Şahdağ Milli Parkının heyrətamiz təbiəti','Milli Parka xüsusi giriş imkanı','Dağ havasında rahatlanma, piyada gəzinti'], itinerary: [{time:'08:30',desc:'Bakıdan / oteldən götürülmə'},{time:'10:30',desc:'Qusar şəhərinə çatış, qısa fasilə'},{time:'11:30',desc:'Dağ yolu boyunca panoramik gediş'},{time:'12:30',desc:'Nahar fasiləsi (öz hesabınıza)'},{time:'13:30',desc:'Dağ gəzintisi, fotoşəkil nöqtələri'},{time:'15:00',desc:'Milli Park ərazisi, xüsusi giriş'},{time:'17:00',desc:'Azad vaxt, suvenir alışverişi'},{time:'19:00',desc:'Bakıya qayıdış — ev/otelə çatdırılma'}], includes: ['Kondisioner avtobus','Peşəkar bələdçi','Sığorta','Otel/ev götürülmə-çatdırılma'], excludes: ['Nahar (öz hesabınıza)','Xüsusi ekskursiyalar','Şəxsi xərclər'] }, t4: { highlights: ['Alov Qüllələri — Bakının ikonik simvolu, yaxın məsafədən görünüş','İçərişəhər — UNESCO Dünya İrsi siyahısındakı qədim şəhər','Qız Qalası, Şirvanşahlar Sarayı kompleksi','Bulvar boyunca Xəzər dənizi panoraması'], itinerary: [{time:'09:00',desc:'Oteldən / ev ünvanından götürülmə'},{time:'09:30',desc:'Bulvar — Xəzər dənizi, piyada gəzinti'},{time:'10:30',desc:'İçərişəhər — Qız Qalası, tarixi küçələr'},{time:'12:00',desc:'Nahar fasiləsi (öz hesabınıza)'},{time:'13:30',desc:'Şirvanşahlar Sarayı kompleksi'},{time:'15:00',desc:'Alov Qüllələri məntəqəsi, panoramik görünüş'},{time:'16:30',desc:'Şəhər gəzintisi, suvenir alışverişi'},{time:'18:00',desc:'Ev/otelə çatdırılma'}], includes: ['Nəqliyyat','Peşəkar bələdçi','Sığorta','Şirvanşahlar Sarayı bilet'], excludes: ['Nahar (öz hesabınıza)','Qız Qalası bilet','Şəxsi xərclər'] }, t7: { highlights: ['Şəki Xanları Sarayı — 18-ci əsr memarlıq şeddevri','Tarixi Karvansara — ən yaxşı saxlanmış nümunələrdən biri','Şəki ipəkçilik fabrikini ziyarət','2 günlük tam immersiv mədəni səyahət'], itinerary: [{time:'08:00',desc:'[Gün 1] Bakıdan / oteldən götürülmə'},{time:'11:30',desc:'Şəkiyə çatış, oteldə yerləşmə'},{time:'13:00',desc:'Nahar fasiləsi (öz hesabınıza)'},{time:'14:00',desc:'Şəki Xanları Sarayı ziyarəti'},{time:'16:00',desc:'Tarixi Karvansara, bazar gəzintisi'},{time:'19:00',desc:'Azad vaxt, gecəni Şəkidə keçirmə'},{time:'09:00',desc:'[Gün 2] Səhər yeməyi (oteldə)'},{time:'10:00',desc:'İpəkçilik fabrikini ziyarət'},{time:'12:30',desc:'Nahar, azad vaxt'},{time:'15:00',desc:'Bakıya qayıdış'},{time:'19:30',desc:'Ev/otelə çatdırılma'}], includes: ['Kondisioner avtobus','Peşəkar bələdçi','1 gecəlik otel (səhər yeməyi daxil)','Sığorta','Saray bilet'], excludes: ['Nahar/şam (öz hesabınıza)','Şəxsi xərclər'] }, t8: { highlights: ['Qırmızı Qəsəbə — Azərbaycanda unikal tarixi yəhudi kəndi','Qrız dağ kəndi — nadir dil mədəniyyəti, heyrətamiz mənzərələr','Sıx palıd meşələri içindən piyada gəzinti','Quba şəhər mərkəzi, yerli meyvə bazarı'], itinerary: [{time:'08:30',desc:'Bakıdan / oteldən götürülmə'},{time:'10:00',desc:'Qırmızı Qəsəbəyə çatış, tarixi gəzinti'},{time:'11:30',desc:'Quba şəhər mərkəzi, meyvə bazarı'},{time:'12:30',desc:'Nahar fasiləsi (öz hesabınıza)'},{time:'13:30',desc:'Qrız kəndinə doğru dağ yolu'},{time:'14:30',desc:'Qrız kəndi — ənənəvi həyat, xüsusi mədəniyyət'},{time:'16:00',desc:'Meşəlik ərazilərdə piyada gəzinti'},{time:'19:30',desc:'Bakıya qayıdış — ev/otelə çatdırılma'}], includes: ['Kondisioner avtobus','Peşəkar bələdçi','Sığorta','Otel/ev götürülmə-çatdırılma'], excludes: ['Nahar (öz hesabınıza)','Şəxsi xərclər'] } }; const DEFAULT_TOUR = { highlights: ['Mütəxəssis bələdçi ilə rahat gəzinti','Ən yaxşı fotoşəkil nöqtələri','Tam sığorta daxildir','Mərkəzdən rahat nəqliyyat'], itinerary: [{time:'09:00',desc:'Bakıdan götürülmə'},{time:'12:00',desc:'Məqsəd nöqtəsinə çatış'},{time:'13:00',desc:'Nahar fasiləsi (öz hesabınıza)'},{time:'14:00',desc:'Əsas gəzinti proqramı'},{time:'17:00',desc:'Azad vaxt'},{time:'20:00',desc:'Bakıya qayıdış'}], includes: ['Kondisioner avtobus','Peşəkar bələdçi','Sığorta'], excludes: ['Nahar (öz hesabınıza)','Şəxsi xərclər'] }; // ─── CART (localStorage) ───────────────────────────── const cartBadgeEl = document.getElementById('cartBadge'); function getCart() { try { return JSON.parse(localStorage.getItem('touran_cart') || '[]'); } catch(e) { return []; } } function saveCart(items) { localStorage.setItem('touran_cart', JSON.stringify(items)); } function updateCartBadge() { const n = getCart().length; if (cartBadgeEl) { cartBadgeEl.textContent = n; cartBadgeEl.classList.toggle('visible', n > 0); } } const cartBtn = document.getElementById('cartBtn'); if (cartBtn) { cartBtn.addEventListener('click', () => { window.location.href = 'cart.php'; }); } updateCartBadge(); // ─── TOUR DETAIL MODAL ─────────────────────────────── const tdModal = document.getElementById('tdModal'); const tdClose = document.getElementById('tdClose'); const tdBookBtn = document.getElementById('tdBookBtn'); let currentTour = null; // tour.php səhifəsindən currentTour-u initialize etmək üçün if (window.__TOUR_DATA__) { currentTour = window.__TOUR_DATA__; } function openTourDetail(card) { if (!tdModal) return; const key = card.dataset.tourKey || ''; const imgEl = card.querySelector('.tc-img'); const img = imgEl ? imgEl.style.backgroundImage.replace(/url\(["']?|["']?\)/g,'') : ''; const title = (card.querySelector('h3') || {}).textContent || ''; const desc = (card.querySelector('p') || {}).textContent || ''; const meta = (card.querySelector('.tc-meta') || {}).textContent || ''; const price = (card.querySelector('.tc-price span') || {}).textContent || ''; const ratingEl = card.querySelector('.tc-rating'); const rating = ratingEl ? ratingEl.textContent.trim() : '4.8'; const data = TOUR_DETAIL_DATA[key] || DEFAULT_TOUR; currentTour = { key, img, title, desc, meta, price, rating, ...data }; document.getElementById('tdHeroImg').style.backgroundImage = `url('${img}')`; document.getElementById('tdHeroMeta').textContent = meta; document.getElementById('tdHeroTitle').textContent = title; document.getElementById('tdHeroRating').innerHTML = ` ${rating}`; document.getElementById('tdDesc').textContent = desc; document.getElementById('tdFootPrice').textContent = price; document.getElementById('tdHighlights').innerHTML = data.highlights.map(h => `
  • ${h}
  • ` ).join(''); document.getElementById('tdTimeline').innerHTML = data.itinerary.map(s => `
    ${s.time}
    ${s.desc}
    ` ).join(''); document.getElementById('tdIncludes').innerHTML = data.includes.map(i => `
  • ${i}
  • `).join(''); document.getElementById('tdExcludes').innerHTML = data.excludes.map(i => `
  • ${i}
  • `).join(''); tdModal.classList.add('open'); tdModal.setAttribute('aria-hidden','false'); document.body.style.overflow = 'hidden'; tdModal.querySelector('.tmodal-scroll').scrollTop = 0; } function closeTourDetail() { if (!tdModal) return; tdModal.classList.remove('open'); tdModal.setAttribute('aria-hidden','true'); if (!coModal || !coModal.classList.contains('open')) document.body.style.overflow = ''; } if (tdClose) tdClose.addEventListener('click', closeTourDetail); if (tdModal) tdModal.addEventListener('click', e => { if (e.target === tdModal) closeTourDetail(); }); document.querySelectorAll('.tour-card').forEach(card => { card.addEventListener('click', e => { if (e.target.closest('.tc-fav')) return; const key = card.dataset.tourKey || ''; if (e.target.closest('[data-tour-buy]')) { window.location.href = 'tour.php?key=' + encodeURIComponent(key) + '&buy=1'; return; } window.location.href = 'tour.php?key=' + encodeURIComponent(key); }); }); document.querySelectorAll('.lv-card').forEach(card => { card.addEventListener('click', e => { if (e.target.closest('.lv-fav')) return; const key = card.dataset.tourKey || ''; window.location.href = 'tour.php?key=' + encodeURIComponent(key); }); }); // ─── CHECKOUT MODAL ────────────────────────────────── const coModal = document.getElementById('coModal'); const coClose = document.getElementById('coClose'); const coForm = document.getElementById('coForm'); const coSuccess = document.getElementById('coSuccess'); let coAdults = 1, coChildren = 0, coBasePrice = 0; let coCoupon = null; function parsePriceNum(str) { return parseInt((str||'').replace(/[^0-9]/g,'')) || 0; } function getBookingType() { return document.querySelector('input[name="booking_type"]:checked')?.value || 'reservation'; } function updateCoTotal() { const isRes = getBookingType() === 'reservation'; // "Birbaşa Satın Al" label qiymətini göstər const buyLabel = document.getElementById('coTypeBuyLabel'); const cur = (currentTour && currentTour.currency) ? currentTour.currency : 'USD'; const curSymbol = cur === 'USD' ? '$' : cur; if (buyLabel && coBasePrice > 0) { const fullTotal = coBasePrice * coAdults + Math.round(coBasePrice * 0.6) * coChildren; buyLabel.textContent = `${curSymbol}${fullTotal}`; } if (isRes) { // Depozit: 1 $ document.getElementById('coAdultCount').textContent = coAdults + (coChildren > 0 ? '+' + coChildren : ''); document.getElementById('coAdultPrice').textContent = ''; document.getElementById('coAdultTotal').textContent = ''; const childRow = document.getElementById('coChildRow'); if (childRow) childRow.style.display = 'none'; document.getElementById('coGrandTotal').textContent = `$1`; return; } // Tam ödəniş const ap = coBasePrice; const cp = Math.round(ap * 0.6); const at = ap * coAdults; const ct = cp * coChildren; document.getElementById('coAdultCount').textContent = coAdults; document.getElementById('coAdultPrice').textContent = `${curSymbol}${ap}`; document.getElementById('coAdultTotal').textContent = `${curSymbol}${at}`; const childRow = document.getElementById('coChildRow'); if (coChildren > 0) { childRow.style.display = ''; document.getElementById('coChildCount').textContent = coChildren; document.getElementById('coChildPrice').textContent = `${curSymbol}${cp}`; document.getElementById('coChildTotal').textContent = `${curSymbol}${ct}`; } else { childRow.style.display = 'none'; } var __sub = at + ct, __disc = 0; var __dr = document.getElementById('coDiscountRow'); if (coCoupon) { __disc = coCoupon.type === 'fixed' ? Math.min(coCoupon.value, __sub) : Math.round((__sub * coCoupon.value / 100) * 100) / 100; if (__dr) { __dr.style.display = ''; document.getElementById('coCouponLabel').textContent = coCoupon.code; document.getElementById('coDiscountAmt').textContent = '-' + curSymbol + __disc; } } else if (__dr) { __dr.style.display = 'none'; } document.getElementById('coGrandTotal').textContent = curSymbol + (Math.round(Math.max(0, __sub - __disc) * 100) / 100); } async function applyCoupon() { var inp = document.getElementById('coCouponInput'), msg = document.getElementById('coCouponMsg'); var code = (inp.value || '').trim().toUpperCase(); if (!code) return; try { var r = await fetch('/api/coupon.php', { method:'POST', headers:{'Content-Type':'application/json'}, body: JSON.stringify({ code: code, tour_key: currentTour && currentTour.key }) }); var j = await r.json(); msg.style.display = ''; if (j.valid) { coCoupon = { code:j.code, type:j.type, value:j.value }; msg.style.color = '#16a34a'; } else { coCoupon = null; msg.style.color = '#ef4444'; } msg.textContent = j.message || ''; } catch(e) { coCoupon = null; msg.style.display=''; msg.style.color='#ef4444'; msg.textContent = 'Xəta baş verdi'; } updateCoTotal(); } function openCheckout(type) { if (!currentTour) return; coCoupon = null; var __cw = document.getElementById('coCouponWrap'); if (__cw) __cw.style.display = (currentTour.category === 'group') ? '' : 'none'; var __cm = document.getElementById('coCouponMsg'); if (__cm) __cm.style.display = 'none'; var __ci = document.getElementById('coCouponInput'); if (__ci) __ci.value = ''; coBasePrice = currentTour.price_num || parsePriceNum(currentTour.price); coAdults = 1; coChildren = 0; document.getElementById('coThumb').style.backgroundImage = `url('${currentTour.img}')`; document.getElementById('coTourName').textContent = currentTour.title; document.getElementById('coTourMeta').textContent = currentTour.meta; document.getElementById('coAdultsVal').textContent = '1'; document.getElementById('coChildrenVal').textContent = '0'; document.getElementById('coAdultDecBtn').disabled = true; document.getElementById('coChildDecBtn').disabled = true; const tomorrow = new Date(); tomorrow.setDate(tomorrow.getDate()+1); document.getElementById('coDate').min = tomorrow.toISOString().split('T')[0]; document.getElementById('coDate').value = ''; updateCoTotal(); coForm.style.display = ''; coSuccess.style.display = 'none'; coForm.reset(); document.getElementById('coDate').min = tomorrow.toISOString().split('T')[0]; // Rezervasiya növünü seç (purchase / reservation) const wantedType = type || 'reservation'; const targetInput = coForm?.querySelector(`input[value="${wantedType}"]`); if (targetInput) { targetInput.checked = true; document.querySelectorAll('.co-type-card').forEach(c => c.classList.remove('active')); targetInput.closest('.co-type-card')?.classList.add('active'); } else { const resInput = coForm?.querySelector('input[value="reservation"]'); if (resInput) { resInput.checked = true; document.querySelectorAll('.co-type-card').forEach(c => c.classList.remove('active')); resInput.closest('.co-type-card')?.classList.add('active'); } } // reset lang options document.querySelectorAll('.co-lang-opt').forEach(l => { l.classList.toggle('co-lang-selected', l.querySelector('input').checked); }); document.getElementById('coAdultsVal').textContent = '1'; document.getElementById('coChildrenVal').textContent = '0'; updateCoTotal(); updateCoModalTitle(); coModal.classList.add('open'); coModal.setAttribute('aria-hidden','false'); document.body.style.overflow = 'hidden'; coModal.querySelector('.tmodal-scroll').scrollTop = 0; } function closeCheckout() { coModal.classList.remove('open'); coModal.setAttribute('aria-hidden','true'); document.body.style.overflow = ''; } if (coClose) coClose.addEventListener('click', closeCheckout); if (coModal) coModal.addEventListener('click', e => { if (e.target === coModal) closeCheckout(); }); const coSuccessCloseBtn = document.getElementById('coSuccessClose'); if (coSuccessCloseBtn) coSuccessCloseBtn.addEventListener('click', closeCheckout); if (tdBookBtn) tdBookBtn.addEventListener('click', () => { if (tdModal && tdModal.classList.contains('open')) { closeTourDetail(); setTimeout(() => openCheckout('reservation'), 60); } else { openCheckout('reservation'); } }); const tdBuyBtn = document.getElementById('tdBuyBtn'); if (tdBuyBtn) tdBuyBtn.addEventListener('click', () => { if (tdModal && tdModal.classList.contains('open')) { closeTourDetail(); setTimeout(() => openCheckout('purchase'), 60); } else { openCheckout('purchase'); } }); // ?buy=1 URL parametri ilə avtomatik satın alma açılır if (window.__TOUR_AUTO_BUY__) { window.addEventListener('load', () => setTimeout(() => openCheckout('purchase'), 400)); } // Counter buttons function makeCounter(incId, decId, valId, getVal, setVal, min, max) { const incEl = document.getElementById(incId); const decEl = document.getElementById(decId); if (!incEl || !decEl) return; incEl.addEventListener('click', () => { const v = Math.min(getVal()+1, max); setVal(v); document.getElementById(valId).textContent = v; decEl.disabled = v <= min; updateCoTotal(); }); decEl.addEventListener('click', () => { const v = Math.max(getVal()-1, min); setVal(v); document.getElementById(valId).textContent = v; decEl.disabled = v <= min; updateCoTotal(); }); } makeCounter('coAdultIncBtn','coAdultDecBtn','coAdultsVal', ()=>coAdults, v=>{coAdults=v;}, 1, 20); makeCounter('coChildIncBtn','coChildDecBtn','coChildrenVal', ()=>coChildren, v=>{coChildren=v;}, 0, 10); // Modal başlığını növə görə yenilə function updateCoModalTitle() { const t = T[currentLang] || T['az']; const type = getBookingType(); const titleEl = document.querySelector('#coModal .co-header h2'); if (!titleEl) return; if (type === 'purchase') { titleEl.textContent = t['td.co.buy'] || 'Birbaşa Satın Al'; } else { titleEl.textContent = t['td.co.title'] || 'Rezervasiya'; } } // Rezervasiya növü seçimi document.querySelectorAll('.co-type-card').forEach(card => { card.addEventListener('click', () => { document.querySelectorAll('.co-type-card').forEach(c => c.classList.remove('active')); card.classList.add('active'); const radio = card.querySelector('input[type="radio"]'); if (radio) radio.checked = true; updateCoTotal(); updateCoModalTitle(); }); }); // Language option highlight document.querySelectorAll('.co-lang-opt').forEach(label => { label.querySelector('input').addEventListener('change', () => { document.querySelectorAll('.co-lang-opt').forEach(l => l.classList.remove('co-lang-selected')); label.classList.add('co-lang-selected'); }); }); // Checkout form submit if (coForm) coForm.addEventListener('submit', e => { e.preventDefault(); const fd = new FormData(coForm); const bookingDate = document.getElementById('coDate')?.value || ''; const timeSlot = fd.get('tour_time') || '09:00'; const grandTotal = document.getElementById('coGrandTotal')?.textContent || ''; const bookingType = getBookingType(); // Ödəniş + rezervasiya if (!bookingDate) { document.getElementById('coDate')?.focus(); return; } const guestName = ((fd.get('first_name') || '') + ' ' + (fd.get('last_name') || '')).trim(); if (!guestName) return; if (currentTour && bookingDate) { const submitBtn = coForm.querySelector('button[type=submit]'); if (submitBtn) { submitBtn.disabled = true; submitBtn.textContent = '⏳ Gözləyin...'; } fetch('/api/reserve.php', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ tour_key: currentTour.key || '', tour_title: currentTour.title || '', booking_date: bookingDate, time_slot: timeSlot, adults: coAdults, children: coChildren, total: grandTotal, guest_name: ((fd.get('first_name') || '') + ' ' + (fd.get('last_name') || '')).trim(), guest_email: fd.get('email') || '', guest_phone: fd.get('phone') || '', pickup: fd.get('pickup') || '', guide_lang: fd.get('guide_lang') || 'az', booking_type: bookingType, coupon: coCoupon ? coCoupon.code : '', lang: document.documentElement.lang || 'az', }) }) .then(r => r.json()) .then(d => { if (d.redirect_url) { // Ödəniş sonrası purchased-a keçirmək üçün saxla if (currentTour) localStorage.setItem('touran_pending_purchase', JSON.stringify({ key: currentTour.key, img: currentTour.img, title: currentTour.title, meta: currentTour.meta, price: currentTour.price, rating: currentTour.rating, date: document.getElementById('coDate')?.value || '', time: document.querySelector('select[name="tour_time"]')?.value || '09:00', adults: coAdults, children: coChildren, total: document.getElementById('coGrandTotal')?.textContent || '', type: 'purchase', })); window.location.href = d.redirect_url; return; } if (submitBtn) { submitBtn.disabled = false; submitBtn.textContent = 'İndi Sifariş Ver →'; } if (!d.ok) { console.error('Epoint error:', d.epoint_resp || d.epoint_error); alert('Ödəniş xətası: ' + (d.epoint_error || 'Naməlum xəta')); } else { _showCheckoutSuccess(); } }) .catch(err => { console.error('Reserve fetch error:', err); if (submitBtn) { submitBtn.disabled = false; submitBtn.textContent = 'İndi Sifariş Ver →'; } alert('Server xətası. Zəhmət olmasa yenidən cəhd edin.'); }); } else { _showCheckoutSuccess(); } }); function _showCheckoutSuccess() { // Səbətə (localStorage) əlavə et if (currentTour) { const fd2 = new FormData(coForm); const cart = getCart(); cart.push({ key: currentTour.key || '', img: currentTour.img || '', title: currentTour.title || '', meta: currentTour.meta || '', price: currentTour.price || '', rating: currentTour.rating || '4.8', date: document.getElementById('coDate')?.value || '', time: fd2.get('tour_time') || '09:00', adults: coAdults, children: coChildren, total: document.getElementById('coGrandTotal')?.textContent || '', type: getBookingType(), addedAt: Date.now() }); saveCart(cart); updateCartBadge(); } if (coForm) coForm.style.display = 'none'; if (coSuccess) coSuccess.style.display = 'block'; } // Escape key closes modals document.addEventListener('keydown', e => { if (e.key === 'Escape') { if (coModal && coModal.classList.contains('open')) closeCheckout(); else if (tdModal && tdModal.classList.contains('open')) closeTourDetail(); } }); // ─── RENDER WISHLIST PAGE ──────────────────────────── function renderWishlist() { const container = document.getElementById('wishlist-container'); const empty = document.getElementById('wishlist-empty'); if (!container) return; const items = getWishlist(); if (!items.length) { container.innerHTML = ''; if (empty) empty.style.display = ''; return; } if (empty) empty.style.display = 'none'; const t = T[currentLang] || T['az']; container.innerHTML = '
    ' + items.map(item => `
    ${item.badge ? `
    ${item.badge === 'tour.pop' ? (t['tour.pop'] || 'Ən populyar') : item.badge === 'tour.new' ? (t['tour.new'] || 'Yeni') : 'Premium'}
    ` : ''}
    ${item.date ? `
    ${item.date}
    ` : ''} ${item.descKey ? `

    ` : ''}
    `).join('') + '
    '; container.querySelectorAll('.wl-remove-btn').forEach(btn => { btn.addEventListener('click', e => { e.stopPropagation(); saveWishlist(getWishlist().filter(i => i.key !== btn.dataset.wlKey)); updateWishlistBadge(); renderWishlist(); }); }); container.querySelectorAll('.wl-book-btn').forEach(btn => { btn.addEventListener('click', e => { e.stopPropagation(); const item = getWishlist().find(i => i.key === btn.dataset.wlKey); if (!item) return; const t = T[currentLang] || T['az']; currentTour = { key: item.key, img: item.img, title: (item.titleKey && t[item.titleKey]) ? t[item.titleKey] : (item.titleKey || ''), meta: (item.metaKey && t[item.metaKey]) ? t[item.metaKey] : (item.metaKey || ''), price: item.price, rating: item.rating, ...(TOUR_DETAIL_DATA[item.key] || DEFAULT_TOUR) }; if (typeof openCheckout === 'function') openCheckout('reservation'); }); }); container.querySelectorAll('.wl-buy-btn').forEach(btn => { btn.addEventListener('click', e => { e.stopPropagation(); const key = btn.dataset.wlKey; window.location.href = 'tour.php?key=' + encodeURIComponent(key) + '&buy=1'; }); }); container.querySelectorAll('.wl-card').forEach(card => { card.addEventListener('click', e => { if (e.target.closest('.wl-remove-btn') || e.target.closest('.wl-book-btn') || e.target.closest('.wl-buy-btn')) return; window.location.href = 'tour.php?key=' + encodeURIComponent(card.dataset.tourKey); }); }); setLang(currentLang); } // ─── PURCHASED HELPERS ─────────────────────────────── function getPurchased() { try { return JSON.parse(localStorage.getItem('touran_purchased') || '[]'); } catch(e) { return []; } } function savePurchased(items) { localStorage.setItem('touran_purchased', JSON.stringify(items)); } // ─── RENDER CART PAGE ──────────────────────────────── function cartCardHTML(item, idx) { const t = T[currentLang] || T['az']; return `
    ${item.meta || ''}

    ${item.title || ''}

    `; } function cartItemHTML(item, idx, section) { const t = T[currentLang] || T['az']; const typeBadge = item.type === 'purchase' ? `${t['cart.type.purchase'] || 'Satın Alma'}` : `${t['cart.type.res'] || 'Rezervasiya'}`; const isPurchased = section === 'purchased'; const adultLabel = t['cart.adult'] || 'böyük'; const childLabel = t['cart.child'] || 'uşaq'; return `

    ${item.title}${typeBadge}

    ${item.meta}

    ${!isPurchased ? `` : ''}
    ${item.date ? ` ${item.date}` : ''} ${item.time ? ` ${item.time}` : ''} ${item.adults} ${adultLabel}${item.children ? ', ' + item.children + ' ' + childLabel : ''}
    `; } function paginationHTML(total, page, sectionId) { if (total <= PAGE_SIZE) return ''; const pages = Math.ceil(total / PAGE_SIZE); let btns = ''; for (let i = 0; i < pages; i++) { btns += ``; } return ``; } function changePage(btn) { const section = btn.dataset.section; const pg = parseInt(btn.dataset.pg); if (section === 'cart') { cartPage = pg; renderCart(); } else { purchasedPage = pg; renderCart(); } } function renderCart() { const container = document.getElementById('cart-container'); const purchasedContainer = document.getElementById('purchased-container'); const empty = document.getElementById('cart-empty'); const summary = document.getElementById('cart-summary'); const grandTotal = document.getElementById('cart-grand-total'); if (!container) return; const items = getCart(); const purchased = getPurchased(); // Empty state if (!items.length && !purchased.length) { container.innerHTML = ''; if (purchasedContainer) purchasedContainer.innerHTML = ''; if (empty) empty.style.display = ''; if (summary) summary.style.display = 'none'; return; } if (empty) empty.style.display = 'none'; // ── Səbət section ── if (items.length) { const start = cartPage * PAGE_SIZE; const slice = items.slice(start, start + PAGE_SIZE); container.innerHTML = '
    ' + slice.map((item, i) => cartCardHTML(item, start + i)).join('') + '
    ' + paginationHTML(items.length, cartPage, 'cart'); container.querySelectorAll('.ci-remove').forEach(btn => { btn.addEventListener('click', () => { const idx = parseInt(btn.dataset.ciIdx); const cart = getCart(); cart.splice(idx, 1); saveCart(cart); updateCartBadge(); if (cartPage > 0 && cartPage >= Math.ceil((cart.length) / PAGE_SIZE)) cartPage--; renderCart(); }); }); // Summary if (summary) { summary.style.display = ''; const total = items.reduce((sum, it) => { const n = parseFloat((it.total || '').replace(/[^\d.]/g,'')) || 0; return sum + n; }, 0); if (grandTotal) grandTotal.textContent = '$' + total.toFixed(2); } } else { container.innerHTML = ''; if (summary) summary.style.display = 'none'; } // ── Əldə etdiklərim section ── if (purchasedContainer) { if (purchased.length) { const pStart = purchasedPage * PAGE_SIZE; const pSlice = purchased.slice(pStart, pStart + PAGE_SIZE); purchasedContainer.innerHTML = '
    ' + pSlice.map((item, i) => cartItemHTML(item, pStart + i, 'purchased')).join('') + '
    ' + paginationHTML(purchased.length, purchasedPage, 'purchased'); document.getElementById('purchased-section').style.display = ''; } else { purchasedContainer.innerHTML = ''; const ps = document.getElementById('purchased-section'); if (ps) ps.style.display = 'none'; } } } // ── Hamısını İndi Əldə Et ── function checkoutAll() { const items = getCart(); if (!items.length) return; const btn = document.getElementById('checkoutAllBtn'); const t2 = T[currentLang] || T['az']; if (btn) { btn.disabled = true; btn.textContent = t2['cart.waiting'] || '⏳ Gözləyin...'; } const guestInfo = { guest_name: 'Müştəri', guest_email: '', guest_phone: '', pickup: '', guide_lang: 'az' }; fetch('/api/reserve-bulk.php', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ lang: document.documentElement.lang || 'az', items: items.map(it => ({ tour_key: it.key || '', tour_title: it.title || '', booking_date:it.date || '', time_slot: it.time || '09:00', adults: it.adults || 1, children: it.children || 0, total: it.total || '', ...guestInfo, })) }) }) .then(r => r.json()) .then(d => { if (d.redirect_url) { localStorage.setItem('touran_pending_bulk', JSON.stringify(items)); window.location.href = d.redirect_url; } else { if (btn) { btn.disabled = false; btn.textContent = 'Hamısını İndi Əldə Et →'; } alert('Xəta: ' + (d.epoint_error || 'Naməlum xəta')); } }) .catch(() => { if (btn) { btn.disabled = false; btn.textContent = 'Hamısını İndi Əldə Et →'; } alert('Server xətası. Yenidən cəhd edin.'); }); } // ─── DİL İNİSİALİZASİYASI ──────────────────────────── setLang(PHP_LANG, true); // ─── PROMO ALERT (sol alt endirim bildirişi) ───────── (function () { var el = document.getElementById('promoAlert'); if (!el) return; var closeBtn = document.getElementById('promoClose'); var cta = document.getElementById('promoCta'); var KEY = 'touran_promo_dismissed'; try { if (sessionStorage.getItem(KEY) === '1') return; } catch (e) {} var shown = false; function show() { if (shown) return; shown = true; el.setAttribute('aria-hidden', 'false'); el.classList.add('show'); } function hide() { el.classList.remove('show'); el.classList.add('hide'); el.setAttribute('aria-hidden', 'true'); try { sessionStorage.setItem(KEY, '1'); } catch (e) {} } var delay = parseInt(el.getAttribute('data-delay'), 10); if (isNaN(delay) || delay < 0) delay = 2200; setTimeout(show, delay); if (closeBtn) closeBtn.addEventListener('click', hide); if (cta) cta.addEventListener('click', function () { setTimeout(hide, 200); }); })();