function abrirVentana(src, pagina, caracteristicas) {

    v=window.open(src, pagina, caracteristicas);
    //v=window.open(src, pagina);
    v.focus();
}

// s es vacio
function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}

// c es un digito
function isDigit (c)
{   return ((c >= "0") && (c <= "9"))
}

// s es un numero entero (con o sin signo)
function isInteger (s)
{   var i;
    if (isEmpty(s))
       if (isInteger.arguments.length == 1) return false;
       else return (isInteger.arguments[1] == true);

    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);
        if( i != 0 ) {
            if (!isDigit(c)) return false;
        } else {
            if (!isDigit(c) && (c != "-") || (c == "+")) return false;
        }
    }
    return true;
}


function mesformatotxt (mes)
 {
	 var texto;
	 switch (mes)
	 {
		 case "01": texto = "Jan";
		           break;
		 case "02": texto = "Feb";
		           break;
		 case "03": texto = "Mar";
		           break;
		 case "04": texto = "Apr";
		           break;
		 case "05": texto = "May";
		           break;
		 case "06": texto = "Jun";
		           break;
		 case "07": texto = "Jul";
		           break;
		 case "08": texto = "Aug";
		           break;
		 case "09": texto = "Sep";
		           break;
		 case "10": texto = "Oct";
		           break;
		 case "11": texto = "Nov";
		           break;
		 case "12": texto = "Dec";
		           break;
	 }
	 return texto;
 }
 function contador (fecha1, fecha2, separador)
 {
 		arrayfecha1 = fecha1.split(separador);
 		arrayfecha2 = fecha2.split(separador);
   mesinicio = mesformatotxt (arrayfecha1[1]);
   var fecha = mesinicio + " " + arrayfecha1[0] + ", " + arrayfecha1[2];

   mesfinal = mesformatotxt (arrayfecha2[1]);
   var fechafutura=mesfinal+" "+arrayfecha2[0] + ", " + arrayfecha2[2];

//alert(fecha+" - "+fechafutura+" - "+Date.parse(fechafutura)+" - "+Date.parse(fecha));
   var diferencia=(Math.round((Date.parse(fechafutura)-Date.parse(fecha))/(24*60*60*1000))*1);
   return diferencia;
 }


