﻿var nomeEmpresa = "";

/*************************************************************************************************************************************************/
/*                                                                RENDER DE VÔOS                                                                 */
/*************************************************************************************************************************************************/
function renderOpcao(opcaoMP, opcaoDeVoo, linhaOpcaoDeVoo, opcaoSelecionada, renderLinkPatrocinado)
{
    // limpa o template para a próxima iteração
    var idEmpresaCheckOut = "";
    var itCheckOut = null;
    
    opcaoDeVoo.companhia = "";
    opcaoDeVoo.origem = "";
    opcaoDeVoo.horaPartida = "";
    opcaoDeVoo.horaChegada = "";
    opcaoDeVoo.paradas = "";                                             
    opcaoDeVoo.duracao = "";                                             
    opcaoDeVoo.moeda = "";
    opcaoDeVoo.preco = "";
    opcaoDeVoo.ranking1 = "";
    opcaoDeVoo.ranking2 = "";
    opcaoDeVoo.ranking3 = "";
    opcaoDeVoo.separador1 = "";
    opcaoDeVoo.separador2 = "";
    
    $('txtERanking').value = "";

    // o nome da div de detalhes da opção MP
    opcaoDeVoo.nomeDivMostrarDetalhes = "'mostrarDetalheAereo_tab1_op" + opcaoMP.codOpcaoMP + "'";
    opcaoDeVoo.nomeDivDetalhes = "'detalheAereo_tab1_op" + opcaoMP.codOpcaoMP + "'";
    
    // div's de empresas (ranking)
    opcaoDeVoo.divRanking2 = "divRanking2_" + opcaoMP.codOpcaoMP;
    opcaoDeVoo.estiloDivRanking2 = "display:none;";
    opcaoDeVoo.divRanking3 = "divRanking3_" + opcaoMP.codOpcaoMP;
    opcaoDeVoo.estiloDivRanking3 = "display:none;";
    
    // os links da opção MP
    opcaoDeVoo.linkDetalhes = "'javascript:exibeDetalhes(" + opcaoMP.codOpcaoMP + ")'";
    if (opcaoSelecionada == false)
    {
        opcaoDeVoo.linkPin = "'javascript:seleciona(" + opcaoMP.codOpcaoMP + ")'";
    }
    else
    {
        opcaoDeVoo.linkUnPin = "'javascript:deseleciona(" + opcaoMP.codOpcaoMP + ")'";
    }
    opcaoDeVoo.linkTrash = "'javascript:exclui(" + opcaoMP.codOpcaoMP + ")'";
    
    // link para mais opções
    opcaoDeVoo.linkMaisOpcoes_OpcaoDeVoo = "\"javascript:exibeMaisOpcoes(" + opcaoMP.codOpcaoMP + ", 0, 'Opcao de Voo')\"";
    
//    opcaoDeVoo.linkMaisOpcoes_checkOutDireto = "\"javascript:exibeMaisOpcoes(" + opcaoMP.codOpcaoMP + ", 1, null)\"";
    opcaoDeVoo.linkMaisOpcoes = "\"javascript:exibeMaisOpcoes(" + opcaoMP.codOpcaoMP + ", 0, 'Botao Mais Opcoes')\"";
    
    // a moeda e o valor da opção MP
    // (não há necessidade de se exibir a moeda "BRL" uma vez que está sinalizando "R$" junto ao valor)
    //    opcaoDeVoo.moeda = opcaoMP.moeda;
    opcaoDeVoo.preco = 'R$ ' + opcaoMP.tarifaADT.formatNumber(2, true);
    
    // vôos da opção MP
    opcaoDeVoo.linhaDeVoo = "";
    
    var posVoo = opcaoMP.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;
            }
        }
    }
    
    // a cia dessa opção de vôo    
    iteratorCias.findByKey(opcaoMP.ciaPrincipal);
    
    if (iteratorCias.count() > 0)
    {
        opcaoDeVoo.companhia = iteratorCias.row.nomeCia;
        while (opcaoDeVoo.companhia.indexOf(" ") > -1)
        {
            opcaoDeVoo.companhia = opcaoDeVoo.companhia.replace(" ", "&nbsp;");
        }
        opcaoDeVoo.imagemCia = "'background: url(LogosCias/" + $('txtSite').value.toString() + "/" + iteratorCias.row.imagem + ") no-repeat;'";
        
        if (iteratorCias.row.imagem == null || iteratorCias.row.imagem == "")
        {
            opcaoDeVoo.imagemCia2 = "";
            opcaoDeVoo.estiloImagemCia2 = "'display:none;'";
            opcaoDeVoo.textoSomenteCiaAerea = opcaoDeVoo.companhia;
        }
        else
        {
            opcaoDeVoo.imagemCia2 = "'LogosCias/" + $('txtSite').value.toString() + "/" + iteratorCias.row.imagem + "'";
            
            if($('txtSite').value.toString().toLowerCase() == "buscape")
            {
                opcaoDeVoo.estiloImagemCia2 = "'display:inline;border:none;width:75px;height:75px'";
            }
            else
            {
                opcaoDeVoo.estiloImagemCia2 = "'display:inline;border:none;'";
            }
            
            opcaoDeVoo.textoSomenteCiaAerea = "";
        }
    }
    
    // as 3 primeiras do ranking de empresas para essa busca/source
    var iSourceRank = 0;
    for (iSourceRank = 0; iSourceRank < sourcesRanking.count(); iSourceRank++)
    {
        if (sourcesRanking[iSourceRank][0] == opcaoMP.sourceCode)
        {
            break;
        }
    }
    if (iSourceRank == sourcesRanking.length)
    {
        ds.tables.Ranking.filter('sourceCode', opcaoMP.sourceCode, caseType.CSAS, filterMode.equals);
        
        sourcesRanking[iSourceRank] = new Array();
        sourcesRanking[iSourceRank][0] = opcaoMP.sourceCode;
        
        ds.tables.Ranking.filter('siglaCompanhia', (voo != null ? voo.companhia : '<TODAS>'), caseType.CSAS, filterMode.equals);
        if (ds.tables.Ranking.rows.count() > 0)
        {
            for (var iEmpresa = 0; iEmpresa < ds.tables.Ranking.rows.count(); iEmpresa++)
            {
                sourcesRanking[iSourceRank][iEmpresa + 1] = new Array();
                sourcesRanking[iSourceRank][iEmpresa + 1][0] = ds.tables.Ranking.rows[iEmpresa]["nomeFantasia"];
                sourcesRanking[iSourceRank][iEmpresa + 1][1] = ds.tables.Ranking.rows[iEmpresa]["idBuscaPe"];
                sourcesRanking[iSourceRank][iEmpresa + 1][2] = (ds.tables.Ranking.rows[iEmpresa]["urlCheckOut"] != "" ? ds.tables.Ranking.rows[iEmpresa]["urlCheckOut"] : ds.tables.Ranking.rows[iEmpresa]["url"]);
                sourcesRanking[iSourceRank][iEmpresa + 1][3] = ds.tables.Ranking.rows[iEmpresa]["possuiLogo"];
                sourcesRanking[iSourceRank][iEmpresa + 1][4] = ds.tables.Ranking.rows[iEmpresa]["nota"];
                sourcesRanking[iSourceRank][iEmpresa + 1][5] = ds.tables.Ranking.rows[iEmpresa]["qtdOpinioes"];
                sourcesRanking[iSourceRank][iEmpresa + 1][6] = ds.tables.Ranking.rows[iEmpresa]["possuiSelo"];
                sourcesRanking[iSourceRank][iEmpresa + 1][7] = ds.tables.Ranking.rows[iEmpresa]["telefonePPC"];
                sourcesRanking[iSourceRank][iEmpresa + 1][8] = ds.tables.Ranking.rows[iEmpresa]["valorCPC"];
                sourcesRanking[iSourceRank][iEmpresa + 1][9] = ds.tables.Ranking.rows[iEmpresa]["idLinkPatrocinado"];
                
            }
        }
        else if (voo != null)
        {
            ds.tables.Ranking.unfilter();

            ds.tables.Ranking.filter('siglaCompanhia', '<TODAS>', caseType.CSAS, filterMode.equals);
            if (ds.tables.Ranking.rows.count() > 0)
            {
                for (var iEmpresa = 0; iEmpresa < ds.tables.Ranking.rows.count(); iEmpresa++)
                {
                    sourcesRanking[iSourceRank][iEmpresa + 1] = new Array();
                    sourcesRanking[iSourceRank][iEmpresa + 1][0] = ds.tables.Ranking.rows[iEmpresa]["nomeFantasia"];
                    sourcesRanking[iSourceRank][iEmpresa + 1][1] = ds.tables.Ranking.rows[iEmpresa]["idBuscaPe"];
                    sourcesRanking[iSourceRank][iEmpresa + 1][2] = (ds.tables.Ranking.rows[iEmpresa]["urlCheckOut"] != "" ? ds.tables.Ranking.rows[iEmpresa]["urlCheckOut"] : ds.tables.Ranking.rows[iEmpresa]["url"]);
                    sourcesRanking[iSourceRank][iEmpresa + 1][3] = ds.tables.Ranking.rows[iEmpresa]["possuiLogo"];
                    sourcesRanking[iSourceRank][iEmpresa + 1][4] = ds.tables.Ranking.rows[iEmpresa]["nota"];
                    sourcesRanking[iSourceRank][iEmpresa + 1][5] = ds.tables.Ranking.rows[iEmpresa]["qtdOpinioes"];
                    sourcesRanking[iSourceRank][iEmpresa + 1][6] = ds.tables.Ranking.rows[iEmpresa]["possuiSelo"];
                    sourcesRanking[iSourceRank][iEmpresa + 1][7] = ds.tables.Ranking.rows[iEmpresa]["telefonePPC"];
                    sourcesRanking[iSourceRank][iEmpresa + 1][8] = ds.tables.Ranking.rows[iEmpresa]["valorCPC"];
                    sourcesRanking[iSourceRank][iEmpresa + 1][9] = ds.tables.Ranking.rows[iEmpresa]["idLinkPatrocinado"];
                }
            }
        }
        ds.tables.Ranking.unfilter(true);
    }
    for (var iEmpresa = (sourcesRanking[iSourceRank].length - 1); iEmpresa < 3; iEmpresa++)
    {
        sourcesRanking[iSourceRank][iEmpresa + 1] = new Array();
        sourcesRanking[iSourceRank][iEmpresa + 1][0] = "";
        sourcesRanking[iSourceRank][iEmpresa + 1][1] = 0;
        sourcesRanking[iSourceRank][iEmpresa + 1][2] = "";
        sourcesRanking[iSourceRank][iEmpresa + 1][3] = false;
        sourcesRanking[iSourceRank][iEmpresa + 1][4] = 0;
        sourcesRanking[iSourceRank][iEmpresa + 1][5] = 0;
        sourcesRanking[iSourceRank][iEmpresa + 1][6] = false;
        sourcesRanking[iSourceRank][iEmpresa + 1][7] = "";
        sourcesRanking[iSourceRank][iEmpresa + 1][8] = "";
        sourcesRanking[iSourceRank][iEmpresa + 1][9] = "";
    }
    
    // Verificar se existe na url o id de alguma empresa para o checkout direto
    // se houver disponibilizar apenas ela para o ChekOut
    try
    {
        idEmpresaCheckOut = (QueryString("idCheckout") != null ? QueryString("idCheckout") : "");
        if(idEmpresaCheckOut != "")
        {
            itCheckOut = ds.tables.Ranking.getIterator("idBuscaPe");
            itCheckOut.findByKey(idEmpresaCheckOut);
        }
    }
    catch(ex){}
    
    // Definir de modo fixo as primeiras empresas 
    // Buscar essas empresas no array "sourcesRanking"
    
    // verifica se as empresas com CheckOut integrado constam na lista
    // caso existam, dá preferência a elas
    var empresas = new Array();
    var j = 0;
    for(var k = 1; k < sourcesRanking[iSourceRank].length; k++)
    {
        empresas[empresas.length] = k;
        empresas[j] = k;
        j++;
    }
     var pos = 1;
    for(var l = 0; l < empresas.length; l++)
    {
        var k = empresas[l];
        
        if(itCheckOut != null && itCheckOut.count() > 0)
        {
            if(sourcesRanking[iSourceRank][k][1].toString().trim() == idEmpresaCheckOut.trim())
            {
                opcaoDeVoo.ranking1 = sourcesRanking[iSourceRank][k][0].substring(0, 20);
                if (sourcesRanking[iSourceRank][k][0].length > 20)
                {
                    opcaoDeVoo.ranking1 += "...";
                }
                opcaoDeVoo.textoRanking1 = sourcesRanking[iSourceRank][k][0];
                while (opcaoDeVoo.textoRanking1.indexOf(" ") > -1)
                {
                    opcaoDeVoo.textoRanking1 = opcaoDeVoo.textoRanking1.replace(" ", "&nbsp;");
                }
                opcaoDeVoo.urlRanking1 = "\"javascript:try{urchinTracker('/redirect_prod');}catch(ex){} CheckOut(" + iSourceRank + ", " + k + ", " + opcaoMP.codOpcaoMP + "," + pos + ");\"";
                opcaoDeVoo.linkMaisOpcoes_OpcaoDeVoo = "\"javascript:try{urchinTracker('/redirect_prod');}catch(ex){} CheckOut(" + iSourceRank + ", " + k + ", " + opcaoMP.codOpcaoMP + "," + pos + ");\"";
                break;
                
                $('txtERanking').value = "&e1=" + sourcesRanking[iSourceRank][k][1].toString().trim() + "&e2=&e3=";
            }
        }
        else
        {
            if(sourcesRanking[iSourceRank][k][0].toString().toLowerCase().indexOf('rapi10') > -1)
            {
                opcaoDeVoo.ranking1 = sourcesRanking[iSourceRank][k][0].substring(0, 20);
                
                if(opcaoDeVoo.ranking2 != "")
                {
                    opcaoDeVoo.separador1 = "&nbsp;&nbsp;|&nbsp;&nbsp;";     
                }
                
                if (sourcesRanking[iSourceRank][k][0].length > 20)
                {
                    opcaoDeVoo.ranking1 += "...";
                }
                opcaoDeVoo.textoRanking1 = sourcesRanking[iSourceRank][k][0];
                while (opcaoDeVoo.textoRanking1.indexOf(" ") > -1)
                {
                    opcaoDeVoo.textoRanking1 = opcaoDeVoo.textoRanking1.replace(" ", "&nbsp;");
                }
                opcaoDeVoo.urlRanking1 = "\"javascript:try{urchinTracker('/redirect_prod');}catch(ex){} CheckOut(" + iSourceRank + ", " + k + ", " + opcaoMP.codOpcaoMP + "," + "1" + ");\"";
                
                $('txtERanking').value += "&e1=" + sourcesRanking[iSourceRank][k][1].toString().trim();
            }
            
            if(sourcesRanking[iSourceRank][k][0].toString().toLowerCase().indexOf('viaja net') > -1)
            {
                opcaoDeVoo.estiloDivRanking2 = "display:inline;";
                opcaoDeVoo.ranking2 = sourcesRanking[iSourceRank][k][0].substring(0, 20);
                
                // adicionar separador dos ranking's somente se o item do ranking anterior estiver preenchido
                if(opcaoDeVoo.ranking1 != "")
                {
                    opcaoDeVoo.separador1 = "&nbsp;&nbsp;|&nbsp;&nbsp;";     
                }
                if (sourcesRanking[iSourceRank][k][0].length > 20)
                {
                    opcaoDeVoo.ranking2 += "...";
                }
                opcaoDeVoo.textoRanking2 = sourcesRanking[iSourceRank][k][0];
                while (opcaoDeVoo.textoRanking2.indexOf(" ") > -1)
                {
                    opcaoDeVoo.textoRanking2 = opcaoDeVoo.textoRanking2.replace(" ", "&nbsp;");
                }
                opcaoDeVoo.urlRanking2 = "\"javascript:try{urchinTracker('/redirect_prod');}catch(ex){} CheckOut(" + iSourceRank + ", " + k + ", " + opcaoMP.codOpcaoMP + "," + "2" + ");\"";
                
                $('txtERanking').value += "&e2=" + sourcesRanking[iSourceRank][k][1].toString().trim();
            }
            
            if(sourcesRanking[iSourceRank][k][0].toString().toLowerCase().indexOf('stella') > -1)
            {
                opcaoDeVoo.estiloDivRanking3 = "display:inline;";
                opcaoDeVoo.ranking3 = sourcesRanking[iSourceRank][k][0].substring(0, 20);
                
                // adicionar separador dos ranking's somente se o item do ranking anterior estiver preenchido
                if(opcaoDeVoo.ranking2 != "" || opcaoDeVoo.ranking1 != "")
                {
                    opcaoDeVoo.separador2 = "&nbsp;&nbsp;|&nbsp;&nbsp;";     
                }
                
                if (sourcesRanking[iSourceRank][k][0].length > 20)
                {
                    opcaoDeVoo.ranking3 += "...";
                }
                opcaoDeVoo.textoRanking3 = sourcesRanking[iSourceRank][k][0];
                while (opcaoDeVoo.textoRanking3.indexOf(" ") > -1)
                {
                    opcaoDeVoo.textoRanking3 = opcaoDeVoo.textoRanking3.replace(" ", "&nbsp;");
                }
                opcaoDeVoo.urlRanking3 = "\"javascript:try{urchinTracker('/redirect_prod');}catch(ex){} CheckOut(" + iSourceRank + ", " + k + ", " + opcaoMP.codOpcaoMP + "," + "3" + ");\"";
                
                $('txtERanking').value += "&e3=" + sourcesRanking[iSourceRank][k][1].toString().trim();
            }
        
        }
        pos = pos + 1;
    }
    
