function exibeBloco(sElementoVisivel) {
	var oDiv = document.getElementById('layer'+sElementoVisivel);
 	if(oDiv.style.overflow == 'visible') {
		oDiv.style.overflow = 'hidden';
	} else {
		oDiv.style.overflow = 'visible';
	}	
}

function Flash(src) { 
	document.write(src);
}


//FUNÇÃO PARA PREENCHER O ENDERECO APOS DIGITAR O CEP
function recuperaEndereco(sEndereco,sBairro,sCidade,sEstado,sCep,bAlerta,sDocumento){
	if(document.getElementById('campoConsultaLiberada') != null && document.getElementById('campoConsultaLiberada').value == '1') {
	
		document.getElementById(sEndereco).value = 'Aguarde...Carregando';
		document.getElementById(sBairro).value = 'Aguarde...Carregando';
		document.getElementById(sCidade).value = 'Aguarde...Carregando';
		document.getElementById(sEstado).value = 'Aguarde...Carregando';
		
		if(document.getElementById('campoConsultaLiberada') != null)
			document.getElementById('campoConsultaLiberada').value = '0';
	
		oXmlHttp = inicializaXlmHttp();
		oXmlHttp.open("GET",sDocumento+"?sCep="+sCep,true);
		oXmlHttp.onreadystatechange = function(){
			if(oXmlHttp.readyState == 4){
				if(oXmlHttp.status == 200){
					var sConteudo = oXmlHttp.responseText;
					sConteudo = sConteudo.replace(/\+/g," ");
					sConteudo = unescape(sConteudo);
					vConteudo = sConteudo.split('#');
					if(vConteudo[0]) {
						document.getElementById(sEndereco).value = vConteudo[0];
						document.getElementById(sBairro).value = vConteudo[1];
						document.getElementById(sCidade).value = vConteudo[2];
						document.getElementById(sEstado).value = vConteudo[3];
						
					} else {
						document.getElementById(sEndereco).value = '';
						document.getElementById(sBairro).value = '';
						document.getElementById(sCidade).value = '';
						document.getElementById(sEstado).value = '';
	
						if(bAlerta)
							alert("Endereço não encontrado. Verifique se o CEP está digitado corretamente. \nCaso sim preencha os dados do endereço manualmente.");
					}
					document.getElementById('campoConsultaLiberada').value = '1';
				} else 
					alert('Problemas no carregamento da página. Tente novamente;');
			}//if(oXmlHttp.readyState == 4)
		}
		oXmlHttp.send(null);
	}
}

//FUNÇÃO PARA PREENCHER O CONTEÚDO DE UM SELECT DIGITANDO UM TEXTO EM UM TEXTFIELD
function recuperaRegistros(nIdSelect,sTexto,sDocumento){
	oOption = new Option();
	oOption.value = '';
	oOption.text = 'Aguarde...Carregando';
	oOption.selected = true;
	oSelect = document.getElementById(nIdSelect);
	oSelect.options[oSelect.options.length] = oOption;
	oXmlHttp = inicializaXlmHttp();
	oXmlHttp.open("GET",sDocumento+"?sTexto="+sTexto,true);
	oXmlHttp.onreadystatechange = function(){
		if(oXmlHttp.readyState == 4){
			if(oXmlHttp.status == 200){
				var sConteudo = oXmlHttp.responseText;
				montaSelect2(nIdSelect,sConteudo,'');
			} else 
				alert('Problemas na conexão com o servidor! Tente novamente');
		}//if(oXmlHttp.readyState == 4)
	}
	oXmlHttp.send(null);
}


