﻿/*************************************************************************************************************************************************/
/*                                                                  INIT                                                                         */
/*************************************************************************************************************************************************/

function init()
{
    if (globalVariablesInitialized == false)
    {
        if($('txtSite').value.toString().toLowerCase() == "buscape")
        {
            initializeGlobalVariables('BuscaPe/Aereo');
        }
        else if($('txtSite').value.toString().toLowerCase() == "buscatrip")
        {
            initializeGlobalVariables('BuscaTrip/Aereo');
        }
    }
}

/*************************************************************************************************************************************************/
/*                                                                  VARIÁVEIS                                                                    */
/*************************************************************************************************************************************************/

var calendarioIda = null;
var calendarioVolta = null;

var isOrigem = null; 
var isDestino = null;

/*************************************************************************************************************************************************/
/*                                                                  LAYOUT                                                                       */
/*************************************************************************************************************************************************/



/*************************************************************************************************************************************************/
/*                                  MÉTODOS ALTERADOS PARA GERAÇÃO DO FORMULÁRIO ESTATICAMENTE                                                    */
/*************************************************************************************************************************************************/
function carregaPaginaBuscaDeAereo()
{
    init();
}

/*************************************************************************************************************************************************/
/*                                                                  MÉTODOS                                                                      */
/*************************************************************************************************************************************************/

$load(addBusca);

function addBusca()
{
    if ($("txtCargaInicial") != null && $("txtCargaInicial").value == "true")
    {
        carregaPaginaBuscaDeAereo();

        calendarioIda = new Calendar($("txtDataIda"), Date.now().addDays(3));
        calendarioIda.setDate(Date.now().addDays(3));
        calendarioIda.monthsToDisplay = 2;
        calendarioIda.minDate = Date.now().addDays(3);
        calendarioIda.onClick = selecionaDataIda;
        calendarioIda.init();

        calendarioVolta = new Calendar($("txtDataVolta"), Date.now().addDays(11));
        calendarioVolta.setDate(Date.now().addDays(11));
        calendarioVolta.monthsToDisplay = 2;
        calendarioVolta.minDate = Date.now();
        calendarioVolta.onClick = selecionaDataVolta;
        calendarioVolta.init();
        
        selecionaDataIda(Date.now().addDays(3));
        selecionaDataVolta(Date.now().addDays(11));

        isOrigem = new IncrementalSearch('txtOrigem', Home.getTestePesqInc);
        isOrigem.ui.div.style.textAlign = "left";
        isOrigem.ui.div.style.fontFamily = "Arial";
        isOrigem.ui.div.style.fontSize = "13px";

        isDestino = new IncrementalSearch('txtDestino', Home.getTestePesqInc);
        isDestino.ui.div.style.textAlign = "left";
        isDestino.ui.div.style.fontFamily = "Arial";
        isDestino.ui.div.style.fontSize = "13px";
        
        // caso haja cookie da última busca, define a origem da busca do usuário
        isOrigem.setInitialText($("txtOrigemUltimaBusca").value);
    
        // identifica as últimas buscas do usuário
        Home.UltimasBuscas(UltimasBuscas_callback);
    
        // identifica os destinos mais buscados a partir da origem da última busca do usuário
        Home.DestinosMaisBuscados(DestinosMaisBuscados_callback);
        
        // Preencher campos de busca de acordo com os parâmetros passados via url    
        // (caso existam )
        PreencherCampos();
    }
}

function PreencherCampos()
{
    // Definir locais de origem e destino
    if(QueryString("origem") != null){ 
        isOrigem.setInitialText(QueryString("origem"));
    }
    
    if(QueryString("destino") != null){
        isDestino.setInitialText(QueryString("destino"));
    }
    
    // Definir se é ida e volta ou somente ida
    if(QueryString("idaVolta") != null)
    {
        if(QueryString("idaVolta") == "0")
        {
            $('opIdaeVolta').checked = false;
            $('Radio1').checked = true;
        }
        else 
        {
            $('opIdaeVolta').checked = true;
        }
    }
    
    // Definir data de ida e data de volta
    if(QueryString("dataida") != null){
        $("txtDataIda").value = QueryString("dataida");
    }else{
        $("txtDataIda").value = Date.now().addDays(3).toString("dd/MM/yyyy");
    }
    
    if(QueryString("dataida") != null){
        $("txtDataVolta").value = QueryString("datavolta");
    }else{
        $("txtDataVolta").value = Date.now().addDays(11).toString("dd/MM/yyyy");
    }
    
    // Definir classe 
    if(QueryString("classe") != null)
    {
        selecionarItemCombo($('ddlClasse'), QueryString('classe'), "txt");
    }
}