//    var linksCheckOutIntegrado = new Array();
//    var linksCheckOutNaoIntegrado = new Array();
//    
//    for(var l = 0; l < empresas.length; l++)
//    {
//        var k = empresas[l];
//        
//        if(itCheckOut != null && itCheckOut.count() > 0)
//        {
//            if(sourcesRanking[iSourceRank][k][1].toString().trim() == idEmpresaCheckOut.trim())
//            {
//                opcaoDeVoo.ranking1 = sourcesRanking[iSourceRank][k][0].substring(0, 20);
//                if (sourcesRanking[iSourceRank][k][0].length > 20)
//                {
//                    opcaoDeVoo.ranking1 += "...";
//                }
//                opcaoDeVoo.textoRanking1 = sourcesRanking[iSourceRank][k][0];
//                while (opcaoDeVoo.textoRanking1.indexOf(" ") > -1)
//                {
//                    opcaoDeVoo.textoRanking1 = opcaoDeVoo.textoRanking1.replace(" ", "&nbsp;");
//                }
//                opcaoDeVoo.urlRanking1 = "\"javascript:try{urchinTracker('/redirect_prod');}catch(ex){} CheckOut(" + iSourceRank + ", " + k + ", " + opcaoMP.codOpcaoMP + ");\"";
//                opcaoDeVoo.linkMaisOpcoes_OpcaoDeVoo = "\"javascript:try{urchinTracker('/redirect_prod');}catch(ex){} CheckOut(" + iSourceRank + ", " + k + ", " + opcaoMP.codOpcaoMP + ");\"";
//                
//                $('txtERanking').value = "&e1=" + sourcesRanking[iSourceRank][k][1].toString().trim() + "&e2=&e3=";
//                
//                break;
//            }
//        }
//        else
//        {
//            if((sourcesRanking[iSourceRank][k][0].toString().toLowerCase().indexOf('rapi10') > -1 ||
//                sourcesRanking[iSourceRank][k][0].toString().toLowerCase().indexOf('stella') > -1 ||
//                sourcesRanking[iSourceRank][k][0].toString().toLowerCase().indexOf('click viagem') > -1 ||
//                sourcesRanking[iSourceRank][k][0].toString().toLowerCase().indexOf('panamericano') > -1))
//            {
//                linksCheckOutIntegrado[linksCheckOutIntegrado.length] = k;
//            }
//            else
//            {
//                linksCheckOutNaoIntegrado[linksCheckOutNaoIntegrado.length] = k;
//            }
//        }
//    }
//        
//        for (var iLink = 1; iLink <= 3; iLink++)
//        {
//            if (iLink <= linksCheckOutIntegrado.length)
//            {
//                renderLinkCheckOut(iLink, opcaoMP, opcaoDeVoo, sourcesRanking, iSourceRank, linksCheckOutIntegrado[iLink - 1]);
//            }
//            else if (iLink <= linksCheckOutNaoIntegrado.length)
//            {
//                renderLinkCheckOut(iLink, opcaoMP, opcaoDeVoo, sourcesRanking, iSourceRank, linksCheckOutNaoIntegrado[iLink - 1]);
//            }
//        }
//        
    // Definir informações do linkPatrocinado 
    try
    {
        if (renderLinkPatrocinado && opcaoMP.linkPatrocinado)
        {
            opcaoDeVoo.ranking1 = nomeEmpresa;
            opcaoDeVoo.textoRanking1 = nomeEmpresa;
            linhaOpcaoDeVoo.lnkPatrocinado = "\"javascript:CheckOutLinkPatrocinado('" + opcaoMP.idLinkPatrocinado + "', '" + opcaoMP.urlLinkPatrocinado + "', " + opcaoMP.codOpcaoMP + ")\"";
            opcaoDeVoo.lnkPatrocinado = "\"javascript:CheckOutLinkPatrocinado('" + opcaoMP.idLinkPatrocinado + "', '" + opcaoMP.urlLinkPatrocinado + "', " + opcaoMP.codOpcaoMP + ")\"";
        }
    }
    catch(ex){}
        
    for (var iTrecho = 0; iTrecho <= (ds.tables.Trechos.rows.count() == 1 ? 0 : 1); iTrecho++)
    {
        // vôos deste trecho
        var duracao = "";            
        
        if (ds.tables.Trechos.rows[iTrecho].codTrecho == 1)
        {
            if($('txtSite').value.toString().toLowerCase() == "buscape")
            {
                linhaOpcaoDeVoo.origem = "Partindo de: " + opcaoMP.iataOrigemIda;
                linhaOpcaoDeVoo.destino = "Chegando em: " + opcaoMP.iataDestinoIda;
                linhaOpcaoDeVoo.imgSetaIdaVolta = "'images/BuscaPe/seta-vai.gif'";
                linhaOpcaoDeVoo.diaDaSemanaIda = opcaoMP.dataSaidaIda.toString('ddd dd/MM/yyyy').capitalize();
                linhaOpcaoDeVoo.diaDaSemanaVolta = opcaoMP.dataChegadaIda.toString('ddd dd/MM/yyyy').capitalize();
            }
            else
            {
                linhaOpcaoDeVoo.origem = opcaoMP.iataOrigemIda + " &gt; " + opcaoMP.iataDestinoIda;
                linhaOpcaoDeVoo.paradas = opcaoMP.numParadasIda;
            }
            
            linhaOpcaoDeVoo.horaPartida = opcaoMP.dataSaidaIda.toString('HH') + "h" + opcaoMP.dataSaidaIda.toString('mm'); 
            linhaOpcaoDeVoo.horaChegada = opcaoMP.dataChegadaIda.toString('HH') + "h" + opcaoMP.dataChegadaIda.toString('mm'); 
            duracao = opcaoMP.duracaoIda;
        }
        else if (ds.tables.Trechos.rows[iTrecho].codTrecho == 2)
        {
            if($('txtSite').value.toString().toLowerCase() == "buscape")
            {
                linhaOpcaoDeVoo.imgSetaIdaVolta = "";
                linhaOpcaoDeVoo.origem = "Partindo de: " + opcaoMP.iataOrigemVolta;
                linhaOpcaoDeVoo.destino = "Chegando em: " + opcaoMP.iataDestinoVolta;
                linhaOpcaoDeVoo.imgSetaIdaVolta = "'images/BuscaPe/seta-volta.gif'";
                linhaOpcaoDeVoo.diaDaSemanaIda = opcaoMP.dataSaidaVolta.toString('ddd dd/MM/yyyy').capitalize();
                linhaOpcaoDeVoo.diaDaSemanaVolta = opcaoMP.dataChegadaVolta.toString('ddd dd/MM/yyyy').capitalize();                
            }
            else
            {
                linhaOpcaoDeVoo.origem = opcaoMP.iataOrigemVolta + " &gt; " + opcaoMP.iataDestinoVolta;
                linhaOpcaoDeVoo.paradas = opcaoMP.numParadasVolta;
            }
        
            linhaOpcaoDeVoo.classe = "'row returnData'";
            linhaOpcaoDeVoo.horaPartida = opcaoMP.dataSaidaVolta.toString('HH') + "h" + opcaoMP.dataSaidaVolta.toString('mm'); 
            linhaOpcaoDeVoo.horaChegada = opcaoMP.dataChegadaVolta.toString('HH') + "h" + opcaoMP.dataChegadaVolta.toString('mm'); 
            duracao = opcaoMP.duracaoVolta;
        }

        // duração do trecho (opção de vôo)
        linhaOpcaoDeVoo.duracao = (duracao != "" ? "(" + formataDuracaoVoo(duracao) + ")" : "");
        
        if(itCheckOut != null && itCheckOut.count() > 0)
        {
            // Esconder o link "Mais Opções"
            opcaoDeVoo.displayMaisOpcoes = "display:none";
        }
        else
        {
            // link para mais opções
            linhaOpcaoDeVoo.linkMaisOpcoes_OpcaoDeVoo = "\"javascript:exibeMaisOpcoes(" + opcaoMP.codOpcaoMP + ", 0, 'Opcao de Voo')\"";
            opcaoDeVoo.displayMaisOpcoes = "display:block";
        }
            
        opcaoDeVoo.linhaDeVoo += linhaOpcaoDeVoo.getHtml();
    }
    return opcaoDeVoo.getHtml();
}   

