teclasIgnore = new Array("8", "9", "13", "16", "17", "20", "35", "36", "37", "38", "39", "40", "46", "144")

function FormataMoeda(obj) {
	re1 = /\./gi;
	re2 = /\,/gi;

	vr = obj.value;
	vr = vr.replace(re1, '');
	vr = vr.replace(re2, '.');
	vr = Number(vr).toFixed(2);

	obj.value = cNumero(vr);
}

function FormataTel(obj, teclapres) {
	var tecla = teclapres.keyCode;

	tam = 0;
	if (teclasIgnore.in_array(tecla)) { return; }

	vr = obj.value;

	aux1 = /\(/gi;
	aux2 = /\)/gi;
	aux3 = /-/gi;
	aux4 = /\+/gi;
	aux5 = /\ /gi;
	vr = vr.replace( aux1, '');
	vr = vr.replace( aux2, '');
	vr = vr.replace( aux3, '');
	vr = vr.replace( aux4, '');
	vr = vr.replace( aux5, '');

	tam = vr.length + 1;

	if ( tam > 2) { obj.value = '(' + vr.substr(0, 2) + ')' + ' ' + vr.substr(2, 4) + '-' + vr.substr(6, 4); }
}

function FormataHora(obj, teclapres) {
	var tecla = teclapres.keyCode;

	tam = 0;
	if (teclasIgnore.in_array(tecla)) { return; }

	vr = obj.value;

	aux1 = /:/gi;
	vr = vr.replace( aux1, '');

	tam = vr.length + 1;

	if ( tam > 2) { obj.value = vr.substr(0, 2) + ':' + vr.substr(2, 4); }
}

tamCampoCPFCNPJ = '18';
function FormataCPFCNPJ(obj, evento)
{
	form = obj.form;
	if (form.tipoPessoa.value == "2")
	{
		tamCampoCPFCNPJ = 14;
		if (evento != undefined) FormataCpf(obj, evento);
	} else if (form.tipoPessoa.value == "1")
	{
		tamCampoCPFCNPJ = 18;
		if (evento != undefined) FormataCNPJ(obj, evento);
	}
	obj.maxLength = tamCampoCPFCNPJ;
	obj.setAttribute('maxlength', tamCampoCPFCNPJ);
	obj.setAttribute('size', tamCampoCPFCNPJ);
}

function FormataCpf(campo, teclapres) {
	if (teclapres != undefined)
	{
		var tecla = teclapres.keyCode;
		if (teclasIgnore.in_array(tecla)) { return; }
	}

	vr   = campo.value;
	aux1 = /\./gi;
	aux2 = /\-/gi;
	vr   = vr.replace( aux1, '');
	vr   = vr.replace( aux2, '');
	tam  = vr.length;

	if ( tam <= 3 ) 						campo.value = vr ;
	else if ( (tam >= 3) && (tam <= 6) )	campo.value = vr.substr( 0, 3 )  + '.' + vr.substr( 3, 3 ) ;
	else if ( (tam >= 7) && (tam <= 9) )	campo.value = vr.substr( 0, 3 )  + '.' + vr.substr( 3, 3 ) + '.'  + vr.substr( 6, 3 );
	else if ( (tam >= 9) && (tam <= 11) )	campo.value = vr.substr( 0, 3 )  + '.' + vr.substr( 3, 3 ) + '.'  + vr.substr( 6, 3 )  + '-' + vr.substr( 9, 2 );

	return true;
}

function FormataCNPJ(campo, teclapres)
{
	if (teclapres != undefined)
	{
		var tecla = teclapres.keyCode;
		if (teclasIgnore.in_array(tecla)) { return; }
	}

	vr   = campo.value;
	aux1 = /\./gi;
	aux2 = /\-/gi;
	aux3 = /\//gi;
	vr   = vr.replace( aux1, '');
	vr   = vr.replace( aux2, '');
	vr   = vr.replace( aux3, '');
	tam  = vr.length;

	if ( tam <= 2 )                  campo.value = vr;
	if ( (tam > 2) && (tam <= 5) )	 campo.value = vr.substr( 0, 2 ) + '.' + vr.substr( 2, 3 );
	if ( (tam >= 6) && (tam <= 9) )	 campo.value = vr.substr( 0, 2 ) + '.' + vr.substr( 2, 3 ) + '.' + vr.substr( 5, 3 );
	if ( (tam >= 9) && (tam <= 13) ) campo.value = vr.substr( 0, 2 ) + '.' + vr.substr( 2, 3 ) + '.' + vr.substr( 5, 3 ) + '/' + vr.substr( 8, 4 );
	if ( (tam >= 13) )	             campo.value = vr.substr( 0, 2 ) + '.' + vr.substr( 2, 3 ) + '.' + vr.substr( 5, 3 ) + '/' + vr.substr( 8, 4 ) + '-' + vr.substr( 12, 2 );

	return true;
}