function UltimasBuscas_callback(res)
{
    try
    {
        var linhaUltimasBuscas = templates.LinhaUltimasBuscas;
        
        $("divBordaUltimasBuscas").style.display = "none";
        $("divUltimasBuscas").style.display = "none";
        $("divConteudoUltimasBuscas").innerHTML = "";
        
        if (!res.error && res.value != null)
        {
            var dt = res.value;
            for (var i = 0; i < dt.rows.count(); i++)
            {
                var dr = dt.rows[i];
                
                linhaUltimasBuscas.origem = dr["origem"];
                linhaUltimasBuscas.destino = dr["destino"];
                linhaUltimasBuscas.dataIda = dr["dataDeIda"].toString("dd/MM/yyyy");
                linhaUltimasBuscas.dataVolta = "";
                if (dr["dataDeVolta"] != null)
                {
                    linhaUltimasBuscas.dataVolta = dr["dataDeVolta"].toString("dd/MM/yyyy");
                }
                linhaUltimasBuscas.url = montaURL(dr["origem"], dr["destino"], (dr["dataDeVolta"] != null ? 1 : 0), dr["dataDeIda"].toString("dd/MM/yyyy"), (dr["dataDeVolta"] != null ? dr["dataDeVolta"].toString("dd/MM/yyyy") : ""), $("ddlClasse").options[0].value, dr["numADT"], dr["numCHD"], dr["numINF"]);
                
                var nomeOrigem = dr["nomeOrigem"];
                while (nomeOrigem.indexOf(" ") > -1)
                {
                    nomeOrigem = nomeOrigem.replace(" ", "&nbsp;");
                }
                var nomeDestino = dr["nomeDestino"];
                while (nomeDestino.indexOf(" ") > -1)
                {
                    nomeDestino = nomeDestino.replace(" ", "&nbsp;");
                }
                linhaUltimasBuscas.title = String.format(nomeOrigem + "{0}&gt;{0}" + nomeDestino, "&nbsp;");
                
                $("divConteudoUltimasBuscas").innerHTML += linhaUltimasBuscas.getHtml();
            }
            
            if (dt.rows.count() > 0)
            {
                $("divBordaUltimasBuscas").style.display = "block";
                $("divUltimasBuscas").style.display = "block";
            }
        }
    }
    catch (ex) { }
}

function DestinosMaisBuscados_callback(res)
{
    try
    {
        var linhaMaisProcurados = templates.LinhaMaisProcurados;
        var menorPreco = "";
        var html = "";
        
        $("divBordaMaisProcurados").style.display = "none";
        $("divMaisProcurados").style.display = "none";
        $("divConteudoMaisProcurados").innerHTML = "";
        
        if (!res.error && res.value != null)
        {
            var dt = res.value;
            html += "<table cellpadding='0' cellspacing='0' width='100%'>";
            
            for (var i = 0; i < dt.rows.count(); i++)
            {
                var dr = dt.rows[i];
                if(dr["melhorTarifaADT"] != null)
                {
                    menorPreco = "R$ " + dr["melhorTarifaADT"].formatNumber(2, true);
                }
                else
                {
                    menorPreco = "";
                }
                
                var origemMaxLength = 12 - dr["nomeOrigem"].length ;
                var destinoMaxLength = 12 - dr["nomeDestino"].length;
                var extraLength = origemMaxLength + destinoMaxLength;
                if (extraLength < 0)
                {
                    extraLength = 0;
                }
                
                linhaMaisProcurados.origem = (origemMaxLength + extraLength < 0 ? (dr["nomeOrigem"].substring(0, 10 + extraLength) + "..") : dr["nomeOrigem"]);
                linhaMaisProcurados.destino = (destinoMaxLength + extraLength < 0 ? dr["nomeDestino"].substring(0, 10 + extraLength) + ".." : dr["nomeDestino"]);
                linhaMaisProcurados.destino;
                linhaMaisProcurados.menorPreco = menorPreco;
                linhaMaisProcurados.url = montaURL(dr["origem"], dr["destino"], 1, Date.now().addDays(3).toString("dd/MM/yyyy"), Date.now().addDays(11).toString("dd/MM/yyyy"), $("ddlClasse").options[0].value, "1", "0", "0");
                
                var nomeOrigem = dr["nomeOrigem"];
                while (nomeOrigem.indexOf(" ") > -1)
                {
                    nomeOrigem = nomeOrigem.replace(" ", "&nbsp;");
                }
                var nomeDestino = dr["nomeDestino"];
                while (nomeDestino.indexOf(" ") > -1)
                {
                    nomeDestino = nomeDestino.replace(" ", "&nbsp;");
                }
                linhaMaisProcurados.title = String.format(nomeOrigem + "{0}&gt;{0}" + nomeDestino, "&nbsp;");
                
                 html += linhaMaisProcurados.getHtml();
            }
            
            html += "</table>";
            $("divConteudoMaisProcurados").innerHTML =  html;
            
            
            if (dt.rows.count() > 0)
            {
                $("divBordaMaisProcurados").style.display = "block";
                $("divMaisProcurados").style.display = "block";
            }
        }
    }
    catch (ex) { } 
}

