// JavaScript Document
// Funções para formatação de campos
// Luciana de Paula Brito
// Janeiro de 2004

/*
SQL QUE FAZ A BUSCA DO CONVERTE_CPF_CNPJ
if(isset($_POST["buscacedente"]) && $_POST["buscacedente"]!=-1)
{
	$update = 0;
	$cpf_cnpj =  $_POST["buscacedente"];
	$sql = "Select Nome from Cedente C left join VPessoa V on (C.NumPessoa=V.NumPessoa) where CPF_CNPJ='$cpf_cnpj' and NumFactoring=NumFactoring";
	$resultSet = $database->db_query($sql);
	$tNomeCedente = $resultSet->getFields("Nome");
	$tCedente = $cpf_cnpj;
}*/

function strToNum(campo)
{
	 var vr = campo
	vr = vr.replace( "/", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );	
	vr = vr.replace( ",", "." );
	
	return vr;
}
function EXTENSO(c)
{
	if(c == "" || c < 0 || c >=10000000)
		{
		return(-1);
		}
	else
		{
		if(c == 0)
			{
			return(" ZERO ");
			}
		else
			{
			aUnid = new Array();
			aDezena = new Array();
			aCentena = new Array();
			aGrupo = new Array();
			aTexto = new Array();
			
			aUnid[1] = "UM ";
			aUnid[2] = "DOIS ";
			aUnid[3] = "TRÊS ";
			aUnid[4] = "QUATRO ";
			aUnid[5] = "CINCO ";
			aUnid[6] = "SEIS ";
			aUnid[7] = "SETE ";
			aUnid[8] = "OITO ";
			aUnid[9] = "NOVE ";
			aUnid[10] = "DEZ ";
			aUnid[11] = "ONZE ";
			aUnid[12] = "DOZE ";
			aUnid[13] = "TREZE ";
			aUnid[14] = "QUATORZE ";
			aUnid[15] = "QUINZE ";
			aUnid[16] = "DEZESSEIS ";
			aUnid[17] = "DEZESETE ";
			aUnid[18] = "DEZOITO ";
			aUnid[19] = "DEZENOVE ";

			aDezena[1] = "DEZ ";
			aDezena[2] = "VINTE ";
			aDezena[3] = "TRINTA ";
			aDezena[4] = "QUARENTA ";
			aDezena[5] = "CINQÜENTA ";
			aDezena[6] = "SESSENTA ";
			aDezena[7] = "SETENTA ";
			aDezena[8] = "OITENTA ";
			aDezena[9] = "NOVENTA ";

			aCentena[1] = "CENTO ";
			aCentena[2] = "DUZENTOS ";
			aCentena[3] = "TREZENTOS ";
			aCentena[4] = "QUATROCENTOS ";
			aCentena[5] = "QUINHENTOS ";
			aCentena[6] = "SEISCENTOS ";
			aCentena[7] = "SETECENTOS ";
			aCentena[8] = "OITOCENTOS ";
			aCentena[9] = "NOVECENTOS ";
			var tt;
			if(c.indexOf(".") != -1)
				{
				aGrupo[4] = c.substring(c.indexOf(".")+1,c.length);
				aGrupo[4] = aGrupo[4].substring(0,2);
				ct = c.substring(0,c.indexOf("."));
				tt = "";
				for(f=0;f<(10-ct.length);f++)
				{
					tt += "0";
				}
				tt += ct;
			}
			else
			{
				if(c.indexOf(",") != -1)
					{
					aGrupo[4] = c.substring(c.indexOf(",")+1,c.length);
					aGrupo[4] = aGrupo[4].substring(0,2);
					ct = c.substring(0,c.indexOf(","));
					}
				else
				{
					aGrupo[4] = "00";
					ct = c;
				}
				tt = "";
				for(f=0;f<(10-ct.length);f++)
				{
					tt += "0";
				}
				tt += ct;
			}
			aGrupo[1] = tt.substring(1,4);
			aGrupo[2] = tt.substring(4,7);
			aGrupo[3] = tt.substring(7,10);
			aGrupo[4] = "0"+aGrupo[4];

			for(f=1;f<5;f++)
				{
				cParte = aGrupo[f];
				if(parseFloat(cParte) < 10)
					{
					nTamanho = 1;
					}
				else
					{
					if(parseFloat(cParte) < 100)
 						{
						nTamanho = 2;
						}
					else
						{
						if(parseFloat(cParte) < 1000)
							{
							nTamanho = 3;
							}
						else
							{
							nTamanho = 0;
							}
						}
					}
				aTexto[f] = "";
				if(nTamanho == 3)
					{
					if(cParte.substring(1,3) != "00")
						{
						aTexto[f] += aCentena[cParte.substring(0,1)] + "E ";
						nTamanho = 2;
						}
					else
						{
						if(cParte.substring(0,1) == "1")
							{
							aTexto[f] += "CEM ";
							}
						else
							{
							aTexto[f] += aCentena[cParte.substring(0,1)];
							}
						}
					}
				if(nTamanho == 2)
					{
					if(parseFloat(cParte.substring(1,3)) < 10)
						{
						aTexto[f] += aUnid[cParte.substring(2,3)];
						}
					else
						{
						if(parseFloat(cParte.substring(1,3)) < 20)
							{
							aTexto[f] += aUnid[cParte.substring(1,3)];
							}
						else
							{
							aTexto[f] += aDezena[cParte.substring(1,2)];
							if(cParte.substring(2,3) != "0")
								{
								aTexto[f] += "E ";
								nTamanho = 1;
								}
							}
						}
					}
				if(nTamanho == 1)
					{
					aTexto[f] += aUnid[cParte.substring(2,3)];
					}
				}
			if(parseFloat(aGrupo[1] + aGrupo[2] + aGrupo[3]) == 0 && parseFloat(aGrupo[4]) != 0)
				{
				cFinal = aTexto[4];
				if(parseFloat(aGrupo[4]) == 1)
					{
					cFinal +=  "CENTAVO";
					}
				else
					{
					cFinal +=  "CENTAVOS";
					}
				}
			else
				{
				if(parseFloat(aGrupo[1]) != 0)
					{
					cFinal = aTexto[1];
					if(parseFloat(aGrupo[1]) > 1)
						{
						cFinal += "MILHÕES ";
						}
					else
						{
						cFinal += "MILHÃO ";
						}
					if(parseFloat(aGrupo[2] + aGrupo[3]) == 0)
						{
						cFinal += "DE ";
						}
					else
						{
						cFinal += "E ";
						}
					}
				else
					{
					cFinal = "";
					}
				if(parseFloat(aGrupo[2]) != 0)
					{
					cFinal += aTexto[2] + "MIL ";
					if(parseFloat(aGrupo[3]) != 0)
						{
						cFinal += "E ";
						}
					}
				if(parseFloat(aGrupo[3]) != 0)
					{
					cFinal += aTexto[3];
					}
				if(parseFloat(aGrupo[1] + aGrupo[2] + aGrupo[3]) == 1)
					{
					cFinal += "REAL";
					}
				else
					{
					cFinal += "REAIS";
					}
				if(parseFloat(aGrupo[4]) != 0)
					{
					cFinal += " E "+aTexto[4];
					if(parseFloat(aGrupo[4])==1)
						{
						cFinal += "CENTAVO";
						}
					else
						{
						cFinal += "CENTAVOS";
						}
					}
				}
			return(cFinal);
		}
	}
}
function convertDataDia(date)
{
	dateEnd = '';
	dateEnd = date.substr(0,2);
	return dateEnd;
}	
function convertDataMes(date)
{
	
	dateEnd = '';
	if(date.substring(3,5) == '01') dateEnd = 'janeiro';		
	else if(date.substring(3,5) == '02') dateEnd = 'fevereiro';		
	else if(date.substring(3,5) == '03') dateEnd = 'março';		
	else if(date.substring(3,5) == '04') dateEnd = 'abril';		
	else if(date.substring(3,5) == '05') dateEnd = 'maio';		
	else if(date.substring(3,5) == '06') dateEnd = 'junho';		
	else if(date.substring(3,5) == '07') dateEnd = 'julho';		
	else if(date.substring(3,5) == '08') dateEnd = 'agosto';		
	else if(date.substring(3,5) == '09') dateEnd = 'setembro';		
	else if(date.substring(3,5) == '10') dateEnd = 'outubro';		
	else if(date.substring(3,5) == '11') dateEnd = 'novembro';
	else if(date.substring(3,5) == '12') dateEnd = 'dezembro';		
	
	return dateEnd;
}
function convertDataAno(date)
{	
	dateEnd = '';
	dateEnd = date.substring(6,10);
	return dateEnd;
}

