function validacion(formulario) 
{

	var er_nombre = /^([a-z]|[A-Z]|á|é|í|ó|ú|ñ|ü|\s|\.|-)+$/			//letras, '.' y '-' o vacio
	var er_adultos = /^([0-9\s\+\-])+$/						//numeros, espacios, + o -
	var er_menores = /^([0-9\s\+\-])+$/						//numeros, espacios, + o -
	//fechas, formato dd/mm/aaaa o d/m/aa
	//fechas, formato dd/mm/aaaa o d/m/aa
	var er_mes31dias = /^([1-3]0|[0-2][1-9]|31|[0-9])\/(1|01|3|03|5|05|7|07|8|08|10|12)\/(1999|20[0-1][0-9]|2020)$/
	var er_mes30dias = /^([1-3]0|[0-2][1-9]|[0-9])\/(4|04|6|06|9|09|11)\/(1999|20[0-1][0-9]|2020)$/
	var er_mes28dias = /^([1-2]0|[0-2][1-8]|[0-1]9|[0-9])\/(02|2)\/(1999|200[1-3]|200[5-7]|2009|201[0-1]|201[3-5]|201[7-9])$/
	var er_mes29dias = /^([1-2]0|[0-2][1-9]|[0-9])\/(02|2)\/(2000|2004|2008|2012|2016|2020)$/
	//direccion de correo electronico
	var er_email = /^(.+\@.+\..+)$/
	var adults = formulario.adultos.value
	var childrens = formulario.menores.value
	var x
	var str1 = document.getElementById("salida").value;
    var str2 = document.getElementById("entrada").value;
    var dt1  = parseInt(str1.substring(0,2),10); 
    var mon1 = parseInt(str1.substring(3,5),10);
    var yr1  = parseInt(str1.substring(6,10),10); 
    var dt2  = parseInt(str2.substring(0,2),10); 
    var mon2 = parseInt(str2.substring(3,5),10); 
    var yr2  = parseInt(str2.substring(6,10),10); 
    var date1 = new Date(yr1, mon1, dt1); 
    var date2 = new Date(yr2, mon2, dt2); 
	
	//comprueba 50 caracteres maximo
	for(x = 1; x < 7; x++) {
		if (formulario.elements[x].value.length > 50) {
			alert('Maximal lenght for any field is 50!')
			return false
		}
	}   	
      	
	//comprueba campo de nombre
	if(!er_nombre.test(formulario.nombre.value)) { 
		alert('Content of NAME ist not correct!')
		return false
		
	}   	
   	
	//comprueba la fecha segun calendario (hasta el 2020, ojo)
	if (!(er_mes31dias.test(formulario.entrada.value) || 
   			er_mes30dias.test(formulario.entrada.value) ||
      		er_mes29dias.test(formulario.entrada.value) ||
      		er_mes28dias.test(formulario.entrada.value))) {
		alert('Content of CHECK IN ist not correct!')
		return false
	}
	
		if(yr2 < 2012)
	{
        alert("YEAR must be bigger than 2011!");
        return false; 
    }
	
	if(yr2 > 2013)
	{
        alert("YEAR must be less than 2014!");
        return false; 
    }
	
	//comprueba la fecha segun calendario (hasta el 2020, ojo)
	if (!(er_mes31dias.test(formulario.salida.value) || 
   			er_mes30dias.test(formulario.salida.value) ||
      		er_mes29dias.test(formulario.salida.value) ||
      		er_mes28dias.test(formulario.salida.value))){
        alert('Content of CHECK OUT ist not correct!');
        return false; 
    }	 
	
	if(date1 <= date2)
    {
        alert("CHECK OUT date must be bigger than CHECH IN!");
        return false; 
    }
	
	if(yr1 > yr2 && mon1 > 1)
    {
        alert("¡The reservation overcomes one month!");
        return false; 
    }
	
	if(yr1 > yr2 && mon2 < 12)
    {
        alert("¡The reservation overcomes one month!");
        return false; 
    }
	
	//comprueba campo adultos (permite solo numeros entre 1 y 9)
	if( !er_adultos.test(formulario.adultos.value) ) {
		alert('Content of ADULTS ist not correct!')
		return false
	}
	
	if (adults == 0) {
		alert('Content of ADULTS ist not correct!')
		return false
	}
	
	if (adults > 3) {
		alert('Content of ADULTS bigger than 3!')
		return false
	}
	
	
	//comprueba campo menores (si existen, solo numeros entre 1 y 9)
	if( !er_menores.test(formulario.menores.value) ) {
		alert('Content of CHILDREN ist not correct!')
		return false
	}
	
	if (childrens > 2) {
       alert('Content of CHILDREN bigger than 2!')
       return false
   }	
	
	//comprueba campo de email
	if(!er_email.test(formulario.email.value)) { 
		alert('Content of E-MAIL ist not correct!')
		return false
	} 

	alert('Data ist correct - E-MAIL will be submited!')
	return true			//cambiar por return true para ejecutar la accion del formulario
}