/*
PARA QUE ESTA FUNÇÃO FUNCIONE CORRETAMENTE, O CAMPO A SER VALIDADO PRECISA TER NO SEU 
LABEL A PROPRIEDADE 'ID' IGUAL À PROPRIEDADE 'NAME' DO CAMPO E ESTE CAMPO PRECISA POSSUIR 
UMA PROPRIEDADE 'ID' QUE REPRESENTARÁ O TIPO DE VALIDAÇÃO QUE DEVE SER REALIZADA.
O FORMULÁRIO DEVERÁ POSSUIR NA PROPRIEDADE 'ID' UM VALOR VÁLIDO
A PÁGINA TERÁ QUE POSSUIR UMA TAG 'SPAN' COM A PROPRIEDADE 'ID' IGUAL A 'msg'
*/
function validaForm(form,cor_validado,cor_erro){
	var erro = false;
	var tipo = Array();
	var msg = '';
	for(var i=0; i<form.elements.length; i++) {
		if(form.elements[i].lang != undefined) {
			switch(form.elements[i].lang) {
				case 'vazio':
					if(!validaVazio(form.elements[i])) {
						window.document.getElementById(form.elements[i].name).style.color = cor_erro;
						erro = erro || true;
						aux = tipo.toString();
						if(aux.indexOf('vazio') == -1)
							tipo.push('vazio');
					}
					else {
						window.document.getElementById(form.elements[i].name).style.color = cor_validado;
						erro = erro || false;
					}
				break;
				case 'vazioRadio':
					if(!validaVazioRadio(form.elements[i])) {
						window.document.getElementById(form.elements[i].name).style.color = cor_erro;
						erro = erro || true;
						aux = tipo.toString();
						if(aux.indexOf('vazioRadio') == -1)
							tipo.push('vazioRadio');
					}
					else {
						window.document.getElementById(form.elements[i].name).style.color = cor_validado;
						erro = erro || false;
					}
				break;				
				case 'email':
					if(!validaEmail(form.elements[i])) {
						window.document.getElementById(form.elements[i].name).style.color = cor_erro;
						erro = erro || true;
						aux = tipo.toString();
						if(aux.indexOf('email') == -1)
							tipo.push('email');
					}
					else {
						window.document.getElementById(form.elements[i].name).style.color = cor_validado;
						erro = erro || false;
					}
				break;
				case 'CEP':
					if(!validaCEP(form.elements[i])) {
						window.document.getElementById(form.elements[i].name).style.color = cor_erro;
						erro = erro || true;
						aux = tipo.toString();
						if(aux.indexOf('CEP') == -1)
							tipo.push('CEP');
					}
					else {
						window.document.getElementById(form.elements[i].name).style.color = cor_validado;
						erro = erro || false;
					}
				break;
				case 'data':
					if(!validaData(form.elements[i])) {
						window.document.getElementById(form.elements[i].name).style.color = cor_erro;
						erro = erro || true;
						aux = tipo.toString();
						if(aux.indexOf('data') == -1)
							tipo.push('data');
					}
					else {
						window.document.getElementById(form.elements[i].name).style.color = cor_validado;
						erro = erro || false;
					}
				break;
				case 'CPF':
					if(!validaCPF(form.elements[i])) {
						window.document.getElementById(form.elements[i].name).style.color = cor_erro;
						erro = erro || true;
						aux = tipo.toString();
						if(aux.indexOf('CPF') == -1)
							tipo.push('CPF');
					}
					else
						window.document.getElementById(form.elements[i].name).style.color = cor_validado;
						erro = erro || false;
				break;
				case 'CNPJ':					
					if(!validaCPF(form.elements[i]) || form.elements[i].value.length != 14) {
						window.document.getElementById(form.elements[i].name).style.color = cor_erro;
						erro = erro || true;
						aux = tipo.toString();
						if(aux.indexOf('CNPJ') == -1)
							tipo.push('CNPJ');
					}
					else
						window.document.getElementById(form.elements[i].name).style.color = cor_validado;
						erro = erro || false;
				break;
				case 'numerico':
					if(!verificaNumerico(form.elements[i])) {
						window.document.getElementById(form.elements[i].name).style.color = cor_erro;
						erro = erro || true;
						aux = tipo.toString();
						if(aux.indexOf('numerico') == -1)
							tipo.push('numerico');
					}
					else
						window.document.getElementById(form.elements[i].name).style.color = cor_validado;
						erro = erro || false;
				break;				
			}
			switch(form.elements[i].id) {
				case 'igual':
					var objetoAuxiliar = window.document.getElementById(form.elements[i].lang);
					if(objetoAuxiliar.value != form.elements[i].value) {
						window.document.getElementById(form.elements[i].name).style.color = cor_erro;
						erro = erro || true;
						aux = tipo.toString();
						if(aux.indexOf('igual') == -1)
							tipo.push('igual');
					}
					else {
						window.document.getElementById(window.document.getElementById(form.elements[i].id).name).style.color = cor_validado;
						window.document.getElementById(form.elements[i].name).style.color = cor_validado;
						erro = erro || false;
					}
				break;
			}
}
	}
	if(erro) {
		for(var i = 0; i < tipo.length; i++) {
			switch(tipo[i]) {
				case 'vazio':	
					msg += 'Os campos em destaque são obrigatórios<br>';
				break;
				case 'vazioRadio':	
					msg += 'Selecione a opção mais adequada para prosseguir<br>';
				break;
				case 'email':	
					msg += 'O E-mail informado é inválido<br>';
				break;
				case 'CEP':	
					msg += 'O CEP informado é inválido<br>';
				break;
				case 'data':	
					msg += 'A Data informada é inválida<br>';
				break;
				case 'CPF':	
					msg += 'O CPF informado é inválido<br>';
				break;
				case 'CNPJ':	
					msg += 'O CNPJ informado é inválido<br>';
				break;
				case 'numerico':	
					msg += 'O valor informado não é um numérico válido!<br>';
				break;
				case 'igual':	
					msg += 'A confirmação de senha não coincide!<br>';
				break;
			}
		}
		window.document.getElementById('msg').style.display = 'block';
		window.document.getElementById('msg').innerHTML = msg;
		if(document.getElementById('msg2')){
			window.document.getElementById('msg2').style.display = 'block';
			window.document.getElementById('msg2').innerHTML = msg;
		}

		return false;
	}
	return true;
}

