$( function() {

  var msg = "Carregando...";
  /**
   * variavel que controla se ja foi alimentado
   * com o valor default os combos de busca rapida
  */
  var valordefault = { 'cidade2':false, 'marca2':false, 'modelo2':false };
   /** funcao para limpar os campos */
   $.extend({
      limpaformbuscaavancada:
      function ( input ) {
         switch (input) {
            case "cidade":
               $("#bamarca option").remove();
               $("#bamodelo option").remove();
               $("#bamodelo").attr("disabled","disabled");
               break;
            case "marca":
               $("#bamodelo option").remove();
               break;
         }
      }
   });


  /* tratamento de envio */
  $("#buscaavancada").submit(
    function() {
      var tipo   = $("#tipo2").val();

      /* valida os campos (deve estar selecionado ao menos 2 campos) */
      var flgtotalpreenchido = 0;
      if ( $("#bacidade").val() > 0 ) flgtotalpreenchido += 2;
      if ( $("#bamarca").val() > 0 ) flgtotalpreenchido += 2;
      if ( $("#bamodelo").val() > 0 ) flgtotalpreenchido += 2;
      if ( $("#baano1").val() > 0 ) flgtotalpreenchido++;
      if ( $("#baano2").val() > 0 ) flgtotalpreenchido++;
      if ( $("#val1").val() > 0 ) flgtotalpreenchido++;
      if ( $("#val2").val() > 0 ) flgtotalpreenchido++;
      if ( $("#km2").val() > 0 ) flgtotalpreenchido++;
      if ( $("#cor").val() > 0 ) flgtotalpreenchido++;
      if ( $("#combustivel").val() > 0 ) flgtotalpreenchido++;

      // verifica se eh carro ou moto
      if ( tipo == 1 ) {
          if ( $.trim($("#versao").val()) != '' ) flgtotalpreenchido++;
          if ( $("#porta").val() > 0 ) flgtotalpreenchido++;
      }
      flgtemopcional = 0;
      $("input[name^='opcional']").each( function() {
          if ( $(this).is(":checked") ) flgtemopcional = 1;
      });
      if ( flgtemopcional == 1 ) flgtotalpreenchido++;

      /* verifica se encontrou erro */
      if ( flgtotalpreenchido < 2 ) {
        alert( 'Filtros insuficientes para executar a consulta.\nÉ necessário preencher ao menos 2 campos.' ); /* retorna o erro p/ o usuario */
      } else {
        /* realiza a consulta */
        var url = "pesquisanova.php?tp=ava&";
        var opcionais = '';
        var inputsnaopermitidos = ["bacidade_default", "bamarca_default", "bamodelo_default", "pesquisar"];

        $("#buscaavancada input, #buscaavancada select").each( function() {
            if ( $(this).attr("class") == "chk_opcionais" ) {
                if ( $(this).is(":checked") ) { opcionais += $(this).val() + "|"; }
            } else if ( $.inArray($(this).attr("name"),inputsnaopermitidos) < 0 ) {
                url += $(this).attr("name") + "=" + $(this).val() + "&";
            }
        });
        url += "opcionais=" + opcionais;
        location.href = url;
      }

      /* nunca efetua o post */
      return false;
    }
  );


    /* marcas */
    $("#bacidade").change(
        function() {
            var tipo = $("#tipo2").val();
            var cidade = $(this).val();
            $.limpaformbuscaavancada( 'cidade' );
            $("#bamarca").append("<option value=\"0\">" + msg + "</option>");
            $.getJSON(
                "/ajax/formtipomarcamodelo.php",
                { input: 'marca', filtro: tipo, cidade: cidade },
                function(data) {
                    $("#bamarca option:first").remove();
                    $("#bamarca").removeAttr("disabled").append("<option value=\"0\">Selecione a marca</option>");
                    $.each( data.rows, function(i,item) {
                        // monta descricao do total
                        totalveiculos = item[2];
                        if ( i == 0 ) { totalveiculos += ( item[2] > 1 ) ? " veículos" : " veículo"; }
                        totalveiculos = " (" + totalveiculos + ")";

                        // retira total se for o separador das marcas maiores
                        if ( item[0] == '0' && item[1] == '' ) { totalveiculos = ""; }
                        selected = ( $("#bamarca_default").val() == item[0] && !valordefault['marca2'] ) ? " selected=\"selected\"" : "" ;
                        $("#bamarca").append("<option value=\"" + item[0] + "\"" + selected + ">" + item[1] + totalveiculos + "</option>");
                    });
                    if ( ($("#bamodelo_default").val() != "" && $("#bamodelo_default").val() != "0" && !valordefault['modelo2']) || $("#bamarca_default").val() > 0 )
                        $("#bamarca").trigger( "change" );

                    /* controla para que a apos um reload de tela nao fique selecionando a mesma marca do post */
                    valordefault['marca2'] = true;
                }
            );
        }
    );


    /* cidades */
    $("#bacidade").trigger("change");
    $("#bamarca").trigger("change");


    /* modelos */
    $("#bamarca").change(
        function() {
            var marca = $(this).val();
            var cidade = $("#bacidade").val();

            $.limpaformbuscaavancada( 'marca' );

            if ( marca > 0 ) {
                $("#bamodelo").removeAttr("disabled");
                $("#bamodelo").append("<option value=\"0\">" + msg + "</option>");
                $.getJSON(
                    "ajax/formtipomarcamodelo.php",
                    { input: 'modelo', filtro: marca, cidade: cidade },
                    function(data) {
                        $("#bamodelo option:first").remove();
                        $("#bamodelo").append("<option value=\"0\">Selecione o modelo</option>");
                        $.each( data.rows, function(i,item) {
                            selected = ( $("#bamodelo_default").val() == item[0] && !valordefault['modelo2'] ) ? " selected=\"selected\"" : "" ;
                            totalveiculos = item[2];
                            if ( i == 0 ) { totalveiculos += ( item[2] > 1 ) ? " veículos" : " veículo"; }
                            totalveiculos = " (" + totalveiculos + ")";
                            $("#bamodelo").append("<option value=\"" + item[0] + "\"" + selected + " >" + item[1] + totalveiculos + "</option>");
                        });
                        /* controla para que a apos um reload de tela nao fique selecionando o mesmo modelo do post */
                        valordefault['modelo2'] = true;
                    }
                );
            }
        }
    );



  /* alimenta combo de anos*/
  var data = new Date();
  var anoatual = data.getFullYear()+1;
  for(i=anoatual; i>=1900; i-- ) {
    selected1 = ( $("#baano1_default").val() == i ) ? " selected=\"selected\"" : "" ;
    selected2 = ( $("#baano2_default").val() == i ) ? " selected=\"selected\"" : "" ;
    $("#baano1").append("<option value=\"" + i + "\"" + selected1 + ">" + i + "</option>");
    $("#baano2").append("<option value=\"" + i + "\"" + selected2 + ">" + i + "</option>");
  }


  /*var valordefault = true;*/
});


