/* 
 * Coloca mascara enquanto o usuario digita a informação.
 * Parametros:
 *   mascara - mascara.
 *   cpo - campo a ser formatado.
 *   prx - proximo campo.
 *   tclPres- evento
 * Globais:
 *   removeMask.js
 * Utilizado no evento: onKeyUp
 */
function formataOnkeyUp(mascara, cpo, prx, tclPres)
{
  var tcl = tclPres.keyCode;
  vr = cpo.value;
  vr = removeMask(vr);
  tam = vr.length;
  tamMask = mascara.length;
  resp = '';

  // não formata se for teclas de navegação/deleção etc
  switch (tcl)
  {
    case 8:  //Back Space
    case 9:  //Tab
    case 13: //Enter
    case 16: //Shift
    case 17: //Ctrl
    case 18: //Alt
    case 33: //Page Up
    case 34: //Page Down
    case 35: //End
    case 36: //Home
    case 37: //seta esquerda
    case 38: //seta cima
    case 39: //seta direita
    case 40: //seta baixo
    case 45: //Insert
    case 46: //Delete
      return;
  }

  i = tam - 1;
  j = tamMask - 1;
  while (j >= 0 && i >= 0)
  {
    if (i < tamMask)
    {
      if (mascara.charAt(j) != '9')
        resp = mascara.charAt(j) + resp;
      else
      {
        resp = vr.charAt(i) + resp;			
        i--;
      }
      j--;
    }
    else
    {
      resp = vr.charAt(i) + resp;			
      i--;
    }
  }
  cpo.value = resp;
	
  if (resp.length >= tamMask && prx != null)
  {
    prx.focus();
  }
}