//	JavaScript Document

/*	Fichero de registro */
/* funcion para validar el formularion al enviarlo */
/*	desde esta funcion llamamos a las demas funciones de validacion del fomulario */
function validarFormulario(Form){
	if (  	   validarNombre() 
			&& validarApellido()
			&& validarEmail() 
		/*	&& ValidarFecha(Form) */
		/*	&& validarUsuario() */
		/*	&& validarClave() */
			&& validarPais()
			
			){
	return true;}// si todas son correctas nos devuelve true
	return false;// si todas no son correctas nos devuelve false
}
/* fin validar formulario */
/*abrir resultados */
/* con esta funcion comprobamos que la anterior nos ha devuelto true y abrimos la pagina de resultados
	se carga al enviar el formulario con la opcion de submit en la etiqueta <form submit(abrirResultados())> 
	en el caso de que haya devuelto false no se abre la pagina de resultados */
function abrirResultados(){

if(validarFormulario(true)){
open('resultados.htm',target='_parent');
}

}
/*fin abrir resultados */
/* validar nombre y apellidos */
// tiene una cadena de comparacion esta y la siguiente
function validarNombre(nom){
	
	var patron=/((^\D){1,}(\D){1,})$((\S){0,})(((^\D){1,}(\D){1,})$)?/;
	
		if(!document.Form.nombre.value.match(patron))
		{
			alert('El nombre no es correcto o contiene carácteres no validos');
			document.Form.nombre.focus();
			document.Form.nombre.select();
			return false;
		}
		
return true;
}
function validarApellido(ape){
	
	var patron=/((^\D){1,}(\D){1,})$((\S){0,})(((^\D){1,}(\D){1,})$)?/;
	
		if(!document.Form.apellidos.value.match(patron))
		{
			alert('Loa apellidos no son correctos o contienen carácteres no validos');
			document.Form.apellidos.focus();
			document.Form.apellidos.select();
			return false;
		}
		
return true;
}
/*fin abrir resultados */
/* validar nombre y apellidos */
// tiene una cadena de comparacion esta y la siguiente
function validarEmail(email){
	
	var patron=/(^[0-9a-zA-Z]+(?:[._][0-9a-zA-Z]+)*)@([0-9a-zA-Z]+(?:[._-][0-9a-zA-Z]+)*\.[0-9a-zA-Z]{2,3})$/
	if(!document.Form.email.value.match(patron))
		{
			alert('La dirección de correo no es correcta '+
				  'o contiene carácteres no validos');
			document.Form.email.focus();
			document.Form.email.select();
			return false;
		}
	
return true;	
}
/* fin validar email*/


/* Función para validar la fecha, si es que se
introduce alguna */
/*	con esta funcion vamos a comprobar la fecha si se introduce en caso contrario no se valida 
	tambien mira si el año es bisiesto y los meses de 30 o 31 días */