function validaVazio(campo) {
	var regExp = /[_a-zA-Z0-9-]+/;
	if(!regExp.test(campo.value)) {
		return false;
	}
	return true;
}

function validaVazioValor(campo) {
	if(!(campo.value)) {
		return false;
	}
	return true;
}

function validaVazioRadio(campo) {
	var radio = document.getElementsByName(campo.name);
	for(var i = 0; i < radio.length; i++)
		if(radio[i].checked)
			return true;

	return false;
}

function validaEmail(campo) {
	var regExp = /^([_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[_a-z0-9-]+)+)$/;
	if(!regExp.test(campo.value)) {
		return false;
	}
	return true;
}

function validaCEP(campo) {
var regExp = /^[0-9]{8}$/;
	if(!regExp.test(campo.value)) {
		return false;
	}
	return true;
}

function validaData(campo){
	var vData = Array;
	var regExp = /^[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4}$/;
	
	if (!regExp.test(campo.value)) {	
		return false;
	}
	vData = campo.value.split('/');
	
	nDia = vData[0];
	nMes = vData[1];
	nAno = vData[2];
	
	if((nDia < 1) || (nDia > 31) || ((nDia == 31) && (nMes == 4 || nMes == 6 || nMes == 9 || nMes == 11 )))
		return false;
	
	if(nMes < 1 || nMes > 12)
		return false;
	
	if((nMes == 2 && nDia > 29) || (nMes == 2 && nDia == 29 && (parseInt(nAno/4) != nAno/4)))
		return false;
		
	return true;
}

function validaCPF(campo){
	if(campo.value == ""){
		return false;
	
	} else {
		var z = campo.value;
		if(z.length != 11 && z.length != 14){
			return false;
		
		} else {
			if (z.length == 11){
				var cpf2 = campo.value;
				var j = 10;
				x = 0;
				for(var i = 0; i <= 8; i = i+1){
					x += cpf2.charAt(i) * j;
					j--;
				}
				var resto = x % 11;
				if(resto == 0 || resto == 1) {
					dv1 = 0;
				
				} else {
					dv1 = 11-resto;
				}
				if(dv1 != cpf2.charAt(9)){
					return false;
				
				} else {
					var j = 11;
					var x2 = 0;
					for(i = 0; i <= 8; i++){
						x2 += cpf2.charAt(i)*j;
						j--;
					}
					x2 += dv1*2;
					resto2 = x2 % 11;
					if(resto2 == 0 || resto2 == 1) {
						dv2 = 0;
					
					} else {
						dv2 = 11-resto2;
					}
					if(dv2 != cpf2.charAt(10)){
						return false;
					}
					return true;
				}
			}
			else{
				var j = 5;
				var x = 0;
				var cpf2 = campo.value;
				for(i = 0; i <= 3; i++){
					x += cpf2.charAt(i)*j;
					j--;
				}
				j = 9;
				for (i = 4; i <= 11; i++){
					x += cpf2.charAt(i)*j;
					j--;
				}
				resto = x % 11;
				if(resto == 0 || resto == 1) {
					dv1 = 0;
				
				} else {
					dv1 = 11-resto;
				}
				if(dv1 != cpf2.charAt(12)){
					return false;
				
				} else {
					var j = 6;
					var x = 0;
					for( i = 0; i <= 4; i++){
						x += cpf2.charAt(i)*j;
						j--;
					}
					var j = 9;
					for ( i = 5; i <= 11; i++){
						x += cpf2.charAt(i)*j;
						j--;
					}
					x += dv1*2;
					resto = x % 11;
					if(resto == 1 || resto == 0){
						dv2 = 0;
					
					} else {
						dv2 = 11 - resto;
					}
					if(dv2 != cpf2.charAt(13)){
						return false;
					
					} else {
						return true;
					}
				}
			}
		}
	}
}

function verificaNumerico(campo) {
	if (isNaN(parseInt(campo.value)) || (campo.value < 0)) {	
		return false;
	} 
	return true;
}

function destacaLinha(linha,cor){
	linha.className = cor;
}

// MUDA AUTOMATICAMENTE O FOCO PARA O PRÓXIMO CAMPO DE UM FORMULÁRIO, CASO UM LIMITE
// DE TAMANHO DO CAMPO SEJA ATINGIDO, NO PREENCHIMENTO DO FORMULÁRIO. USAR EM CONJUNTO
// COM O EVENTO onKeyUp NO CAMPO A PARTIR DO QUAL SE DESEJA AVANÇAR.
function mudaFoco(nLimiteMax,form,campo){
	if (campo.value.length == nLimiteMax){
		for(i = 0; i < form.length; i++){
			if (form.elements[i].name == campo.name){
				proximo = i + 1;
				if (proximo < form.length){
					form.elements[proximo].focus();
				}//if (i + 1 < form.length)
			}//if (form.elements[i].name == campo.name)
		}//for(i = 0; form.length; i++)
	}//if (campo.length == nLimiteMax)
}