function FormataNumero(obj,tammax,teclapres) {
	var tecla = teclapres.keyCode;
	vr  = obj.value;

	if (teclasIgnore.in_array(tecla)) { return; }

	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 >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 ){
		if ( tam <= 2 )							obj.value = vr ;
		else if ( (tam > 2) && (tam <= 5) )		obj.value = vr.substr( 0, tam - 2 )  + ',' + vr.substr( tam - 2, tam );
		else if ( (tam >= 6) && (tam <= 8) )	obj.value = vr.substr( 0, tam - 5 )  + '.' + vr.substr( tam - 5, 3 )  + ',' + vr.substr( tam - 2, tam );
		else 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 );
		else 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 );
		else 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 FormataData(obj, teclapres) {
	var tecla = teclapres.keyCode;
	tam = 0;

	if (teclasIgnore.in_array(tecla)) { return; }

	aux1 = /\//gi;

	vr  = obj.value;
	tam = vr.length;

	if ( tam == 7 ) 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 (teclasIgnore.in_array(tecla)) { return; }

	vr = obj.value;

	aux1 = /\./gi;
	aux2 = /\-/gi;
	vr = vr.replace( aux1, '');
	vr = vr.replace( aux2, '');

	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 );
}

function cNumero(vr) {
	vr  = Number(vr).toFixed(2);

	vr  = vr.toString();

	aux1 = /\./gi;
	aux2 = /\,/gi;
	vr = vr.replace( aux1, '');
	vr = vr.replace( aux2, '');

	tam = vr.length;
	if (vr < 0) { sinal = '-'; vr = vr.replace('-', ''); tam = tam-1; }
	else { sinal = ''; }

	if ( (tam >= 3) && (tam <= 5) )			num = vr.substr( 0, tam - 2 )  + ',' + vr.substr( tam - 2, tam );
	else if ( (tam >= 6) && (tam <= 8) )	num = vr.substr( 0, tam - 5 )  + '.' + vr.substr( tam - 5, 3 )  + ',' + vr.substr( tam - 2, tam );
	else if ( (tam >= 9) && (tam <= 12) )	num = vr.substr( 0, tam - 8 )  + '.' + vr.substr( tam - 8, 3 )  + '.' + vr.substr( tam - 5, 3 )  + ',' + vr.substr( tam - 2, tam );
	else if ( (tam >= 13) && (tam <= 15) )	num = 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 );
	else if ( (tam >= 16) && (tam <= 18) )	num = 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 );
	return sinal+num;
}

function ucNumero(vr) {
	re1 = /\./gi;
	re2 = /\,/gi;
	vr = vr.replace(re1, '');
	vr = vr.replace(re2, '.');
	return Number(vr);
}

function LimpaZeros(obj, evento)
{
	if (evento.type == "focus")
	{
		auxNumero = ucNumero(obj.value);
		if (auxNumero == 0) obj.value = '';
		else
		{
			aux1  = /\./gi;

			obj.value = obj.value.replace(aux1, "");
		}
	} else if (evento.type == "blur")
	{
		if (obj.value == "") obj.value = '0,00';
		else obj.value = cNumero(ucNumero(obj.value));
	}
}

function LimparFormatacao(obj)
{
	re1 = /\./gi;
	re2 = /\,/gi;
	re3 = /\-/gi;
	re4 = /\(/gi;
	re5 = /\)/gi;
	re6 = /\//gi;
	vr  = obj.value;
	vr  = vr.replace(re1, '');
	vr  = vr.replace(re2, '');
	vr  = vr.replace(re3, '');
	vr  = vr.replace(re4, '');
	vr  = vr.replace(re5, '');
	vr  = vr.replace(re6, '');
	obj.value = vr;
	obj.select();
}