// función para validación de email

function check_email(identificador_email) 
{
     if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(identificador_email)) 
     {
         return true;
     } 
     else 
     {
        return false;
     }
}

// función para la validación del nif

function check_nif(nif)
{
	/*
    dni=nif.substring(0,nif.length-1)
    let=nif.charAt(nif.length-1)
    if (!isNaN(let))
    {
      alert('Falta la letra');
      return false;
    }
    else
    {
      cadena="TRWAGMYFPDXBNJZSQVHLCKET"
      posicion = dni % 23
      letra = cadena.substring(posicion,posicion+1);
      if (letra!=let.toUpperCase())
      {
        alert("Nif no válido");
        return false;
      }
      else
      {
        return true;
      }
    }
    */
	return true;
}

// función para mostrar mensajes de error

function form_error(msg)
{  
    //document.getElementById('error_msg').innerHTML = msg;
		alert(msg);
}

function validar_registro_admin()
{
	var registry_form =  document.getElementById('registry_form');  
  var i=0;
	    var registry_form =  document.getElementById('registry_form');  
    var i=0;
    // comprobamos que todos los campos obligatorios han 
    // sido cumplimentados
    for (i=0;i<=registry_form.length;i++)
    {
            // si uno de los campos obligatorios está vacío se 
            // cancela el envío del formulario
            if(registry_form.elements[i].value == '')
            { 
                form_error('El campo \''+ registry_form.elements[i].name +'\' no puede estar vacío');
                registry_form.elements[i].focus();
                return false;
            }
            // comprobamos que la dirección de correo es válida     
            if(registry_form.elements[i].name == 'email')
            {
                if(!check_email(registry_form.elements[i].value))
                {
                    form_error('El email suministrado no es válido'); 
                    registry_form.elements[i].focus(); 
                    return false;
                }
            }
						if((registry_form.elements[i].name == 'pwd'))
						{
								// comprobamos que las contraseñas son iguales
						    if(registry_form.pwd.value != registry_form.pwd_2.value)
						    {
						        alert('contraseñas distintas');
						        registry_form.pwd.value = '';
						        registry_form.pwd_2.value = '';
						        registry_form.pwd.focus();
						        return false;
						    }	
						}  
 
    }
}


/* validación formulario registro */

// todos los campos son obligatorios menos 'movil'

function validar_registro()
{
    
    var registry_form =  document.getElementById('registry_form');  
    var i=0;
    // comprobamos que todos los campos obligatorios han 
    // sido cumplimentados
    for (i=0;i<=registry_form.length;i++)
    {
        if(registry_form.elements[i].name != 'movil')
        {
            // si uno de los campos obligatorios está vacío se 
            // cancela el envío del formulario
            if(registry_form.elements[i].value == '')
            { 
								var campo = registry_form.elements[i].name;
								if(campo == 'pwd')
								{
									campo = 'contraseña'	
								}
								else if(campo == 'pwd_2')
								{
									campo = 'repita contraseña'
								}
								if(campo == 'captcha_string')
								{
									form_error('Por favor, introduzca las letras que aparecen en la imagen');
								}
								else
								{
									form_error('El campo \''+ campo +'\' no puede estar vacío');	
								}
                
                registry_form.elements[i].focus();
                return false;
            }
            // comprobamos que la dirección de correo es válida     
            if(registry_form.elements[i].name == 'email')
            {
                if(!check_email(registry_form.elements[i].value))
                {
                    form_error('El email suministrado no es válido'); 
                    registry_form.elements[i].focus(); 
                    return false;
                }
            }
            // comprobamos si el nif es válido 
            if(registry_form.elements[i].name == 'nif')
            { 
                if(!check_nif(registry_form.elements[i].value))
                {
                    form_error('El NIF suministrado no es válido'); 
                    registry_form.elements[i].focus(); 
                    return false;
                }
            }
            // comprobamos que los teléfonos son numéricos
            if((registry_form.elements[i].name == 'telefono') && isNaN(registry_form.elements[i].value))
            {   
                    form_error('El número suministrado no es válido'); 
                    registry_form.elements[i].focus(); 
                    return false;             
            } 
            // comprobamos que el código postal numéricos
            if((registry_form.elements[i].name == 'cp') && isNaN(registry_form.elements[i].value))
            {   
                    form_error('El número suministrado no es válido'); 
                    registry_form.elements[i].focus(); 
                    return false;             
            }
						if((registry_form.elements[i].name == 'pwd'))
						{
								// comprobamos que las contraseñas son iguales
						    if(registry_form.pwd.value != registry_form.pwd_2.value)
						    {
						        alert('contraseñas distintas');
						        registry_form.pwd.value = '';
						        registry_form.pwd_2.value = '';
						        registry_form.pwd.focus();
						        return false;
						    }	
						}  
        }
        else
        {
            // comprobamos que el código postal numéricos
            if(registry_form.elements[i].value != '' && isNaN(registry_form.elements[i].value))
            {   
                    form_error('El móvil suministrado no es válido'); 
                    registry_form.elements[i].focus(); 
                    return false;             
            }      
        }
    }
    
}


