﻿
var arrayGeral2 = null
var arrayGeral = null;

function Disponibilidade(){
//var paginacao=0;
var This = this;
    var current = this, availabilityData = new StructType('AvailabilityData'), abaIda_Volta = [], abaIda_Volta, c1, //calendario ida
 	c2, //calendario volta
 	pi1, //pesquisaIncremental origem
 	pi2, //pesquisaIncremental destino
 	pi3, //pesquisaIncremental pontoConexao
 	pi4, //pesquisaIncremental companhia (Busca)
 	pi5, //pesquisaIncremental companhia (Resultados)
 	radIdaVolta, //Radio Ida e Volta
 	abaCount = 0, abaAtual, _abaIdaVolta, filtered, availableSources,//Dataset com os sources e acordos disponiveis
    dialogModal = new AirAlertDialog(),
	/*itemCarrinho = new AbaDisponibilidade(),*/
	paginacaoAV = [],//por ter abas.
	paginacaoLF = 0,
	//arrayGeral, //Array com todas as Tabelas
    availableSourcesList = [], //Teste Dataset com os sources e acordos disponiveis
 	sliders = [];//0:sliderPreco 1:sliderHorarioSaidaIda ou sliderHorarioChegadaIda 2:sliderHorarioSaidaVolta ou sliderHorarioChegadaVolta
    paginacaoAV[0]=0; 
	paginacaoAV[1]=0; 

	var lengthOfPageAV = [];
		lengthOfPageAV[0] = 20;
		lengthOfPageAV[1] = 20;

	var paginate = [];
	paginate[0] = {
	     from: 0,
	     to: lengthOfPageAV[0]-1
	     };

	paginate[1] = {
	     from: 0,
	     to: lengthOfPageAV[1]-1
	     };
		 		 
	/*var to;	*/	 
	
	var srcTarifada = new Tarifada();
    var typeConditionLoad = new LoadEvents();
    
	
    this.tarifar = function(codOpcao){
		
		if(codOpcao){
			typeConditionLoad.enableLoading("botaoTarifarClick_"+codOpcao);
	        srcTarifada.tarifarBestBuy();				
		}else{
			typeConditionLoad.enableLoading("fare");
	        srcTarifada.tarifarBestBuy();			
		};
    };
    
    this.publicFilters = function(){
        buildFilters();
    };
    
    //Methods
    var buildAvailabilityData = function(idaVolta, lowFare){
        var itineraryDataArray = [];
        
        //Ida - estrutura
        var itineraryData = new StructType('ItineraryData');
        itineraryData.departureLocation = pi1;//-pi1.value;
        itineraryData.arrivalLocation = pi2;//-pi2.value;
        itineraryData.date = c1;// - c1.date;
        itineraryData.period = $('vxlcmbIda').value;//$('cmbIda').value;
        itineraryData.pointOfConnection = (pi3/*-pi3.value*/ == null) ? '' : pi3/*-pi3.value*/;
        itineraryDataArray.push(itineraryData);
        
        //aba
        /*
         var aba = new AbaDisponibilidade();
         aba.setOrigem(pi1.value);
         aba.setDestino(pi2.value);
         aba.setData(c1.date);//c1.value roger
         aba.setId(abaIda_Volta.length);
         aba.setLowFare(lowFare);
         */
        //Volta - estrutura lowfare
        //debugger
        if (lowFare && idaVolta) {
            //aba.setDataVolta(c2.date);//c2.value roger
            itineraryData = new StructType('ItineraryData');
            itineraryData.departureLocation = pi2;//-pi2.value;
            itineraryData.arrivalLocation = pi1;//-pi1.value;
            itineraryData.date = c2;//c2.date;
            itineraryData.period = $('vxlcmbVolta').value; //$('cmbVolta').value;
            itineraryData.pointOfConnection = (pi3 == null) ? '' : pi3;//-(pi3.value == null) ? '' : pi3.value;
            itineraryDataArray.push(itineraryData);
        }
        //Inserindo aba no array (ida)
        //abaIda_Volta.push(aba);
        
        //Volta 
        if (idaVolta && !lowFare) {
            //estrutura airavail
            itineraryData = new StructType('ItineraryData');
            itineraryData.departureLocation = pi2;//-pi2.value;
            itineraryData.arrivalLocation = pi1;//-pi1.value;
            itineraryData.date = c2;//-c2.date;
            itineraryData.period = $('vxlcmbVolta').value;//$('cmbVolta').value;
            itineraryData.pointOfConnection = (pi3 == null ? '' : pi3);//(pi3.value == null ? '' : pi3.value);
            itineraryDataArray.push(itineraryData);
            
            //aba
            /*
             aba = new AbaDisponibilidade();
             aba.setOrigem(pi2.value);
             aba.setDestino(pi1.value);
             aba.setData(c2.date); //c2.value
             aba.setId(abaIda_Volta.length);
             */
            //Inserindo aba no array (volta)
            //abaIda_Volta.push(aba);
        };
        
        //Opcoes gerais
        availabilityData.itineraryDataArray = itineraryDataArray;
        availabilityData.cabin = $('vxltxtClasse').value;//-$('txtClasse').value;vxltxtClasse
        availabilityData.airLine = pi4 == null ? '' : pi4;//pi4.value == null ? '' : pi4.value;
        availabilityData.gdsCode = '';
        availabilityData.lowFare = lowFare;
        
        //Equivale ao Checkbox "Sem Conexao" - Retorna True/False
        availabilityData.directFlights = $('vxlchkSemConexao').value;//$('chkSemConexao').checked;
        //Filtro de sources (providers) Desabilitado  depois de implementado o availGDSNew
        /*
         var chksSources = document.getElementsByName('chkSources');
         var sourcesList = [];
         for (var i = 0; i < chksSources.length; i++) {
         if (!chksSources[i].checked) {
         sourcesList[i] = chksSources[i].value;
         }
         };
         */
        availabilityData.sourcesList = availableSourcesList;
        
        //Tenho q passar o negotiated   
        //NegotiatedFares
        var negotiatedFareArray = [];
        for (var i = 0; i < availableSourcesList.count(); i++) {
            negotiatedFareArray[i] = new StructType('NegotiatedFare');
            
            //Como virou B2C o usuario nao pode selecionar acordo
            //Se o usuario nao selecionou um acordo, monta de acodro com o textBox
            //if (selsAcordo[i].value == -1) {
            negotiatedFareArray[i].code = '';//txtsAcordo[i].value;
            negotiatedFareArray[i].gdsCode = availableSourcesList[i];//chksSources[i].value;
            negotiatedFareArray[i].jumpTo = '';
            negotiatedFareArray[i].type = '';
        };
        availabilityData.negotiatedFareArray = negotiatedFareArray;
        
        return true;
    };
    
    var searchAvailability = function(lowFare){
        if (!buildAvailabilityData(radIdaVolta, lowFare)) {
            return;
        };
        setTimeout(loadBuscandovoos, 1000);
    };
    
    var loadBuscandovoos = function(){
        $('disponibilidade').style.display = '';
        BookWebMethodsB2C.SearchAvailability(availabilityData, current.callbacks.searchAvailability);	
    };    
    
    this.ordenaVoos = function(pTag){
        //orndenacao dos voos listados Nacional
		
		switch(pTag){
			case"cia":
			getValueOrdena('companhia');

			$("thDe").className = '';
			$("thRefRT").className = '';
			$("thCias").className = 'ativo';
			$("thParadas").className = '';			
			break;
			
			case"dataSaida":
			getValueOrdena('dataSaida');

			$("thDe").className = 'ativo';
			$("thPara").className = '';
			$("thRefRT").className = '';
			$("thCias").className = '';
			$("thParadas").className = '';
			break;			
			
			case"dataChegada":
			getValueOrdena('dataChegada');
			$("thDe").className = '';
			$("thPara").className = 'ativo';
			$("thRefRT").className = '';
			$("thCias").className = '';
			$("thParadas").className = '';			
			break;
			
			case"preco":
			getValueOrdena('refRT');
			$("thDe").className = '';
			$("thPara").className = '';
			$("thRefRT").className = 'ativo';
			$("thCias").className = '';
			$("thParadas").className = '';					
			break;

			case"paradas":
			getValueOrdena('paradas');
			$("thDe").className = '';
			$("thPara").className = '';
			$("thRefRT").className = '';
			$("thCias").className = '';
			$("thParadas").className = 'ativo';			
			break;								
			
		};
    };
	
    var buildOpcoes = function(){
        if (!buscaPreco) {
            buildAvailContent();
            buildFilters();
        }
        else {
            buildLowFareContent();
            //orndenacao dos voos listados Internacional
            $("optOrdena").onclick = function(){
                getValueOrdena(this.value);
            };
            //chamando filtros
            buildFilters();
        };
    };
    
    var buildPagination = function(lengthOfPageRQ, quantityOfFlightsRQ){
        var lengthOfPage, auxLengthOfPage, first, quantityOfFlights, auxStart, auxEnd, sb = new StringBuilder(), t = new Template('main').structpage.filters;
        lengthOfPage = lengthOfPageRQ;
        
        lengthOfPage = parseInt(lengthOfPage);
        quantityOfFlights = parseInt(quantityOfFlights);
        
        
        quantityOfFlights = quantityOfFlightsRQ;
        
        //first = true;
        var control = Math.ceil(quantityOfFlights / lengthOfPage);
                
        for (var i = 1; i <= control; i++) {
        
            var pstart, pend;
            
            pstart = (i * lengthOfPage) - lengthOfPage + 1;
            pend = (i * lengthOfPage > quantityOfFlights) ? quantityOfFlights : i * lengthOfPage;
            t.pagination_0_1.i = i;
            t.pagination_0_1.estilo = ((paginacaoAV[abaAtual]==i)?"font-weight:bold":"");
            
			/*
			if (abaAtual > 0 && first) {
				if (paginacao == i) {
					t.pagination_0_1.estilo = "font-weight:bold";
					first = true;
				}
				else {

					t.pagination_0_1.estilo = "";
				};
			}else{
				if (paginacao == i) {
					t.pagination_0_1.estilo = "font-weight:bold";
					first = true;
				}
				else {
					t.pagination_0_1.estilo = "";
				};				
			};*/
			
			t.pagination_0_1.start = pstart;
            t.pagination_0_1.end = pend;
            sb.append(t.pagination_0_1.getHtml());
        };
        t.pagination_1_1.totalFlights = quantityOfFlightsRQ;
        t.pagination_1_1.inner_html_pagination_0_1 = sb.toString();
        $('paginacao').innerHTML = t.pagination_1_1.getHtml();
        for (var i = 1; i <= control; i++) {
            //$('pag_'+i).idx = i;//nao perde valor do i
            $('pag_' + i).onclick = function(){
                buildAvailContent(this.id.split('_')[1]);
            };
        };
    };
    
    
    var buildPagination2 = function(lengthOfPageRQ, quantityOfFlightsRQ){
        var lengthOfPage, auxLengthOfPage, first, quantityOfFlights, auxStart, auxEnd, sb = new StringBuilder(), t = new Template('main').structpage.filters;
        lengthOfPage = lengthOfPageRQ;
        
        lengthOfPage = parseInt(lengthOfPage);
        quantityOfFlights = parseInt(quantityOfFlights);
        
        
        quantityOfFlights = quantityOfFlightsRQ;
        
        first = true;
        var control = Math.ceil(quantityOfFlights / lengthOfPage);
        		
        for (var i = 1; i <= control; i++) {
        
            var pstart, pend;
            
            pstart = (i * lengthOfPage) - lengthOfPage + 1;
            pend = (i * lengthOfPage > quantityOfFlights) ? quantityOfFlights : i * lengthOfPage;
            t.pagination_0_1.i = i;
            t.pagination_0_1.estilo = ((paginacaoLF==i)?"font-weight:bold":"");
            t.pagination_0_1.start = pstart;
            t.pagination_0_1.end = pend;
            sb.append(t.pagination_0_1.getHtml());
        };
        t.pagination_1_1.totalFlights = quantityOfFlightsRQ;
        t.pagination_1_1.inner_html_pagination_0_1 = sb.toString();
        $('paginacao').innerHTML = t.pagination_1_1.getHtml();
        for (var i = 1; i <= control; i++) {
            //$('pag_'+i).idx = i;//nao perde valor do i
            $('pag_' + i).onclick = function(){
                buildLowFareContent(this.id.split('_')[1]);
            };
        };
    };
    
    
    //Monta os voos
    var buildAvailContent = function(pag){
    
        if(pag!=undefined) {
			/*
			if(abaAtual > 0){
	            paginacao[abaAtual] = pag;					
			}else{
	            paginacao[0] = pag;
			};
			*/
			paginacaoAV[abaAtual] = pag;
        };
        //alert(pag);
        var voosTable, trechos, filterOpcoesDeVoo;
        var sb = new StringBuilder();
        var rowspan = 1;
        var opcoesVooList = new Array();
        var codOpcaoVoo;
        var rowCount;
        var first;
        var currencyCode;
        var titleCityNameDe;
        var titleCityNamePara;
        var idTrVoo;
        
        var opcoesTable = abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesDeVoo;//abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesDeVoo;
        var opcoesTrecho = abaIda_Volta[abaAtual].getDsAvail().tables.Trechos;
        
        //montando voos
        //lengthOfPage[abaAtual] = 20;
                
        //if(opcoesTable.rows.length < 10){
        //lengthOfPage 
        qtdVoos = opcoesTable.rows.length;
        //};
        				
         buildPagination(lengthOfPageAV[abaAtual], qtdVoos);
         /*
         var paginate = {
         from: 0,
         to: lengthOfPage-1
         };*/
         
         if (pag) {
         	var to = (pag * lengthOfPageAV[abaAtual]) - 1;
	         paginate[abaAtual].from = pag * lengthOfPageAV[abaAtual] - lengthOfPageAV[abaAtual];
	         paginate[abaAtual].to = (to > qtdVoos) ? qtdVoos - 1 : to;
         };
         
		if(qtdVoos == 0){
			paginate[abaAtual].to = -1;
		};
		if(qtdVoos < paginate[abaAtual].to){
			paginate[abaAtual].to = qtdVoos;
		};
		
        //for (var i = 0; i < opcoesTable.rows.length; i++) { //Implementado a paginacao
          for (var i = paginate[abaAtual].from; i < paginate[abaAtual].to; i++) {
            codOpcaoVoo = opcoesTable.rows[i].codOpcaoDeVoo;
            
            abaIda_Volta[abaAtual].getVoosIt().findByKey(codOpcaoVoo);
            rowCount = rowspan = abaIda_Volta[abaAtual].getVoosIt().count();
            first = true;
            //===================================================================================			
            if (abaIda_Volta[abaAtual].getVoosIt().count() > 1) {
                //	j=0;
                //fazer a strutura da Ida e da volta
                vooRow = abaIda_Volta[abaAtual].getVoosIt().row;//Temp for make a test
                abaIda_Volta[abaAtual].getVoosIt().moveFirst();
                vooRowIda = abaIda_Volta[abaAtual].getVoosIt().row;

                abaIda_Volta[abaAtual].getVoosIt().moveLast();
                vooRowVolta = abaIda_Volta[abaAtual].getVoosIt().row;
                
                mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.codOpcao = vooRow.codOpcaoDeVoo;
                //mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.rowId = 'linhaVoo_' + vooRow.codOpcaoDeVoo + '_' + rowCount + '_' + j++;
                
                mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.rowId = 'linhaVoo_' + vooRow.codOpcaoDeVoo + '_' + i;
                
                if (mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.classLineVoo == 'cor') {
                    mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.classLineVoo = '';
                }
                else {
                    mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.classLineVoo = 'cor';
                };
                
                mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.rowspan = rowspan;
                //Replace moeda currency to R$ or USD to $$
                if (opcoesTable.rows[i].moeda == "BRL") {
                    currencyCode = "R$";
                }
                else {
                    currencyCode = "$$";
                };
                mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.moeda = currencyCode;
                mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.refOW = opcoesTable.rows[i].refOW.formatNumber(2, true);
                
                mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.de = vooRowIda.origem;
                mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.para = vooRowVolta.destino;
                                
                //Coloca o nome da Cidade de Origem e Destino
               // mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.nomeCidadeDe = opcoesTrecho.rows[0].CidadeOrigem;
                nomeCidadeDe = vooRowIda.cityNameDe;
                nomeCidadeDe = nomeCidadeDe.split('-');
                mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.nomeCidadeDe = nomeCidadeDe[0];
                
               //mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.nomeCidadePara = opcoesTrecho.rows[0].CidadeDestino;//vooRow.cityNamePara;
               nomeCidadePara = vooRowVolta.cityNamePara;
               nomeCidadePara = nomeCidadePara.split('-');
               mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.nomeCidadePara = nomeCidadePara[0];//vooRow.cityNamePara;
                
                mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.voo = vooRow.numero;
                
                if (opcoesTable.rows[i].ciaPreferencial > 0) {
                    mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.cia = vooRow.companhia + "*";
                }
                else {
                    mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.cia = vooRow.companhia;
                };
                
                mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.logo = vooRow.logo;
				mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.nomeCiaAerea = opcoesTable.rows[i].nomeCompanhia;//vooRow.nomeCiaAerea; 

                mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.siglaCia = vooRow.companhia;
                mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.numVoo = vooRow.numero;
                
                mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.saida = vooRowIda.dataHoraSaida.toString('dd/MM HH:mm');
                mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.chegada = vooRowVolta.dataHoraChegada.toString('dd/MM HH:mm');
                
                mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.paradas = abaIda_Volta[abaAtual].getVoosIt().count() -1; //opcoesTable.rows[i].paradas;//vooRow.numParadas;
                mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.duracao = opcoesTable.rows[i].duracaoStr;
                mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.codVoo = vooRow.codVoo;
                
                mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.numVoo = vooRow.numero;
                
                //mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.classes = current.buildClasses(abaAtual, vooRow.codVoo, vooRow.codOpcaoDeVoo);
                //mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.src = opcoesTable.rows[i].sourceCode;
                mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.equip = (vooRow.equipamento == "") ? '&nbsp;' : vooRow.equipamento;

                titleCityNameDe = opcoesTrecho.rows[0].CidadeOrigem; //abaIda_Volta[abaAtual].getVoosIt().row.cityNameDe;
                titleCityNameDe = titleCityNameDe.split('-');
                
                titleCityNamePara = opcoesTrecho.rows[0].CidadeDestino; //abaIda_Volta[abaAtual].getVoosIt().row.cityNamePara;
                titleCityNamePara = titleCityNamePara.split('-');
                
                //Faz o tilte da Aba
                if (abaAtual == 0 || abaAtual == 1) {
                    if(abaAtual == 0 ){
                        $('txtAbaIda').innerHTML = opcoesTrecho.rows[0].origem + ">" + opcoesTrecho.rows[0].destino;  //vooRow.origem + ">" + vooRow.destino;
                        $('txtAbaVolta').innerHTML = opcoesTrecho.rows[0].destino + ">" + opcoesTrecho.rows[0].origem;  //vooRow.destino + ">" + vooRow.origem;
					};
					$('tituloBuscaVoos').innerHTML = "<label>" + "Voo de&nbsp;" + titleCityNameDe[0] + "</b>" + "&nbsp;para&nbsp;" + "<b>" + titleCityNamePara[0] + "</b>" + "</label>";
                };
				
				/*
                //Adiciona Descricao (title)
                if (abaAtual == 0  || abaAtual == 1) {
                    $('tituloBuscaVoos').innerHTML = "<label>" + "Ida de&nbsp;" + titleCityNameDe[0] + "</b>" + "&nbsp;para&nbsp;" + "<b>" + titleCityNamePara[0] + "</b>" + "</label>";
                    $('txtAbaIda').innerHTML = opcoesTrecho.rows[0].origem + ">" + opcoesTrecho.rows[0].destino;  //vooRow.origem + ">" + vooRow.destino;
                    $('txtAbaVolta').innerHTML = opcoesTrecho.rows[0].destino + ">" + opcoesTrecho.rows[0].origem;  //vooRow.destino + ">" + vooRow.origem;
                };*/
								
                mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.equipDescription = (vooRow.nomeEquip == "") ? '&nbsp;' : vooRow.nomeEquip;
                mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.descricaDe = (vooRow.cityNameDe == "") ? '&nbsp;' : vooRow.cityNameDe;
                mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.descricaPara = (vooRow.cityNamePara == "") ? '&nbsp;' : vooRow.cityNamePara;
                
                if (opcoesTable.rows[i].ciaPreferencial > 0) {
                    mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.descricaoCia = (vooRow.nomeCiaAerea == "") ? '&nbsp;' : vooRow.nomeCiaAerea + " *";
                }
                else {
                    mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.descricaoCia = (vooRow.nomeCiaAerea == "") ? '&nbsp;' : vooRow.nomeCiaAerea;
                };
                
                sb.append(mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.getHtml());
                //===================================================================================
            }
            else {
                while (abaIda_Volta[abaAtual].getVoosIt().hasNext()) {
                    vooRow = abaIda_Volta[abaAtual].getVoosIt().row;
                    
                    titleCityNameDe = opcoesTrecho.rows[0].CidadeOrigem; //abaIda_Volta[abaAtual].getVoosIt().row.cityNameDe;
                    titleCityNameDe = titleCityNameDe.split('-');
                    
                    titleCityNamePara = opcoesTrecho.rows[0].CidadeDestino; //abaIda_Volta[abaAtual].getVoosIt().row.cityNamePara;
                    titleCityNamePara = titleCityNamePara.split('-');
                    
                    //Faz o tilte da Aba
                    if (abaAtual == 0 || abaAtual == 1) {
                        if(abaAtual == 0 ){
	                        $('txtAbaIda').innerHTML = opcoesTrecho.rows[0].origem + ">" + opcoesTrecho.rows[0].destino;  //vooRow.origem + ">" + vooRow.destino;
	                        $('txtAbaVolta').innerHTML = opcoesTrecho.rows[0].destino + ">" + opcoesTrecho.rows[0].origem;  //vooRow.destino + ">" + vooRow.origem;
						};
						$('tituloBuscaVoos').innerHTML = "<label>" + "Voo de&nbsp;" + titleCityNameDe[0] + "</b>" + "&nbsp;para&nbsp;" + "<b>" + titleCityNamePara[0] + "</b>" + "</label>";
                    };
					
                    if (first) {
                        //j = 0;
                        mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.codOpcao = vooRow.codOpcaoDeVoo;
                        //mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.rowId = 'linhaVoo_' + vooRow.codOpcaoDeVoo + '_' + rowCount + '_' + j++;
                        mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.rowId = 'linhaVoo_' + vooRow.codOpcaoDeVoo + '_' + i;
                        
                        //idTrVoo = 'linhaVoo_' + vooRow.codOpcaoDeVoo + '_' + i;
                        
                        if (mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.classLineVoo == 'cor') {
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.classLineVoo = '';
                        }
                        else {
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.classLineVoo = 'cor';
                        };
                        
                        mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.rowspan = rowspan;
                        //Replace moeda currency to R$ or USD to $$
                        if (opcoesTable.rows[i].moeda == "BRL") {
                            currencyCode = "R$";
                        }
                        else {
                            currencyCode = "$$";
                        };
                        mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.moeda = currencyCode;
                        mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.refOW = opcoesTable.rows[i].refOW.formatNumber(2, true);
                        
                        mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.de = vooRow.origem;
                        mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.para = vooRow.destino;
                        
                        
                        //Coloca o nome da Cidade de Origem e Destino
                         //mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.nomeCidadeDe = opcoesTrecho.rows[0].CidadeOrigem;
                        var nomeCidadeDe = vooRow.cityNameDe;
                        nomeCidadeDe = nomeCidadeDe.split('-');
                        mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.nomeCidadeDe = nomeCidadeDe[0];
                        
                        // mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.nomeCidadePara = opcoesTrecho.rows[0].CidadeDestino;
                         var nomeCidadePara = vooRow.cityNamePara;
                        nomeCidadePara = nomeCidadePara.split('-');
                        mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.nomeCidadePara = nomeCidadePara[0];//vooRow.cityNamePara;

                        
                        mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.voo = vooRow.numero;
                        
                        if (opcoesTable.rows[i].ciaPreferencial > 0) {
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.cia = vooRow.companhia + "*";
                        }
                        else {
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.cia = vooRow.companhia;
                        };
                        //$('testttt').innerHTML = "testert2";
                        
                        mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.logo = vooRow.logo;
						mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.nomeCiaAerea = opcoesTable.rows[i].nomeCompanhia;//vooRow.nomeCiaAerea;
		                
						mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.siglaCia = vooRow.companhia;
		                mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.numVoo = vooRow.numero;
												
                        mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.saida = vooRow.dataHoraSaida.toString('dd/MM HH:mm');
                        mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.chegada = vooRow.dataHoraChegada.toString('dd/MM HH:mm');
                        mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.paradas = abaIda_Volta[abaAtual].getVoosIt().count() -1; //opcoesTable.rows[i].paradas;
                       // mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.duracao = opcoesTable.rows[i].duracaoStr;
                        mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.codVoo = vooRow.codVoo;
                        //mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.classes = current.buildClasses(abaAtual, vooRow.codVoo, vooRow.codOpcaoDeVoo);
                        //mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.src = opcoesTable.rows[i].sourceCode;
                        mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.equip = (vooRow.equipamento == "") ? '&nbsp;' : vooRow.equipamento;
                        
                        //Adiciona Descricao (title)
                        mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.equipDescription = (vooRow.nomeEquip == "") ? '&nbsp;' : vooRow.nomeEquip;
                        mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.descricaDe = (vooRow.cityNameDe == "") ? '&nbsp;' : vooRow.cityNameDe;
                        mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.descricaPara = (vooRow.cityNamePara == "") ? '&nbsp;' : vooRow.cityNamePara;
                        
                        if (opcoesTable.rows[i].ciaPreferencial > 0) {
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.descricaoCia = (vooRow.nomeCiaAerea == "") ? '&nbsp;' : vooRow.nomeCiaAerea + " *";
                        }
                        else {
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.descricaoCia = (vooRow.nomeCiaAerea == "") ? '&nbsp;' : vooRow.nomeCiaAerea;
                        };
                        
                        sb.append(mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.getHtml());
                        first = false;
                    };
                    abaIda_Volta[abaAtual].getVoosIt().moveNext();
                };
            };
            
        };
        if (opcoesTable.rows.length > 0) {
            mainControl.tpl().aereo.reserva.cnt_reserva_0_3.opcoesTableLowFare = "";
            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2.demaisLinhas = sb.toString();
            //mainControl.tpl().aereo.reserva.cnt_reserva_0_3.data = "";
            mainControl.tpl().aereo.reserva.cnt_reserva_0_3.opcoesTable = mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2.getHtml();
            $('disponibilidade').innerHTML = mainControl.tpl().aereo.reserva.cnt_reserva_0_3.getHtml();
        }
        else {
            if (filtered) {
                mainControl.tpl().aereo.reserva.cnt_reserva_0_3.opcoesTable = 'O filtro aplicado eliminou todos os voos.';
                $('disponibilidade').innerHTML = mainControl.tpl().aereo.reserva.cnt_reserva_0_3.getHtml();
            }
            else {
                $('disponibilidade').innerHTML = mainControl.tpl().aereo.reserva.cnt_reserva_0_5.getHtml();
            };
        };
    };
    

    //Monta os voos
    var buildLowFareContent = function(pag){
    
        if(pag!=undefined) {
           paginacaoLF = pag; 
        };
        var first;
        var codOpcaoMP;
        var opcoesMPOpcoesVooIt;
        var voosIt;
        var opcoesMPTable = abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesMP;//abasArray[abaAtual].getDsAvail().tables.OpcoesMP;
        var opcoesMPTrechos = abaIda_Volta[abaAtual].getDsAvail().tables.Trechos;//abasArray[abaAtual].getDsAvail().tables.OpcoesMP;
        var vooRow;
        var opcaoRow;
        var sb = new StringBuilder();
        var currencyCode;
	    var lengthOfPage = 20;
        //Ajustando a Barra de ordenacao
    
	    mainControl.tpl().aereo.reserva.cnt_reserva_0_3.colspanCias = "2";
        
		
		qtdVoos = opcoesMPTable.rows.count();		
     	buildPagination2(lengthOfPage, qtdVoos);
         
		var paginate = {
			from: 0,
			to: lengthOfPage-1
		};
		
		if (pag) {
	 		var to = (pag * lengthOfPage) - 1;
		 	paginate.from = pag * lengthOfPage - lengthOfPage;
		 	paginate.to = (to > qtdVoos) ? qtdVoos - 1 : to;
		};
         
		if(qtdVoos == 0){
			paginate.to = -1;
		};
		if(qtdVoos < paginate.to){
			paginate.to = qtdVoos;
		};
		
		for (var i = paginate.from; i < paginate.to; i++) {
        //for (var i = 0; i < opcoesMPTable.rows.count(); i++) {
            codOpcaoMP = opcoesMPTable.rows[i].codOpcaoMP;
			ciaPrincipal = opcoesMPTable.rows[i].logo;
			
            opcoesMPOpcoesVooIt = abaIda_Volta[abaAtual].getOpcoesMPOpcoesVooIt();//abasArray[abaAtual].getOpcoesMPOpcoesVooIt();
            opcoesMPOpcoesVooIt.findByKey(codOpcaoMP);
            
            first = true;
            while (opcoesMPOpcoesVooIt.hasNext()) {
                voosIt = abaIda_Volta[abaAtual].getVoosIt();//abasArray[abaAtual].getVoosIt();
                voosIt.findByKey(opcoesMPOpcoesVooIt.row.codOpcaoDeVoo);

             	voosIt.moveFirst();
                abaIda_Volta[abaAtual].getOpcoesVooIt().findByKey(opcoesMPOpcoesVooIt.row.codOpcaoDeVoo);//abasArray[abaAtual].getOpcoesVooIt().findByKey(opcoesMPOpcoesVooIt.row.codOpcaoDeVoo);
                opcaoRow = abaIda_Volta[abaAtual].getOpcoesVooIt().row;//abasArray[abaAtual].getOpcoesVooIt().row;
                while (voosIt.hasNext()) {
                    //NumeEscalas = voosIt.row.numParadas;
                    //if (first){
                   
					if ($('vxlradIdaVolta').value == "true"){
                    //if (voosIt.count() > 1) {//debugger
                        if (first) {
                            first = false;
							
                            //fazer a strutura da Ida e da volta							
                            vooRow = abaIda_Volta[abaAtual].getVoosIt().row;//Temp for make a test
                            var voosIt2 = abaIda_Volta[abaAtual].getVoosIt();
                            abaIda_Volta[abaAtual].getVoosIt().moveFirst();
                            vooRowIda = abaIda_Volta[abaAtual].getVoosIt().row;
                            
                            abaIda_Volta[abaAtual].getVoosIt().moveLast();
                            vooRowVolta = abaIda_Volta[abaAtual].getVoosIt().row;
                            
                            if (mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.classLineVoo == 'cor') {
                                mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.classLineVoo = '';
                            }
                            else {
                                mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.classLineVoo = 'cor';
                            };
                            
                            //para fechar os detalhes
                            //mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_0_0.codOpcao = opcoesMPTable.rows[i].codOpcaoMP;
                            
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.codOpcao = opcoesMPTable.rows[i].codOpcaoMP;
                            
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.rowspan = opcoesMPTable.rows[i].rowspan;
                            
                            //Replace moeda brl to R$ or USD to $$
                            if (opcoesMPTable.rows[i].moeda == "BRL") {
                                currencyCode = "R$";
                            }
                            else {
                                currencyCode = "$$";
                            };
                            
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.moeda = currencyCode;
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.preco = opcoesMPTable.rows[i].tarifaADT.formatNumber(2, true);
                            //mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.src = opcaoRow.sourceCode;
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.de = vooRowIda.origem;//voosIt.row.origem;
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.para = vooRowVolta.destino;//voosIt.row.destino;
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.voo = voosIt.row.numero;
                            /*mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.cia = voosIt.row.companhia;*/
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.logo = ciaPrincipal;//voosIt.logo;//companhiaOperadora;//voosIt.row.logo;
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.nomeCiaAerea = vooRowIda.nomeCiaAerea;
							
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.saida = vooRowIda.dataHoraSaida.toString('dd/MM HH:mm');//voosIt.row.dataHoraSaida.toString('dd/MM HH:mm');
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.chegada = vooRowVolta.dataHoraChegada.toString('dd/MM HH:mm');//voosIt.row.dataHoraChegada.toString('dd/MM HH:mm');
                            
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.paradas = voosIt.count() - 1 ; //opcoesMPTable.rows[i].paradas ;//voosIt.row.numParadas;
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.equip = voosIt.row.equipamento;
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.classes = current.buildClasses(abaAtual, voosIt.row.codVoo, voosIt.row.codOpcaoDeVoo);

                            //Coloca o nome da Cidade de Origem e Destino                    
                            var nomeCidadeDe = vooRowIda.cityNameDe;//voosIt.row.cityNameDe;
                            nomeCidadeDe = nomeCidadeDe.split('-');
                            
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.nomeCidadeDe = nomeCidadeDe[0];//vooRow.cityNameDe;
                            var nomeCidadePara = vooRowVolta.cityNamePara;//voosIt.row.cityNamePara;
                            nomeCidadePara = nomeCidadePara.split('-');
                            
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.nomeCidadePara = nomeCidadePara[0];//vooRow.cityNamePara;	
                            //Adiciona Descricao (title)
                            
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.estado = "";
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.pais = "";
                            
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.descricaoEquip = voosIt.row.nomeEquip;
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.descricaoDe = voosIt.row.cityNameDe;
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.descricaoPara = voosIt.row.cityNamePara;
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.descricaoCia = voosIt.row.nomeCiaAerea;
                            
                            //Coloca o nome da Cidade de Origem e Destino                    
                            var nomeCidadeDe2 = opcoesMPTrechos.rows[0].CidadeOrigem; 
                            nomeCidadeDe2 = nomeCidadeDe2.split('-');
                            
                            var nomeCidadePara2 = opcoesMPTrechos.rows[0].CidadeDestino; 
                            nomeCidadePara2 = nomeCidadePara2.split('-');

							//title of result
							$('tituloBuscaVoos').innerHTML = "Ida e Volta de&nbsp;"+ nomeCidadeDe2[0] +"para&nbsp;"+nomeCidadePara2[0];
                            
                        }else {
                        
                            //fazer a strutura da Ida e da volta
                            vooRow = abaIda_Volta[abaAtual].getVoosIt().row;//Temp for make a test
                            abaIda_Volta[abaAtual].getVoosIt().moveFirst();
                            vooRowIda = abaIda_Volta[abaAtual].getVoosIt().row;
                            
                            abaIda_Volta[abaAtual].getVoosIt().moveLast();
                            vooRowVolta = abaIda_Volta[abaAtual].getVoosIt().row;

                            //Coloca o nome da Cidade de Origem e Destino                    
                            var nomeCidadeDe = vooRowIda.cityNameDe;//voosIt.row.cityNameDe;
                            nomeCidadeDe = nomeCidadeDe.split('-');
                            var nomeCidadePara = vooRowVolta.cityNamePara;//voosIt.row.cityNamePara;
                            nomeCidadePara = nomeCidadePara.split('-');
                            
                            
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.Voo_Volta = "Voo de Volta";
							mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.labelConex = "Conexões:";							
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.nomeCidadeDe_volta = nomeCidadeDe[0];
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.nomeCidadePara_volta = nomeCidadePara[0];
                            
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.de_volta = "("+vooRowIda.origem+")";
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.para_volta = "("+vooRowVolta.destino+")";
                            
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.estado = "";
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.pais = "";
                            
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.saida_volta = vooRowIda.dataHoraSaida.toString('dd/MM HH:mm');
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.chegada_volta = vooRowVolta.dataHoraChegada.toString('dd/MM HH:mm');
                            
                            //alert(vooRowVolta.numParadas);
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.paradas_volta = voosIt.count() - 1 ; //opcoesMPTable.rows[i].paradas;//vooRowIda.numParadas;
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.estado_volta = "";
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.pais_volta = "";
                            

                            sb.append(mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.getHtml());
                        };
   
                    }else{
						
                        if (first) {
                            first = false;
							
                            //fazer a strutura da Ida e da volta							
                            vooRow = abaIda_Volta[abaAtual].getVoosIt().row;//Temp for make a test
                            abaIda_Volta[abaAtual].getVoosIt().moveFirst();
                            vooRowIda = abaIda_Volta[abaAtual].getVoosIt().row;
                            
                            abaIda_Volta[abaAtual].getVoosIt().moveLast();
                            vooRowVolta = abaIda_Volta[abaAtual].getVoosIt().row;
                            
                            
                            if (mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.classLineVoo == 'cor') {
                                mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.classLineVoo = '';
                            }
                            else {
                                mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.classLineVoo = 'cor';
                            };
                            
                            //para fechar os detalhes
                            //mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_0_0.codOpcao = opcoesMPTable.rows[i].codOpcaoMP;
                            
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.codOpcao = opcoesMPTable.rows[i].codOpcaoMP;
                            
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.rowspan = opcoesMPTable.rows[i].rowspan;
                            
                            //Replace moeda brl to R$ or USD to $$
                            if (opcoesMPTable.rows[i].moeda == "BRL") {
                                currencyCode = "R$";
                            }
                            else {
                                currencyCode = "$$";
                            };
                            
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.moeda = currencyCode;
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.preco = opcoesMPTable.rows[i].tarifaADT.formatNumber(2, true);
                            //mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.src = opcaoRow.sourceCode;
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.de = vooRowIda.origem;//voosIt.row.origem;
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.para = vooRowVolta.destino;//voosIt.row.destino;
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.voo = voosIt.row.numero;
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.cia = voosIt.row.companhia;
                            //mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.logo = voosIt.row.logo;
							mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.logo = ciaPrincipal;
                            
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.saida = vooRowIda.dataHoraSaida.toString('dd/MM HH:mm');//voosIt.row.dataHoraSaida.toString('dd/MM HH:mm');
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.chegada = vooRowVolta.dataHoraChegada.toString('dd/MM HH:mm');//voosIt.row.dataHoraChegada.toString('dd/MM HH:mm');
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.paradas = voosIt.count() - 1 ; //opcoesMPTable.rows[i].paradas;//voosIt.row.numParadas;
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.equip = voosIt.row.equipamento;
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.classes = current.buildClasses(abaAtual, voosIt.row.codVoo, voosIt.row.codOpcaoDeVoo);

                            //Coloca o nome da Cidade de Origem e Destino                    
                            var nomeCidadeDe = vooRowIda.cityNameDe;//voosIt.row.cityNameDe;
                            nomeCidadeDe = nomeCidadeDe.split('-');
                            
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.nomeCidadeDe = nomeCidadeDe[0];//vooRow.cityNameDe;
                            var nomeCidadePara = vooRowVolta.cityNamePara;//voosIt.row.cityNamePara;
                            nomeCidadePara = nomeCidadePara.split('-');
                            
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.nomeCidadePara = nomeCidadePara[0];//vooRow.cityNamePara;	
                            //Adiciona Descricao (title)
                            
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.estado = "";
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.pais = "";
                            
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.descricaoEquip = voosIt.row.nomeEquip;
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.descricaoDe = voosIt.row.cityNameDe;
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.descricaoPara = voosIt.row.cityNamePara;
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.descricaoCia = voosIt.row.nomeCiaAerea;

							
							//estrutura vazia Somente Ida
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.Voo_Volta = "";
							mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.labelConex = "";
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.nomeCidadeDe_volta = "";
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.nomeCidadePara_volta = "";
                            
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.de_volta = "";
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.para_volta = "";
                            
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.estado = "";
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.pais = "";
                            
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.saida_volta = "";
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.chegada_volta = "";
                            
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.paradas_volta = "";
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.estado_volta = "";
                            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.pais_volta = "";
							
							
							//Coloca o nome da Cidade de Origem e Destino                    
                            var nomeCidadeDe2 = opcoesMPTrechos.rows[0].CidadeOrigem; 
                            nomeCidadeDe2 = nomeCidadeDe2.split('-');
                            
                            var nomeCidadePara2 = opcoesMPTrechos.rows[0].CidadeDestino; 
                            nomeCidadePara2 = nomeCidadePara2.split('-');
							
							//title of result
							$('tituloBuscaVoos').innerHTML = "Voo &nbsp;"+ nomeCidadeDe2[0] +"para&nbsp;"+ nomeCidadePara2[0];

							sb.append(mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_1.getHtml());
                            
                        };						
					};

                    //*********************************************************************************************************************************************
                    voosIt.moveNext();
                };
                opcoesMPOpcoesVooIt.moveNext();
            };
        }
        if (opcoesMPTable.rows.length > 0) {//debugger
            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4.demaisLinhas = sb.toString();
            //mainControl.tpl().aereo.reserva.cnt_reserva_0_3.data = "";//abaIda_Volta[abaAtual].getData().toString('dd/MM/yyyy');//abasArray[abaAtual].getData().toString('dd/MM/yyyy');
            mainControl.tpl().aereo.reserva.cnt_reserva_0_3.opcoesTable = ""//mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4.getHtml();
            mainControl.tpl().aereo.reserva.cnt_reserva_0_3.opcoesTableLowFare = mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4.getHtml();
            $('disponibilidade').innerHTML = mainControl.tpl().aereo.reserva.cnt_reserva_0_3.getHtml();
            //$('listaPrecos').style.display = 'none';
            //$('filtros').style.display = 'none';
        }
        else {
            if (filtered) {
                mainControl.tpl().aereo.reserva.cnt_reserva_0_3.opcoesTableLowFare = 'O filtro aplicado eliminou todos os voos.';
                $('disponibilidade').innerHTML = mainControl.tpl().aereo.reserva.cnt_reserva_0_3.getHtml();
            }else {
                $('disponibilidade').innerHTML = mainControl.tpl().aereo.reserva.cnt_reserva_0_5.getHtml();
            };
        };
    };
    
    
    //=================================Details LowFare==================================
    
    
    this.buildDetailsLowFareContent = function(codOpcaoMP){//debugger
        if( $('details_' + codOpcaoMP).innerHTML !="") {
            This.closeDetails(codOpcaoMP);
        }
        else {
            $('lnkDetalhes' + codOpcaoMP).className = "icnDetalhe detalheOpen";

            var first;
            //var codOpcaoMP;
            var opcoesMPOpcoesVooIt;
            var voosIt;
            var opcoesMPTable = abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesMP;
            var vooRow;
            var opcaoRow;
            var sb = new StringBuilder();
            var currencyCode;
            var count = 1;
            
            //for (var i = 0; i < opcoesMPTable.rows.count(); i++) {
            //var codOpMp = codOpcaoMP;
            
            var i = parseInt(codOpcaoMP);
            codOpcaoMP = codOpcaoMP;//opcoesMPTable.rows[i - 1].codOpcaoMP;
            opcoesMPOpcoesVooIt = abaIda_Volta[abaAtual].getOpcoesMPOpcoesVooIt();
            opcoesMPOpcoesVooIt.findByKey(codOpcaoMP);
            
            first = true;
            while (opcoesMPOpcoesVooIt.hasNext()) {
                voosIt = abaIda_Volta[abaAtual].getVoosIt();
                voosIt.findByKey(opcoesMPOpcoesVooIt.row.codOpcaoDeVoo);
                abaIda_Volta[abaAtual].getOpcoesVooIt().findByKey(opcoesMPOpcoesVooIt.row.codOpcaoDeVoo);
                opcaoRow = abaIda_Volta[abaAtual].getOpcoesVooIt().row;
                while (voosIt.hasNext()) {
                    if (first) {
                        first = false;
                        mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.count = count;
                        mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_0_0.codOpcao = codOpcaoMP;
                        mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.de = voosIt.row.origem;
                        mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.para = voosIt.row.destino;
                        mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.cia = voosIt.row.companhia;
                        mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.logo = voosIt.row.logo;
						mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.nomeCiaAerea = voosIt.row.nomeCiaAerea;				
						
						mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.siglaCia = voosIt.row.companhia;
						mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.numVoo = voosIt.row.numero;	
						
                        mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.saida = voosIt.row.dataHoraSaida.toString('dd/MM HH:mm');
                        mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.chegada = voosIt.row.dataHoraChegada.toString('dd/MM HH:mm');
                        mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.paradas = voosIt.row.numParadas;
                        mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.equip = voosIt.row.equipamento;
                        mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.classes = current.buildClasses(abaAtual, voosIt.row.codVoo, voosIt.row.codOpcaoDeVoo);
                        
                       // mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.duracao = opcoesMPTable.rows[i].duracao;
                        
                        //Coloca o nome da Cidade de Origem e Destino                    
                        var nomeCidadeDe = voosIt.row.cityNameDe;
                        nomeCidadeDe = nomeCidadeDe.split('-');
                        
                        mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.nomeCidadeDe = nomeCidadeDe[0];//vooRow.cityNameDe;
                        var nomeCidadePara = voosIt.row.cityNamePara;
                        nomeCidadePara = nomeCidadePara.split('-');
                        
                        mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.nomeCidadePara = nomeCidadePara[0];//vooRow.cityNamePara;	
                        //Adiciona Descricao (title)
                        mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.descricaoEquip = voosIt.row.nomeEquip;
                        mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.descricaoDe = voosIt.row.cityNameDe;
                        mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.descricaoPara = voosIt.row.cityNamePara;
                        mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.descricaoCia = voosIt.row.nomeCiaAerea;
                        sb.append(mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.getHtml());
                    }
                    else {
                        mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.count = count;
                        //mainControl.tpl().aereo.reserva.cnt_reserva_0_3_4_0.src = opcaoRow.sourceCode;
                        mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.de = voosIt.row.origem;
                        mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.para = voosIt.row.destino;
                        mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.voo = voosIt.row.numero;
                        mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.cia = voosIt.row.companhia;
                        mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.logo = voosIt.row.logo;
						mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.nomeCiaAerea = voosIt.row.nomeCiaAerea;								
						
						mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.siglaCia = voosIt.row.companhia;
						mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.numVoo = voosIt.row.numero;							
                        mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.saida = voosIt.row.dataHoraSaida.toString('dd/MM HH:mm');
                        mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.chegada = voosIt.row.dataHoraChegada.toString('dd/MM HH:mm');
                        mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.paradas = voosIt.row.numParadas;
                        mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.equip = voosIt.row.equipamento;
                        mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.classes = current.buildClasses(abaAtual, voosIt.row.codVoo, voosIt.row.codOpcaoDeVoo);
                        
                        //Coloca o nome da Cidade de Origem e Destino                    
                        var nomeCidadeDe = voosIt.row.cityNameDe;
                        nomeCidadeDe = nomeCidadeDe.split('-');
                        
                        mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.nomeCidadeDe = nomeCidadeDe[0];
                        
                        var nomeCidadePara = voosIt.row.cityNamePara;
                        nomeCidadePara = nomeCidadePara.split('-');
                        
                        mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.nomeCidadePara = nomeCidadePara[0];
                        
                        //Adiciona Descricao (title)
                        mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.descricaoEquip = voosIt.row.nomeEquip;
                        mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.descricaoDe = voosIt.row.cityNameDe;
                        mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.descricaoPara = voosIt.row.cityNamePara;
                        mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.descricaoCia = voosIt.row.nomeCiaAerea;
                        sb.append(mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.getHtml());
                        
                    }
                    count = count+1;
                    voosIt.moveNext();
                }
                opcoesMPOpcoesVooIt.moveNext();

                //Apagando a ultima linha vazia do layout
                //if(!opcoesMPOpcoesVooIt.moveNext()){
                    //$('lineVoo_'+count).style.display = "none";            
                //};
            }
            //}//FOR
            if (opcoesMPTable.rows.length > 0) {//debugger
                mainControl.tpl().aereo.reserva.cnt_reserva_0_3.data = "";
                mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_0_0.reserva_detalhes_inner = sb.toString();
                $('details_' + codOpcaoMP).innerHTML = mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_0_0.getHtml();
                
                count = count-1;
                $('lineVoo_'+count).style.display = "none";   
            }
            else {
                if (filtered) {
                    mainControl.tpl().aereo.reserva.cnt_reserva_0_3.opcoesTable = 'O filtro aplicado eliminou todos os voos.';
                    $('disponibilidade').innerHTML = mainControl.tpl().aereo.reserva.cnt_reserva_0_3.getHtml();
                }
                else {
                    $('disponibilidade').innerHTML = mainControl.tpl().aereo.reserva.cnt_reserva_0_5.getHtml();
                };
            };
        };
    };
    
    this.closeDetails = function(codOpcao){
        $("details_" + codOpcao).innerHTML = "";
        $('lnkDetalhes' + codOpcao).className = "icnDetalhe detalheClose";
    };
    
    
    //=================================Details LowFare==================================
    
    
    
    //=================================Details AirAvail==================================
    
    this.buildDetailsAvailContent = function(codOpcao){//debugger
        if( $('details_' + codOpcao).innerHTML !="") {
            This.closeDetails(codOpcao);
        }
        else {
            $('lnkDetalhes' + codOpcao).className = "icnDetalhe detalheOpen";

    
            var voosTable, trechos, filterOpcoesDeVoo;
            var sb = new StringBuilder();
            var rowspan = 1;
            var opcoesVooList = new Array();
            var codOpcaoVoo;
            var rowCount;
            var first;
            var currencyCode;
            var titleCityNameDe;
            var titleCityNamePara;
            
            var opcoesTable = abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesDeVoo;//abasArray[abaAtual].getDsAvail().tables.OpcoesDeVoo;
            /*
             var i = parseInt(codOpcaoMP);
             codOpcaoMP = codOpcaoMP;//opcoesMPTable.rows[i - 1].codOpcaoMP;
             opcoesMPOpcoesVooIt = abaIda_Volta[abaAtual].getOpcoesMPOpcoesVooIt();
             opcoesMPOpcoesVooIt.findByKey(codOpcaoMP);*/
            //montando voos
            //for (var i = 0; i < opcoesTable.rows.length; i++) {
            codOpcaoVoo = codOpcao;//opcoesTable.rows[i].codOpcaoDeVoo;
            var i = parseInt(codOpcao);
            
            abaIda_Volta[abaAtual].getVoosIt().findByKey(codOpcaoVoo);
            rowCount = rowspan = abaIda_Volta[abaAtual].getVoosIt().count();
            first = true;
            while (abaIda_Volta[abaAtual].getVoosIt().hasNext()) {
            
                var opcoesTable = abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesDeVoo;//abasArray[abaAtual].getDsAvail().tables.OpcoesDeVoo;
                opcoesVooIt = abaIda_Volta[abaAtual].getOpcoesVooIt();
                opcoesVooIt.findByKey(codOpcao);
                
                vooRow = abaIda_Volta[abaAtual].getVoosIt().row;
                
                titleCityNameDe = abaIda_Volta[abaAtual].getVoosIt().row.cityNameDe;
                titleCityNameDe = titleCityNameDe.split('-');
                
                titleCityNamePara = abaIda_Volta[abaAtual].getVoosIt().row.cityNamePara;
                titleCityNamePara = titleCityNamePara.split('-');
                if (abaAtual == 0) {
                    $('tituloBuscaVoos').innerHTML = "<label>" + titleCityNameDe[0] + "</b>" + "&nbsp;para&nbsp;" + "<b>" + titleCityNamePara[0] + "</b>" + "</label>";
                };
                if (first) {
                    j = 0;
                    
                    mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_0_0.codOpcao = codOpcao;
                    mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.codOpcao = vooRow.codOpcaoDeVoo;
                    
                    mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.de = vooRow.origem;
                    mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.para = vooRow.destino;
                    
                    
                    //Coloca o nome da Cidade de Origem e Destino
                    var nomeCidadeDe = vooRow.cityNameDe;
                    nomeCidadeDe = nomeCidadeDe.split('-');
                    
                    mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.nomeCidadeDe = nomeCidadeDe[0];//vooRow.cityNameDe;
                    var nomeCidadePara = vooRow.cityNamePara;
                    nomeCidadePara = nomeCidadePara.split('-');
                    
                    mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.nomeCidadePara = nomeCidadePara[0];//vooRow.cityNamePara;
                    mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.voo = vooRow.numero;
                    
                   // mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.duracao = opcoesVooIt.row.duracaoStr;
                    
                    mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.cia = vooRow.companhia;
                    
                    
                    mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.classes = current.buildClasses(abaAtual, vooRow.codVoo, vooRow.codOpcaoDeVoo);
                    
                    mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.logo = vooRow.logo;
					mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.nomeCiaAerea = vooRow.nomeCiaAerea;							
					mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.siglaCia = vooRow.companhia;
					mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.numVoo = vooRow.numero;
                    mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.saida = vooRow.dataHoraSaida.toString('dd/MM HH:mm');
                    mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.chegada = vooRow.dataHoraChegada.toString('dd/MM HH:mm');
                    mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.paradas = vooRow.numParadas;
                    //mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.duracao = opcoesTable.rows[i-1].duracaoStr;
                    mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.codVoo = vooRow.codVoo;
                    //mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.classes = current.buildClasses(abaAtual, vooRow.codVoo, vooRow.codOpcaoDeVoo);
                    //mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_1.src = opcoesTable.rows[i].sourceCode;
                    mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.equip = (vooRow.equipamento == "") ? '&nbsp;' : vooRow.equipamento;
                    
                    //Adiciona Descricao (title)
                    mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.equipDescription = (vooRow.nomeEquip == "") ? '&nbsp;' : vooRow.nomeEquip;
                    mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.descricaDe = (vooRow.cityNameDe == "") ? '&nbsp;' : vooRow.cityNameDe;
                    mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.descricaPara = (vooRow.cityNamePara == "") ? '&nbsp;' : vooRow.cityNamePara;
                    
                    sb.append(mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.getHtml());
                    first = false;
                }
                else {
                
                    mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.codOpcao = vooRow.codOpcaoDeVoo;
                    //mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.rowId = 'linhaVoo_' + vooRow.codOpcaoDeVoo + '_' + rowCount + '_' + j++;
                    mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.de = vooRow.origem;
                    mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.para = vooRow.destino;
                    mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.voo = vooRow.numero;
                    mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.cia = vooRow.companhia;
                    mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.logo = vooRow.logo;
					mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.nomeCiaAerea = vooRow.nomeCiaAerea;
					mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.siglaCia = vooRow.companhia;
					mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.numVoo = vooRow.numero;					
                    mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.saida = vooRow.dataHoraSaida.toString('dd/MM HH:mm');
                    mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.chegada = vooRow.dataHoraChegada.toString('dd/MM HH:mm');
                    mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.paradas = vooRow.numParadas;
                    mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.codVoo = vooRow.codVoo;
                    mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.classes = current.buildClasses(abaAtual, vooRow.codVoo, vooRow.codOpcaoDeVoo);
                    mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.equip = (vooRow.equipamento == "") ? '&nbsp;' : vooRow.equipamento;
                    
                    mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.duracao = opcoesVooIt.row.duracaoStr;
                    mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.classes = current.buildClasses(abaAtual, vooRow.codVoo, vooRow.codOpcaoDeVoo);
                    
                    //Coloca o nome da Cidade de Origem e Destino                    
                    var nomeCidadeDe = vooRow.cityNameDe;
                    nomeCidadeDe = nomeCidadeDe.split('-');
                    
                    mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.nomeCidadeDe = nomeCidadeDe[0];//vooRow.cityNameDe;
                    var nomeCidadePara = vooRow.cityNamePara;
                    nomeCidadePara = nomeCidadePara.split('-');
                    
                    mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.nomeCidadePara = nomeCidadePara[0];//vooRow.cityNamePara;			
                    //Adiciona Descricao (title)
                    mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.equipDescription = (vooRow.nomeEquip == "") ? '&nbsp;' : vooRow.nomeEquip;
                    mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.descricaDe = (vooRow.cityNameDe == "") ? '&nbsp;' : vooRow.cityNameDe;
                    mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.descricaPara = (vooRow.cityNamePara == "") ? '&nbsp;' : vooRow.cityNamePara;
                    
                    sb.append(mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_inner.getHtml());
                };
                abaIda_Volta[abaAtual].getVoosIt().moveNext();
            };
            
            //};FOR
            if (opcoesTable.rows.length > 0) {
                mainControl.tpl().aereo.reserva.cnt_reserva_0_3.data = "";
                mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_0_0.reserva_detalhes_inner = sb.toString();
                $('details_' + codOpcao).innerHTML = mainControl.tpl().aereo.reserva.cnt_reserva_detalhes_0_0.getHtml();
                //$("tituloVooVolta").innerHTML = "";
            }
            else {
                if (filtered) {
                    mainControl.tpl().aereo.reserva.cnt_reserva_0_3.opcoesTable = 'O filtro aplicado eliminou todos os voos.';
                    $('disponibilidade').innerHTML = mainControl.tpl().aereo.reserva.cnt_reserva_0_3.getHtml();
                }
                else {
                    $('disponibilidade').innerHTML = mainControl.tpl().aereo.reserva.cnt_reserva_0_5.getHtml();
                };
            };
        };
    };
    //=================================Details AirAvail==================================
    
    
    
    
    this.buildClasses = function(codAba, codVoo, codOpcao){
    
        var sb = new StringBuilder();
        
        classesIt = abaIda_Volta[codAba].getClassesIt();//classesIt = abaIda_Volta[codAba].getClassesIt();
        classesIt.findByKey(codVoo);
        /*
         while (classesIt.hasNext()) {
         if (classesIt.row.selecionada) {
         mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_2.cor = '#E0E0E0;';
         }
         else {
         mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_2.cor = '';
         }
         
         mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_2.codAba = codAba;
         mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_2.codOpcaoVoo = codOpcao;
         mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_2.codVoo = codVoo;
         mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_2.codClasseReserva = classesIt.row.codClasseReserva;
         mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_2.classe = classesIt.row.classe;
         mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_2.lugares = classesIt.row.numLugares;
         sb.append(mainControl.tpl().aereo.reserva.cnt_reserva_0_3_2_2.getHtml());
         classesIt.moveNext();
         }*/
        return classesIt.row.classe;//sb.toString();
    };
	
	//Filtra o DS da volta para mostrar somento os voos do source da Ida selecionado
	var restrictInboundDS = function(){
		var iAbaVolta = abaIda_Volta.length - 1;
		
		abaIda_Volta[iAbaVolta].setDsAvail(arrayGeral.value[iAbaVolta]);
		abaIda_Volta[iAbaVolta].getDsAvail().tables.OpcoesDeVoo.unfilter(true);
		abaIda_Volta[iAbaVolta].getDsAvail().tables.OpcoesDeVoo.filter('sourceCode', abaIda_Volta[0].getItemCarrinho().getOpcoesSource()[1], filterMode.equals, caseType.CIAI);
	
	};
	
    this.selectOpcao = function(codOpcao){
		var codOpcaoMP = { 
			numberOpMP:codOpcao
		};
		
		if(abaIda_Volta[0].getItemCarrinho && abaIda_Volta[0].getItemCarrinho().getOpcoesSource){
			var selecaoAtual = abaIda_Volta[0].getItemCarrinho().getOpcoesSource();
		};

		var sourceCodeSelecaoAtual = (selecaoAtual != null && selecaoAtual.length > 0 ? selecaoAtual[1] : "");
		var sourceCodeNovaSelecao = "";
		
		var itOpcoesVoosIda = abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesDeVoo.getIterator('codOpcaoDeVoo');
		itOpcoesVoosIda.findByKey(codOpcao);
		if (itOpcoesVoosIda.count() > 0) {
			sourceCodeNovaSelecao = itOpcoesVoosIda.row.sourceCode;
		};
		itOpcoesVoosIda.dispose();
		
        abaIda_Volta[abaAtual].getItemCarrinho().addOpcaoSource([codOpcao, sourceCodeNovaSelecao]);//abaIda_Volta[abaAtual].getItemCarrinho().addOpcao(codOpcao);

        //Lowfare nao tem cesta de voo Executo a tarifada direto
        if (buscaPreco) {
            arrayGeral2 = abaIda_Volta;
			typeConditionLoad.lockUnlockButtons("botaoTarifarClickMP", "name", "lock");
            current.tarifar(codOpcaoMP.numberOpMP);
        }else{
            buildCarrinho(sourceCodeSelecaoAtual != sourceCodeNovaSelecao); //Esse metodo joga na cesta de voo
        };

        if (abaIda_Volta.length > 1 && abaAtual + 1 < abaIda_Volta.length) {
        	restrictInboundDS();
			
			// limpa os filtros da aba de volta
			abaIda_Volta[abaAtual + 1].setSliderPreco(null);
			abaIda_Volta[abaAtual].setSliderHorarioSaidaIda(null);
			
            current.selectAba("Volta");
        };
		
        if (abaIda_Volta.length == 1) {
            arrayGeral2 = abaIda_Volta;
            //if($('vxlradIdaVolta').value == "false"){
            //    buildCarrinho(false);
            //};
        };
    };
    
    this.retiraOpcao = function(aba, codOpcao){
		
		control = control - 1;
        abaIda_Volta[aba].getItemCarrinho().delOpcaoSource();
		if (abaIda_Volta.length > 1 && aba + 1 < abaIda_Volta.length) {
			abaIda_Volta[aba + 1].getItemCarrinho().delOpcaoSource();
		};
        abaAtual = aba;
        _abaIdaVolta = aba;
        buildCarrinho(false);
        destructorBotaoTarifar();
        
		if (aba == 0) {
            current.selectAba("Ida");
            $('cestaVooIda').className = "";
        }else {
            current.selectAba("Volta");
        };
    };
    
    this.getAbas = function(){
        return abaIda_Volta;
    };
    
    this.minimize = function(element){
        if ($(element).style.display == '') {
            $(element).style.display = 'none';
        }
        else {
            $(element).style.display = '';
        }
    };
    /*
     this.showHideTempoResposta = function(){
     
     if ($('listaTempo').style.display == 'none') {
     $('listaTempo').style.display = '';
     buildTempoResposta();
     
     }
     else {
     $('listaTempo').style.display = 'none';
     }
     };
     */
    this.showHideListaTarifas = function(){
        if ($('listaTarifasClasses').style.display != '') {
            abaIda_Volta[abaAtual].setShowListaTarifas(true);
        }
        else {
            abaIda_Volta[abaAtual].setShowListaTarifas(false);
        };
            //buildFareResults();
    };
    
    this.getFareRule = function(codTarifa){
    
        var tarifasIt = abaIda_Volta[abaAtual].getTarifasIt();
        tarifasIt.findByKey(codTarifa);
        
        var airFareRule = new StructType('AirFareRule');
        
        openDetailsTarifa('', true);
        
        if (tarifasIt.row != null) {
            var row = tarifasIt.row;
            
            airFareRule.source = row.sourceCode;
            airFareRule.language = 'PT-BR';
            airFareRule.resBookDesigCode = row.classe;
            airFareRule.fareBasis = row.baseTarifaria;
            airFareRule.isOneWay = (row.ow_rt == 0);
            airFareRule.airLine = row.companhia;
            airFareRule.currency = row.moeda;
            airFareRule.departureAirport = row.origem;
            airFareRule.arrivalAirport = row.destino;
            airFareRule.departureDateTime = abaIda_Volta[abaAtual].getData();
            airFareRule.arrivalDateTime = (row.ow_rt == 0) ? null : abaIda_Volta[abaAtual].getData().addDays(3);
        }
        
        BookWebMethodsB2C.GetFareRule(airFareRule, current.callbacks.getFareRule);
    };
	
    var buildCarrinho = function(apagaVolta){
        var mostrarCarrinho = false;
        var sb = new StringBuilder();
        
        //Scroll da pagina apos clicar na disponibilidade
        function pageScroll(){
            window.scroll(0, 0);//  scrollBy(0,0); 
        };
		
		pageScroll();
		
        mostrarCarrinho = true;
        
        sb.append(abaIda_Volta[abaAtual].getConteudoItemCarrinho(abaAtual));
        
		if (abaIda_Volta[0].getItemCarrinho().carrinhoVazio()) {
			$('carrinhoIda').innerHTML = "<table class='voo areaIda'><tbody><tr><th rowspan='2'>Voo de Ida</th>"+
														"<td><span class='msg'>Selecione Seu Voo De Ida Nos Resultados Abaixo.</span>"+
                                    						"</td></tr></tbody></table>";
			$('cestaVooIda').className = "mspVooIda comVoo";	
					
			$('carrinhoVolta').innerHTML = "<table class='voo areaVolta'><tbody><tr><th rowspan='2'>Voo de Volta</th>"+
                                					"<td><span class='msg'>Selecione Seu Voo De Volta Nos Resultados Abaixo.</span>"+
                            							"</td></tr></tbody></table>";
            $('cestaVooVolta').className = "mspVooIda comVoo";	
		}
		else {
			if (abaAtual == 0) {
				$('cestaVooIda').className = "mspVooIda comVoo";
				$('carrinhoIda').innerHTML = sb.toString();
			};
			
			if (apagaVolta || abaIda_Volta[1].getItemCarrinho().carrinhoVazio()){
				$('carrinhoVolta').innerHTML = "<table class='voo areaVolta'><tbody><tr><th rowspan='2'>Voo de Volta</th>"+
                                					"<td><span class='msg'>Selecione Seu Voo De Volta Nos Resultados Abaixo.</span>"+
                            							"</td></tr></tbody></table>";
            	$('cestaVooVolta').className = "mspVooIda comVoo";
			}
			else {
				if (abaAtual == 1) {
					$('carrinhoVolta').innerHTML = sb.toString();
					$('cestaVooVolta').className = "mspVooIda comVoo";
				};
			};
		};
    };

    var saveContext = function(){
        if ($('disponibilidade') != null && abaAtual >= 0) {
            abaIda_Volta[abaAtual].setHtmlAba($('disponibilidade').innerHTML);
        }
    };
    
    var saveFilters = function(){
        //somente se existir os filtros;
        if (abaAtual < 0) {
            return;
        }
        //Salva sliders
        //Salva sliderPreco
		//
		
        if (sliders[0] != null) {
            var slider = new Object();
            slider.value1 = sliders[0].currentValue;
            slider.value2 = sliders[0].currentValue2;
            slider.start = sliders[0].startValue;
            slider.end = sliders[0].endValue;
            abaIda_Volta[abaAtual].setSliderPreco(slider);
            //sliders[0].dispose();
            sliders[0] = null;
        };
        
		//abaIda_Volta[abaAtual].getSliderPreco();
        //abaIda_Volta[abaAtual].getSliderPreco();
		
		//Salva sliderHorario ida
        if (sliders[1] != null) {
            var slider = new Object();
            slider.value1 = sliders[1].currentValue;
            slider.value2 = sliders[1].currentValue2;
            slider.start = sliders[1].startValue;
            slider.end = sliders[1].endValue;
           	

			
			if (abaIda_Volta[abaAtual].getIsHorarioSaidaIda()) {
                abaIda_Volta[abaAtual].setSliderHorarioSaidaIda(slider);
            }
            else {
                abaIda_Volta[abaAtual].setSliderHorarioChegadaIda(slider);
            };
            //sliders[1].dispose();
            sliders[1] = null;
        };
        /*
        //Salva sliderHorario volta
        if (sliders[2] != null) {
            var slider = new Object();
            slider.value1 = sliders[2].currentValue;
            slider.value2 = sliders[2].currentValue2;
            slider.start = sliders[2].startValue;
            slider.end = sliders[2].endValue;
            if (abaIda_Volta[abaAtual].getIsHorarioSaidaVolta()) {
                abaIda_Volta[abaAtual].setSliderHorarioSaidaVolta(slider);
            }
            else {
                abaIda_Volta[abaAtual].setSliderHorarioChegadaVolta(slider);
            }
            sliders[2].dispose();
            sliders[2] = null;
        }
        */
        //var chkAeroportosSaida = abaIda_Volta[abaAtual].getChkAeroportosSaida();
        //var chkAeroportosChegada = abaIda_Volta[abaAtual].getChkAeroportosChegada();
		if (abaAtual == 0) {
			var chkCompanhias = abaIda_Volta[abaAtual].getChkCompanhias();
			//var chkParadas = abaIda_Volta[abaAtual].getChkParadas();
			/*if (chkAeroportosSaida != null && chkAeroportosChegada != null && chkCompanhias != null && chkParadas != null) {*/
			if (chkCompanhias != null) {
				//Salva checkboxes
				/*
			 //aeroportos saida
			 for (var i = 0; i < chkAeroportosSaida.length; i++) {
			 chkAeroportosSaida[i].checked = $(chkAeroportosSaida[i].id).checked;
			 }
			 abaIda_Volta[abaAtual].setChkAeroportosSaida(chkAeroportosSaida);
			 
			 //aeroportos chegada
			 for (var i = 0; i < chkAeroportosChegada.length; i++) {
			 chkAeroportosChegada[i].checked = $(chkAeroportosChegada[i].id).checked;
			 }
			 abaIda_Volta[abaAtual].setChkAeroportosChegada(chkAeroportosChegada);
			 */
					//companhias
					for (var i = 0; i < chkCompanhias.length; i++) {
						if ($(chkCompanhias[i].id)) {
							chkCompanhias[i].checked = $(chkCompanhias[i].id).checked;						
						};
					};
					abaIda_Volta[abaAtual].setChkCompanhias(chkCompanhias);
					
					//abaIda_Volta[abaAtual].setSliderPreco(slider);//*************************************
				/*
			 //paradas
			 for (var i = 0; i < chkParadas.length; i++) {
			 chkParadas[i].checked = $(chkParadas[i].id).checked;
			 }
			 abaIda_Volta[abaAtual].getChkParadas(chkParadas);
			 */
			};

			//buildFilters();			
		};
    };
    
    var initAcordos = function(){
    
        var sources = document.getElementsByName("chkSources");
        
        for (var i = 0; i < sources.length; i++) {
            document.getElementById('divAcordoManual[' + i + ']').display = function(){
                this.style.visibility = (this.style.visibility == 'visible') ? 'hidden' : 'visible';
            };
            
            document.getElementById('btnAcordoManual[' + i + ']').dspIdx = i;
            document.getElementById('btnAcordoManual[' + i + ']').onclick = function(){
                document.getElementById('divAcordoManual[' + this.dspIdx + ']').display();
            };
        };
    };
    
    
    var processSlider = function(){
        if (hasChanged()) {
            updateResults();
            rebuildIterators();
            //setTimeout('mainControl.scope().disponibilidade().updateResults()', 1);
            //msgLayer.show('aguarde');
        };
    };
    
    var hasChanged = function(){
        var pedras = abaIda_Volta[abaAtual].getPedras();
        if (!abaIda_Volta[abaAtual].getLowFare()) {
            if (!pedras.length || pedras[0] != $('sliderPreco').slider.currentValue ||
            pedras[1] != $('sliderPreco').slider.currentValue2 ||
            pedras[2] != $('sliderHorarioSaidaIda').slider.currentValue ||
            pedras[3] != $('sliderHorarioSaidaIda').slider.currentValue2 ||
            pedras[4] != $('sliderHorarioChegadaIda').slider.currentValue ||
			pedras[5] != $('sliderHorarioChegadaIda').slider.currentValue2) {
            
                pedras[0] = $('sliderPreco').slider.currentValue;
                pedras[1] = $('sliderPreco').slider.currentValue2;
                pedras[2] = $('sliderHorarioSaidaIda').slider.currentValue;
                pedras[3] = $('sliderHorarioSaidaIda').slider.currentValue2;
                pedras[4] = $('sliderHorarioChegadaIda').slider.currentValue;
                pedras[5] = $('sliderHorarioChegadaIda').slider.currentValue2;
                
                abaIda_Volta[abaAtual].setPedras(pedras);
				
				sliders[0] = {
					currentValue: $('sliderPreco').slider.currentValue,
					currentValue2: $('sliderPreco').slider.currentValue2,
					startValue: $('sliderPreco').slider.startValue,
					endValue:  $('sliderPreco').slider.endValue
				};
				
				sliders[1] = {
					currentValue: $('sliderHorarioSaidaIda').slider.currentValue,
					currentValue2: $('sliderHorarioSaidaIda').slider.currentValue2,
					startValue: $('sliderHorarioSaidaIda').slider.startValue,
					endValue:  $('sliderHorarioSaidaIda').slider.endValue
				};
                
                return true;
            };
        }else {
            if (!pedras.length || pedras[0] != $('sliderPreco').slider.currentValue ||
            pedras[1] != $('sliderPreco').slider.currentValue2 ||
            pedras[2] != $('sliderHorarioSaidaIda').slider.currentValue ||
            pedras[3] != $('sliderHorarioSaidaIda').slider.currentValue2 ||
            pedras[4] != $('sliderHorarioChegadaIda').slider.currentValue ||
            pedras[5] != $('sliderHorarioChegadaIda').slider.currentValue2 //||
            /*pedras[6] != $('sliderHorarioSaidaVolta').slider.currentValue ||
             pedras[7] != $('sliderHorarioSaidaVolta').slider.currentValue2 ||
             pedras[8] != $('sliderHorarioChegadaVolta').slider.currentValue ||*/
            /*pedras[9] != $('sliderHorarioChegadaVolta').slider.currentValue2*/
            ) {
            
                pedras[0] = $('sliderPreco').slider.currentValue;
                pedras[1] = $('sliderPreco').slider.currentValue2;
                pedras[2] = $('sliderHorarioSaidaIda').slider.currentValue;
                pedras[3] = $('sliderHorarioSaidaIda').slider.currentValue2;
                pedras[4] = $('sliderHorarioChegadaIda').slider.currentValue;
                /*pedras[5] = $('sliderHorarioChegadaIda').slider.currentValue2;
                 pedras[6] = $('sliderHorarioSaidaVolta').slider.currentValue;
                 pedras[7] = $('sliderHorarioSaidaVolta').slider.currentValue2;
                 pedras[8] = $('sliderHorarioChegadaVolta').slider.currentValue;
                 pedras[9] = $('sliderHorarioChegadaVolta').slider.currentValue2;
                 */
                abaIda_Volta[abaAtual].setPedras(pedras);
                
                return true;
            };
        };
        
        return false;
        
    };
    
    
    var buildFilters = function(){
        if (abaIda_Volta[abaAtual].getDsAvail() != null && $('sliders') != null) {
            var dadosFiltros = abaIda_Volta[abaAtual].getDsAvail().tables.DadosFiltros;
          
		  
		  
		  
			/*
			//Aba ida carrega todas as cias.
			if(_abaIdaVolta == 0){
				var dadosFiltros = abaIda_Volta[abaAtual].getDsAvail().tables.DadosFiltros; 
				
				abaIda_Volta[abaAtual].setDsAvail(arrayGeral.value[abaAtual]);
				abaIda_Volta[abaAtual].getDsAvail().tables.DadosFiltros.unfilter(true);
			}else{
				abaIda_Volta[abaAtual].setDsAvail(arrayGeral.value[abaAtual]);
				abaIda_Volta[abaAtual].getDsAvail().tables.DadosFiltros.unfilter(true);
				var dadosFiltros = abaIda_Volta[1].getDsAvail().tables.DadosFiltros.filter('sourceCode', abaIda_Volta[0].getOpcoesVooIt().row.sourceCode, filterMode.equals, caseType.CIAI);
			};		  
		  */
		    
            var sb = new StringBuilder();
            
            //Sliders
            //SliderPreco
            var minp = dadosFiltros.rows[0].menorPreco.formatNumber(2, true), maxp = dadosFiltros.rows[0].maiorPreco.formatNumber(2, true);
            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0.altura = '90px';
            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0.slider = 'Preco';
            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0.titulo = 'Preço';
            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0.valorMinimo = minp;
            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0.valorMaximo = maxp;
            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0.extra = '';
            sb.append(mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0.getHtml());
            
            //SliderHorario
            //Slider apenas para ida
            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0.altura = '90px;';
            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0.slider = 'HorarioSaidaIda';
            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0.titulo = 'Horário de Partida';//'disponibilidade_horario_saida_ida';
            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0.valorMinimo = dadosFiltros.rows[0].menorHoraPartidaIda.toString('HH:mm');
            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0.valorMaximo = dadosFiltros.rows[0].maiorHoraPartidaIda.toString('HH:mm');
            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0_1.tipo = 'Ida';
            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0.extra = mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0_1.getHtml();
            sb.append(mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0.getHtml());
            
            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0.altura = '90px';
            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0.slider = 'HorarioChegadaIda';
            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0.titulo = 'disponibilidade_horario_chegada_ida';
            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0.valorMinimo = dadosFiltros.rows[0].menorHoraChegadaIda.toString('HH:mm');
            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0.valorMaximo = dadosFiltros.rows[0].maiorHoraChegadaIda.toString('HH:mm');
            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0.extra = '';
            sb.append(mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0.getHtml());
            
            //Slider apenas para a volta
            /*
             if (abaIda_Volta[abaAtual].getDataVolta() != null) {
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0.altura = '90px';//HorarioSaidaVolta
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0.slider = 'HorarioSaidaVolta';
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0.titulo = 'Horário saída volta';//'disponibilidade_horario_saida_volta';
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0.valorMinimo = dadosFiltros.rows[0].menorHoraPartidaVolta.toString('HH:mm');
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0.valorMaximo = dadosFiltros.rows[0].maiorHoraPartidaVolta.toString('HH:mm');
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0_1.tipo = 'Volta';
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0.extra = mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0_1.getHtml();
             sb.append(mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0.getHtml());
             
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0.altura = '90px';
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0.slider = 'HorarioChegadaVolta';
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0.titulo = 'disponibilidade_horario_chegada_volta';
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0.valorMinimo = dadosFiltros.rows[0].menorHoraChegadaVolta.toString('HH:mm');
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0.valorMaximo = dadosFiltros.rows[0].maiorHoraChegadaVolta.toString('HH:mm');
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0.extra = '';
             sb.append(mainControl.tpl().aereo.reserva.cnt_reserva_0_3_0.getHtml());
             };
             */
            $('sliders').innerHTML = sb.toString();
            
            //vinculando click HorarioChegada HorarioSaida ida
            $('horarioSaidaIda').isHoraPartida = true;
            $('horarioSaidaIda').tipo = 'Ida';
            $('horarioSaidaIda').onclick = horarioType;
            $('horarioChegadaIda').isHoraPartida = false;
            $('horarioChegadaIda').tipo = 'Ida';
            $('horarioChegadaIda').onclick = horarioType;
            
            //vinculando click HorarioChegada HorarioSaida ida
            /*
             if (abaIda_Volta[abaAtual].getLowFare() && abaIda_Volta[abaAtual].getDataVolta() != null) {
             $('horarioSaidaVolta').isHoraPartida = true;
             $('horarioSaidaVolta').tipo = 'Volta';
             $('horarioSaidaVolta').onclick = horarioType;
             $('horarioChegadaVolta').isHoraPartida = false;
             $('horarioChegadaVolta').tipo = 'Volta';
             $('horarioChegadaVolta').onclick = horarioType;
             };
             */
            //Se mostra ou nao o slider de preco
            if (minp == maxp) {
                $('wrapperSliderPreco').style.display = 'none';
            };
            
            //CheckBoxes
            var chkBoxesSB = new StringBuilder();
            /*
             //aeroportos saida (avail)
             sb = new StringBuilder();
             for (var i = 0; i < dadosFiltros.rows[0].aeroportosSaida.length; i++) {
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.alt = 'saida';
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.img = 'images/mysp_ui/ico_voo_ida.gif';
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.value = dadosFiltros.rows[0].aeroportosSaida[i];
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.name = 'saida';
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.aeroporto = dadosFiltros.rows[0].nomesSaidas[i];
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.titleDesc = dadosFiltros.rows[0].aeroportosSaida[i];
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.number = i;
             sb.append(mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.getHtml());
             };
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3.titulo = 'Aeroporto Saída';
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3.checks = sb.toString();
             chkBoxesSB.append(mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3.getHtml());
             
             //aeroportos chegada
             sb = new StringBuilder();
             for (var i = 0; i < dadosFiltros.rows[0].aeroportosChegada.length; i++) {
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.alt = 'chegada';
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.img = 'images/mysp_ui/ico_voo_volta.gif';
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.value = dadosFiltros.rows[0].aeroportosChegada[i];
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.name = 'chegada';
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.aeroporto = dadosFiltros.rows[0].nomesChegadas[i];
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.titleDesc = dadosFiltros.rows[0].aeroportosChegada[i];
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.number = i;
             sb.append(mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.getHtml());
             };
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3.titulo = 'Aeroporto Chegada';
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3.checks = sb.toString();
             chkBoxesSB.append(mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3.getHtml());
             */
            //companhias
			if(_abaIdaVolta == 0 ){
				
			
            sb = new StringBuilder();
            for (var i = 0; i < dadosFiltros.rows[0].companhias.length; i++) {
                mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.alt = dadosFiltros.rows[0].companhias[i];
                mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.img = dadosFiltros.rows[0].logos[i]; //Não retornou resultado para CIA US. [Rafael Melo - 20090329.3522]
                mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.value = dadosFiltros.rows[0].companhias[i];
                mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.name = 'cias';
                mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.nomeCiaAerea = dadosFiltros.rows[0].nomesCompanhias[i];//titleDesc
                mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.number = i;
                sb.append(mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.getHtml());
                //ciasAereas[i] = 'chk_cias'+ dadosFiltros.rows[0].companhias[i];
                //t.cnt_reserva_0_3_3_0.eventojs =  
                //"uIControl.scope().disponibilidade().selectOnlyCia('"+dadosFiltros.rows[0].companhias[i]+"')";
            };
            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3.titulo = 'Companhia';
            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3.checks = sb.toString();
            chkBoxesSB.append(mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3.getHtml());
            /*
             //paradas
             sb = new StringBuilder();
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.alt = 'disponibilidade_sem_paradas';
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.img = 'images/mysp_ui/ico_parada1.gif';
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.value = '0';
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.name = 'parada'; //Resource('parada').toLowerCase();
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.aeroporto = 'disponibilidade_nenhuma'.toLowerCase();
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.titleDesc = 'disponibilidade_sem_conexao'.toLowerCase();
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.number = 0;
             sb.append(mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.getHtml());
             
             if (dadosFiltros.rows[0].maisParadas) {
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.alt = 'disponibilidade_parando'.toLowerCase();
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.img = 'images/mysp_ui/ico_parada2.gif';
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.value = '1';
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.name = 'parada'; //Resource('parada').toLowerCase();
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.aeroporto = 'disponibilidade_1_ou_mais'.toLowerCase();
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.titleDesc = 'disponibilidade_com_conexoes'.toLowerCase();
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.number = 1;
             sb.append(mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3_0.getHtml());
             };
             
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3.titulo = 'Conexões'.toLowerCase();
             mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3.checks = sb.toString();
             chkBoxesSB.append(mainControl.tpl().aereo.reserva.cnt_reserva_0_3_3.getHtml());
             */
            $('checkBoxes').innerHTML = chkBoxesSB.toString();
            //Funï¿½ï¿½es pï¿½s render
            initCheckBoxes();
			}else{
				$('checkBoxes').innerHTML = "";
			};
			
			initSliders();
        };
    };
    
    
    var initSliders = function(){
        var maxRange;
        var dadosFiltros = abaIda_Volta[abaAtual].getDsAvail().tables.DadosFiltros;
        var pedras = [];
        
		paginate[abaAtual].from = 0;
		paginate[abaAtual].to = lengthOfPageAV[1]-1;
		
        //slider preco
        if ($('sliderPreco') != null) {
            $('sliderPreco').slider = new Slider($('sliderPreco'), $('sliderPreco_btn1'), moveDirection.horizontal, $('sliderPreco_btn2'));
            $('sliderPreco').slider.allowOverlap = true;
            if ($('wrapperSliderPreco').style.display != 'none') {
				               
				if (abaIda_Volta[abaAtual].getSliderPreco()) {
					maxRange = abaIda_Volta[abaAtual].getSliderPreco().end - abaIda_Volta[abaAtual].getSliderPreco().start;
					//$('sliderPreco').slider.setRange(0, maxRange, 1);
					
	                $('sliderPreco').slider.startValue = abaIda_Volta[abaAtual].getSliderPreco().start;
               	 	$('sliderPreco').slider.endValue = abaIda_Volta[abaAtual].getSliderPreco().end;

					$('sliderPreco').slider.setPosition(abaIda_Volta[abaAtual].getSliderPreco().value1);
					$('labelPrecoMenor').innerHTML = (abaIda_Volta[abaAtual].getSliderPreco().value1).formatNumber(2, true);
					
					$('sliderPreco').slider.setPosition2(abaIda_Volta[abaAtual].getSliderPreco().value2);						
					$('labelPrecoMaior').innerHTML = (abaIda_Volta[abaAtual].getSliderPreco().value2).formatNumber(2, true);
				}
				else{
	                if (dadosFiltros.rows[0].maiorPreco != dadosFiltros.rows[0].menorPreco) {
		                $('sliderPreco').slider.startValue = dadosFiltros.rows[0].menorPreco;
		                $('sliderPreco').slider.endValue = dadosFiltros.rows[0].maiorPreco;	
												
						$('sliderPreco').slider.setPosition(dadosFiltros.rows[0].menorPreco);
						$('sliderPreco').slider.setPosition2(dadosFiltros.rows[0].maiorPreco);					
					};
				};
                
                $('sliderPreco').slider.onMove = updateLayer1;
                $('sliderPreco').slider.onMove2 = updateLayer2;
                $('sliderPreco').slider.onMoveStop = processSlider;
                $('sliderPreco').slider.onMoveStop2 = processSlider;
                $('sliderPreco').slider.allowOverlap = false;
            };
            pedras[0] = $('sliderPreco').slider.currentValue;
            pedras[1] = $('sliderPreco').slider.currentValue2;
        };
        			//slider.setRange(sliders[1].startValue, sliders[1].endValue, 1);
        
        //slider horario partida ida
        maxRange = Date.diff(dadosFiltros.rows[0].menorHoraPartidaIda, dadosFiltros.rows[0].maiorHoraPartidaIda, 'mm');
        $('sliderHorarioSaidaIda').slider = new Slider($('sliderHorarioSaidaIda'), $('sliderHorarioSaidaIda_btn1'), moveDirection.horizontal, $('sliderHorarioSaidaIda_btn2'));
        $('sliderHorarioSaidaIda').slider.allowOverlap = true;

		//$('sliderHorarioSaidaIda').slider.progressBarActive = true;
		//$('sliderHorarioSaidaIda').slider.progressBarColor = '#ff0000';
        
		if (maxRange != 0) {
			$('sliderHorarioSaidaIda').slider.setRange(0, maxRange, 14);
			if (abaIda_Volta[abaAtual].getSliderHorarioIda()) {
				$('sliderHorarioSaidaIda').slider.setPosition(abaIda_Volta[abaAtual].getSliderHorarioIda().value1 - abaIda_Volta[abaAtual].getSliderHorarioIda().start);
				$('labelHorarioSaidaIdaMenor').innerHTML = dadosFiltros.rows[0].menorHoraPartidaIda.addMinutes(abaIda_Volta[abaAtual].getSliderHorarioIda().value1).toString('HH:mm'); 
				
				$('sliderHorarioSaidaIda').slider.setPosition2(abaIda_Volta[abaAtual].getSliderHorarioIda().value2 - abaIda_Volta[abaAtual].getSliderHorarioIda().start);						
				$('labelHorarioSaidaIdaMaior').innerHTML = dadosFiltros.rows[0].menorHoraPartidaIda.addMinutes(abaIda_Volta[abaAtual].getSliderHorarioIda().value2).toString('HH:mm'); 
			}
			else {
				$('sliderHorarioSaidaIda').slider.setPosition(0);
				$('sliderHorarioSaidaIda').slider.setPosition2(maxRange);
			};
			$('sliderHorarioSaidaIda').slider.onMove = updateLayer1;
			$('sliderHorarioSaidaIda').slider.onMove2 = updateLayer2;
			$('sliderHorarioSaidaIda').slider.onMoveStop = processSlider;
			$('sliderHorarioSaidaIda').slider.onMoveStop2 = processSlider;
			$('sliderHorarioSaidaIda').slider.allowOverlap = false;
        };
        pedras[2] = $('sliderHorarioSaidaIda').slider.currentValue;
        pedras[3] = $('sliderHorarioSaidaIda').slider.currentValue2;
        
        
        //slider horario chegada ida
        maxRange = Date.diff(dadosFiltros.rows[0].menorHoraChegadaIda, dadosFiltros.rows[0].maiorHoraChegadaIda, 'mm');
        $('sliderHorarioChegadaIda').slider = new Slider($('sliderHorarioChegadaIda'), $('sliderHorarioChegadaIda_btn1'), moveDirection.horizontal, $('sliderHorarioChegadaIda_btn2'));
        $('sliderHorarioChegadaIda').slider.allowOverlap = true;
        if (maxRange != 0) {
            $('sliderHorarioChegadaIda').slider.startValue = 0;
            $('sliderHorarioChegadaIda').slider.endValue = maxRange;
            $('sliderHorarioChegadaIda').slider.setPosition(0);
            $('sliderHorarioChegadaIda').slider.setPosition2(maxRange);
            $('sliderHorarioChegadaIda').slider.onMove = updateLayer1;
            $('sliderHorarioChegadaIda').slider.onMove2 = updateLayer2;
            $('sliderHorarioChegadaIda').slider.onMoveStop = processSlider;
            $('sliderHorarioChegadaIda').slider.onMoveStop2 = processSlider;
            $('sliderHorarioChegadaIda').slider.allowOverlap = false;
        };
        $('horarioSaidaIda').onclick();
        pedras[4] = $('sliderHorarioChegadaIda').slider.currentValue;
        pedras[5] = $('sliderHorarioChegadaIda').slider.currentValue2;
        
        //slider horario volta
        /*
         if (abaIda_Volta[abaAtual].getDataVolta() != null) {
         if ($('sliderHorarioSaidaVolta').slider == null) {
         maxRange = Date.diff(dadosFiltros.rows[0].menorHoraPartidaVolta, dadosFiltros.rows[0].maiorHoraPartidaVolta, 'mm');
         $('sliderHorarioSaidaVolta').slider = new Slider($('sliderHorarioSaidaVolta'), $('sliderHorarioSaidaVolta_btn1'), moveDirection.horizontal, $('sliderHorarioSaidaVolta_btn2'));
         $('sliderHorarioSaidaVolta').slider.allowOverlap = true;
         if (maxRange != 0) {
         $('sliderHorarioSaidaVolta').slider.startValue = 0;
         $('sliderHorarioSaidaVolta').slider.endValue = maxRange;
         $('sliderHorarioSaidaVolta').slider.setPosition(0);
         $('sliderHorarioSaidaVolta').slider.setPosition2(maxRange);
         $('sliderHorarioSaidaVolta').slider.onMove = updateLayer1;
         $('sliderHorarioSaidaVolta').slider.onMove2 = updateLayer2;
         $('sliderHorarioSaidaVolta').slider.onMoveStop = processSlider;
         $('sliderHorarioSaidaVolta').slider.onMoveStop2 = processSlider;
         $('sliderHorarioSaidaVolta').slider.allowOverlap = false;
         };
         pedras[6] = $('sliderHorarioSaidaVolta').slider.currentValue;
         pedras[7] = $('sliderHorarioSaidaVolta').slider.currentValue2;
         
         maxRange = Date.diff(dadosFiltros.rows[0].menorHoraChegadaVolta, dadosFiltros.rows[0].maiorHoraChegadaVolta, 'mm');
         $('sliderHorarioChegadaVolta').slider = new Slider($('sliderHorarioChegadaVolta'), $('sliderHorarioChegadaVolta_btn1'), moveDirection.horizontal, $('sliderHorarioChegadaVolta_btn2'));
         $('sliderHorarioChegadaVolta').slider.allowOverlap = true;
         if (maxRange != 0) {
         $('sliderHorarioChegadaVolta').slider.startValue = 0;
         $('sliderHorarioChegadaVolta').slider.endValue = maxRange;
         $('sliderHorarioChegadaVolta').slider.setPosition(0);
         $('sliderHorarioChegadaVolta').slider.setPosition2(maxRange);
         $('sliderHorarioChegadaVolta').slider.onMove = updateLayer1;
         $('sliderHorarioChegadaVolta').slider.onMove2 = updateLayer2;
         $('sliderHorarioChegadaVolta').slider.onMoveStop = processSlider;
         $('sliderHorarioChegadaVolta').slider.onMoveStop2 = processSlider;
         $('sliderHorarioChegadaVolta').slider.allowOverlap = false;
         };
         pedras[8] = $('sliderHorarioChegadaVolta').slider.currentValue;
         pedras[9] = $('sliderHorarioChegadaVolta').slider.currentValue2;
         
         
         $('horarioSaidaVolta').onclick();
         };
         };*/
        abaIda_Volta[abaAtual].setPedras(pedras);
    };
    
    var initCheckBoxes = function(){
        var dadosFiltros = abaIda_Volta[abaAtual].getDsAvail().tables.DadosFiltros;
        
		lengthOfPageAV[0] = 20;
		lengthOfPageAV[1] = 20;

		paginate[abaAtual].from = 0;
		paginate[abaAtual].to = lengthOfPageAV[abaAtual]-1;
		
		
		
        //CheckBoxes
        /*
         //aeroportos saida
         var chkAeroportosSaida = abaIda_Volta[abaAtual].getChkAeroportosSaida();
         if (chkAeroportosSaida == null) {
         chkAeroportosSaida = [];
         for (var i = 0; i < dadosFiltros.rows[0].aeroportosSaida.length; i++) {
         chkAeroportosSaida[i] = new Object();
         chkAeroportosSaida[i].checked = true;
         chkAeroportosSaida[i].id = 'chk_saida' + dadosFiltros.rows[0].aeroportosSaida[i];
         $(chkAeroportosSaida[i].id).onclick = function(){
         updateResults();
         //setTimeout('mainControl.scope().disponibilidade().updateResults()', 100);
         //msgLayer.show("aguarde...");
         };
         };
         abaIda_Volta[abaAtual].setChkAeroportosSaida(chkAeroportosSaida);
         }
         else {
         for (var i = 0; i < chkAeroportosSaida.length; i++) {
         $(chkAeroportosSaida[i].id).onclick = function(){
         updateResults();
         //setTimeout('mainControl.scope().disponibilidade().updateResults()', 100);
         //msgLayer.show('aguarde...');
         };
         $(chkAeroportosSaida[i].id).checked = chkAeroportosSaida[i].checked;
         };
         };
         
         //aeroportos chegada
         var chkAeroportosChegada = abaIda_Volta[abaAtual].getChkAeroportosChegada();
         if (chkAeroportosChegada == null) {
         chkAeroportosChegada = [];
         for (var i = 0; i < dadosFiltros.rows[0].aeroportosChegada.length; i++) {
         chkAeroportosChegada[i] = new Object();
         chkAeroportosChegada[i].checked = true;
         chkAeroportosChegada[i].id = 'chk_chegada' + dadosFiltros.rows[0].aeroportosChegada[i];
         $(chkAeroportosChegada[i].id).onclick = function(){
         updateResults();
         //setTimeout('mainControl.scope().disponibilidade().updateResults()', 100);
         //msgLayer.show('aguarde...');
         };
         };
         abaIda_Volta[abaAtual].setChkAeroportosChegada(chkAeroportosChegada);
         }
         else {
         for (var i = 0; i < chkAeroportosChegada.length; i++) {
         $(chkAeroportosChegada[i].id).onclick = function(){
         updateResults();
         //setTimeout('mainControl.scope().disponibilidade().updateResults()', 100);
         //msgLayer.show('aguarde...');
         };
         $(chkAeroportosChegada[i].id).checked = chkAeroportosChegada[i].checked;
         };
         };
         */

        //companhias
        var chkCompanhias = abaIda_Volta[abaAtual].getChkCompanhias();
        
		if(chkCompanhias == null){
            chkCompanhias = [];
            for (var i = 0; i < dadosFiltros.rows[0].companhias.length; i++) {
                chkCompanhias[i] = new Object();
                chkCompanhias[i].checked = true;
                chkCompanhias[i].id = 'chk_cias' + dadosFiltros.rows[0].companhias[i];
                $(chkCompanhias[i].id).onclick = function(){
                    //updateResults();
                    setTimeout(updateResults, 100);
                    //msgLayer.show('aguarde...');
                };
            };
            abaIda_Volta[abaAtual].setChkCompanhias(chkCompanhias);
			/*Erro no chrome aqui */
//			alert("i3");
        }else {//alert("i4");
            for (var i = 0; i < chkCompanhias.length; i++) {
                $(chkCompanhias[i].id).onclick = function(){
                    setTimeout(updateResults, 100);
                    rebuildIterators();
                };
                $(chkCompanhias[i].id).checked = chkCompanhias[i].checked;
			/*Erro no chrome aqui */
	//			alert("i5");
            };
        };
   // alert("tester");
	//return alert("i6");
	};
    
    var updateLayer1 = function(pos){
        switch (this.elem.id) {
            case 'sliderPreco':{
                $('labelPrecoMenor').innerHTML = pos.formatNumber(2, true);
                break;
            }
            case 'sliderHorarioSaidaIda':{
                pos = abaIda_Volta[abaAtual].getDsAvail().tables.DadosFiltros.rows[0].menorHoraPartidaIda.addMinutes(pos).toString('HH:mm');
                $('labelHorarioSaidaIdaMenor').innerHTML = pos;
                break;
            }
            case 'sliderHorarioChegadaIda':{
                pos = abaIda_Volta[abaAtual].getDsAvail().tables.DadosFiltros.rows[0].menorHoraChegadaIda.addMinutes(pos).toString('HH:mm');
                $('labelHorarioChegadaIdaMenor').innerHTML = pos;
                break;
            }
            case 'sliderHorarioSaidaVolta':{
                pos = abaIda_Volta[abaAtual].getDsAvail().tables.DadosFiltros.rows[0].menorHoraPartidaVolta.addMinutes(pos).toString('HH:mm');
                $('labelHorarioSaidaVoltaMenor').innerHTML = pos;
                break;
            }
            case 'sliderHorarioChegadaVolta':{
                pos = abaIda_Volta[abaAtual].getDsAvail().tables.DadosFiltros.rows[0].menorHoraChegadaVolta.addMinutes(pos).toString('HH:mm');
                $('labelHorarioChegadaVoltaMenor').innerHTML = pos;
                break;
            }
        }
    };
    
    var updateLayer2 = function(pos){
        switch (this.elem.id) {
            case 'sliderPreco':{
                $('labelPrecoMaior').innerHTML = pos.formatNumber(2, true);
                break;
            }
            case 'sliderHorarioSaidaIda':{
                pos = abaIda_Volta[abaAtual].getDsAvail().tables.DadosFiltros.rows[0].menorHoraPartidaIda.addMinutes(pos).toString('HH:mm');
                $('labelHorarioSaidaIdaMaior').innerHTML = pos;
                break;
            }
            case 'sliderHorarioChegadaIda':{
                pos = abaIda_Volta[abaAtual].getDsAvail().tables.DadosFiltros.rows[0].menorHoraChegadaIda.addMinutes(pos).toString('HH:mm');
                $('labelHorarioChegadaIdaMaior').innerHTML = pos;
                break;
            }
            case 'sliderHorarioSaidaVolta':{
                pos = abaIda_Volta[abaAtual].getDsAvail().tables.DadosFiltros.rows[0].menorHoraPartidaVolta.addMinutes(pos).toString('HH:mm');
                $('labelHorarioSaidaVoltaMaior').innerHTML = pos;
                break;
            }
            case 'sliderHorarioChegadaVolta':{
                pos = abaIda_Volta[abaAtual].getDsAvail().tables.DadosFiltros.rows[0].menorHoraChegadaVolta.addMinutes(pos).toString('HH:mm');
                $('labelHorarioChegadaVoltaMaior').innerHTML = pos;
                break;
            }
        }
    };
    
    this.updateResults = function(){
        updateResults();
    };
    
    
    var updateResults = function(){
        if (abaAtual < 0 || abaAtual >= abaIda_Volta.length) {
            /*if (msgLayer.getState()) {
             msgLayer.hide();
             };*/
            return;
        };
        
		lengthOfPageAV[0] = 20;
		lengthOfPageAV[1] = 20;

		paginate[abaAtual].from = 0;
		paginate[abaAtual].to = lengthOfPageAV[abaAtual]-1;
        
        filtered = true;
        
        //por enquanto filtros funcionais apenas para busca por horario
        if (!abaIda_Volta[abaAtual].getLowFare()) {
        
            abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesDeVoo.rows.length;
            //Sempre da unfilter
            if (filtered) {
				
				if(abaIda_Volta[abaAtual].getLowFare()){
					abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesMP.unfilter(true);
				};

                abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesDeVoo.unfilter(true);
            };
			
			//Aplica filtro somente se for a aba de volta
			if (abaIda_Volta.length > 1 && abaAtual == abaIda_Volta.length - 1) {
				restrictInboundDS();
			};
			
            //Filtrando preco apenas se estiver sendo mostrado
            if ($('wrapperSliderPreco').style.display != 'none') {
                abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesDeVoo.filter('refOW', $('sliderPreco').slider.currentValue, filterMode.greaterOrEquals, caseType.CIAI);
                if ($('sliderPreco').slider.currentValue2 == $('sliderPreco').slider.endValue) {
                    abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesDeVoo.filter('refOW', Number.MAX_VALUE, filterMode.lessOrEquals, caseType.CIAI);
                }
                else {
                    abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesDeVoo.filter('refOW', $('sliderPreco').slider.currentValue2, filterMode.lessOrEquals, caseType.CIAI);
                };
            };
            
            //Filtrando horario
            if ($('wrapperSliderHorarioSaidaIda').style.display == '') {
                abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesDeVoo.filter('horaSaidaDif', $('sliderHorarioSaidaIda').slider.currentValue, filterMode.greaterOrEquals, caseType.CIAI);
                abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesDeVoo.filter('horaSaidaDif', $('sliderHorarioSaidaIda').slider.currentValue2, filterMode.lessOrEquals, caseType.CIAI);
            }
            else {
                abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesDeVoo.filter('horaChegadaDif', $('sliderHorarioChegadaIda').slider.currentValue, filterMode.greaterOrEquals, caseType.CIAI);
                abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesDeVoo.filter('horaChegadaDif', $('sliderHorarioChegadaIda').slider.currentValue2, filterMode.lessOrEquals, caseType.CIAI);
            };
            
            //Checkboxes
            var arr;
            
            //Filtrando aeroportos saida
            arr = document.getElementsByName('chk_saida');
            for (var i = 0; i < arr.length; i++) {
                if (!arr[i].checked) {
                    abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesDeVoo.filter('origem', arr[i].value, filterMode.notEquals, caseType.CIAI);
                };
        	};
            
            //Filtrando aeroportos chegada
            arr = document.getElementsByName('chk_chegada');
            for (var i = 0; i < arr.length; i++) {
                if (!arr[i].checked) {
                    abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesDeVoo.filter('destino', arr[i].value, filterMode.notEquals, caseType.CIAI);
                };
            };
            
            //Filtrando cias
            //debugger
            arr = document.getElementsByName('chk_cias');
            for (var i = 0; i < arr.length; i++) {
                if (!arr[i].checked) {
                    
					if(abaIda_Volta[abaAtual].getLowFare()){
						abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesMP.filter('cia', arr[i].value, filterMode.notEquals, caseType.CIAI);
					}else{
						abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesDeVoo.filter('companhia', arr[i].value, filterMode.notEquals, caseType.CIAI);	
					};
                };
            };
            
            //Filtrando paradas
            arr = document.getElementsByName('chk_parada');
            for (var i = 0; i < arr.length; i++) {
                if (!arr[i].checked) {
                    if (arr[i].value == 0) {
                        abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesDeVoo.filter('paradas', arr[i].value, filterMode.greaterThan, caseType.CIAI);
                    }
                    else {
                        abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesDeVoo.filter('paradas', arr[i].value, filterMode.lessThan, caseType.CIAI);
                    };
                };
            };
            
            buildAvailContent();
			rebuildIterators();
        }
        else {
            //Sempre da unfilter
            abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesMP.unfilter(true);
            
            //otimizar para verificar se precisa mesmo filtrar (se as pedras nao se moverem);
            //Filtrando preco
            abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesMP.filter('tarifaADT', $('sliderPreco').slider.currentValue, filterMode.greaterOrEquals, caseType.CIAI);
            abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesMP.filter('tarifaADT', $('sliderPreco').slider.currentValue2, filterMode.lessOrEquals, caseType.CIAI);
            
            //Filtrando horario Ida
            if ($('wrapperSliderHorarioSaidaIda').style.display == '') {
                abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesMP.filter('horaSaidaIdaDif', $('sliderHorarioSaidaIda').slider.currentValue, filterMode.greaterOrEquals, caseType.CIAI);
                abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesMP.filter('horaSaidaIdaDif', $('sliderHorarioSaidaIda').slider.currentValue2, filterMode.lessOrEquals, caseType.CIAI);
            }
            else {
                abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesMP.filter('horaChegadaIdaDif', $('sliderHorarioChegadaIda').slider.currentValue, filterMode.greaterOrEquals, caseType.CIAI);
                abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesMP.filter('horaChegadaIdaDif', $('sliderHorarioChegadaIda').slider.currentValue2, filterMode.lessOrEquals, caseType.CIAI);
            };
            
            //Filtrando horario Volta
            if (abaIda_Volta[abaAtual].getDataVolta()) {
                if ($('wrapperSliderHorarioSaidaVolta').style.display == '') {
                    abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesMP.filter('horaSaidaVoltaDif', $('sliderHorarioSaidaVolta').slider.currentValue, filterMode.greaterOrEquals, caseType.CIAI);
                    abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesMP.filter('horaSaidaVoltaDif', $('sliderHorarioSaidaVolta').slider.currentValue2, filterMode.lessOrEquals, caseType.CIAI);
                }
                else {
                    abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesMP.filter('horaChegadaVoltaDif', $('sliderHorarioChegadaVolta').slider.currentValue, filterMode.greaterOrEquals, caseType.CIAI);
                    abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesMP.filter('horaChegadaVoltaDif', $('sliderHorarioChegadaVolta').slider.currentValue2, filterMode.lessOrEquals, caseType.CIAI);
                };
                            };
            
            //Checkboxes
            var arr;
            
            //Filtrando aeroportos saida
            arr = document.getElementsByName('chk_saida');
            for (var i = 0; i < arr.length; i++) {
                if (!arr[i].checked) {
                    abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesMP.filter('origemIda', arr[i].value, filterMode.notEquals, caseType.CIAI);
                    abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesMP.filter('origemVolta', arr[i].value, filterMode.notEquals, caseType.CIAI);
                };
            };
            
            arr = document.getElementsByName('chk_chegada');
            for (var i = 0; i < arr.length; i++) {
                if (!arr[i].checked) {
                    abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesMP.filter('destinoIda', arr[i].value, filterMode.notEquals, caseType.CIAI);
                    abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesMP.filter('destinoVolta', arr[i].value, filterMode.notEquals, caseType.CIAI);
                };
            };
            
            arr = document.getElementsByName('chk_cias');
            for (var i = 0; i < arr.length; i++) {
                if (!arr[i].checked) {
                    abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesMP.filter('cia', arr[i].value, filterMode.notEquals, caseType.CIAI);
                };
        	};
            
            //Filtrando paradas
            arr = document.getElementsByName('chk_parada');
            for (var i = 0; i < arr.length; i++) {
                if (!arr[i].checked) {
                    if (arr[i].value == 0) {
                        abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesMP.filter('paradas', arr[i].value, filterMode.greaterThan, caseType.CIAI);
                    }
                    else {
                        abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesMP.filter('paradas', arr[i].value, filterMode.lessThan, caseType.CIAI);
                    };
            	};
        	};
            //abasArray[abaAtual].resetIts();
            buildLowFareContent();
			rebuildIterators();
        };
    };
    
    
    var horarioType = function(){
        var tipo = this.tipo;
        var isHoraPartida = this.isHoraPartida;
        
        
        if (tipo == 'Ida') {
            if (isHoraPartida) {
                $('wrapperSliderHorarioSaidaIda').style.display = '';
                $('horarioSaidaIda').style.fontWeight = 'bold';
                $('wrapperSliderHorarioChegadaIda').style.display = 'none';
                $('horarioChegadaIda').style.fontWeight = '';
            }
            else {
                $('wrapperSliderHorarioSaidaIda').style.display = 'none';
                $('horarioSaidaIda').style.fontWeight = '';
                $('wrapperSliderHorarioChegadaIda').style.display = '';
                $('horarioChegadaIda').style.fontWeight = 'bold';
            };
                    }
        else {
            if (isHoraPartida) {
                $('wrapperSliderHorarioSaidaVolta').style.display = '';
                $('horarioSaidaVolta').style.fontWeight = 'bold';
                $('wrapperSliderHorarioChegadaVolta').style.display = 'none';
                $('horarioChegadaVolta').style.fontWeight = '';
            }
            else {
                $('wrapperSliderHorarioSaidaVolta').style.display = 'none';
                $('horarioSaidaVolta').style.fontWeight = '';
                $('wrapperSliderHorarioChegadaVolta').style.display = '';
                $('horarioChegadaVolta').style.fontWeight = 'bold';
            };
        };
        
    };
    
    //*************************************
    this.selectAba = function(value){
		if(abaIda_Volta[0].getItemCarrinho().carrinhoVazio() && $('abaVolta').className != "ativo" && value != "Ida"){
			$("dialog").innerHTML = dialogModal.buildDialog("fail", "buscavoos", "Para selecionar os voos disponíveis na volta, você deve primeiro selecionar o voo de ida!");			
			return false;
		}else{
			saveFilters();
        	refreshResult(abaIdaVolta(value));
		};
    };
    
    var abaIdaVolta = function(aba){
        if (aba == "Ida") {
            _abaIdaVolta = 0;
            abaAtual = 0;
            changeClassStyleAba(_abaIdaVolta);
            return _abaIdaVolta;
        }else {
            abaAtual = 1;
            _abaIdaVolta = 1;
            changeClassStyleAba(_abaIdaVolta);
            return _abaIdaVolta;
        };
    };
    
    var refreshResult = function(_aba){
        _abaIdaVolta = _aba;
        changeClassStyleAba(_abaIdaVolta);
		
		abaIda_Volta[_abaIdaVolta].setDsAvail(arrayGeral.value[_abaIdaVolta]);
		
		buildOpcoes();
        arrayGeral2 = abaIda_Volta;
    };
    
    var rebuildIterators = function(){
        abaIda_Volta[_abaIdaVolta].setDsAvail(arrayGeral.value[_abaIdaVolta]);
    };
    
	//get QueryHash
    var dadosQueryString = function(){
        return BookWebMethodsB2C.GetHashB2C();
    };
    
    //Callbacks
    this.callbacks = {
        searchAvailability: function(res){
            //var controleAba = res.value.length;
			
			if (res.value != null) {
			
				for (var b = 0; b < res.value.length; b++) {
					var aux = new AbaDisponibilidade();
					abaIda_Volta.push(aux);
				};
				arrayGeral = res; //faz uma copia do array de voos para utilizar na troca de abas
				if (res.value[0].tables["Voos"].rows.length != 0) {
					for (var i = 0; i < res.value.length; i++) {
						if (buscaPreco) {
							res.value[i].tables.OpcoesDeVoo.sort('tarifaADT');
						}
						else {
							res.value[i].tables.OpcoesDeVoo.sort('refRT');
						};
											};
					$('trace').innerHTML = res.value[0].tables["Tempos"].rows[0].sessionToken;
					
					abaIda_Volta[_abaIdaVolta].setDsAvail(res.value[_abaIdaVolta]);
					buildOpcoes();
					typeConditionLoad.endLoadTransaction();
				}
				else {
					var token = res.value[0].tables["Tempos"].rows[0].sessionToken;
					
					//alert('não retornou voos:' + token);
					if (res.error) {
						$("dialog").innerHTML = dialogModal.buildDialog("fail", "buscavoos", res.error.message + token);
					}
					else {
						$("dialog").innerHTML = dialogModal.buildDialog("fail", "buscavoos", "Não foi possível retornar voo(s) com os dados informados.<br/>" + token);
					};
									//window.location = "buscavoos.aspx?" + dadosQueryString().value;
				};
			}else{
				if (res.error) {
					$("dialog").innerHTML = dialogModal.buildDialog("fail", "buscavoos", res.error.message + token);
				}
				else {
					$("dialog").innerHTML = dialogModal.buildDialog("fail", "buscavoos", "Não foi possível retornar voo(s) com os dados informados.<br/>" + token);
				};				
			};
			
			
        },
        /*Nao possui caixa de Texto para marcar qual Source buscar*/
        getAvailGDSNew: function(res){
            if (res.error == null) {
                availableSources = res.value;
                for (var i = 0; i < availableSources.tables.Table.rows.length; i++) {
                    availableSourcesList.push(availableSources.tables.Table.rows[i].Nome);
                };
                
            };
        },
        
        getFareRule: function(res){
            if (res.error == null) {
                openDetailsTarifa(res.value, false);
            }
            else {
                var msg = res.error.message.split('@');
                $('trace').innerHTML += 'ErrFareRule: ' + msg[1] + '<br />';
                //alert(msg[0]);
                openDetailsTarifa(msg[0], false);
            };
        }
    };
    
    this.actions = {
        ordena: function(element){
            var ordenacaoAtual = abaIda_Volta[abaAtual].getOrdenacao();//abaIda_Volta[abaAtual].getOrdenacao();
            if (abaIda_Volta[abaAtual].getDsAvail() == null || ordenacaoAtual == null) {
                return;
            }
            
            if (ordenacaoAtual.indice == element.indice) {
                if (ordenacaoAtual.setaUp) {
                    ordenacaoAtual.setaUp = false;
                }
                else {
                    ordenacaoAtual.setaUp = true;
                }
            }
            else {
                ordenacaoAtual.setaUp = false;
            }
            
            var opcoesTable = abaIda_Volta[abaAtual].getDsAvail().tables.OpcoesDeVoo;
            
            opcoesTable.sort(element.coluna);
            
            //Definicao do ojbeto ordenacao
            var ordenacao = new Object();
            ordenacao.indice = element.indice;
            ordenacao.setaUp = ordenacaoAtual.setaUp;
            abaIda_Volta[abaAtual].setOrdenacao(ordenacao);
            
            abaIda_Volta[abaAtual].setHtmlAba(null);
            
            //salva filtros
            saveFilters();
            
            buildOpcoes();
        }
    };
    /*
     this.ordenaVoos = function(companhiab){
     //res.value[i].tables.OpcoesDeVoo.sort("companhia");
     
     //trocaOrdenacao(x){
     
     arrayGeral.value[abaAtual].tables.OpcoesDeVoo.sort("companhia");
     buildOpcoes();
     };
     */
    // trata Campos "Conexao" e Flag "Sem conexao"
    
    var disableConexao = function(){
        if ($('chkSemConexao').checked == false) {
            $('txtConexao').disabled = false;
        }
        else {
            $('txtConexao').disabled = true;
            $('txtConexao').value = '';
        }
    };
    
    //Seleciona Colunas da tarifa para ordenacao
    this.ordenaTarifas = function(coluna){
        var tarifas = abaIda_Volta[abaAtual].getDsAvail().tables.Tarifas;
        
        switch (coluna) {
            case "1":
                tarifas.sort('companhia');
                break;
            case "2":
                tarifas.sort('valorOW');
                break;
            case "3":
                tarifas.sort('valorRT');
                break;
            case "4":
                tarifas.sort('baseTarifaria');
                break;
        };
        
        abaIda_Volta[abaAtual].setHtmlListaTarifas(null);
        
        buildFareResults();
    };
	
    this.selectOnlyOne = function(name, indice){
        var chks = document.getElementsByName('chk_' + name);
        
        //Desmarca as flags diferentes da selecionada
        for (i = 0; i < chks.length; i++) {
            chks[i].checked = (i == indice);
        };
        updateResults();
    };
	
	
    var openDetailsTarifa = function(conteudo, show){
        if (show == true) {
            // $('toolWindow').style.display = 'inline';
            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_1_1.regra = '';
            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_1_1.descricao = '';
            mainControl.tpl().aereo.reserva.cnt_reserva_0_3_1_1.load = '<img  src="../../../../images/ico_loading_small.gif" />' + '<br/>Aguarde..';
            //mainControl.tpl().aereo.reserva.cnt_reserva_0_3_1_1.conteudo = conteudo;		
            //$('toolWindow').innerHTML = mainControl.tpl().aereo.reserva.cnt_reserva_0_3_1_1.getHtml();
            
            buildWindow(mainControl.tpl().aereo.reserva.cnt_reserva_0_3_1_1.getHtml());
        }
        else {
            if (show == false) {
                if (conteudo != null) {
                    var sb = new StringBuilder();
                    var ds = conteudo.tables.Regras;
                    var dsTR = conteudo.tables.TextosRegras;
                    
                    for (var i = 0; i < ds.rows.length; i++) {
                    
                        mainControl.tpl().aereo.reserva.cnt_reserva_0_3_1_1.load = '';
                        /*
                         mainControl.tpl().aereo.reserva.cnt_reserva_0_3_1_1.moeda = ds.rows[i].moeda;
                         mainControl.tpl().aereo.reserva.cnt_reserva_0_3_1_1.lingua = ds.rows[i].lingua;
                         mainControl.tpl().aereo.reserva.cnt_reserva_0_3_1_1.origem = ds.rows[i].origem;
                         mainControl.tpl().aereo.reserva.cnt_reserva_0_3_1_1.destino = ds.rows[i].destino;
                         mainControl.tpl().aereo.reserva.cnt_reserva_0_3_1_1.dataida = ds.rows[i].dataIda;
                         mainControl.tpl().aereo.reserva.cnt_reserva_0_3_1_1.datavolta = ds.rows[i].dataVolta;
                         mainControl.tpl().aereo.reserva.cnt_reserva_0_3_1_1.companhia = ds.rows[i].companhia;
                         mainControl.tpl().aereo.reserva.cnt_reserva_0_3_1_1.owrt = ds.rows[i].ow_rt;
                         mainControl.tpl().aereo.reserva.cnt_reserva_0_3_1_1.classe = ds.rows[i].classeReserva;
                         mainControl.tpl().aereo.reserva.cnt_reserva_0_3_1_1.base = ds.rows[i].baseTarifa;
                         mainControl.tpl().aereo.reserva.cnt_reserva_0_3_1_1.rph = ds.rows[i].RPH;
                         */
                        mainControl.tpl().aereo.reserva.cnt_reserva_0_3_1_1.regra = (dsTR.rows[i].regra == "") ? '' : dsTR.rows[i].regra;
                        mainControl.tpl().aereo.reserva.cnt_reserva_0_3_1_1.descricao = (dsTR.rows[i].descricao == "") ? '' : dsTR.rows[i].descricao;
                        
                        sb.append(mainControl.tpl().aereo.reserva.cnt_reserva_0_3_1_1.getHtml());
                    }
                    buildWindow(sb.toString());
                    sb.clear();
                }
                else {
                    buildWindow('Resultado nullo!');
                }
            }
        }
    };

    var startEnvNew = function(){
        t = new Template('main').structpage.loading;

        //calendario
        c1 = Date.parse($('vxltxtDataIda').value, "dd/MM/yyyy");
        c2 = Date.parse($('vxltxtDataVolta').value, "dd/MM/yyyy");

        //AbaAtual
        abaAtual = 0;
        
        //Temporario
        _abaIdaVolta = abaIdaVolta("Ida");
        
        //pesquisa incremental
        pi1 = $('vxltxtDe').value;
        pi2 = $('vxltxtPara').value;
        pi3 = $('vxlchkSemConexao').value;
        pi4 = $('vxltxtCia').value;//new IncrementalSearch('txtCia', BaseMethods.GetCompanyName, 400);
        pi4 = pi4.split(' / ');
        pi4 = pi4[0];
        
        pi4.minLength = 2;

        if ($('vxlradIdaVolta').value == "true") {
            radIdaVolta = true;
        }
        else {
            radIdaVolta = false;
            classStyleSomenteIda();
        };
        
        if ($('vxllowFare').value == "false") {
            buscaPreco = false;
        }
        else {
            buscaPreco = true;
            builStyleLowFare();//No internacional nao tem cesta de Voo
        };

        typeConditionLoad.startLoadTransaction("fare");		
        searchAvailability(buscaPreco); // Esse cara recebe o valor do $('vxllowFare').value

    };
    
    
    var getValueOrdena = function(value){
	
        if (buscaPreco) {
            //value = "tarifaADT";
            switch (value) {
                case "companhia":
                    value = 'nomeCompanhia';
                    break;
                case "refRT":
                    value = 'tarifaADT';
                    break;
                case "paradas":
                    value = "paradas";
                    break;
                case "duracao":
                    value = "duracao";
                    break;
				case "dataSaida":
					value = 'horarioSaidaIda';
					break;
				case "dataChegada":
					value = 'horarioChegadaIda';
					break;					
            };
            arrayGeral.value[abaAtual].tables.OpcoesMP.sort(value);
            buildOpcoes();
        }else {
			
            switch (value) {
                case "companhia":
                    value = 'nomeCompanhia';
                    break;
                case "refRT":
                    value = 'refOW';
                    break;
                case "paradas":
                    value = 'paradas';
                    break;
                case "duracao":
                    value = 'duracao';
                    break;
				case "dataSaida":
					value = 'dataSaida';
					break;
				case "dataChegada":
					value = 'dataChegada';
					break;
            };
            arrayGeral.value[abaAtual].tables.OpcoesDeVoo.sort(value);
            buildOpcoes();
        };
    };
    
    var builStyleLowFare = function(){
        classStyleAbaLowFare();
        $('cestaVoos').style.visibility = "hidden"; //No internacional nao tem cesta de Voo		
    };
    
    var builStyleAirAvail = function(){
        $('cestaVoos').style.visibility = "visible";
    };
    
    var changeClassStyleAba = function(res){
        if (res == 0) {
            $('abaIda').className = "ativo";
            $('abaVolta').className = "";
        }
        else {
            $('abaIda').className = "";
            $('abaVolta').className = "ativo";
        };
            };
    
    var classStyleAbaLowFare = function(){
        $('abaVolta').className = "";
    };
    
    var classStyleSomenteIda = function(){
        $('abaVolta').style.visibility = "hidden";
        $('cestaVooVolta').style.display = "none";
    };

    var titleSearch = function(Origem, Destino){
        $('tituloBusca').innerHTML = "<h2>Ida de&nbsp;" + Origem + "&nbsp;para&nbsp;" + Destino + "</h2>";
    };
    
	var clickVoidFare = function(){
		return "javascript:void(0);";
	};
	
	
    var destructorBotaoTarifar = function(){
		typeConditionLoad.disableLoading("fare");
		$('botaoTarifarClick').className = "botaoDisabable";
        $('botaoTarifarClick').onclick = clickVoidFare();
    };
    
    this.constructor = new function(){
       setTimeout(startEnvNew, 100);
        //startEnv();
    };
};

