var expRegEmail = /^(([^<>()[\]\\.,;:\s@""]+(\.[^<>()[\]\\.,;:\s@""]+)*)|("".+""))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
var expRegNome = /^.{3,}$/;
var expRegDDD = /^0*[1-9]{2}$/;
var expRegTel = /^\d{3,4}[\-|\s|\.]{0,1}[\d]{4}$/;
var expRegData = /^(0?[1-9]|[12][0-9]|3[01])\/(0?[1-9]|1[012])\/[12][0-9]{3}$/;
var expRegInteiro = /^\d+$/;

function validaReserva(){
  var f = document.frmReserva
  var formOk = true;
  var intervData = true;

  if(!validaCampo(f.txtNome, expRegNome)){
	formOk = false;
  }

  if(!validaCampo(f.txtDDDTel, expRegDDD)){
	formOk = false;
  }
  
  if(!validaCampo(f.txtTel,expRegTel)){
	formOk = false;
  }

  if(!validaCampo(f.txtEmail,expRegEmail)){
	  formOk = false;
  }
  
  if(!validaData(f.txtDataEntrada)){
	formOk = false;
	intervData = false;
  }
  
  if(!validaData(f.txtDataSaida)){
	formOk = false;
	intervData = false;
  }
  
  if(intervData){
	if(!validaIntervalo(f.txtDataEntrada.value,f.txtDataSaida.value)){
	  alert("A data de saída não pode ser menor que a data de entrada!")
	  defineErroCampo(f.txtDataEntrada);
	  defineErroCampo(f.txtDataSaida);
	  formOk = false;		
	}
  }
  
  if(f.cmbTipoQuarto.value == "0"){
	defineErroCampo(f.cmbTipoQuarto)
	formOk = false;
  }
  
  if(!validaCampo(f.txtQtdAdultos,expRegInteiro)){
	formOk = false;
  }
  
  if(!validaCampo(f.txtQtdCriancas,expRegInteiro)){
	formOk = false;
  }

  if(formOk == true){
	f.submit();
  }

}


function escolheTipoQuarto(){
  var obj = document.getElementById("cmbTipoQuarto")
  var trQtdPessoas = document.getElementById("tr_qtd_pessoas")
  if(obj.value == "f"){
	trQtdPessoas.className=""
  }else{
	trQtdPessoas.className="tr_oculta"  
  }
}


function validaCampo(campo,expReg){
  if(!expReg.test(campo.value)){
	defineErroCampo(campo)
	return false;
  }
  return true;
}

function validaData(objeto){
	if(!expRegData.test(objeto.value)){
		defineErroCampo(objeto);
		return false;
	}else{
		var dia = objeto.value.split("/")[0];
		var mes = objeto.value.split("/")[1];
		var ano = objeto.value.split("/")[2];
		var dataValida = false;
		
		if(dia <= 31 && mes <= 12){
			if(mes == 2){
				if(dia < 29){
					dataValida = true;				
				}
				else{				
					if (dia == 29){
						if((((ano%4) == 0) && ((ano%100) != 0)) ||((ano%400) == 0)){
							dataValida = true;
						}
					}					
				}
			}else{
				if(dia == 31){
					if(mes == 1 || mes == 3 || mes == 5 || mes == 7 || mes == 8 || mes == 10 || mes == 12){
						dataValida = true;				
					}
				}else{
					dataValida = true;				
				}
			}
		}
		if(dataValida){
			limpaErroCampo(objeto);
			return true;
		}else{
			defineErroCampo(objeto);
			return false;
		}
	}
}

function validaIntervalo(data1, data2){
  var vetData1 = data1.split("/");
  var vetData2 = data2.split("/");
  if(parseInt(vetData2[2]) < parseInt(vetData1[2])){
	return false;	  
  }
  else if(parseInt(vetData2[2]) == parseInt(vetData1[2])){
	if(parseInt(vetData2[1]) < parseInt(vetData1[1])){
		return false
	}
	else if (parseInt(vetData2[1]) == parseInt(vetData1[1])){
	  if(parseInt(vetData2[0]) < parseInt(vetData1[0])){
		  return false;
	  }
	}
  }
  return true;  
}

function defineErroCampo(obj){
  obj.className = "erro";
  obj.onfocus = function(){limpaErroCampo(obj);}
}

function limpaErroCampo(obj){
  obj.className = "";
}


function mascara(objeto,tecla,tipo){
  if(tecla.keyCode != 37 && tecla.keyCode != 39 && tecla.keyCode != 35 && tecla.keyCode != 36){
	if(tipo == "data")objeto.value = mascaraData(objeto.value)
	if(tipo == "int")objeto.value = mascaraInteiro(objeto.value)
  }
}

function mascaraData(v){
  v=v.replace(/\D/g,"") 
  v=v.replace(/(\d{2})(\d)/,"$1/$2") 
  v=v.replace(/(\d{2}\/\d{2})(\d)/,"$1/$2") 
  return v
}

function mascaraInteiro(v){
	v=v.replace(/\D/g,"")
	return v
}

function limitaTextarea(objeto,tam){
  if(objeto.value.length > tam){
	  objeto.value = objeto.value.substring(0, tam);
  }
}

function conta(alvo,maximo){
  var restante = maximo-alvo.value.length;
  if (restante < 0) restante = 0;
  document.getElementById(alvo.id+"_info").innerHTML = "Você ainda pode digitar <strong>"+restante+"</strong> caracteres.";
}