function dataToExtenso(data)
{
	arrayDiaAno = Array("UM ","DOIS ","TRÊS ","QUATRO ","CINCO ","SEIS ","SETE ","OITO ","NOVE ","DEZ "
 		,"ONZE ","DOZE ","TREZE ","QUATORZE ","QUINZE ","DEZESSEIS ","DEZESETE ","DEZOITO ","DEZENOVE "
		,"VINTE ","VINTE E UM ","VINTE E DOIS ","VINTE E TRÊS ","VINTE E QUATRO ","VINTE E CINCO " 
		,"VINTE E SEIS ","VINTE E SETE ","VINTE E OITO ","VINTE E NOVE ","TRINTA ","TRINTA E UM ")
	
	dataMes = convertDataMes(data);
	dataMes = dataMes.toUpperCase();
	dataDia = parseInt(convertDataDia(data));
	dataAno = convertDataAno(data);
	dataAno = parseInt(dataAno.substring(2,4)) - 1;
	var ano;
	if (dataAno==-1)  ano = ''; else ano = "E "+arrayDiaAno[dataAno];  
	dataExtenso="";
	if(dataDia > 1)//escreve dias ao ínves de dia
		dataExtenso = arrayDiaAno[dataDia-1]+"DIAS DO MÊS DE "+dataMes+" DE DOIS MIL "+ano;   
	else//escreve dia, pois o dia é o primeiro do mês
		dataExtenso = arrayDiaAno[dataDia-1]+"DIA DO MÊS DE "+dataMes+" DE DOIS MIL "+ano;
	return dataExtenso;
}

