// JavaScript Document

function updateFlightsDestinations()
{		
	var myConn 		= new XHConn();			
	var CodPolo		= document.getElementById("flights_gateway_dep").options[document.getElementById("flights_gateway_dep").selectedIndex].value;
	var ObjHotels	= document.getElementById('destinationContainer');
	ObjHotels.innerHTML = '<span style="color:red">Loading...</span>';	
	if (!myConn) alert("XMLHTTP not available. Try a newer/better browser.");
	var fnWhenDone = function (oXML) {ObjHotels.innerHTML=oXML.responseText;};		
	myConn.connect("ajax/get-flights-destinations.php", "POST", "gateway_dep=" + CodPolo, fnWhenDone);	
}

function ValidaFlightForm()
{
	var det_date = new Array;
	var det_date1 = new Array;
	
	if(document.searchFlights.flights_gateway_dep.value==0)
	{
		alert(document.getElementById('msg_select_departure_location').value);
		document.searchFlights.flights_gateway_dep.focus();
		return false;
	}	
	
	if (document.getElementById('flights_dest_dep'))
	{
		if(document.searchFlights.flights_dest_dep.value==0)
		{
			alert(document.getElementById('msg_select_destination').value);
			document.searchFlights.flights_dest_dep.focus();
			return false;
		}
	}
	else
	{		
		alert(document.getElementById('msg_select_destination').value);
		return false;
	}
	
	if ((document.searchFlights.date_dep0.value=='') || (document.searchFlights.date_dep0.value=='yyyy-mm-dd'))
	{
		alert(document.getElementById('msg_enter_checkin_date').value);
		document.searchFlights.date_dep0.focus();
		return false;
	}	
	
	if (document.searchFlights.roundtripcheck.checked)
	{		
		if ((document.searchFlights.date_dep1.value=='') || (document.searchFlights.date_dep1.value=='yyyy-mm-dd'))
		{
			alert(document.getElementById('msg_enter_checkout_date').value);
			document.searchFlights.date_dep1.focus();
			return false;
		}	
	}


	det_date = document.searchFlights.date_dep0.value.split('-');		
	det_date1 = document.searchFlights.date_dep1.value.split('-');		
	// Validar las fechas
	var date_dat = new Array();
	date_dat = document.searchFlights.date_dep0.value.split('-');
	var current1 = new Date(date_dat[0], date_dat[1]-1, date_dat[2]); // a new instance	
	//fixDate(current1);

	Date1 = current1.getTime();
	// Validar las fechas
	date_dat = document.searchFlights.date_dep1.value.split('-');
	var current2 = new Date(date_dat[0], date_dat[1]-1, date_dat[2]); // a new instance	
	//fixDate(current2);
	Date2 = current2.getTime();
		
	// Today
	var current3 = new Date(); // a new instance	
	//	fixDate(current3);
	var current4 = new Date(current3.getFullYear(), current3.getMonth(), current3.getDate())
	Today = current4.getTime();

	if(Date1 <= Today)
	{		
		alert(document.getElementById('msg_checkin_after_today').value);
		document.searchFlights.date_dep0.focus();
		return false;
	}
	if(((Date1 - Today)/86400000) < 5) 
	{
		alert(document.getElementById('msg_acept_flights_request').value);
		document.searchFlights.date_dep0.focus();
		return false;
	}
	
	if (document.searchFlights.roundtripcheck.checked)
	{	
		if(Date1 >= Date2)
		{
			alert(document.getElementById('msg_checkout_after_checkin').value);
			document.searchFlights.date_dep1.focus();
			return false;
		}
	}
	return true;
}

function ValidaSelectionForm(form, dep_flights_count, ret_flights_count)
{
	dep_flights_ok = false;
	dep_hotels_ok = false;
	if (dep_flights_count > 0)
	{
		if (dep_flights_count > 1)
		{
			leng = form.departure_flight.length;
			for(i=0; i<leng; i++)
			{
				if (form.departure_flight[i].checked) 
				{
					dep_flights_ok = true;
					if (SetFlightsValues(form.departure_flight[i].value, 0, '')) dep_hotels_ok = true;		
				}
			}	
		}
		else
		{
			if (dep_flights_count == 1 && document.getElementById('departure_flight0').checked) 
			{
				dep_flights_ok = true;
				if (SetFlightsValues(document.getElementById('departure_flight0').value, 0, '')) dep_hotels_ok = true;
			}
		}		
	}
	else
	{
		dep_flights_ok = true;
		dep_hotels_ok = true;
	}
	
	ret_flights_ok = false;
	ret_hotels_ok = false;
	if (ret_flights_count > 0)
	{
		if (ret_flights_count > 1)
		{
			leng = form.return_flight.length;
			for(i=0; i<leng; i++)
			{
				if (form.return_flight[i].checked) 
				{
					ret_flights_ok = true;
					if (SetFlightsValues(0, form.return_flight[i].value, '')) ret_hotels_ok = true;		
				}
			}	
		}
		else
		{
			if (ret_flights_count == 1 && document.getElementById('return_flight0').checked)
			{
				ret_flights_ok = true;
				if (SetFlightsValues(0, document.getElementById('return_flight0').value, '')) ret_hotels_ok = true;
			}
		}		
	}
	else
	{
		ret_flights_ok = true;
		ret_hotels_ok = true;
	}
	
	if (dep_flights_ok && ret_flights_ok && dep_hotels_ok && ret_hotels_ok)
	{
		return true;
	}
	else 
	{
		if (!dep_flights_ok) alert(document.getElementById('msg_please_select_departure_flight').value);
		if (!ret_flights_ok) alert(document.getElementById('msg_please_select_return_flight').value);
		return false;
	}
}