//    Dada la fecha inicial y el numero de noches, calcula la fecha final
//	(entrada) fecha1      : fecha inicial dia/mes/año
//	(entrada) numnoches   : numero de noches solicitadas
//	(salida)  fecha final dia/mes/año

  function calcula_fechafinal(fecha1, numnoches)
  {
		if (fecha1 != "") {
			var fechainicial = fecha1;

			fechainicial = fechainicial.split("/");
			var diainicial=fechainicial[0];
			var mesinicial=fechainicial[1] - 1;
			var anioinicial=fechainicial[2];

			var milisegundos =parseInt(numnoches*24*60*60*1000);

			var nuevafecha=new Date(anioinicial, mesinicial, diainicial,8);
	  	var nuevotiempo=parseInt(nuevafecha.getTime()+milisegundos);
			cadena=nuevafecha;
			nuevafecha.setTime(nuevotiempo);
      var nuevodia = nuevafecha.getDate();
	  	if (nuevodia < 10) { nuevodia = "0"+nuevodia;}
	  	var nuevomes = nuevafecha.getMonth() + 1;
	  	if (nuevomes < 10) { nuevomes = "0"+nuevomes;}

	  	var resultado =  nuevodia + "/" + nuevomes + "/" + nuevafecha.getFullYear();
	  	return resultado;
		}
	else
	  return "";
  }

    // Comprobar que el usuario ha rellenado los campos necesarios para poder continuar con la reserva
    // src (entrada) : dirección para abrir en una nueva ventana
	// fecha1 (entrada) : fecha inicial del rango
	// fecha2 (entrada) : fecha salida del rango
	// numnoches (entrada) : numero de noches del rango
	// (salida) Si los campos no están vacios se abrirá una nueva ventana

    function validarfechas(src, fecha1, fecha2, numnoches, email, clave, ciudad, idioma, actualiza, reservaId, hora1, hora2)
    {
      <!-- Comprobar que el usuario ha indicado la fecha de entrada de su estancia-->
	  if (fecha1 == "")
	  {
	    alert (textos[0]);
			return false;
	  }
	  <!-- Comprobar que el usuario ha indicado la fecha de salida de su estancia-->
	  if (fecha2 == "")
	  {
	    alert (textos[1]);
			return false;
	  }
//	  if (fecha1 == fecha2)
//	  {
//	    alert (textos[2]);
//			return false;
//	  }
	  if (numnoches == "")
	  {
	    alert (textos[3]);
			return false;
	  }
		if (parseInt(numnoches) < 0) {
	    alert (textos[4]);
			return false;
		}
	  if (ciudad == "")
	  {
	    alert (textos[5]);
			return false;
	  }
			if (numnoches==0)
				numnoches=1;
      var pasarvariables="fecha1="+fecha1+"&fecha2="+fecha2+"&numnoches="+numnoches+"&email="+email+"&clave="+clave+"&ciudad="+ciudad+"&idioma="+idioma+"&actualiza="+actualiza+"&reservaId="+reservaId;
      if ((hora1 != "") && (hora2 != ""))
      	pasarvariables += "&hora1="+hora1+"&hora2="+hora2;

      //alert(pasarvariables);
      //var c=window.open(src+"?"+pasarvariables,'','scrollbars=yes,width=700,height=600,top=0,left=0,toolbar=no,directories=no,menubar=no');
      var c=window.open(src,'','scrollbars=yes,width=700,height=600,top=0,left=0,toolbar=no,directories=no,menubar=no');
      c.focus();
    }

    // (entrada) idhabitacion: identificador de la habitacion a buscar
	// (entrada) array: array que contiene identificadores de habitaciones
	// salida:
	// Si idhabitacion se encuentra en array devuelve -1 para indicar que ya existe
	// si idhabitacion no se encuentra en array devuelve el identificador de la habitacion que se buscó
    function seleccionado (idhabitacion, array)
	{
      var tam = array.length;
	  var solucion = idhabitacion
	  var encontrado = 0; //si se encuentra idhabitacion en el array no lo seleccionaremos y devolveremos -1
      for (contmp=0; contmp<tam; contmp++)
	  {
	    if ((array[contmp] == idhabitacion) && (encontrado == 0))
		{
		  encontrado = 1;
		  solucion = -1;
		}
	  }
	  return solucion;
	}

