﻿
/*
Representa o controle EscolherQuantidade.
*/
var EscolherQuantidade = {

  /**************************
  CAMPOS.
  **************************/
  hdnValorUnitario: undefined,
  txtQuantidade: undefined,
  txtTotal: undefined,
  valorUnitario: undefined,

  /**************************
  MÉTODOS.
  **************************/
  /*
  Inicializa o controle de EscolherQuantidade.
  */
  init: function() {
    EscolherQuantidade.recuperarElementos();
    EscolherQuantidade.aplicarHandlers();
    
    EscolherQuantidade.valorUnitario = getMoney(jQuery(EscolherQuantidade.hdnValorUnitario).val());
  },
  /*
  Aplica os handlers de evento do controle.
  */
  aplicarHandlers: function() {
    jQuery(EscolherQuantidade.txtQuantidade)
      .blur(EscolherQuantidade.txtQuantidade_blur)
      .change(EscolherQuantidade.txtQuantidade_change)
      .focus(EscolherQuantidade.txtQuantidade_focus)
      .keypress(EscolherQuantidade.txtQuantidade_keypress)
      .keyup(EscolherQuantidade.txtQuantidade_keyup);
  },
  /*
  Altera o valor do total mostrado pelo controle, de acordo com o valor informado para a quantidade.
  */
  alterarTotal: function() {
    var quantidade = parseInt(jQuery(EscolherQuantidade.txtQuantidade).val(), 10);
    quantidade = isNaN(quantidade) ? 0 : quantidade;
    var total = quantidade * EscolherQuantidade.valorUnitario;
    jQuery(EscolherQuantidade.txtTotal).val(formatarValorMonetario(total));
  },
  /*
  Recupera e faz cache dos elementos DOM do controle.
  */
  recuperarElementos: function() {
    EscolherQuantidade.hdnValorUnitario = jQuery('.escolher-quantidade input[id$=hdnValorUnitario]').get(0);
    EscolherQuantidade.txtQuantidade = jQuery('.escolher-quantidade input[id$=txtQuantidade]').get(0);
    EscolherQuantidade.txtTotal = jQuery('.escolher-quantidade input[id$=txtTotal]').get(0);
  },
  
  /**************************
  EVENTOS.
  **************************/
  /*
  Se o valor informado não for número coloca a quantidade como 0.
  */
  txtQuantidade_blur: function(e) {
    var quantidade = parseInt(this.value, 10);
    if (isNaN(quantidade)) this.value = '0';
  },
  /*
  Recalcula o valor total.
  */
  txtQuantidade_change: function(e) {
    EscolherQuantidade.alterarTotal();
  },
  /*
  Seleciona o valor para que o usuário possa trocá-lo.
  */
  txtQuantidade_focus: function(e) {
    EscolherQuantidade.txtQuantidade.select();
  },
  /*
  Permite digitar apenas números.
  */
  txtQuantidade_keypress: function(e) {
    //somenteNumero(this, e)
  },
  /*
  Recalcula o valor total.
  */
  txtQuantidade_keyup: function(e) {
    EscolherQuantidade.alterarTotal();
  }
};

jQuery(function() {
  EscolherQuantidade.init();
});
