9292 }
9393
9494 // Set flag to indicate that 'convertTo12Hour' function has been called
95- convertTo12HourCalled = true ;
95+ convertTo12HourCalled = true ;
9696 }
9797
9898 // Function to calculate various times based on user input
104104 // Get commute time value from 'commuteTime' element
105105 var commuteTime = parseInt ( document . getElementById ( 'commuteTime' ) . value ) ;
106106
107+ // Check the flight type (International/Domestic) from radio buttons
108+ var flightType = document . querySelector ( 'input[name="flightType"]:checked' ) . value ;
109+ var additionalTimeForFlight = flightType === 'international' ? 30 : 0 ;
110+ // Add 30 minutes for international flights
111+
112+ // Check the meal option (Yes/No) from radio buttons
113+ var mealOption = document . querySelector ( 'input[name="mealOption"]:checked' ) . value ;
114+ var additionalTimeForMeal = mealOption === 'yesMeal' ? 30 : 0 ;
115+ // Add 30 minutes if eating a meal
116+
117+ // Total additional time
118+ var totalAdditionalTime = additionalTimeForFlight + additionalTimeForMeal ;
119+
107120 // Create Date objects for each calculated time
108121 var departTime = new Date ( '01/01/2000 ' + departureTime ) ;
109122 var boardingTime = new Date ( departTime - 30 * 60000 ) ;
110123 var walkToGateTime = new Date ( boardingTime - 10 * 60000 ) ;
111124 var finishTSATime = new Date ( walkToGateTime - 10 * 60000 ) ;
112- var securityTime = new Date ( finishTSATime - securityWait * 60000 ) ;
125+ var securityTime = new Date ( finishTSATime - ( securityWait + totalAdditionalTime ) * 60000 ) ;
113126 var commuteToAirportTime = new Date ( securityTime - commuteTime * 60000 ) ;
114127 var leaveHouseTime = new Date ( commuteToAirportTime - 15 * 60000 ) ;
115128 var dressedAndPackedTime = new Date ( leaveHouseTime - 60 * 60000 ) ;
122135 // Format time as HH:MM
123136 var formattedTime = time . toLocaleTimeString ( [ ] , { hour : '2-digit' , minute : '2-digit' } ) ;
124137 var paragraph = document . createElement ( 'p' ) ;
125- paragraph . innerHTML = label + ': ' + formattedTime +
138+ paragraph . innerHTML = label + ': ' + formattedTime +
126139 '<span class="time-adjust-buttons">' +
127140 '<button onclick="adjustTime(\'' + id + '\', -1)">-</button>' +
128141 '<button onclick="adjustTime(\'' + id + '\', 1)">+</button>' +
163176 var time = new Date ( '01/01/2000 ' + timeString ) ;
164177 time . setMinutes ( time . getMinutes ( ) + minutes ) ;
165178 var formattedTime = time . toLocaleTimeString ( [ ] , { hour : '2-digit' , minute : '2-digit' } ) ;
166- element . innerHTML = element . innerHTML . split ( ': ' ) [ 0 ] + ': ' + formattedTime +
179+ element . innerHTML = element . innerHTML . split ( ': ' ) [ 0 ] + ': ' + formattedTime +
167180 '<span class="time-adjust-buttons">' +
168181 '<button onclick="adjustTime(\'' + id + '\', -1)">-</button>' +
169182 '<button onclick="adjustTime(\'' + id + '\', 1)">+</button>' +
170183 '</span>' ;
171184 }
172185
173186 // Stretch goals:
174- // "International/Domestic" toggle (adds/subtracts 20 minutes)
187+ // "International/Domestic" toggle (adds/subtracts 30 minutes)
175188 // Eat a meal Yes/No toggle (adds/subtracts 30 minutes)
176189 // Grab map of airport terminals
177190 // Google Maps Traffic API
178191 // TSA Wait Times API
179192 // Airlines realtime data API
180193
181194 </ script >
182-
183- </ body >
184195</ head >
185196
186197< body >
@@ -194,7 +205,7 @@ <h2>24-hour to 12-hour Converter</h2>
194205 < p id ="convertedTime "> </ p >
195206 </ div >
196207 < div >
197- <!-- Airport Estimation Calculator section -->
208+ <!-- Airport Estimation Calculator section -->
198209 < h2 > Airport Estimation Calculator</ h2 >
199210 < form >
200211 < label for ="departureTime "> Departure Time (00:00)</ label >
@@ -205,6 +216,22 @@ <h2>Airport Estimation Calculator</h2>
205216
206217 < label for ="commuteTime "> Commute to Airport (in minutes)</ label >
207218 < input type ="text " id ="commuteTime ">
219+
220+ <!-- International/Domestic toggle -->
221+ < label >
222+ < input type ="radio " name ="flightType " value ="domestic " checked > Domestic
223+ </ label >
224+ < label >
225+ < input type ="radio " name ="flightType " value ="international "> International
226+ </ label >
227+
228+ <!-- Eat a meal Yes/No toggle -->
229+ < label >
230+ < input type ="radio " name ="mealOption " value ="noMeal " checked > No Meal
231+ </ label >
232+ < label >
233+ < input type ="radio " name ="mealOption " value ="yesMeal "> Eat a Meal
234+ </ label >
208235 </ form >
209236 < button onclick ="calculateTimes() "> Calculate</ button >
210237 < div id ="result "> </ div >
0 commit comments