#valizdunyasi-baggage-tool,
#valizdunyasi-baggage-tool *{
box-sizing:border-box;
}
#valizdunyasi-baggage-tool{
width:100%;
max-width:920px;
margin:30px auto;
font-family:Arial,Helvetica,sans-serif;
color:#172033;
}
.vd-bag-card{
background:#ffffff;
border:1px solid #e5e7eb;
border-radius:18px;
overflow:hidden;
box-shadow:0 10px 35px rgba(0,0,0,.08);
}
.vd-bag-header{
background:#111827;
color:#fff;
padding:32px 30px;
}
.vd-bag-header h2{
margin:0 0 8px;
font-size:30px;
line-height:1.2;
}
.vd-bag-header p{
margin:0;
color:#d1d5db;
font-size:15px;
line-height:1.6;
}
.vd-bag-body{
padding:28px;
}
.vd-bag-grid{
display:grid;
grid-template-columns:1fr 1fr;
gap:18px;
}
.vd-bag-field{
display:flex;
flex-direction:column;
}
.vd-bag-field.full{
grid-column:1 / -1;
}
.vd-bag-field label{
font-size:14px;
font-weight:700;
margin-bottom:8px;
color:#374151;
}
.vd-bag-field select,
.vd-bag-field input{
width:100%;
height:50px;
border:1px solid #d1d5db;
border-radius:10px;
background:#fff;
padding:0 14px;
font-size:15px;
color:#111827;
outline:none;
}
.vd-bag-field select:focus,
.vd-bag-field input:focus{
border-color:#2563eb;
box-shadow:0 0 0 3px rgba(37,99,235,.10);
}
.vd-bag-actions{
display:flex;
gap:12px;
margin-top:22px;
}
.vd-bag-btn{
border:0;
height:50px;
padding:0 25px;
border-radius:10px;
font-size:15px;
font-weight:700;
cursor:pointer;
}
.vd-bag-calc{
flex:1;
background:#2563eb;
color:#fff;
}
.vd-bag-calc:hover{
background:#1d4ed8;
}
.vd-bag-reset{
background:#f3f4f6;
color:#111827;
}
.vd-bag-reset:hover{
background:#e5e7eb;
}
.vd-bag-empty{
margin-top:22px;
background:#f8fafc;
border:1px dashed #d1d5db;
border-radius:12px;
padding:25px;
text-align:center;
color:#6b7280;
}
.vd-bag-results{
display:none;
border-top:1px solid #e5e7eb;
background:#f8fafc;
padding:28px;
}
.vd-bag-result-title{
display:flex;
justify-content:space-between;
align-items:center;
gap:15px;
margin-bottom:20px;
}
.vd-bag-result-title h3{
margin:0;
font-size:23px;
}
.vd-bag-class{
background:#e0e7ff;
color:#3730a3;
border-radius:50px;
padding:7px 12px;
font-size:12px;
font-weight:700;
}
.vd-bag-stats{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:14px;
}
.vd-bag-stat{
background:#fff;
border:1px solid #e5e7eb;
border-radius:14px;
padding:20px;
}
.vd-bag-stat-label{
font-size:13px;
color:#6b7280;
margin-bottom:8px;
}
.vd-bag-stat-value{
font-size:25px;
font-weight:800;
color:#111827;
}
.vd-green{
color:#15803d !important;
}
.vd-red{
color:#dc2626 !important;
}
.vd-bag-info{
margin-top:18px;
background:#fff;
border:1px solid #e5e7eb;
border-radius:14px;
overflow:hidden;
}
.vd-bag-row{
display:flex;
justify-content:space-between;
gap:20px;
padding:15px 18px;
border-bottom:1px solid #f0f0f0;
font-size:14px;
}
.vd-bag-row:last-child{
border-bottom:0;
}
.vd-bag-row span{
color:#6b7280;
}
.vd-bag-row strong{
text-align:right;
color:#111827;
}
.vd-bag-verdict{
margin-top:18px;
padding:18px;
border-radius:13px;
font-size:14px;
line-height:1.6;
}
.vd-bag-ok{
background:#f0fdf4;
border:1px solid #bbf7d0;
color:#166534;
}
.vd-bag-warning{
background:#fff7ed;
border:1px solid #fed7aa;
color:#9a3412;
}
.vd-bag-danger{
background:#fef2f2;
border:1px solid #fecaca;
color:#991b1b;
}
.vd-bag-note{
margin-top:18px;
padding:15px;
border-radius:12px;
background:#eff6ff;
border:1px solid #bfdbfe;
color:#1e40af;
font-size:12px;
line-height:1.6;
}
.vd-bag-footer{
padding:20px 28px;
border-top:1px solid #e5e7eb;
text-align:center;
font-size:12px;
color:#6b7280;
}
.vd-bag-footer a{
color:#2563eb;
text-decoration:none;
font-weight:700;
}
@media(max-width:700px){
.vd-bag-header{
padding:25px 20px;
}
.vd-bag-header h2{
font-size:24px;
}
.vd-bag-body,
.vd-bag-results{
padding:20px;
}
.vd-bag-grid{
grid-template-columns:1fr;
}
.vd-bag-field.full{
grid-column:auto;
}
.vd-bag-stats{
grid-template-columns:1fr;
}
.vd-bag-actions{
flex-direction:column;
}
.vd-bag-result-title{
align-items:flex-start;
flex-direction:column;
}
.vd-bag-row{
flex-direction:column;
gap:5px;
}
.vd-bag-row strong{
text-align:left;
}
}
(function(){
“use strict”;
/* =========================================
AIRLINE DATABASE
========================================= */
var airlines = {
turkish:{
name:”Turkish Airlines”,
economy:{cabin:8,checked:23,pieces:1},
premium:{cabin:8,checked:30,pieces:2},
business:{cabin:16,checked:32,pieces:2},
first:{cabin:16,checked:32,pieces:3},
system:”Parça / ağırlık”,
cabinSize:”55 × 40 × 23 cm”,
checkedSize:”158 cm”,
rate:20
},
pegasus:{
name:”Pegasus Airlines”,
economy:{cabin:8,checked:15,pieces:1},
premium:{cabin:8,checked:20,pieces:1},
business:{cabin:8,checked:20,pieces:1},
first:{cabin:8,checked:20,pieces:1},
system:”Ağırlık”,
cabinSize:”55 × 40 × 23 cm”,
checkedSize:”158 cm”,
rate:10
},
sunexpress:{
name:”SunExpress”,
economy:{cabin:8,checked:20,pieces:1},
premium:{cabin:8,checked:20,pieces:1},
business:{cabin:8,checked:30,pieces:1},
first:{cabin:8,checked:30,pieces:1},
system:”Ağırlık”,
cabinSize:”55 × 40 × 23 cm”,
checkedSize:”158 cm”,
rate:10
},
ajet:{
name:”AJet”,
economy:{cabin:8,checked:15,pieces:1},
premium:{cabin:8,checked:20,pieces:1},
business:{cabin:8,checked:20,pieces:1},
first:{cabin:8,checked:20,pieces:1},
system:”Ağırlık”,
cabinSize:”55 × 40 × 23 cm”,
checkedSize:”158 cm”,
rate:10
},
emirates:{
name:”Emirates”,
economy:{cabin:7,checked:25,pieces:1},
premium:{cabin:10,checked:35,pieces:1},
business:{cabin:14,checked:40,pieces:2},
first:{cabin:14,checked:50,pieces:2},
system:”Ağırlık / rota bazlı”,
cabinSize:”55 × 38 × 22 cm”,
checkedSize:”158 cm / rota bazlı”,
rate:20
},
qatar:{
name:”Qatar Airways”,
economy:{cabin:7,checked:25,pieces:1},
premium:{cabin:10,checked:35,pieces:1},
business:{cabin:15,checked:40,pieces:2},
first:{cabin:15,checked:50,pieces:2},
system:”Ağırlık / rota bazlı”,
cabinSize:”50 × 37 × 25 cm”,
checkedSize:”158 cm / rota bazlı”,
rate:20
},
etihad:{
name:”Etihad Airways”,
economy:{cabin:7,checked:25,pieces:1},
premium:{cabin:10,checked:35,pieces:1},
business:{cabin:12,checked:40,pieces:2},
first:{cabin:12,checked:50,pieces:2},
system:”Ağırlık”,
cabinSize:”56 × 36 × 23 cm”,
checkedSize:”158 cm”,
rate:20
},
lufthansa:{
name:”Lufthansa”,
economy:{cabin:8,checked:23,pieces:1},
premium:{cabin:8,checked:23,pieces:2},
business:{cabin:16,checked:32,pieces:2},
first:{cabin:16,checked:32,pieces:3},
system:”Parça”,
cabinSize:”55 × 40 × 23 cm”,
checkedSize:”158 cm”,
rate:25
},
british:{
name:”British Airways”,
economy:{cabin:8,checked:23,pieces:1},
premium:{cabin:23,checked:23,pieces:2},
business:{cabin:23,checked:32,pieces:2},
first:{cabin:23,checked:32,pieces:3},
system:”Parça”,
cabinSize:”56 × 45 × 25 cm”,
checkedSize:”158 cm”,
rate:25
},
airfrance:{
name:”Air France”,
economy:{cabin:12,checked:23,pieces:1},
premium:{cabin:18,checked:23,pieces:2},
business:{cabin:18,checked:32,pieces:2},
first:{cabin:18,checked:32,pieces:3},
system:”Parça”,
cabinSize:”55 × 35 × 25 cm”,
checkedSize:”158 cm”,
rate:25
},
klm:{
name:”KLM”,
economy:{cabin:12,checked:23,pieces:1},
premium:{cabin:18,checked:23,pieces:2},
business:{cabin:18,checked:32,pieces:2},
first:{cabin:18,checked:32,pieces:3},
system:”Parça”,
cabinSize:”55 × 35 × 25 cm”,
checkedSize:”158 cm”,
rate:25
},
swiss:{
name:”SWISS”,
economy:{cabin:8,checked:23,pieces:1},
premium:{cabin:8,checked:23,pieces:2},
business:{cabin:16,checked:32,pieces:2},
first:{cabin:16,checked:32,pieces:3},
system:”Parça”,
cabinSize:”55 × 40 × 23 cm”,
checkedSize:”158 cm”,
rate:25
},
american:{
name:”American Airlines”,
economy:{cabin:7,checked:23,pieces:1},
premium:{cabin:10,checked:23,pieces:2},
business:{cabin:10,checked:32,pieces:2},
first:{cabin:10,checked:32,pieces:3},
system:”Parça”,
cabinSize:”56 × 36 × 23 cm”,
checkedSize:”158 cm”,
rate:35
},
delta:{
name:”Delta Air Lines”,
economy:{cabin:7,checked:23,pieces:1},
premium:{cabin:10,checked:23,pieces:2},
business:{cabin:10,checked:32,pieces:2},
first:{cabin:10,checked:32,pieces:3},
system:”Parça”,
cabinSize:”56 × 35 × 23 cm”,
checkedSize:”158 cm”,
rate:35
},
united:{
name:”United Airlines”,
economy:{cabin:7,checked:23,pieces:1},
premium:{cabin:10,checked:23,pieces:2},
business:{cabin:10,checked:32,pieces:2},
first:{cabin:10,checked:32,pieces:3},
system:”Parça”,
cabinSize:”56 × 35 × 22 cm”,
checkedSize:”158 cm”,
rate:35
},
aircanada:{
name:”Air Canada”,
economy:{cabin:10,checked:23,pieces:1},
premium:{cabin:10,checked:23,pieces:2},
business:{cabin:10,checked:32,pieces:2},
first:{cabin:10,checked:32,pieces:3},
system:”Parça”,
cabinSize:”55 × 23 × 40 cm”,
checkedSize:”158 cm”,
rate:35
},
singapore:{
name:”Singapore Airlines”,
economy:{cabin:7,checked:25,pieces:1},
premium:{cabin:7,checked:35,pieces:1},
business:{cabin:7,checked:40,pieces:2},
first:{cabin:7,checked:50,pieces:2},
system:”Ağırlık”,
cabinSize:”115 cm toplam”,
checkedSize:”158 cm”,
rate:25
},
qantas:{
name:”Qantas”,
economy:{cabin:7,checked:23,pieces:1},
premium:{cabin:7,checked:23,pieces:2},
business:{cabin:7,checked:32,pieces:2},
first:{cabin:7,checked:32,pieces:3},
system:”Parça”,
cabinSize:”56 × 36 × 23 cm”,
checkedSize:”158 cm”,
rate:30
},
airnewzealand:{
name:”Air New Zealand”,
economy:{cabin:7,checked:23,pieces:1},
premium:{cabin:7,checked:23,pieces:2},
business:{cabin:7,checked:32,pieces:2},
first:{cabin:7,checked:32,pieces:3},
system:”Parça”,
cabinSize:”55 × 40 × 23 cm”,
checkedSize:”158 cm”,
rate:30
},
ryanair:{
name:”Ryanair”,
economy:{cabin:5,checked:0,pieces:0},
premium:{cabin:10,checked:20,pieces:1},
business:{cabin:10,checked:20,pieces:1},
first:{cabin:10,checked:20,pieces:1},
system:”Ek ücretli”,
cabinSize:”40 × 30 × 20 cm”,
checkedSize:”158 cm”,
rate:20
},
wizz:{
name:”Wizz Air”,
economy:{cabin:10,checked:0,pieces:0},
premium:{cabin:10,checked:20,pieces:1},
business:{cabin:10,checked:20,pieces:1},
first:{cabin:10,checked:20,pieces:1},
system:”Ek ücretli”,
cabinSize:”40 × 30 × 20 cm”,
checkedSize:”149 × 119 × 171 cm”,
rate:20
},
easyjet:{
name:”easyJet”,
economy:{cabin:15,checked:0,pieces:0},
premium:{cabin:15,checked:23,pieces:1},
business:{cabin:15,checked:23,pieces:1},
first:{cabin:15,checked:23,pieces:1},
system:”Ek ücretli”,
cabinSize:”45 × 36 × 20 cm”,
checkedSize:”275 cm toplam”,
rate:20
}
};
/* =========================================
FALLBACK FOR OTHER AIRLINES
========================================= */
var defaultRule = {
economy:{cabin:7,checked:23,pieces:1},
premium:{cabin:10,checked:23,pieces:2},
business:{cabin:14,checked:32,pieces:2},
first:{cabin:14,checked:32,pieces:3},
system:”Havayoluna göre değişir”,
cabinSize:”Havayoluna göre değişir”,
checkedSize:”Havayoluna göre değişir”,
rate:25
};
/* =========================================
ELEMENTS
========================================= */
var airlineSelect =
document.getElementById(“vdAirline”);
var classSelect =
document.getElementById(“vdClass”);
var carryInput =
document.getElementById(“vdCarry”);
var checkedInput =
document.getElementById(“vdChecked”);
var piecesInput =
document.getElementById(“vdPieces”);
var calculateButton =
document.getElementById(“vdCalculate”);
var resetButton =
document.getElementById(“vdReset”);
var results =
document.getElementById(“vdResults”);
var empty =
document.getElementById(“vdEmpty”);
/* =========================================
CALCULATE
========================================= */
calculateButton.addEventListener(“click”,function(){
var airlineCode =
airlineSelect.value;
if(!airlineCode){
alert(“Lütfen bir havayolu seçin.”);
return;
}
var airline =
airlines[airlineCode];
if(!airline){
airline = defaultRule;
}
var selectedClass =
classSelect.value;
var rule =
airline[selectedClass];
if(!rule){
rule = defaultRule[selectedClass];
}
var carry =
parseFloat(carryInput.value) || 0;
var checked =
parseFloat(checkedInput.value) || 0;
var pieces =
parseInt(piecesInput.value) || 0;
var carryExcess =
Math.max(0,carry-rule.cabin);
var checkedExcess =
Math.max(0,checked-rule.checked);
var pieceExcess =
Math.max(0,pieces-rule.pieces);
/*
Estimated fee
*/
var fee = 0;
fee += checkedExcess * airline.rate;
fee += pieceExcess * airline.rate * 2;
if(carryExcess > 0){
fee += carryExcess * airline.rate;
}
var className = {
economy:”Economy”,
premium:”Premium Economy”,
business:”Business”,
first:”First Class”
}[selectedClass];
var airlineName =
airline.name || “Seçilen Havayolu”;
/* =====================================
RESULT HEADER
===================================== */
document.getElementById(
“vdResultAirline”
).innerHTML =
airlineName + ” Bagaj Hesaplama”;
document.getElementById(
“vdResultClass”
).innerHTML =
className;
/* =====================================
STAT CARDS
===================================== */
document.getElementById(
“vdCabinLimit”
).innerHTML =
rule.cabin + ” kg”;
document.getElementById(
“vdCheckedLimit”
).innerHTML =
rule.checked + ” kg”;
var excessText;
if(
carryExcess === 0 &&
checkedExcess === 0 &&
pieceExcess === 0
){
excessText =
“0 kg”;
document.getElementById(
“vdExcess”
).className =
“vd-bag-stat-value vd-green”;
}else{
var totalExcess =
carryExcess + checkedExcess;
excessText =
totalExcess.toFixed(1) + ” kg”;
document.getElementById(
“vdExcess”
).className =
“vd-bag-stat-value vd-red”;
}
document.getElementById(
“vdExcess”
).innerHTML =
excessText;
/* =====================================
INFO
===================================== */
document.getElementById(
“vdInfoAirline”
).innerHTML =
airlineName;
document.getElementById(
“vdInfoClass”
).innerHTML =
className;
document.getElementById(
“vdInfoCarry”
).innerHTML =
carry + ” kg / ” + rule.cabin + ” kg”;
document.getElementById(
“vdInfoChecked”
).innerHTML =
checked + ” kg / ” + rule.checked + ” kg”;
document.getElementById(
“vdInfoPieces”
).innerHTML =
pieces + ” / ” + rule.pieces;
document.getElementById(
“vdInfoSystem”
).innerHTML =
airline.system;
document.getElementById(
“vdInfoCabinSize”
).innerHTML =
airline.cabinSize;
document.getElementById(
“vdInfoCheckedSize”
).innerHTML =
airline.checkedSize;
document.getElementById(
“vdInfoPrice”
).innerHTML =
fee > 0
? “Yaklaşık $” + fee.toFixed(0)
: “$0”;
/* =====================================
VERDICT
===================================== */
var verdict =
document.getElementById(“vdVerdict”);
if(
carryExcess === 0 &&
checkedExcess === 0 &&
pieceExcess === 0
){
verdict.className =
“vd-bag-verdict vd-bag-ok”;
verdict.innerHTML =
“✓ Bagajınız uygun görünüyor.
” + “Girdiğiniz ağırlıklara göre seçilen havayolunun ” + “genel bagaj limitlerini aşmıyorsunuz.”; } else if( checkedExcess > 0 ){ verdict.className = “vd-bag-verdict vd-bag-warning”; verdict.innerHTML = “⚠ Fazla bagajınız var.
” + “Uçak altı bagajınız yaklaşık ” + checkedExcess.toFixed(1) + ” kg fazla. Tahmini ek ücret: ” + “$” + fee.toFixed(0) + “.”; } else if( carryExcess > 0 ){ verdict.className = “vd-bag-verdict vd-bag-warning”; verdict.innerHTML = “⚠ Kabin bagajı limitini aşıyorsunuz.
” + “Kabin bagajınız yaklaşık ” + carryExcess.toFixed(1) + ” kg fazla görünüyor.”; } else{ verdict.className = “vd-bag-verdict vd-bag-danger”; verdict.innerHTML = “⚠ Bagaj adedi limitini kontrol edin.
” + “Seçilen sınıfa göre izin verilen bagaj adedi: ” + rule.pieces + “.”; } /* ===================================== SHOW ===================================== */ empty.style.display = “none”; results.style.display = “block”; results.scrollIntoView({ behavior:”smooth”, block:”start” }); }); /* ========================================= RESET ========================================= */ resetButton.addEventListener(“click”,function(){ airlineSelect.value = “”; classSelect.value = “economy”; carryInput.value = “”; checkedInput.value = “”; piecesInput.value = “1”; results.style.display = “none”; empty.style.display = “block”; }); })();
✈️ Bagaj Ücreti Hesaplayıcı
100+ havayolu için kabin ve uçak altı bagaj limitlerini kontrol edin ve tahmini fazla bagaj ücretinizi hesaplayın.
Havayolu
Havayolu seçin
Turkish Airlines
Pegasus Airlines
SunExpress
AJet
Emirates
Qatar Airways
Etihad Airways
Lufthansa
British Airways
Air France
KLM
SWISS
Austrian Airlines
Iberia
ITA Airways
Finnair
SAS
Brussels Airlines
TAP Air Portugal
LOT Polish Airlines
Aegean Airlines
Ryanair
Wizz Air
easyJet
Vueling
Eurowings
Norwegian
Air Serbia
Croatia Airlines
American Airlines
Delta Air Lines
United Airlines
Air Canada
WestJet
JetBlue
Southwest Airlines
Alaska Airlines
Qantas
Virgin Australia
Jetstar
Air New Zealand
Singapore Airlines
Cathay Pacific
Japan Airlines
ANA
Korean Air
Asiana Airlines
Thai Airways
Malaysia Airlines
Vietnam Airlines
Philippine Airlines
EVA Air
Air China
China Eastern
China Southern
Air India
IndiGo
AirAsia
Scoot
Ethiopian Airlines
Kenya Airways
EgyptAir
Royal Air Maroc
South African Airways
LATAM Airlines
Avianca
Aeromexico
Copa Airlines
GOL Airlines
Azul
Seyahat Sınıfı
Economy
Premium Economy
Business
First Class
Kabin Bagajı (kg)
Uçak Altı Bagajı (kg)
Uçak Altı Bagaj Adedi
🧳 Havayolunu seçin ve
Hesapla butonuna basın.
Bagaj Sonucu
Kabin Bagajı Hakkı
–
Uçak Altı Bagaj Hakkı
–
Fazla Bagaj
–
Havayolu
–
Seyahat sınıfı
–
Kabin bagajınız
–
Uçak altı bagajınız
–
Bagaj adedi
–
Bagaj sistemi
–
Azami kabin ölçüsü
–
Azami uçak altı ölçüsü
–
Tahmini fazla bagaj ücreti
–
Bilgi:
Gösterilen ücretler tahmini değerlerdir.
Gerçek bagaj ücretleri havayolu, rota, bilet/fare tipi,
uçuş tarihi, satın alma zamanı ve bagaj konseptine göre
değişebilir. Uçuşunuzdan önce ilgili havayolunun resmi
bagaj kurallarını kontrol edin.
” + “Girdiğiniz ağırlıklara göre seçilen havayolunun ” + “genel bagaj limitlerini aşmıyorsunuz.”; } else if( checkedExcess > 0 ){ verdict.className = “vd-bag-verdict vd-bag-warning”; verdict.innerHTML = “⚠ Fazla bagajınız var.
” + “Uçak altı bagajınız yaklaşık ” + checkedExcess.toFixed(1) + ” kg fazla. Tahmini ek ücret: ” + “$” + fee.toFixed(0) + “.”; } else if( carryExcess > 0 ){ verdict.className = “vd-bag-verdict vd-bag-warning”; verdict.innerHTML = “⚠ Kabin bagajı limitini aşıyorsunuz.
” + “Kabin bagajınız yaklaşık ” + carryExcess.toFixed(1) + ” kg fazla görünüyor.”; } else{ verdict.className = “vd-bag-verdict vd-bag-danger”; verdict.innerHTML = “⚠ Bagaj adedi limitini kontrol edin.
” + “Seçilen sınıfa göre izin verilen bagaj adedi: ” + rule.pieces + “.”; } /* ===================================== SHOW ===================================== */ empty.style.display = “none”; results.style.display = “block”; results.scrollIntoView({ behavior:”smooth”, block:”start” }); }); /* ========================================= RESET ========================================= */ resetButton.addEventListener(“click”,function(){ airlineSelect.value = “”; classSelect.value = “economy”; carryInput.value = “”; checkedInput.value = “”; piecesInput.value = “1”; results.style.display = “none”; empty.style.display = “block”; }); })();