//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 campL100km=false;
var campGal100mi=false;
var conv=0;
var campnome;
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;
	var camptipo=campnome.slice(0,1);
	conv=0;
	if (camptipo=="d"){	
		var verifid=campnome.slice(2,3);
		if (isNaN(verifid)){
			campid=campnome.slice(1,2);
		}
		else {	campid=campnome.slice(1,3);}
		
		campovalor = obj_format.setValue(camp.value, true);
		camp.value = obj_format.getValueFormat();
		
		if (campid=="18") {
			campL100km = true;
			campovalor = 100 / campovalor;
		}
		else {
			campL100km = false;
		}
		
		if (campid=="19") {
			campGal100mi = true;
			campovalor = 100 / campovalor;
		}
		else {
			campGal100mi = false;
		}
		
		n=document.consumo_comb.elements.length

		for (i=0; i < n; i++){
			if (document.consumo_comb.elements[i].type=="text" && document.consumo_comb.elements[i].value!="" && document.consumo_comb.elements[i].name!=campnome){
			document.consumo_comb.elements[i].value=""}	
		}
	}
	else {
	alert ("Esse é um campo calculado, não pode se editado.");
	camp.value="";
	}
}
//Fim da Verificação de Campos


//Construção da Matriz de Dados
var arr=18
var fc = new Array(arr);
for (i=0; i < arr; i++) {   
fc[i] = new Array(arr)   
}

fc[0][0]="1"; fc[0][1]="0.000001"; fc[0][2]="0.001"; fc[0][3]="0.003785412"; fc[0][4]="0.00454609"; fc[0][5]="0.001"; fc[0][6]="0.000000001"; fc[0][7]="0.000001"; fc[0][8]="0.000003785412"; fc[0][9]="0.00000454609"; fc[0][10]="0.0006213711922373339"; fc[0][11]="0.0000006213711922373339"; fc[0][12]="0.00000235214596754951"; fc[0][13]="0.0000028248093633182224"; fc[0][14]="0.0005399568034557236"; fc[0][15]="0.0000005399568034557236"; fc[0][16]="0.000002043958963282935"; fc[0][17]="0.000002454692224622033";

fc[1][0]="1000000"; fc[1][1]="1"; fc[1][2]="1000"; fc[1][3]="3785.412"; fc[1][4]="4546.09"; fc[1][5]="1000"; fc[1][6]="0.001"; fc[1][7]="1"; fc[1][8]="3.785412"; fc[1][9]="4.54609"; fc[1][10]="621.371192237334"; fc[1][11]="0.621371192237334"; fc[1][12]="2.35214596754951"; fc[1][13]="2.8248093633182223"; fc[1][14]="539.9568034557236"; fc[1][15]="0.5399568034557235"; fc[1][16]="2.043958963282935"; fc[1][17]="2.454692224622033";

fc[2][0]="1000"; fc[2][1]="0.001"; fc[2][2]="1"; fc[2][3]="3.785412"; fc[2][4]="4.54609"; fc[2][5]="1"; fc[2][6]="0.000001"; fc[2][7]="0.001"; fc[2][8]="0.003785412"; fc[2][9]="0.00454609"; fc[2][10]="0.6213711922373339"; fc[2][11]="0.0006213711922373339"; fc[2][12]="0.00235214596754951"; fc[2][13]="0.0028248093633182224"; fc[2][14]="0.5399568034557236"; fc[2][15]="0.0005399568034557236"; fc[2][16]="0.002043958963282935"; fc[2][17]="0.002454692224622033";

fc[3][0]="264.172037284184"; fc[3][1]="0.000264172037284184"; fc[3][2]="0.264172037284184"; fc[3][3]="1"; fc[3][4]="1.200949856977256"; fc[3][5]="0.264172037284184"; fc[3][6]="0.000000264172037284184"; fc[3][7]="0.000264172037284184"; fc[3][8]="0.001"; fc[3][9]="0.001200949856977256"; fc[3][10]="0.16414889376303884"; fc[3][11]="0.0001641488937630388"; fc[3][12]="0.0006213711922373322"; fc[3][13]="0.0007462356444472135"; fc[3][14]="0.14264148881435423"; fc[3][15]="0.00014264148881435423"; fc[3][16]="0.0005399568034557216"; fc[3][17]="0.0006484610458840483";