function renderLinkCheckOut(checkOutPos, opcaoMP, opcaoDeVoo, sourcesRanking, iSourceRank, k)
{
    if (checkOutPos == 1)
    {
        opcaoDeVoo.ranking1 = sourcesRanking[iSourceRank][k][0].substring(0, 20);
        
        if(opcaoDeVoo.ranking2 != "")
        {
            opcaoDeVoo.separador1 = "&nbsp;&nbsp;|&nbsp;&nbsp;";     
        }
        
        if (sourcesRanking[iSourceRank][k][0].length > 20)
        {
            opcaoDeVoo.ranking1 += "...";
        }
        opcaoDeVoo.textoRanking1 = sourcesRanking[iSourceRank][k][0];
        while (opcaoDeVoo.textoRanking1.indexOf(" ") > -1)
        {
            opcaoDeVoo.textoRanking1 = opcaoDeVoo.textoRanking1.replace(" ", "&nbsp;");
        }
        opcaoDeVoo.urlRanking1 = "\"javascript:try{urchinTracker('/redirect_prod');}catch(ex){} CheckOut(" + iSourceRank + ", " + k + ", " + opcaoMP.codOpcaoMP + ");\"";
        
        $('txtERanking').value += "&e1=" + sourcesRanking[iSourceRank][k][1].toString().trim();
    }
    else if (checkOutPos == 2)
    {
        opcaoDeVoo.estiloDivRanking2 = "display:inline;";
        opcaoDeVoo.ranking2 = sourcesRanking[iSourceRank][k][0].substring(0, 20);
        
        // adicionar separador dos ranking's somente se o item do ranking anterior estiver preenchido
        if(opcaoDeVoo.ranking1 != "")
        {
            opcaoDeVoo.separador1 = "&nbsp;&nbsp;|&nbsp;&nbsp;";     
        }
        if (sourcesRanking[iSourceRank][k][0].length > 20)
        {
            opcaoDeVoo.ranking2 += "...";
        }
        opcaoDeVoo.textoRanking2 = sourcesRanking[iSourceRank][k][0];
        while (opcaoDeVoo.textoRanking2.indexOf(" ") > -1)
        {
            opcaoDeVoo.textoRanking2 = opcaoDeVoo.textoRanking2.replace(" ", "&nbsp;");
        }
        opcaoDeVoo.urlRanking2 = "\"javascript:try{urchinTracker('/redirect_prod');}catch(ex){} CheckOut(" + iSourceRank + ", " + k + ", " + opcaoMP.codOpcaoMP + ");\"";
        
        $('txtERanking').value += "&e2=" + sourcesRanking[iSourceRank][k][1].toString().trim();
    }
    else if (checkOutPos == 3)
    {
        opcaoDeVoo.estiloDivRanking3 = "display:inline;";
        opcaoDeVoo.ranking3 = sourcesRanking[iSourceRank][k][0].substring(0, 20);
        
        // adicionar separador dos ranking's somente se o item do ranking anterior estiver preenchido
        if(opcaoDeVoo.ranking2 != "" || opcaoDeVoo.ranking1 != "")
        {
            opcaoDeVoo.separador2 = "&nbsp;&nbsp;|&nbsp;&nbsp;";     
        }
        
        if (sourcesRanking[iSourceRank][k][0].length > 20)
        {
            opcaoDeVoo.ranking3 += "...";
        }
        opcaoDeVoo.textoRanking3 = sourcesRanking[iSourceRank][k][0];
        while (opcaoDeVoo.textoRanking3.indexOf(" ") > -1)
        {
            opcaoDeVoo.textoRanking3 = opcaoDeVoo.textoRanking3.replace(" ", "&nbsp;");
        }
        opcaoDeVoo.urlRanking3 = "\"javascript:try{urchinTracker('/redirect_prod');}catch(ex){} CheckOut(" + iSourceRank + ", " + k + ", " + opcaoMP.codOpcaoMP + ");\"";
        
        $('txtERanking').value += "&e3=" + sourcesRanking[iSourceRank][k][1].toString().trim();
    }
}

