﻿
var itemSelecionado = "";
var Mercado = 11;

function IndicarSelecionado(item) {
    itemSelecionado = item;    
}

function ExibirSubItens(img, lnk, ol, marca) {
    if ($("#" + ol).css("display") == "none") {
        $("#" + ol).css("display", "");

        $("#" + lnk).addClass("ativo");
        $("#" + img).attr("src", $("#" + img).attr("src").toString().replace("mais", "menos"));
                
        if ($("#" + ol).html().toString().length == 0) {
            ExibirListaModelos(marca, ol);
        }
    }
    else {
        $("#" + ol).css("display", "none");
        $("#" + lnk).removeClass("ativo");        
        $("#" + img).attr("src", $("#" + img).attr("src").toString().replace("menos", "mais"));
    }
}

function ExibirListaModelos(marca, ol) {
    $("#hdnMarcaAtual").attr("value", FormatarNome(marca, " ", "_"));

    var ajaxPage = ObterDominio() + "carros/ajax.aspx?metodo=ObterModeloPorMarcaNavegador&MarcaVeiculo=" + marca;
    $.getJSON(ajaxPage,
            function(data) {
                PreencherListaModelos(data, marca, ol);
            });    
}

function PreencherListaModelos(lista, marca, ol) {
    var conteudo = "";
    var mouseOver = "";
    var mouseOut = "";
    
    for (var i = 0; i < lista.length; i++) {
        mouseOver = "javascript:IndicarSelecionado('" + lista[i]["Texto"] + "');setTimeout('ExibirDadosMercado(&quot;" + marca + "&quot;,&quot;" + lista[i]["Texto"] + "&quot;)', 250);";
        mouseOut = "javascript:IndicarSelecionado('');";

        conteudo += "<li onmouseover=\"" + mouseOver + "\" onmouseout=\"" + mouseOut + "\"><a onclick='javascript:AtualizaTipoBusca(" + Mercado + ");' href=\"" + lista[i]["Valor"] + "\">" + lista[i]["Texto"] + "</a> <span>(" + lista[i]["Quantidade"] + ")</span></li>";       
    }

    $("#" + ol).html(conteudo);
    $("#" + ol).show();
}

function ExibirDadosMercado(marca, modelo) {

    if (itemSelecionado == modelo) {
        $("#lblTituloModelos").html("MODELOS:");
        $("#divModeloSelecionado").html(marca + " " + modelo);
        $("#divModeloSelecionado").css("display", "");

        $("#" + divMercado).css("display", "none");
        $("#" + divModelos).css("display", "");

        if ($("#" + divMercado).lenght > 0) {
            $("#" + divMercado).css("display", "none");
        }
        else {
            $("#" + divModelosMaisOfertas).css("display", "none");
        }

        ExibirListaVersao(marca, modelo);
        ObterDadosGrafico(modelo, "divGraficoModelo",1);
        ObterDadosVersaoMaisBuscada(marca, modelo);
    }
}

function CarregarGraficosDadosMercado() {
    ObterDadosGrafico("Gol", "divGraficoGol", 0);
    ObterDadosGrafico("Palio", "divGraficoPalio", 0);
    ObterDadosGrafico("Corsa", "divGraficoCorsa", 0);
    ObterDadosGrafico("Celta", "divGraficoCelta", 0);
}

function ExibirListaVersao(marca, modelo) {

    var ajaxPage = ObterDominio() + "carros/ajax.aspx?metodo=ObterVersaoPorModeloNavegador&tipo=carro&MarcaVeiculo=" + marca + "&ModeloVeiculo=" + modelo;
    $.getJSON(ajaxPage,
            function(data) {
                PreencherListaVersao(data, marca, modelo);                
            });
}

function PreencherListaVersao(lista, marca, modelo) {
    var conteudo = "";

    if (lista != null && lista.length != "undefined" && lista.length > 0) {
        for (var i = 0; i < lista.length && i <= 21; i++) {
            conteudo += "<li><a onclick='javascript:AtualizaTipoBusca(" + Mercado + ");' href=\"" + lista[i]["Valor"] + "\">" + lista[i]["Texto"] + "</a> <span>(" + lista[i]["Quantidade"] + ")</span></li>";
        }
    }
    else if (lista.length == 0) {
        conteudo = "<li>Nenhuma versão encontrada!</li>";
    }
    else {
        conteudo = "<li>Não foi possível exibir a listagem de versões!</li>";
    }

    $("#ulVersoes").html(conteudo);    
}

