function FormataValor(tammax,teclapres,obj) {

	// OnKeyPress="onlyNumber()" onKeyDown="JavaScript:FormataValor(13,event, this)"
	// <script type="text/javascript" src=".\AGFmoney.js"></script>


	var tecla = teclapres.keyCode;
	vr = obj.value;
	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 < 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 FormataValor3d(tammax,teclapres,obj) {

	// OnKeyPress="onlyNumber()" onKeyDown="JavaScript:FormataValor3d(13,event, this)"
	// <script type="text/javascript" src=".\AGFmoney.js">


	var tecla = teclapres.keyCode;
	vr = obj.value;
	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 < 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 <= 3 ){ 
	 		obj.value = vr ; }
	 	if ( (tam > 3) && (tam <= 5) ){
	 		obj.value = vr.substr( 0, tam - 3 ) + ',' + vr.substr( tam - 3, tam ) ; }
	 	if ( (tam >= 6) && (tam <= 8) ){
	 		obj.value = vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 3, 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 - 3, 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 - 3, 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 - 3, tam ) ;}		
	}
}

function onlyNumber(){

if ((event.keyCode<48)||(event.keyCode>57))
event.returnValue=false;

} 


/*
function FormataValorEx(obj)
{
	var pos_decimal = obj.value.lastIndexOf(",")

	if (pos_decimal==-1) // Não tem separador decimal
		obj.value += ",00";
	else
	{
		//alert('obj.value.length:'+obj.value.length+'\npos_decimal:'+pos_decimal);
		if (obj.value.length-pos_decimal==2)
			obj.value += "0";
		if (obj.value.length-pos_decimal==1)
			obj.value += "00";
	}

	FormataValorEx2(obj);
}


function FormataValorEx2(obj)
{
	var tmp = obj.value;

	tmp = replaceEx(tmp, ",", "");
	tmp = replaceEx(tmp, ".", "");

	if (tmp.length <= 2)
	{
		if (tmp.length == 2)
			obj.value = "0," + tmp;
		else if (tmp.length == 1)
			obj.value = "0,0" + tmp;
		else if (tmp.length == 0)
			obj.value = "";

		return;
	}

	var ret="";

	var dec = "," + tmp.substring(tmp.length-2, tmp.length);
	tmp = tmp.substring(0, tmp.length-2);

	for(i=0; i<tmp.length; i++)
	{
		if (i>=3 && i%3==0)
			ret = "." + ret;

		ret = tmp.substring(tmp.length-(i+1), tmp.length-i) + ret;
	}

	obj.value = ret + dec;
}
*/

function FormataValorEx(obj)
{
	formataValorDecimal(obj, 2);
}

//
// formataValorDecimal(TEXTBOX, número de decimais)
//
// Formata o valor de TEXTBOX com decimais especificados pelo parâmetro de entrada.
// A formatação é feita no OnBlur do TEXTBOX. O tamanho do valor formatado é
// especificado pelo maxLength do TEXTBOX. Se não fornecido, o valor decimal é
// acrescentado ao valor do TEXTBOX
// ex.:
// maxLength = 6
// numdec = 2
// valor digitado = 123456
// valor formatado= 123,45
//
function formataValorDecimal(obj, numdec)
{
	// { Trata zeros à esquerda e caracteres inválidos (p.ex. inseridos com Paste)
	var tmp = "";
	for(i=0;i<obj.value.length;i++)
	{
		if ((obj.value.charCodeAt(i)>=48/*(0)*/ && obj.value.charCodeAt(i)<=57/*(9)*/) || obj.value.charCodeAt(i)==44/*(,)*/)
		{
			tmp += obj.value.charAt(i);
			if (tmp.charCodeAt(0)==48)
				tmp = "";
		}
	}
	obj.value = tmp;
	// }
	
	// { Trata decimal
	var pos_decimal = obj.value.lastIndexOf(",");
	if (pos_decimal==-1)
	{
		if (obj.value.length==0)
			obj.value = "0";
			
		obj.value += ",";
		for(i=0;i<numdec;i++)
			obj.value += "0";
	}
	else
	{
		var qt = numdec-(obj.value.length-(pos_decimal+1));
		for(i=0;i<qt;i++)
			obj.value += "0";
		
		if (obj.value.substring(0,1)==",")
			obj.value = "0" + obj.value;
	}
	// }

	formataValorDecimalAux(obj, numdec);
}