//actualizadatos('1', arrayhab, 2, 'document.formdisponible.precio1.value', document.formdisponible)
	function actualizadatos(variable, matriz, numhab, formprecio, formulario)
	{
		var cadena="";
		variable = variable - 1; <!-- resto uno porque los vectores empiezan en la posicion cero -->
		var habseleccionadas = new Array();
		var totalhab=0; //contador para saber cuantas habitaciones ha elegido el usuario en total
		var datos = new Array();
		for (i=0; i<numhab; i++)
		{
			cadena += "- "+i+"/"+numhab+": ";
			var aux =0; //cuenta el numero de habitaciones metidas por tido de habitacion
			var datoseleccionado =formulario.elements["tipohab"+(i+1)].selectedIndex; //numero de habitaciones seleccionadas por el usuario
			datos[i] = datoseleccionado;
			cadena += datoseleccionado+" habitaciones seleccionadas.\n";
			//cogemos las habitaciones disponibles para ese tipo de habitación
			var idhabitaciones = matriz[i+1];
			var ignorar = 0; //número de habitaciones ignoradas porque ya estaban elegidas
			var numerohabtipo = idhabitaciones.length - 1;  //quitamos uno porque en la posicion tenemos el precio de una habitacion

			//almacenar en habseleccionadas las habitaciones elegidas por el usuario
			for (j=1; ((j<=numerohabtipo) && (aux <datoseleccionado)); j++)  //ignoramos el precio
			{
				cadena+="		* "+j+"/"+numerohabtipo+" habitaciones ("+aux+"/"+datoseleccionado+" seleccionadas): ";
				//comprobar si la habitacion ya está elegida
				var tmp = seleccionado (idhabitaciones[j], habseleccionadas);
				cadena+=idhabitaciones[j]+" --> "+tmp+"\n";
				if (tmp != -1)
				{
					habseleccionadas [totalhab] = tmp;
					totalhab++;
					aux++;
				}
			}
			//actualizar en la web las habitaciones que hay disponibles ahora
		}
		var preciofinal = 0;  //precio final de la reserva
		for (i=0; i<numhab; i++)
		{
			var idhabitaciones = matriz[i+1];
			var numerohabtipo = idhabitaciones.length - 1;  //quitamos uno porque en la posicion tenemos el precio de una habitacion
			//borramos los datos que teniamos
			var posicion = 2 * i; // en el docuemnto la primera posicion es cero, luego 2, luego 4 , de los select de las fechas
			for (j=0; j<=numerohabtipo; j++)
				formulario.elements["tipohab"+(i+1)].options[j]=null;
			formulario.elements["tipohab"+(i+1)].length=0;
			//actualizamos ignorando aquellas habitaciones que ya se han elegido
			var tope = 0;
			for (j=1; j<=numerohabtipo; j++)
			{
				var tmp = seleccionado (idhabitaciones[j], habseleccionadas);
				if (tmp != -1)
				tope++;
			}
			tope =datos[i]+tope;  //contar las habitaciones que ya se tenian seleccionadas + las disponibles
			formulario.elements["tipohab"+(i+1)].length=tope+1;
			for (j=0; j<=tope; j++)
			{
				formulario.elements["tipohab"+(i+1)].options[j].value=j;
				formulario.elements["tipohab"+(i+1)].options[j].text=j;
			}
			formulario.elements["tipohab"+(i+1)].options[datos[i]].selected=true;
			var preciototal = idhabitaciones[0] * datos[i];
			preciofinal = preciofinal + preciototal;
			formulario.elements["precio"+(i+1)].value=preciototal;
		}
		formulario.preciofinal.value = preciofinal;
		alert(cadena);
		mostrarcombos(numhab, formulario);
	}

	function buscarvalorarray(array, valor, inicio) {

		var i;
		for (i=inicio; i<array.length; i++) {
			if (array[i] == valor)
				return true;
		}
		return false;
	}

	function actualizacombos(formulario, arrayhab, tipomodificado, numtipos, valorseleccioncombos) {

		var i, j, k;
		//alert(formulario);
		var combomodificado=formulario.elements["tipohab"+tipomodificado];
		var arraytipomodificado = combomodificado.options[combomodificado.selectedIndex].value.split(",");
		var arrayseleccioncombos = new Array();

		valorseleccioncombos[tipomodificado]=combomodificado.options[combomodificado.selectedIndex].value;

		for (i = 1; i<=numtipos; i++) {
			if (i!=tipomodificado) {
				valorseleccioncombos[i]="";
				cont=1;
				for (j=1; ((cont <= formulario.elements["tipohab"+i].selectedIndex) && (j < arrayhab[i].length)); j++) {
					encontrado=false;
					for (k=1; (!encontrado) && (k <= numtipos); k++) {
						if (k != i) {
							if (buscarvalorarray(valorseleccioncombos[k].split(","), arrayhab[i][j], 0)) {
								encontrado = true;
							}
						}
					}
					if (!encontrado) {
						if (valorseleccioncombos[i] != "")
							valorseleccioncombos[i]+=",";
						valorseleccioncombos[i]+=arrayhab[i][j];
						cont++;
					}
				}
			}
		}
		preciofinal=0;
		for (i = 1; i<=numtipos; i++) {
			combo=formulario.elements["tipohab"+i];
			seleccion=combo.selectedIndex;
			contador=1;
			cjtohab="";
			for (j=1; j<arrayhab[i].length; j++) {
				encontrado=false;
				for (k=1; (!encontrado)&&(k<=numtipos); k++) {
					if (k != i) {
						arraycadena=valorseleccioncombos[k].split(",");
						if (buscarvalorarray(arraycadena, arrayhab[i][j], 0))
							encontrado=true;
					}
				}
				if (!encontrado) {
					if (contador > 1)
						cjtohab+=",";
					cjtohab+=arrayhab[i][j];
					combo.options[contador] = new Option(contador,cjtohab);
					contador++;
				}
			}
			combo.options.length=contador;
			combo.selectedIndex=seleccion;
			var preciototal = (seleccion) * arrayhab[i][0];
			preciofinal = preciofinal + preciototal;
			formulario.elements["precio"+i].value=preciototal;
		}
		formulario.preciofinal.value = preciofinal;
		//mostrarcombos(numtipos, formulario);
	}

	function mostrarcombos(numhab, formulario)
	{
		var cadena="";
	 for (i = 1; i<=numhab; i++)
	 {
		 cadena+="Combo "+i+" --> ";
		 for (j=0; j<formulario.elements["tipohab"+i].options.length; j++) {
			 cadena+=formulario.elements["tipohab"+i].options[j].text+" ("+formulario.elements["tipohab"+i].options[j].value+") | ";
		 }
		 cadena+="\n";
	 }
	 alert(cadena);
	}

  function cambiarpreciofinal (totalhab, numextras, formulario)
  {
	 var posicion ;
	 var precio ; //precio de cada habitacion
	 var final= 0; //precio total de todas las habitaciones
	 for (i = 1; i<=totalhab; i++)
	 {
	   posicion =  (i * (numextras+1)) -1;
       precio = eval (formulario.elements[posicion].value);
	   final = final + precio;
	 }
	 formulario.finalprecio.value = final;
  }