function selecionaDataIda(date)
{
    calendarioVolta.minDate = date;

    // verifica se deve redefinir a data da volta
    try
    {
        var dataVolta = Date.parse($('txtDataVolta').value, "dd/MM/yyyy");
        if (dataVolta.lessThan(date))
        {
            calendarioVolta.setDate(date.addDays(8));
            selecionaDataVolta(date.addDays(8));
        }
        else
        {
            selecionaDataVolta(dataVolta);
        }
    }
    catch (ex) 
    { 
        calendarioVolta.setDate(date.addDays(8));
        selecionaDataVolta(date.addDays(8));
    }
    
    var sb = new StringBuilder();
    sb.appendFormat(date.toString("dddd, dd {0} MMMM {0} yyyy").capitalize(), "de");
    $("lblOrigem").innerHTML = sb.toString();
}

function selecionaDataVolta(date)
{
    var sb = new StringBuilder();
    sb.appendFormat(date.toString("dddd, dd {0} MMMM {0} yyyy").capitalize(), "de");
    $("lblDestino").innerHTML = sb.toString();
}

function exibeCalendario(nome)
{
    $(nome).focus();
}

function setPosition(e, target)
{
    e = (e)?e:window.event; 
    if(e.pageX)
    {
        var w = document.getElementById(target).style.width.split('px')[0] / 2;
        var h = 20 / 2;
        document.getElementById(target).style.left = (e.pageX - w) + 'px';
        document.getElementById(target).style.top = (e.pageY - h) + 'px';
    }
    else
    {
        var w = document.getElementById(target).style.width.split('px')[0] / 2;
        var h = 20 / 2;
        document.getElementById(target).style.left = (e.x-w) + 'px';
        document.getElementById(target).style.top = (e.y-h) + 'px';
    }
}

function OcultarVolta()
{
    $("divVolta").style.visibility = "hidden";
}

function ExibirVolta()
{
    $("divVolta").style.visibility = "visible";
}

function validaData(date) 
{
	var array_data = new Array;
	var ExpReg = new RegExp("(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/[0-9]{2}|[2-9][0-9]{3}");
	//vetor que contem o dia o mes e o ano
	array_data = date.split("/");
	erro = false;
	//Valido se a data esta no formato dd/mm/yyyy e se o dia tem 2 digitos e esta entre 01 e 31
	//se o mes tem d2 digitos e esta entre 01 e 12 e o ano se tem 4 digitos e esta entre 1000 e 2999
	if (date.search(ExpReg) == -1)
	{
		erro = true;
	}
	//Valido os meses que nao tem 31 dias com execao de fevereiro
	else if ( ( ( array_data[1] == 4 ) || ( array_data[1] == 6 ) || ( array_data[1] == 9 ) || ( array_data[1] == 11 ) ) && ( array_data[0] > 30 ) )
	{
		erro = true;
	}
	//Valido o mes de fevereiro
	else if ( array_data[1] == 2 ) 
	{
		//Valido ano que nao e bissexto
		if ( ( array_data[0] > 28 ) && ( ( array_data[2] % 4 ) != 0 ) )
		{
			erro = true;
		}
		//Valido ano bissexto
		if ( ( array_data[0] > 29 ) && ( ( array_data[2] % 4 ) == 0 ) )
		{
		    erro = true;
		}
	}
	if ( erro ) 
	{
		return false;
	}
	
	return true;
}