function roundFloat(num)
{
	var negativo = num<0;
	if(negativo) num = -num;
	var teste = new String(num);
	
	decimal = (teste.length)-teste.indexOf(".");

	if(teste.indexOf(".")==-1)
	{	
		teste = teste + ".00";
	}
	else if(teste.length-teste.indexOf(".")>2)
	{
		//arredonda o valor de teste para cima (round up) a partir da terceira casa decimal
		c = teste.substring(teste.indexOf(".")+3, teste.indexOf(".")+4);	//terceiro depois da virgula
			
		b = teste.substring(teste.indexOf(".")+2, teste.indexOf(".")+3); //segundo depois da virgula	
			
		a = teste.substring(teste.indexOf(".")+1, teste.indexOf(".")+2); //primeiro depois da virgula	
		
		if(b==9)
		{
			if(c>4)
			{
				a++;
				b=0;
			}			
		}	
		else
		{
			temp = b+"."+c;
			b = Math.round(temp);
		}	
		
		if(a==10)
		{
			decimal = teste.substring(0, teste.indexOf(".")); //primeiro depois da virgula
			decimal++;	
			teste = decimal+".00";			
			return teste;
		}	

							
		teste = teste.substring(0, teste.indexOf(".")+1)+a+b;		
	}
	else if((teste.length)-teste.indexOf(".")==2)
	{	
		teste = teste + "0";
	}	
	
	if(negativo) return "-" + teste;
	return teste;
}


//apenas converte um numero para o formato CPF ou CNPJ
function Converte_CPF_CNPJ_3(CPF_CNPJ)
{
	if(CPF_CNPJ.value.length==11)
	{
		temp = new String(CPF_CNPJ.value);
	
		doc = temp.substring(0, 3);	
		
			
		doc = doc + ".";
		doc = doc + temp.substring(3,6);
		doc = doc + ".";
		doc = doc + temp.substring(6,9);
		doc = doc + "-";
		doc = doc + temp.substring(9,11);			

		if(ValidarCampo(CPF_CNPJ, "CPF/CNPJ", 0, 8))
		{
			CPF_CNPJ.value = doc;
			return	true
		}
		else
			return false
		
	}
	else if(CPF_CNPJ.value.length==14)
	{
		temp = new String(CPF_CNPJ.value);
		
		if(temp.substring(3,4)!=".")
		{
			doc = temp.substring(0, 2);		
			doc = doc + ".";
			doc = doc + temp.substring(2,5);
			doc = doc + ".";
			doc = doc + temp.substring(5,8);
			doc = doc + "/";
			doc = doc + temp.substring(8,12);
			doc = doc + "-";
			doc = doc + temp.substring(12,14);
			
			if(ValidarCampo(CPF_CNPJ, "CPF/CNPJ", 0, 4))
			{
				CPF_CNPJ.value = doc;
				return	true
			}
			else
				return false
		}
		else //cpf jah no formata xxx.xxx.xxx-xx
		{
			if(ValidarCampo(CPF_CNPJ, "CPF/CNPJ", 0, 8)) 
			{
				return	true
			}
			else
				return false
			}					
	}	
	else if(CPF_CNPJ.value.length > 1)
	{
		//cnpj no formato xx.xxx.xxx / xxxx-xx
		if(CPF_CNPJ.value.length == 18)
		{
			if(ValidarCampo(CPF_CNPJ, "CPF/CNPJ", 0, 4))
			{
				return	true
			}
			else
				return false	
		}	

		if(!CPF_CNPJ.value=="")
		{
			alert("CPF/CNPJ Inválido!");
		}
		return false			
	}

	if(!CPF_CNPJ.value=="")
	{
		alert("CPF/CNPJ Inválido!");
	}
	return false

}