fc[4][0]="219.969248299087"; fc[4][1]="0.000219969248299087"; fc[4][2]="0.219969248299087"; fc[4][3]="0.8326742321423436"; fc[4][4]="1"; fc[4][5]="0.219969248299087"; fc[4][6]="0.00000021996924829908702"; fc[4][7]="0.00021996924829908702"; fc[4][8]="0.0008326742321423436"; fc[4][9]="0.001"; fc[4][10]="0.13668255407115384"; fc[4][11]="0.00013668255407115381"; fc[4][12]="0.0005173997803715944"; fc[4][13]="0.000621371192237332"; fc[4][14]="0.11877389217013338"; fc[4][15]="0.00011877389217013338"; fc[4][16]="0.0004496081167075284"; fc[4][17]="0.0005399568034557223";

fc[5][0]="1000"; fc[5][1]="0.001"; fc[5][2]="1"; fc[5][3]="3.785412"; fc[5][4]="4.54609"; fc[5][5]="1"; fc[5][6]="0.000001"; fc[5][7]="0.001"; fc[5][8]="0.003785412"; fc[5][9]="0.00454609"; fc[5][10]="0.6213711922373339"; fc[5][11]="0.0006213711922373339"; fc[5][12]="0.00235214596754951"; fc[5][13]="0.0028248093633182224"; fc[5][14]="0.5399568034557236"; fc[5][15]="0.0005399568034557236"; fc[5][16]="0.002043958963282935"; fc[5][17]="0.002454692224622033";

fc[6][0]="1000000000"; fc[6][1]="1000"; fc[6][2]="1000000"; fc[6][3]="3785412"; fc[6][4]="4546090"; fc[6][5]="1000000"; fc[6][6]="1"; fc[6][7]="1000"; fc[6][8]="3785.412"; fc[6][9]="4546.09"; fc[6][10]="621371.1922373339"; fc[6][11]="621.3711922373339"; fc[6][12]="2352.14596754951"; fc[6][13]="2824.8093633182225"; fc[6][14]="539956.8034557236"; fc[6][15]="539.9568034557235"; fc[6][16]="2043.958963282935"; fc[6][17]="2454.6922246220333";

fc[7][0]="1000000"; fc[7][1]="1"; fc[7][2]="1000"; fc[7][3]="3785.412"; fc[7][4]="4546.09"; fc[7][5]="1000"; fc[7][6]="0.001"; fc[7][7]="1"; fc[7][8]="3.785412"; fc[7][9]="4.54609"; fc[7][10]="621.371192237334"; fc[7][11]="0.621371192237334"; fc[7][12]="2.35214596754951"; fc[7][13]="2.8248093633182223"; fc[7][14]="539.9568034557236"; fc[7][15]="0.5399568034557235"; fc[7][16]="2.043958963282935"; fc[7][17]="2.454692224622033";

fc[8][0]="264172.037284184"; fc[8][1]="0.264172037284184"; fc[8][2]="264.172037284184"; fc[8][3]="1000"; fc[8][4]="1200.949856977256"; fc[8][5]="264.172037284184"; fc[8][6]="0.000264172037284184"; fc[8][7]="0.264172037284184"; fc[8][8]="1"; fc[8][9]="1.200949856977256"; fc[8][10]="164.14889376303884"; fc[8][11]="0.16414889376303884"; fc[8][12]="0.6213711922373323"; fc[8][13]="0.7462356444472136"; fc[8][14]="142.64148881435423"; fc[8][15]="0.14264148881435423"; fc[8][16]="0.5399568034557216"; fc[8][17]="0.6484610458840484"; 

fc[9][0]="219969.248299087"; fc[9][1]="0.219969248299087"; fc[9][2]="219.969248299087"; fc[9][3]="832.6742321423435"; fc[9][4]="1000"; fc[9][5]="219.969248299087"; fc[9][6]="0.000219969248299087"; fc[9][7]="0.219969248299087"; fc[9][8]="0.8326742321423435"; fc[9][9]="1"; fc[9][10]="136.68255407115382"; fc[9][11]="0.13668255407115382"; fc[9][12]="0.5173997803715944"; fc[9][13]="0.621371192237332"; fc[9][14]="118.77389217013336"; fc[9][15]="0.11877389217013336"; fc[9][16]="0.44960811670752837"; fc[9][17]="0.5399568034557223"; 