// activar todas las extras (numextras) disponibles de todas las habitaciones
  function activartodos(numextra, totalextras, totalhabitaciones, precioextra, formulario)
  {
	 var actual;
	 var estado;
	 var posicion; //posicion del precio correspondiente para actualizarlo
	 var precio; //precio de la habitacion actual
	 if (formulario.elements[numextra].checked==true)
	   estado = true;
	 else
	   estado = false;
	 for (i=0; i< totalhabitaciones; i++)
 	 {
	   actual = (i * (totalextras+1)) + totalextras + 1 + numextra;  //posicion que queremos modificar
	   if ((formulario.elements[actual].disabled==false) && (actual > numextra))
	   {
		  //actualizar el precio
		  posicion = actual - numextra -1;
		  precio = eval (formulario.elements[posicion].value);
		  //alert (estado+" =? "+formulario.elements[actual].checked);
		  if ((estado == true) &&  (formulario.elements[actual].checked == false))//sumar el precio de la extra
			formulario.elements[posicion].value = precio + precioextra;
		  else //restar el precio de la extra
		    if ((estado == false) && (formulario.elements[actual].checked == true))
			  formulario.elements[posicion].value = precio - precioextra;
		  formulario.elements[actual].checked = estado;
	   }
	 }
	 cambiarpreciofinal (totalhabitaciones, totalextras, formulario);
  }



  // extra (entrada): extra que se quiere aumentar o decrementar
  // habitacion (entrada): habitacion a la que se le quiere cambiar el precio
  // numextras (entrada): numero total de extras
  // solucion:
  // aumentará o restará el precio dependiendo de si activó la casilla o la desactivó de fomra manual
  function cambiarprecio (extra, habitacion, numextras, precioextra, totalhab, formulario)
  {
	 var posicion =  (habitacion * (numextras+1)) + extra - 1;
	 var posicionprecio =  posicion - extra;
     precio = eval (formulario.elements[posicionprecio].value);
     if (formulario.elements[posicion].checked==false)  //restar
	 {
 	   formulario.elements[posicionprecio].value = precio - precioextra;
	 }
	 else  //sumar
	 {
 	   formulario.elements[posicionprecio].value = precio + precioextra;
	 }
	 cambiarpreciofinal(totalhab, numextras, formulario);
  }