function Converte_CPF_CNPJ(CPF_CNPJ, tratadorResposta)
{
	if(CPF_CNPJ.value.length==11)
	{
		temp = new String(CPF_CNPJ.value);
	
		doc = temp.substring(0, 3);	
		
			
		doc = doc + ".";
		doc = doc + temp.substring(3,6);
		doc = doc + ".";
		doc = doc + temp.substring(6,9);
		doc = doc + "-";
		doc = doc + temp.substring(9,11);
		CPF_CNPJ.value = doc;
		
		if(ValidarCampo(CPF_CNPJ, "CPF/CNPJ", 0, 8))
		{
			if(tratadorResposta == null) {
				document.forms[0].buscacedente.value = doc;
				document.forms[0].submit();
			} else {
				eval(tratadorResposta+"(CPF_CNPJ, doc)");
			}
		}
		
	}
	else if(CPF_CNPJ.value.length==14)
	{
		temp = new String(CPF_CNPJ.value);
		
		if(temp.substring(3,4)!=".")
		{
			doc = temp.substring(0, 2);		
			doc = doc + ".";
			doc = doc + temp.substring(2,5);
			doc = doc + ".";
			doc = doc + temp.substring(5,8);
			doc = doc + "/";
			doc = doc + temp.substring(8,12);
			doc = doc + "-";
			doc = doc + temp.substring(12,14);
			CPF_CNPJ.value = doc;						
			
			if(ValidarCampo(CPF_CNPJ, "Cedente", 0, 4))
			{
				if(tratadorResposta == null) {
					document.forms[0].buscacedente.value = doc;
					document.forms[0].submit();
				} else {
					eval(tratadorResposta+"(CPF_CNPJ, doc)");
				}
			}
		}
		else//cpf jah no formata xxx.xxx.xxx-xx
		{
			if(ValidarCampo(CPF_CNPJ, "CPF/CNPJ", 0, 8)) 
			{
				if(tratadorResposta == null) {
					document.forms[0].buscacedente.value = CPF_CNPJ.value;		
					document.forms[0].submit();
				} else {
					eval(tratadorResposta+"(CPF_CNPJ, CPF_CNPJ.value)");
				}
				return	true
			}
			else
				return false			
		}			
	}	
	else if(CPF_CNPJ.value.length > 1)	
	{
		//cnpj no formato xx.xxx.xxx / xxxx-xx
		if(CPF_CNPJ.value.length == 18)
		{
			if(ValidarCampo(CPF_CNPJ, "CPF/CNPJ", 0, 4))
			{
				if(tratadorResposta == null) {
					document.forms[0].buscacedente.value = CPF_CNPJ.value;		
					document.forms[0].submit();
				} else {
					eval(tratadorResposta+"(CPF_CNPJ, CPF_CNPJ.value)");
				}				
				
				return	true
			}
			else
				return false	
		}		
		alert("CPF/CNPJ Inválido!");
		CPF_CNPJ.focus();
		CPF_CNPJ.select();
				
	}		
}