function ObterDadosGrafico(modelo, div, exibetitle) {
    $("#" + div).html("Carregando...");

    var ajaxPage = ObterDominio() + "carros/ajax.aspx?metodo=ObterMediaVeiculoAnoValor&ModeloVeiculo=" + modelo;
    $.getJSON(ajaxPage,
            function(data) {
                PreencherGrafico(data, modelo, div, exibetitle);                
    });            
}

function PreencherGrafico(lista, modelo, div, exibetitle) {
    var valores = new Array();
    var anos = new Array();
    var titulo = "";

    if (exibetitle==1){
        titulo = "Preço Médio das Ofertas x Ano de Fabricação";
    }
    for (var i = 0; i < lista.length; i++) {
        anos[i] = lista[i]["Ano"];
        valores[i] = lista[i]["Valor"];
    }

    if (lista.length > 0) {
        $("#" + div).html("");

        plot2 = $.jqplot(div, [valores], {
            title: titulo,
            legend: { show: false },            
            seriesDefaults: {
                renderer: $.jqplot.BarRenderer,
                rendererOptions: { barPadding: 2 }
            },
            axes: {
                xaxis: {
                    renderer: $.jqplot.CategoryAxisRenderer,
                    ticks: anos
                },
                yaxis: {
                    autoscale: false,
                    tickOptions: { formatString: '%.0f' }
                }
            },
            seriesColors: ["#f2922c", "#8ec73f", "#00abed", "#8d218e", "#138491", "#35abee", "#256eba", "#342f90", "#8d228e", "#8f2c62"]
        });
    }
    else {        
        $("#" + div).html("<img src='../img/autos/mercado-graficoindisponivel.gif' alt='Nenhum dado gráfico foi encontrado' />");
    }
}

function ObterDadosVersaoMaisBuscada(marca, modelo) {

    var ajaxPage = ObterDominio() + "carros/ajax.aspx?metodo=ObterVersaoMaisBuscada&MarcaVeiculo=" + marca + "&ModeloVeiculo=" + modelo;
    $.getJSON(ajaxPage,
            function(data) {
            PreencherDadosVersaoMaisBuscada(data, marca, modelo);
        });   
}

function PreencherDadosVersaoMaisBuscada(versao, marca, modelo) {
    var conteudo = "";
    var conteudoVersao = "";

    conteudo += "<strong>" + modelo + "</strong>";
    conteudo += "<p>Busca de <b>" + modelo + "</b>: " + versao.QuantidadeBusca.toString() + "/mês<br>";
    conteudo += "<b>" + modelo + "</b> mais buscado:</p>";

    $("#lblDadosMercado").html(conteudo);
    
    if (versao.QuantidadeBusca > 0) {
        conteudoVersao += "<a href='" + versao.Link + "'>";
        conteudoVersao += "<i>> </i><b>Versão:</b> " + versao.Versao + "<br>";
        conteudoVersao += "<i>> </i><b>Preço:</b> " + versao.FaixaPreco + "<br>";
        conteudoVersao += "<i>> </i><b>Ano:</b> " + versao.Ano + "<br>";
        conteudoVersao += "<i>> </i><b>Cor:</b> " + versao.Cor + "<br>";
        conteudoVersao += "</a>";
    }
    else {
        conteudoVersao = "Nenhum dado da versão mais buscada disponível!";        
    }
    
    $("#divVersaoMaisBuscada").html(conteudoVersao);
}

function AtualizaSelecionados(chk, marca, modelo, lnk) {
    var valor = modelo + "+";
    var itensSelecionados = $("#hdnMarcaModelosSelecionados").attr("value");

    if (chk.checked) {
        if ($("#" + txtSelecionados).attr("value").toString().indexOf(valor) == -1) {
            $("#" + txtSelecionados).attr("value", ($("#" + txtSelecionados).attr("value") + valor));
            itensSelecionados = itensSelecionados + FormatarMarcaModelo(marca, modelo);
        }

        $("#" + lnk).addClass("selecionado");
    }
    else {
        if ($("#" + txtSelecionados).attr("value").toString().indexOf(valor) != -1) {
            $("#" + txtSelecionados).attr("value", $("#" + txtSelecionados).attr("value").toString().replace(valor, ""));
            itensSelecionados.toString().replace(FormatarMarcaModelo(marca, modelo), "");
        }

        $("#" + lnk).removeClass("selecionado");
    }

    $("#hdnMarcaModelosSelecionados").attr("value", itensSelecionados);
}

function FormatarNome(nome, caracter, caracterSubstituto) {
    while (nome.toString().indexOf(caracter) != -1) {
        nome = nome.toString().replace(caracter, caracterSubstituto);
    }

    return nome;
}

function FormatarMarcaModelo(marca, modelo) {
    return ("!" + (FormatarNome(marca) + "_" + FormatarNome(modelo)) + "!");
}
            