/* validación formulario de publicación de alojamiento */

function check_nombre_alojamiento(nombre)
{
    if(nombre == '')
    {
        form_error('El nombre no puede estar vacío');
        return false;
    }
}

function check_calle_alojamiento(calle)
{  
    if(calle == '')
    {
        form_error('La calle no puede estar vacía');
        return false;
    }
}

function check_numero_alojamiento(numero)
{  
    if(numero == '')
    {
        form_error('El número no puede estar vacío');
        return false;
    }
		/*
    if(numero != '' && isNaN(numero))
    {
        form_error('El número debe ser un dato de tipo numérico');
        return false;
    }
    */
    if(numero > 9999)
    {
        form_error('El número debe tener como máximo 4 dígitos');
        return false;    
    }
}

function check_emplazamiento_alojamiento(localidad)
{  
    if(localidad == '')
    {
        form_error('Es necesario indicar la ciudad o localidad donde se encuentra el alojamiento');
        return false;
    }
}

function check_provincia_alojamiento(provincia)
{  
    if(provincia == '')
    {
        form_error('Hay que especificar una provincia');
        return false;
    }
}

function check_cp_alojamiento(cp)
{  
    if(cp == '')
    {
        form_error('Es necesario indicar el código postal');
        return false;
    }
    if(cp != '' && isNaN(cp))
    {
        form_error('El código postal debe ser un dato de tipo numérico');
        return false;
    }
}

function check_tipo_alojamiento_alojamiento(tipo_alojamiento)
{  
	if(tipo_alojamiento == '')
	{
		form_error('Hay que especificar la categoría del camping');
		return false;
	}

}

function check_tipo_alquiler_alojamiento(tipo_alquiler)
{  
    if(tipo_alquiler == '')
    { 
        form_error('Hay que especificar el tipo de alquiler');
        return false;
    }
}

function check_habitaciones(habitaciones)
{  
    if(habitaciones != '' && isNaN(habitaciones))
    {
        form_error('E número de habitaciones debe ser un dato numérico');
        return false;    
    }
}

function check_bannos(bannos)
{  
    if(bannos != '' && isNaN(bannos))
    {
        form_error('El número de ba&ntilde;os debe ser un dato numérico');
        return false;
    }
}

function check_camas_matrimonio(camas_matrimonio)
{  
    if(camas_matrimonio != '' && isNaN(camas_matrimonio))
    {
        form_error('El número de camas de matrimonio debe ser un dato numérico');
        return false;
    }
}

function check_camas_individuales(camas_individuales)
{  
    if(camas_individuales != '' && isNaN(camas_individuales))
    {
        form_error('El número de camas individuales debe ser un dato numérico');
        return false;
    }
}

function check_camas_supletorias(camas_supletorias)
{  
    if(camas_supletorias != '' && isNaN(camas_supletorias))
    {
        form_error('El número de camas supletorias debe ser un dato numérico');
        return false;
    }
}

function check_literas(literas)
{  
    if(literas != '' && isNaN(literas))
    {
        form_error('El número de literas debe ser un dato numérico');
        return false;
    }
}

function check_plazas_totales_alojamiento(plazas_totales)
{  
    if(plazas_totales == '')
    { 
        form_error('Hay que especificar las plazas totales');
        return false;
    }
    
    if(plazas_totales != '' && isNaN(plazas_totales))
    {
        form_error('El número de plazas totales debe ser un dato numérico');
        return false;
    }
}

function check_precio_medio_noche_alojamiento(precio_medio_noche)
{  
    if(precio_medio_noche == '')
    { 
        form_error('Hay que especificar el precio medio por noche');
        return false;
    }
}

function check_mascotas_alojamiento(mascotas)
{  
    var selected = false;
    for(var i=0; i < mascotas.length; i++)
    {   
       if(mascotas[i].checked)
            return true;
    }
		//alert('debe rellenar el campo "mascotas"');
    form_error('¿Se permiten mascotas?');     
    return false;
}

