// JavaScript Document
/*
Fichero: 				Funciones.js
Autor:					Juan Landa
Modificado por:			Mariano Granados
Ultima modificación:	03/02/2007
Version:				1.2
Descripción:			Fichero encargado de mantener diversas funciones en cliente. Principalmente la carga en los elementos de combos.
*/


//FUNCION CON LA QUE COMPROBAMOS SI LA FECHA DE LLEGADA ES ANTERIOR A LA FECHA ACTUAL
function CambioOferta (ID)
{
	//alert ("ID = " + ID);
	document.form1.method="POST";
	document.form1.action="rescrshbprog.asp?Oferta=" + ID + "&cambiafecha=1";
	document.form1.submit();
}

function EliminarElementos(nombreCombo)
{
	var combo;
	combo = document.getElementById (nombreCombo);
	combo.options.length = 0;
}

//Función encargada de gestionar los programas y el regimen alimenticio seleccionado por cada adulto.
function fFamilia (d,ID){
	/*MARIANO aunque ya sé que es facil de ver
	//Tal vez exista una forma mejor de controlar que un adulto no pueda tener (el sólo) seleccionado el programa Especial Familia
	/*
		Ahora mismo se chequea si es el primer elemento para poner el siguiente elemento con el programa de Especial familia con su régimen correspondiente.
		En caso de no tener elemento por debajo pasamos a establecer dicho programa al elemento anterior.
	*/
	if (d=='Especial familia'){		
		var i;
		var comboboxRegimen;
		comboboxRegimen = document.getElementById ("regimen" + ID);
		
		EliminarElementos ("regimen" + ID);
		
		var newOptionRegimen = new Option('Alojamiento y desayuno (AD)','Alojamiento y desayuno (AD)');
		comboboxRegimen.options[comboboxRegimen.options.length] = newOptionRegimen;
		
		//***********************Determinamos si existe algún elemento por debajo*********************************
		if (parseInt(ID) < parseInt(document.form1.adultos.value)){
			//Establecemos como seleccionado el programa Especial familia
			var comboProgramas;
			var ID2;
			ID2 = parseInt(ID) + 1;
			comboProgramas = document.getElementById ("Programa" + ID2);
			comboProgramas.options[2].selected = true;

			//Establecemos como única opción de régimen alimenticio el Alojamiento y desayuno
			var comboboxRegimen2;
			comboboxRegimen2 = document.getElementById ("regimen" + ID2); 
			EliminarElementos ("regimen" + ID2);
			var newOptionRegimen2 = new Option('Alojamiento y desayuno (AD)','Alojamiento y desayuno (AD)');
			comboboxRegimen2.options[comboboxRegimen2.options.length] = newOptionRegimen2;
		}
		//******************************Determinamos si es el primer elemento**************************************
		if (parseInt(ID) > 1){
			//Establecemos como seleccionado el programa Especial familia
			var comboProgramas0;
			var ID0;
			ID0 = parseInt(ID) - 1;
			comboProgramas0 = document.getElementById ("Programa" + ID0);
			comboProgramas0.options[2].selected = true;
			//Establecemos como única opción de régimen alimenticio el Alojamiento y desayuno
			var comboboxRegimen0;
			comboboxRegimen0 = document.getElementById ("regimen" + ID0); 
			EliminarElementos ("regimen" + ID0);
			var newOptionRegimen0 = new Option('Alojamiento y desayuno (AD)','Alojamiento y desayuno (AD)');
			comboboxRegimen0.options[comboboxRegimen0.options.length] = newOptionRegimen0;
		}
	}
	else{
		var comboboxReg;
		comboboxReg = document.getElementById ("regimen"+ID);
		EliminarElementos ("regimen"+ID);
		var newOptionRegimen = new Option('Media pensión (MP)','Media pensión (MP)');
		comboboxReg.options[comboboxReg.options.length] = newOptionRegimen;
		var newOptionRegimen = new Option('Pensión completa (PC)','Pensión completa (PC)');
		comboboxReg.options[comboboxReg.options.length] = newOptionRegimen;
		
		//******************************Determinamos si es el primer elemento**************************************
		if (parseInt(ID) > 1){
			//Marcamos como seleccionada la primera opción del combo
			var comboProgramas0;
			var ID0;
			ID0 = parseInt(ID) - 1;
			comboProgramas0 = document.getElementById ("Programa" + ID0);
			comboProgramas0.options[0].selected = true;
			
			//Eliminamos y volvemos a crear los regimenes por defecto
			var comboboxReg0;
			comboboxReg0 = document.getElementById ("regimen"+ID0);
			EliminarElementos ("regimen"+ID0);
			var newOptionRegimen1 = new Option('Media pensión (MP)','Media pensión (MP)');
			comboboxReg0.options[comboboxReg0.options.length] = newOptionRegimen1;
			var newOptionRegimen1 = new Option('Pensión completa (PC)','Pensión completa (PC)');
			comboboxReg0.options[comboboxReg0.options.length] = newOptionRegimen1;
		}
		
		//***********************Determinamos si existe algún elemento por debajo*********************************
		if (parseInt(ID) < parseInt(document.form1.adultos.value)){
			//Marcamos como seleccionada la primera opción del combo
			var comboProgramas;
			var ID2;
			ID2 = parseInt(ID) + 1;
			comboProgramas = document.getElementById ("Programa" + ID2);
			comboProgramas.options[0].selected = true;
			
			//Eliminamos y volvemos a crear los regimenes por defecto
			var comboboxReg1;
			comboboxReg1 = document.getElementById ("regimen"+ID2);
			EliminarElementos ("regimen"+ID2);
			var newOptionRegimen1 = new Option('Media pensión (MP)','Media pensión (MP)');
			comboboxReg1.options[comboboxReg1.options.length] = newOptionRegimen1;
			var newOptionRegimen1 = new Option('Pensión completa (PC)','Pensión completa (PC)');
			comboboxReg1.options[comboboxReg1.options.length] = newOptionRegimen1;
		}
	}
}

