function option(val) {
  return '<option value="' + val + '">' + val + '</option>';
}

Honda = {
  modelos: function(valores) {
    modelos = valores[$('#preco_tipo').val()]['modelos'];
    html = '';
    jQuery.each(modelos, function(i, val) {
      html += option(i);
    });
    $("#preco_modelo").html(html);
  },
  transmissoes: function(valores) {
    transmissoes = valores[$('#preco_tipo').val()]['modelos'][$('#preco_modelo').val()];
    html = '';
    jQuery.each(transmissoes, function(i, val) {
      html += option(val);
    });
    $("#preco_transmissao").html(html);
  },
  validaEntrada: function(entrada){
    entrada = parseInt(entrada);
    if(entrada && (entrada < 20 || entrada > 90)) {
      erro("Voc&ecirc; precisa dar no m&iacute;nimo 20% e no m&aacute;ximo 90% de entrada");
      $("#financiamento_entrada_outro").focus();
      return false;
    }
    return true;
  },
  validaSubmete: function() {
    if(Honda.validaEntrada($("#financiamento_entrada_outro").val())) {
      $("#submit_financiamento").click();
    }
  }
}

$(document).ready(function(){
  var valores = {}

  $.getJSON($("#preco").attr("action") + "?acao=json", function(valores) {
    Honda.modelos(valores);
    Honda.transmissoes(valores);
    $("#submit_preco").click();
    $("#preco_tipo").change(function(){
      Honda.modelos(valores);
      Honda.transmissoes(valores);
      $("#submit_preco").click();
    })
    $("#preco_modelo").change(function(){
      Honda.transmissoes(valores);
      $("#submit_preco").click();
    })
    $("#preco_transmissao").change(function(){
      $("#submit_preco").click();
    })
  });

  $("#submit_preco").hide();
  $("#submit_preco").click(function() {
    loading("#submit_preco");
    $.ajax({
      type: "POST",
      url: $("#preco").attr("action") + "?acao=preco",
      data: $("#preco").serialize(),
      success: function(response) {
        limpa();
        $("#form_financiamento").remove();
        $("#dados_preco").after(response);
        enter_em_entrada_outro_click_financiamento();
        financiamento_via_ajax();
      },
      error: function(response, text) {
        erro(response.responseText);
        $("#form_financiamento").remove();
      }
    });
    return false;
  });
});

function enter_em_entrada_outro_click_financiamento() {
  $("#financiamento_entrada_outro").keypress(function(event) {
    if (event.keyCode == 13 || event.keyCode == 9) {
      $("#financiamento_entrada option:selected").removeAttr('selected');
      if(Honda.validaEntrada($("#financiamento_entrada_outro").val())) {
        $("#submit_financiamento").click();
      }
      return false;
    }
  });
}

function financiamento_via_ajax() {
  $("#financiamento_entrada").change(function() {
    $("#financiamento_entrada_outro").val('');
    $("#submit_financiamento").click();
    return false;
  });

  $("#financiamento_entrada_outro").change(function() {
    $("#financiamento_entrada option:selected").removeAttr('selected');
    return false;
  });

  $("#financiamento_parcelas").change(function() {
    if(Honda.validaEntrada($("#financiamento_entrada_outro").val())) {
      $("#submit_financiamento").click();
    }
    return false;
  });

  $("#submit_financiamento").click(function() {
    if(Honda.validaEntrada($("#financiamento_entrada_outro").val())) {
      loading("#submit_financiamento");
      $.ajax({
        type: "POST",
        url: $("#preco").attr("action") + "?acao=financiamento",
        data: $("#preco").serialize(),
        success: function(response) {
          $("#dados_financiamento").remove();
          limpa();
          $("#form_financiamento").after(response);
          $("#submit_financiamento").show();
        },
        error: function(response, text) {
          erro(response.responseText);
          $("#dados_financiamento").remove();
          $("#submit_financiamento").show();
        }
      });
    };
    return false;
  });
}

function erro(texto) {
  limpa();
  $(".erro:first").fadeIn('slow');
  $(".erro:first").html(texto);
  setTimeout(function() { $(".erro:first").fadeOut('slow'); }, 5000);
}

function limpa() {
  $(".loader").remove();
  $(".erro").fadeOut();
}

function loading(selector) {
  $(selector).hide();
  $(selector).after('<img src="financiamento/loader.gif" class="loader"/>');
}