﻿function jAereoBook()
{
    var dsBook, qtdAdt, qtdChd, qtdInf, passengerArray, locTrip;
    
    var render = {
        flightsSelected: function()
        {
            var sb = new StringBuilder();
            
            var arrVoos = dsBook.value.tables.Voos.rows;

	        for (i = 0; i < arrVoos.length; i++) 
            {
                sb.append('<table cellpadding="0" cellspacing="0" border="0" width="100%">');
                sb.append('<tr>');
                sb.append('<td colspan="2" height="10" valign="top" style="border-top: dashed 1px #CCCCCC;">');
                sb.append('</td>');
                sb.append('</tr>');
                sb.append('<tr>');
	            sb.append('<td align="center" valign="top" style="padding-right:5px;"><img alt="" src="http://homolog.portlet.vaibrasil.com.br' + '/images/airCompanies/'+ arrVoos[i].companhia + '.gif' + '" /><br /><small style="white-space:nowrap;">Vôo ' + arrVoos[i].numero + '</small></td>');
	            sb.append('<td>');
	            sb.append('<table style="width: 100%">');
	            sb.append('<tr>');
	            sb.append('<td style="width:120px;" align="left"><strong>Saída:</strong></td>');
	            sb.append('<td align="left">' + arrVoos[i].dataHoraSaida.toString().substr(0, 16) + '</td>');
	            sb.append('</tr>');
	            sb.append('<tr>');
	            sb.append('<td align="left"><strong>Origem:</strong></td>');
	            sb.append('<td align="left">' + window.iframeAereoAgetCityOfNamePublic(arrVoos[i].origem).value + ' | <small style="font-size:90%;">(' + arrVoos[i].origem + ')</small></td>');
	            sb.append('</tr>');
	            sb.append('<tr>');
	            sb.append('<td align="left"><strong>Chegada:</strong></td>');
	            sb.append('<td align="left">' + arrVoos[i].dataHoraChegada.toString().substr(0, 16) + '</td>');
	            sb.append('</tr>');
	            sb.append('<tr>');
	            sb.append('<td align="left"><strong>Destino:</strong></td>');
	            sb.append('<td align="left">' + window.iframeAereoA.getCityOfNamePublic(arrVoos[i].destino).value + ' | <small style="font-size:90%;">(' + arrVoos[i].destino + ')</small></td>');
	            sb.append('</tr>');
	            sb.append('</table>');
	            sb.append('</td>');
                sb.append('</tr>');
                sb.append('<tr>');
	            sb.append('<td colspan="2" style="height:26px; color:#b6b6b6;"><strong style="float:left; width:90px; height:16px; padding-left:9px; color:#be9f2b;">Paradas</strong> <strong>' + arrVoos[i].numParadas + '</strong></td>');
                sb.append('</tr>');
                sb.append('</table>');
            };
            return sb.toString();
        }
    };
    
    var startEnv = {
		doReservationAereoVB: function(valueLocTrip, pCodOperadora, pValorAereo, pIataOrigem, pIataDestino,
										pDataIda, pDataVolta, pLocCia, pClasse, pNumLugares, pCiaAerea,
										pNumeroCC, pTitularCC, pCPFCC, pValidadeCC, pCodOpcaoParcelamento, pCodCoeficienteParcelamento) {
        
            clDetalhesPedido.inserirPedidoAereoV2(0,                                            //int CodPedidoAereo, 
                                                  pCodOperadora,                                //int CodEmpresaOperadora, 
                                                  AgenciaPacote.exec.getAgenciasSelecionadas()[0], //int CodEmpresaAgencia, 
                                                  parseInt(PubLogin.getSession("CodUsuario")),  //int CodUsuario, 
                                                  0,                                            //int CodPedidoMSPAereo,
                                                  valueLocTrip,                                 //string LocVTPAereo, 
                                                  pValorAereo,                                  //decimal ValorAereo, 
                                                  1,                                            //int OrigemPedido, 
                                                  new Date(),                                   //DateTime DataPedido,
                                                  pIataOrigem,                                  //string IATAOrigem, 
                                                  pIataDestino,                                 //string IATADestino, 
                                                  pDataIda,                                     //DateTime DataPartida, 
                                                  pDataVolta,                                   //DateTime DataChegada, 
                                                  pLocCia,                                      //string LocCia,
                                                  pClasse,                                      //string Classe, 
                                                  pNumLugares,                                  //int NumLugares, 
                                                  pCiaAerea,                                    //string CiaAerea
                                                  pNumeroCC,									//string NumeroCC
                                                  pTitularCC,									//string TitularCC
                                                  pCPFCC,										//string CPFCC
                                                  pValidadeCC,									//DateTime ValidadeCC
                                                  pCodOpcaoParcelamento,						//int CodOpcaoParcelamento
                                                  (pCodCoeficienteParcelamento == undefined ? 0 : pCodCoeficienteParcelamento)  //int CodCoeficienteParcelamento
                                                  );		    
        }
    };

    this.exec = {
    	doReservation: function(valueLocTrip, pCodOperadora, pValorAereo, pIataOrigem, pIataDestino,
								pDataIda, pDataVolta, pLocCia, pClasse, pNumLugares, pCiaAerea,
                                pNumeroCC, pTitularCC, pCPFCC, pValidadeCC, pCodOpcaoParcelamento, pCodCoeficienteParcelamento) 
		{
                                
    		startEnv.doReservationAereoVB(valueLocTrip, pCodOperadora, pValorAereo, pIataOrigem, pIataDestino,
											pDataIda, pDataVolta, pLocCia, pClasse, pNumLugares, pCiaAerea,
											pNumeroCC, pTitularCC, pCPFCC, pValidadeCC, pCodOpcaoParcelamento, pCodCoeficienteParcelamento);
    	},
    	
    	setDsBook: function(pDsBook, pQtdAdt, pQtdChd, pQtdInf, pPassengerArray, pLocTrip) {
    		dsBook = pDsBook;
    		qtdAdt = pQtdAdt;
    		qtdChd = pQtdChd;
    		qtdInf = pQtdInf;
    		passengerArray = pPassengerArray;
    		locTrip = pLocTrip;
    	},
    	
    	getDsBook: function() {
    		return dsBook;
    	},
    	getQtdAdt: function() {
    		return qtdAdt;
    	},
    	getQtdChd: function() {
    		return qtdChd;
    	},
    	getQtdInf: function() {
    		return qtdInf;
    	},
    	getPassengerArray: function() {
    		return passengerArray;
    	},
    	getLocTrip: function() {
    		return locTrip;
    	},
    	doClearSale: function(codEmpresa, cardNumber, ValorTotal, CPF, cardHolderName, ExpireMonth, ExpireYear) {
    		//********************* Envia consulta ao Clear Sale -  by Jorge Aires ********************--//
    		//  STATUS retornado:
    		//              BAIXO   - 0
    		//              MÉDIO   - 1
    		//              ALTO    - 2
    		//              CRÍTICO - 3 
    		//              ERRO    - 4
    		//              ERRO DADOS DE ENDEREÇO INCOMPLETO - 5
    		//  PARÂMETRO DE ENTRADA:
    		//              string Reanalise - Flag que indica se é novo ou já existe - FALSE = Novo
    		//              int CodPedido - Código do Pedido Atual - Se ainda não existir deve ser "0"
    		//              string TotalAmount - Valor Total
    		//              string CPF - CPF Obrigatório
    		//              string ccTipo - Sigla do cartão de crédito => VI - Visa; MC - MasterCard
    		//              string ccNumero - Númeto do Cartão de crédito
    		//              string ccNome - Nome no cartão
    		//              int ccExpMes - Mês de validade
    		//              int ccExcAno - Ano de validade    

    		if (cardNumber.isMasterCard()) {
    			ccCode = "MC";
    		}
    		else {
    			if (cardNumber.isVisa()) {
    				ccCode = "VI"
    			}
    			else {
    				alert('Cartão de Crédito inválido.');
    				return false;
    			};
    		};

    		//-- Comment by Wagner Vieira - CLEAR SALE DESATIVADO
    		//return true;

    		var statusClearSale = VTPInterface.RequestClearSale(
                codEmpresa,
                "false",
                0,
                ValorTotal,
                CPF,
                ccCode,
                cardNumber,
                cardHolderName,
                ExpireMonth,
                ExpireYear
            ).value;

    		//--- Considera APROVADO que tiver no mínimo ALTO
    		if (statusClearSale <= 2) {
    			return true;
    		}
    		else {
    			//--- Trata as respostas de erro do Clear Sale
    			if (statusClearSale == 3 || statusClearSale == 4) {
    				alert('Seu pedido não foi aprovado! Por favor, atualize seus dados cadastrais ou informe outro cartão de crédito.');
    			}
    			if (statusClearSale == 5) {
    				alert('Seu pedido não foi aprovado! Por favor, atualize seus dados cadastrais antes de realizar uma nova compra.');
    			}

    			return false;
    		};
    	},
    	getFlightsSelected: function() {
    		return render.flightsSelected();
    	}
    };
    
    this.constructor = new function(){};
};