var curDate = new Date(); 
var min_flight_departure_date 	= new Date(curDate.valueOf() + 2*24*60*60*1000);
var min_flight_return_date		= new Date(curDate.valueOf() + 3*24*60*60*1000);

function flight_departure_date_status(date) { 
	return (date.getTime() < min_flight_departure_date.getTime());
}

function flight_arrival_date_status(date) {			
	return (date.getTime() < min_flight_return_date.getTime());
}

function synchronize_flight_calendars(cal) {
	if (compareDates(document.getElementById("txt_flight_return_date").value,'d/M/y',document.getElementById("txt_flight_departure_date").value,'d/M/y') == 0) {
	var toUpdateField = document.getElementById("txt_flight_departure_date");
		if (toUpdateField == cal.params.inputField) {
			tempDate = new Date(cal.date.getTime() + 1*24*60*60*1000);
			document.getElementById("txt_flight_return_date").value = tempDate.getDate() + '/' + (tempDate.getMonth() + 1) + '/' + tempDate.getFullYear();
		} else {
			tempDate = new Date(cal.date.getTime() - 1*24*60*60*1000);
			document.getElementById("txt_flight_departure_date").value = tempDate.getDate() + '/' + (tempDate.getMonth() + 1) + '/' + tempDate.getFullYear();
		}
	}
}

function change_flight_type(flight_type) {
	if (flight_type=='return_flight'){
		document.getElementById("rb_return_flight").checked				= true;
		document.getElementById("tr_flight_return_date").style.display 	= '';
	}
	else{
		document.getElementById("rb_one_way_flight").checked				= true;
		document.getElementById("tr_flight_return_date").style.display 	= "none";
	}
}

function change_flight_type(flight_type) {
	if (flight_type=='return_flight'){
		document.getElementById("rb_return_flight").checked				= true;
		document.getElementById("tr_flight_return_date").style.display 	= '';
	}
	else{
		document.getElementById("rb_one_way_flight").checked				= true;
		document.getElementById("tr_flight_return_date").style.display 	= "none";
	}
}
function show_rooms(rooms_number) {
	for (var i= 1; i <= 5; i++){document.getElementById("tr_room_" + i).style.display 	= "none"; };
	for (var i= 1; i <= rooms_number; i++)	{document.getElementById("tr_room_" + i).style.display 	= '';};
}


var min_car_pickup_date  = new Date(curDate.valueOf() + 4*24*60*60*1000);
var min_car_dropoff_date = new Date(curDate.valueOf() + 5*24*60*60*1000);

function car_dates_status_initial(date) { 
	return (date.getTime() < min_car_pickup_date.getTime());
}

function car_dates_status_final(date) { 
	return (date.getTime() < min_car_dropoff_date.getTime());
}

function synchronize_car_calendars(cal) {
	if (compareDates(document.getElementById("txt_dropoff_date").value,'d/M/y',document.getElementById("txt_pickup_date").value,'d/M/y') == 0) {
		var toUpdateField = document.getElementById("txt_pickup_date");
		if (toUpdateField == cal.params.inputField) {
			tempDate = new Date(cal.date.getTime() + 1*24*60*60*1000);
			document.getElementById("txt_dropoff_date").value = tempDate.getDate() + '/' + (tempDate.getMonth() + 1) + '/' + tempDate.getFullYear();
		} else {
			tempDate = new Date(cal.date.getTime() - 1*24*60*60*1000);
			document.getElementById("txt_pickup_date").value = tempDate.getDate() + '/' + (tempDate.getMonth() + 1) + '/' + tempDate.getFullYear();
		}
	}
}

function valid_email(email) {
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	return (filter.test(email));		
}

function checkin_date_status(date) { 
	var curDate = new Date(); 
	var min_checkin_date = new Date(curDate.valueOf() + 2*24*60*60*1000);
	return (date.getTime() < min_checkin_date.getTime());
}

