/*--------------------------------Definido, diseñado y creado por Rubén Martín Guerrero 15/06/2008------------------------------*/

var LVEN00100000026='La ciudad de origen es obligatoria.'; 
var LVEN00100000027='La ciudad de destino es obligatoria.'; 
var LVEN00100000028='La fecha de salida es incorrecta. -dd/mm/aaaa-'; 
var LVEN00100000029='La fecha de regreso es incorrecta. -dd/mm/aaaa-'; 
var LVEN00100000030='La fecha de salida debe ser anterior a la de regreso.'; 
var LVEN00100000031='La fecha de salida debe ser superior en 4 o mas días a la fecha actual.'; 
var LVEN00100000033='El número de bebes tiene que ser menor que el número de adultos.'; 
var LVEN00100000034='Debe de seleccionar al menos un pasajero.'; 
var LVEN00100000040='Ha sobrepasado el número máximo de pasajeros, el máximo es de 9.'; 
var LVEN00100000041='Usted ha elegido ida y vuelta en el mismo dia.\nEs obligatorio que seleccione la hora de ida y la de vuelta.';

var hoy = new Date();           
var day   = hoy.getDate(); 
var mes = hoy.getMonth(); 
var anio  = hoy.getYear(); 
var dia =hoy.getDate(); 
var i=0;                                                
var hoyCadena=dia.toString() + "/" + (mes+1).toString() + "/" + anio.toString(); 
var diaformateado; 
var mesformateado; 
var anoformateado; 
if (dia<10) 
	diaformateado="0" + dia.toString(); 
else 
	diaformateado= dia.toString(); 
                        
if (mes<10) 
	mesformateado="0" + (mes+1).toString(); 
else 
	mesformateado= (mes+1).toString(); 
                        
anioformateado= anio.toString(); 
                

//************************************************************************************* 
//Funcion que me dice si una fecha + un numero de dias (param Rango) es superior a otra 
function SuperaRangoFecha(Fecha1,Rango,Fecha2) 
{ 
	var aux,dia,mes,anio,fecha1,fechasuma,fecha2; 
                
	aux = Fecha1.split('/'); 
	dia = aux[0]; 
	mes = aux[1] - 1; 
	anio = aux[2]; 
                
	fecha1= new Date(anio,mes,dia); 
	dia = parseInt(dia,10) + Rango; 
	fechasuma=new Date(anio, mes,dia); 
                
	aux = Fecha2.split('/'); 
	dia = aux[0]; 
	mes = aux[1] - 1; 
	anio = aux[2]; 
	fecha2 = new Date(anio, mes,dia); 

	if (fechasuma>fecha2)           
		return true; 
	else 
		return false; 
}

