// JS/PADRAO.JS
// funcao corrige flash no IE
function embeds(url,w,h){
document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="'+w+'" height="'+h+'">');
document.write('<param name="movie" value="'+url+'">');
document.write('<param name="quality" value="high">');
document.write('<param name="wmode" value="transparent">');
document.write('<param name="menu" value="false">');
document.write('<embed src="'+url+'" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="'+w+'" height="'+h+'" wmode="transparent"></embed>');
document.write('</object>');
}
//-->

function movecursor(){document.formAjax.dtInicio.focus()}

// Limpa form da data
function limpaform(f){
			if(f.value=='dd/mm/aaaa'){f.value=''}
}

// Preenche form da data
function preencheform(f){
			if(f.value==''){f.value='dd/mm/aaaa'}
}

// Limpa form da data
function limpaformfone(f){
			if(f.value=='(ddd) numero'){f.value=''}
}

// Preenche form da data
function preencheformfone(f){
			if(f.value==''){f.value='(ddd) numero'}
}

//-->

// Função para criar mascaras diversas - numero, etc
// para chamar, no XHTML utiliza Ex: <input id="numero1" onkeypress="mascara(this,soNumeros)" />
function mascara(o,f){
    v_obj=o
    v_fun=f
    setTimeout("execmascara()",1)
}

function execmascara(){
    v_obj.value=v_fun(v_obj.value)
}

function soNumeros(v){
    return v.replace(/\D/g,"")
}

function fone(v){
    v=v.replace(/\D/g,"")                 //Remove tudo o que não é dígito
    v=v.replace(/^(\d\d)(\d)/g,"($1) $2") //Coloca parênteses em volta dos dois primeiros dígitos
    v=v.replace(/(\d{4})(\d)/,"$1-$2")    //Coloca hífen entre o quarto e o quinto dígitos
    return v
}

function cpf(v){
    v=v.replace(/\D/g,"")                    //Remove tudo o que não é dígito
    v=v.replace(/(\d{3})(\d)/,"$1.$2")       //Coloca um ponto entre o terceiro e o quarto dígitos
    v=v.replace(/(\d{3})(\d)/,"$1.$2")       //Coloca um ponto entre o terceiro e o quarto dígitos
                                             //de novo (para o segundo bloco de números)
    v=v.replace(/(\d{3})(\d{1,2})$/,"$1-$2") //Coloca um hífen entre o terceiro e o quarto dígitos
    return v
}

function cep(v){
    v=v.replace(/D/g,"")                //Remove tudo o que não é dígito
    v=v.replace(/^(\d{5})(\d)/,"$1-$2") //Esse é tão fácil que não merece explicações
    return v
}

function cnpj(v){
    v=v.replace(/\D/g,"")                           //Remove tudo o que não é dígito
    v=v.replace(/^(\d{2})(\d)/,"$1.$2")             //Coloca ponto entre o segundo e o terceiro dígitos
    v=v.replace(/^(\d{2})\.(\d{3})(\d)/,"$1.$2.$3") //Coloca ponto entre o quinto e o sexto dígitos
    v=v.replace(/\.(\d{3})(\d)/,".$1/$2")           //Coloca uma barra entre o oitavo e o nono dígitos
    v=v.replace(/(\d{4})(\d)/,"$1-$2")              //Coloca um hífen depois do bloco de quatro dígitos
    return v
}

function data(v){
    v=v.replace(/D/g,"")                //Remove tudo o que não é dígito
    v=v.replace(/^(\d{2})(\d)/,"$1/$2")             //Coloca barra entre o segundo e o terceiro dígitos
    v=v.replace(/^(\d{2})\/(\d{2})(\d)/,"$1/$2/$3") //Coloca barra entre o quarto e o quinto dígitos
    v=v.replace(/(\d{2})\/(\d{2})\/([0-1])/,"$1/$2/20$3") //Coloca mais dois digitos
    return v
}
//-->




// JS/BIBLIOTECA-AJAX.JS
var ajax;
var dadosUsuario;