function alteraImagemMenu(sId,sOrigem) {
  var oImagem = document.getElementById(sId);
  oImagem.src = sOrigem;
  return;
}

//MÉTODO RESPONSÁVEL POR INICIALIZAR O OBJETO XMLHTTPREQUEST
function inicializaXlmHttp(){
	try{
    	oXmlHttp = new XMLHttpRequest();
	}catch(ee){
   		try{
        	oXmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    	}catch(e){
        	try{
            	oXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        	}catch(E){
				oXmlHttp = false;
        	}
		}
    }
	return oXmlHttp;
}

//MÉTODO RESPONSÁVEL POR LIMPAR O OBJETO SELECT
function limpaSelect(oSelect){
	while(oSelect.length != 0){
		oSelect.remove(0);
	}
}

/*
MÉTODO RESPONSÁVEL POR RECUPERAR O CONTEÚDO QUE IRÁ COMPOR O SELECT
nIdSelect => ID DO OBJETO HTML SELECT QUE SERÁ MONTADO
nIdCategoria => ID DA CATEGORIA NO BANCO DE DADOS QUE SERVIRÁ DE FILTRO PARA MONTAGEM DO SELECT
nIdSelecionado => ID DA OPÇÃO NO BANCO DE DADOS QUE SERÁ PADRÃO
sDocumento => LOCALIZAÇÃO DO DOCUMENTO QUE ESTÁ REALIZANDO A CONSULTA AO BANCO
*/
function recuperaConteudoSelect(nIdSelect,nIdCategoria,nIdSelecionado,sDocumento){	
	oXmlHttp = inicializaXlmHttp();
	oXmlHttp.open("GET",sDocumento+"?nId="+nIdCategoria,true);
	oXmlHttp.onreadystatechange = function(){
		if(oXmlHttp.readyState == 4){
			if(oXmlHttp.status == 200){
				var sConteudo = oXmlHttp.responseText;
				montaSelect(nIdSelect,sConteudo,nIdSelecionado);
			} else 
				alert('Problemas na conexão com o servidor! Tente novamente');
		}//if(oXmlHttp.readyState == 4)
	}
	oXmlHttp.send(null);
}

//FUNÇÃO RESPONSÁVEL POR MONTAR O SELECT
function montaSelect(nIdSelect,sConteudo,nIdSelecionado){
	oSelect = document.getElementById(nIdSelect);
	limpaSelect(oSelect);
	sConteudo = sConteudo.replace(/\+/g," ");
    sConteudo = unescape(sConteudo);
	vLinha = sConteudo.split('##');
	for(var i = 0 ; i < vLinha.length ; i++){
		vCampo = vLinha[i].split('#');
		oOption = new Option(vCampo[1],vCampo[0]);
		if(nIdSelecionado == oOption.value)
			oOption.selected = true;
		oSelect.options[oSelect.length] = oOption;
	}
}

//FUNÇÃO RESPONSÁVEL POR MONTAR O SELECT
function montaSelect2(nIdSelect,sConteudo,nIdSelecionado){
	oSelect = document.getElementById(nIdSelect);
	sConteudo = sConteudo.replace(/\+/g," ");
    sConteudo = unescape(sConteudo);
	limpaSelect(oSelect);
	vLinha = sConteudo.split('##');
	for(var i = 0 ; i < vLinha.length ; i++){
		vCampo = vLinha[i].split('#');
		oOption = new Option(vCampo[1],vCampo[0]);
		if(nIdSelecionado == oOption.value)
			oOption.selected = true;
		oSelect.options[oSelect.length] = oOption;
	}
}

function ocultaExibeDiv(sOperacao,sIdDiv) {
	var oDiv = document.getElementById(sIdDiv);
	oDiv.style.overflow = sOperacao;
}
// FUNCAO PARA EXIBIR AS ANIMAÇÔES EM FLASH APOS AS IMAGENS DO SITE CARREGADAS ---------------------------
function carregaFlash(){
//	var agent = navigator.userAgent.toLowerCase(); 
//	var ope = agent.indexOf("opera")>-1;
//	if (!ope) {

		anima1 = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="104" height="141"><param name="movie" value="/swf/cozinheiro.swf"><param name="quality" value="high"><param name="wmode" value="transparent"><embed src="/swf/cozinheiro.swf" width="104" height="141" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent"></embed></object>';
		window.document.getElementById('animaum').innerHTML = anima1;
	
		anima2 = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="160" height="206"><param name="movie" value="swf/receitas.swf"><param name="quality" value="high"><embed src="swf/receitas.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="160" height="206"></embed></object>';
		window.document.getElementById('animadois').innerHTML = anima2;
	
//		alert('NAO OPERA');
//	} else {
//		window.location = "modelo_ope.php"
//		alert('OPERA');		
//	}
}
// FIM DA FUNCAO PARA EXIBIR AS ANIMAÇÔES EM FLASH APOS AS IMAGENS DO SITE CARREGADAS ---------------------