function set_adults_count()
{
	combo = document.getElementById("adults");
	totalpaxcount = document.getElementById("total_adults_count").value;
	passengerCount = combo.options[combo.selectedIndex].value;
	for (i=1; i<=totalpaxcount; i++)
	{
		document.getElementById("adult"+i).style.display = "none";
	}
	for (i=1; i<=passengerCount; i++)
	{
		document.getElementById("adult"+i).style.display = "block";
	}	
	document.getElementById("adults_count").value = passengerCount;
}

function ValidateReturnHotels(returnFlightCode)
{	
	if (document.getElementById('return_from_hotel_' + returnFlightCode))
	{
		if	(!combo_ok('return_from_hotel_' + returnFlightCode)) 
		{
			alert(document.getElementById('msg_empty_hotel_name').value);
			return false;
		}		
	}
	if (document.getElementById('return_to_hotel_' + returnFlightCode))
	{
		if	(!combo_ok('return_to_hotel_' + returnFlightCode)) 
		{
			alert(document.getElementById('msg_empty_hotel_name').value);
			return false;
		}		
	}
	return true;
}


function ValidateDepartureHotels(departureFlightCode)
{	
	if (document.getElementById('departure_from_hotel_' + departureFlightCode))
	{
		if	(!combo_ok('departure_from_hotel_' + departureFlightCode)) 
		{
			alert(document.getElementById('msg_empty_hotel_name').value);
			return false;
		}		
	}	
	if (document.getElementById('departure_to_hotel_' + departureFlightCode))
	{
		if	(!combo_ok('departure_to_hotel_' + departureFlightCode)) 
		{
			alert(document.getElementById('msg_empty_hotel_name').value);
			return false;
		}		
	}	
	return true;
}

function SetFlightsValues(departureFlightCode, returnFlightCode, adultControlId)
{
	if (departureFlightCode > 0)
	{
		document.getElementById('departure_flight').value = departureFlightCode;
		
		if (!ValidateDepartureHotels(departureFlightCode))
		{
			return false;
		}
	}
	if (returnFlightCode > 0)
	{
		document.getElementById('return_flight').value = returnFlightCode;

		if (!ValidateReturnHotels(returnFlightCode))
		{
			return false;
		}
	}
	if (adultControlId != '')
	{
		combo_adults = document.getElementById('adults_count' + adultControlId);
		document.getElementById('adults_count').value = combo_adults.options[combo_adults.selectedIndex].value;
	}
	return true;
}

function combo_ok(id)
{
	combo = document.getElementById(id);	 
	if ((combo.options[combo.selectedIndex].value != null) && (combo.options[combo.selectedIndex].value != "") && (combo.options[combo.selectedIndex].value != "0")) {
		return true;
	}
	else {
		document.getElementById(id).focus();  
		return false;
	}
}

function string_ok(id) {
	var re = /^[0-9a-zA-ZÁáÉéÍíÓóÚúÑñ\;\:\,\*\#\+\.\\\[\]\(\)\-\_\/\[\] ]+$/;
	if ((document.getElementById(id).value != null) && (re.test(document.getElementById(id).value))) {
		return true;
	}
	else {
		document.getElementById(id).focus();  
		return false;
	}
}

function email_ok(id) {
	var re = /^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/;
	if ((document.getElementById(id).value != null) && (re.test(document.getElementById(id).value))) {
		return true;
	}
	else {
		document.getElementById(id).focus();  
		return false;
	}
}

function name_ok(id) {
	var re = /^[a-zA-ZÁáÉéÍíÓóÚúÑñ ]+$/;
	if ((document.getElementById(id).value != null) && (re.test(document.getElementById(id).value))) {
		return true;
	}
	else {
		document.getElementById(id).focus();  
		return false;
	}
}

function number_ok(id) { 
	var re = /^\d+$/;
	if ((document.getElementById(id).value != null) && (re.test(document.getElementById(id).value))){
		return true;
	}
	else{
		document.getElementById(id).focus();
		return false;
	}
}