function validarFormulario(formulario){

	var bValido = true;
	var sAlert = "";
	
	var bRadio
	for (i=0;i<formulario.elements.length;i++){
		//alert(formulario.elements[i].title);
		
		bRadio = false;
		//Genero el array
		arrayTemp = formulario.elements[i].name.split("_").reverse();
		if(arrayTemp[1]){//Para que no rompa en caso de no ser un campo a validar
			switch(arrayTemp[1]){
				case "requerido":
					switch(arrayTemp[0]){
						case "texto":
							if(formulario.elements[i].type=="select-one"){
								if(formulario.elements[i][formulario.elements[i].selectedIndex].value==""){
									bValido = false;
									sAlert+="Cumplimente el campo '"+formulario.elements[i].title+"'\n";
								}
							}else{
								if(formulario.elements[i].value==""){
									bValido = false;
									sAlert+="Cumplimente el campo '"+formulario.elements[i].title+"'\n";
								}
							}							
							break;
						case "numero":
							if(formulario.elements[i].value==""){
								bValido = false;
								sAlert+= "Cumplimente el campo '"+formulario.elements[i].title+"'\n";							
							}else{
								if(isNaN(formulario.elements[i].value)){
									bValido = false;
									sAlert+= "El campo '"+formulario.elements[i].title+"' ha de ser numerico\n";
								}
							}
							break;
						case "email":
							if(formulario.elements[i].value==""){
								bValido = false;
								sAlert+= "Cumplimente el campo '"+formulario.elements[i].title+"'\n";						
							}else{
								if(!validarEmail(formulario.elements[i].value)){
									bValido = false;
									sAlert+= "Cumplimente correctamente el campo '"+formulario.elements[i].title+"'\n";
								}
							}						
							break;
						case "fecha":
							if(formulario.elements[i].value==""){
								bValido = false;
								sAlert+= "Cumplimente el campo '"+formulario.elements[i].title+"'\n";
							}else{
								if(!validarFecha(formulario.elements[i].value)){
									bValido = false;
									sAlert+= "Cumplimente correctamente el campo '"+formulario.elements[i].title+"'\n";
								}
							}						
							break;
						case "avisolegal":
							if(!formulario.avisoLegal.checked){
								bValido = false;
								sAlert+= "Debe aceptar la 'Politica de privacidad'\n";						
							}						
							break;
						case "dni":
							DNIRegexp =/^\d{8}[A-Z]{1}$/;
							if(!DNIRegexp.test(formulario.elements[i].value)){
								bValido = false;
								sAlert+= "Cumplimente el correctamente el campo '"+formulario.elements[i].title+"' (p.e. 456781579X)\n";
							}						
							break;							
					}
				break;
				case "norequerido":
					switch(arrayTemp[0]){
						case "numero":
							if(formulario.elements[i].value!=""){
								if(isNaN(formulario.elements[i].value)){
									bValido = false;
									sAlert+= "El campo "+formulario.elements[i].title+" ha de ser numerico\n";
								}
							}							
							break;
						case "email":
							if(formulario.elements[i].value!=""){
								if(!validarEmail(formulario.elements[i].value)){
									bValido = false;
									sAlert+= "Cumplimente correctamente el campo "+formulario.elements[i].title+"\n";
								}
							}
							break;
						case "fecha":
							if(formulario.elements[i].value!=""){
								if(!validarFecha(formulario.elements[i].value)){
									bValido = false;
									sAlert+= "Cumplimente correctamente el campo '"+formulario.elements[i].title+"'\n";
								}
							}						
							break;							
					}				
				break;
			}
		}
      	}
      	if(bValido){
      		return true;
      	}else{
      		alert('Por favor, compruebe la siguiente informacion para poder continuar:\n\n'+sAlert);
      		return false;
	}
}

function validarEmail(addressS){
   emailRegexp = /^(.+)@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
    if (emailRegexp.test(addressS))
    {
        return true;
    }
    return false;
}

function validarFecha(fecha){
	//fechaRegexp = /^(((0[1-9]|[12][0-9]|3[01])([/])(0[13578]|10|12)([/])(\d{4}))|(([0][1-9]|[12][0-9]|30)([/])(0[469]|11)([/])(\d{4}))|((0[1-9]|1[0-9]|2[0-8])([/])(02)([/])(\d{4}))|((29)(\.|-|\/)(02)([/])([02468][048]00))|((29)([/])(02)([/])([13579][26]00))|((29)([/])(02)([/])([0-9][0-9][0][48]))|((29)([/])(02)([/])([0-9][0-9][2468][048]))|((29)([/])(02)([/])([0-9][0-9][13579][26])))+$/;

	//if (fechaRegexp.test(fecha)){
	      return true;
	  // }
      //return false;
}