function recuperaConteudo(sArquivoPHP,sArquivoXSL,sDivId){
	oDiv = document.getElementById(sDivId);
	oXmlHttpGerador = inicializaXlmHttp();
	
	//Carregando o arquivo PHP
	oXmlHttpGerador.open("GET",sArquivoPHP,false);
	oXmlHttpGerador.send(null);
	
	//Setando a variável sArquivoXML
	var vArquivo = sArquivoPHP.split('.');
	sArquivoXML = vArquivo[0]+'.xml';
	
	//Para funcionar no Internet Explorer
	if(window.ActiveXObject) {
		//Carregando o Arquivo XML
		oXml = new ActiveXObject("Microsoft.XMLDOM");
		oXml.async = false;
		oXml.load(sArquivoXML);
		
		//Carregando o Arquivo XSL
		var oXsl = new ActiveXObject("Microsoft.XMLDOM");
		oXsl.async = false;
		oXsl.load(sArquivoXSL);
		
		//Transformação
		var sConteudoTransformado = oXml.transformNode(oXsl);
		oDiv.innerHTML = sConteudoTransformado;
	}
	//Para funcionar no Mozilla/Firefox
	else if(window.XMLHttpRequest) {
		//Criando o processador de XLST
		var oXSLTProcessor = new XSLTProcessor();

		//Carregando o arquivo XSL
		var oXmlHttp = new XMLHttpRequest();
		oXmlHttp.open("GET",sArquivoXSL,false);
		oXmlHttp.send(null);
		var oXSL = oXmlHttp.responseXML;
		oXSLTProcessor.importStylesheet(oXSL);
		
		//Carregando o arquivo XML
		oXmlHttp = new XMLHttpRequest();
		oXmlHttp.open("GET",sArquivoXML,false);
		oXmlHttp.send(null);

		oXmlDoc = oXmlHttp.responseXML;
		var sConteudoTransformado = oXSLTProcessor.transformToFragment(oXmlDoc,document);
		oDiv.innerHTML = '';
		oDiv.appendChild(sConteudoTransformado);
	}
}	

function Flash(src) { 
	document.write(src);
}


function exibeBloco(sElementoVisivel) {
	var oDiv = document.getElementById('layer'+sElementoVisivel);
 	if(oDiv.style.display == 'block') {
		oDiv.style.display = 'none';
	} else {
		oDiv.style.display = 'block';
	}	
}

function formataNumerico(nNumero,nCasaDecimal,sSeparadorDecimal,sSeparadorMilhar) {
	var nCountDecimal = 0;
	var nCountMilhar = 0;
	var sNumeroFormatado = '';
	var sNumeroDecimal = '';
	var sSeparadorDecimalAtual = (isNaN(nNumero.toString().substr(nNumero.length-(nCasaDecimal+1),1))) ? nNumero.toString().substr(nNumero.length-(nCasaDecimal+1),1) : ',';
	var vNumeroOriginal = nNumero.toString().split(sSeparadorDecimalAtual);
	var vNumeroInteiro = vNumeroOriginal[0].replace(/[\.]/g,'').split('');	
	var sNumero = nNumero.toString().replace(/[\.]/g,'');


	// SÓ FORMATA SE FOR UM NUMÉRICO VÁLIDO
	if(validaNumerico(sNumero)) {

		// PERCORRE O A PARTE INTEIRA DO NÚMERO COLOCANDO O SEPARADOR DE MILHAR
		for(var i = vNumeroInteiro.length-1; i >= 0; i--) {
			if(nCountMilhar % 3 == 0 && nCountMilhar != 0)
				sNumeroFormatado = sSeparadorMilhar + sNumeroFormatado;
			
			sNumeroFormatado = vNumeroInteiro[i] + sNumeroFormatado;
			nCountMilhar++;
		}
	
		// CASO TENHA PARTE DECIMAL RESPEITANDO O NÚMERO DE CASAS DECIMAIS PASSADA NA FUNÇÃO
		if(vNumeroOriginal.length == 2) {
			sNumeroDecimal = (vNumeroOriginal[1].length <= nCasaDecimal) ? vNumeroOriginal[1] : vNumeroOriginal[1].substr(0,nCasaDecimal);
			nCountDecimal = sNumeroDecimal.length;
		}
		
		// CASO O NÚMERO DE CASAS DECIMAIS SEJA MENOR QUE O SOLICITADO COMPLETA COM ZEROS
		if(nCasaDecimal > nCountDecimal)
			for(var i = nCountDecimal; i < nCasaDecimal; i++)
				sNumeroDecimal += '0';
		
		// FINALIZA A MONTAGEM DO NÚMERO
		sNumeroFormatado += sSeparadorDecimal + sNumeroDecimal;
	}
	
	// SE O SEPARADOR DECIMAL FOR UM PONTO RETORNA COMO UM NÚMERO SENÃO RETORNA UMA STRING
	if(sSeparadorDecimal == '.')
		return Number(sNumeroFormatado);
	return sNumeroFormatado;
}