// ------ cria o objeto e faz a requisicao ------
function requisicaoHTTP(tipo,url,assinc){
	if (window.XMLHttpRequest){ // Mozilla, Safari,...
		ajax = new XMLHttpRequest();
	}
	else if (window.ActiveXObject){// IE
		ajax = new ActiveXObject("Msxml2.XMLHTTP");
		if (!ajax){
			ajax = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	if(ajax){ //iniciou com sucesso
		iniciaRequisicao(tipo,url,assinc);
	}
	else {
		alert("Seu navegador não possui suporte a Ajax, atualize a sua versão");
	}
}

// ------ Inicia o objeto criado e envia os dados (se existirem) ------
function iniciaRequisicao(tipo,url,bool){
		ajax.onreadystatechange=trataResposta;
		ajax.open(tipo,url,bool);
		ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
		ajax.send(dadosUsuario);
}

// ------ Inicia requisicao com envio de dados ------
function enviaDados(url){
	criaQueryString();
	requisicaoHTTP("POST",url,true);
}

// ------ Cria a string a ser enviada, formato campo1=valor1&campo2=valor2... ------
function criaQueryString(){
	dadosUsuario="";
	var frm = document.getElementById("formAjax");
	var numElementos = frm.elements.length;
	for(var i = 0; i < numElementos; i++) {
		if(i < numElementos-1) {
			dadosUsuario += frm.elements[i].name+"=" + encodeURIComponent(frm.elements[i].value)+"&";
		} else {
			var nocache = Math.random();
			dadosUsuario += form.elements[i].name+"=" + encodeURIComponent(frm.elements[i].value)+"&nocache = "+nocache;
		}
	}
}

// ------ Trata a resposta do servidor ------
function trataResposta(){
	if(ajax.readyState == 4){
		if(ajax.status==200){
			trataDados(); //criar essa funcao no seu programa
		} else {
			alert("Problema na comunicação com o servidor, favor tente mais tarde.")
		}
	}
}


// ------ cria o objeto e faz a requisição ------
function requisicaoHTTP2(tipo,url,assinc){
	if (window.XMLHttpRequest){ // Mozilla, Safari,...
		ajax = new XMLHttpRequest();
	}
	else if (window.ActiveXObject){// IE
		ajax = new ActiveXObject("Msxml2.XMLHTTP");
		if (!ajax){
			ajax = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	if(ajax){ //iniciou com sucesso
		iniciaRequisicao2(tipo,url,assinc);
	}
	else {
		alert("Seu navegador não possui suporte a Ajax, atualize a sua versão");
	}
}

// ------ Inicia o objeto criado e envia os dados (se existirem) ------
function iniciaRequisicao2(tipo,url,bool){
		ajax.onreadystatechange=trataResposta2;
		ajax.open(tipo,url,bool);
		ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
		ajax.send(dadosUsuario);
}

// ------ Inicia requisição com envio de dados ------
function enviaDados2(url){
	criaQueryString2();
	requisicaoHTTP2("POST",url,true);
}

// ------ Cria a string a ser enviada, formato campo1=valor1&campo2=valor2... ------
function criaQueryString2(){
	dadosUsuario="";
	var frm = document.getElementById("formAjax2");
	var numElementos = frm.elements.length;
	for(var i = 0; i < numElementos; i++) {
		if(i < numElementos-1) {
			dadosUsuario += frm.elements[i].name+"=" + encodeURIComponent(frm.elements[i].value)+"&";
		} else {
			var nocache = Math.random();
			dadosUsuario += form.elements[i].name+"=" + encodeURIComponent(frm.elements[i].value)+"&nocache = "+nocache;
		}
	}
}

// ------ Trata a resposta do servidor 2 ------
function trataResposta2(){
	if(ajax.readyState == 4){
		if(ajax.status==200){
			trataDados2(); //criar essa função no seu programa
		} else {
			alert("Problema na comunicação com o servidor, favor tente mais tarde.")
		}
	}
}
//-->





// JS/rsvnova-FNC.JS
var dtInicio;
var dtFim;
var aptoIdv;
var aptoDpl;
var aptoTpl;
var aptoQpp;


function loading() {
		var div = document.getElementById("resultadoAjax");
		div.innerHTML='<div class="loading1"><span><img src="http://www.hotelportofuturo.com.br/reserva/images/loading.gif" /></span></div>';

		var frm = document.getElementById("formAjax");
		frm.dtInicio.disabled = true;
		frm.dtFim.disabled = true;
		frm.aptoIdv.disabled = true;
		frm.aptoDpl.disabled = true;
		frm.aptoTpl.disabled = true;
		frm.aptoQdp.disabled = true;
}
 
function loading2() {
		var div = document.getElementById("formRsv");
		div.innerHTML='<div class="loading2"><span><img src="http://www.hotelportofuturo.com.br/reserva/images/loading.gif" /></span></div>';
}

function validaDat(valor) {
	var date=valor;
	var ardt=new Array;
	var ExpReg=new RegExp("(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/[12][0-9]{3}");
	ardt=date.split("/");
	erro=false;
	if ( date.search(ExpReg)==-1){
		erro = true;
		}
	else if (((ardt[1]==4)||(ardt[1]==6)||(ardt[1]==9)||(ardt[1]==11))&&(ardt[0]>30))
		erro = true;
	else if ( ardt[1]==2) {
		if ((ardt[0]>28)&&((ardt[2]%4)!=0))
			erro = true;
		if ((ardt[0]>29)&&((ardt[2]%4)==0))
			erro = true;
	}
	if (erro) {
	} else {
		return true;
	}
}


function limpaResultadoAjax(){
	var url="/reserva/includes/rsvnova-limpa-ajax.php";
	requisicaoHTTP("GET",url,true);
}


function enviaDtInicio(dtInicio){
	if(dtInicio){
		limpaResultadoAjax();
	}
}

function enviaDtFim(dtFim){
	if(dtFim){
		limpaResultadoAjax();
	}
}

function enviaDtInicioeFim(dtInicioeFim){
	if(dtInicioeFim){
		limpaResultadoAjax();
	}
}


function enviaAptoIdv(aptoIdv){
	if(aptoIdv){
		limpaResultadoAjax();
	}
}

function enviaAptoDpl(aptoDpl){
	if(aptoDpl){
		limpaResultadoAjax();
	}
}

function enviaAptoTpl(aptoTpl){
	if(aptoTpl){
		limpaResultadoAjax();
	}
}

function enviaAptoQdp(aptoQdp){
	if(aptoQdp){
		limpaResultadoAjax();
	}
}


function enviaDadosRsv(dtInicio, dtFim, aptoIdv, aptoDpl, aptoTpl, aptoQdp, dadosReserva) {
		loading();
		var url="/reserva/rsvnova-passo1.php?dtInicio="+dtInicio+"&dtFim="+dtFim+"&aptoIdv="+aptoIdv+"&aptoDpl="+aptoDpl+"&aptoTpl="+aptoTpl+"&aptoQdp="+aptoQdp+"&enviaDadosReserva="+dadosReserva;
		requisicaoHTTP("GET",url,true);
}

function enviaFrmPgto(forma){
	if(forma){
		loading2();
		var url="/reserva/rsvnova-passo2.php?frmPgto="+forma;
		requisicaoHTTP2("GET",url,true);
	}
}

function enviaDadosHspd(nomeCliente, emailCliente, emailCliente2, dadosPessoal) {
		loading2();
		var url="/reserva/rsvnova-passo3.php?nomeCliente="+escape(nomeCliente)+"&emailCliente="+escape(emailCliente)+"&emailCliente2="+escape(emailCliente2)+"&enviaDadosPessoal="+dadosPessoal;
		requisicaoHTTP2("GET",url,true);
}


//acionado na volta do passo 2 para o 1 - igual ao js no footer
function carregaCalendarVolta() {

	// traducao
	$.tools.dateinput.conf.lang = 'pt';

	$.tools.dateinput.localize("pt",  {
	   months:      'janeiro,fevereiro,março,abril,maio,junho,julho,agosto,' +
					'setembro,outubro,novembro,dezembro',
	   shortMonths: 'jan,fev,mar,abr,mai,jun,jul,ago,set,out,nov,dez',
	   days:        'domingo,segunda,terça,quarta,quinta,sexta,sábado',
	   shortDays:   'dom,seg,ter,qua,qui,sex,sáb'
	});

	$(":date").dateinput({
		trigger: true, 
		min: -1,
		max: 363,

		// formato exibido ao usuario
		format: 'dd/mm/yyyy'
	})

	// usa a mesma chamada para os dois eventos. possivel com bind
	$(":date").bind("onShow onHide", function()  {
		$(this).parent().toggleClass("active"); 
	});

	//quando a primeira data e alterada
	$(":date:first").data("dateinput").change(function() {

		//dt final nao pode ser menor que a inicial
		$(":date:last").data("dateinput").setMin(this.getValue());
		
		//define a dt final igual a inicial
		$(":date:last").data("dateinput").setValue(this.getValue());

		// envia dt inicial e final para calculo de preço
		enviaDtInicioeFim(this.getValue('dd/mm/yyyy'));
	});

	// quando a ultima data e alterada 
	$(":date:last").data("dateinput").change(function() {

		// envia dt final para calculo de preço
		enviaDtFim(this.getValue('dd/mm/yyyy'))

	});
	
	//carrega tambem os overlays
	$(".bt-diariaspromo").overlay({
		mask: 'white',
		effect: 'apple',
		onBeforeLoad: function() {
			// grab wrapper element inside content
			var wrap = this.getOverlay().find(".content-diarias");
			// load the page specified in the trigger
			wrap.load(this.getTrigger().attr("href"));
		}
	});

	$(".bt-qualapto").overlay({
		mask: 'white',
		effect: 'apple',
		onBeforeLoad: function() {
			// grab wrapper element inside content
			var wrap = this.getOverlay().find(".content-qualapto");
			// load the page specified in the trigger
			wrap.load(this.getTrigger().attr("href"));
		}
	});

	$(".bt-rsvdetalhes").overlay({
		mask: 'white',
		effect: 'apple',
		onBeforeLoad: function() {
			// grab wrapper element inside content
			var wrap = this.getOverlay().find(".content-rsvdetalhes");
			// load the page specified in the trigger
			wrap.load(this.getTrigger().attr("href"));
		}
	});	
	
	$(".bt-termos").overlay({
		mask: 'white',
		effect: 'apple',
		onBeforeLoad: function() {
			// grab wrapper element inside content
			var wrap = this.getOverlay().find(".content-termos");
			// load the page specified in the trigger
			wrap.load(this.getTrigger().attr("href"));
		}
	});

}

function voltarPasso1(){
	loading2();
	var url="/reserva/includes/rsvnova-passo1-form.php";
	requisicaoHTTP2("GET",url,true);
}

function voltarPasso2(){
	loading2();
	var url="/reserva/rsvnova-passo2.php";
	requisicaoHTTP2("GET",url,true);
}

function trataDados(){
	var info= ajax.responseText; //obtem a resposta como html
	var div = document.getElementById("resultadoAjax");
	div.innerHTML=info;
	
	var frm = document.getElementById("formAjax");
	frm.dtInicio.disabled = false;
	frm.dtFim.disabled = false;
	frm.aptoIdv.disabled = false;
	frm.aptoDpl.disabled = false;
	frm.aptoTpl.disabled = false;
	frm.aptoQdp.disabled = false;
}

function trataDados2(){ //substitui form inteiro
	var info= ajax.responseText; //obtem a resposta como html
	var div = document.getElementById("formRsv");
	div.innerHTML=info;
	carregaCalendarVolta();
}
//-->