function renderBuscaVoo(pagina)
{
    // instancia os templates
    var opcaoDeVoo = templates.OpcaoDeVoo;
    var linhaOpcaoDeVoo = templates.LinhaOpcaoDeVoo;
    var opcaoDeVooLinkPatrocinado = templates.OpcaoDeVooLinkPatrocinado;
    var linhaOpcaoDeVooLinkPatrocinado = templates.LinhaOpcaoDeVooLinkPatrocinado;
    
    var paginador = templates.Paginador;
    var paginadorAtual = templates.PaginadorAtual;
    
    var numeroDeFiltros = 0;

    // indica o nº de opções selecionadas
    var opcoesSelecionadas = listaOpcoesMPSelecionadas.length;
    
    // renderiza os vôos selecionados
    var opcoesSelecionadasEFiltradas = renderSelecionado();

    // filtra as opções MP que devem ser exibidas (isto é, aquelas que não foram excluídas pelo usuário)
    // filtra as opções MP que não foram selecionadas (as opções selecionadas somentes são exibidas na área "Meus Vôos Selecionados")
    var iterator = ds.tables.OpcoesMP.getIterator('filtrosAplicados');
    iterator.findByKey(0);
    
    // indica o nº de opções não selecionadas e não filtradas
    var opcoesParaExibir = iterator.count() - (opcoesSelecionadas - opcoesSelecionadasEFiltradas);
    
    // exibe as n opçõesMP desta página
    var resultadoBusca = "";
    var LinksPatrocinados = $("divLinksPatrocinados").innerHTML;
    
    // sinaliza se deve criar a div de links patrocinados
    var criarLinksPatrocinados = ($("divLinksPatrocinados").innerHTML == "");
    
    // contador de opções em links patrocinados
    var contLinksPatrocinados = 4;
    
    var iMP = ((pagina - 1) * pageSize);
    if (iMP < iterator.count() && iMP < (pagina * pageSize))
    {
        // Verificar se existe a ciaPrincipal no dataTable de Cias 
        var existe_Cia_LinkPatrocinado = Existe_Cia_LinkPatrocinado(ds.tables.Cias);
        var contIterator = 0;
        
        if (existe_Cia_LinkPatrocinado)
        {
            contIterator = iterator.count();
        }
        else
        {
            contIterator = (pagina * pageSize);
            criarLinksPatrocinados = false;
        }
        
        var linksPatrocinados_OK = false;
        var resultados_OK = false;
        do
        {
            // se a opçãoMP estiver sinalizada como linkPatrocinado e ainda não tiver sido renderizada
            // a div de links patrocinados, então, cria o conteúdo dessa div
            if (criarLinksPatrocinados == true && contLinksPatrocinados > 0)
            {
                if (iterator.row['linkPatrocinado'] == true)
                {
                    LinksPatrocinados += renderOpcao(iterator.row, opcaoDeVooLinkPatrocinado, linhaOpcaoDeVooLinkPatrocinado, false, true);
                    contLinksPatrocinados -= 1;
                }
            }
            else
            {
                linksPatrocinados_OK = true;
            }
            
            if (iMP < (pagina * pageSize))
            {
                if (iterator.index >= iMP && iterator.row['selecionada'] == false)
                {
                    iMP++;
                    resultadoBusca += renderOpcao(iterator.row, opcaoDeVoo, linhaOpcaoDeVoo, false, false);
                }
            }
            else
            {
                resultados_OK = true;
            }
            
            if (iterator.hasNext())
            {
                iterator.moveNext();
            }
            else
            {
                break;
            }
        } while (iMP < iterator.count() && iMP < contIterator && (linksPatrocinados_OK == false || resultados_OK == false));
    }
    
    // cria a paginação
//    if($('txtSite').value.toString().toLowerCase() != "buscape")
//    {
        var npaginas = opcoesParaExibir / pageSize;
        npaginas = Math.ceil(npaginas);
        
        var paginaInicial = pagina - 7;
        if (paginaInicial  + 14 > npaginas)
        {
            paginaInicial = npaginas - 14;
        }
        if (paginaInicial < 1)
        {
            paginaInicial = 1;
        }

        var paginacao = "";     
        
       // define os links de páginas anterior, próxima e por número
        if (pagina > 1)
        {
            paginador.linkPagina = "'javascript:mostraPagina(" + (pagina - 1) + ")'";
            paginador.pagina = "&laquo; anterior";
            paginacao += paginador.getHtml(); 
        }
        for (var p = paginaInicial - 1; p < (paginaInicial + 14) && p < npaginas; p++)
        { 
            if (p != paginaAtual - 1)
            {
                paginador.linkPagina = "'javascript:mostraPagina(" + (p + 1) + ")'";
                paginador.pagina = (p + 1);
                paginacao += paginador.getHtml(); 
            }
            else
            {
                paginadorAtual.pagina = (p + 1);
                paginacao += paginadorAtual.getHtml(); 
            }
        }
        if (pagina < npaginas)
        {
            paginador.linkPagina = "'javascript:mostraPagina(" + (pagina + 1) + ")'";
            paginador.pagina = "pr&oacute;xima &raquo;"; 
            paginacao += paginador.getHtml(); 
        }
//    }
    
    // atualiza o número de resultados exibidos
    $('numeroOpcoesMPParcial').innerHTML = opcoesParaExibir;

    // limpa os filtros aplicados neste método
    iterator.dispose();
    
    // gera o conteúdo
    $("divLinksPatrocinados").innerHTML = LinksPatrocinados;
    if (LinksPatrocinados != "")
    {
        $("divHeaderLinksPatrocinados").style.display = "block";
    }
    $('resultadoBusca').innerHTML = resultadoBusca;
    
//    if($('txtSite').value.toString().toLowerCase() == "buscatrip")
//    {
        $('paginacao').innerHTML = paginacao;
//    }

    // Executar script de imagem no final de cada render
    ScriptImagem('Resultado.aspx');
}   

