﻿// JScript File


function apresentaMaisOpcoesDeAereo(numeroTab)
{
    /******************************/
    /* limpa o contexto desta aba */
    /******************************/
    ds = null;
    
    /******************************/

    // define o dataset desta aba
    ds = getTabDataSet(numeroTab);
    
    // verifica o contexto da tab
    var dtContexto = getTabContext(numeroTab);
    
    // se ainda não tiver definido o contexto, contrói o HTML e os elementos
    if (dtContexto == null)
    {
        controiMaisOpcoesDeAereo(numeroTab);
        
        salvaContextoDaAbaMaisOpcoes(numeroTab);
    }
    else // recupera o contexto desta aba
    {
        var drVariaveisDeAba = dtContexto.rows[0];
        
        sourcesRanking = drVariaveisDeAba.sourcesRanking;
        $('divConteudo').innerHTML = drVariaveisDeAba.html;
    }
}

function controiMaisOpcoesDeAereo(numeroTab)
{
    // template
    var maisOpcoes = templates.MaisOpcoes;
    maisOpcoes.trechosDetalheVoo = "";
    maisOpcoes.empresas = "";

    var codOpcaoMP = ds.tables.MaisOpcoes.rows[0]["codOpcaoMP"];
        
    // vôos
    // filtra os datasets
    var iterator = ds.tables.OpcoesMP.getIterator('codOpcaoMP');
    iterator.findByKey(codOpcaoMP);

    if (iterator.count() > 0)
    {
        maisOpcoes.trechosDetalheVoo = buscaDetalhesMaisOpcoes(iterator);
        
        switch(iterator.row.moeda)
        {
            case "USD":
                maisOpcoes.price = "U$";
                break;
                
            case "BRL":
                maisOpcoes.price = "R$";
                break;
            
            case "EUR":
                maisOpcoes.price = "EU$";
                break;
                
            default:
                maisOpcoes.price = "";
                break;
        }
        
        maisOpcoes.price += iterator.row.tarifaADT.formatNumber(2, true);
        
        // empresas
        // as empresas para essa busca/source
        var iSourceRank = 0;
        for (iSourceRank = 0; iSourceRank < sourcesRanking.count(); iSourceRank++)
        {
            if (sourcesRanking[iSourceRank][0] == iterator.row.sourceCode)
            {
                break;
            }
        }
        if (iSourceRank < sourcesRanking.count())
        {
            var listaEmpresas = "";
            var empresa = templates.LinhaMaisOpcoes;
            var zero =  "0";
            var encontrouClickViagem = false;
            
            var pos = 2;
            for (var i = 1; i < sourcesRanking[iSourceRank].length; i++)
            {
                if (sourcesRanking[iSourceRank][i][0] != "")
                {
                    if (sourcesRanking[iSourceRank][i][0].indexOf("Click Viagem") > -1)
                    {
                        encontrouClickViagem = true;
                    }
                    
                    // link de checkout
                    empresa.linkCheckOut = "\"javascript:try{urchinTracker('/redirect_prod');}catch(ex){} CheckOut(" + iSourceRank + "," + i + "," + codOpcaoMP + "," + pos + ");\"";
                    
                    // TelefonePPC
                    if (sourcesRanking[iSourceRank][i][7] == "")
                    {
                        empresa.estiloMostrarPPC = "'display:none;'";
                    }
                    else
                    {
                        empresa.estiloMostrarPPC = "'display:inline;'";
                    }
                    empresa.telefonePPC = sourcesRanking[iSourceRank][i][7];
                    
                    // selo BuscaPé
                    if (sourcesRanking[iSourceRank][i][6] == true)
                    {
                        empresa.estiloDivSelo = "display:block;";
                    }
                    else
                    {
                        empresa.estiloDivSelo = "display:none;";
                    }
                    empresa.linkSelo = 'http://www.buscape.com.br/popselo.asp?id_emp=' + sourcesRanking[iSourceRank][i][1];
                    
                    // avaliação da empresa
                    empresa.estiloDivAvaliacao = "display:block;";
                    empresa.estiloLinkDetalhes = "display:block;";
                    empresa.linkAvaliacao = 'http://preco.buscape.com.br/opiniao_loja.asp?emp_id=' + sourcesRanking[iSourceRank][i][1];
                    empresa.linkAvalie = 'http://preco.buscape.com.br/opiniao_loja1.asp?emp_id=' + sourcesRanking[iSourceRank][i][1];
                    empresa.linkDetalhesEmpresa = 'http://parceiro.buscape.com.br/endereco/detalhes?prod_id=1&emp_id=' + sourcesRanking[iSourceRank][i][1];
                    
                    // nota da empresa
                    empresa.textoNota = "nota&nbsp;=&nbsp;" + sourcesRanking[iSourceRank][i][4].toString() + " ";
                    
                    var iNota = 1;
                    for (iNota = 1; iNota <= 5; iNota++)
                    {
                        var imagemNota = "";
                        if (iNota <= Math.floor(sourcesRanking[iSourceRank][i][4] / 2))
                        {
                            imagemNota = "images/BuscaPe/ee2_c.gif";
                        }
                        else if (iNota <= Math.ceil(sourcesRanking[iSourceRank][i][4] / 2))
                        {
                            imagemNota = "images/BuscaPe/ee2_m.gif";
                        }
                        else
                        {
                            imagemNota = "images/BuscaPe/ee2_v.gif";
                        }   
                        switch (iNota)
                        {
                            case 1:
                                empresa.imagemNota1 = imagemNota;
                                break;
                            case 2:
                                empresa.imagemNota2 = imagemNota;
                                break;
                            case 3:
                                empresa.imagemNota3 = imagemNota;
                                break;
                            case 4:
                                empresa.imagemNota4 = imagemNota;
                                break;
                            case 5:
                                empresa.imagemNota5 = imagemNota;
                                break;
                        }
                    }
                    
                    // opiniões sobre a empresa
                    empresa.qtdOpinioes = sourcesRanking[iSourceRank][i][5];
                    
                    // verifica se a empresa possui logo
                    if (sourcesRanking[iSourceRank][i][3] == true || sourcesRanking[iSourceRank][i][3] == "true")
                    {
                        empresa.styleDivLogo = "display:block;";
                        empresa.logo = 'http://imagem.buscape.com.br/vitrine/logo' + sourcesRanking[iSourceRank][i][1] +'.gif';
                        empresa.styleDivNomeEmpresa = "display:none;";
                    }
                    else
                    {
                        empresa.styleDivLogo = "display:none;";
                        empresa.nomeEmpresa = sourcesRanking[iSourceRank][i][0];
                        empresa.styleDivNomeEmpresa = "display:block;";
                    }
                    
                    empresa.preco = 'R$ ' + iterator.row.tarifaADT.formatNumber(2, true);
                    listaEmpresas += empresa.getHtml();
                }
                else
                {
                    break;
                }
                 pos = pos + 1;
            }
            
/*
            if (encontrouClickViagem == false)
            {
                // link de checkout
                empresa.linkCheckOut = "\"javascript:try{urchinTracker('/redirect_prod');}catch(ex){} CheckOut(" + -1 + ", " + -1 + "," + codOpcaoMP + "," + 1 + ");\"";
                empresa.estiloMostrarPPC = "'display:none;'";
                empresa.estiloDivSelo = "display:none;";
                empresa.estiloDivAvaliacao = "display:none;";
                empresa.estiloLinkDetalhes = "display:none;";
                empresa.linkAvaliacao = "";
                empresa.linkAvalie = "";
                empresa.linkDetalhesEmpresa = "";
                empresa.textoNota = "";
                empresa.qtdOpinioes = "";
                empresa.styleDivLogo = "display:block;";
                empresa.logo = 'images/BuscaPe/clickViagem.jpg';
                empresa.styleDivNomeEmpresa = "display:none;";
                empresa.preco = 'R$ ' + iterator.row.tarifaADT.formatNumber(2, true);
                listaEmpresas = empresa.getHtml() + listaEmpresas;
            }
*/
            maisOpcoes.empresas += listaEmpresas;
           
        }
    }
        
    iterator.dispose();

    $('divConteudo').innerHTML = maisOpcoes.getHtml();
}

