/*
 * 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 formataOnkeyUpReverse(mascara, cpo, prx, tclPres)
{
	var tcl = tclPres.keyCode;
	vr = removeMask(cpo.value,mascara);
	resp = '';
	tam = vr.length;
    tamMask = mascara.length;
	// 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 false;
	}

  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();
  }
}
