function onEnter(evt, elem, cont) {
  var key = evt.keyCode || evt.which;
  if (key == 13) {
    cont(elem);
  }
}

function onLeave(elem, cont) {
  cont(elem);
}

function t_up(id, n, cont) {
  var elem = document.getElementById(id);
  elem._old_val = elem.value;
  elem.value = parseInt(elem.value) + n;
  cont(elem);
}

function t_valor(id) {
  var elem = document.getElementById(id);
  return parseInt(elem.value);
}

function _valid_cant(x) {
  var i;
  for (i = 0; i < x.length; ++i) {
    if ('0123456789'.indexOf(x.charAt(i)) == -1) {
      return false;
    }
  }
  return parseInt(x) > 0;
}

function t_cambiar_cant(ctl, prod) {
  var f = function (elem) {
    if (_valid_cant(elem.value)) {
      ctl.cambiar_producto(prod, elem.value);
    } else {
      elem.value = elem._old_val;
    }
  };
  return f;
}

function t_validar_cant() {
  var f = function (elem) {
    if (!_valid_cant(elem.value)) {
      elem.value = elem._old_val;
    }
  };
  return f;
}

var __rep = null;

function t_rep(accion) {
  accion();
  t_no_rep();
  __rep = setInterval(accion, 400);
}

function t_no_rep() {
  if (__rep != null) {
    clearInterval(__rep);
    __rep = null;
  }
}

function remarcar_error(id) {
  var elem = document.getElementById(id);
  elem.focus();
  elem.select();
  elem.className = 'campo-con-error';
}

function remarcar_campo_default() {
  var campo_default = document.getElementById('campo_default');
  if (campo_default != undefined) {
    var elem = campo_default.childNodes[0];
    elem.focus();
    elem.select();
  }
}