function FormatearFecha(fecha)
{	
	
	var re=/^[0-9]\/[0-9]\/[0-9]$/;
	var re1=/^[0-9]\/[0-9]\/[0-9][0-9]$/;
	var re2=/^[0-9]\/[0-9]\/[0-9][0-9][0-9][0-9]$/;
	var re3=/^[0-9]\/[0-9][0-9]\/[0-9][0-9]$/;
	var re4=/^[0-9]\/[0-9][0-9]\/[0-9][0-9][0-9][0-9]$/;
	var re5=/^[0-9][0-9]\/[0-9]\/[0-9][0-9]$/;
	var re6=/^[0-9][0-9]\/[0-9][0-9]\/[0-9][0-9]$/;
	var re7=/^[0-9][0-9]\/[0-9][0-9]\/[0-9][0-9][0-9][0-9]$/;
	var re8=/^[0-9][0-9]\/[0-9]\/[0-9][0-9][0-9][0-9]$/;
	var re9=/^[0-9][0-9]\/[0-9][0-9]\/[0-9]$/;
	var re10=/^[0-9][0-9]\/[0-9]\/[0-9]$/;
	
	var divide,dia,mes,anio;
	

	if (fecha.value.search(re7) == 0) //dd/mm/aaaa
	{
		fecha.value=fecha.value;
	}
		else
			if (fecha.value.search(re) == 0) //d/m/a
			{
				divide = fecha.value.split('/');
				
				dia = '0' + divide[0];
				mes = '0' + divide[1];
				anio = '200' + divide[2];
				
				fecha.value = dia + '/' + mes + '/' + anio; 
			}
				else
					if (fecha.value.search(re1) == 0) //d/m/aa
					{
						divide = fecha.value.split('/');
				
						dia = '0' + divide[0];
						mes = '0' + divide[1];
						anio = '20' + divide[2];
				
						fecha.value = dia + '/' + mes + '/' + anio; 
					}
						else 
							if (fecha.value.search(re2) == 0) //d/m/aaaa
							{
								divide = fecha.value.split('/');
				
								dia = '0' + divide[0];
								mes = '0' + divide[1];
								anio = divide[2]
				
								fecha.value = dia + '/' + mes + '/' + anio; 
							}
								else 
									if (fecha.value.search(re3) == 0) //d/mm/aa
									{
										divide= fecha.value.split('/');

										dia = '0' + divide[0];
										mes = divide[1];
										anio = '20' + divide[2];

										fecha.value = dia + '/' + mes + '/' + anio; 	
									}
										else 
											if (fecha.value.search(re4) == 0) //d/mm/aaaa
											{
												divide = fecha.value.split('/');
				
												dia = '0' + divide[0];
												mes = divide[1];
												anio = divide[2];
				
												fecha.value = dia + '/' + mes + '/' + anio; 
											}
												else 
													if (fecha.value.search(re5) == 0) //dd/m/aa
													{
														divide = fecha.value.split('/');
														
														dia = divide[0];
														mes = '0' + divide[1];
														anio = '20' + divide[2];
														
														fecha.value = dia + '/' + mes + '/' + anio; 
													}
														else 
															if (fecha.value.search(re6) == 0) //dd/mm/aa
															{
																divide = fecha.value.split('/');
																
																dia = divide[0];
																mes = divide[1];
																anio = '20' + divide[2];
																
																fecha.value = dia + '/' + mes + '/' + anio; 
															}														
																else 
																	if (fecha.value.search(re8) == 0) //dd/m/aaaa
																	{
																		divide = fecha.value.split ('/');
																		
																		dia = divide[0];
																		mes = '0' + divide[1];
																		anio = divide[2];
																		
																		fecha.value = dia + '/' + mes + '/' + anio;
																	}
																		else
																			if (fecha.value.search(re9) == 0) //dd/mm/a
																			{
																				divide = fecha.value.split('/');
																				
																				dia = divide[0];
																				mes = divide[1];
																				anio = '200' + divide[2];
																				
																				fecha.value = dia + '/' + mes + '/' + anio; 
																			}
																				else 
																					if (fecha.value.search(re10) == 0) //dd/m/a
																					{
																						divide = fecha.value.split('/');
																						
																						dia = divide[0];
																						mes = '0' + divide[1];
																						anio = '200' + divide[2];
																						
																						fecha.value = dia + '/' + mes + '/' + anio; 
																					}
																						//else 
																							//alert ("El formato de fecha debe ser dd/mm/aaaa");

}               
                
function EsFecha(Elemento)
{ 
	var patron = /^\d\d\/\d\d\/\d\d\d\d$/; 
	FormatearFecha(Elemento); 
	var cadenaEncontrada = Elemento.value.match(patron); 
	if(cadenaEncontrada != null)
	{ 
		var tm = Array(); 
		tm[1] = 31; 
		tm[3] = 31; 
		tm[4] = 30; 
		tm[5] = 31; 
		tm[6] = 30; 
		tm[7] = 31; 
		tm[8] = 31; 
		tm[9] = 30; 
		tm[10] = 31; 
		tm[11] = 30; 
		tm[12] = 31; 
		var dia = parseInt(Elemento.value.substring(0,2),10); 
		var mes = parseInt(Elemento.value.substring(3,5),10); 
		var anno = parseInt(Elemento.value.substring(6,10),10); 
                        
		if(dia==0 || mes==0 || anno==0)
			return false;
		if(mes>12)
			return false;
		if(mes==2)
		{ 
			if (((anno % 4==0) && (anno % 100!=0)) || (anno % 400==0))
			{
				if (dia>29)	
					return false; 
			}
            else
			{ 
				if (dia>28)
					return false; 
			} 
		} 
		if(dia>tm[mes]){return false;} 
		if (anno < 1800){return false;} 
		return true 
	} 
	return false; 
}

