/*Script de Formatacao
	
1) Pega um numero float qualquer e o transforma em uma string formatada no padrao numerico do Brasil ###.###.###,#####
- Parametros (numero float, casasDecimais int)
-- numero -> numero float que se quer formatar
-- casasDecimais -> numero de casas decimais que o numero deve ter. Tem que ser maior ou igual a zero, para trabalhar no modo 1)
- Retorna uma string
2) Pega uma string formatada no padrao anterior e converte em um float
- Parametros (numero string, a int)
-- numero -> string que contem o numero formatado
-- a -> passar o inteiro (-1), que fara a funcao trabalhar neste modo 2)
- retorna um float
*/
function formata_numero(num,casaDecimal,decSimb,milharSimb){
		
	if ((casaDecimal >= 0) && (!(isNaN(num)))){     //Entra no modo 1)
		var numstr = (""+num)
		var posponto = numstr.indexOf(".")   //formata a fracao do numero
		if (posponto != -1){   //trabalha o numero que tem parte fracionaria
			var inteiro = numstr.substr(0,posponto)
			var fracao = numstr.substr(posponto+1,numstr.length-posponto)
			var tamFracao = fracao.length
			if (tamFracao < casaDecimal){ //completa fracao com zero
				for(var i=1; i <= (casaDecimal-tamFracao); i++){
					fracao += "0"
				}
			}else{     // trunca a fracao no numero de casas decimais
				fracao = fracao.substr(0,casaDecimal)
			}
			fracao = fracao
		}else{    //completa com zero a fracao 
			var inteiro = numstr
			var fracao = ""
			for (var i = 1; i <= casaDecimal ;i++){
				fracao += "0"
			}
			fracao = fracao
		}
		if (fracao.length != 0){  //insere simbolo de decimal
			fracao = decSimb+fracao
		}
		var tamInteiro = inteiro.length  //tratamento da parte inteira
		if (tamInteiro>3) {  //insere sinal de milhar se for o caso
			var milhar = tamInteiro % 3
			if (milhar == 0){
				milhar = 3
				numstr = inteiro.substr(0,3)
				inteiro = inteiro.substr(3,inteiro.length-3)
			}else{	
				numstr = inteiro.substr(0,milhar)
				inteiro = inteiro.substr(milhar,inteiro.length-milhar)
			}
			milhar = (tamInteiro - milhar) / 3
			for (var i = 0; i<milhar;i++){
				numstr += milharSimb+inteiro.substr(i*3,3)
			}
		}else{ //nao necessita sinal de milhar
			numstr = inteiro
		}
		num = numstr+fracao
	}else if ((casaDecimal == -1) && (isNaN(num))){  //Entra no modo 2)
		var posponto = num.indexOf(decSimb)   //retira os pontos e troca a
		var tamanho = num.length          //virgula por ponto e transf
		var novoNum = ""                  // em float
		var digito = ""
		
		for (var i = 0; i < tamanho; i++){
			digito = num.substr(i,1)
			if (digito != milharSimb)
				novoNum += digito
		}
		novoNum = novoNum.replace(decSimb,".")
		//alert('Antes do float:'+novoNum);
		num = parseFloat(novoNum)
	}	
	///alert('Depois do float:'+num);
	return num
}