function validarRegistroAreaPrivada(formulario){
	
	var bValido = true;
	var sAlert = "";
	
	for (i=0;i<formulario.elements.length;i++){
		//Genero el array
		arrayTemp = formulario.elements[i].name.split("_").reverse();
		if(arrayTemp[1]){//Para que no rompa en caso de no ser un campo a validar
			switch(arrayTemp[1]){
				case "requerido":
					switch(arrayTemp[0]){
						case "texto":
							if(formulario.elements[i].value==""){
								bValido = false;
								sAlert+="Cumplimente el campo '"+formulario.elements[i].title+"'\n";
							}							
							break;
						case "numero":
							if(formulario.elements[i].value==""){
								bValido = false;
								sAlert+= "Cumplimente el campo '"+formulario.elements[i].title+"'\n";							
							}else{
								if(isNaN(formulario.elements[i].value)){
									bValido = false;
									sAlert+= "El campo '"+formulario.elements[i].title+"' ha de ser numérico\n";
								}
							}
							break;
						case "email":
							if(formulario.elements[i].value==""){
								bValido = false;
								sAlert+= "Cumplimente el campo '"+formulario.elements[i].title+"'\n";						
							}else{
								if(!validarEmail(formulario.elements[i].value)){
									bValido = false;
									sAlert+= "Cumplimente correctamente el campo '"+formulario.elements[i].title+"'\n";
								}
							}						
							break;
						case "avisoLegal":
							if(!formulario.avisoLegal.checked){
								bValido = false;
								sAlert+= "Debe aceptar la 'Política de privacidad'\n";						
							}						
							break;
					}
				break;
				case "norequerido":
					switch(arrayTemp[0]){
						case "numero":
							if(formulario.elements[i].value!=""){
								if(isNaN(formulario.elements[i].value)){
									bValido = false;
									sAlert+= "El campo "+formulario.elements[i].title+" ha de ser numérico\n";
								}
							}							
							break;
						case "email":
							if(formulario.elements[i].value!=""){
								if(!validarEmail(formulario.elements[i].value)){
									bValido = false;
									sAlert+= "Cumplimente correctamente el campo "+formulario.elements[i].title+"\n";
								}
							}
							break;
					}				
				break;
			}
		}
      	}
		
		
	if((formulario.password.value!=formulario.passwordR.value)||(formulario.password.value==""||formulario.password.value==""))
		{
			bValido= false;
			sAlert+="Compruebe que las contraseñas sean iguales\n"
		}
      	
      	if(bValido){
      		return true;
      	}else{
      		alert('Por favor, compruebe la siguiente información para poder continuar:\n\n'+sAlert);
      		return false;
	}
}



function validarFormulario_2(formulario){
	
	var bValido = true;
	var sAlert = "";
	for (i=0;i<formulario.elements.length;i++){
		//Genero el array
		arrayTemp = formulario.elements[i].name.split("_").reverse();
		if(arrayTemp[1]){//Para que no rompa en caso de no ser un campo a validar
			switch(arrayTemp[1]){
				case "requerido":
					switch(arrayTemp[0]){
						case "texto":
							if(formulario.elements[i].value==""){
								bValido = false;
								sAlert+="'"+formulario.elements[i].title+"' field needed\n";
							}							
							break;
						case "numero":
							if(formulario.elements[i].value==""){
								bValido = false;
								sAlert+= "'"+formulario.elements[i].title+"' field needed\n";							
							}else{
								if(isNaN(formulario.elements[i].value)){
									bValido = false;
									sAlert+= "'"+formulario.elements[i].title+"' field must be numerical\n";
								}
							}
							break;
						case "email":
							if(formulario.elements[i].value==""){
								bValido = false;
								sAlert+= "'"+formulario.elements[i].title+"' field needed\n";						
							}else{
								if(!validarEmail(formulario.elements[i].value)){
									bValido = false;
									sAlert+= "'"+formulario.elements[i].title+"' field must contain a correct email \n";
								}
							}						
							break;
						case "fecha":
							if(formulario.elements[i].value==""){
								bValido = false;
								sAlert+= "'"+formulario.elements[i].title+"' field needed\n";						
							}else{
								if(!validarFecha(formulario.elements[i].value)){
									bValido = false;
									sAlert+= "'"+formulario.elements[i].title+"' must contain a correct date\n";
								}
							}						
							break;
						case "avisolegal":
							if(!formulario.avisoLegal.checked){
								bValido = false;
								sAlert+= "You must accept the 'Privacy policy'\n";						
							}						
							break;
					}
				break;
				case "norequerido":
					switch(arrayTemp[0]){
						case "numero":
							if(formulario.elements[i].value!=""){
								if(isNaN(formulario.elements[i].value)){
									bValido = false;
									sAlert+= ""+formulario.elements[i].title+" must be numerical\n";
								}
							}							
							break;
						case "email":
							if(formulario.elements[i].value!=""){
								if(!validarEmail(formulario.elements[i].value)){
									bValido = false;
									sAlert+= ""+formulario.elements[i].title+" must contain a correct email\n";
								}
							}
							break;
						case "fecha":
							if(formulario.elements[i].value!=""){
								if(!validarFecha(formulario.elements[i].value)){
									bValido = false;
									sAlert+= "'"+formulario.elements[i].title+"' must contain a correct date\n";
								}
							}						
							break;							
					}				
				break;
			}
		}
      	}
      	
      	if(bValido){
      		return true;
      	}else{
      		alert('Please, verify the following information before you continue:\n\n'+sAlert);
      		return false;
	}
}