function ValidarFecha(Form) {
var Error = "La fecha introducida es inválida.\n"
+ "Revísela, por favor.";
var Dia, Mes, Anyo, Dia_Mes_Mal = false;
var MesElegido = document.Form.FNMes.selectedIndex;
Dia = document.Form.FNDia.value;
Mes = document.Form.FNMes.options[MesElegido].value;
Anyo = document.Form.FNAnyo.value;
if( Dia == "" && Mes == "" && Anyo == "" ) return true;
else {
Dia = parseInt(Dia);
Mes = parseInt(Mes);
Anyo = parseInt(Anyo);
if( !isNaN(Dia) && !isNaN(Mes) && !isNaN(Anyo)
&&
Dia >= 1 && Anyo >= 1900
) {
/* Los meses de Enero, Marzo, Mayo, Julio, Agosto,
Octubre y Diciembre tienen 31 días */
if(
( Mes == 1 || Mes == 3 || Mes == 5 || Mes == 7
|| Mes == 8 || Mes == 10 || Mes == 12
)
&& Dia > 31
) Dia_Mes_Mal = true;
/* Los meses de Mayo, Junio, Septiembre
y Noviembre tienen 30 días */
if(
(Mes == 4 || Mes == 6 || Mes == 9 || Mes == 11)
&& Dia > 30
) Dia_Mes_Mal = true;
/* Febrero tiene 28 ó 29 días, dependiendo de si es bisiesto
o no. Un año es bisiesto si es múltiplo de 4 pero no de
100 salvo que sea múltiplo de 400. Por ejemplo, 12 y 400
son bisiestos, pero 100 y 700 no. */
if( Mes == 2 &&
( Dia > 29 ||
( Dia == 29 &&
(
(Anyo % 400 != 0)
&& (
(Anyo % 4 != 0) || (Anyo % 100 == 0)
)
)
)
)
) Dia_Mes_Mal = true;
if(Dia_Mes_Mal) {

alert(Error);
return false;
}
else return true;
} /* Si la fecha está fuera del rango razonable... */
else {
alert(Error);
return false;
}
}
}
/* fin validacion fecha */
/* validacion cif o nif*/
function validarDocumento(){
		/*	esta funcion nos determina que documento va introducir el cliente 
		y en base a eso aplicaremos los siguientes patrones de cif, nif, o tarjeta de residencia. 
		lo comprobamos comparando los valores del array del elemento radio si estan seleccionados o no. */
if (document.Form.DOC[0].checked){
	
	validarNif();
	}
if(document.Form.DOC[1].checked){
	validarCif();
	}
if(document.Form.DOC[2].checked){
	validarTarjeta();}
}
	
function validarCif(){
	
	var patron=/^([a-bA-B]{1})\s?(\d{8})$/;
	/* para el cif pedimos que comiencen con una letra y termine con 8 números*/
		if(!document.Form.NIF.value.match(patron))
		{
			alert('El nº de CIF no es correcto,\n'
			+ 'introduzcalo otra vez');
			document.Form.NIF.focus();
			document.Form.NIF.select();
			return false;
		}
		
return true;
}
function validarNif(){
	
	var patron=/\d{8}\s?\D{1}$/;
	/* para el nif pedimos que ponga 8 números y que termine con una letra */
		if(!document.Form.NIF.value.match(patron))
		{
			alert('El nº de NIF no es correcto,\n'
			+ 'introduzcalo otra vez');
			document.Form.NIF.focus();
			document.Form.NIF.select();
			return false;
		}
		
return true;
}
function validarTarjeta(){
	var patron=/^([xX]{1})\s?\d{7}\s?(\D{1})$/
	/*	para validar la tarjeta de residencia exigimos que comience con x que lleve espacio o no
		que siga con 7 números otra vez que pongan espacio o no y que termine con una letra*/
		if(!document.Form.NIF.value.match(patron))
		{
			alert('El nº de residente no es correcto,\n'
			+ 'introduzcalo otra vez');
			document.Form.NIF.focus();
			document.Form.NIF.select();
			return false;
		}
		
return true;

}
/* fin validacion nif / cif */
/* validacion usuario */

function validarUsuario(){
	var patron=/\w{6,}/;
	// este patron nos solicita una usuario alfanumérico de almenos 6 digitos
	if(!document.Form.Usuario.value.match(patron))
		{
			alert('El nombre de usuarion tiene menos de 6 carácteres \n'
			+ 'o contiene carácteres no validos');
			document.Form.Usuario.focus();
			document.Form.Usuario.select();
			return false;
		}
return true;	
}
/* fin validacion de usuario */
/* validacion de contraseña */
function validarClave(){
	var patron=/\w{6,}/;
	/*	este patron nos solicita una clave alfanumérica de almenos 6 digitos
		y en el segundo if comprobamos si las dos claves son iguales, en el 
		caso que no sea asi nos devuelve error y nos lleva de nuevo a la clave 1*/
	if(!document.Form.clave1.value.match(patron))
		{
			alert('La contraseña contiene menos de 6 carácteres \n'
			+ 'o contiene carácteres no validos');
			document.Form.clave1.focus();
			document.Form.clave1.select();
			return false;
		}

	if (document.Form.clave1.value!=document.Form.clave2.value)
		{
			alert('Las contraseñas no coinciden');
			document.Form.clave1.focus();
			document.Form.clave1.select();
			return false;
		}
return true;	
}
/* fin validacion de contraseña */

