/*** Javascript da página index ***/
function somente_numero(campo){   
var digits="0123456789"   
var campo_temp   
    for (var i=0;i<campo.value.length;i++){   
        campo_temp=campo.value.substring(i,i+1)   
        if (digits.indexOf(campo_temp)==-1){   
            campo.value = campo.value.substring(0,i);   
        }   
    }   
}

$(document).ready(function(){	
	$("#preferencia").selectbox();
	
	$("#telefonereserva").mask("(99) 9999-9999");			
	
	//PIKACHOOSE
	var a = function(self){
      self.anchor.attr('target','_blank');
	};
	$("#pikame").PikaChoose({buildFinished:a});
	
	$('.example-container > pre').each(function(i){
		eval($(this).text());
	});
	$('#horaentrada').timepicker({ minute: 00, showMinute:false }); /*stepMinute: 15*/
	$('#horasaida').timepicker({ minute: 00, showMinute:false }); /*stepMinute: 15*/
});

function mascaraHora(obj)
{
    dtH = obj.value;
    dtH=dtH.replace(/\D/g,"")  //permite digitar apenas números
    dtH=dtH.replace(/[0-9]{4}/,"")   //limita pra máximo 11:11
    dtH=dtH.replace(/(\d{2})(\d{1})/,"$1:$2")
    obj.value = dtH;
}

 $(function()
{
	var cal;
	var $this;

	var checkForMouseout = function(event)
	{
		var el = event.target;
		
		while (true){
			if (el == cal) {
				return true;
			} else if (el == document) {
				$this.dpClose();
				return false;
			} else {
				el = $(el).parent()[0];
			}
		}
	};

	$('#dataereserva')
		.datePicker({format:'dd/mm/yyyy',clickInput:true})
		.bind(
			'dpDisplayed',
			function(event, datePickerDiv)
			{
				cal = datePickerDiv;
				$this = $(this);
				$(document).bind(
					'mouseover',
					checkForMouseout
				);
			}
		).bind(
			'dpClosed',
			function(e, selectedDates)
			{
				var d = selectedDates[0];
				if (d) {
					d = new Date(d);
					$('#datasreserva').dpSetStartDate(d.addDays(1).asString());
				}
				$(document).unbind(
					'mouseover',
					checkForMouseout
				);
			}						
		).bind(
			'dateSelected',
			function(e, selectedDate, $td)
			{
				var data_selecionada=selectedDate.asString().split("/");
				$("#dataediareserva").val(data_selecionada[0]);
				$("#dataemesreserva").val(data_selecionada[1]);
				$("#dataeanoreserva").val(data_selecionada[2]);
			}
		);
		
	$('#datasreserva')
		.datePicker({format:'dd/mm/yyyy',clickInput:true})
		.bind(
			'dpDisplayed',
			function(event, datePickerDiv)
			{
				cal = datePickerDiv;
				$this = $(this);
				$(document).bind(
					'mouseover',
					checkForMouseout
				);
			}
		).bind(
			'dpClosed',
			function(event, selected)
			{
				$(document).unbind(
					'mouseover',
					checkForMouseout
				);
			}
		).bind(
			'dateSelected',
			function(e, selectedDate, $td)
			{
				var data_selecionada=selectedDate.asString().split("/");
				$("#datasdiareserva").val(data_selecionada[0]);
				$("#datasmesreserva").val(data_selecionada[1]);
				$("#datasanoreserva").val(data_selecionada[2]);
			}
		);
});

var dtCh= "/";
var minYear=1900;
var maxYear=2100;

function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}

var dateDif = {
 dateDiff: function(strDate1,strDate2){
 return (((Date.parse(strDate2))-(Date.parse(strDate1)))/(24*60*60*1000)).toFixed(0);
 }
}

function diasEntreDatas(dataInicial, dataFinal) 
{
 var mes, dataAtual, dataInicial, arrDataInicial, novaDataInicial, diasEntreDatas;
 mes = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");

 arrDataFinal = dataFinal.split('/');
 arrDataInicial = dataInicial.split('/');
 novaDataInicial = mes[(arrDataInicial[1] - 1)] + ' ' + arrDataInicial[0] + ' ' + arrDataInicial[2];
 novaDataFinal = mes[(arrDataFinal[1] - 1)] + ' ' + arrDataFinal[0] + ' ' + arrDataFinal[2];
 diasEntreDatas = dateDif.dateDiff(novaDataInicial, novaDataFinal);
 return parseInt(diasEntreDatas);
 //alert(diasEntreDatas + " dias");
}