fc[10][0]="1609.344"; fc[10][1]="0.001609344"; fc[10][2]="1.609344"; fc[10][3]="6.092030089728"; fc[10][4]="7.31622266496"; fc[10][5]="1.609344"; fc[10][6]="0.000001609344"; fc[10][7]="0.001609344"; fc[10][8]="0.006092030089728"; fc[10][9]="0.00731622266496"; fc[10][10]="1"; fc[10][11]="0.001"; fc[10][12]="0.003785412"; fc[10][13]="0.00454609"; fc[10][14]="0.868976241900648"; fc[10][15]="0.000868976241900648"; fc[10][16]="0.0032894330938056117"; fc[10][17]="0.0039504442035421215"; 

fc[11][0]="1609344"; fc[11][1]="1.609344"; fc[11][2]="1609.344"; fc[11][3]="6092.030089728"; fc[11][4]="7316.22266496"; fc[11][5]="1609.344"; fc[11][6]="0.001609344"; fc[11][7]="1.609344"; fc[11][8]="6.092030089728"; fc[11][9]="7.31622266496"; fc[11][10]="1000"; fc[11][11]="1"; fc[11][12]="3.785412"; fc[11][13]="4.54609"; fc[11][14]="868.976241900648"; fc[11][15]="0.868976241900648"; fc[11][16]="3.2894330938056117"; fc[11][17]="3.9504442035421215";

fc[12][0]="425143.683171079"; fc[12][1]="0.425143683171079"; fc[12][2]="425.143683171079"; fc[12][3]="1609.344"; fc[12][4]="1932.7414466272107"; fc[12][5]="425.143683171079"; fc[12][6]="0.000425143683171079"; fc[12][7]="0.425143683171079"; fc[12][8]="1.609344"; fc[12][9]="1.9327414466272107"; fc[12][10]="264.17203728418474"; fc[12][11]="0.2641720372841847"; fc[12][12]="1"; fc[12][13]="1.2009498569772598"; fc[12][14]="229.55922417444873"; fc[12][15]="0.22955922417444873"; fc[12][16]="0.8689762419006473"; fc[12][17]="1.0435968934272208"; 

fc[13][0]="354006.189934647"; fc[13][1]="0.354006189934647"; fc[13][2]="354.006189934647"; fc[13][3]="1340.059279452892"; fc[13][4]="1609.344"; fc[13][5]="354.006189934647"; fc[13][6]="0.000354006189934647"; fc[13][7]="0.354006189934647"; fc[13][8]="1.340059279452892"; fc[13][9]="1.609344"; fc[13][10]="219.9692482990877"; fc[13][11]="0.21996924829908768"; fc[13][12]="0.8326742321423458"; fc[13][13]="1"; fc[13][14]="191.14805072065175"; fc[13][15]="0.19114805072065175"; fc[13][16]="0.7235741249745629"; fc[13][17]="0.8689762419006487";

fc[14][0]="1852"; fc[14][1]="0.001852"; fc[14][2]="1.852"; fc[14][3]="7.010583024"; fc[14][4]="8.41935868"; fc[14][5]="1.852"; fc[14][6]="0.000001852"; fc[14][7]="0.001852"; fc[14][8]="0.007010583024"; fc[14][9]="0.00841935868"; fc[14][10]="1.1507794480235424"; fc[14][11]="0.0011507794480235424"; fc[14][12]="0.004356174331901693"; fc[14][13]="0.005231546940865348"; fc[14][14]="1"; fc[14][15]="0.001"; fc[14][16]="0.003785412"; fc[14][17]="0.00454609";

fc[15][0]="1852000"; fc[15][1]="1.852"; fc[15][2]="1852"; fc[15][3]="7010.583024"; fc[15][4]="8419.35868"; fc[15][5]="1852"; fc[15][6]="0.001852"; fc[15][7]="1.852"; fc[15][8]="7.010583024"; fc[15][9]="8.41935868"; fc[15][10]="1150.7794480235425"; fc[15][11]="1.1507794480235425"; fc[15][12]="4.356174331901692"; fc[15][13]="5.231546940865348"; fc[15][14]="1000"; fc[15][15]="1"; fc[15][16]="3.785412"; fc[15][17]="4.54609";

