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);
		inputAux = input.form[(getIndex(input)+1) % input.form.length];
		inputAux.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;
}

function IsNumero(obj,event) {
	var str = obj.value;
	var Tecla = event.which;
	if(Tecla == null)
	Tecla = event.keyCode;
	if ( Tecla < 48 || Tecla > 59 ){
		event.returnValue = false;
		return false;
	}
	event.returnValue = true;
	return true;
}

function FormataPlaca(obj, teclapres) {

	var tecla = teclapres.keyCode;

	tam = 0;

	if (tecla == 8 || tecla == 46) { tam = tam - 1 ; return; }

	vr = obj.value;

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

	tam = vr.length + 1;

	if ( tam > 3 && tam < 5) { obj.value = vr.substr(0, 3) + '-' + vr.substr(4, 4); }
}

function FormataTel(obj, teclapres) {

	var tecla = teclapres.keyCode;

	tam = 0;
	if (tecla == 8 || tecla == 46) { tam = tam - 1 ; 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); }

}

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

function FormataCpf(campo, teclapres) {
	var tecla = teclapres.keyCode;
	var vr    = event.srcElement.value;
	
	aux1 = /\./gi;
	aux2 = /\-/gi;
	vr = vr.replace( aux1, '');
	vr = vr.replace( aux2, '');

	tam = vr.length;


	if (tecla == 8 || tecla == 46) { tam = tam - 1 ; return; }		
	
	//if (tam > tamCampoCPFCNPJ) return false;
	
	if (tecla != 8) tam = vr.length + 1
	else tam = tam - 1

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

function FormataCNPJ(campo, teclapres) 
{ 
	var tecla = teclapres.keyCode;
	var vr    = campo.value; 

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

	//if (tam > tamCampoCPFCNPJ) return false;	
	
	if (tecla != 8) tam = vr.length + 1
	else tam = tam - 1	

	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;

	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 || tecla == 46) { tam = tam - 1 ; return; }

	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;

	aux1 = /\//gi;

	if (tecla == 8 || tecla == 46) { tam = tam - 1 ; return; }

	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 (tecla == 8 || tecla == 46) { tam = tam - 1 ; 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 validaTecla(campo, event, type) {
	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 || tecla == 0) { return true;  }
	return (isNum(key, type));
}

function isNum(caractere, type) {
	     if (type == "number")  var strValidos = "0123456789";
	else if (type == "phone")   var strValidos = "0123456789+()- ";
	else if (type == "alfanum") var strValidos = "0123456789ABCDEFGHJILMNOPQRSTUXZYWKabcdefghijlmnopqrstuvxzkyw";
	if (strValidos.indexOf(caractere) == -1) { return false; }
	return true;
}

function cNumero(vr) {
	vr  = 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(obj) {
	vr  = obj.value;
	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);
		if (auxNumero == 0) obj.value = '';
	} else if (evento.type == "blur")
	{
		if (obj.value == "") obj.value = '0,00';
		else obj.value = cNumero(ucNumero(obj));
	}
}