/* validacion pais */

function validarPais(){
	var pais=document.Form.pais.value;
		
	if (pais=='España'){
	/*	validarDomicilio();
		validarNumero();
		validarPoblacion();
		validarProvincia(); */
		validarTelefono1();
		/*validarCodigo();*/
	/*	validarDocumento(); */
	}
	
return true;
}

function validarOtro(){
	var sel = document.getElementById( 'sel' );
	var textOculto = document.getElementById( 'textOculto' );
	var textOculto1 = document.getElementById( 'textOculto1' );
  
  if( sel.options[ sel.selectedIndex ].value == '0')
  {
    textOculto.style.display = 'block';
	textOculto1.style.display = 'block';
  }
  else
  {
    textOculto.style.display = 'none';
	textOculto1.style.display = 'none';
  }

		
}
function borrarOtro(){
	var textOculto = document.getElementById( 'textOculto' );
	var textOculto1 = document.getElementById( 'textOculto1' );
	var tel = document.Form.Telefono1;
	var sel1 = document.Form.acepta.checked=false;
		document.Form.pais.value='España';
	    textOculto.style.display = 'none';
		textOculto1.style.display = 'none';
		tel.value='';
		aceptar();
	with(document.Form){
		nombre.value = '';
		apellidos.value ='';
		email.value='';
		domicilio.value='';
		nume.value='';
		piso.value='';
		poblacion.value='';
		c_p.value='';
		prov.value='';
		Telefono2.value='';	
		comentario.value='';
		}
}
/* fin borrarOtro */
/* funcion aceptar condiciones */
function aceptar(){
	
	var textOculto3 = document.getElementById( 'textOculto3' );
	var sel1 = document.Form.acepta;
if( sel1.checked)
  {
		textOculto3.style.display = 'block';
}
else{
		textOculto3.style.display = 'none';
	}
}
/*fin aceptar condiciones*/
/* validacion domicilio */

function validarDomicilio(){
	var patron=/\w+/;
	
	if(!(document.Form.domicilio.value.match(patron)))
						  {
						  
			alert('El campo domicilio esta vacio');
			document.Form.domicilio.focus();
			document.Form.domicilio.select();
			return false;
		
	}
return true;
}
/* fin validacion domicilio */
/* validacion nº */
function validarNumero(){
	var patron=/\d+/;
	
	if (!document.Form.numero.value.match(patron)){
			alert('No ha puesto un nº, si no tiene ponga 0');
			document.Form.numero.focus();
			document.Form.numero.select();
			return false;
		
	}
return true;
}
/* fin validacion numero */
/* validacion población */
function validarPoblacion(){
	var patron=/\D{1,22}/;
	
	if(!document.Form.poblacion.value.match(patron)){
		alert('Introduzca su Población');
		document.Form.poblacion.focus();
		document.Form.poblacion.select();
		return false;
		
	}
return true;
}
/*fin validacion poblacion */
/*validacion provincia */
function validarProvincia(){
	var patron=/^\D{1}(\D{1,22})$/;
	
	if(!document.Form.provincia.value.match(patron)){
		alert('introduzca una provincia');
		document.Form.provincia.focus();
		document.Form.provincia.select();
		return false;
		}
	
return true;
}
/*fin validacion provincia*/
/* validacion telefono 1 */
function validarTelefono1(){
	var patron=/^[986]{1}(\d{8})$/;
	if(!document.Form.Telefono1.value.match(patron)){
		alert('introduzca un teléfono valido');
		document.Form.Telefono1.focus();
		document.Form.Telefono1.select();
		return false;
		
		}
return true;
}
/*fin validacion telefono */
/*validar codigo postal */
function validarCodigo(){
	var patron=/^[12345]{1}([0-9]{4})$/;
	
	if(!document.Form.codigo_postal.value.match(patron)){
		
		alert('introduzca un Código Postal valido en españa');
		document.Form.codigo_postal.focus();
		document.Form.codigo_postal.select();
		return false;
		}
	
	return true;
}
/*fin validar codigo postal*/
/*fin fichero de validaciones */