function cambiarClave(formulario){
	
	var bValido = true;
	var sAlert = "";
		if(formulario.clave.value==""){
			bValido = false;
			sAlert+="Cumplimente el campo 'Contraseña'\n";
		}							
      	
		if(formulario.Rclave.value==""){
			bValido = false;
			sAlert+="Cumplimente el campo 'Repetir Contraseña'\n";
		}							
      	
		if(formulario.clave.value!=formulario.Rclave.value){
			bValido = false;
			sAlert+="'Contraseña' y 'Repetir Contraseña' debe ser iguales\n";
		}							
      	
		if(bValido){
      		return true;
      	}else{
      		alert('Por favor, compruebe la siguiente información para poder continuar:\n\n'+sAlert);
      		return false;
		}
}

function Provincias(formulario){
	if (document.getElementById('pais').selectedIndex != 'España'){
		document.getElementById('provincia').value='Fuera de España';
	}
}
function Paises(formulario){
	if (document.getElementById('provincia').selectedIndex != 'Fuera de España'){
		document.getElementById('pais').value='España';
	}
}




function validacionA(){
//return true;
	var bValido = true;
	var sMsg = "";
		
	if (document.formReserva.elements.length !=0){ 
		var nombre = document.formReserva.datos_nombre.value;
		var apellido1 = document.formReserva.datos_apellido1.value;
		var nif = document.formReserva.datos_nif.value;
		var direccion = document.formReserva.datos_direccion.value;
		var cp = document.formReserva.datos_cp.value;
		var localidad = document.formReserva.datos_localidad.value;
		var email = document.formReserva.datos_email.value;
		/*var titular = document.formReserva.datos_titulartarjeta.value;
		var numero = document.formReserva.datos_numerotarjeta.value;*/
		var avisoLegal = document.formReserva.datos_avisoLegal.value;
		
		if(nombre == ''){
			sMsg = sMsg + 'Cumplimente el campo nombre\n'
			bValido = false;
		}		
		
		if(apellido1 == ''){
			sMsg = sMsg + 'Cumplimente el campo primer apellido\n'
			bValido = false;
		}			
		
		if(direccion == ''){
			sMsg = sMsg + 'Cumplimente el campo dirección\n'
			bValido = false;
		}		
		
		if(cp == ''){
			sMsg = sMsg + 'Cumplimente el campo código postal\n'
			bValido = false;
		}		
		
		if(localidad == ''){
			sMsg = sMsg + 'Cumplimente el campo localidad\n'
			bValido = false;
		}				
		
		if(nif == ''){
			sMsg = sMsg + 'Cumplimente el campo NIF o Pasaporte\n'
			bValido = false;
		}
		
		if(email==''){
			sMsg = sMsg + 'Cumplimente el campo E-mail\n'
			bValido = false;
		}else{
			if(emailValido(email)== false){
				sMsg = sMsg + 'Compruebe que su direccion E-mail es correcta\n'
				bValido = false;
			}
		}	
	/*	
		if(titular==''){
			sMsg = sMsg + 'Cumplimente el campo titular de la tarjeta de crédito\n'
			bValido = false;
		}
		
		if(numero==''){
			sMsg = sMsg + 'Cumplimente el campo número de la tarjeta de crédito\n'
			bValido = false;
		}else{
				if(numero.length != 16 || isNaN(numero) || tarjetaValida(numero)==false )
				{	sMsg = sMsg + 'Compruebe que el número de la tarjeta de crédito es correcto (introduzca todos los números seguidos y sin espacios)\n'
					bValido = false;
				}
			}
			*/
		if(!document.formReserva.datos_avisoLegal.checked)
		{
			sMsg = sMsg + 'Debe aceptar las Condiciones del servicio\n'
			bValido = false;
		}		
		
		
	}
	else{
		alert('Para poder realizar una reserva, ha de seleccionar las fechas de estancia en el hotel.');
		return false;
		}
	if(!bValido){
		alert('Compruebe la siguiente información para finalizar su reserva:\n\n'+sMsg);
		return false;
	}else{
		return true;
	}
}


function emailValido(valor) {
  emailRegexp = /^(.+)@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
  if (emailRegexp.test(valor))
  {	
		return true;
  }
	return false;
 }