function validar_alojamiento()  
{
    var publicar_alojamiento_form = document.getElementById('publicar_alojamiento_form');
    // nombre
    if(check_nombre_alojamiento(publicar_alojamiento_form.nombre_alojamiento.value)==false)
    {
        publicar_alojamiento_form.nombre_alojamiento.focus();
        return false;
    }
    // calle
    if(check_calle_alojamiento(publicar_alojamiento_form.calle.value)==false)
    {
        publicar_alojamiento_form.calle.focus();
        return false;
    }
    // número
    if(check_numero_alojamiento(publicar_alojamiento_form.numero.value)==false)
    {
        publicar_alojamiento_form.numero.focus();
        return false;
    }
    // localidad y ciudad
    if(check_emplazamiento_alojamiento(publicar_alojamiento_form.localidad.value) == false)
    {
        publicar_alojamiento_form.localidad.focus();
        return false;
    }
    // provincia
    if(check_provincia_alojamiento(publicar_alojamiento_form.provincia.value)==false)
    {
        publicar_alojamiento_form.provincia.focus();
        return false;
    }
    // código postal
    if(check_cp_alojamiento(publicar_alojamiento_form.cp.value)==false)
    {
        publicar_alojamiento_form.cp.focus();
        return false;
    }

		if($("#contacto_clientes").attr('value') != '' && isNaN($("#contacto_clientes").attr('value')))
		{
			$("#contacto_clientes").focus();
			form_error('El teléfono de contacto es un campo numérico');
			return false;
		}
		
    // 
    if(check_tipo_alojamiento_alojamiento(publicar_alojamiento_form.tipo_alojamiento.value)==false)
    {
        publicar_alojamiento_form.tipo_alojamiento.focus();
        return false;
    } 

    // plazas totales
    if(check_plazas_totales_alojamiento(publicar_alojamiento_form.plazas_totales.value)==false)
    {
        publicar_alojamiento_form.plazas_totales.focus();
        return false;
    }  
    // precio medio noche
    if(check_precio_medio_noche_alojamiento(publicar_alojamiento_form.precio_medio_noche.value)==false)
    {
        publicar_alojamiento_form.precio_medio_noche.focus();
        return false;
    } 
    // mascotas
    if(check_mascotas_alojamiento(publicar_alojamiento_form.mascotas)==false)
    {
        publicar_alojamiento_form.mascotas[0].focus();
        return false;
    } 
		if($('#acepta_condiciones').attr("checked") == false)
		{
			alert('Debe leer y aceptar las condiciones de uso');
			$('#acepta_condiciones').focus();
			return false;			
		}  
}

function validar_login_form()
{
    if(document.getElementById('email').value == '')
    {
        document.getElementById('email').focus();
        form_error('Por favor, introduce tu email');
        return false;    
    }  
    if(document.getElementById('pwd').value == '')
    {
        document.getElementById('pwd').focus();
        form_error('Por favor, introduzca su contraseña');
        return false;    
    }  
}


function validar_nueva_foto_form(id_foto)
{
    var foto_form = document.getElementById('nueva_foto_form_'+id_foto);
    if(foto_form.foto.value == '')
    {
        error_msg_box ='error_msg'+'_'+id_foto;
        document.getElementById(error_msg_box).innerHTML = 'Debe elegir un fichero'; 
        return false;    
    }    
      
}

function validar_formulario_contacto()
{
	// nombre_apellidos
	// telefono
	// email
	if($('#nombre_apellidos').attr('value') == '')
	{
		form_error('Es necesario suministrar nombre y apellidos');
		return false;
	}
	
	if($('#telefono').attr('value') == '')
	{
		form_error('El teléfono es un campo obligatorio');
		return false;
	}
	
	if(isNaN($('#telefono').attr('value')))
	{
		form_error('El teléfono debe ser un número');
		return false;
	}
	
	if($('#email').attr('value') == '')
	{
		form_error('Debe rellenar el email');
		return false;
	}
	
	if(!check_email($('#email').attr('value')))
	{
		form_error('e-mail inválido');
		return false;
	}
	
	$('#total_noches').attr('value',resta_fechas($('#fecha_inicio').attr('value'), $('#fecha_fin').attr('value')));

}

function validar_cambio_password()
{
	if($("#pwd").attr('value') != '' && $("#new_pwd").attr('value') && $("#new_pwd_2").attr('value'))
	{
		
		if($("#new_pwd").attr('value') == $("#new_pwd_2").attr('value'))
		{
			return true;	
		}
		else
		{
			return false;
		}
		
	}
	else
	{
		return false;
	}
}

function validar_recuperar_password()
{
	if($("#email").attr('value') && check_email($("#email").attr('value')) )
	{
		return true;
	}
	else
	{
		return false;
	}
}

function set_forma_pago(forma)
{
	if(forma == 'a')
	{
		$("#titular_cuenta").attr('value','');
		$("#entidad").attr('value','');
		$("#oficina").attr('value','');
		$("#dc").attr('value','');
		$("#numero_cuenta").attr('value','');
		$("#cc_cliente").attr('value','');
		$("#bloque_cc").fadeOut("slow");
	}
	else if(forma == 'b')
	{
		$("#bloque_cc").fadeIn("slow");		
	}
}

