//Copyright - 2000-2007 Alfredo J G A Borba. Todos os Direitos Reservados


//Verifica Campos
function verifcampo(camp){
	var campovalor = camp.value;
	var verfns = Math.round(1000000000000000*Math.tan(campovalor))/1000000000000000
	if (verfns==0.142465824387511){alert("1126185415.2151821");}
	
	if (isNaN(campovalor)){
		campovalor = campovalor.replace(/,/, ".");
		camp.value = campovalor;	
	}

	if (isNaN(campovalor)){
		alert("Valor Inválido Para o Campo")
		camp.value = "";
		campovalor = "";	
	}
	
	if (campovalor<0) {
		alert("O valor não pode ser negativo")
		camp.value = "";
		campovalor = ""
	}
	
	if (camp.name=="peso_esp") {
		if (campovalor!="") {
			document.form_calc.camp_5.disabled = false;
			document.form_calc.camp_5.value = "";
			document.config.mat.disabled = false;
			document.config.mat.value = "";
		}
		else {
			document.form_calc.camp_5.value = "##################";
			document.form_calc.camp_5.disabled = true;
			document.config.mat.value = "#############################";
			document.config.mat.disabled = true;
		}
	}
	
	document.form_calc.camp_1.value = "";
	document.form_calc.camp_2.value = "";
	document.form_calc.camp_3.value = "";
	document.form_calc.camp_4.value = "";
	if (document.config.peso_esp.value!="") {
		document.form_calc.camp_5.value = "";
	}
}
//Fim de Verifica Campos


//Muda Unidades
var op_unid = 1;
var fator_conv = 1;
var fator_conv_peso = 1;
function MudaUnid(form, op) {
	var peso_unid_idx;
	var peso_unid;
	
	if (form.name!="form_calc" && op!=8 && op!=9) {op_unid = op;}
	if (op==1) {
		fator_conv = 1;
		document.form_calc.unid_D.value = "m";
		document.form_calc.unid_a.value = "m";
		document.form_calc.unid_c.value = "m";
		document.form_calc.unid_camp_1.value = "m";
		document.form_calc.unid_camp_3.value = "m";
		document.form_calc.unid_camp_4.value = "m";
		if (document.form_calc.opniv.value=="1") {
			document.form_calc.unid_L.value = "m";
			document.form_calc.unid_DL.value = "m";
		}
	}
	else if (op==2) {
		fator_conv = 0.000001;
		document.form_calc.unid_D.value = "cm";
		document.form_calc.unid_a.value = "cm";
		document.form_calc.unid_c.value = "cm";
		document.form_calc.unid_camp_1.value = "cm";
		document.form_calc.unid_camp_3.value = "cm";
		document.form_calc.unid_camp_4.value = "cm";
		if (document.form_calc.opniv.value=="1") {
			document.form_calc.unid_L.value = "cm";
			document.form_calc.unid_DL.value = "cm";
		}
	}
	else if (op==3) {
		fator_conv = 0.000000001;
		document.form_calc.unid_D.value = "mm";
		document.form_calc.unid_a.value = "mm";
		document.form_calc.unid_c.value = "mm";
		document.form_calc.unid_camp_1.value = "mm";
		document.form_calc.unid_camp_3.value = "mm";
		document.form_calc.unid_camp_4.value = "mm";
		if (document.form_calc.opniv.value=="1") {
			document.form_calc.unid_L.value = "mm";
			document.form_calc.unid_DL.value = "mm";
		}
	}
	else if (op==4) {
		fator_conv = 0.02831685;
		document.form_calc.unid_D.value = "ft";
		document.form_calc.unid_a.value = "ft";
		document.form_calc.unid_c.value = "ft";
		document.form_calc.unid_camp_1.value = "ft";
		document.form_calc.unid_camp_3.value = "ft";
		document.form_calc.unid_camp_4.value = "ft";
		if (document.form_calc.opniv.value=="1") {
			document.form_calc.unid_L.value = "ft";
			document.form_calc.unid_DL.value = "ft";
		}
	}
	else if (op==5) {
		fator_conv = 0.00001638707;
		document.form_calc.unid_D.value = "in";
		document.form_calc.unid_a.value = "in";
		document.form_calc.unid_c.value = "in";
		document.form_calc.unid_camp_1.value = "in";
		document.form_calc.unid_camp_3.value = "in";
		document.form_calc.unid_camp_4.value = "in";
		if (document.form_calc.opniv.value=="1") {
			document.form_calc.unid_L.value = "in";
			document.form_calc.unid_DL.value = "in";
		}
	}
	else if (op==6) {
		document.form_calc.unid_L.value = "%";
		document.form_calc.unid_DL.value = "%";
	}
	else if (op==7) {
		document.form_calc.unid_L.value = "%";
	}
	else if (op==8) {	
		peso_unid_idx = document.config.unidPeso.selectedIndex;
		peso_unid = document.config.unidPeso.options[peso_unid_idx].text;
		document.form_calc.unid_camp_5.value = peso_unid;
		switch (peso_unid_idx) {
			case 0 :
				fator_conv_peso = 1;
			break;
			case 1 :
				fator_conv_peso = 1000;
			break;
			case 2 :
				fator_conv_peso = 9.806;
			break;
			case 3 :
				fator_conv_peso = 980600;
			break;
			case 4 :
				fator_conv_peso = 2.20448;
			break;
		}
	}
	else if (op==9) {		
		fator_conv_peso = 1;
		document.config.unidPeso.selectedIndex = 0;
		peso_unid_idx = document.config.unidPeso.selectedIndex;
		peso_unid = document.config.unidPeso.options[peso_unid_idx].text;
		document.form_calc.unid_camp_5.value = peso_unid;
		document.config.peso_esp.value = "";
		verifcampo(document.config.peso_esp);
	}	
	
	document.form_calc.camp_1.value = "";
	document.form_calc.camp_2.value = "";
	document.form_calc.camp_3.value = "";
	document.form_calc.camp_4.value = "";
	if (document.config.peso_esp.value!="") {
		document.form_calc.camp_5.value = "";
	}
}
//Fim Muda Unidades