//Función que valida el rango de dos fechas: 
//Valida que el parametro FDesde sea menor o igual que el parametro FHasta 
//      FDesde:Fecha inicial. 
//      FHasta:Fecha final. 
function EsRangoFechas(FDesde,FHasta)
{

	patron = /^\d\d\/\d\d\/\d\d\d\d-\d\d\/\d\d\/\d\d\d\d$/; 
	var cadena; 
	var AuxFDesde,AuxFHasta; 
	if (FDesde.value!=null)
		AuxFDesde = FDesde.value; 
	else
		AuxFDesde = FDesde; 

	if (FHasta.value!=null)
		AuxFHasta = FHasta.value; 
	else
		AuxFHasta = FHasta; 

	cadena = AuxFDesde + '-' + AuxFHasta; 

	cadenaEncontrada = cadena.match(patron); 
	if(cadenaEncontrada != null)
	{ 
		var dia1 = AuxFDesde.substring(0, 2); 
		var mes1 = AuxFDesde.substring(3, 5); 
		var anio1 = AuxFDesde.substring(6, 10); 
		var dia2 = AuxFHasta.substring(0, 2); 
		var mes2 = AuxFHasta.substring(3, 5); 
		var anio2 = AuxFHasta.substring(6, 10); 
		if (anio1>anio2)
			return false 
		if (anio1==anio2)
		{ 
			if (mes1>mes2)
				return false; 
			else
			{ 
				if (mes1==mes2)
				{ 
					if (dia1>dia2)
						return false; 
				} 
			} 
		} 
		return true; 
	} 
	return false; 
}               
        
function Validar() 
{ 
	if (!EsFecha(window.document.getElementById("entrada"))) 
	{ 
		window.alert('La fecha de entrada es incorrecta. -dd/mm/aaaa-'); 
		document.getElementById("entrada").value="";
		return false;
	}
	if (!EsFecha(window.document.getElementById("salida"))) 
	{ 
		window.alert('La fecha de salida es incorrecta. -dd/mm/aaaa-'); 
		document.getElementById("salida").value="";
		return false;
	}
	var fechaActual=diaformateado + "/" + mesformateado + "/" + anioformateado;     
                
	var diaActual = new Date ();
	var nosuperior;
	
	if (diaActual.getDay() > 0 && diaActual.getDay() < 5)
	{
		nosuperior = SuperaRangoFecha(fechaActual,1,window.document.getElementById("entrada").value)
		if (nosuperior) 
		{
			alert('La fecha de salida debe ser superior en 1 o mas días a la fecha actual.'); 
			return false;
		}
		else
			return true;
	}
	else
	{
		nosuperior = SuperaRangoFecha(fechaActual,1,window.document.getElementById("entrada").value)
		if (nosuperior) 
		{
			window.alert('La fecha de salida debe ser superior en 1 o mas días a la fecha actual.');
			return false;
		}
		else
			return true;
	}
}
        
function Buscar() 
{
	if (Validar()) 
	{ 
		FormatearFecha(document.getElementById("entrada"));                       
		FormatearFecha(document.getElementById("salida"));
		calculaNochesEstancia(document.BuscVueloHotel.entrada,document.BuscVueloHotel.salida,document.BuscVueloHotel.maxnoches);
		return (1);
	}
	else
	{
		return (0);
	}
}