function fHabitaciones (d)
{
  	//alert("ENTRA habitaciones");
	var CapaCalendario = document.getElementById("CapaCalendarioF")	;
  	//comboboxHabitacion = document.getElementById("habitacion");
										
	if (d.checked)
	{
		//ABADÍA
		
		document.form1.duracion.disabled = true;
		//CapaCalendarioF .style.visibility="hidden";
		CapaCalendario.style.visibility="visible";
		document.form1.fsalida.disabled=false;
	}
	else
	{
		//comboboxHabitacion.options[6] = new Option ('Doble - Matrimonio minusvalido');
		//comboboxHabitacion.options[13] = new Option('Familiar - 4 adultos','Familiar - 4 adultos');
		
											
		document.form1.duracion.disabled = false;
		CapaCalendario.style.visibility="hidden";
		document.form1.fsalida.disabled=true;
		//top.navigate ('reserva.asp');
	}
}
/*  **********************************************************************************************************************************************************************  */
/*  ************************************************   FUNCIONES DE CONTROL DE FORMULARIOS EN JAVASCRIPT   ***************************************************************  */
/*  **********************************************************************************************************************************************************************  */
//Funcion que solo permite introducir cantidades numericas (incluidos decimales) en un campo   -------------------------------------------------------------------------------
function MascaraNumeros(control){
	if (window.event.keyCode!=13)
		if (window.event.keyCode>47 && window.event.keyCode<58)
			window.event.returnValue=true;
		else
			if (window.event.keyCode==44)
				window.event.returnValue=true;
			else
				window.event.returnValue=false;
}
/*  **********************************************************************************************************************************************************************  */
//Funcion que solo permite introducir numeros en un campo   ------------------------------------------------------------------------------------------------------------------
function MascaraSoloNumeros(control){
	if (window.event.keyCode!=13)
		if (window.event.keyCode>47 && window.event.keyCode<58)
			window.event.returnValue=true;
		else
			window.event.returnValue=false;	
}
/*  **********************************************************************************************************************************************************************  */
//FUNCION QUE ELIMINA LOS ESPACIOS EN BLANCO DE UNA CADENA  -----------------------------------------------------------------------------------------------------------------
function fEliminaEspacios(cad){
	var baux, vres="";
	//Controlamos si la cadena es vacia
	if (cad.length != 0 || cad.value != null){
		//Recorremos la cadena
		for (var i=0; i < cad.length; i++){	
			(cad.charAt(i) == " ") ? baux = true : baux = false;
			if (i == 0){
				if (!baux){vres = cad.charAt(i);}
			}else{
				if (baux){
					if (cad.charAt(i-1) != " ")
						vres = vres + cad.charAt(i);
				}
				else
					vres = vres + cad.charAt(i);
			}
		}
	}
	return(vres);
}
/*  **********************************************************************************************************************************************************************  */
//Funcion que formatea a Fecha (dd//mm/yyyy) segun se teclee dentro de un campo    -------------------------------------------------------------------------------------------
function MascaraFecha(control){
	if (window.event.keyCode >= 45 && window.event.keyCode < 58){
		if (window.event.keyCode != 46){
			if (window.event.keyCode > 47 && window.event.keyCode < 58){	
					if (control.value.length == 2 || control.value.length == 5)
						control.value = control.value + "/";
			}
			if (window.event.keyCode == 47){								
					if (control.value.length != 2 && control.value.length != 5)
						window.event.returnValue = false;
			}
			if (window.event.keyCode == 45){							
				if (control.value.length == 2 || control.value.length == 5)
					control.value = control.value + "/";
				window.event.returnValue = false;
			}
		}
		else
			window.event.returnValue = false;
	}
	else
		window.event.returnValue = false;
}
/*  **********************************************************************************************************************************************************************  */
//Funcion que controla que una fecha sea correcta  ---------------------------------------------------------------------------------------------------------------------------
function EsFecha(cadena){
	var vfecha = new Array();
	var dias_meses = new Array(31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	vfecha = cadena.split("/");
	if (vfecha.length == 3)
	{
		if ((vfecha[2] < 1900 || vfecha[2]>2100)  || (isNaN(vfecha[2])==true))
			return 0;
		if ((vfecha[1] < 1 || vfecha[1] > 12)  || (isNaN(vfecha[1])==true))
			return 0;
		if ((vfecha[0] < 1 || vfecha[0] > dias_meses[parseInt(vfecha[1]-1)])  || (isNaN(vfecha[0])==true))
			return 0;
		return 1;
	}
	else
		return 0;
}
/*  **********************************************************************************************************************************************************************  */
//Funcion que unicamente permite teclear numeros y letra mayusculas en campos DNI  ----------- -------------------------------------------------------------------------------
function MascaraDNI(control){
	if (window.event.keyCode!=13){
		//Control de caracteres numericos (0-9)  -------------------
		if (window.event.keyCode>47 && window.event.keyCode<58){
				window.event.returnValue=true;
		}
		else
			//Control de letras mayusculas (A-Z) -------------------
			if (window.event.keyCode>64 && window.event.keyCode<91){
					window.event.returnValue=true;
			}
			else
				window.event.returnValue=false;
	}
}
/*  **********************************************************************************************************************************************************************  */
//Funcion que controla y limita el numero de caracteres tecleados dentro de un campo de tipo texto  --------------------------------------------------------------------------
function Cuenta(objeto,cantidad){
	if (objeto.length >= cantidad){
		window.event.returnValue=false;
	}
}
/*  **********************************************************************************************************************************************************************  */