function validarusuario(idioma, formulario)
{
	  if (formulario.nombre.value == "")
      {
		    alert (textos[6]);
        formulario.nombre.focus();
        return (1);
      }

      if (formulario.apellidos.value == "")
      {
		    alert (textos[7]);
        formulario.apellidos.focus();
        return (1);
      }

      if (formulario.dni.value == "")
      {
		    alert (textos[8]);
        formulario.dni.focus();
        return (1);
      }
      if (formulario.email.value == "")
      {
		    alert (textos[9]);
        formulario.email.focus();
        return (1);
      }
      if (formulario.password.value == "")
      {
		    alert (textos[10]);
        formulario.password.focus();
        return (1);
      }
      return validarparams(formulario);
      /*if (document.forms.numero.value == "")
      {
        alert("Debe especificar su numero de tarjeta o transferencia");
        document.forms.numero.focus();
        return (1);
      }*/
}

function validarUsuarioReservaSinRegistro(idioma, pagoPorTarjeta, formulario)
{
	if (formulario.nombre.value == "")
	{
		alert (textos[6]);
		formulario.nombre.focus();
		return (1);
	}

	if (formulario.apellidos.value == "")
	{
		alert (textos[7]);
		formulario.apellidos.focus();
		return (1);
	}

	if (formulario.dni.value == "")
	{
		alert (textos[8]);
		formulario.dni.focus();
		return (1);
	}

	if (formulario.email.value == "")
	{
		alert (textos[9]);
		formulario.email.focus();
		return (1);
	}

	/*if (document.forms.password.value == "")
	{
		alert("Debe especificar su clave si quiere registrarse");
		document.forms.password.focus();
		return (1);
	}*/

	if (pagoPorTarjeta == 1) {
		if (formulario.tipopago[formulario.tipopago.selectedIndex].value != 15) {
			if (formulario.numero.value == "")
			{
				alert (textos[11]);
				formulario.numero.focus();
				return (1);
			}
		}
	}
	return validarparams(formulario);
}

function validarnuevousuario(numparam, idioma, accion, formulario)
{
	resultado = validarusuario(idioma, formulario);
	if (resultado == 1)  // si hay error
		return (false);
/**************************************************
	var tmp="";
	tmp = tmp+"nombre="+formulario.nombre.value;
	tmp = tmp+"&apellidos="+formulario.apellidos.value;
	tmp = tmp+"&dni="+formulario.dni.value;
	tmp = tmp+"&email="+formulario.email.value;
	tmp = tmp+"&password="+formulario.password.value;
	tmp = tmp+"&idioma="+formulario.idioma.value;
	if (formulario.tipopago != null)
		tmp = tmp+"&tipopago="+formulario.tipopago.value;
	if (formulario.mes != null)
		tmp = tmp+"&mes="+formulario.mes.value;
	if (formulario.anio != null)
		tmp = tmp+"&anio="+formulario.anio.value;
	if (formulario.numero != null)
		tmp = tmp+"&numero="+formulario.numero.value;
	if (formulario.acomp != null)
		tmp = tmp+"&acomp="+formulario.acomp.value;
	var valor;
	for (i=1; i<= numparam; i++)
	{
	valor = eval("formulario.param"+i+".value");
		tmp = tmp+"&param"+i+"="+valor;
	}

	tmp = tmp+"&accion="+accion;
	direccion = "cambiosusuario.php?"+tmp;
**************************************************/
	direccion = "validar.php?redir=cambiosusuario&frm=formverreserva&accion="+accion+"&idioma="+idioma;
		var c=window.open(direccion,'','scrollbars=yes,width=600,height=400,top=0,left=0,toolbar=no,directories=no,menubar=no');
		c.focus();

		return(true);
}

