//Formatação - versão 1.01

//Formata Só Número - 1234567890
function Numeros(evento) {
    evento = ObterEvento(evento);
    var teclado = ObterCodigoTeclado(evento);
	if (!EvitarMascara(teclado) || teclado == 0){
        return;
	}
    else{
		if (teclado >= 48 && teclado <= 57)
			return true;
		else
			return false;
	}
}

//Formatar RG - 99.999.999-9
function FormatarRG(campo, evento) {
    var teclado = ObterCodigoTeclado(ObterEvento(evento));
    if (!EvitarMascara(teclado))
        return;
	else {
		var valor = SomenteNumeros(RetirarEspeciais(campo));
		var tamanho = valor.length;
		if (tamanho >= 2 && tamanho < 5)
			valor = valor.substr(0, 2) + '.' + valor.substr(2);
		else if (tamanho >= 5 && tamanho < 8)
			valor = valor.substr(0, 2) + '.' + valor.substr(2, 3) + '.' + valor.substr(5);
		else if (tamanho >= 8)
			valor = valor.substr(0, 2) + '.' + valor.substr(2, 3) + '.' + valor.substr(5, 3) + '-' + valor.substr(8, 1);
		campo.value = valor;
	}
}

//Formatar CPF - 999.999.999-99
function FormatarCPF(campo, evento) {
    var teclado = ObterCodigoTeclado(ObterEvento(evento));
    if (!EvitarMascara(teclado))
        return;
	else {
		var valor = SomenteNumeros(RetirarEspeciais(campo));
		var tamanho = valor.length;
		if (tamanho >= 3 && tamanho < 6)
			valor = valor.substr(0, 3) + '.' + valor.substr(3);
		else if (tamanho >= 6 && tamanho < 9)
			valor = valor.substr(0, 3) + '.' + valor.substr(3, 3) + '.' + valor.substr(6);
		else if (tamanho >= 9)
			valor = valor.substr(0, 3) + '.' + valor.substr(3, 3) + '.' + valor.substr(6, 3) + '-' + valor.substr(9, 2);
		campo.value = valor;
	}
}

//Formatar CNPJ - 99.999.999/9999-99
function FormatarCNPJ(campo, evento) {
    var teclado = ObterCodigoTeclado(ObterEvento(evento));
    if (!EvitarMascara(teclado))
        return;
	else {
		var valor = SomenteNumeros(RetirarEspeciais(campo));
		var tamanho = valor.length;
		if (tamanho >= 2 && tamanho < 5)
			valor = valor.substr(0, 2) + '.' + valor.substr(2);
		else if (tamanho >= 5 && tamanho < 8)
			valor = valor.substr(0, 2) + '.' + valor.substr(2, 3) + '.' + valor.substr(5);
		else if (tamanho >= 8 && tamanho < 12)
			valor = valor.substr(0, 2) + '.' + valor.substr(2, 3) + '.' + valor.substr(5, 3) + '/' + valor.substr(8);
		else if (tamanho >= 12)
			valor = valor.substr(0, 2) + '.' + valor.substr(2, 3) + '.' + valor.substr(5, 3) + '/' + valor.substr(8, 4) + '-' + valor.substr(12, 2);
		campo.value = valor;
	}
}

//Formata CEP - 99999-999
function FormatarCEP(campo, evento) {
    var teclado = ObterCodigoTeclado(ObterEvento(evento));
    if (!EvitarMascara(teclado))
        return;
	else {
		var valor = SomenteNumeros(RetirarEspeciais(campo));
		var tamanho = valor.length;
		if (tamanho == 5)
			valor = valor + '-';
		else if (tamanho > 5)
			valor = valor.substr(0, 5) + '-' + valor.substr(5, 3);
		campo.value = valor;
	}
}

