// JavaScript Document


function check_number(str) 
{ 
    var flag;
    var pattern;
 
    if (str!='')
    {
    pattern = /^([0-9])+$/; 
    flag = pattern.test(str); 
 
    if (!flag) 
        return false; 
    }
    return true;
 
} 
 

function ValidaReserva()
{
    var erros  = '';
    var erros1 = '';
    var hoje   = '';
    var mes    = '';
    var d      = new Date();


    if (LayoutFORM.servicos.value == 'Escolha um serviço')
        erros+='  Serviço\n';

    if (LayoutFORM.actividades.value == 'Escolha uma actividade')
        erros+='  Actividade\n';

    if (LayoutFORM.actividades.value == 'Equipamento naútico')
        erros+='  Actividade\n';

    if (LayoutFORM.actividades.value == 'Equipamento terrestre')
        erros+='  Actividade\n';

    if (LayoutFORM.sub_actividades.disabled == false && LayoutFORM.sub_actividades.value == 'Escolha um tipo de actividade')
	erros+='  Tipo de actividade\n';

    if (LayoutFORM.nome_grupo.value == '')
        erros+='  Nome da pessoa ou nome do grupo\n';

    if (LayoutFORM.email.value == '')
        erros+='  Email\n';

    if (LayoutFORM.telefone.value == 0)
        erros+='  Telefone\n';

    if (LayoutFORM.nacionalidade.value == 0)
        erros+='  Nacionalidade\n';

    if (LayoutFORM.pax.value == 0)
        erros+='  Pax (Número de pessoas)\n';

    if (LayoutFORM.data.value == '')
        erros+='  Data\n';
    
    if ((LayoutFORM.servicos.value == 'Aluguer de equipamentos' || LayoutFORM.servicos.value == 'Incentivos de grupo') && (LayoutFORM.dias.value == '' || eval(LayoutFORM.dias.value) <= 0))
	erros+='  Nro. dias\n';
   

    erros1+=checkEmail();

    if (check_number(LayoutFORM.pax.value) == false)
        erros1+='   Pax (Número de pessoas)\n';

    if (LayoutFORM.data.value!='' && IsDate(LayoutFORM.data.value) == false)
        erros1+='   Data\n';

    mes  = d.getMonth() + 1;
    hoje = d.getDate() + '/' + mes + '/' + d.getFullYear();
    
    
    if (LayoutFORM.data.value!='' && IsDate(LayoutFORM.data.value) == true && diff_datas(hoje,LayoutFORM.data.value) == false)
        erros1+='   A data tem de ser pelo menos um dia superior a data de hoje\n';

    
    if (check_number(LayoutFORM.dias.value) == false)
        erros1+='   Nro. dias\n';

    if (erros!='')
    {
        erros='Por favor, preencha os seguintes campos. Obrigada:\n\n' + erros;
    }

    if (erros1!='')
    {
        erros1='\nOs seguintes campos estão errados:\n' + erros1;
    }
 
    erros1 = erros + erros1;

    if (erros1!='')
    {
        alert(erros1);
    }
    else
    {
        document.LayoutFORM.submit();
    }
}


function checkEmail() 
{ 
    var flag; 
    var erros;
    var str;
    var pattern;
    
    erros = '';

    str = LayoutFORM.email.value;
    if (str!='')
    {
    pattern = /^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)+/; 
    flag = pattern.test(str); 
    if (!flag) 
        erros+= '   Email\n'; 
    }
   
    return erros; 
} 



function IsDate(datein)
{
   var sdate = datein.split("/")

   if (!check_number(sdate[0]) || !check_number(sdate[1]) || !check_number(sdate[2]))
       return false;

   var dia = Math.abs(sdate[0])
   var mes = Math.abs(sdate[1])
   var ano = Math.abs(sdate[2])

   if (dia > 31 || mes>12 || ano < 2000)
   {
       return false
   } 	

   if (mes==2)
   {
      if (((ano % 4 == 0)&&(ano % 100 != 0))||(ano % 400 ==0))
      {
	if (dia>29)
	{
	   return false
	}
      }
      else
      {
	if (dia>28)
	{
	   return false
	}
      }
   }
   
   if ((mes==4 || mes==6 || mes==9 || mes==11) && dia>30)
   {
      return false
   }

   return true
}



function diff_datas(start,end) 
{

   var sdate  = start.split("/")
   var sstart = sdate[1]+'/'+sdate[0]+'/'+sdate[2] ;
   
   var edate  = end.split("/")
   var send   = edate[1]+'/'+edate[0]+'/'+edate[2] ;

   var bufferA = Date.parse(sstart) ;
   var bufferB = Date.parse(send) ;

   if (bufferA < bufferB)
      return true;
   else
      return false;
}

