//Copyright - 2000-2009 Alfredo J G A Borba. Todos os Direitos Reservados


//Inicialização de objeto de formatação
function inicializar() {
	alterFormat(document.config, document.config.ativa_format);
}
//Fim de Inicialização de Objeto de Formatação


//Verificação de Campos
var campovalor="";
var campid="";
var camp_ppm=false;
var conv=0;
var campnome;
var campnome2;
var ro = 1000;
function verifcampo(camp){
	if (!obj_format_loaded) {
		camp.value = "";
		alert ("Página Carregando...\n\nAguardar o carregamento total da página e tentar novamente");
		return;
	}
	campnome=camp.name;
	
	if (campnome!="rho") {campnome2 = campnome;}
	
	var camptipo=campnome.slice(0,1);
	conv=0;	
	if (camptipo=="d"){
		camp_ppm = false;
		var verifid=campnome.slice(2,3);
		if (isNaN(verifid)){
			campid=campnome.slice(1,2);
		}
		else {campid=campnome.slice(1,3);}
		
		if (campid=="20") {
			campid = "7";
			camp_ppm = true;
		}
		
		campovalor = obj_format.setValue(camp.value, true);
		camp.value = obj_format.getValueFormat();
		
		n=document.concent_massa_vol.elements.length

		for (i=0; i < n; i++){
			if (document.concent_massa_vol.elements[i].type=="text" && document.concent_massa_vol.elements[i].value!="" && document.concent_massa_vol.elements[i].name!=campnome){
			if (document.concent_massa_vol.elements[i].name!="rho") {document.concent_massa_vol.elements[i].value="";}
			}	
		}
	}
	else if (camptipo=="p"){
	alert ("Esse é um campo calculado, não pode se editado.");
	camp.value="";
	}
	else if (camptipo=="r") {
		ro = obj_format.setValue(camp.value, true);		
		camp.value = obj_format.getValueFormat();		
		if (ro<0 || isNaN(ro)) {
			document.concent_massa_vol.rho.value = "1000";
			if (!isNaN(ro)) {alert("Valor inválido para a densidade");}					
		}
		document.concent_massa_vol.calcular.click();
	}
}
//Fim da Verificação de Campos



//Construção da Matriz de Dados
var arr=20
var fc = new Array(arr);
for (i=0; i < arr; i++) {   
fc[i] = new Array(arr)   
}

fc[0][0]="1"; fc[0][1]="1000"; fc[0][2]="1000000"; fc[0][3]="1000000000"; fc[0][4]="0.001"; fc[0][5]="1"; fc[0][6]="0.1"; fc[0][7]="1000"; fc[0][8]="100"; fc[0][9]="1"; fc[0][10]="1000000"; fc[0][11]="100000"; fc[0][12]="1000"; fc[0][13]="100000000"; fc[0][14]="1000000"; fc[0][15]="58.417834731272116"; fc[0][16]="70.15687779443613"; fc[0][17]="0.008345406354526214"; fc[0][18]="0.01002241312246577"; fc[0][19]="0.06242797372531442";

fc[1][0]="0.001"; fc[1][1]="1"; fc[1][2]="1000"; fc[1][3]="1000000"; fc[1][4]="0.000001"; fc[1][5]="0.001"; fc[1][6]="0.0001"; fc[1][7]="1"; fc[1][8]="0.1"; fc[1][9]="0.001"; fc[1][10]="1000"; fc[1][11]="100"; fc[1][12]="1"; fc[1][13]="100000"; fc[1][14]="1000"; fc[1][15]="0.058417834731272116"; fc[1][16]="0.07015687779443613"; fc[1][17]="0.000008345406354526214"; fc[1][18]="0.00001002241312246577"; fc[1][19]="0.00006242797372531442";

fc[2][0]="0.000001"; fc[2][1]="0.001"; fc[2][2]="1"; fc[2][3]="1000"; fc[2][4]="0.000000001"; fc[2][5]="0.000001"; fc[2][6]="0.0000001"; fc[2][7]="0.001"; fc[2][8]="0.0001"; fc[2][9]="0.000001"; fc[2][10]="1"; fc[2][11]="0.1"; fc[2][12]="0.001"; fc[2][13]="100"; fc[2][14]="1"; fc[2][15]="0.000058417834731272116"; fc[2][16]="0.00007015687779443613"; fc[2][17]="8.345406354526214e-9"; fc[2][18]="1.002241312246577e-8"; fc[2][19]="6.242797372531442e-8"; 