//Formata Telefone - (00)0000-0000
function FormatarTelefone(campo, evento) {
    var teclado = ObterCodigoTeclado(ObterEvento(evento));
    if (!EvitarMascara(teclado))
        return;
	else {
		var valor = SomenteNumeros(RetirarEspeciais(campo));
		var tamanho = valor.length;
		if (tamanho == 1)
			valor = '(' + valor;
		else if (tamanho >= 2 && tamanho < 6)
			valor = '(' + valor.substr(0, 2) + ')' + valor.substr(2);
		else if (tamanho >= 6)
			valor = '(' + valor.substr(0, 2) + ')' + valor.substr(2, 4) + '-' + valor.substr(6, 4);
		campo.value = valor;
	}
}

//Formata Valor Monetário - 000.000.000.000,00
function FormatarValor(campo, evento) {
    var teclado = ObterCodigoTeclado(ObterEvento(evento));
    if (!EvitarMascara(teclado))
        return;
	else {
		var valor = SomenteNumeros(RetirarEspeciais(campo));
		if (valor.length == 0)
			return;
		valor = parseFloat(valor.toString()).toString();
		var tamanho = valor.length;

		if (tamanho < 3) {
			if (tamanho == 0)
				valor = "0,00";
			else if (tamanho == 1)
				valor = "0,0" + valor;
			else if (tamanho == 2)
				valor = "0," + valor;
		}
		else {
			if (tamanho >= 3 && tamanho < 6)
				valor = valor.substr(0, tamanho - 2) + ',' + valor.substr(tamanho - 2, tamanho);
			else if (tamanho >= 6 && tamanho < 9)
				valor = valor.substr(0, tamanho - 5) + '.' + valor.substr(tamanho - 5, 3) + ',' + valor.substr(tamanho - 2, tamanho);
			else if (tamanho >= 9 && tamanho < 12)
				valor = valor.substr(0, tamanho - 8) + '.' + valor.substr(tamanho - 8, 3) + '.' + valor.substr(tamanho - 5, 3) + ',' + valor.substr(tamanho - 2, tamanho);
			else if (tamanho >= 12 && tamanho < 15)
				valor = valor.substr(0, tamanho - 11) + '.' + valor.substr(tamanho - 11, 3) + '.' + valor.substr(tamanho - 8, 3) + '.' + valor.substr(tamanho - 5, 3) + ',' + valor.substr(tamanho - 2, tamanho);
			else if (tamanho >=15)
				valor = valor.substr(0, tamanho - 14) + '.' + valor.substr(tamanho - 14, 3) + '.' + valor.substr(tamanho - 11, 3) + '.' + valor.substr(tamanho - 8, 3) + '.' + valor.substr(tamanho - 5, 3) + ',' + valor.substr(tamanho - 2, tamanho);
		}
		campo.value = valor;
	}
}

//Formata Somente Letras A - Z, a - z
function Letras(evento) {
    evento = ObterEvento(evento);
    var teclado = ObterCodigoTeclado(evento);
	if (!EvitarMascara(teclado) || teclado == 0){
        return;
	}
	else{
		if ((teclado >= 65 && teclado <= 90) ||
			(teclado >= 97 && teclado <= 122) ||
			teclado == 32 || //Espaço
			teclado == 94 || //^
			teclado >= 126)
			return true;
		else
			return false;
	}
}

//Formata Somente Letras Minusculas a - z
function FormatarMinusculas(campo, evento) {
	var teclado = ObterCodigoTeclado(ObterEvento(evento));
    if (!EvitarMascara(teclado))
        return;
	else {
		var valor = SomenteLetras(RetirarEspeciais(campo));
		campo.value = valor.toLowerCase();
	}
}

//Formata Somente Letras Maiusculas A - Z
function FormatarMaiusculas(campo, evento) {
	var teclado = ObterCodigoTeclado(ObterEvento(evento));
    if (!EvitarMascara(teclado))
        return;
	else {
		var valor = SomenteLetras(RetirarEspeciais(campo));
		campo.value = valor.toUpperCase();
	}
}