function Converte_CPF_CNPJ2(CPF_CNPJ)
{
	if(CPF_CNPJ.value.length==11)
	{
		temp = new String(CPF_CNPJ.value);
	
		doc = temp.substring(0, 3);	
		
			
		doc = doc + ".";
		doc = doc + temp.substring(3,6);
		doc = doc + ".";
		doc = doc + temp.substring(6,9);
		doc = doc + "-";
		doc = doc + temp.substring(9,11);
		CPF_CNPJ.value = doc;
		document.forms[0].buscasacado.value = doc;
		
		
		if(ValidarCampo(CPF_CNPJ, "CPF/CNPJ", 0, 8))
			document.forms[0].submit();
		
	}
	else if(CPF_CNPJ.value.length==14)
	{
		temp = new String(CPF_CNPJ.value);
		
		if(temp.substring(3,4)!=".")
		{
			doc = temp.substring(0, 2);		
			doc = doc + ".";
			doc = doc + temp.substring(2,5);
			doc = doc + ".";
			doc = doc + temp.substring(5,8);
			doc = doc + "/";
			doc = doc + temp.substring(8,12);
			doc = doc + "-";
			doc = doc + temp.substring(12,14);
			CPF_CNPJ.value = doc;
			//alert(doc);
			document.forms[0].buscasacado.value = doc;		
			CPF_CNPJ.value = doc;
			
			if(ValidarCampo(CPF_CNPJ, "Sacado", 0, 4))
				document.forms[0].submit();
		}
		else //cpf jah no formata xxx.xxx.xxx-xx
		{	
			if(ValidarCampo(CPF_CNPJ, "CPF/CNPJ", 0, 8)) 
			{
				document.forms[0].buscasacado.value = CPF_CNPJ.value;		
				document.forms[0].submit();
			}
		}	
	}
	else if(CPF_CNPJ.value.length > 1)
	{
		//cnpj no formato xx.xxx.xxx / xxxx-xx
		if(CPF_CNPJ.value.length == 18)
		{
			if(ValidarCampo(CPF_CNPJ, "Sacado", 0, 4))
			{
				document.forms[0].buscasacado.value = CPF_CNPJ.value;	
				document.forms[0].submit();
			}
		}
	}
}

function CharUpper(campo)
{
	tecla = event.keyCode;
	Vchar = String.fromCharCode(tecla);
	er = /^[a-z]|[A-Z]$/;
	if (er.test(Vchar) && campo.value.length < 3)
	{	
		campo.value += Vchar.toUpperCase();
		event.returnValue = false;
	}
	else
		event.returnValue = false;
}	

function CharUpper2(campo,evt)
{
	var tecla = (navigator.appName.indexOf("Netscape")!=-1) ? evt.which : evt.keyCode;
	V1 = String.fromCharCode(tecla);
	if (tecla == 0)
		tecla = evt.keyCode;
	Vchar = String.fromCharCode(tecla);
	er = /^[a-z]|([A-Z])$/;
	if (er.test(Vchar)){
		//campo.value = campo.value+Vchar.toUpperCase();
		insertAtCaret(campo, Vchar.toUpperCase())
	}
	else if (tecla == 8 || tecla==37 || tecla == 39 || (tecla == 46 && V1!= '.'))
		return Vchar;
	return false;
}	
function FormatarCNPJ(campo)
{
	tecla = event.keyCode;
	Vchar = String.fromCharCode(tecla);
	size = campo.value.length;
	er = /^[0-9]$/;
	if (!er.test(Vchar))
		event.returnValue = false;
	else
	{
		if (size == 2 || size == 6)
			campo.value += '.';
		if (size == 10)
			campo.value += '/';
		if (size == 15)
			campo.value += '-';
		if (size > 18)
			event.returnValue = false;
	}
}

function FormatarCPF(campo)
{
	tecla = event.keyCode;
	Vchar = String.fromCharCode(tecla);
	size = campo.value.length;
	er = /^[0-9]$/;
	if (!er.test(Vchar))
		event.returnValue = false;
	else
	{
		if (size == 3 || size == 7)
			campo.value += '.';
		if (size == 11)
			campo.value += '-';
		if (size > 13)
			event.returnValue = false;
	}
}

function FormatarCEP(campo)
{
	tecla = event.keyCode;
	Vchar = String.fromCharCode(tecla);
	size = campo.value.length;
	er = /^[0-9]$/;
	if (!er.test(Vchar))
		event.returnValue = false;
	else
	{
		if (size == 5)
			campo.value += '-';
		if (size > 9)
			event.returnValue = false;
	}
}

function FormatarValorPosNeg(tammax,teclapres, campo)
{
	vr = event.srcElement.value;
	var tecla = teclapres.keyCode;
	var negativo = (vr.length!=0 && campo.value.substring(0,1)=="-");
	Vchar = String.fromCharCode(tecla);
	er = /-?^[0-9]/;
	if (!er.test(Vchar))
		event.returnValue = false;
	if(Vchar=="-" && event.srcElement.value=='')	
		event.srcElement.value = "-";
	else
	{
		FormatarValor(tammax,teclapres);
		if(negativo)
			event.srcElement.value = "-"+event.srcElement.value;
	}
}