/*
 * function check_mascotas_alojamiento(mascotas)
{  
    var selected = false;
    for(var i=0; i < mascotas.length; i++)
    {   
       if(mascotas[i].checked)
            return true;
    }
		alert('debe rellenar el campo "mascotas"');
    form_error('¿Se permiten mascotas?');     
    return false;
}
 */

function validar_pago_form()
{
	/*
	if($("input[@name='forma_pago']:checked").val() == '')
	{
		form_error("Debe elegir una forma de pago");
		return false;	
	}
	*/
	var selected = false;
	pago = document.pago_form.forma_pago;
	for(var i=0; i < pago.length; i++)
  {   
     if(pago[i].checked)
          selected = true;
  }
	if(!selected)
	{
		alert('No ha seleccionado aun una forma de pago');
		return false;
	}
	
	if($("input[@name='forma_pago']:checked").val() == 'b')
	{
		if($("#titular_cuenta") == '')
		{
			form_error("Debe introducir el nombre del titular");
			return false;	
		}
		// comprobamos que el número de cuenta está bien
		if( ($("#entidad").attr('value') != '' && $("#oficina").attr('value') != '' && $("#dc").attr('value') != '' && $("#numero_cuenta").attr('value') != '' ) &&
				( !isNaN($("#entidad").attr('value')) && !isNaN($("#oficina").attr('value')) && !isNaN($("#dc").attr('value')) && !isNaN($("#numero_cuenta").attr('value')) ))
		{
			// concatenamos
			$("#cc_cliente").attr('value', $("#entidad").attr('value') + '' + $("#oficina").attr('value') + '' +$("#dc").attr('value') + '' +$("#numero_cuenta").attr('value'));		
		}
		else
		{
			form_error("La cuenta introducida no es correcta");
			return false;
		}
		if($("#razon_social").attr('value') == '')
		{
			form_error('razón social inválido');	
			return false;
		}
		if(!check_nif($("#nif_dni").attr('value')))
		{
			form_error('DNI/NIF inválido');	
			return false;
		}
		
		if($("#calle").attr('value') == '')
		{
			form_error('calle inválido');	
			return false;
		}
		if($("#numero").attr('value') == '')
		{
			form_error('Número inválido');	
			return false;
		}
		if($("#provincia").attr('value') == '')
		{
			form_error('provincia inv&álido');	
			return false;
		}
		if($("#cp").attr('value') == '')
		{
			form_error('cp inválido');	
			return false;
		}
		if($("#localidad").attr('value') == '')
		{
			form_error('localidad inválido');	
			return false;
		}
		

	}	
	
}

function validar_busqueda_por_referencia()
{
	if($("#id_alojamiento").attr("value") == '')
	{
		form_error('Debes introducir la referencia');
		return false;
	}
	else if(isNaN($("#id_alojamiento").attr("value")))
	{
		form_error('La referencia debe ser de tipo nuérico');
		return false;
	}
}


function validar_finalizar_fotos_form()
{
	modalidad = $('#finalizar_modalidad').attr("value");
	id_alojamiento = $('#finalizar_id_alojamiento').attr("value");
	nombre_alojamiento = $('#finalizar_nombre_alojamiento').attr("value");
	if(modalidad == 'C' || modalidad == 'c')
	{
		document.forms['finalizar_fotos_form'].action = "/pago.php?do=confirmacion_c&id_alojamiento="+id_alojamiento;
		document.forms['finalizar_fotos_form'].submit();
	}
	else
	{
		// ya hay redirección, pero está siendo doble...
		document.forms['finalizar_fotos_form'].action = "/pago.php?id_alojamiento="+id_alojamiento;
		document.forms['finalizar_fotos_form'].submit();
	}
}


function validar_info_publicidad()
{
	if($('#nombre').attr('value') == '')
	{
		form_error('Por favor, indique su nombre o la razón social de la empresa'); 
    $('#nombre').focus(); 
    return false;	
	}
	
	if(!check_email($('#email').attr('value')))
  {
    form_error('El email suministrado no es válido'); 
    $('#email').focus(); 
    return false;
  }
	
	if($('#telefono').attr('value') == '' || isNaN($('#telefono').attr('value')))
	{
		form_error('El teléfono suministrado no es válido'); 
    $('#telefono').focus(); 
    return false;
	}
	
	if($('#comentarios').attr('value') == '')
	{
		form_error('Por favor, escriba un mensaje de contacto'); 
    $('#comentarios').focus(); 
    return false;	
	}

}