function validaBusca()
{
    var origem = isOrigem.value;
    if(origem == null || origem == "")
    {
        if (Trim($("txtOrigem").value).length == 3)
        {
            origem = Trim($("txtOrigem").value).toUpperCase();
        }
    }
    var destino = isDestino.value;
    if(destino == null || destino == "")
    {
        if (Trim($("txtDestino").value).length == 3)
        {
            destino = Trim($("txtDestino").value).toUpperCase();
        }
    }
    var dataIda = Trim($('txtDataIda').value);
    var idaVolta = (document.getElementsByName('opIdaeVolta')[0].checked?1:0);
    var dataVolta = Trim($('txtDataVolta').value);
    var classe = Trim($('ddlClasse').value);
    var hoje = Date.now();
    var data_dia = hoje.getDate() + "/" + (hoje.getMonth() + 1) + "/" + hoje.getYear(); 
    var hora_atual = hoje.getHours() + ":" + hoje.getMinutes();
    var dHoje = Date.parse(hoje.toString('dd/MM/yyyy'), 'dd/MM/yyyy');
    var dIda = Date.parse(dataIda, 'dd/MM/yyyy');
    var dVolta = Date.parse(dataVolta, 'dd/MM/yyyy');    
    
    if(origem == null || origem == "")
    {
        alert("Informe a localidade de origem.");
        return false;   
    }
   
    if(destino == null || destino == "")
    {
        alert("Informe a localidade de destino.");
        return false;
    }
        
    if (origem == destino)
    {
        alert("Origem e Destino não podem ser iguais.");
        return false;
    }                              
              
    if (dataIda == null || dataIda == "")
    {
        alert("Por favor preencha a data da Ida.");
        return false;
    }
        
    if(!validaData(dataIda))
    {
        alert("Data de Ida Inválida.");
        return false;
    }
    
    if (dIda < dHoje)
    {
        alert("A Data de Ida deve ser maior ou igual a data atual.");
        return false;
    }

    if(idaVolta)
    {
        if((dataIda == null || dataIda == "") || (dataVolta == null || dataVolta == ""))
        {
            alert("Por favor informe o período Ida/Volta.");
            return false;                    
        }

        if(!validaData(dataVolta))
        {
            alert("Data de Volta Inválida.");
            return false;
        }          

        if(dVolta < dIda)
        {
            alert('A Data da Volta deve ser maior que a data de Ida.');
            return false;    
        }
    }                 
    
    return true;                    
}

function montaURL(origem, destino, idaVolta, dataIda, dataVolta, classe, adultos, criancas, bebes, param)
{
    var pagina = "Resultado.aspx";
    pagina = pagina + '?origem=' + origem.toUpperCase();
    pagina = pagina + '&destino=' + destino.toUpperCase(); 
    pagina = pagina + '&dataida=' + dataIda;  
    pagina = pagina + '&idaVolta=' + idaVolta;
    pagina += '&validado=1';
    if (idaVolta)
    {
        pagina = pagina + '&datavolta=' + dataVolta;
    }
    
    pagina = pagina + '&classe=' + classe; 

    // identifica o código do parceiro
    try
    {
        var value = QueryString("pr");
        if (value != null) 
        {
            pagina = pagina + '&pr=' + value;
        }
        
        if(param != "" && param != null)
        {
            pagina += "&homolog=1";
        }
    }
    catch (ex) { }

    pagina += addParamsUrl();
    
    // Validar se foram informados quantidade de passageiros, se foram,
    // incluir na URL
    pagina = pagina + '&adt=' + (adultos ? adultos : "1");
    pagina = pagina + '&chd=' + (criancas ? criancas : "0");
    pagina = pagina + '&inf=' + (bebes ? bebes : "0");
        
    return pagina;
}

function addParamsUrl()
{
    var sParams = "";
    if (QueryString("site_origem") != null && QueryString("site_origem") != "")
    {
        sParams += "&site_origem=";
        sParams += QueryString("site_origem").toString();
    }

    if (QueryString("id_user") != null && QueryString("id_user") != "")
    {
        sParams += "&id_user=";
        sParams += QueryString("id_user").toString();
    }

    if (QueryString("iad") != null && QueryString("iad") != "")
    {
        sParams += "&iad=";
        sParams += QueryString("iad").toString();
    }

    if (QueryString("auto") != null && QueryString("auto") != "")
    {
        sParams += "&auto=";
        sParams += QueryString("auto").toString();
    }

    if (QueryString("kw") != null && QueryString("kw") != "")
    {
        sParams += "&kw=";
        sParams += QueryString("kw").toString();
    }
    
    return sParams;
}