function FormatarValor(tammax,teclapres)
{
	var tecla = teclapres.keyCode;
	Vchar = String.fromCharCode(tecla);
	er = /^[0-9]/;
	if (!er.test(Vchar))
		event.returnValue = false;
	vr = event.srcElement.value;
	vr = vr.replace( "/", "" );
	vr = vr.replace( ",", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( "-", "" );	
	if (vr.length > 0)
	{
		vr = parseInt(vr,10);
	}
	vr = '' + vr
	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 )
		{
			if (tam == 1)
			{
				event.srcElement.value = "0,0" + vr ; 
			}
			else if (tam == 2)
			{
				event.srcElement.value = "0," + vr ; 
			}
			else
			{
				event.srcElement.value = "" ; 
			}
		}
	 	if ((tam > 2) && (tam <= 5))
		{
	 		event.srcElement.value = vr.substr(0, tam - 2) + ',' + vr.substr(tam - 2, tam); 
		}
	 	if ((tam >= 6) && (tam <= 8))
		{
	 		event.srcElement.value = vr.substr(0, tam - 5) + '.' + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam); 
		}
	 	if ((tam >= 9) && (tam <= 11))
		{
	 		event.srcElement.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))
		{
	 		event.srcElement.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))
		{
	 		event.srcElement.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 FormatarValor2(campo,tammax,evt)
{
	var tecla = (navigator.appName.indexOf("Netscape")!=-1) ? evt.which : evt.keyCode;
	V1 = String.fromCharCode(tecla);
	if (tecla == 0)
		tecla = evt.keyCode;
	Vchar = String.fromCharCode(tecla);
	vr = campo.value;
	tam = vr.length;
	if (tecla == 8 || tecla==37 || tecla == 39 || (tecla == 46 && V1!= '.'))
		return Vchar; 
	if (tecla == 8 || (tecla == 46 && V1!= '.'))
		tam = tam-1;
	if (tam >= tammax)
		return false;
	er = /^[0-9]/;
	if (er.test(Vchar))
	{
		vr = vr.replace( "/", "" );
		vr = vr.replace( ",", "" );
		vr = vr.replace( ".", "" );
		vr = vr.replace( ".", "" );
		vr = vr.replace( ".", "" );
		vr = vr.replace( ".", "" );
		vr = vr.replace( "-", "" );	
		if (vr.length > 0)
		{
			vr = parseInt(vr,10);
		}
		vr = String(vr);
		if (tam < tammax && tecla != 8)
		{
			tam = vr.length + 1;
		}
		if ( tam <= 2 )
		{
			if (tam == 1)
			{
				campo.value = "0,0" + vr ; 
			}
			else if (tam == 2)
			{
				campo.value = "0," + vr ; 
			}
			else
			{
				campo.value = "" ; 
			}
		}
	 	if ((tam > 2) && (tam <= 5))
		{
	 		campo.value = vr.substr(0, tam - 2) + ',' + vr.substr(tam - 2, tam); 
		}
	 	if ((tam >= 6) && (tam <= 8))
		{
	 		campo.value = vr.substr(0, tam - 5) + '.' + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam); 
		}
	 	if ((tam >= 9) && (tam <= 11))
		{
	 		campo.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))
		{
	 		campo.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))
		{
	 		campo.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) ;
		}
	}
	else return false;
}

//formatar o valor com ponto ao invés de vírgula para separar casas decimais
function FormatarValor3(tammax,teclapres)
{
	var tecla = teclapres.keyCode;
	Vchar = String.fromCharCode(tecla);
	er = /^[0-9]/;
	if (!er.test(Vchar))
		event.returnValue = false;
	vr = event.srcElement.value;
	vr = vr.replace( "/", "" );
	vr = vr.replace( ",", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( "-", "" );	
	if (vr.length > 0)
	{
		vr = parseInt(vr,10);
	}
	vr = '' + vr
	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 )
		{
			if (tam == 1)
			{
				event.srcElement.value = "0.0" + vr ;
			}
			else if (tam == 2)
			{
				event.srcElement.value = "0." + vr ; 
			}
			else
			{
				event.srcElement.value = "" ; 
			}
		}
	 	if (tam > 2 && tam <= 17)
		{
	 		event.srcElement.value = vr.substr(0, tam - 2) + '.' + vr.substr(tam - 2, tam); 
		}
	}		
}