function Existe_Cia_LinkPatrocinado(dt)
{
    var retorno = false;
    for(var i = 0; i < dt.rows.count();i++)
    {
        if(dt.rows[i].patrocinado == true)
        {
            nomeEmpresa = dt.rows[i].nomeCia;
            retorno = true;
            break;
        }
    }
    return retorno;
}

// renderiza as opções da página informada
function mostraPagina(pagina)
{
    if(pagina == 0)
    {
        paginaAtual++;
    }
    else
    {
        paginaAtual = pagina;
    }
    
    renderBuscaVoo(paginaAtual);

    // posiciona a página no topo
    scroll(0, 0);
}

// exibe os detalhes dos vôos da opção MP informada
function exibeDetalhes(codOpcaoMP)
{
    var nomeDivDetalhes = "detalheAereo_tab1_op" + codOpcaoMP;

    // caso a div de detalhes já esteja sendo mostrada, apenas oculta a div
    if ($(nomeDivDetalhes).style.display == 'block')
    {
        escondeDetalhes(codOpcaoMP);
    }
    else
    {
        // instancia os templates
        var detalhesVoo = templates.DetalhesVoo;
        
        // detalhesVoo.imprimir = "'javascript:Imprimir(" + codOpcaoMP + ")'";
        
        // define o link para esconder a janela de detalhes
        detalhesVoo.linkEscondeDetalhes = "'javascript:escondeDetalhes(" + codOpcaoMP + ")'";
        
        // limpa o conteúdo do template de detalhe
        detalhesVoo.trechosDetalheVoo = "";

        // filtra os datasets
        iteratorOpcoesMP.findByKey(codOpcaoMP);

        if (iteratorOpcoesMP.count() > 0)
        {
            detalhesVoo.trechosDetalheVoo += buscaDetalhes(iteratorOpcoesMP);
        }
        
        var nomeDivMostrarDetalhes = "mostrarDetalheAereo_tab1_op" + codOpcaoMP;
        //$(nomeDivMostrarDetalhes).style.display = 'none';
        
        $(nomeDivDetalhes).innerHTML = detalhesVoo.getHtml();
        $(nomeDivDetalhes).style.display = 'block';
    }
}

