﻿function jDetalhesPacote()
{
    var This = this;
    var jDS;
    var tpl;
    var codPacote;
    var valorPacoteHeader;
    var jDTHeader = null;
    
    this.codOperadoraPacote;

    var render = {
    	main: function() {
    		if (parseInt(jDS.getTotRegs("PacotesVB")) > 0) {
    			//tpl.tpl_main.servicos = render.listaServicos();
    			//tpl.tpl_main.opcionais = render.listaOpcionais();

    			tpl.tpl_main.headerPacote = DetalhesPacote.goTo.renderHeader(codPacote);

    			tpl.tpl_main.imagem = jDS.getDrValue("Localidades", 0, "Thumbnail");
    			tpl.tpl_main.nomeDestino = jDS.getDrValue("Localidades", 0, "Nome");

    			//tpl.tpl_main.termosCondicoes = jDS.getDrValue("PacotesVB", 0, "TermosCondicoes");

    			if (jDS.getDrValue("PacotesVB", 0, "Requisitos") != '')
    				tpl.tpl_main.requisitos = jDS.getDrValue("PacotesVB", 0, "Requisitos");
    			else
    				tpl.tpl_main.noneRequisitos = 'none';

    			if (jDS.getDrValue("PacotesVB", 0, "Observacoes") != '')
    				tpl.tpl_main.observacoes = jDS.getDrValue("PacotesVB", 0, "Observacoes");
    			else
    				tpl.tpl_main.noneObservacoes = 'none';

    			if (jDS.getDrValue("PacotesVB", 0, "Inclui") != '')
    				tpl.tpl_main.inclui = jDS.getDrValue("PacotesVB", 0, "Inclui");
    			else
    				tpl.tpl_main.noneInclui = 'none';

    			if (jDS.getDrValue("PacotesVB", 0, "Nao_Inclui") != '')
    				tpl.tpl_main.naoInclui = jDS.getDrValue("PacotesVB", 0, "Nao_Inclui");
    			else
    				tpl.tpl_main.noneNaoInclui = 'none';

    			tpl.tpl_main.proximo = 'javascript:DetalhesPacote.goTo.roteiros(' + codPacote + ');';
    			tpl.tpl_main.voltar = 'javascript:history.back();';
    		}
    		return tpl.tpl_main.getHtml();
    	},

    	renderHeader: function(codPac, codPed) {
    		//jDTHeader = new jDatatable(clDetalhesPacote.getHeaderPacote(parseInt(codPac), parseInt(codPed)).value);
    		//if (parseInt(jDTHeader.getTotRegs()) > 0) {
    		//	tplCommon.tpl_header_pacote.imagem = (jDTHeader.getDrValue(0, "imagem") != "" ? jDTHeader.getDrValue(0, "imagem") : "imgs/noImg.jpg");
    		//	tplCommon.tpl_header_pacote.titulo = jDTHeader.getDrValue(0, "titulo");
    		//	tplCommon.tpl_header_pacote.operadora = jDTHeader.getDrValue(0, "operadora");
    		//	tplCommon.tpl_header_pacote.descricao = jDTHeader.getDrValue(0, "descricao");
    		//	tplCommon.tpl_header_pacote.validade = jDTHeader.getDrValue(0, "validade");
    		//	tplCommon.tpl_header_pacote.nomeDestino = jDTHeader.getDrValue(0, "nomeDestino");
    		//
    		//	if ((jDTHeader.getDrValue(0, "DataSaida") != "")) {
    		//		//$('idDataSaida').style.display = '';
    		//		tplCommon.tpl_header_pacote.dtSaida = jDTHeader.getDrValue(0, "DataSaida");
    		//		tplCommon.tpl_header_pacote.dtSaidaDisplay = '';
    		//	} else {
    		//		tplCommon.tpl_header_pacote.dtSaidaDisplay = 'none';
    		//	};
    		//
    		//	tplCommon.tpl_header_pacote.moeda = 'R$ ';
    		//	tplCommon.tpl_header_pacote.valor = parseFloat(jDTHeader.getDrValue(0, "valor")).formatNumber(2, true);
    		//	valorPacoteHeader = jDTHeader.getDrValue(0, "valor");
    		//};
    		//return tplCommon.tpl_header_pacote.getHtml();

    		/*  */
    		var headerResult = clDetalhesPacote.getHeaderPacote(parseInt(codPac), parseInt(codPed)).value;
    		jDTHeader = new jDatatable(headerResult);

    		if (headerResult != null && headerResult.rows.length > 0) {
    			headerResult = headerResult.rows[0];

    			tplCommon.tpl_header_pacote.imagem = headerResult.imagem != '' ? headerResult.imagem : 'imgs/noImg.jpg';
    			tplCommon.tpl_header_pacote.titulo = headerResult.titulo;
    			tplCommon.tpl_header_pacote.operadora = headerResult.operadora;
    			tplCommon.tpl_header_pacote.descricao = headerResult.descricao;
    			tplCommon.tpl_header_pacote.nomeDestino = headerResult.nomeDestino;

	   			if (headerResult.validade != null) {
    				// fixDST
    				// Fixing javascript behavior on automatically adjusting Daylight Saving Time (2011-10-16, for example). - Hilton
    				if (headerResult.validade.getHours() != 0) {
    					var offset = 12 - headerResult.validade.addHours(12).getHours();
    					offset += 1; // + 1 porque o javascript vai tentar "corrigir" a data novamente se a hora for definida como "0";
    					tplCommon.tpl_header_pacote.validade = headerResult.validade.addHours(offset).toString("dd/MM/yyyy");
    				} else {
    					tplCommon.tpl_header_pacote.validade = headerResult.validade.toString("dd/MM/yyyy");
    				};
    			};

    			if (headerResult.DataSaida != null) {
    				// fixDST
    				// Fixing javascript behavior on automatically adjusting Daylight Saving Time (2011-10-16, for example). - Hilton
    				if (headerResult.DataSaida.getHours() != 0) {
    					var offset = 12 - headerResult.DataSaida.addHours(12).getHours();
    					offset += 1; // + 1 porque o javascript vai tentar "corrigir" a data novamente se a hora for definida como "0";
    					tplCommon.tpl_header_pacote.dtSaida = headerResult.DataSaida.addHours(offset).toString("dd/MM/yyyy");
    				} else {
    					tplCommon.tpl_header_pacote.dtSaida = headerResult.DataSaida.toString("dd/MM/yyyy");
    				};
    				tplCommon.tpl_header_pacote.dtSaidaDisplay = '';
    			} else {
    				tplCommon.tpl_header_pacote.dtSaidaDisplay = 'none';
    			};

    			tplCommon.tpl_header_pacote.moeda = 'R$ ';
    			tplCommon.tpl_header_pacote.valor = parseFloat(headerResult.valor).formatNumber(2, true);

    			valorPacoteHeader = headerResult.valor;
    		};

    		return tplCommon.tpl_header_pacote.getHtml();
    		/*  */
    	},

    	listaServicos: function() {
    		var sb = new StringBuilder();

    		for (var i = 0; i < parseInt(jDS.getTotRegs("ServicosInclusos")); i++) {
    			sb.append(jDS.getDrValue("ServicosInclusos", i, "Descricao_HTML") + '</br>');
    		};

    		return sb.toString();
    	},

    	listaOpcionais: function() {
    		var sb = new StringBuilder();

    		for (var i = 0; i < parseInt(jDS.getTotRegs("ServicosOpcionais")); i++) {
    			sb.append(jDS.getDrValue("ServicosOpcionais", i, "Descricao_HTML") + '</br>');
    		};

    		return sb.toString();
    	},

    	loading: function() {
    		var sb = new StringBuilder();
    		sb.append("<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />");
    		sb.append("<center>");
    		sb.append(tplCommon.tpl_loading.getHtml());
    		sb.append("</center>");
    		return sb.toString();
    	}
    };
    
    var ctrlRefs = {
        siteConteudo: function() { return $('siteConteudo'); },      
        divDetalhesPacote: function() { return $('divDetalhesPacote'); }
    };
    
    var callBacks = {
        detalhes: function(res)
        {
            if (res.value != undefined)
            {
                jDS = new jDataset(res.value);
                $html(ctrlRefs.siteConteudo(), render.main());
                
                This.codOperadoraPacote = res.value.tables.PacotesVB.rows[0].CodEmpresaOperadora;
                
                if (valorPacoteHeader == "")
                {
                    $html('valorPacoteHeader', "N/D");
                    $('moedaValorPacoteHeader').style.display = 'none';
                }
                else
                {
                    $html('valorPacoteHeader', parseFloat(valorPacoteHeader).formatNumber(2, true));
                    $('moedaValorPacoteHeader').style.display = '';
                };
            };
        }
    };
    
    var startEnv = {
        main: function()
        {        
            if ($queryString('areaAgente') == 'true')
            {
                document.body.style.background = '#FFFFFF';
                $('centroTopoPeq').style.display = 'none';
                
            };
            
            codPacote = parseInt($queryString('codPacote'));
            $html(ctrlRefs.siteConteudo(), render.loading());
            clDetalhesPacote.getDetalhes(codPacote, callBacks.detalhes);            
        }
    };
    
    this.goTo = {
        main: function()
        {
            startEnv.main();            
        },
        roteiros: function(codPacote)
        {
            window.scroll(0, 0);
            $html(ctrlRefs.siteConteudo(), render.loading());
            initRoteirosPacote();
        },
        renderHeader: function(codPac, codPed) 
        {
            var cPed = 0;
            if (codPed != undefined)
                cPed = codPed;
                
            return render.renderHeader(codPac, cPed);
        }
    };
    
    this.exec = {
        getJDTheader: function(pCodPedido)
        {
            if (jDTHeader == null)
                jDTHeader = new jDatatable(clDetalhesPacote.getHeaderPacote(parseInt(codPacote), parseInt(pCodPedido)).value);
                
            return jDTHeader;
        }
    };
    
    this.constructor = new function()
    {
        tpl = new Template("DetalhesPacote");
        tplCommon = new Template("Common");
    };
};