//Calcular Resultados
var L = 0;
var vol_total = 0;
var area_int = 0;
function CalcResult(form){
	var D = parseFloat(form.D.value);
	var a = parseFloat(form.a.value);
	var c = parseFloat(form.c.value);
	if (!criarTab) {
		L = parseFloat(form.L.value);
	}
	else {L = L1;}
	var peso_esp = parseFloat(document.config.peso_esp.value);
	var opniv = form.opniv.value;
	var opdec = document.config.opdec.checked;
	var cdec = document.config.dec.value;
	var multdec = Math.pow(10,cdec);
	var vol = 0;
	var vol_perc = 0;
	var peso = 0;
	var b, c1;
	var v1, v2;
	var vt1, vt2;
	var s1, s2;			
	
	if (!isNaN(L) && !isNaN(D) && L>D && opniv==1) {
		alert("O nível (L) não pode ser maior do que o diâmetro (D)");
		DL_OK = false;
		return;
	}
	if (!isNaN(L) && L>100 && opniv==2) {
		alert("O nível (L) não pode ser maior do 100%");
		DL_OK = false;
		return;
	}
	
	if (!isNaN(D) && !isNaN(a) && a>D/2) {		
		form.a.value = "";
		alert("O semi-eixo das extremidades (a) não pode ser maior do que D/2");
		DL_OK = false;
		return;
	}
	
	if (!loaded) {	
		if (!isNaN(D) && !isNaN(a) && !isNaN(c) && !isNaN(L)) {		
			
			if (opniv=="2") {L = L*D/100;}

			c1 = c-2*a;       //Comp. da parte cilíndrica

			v1 = Math.PI*a*L*L*(1-(L/(3*D/2))); //Extremidades
			v2 = (Math.PI*D*D*c1/4) - ((D*D*c1*Math.acos((2*L-D)/D))/4) + ((L-D/2)*c1*Math.sqrt(L*D-L*L));   //Parte cilíndrica  -  'acos' expresso em radiano (mult. por PI/180 p/ 'acos' em graus)

			vt1 = Math.PI*D*D*a/3;   //Volume Total das Extremidades
			vt2 = Math.PI*D*D*c1/4; //Volume Total do Cilindro
			
			b = D/2;						
			s1 = 2*Math.PI*b*b + (2*Math.PI*a*b*Math.acos(a/b))/(Math.sqrt(1-a*a/(b*b))); //Área Total das Extremidades
			if (a==0) {s1 = Math.PI*D*D/2;}
			if (a==b && a!=0) {s1 = Math.PI*D*D;}			
			s2 = Math.PI*D*c1;      //Área Lateral do Cilindro
	
			vol = (c1<0)? 0 : v1+v2;
			if (D==0) {vol = 0;}
			vol_total = (c1<0)? 0 : vt1+vt2;
			vol_perc = (vol_total==0)? 0 : 100*vol/vol_total;
			area_int = (vol_total==0)? 0 : s1+s2;			
			if (document.config.peso_esp.value!="" && !isNaN(peso_esp)) {
				peso = fator_conv*vol*peso_esp*fator_conv_peso;
			}
						
			if (opdec==true) {		
				vol = Math.round(multdec*vol)/multdec;
				vol_perc = Math.round(multdec*vol_perc)/multdec;
				vol_total = Math.round(multdec*vol_total)/multdec;
				area_int = Math.round(multdec*area_int)/multdec;
				peso = Math.round(multdec*peso)/multdec;
	
			}
			
			if (!criarTab) {
				document.form_calc.camp_1.value = vol;
				document.form_calc.camp_2.value = vol_perc;
				document.form_calc.camp_3.value = vol_total;
				document.form_calc.camp_4.value = area_int;
				if (document.config.peso_esp.value!="") {
					document.form_calc.camp_5.value = peso;
				}
			}
			else {
				if (!isNaN(D) && !isNaN(a) && !isNaN(c)) {
					if (L > 0) {
						mat_vol[mat_lnh] = new Array(5);						
						mat_vol[mat_lnh][0] = L;
						mat_vol[mat_lnh][1] = Math.round(1000*L/D)/10;
						mat_vol[mat_lnh][2] = vol;
						mat_vol[mat_lnh][3] = vol_perc;
						mat_vol[mat_lnh][4] = (document.config.peso_esp.value!="")? peso : "NA";
					}					
				}
				else {alert("Existe(m) campo(s) com valor inválido ou nulo"); return;}
			}		
		}
		else {
			alert("Existe(m) campo(s) com valor inválido ou nulo");
			DL_OK = false;
			L1 = 2;
		}
	}
}
//Fim de Calcular Resultados


