/**
 * Quicksearch javascript functions
 */

$(document).ready(function() {
   if ($('#jatQuicksearch')) {
		
		// set actions to selector
		$('#selectFlights').click( function() {
			$('#jatQuicksearch').attr('class', 'selectedFlights');
		});
		$('.selectFlights2').click( function() {
			$('#jatQuicksearch').attr('class', 'selectedFlights');
		});				
		$('#selectRentACar').click( function() {
			$('#jatQuicksearch').attr('class', 'selectedRentACar');
			/*$("#main").css({opacity: 0.3});
			$.ajax({
				url: "active/"+currentLang+"/home/custom_menu/timetable.html",
				dataType: "html",
				//contentType: "text/html; charset=UTF-8",
				error: function(req, status, err) {
					alert(req.getAllResponseHeaders());
					$("#main").css({opacity: 1});
				},
				success: function(data){
					$("#main").html($("#main", data).html());
					$("#main").css({opacity: 1});
			}});*/
		});
		$('#selectHotels').click( function() {
			$('#jatQuicksearch').attr('class', 'selectedHotels');
		});
		$('.selectTimetable').click( function() {
			$('#jatQuicksearch').attr('class', 'selectedTimetable');
		});

		// show or hide round trip part
		$('#roundTrip').click( function() {
			if (document.flightsForm.roundTrip.checked) {
				$('#endTimePart').css('visibility', 'visible');
				$('#endTimePart .calBtn').css('visibility', 'visible');
			} else {
				$('#endTimePart').css('visibility', 'hidden');
				$('#endTimePart .calBtn').css('visibility', 'hidden');
			}
		});
		$('#ttRoundTrip').click( function() {
			if (document.timetableForm.ttRoundTrip.checked) {
				$('#ttEndTimePart').css('visibility', 'visible');
				$('#ttEndTimePart .calBtn').css('visibility', 'visible');
			} else {
				$('#ttEndTimePart').css('visibility', 'hidden');
				$('#ttEndTimePart .calBtn').css('visibility', 'hidden');
			}
		});		
	}
});


function hotelsSwitchLand(fld) {
	if (fld.value == 'SRB') {
		$('#vsTitle'	  ).css('display', 'block');
		$('#hotelsTitle' ).css('display', 'none');
		$('#vsOptions'	  ).css('display', 'block');
		$('#hotelOptions').css('display', 'none');
	} else {
		$('#vsTitle'	  ).css('display', 'none');
		$('#hotelsTitle' ).css('display', 'block');
		$('#vsOptions'	  ).css('display', 'none');
		$('#hotelOptions').css('display', 'block');
	}
}


/**
 * flight form checking functions
 */
function checkFlightForm() {
	if (!enteredAPs()) {
		alert(errorMsgs['incomplete_destinations'][detectLang()]);
		return false;
	}
	if (!validAPs()) {
		alert(errorMsgs['same_destinations'][detectLang()]);
		return false;
	}
	if (isReturnTrip() && !checkDates()) {
		alert(errorMsgs['from_greater_from_to'][detectLang()]);
		return false;
	}
	if (!getTravellerNr()) {
		alert(errorMsgs['no_passengers'][detectLang()]);
		return false;
	}
	if (getTravellerNr()>8) {
		alert(errorMsgs['too_many_passengers'][detectLang()]);
		return false;
	}
	if (getTravellerNr()-getChildernNr()<getInfantNr()) {
		alert(errorMsgs['too_many_infants'][detectLang()]);
		return false;
	}
   return true;	
}
function enteredAPs() {
   if (!document.flightsForm.fromCity.value || !document.flightsForm.toCity.value)
      return false;
   else
      return true;
}
function validAPs() {
   if (document.flightsForm.fromCity.value == document.flightsForm.toCity.value)
      return false;
   else
      return true;
}
function checkDates() {
   if (   document.flightsForm.startTimeYM.value > document.flightsForm.endTimeYM.value
       || (   document.flightsForm.startTimeYM.value == document.flightsForm.endTimeYM.value
           && document.flightsForm.startTimeD.value > document.flightsForm.endTimeD.value
          )
      )
      return false;
   else
      return true;
}
function isReturnTrip() {
   return document.flightsForm.roundTrip.checked ? 1 : 0;
}
function getTravellerNr() {
   return   parseInt(document.flightsForm.passengersADT.value)
          + parseInt(document.flightsForm.passengersYTH.value)
          + parseInt(document.flightsForm.passengersYCD.value)
          + parseInt(document.flightsForm.passengersCHD.value);
}
function getChildernNr() {
   return parseInt(document.flightsForm.passengersCHD.value);
}
function getInfantNr() {
   return parseInt(document.flightsForm.passengersINF.value);
}
function detectLang() {
   return(document.flightsForm.currentLang.value);
}