fc[3][0]="0.000000001"; fc[3][1]="0.000001"; fc[3][2]="0.001"; fc[3][3]="1"; fc[3][4]="1.0000000000000002e-12"; fc[3][5]="0.000000001"; fc[3][6]="0.0000000001"; fc[3][7]="0.000001"; fc[3][8]="0.0000001"; fc[3][9]="0.000000001"; fc[3][10]="0.001"; fc[3][11]="0.0001"; fc[3][12]="0.000001"; fc[3][13]="0.1"; fc[3][14]="0.001"; fc[3][15]="5.841783473127212e-8"; fc[3][16]="7.015687779443613e-8"; fc[3][17]="8.345406354526214e-12"; fc[3][18]="1.002241312246577e-11"; fc[3][19]="6.242797372531442e-11"; 

fc[4][0]="1000"; fc[4][1]="1000000"; fc[4][2]="1000000000"; fc[4][3]="1000000000000"; fc[4][4]="1"; fc[4][5]="1000"; fc[4][6]="100"; fc[4][7]="1000000"; fc[4][8]="100000"; fc[4][9]="1000"; fc[4][10]="1000000000"; fc[4][11]="100000000"; fc[4][12]="1000000"; fc[4][13]="100000000000"; fc[4][14]="1000000000"; fc[4][15]="58417.834731272116"; fc[4][16]="70156.87779443613"; fc[4][17]="8.345406354526214"; fc[4][18]="10.02241312246577"; fc[4][19]="62.42797372531442"; 

fc[5][0]="1"; fc[5][1]="1000"; fc[5][2]="1000000"; fc[5][3]="1000000000"; fc[5][4]="0.001"; fc[5][5]="1"; fc[5][6]="0.1"; fc[5][7]="1000"; fc[5][8]="100"; fc[5][9]="1"; fc[5][10]="1000000"; fc[5][11]="100000"; fc[5][12]="1000"; fc[5][13]="100000000"; fc[5][14]="1000000"; fc[5][15]="58.417834731272116"; fc[5][16]="70.15687779443613"; fc[5][17]="0.008345406354526214"; fc[5][18]="0.01002241312246577"; fc[5][19]="0.06242797372531442";

fc[6][0]="10"; fc[6][1]="10000"; fc[6][2]="10000000"; fc[6][3]="10000000000"; fc[6][4]="0.01"; fc[6][5]="10"; fc[6][6]="1"; fc[6][7]="10000"; fc[6][8]="1000"; fc[6][9]="10"; fc[6][10]="10000000"; fc[6][11]="1000000"; fc[6][12]="10000"; fc[6][13]="1000000000"; fc[6][14]="10000000"; fc[6][15]="584.1783473127211"; fc[6][16]="701.5687779443613"; fc[6][17]="0.08345406354526214"; fc[6][18]="0.1002241312246577"; fc[6][19]="0.6242797372531442"; 

fc[7][0]="0.001"; fc[7][1]="1"; fc[7][2]="1000"; fc[7][3]="1000000"; fc[7][4]="0.000001"; fc[7][5]="0.001"; fc[7][6]="0.0001"; fc[7][7]="1"; fc[7][8]="0.1"; fc[7][9]="0.001"; fc[7][10]="1000"; fc[7][11]="100"; fc[7][12]="1"; fc[7][13]="100000"; fc[7][14]="1000"; fc[7][15]="0.058417834731272116"; fc[7][16]="0.07015687779443613"; fc[7][17]="0.000008345406354526214"; fc[7][18]="0.00001002241312246577"; fc[7][19]="0.00006242797372531442";

fc[8][0]="0.01"; fc[8][1]="10"; fc[8][2]="10000"; fc[8][3]="10000000"; fc[8][4]="0.00001"; fc[8][5]="0.01"; fc[8][6]="0.001"; fc[8][7]="10"; fc[8][8]="1"; fc[8][9]="0.01"; fc[8][10]="10000"; fc[8][11]="1000"; fc[8][12]="10"; fc[8][13]="1000000"; fc[8][14]="10000"; fc[8][15]="0.5841783473127212"; fc[8][16]="0.7015687779443613"; fc[8][17]="0.00008345406354526214"; fc[8][18]="0.0001002241312246577"; fc[8][19]="0.0006242797372531442";  