function fechaIdaChange(ida,vuelta)
{	
	FormatearFecha(ida);

	var sumadia = fecha_cal (ida.value);

	var fecha_vuelta = vuelta.value;

	if (fecha_vuelta == "dd/mm/aaaa")
		fecha_vuelta ="";
	
	if (fecha_vuelta != "")
	{

		fecha_vuelta= fecha_cal (vuelta.value); 
	}
		
	if (sumadia>=fecha_vuelta)
	{
		borrainput (document.BuscVueloHotel.salida);
		sumadia.setDate(sumadia.getDate() + 1);	
		vuelta.value=fecha_text(sumadia);
		FormatearFecha(vuelta);
	}

	document.BuscVueloHotel.salida.value=vuelta.value;
	calculaNochesEstancia(document.BuscVueloHotel.entrada,document.BuscVueloHotel.salida,document.BuscVueloHotel.maxnoches);
}

function fechaVueltaChange(ida,vuelta)
{

	FormatearFecha(vuelta);

	var restadia = fecha_cal (vuelta.value);

	var fecha_ida = ida.value;

	if (fecha_ida == "dd/mm/aaaa")
		fecha_ida ="";
	
	if(fecha_ida != "")
	{

		fecha_ida = fecha_cal (ida.value); 
	}
	
	
	if (restadia <= fecha_ida || fecha_ida== "")
	{
		borrainput (document.BuscVueloHotel.entrada);
		restadia.setDate(restadia.getDate() - 1);	
		ida.value=fecha_text(restadia);
		FormatearFecha(ida);
	}

	document.BuscVueloHotel.entrada.value=ida.value;
	calculaNochesEstancia(document.BuscVueloHotel.entrada,document.BuscVueloHotel.salida,document.BuscVueloHotel.maxnoches);
}


function actualizaValor(tipo,valor,desc)
{
	if(tipo=="O")
	{
		document.getElementById('hidCodOrigen').value=valor;
		document.getElementById('origen').value=desc;
	}
	else
	{
		document.getElementById('hidCodDestino').value=valor;
		document.getElementById('destino').value=desc;
	}
}

function actualiza_fechas_comodin(comodin_ida,comodin_vuelta,fecha_ida,fecha_vuelta)
{
	comodin_ida.value=fecha_ida.value;
	comodin_vuelta.value=fecha_vuelta.value;
}


function prepara_calendario_ida ()
{
	if(document.BuscVueloHotel.entrada.value=="dd/mm/aaaa")
	{
		borrainput(document.BuscVueloHotel.entrada);		
	}
	else
	{
		actualiza_fechas_comodin(document.BuscVueloHotel.fecha_comodin_entrada,document.BuscVueloHotel.fecha_comodin_salida,document.BuscVueloHotel.entrada,document.BuscVueloHotel.salida);
		borrainput(document.BuscVueloHotel.entrada);
	}

	calendario('document.BuscVueloHotel.entrada',document.BuscVueloHotel.fecha_comodin_entrada.value,document.BuscVueloHotel.fechaMenorLlegada.value,document.BuscVueloHotel.fechaMayorLlegada.value,0,'');
}


function prepara_calendario_vuelta ()
{
	if(document.BuscVueloHotel.salida.value=="dd/mm/aaaa")
	{
		borrainput(document.BuscVueloHotel.salida);		
	}
	else
	{
		actualiza_fechas_comodin(document.BuscVueloHotel.fecha_comodin_entrada,document.BuscVueloHotel.fecha_comodin_salida,document.BuscVueloHotel.entrada,document.BuscVueloHotel.salida);
		borrainput(document.BuscVueloHotel.salida);
	}
	calendario('document.BuscVueloHotel.salida',document.BuscVueloHotel.fecha_comodin_salida.value,document.BuscVueloHotel.fechaMenorSalida.value,document.BuscVueloHotel.fechaMayorSalida.value,0,'');

}