/**
 * Timetable form checking functions
 */
function checkTimetableForm() {
	if (!enteredTtAPs()) {
		alert(errorMsgs['incomplete_destinations'][detectLang()]);
		return false;
	}
	if (!validTtAPs()) {
		alert(errorMsgs['same_destinations'][detectLang()]);
		return false;
	}
	if (isTtReturnTrip() && !ttCheckDates()) {
		alert(errorMsgs['from_greater_from_to'][detectLang()]);
		return false;
	}
   return true;	
}
function enteredTtAPs() {
   if (!document.timetableForm.ttFromCity.value || !document.timetableForm.ttToCity.value)
      return false;
   else
      return true;
}
function validTtAPs() {
   if (document.timetableForm.ttFromCity.value == document.timetableForm.ttToCity.value)
      return false;
   else
      return true;
}
function isTtReturnTrip() {
   return document.timetableForm.ttRoundTrip.checked ? 1 : 0;
}
function ttCheckDates() {
   if (   document.timetableForm.ttStartTimeYM.value > document.timetableForm.ttEndTimeYM.value
       || (   document.timetableForm.ttStartTimeYM.value == document.timetableForm.ttEndTimeYM.value
           && document.timetableForm.ttStartTimeD.value > document.timetableForm.ttEndTimeD.value
          )
      )
      return false;
   else
      return true;
}

/**
 * Check trip form checking functions
 */
function checkCheckTripForm() {
	if (!document.checkTripForm.amadeusPNR.value || !document.checkTripForm.lastName.value) {
		alert(errorMsgs['incomplete_cmt_fields'][detectLang()]);
		return false;
	} else
		return true;
}

/**
 * hotels form checking functions
 */
function checkHotelsForm() {
	if (!checkHotelDates()) {
		alert(errorMsgs['from_greater_from_to'][detectLang()]);
		return false;			
	} else if (document.hotelsForm.hotelsSelector.value == 'SRB' && !checkSearch(document.hotelsForm)) 
		return false;
	return true;
}
function checkHotelDates() {
   if (   documenthotelsForm.hotelsStartTimeYM.value > document.hotelsForm.hotelsEndTimeYM.value
       || (   document.hotelsForm.hotelsStartTimeYM.value == document.hotelsForm.hotelsEndTimeYM.value
           && document.hotelsForm.hotelsStartTimeD.value > document.hotelsForm.hotelsEndTimeD.value
          )
      )
      return false;
   else
      return true;
}

/**
 * rent-a-car form checking functions
 */
function checkRacForm() {
	if (!enteredRacAPs()) {
		alert(errorMsgs['incomplete_destinations'][detectLang()]);
		return false;
	} else if (!checkRacTimes()) {
		alert(errorMsgs['rac_please_enter_times'][detectLang()]);
		return false;			
	} else if (!checkRacDates()) {
		alert(errorMsgs['from_greater_from_to'][detectLang()]);
		return false;			
	} else
		return true;
}
function enteredRacAPs() {
   if (!document.racForm.racFromCity.value || !document.racForm.racToCity.value)
      return false;
   else
      return true;
}
function checkRacDates()
{
   if (   document.racForm.racStartTimeYM.value > document.racForm.racEndTimeYM.value
       || (   document.racForm.racStartTimeYM.value == document.racForm.racEndTimeYM.value
           && document.racForm.racStartTimeD.value-0 > document.racForm.racEndTimeD.value-0
          )
      )
      return false;
	else if (  document.racForm.racStartTimeYM.value == document.racForm.racEndTimeYM.value
           && document.racForm.racStartTimeD.value-0 > document.racForm.racEndTimeD.value-0
           && document.racForm.racStartTimeHrs.value+document.racForm.racStartTimeMins.value
				> document.racForm.racEndTimeHrs.value+document.racForm.racEndTimeMins.value
			  )
		return false;
   else
      return true;
}
function checkRacTimes()
{
	if (   document.racForm.racStartTimeHrs.value == ''
		 || document.racForm.racStartTimeMins.value == ''
		 || document.racForm.racEndTimeHrs.value == ''
		 || document.racForm.racEndTimeMins.value == ''
		)
		return false;
	else
		return true;
}


/**
 * Lang constants
 */