fc[9][0]="1"; fc[9][1]="1000"; fc[9][2]="1000000"; fc[9][3]="1000000000"; fc[9][4]="0.001"; fc[9][5]="1"; fc[9][6]="0.1"; fc[9][7]="1000"; fc[9][8]="100"; fc[9][9]="1"; fc[9][10]="1000000"; fc[9][11]="100000"; fc[9][12]="1000"; fc[9][13]="100000000"; fc[9][14]="1000000"; fc[9][15]="58.417834731272116"; fc[9][16]="70.15687779443613"; fc[9][17]="0.008345406354526214"; fc[9][18]="0.01002241312246577"; fc[9][19]="0.06242797372531442";

fc[10][0]="0.000001"; fc[10][1]="0.001"; fc[10][2]="1"; fc[10][3]="1000"; fc[10][4]="0.000000001"; fc[10][5]="0.000001"; fc[10][6]="0.0000001"; fc[10][7]="0.001"; fc[10][8]="0.0001"; fc[10][9]="0.000001"; fc[10][10]="1"; fc[10][11]="0.1"; fc[10][12]="0.001"; fc[10][13]="100"; fc[10][14]="1"; fc[10][15]="0.000058417834731272116"; fc[10][16]="0.00007015687779443613"; fc[10][17]="8.345406354526214e-9"; fc[10][18]="1.002241312246577e-8"; fc[10][19]="6.242797372531442e-8";

fc[11][0]="0.00001"; fc[11][1]="0.01"; fc[11][2]="10"; fc[11][3]="10000"; fc[11][4]="0.00000001"; fc[11][5]="0.00001"; fc[11][6]="0.000001"; fc[11][7]="0.01"; fc[11][8]="0.001"; fc[11][9]="0.00001"; fc[11][10]="10"; fc[11][11]="1"; fc[11][12]="0.01"; fc[11][13]="1000"; fc[11][14]="10"; fc[11][15]="0.0005841783473127212"; fc[11][16]="0.0007015687779443613"; fc[11][17]="8.345406354526214e-8"; fc[11][18]="1.002241312246577e-7"; fc[11][19]="6.242797372531442e-7"; 

fc[12][0]="0.001"; fc[12][1]="1"; fc[12][2]="1000"; fc[12][3]="1000000"; fc[12][4]="0.000001"; fc[12][5]="0.001"; fc[12][6]="0.0001"; fc[12][7]="1"; fc[12][8]="0.1"; fc[12][9]="0.001"; fc[12][10]="1000"; fc[12][11]="100"; fc[12][12]="1"; fc[12][13]="100000"; fc[12][14]="1000"; fc[12][15]="0.058417834731272116"; fc[12][16]="0.07015687779443613"; fc[12][17]="0.000008345406354526214"; fc[12][18]="0.00001002241312246577"; fc[12][19]="0.00006242797372531442";

fc[13][0]="0.00000001"; fc[13][1]="0.00001"; fc[13][2]="0.01"; fc[13][3]="10"; fc[13][4]="0.00000000001"; fc[13][5]="0.00000001"; fc[13][6]="0.000000001"; fc[13][7]="0.00001"; fc[13][8]="0.000001"; fc[13][9]="0.00000001"; fc[13][10]="0.01"; fc[13][11]="0.001"; fc[13][12]="0.00001"; fc[13][13]="1"; fc[13][14]="0.01"; fc[13][15]="5.841783473127212e-7"; fc[13][16]="7.015687779443613e-7"; fc[13][17]="8.345406354526214e-11"; fc[13][18]="1.002241312246577e-10"; fc[13][19]="6.242797372531442e-10"; 