function validaNumerico(campo) {
	var regExp = /^[0-9]+(\.[0-9]{3})*(\,[0-9]+)?$/;
	if(!regExp.test(campo.value))
		// USADO PARA LIBERAR CASO SEJA VAZIO
		if(validaVazioValor(campo))
			return false;
	return true;
}

function calculaSubTotalPorQtd(oQtd,nIdProduto,nTipo) {
	vIdCliente = document.getElementById("fIdCliente").value;
	vIdCliente = vIdCliente.split("#");
	nQtdCliente = Number(document.getElementById("fQtdCliente").value);
	
	if(validaNumerico(oQtd)) {
		for(var i = 0; i <= nQtdCliente; i++){
			nIdCliente = vIdCliente[i];
			calculaSubTotal(Number(nIdProduto),Number(nIdCliente),Number(nTipo));
		}
	} else {
		alert("Valor informado não é um numérico válido!");
		return false;
	}
}

function calculaPorcentagemSubTotal(nPorcentagem,nIdCliente) {
	
	nSubTotal = formataNumerico(document.getElementById("fSubTotal").value,2,".","");
	
	if(validaNumerico(nPorcentagem)) {						
			
		nSubTotal = nSubTotal - (nSubTotal * (Number(nPorcentagem) / 100));
		nSubTotal = nSubTotal.toFixed(2);

		if(nSubTotal < 0)
			nSubTotal = 0;	
		
		if(nSubTotal){
			document.getElementById("nSubTotal"+nIdCliente).innerHTML = formataNumerico(nSubTotal,2,",",".");
		}

	} else {
		alert("Valor informado não é um numérico válido!");
		return false;
	}
}

function calculaSubTotalPorCheck(nIdProduto,nTipo) {
	var nIdProduto = Number(nIdProduto);
	vIdCliente = document.getElementById("fIdCliente").value;
	vIdCliente = vIdCliente.split("#");
	nQtdCliente = Number(document.getElementById("fQtdCliente").value);	
	oCheckProduto = document.getElementById("fCheckProduto"+nIdProduto);
	nQtd = document.getElementById("fQtd"+nIdProduto).value;
	nQtdAntiga = document.getElementById("fQtdAntiga"+nIdProduto).value;	

	for(var i = 0; i <= nQtdCliente-1; i++){
		nIdCliente = Number(vIdCliente[i]);
		
		oProduto = document.getElementById("fIdProduto_"+nIdProduto+"_"+nIdCliente);
		nSubTotal = formataNumerico(document.getElementById("nSubTotal"+nIdCliente).innerHTML,2,".","");
		nTotalItem = document.getElementById("nTotalItem"+nIdCliente).innerHTML;
		
		nPorcentagem = document.getElementById("fPorcentagem"+nIdProduto).value;
		nPorcentagemTotal = document.getElementById("fPorcentagemTotal").value;

		nSubTotalItem = 0;
		
		if(oProduto) {
			nPreco = document.getElementById("fPreco_"+nIdProduto+"_"+nIdCliente).value;
			if(oCheckProduto.checked == true) {
				if(nQtd == 0) {
					nQtdAux = 1;
					oProduto.checked = true;
					nSubTotalProduto = (Number(nPreco) * Number(nQtdAux));
					nSubTotal = Number(nSubTotal) + Number(nSubTotalProduto);
					//alert(nSubTotal);
				} else {
					if(oProduto.checked == false) {
						nQtdAux = nQtd;
						oProduto.checked = true;
						nSubTotalProduto = (Number(nPreco) * Number(nQtdAux));
						nSubTotal = Number(nSubTotal) + Number(nSubTotalProduto);
					}
				}
				if(Number(nQtdAux) == 0)
					nQtdAux = nQtd;
					
				nSubTotalItem = Number(nTotalItem) + Number(nQtdAux);
				//nSubTotal = nSubTotal.toFixed(2);
			} else {
				if(oProduto.checked == true)
					nSubTotalItem = Number(nTotalItem) - Number(nQtdAntiga);

				nQtdAux = 0;
				nSubTotalProduto = (Number(nPreco) * Number(nQtdAux));
				//alert(nSubTotalProduto);
				oProduto.checked = false;
				oCheckProduto.checked = false;
				nSubTotalDecremento = 0;
				if(nQtdAntiga && nQtdAux != Number(nQtdAntiga))
					nSubTotalDecremento = Number(nPreco) * Number(nQtdAntiga);
				
				nSubTotal = Number(nSubTotal) - Number(nSubTotalProduto);
				//alert(nSubTotal+" - "+nSubTotalDecremento);
				nSubTotal = (nSubTotal - nSubTotalDecremento);

			}			
			
			if(nPorcentagemTotal){
				nSubTotal = nSubTotal - (nSubTotal * (Number(nPorcentagemTotal) / 100));
				nSubTotal = nSubTotal.toFixed(2);
			}
				

			document.getElementById("nTotalItem"+nIdCliente).innerHTML = nSubTotalItem;
			document.getElementById("nSubTotalProduto"+nIdProduto).innerHTML = formataNumerico(nSubTotalProduto.toFixed(2),2,",",".");

			if(nSubTotal < 0)
				nSubTotal = 0;
	
			//if(nSubTotal) {
				// CALCULA SUBTOTAL DO CLIENTE
				document.getElementById("nSubTotal"+nIdCliente).innerHTML = formataNumerico(Number(nSubTotal).toFixed(2),2,",",".");
				document.getElementById("fSubTotal").value= formataNumerico(Number(nSubTotal).toFixed(2),2,",",".");
			//}
		}
	}//for(var i = 0; i <= nQtdCliente; i++){
		
	if(oCheckProduto.checked == true) {
		if(document.getElementById("fQtd"+nIdProduto).value == 0) { 
			document.getElementById("fQtd"+nIdProduto).value = 1;
			document.getElementById("fQtdAntiga"+nIdProduto).value = 1;
		}
	} else {
		document.getElementById("fQtd"+nIdProduto).value = 0;
		document.getElementById("fQtdAntiga"+nIdProduto).value = 0;
	}
}