function isDate(dtStr){
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strDay=dtStr.substring(0,pos1)
	var strMonth=dtStr.substring(pos1+1,pos2)
	var strYear=dtStr.substring(pos2+1)
	strYr=strYear
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)
	if (pos1==-1 || pos2==-1){
		alert("O formato para data deve ser : dd/mm/yyyy")
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
		alert("Por favor informe um mês válido!")
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		alert("Por favor informe um dia válido!")
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		alert("Por favor informe um ano válido com 4 dígitos e que esteja entre "+minYear+" e "+maxYear+"!")
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		alert("Por favor informe uma data válida!");
		return false
	}
return true
}

function isHora(horario){ 
	hrs = parseInt(horario.substring(0,2)); 
	min = parseInt(horario.substring(3,5));
	      
	estado = ""; 

	if ((hrs < 00 ) || (hrs > 23) || isNaN(hrs)==true || ( min < 00) ||( min > 59) || isNaN(min)==true){ 
		estado = "errada"; 
	} 
               
	if (estado == "errada") { 
		return false; 		 
	}else{
		return true;
	}		
} 

function valida_reserva(){
	if($("#nomereserva").val()==""){
		$("#alerta_reserva").html("");
		$("#alerta_reserva").html("O campo <strong>NOME COMPLETO</strong> não pode ficar em branco!");
		$("#nomereserva").focus();
		return false;
	}
	if($("#telefonereserva").val()==""){
		$("#alerta_reserva").html("");
		$("#alerta_reserva").html("O campo <strong>TELEFONE</strong> não pode ficar em branco!");
		$("#telefonereserva").focus();
		return false;
	}
	if($("#emailreserva").val()==""){
		$("#alerta_reserva").html("");
		$("#alerta_reserva").html("O campo <strong>E-MAIL</strong> não pode ficar em branco!");
		$("#emailreserva").focus();
		return false;
	}else{
		if(!IsEmail($("#emailreserva").val())){
			$("#alerta_reserva").html("");
			$("#alerta_reserva").html("Informe um <strong>E-MAIL VÁLIDO</strong> para o campo E-MAIL!");
			$("#emailreserva").focus();
			return false;	
		}
	}
	if($("#dataediareserva").val()==""){
		$("#alerta_reserva").html("");
		$("#alerta_reserva").html("O campo <strong>DATA DE ENTRADA</strong> deve ser preenchido corretamente!");
		$("#dataediareserva").focus();
		return false;
	}
	
	if($("#dataemesreserva").val()==""){
		$("#alerta_reserva").html("");
		$("#alerta_reserva").html("O campo <strong>DATA DE ENTRADA</strong> deve ser preenchido corretamente!");
		$("#dataemesreserva").focus();
		return false;
	}
	if($("#dataeanoreserva").val()==""){
		$("#alerta_reserva").html("");
		$("#alerta_reserva").html("O campo <strong>DATA DE ENTRADA</strong> deve ser preenchido corretamente!");
		$("#dataeanoreserva").focus();
		return false;
	}
	
	if($("#dataediareserva").val()!="" && $("#dataemesreserva").val()!="" && $("#dataeanoreserva").val()!=""){
		var dataentrada=$("#dataediareserva").val()+"/"+$("#dataemesreserva").val()+"/"+$("#dataeanoreserva").val();
		if(isDate(dataentrada)==false){
			$("#alerta_reserva").html("");
			$("#alerta_reserva").html("Informe uma data válida no campo <strong>DATA DE ENTRADA</strong>!");
			$("#dataediareserva").focus();
			return false;		
		}
	}
	
	if($("#datasdiareserva").val()==""){
		$("#alerta_reserva").html("");
		$("#alerta_reserva").html("O campo <strong>DATA DE SA&Iacute;DA</strong> deve ser preenchido corretamente!");
		$("#datasdiareserva").focus();
		return false;
	}
	if($("#datasmesreserva").val()==""){
		$("#alerta_reserva").html("");
		$("#alerta_reserva").html("O campo <strong>DATA DE SA&Iacute;DA</strong> deve ser preenchido corretamente!");
		$("#datasmesreserva").focus();
		return false;
	}
	if($("#datasanoreserva").val()==""){
		$("#alerta_reserva").html("");
		$("#alerta_reserva").html("O campo <strong>DATA DE SA&Iacute;DA</strong> deve ser preenchido corretamente!");
		$("#datasanoreserva").focus();
		return false;
	}
	
	if($("#datasdiareserva").val()!="" && $("#datasmesreserva").val()!="" && $("#datasanoreserva").val()!=""){
		var datasaida=$("#datasdiareserva").val()+"/"+$("#datasmesreserva").val()+"/"+$("#datasanoreserva").val();
		if(isDate(datasaida)==false){
			$("#alerta_reserva").html("");
			$("#alerta_reserva").html("Informe uma data válida no campo <strong>DATA DE SAÍDA</strong>!");
			$("#datasdiareserva").focus();
			return false;		
		}
	}
	
	if(($("#dataediareserva").val()!="" && $("#dataemesreserva").val()!="" && $("#dataeanoreserva").val()!="") && ($("#datasdiareserva").val()!="" && $("#datasmesreserva").val()!="" && $("#datasanoreserva").val()!="")){
		var dataentrada=$("#dataediareserva").val()+"/"+$("#dataemesreserva").val()+"/"+$("#dataeanoreserva").val();
		var datasaida=$("#datasdiareserva").val()+"/"+$("#datasmesreserva").val()+"/"+$("#datasanoreserva").val();		
		
		if(diasEntreDatas(dataentrada, datasaida)<=0){
			$("#alerta_reserva").html("");
			$("#alerta_reserva").html("A <strong>DATA DE SAÍDA</strong> deve ser maior que a <strong>DATA DE ENTRADA</strong>!");
			$("#dataediareserva").focus();
			return false;		
		}		
	}
	
	if($("#horaentrada").val()==""){
		$("#alerta_reserva").html("");
		$("#alerta_reserva").html("Informe o <strong>HORÁRIO DE ENTRADA</strong>!");
		$("#horaentrada").focus();
		return false;
	}else{
		isHora($("#horaentrada").val());						
		if(isHora($("#horaentrada").val())==false){
			$("#alerta_reserva").html("");
			$("#alerta_reserva").html("Informe corretamente o <strong>HORÁRIO DE ENTRADA</strong>!");
			$("#horaentrada").focus();
			return false;
		}
	}
	
	if($("#horasaida").val()==""){
		$("#alerta_reserva").html("");
		$("#alerta_reserva").html("Informe o <strong>HORÁRIO DE SAÍDA</strong>!");
		$("#horasaida").focus();
		return false;
	}else{
		if(isHora($("#horasaida").val())==false){
			$("#alerta_reserva").html("");
			$("#alerta_reserva").html("Informe corretamente o <strong>HORÁRIO DE SAÍDA</strong>!");
			$("#horasaida").focus();
			return false;
		}
	}	
	
	if($("#numadultos").val()==""){
		$("#alerta_reserva").html("");
		$("#alerta_reserva").html("Informe o <strong>N&Uacute;MERO DE ADULTOS</strong>!");
		$("#numadultos").focus();
		return false;
	}else{
		if(isInteger($("#numadultos").val())==false){
			$("#alerta_reserva").html("");
			$("#alerta_reserva").html("Informe corretamente a <strong>QUANTIDADE DE ADULTOS</strong>!");
			$("#numadultos").focus();
			return false;
		}
	}
	if($("#numcriancas").val()==""){
		$("#alerta_reserva").html("");
		$("#alerta_reserva").html("Informe o <strong>N&Uacute;MERO DE CRIAN&Ccedil;AS</strong>!");
		$("#numcriancas").focus();
		return false;
	}else{
		if(isInteger($("#numcriancas").val())==false){
			$("#alerta_reserva").html("");
			$("#alerta_reserva").html("Informe corretamente a <strong>QUANTIDADE DE CRIANÇAS</strong>!");
			$("#numcriancas").focus();
			return false;
		}
	}
	/*
	if($("#preferencia").val()==""){
		$("#alerta_reserva").html("");
		$("#alerta_reserva").html("Selecione uma das opções para o campo <strong>PREFER&Ecirc;NCIA DE QUARTO</strong>!");
		$("#preferencia").focus();
		return false;
	}*/
	return true;
}

function validaLogin(){
		if($("#login_email").val()==""){
			//$("#erro_login").html("O campo <strong>E-MAIL</strong> não pode ficar em branco!");
			//$("#erro_login").show("fast");
			alert("O campo E-MAIL não pode ficar em branco!");
			$("#login_email").focus();
			return false;
		}else{
			if(!IsEmail($("#login_email").val())){
				//$("#erro_login").html("Informe um e-mail válido para o campo <strong>E-MAIL</strong>!");
				//$("#erro_login").show("fast");
				alert("Informe um e-mail válido para o campo E-MAIL!");
				$("#login_email").focus();
				return false;
			}
		}
		
		if($("#login_senha").val()==""){
			//$("#erro_login").html("O campo <strong>SENHA</strong> não pode ficar em branco!");
			//$("#erro_login").show("fast");
			alert("O campo SENHA não pode ficar em branco!");
			$("#login_senha").focus();
			return false;
		}
		return true;	
}