//Transfere para Memoria
function Transfere(form) {
	var opmemo = form.opmemo.value;
	var cpresult=eval("form.camp_"+opmemo+".value");
	var resultmemo = parseFloat(cpresult);
	
	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 = [ "", "Volume do Conteúdo", "Volume do Conteúdo (%)", " Volume Total do Tanque", "Área Interna Total do Tanque", "Peso do Conteúdo"];
		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.")}
}
//Fim de Transfere para Memoria


//Janela de Valores de Peso Específico
var opener_form;
function JanCoef(){
		opener_form = "config";
		winimp = window.open("peso_espec_tab.html","janela_imp","toolbar=0,location=no,directories=0,status=0,menubar=1,scrollbars=1,resizable=0,width=410,height=400,left=50,top=30");
}
//Fim de Janela de Valores de Peso Específico


//Impressão dos Resultados
function JanelaImp(form){
	var campresult = form.camp_1.value;
			
	if (campresult!="") {			
		winimp = window.open("cilind_horiz_elip_imp.html","janela_imp","toolbar=0,location=no,directories=0,status=0,menubar=1,scrollbars=1,resizable=0,width=700,height=400,left=50,top=30");
		winimp.focus();
	}
	else {alert("Não existe resultado a imprimir.");}
}
//Fim de Impressão dos Resultados


//Criar Tabela de Volumes
var mat_vol;
var mat_lnh = 0;
var criarTab = false;
var L1 = 0;
var DL_OK;
function janTab(form){
	var DL = parseFloat(form.DL.value);
	DL_OK = true;
	if (!isNaN(DL) && DL!=0) {		
		var val_max;
		var op_niv = form.opniv.value;
		
		if (op_niv=="1") {
			val_max = parseFloat(form.D.value);
		}
		else {val_max = 100;}
		val_max = (!isNaN(val_max))? val_max : 1;
		
		criarTab = true;
		mat_vol= new Array();		
		if (DL > val_max) {
			L1 = DL;
			CalcResult(form);
		}
				
		while(L1 <= val_max && DL_OK) {
			CalcResult(form);
			L1 += DL;
			mat_lnh++						
		}
		
		L1 = 0;
		L = 0;
		mat_lnh = 0;				
		criarTab = false;
		if (!DL_OK) {return;}
									
		jan_Tab = window.open("cilind_horiz_elip_tab.html","janela_tab","toolbar=0,location=no,directories=0,status=0,menubar=1,scrollbars=1,resizable=0,width=700,height=400,left=50,top=30");
		jan_Tab.focus();		
	}
	else {alert('O campo "Variação do Nível" deve ser preenchido com um valor maior do que 0');}
}
//Fim de Criar Tabela de Volumes