fc[16][0]="489246.61305031"; fc[16][1]="0.48924661305031"; fc[16][2]="489.24661305031"; fc[16][3]="1852"; fc[16][4]="2224.159135121884"; fc[16][5]="489.24661305031"; fc[16][6]="0.00048924661305031"; fc[16][7]="0.48924661305031"; fc[16][8]="1.852"; fc[16][9]="2.224159135121884"; fc[16][10]="304.0037512491487"; fc[16][11]="0.3040037512491487"; fc[16][12]="1.150779448023542"; fc[16][13]="1.3820284135162428"; fc[16][14]="264.1720372841847"; fc[16][15]="0.2641720372841847"; fc[16][16]="1"; fc[16][17]="1.2009498569772605"; 

fc[17][0]="407383.04784991"; fc[17][1]="0.40738304784991"; fc[17][2]="407.38304784991"; fc[17][3]="1542.1126779276235"; fc[17][4]="1852"; fc[17][5]="407.38304784991"; fc[17][6]="0.00040738304784991"; fc[17][7]="0.40738304784991"; fc[17][8]="1.5421126779276235"; fc[17][9]="1.852"; fc[17][10]="253.13609013977742"; fc[17][11]="0.25313609013977742"; fc[17][12]="0.9582243932481949"; fc[17][13]="1.1507794480235411"; fc[17][14]="219.96924829908747"; fc[17][15]="0.21996924829908747"; fc[17][16]="0.8326742321423443"; fc[17][17]="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;
	var valor_d = 0;
	
	obj_format.setFormat(decSep, milSep, tipo, cdec, prec, estExp);
	
	n=form.elements.length;
	if (campid!="" && !isNaN(campovalor) && loaded!=true){
		document.config.dec.style.backgroundColor = "#FFFFFF";
		if (campL100km) {campid = "7";}
		if (campGal100mi) {campid = "12";}
		if (campL100km || campGal100mi) {
			obj_format.setValue(campovalor, false);
			valor_d = obj_format.getValueFormat();
		}
		
		for (i=0; i < arr; i++) {   
			valor = 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 && campid2!=campid && 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){
					form.elements[j].value = (!campL100km && !campGal100mi)? "-------------" : valor_d;
					form.elements[j].style.backgroundColor = "#FFFFFF";
				}
			}
		}
		
		if (!campL100km) {			
			valor_d = (campid=="7")? form.d7.value : form.p7.value;
			valor_d = 100 / obj_format.setValue(valor_d, false);
			obj_format.setValue(valor_d, false);
			form.p18.value = obj_format.getValueFormat();
		}
		if (!campGal100mi) {			
			valor_d = (campid=="12")? form.d12.value : form.p12.value;
			valor_d = 100 / obj_format.setValue(valor_d, false);		
			obj_format.setValue(valor_d, false);
			form.p19.value = obj_format.getValueFormat();
		}
		
		if (campL100km) {
			form.p18.value = "-------------";
		}
		if (campGal100mi) {
			form.p19.value = "-------------";
		}		
		
		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[campnome].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.consumo_comb.elements.length
		
		for (i=0; i < n; i++){
		
			var valor3=document.consumo_comb.elements[i].value
			var nome3=document.consumo_comb.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.consumo_comb.elements[i].value=""}	
		}
	}
}
//Fim Exclui Resultado



//Zera valor de Variáveis
function limpa(form){
	campovalor=""
	campid=""
	conv=0
	document.config.dec.style.backgroundColor = "#FFFFFF";
	for (var i=0; i < document.consumo_comb.elements.length; i++){
		if (document.consumo_comb.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 = ["m/m3", "m/cm3", "m/L", "m/gal (US)", "m/gal (UK)", "km/m3", "km/cm3", "km/L", "km/gal (US)", "km/gal (UK)", "mi/m3", "mi/L", "mi/gal (US)", "mi/gal (UK)", "mi naut./m3", "mi naut./L", "mi naut./gal (US)", "mi naut./gal (UK)", "L/100 km", "gal (US)/100 mi"];
			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 (!isNaN(campovalor) && conv==1) {
				
			winimp = window.open("consumo_combustivel_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