// Formataçao de CPF
function FormataCPF(el) {
    vr = el.value;
    tam = vr.length;

    if ( vr.indexOf(".") == -1 )
    {
        if ( tam <= 3 )
            el.value = vr;

        if ( (tam > 3) && (tam <= 7) )
            el.value = vr.substr( 0, 3 ) + '.' + vr.substr( 4, tam );

        if ( (tam >= 8) && (tam <= 11) )
            el.value = vr.substr( 0, 3 ) + '.' + vr.substr( 3, 3 ) + '.' + vr.substr( 5, 3 ) + '-';

        if ( (tam >= 11) && (tam <= 18) )
            el.value = vr.substr( 0, 3 ) + '.' + vr.substr( 3, 3 ) + '.' + vr.substr( 6, 3 ) + '-' + vr.substr( 9, 2 );
    }

    return true;
}

// Formatação de CNPJ
function isNum(caractere) {
  var strValidos = "0123456789";
  if (strValidos.indexOf(caractere) == -1) { return false; }
  return true;
}
function validaTecla(campo, event) {
  var BACKSPACE=8;
  var key;
  var tecla;

  CheckTAB=true;
  if(navigator.appName.indexOf("Netscape")!= -1) { tecla= event.which; }
  else { tecla= event.keyCode; }
  
  key = String.fromCharCode(tecla);
  if (tecla == 13) { return false; }
  if (tecla == BACKSPACE) { return true; }
  return (isNum(key));
}
function FormataCNPJ(el) {
  vr  = el.value;
  tam = vr.length;

  if ( vr.indexOf(".") == -1 ) {
    if (tam <= 3) { el.value = vr; }
    if ((tam > 3) && (tam <= 7))    { el.value = vr.substr( 0, 3 ) + '.' + vr.substr(3,tam); }
    if ((tam >= 8) && (tam <= 11))  { el.value = vr.substr( 0, 3 ) + '.' + vr.substr( 3, 3 ) + '.' + vr.substr( 6, 3 ) + '/'; }
    if ((tam >= 12) && (tam <= 19)) { el.value = vr.substr( 0, 3 ) + '.' + vr.substr( 3, 3 ) + '.' + vr.substr( 6, 3 ) + '/' + vr.substr( 9, 4 ) + '-' + vr.substr(13, 2); }
  }
  return true;
}
// Fim

function FormataDataMesAno(obj, teclapres) {
        var tecla = teclapres.keyCode;
        tam = 0;
        if (tecla == 8) { tam = tam - 1 ; return; }

        vr = obj.value;
        vr = vr.replace( ".", "");
        vr = vr.replace( "/", "");
        vr = vr.replace( "/", "");
        tam = vr.length + 1;

        if ( tam > 2 && tam < 5 ) { obj.value = vr.substr( 0, tam - 2  ) + '/' + vr.substr( tam - 2, tam ); }
}

function FormataTel(obj, teclapres) {
        var tecla = teclapres.keyCode;

        tam = 0;
        if (tecla == 8) { tam = tam - 1 ; return; }

        vr = obj.value;
        vr = vr.replace( " ", "");
        vr = vr.replace( " ", "");
        vr = vr.replace( ".", "");
        vr = vr.replace( ".", "");
        vr = vr.replace( "/", "");
        vr = vr.replace( "/", "");
        vr = vr.replace( "-", "");
        vr = vr.replace( "-", "");
        vr = vr.replace( "(", "");
        vr = vr.replace( ")", "");
        vr = vr.replace( "(", "");
        vr = vr.replace( ")", "");
        tam = vr.length;
        if ( tam > 1 && tam < 3) { obj.value = "("+vr.substr(0, 2)+")" + ' ' + vr.substr(2, vr.length); }
        else if ( tam > 5 && tam < 8 ) { obj.value = "("+vr.substr(0,2)+")" + ' ' + vr.substr(2, 3) + '-' + vr.substr(5, vr.length); }
        else if ( tam > 8) { obj.value = "("+vr.substr(0, 2)+")" + ' ' + vr.substr(2, 4) + '-' + vr.substr(6, vr.length); }
}