function calculaSubTotal(nIdProduto,nIdCliente,nTipo) {
	nQtd = "";
	nQtdAntiga = "";
	nQtdCliente = "";
	nContadorCliente = "";
	nPreco = "";
	nSubTotal = "";
	oProduto = document.getElementById("fIdProduto_"+nIdProduto+"_"+nIdCliente);
	//oCheckProduto = document.getElementById("fCheckProduto"+nIdProduto);
	nQtd = document.getElementById("fQtdFinal"+nIdProduto).value;
	nQtdAntiga = document.getElementById("fQtdAntiga"+nIdProduto).value;
	nPorcentagem = document.getElementById("fPorcentagem"+nIdProduto).value;
	nPorcentagemAntiga = document.getElementById("fPorcentagemAntiga"+nIdProduto).value;
	nPorcentagemTotal = document.getElementById("fPorcentagemTotal").value;
	nQtdCliente = document.getElementById("fQtdCliente").value;
	nContadorCliente = document.getElementById("fCountCliente").value;

	/* TIPO
	1 = QUANDO O CLICK VEM DO TEXFIELD fQtd
	2 = QUANDO O CLICK VEM DO CHECKBOX NO PRODUTO DO CLIENTE
	3 = QUANDO O CLICK VEM DO CHECKBOX NO PRODUTO
	*/	
	if(oProduto) {

		nPreco = formataNumerico(document.getElementById("fPreco_"+nIdProduto+"_"+nIdCliente).value,2,".","");

		nSubTotal = formataNumerico(document.getElementById("nSubTotal"+nIdCliente).innerHTML,2,".","");
		//nSubTotalProduto = formataNumerico(document.getElementById("nSubTotalProduto"+nIdCliente).innerHTML,2,".","");
		nTotalItem = document.getElementById("nTotalItem"+nIdCliente).innerHTML;				
		
		switch(nTipo) {
			case 1:
				nSubTotalDecremento = 0;	
				//nTotalItemDecremento = 0;
				if(nQtdAntiga && nQtd != Number(nQtdAntiga)) {
					nSubTotalDecremento = Number(nPreco) * Number(nQtdAntiga);
					//nTotalItemDecremento = Number(nQtdAntiga);					
				}

				nSubTotalProduto = (Number(nPreco) * Number(nQtd));

				if(nPorcentagem)
					nSubTotalProduto = nSubTotalProduto - (nSubTotalProduto * (Number(nPorcentagem) / 100));
				//nSubTotalItem = 0;								

				//if(oProduto.checked == true) {				
				if(nPreco > 0)
					nSubTotal = Number(nSubTotal) + Number(nSubTotalProduto);																				

				nSubTotal = nSubTotal - nSubTotalDecremento;
				nSubTotal = nSubTotal.toFixed(2);
				nSubTotalItem = (Number(nTotalItem) + Number(nQtd)) - Number(nQtdAntiga);


				if(nSubTotal < 0)
					nSubTotal = 0;
		
				/*if(nQtd == 0) {
					oProduto.checked = false;
					oCheckProduto.checked = false;
				}*/			
				
			break;
			case 2:
				//if(oProduto.checked == true && Number(nQtd) == 0) {
				if(Number(nQtd) == 0) {
					nQtd = 1;
					document.getElementById("fQtd"+nIdProduto).value = nQtd;
					document.getElementById("fQtdAntiga"+nIdProduto).value = nQtd;
				}

				nSubTotalDecremento = 0;
				nTotalItemDecremento = 0;
				if(nQtdAntiga && nQtd != Number(nQtdAntiga)) {
					nSubTotalDecremento = Number(nPreco) * Number(nQtdAntiga);
					nTotalItemDecremento = Number(nQtdAntiga);
				}
				nSubTotalProduto = (Number(nPreco) * Number(nQtd));

				//if(nPreco > 0 && oProduto.checked == true) {
				if(nPreco > 0) {
					nSubTotal = Number(nSubTotal) + Number(nSubTotalProduto);
					nSubTotalItem = Number(nTotalItem) + Number(nQtd);
				} else {
					nSubTotal = Number(nSubTotal) - Number(nSubTotalProduto);
					nSubTotalItem = Number(nTotalItem) - Number(nQtd);
				}

				//alert(nSubTotalItem);
				//nSubTotalItem = (Number(nTotalItem) + nQtd) - nTotalItemDecremento;
				nSubTotal = (nSubTotal - nSubTotalDecremento).toFixed(2);

				if(nSubTotal < 0)
					nSubTotal = 0;

			break;
			case 4:											
					
				nSubTotalDecremento = 0;	
				//nTotalItemDecremento = 0;
				if(nPorcentagemAntiga && nPorcentagem != Number(nPorcentagemAntiga)) {
					nSubTotalDecremento = Number(nPreco) * Number(nQtdAntiga);
					//nTotalItemDecremento = Number(nQtdAntiga);					
				}

				nSubTotalProduto = (Number(nPreco) * Number(nQtd));

				if(nPorcentagem)
					nSubTotalProduto = nSubTotalProduto - (nSubTotalProduto * (Number(nPorcentagem) / 100));
				//nSubTotalItem = 0;								

				//if(oProduto.checked == true) {				
				if(nPreco > 0)
					nSubTotal = Number(nSubTotal) + Number(nSubTotalProduto);																				

				nSubTotal = nSubTotal - nSubTotalDecremento;
				nSubTotal = nSubTotal.toFixed(2);
				nSubTotalItem = (Number(nTotalItem) + Number(nQtd)) - Number(nQtdAntiga);


				if(nSubTotal < 0)
					nSubTotal = 0;
		
				/*if(nQtd == 0) {
					oProduto.checked = false;
					oCheckProduto.checked = false;
				}*/	
				
			break;
			case 5:
				nSubTotalDecremento = 0;	
				//nTotalItemDecremento = 0;
				if(nQtdAntiga && nQtd != Number(nQtdAntiga)) {
					nSubTotalDecremento = Number(nPreco) * Number(nQtdAntiga);
					//nTotalItemDecremento = Number(nQtdAntiga);					
				}

				nSubTotalProduto = (Number(nPreco) * Number(nQtd));
				nSubTotalProduto = nSubTotalProduto - (nSubTotalProduto * (Number(nPorcentagem) / 100));
				//nSubTotalItem = 0;								
				//if(oProduto.checked == true) {
				
				if(nPreco > 0)
					nSubTotal = Number(nSubTotal) + Number(nSubTotalProduto);																				

				nSubTotal = nSubTotal - nSubTotalDecremento;
				
				nSubTotalItem = (Number(nTotalItem) + Number(nQtd)) - Number(nQtdAntiga);
				
				nSubTotal = nSubTotal - (nSubTotal * (Number(nPorcentagemTotal) / 100));
				nSubTotal = nSubTotal.toFixed(2);								

				if(nSubTotal < 0)
					nSubTotal = 0;
		
				/*if(nQtd == 0) {
					oProduto.checked = false;
					oCheckProduto.checked = false;
				}*/
				
			break;
			
		}					
		
		document.getElementById("nSubTotalProduto"+nIdProduto).innerHTML = formataNumerico(nSubTotalProduto.toFixed(2),2,",",".");		
		
		if(nSubTotal){
			//document.getElementById("nSubTotal"+nIdCliente).innerHTML = formataNumerico(nSubTotal,2,",",".");
			document.getElementById("fSubTotal").value = formataNumerico(nSubTotal,2,",",".");
		}
		
		document.getElementById("nTotalItem"+nIdCliente).innerHTML = nSubTotalItem;
	}

	// CONTADOR UTILIZADO PARA AUXILIAR QUANDO O USUARIO MUDAR A QUANTIDADE DE PRODUTOS
	if(nTipo == 1 || nTipo == 4) {
		nQtdCliente = nQtdCliente - 1;
		if(nContadorCliente == nQtdCliente) {
			if(nTipo == 1)
				document.getElementById("fQtdAntiga"+nIdProduto).value = nQtd;
			if(nTipo == 4)
				document.getElementById("fPorcentagemAntiga"+nIdProduto).value = nPorcentagem;
				
			document.getElementById("fCountCliente").value = 0;
		} else {
			document.getElementById("fCountCliente").value = Number(nContadorCliente) + 1;
			//alert(document.getElementById("fCountCliente").value);
		}
	} 		
}



