// JavaScript Document

function mask(campo,formato,conteudo)
{
      var i, j;
      auxPonto    = formato;
      auxBarra    = formato;
      auxHifen    = formato;
      auxCocEsq   = formato;
      auxCocDir	  = formato;
      auxDblPonto = formato;
      tamanho     = formato.length;
      posPonto    = new Array(tamanho);
      posBarra    = new Array(tamanho);
      posHifen    = new Array(tamanho);
      posCocDir    = new Array(tamanho);
      posCocEsq    = new Array(tamanho);
      posDblPonto = new Array(tamanho);
      keyPress    = event;
      campo.maxLength = tamanho;
      switch (conteudo)
      {
            case 1: // Verifica se soh podem ser entrados valores numericos
                  if (!(keycode(keyPress)>=48 && keycode(keyPress)<=57))
                        event.keyCode=0;
                  break;
            case 2: // Somente Letras
                  if (!( (keycode(keyPress)>= 97 && keycode(keyPress) <= 122) || (keycode(keyPress)>= 65 && keycode(keyPress) <= 90) ))
                        event.keyCode=0;
                  break;
            case 3: // Letras e numeros
                  if (!( (keycode(keyPress)>=48 && keycode(keyPress)<=57) || (keycode(keyPress)>= 97 && keycode(keyPress) <= 122) || (keycode(keyPress)>= 65 && keycode(keyPress) <= 90) ))
                        event.keyCode=0;
                  break;
      }
 // ---------------------------------------- PEGA A FORMATACAO DA MASCARA -----------------------------------
      for (i=0;i<tamanho;i++)
      {
            posPonto[i]       = auxPonto.indexOf('.');
            posBarra[i]       = auxBarra.indexOf('/');
            posHifen[i]       = auxHifen.indexOf('-');
            posCocDir[i]       = auxHifen.indexOf('(');
            posCocEsq[i]       = auxHifen.indexOf(')');
            posDblPonto[i]    = auxDblPonto.indexOf(':');
            auxPonto    = auxPonto.substring(posPonto[i]+1,tamanho);
            auxBarra    = auxBarra.substring(posBarra[i]+1,tamanho);
            auxHifen    = auxHifen.substring(posHifen[i]+1,tamanho);
            auxDblPonto = auxDblPonto.substring(posDblPonto[i]+1,tamanho);
            if (i > 0)
            {
                  posPonto[i]       = posPonto[i] + posPonto[i-1];
                  posBarra[i]       = posBarra[i] + posBarra[i-1];
                  posHifen[i]       = posHifen[i] + posHifen[i-1];
                  posCocDir[i]      = posCocDir[i] +  posCocDir[i-1];
                  posCocEsq[i]      = posCocEsq[i] +  posCocEsq[i-1];
                  posDblPonto[i]    = posDblPonto[i] + posDblPonto[i-1];
                  posPonto[i]       = posPonto[i] + 1;
                  posBarra[i]       = posBarra[i] + 1;
                  posHifen[i]       = posHifen[i] + 1;
                  posCocDir[i]      = posCocDir[i] + 1;
                  posCocEsq[i]      = posCocEsq[i] + 1;
                  posDblPonto[i]    = posDblPonto[i] +1;
            }
// ---------------------------------------- APLICA A FORMATACAO DA MASCARA -----------------------------------

            if ( posPonto[i] != 0 &&  posBarra[i] != 0 && posHifen[i] != 0 && posDblPonto[i] != 0 ) //Caracteres diferentes de - . / :
            {
                  tecla = keycode(keyPress);
                  if (tecla != 8 && tecla != 45 && tecla != 46 && tecla != 47 && tecla != 58)
                  {
                        if (campo.value.length == posPonto[i])
                        {
                             campo.value = campo.value + ".";
                             campo.focus();
                        }
                        if (campo.value.length == posBarra[i])
                        {
                             campo.value = campo.value + "/";
                             campo.focus();
                        }

                        if (campo.value.length == posHifen[i])
                        {
                             campo.value = campo.value + "-";
                             campo.focus();
                        }
                        
                        if (campo.value.length == posCocDir[i])
                        {
                             campo.value = campo.value + "(";
                             campo.focus();
                        }
                        
                        if (campo.value.length == posCocEsq[i])
                        {
                             campo.value = campo.value + ")";
                             campo.focus();
                        }
                        
                        if (campo.value.length == posDblPonto[i])
                        {
                             campo.value = campo.value + ":";
                             campo.focus();
                        }
                  }
            }
      }
}

function keycode(keyPress)
{
      return keyPress.keyCode;
}

function formatar(campo) 
{
    if (campo.value.length < 1) 
       return
    else 
    {
        var tam = campo.value.length;
        var valor = campo.value;    
        var aux = "";
        var total = 4 - tam;
        //campo.value = "000" + valor  ;
        for (i = 0; i < total; i++)
            aux += "0";   
        campo.value = aux + valor;
    }
}

