﻿function jPesquisa(){

    //variaveis privativas 
    var jDS;
    var jRP;
    var tmpCNT;
    var tmpUI;
    var _totPaginas;
    var _tamPagina=4;
    var _currPagina;
    var _fromReg;
    var _toReg;
	//var This = this;
    
    var totPacotes;
    //membros publicos
    
    
    //metodos privativos
    
    
    //HTML render(pNomeTemplate)
    var render = {
        main: function() {
            return tmpCNT.ResultVMMI.CNT_Result.getHtml();
        },
        locDestaque: function(pCodLocDestaque) {
            tmpCNT.ResultVMMI.CNT_LocDestaque.locThumb = jDS.getDrValue("Localidades", jDS.findRow("Localidades", "codLocalidade", jDS.getDrValue("PedidoVB", 0, "codLocalidadePARA")), "Thumbnail");
            tmpCNT.ResultVMMI.CNT_LocDestaque.locNome = jDS.getDrValue("Localidades", jDS.findRow("Localidades", "codLocalidade", jDS.getDrValue("PedidoVB", 0, "codLocalidadePARA")), "Nome");
            tmpCNT.ResultVMMI.CNT_LocDestaque.locDescricao = jDS.getDrValue("Localidades", jDS.findRow("Localidades", "codLocalidade", jDS.getDrValue("PedidoVB", 0, "codLocalidadePARA")), "Descricao");
            return tmpCNT.ResultVMMI.CNT_LocDestaque.getHtml();
        },
        resultItem: function(pNumReg) {
            tmpCNT.ResultVMMI.CNT_ResultItem.Titulo = jDS.getDrValue("PacotesVB", pNumReg, "Nome");
            if (jDS.getDrValue("PacotesVB", pNumReg, "Thumbnail") != null && jDS.getDrValue("PacotesVB", pNumReg, "Thumbnail") != "") {
                tmpCNT.ResultVMMI.CNT_ResultItem.ThumbDestino = jDS.getDrValue("PacotesVB", pNumReg, "Thumbnail");
                tmpCNT.ResultVMMI.CNT_ResultItem.Destino = jDS.getDrValue("Localidades", (jDS.findRow("Localidades", "codLocalidade", (jDS.getDrValue("PedidoVB", 0, "codLocalidadePARA")))), "Nome");


            } else {
                tmpCNT.ResultVMMI.CNT_ResultItem.ThumbDestino = jDS.getDrValue("Localidades", (jDS.findRow("Localidades", "codLocalidade", (jDS.getDrValue("PedidoVB", 0, "codLocalidadePARA")))), "Thumbnail");
                tmpCNT.ResultVMMI.CNT_ResultItem.Destino = jDS.getDrValue("Localidades", (jDS.findRow("Localidades", "codLocalidade", (jDS.getDrValue("PedidoVB", 0, "codLocalidadePARA")))), "Nome");
            }

            tmpCNT.ResultVMMI.CNT_ResultItem.Hospedagem = jDS.getDrValue("PacotesVB", pNumReg, "Hospedagem");
            tmpCNT.ResultVMMI.CNT_ResultItem.Operadora = jDS.getDrValue("PacotesVB", pNumReg, "Operadora");

            var vTmpDesc = jDS.getDrValue("PacotesVB", pNumReg, "Descricao");
            if (vTmpDesc.length > 300) {
                vTmpDesc = vTmpDesc.substring(0, 300) + '...';

            }
            tmpCNT.ResultVMMI.CNT_ResultItem.Descricao = vTmpDesc;
            tmpCNT.ResultVMMI.CNT_ResultItem.Preco = parseFloat(jDS.getDrValue("PacotesVB", pNumReg, "Valor")).formatNumber(2, true);
            tmpCNT.ResultVMMI.CNT_ResultItem.Moeda = "R$"; //jDS.getDrValue("PacotesVB", pNumReg, "SimboloMoeda");
            tmpCNT.ResultVMMI.CNT_ResultItem.CodPacote = jDS.getDrValue("PacotesVB", pNumReg, "codPacoteVB");
            tmpCNT.ResultVMMI.CNT_ResultItem.LinkPacote = "";

            return tmpCNT.ResultVMMI.CNT_ResultItem.getHtml();
        },
        resultPages: function(pArea) {
            tmpCNT.ResultVMMI.CNT_ResultPages.fromReg = (_currPagina * _tamPagina) + 1;
            if (((_currPagina + 1) * _tamPagina) > totPacotes) {
                tmpCNT.ResultVMMI.CNT_ResultPages.toReg = totPacotes;
            }
            else {
                tmpCNT.ResultVMMI.CNT_ResultPages.toReg = (_currPagina + 1) * _tamPagina;
            };

            tmpCNT.ResultVMMI.CNT_ResultPages.pgPrim = '<a id="pgPrim' + pArea + '">primeira página</a>';
            tmpCNT.ResultVMMI.CNT_ResultPages.pgAnte = '<a id="pgAnte' + pArea + '">página anterior</a></span>';
            tmpCNT.ResultVMMI.CNT_ResultPages.pgs = "";
            //            for(var vpg = _currPagina;vpg<_totPaginas;vpg++)
            //            {
            //                if(tmpCNT.ResultVMMI.CNT_ResultPages.pgs != ""){ 
            //                    tmpCNT.ResultVMMI.CNT_ResultPages.pgs += ' | ';
            //                }
            //                tmpCNT.ResultVMMI.CNT_ResultPages.pgs += '<a href="#">'+ (vpg+1) +'</a>';
            //            }
            //            tmpCNT.ResultVMMI.CNT_ResultPages.pgs += ' de <a href="#">'+ (_totPaginas) +'</a>'
            tmpCNT.ResultVMMI.CNT_ResultPages.pgs = 'pag.: ' + (_currPagina + 1) + ' de ' + (_totPaginas);
            tmpCNT.ResultVMMI.CNT_ResultPages.pgProx = '<a id="pgProx' + pArea + '" >próxima pagina</a>';
            tmpCNT.ResultVMMI.CNT_ResultPages.pgUltm = '<a id="pgUltm' + pArea + '">última pagina</a>';

            tmpCNT.ResultVMMI.CNT_ResultPages.TotPacotes = totPacotes;

            return tmpCNT.ResultVMMI.CNT_ResultPages.getHtml();

        },
        resumoViagem: function() {
            var retVal = "";

            retVal += "Resultados de "; // + jDS.getDrValue("PacotesVB",0,"Nome") + "";
            retVal += jDS.getDrValue("Localidades", jDS.findRow("Localidades", "codLocalidade", jDS.getDrValue("PedidoVB", 0, "codLocalidadeDE")), "Nome");
            if (jDS.getDrValue("PedidoVB", 0, "codLocalidadePARA") > 0) {
                retVal += " para " + jDS.getDrValue("Localidades", jDS.findRow("Localidades", "codLocalidade", jDS.getDrValue("PedidoVB", 0, "codLocalidadePARA")), "Nome");
            };

            //            retVal += "<strong>Saindo de: </strong>" + jDS.getDrValue("Localidades", jDS.findRow("Localidades","codLocalidade", jDS.getDrValue("PedidoVB",0,"codLocalidadeDE")),"Nome"); + "<br/>";
            //            if(jDS.getDrValue("PedidoVB",0,"codLocalidadePARA") > 0){
            //				retVal += "<strong>Destino : </strong>" + jDS.getDrValue("Localidades", jDS.findRow("Localidades","codLocalidade", jDS.getDrValue("PedidoVB",0,"codLocalidadePARA")),"Nome"); + "<br/>";
            //			};
            //            retVal += "<strong>Data de Saida : </strong>" + jDS.getDrValue("PedidoVB",0,"dataSaida") + "<br/>";
            //            retVal += "<strong>Total de Dias : </strong>" + jDS.getDrValue("PedidoVB",0,"duracao") + "<br/>";
            return retVal;
        },
        rssPacote: function(pNumReg) {
            tmpCNT.Pesquisa.CNT_rssPacote.Titulo = jDS.getDrValue("PacotesVB", pNumReg, "Nome");
            tmpCNT.Pesquisa.CNT_rssPacote.ThumbDestino = jDS.getDrValue("Localidades", (jDS.findRow("Localidades", "codLocalidade", (jDS.getDrValue("PacotesVB", pNumReg, "CodLocalidadePARA")))), "Thumbnail");
            tmpCNT.Pesquisa.CNT_rssPacote.Destino = jDS.getDrValue("Localidades", (jDS.findRow("Localidades", "codLocalidade", (jDS.getDrValue("PacotesVB", pNumReg, "CodLocalidadePARA")))), "Nome");

            //verifica o tipoRender para fazer a descricao
            if (jRP.selTipoRender == "Resumida") {
                tmpCNT.Pesquisa.CNT_rssPacote.Descricao = jDS.getDrValue("PacotesVB", pNumReg, "Descricao").substring(0, 38) + '...';
            }
            else {
                tmpCNT.Pesquisa.CNT_rssPacote.Descricao = jDS.getDrValue("PacotesVB", pNumReg, "Descricao");
            };

            tmpCNT.Pesquisa.CNT_rssPacote.Preco = parseInt(jDS.getDrValue("PacotesVB", pNumReg, "Valor")).formatNumber(2, true);
            tmpCNT.Pesquisa.CNT_rssPacote.Moeda = "R$"; //jDS.getDrValue("PacotesVB",pNumReg,"Moeda");
            tmpCNT.Pesquisa.CNT_rssPacote.CodPacote = jDS.getDrValue("PacotesVB", pNumReg, "codPacoteVB");
            tmpCNT.Pesquisa.CNT_rssPacote.LinkPacote = "";

            return tmpCNT.Pesquisa.CNT_rssPacote.getHtml();
        }
    };
	
    //DOM node ctrlRefs
    var ctrlRefs = {
        siteConteudo: function(){return $('siteCentro');},
        btnEtapa: function(pNumEtapa){return $('btnEtapa'+pNumEtapa);},
        conteudoQuadroArea: function(){return $('cntQdrAreaPesquisa');},
        rssPacoteDet: function(pNumReg){return $("opcoesPacote_td_" + pNumReg);},
        resultArea: function(){return $('resultArea');},
        pgTopo: function(){return $('pgTopo');},
        pgRodape: function(){return $('pgRodape');},
        tituloPesquisa: function(){return $('tituloPesquisa');},
        btQuero: function(pNumReg){return $('btQuero_'+pNumReg);},
        locDestaque: function(){return $('locDestaque');},
        pgPrim: function(pArea){return $('pgPrim'+pArea);},
        pgProx: function(pArea){return $('pgProx'+pArea);},
        pgAnte: function(pArea){return $('pgAnte'+pArea);},
        pgUltm: function(pArea){return $('pgUltm'+pArea);},
        btRefazer: function(){return $('btRefazer');},
        btnAumentaFnt: function(){return $('btnMaior');},
        btnDiminuiFnt: function(){return $('btnMenor');},
        btnSaibaMais:function(){return $('btnSaibaMais');}

        
    };
    
    //void startEbv()
    var startEnv = {
        main: function(){
            ctrlRefs.siteConteudo().innerHTML = render.main();
            //if(jDS==null){alert('tanulo');}
            ctrlRefs.btnAumentaFnt().onclick = function(){Portlet.exec.AumentaFonte();};
            ctrlRefs.btnDiminuiFnt().onclick = function(){Portlet.exec.DiminuiFonte();};
            
        
        },
        btnEtapas: function(){
            ctrlRefs.btnEtapa('1').onclick = function(){on.clickBtnEtapa(1);};
            ctrlRefs.btnEtapa('2').onclick = function(){on.clickBtnEtapa(2);};
        },          
        resultPane: function(){
            jRP = new jsResults(ctrlRefs.conteudoQuadroArea());
			jRP.setRenderer(on.renderItem);
            jRP.setTotItens(totPacotes);
			jRP.resumoPesquisa = render.resumoViagem();
            jRP.refreshItens();
        },
        paginacao: function(pArea){
            ctrlRefs.pgPrim(pArea).onclick = function(){on.paginacao(0);};
            ctrlRefs.pgUltm(pArea).onclick = function(){on.paginacao(_totPaginas-1);};
            ctrlRefs.pgAnte(pArea).onclick = function(){on.paginacao(_currPagina-1);};
            ctrlRefs.pgProx(pArea).onclick = function(){on.paginacao(_currPagina+1);};
        },
        navegacao: function(pArea){
            ctrlRefs.btRefazer().onclick = function(){Portlet.goTo.home();};
        },
        rssPacote: function(pNumreg){
            vCodPacote = jDS.getDrValue("PacotesVB",pNumreg,"codPacoteVB");

            ctrlRefs.btQuero(vCodPacote).codPacote = pNumreg;
            ctrlRefs.btQuero(vCodPacote).onclick = function(){
                Portlet.getPedido().codPacote = jDS.getDrValue("PacotesVB",this.codPacote,"codPacoteVB");
                
				//alert( this.codPacote + "crick! " + jDS.getDrValue("PacotesVB",this.codPacote,"codPacoteVB"));
				//window.location = 'pacotes.vxlpub?d=detalhes&codPacote=' + vcodPedidoVB;
                Portlet.goTo.detalhes();
				
				//Passa para a functions os valores para fazer o detalhes
				//loadDetalhesPacotes(jDS.getDrValue("PacotesVB",this.codPacote,"codPacoteVB"), QueryString('dataSaida'), QueryString('totPax'));
            };  
        },
        btnSaibaMais: function(){
            ctrlRefs.btnSaibaMais().onclick = function(){
                on.clickSaibaMais(Portlet.getViagem().codLocalidadePara);
            };
        }        
        
    };
	
	var loadDetalhesPacotes = function(codPacoteVB, dataSaida, totPax){
		var _codPacoteVB,
			_dataSaida,
			_totPax;
			
			_codPacoteVB = codPacoteVB;
			_dataSaida = dataSaida;
			_totPax = totPax;
			
			window.location = 'detalhes.aspx?codPacoteVB=' + _codPacoteVB + '&dataSaida=' + Date.parse(_dataSaida, "dd/MM/yyyy") + '&totPax=' + _totPax;
	};
	
    //tratativas de eventos da UI
    var on = {
        clickBla: function(){},
        filter: function(){},
        sort: function(){},
        clickBtnEtapa: function(pNumEtapa){
            switch(pNumEtapa){
                case 1:
                    Portlet.goTo.home();
                    break;
                case 2:
                    Portlet.goTo.pesquisa();
                    break;
                case 3:
                    Portlet.goTo.detalhes();
                    break;
                case 4:
                    Portlet.goTo.reserva();
                    break;
                default:
                    break;
            }
        },
        renderItem: function(pDivRender, pnumReg, pTipoRender){
            jDS.getTotRegs("PacotesVB");
            if(totPacotes > pnumReg)
            {
                pDivRender.innerHTML = render.rssPacote(pnumReg);
                startEnv.rssPacote(pnumReg);
                return true;
            }
            else
            {
                return false;
            };
        },
        refreshItens:function(){
            var sb = new StringBuilder();
            _fromReg = (_currPagina*_tamPagina);
            _toReg = ((_currPagina+1)*_tamPagina);
            if(_toReg>totPacotes)
            {
                _toReg = totPacotes;
            };
            for(var it=_fromReg;it<_toReg;it++){
                sb.append(render.resultItem(it));
            };
            ctrlRefs.pgTopo().innerHTML = render.resultPages("Topo");
            startEnv.paginacao("Topo");
            ctrlRefs.pgRodape().innerHTML = render.resultPages("Rodape");
            startEnv.paginacao("Rodape");
            ctrlRefs.resultArea().innerHTML = sb.toString();
            startEnv.navegacao();
            startEnv.btnEtapas();
            
            //vincula cliques no botao quero este
            for(var it=_fromReg;it<_toReg;it++){
                startEnv.rssPacote(it);
            };
        },
        resultItens: function(){
//            jDS = new jDataset(pRes);
//            totPacotes = jDS.getTotRegs("PacotesVB");
            _totPaginas =  parseInt(totPacotes / _tamPagina);
            if((totPacotes % _tamPagina)>0){
                _totPaginas ++;
            }
            _currPagina = 0;
            ctrlRefs.tituloPesquisa().innerHTML = render.resumoViagem(); //"Resultados de Loc - dataViagem";
            ctrlRefs.locDestaque().innerHTML = render.locDestaque();
            on.refreshItens();
            startEnv.btnSaibaMais();

            
            
            
        },
        paginacao: function(pNumPagina){
            if(pNumPagina>=0 && pNumPagina<_totPaginas){
                _currPagina = pNumPagina;
                
            }
            on.refreshItens();
            
        },
        clickSaibaMais: function(pCodLocalidade){
            Portlet.goTo.destinos(pCodLocalidade,"pesquisa");
        }
    };

    var CB = {
        Pesquisa: function(res){
            if(res.error==null){
                jDS = new jDataset(res.value);
            };
        }
    } ;      
    
    var doPesquisaCB = function(res){
        if(res.error==null){
            jDS = new jDataset(res.value);
            totPacotes = jDS.getTotRegs("PacotesVB");
			//alert(totPacotes);
			if(totPacotes < 1){
				alert('Não foi possível encontrar pacotes com os critérios mencionados');
				Portlet.goTo.home();
			}
			else{
			    on.resultItens();
			};
            //startEnv.resultPane();
        }
        else
        {
            alert('Erro ao executar Pesquisa');
        };
        
    
    };
	
	    /* Roger */
	var QueryString = function(key) {
	    var qs = window.location.search.substring(1);
	    return QueryString_SetQS(qs, key);
	};


var QueryString_SetQS = function(qs, key) {
    var value = null;
    
    var elements = qs.split("&");
    for (var i = 0;i < elements.length; i++) 
    {
        var element = elements[i].split("=");
        if (element[0].toLowerCase() == key.toLowerCase()) 
        {
            value = element[1];
        };
    };
    return value;
};	

	/* Roger */
    //metodos publicos
    this.exec = {
        Pesquisa: function(){
		    startEnv.main();
			var _urlRequest,
				 _codLocalidadeDe,
				_codLocalidadePara,
				_dataSaida,
				_qtdDias,
				_totPax; 
				
				
				_codLocalidadeDe = Portlet.getViagem().codLocalidadeDe;
				_codLocalidadePara = Portlet.getViagem().codLocalidadePara;
				_qtdDias = Portlet.getViagem().qtdDias;
				_totPax = Portlet.getViagem().Paxes.totPaxes();
				_dataSaida = Portlet.getViagem().dataInicio;
/*				
				
				_codLocalidadeDe = QueryString('CodRegiaoTuristica');
				_codLocalidadePara = QueryString('CodCidade');
				_dataSaida = QueryString('dataSaida');
				_qtdDias = QueryString('qtdDias');
				_totPax = QueryString('passageiros');				
*/
				
				//Tratando o request
			 	_codLocalidadeDe = parseInt(_codLocalidadeDe);
				_codLocalidadePara = parseInt(_codLocalidadePara);
				if(_codLocalidadePara==null || _codLocalidadePara=="" || _codLocalidadePara==NaN)
				{
				    _codLocalidadePara = 0;
				};
				_dataSaida = Date.parse(_dataSaida, "dd/MM/yyyy");
				_qtdDias = parseInt(_qtdDias);
				_totPax	= parseInt(_totPax);			
				//Tratando o request
								
				clPacotesVMMI.doPesquisa(_codLocalidadeDe, _codLocalidadePara, _dataSaida, _qtdDias, _totPax, doPesquisaCB);
        },
        PesquisaHospedagem: function(){
		    startEnv.main();
			var _urlRequest,
				 _codLocalidadeDe,
				_codLocalidadePara,
				_dataSaida,
				_qtdDias,
				_totPax; 
				
				
				_codLocalidadeDe = Portlet.getViagem().codLocalidadeDe;
				_codLocalidadePara = Portlet.getViagem().codLocalidadePara;
				_qtdDias = Portlet.getViagem().qtdDias;
				_totPax = Portlet.getViagem().Paxes.totPaxes();
				_dataSaida = Portlet.getViagem().dataInicio;

				//Tratando o request
			 	_codLocalidadeDe = parseInt(_codLocalidadeDe);
				_codLocalidadePara = parseInt(_codLocalidadePara);
				if(_codLocalidadePara==null || _codLocalidadePara=="" || _codLocalidadePara==NaN)
				{
				    _codLocalidadePara = 0;
				};
				_dataSaida = Date.parse(_dataSaida, "dd/MM/yyyy");
				_qtdDias = parseInt(_qtdDias);
				_totPax	= parseInt(_totPax);			
				//Tratando o request
								
				clPacotesVMMI.doPesquisaHospedagem(_codLocalidadePara, _dataSaida, _qtdDias, _totPax, doPesquisaCB);
        }
    };
    
    //construtor
    this.constructor = new function(){
        
        tmpCNT = new Template('pctsVMMI').CNT;
        tmpUI = new Template('pctsVMMI').UI;
        
 
    };


};
