/* 
 * Nombre del Script: valida_formulario.js
 * Autor: Sonia Cruz Techica
 * Fecha de Creación: 12 de octubre de 2007.
 * Descripción: Validacion del formulario del archivo: contacto2.html
*/

function validaCorreo(dir)
{
  exp_correo=/^[a-z]+[a-z0-9_\.\-]*@[a-z]+[\.[a-z]+[a-z\-]*]*(\.[a-z]+)+$/
  if(exp_correo.test(dir)==false)
    { 
      return false
    }
  return true
}

function validaTexto(texto,tipo_dato)
{
//La expresión regular valida que el nombre solo contenga letras con o sin acentos
//Es codificación Latin-1
  exp_texto=/^[A-Za-z\xc0-\xfc]+[\ A-Za-z\xc0-\xfc]*$/
  
  if(exp_texto.test(texto)==false)
    {
      return false
    }
  return true
}

function valida_formulario()
{
  //Variables a validar
  var nombre  = formularioReservacion.nombre.value;
  var apellidos  = formularioReservacion.apellidos.value;
  var edad = formularioReservacion.edad.value;
  var telefono  = formularioReservacion.telefono.value;
  var correo   = formularioReservacion.correo.value;
  var calle   =   formularioReservacion.calle.value;

  var ciudad   =   formularioReservacion.ciudad.value;
  var pais   =   formularioReservacion.pais.value;
  var cp   =   formularioReservacion.cp.value;  
  var llegada = formularioReservacion.llegada.value;  
  var salida = formularioReservacion.salida.value;  
  var adultos   =   formularioReservacion.adultos.value;
  var ninos   =   formularioReservacion.ninos.value;
  var informacionSolicitada   =   formularioReservacion.informacionSolicitada.value;  
  
  var lenguaje   =   formularioReservacion.lenguaje.value;  
  exp_cp=/^[1-9a-zA-Z]+[1-9a-zA-Z\-\ ]*$/
exp_texto2=/^[A-Za-z\xc0-\xfc]+[\ \-A-Za-z\xc0-\xfc]*$/
  exp_telefono=/^[1-9\(]+[1-9\-\(\)\ ]*$/
      exp_edad=/^[1-9][0-9]$/
  
  if (lenguaje=="spanish")
  {
		var str_aviso='A V I S O\n';
		var str_nombre='nombre';
		var str_campos_obligatorios='Los campos marcados con * son obligatorios. \nVerifique por favor.';
		var str_enombre=' NO es un nombre válido!!!';
		var str_eapellidos=' NO es un apellido válido!!!';
		var str_eedad=' NO es una edad válida!!!';
		var str_etelefono='El Teléfono debe ser un dato numérico con una longitud mínima de 8.';
		var str_correo='La dirección de correo ';		
		var str_pais='El país ';
		var str_ciudad='La ciudad ';
		var str_cp='El código postal ';
		var str_incorrecta=' NO es correcta!!!';		
		var str_incorrecto=' NO es correcto!!!';	
		var str_efechas='La fecha de llegada debe ser menor a la fecha de salida. \nVerifique por favor.';
		var str_eadultos='El número de adultos debe ser un dato numérico diferente de 0.';
		var str_eninos='El número de niños  debe ser un dato numérico.';		
  }
  else //english
  {
		var str_aviso='W A R N I N G\n';
		var str_nombre='name';
		var str_campos_obligatorios='All fields with * are required. \nPlease check.';
		var str_enombre=' is NOT a valid name!!!';
		var str_eapellidos=' is NOT a valid family name!!!';
		var str_eedad=' is NOT a valid age!!!';
		var str_etelefono='The phone must be a numeric data with a minimum length of 8.';
		var str_correo='The mail ';		
		var str_pais='The country ';
		var str_ciudad='The city ';
		var str_cp='The zip code ';
		var str_incorrecta=' is NOT correct!!!';		
		var str_incorrecto=' is NOT correct!!!';	
		var str_efechas='The arrival date should be less than the departure date. \nPlease check.';
		var str_eadultos='The number of adults must be a numeric data other than 0.';
		var str_eninos='The number of children must be a numeric data.';				
  }
  

  if(nombre=="" || apellidos=="" || llegada=="" || salida=="" || correo=="" || adultos=="" || edad=="" || pais=="" || ciudad=="")
	{
		alert(str_aviso+str_campos_obligatorios);
		return false;
	}
  
    if(!validaTexto(nombre, 'nombre'))
    {
          alert(str_aviso+nombre+str_enombre);  
      formularioReservacion.nombre.value="";
      formularioReservacion.nombre.focus();                
      return false
    }


    if(!validaTexto(apellidos, 'apellidos'))
    {
          alert(str_aviso+apellidos+str_eapellidos);  
      formularioReservacion.apellidos.value="";
      formularioReservacion.apellidos.focus();                
      return false
    }
  
    if(exp_edad.test(edad)==false || edad<15)
    {
      alert(str_aviso+edad+str_eedad);  
      formularioReservacion.edad.value="";
      formularioReservacion.edad.focus();                
      return false
    }
  

  if (telefono)
    if(exp_telefono.test(telefono)==false || telefono.length < 8)
    {
      alert(str_aviso+str_etelefono);
      formularioReservacion.telefono.value="";
      formularioReservacion.telefono.focus();                
      return false
    }


    if(!validaCorreo(correo))
    {
          alert(str_aviso+str_correo+correo+str_incorrecta);   
      formularioReservacion.correo.value="";
      formularioReservacion.correo.focus();                
      return false
    }



  if (lenguaje=="spanish")
  {
	var numeroExt   =   formularioReservacion.numeroExt.value;
	var numeroInt   =   formularioReservacion.numeroInt.value;  
	var colonia   =   formularioReservacion.colonia.value;  
	
  if (numeroExt)
    if(exp_cp.test(numeroExt)==false)
    {
     alert('A V I S O\nEl número exterior \n' +numeroExt+ '\nNO es correcto!!!');   
      formularioReservacion.numeroExt.value="";
      formularioReservacion.numeroExt.focus();                
      return false
    }	
	
  if (numeroInt)
    if(exp_cp.test(numeroInt)==false)
    {
     alert('A V I S O\nEl número interior \n' +numeroInt+ '\nNO es correcto!!!');   
      formularioReservacion.numeroInt.value="";
      formularioReservacion.numeroInt.focus();                
      return false
    }	

    if (colonia)
    if(exp_texto2.test(colonia)==false)
    {
     alert('A V I S O\nLa colonia \n' +colonia+ '\nNO es válida!!!');   
      formularioReservacion.colonia.value="";
      formularioReservacion.colonia.focus();                
      return false
    }	
	
  }
  else //english
  {
	var numero   =   formularioReservacion.numero.value;
	if (numero)
		if(exp_cp.test(numero)==false)
		{
		alert('W A R N I N G\nThe number \n' +numero+ '\nis NOT correct!!!');   
		formularioReservacion.numero.value="";
		formularioReservacion.numero.focus();                
		return false
		}		
}
  
          if(exp_texto2.test(ciudad)==false)
    {
     alert(str_aviso+str_ciudad+ciudad+str_incorrecta);   
      formularioReservacion.ciudad.value="";
      formularioReservacion.ciudad.focus();                
      return false
    }	
  
  
      if(exp_texto2.test(pais)==false)
    {
     alert(str_aviso+str_pais+pais+str_incorrecto);   
      formularioReservacion.pais.value="";
      formularioReservacion.pais.focus();                
      return false
    }	
  

  
    if (cp)
    if(exp_cp.test(cp)==false)
    {
     alert(str_aviso+str_cp+cp+str_incorrecto);   
      formularioReservacion.cp.value="";
      formularioReservacion.cp.focus();                
      return false
    }	

     if (llegada >= salida){
	alert(str_aviso+str_efechas)
        return false
     }	
  
      if(isNaN(adultos) || adultos<1)
    {
      alert(str_aviso+str_eadultos);
      formularioReservacion.adultos.value="";
      formularioReservacion.adultos.focus();                
      return false
    }	
  
  
      if (ninos)
    if(isNaN(ninos))
    {
      alert(str_aviso+str_eninos);
      formularioReservacion.ninos.value="";
      formularioReservacion.ninos.focus();                
      return false
    }	
  
  return true
}