function FormataValor(obj,tammax,teclapres) {
    var tecla = teclapres.keyCode;
	vr  = obj.value;

        aux1 = /\./gi;
        aux2 = /\,/gi;

        vr = vr.replace( aux1, '');
        vr = vr.replace( aux2, '');

	tam = vr.length;

	if (tam < tammax && tecla != 8){ tam = vr.length + 1 ; }

	if (tecla == 8 ){	tam = tam - 1 ; }

	if ( tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 ){
		if ( tam <= 2 ){
	 		obj.value = vr ; }
	 	if ( (tam > 2) && (tam <= 5) ){
	 		obj.value = vr.substr( 0, tam - 2 ) + ',' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 6) && (tam <= 8) ){
	 		obj.value = vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 9) && (tam <= 11) ){
	 		obj.value = vr.substr( 0, tam - 8 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 12) && (tam <= 14) ){
	 		obj.value = vr.substr( 0, tam - 11 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 15) && (tam <= 17) ){
	 		obj.value = vr.substr( 0, tam - 14 ) + '.' + vr.substr( tam - 14, 3 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ;}
	}
}

function UCData(data) {
  return data.substr(6,4)+data.substr(3,2)+data.substr(0,2);
}

function FormataData(obj, teclapres) {
        var tecla = teclapres.keyCode;
        tam = 0;
        if (tecla == 8) { tam = tam - 1 ; return; }

        vr = obj.value;
        vr = vr.replace( ".", "");
        vr = vr.replace( "/", "");
        vr = vr.replace( "/", "");
        tam = vr.length + 1;
    
        if ( tam > 2 && tam < 5 )
                obj.value = vr.substr( 0, tam - 2  ) + '/' + vr.substr( tam - 2, tam );
        if ( tam >= 5 && tam <= 10 )
                obj.value = vr.substr( 0, 2 ) + '/' + vr.substr( 2, 2 ) + '/' + vr.substr( 4, 4 );
}

function FormataCep(obj, teclapres) {
        var tecla = teclapres.keyCode;
 
        tam = 0;
        if (tecla == 8 ){ tam = tam - 1 ; return; }
        
        vr = obj.value;
        vr = vr.replace( ".", "");
        vr = vr.replace( "/", "");
        vr = vr.replace( "-", "");
        tam = vr.length + 1;
    
        if ( tam > 2 && tam <= 3 )
                obj.value = vr.substr( 0, tam - 1  ) + '.' + vr.substr( tam - 1, tam );
        if ( tam > 3 && tam < 6 )
                obj.value = vr.substr( 0, 2 ) + '.' + vr.substr( 2, tam - 2 );
        if ( tam >= 6 && tam <= 10 )
                obj.value = vr.substr( 0, 2 ) + '.' + vr.substr( 2, 3 ) + '-' + vr.substr( 5, 3 );
}

// Função de TAB

var isNN = (navigator.appName.indexOf("Netscape")!=-1);

function autoTab(input, len, e) {
  var keyCode = (isNN) ? e.which : e.keyCode;
  var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
  if(input.value.length >= len && !containsElement(filter,keyCode)) {
    input.value = input.value.slice(0, len);
    input.form[(getIndex(input)+1) % input.form.length].focus();
  }

  function containsElement(arr, ele) {
    var found = false, index = 0;
    while(!found && index < arr.length)
     if(arr[index] == ele)
     found = true;
    else
     index++;
    return found;
  }

  function getIndex(input) {
    var index = -1, i = 0, found = false;
    while (i < input.form.length && index == -1)
     if (input.form[i] == input)index = i;
     else i++;
     return index;
  }
  return true;
}