function change_action()
{
	var product_type = document.getElementById("product_type").value;

	document.getElementById("txt_other_action").style.display 	 = "none";
	
	document.getElementById("tr_site_url").style.display 		 = "none";
	document.getElementById("tr_site_title").style.display 		 = "none";
	document.getElementById("tr_site_description").style.display = "none";
	document.getElementById("tr_category").style.display 		 = "none";
	document.getElementById("tr_link_url").style.display 		 = "none";
	document.getElementById("tr_country").style.display			 = "none";
	document.getElementById("tr_m_link_url").style.display 	 	 = "none";

	if ((product_type & 1) != 0) {
		if (x=document.getElementById("tr_ga_prod_type")) x.style.display= "none";
		document.getElementById("tr_agency").style.display 		= "none";
		document.getElementById("tr_reg_number").style.display 	= "none";
		document.getElementById("tr_address").style.display 	= "none";
		document.getElementById("tr_city").style.display 		= "none";
		document.getElementById("tr_state").style.display 		= "none";
		document.getElementById("tr_code").style.display 		= "none";
		document.getElementById("tr_country").style.display 	= "none";
		document.getElementById("tr_fax").style.display 		= "none";
		document.getElementById("tr_website").style.display 	= "none";
	}
	if ((product_type & 2) != 0) {
		document.getElementById("tr_hotel").style.display 		= "none";
		document.getElementById("tr_checkin_date").style.display = "none";
		document.getElementById("tr_persons_hotel").style.display = "none";
		document.getElementById("tr_nights").style.display 		= "none";
		document.getElementById("tr_rooms").style.display 		= "none";
		show_rooms(document.getElementById("cbx_number_of_rooms").value);
	}
	if ((product_type & 4) != 0) {
		document.getElementById("tr_flight_departure_city").style.display 	= "none";
		document.getElementById("tr_flight_arrival_city").style.display 	= "none";
		document.getElementById("tr_flight_type").style.display 			= "none";
		document.getElementById("tr_flight_departure_date").style.display 	= "none";
		document.getElementById("tr_flight_return_date").style.display 		= "none";
		document.getElementById("tr_persons_flight").style.display 			= "none";
	}
	if ((product_type & 8) != 0) {
		document.getElementById("tr_pickup_place").style.display 	= "none";
		document.getElementById("tr_pickup_date").style.display 	= "none";
		document.getElementById("tr_pickup_time").style.display 	= "none";
		document.getElementById("tr_dropoff_place").style.display 	= "none";
		document.getElementById("tr_dropoff_date").style.display 	= "none";
		document.getElementById("tr_dropoff_time").style.display 	= "none";
		document.getElementById("tr_driver_age").style.display 		= "none";
		document.getElementById("tr_car_model").style.display 		= "none";		
	}
	if ((product_type & 16) != 0) {
		document.getElementById("tr_tour").style.display = "none";	
		document.getElementById("tr_tour_checkin_date").style.display = "none";		
		document.getElementById("tr_rooms").style.display = "none";
		document.getElementById("tr_persons_hotel").style.display = "none";
		show_rooms(document.getElementById("cbx_number_of_rooms").value);
	}		

	if ((product_type & 32) != 0) {
		document.getElementById("tr_excursion").style.display = "none";	
		document.getElementById("tr_excursion_checkin_date").style.display = "none";		
		document.getElementById("tr_pax").style.display = "none";
	}		

	if ((product_type & 64) != 0) {
		document.getElementById("tr_package").style.display = "none";
		document.getElementById("tr_persons_hotel").style.display = "none";
		document.getElementById("tr_rooms").style.display = "none";
	}		

	if (document.getElementById("cbx_action").value == "other") 
	{
		document.getElementById("txt_other_action").style.display = '';
		document.getElementById("txt_other_action").focus();
	}	
	
	if (document.getElementById("cbx_action").value == "exchange_links") 
	{
		document.getElementById("tr_site_url").style.display 		 = '';
		document.getElementById("tr_site_title").style.display 		 = '';
		document.getElementById("tr_site_description").style.display = '';
		document.getElementById("tr_category").style.display 		 = '';
		document.getElementById("tr_link_url").style.display 		 = '';
		document.getElementById("tr_country").style.display 	 	 = '';
		document.getElementById("tr_m_link_url").style.display 	 	 = '';
		
		document.getElementById("tr_title").style.display 	         = "none";
		document.getElementById("tr_surname").style.display 	     = "none";
		document.getElementById("tr_phone").style.display 	         = "none";
	}	
	else
	{
		document.getElementById("tr_title").style.display 	         = '';
		document.getElementById("tr_surname").style.display 	     = '';
		document.getElementById("tr_phone").style.display 	         = '';		
	}
	
	if ((document.getElementById("cbx_action").value == "cancel") || (document.getElementById("cbx_action").value == "modify"))
	{
		document.getElementById("tr_confirmation_number").style.display = '';
	}
	
	if ((document.getElementById("cbx_action").value == "make"))
	{
		document.getElementById("tr_hotel").style.display 			= '';
		document.getElementById("tr_checkin_date").style.display 	= '';
		document.getElementById("tr_nights").style.display 			= '';
		document.getElementById("tr_rooms").style.display 			= '';
		document.getElementById("tr_persons_hotel").style.display 	= '';
	}	
	
	if ((document.getElementById("cbx_action").value == "make_tour"))
	{
		document.getElementById("tr_tour").style.display = '';		
		document.getElementById("tr_tour_checkin_date").style.display = '';
		
		document.getElementById("tr_persons_hotel").style.display = "";
		document.getElementById("tr_rooms").style.display = "";
	}	


	if ((document.getElementById("cbx_action").value == "make_excursion"))
	{
		document.getElementById("tr_excursion").style.display = '';		
		document.getElementById("tr_excursion_checkin_date").style.display = '';

		document.getElementById("tr_pax").style.display = '';
	}	

	if ((document.getElementById("cbx_action").value == "make_flight"))
	{
		document.getElementById("tr_persons_flight").style.display 			= '';
		document.getElementById("tr_flight_departure_city").style.display 	= '';
		document.getElementById("tr_flight_arrival_city").style.display 	= '';
		document.getElementById("tr_flight_type").style.display 			= '';
		document.getElementById("tr_flight_departure_date").style.display 	= '';
		if (document.getElementById("rb_return_flight").checked) { 
			document.getElementById("tr_flight_return_date").style.display 	= '';
		}
	}
	
	if ((document.getElementById("cbx_action").value == "make_car"))
	{
		document.getElementById("tr_pickup_place").style.display 	= '';
		document.getElementById("tr_pickup_date").style.display 	= '';
		document.getElementById("tr_pickup_time").style.display 	= '';
		document.getElementById("tr_dropoff_place").style.display 	= '';
		document.getElementById("tr_dropoff_date").style.display 	= '';
		document.getElementById("tr_dropoff_time").style.display 	= '';
		document.getElementById("tr_driver_age").style.display 		= '';
		document.getElementById("tr_car_model").style.display 		= '';
	}

	if ((document.getElementById("cbx_action").value == "make_package"))
	{
		document.getElementById("tr_package").style.display 		= '';
		document.getElementById("tr_persons_hotel").style.display = '';
		document.getElementById("tr_rooms").style.display 		= '';
	}	

	if ((document.getElementById("cbx_action").value == "ta_getcode"))
	{
		if (x=document.getElementById("tr_ga_prod_type")) x.style.display='';
		document.getElementById("tr_agency").style.display = '';
		document.getElementById("tr_reg_number").style.display = '';
		document.getElementById("tr_address").style.display = '';
		document.getElementById("tr_city").style.display = '';
		document.getElementById("tr_state").style.display = '';
		document.getElementById("tr_code").style.display = '';
		document.getElementById("tr_country").style.display = '';
		document.getElementById("tr_fax").style.display = '';
		document.getElementById("tr_website").style.display = '';
	}
}				