function buscaDetalhes(iterator)
{
    var detalhesVoo = "";

    // instancia os templates
    var trechoDetalheVoo = templates.TrechoDetalheVoo;
    var linhaDetalheVoo = templates.LinhaDetalheVoo;
    
    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++)
    {
        if (ds.tables.Trechos.rows[iTrecho].codTrecho == 1)
        {
            trechoDetalheVoo.classe = "'returnData'";
            trechoDetalheVoo.trecho = "Ida - " + iterator.row["dataSaidaIda"].toString('ddd dd MMM yyyy').capitalize();
//            linhaDetalheVoo.dataSaida = iterator.row["dataSaidaIda"].toString('dddd dd/MM/yyyy').capitalize();
            trechoDetalheVoo.partidaChegada = "Ida";
        }
        else if (ds.tables.Trechos.rows[iTrecho].codTrecho == 2)
        {
            trechoDetalheVoo.classe = "'goneData'";
            trechoDetalheVoo.trecho = "Volta - " + iterator.row["dataSaidaVolta"].toString('ddd dd MMM yyyy').capitalize();
//            linhaDetalheVoo.dataSaida = iterator.row["dataSaidaVolta"].toString('dddd dd/MM/yyyy').capitalize();
            trechoDetalheVoo.partidaChegada = "Volta";
        }
        
        trechoDetalheVoo.linhasDetalheVoo = "";
        
        var primeiroVoo = true;
        var primeiraLinha = true;
        linhaDetalheVoo.styleDivSeparator = "";
        
        while (opcaoMP_Voo != null && 
               opcaoMP_Voo.codOpcaoMP == iterator.row.codOpcaoMP && 
               opcaoMP_Voo.codTrecho == ds.tables.Trechos.rows[iTrecho].codTrecho && 
               voo != null)
        {          
            if(!primeiraLinha)
            {
                linhaDetalheVoo.styleDivSeparator = "'border-top: 1px dashed rgb(153, 153, 153); background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;'";
            }
        
            iteratorCias.findByKey(voo.companhia);
            
            linhaDetalheVoo.cia = "";
            if (iteratorCias.row["nomeCia"] != null)
            {
                linhaDetalheVoo.cia = Trim(iteratorCias.row["nomeCia"]);
            }
            while (linhaDetalheVoo.cia.indexOf(" ") > -1)
            {
                linhaDetalheVoo.cia = linhaDetalheVoo.cia.replace(" ", "&nbsp;");
            }
            
            if($('txtSite').value.toString().toLowerCase() == "buscatrip")
            {
                if (iteratorCias.row.imagem == null || iteratorCias.row.imagem == "")
                {
                    linhaDetalheVoo.imagemCia2 = "";
                    linhaDetalheVoo.estiloImagemCia2 = "'display:none;'";
                    linhaDetalheVoo.textoSomenteCiaAerea = linhaDetalheVoo.cia;
                }
                else
                {
                    linhaDetalheVoo.imagemCia2 = "'LogosCias/" + $('txtSite').value + "/" + iteratorCias.row.imagem + "'";
                    linhaDetalheVoo.estiloImagemCia2 = "'display:inline;'";
                    linhaDetalheVoo.textoSomenteCiaAerea = "";
                }
                
                linhaDetalheVoo.voo = voo["numero"];
            }
            else
            {
                if (iteratorCias.row.imagem == null || iteratorCias.row.imagem == "")
                {
                    trechoDetalheVoo.imagemCia2 = "";
                    trechoDetalheVoo.estiloImagemCia2 = "'display:none;'";
                    trechoDetalheVoo.textoSomenteCiaAerea = linhaDetalheVoo.cia;
                }
                else
                {
                    trechoDetalheVoo.imagemCia2 = "'LogosCias/" + $('txtSite').value + "/" + iteratorCias.row.imagem + "'";
                    trechoDetalheVoo.estiloImagemCia2 = "'display:inline;'";
                    trechoDetalheVoo.textoSomenteCiaAerea = "";
                }
            }
            
            primeiraLinha = false;
            linhaDetalheVoo.dataSaida =  voo["dataHoraSaida"].toString('dddd dd/MM/yyyy').capitalize();
            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.horaChegada = voo["dataHoraChegada"].toString('HH') + 'h' + voo["dataHoraChegada"].toString('mm');

            iteratorAeroportos.findByKey(voo["destino"]);
            nomeAeroporto = "";
            if (iteratorAeroportos.row != null && iteratorAeroportos.row["nome"] != null)
            {
                nomeAeroporto = iteratorAeroportos.row["nome"];
            }
            linhaDetalheVoo.aeroportoChegada = nomeAeroporto.toString().trim() + " (" + voo["destino"] + ")";

            if($('txtSite').value.toString().toLowerCase() == "buscatrip")
            {
                // 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 a base tarifária do vôo
                linhaDetalheVoo.baseTarifaria = voo["baseTarifariaReferencia"];

                // 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;
}

// esconde os detalhes dos vôos da opção MP informada
function escondeDetalhes(codOpcaoMP)
{  
    var nomeDivDetalhes = "detalheAereo_tab1_op" + codOpcaoMP;
    $(nomeDivDetalhes).style.display = 'none';
    $(nomeDivDetalhes).innerHTML = "";

    var nomeDivMostrarDetalhes = "mostrarDetalheAereo_tab1_op" + codOpcaoMP;
    $(nomeDivMostrarDetalhes).style.display = 'block';
}

function renderSelecionado()
{
    var opcoesSelecionadasEFiltradas = 0;
    
    $('cabecalhoSelecionado').style.display = 'none';                                                                 
    $('voosSelecionados').innerHTML = "";                    

    var vooSelecionado = templates.VooSelecionado;
    var linhaVooSelecionado = templates.LinhaVooSelecionado;
    
    for (var iSelec = 0; iSelec < listaOpcoesMPSelecionadas.length; iSelec++)
    {
        iteratorOpcoesMP.findByKey(listaOpcoesMPSelecionadas[iSelec]);

        if (iteratorOpcoesMP.count() > 0)
        {
            if (iteratorOpcoesMP.row["filtrosAplicados"] > 0)
            {
                opcoesSelecionadasEFiltradas++;
            }
            if (iteratorOpcoesMP.row["exibirOpcao"] == true)
            {
                $('cabecalhoSelecionado').style.display = 'block';                                                                 
                $('voosSelecionados').innerHTML += renderOpcao(iteratorOpcoesMP.row, vooSelecionado, linhaVooSelecionado, true, false);
            }
        }
    }

    return opcoesSelecionadasEFiltradas;
}            

function formataDuracaoVoo(time)
{
    var hour = Math.floor(time);
    var minutes = Math.floor((time-hour)*60).toString();
    return ''+hour+'h&nbsp;'+((minutes.length == 2)?minutes:"0"+minutes)+'m';
}

function exibeMaisOpcoes(codOpcaoMP, checkOutDireto, origem)
{
    // valida se o usuário clicou no link de CheckOut direto
    if (checkOutDireto == 1)
    {
        var codBusca = (ds.tables.Busca != null && ds.tables.Busca.rows.count() > 0 ? ds.tables.Busca.rows[0]["codBusca"] : 0);
        Resultado.SinalizaTentativaCheckOutDireto(codBusca, SinalizaTentativaCheckOutDireto_callback);
    }
    else    // checkOutDireto == 0
    {
        // registra o pageview para a aba de mais opções
        Resultado.SinalizaPageView("MaisOpcoes", origem, SinalizaPageView_callback);
    }
    
    /*******************************************************************************************************************************/
    // remove a aba de busca (caso haja)
    var searchTab = tabList.getTabByMode(AEREO, BUSCA);
    if (searchTab != null)
    {
        tabList.remove(searchTab.id);
    }

    /***************************************************************************************************************************/
    // cria uma nova aba
    var idTabMaisOpcoes = tabList.getNextTabId();
    var nomeTabMaisOpcoes = "MAISOPCOES";

    var maisOpcoesDS = ds.copy();

    var dtMaisOpcoes = new DataTable("MaisOpcoes");
    dtMaisOpcoes.addColumn('codOpcaoMP', 'System.Int32');
    
    var drMaisOpcoes = dtMaisOpcoes.newRow();
    drMaisOpcoes.codOpcaoMP = codOpcaoMP;
    dtMaisOpcoes.addRow(drMaisOpcoes);
    
    maisOpcoesDS.addTable(dtMaisOpcoes);

    tabList.add(new Tab(idTabMaisOpcoes, nomeTabMaisOpcoes, AEREO, RESULTADO, maisOpcoesDS, null, 
    function(numeroTab){apresentaMaisOpcoesDeAereo(numeroTab);}, 
    function(numeroTab){salvaContextoDaAbaMaisOpcoes(numeroTab);}));
    
    /*******************************************************************************************************************************/
    // cria uma nova aba de busca
    var idTabBusca = tabList.getNextTabId();
    tabList.add(new Tab(idTabBusca, "", AEREO, BUSCA, null, null, 
    function(){apresentaNovaAbaDeBusca();}, function(){}));
    
    /*******************************************************************************************************************************/

    // exibe o resultado
    apresentaResultados(idTabMaisOpcoes);
    
    /*******************************************************************************************************************************/
}

function SinalizaTentativaCheckOutDireto_callback(res)
{
}

function SinalizaPageView_callback(res)
{
}