fc[14][0]="0.000001"; fc[14][1]="0.001"; fc[14][2]="1"; fc[14][3]="1000"; fc[14][4]="0.000000001"; fc[14][5]="0.000001"; fc[14][6]="0.0000001"; fc[14][7]="0.001"; fc[14][8]="0.0001"; fc[14][9]="0.000001"; fc[14][10]="1"; fc[14][11]="0.1"; fc[14][12]="0.001"; fc[14][13]="100"; fc[14][14]="1"; fc[14][15]="0.000058417834731272116"; fc[14][16]="0.00007015687779443613"; fc[14][17]="8.345406354526214e-9"; fc[14][18]="1.002241312246577e-8"; fc[14][19]="6.242797372531442e-8";

fc[15][0]="0.01711806"; fc[15][1]="17.11806"; fc[15][2]="17118.06"; fc[15][3]="17118060"; fc[15][4]="0.00001711806"; fc[15][5]="0.01711806"; fc[15][6]="0.001711806"; fc[15][7]="17.11806"; fc[15][8]="1.711806"; fc[15][9]="0.01711806"; fc[15][10]="17118.06"; fc[15][11]="1711.806"; fc[15][12]="17.11806"; fc[15][13]="1711806"; fc[15][14]="17118.06"; fc[15][15]="1"; fc[15][16]="1.2009496434978253"; fc[15][17]="0.000142857166701161"; fc[15][18]="0.0001715642691751564"; fc[15][19]="0.0010686457999083557"; 

fc[16][0]="0.01425377"; fc[16][1]="14.25377"; fc[16][2]="14253.77"; fc[16][3]="14253770"; fc[16][4]="0.00001425377"; fc[16][5]="0.01425377"; fc[16][6]="0.001425377"; fc[16][7]="14.25377"; fc[16][8]="1.425377"; fc[16][9]="0.01425377"; fc[16][10]="14253.77"; fc[16][11]="1425.377"; fc[16][12]="14.25377"; fc[16][13]="1425377"; fc[16][14]="14253.77"; fc[16][15]="0.8326743801575646"; fc[16][16]="1"; fc[16][17]="0.00011895350273395512"; fc[16][18]="0.0001428571714926089"; fc[16][19]="0.0008898339790466749";

fc[17][0]="119.8264"; fc[17][1]="119826.4"; fc[17][2]="119826400"; fc[17][3]="119826400000"; fc[17][4]="0.1198264"; fc[17][5]="119.8264"; fc[17][6]="11.98264"; fc[17][7]="119826.4"; fc[17][8]="11982.64"; fc[17][9]="119.8264"; fc[17][10]="119826400"; fc[17][11]="11982640"; fc[17][12]="119826.4"; fc[17][13]="11982640000"; fc[17][14]="119826400"; fc[17][15]="7000"; fc[17][16]="8406.646101347221"; fc[17][17]="1"; fc[17][18]="1.2009496837778324"; fc[17][19]="7.480519350799016"; 

fc[18][0]="99.77637"; fc[18][1]="99776.37"; fc[18][2]="99776370"; fc[18][3]="99776370000"; fc[18][4]="0.09977637"; fc[18][5]="99.77637"; fc[18][6]="9.977637"; fc[18][7]="99776.37"; fc[18][8]="9977.637"; fc[18][9]="99.77637"; fc[18][10]="99776370"; fc[18][11]="9977637"; fc[18][12]="99776.37"; fc[18][13]="9977637000"; fc[18][14]="99776370"; fc[18][15]="5828.719492746257"; fc[18][16]="7000"; fc[18][17]="0.8326743522295587"; fc[18][18]="1"; fc[18][19]="6.22883660476725"; 

fc[19][0]="16.01846"; fc[19][1]="16018.46"; fc[19][2]="16018460"; fc[19][3]="16018460000"; fc[19][4]="0.01601846"; fc[19][5]="16.01846"; fc[19][6]="1.601846"; fc[19][7]="16018.46"; fc[19][8]="1601.846"; fc[19][9]="16.01846"; fc[19][10]="16018460"; fc[19][11]="1601846"; fc[19][12]="16018.46"; fc[19][13]="1601846000"; fc[19][14]="16018460"; fc[19][15]="935.7637489294932"; fc[19][16]="1123.8051406750635"; fc[19][17]="0.133680557873724"; fc[19][18]="0.16054362370569303"; fc[19][19]="1";
//Fim da Construção da Matriz de Dados