txt_action = "Please, select an option from the \"I wish\" pull-down menu"	
txt_hotel = "Please, choose the hotel you wish to book"
txt_car = "Please, choose the car you wish to book"
txt_other = "Please, select what you wish to do"
txt_site_url = "URL is required and must have 10 characters length at least, be sure to type a valid URL"
txt_site_title = "Your site title is required"
txt_site_description = "Your site description is required and must have 5 characters length at least"
txt_site_category = "You must select a category for your site"
txt_link_url = "Reciprocal URL is required and must have 10 characters length at least, be sure to type a valid URL"
txt_product_type = "Please, select a product."
txt_ta = "Please, type the name of your travel agency"
txt_name = "Please, type your name"
txt_surname = "Please, type your surname(s)"
txt_email = "Please, type your email address correctly"
txt_reg_number = "Please, type the Registration Number";
txt_address = "Please, type an address";
txt_city = "Please, type a city";
txt_country = "Please, select a country";
txt_tour = "Please, select a tour";
txt_excursion = "Please, select an excursion";
txt_fax = "Please, type the fax number";
txt_antispam = "To help us combat Spam messages, please type the code in the image you see."
txt_comments = "Please, type your comments";
txt_driver = "Drivers must be over 21"
txt_package = "Please, select a package";



function contact_us_form_validation()
{
	error = false;
  
	if (document.getElementById("cbx_action").value=='select')
	{
		alert(txt_action);
		document.getElementById("cbx_action").focus();
		error = true;
	}
	
	var product_type = document.getElementById("product_type").value;
	
	if ((product_type & 2) != 0) {
		if ((!error)&&(document.getElementById("cbx_action").value=='make'))
		{
			if ((!error)&&(document.getElementById("cbx_hotel").value=='-1'))
			{
				alert(txt_hotel);
				document.getElementById("cbx_hotel").focus();
				error = true;
			}
		}
	}
	if ((product_type & 1) != 0) {
		//Recorro el arreglo para ver si hay algun producto seleccionado
		if (document.getElementById("tr_ga_prod_type")) {
			var ga_products_elements = document.getElementsByName("chb_ga_prod_type");
			var ga_products_checked = false
			var i;
			for (i=0; i < ga_products_elements.length; i++) {
					if (ga_products_elements[i].checked) ga_products_checked = true;
			}
							
			if ((!error)&&(document.getElementById("cbx_action").value=='ta_getcode')&&(!ga_products_checked ))
			{
				alert(txt_product_type);
				document.getElementById("chb_ga_prod_type_1").focus();
				error = true;
			}
		}
		
		if ((!error)&&(document.getElementById("cbx_action").value=='ta_getcode')&&(document.getElementById("txt_travel_agency").value.replace(/ /g,"").length==0))
		{
			alert(txt_ta);
			document.getElementById("txt_travel_agency").focus();
			error = true;
		}
		if ((!error)&&(document.getElementById("cbx_action").value=='ta_getcode')&&(document.getElementById("txt_reg_number").value.replace(/ /g,"").length==0))
		{
			alert(txt_reg_number);
			document.getElementById("txt_reg_number").focus();
			error = true;
		}
		
		if ((!error)&&(document.getElementById("cbx_action").value=='ta_getcode')&&(document.getElementById("txt_address").value.replace(/ /g,"").length==0))
		{
			alert(txt_address);
			document.getElementById("txt_address").focus();
			error = true;
		}
		
		if ((!error)&&(document.getElementById("cbx_action").value=='ta_getcode')&&(document.getElementById("txt_city").value.replace(/ /g,"").length==0))
		{
			alert(txt_city);
			document.getElementById("txt_city").focus();
			error = true;
		}
			
		if ((!error)&&(document.getElementById("cbx_action").value=='ta_getcode')&&(document.getElementById("cbx_country").value=='-1'))
		{
			alert(txt_country);
			document.getElementById("cbx_country").focus();
			error = true;
		}
	/*	
		if ((!error)&&(document.getElementById("cbx_action").value=='ta_getcode')&&(document.getElementById("txt_fax").value.replace(/ /g,"").length==0))
		{
			alert(txt_fax);
			document.getElementById("txt_fax").focus();
			error = true;
		}
	*/	
	}
	if ((product_type & 8) != 0) {
		
		if ((!error)&&(document.getElementById("cbx_action").value=='make_car'))
		{
			if ((!error)&&(document.getElementById("carType").value=='-1'))
			{
				alert(txt_car);
				document.getElementById("carType").focus();
				error = true;
			}
			if((!error) && (isNaN(document.getElementById("txt_driver_age").value) || (document.getElementById("txt_driver_age").value < 21)))
			{
				alert(txt_driver);
				document.getElementById("txt_driver_age").focus();
				error = true;
			}	
		}
	}
	if ((product_type & 16) != 0) {
		
		if ((!error)&&(document.getElementById("cbx_action").value=='make_tour'))
		{
			if ((!error)&&(document.getElementById("cbx_tour").value=='-1'))
			{
				alert(txt_tour);
				document.getElementById("cbx_tour").focus();
				error = true;
			}
		}
	}	
	if ((product_type & 32) != 0) {
		
		if ((!error)&&(document.getElementById("cbx_action").value=='make_excursion'))
		{
			if ((!error)&&(document.getElementById("cbx_excursion").value=='-1'))
			{
				alert(txt_excursion);
				document.getElementById("cbx_excursion").focus();
				error = true;
			}
		}
	}	
	if ((product_type & 64) != 0) {
		
		if ((!error)&&(document.getElementById("cbx_action").value=='make_package'))
		{
			if ((!error)&&(document.getElementById("cbx_package").value=='-1'))
			{
				alert(txt_package);
				document.getElementById("cbx_package").focus();
				error = true;
			}
		}
	}	
	if (document.getElementById("cbx_action").value=='other')
	{
		if ((!error)&&(document.getElementById("txt_other_action").value.replace(/ /g,"").length==0 ))
		{
			alert(txt_other);
			document.getElementById("txt_other_action").focus();
			error = true;	  
		}
	}
	
	if ((!error) && (document.getElementById("cbx_action").value == 'exchange_links'))
	{
		if ((document.getElementById("txt_site_url").value.length < 10) || (document.getElementById("txt_site_url").value.lastIndexOf(".") == -1))	
		{
			alert(txt_site_url);
			document.getElementById("txt_site_url").focus();
			error = true;	  
		}
		if ((!error) && (document.getElementById("txt_site_title").value.replace(/ /g,"").length == 0))	
		{
			alert(txt_site_title);
			document.getElementById("txt_site_title").focus();
			error = true;	  
		}	
		if ((!error) && (document.getElementById("txt_site_description").value.length < 5))	
		{
			alert(txt_site_description);
			document.getElementById("txt_site_description").focus();
			error = true;	  
		}	
		if ((!error) && (document.getElementById("cbx_category").value == '-1'))
		{
			alert(txt_site_category);
			document.getElementById("cbx_category").focus();
			error = true;
		}
		if ((!error) && ((document.getElementById("txt_link_url").value.length < 10) || (document.getElementById("txt_link_url").value.lastIndexOf(".") == -1)))	
		{
			alert(txt_link_url);
			document.getElementById("txt_link_url").focus();
			error = true;	  
		}				
		if ((!error) && (document.getElementById("cbx_country").value == '-1'))
		{
			alert(txt_country);
			document.getElementById("cbx_country").focus();
			error = true;
		}		
	}	

	if ((!error)&&(document.getElementById("txt_name").value.replace(/ /g,"").length==0))
	{
		alert(txt_name);
		document.getElementById("txt_name").focus();
		error = true;	  
	}
	if ((!error)&&(document.getElementById("txt_surname").value.replace(/ /g,"").length==0) && !(document.getElementById("cbx_action").value == 'exchange_links'))
	{
		alert(txt_surname);
		document.getElementById("txt_surname").focus();
		error = true;	  
	}
	if ((!error)&&(!valid_email(document.getElementById("txt_email").value)))
	{
		alert(txt_email);
		document.getElementById("txt_email").focus();
		error = true;
	}
	if ((!error)&&((document.getElementById("txt_antispam_validation").value.replace(" ","").length<1)))
	{
		alert(txt_antispam);
		document.getElementById("txt_antispam_validation").focus();
		error = true;
	}
	if (!error)
	{
		document.getElementById("frm_contact_email").submit();
	}
}