var errorMsgs = { "from_greater_from_to"
                  :{ "en"          : "Return date must be greater than Departure date"
                    ,"sr-latin"    : "Datum povratka mora da bude veći od datuma polaska"
                    ,"sr-cyrillic" : "Датум повратка мора да буде већи од датума поласка"
                    ,"ge"			  : "Das Rückflugdatum muss später als das Abflugdatum starten"
                    ,"fr"          : "Return date must be greater than Departure date"
                   }
                 ,"too_many_infants"
                  :{ "en"          : "Number of infants cannot exceed total number of Adults, Youth and Seniors"
                    ,"sr-latin"    : "Broj infanata ne može da bude veći od ukupnog broja odraslih, omladine i seniora"
                    ,"sr-cyrillic" : "Број инфаната не може да буде већи од укупног броја одраслих, омладине и сениора"
                    ,"ge"			  : "Kinderanzahl kann die Gesamtanzahl der Erwachsenen, Jugendlichen und Senioren nicht überschreiten"
                    ,"fr"          : "Number of infants cannot exceed total number of Adults, Youth and Seniors"
                   }
                 ,"no_passengers"
                  :{ "en"          : "No passengers"
                    ,"sr-latin"    : "Niste uneli broj putnika"
                    ,"sr-cyrillic" : "Нисте унели број путника"
                    ,"ge"			  : "Sie haben die Anzahl der Reisenden nicht eingegeben"
                    ,"fr"          : "No passengers"
                   }
                 ,"incomplete_destinations"
                  :{ "en"          : "Please select airports"
                    ,"sr-latin"    : "Molimo odaberite aerodrome"
                    ,"sr-cyrillic" : "Молимо одаберите аеродроме"
                    ,"ge"			  : "Wählen Sie bitte die Flughäfen aus"
                    ,"fr"          : "Please select airports"
                   }
                 ,"same_destinations"
                  :{ "en"          : "Departure and arrival airports cannot be the same"
                    ,"sr-latin"    : "Aerodromi polaska i dolaska ne mogu biti isti"
                    ,"sr-cyrillic" : "Аеродроми поласка и доласка не могу бити исти"
                    ,"ge"			  : "Start- und Zielflughafen können nicht dieselben sein"
                    ,"fr"          : "Departure and arrival airports cannot be the same"
                   }
                 ,"too_many_passengers"
                  :{ "en"          : "Total number of Adult, Youth, Seniors and Children cannot exceed 8"
                    ,"sr-latin"    : "Ukupan broj odraslih, omladine, seniora i dece ne može biti veći veci od 8"
                    ,"sr-cyrillic" : "Укупан број одраслих, омладине, сениора и деце не може бити већи од 8"
                    ,"ge"			  : "Die Gesamtanzahl der Erwachsenen, Jugendlichen, Senioren und Kinder kann nicht mehr als 8 sein"
                    ,"fr"          : "Total number of Adult, Youth, Seniors and Children cannot exceed 8"
                   }
                 ,"incomplete_cmt_fields"
                  :{ "en"          : "Please enter your trip details"
                    ,"sr-latin"    : "Molimo unesite detalje Vašeg leta"
                    ,"sr-cyrillic" : "Молимо унесите детаље Вашег лета"
                    ,"ge"			  : "Geben Sie bitte die Details Ihres Fluges ein"
                    ,"fr"			  : "Please enter your trip details"
                   }
                 ,"eticketing_details"
                  :{ "en"          : "Your reservation will be charged via Internet and e-ticket will be issued. Would you like to find out more?\n\nPlease click on OK if you wish to find out more about On-line payment and e-ticketing before reservation. Click on CANCEL if you wish to go straight to reservation process."
                    ,"sr-latin"    : "Vaša rezervacija će biti naplaćena preko Interneta i biće Vam izdata elektronska karta. Želite li da saznate više o tome?\n\nKliknite na OK ako želite da saznate više o On-line plaćanju i e-tiketingu pre pravljenja rezervacije. Kliknite na CANCEL ako želite odmah da nastavite sa pravljenjem rezervacije"
                    ,"sr-cyrillic" : "Ваша резервација ће бити наплаћена преко Интернета и биће Вам издата електронска карта. Желите ли да сазнате више о томе?\n\nКликните на OK ако желите да сазнате више о On-line плаћању и e-тикетингу пре прављења резервације. Кликните на CANCEL ако желите одмах да наставите са прављењем резервације"
                    ,"ge"			  : "Your reservation will be charged via Internet and e-ticket will be issued. Would you like to find out more?\n\nPlease click on OK if you wish to find out more about On-line payment and e-ticketing before reservation. Click on CANCEL if you wish to go straight to reservation process."
                    ,"fr"			  : "Your reservation will be charged via Internet and e-ticket will be issued. Would you like to find out more?\n\nPlease click on OK if you wish to find out more about On-line payment and e-ticketing before reservation. Click on CANCEL if you wish to go straight to reservation process."
                   }
                 ,"rac_please_enter_times"
                  :{ "en"          : "Please enter rental start and end times."
                    ,"sr-latin"    : "Molimo unesite vremena početka i kraja najma."
                    ,"sr-cyrillic" : "Молимо унесите времена почетка и краја најма."
                    ,"ge"			  : "Please enter rental start and end times."
                    ,"fr"			  : "Please enter rental start and end times."
                   }
                };