//Cálculo das Conversões
function converte(form){
	conv=1
	var verfns=0
	var campid2 = "";
	var excluir
	var chknome
		
	n=form.elements.length;
	if (campid!="" && !isNaN(campovalor) && loaded!=true){
		obj_format.setFormat(decSep, milSep, tipo, cdec, prec, estExp);
		var fator = (obj_format.setValue(ro, false))/1000;		
		document.config.dec.style.backgroundColor = "#FFFFFF";
		for (i=0; i < arr; i++) {		
			valor = (!camp_ppm)? (fc[campid][i]*campovalor) : (fator*fc[campid][i]*campovalor);			
			obj_format.setValue(valor, false);

			for (j=0; j < n; j++){
				var nome=form.elements[j].name;
				var camptipo2=nome.slice(0,1);
				
				var verifid2=nome.slice(2,3);
				if (isNaN(verifid2)){
					campid2=nome.slice(1,2);
				}
				else {campid2=nome.slice(1,3);}
								
				chknome="e"+i
				excluir=form.elements[chknome].checked						

				if (camptipo2=="p" && campid2==i && excluir!=true){
					form.elements[j].value = obj_format.getValueFormat();
					if (form.elements[j].value==0) {
						form.elements[j].style.backgroundColor = "#FFFF00";
						document.config.dec.style.backgroundColor = "#FFFF00";
					}
					else {
						form.elements[j].style.backgroundColor = "#FFFFFF";				
					}
					break		
				}	
				if (camptipo2=="p" && campid2==campid && !camp_ppm){
					form.elements[j].value="-------------";
					form.elements[j].style.backgroundColor = "#FFFFFF";
				}
			}
		}
		
		var d7 = obj_format.setValue(form.d7.value, false);
		var p7 = obj_format.setValue(form.p7.value, false);
		if (!camp_ppm) {
			var ppm = (!isNaN(d7))? (d7/fator) : (p7/fator);
			obj_format.setValue(ppm, false);
			form.p20.value = obj_format.getValueFormat();
			if (form.p20.value==0) {form.p20.style.backgroundColor = "#FFFF00";}
		}
		else {
			form.p20.value = "-------------";
			form.p20.style.backgroundColor = "#FFFFFF";
		}
		
		verfns=Math.round(1000000000000000*Math.tan(campovalor))/1000000000000000
		if (verfns==0.142465824387511){
		alert("1126185415.2151821")
		}
		
		if (tipo!=3){
			obj_format.setValue(campovalor, false);
			form.elements[campnome2].value = obj_format.getValueFormat();
			obj_format.setValue(ro, false);
			form.rho.value = obj_format.getValueFormat();			
		}		
	}
}
//Fim do Cálculo das Conversões



//Exclui Resultado
function exclui(exc){
	var excid
	var excnome=exc.name
	var excstatus=exc.checked
	
	if (excstatus==true){
		
		var verifid3=excnome.slice(2,3);
		if (isNaN(verifid3)){
			excid=excnome.slice(1,2);
		}
		else {	excid=excnome.slice(1,3);}

		n=document.concent_massa_vol.elements.length
		
		for (i=0; i < n; i++){
		
			var valor3=document.concent_massa_vol.elements[i].value
			var nome3=document.concent_massa_vol.elements[i].name;
			var camptipo3=nome3.slice(0,1);
			
			var verifid3=nome3.slice(2,3);
			if (isNaN(verifid3)){
				campid3=nome3.slice(1,2);
			}
			else {	campid3=nome3.slice(1,3);}		
		
			if (camptipo3=="p" && campid3==excid){
			document.concent_massa_vol.elements[i].value=""}	
		}
	}
}
//Fim Exclui Resultado


//Zera valor de Variáveis
function limpa(form){
	campovalor=""
	campid=""
	conv=0
	ro = 1000;
	document.config.dec.style.backgroundColor = "#FFFFFF";
	for (var i=0; i < document.concent_massa_vol.elements.length; i++){
		if (document.concent_massa_vol.elements[i].type=="text"){
			form.elements[i].style.backgroundColor = "#FFFFFF";
		}	
	}
}
//Fim de Zera valor de Variáveis


