function arredonda(valor, casas){
   var novo = Math.round(valor * Math.pow(10,casas)) / Math.pow(10,casas);
   return(novo);
}

function converteFloatMoeda(valor){
      var inteiro = null, decimal = null, c = null, j = null;
	var aux = new Array();
	valor = ""+valor;
	c = valor.indexOf(".",0);
	//encontrou o ponto na string
	if(c > 0){
		//separa as partes em inteiro e decimal
		inteiro = valor.substring(0,c);
		decimal = valor.substring(c+1,valor.length);
	}else{
		inteiro = valor;
	}

	//pega a parte inteiro de 3 em 3 partes
	for (j = inteiro.length, c = 0; j > 0; j-=3, c++){
		aux[c]=inteiro.substring(j-3,j);
	}

	//percorre a string acrescentando os pontos
	inteiro = "";
	for(c = aux.length-1; c >= 0; c--){
		inteiro += aux[c]+'.';
	}
	//retirando o ultimo ponto e finalizando a parte inteiro

	inteiro = inteiro.substring(0,inteiro.length-1);

	decimal = parseInt(decimal);
	if(isNaN(decimal)){
		decimal = "00";
	}else{
		decimal = ""+decimal;
		if(decimal.length === 1){
			decimal = decimal+"0";
		}
	}

	valor = inteiro+","+decimal;
	return valor;

}

function moedaToFloat(valor){
	if(valor === ""){
		valor = 0;
	}else{
		valor = valor.replace(".","");
		valor = valor.replace(",",".");
		valor = parseFloat(valor);
	}
	return valor;
}

//////////////////////////////////////////////////////////////////////////////////
// * função para formatação de valores monetários retirada de
// * http://jonasgalvez.com/br/blog/2003-08/egocentrismo
////////////////////////////////////////////////////////////////////////////////
			function formatamoney(c) {
				var t = this; if(c == undefined) c = 2;
				var p, d = (t=t.split("."))[1].substr(0, c);
				for(p = (t=t[0]).length; (p-=3) >= 1;) {
						t = t.substr(0,p) + "." + t.substr(p);
				}
				return t+","+d+Array(c+1-d.length).join(0);
			}

			String.prototype.formatCurrency=formatamoney

			function demaskvalue(valor, currency){
			/*
			* Se currency é false, retorna o valor sem apenas com os números. Se é true, os dois últimos caracteres são considerados as
			* casas decimais
			*/
			var val2 = '';
			var strCheck = '0123456789';
			var len = valor.length;
				if (len== 0){
					return 0.00;
				}

				if (currency ==true){
					/* Elimina os zeros à esquerda
					* a variável  <i> passa a ser a localização do primeiro caractere após os zeros e
					* val2 contém os caracteres (descontando os zeros à esquerda)
					*/

					for(var i = 0; i < len; i++)
						if ((valor.charAt(i) != '0') && (valor.charAt(i) != ',')) break;

					for(; i < len; i++){
						if (strCheck.indexOf(valor.charAt(i))!=-1) val2+= valor.charAt(i);
					}

					if(val2.length==0) return "0.00";
					if (val2.length==1)return "0.0" + val2;
					if (val2.length==2)return "0." + val2;

					var parte1 = val2.substring(0,val2.length-2);
					var parte2 = val2.substring(val2.length-2);
					var returnvalue = parte1 + "." + parte2;
					return returnvalue;

				}
				else{
						/* currency é false: retornamos os valores COM os zeros à esquerda,
						* sem considerar os últimos 2 algarismos como casas decimais
						*/
						val3 ="";
						for(var k=0; k < len; k++){
							if (strCheck.indexOf(valor.charAt(k))!=-1) val3+= valor.charAt(k);
						}
				return val3;
				}
			}

			function reais(obj,event){

			if (window.event)
			   var whichCode = event.keyCode;
			   else
			   var whichCode = event.which;

			/*
			Executa a formatação após o backspace nos navegadores !document.all
			*/
			documentall = document.all;
			if (whichCode == 8 && !documentall) {
			/*
			Previne a ação padrão nos navegadores
			*/
				if (event.preventDefault){ //standart browsers
						event.preventDefault();
					}else{ // internet explorer
						event.returnValue = false;
				}
				var valor = obj.value;
				var x = valor.substring(0,valor.length-1);
				obj.value= demaskvalue(x,true).formatCurrency();
				return false;
			}
			/*
			Executa o Formata Reais e faz o format currency novamente após o backspace
			*/
			FormataReais(obj,'.',',',event);
			}

			function backspace(obj,event){
			/*
			Essa função basicamente altera o  backspace nos input com máscara reais para os navegadores IE e opera.
			O IE não detecta o keycode 8 no evento keypress, por isso, tratamos no keydown.
			Como o opera suporta o infame document.all, tratamos dele na mesma parte do código.
			*/

			if (window.event)
			   var whichCode = event.keyCode;
			   else
			   var whichCode = event.which;

			documentall = document.all;
			if (whichCode == 8 && documentall) {
				var valor = obj.value;
				var x = valor.substring(0,valor.length-1);
				var y = demaskvalue(x,true).formatCurrency();

				obj.value =""; //necessário para o opera
				obj.value += y;

				if (event.preventDefault){ //standart browsers
						event.preventDefault();
					}else{ // internet explorer
						event.returnValue = false;
				}
				return false;

				}
			}

			function FormataReais(fld, milSep, decSep, e) {
			var sep = 0;
			var key = '';
			var i = 0;
			var j = 0;
			var len = 0;
			var len2 = 0;
			var strCheck = '0123456789';
			var aux = '';
			var aux2 = '';

			if (window.event)
			   var whichCode = e.keyCode;
			   else
			   var whichCode = e.which;

			//if (whichCode == 8 ) return true; //backspace - estamos tratando disso em outra função no keydown
			if (whichCode == 0 ) return true;
			if (whichCode == 9 ) return true; //tecla tab
			if (whichCode == 13) return true; //tecla enter
			if (whichCode == 16) return true; //shift internet explorer
			if (whichCode == 17) return true; //control no internet explorer
			if (whichCode == 27 ) return true; //tecla esc
			if (whichCode == 34 ) return true; //tecla end
			if (whichCode == 35 ) return true;//tecla end
			if (whichCode == 36 ) return true; //tecla home

			/*
			O trecho abaixo previne a ação padrão nos navegadores. Não estamos inserindo o caractere normalmente, mas via script
			*/

			if (e.preventDefault){ //standart browsers
					e.preventDefault()
				}else{ // internet explorer
					e.returnValue = false
			}

			var key = String.fromCharCode(whichCode);  // Valor para o código da Chave
			if (strCheck.indexOf(key) == -1) return false;  // Chave inválida

			/*
			Concatenamos ao value o keycode de key, se esse for um número
			*/
			fld.value += key;

			var len = fld.value.length;
			var bodeaux = demaskvalue(fld.value,true).formatCurrency();
			fld.value=bodeaux;

			/*
			Essa parte da função tão somente move o cursor para o final no opera. Atualmente não existe como movê-lo no konqueror.
			*/
			  if (fld.createTextRange) {
				var range = fld.createTextRange();
				range.collapse(false);
				range.select();
			  }
			  else if (fld.setSelectionRange) {
				fld.focus();
				var length = fld.value.length;
				fld.setSelectionRange(length, length);
			  }
			  return false;

			}
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