function redirect(param)
{
    if (!validaBusca())
    {
        return;
    }
    
    var origem = isOrigem.value;
    if(origem == null || origem == "")
    {
        if (Trim($("txtOrigem").value).length == 3)
        {
            origem = Trim($("txtOrigem").value).toUpperCase();
        }
    }
    var destino = isDestino.value;
    if(destino == null || destino == "")
    {
        if (Trim($("txtDestino").value).length == 3)
        {
            destino = Trim($("txtDestino").value).toUpperCase();
        }
    }
    var dataIda = Trim($('txtDataIda').value);
    var idaVolta = (document.getElementsByName('opIdaeVolta')[0].checked?1:0);
    var dataVolta = Trim($('txtDataVolta').value);
    var classe = Trim($('ddlClasse').value);

    // Definir quantidade e tipos de passageiros
    var adultos = ($("ddlADT").value);
    var criancas = ($("ddlCHD").value);
    
    try
    {
        var bebes = ($("ddlINF").value);
    }
    catch(ex){}
    
    var pagina = montaURL(origem, destino, idaVolta, dataIda, dataVolta, classe, adultos, criancas, bebes, param);

    var form = $("searchForm");
    form.method = "POST";
    form.action = pagina;
    form.submit();
}
      
function addResultado()
{
    if (!validaBusca())
    {
        return;
    }
    
    var tipo = (document.getElementsByName('opIdaeVolta')[0].checked ? 1 : 0);
    var origem = isOrigem.value;
    if(origem == null || origem == "")
    {
        if (Trim($("txtOrigem").value).length == 3)
        {
            origem = Trim($("txtOrigem").value).toUpperCase();
        }
    }
    var destino = isDestino.value;
    if(destino == null || destino == "")
    {
        if (Trim($("txtDestino").value).length == 3)
        {
            destino = Trim($("txtDestino").value).toUpperCase();
        }
    }
    var dataIda = Trim($('txtDataIda').value);
    var dataVolta = Trim($('txtDataVolta').value);
    var classe = Trim($('ddlClasse').value);
    
    var origens = new Array();
    var destinos = new Array();
    var datas = new Array();
    
    origens[0] = origem;
    destinos[0] = destino;
    datas[0] = dataIda;
    
    // caso seja ida e volta
    if (tipo == 1)
    {
        origens[1] = destino;
        destinos[1] = origem;
        datas[1] = dataVolta;
    }
    
    try
    {
        var numADT = $("ddlADT").options[$("ddlADT").selectedIndex].value;
        var numCHD = $("ddlCHD").options[$("ddlCHD").selectedIndex].value;
        var numINF = $("ddlINF").options[$("ddlINF").selectedIndex].value;
    }
    catch(ex){}

    // Definir texto para as div estáticas
    AtualizarDivsEstaticas(origem, destino, dataIda, dataVolta);

    /* RESULTADOS.JS */   
    getMultiVoosPreco(origens, destinos, datas, classe, numADT, numCHD, numINF, null);
}

function back() 
{
    location.href='Home.aspx';
}

function AtualizarDivsEstaticas(origem, destino, dataIda, dataVolta)
{
    // Definir textos estáticos para as divs
    var sbDivHeader = "";
    var sbDivFooter = "";
    var arrOrigem = "";
    var arrDestino = "";
    
    arrOrigem = $server.GetOrigemDestino(origem);
    arrDestino = $server.GetOrigemDestino(destino);
 
    // Vôos SAO - RIO 23/05/08 - 31/05/08
//    sbDivHeader += "Vôos ";
//    sbDivHeader += origem;
//    sbDivHeader += " - ";
//    sbDivHeader += destino;
//    sbDivHeader += " em ";
//    sbDivHeader += dataIda.toString("dd/MM/yy");

    sbDivFooter += "Passagens aéreas de ";
    sbDivFooter += arrOrigem.value;
    sbDivFooter += " para ";
    sbDivFooter += arrDestino.value;  
    sbDivFooter += " ";
    sbDivFooter += dataIda.toString("dd/MM/yy");

    if (dataVolta != null && dataVolta != "")
    {
        // Completar string com a data de volta
//        sbDivHeader += " - ";
//        sbDivHeader += dataVolta.toString("dd/MM/yy");

        sbDivFooter += " a ";
        sbDivFooter += dataVolta.toString("dd/MM/yy");
    }

//    $('divHeaderConteudoSEO').innerHTML = sbDivHeader;
    $('divFooterConteudoSEO').innerHTML = sbDivFooter;
    
//    $('divHeaderConteudoSEO').style.display = "block";
    $('divFooterConteudoSEO').style.display = "block";
}

function GetIataCity_CallBack(){}