function aceptar_reservas(idioma, pagoPorTarjeta, formulario, numrespuestas)
{
	if (formulario.leido.checked == false)
	{
		alert (textos[12]);
		return (false);
	}
	resultado = validarUsuarioReservaSinRegistro(idioma, pagoPorTarjeta, formulario);
	if (resultado == 1)  // si hay error
		return (false);

	if (formulario.nTitulares.value > 1) {
		if (!preparaTitulares(formulario.nTitulares.value, formulario))
			return false;
	}
	var hayeleccion = false;
	if (numrespuestas > 0) {
		for (i=0; i<numrespuestas; i++)
		{
			//alert(formulario.opcionpregunta[i].checked);
			if (formulario.opcionpregunta[i].checked)
				hayeleccion = true;
		}
		if (!hayeleccion)
		{
			alert(textos[27]);
			return false;
		}
	}

	formulario.submit(textos[12]);
}

	// recoge el login = mail y el password en la ventana2 desde la ventana1(ventana1 abrió la ventana2)
	function cargar(formulario)
	{
		formulario.email.value =window.parent.opener.forms2.elements["email"].value;
		formulario.clave.value =window.parent.opener.forms2.elements["clave"].value;
	}

	// recoge el login = mail y el password en la ventana2 desde la ventana1(ventana1 abrió la ventana2)
	// y hace un submit para continuar
	function cargarycontinuar(formulario)
	{
		formulario.email.value =window.parent.opener.forms2.elements["email"].value;
		formulario.clave.value =window.parent.opener.forms2.elements["password"].value;
		formulario.submit();
	}


	function comprobarelegirhab(numerohabitaciones, idioma, formulario)
	{
	  for (i=1; i< numerohabitaciones; i++)
	  {
	    valor = eval("formulario.tipohab"+i+".value");
			if (valor != 0)
			{
				formulario.submit();
				return true;
			}
	  }
	    alert (textos[13]);
      return false;
	}

	function seleccionaIdioma(obj) {
		//document.forms.valIdioma.value = obj.value;
		//alert("linea_entrada.php?idioma=" + obj.value);
		window.location="linea_entrada.php?idioma=" + obj.value;
	}

	function cambiaEstado(obj, formulario) {
		for (i = 0; i < formulario.length; i++) {
			//alert(document.forms.elements[i].name);
			if (("reserva" + obj) == formulario.elements[i].name) {
				estado = formulario.elements["btnEliminar" + obj].disabled;
				formulario.elements["btnEliminar" + obj].disabled = !estado;
				if (formulario.elements["btnCambiar" + obj] != null) {
					formulario.elements["btnCambiar" + obj].disabled = !estado;
				}
				return;
			}
		}
	}

	function anularReserva(obj, fecha1, fecha2, numnoches, habdisponibles, tiposdisponibles, preciofinal, email, clave, ciudad, idioma) {
		//alert("anulando: " + obj);
		src = "anular_reserva.php";
		parametros = "?reservaId=" + obj;
		parametros += "&fecha1=" + fecha1;
		parametros += "&fecha2=" + fecha2;
		parametros += "&numnoches=" + numnoches;
		parametros += "&habdisponibles=" + habdisponibles;
		parametros += "&tiposdisponibles=" + tiposdisponibles;
		parametros += "&preciofinal=" + preciofinal;
		parametros += "&email=" + email;
		parametros += "&clave=" + clave;
		parametros += "&ciudad=" + ciudad;
		parametros += "&idioma=" + idioma;
		//alert(src + parametros);
		window.location = src + parametros;

	}

	function modificarReserva(obj, email, clave, ciudad, idioma) {

		var direc = "modificarReserva.php?reservaId=" +  obj + "&email=" + email + "&clave=" + clave + "&ciudad=" + ciudad + "&idioma=" + idioma;
		//alert("direc: " + direc);
		var c=window.open(direc,'ventanaModificaReserva','scrollbars=yes,width=700,height=250,top=0,left=0,toolbar=no,directories=no,menubar=no');
		c.focus();
	}

	function modificarReser(reservaId, fecha1, fecha2, hora1, hora2, apartamentoId, email, clienteId, idioma) {
		var direc = "modificarReser.php?reservaId=" +  reservaId + "&fecha1=" + fecha1 + "&fecha2=" + fecha2;
		direc += "&hora1=" + hora1 + "&hora2=" + hora2 + "&apartamentoId=" + apartamentoId;
		direc += "&email=" + email + "&clienteId=" + clienteId + "&idioma=" + idioma;
		//alert("direc: " + direc);
		var c=window.open(direc,'ventanaModificaReserva','scrollbars=yes,width=700,height=250,top=0,left=0,toolbar=no,directories=no,menubar=no');
		c.focus();
		window.close();
	}

  // para gestionar la modificación de reservas
	function alternar(capa){
		if (capa.style.display=="none"){
			capa.style.display="";
		}
		else {
			capa.style.display="none";
		}
	}

  function cierraVentanaPadre(actualiza) {
  	if (actualiza == 1) {
	 		window.opener.close();
	 	}
  }

	function preparaTitulares(nTitulares, formulario) {

		valNombres = "";
		valApellidos = "";
		valDnis = "";
		valEmails = "";
		indice = "";

		//alert("nTitulares: " + nTitulares);
		//alert("k: " + document.forms.elements["nombreTitular" + (nTitulares-1)].value);
		for (i = 1; i < nTitulares; i++) {
			if ((formulario.elements["nombreTitular" + i].value == "") || (formulario.elements["apellidosTitular" + i].value == "")
				|| (formulario.elements["dniTitular" + i].value == "")) {

				alert("Debe cumplimentar todos los campos obligatorios.");
				return false;
			}
			valNombres += formulario.elements["nombreTitular" + i].value + ",";
			valApellidos += formulario.elements["apellidosTitular" + i].value + ",";
			valDnis += formulario.elements["dniTitular" + i].value + ",";
			valEmails += formulario.elements["email"].value + ",";

		}
/*
		valNombres += document.forms.elements["nombreTitular" + nTitulares].value;
		valApellidos += document.forms.elements["apellidosTitular" + nTitulares].value;
		valDnis += document.forms.elements["dniTitular" + nTitulares].value;
		valEmails += document.forms.elements["emailTitular" + nTitulares].value;
		*/
		formulario.elements["nombresTitulares"].value = valNombres;
		formulario.elements["apellidosTitulares"].value = valApellidos;
		formulario.elements["dnisTitulares"].value = valDnis;
		formulario.elements["emailsTitulares"].value = valEmails;
		//alert(document.forms.elements["nombresTitulares"].value);
		//alert(document.forms.elements["apellidosTitulares"].value);
		//alert(document.forms.elements["dnisTitulares"].value);
		//alert(document.forms.elements["emailsTitulares"].value);
		return true;
	}

	function compruebaHoras(src, fecha1, fecha2, numnoches, email, clave, ciudad, idioma, actualiza, reservaId) {
		if ((document.forms2.hora1 == null) && (document.forms2.hora2 == null)) {
			validarfechas(src, fecha1, fecha2, numnoches, email, clave, ciudad, idioma, actualiza, reservaId, "", "");
		}
		else {
			var arrayfechaentrada=fecha1.split("/");
			var arrayfechasalida=fecha2.split("/");
			var fechaentrada = new Date(arrayfechaentrada[2], arrayfechaentrada[1], arrayfechaentrada[0], document.forms2.hora1.value);
			var fechasalida = new Date(arrayfechasalida[2], arrayfechasalida[1], arrayfechasalida[0], document.forms2.hora2.value);
			if (fechasalida.getTime() > fechaentrada.getTime())
				validarfechas(src, fecha1, fecha2, numnoches, email, clave, ciudad, idioma, actualiza, reservaId, document.forms2.hora1.value, document.forms2.hora2.value);
			else
				alert(textos[26]);
			//alert(fechasalida.getTime());
		}
	}

	function vervalorseleccioncombos(numtipos) {

		var cadena=""
		for (i = 1; i<=numtipos; i++) {
			cadena+=i+".- "+valorseleccioncombos[i]+"\n";
		}
		alert(cadena);
	}