var i=0;
function FormatarData(campo)
{
	tecla = event.keyCode;
	Vchar = String.fromCharCode(tecla);
	size = campo.value.length;
	er = /^[0-9]$/;
	if (!er.test(Vchar))
		event.returnValue = false;
	else
	{
		if (size == 2 || size == 5)
			campo.value += '/';
		
		if (size > 9)
			event.returnValue = false;
	}
}

function FormatarData2(campo,evt)
{
	var tecla = (navigator.appName.indexOf("Netscape")!=-1) ? evt.which : evt.keyCode;
	V1 = String.fromCharCode(tecla);
	if (tecla == 0)
		tecla = evt.keyCode;
	Vchar = String.fromCharCode(tecla);
	size = campo.value.length;
	if (tecla>47 && tecla <58)
	{
		if (size == 2 || size == 5)
			campo.value += '/';
		if (size > 9)
			return false;
		return Vchar;
	}
	else if (tecla == 8 || tecla==37 || tecla == 39 || (tecla == 46 && V1!= '.'))
		return Vchar;
	else
		return false;
}


function FormatarDataMes(campo)
{
	tecla = event.keyCode;
	Vchar = String.fromCharCode(tecla);
	size = campo.value.length;
	er = /^[0-9]$/;
	if (!er.test(Vchar))
		event.returnValue = false;
	else
	{
		if (size == 2 )
			campo.value += '/';
		
		if (size > 7)
			event.returnValue = false;
	}
}


function FormatarHora(campo)
{
	tecla = event.keyCode;
	Vchar = String.fromCharCode(tecla);
	size = campo.value.length;
	er = /^[0-9]$/;
	if (!er.test(Vchar))
		event.returnValue = false;
	else
	{
		if (size == 2)
			campo.value += ':';
		
		if (size > 4)
			event.returnValue = false;
	}
}

/***************************************************************************************/
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;
}

/***************************************************************************************/

function FormatarValorUp(tammax,teclapres)
{
	var tecla = teclapres.keyCode;
	Vchar = String.fromCharCode(tecla);
	er = /^[0-9]/;
	if (!er.test(Vchar))
		event.returnValue = false;
	vr = event.srcElement.value;
	vr = vr.replace( "/", "" );
	vr = vr.replace( ",", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	if (vr.length > 0)
	{
		vr = parseInt(vr,10);
	}
	vr = '' + vr
	tam = vr.length+1;
	if (tam < tammax && tecla != 8)
	{
		tam = vr.length;
	}
	if (tecla == 8)
	{
		tam = tam - 1;
	}
	if (tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105)
	{
		if ( tam <= 2 )
		{
			if (tam == 1)
			{ 
				event.srcElement.value = "0,0" + vr ; 
			}
			else if (tam == 2)
			{ 
				event.srcElement.value = "0," + vr ; 
			}
			else
			{
				event.srcElement.value = "" ; 
			}
		}
	 	if ((tam > 2) && (tam <= 5))
		{
	 		event.srcElement.value = vr.substr(0, tam - 2) + ',' + vr.substr(tam - 2, tam); 
		}
	 	if ((tam >= 6) && (tam <= 8))
		{
	 		event.srcElement.value = vr.substr(0, tam - 5) + '.' + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam); 
		}
	 	if ((tam >= 9) && (tam <= 11))
		{
	 		event.srcElement.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))
		{
	 		event.srcElement.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))
		{
	 		event.srcElement.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 num2str(campo)
{
	vr = campo.value;
	vr = vr.replace( "/", "" );
	vr = vr.replace( ",", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );

	if (vr.length > 0)
	{
		vr = parseInt(vr,10);
	}
	
	vr = '' + vr
	tam = vr.length;

	if ( tam <= 2 )
	{
		if (tam == 1)
		{ 
			campo.value = "0,0" + vr ; 
		}
		else if (tam == 2)
		{ 
			campo.value = "0," + vr ; 
		}
		else
		{
			campo.value = "" ; 
		}
	}
	if ((tam > 2) && (tam <= 5))
	{
		campo.value = vr.substr(0, tam - 2) + ',' + vr.substr(tam - 2, tam); 
	}
	if ((tam >= 6) && (tam <= 8))
	{
		campo.value = vr.substr(0, tam - 5) + '.' + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam); 
	}
	if ((tam >= 9) && (tam <= 11))
	{
		campo.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))
	{
		campo.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))
	{
		campo.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) ;
	}
	return campo.value;
}