function formataValorDecimalAux(obj, numdec)
{
	var maxLength = obj.maxLength;
	if (maxLength<0)
		maxLength=2147483647;
	var tmp = obj.value;

	tmp = replaceEx(tmp, ",", "");
	tmp = replaceEx(tmp, ".", "");
	
	var ret="";
	var dec = "," + tmp.substring(tmp.length-numdec, tmp.length);
	tmp = tmp.substring(0, tmp.length-numdec);

	for(i=0; i<tmp.length; i++)
	{
		if (i>=3 && i%3==0)
			ret = "." + ret;

		ret = tmp.substring(tmp.length-(i+1), tmp.length-i) + ret;
	}

	aux = ret + dec;

	// verifica se valor ultrapassou o limite
	if (aux.length>maxLength)
	{
		aux = aux.substring(0, aux.length-1);
		obj.value = aux;	
		formataValorDecimalAux(obj, numdec);
	}
	
	obj.value = aux;
}

function replaceEx(valor, c1, c2)
{
	while(valor.indexOf(c1)!=-1)
		valor = valor.replace(c1, c2);

	return valor;
}

function onlyNumberEx()
{
	if ((event.keyCode<48 || event.keyCode>57) && event.keyCode!=44 && event.keyCode!=46)
		event.returnValue=false;
}

function ConvertBr2EnDecimal(valor)
{
	var tmp = valor;
	
	tmp = replace(tmp, "[.]", "");
	tmp = replace(tmp, "[,]", ".");
	
	return parseFloat(tmp);
}

function ConvertDecimalBr2Int(valor)
{
	var tmp = valor;
	
	tmp = replace(tmp, "[.]", "");
	tmp = replace(tmp, "[,]", "");
	
	return parseInt(tmp);
}

function ConvertEn2BrDecimal(valor)
{
	var tmp = valor;
	var posdec = 0;
	var dec = "";
	var ret = "";
	var intr = "";
	
	posdec = tmp.indexOf(".");
	if (posdec==-1)
	{
		dec = ",00";
		intr = valor;
	}
	else
	{
		dec = "," + tmp.substring(posdec+1, tmp.length);
		if (dec.length<3)
			dec += "0";
			
		intr = tmp.substr(0, posdec);
	}
	
	for(i=0; i<intr.length; i++)
	{
		if (i>=3 && i%3==0)
			ret = "." + ret;

		ret = intr.substring(intr.length-(i+1), intr.length-i) + ret;
	}

	
	return ret + dec;
}

function round(val, ndec)
{
    var decfactor = Math.pow(10, ndec);
    
    return Math.round(val * decfactor) / decfactor;
}

function formataDecimalEn2BrStr(val)
{
	if (val=="")
		return "0,00";

	var txt = String(val);
	var dec = "";
	var int = "";
	
	if (txt.indexOf(".")<0)
		txt += ",00";
	else
	{
		txt = replace(txt, "[.]", ",");
		if (txt.indexOf(",")==txt.length-2)
			txt += "0";
		if (txt.indexOf(",")==0)
			txt = "0" + txt;
	}
	
	int = txt.substring(0, txt.length-3)
	dec = txt.substring(txt.length-3, txt.length);

	var ret = "";
	for(i=0; i<int.length; i++)
	{
		if (i>=3 && i%3==0)
			ret = "." + ret;

		ret = int.substring(int.length-(i+1), int.length-i) + ret;
	}
    
	return ret + dec;			
}

function formataInt2DecimalBrStr(val)
{
	if (val=="")
		return "0,00";

	var txt = String(val);
	var dec = "";
	var int = "";
	
	int = txt.substring(0, txt.length-2)
	dec = ',' + txt.substring(txt.length-2, txt.length);

	var ret = "";
	for(i=0; i<int.length; i++)
	{
		if (i>=3 && i%3==0)
			ret = "." + ret;

		ret = int.substring(int.length-(i+1), int.length-i) + ret;
	}
    
	return ret + dec;
}

function replace(inStr, oldStr, newStr)
{
    var outStr = "";
	inStr = String(inStr);
	if (inStr != "")
	{
		var regexp = new RegExp(oldStr, "g"); /*g: global matching*/
		outStr = inStr.replace(regexp, newStr);
	}
	
	return outStr;
}