///////////////////////////////////////////////////////////////
//	Verifica se o string tem algum dígito que não seja número
///////////////////////////////////////////////////////////////
function EhNumero (Valor) {
	var Numeros="1234567890";
	for (Cont=0; Cont < Valor.length; Cont++) {
		TempChar = Valor.substring(Cont,Cont+1);
		if	(Numeros.indexOf(TempChar,0) == -1)	return (false);
	}
	return (true);
}
///////////////////////////////////////////////////////////////
//	Verifica se um valor está contido em um array
///////////////////////////////////////////////////////////////
function EstaContido(Valor, Arranjo) {
	var Cont;
	for(Cont = 0; Cont < Arranjo.length; Cont++)
		if(Arranjo[Cont] == Valor)
			return true;
	return false;
}
//////////////////////////////////////////////////
//	Abri uma instância do browser atual contendo
//	a URL passada como parâmetro
//////////////////////////////////////////////////
function AbriBrowser(URL, Nome, Altura, Largura, Topo, Esquerda, BarraDeMenu, BarrasDeRolagem) {
	window.open(URL, Nome, "height=" + Altura + ",width=" + Largura + ",top=" + Topo + ",left=" + Esquerda + ",toolbar=no,location=no,resizable=yes,status=yes,menubar=" + BarraDeMenu + ",scrollbars=" + BarrasDeRolagem);
}
///////////////////////////////////////////////////////////////
//	REPLACE que funciona de verdade... porque a porra do
//	método do próprio java script não funciona!!!
///////////////////////////////////////////////////////////////
function ReplaceFunciona(Valor, Procurado, Substituto) {
	var Cont;
	var ValorResultante = "";
	if(Valor != null)
		for(Cont = 0; Cont < Valor.length; Cont++)
			if(Valor.substring(Cont, Cont + 1) == Procurado)
				ValorResultante = ValorResultante + Substituto;
			else
				ValorResultante = ValorResultante + Valor.substring(Cont, Cont + 1);
	return ValorResultante;
}
///////////////////////////////////////////////////////////////
//	ToFixed que funciona de em qualquer browser
///////////////////////////////////////////////////////////////
function ToFixed(Valor, TotalCasas) {
	var Cont, Continua = true;
	Valor = PreencheZeros(Valor, TotalCasas + 1);
	if(Valor.indexOf(".") == -1)
		Valor = Valor.substring(0, Valor.length - TotalCasas) + "." + Valor.substring(Valor.length - TotalCasas, Valor.length);
	for(Cont = Valor.length - Valor.indexOf("."); Cont <= TotalCasas; Cont++)
			Valor = Valor + "0";
	return Valor;
}
///////////////////////////////////////////////////////////////
//	Soma dois campos... tive que fazê-la porque o operador "+"
//	da porra do javascript não funciona!!!
///////////////////////////////////////////////////////////////
function Soma(ValorA, ValorB) {
	//	Variáveis necessárias
	var Cont;

	//	Definindo se o segundo parâmetro é negativo
	var Negativo = (ValorB.indexOf("-") == - 1 ? false : true);

	//	Filtrando os valores
	ValorA = ReplaceFunciona(ReplaceFunciona(ReplaceFunciona(ValorA, ".", ""), ",", ""), "-", "");
	ValorB = ReplaceFunciona(ReplaceFunciona(ReplaceFunciona(ValorB, ".", ""), ",", ""), "-", "");

	//	Definindo o tamanho dos valores
	var Tamanho = (ValorA.length >= ValorB.length ? ValorA.length : ValorB.length)

	//	Completando as casas
	ValorA = PreencheZeros(ValorA, Tamanho);
	ValorB = PreencheZeros(ValorB, Tamanho);
	
	//	Processando a soma de dois positivos
	var Resultado = "";
	var Parcial = 0;
	var Resto = 0;
	if(!Negativo) {
		//	Posições
		var PosicaoA = 0;
		var PosicaoB = 0;
		
		//	Somando
		for(Cont = (Tamanho - 1); Cont >= 0; Cont--) {
			//	Posições
			PosicaoA = parseInt(ValorA.substring(Cont, Cont + 1));
			PosicaoB = parseInt(ValorB.substring(Cont, Cont + 1));

			//	Somando a posição
			Parcial = PosicaoA + PosicaoB + Resto;

			//	Com resto
			if(Parcial > 9) {
				Resultado = Parcial.toString().substring(1,2) + Resultado;
				Resto = 1;
			//	Sem resto
			} else {
				Resultado = Parcial.toString() + Resultado;
				Resto = 0;
			}
		}
		//	Com resto
		if(Resto == 1)	Resultado = "1" + Resultado;

		//	Retorno da função
		return ToFixed(parseFloat(Resultado).toString(), 2);

	//	Processando a soma de um positivo e outro negativo
	} else {
		//	Sinal do resultado
		var Sinal = (parseInt(ValorA) >= parseInt(ValorB) ? "" : "-");

		//	Decidinho pelo maior valor absoluto
		var Maior = (parseInt(ValorA) >= parseInt(ValorB) ? ValorA : ValorB);
		var Menor = (parseInt(ValorA) < parseInt(ValorB) ? ValorA : ValorB);

		//	Posições
		var PosicaoMaior = 0;
		var PosicaoMenor = 0;

		//	Subtraindo
		for(Cont = (Tamanho - 1); Cont >= 0; Cont--) {
			//	Posições
			PosicaoMaior = parseInt(Maior.substring(Cont, Cont + 1));
			PosicaoMenor = parseInt(Menor.substring(Cont, Cont + 1));

			//	Subtraindo a posição
			if(PosicaoMaior >= (PosicaoMenor + Resto)) {
				Parcial = PosicaoMaior - (PosicaoMenor + Resto);
				Resto = 0;
			} else {
				Parcial = (PosicaoMaior + 10) - (PosicaoMenor + Resto);
				Resto = 1;
			}

			//	Resultado
			Resultado = Parcial.toString() + Resultado;
		}

		//	Retorno da função
		return Sinal + ToFixed(parseFloat(Resultado).toString(), 2);
	}
}
///////////////////////////////////////////////////////////////
//	Preenche um string com zeros a esquerda
///////////////////////////////////////////////////////////////
function PreencheZeros(Valor, Tamanho) {
	var Cont, Limite = Math.abs(Tamanho) - Valor.length;
	if(Tamanho >= 0)
		for(Cont = 0; Cont < Limite; Cont++)
			Valor = "0" + Valor;
	else
		for(Cont = 0; Cont < Limite; Cont++)
			Valor = Valor + "0";
	return Valor;
}
///////////////////////////////////////////////////
//	Rotina de impressão
///////////////////////////////////////////////////
function Imprime(Frame) {
  if (Frame == window) {
    window.print();
  } else {
	Frame.focus();
	window.print();
  }
}