function str2num(campo)
{
	vr = campo.value;
	
	vr = vr.replace( "/", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ",", "." );
	
	campo.value = vr;
	return vr;
}

function strToNumvalue(value)
{
	vr = value;	
	var neg = vr.substring(0,1)=="-";
	if(neg) vr = vr.substring(1, vr.length);
	vr = vr.replace( "/", "" );
	
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );	
	vr = vr.replace( ",", "." );
	
	if(neg) return "-" + vr;
	return vr;
}

function numToStrvalue(numero)
{
	var num = numero.replace(/\./g,'');
    tam = num.toString().length
 
	isNegative = (num.toString().substring(0,1)=='-') 
	num = num.replace(/([a-z])|([A-Z])|(\,)|(\-)/g,'')
	num = num.replace(' ','')
	tam = num.toString().length; 
 
	if (tam > 0)
	{
		num = parseInt(num,10);

	}
	tam = num.toString().length;
 
	if (tam > 2)
	{
 		dec = num.toString().substring(tam-2,tam)
	 	num = num.toString().substring(0,tam-2)
 	 	
 		if(!isNaN(num))
		{
    	  num = num.toString().split('').reverse().join('').replace(/(?=\d*\.?)(\d{3})/g,'$1.').split('').reverse().join('').replace(/^[\.]/,'');
		  if (isNegative)
		      return '-'+num+','+dec;
		  
		  else
	  	  return num+','+dec;
    	}
		else if(num.toString().substring(tam-1,tam)=='-')
		{
			return '-'+numero.substring(0,numero.length-1);
		}
	    else
	    {
	        return numero.substring(0,numero.length-1);
	    }
	}
	else 
	{
		if (tam == 1)
		{
			if (isNegative)
			{
		    	return "-0,0" + num ; 

	  		}
	  		else
	  	 		return "0,0" + num ; 	
		}
		else if (tam == 2)
		{
			if (isNegative)
				return  "-0," + num ; 	
			else
				return  "0," + num ; 
		}
		else
		{
			return  "" ; 
		}
	}  		
}


String.prototype.superTrim = superTrim; //Implementa o método superTrim() no objeto String.
function superTrim()
{ 
	return( this.replace( /^\s+|\s+$/gi, "" ).replace( /\s{2,}/gi, " " ) ) 
}


function ImpedeCaracteresIndesejados(campo)
{
	tecla = event.keyCode;
	Vchar = String.fromCharCode(tecla);
	//alert(Vchar);
	if(Vchar == "'")
		event.returnValue = false;
	//campo.value = campo.value.replace( "'", "" );
}


function RemoveApostrofo(campo){
	//window.alert(campo.value);
	//if (Vchar == "'")
	campo.value = campo.value.replace(/'/gi,"");
}


function insertAtCaret(obj, text)
{
	if(document.selection)
	{
		obj.focus();
		var orig = obj.value.replace(/\r\n/g, "\n");
		var range = document.selection.createRange();

		if(range.parentElement() != obj)
		{
			return false;
		}

		range.text = text;
	
		var actual = tmp = obj.value.replace(/\r\n/g, "\n");

		for(var diff = 0; diff < orig.length; diff++)
		{
			if(orig.charAt(diff) != actual.charAt(diff)) break;
		}

		for(var index = 0, start = 0; 
			tmp.match(text) 
				&& (tmp = tmp.replace(text, "")) 
				&& index <= diff; 
			index = start + text.length
			)
		{
			start = actual.indexOf(text, index);
		}
	}
	else if(obj.selectionStart)
	{
		var start = obj.selectionStart;
		var end   = obj.selectionEnd;

		obj.value = obj.value.substr(0, start) + text + obj.value.substr(end, obj.value.length);
	}

	if(start != null)
	{
		setCaretTo(obj, start + text.length);
	}
	else
	{
		obj.value += text;
	}
}

function setCaretTo(obj, pos)
{
	if(obj.createTextRange)
	{
		var range = obj.createTextRange();
		range.move('character', pos);
		range.select();
	}
	else if(obj.selectionStart)
	{
		obj.focus();
		obj.setSelectionRange(pos, pos);
	}
}