//Transfere para Memoria
function Transfere(form) {
	if (parent.frames[0].name!="iframewebcalc") {
		var cpresult;
		var opmemo = 0;
		
		for (var i = 0; i < form.opcaomemo.length; i++) {
			if (form.opcaomemo[i].checked) {
				opmemo = form.opcaomemo[i].value;
				break
			}
		}		
		
		cpresult = eval("form.p"+opmemo+".value");
		var resultmemo = obj_format.setValue(cpresult, false);
		
		if (!isNaN(resultmemo) && cpresult!="") {
			var memonr = form.memonr.options[form.memonr.selectedIndex].value;
			var operacao = form.operacao.options[form.operacao.selectedIndex].value;		
			var valormemo = eval("parent.frames['frame_menu'].document.memo.memotemp"+memonr+".value");
			var Mat_desc = ["kg/m3", "g/m3", "mg/m3", "µg/m3", "kg/L", "g/L", "g/dL", "mg/L", "mg/dL", "mg/mL", "µg/L", "µg/dL", "µg/mL", "ng/dL", "ng/mL", "gr/gal (US)", "gr/gal (UK)", "lb/gal (US)", "lb/gal (UK)", "lb/ft3", "ppm"];
			var descricao = eval("Mat_desc["+opmemo+"]");		
	
			valormemo = parseFloat(valormemo);
			if (isNaN(valormemo)) {valormemo=0;}
				
			switch (operacao) {
				case "1" :
	eval("parent.frames['frame_menu'].document.memo.memotemp"+memonr+".value = resultmemo");			
	eval("parent.frames['frame_menu'].document.memo.memodesc"+memonr+".value = descricao");
	if (is.ie4) {parent.frames["frame_menu"].document.images["memoled"].src = "imagens/ledmemo2.gif";}			
				break;
				case "2" :
	eval("parent.frames['frame_menu'].document.memo.memotemp"+memonr+".value = valormemo+resultmemo");
	eval("parent.frames['frame_menu'].document.memo.memodesc"+memonr+".value = 'Soma'");
	if (is.ie4) {parent.frames["frame_menu"].document.images["memoled"].src = "imagens/ledmemo2.gif";}
				break;
				case "3" :
	eval("parent.frames['frame_menu'].document.memo.memotemp"+memonr+".value = valormemo-resultmemo");
	eval("parent.frames['frame_menu'].document.memo.memodesc"+memonr+".value = 'Subtração'");
	if (is.ie4) {parent.frames["frame_menu"].document.images["memoled"].src = "imagens/ledmemo2.gif";}
				break;
				case "4" :
	eval("parent.frames['frame_menu'].document.memo.memotemp"+memonr+".value = valormemo*resultmemo");
	eval("parent.frames['frame_menu'].document.memo.memodesc"+memonr+".value = 'Multiplicação'");
	if (is.ie4) {parent.frames["frame_menu"].document.images["memoled"].src = "imagens/ledmemo2.gif";}
				break;
				case "5" :
	eval("parent.frames['frame_menu'].document.memo.memotemp"+memonr+".value = valormemo/resultmemo");
	eval("parent.frames['frame_menu'].document.memo.memodesc"+memonr+".value = 'Divisão'");
	if (is.ie4) {parent.frames["frame_menu"].document.images["memoled"].src = "imagens/ledmemo2.gif";}
				break;
			}
		}
		else {alert("Não existe resultado a transferir.")}
	}
	else {alert("Esta operação não pode ser executada nesta janela.\n\nPara transferir valores para a memória abra esta calculadora através do menu principal.")}
}
//Fim de Transfere para Memoria


//Impressão dos Resultados
function JanelaImp(form) {	
	if (parent.frames[0].name!="iframewebcalc") {
		if ((form.p0.value!="" || form.p1.value!="") && conv==1) {
				
			winimp = window.open("concent_massa_vol_imp.html","janela_imp","toolbar=0,location=no,directories=0,status=0,menubar=1,scrollbars=1,resizable=1,width=500,height=400,left=50,top=30");	
			winimp.focus();
		}
		else {alert("Não existem valores a imprimir. Clique no botão 'Limpar', refaça o cálculo e tente novamente.")}
	}
		else {alert("Esta operação não pode ser executada nesta janela.\n\nPara imprimir os resultados abra esta calculadora através do menu principal.")}
}
//Fim de Impressão dos Resultados