function salvaContextoDaAbaMaisOpcoes(numeroTab)
{
    if($("divAguarde").style.display != "none")
    {
        $("divAguarde").style.display != "none"
    }

    var dtContexto = dtVariaveisDeAba.clone();

    var drVariaveisDeAba = dtContexto.newRow();
    
    try
    {
        drVariaveisDeAba.sourcesRanking = sourcesRanking.copy();
    }
    catch(ex){}
    drVariaveisDeAba.html = $('divConteudo').innerHTML;
    
    dtContexto.addRow(drVariaveisDeAba);
    
    setTabContext(numeroTab, dtContexto.copy());
}

function buscaDetalhesMaisOpcoes(iterator)
{
    var detalhesVoo = "";
    
    // instancia os templates
    var trechoDetalheVoo = templates.TrechoDetalheVooMaisOpcoes;
    var linhaDetalheVoo = templates.LinhaDetalheVooMaisOpcoes;
    
    var posVoo = iterator.row.indicePrimeiroVoo - 1;
    var opcaoMP_Voo = ((posVoo > -1 && posVoo < ds.tables.OpcoesMP_Voos.rows.count())? ds.tables.OpcoesMP_Voos.rows[posVoo]:null);
    var voo = null;
    if (opcaoMP_Voo != null)
    {
        // se já sinalizou a linha do vôo, então, busca essa linha na tabela de vôos
        if (opcaoMP_Voo.indiceVoo != null && opcaoMP_Voo.indiceVoo != "" && opcaoMP_Voo.indicePrimeiroVoo > 0)
        {
            voo = ds.tables.Voos.rows[opcaoMP_Voo.indiceVoo - 1];
        }
        else // caso contrário, encontra a linha do vôo
        {
            iteratorVoosOpcoesMP.findByKey(opcaoMP_Voo.codVoo);
            if (iteratorVoosOpcoesMP.count() > 0)
            {
                voo = iteratorVoosOpcoesMP.row;
                opcaoMP_Voo.indiceVoo = iteratorVoosOpcoesMP._indexList[iteratorVoosOpcoesMP.index] + 1;
            }
        }
    }
    
    for (var iTrecho = 0; iTrecho <= (ds.tables.Trechos.rows.count() == 1 ? 0 : 1); iTrecho++)
    {
        var maisOpcoesIdaVolta = 0;
    
        linhaDetalheVoo.clearItems();
    
        if (ds.tables.Trechos.rows[iTrecho].codTrecho == 1)
        {
            linhaDetalheVoo.dataSaida = iterator.row["dataSaidaIda"].toString('dddd dd/MM/yyyy').capitalize();
            linhaDetalheVoo.duracao = iterator.row.duracaoIda;
        }
        else if (ds.tables.Trechos.rows[iTrecho].codTrecho == 2)
        {
            linhaDetalheVoo.dataSaida = iterator.row["dataSaidaVolta"].toString('dddd dd/MM/yyyy').capitalize();
            linhaDetalheVoo.duracao = iterator.row.duracaoIda;
        }
        
        trechoDetalheVoo.linhasDetalheVoo = "";
        trechoDetalheVoo.price = "";
        
        var primeiroVoo = true;
        while (opcaoMP_Voo != null && 
               opcaoMP_Voo.codOpcaoMP == iterator.row.codOpcaoMP && 
               opcaoMP_Voo.codTrecho == ds.tables.Trechos.rows[iTrecho].codTrecho && 
               voo != null)
        {          
            iteratorCias.findByKey(voo.companhia);
            
            linhaDetalheVoo.cia = "";
            try
            {
                // Buscar descrição das origens e destinos dos trechos pela iata
                var sOrigem = Resultado.GetOrigemDestino(ds.tables.Trechos.rows[iTrecho].origem.toString());
                var sDestino = Resultado.GetOrigemDestino(ds.tables.Trechos.rows[iTrecho].destino.toString());
                
                linhaDetalheVoo.origemDestino = sOrigem.value;
                linhaDetalheVoo.origemDestino += " para ";
                linhaDetalheVoo.origemDestino += sDestino.value;
            }
            catch(ex){}
            
            if(maisOpcoesIdaVolta == 0)
            {
                if (ds.tables.Trechos.rows[iTrecho].codTrecho == 1)
                {
                    linhaDetalheVoo.descrIdaVolta = "IDA";
                }
                else if (ds.tables.Trechos.rows[iTrecho].codTrecho == 2)
                {
                    linhaDetalheVoo.descrIdaVolta = "VOLTA";
                }
                maisOpcoesIdaVolta = 1;
            }
            else
            {
                linhaDetalheVoo.descrIdaVolta = "";
            }
            
            linhaDetalheVoo.duracao = "";
            
            if (iteratorCias.row["nomeCia"] != null)
            {
                linhaDetalheVoo.cia = Trim(iteratorCias.row["nomeCia"]);
            }
            while (linhaDetalheVoo.cia.indexOf(" ") > -1)
            {
                linhaDetalheVoo.cia = linhaDetalheVoo.cia.replace(" ", "&nbsp;");
            }
            
            if (iteratorCias.row.imagem == null || iteratorCias.row.imagem == "")
            {
                linhaDetalheVoo.imagemCia2 = "";
                linhaDetalheVoo.estiloImagemCia2 = "'display:none;'";
                linhaDetalheVoo.textoSomenteCiaAerea = linhaDetalheVoo.cia;
                linhaDetalheVoo.textoSomenteCiaAerea = "";
            }
            else
            {
                linhaDetalheVoo.imagemCia2 = "'LogosCias/" + $('txtSite').value.toString() + "/" + iteratorCias.row.imagem + "'";
                linhaDetalheVoo.estiloImagemCia2 = "'display:inline;'";
                linhaDetalheVoo.textoSomenteCiaAerea = "";
            }
            linhaDetalheVoo.voo = voo["numero"];
            linhaDetalheVoo.horaSaida = voo["dataHoraSaida"].toString('HH') + 'h' + voo["dataHoraSaida"].toString('mm');
            
            // Buscar Aereoporto de Saida
            iteratorAeroportos.findByKey(voo["origem"]);
            var nomeAeroporto = "";
            if (iteratorAeroportos.row != null && iteratorAeroportos.row["nome"] != null)
            {
                nomeAeroporto = iteratorAeroportos.row["nome"];
            }
//            linhaDetalheVoo.aeroportoSaida = nomeAeroporto + " (" + voo["origem"] + ")";
            linhaDetalheVoo.aeroportoSaida = "(" + voo["origem"] + ")";
            
            linhaDetalheVoo.horaChegada = voo["dataHoraChegada"].toString('HH') + 'h' + voo["dataHoraChegada"].toString('mm');

            // Buscar Aeroporto de Chegada
            iteratorAeroportos.findByKey(voo["destino"]);
            nomeAeroporto = "";
            if (iteratorAeroportos.row != null && iteratorAeroportos.row["nome"] != null)
            {
                nomeAeroporto = iteratorAeroportos.row["nome"];
            }
//            linhaDetalheVoo.aeroportoChegada = nomeAeroporto.toString().trim() + " (" + voo["destino"] + ")";
            linhaDetalheVoo.aeroportoChegada = "(" + voo["destino"] + ")";

            // exibe a cabine do vôo
            switch (voo["cabine"])
            {
                case "F":
                    linhaDetalheVoo.cabine = "Primeira classe";
                    break;
                case "C":
                    linhaDetalheVoo.cabine = "Executiva";
                    break;
                case "Y":
                    linhaDetalheVoo.cabine = "Ec&ocirc;nomica";
                    break;
            }

            // exibe o equipamento do vôo
            linhaDetalheVoo.equipamento = voo["equipamento"];
            trechoDetalheVoo.linhasDetalheVoo += linhaDetalheVoo.getHtml();
                        
            posVoo++;
            opcaoMP_Voo = ((posVoo > -1 && posVoo < ds.tables.OpcoesMP_Voos.rows.count())?ds.tables.OpcoesMP_Voos.rows[posVoo]:null);
            voo = null;
            if (opcaoMP_Voo != null)
            {
                // se já sinalizou a linha do vôo, então, busca essa linha na tabela de vôos
                if (opcaoMP_Voo.indiceVoo != null && opcaoMP_Voo.indiceVoo != "" && opcaoMP_Voo.indicePrimeiroVoo > 0)
                {
                    voo = ds.tables.Voos.rows[opcaoMP_Voo.indiceVoo - 1];
                }
                else // caso contrário, encontra a linha do vôo
                {
                    iteratorVoosOpcoesMP.findByKey(opcaoMP_Voo.codVoo);
                    if (iteratorVoosOpcoesMP.count() > 0)
                    {
                        voo = iteratorVoosOpcoesMP.row;
                        opcaoMP_Voo.indiceVoo = iteratorVoosOpcoesMP._indexList[iteratorVoosOpcoesMP.index] + 1;
                    }
                }
            }
        }
        detalhesVoo += trechoDetalheVoo.getHtml();
    }
    
    return detalhesVoo;
}