//Formata palavras com a primeira letra maiuscula
function FormatarPalavras(campo, evento) {
    var teclado = ObterCodigoTeclado(ObterEvento(evento));
    if (!EvitarMascara(teclado))
        return;
	else {
		var valor = SomenteLetras(RetirarEspeciais(campo));
		valor = valor.toLowerCase();
		valor = valor.substring(0, 1).toUpperCase() + valor.substring(1, valor.length); //Deixa a primeira letra maiuscula.
		
		var espacos = valor.split(" ").length - 1; //dividir palavras pelo espaço.
		for (i = 0; i < espacos; i++) {
			var posicao = valor.indexOf(" ", posicao + 1); //Conta quantos caracters tem dentro de uma palavra.
			var inicio = valor.substring(0, valor.indexOf(" ", posicao - 1)) + " ";
			var meio = valor.substring(valor.indexOf(" ", posicao) + 1, valor.indexOf(" ", posicao) + 2).toUpperCase();
			var fim = valor.substring(valor.indexOf(" ", posicao) + 2, valor.length);
			valor = inicio + meio + fim;
		}
	campo.value = valor;
	}
}

//Formata Data (01/01/0001)
function FormatarData(campo, evento) {
	var teclado = ObterCodigoTeclado(ObterEvento(evento));
    if (!EvitarMascara(teclado))
        return;
	else {
		var valor = SomenteNumeros(RetirarEspeciais(campo));
		var tamanho = valor.length;
		
		if (tamanho >= 2 && tamanho < 4)
			campo.value = valor.substr(0, 2) + '/' + valor.substr(2);
		else if (tamanho >= 4)
			campo.value = valor.substr(0, 2) + '/' + valor.substr(2, 2) + '/' + valor.substr(4, 4);
	}
}

//Formata Data/Hora (01/01/0001 00:00)
function FormatarDataHora(campo, evento) {
    var teclado = ObterCodigoTeclado(ObterEvento(evento));
    if (!EvitarMascara(teclado))
        return;
	else {
		var valor = SomenteNumeros(RetirarEspeciais(campo));
		var tamanho = valor.length;
		
		if (tamanho >= 2 && tamanho < 4)
			campo.value = valor.substr(0, 2) + '/' + valor.substr(2);
		else if (tamanho >= 4 && tamanho < 8)
			campo.value = valor.substr(0, 2) + '/' + valor.substr(2, 2) + '/' + valor.substr(4);
		else if (tamanho >= 8 && tamanho <10)
			campo.value = valor.substr(0, 2) + '/' + valor.substr(2, 2) + '/' + valor.substr(4, 4) + ' ' + valor.substr(8);
		else if (tamanho >= 10)
			campo.value = valor.substr(0, 2) + '/' + valor.substr(2, 2) + '/' + valor.substr(4, 4) + ' ' + valor.substr(8, 2) + ':' + valor.substr(10, 2);
	}
}

//Formata Data/Hora (01/01/0001 00:00:00)
function FormatarDataHoraSegundo(campo, evento) {
    var teclado = ObterCodigoTeclado(ObterEvento(evento));
    if (!EvitarMascara(teclado))
        return;
	else {
		var valor = SomenteNumeros(RetirarEspeciais(campo));
		var tamanho = valor.length;
		
		if (tamanho >= 2 && tamanho < 4)
			campo.value = valor.substr(0, 2) + '/' + valor.substr(2);
		else if (tamanho >= 4 && tamanho < 8)
			campo.value = valor.substr(0, 2) + '/' + valor.substr(2, 2) + '/' + valor.substr(4);
		else if (tamanho >= 8 && tamanho < 10)
			campo.value = valor.substr(0, 2) + '/' + valor.substr(2, 2) + '/' + valor.substr(4, 4) + ' ' + valor.substr(8);
		else if (tamanho >= 10 && tamanho < 12)
			campo.value = valor.substr(0, 2) + '/' + valor.substr(2, 2) + '/' + valor.substr(4, 4) + ' ' + valor.substr(8, 2) + ':' + valor.substr(10, 2);
		else if (tamanho >= 12)
			campo.value = valor.substr(0, 2) + '/' + valor.substr(2, 2) + '/' + valor.substr(4, 4) + ' ' + valor.substr(8, 2) + ':' + valor.substr(10, 2)  + ':' + valor.substr(12, 2);
	}
}

