var reEmail2 = /^[\w-]+(\.[\w-]+)*@(([\w-]{2,63}\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
var reEmail3 = /^[\w-]+(\.[\w-]+)*@(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
var reEmail = reEmail3;
var reDate1 = /^\d{1,2}\/\d{1,2}\/\d{1,4}$/;
var reDate2 = /^[0-3]?\d\/[01]?\d\/(\d{2}|\d{4})$/;
var reDate3 = /^(0?[1-9]|[12]\d|3[01])\/(0?[1-9]|1[0-2])\/(19|20)?\d{2}$/;
var reDate4 = /^((0?[1-9]|[12]\d)\/(0?[1-9]|1[0-2])|30\/(0?[13-9]|1[0-2])|31\/(0?[13578]|1[02]))\/(19|20)?\d{2}$/;
var reDate5 = /^((0[1-9]|[12]\d)\/(0[1-9]|1[0-2])|30\/(0[13-9]|1[0-2])|31\/(0[13578]|1[02]))\/\d{4}$/;
var reDate6 = /^((0?[1-9]|[12]\d)\/(0?[1-9]|1[0-2])|30\/(0?[13-9]|1[0-2])|31\/(0?[13578]|1[02]))\/\d{4}$/;
var reDate = reDate6;
var pStr;

function trim(str) {
  str = str.replace(/(^\s+)|(\s+$)/g, "");
  return str;
}

function validaFormReserva() {
   document.formReserva.emailContato.value = trim(document.formReserva.emailContato.value)
   document.formReserva.telefoneContato.value = trim(document.formReserva.telefoneContato.value)
   document.formReserva.nomeHospede.value = trim(document.formReserva.nomeHospede.value)
   document.formReserva.dataChegada.value = trim(document.formReserva.dataChegada.value)
   document.formReserva.dataSaida.value = trim(document.formReserva.dataSaida.value)
   document.formReserva.emailContato.value = trim(document.formReserva.emailContato.value)
   //Verificar se o campo de email foi informado
   if(document.formReserva.emailContato.value == "") {
        alert("Campo email do contato deve ser preenchido!");
        document.formReserva.emailContato.focus();
        return false;
   }
   //validar email(verificao de endereco eletrônico)
   eval("reEmail = reEmail3");
   pStr = document.formReserva.emailContato.value;
   if (!reEmail.test(pStr)) {
     if (pStr != null && pStr != "") {
        alert("Email  '" + pStr + "' : inválido.");
        document.formReserva.emailContato.focus();
        return false;
     }
   } 
   //Verificar se o campo de telefone foi informado
   if(document.formReserva.telefoneContato.value == "") {
        alert("Campo telefone de contato deve ser preenchido!");
        document.formReserva.telefoneContato.focus();
        return false;
   }
   //Verificar se o campo de nome do hospede foi informado
   if(document.formReserva.nomeHospede.value == "") {
        alert("Campo nome do hóspede deve ser preenchido!");
        document.formReserva.nomeHospede.focus();
        return false;
   }
   //Verificar se o campo de data de chegada foi informado
   if(document.formReserva.dataChegada.value == "") {
        alert("Campo data de chegada deve ser preenchido!");
        document.formReserva.dataChegada.focus();
        return false;
   }
   //validar data de chegada
   pStr = document.formReserva.dataChegada.value;
   eval("reDate = reDate6");
   if (!reDate.test(pStr)) {
     if (pStr != null && pStr != "") {
        alert(pStr + " NÃO é uma data de chegada válida. [dd/mm/aaaa]");
        document.formReserva.dataChegada.focus();
        return false;
     }
   }      
   //Verificar se o campo de data de saida foi informado
   if(trim(document.formReserva.dataSaida.value) == "") {
        alert("Campo data de saida deve ser preenchido!");
        document.formReserva.dataSaida.focus();
        return false;
   }
   //validar data de chegada
   pStr = document.formReserva.dataSaida.value;
   eval("reDate = reDate6");
   if (!reDate.test(pStr)) {
     if (pStr != null && pStr != "") {
        alert(pStr + " NÃO é uma data de saída válida. [dd/mm/aaaa]");
        document.formReserva.dataSaida.focus();
        return false;
     }
   }      
   
   var dataHoje = new Date();
   switch (document.formReserva.dataChegada.value.indexOf("/", 3)) {
     case 5:
       var dataChegada = new Date(eval(document.formReserva.dataChegada.value.substr(6, 4)), eval(document.formReserva.dataChegada.value.substr(3, 2)), eval(document.formReserva.dataChegada.value.substr(0, 2)));
       break
     case 4:  
       if (document.formReserva.dataChegada.value.indexOf("/") == 1) {
         var dataChegada = new Date(eval(document.formReserva.dataChegada.value.substr(5, 4)), eval(document.formReserva.dataChegada.value.substr(2, 2)), eval(document.formReserva.dataChegada.value.substr(0, 1)));
       }  
       else {
         var dataChegada = new Date(eval(document.formReserva.dataChegada.value.substr(5, 4)), eval(document.formReserva.dataChegada.value.substr(3, 1)), eval(document.formReserva.dataChegada.value.substr(0, 2)));
       }  
       break
     case 3:
       var dataChegada = new Date(eval(document.formReserva.dataChegada.value.substr(4, 4)), eval(document.formReserva.dataChegada.value.substr(2, 1)), eval(document.formReserva.dataChegada.value.substr(0, 1)));
       break
   }  
   switch (document.formReserva.dataSaida.value.indexOf("/", 3)) {
     case 5:
       var dataSaida = new Date(eval(document.formReserva.dataSaida.value.substr(6, 4)), eval(document.formReserva.dataSaida.value.substr(3, 2)), eval(document.formReserva.dataSaida.value.substr(0, 2)));
       break
     case 4:  
       if (document.formReserva.dataSaida.value.indexOf("/") == 1) {
         var dataSaida = new Date(eval(document.formReserva.dataSaida.value.substr(5, 4)), eval(document.formReserva.dataSaida.value.substr(2, 2)), eval(document.formReserva.dataSaida.value.substr(0, 1)));
       }  
       else {
         var dataSaida = new Date(eval(document.formReserva.dataSaida.value.substr(5, 4)), eval(document.formReserva.dataSaida.value.substr(3, 1)), eval(document.formReserva.dataSaida.value.substr(0, 2)));
       }
       break
     case 3:
       var dataSaida = new Date(eval(document.formReserva.dataSaida.value.substr(4, 4)), eval(document.formReserva.dataSaida.value.substr(2, 1)), eval(document.formReserva.dataSaida.value.substr(0, 1)));
       break
   }  
   
   //Compara data chegada com data atual
   if (dataChegada.getTime() < dataHoje.getTime()) {
     alert("A data de chegada deve ser maior ou igual à data de hoje!");
     document.formReserva.dataChegada.focus();
     delete dataSaida;
     delete dataChegada;
     delete dataHoje;
     return false;
   }   

   //Compara data chegada com data saida
   if (dataChegada.getTime() >= dataSaida.getTime()) {
     alert("A data de saida deve ser maior que a data de chegada!");
     document.formReserva.dataSaida.focus();
     delete dataSaida;
     delete dataChegada;
     delete dataHoje;
     return false;
   }  
   
   return true;
}

function mostra(arq,x,y) {
  janela = window.open("","Foto","toolbar=0,location=0,directories=0,status=1,menubar=0,scrollbars=1,resizable=1,copyhistory=0,width="+x+",height="+y);
  janela.document.open();
  janela.document.write("<HTML><HEAD>");
  janela.document.write("<TITLE>Hotel Casablanca Ltda - Galeria de fotos</TITLE>");
  janela.document.write("</HEAD><BODY BGCOLOR=#ffffff>");
  janela.document.write("<center>");
  janela.document.write("<IMG SRC='"+arq+"'>");
  janela.document.write("<br>");
  janela.document.write("<FORM><INPUT TYPE='button' VALUE='Fechar' " + "onClick='window.close()'></FORM>");
  janela.document.write("</CENTER>");
  janela.document.write("</FONT>");
  janela.document.write("</BODY></HTML>");
  janela.document.close();
}