function contact_us_form_validation_es()
{
	contact_us_initializeLanguagesText("es")
	contact_us_form_validation()
}

function contact_us_form_validation_lang(language)
{
	contact_us_initializeLanguagesText(language)
	contact_us_form_validation()
}

function contact_us_initializeLanguagesText(language)
{
switch (language) {
	case 'es' :
		txt_action = "Por favor, seleccione una acción"
		txt_hotel = "Por favor, seleccione un hotel para su reservación."
		txt_car = "Por favor, seleccione un coche para su reservación."
		txt_tour = "Por favor, seleccione un coche para su reservación."
		txt_other = "Por favor, especifique la acción que desea realizar."
		txt_ta = "Por favor, escriba el nombre de su agencia de viajes."
		txt_name = "Por favor, escriba su nombre."
		txt_surname = "Por favor, escriba sus apellidos."
		txt_email = "Por favor, escriba correctamente su dirección de correo electrónico."
		txt_product_type = "Por favor, seleccione un producto."
		txt_reg_number = "Por favor, escriba el Número de Registro.";
		txt_address = "Por favor, escriba la dirección.";
		txt_city = "Por favor, escriba la ciudad.";
		txt_country = "Por favor, seleccione el país.";
		txt_tour = "Por favor, seleccione un tour.";		
		txt_excursion = "Por favor, seleccione una excursión";
		txt_fax = "Por favor, escriba el número de fax.";
		txt_antispam = "Por favor, escriba correctamente el código de la imagen que le mostramos, ayúdenos a combatir los mensajes Spam."
		txt_comments = "Por favor, escriba su comentario.";
		txt_driver = "El conductor debe ser mayor de 21 años.";
		txt_package = "Seleccione un paquete turístico";
		txt_site_url = "Por favor, escriba la dirección URL de su sitio, debe tener al menos 10 caracteres. Asegúrese de escribir una dirección URL válida."
		txt_site_title = "Por favor, escriba un título para su sitio."
		txt_site_description = "Por favor, escriba una descripción para su sitio que tenga al menos 5 caracteres."
		txt_site_category = "Por favor, seleccione una categoría para su sitio"
		txt_link_url = "Por favor, escriba la dirección URL donde colocará un enlace recíproco a nuestro sitio, debe tener al menos 10 caracteres. Asegúrese de escribir una dirección URL válida."

		break;
	case 'fr' :
		break;
	case 'it' :
		break;
	case 'de' :
		break;
	case 'nl' :
		break;
	case 'hu' :
		txt_action = "Kérjük válasszon egy műveletet."	
		txt_hotel = "Kérjük válasszon hotelt."
//		txt_car = "Por favor, seleccione un coche para su reservación."
		txt_other = "Kérjük válasszon egy másik műveletet."
		txt_ta = "Kérjük írja be irodája nevét."
		txt_name = "Kérjük Írja be a nevét."
		txt_surname = "Kérjük írja be a vezetéknevét"
		txt_email = "Kérjük írja be email címét helyesen."
		txt_reg_number = "Kérjük írja be a foglalásának konfirmáció számát.";
//		txt_address = "Por favor, escriba la dirección.";
//		txt_city = "Por favor, escriba la ciudad.";
//		txt_country = "Por favor, escriba el país.";
//		txt_fax = "Por favor, escriba el número de fax.";
		txt_antispam = "Kérjük, írja be a képben található kódot helyesen, hogy sikeresen küzdhessünk a spam ellen."
		txt_comments = "Kérjük írja be a megjegyzéseit.";
//		txt_driver = "El conductor debe ser mayor de 21 años.";
		break;
	} 
}