//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 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();
		
		n=document.comp.elements.length

		for (i=0; i < n; i++){
			if (document.comp.elements[i].type=="text" && document.comp.elements[i].value!="" && document.comp.elements[i].name!=campnome){
			document.comp.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=20
var fc = new Array(arr);
for (i=0; i < arr; i++) {   
fc[i] = new Array(arr)   
}

fc[0][0]="1"; fc[0][1]="100"; fc[0][2]="1000"; fc[0][3]="1000000"; fc[0][4]="0.001"; fc[0][5]="0.0006213711922373339"; fc[0][6]="0.0005399568034557236"; fc[0][7]="3.280839895013123"; fc[0][8]="39.37007874015748"; fc[0][9]="39370.078740157485"; fc[0][10]="1.0936132983377078"; fc[0][11]="0.19883838614812266"; fc[0][12]="0.049709596537030665"; fc[0][13]="10000000000"; fc[0][14]="0.5468066492"; fc[0][15]="1000000000000000"; fc[0][16]="236.22049104098357"; fc[0][17]="237.10627909590428"; fc[0][18]="2834.645490730993"; fc[0][19]="2845.275619003937";

fc[1][0]="0.01"; fc[1][1]="1"; fc[1][2]="10"; fc[1][3]="10000"; fc[1][4]="0.00001"; fc[1][5]="0.000006213711922373339"; fc[1][6]="0.000005399568034557236"; fc[1][7]="0.03280839895013123"; fc[1][8]="0.3937007874015748"; fc[1][9]="393.70078740157487"; fc[1][10]="0.010936132983377079"; fc[1][11]="0.0019883838614812264"; fc[1][12]="0.0004970959653703066"; fc[1][13]="100000000"; fc[1][14]="0.005468066492"; fc[1][15]="10000000000000"; fc[1][16]="2.3622049104098357"; fc[1][17]="2.371062790959043"; fc[1][18]="28.34645490730993"; fc[1][19]="28.452756190039373";

fc[2][0]="0.001"; fc[2][1]="0.1"; fc[2][2]="1"; fc[2][3]="1000"; fc[2][4]="0.000001"; fc[2][5]="6.21371192237334e-7"; fc[2][6]="5.399568034557235e-7"; fc[2][7]="0.003280839895013123"; fc[2][8]="0.03937007874015748"; fc[2][9]="39.37007874015749"; fc[2][10]="0.0010936132983377078"; fc[2][11]="0.00019883838614812265"; fc[2][12]="0.000049709596537030664"; fc[2][13]="10000000"; fc[2][14]="0.0005468066492"; fc[2][15]="1000000000000"; fc[2][16]="0.23622049104098358"; fc[2][17]="0.2371062790959043"; fc[2][18]="2.8346454907309932"; fc[2][19]="2.8452756190039374"; 

fc[3][0]="0.000001"; fc[3][1]="0.0001"; fc[3][2]="0.001"; fc[3][3]="1"; fc[3][4]="0.000000001"; fc[3][5]="6.213711922373338e-10"; fc[3][6]="5.399568034557236e-10"; fc[3][7]="0.000003280839895013123"; fc[3][8]="0.00003937007874015748"; fc[3][9]="0.03937007874015749"; fc[3][10]="0.0000010936132983377077"; fc[3][11]="1.9883838614812266e-7"; fc[3][12]="4.9709596537030664e-8"; fc[3][13]="10000"; fc[3][14]="5.468066492e-7"; fc[3][15]="1000000000"; fc[3][16]="0.00023622049104098357"; fc[3][17]="0.00023710627909590427"; fc[3][18]="0.002834645490730993"; fc[3][19]="0.002845275619003937";

fc[4][0]="1000"; fc[4][1]="100000"; fc[4][2]="1000000"; fc[4][3]="1000000000"; fc[4][4]="1"; fc[4][5]="0.621371192237334"; fc[4][6]="0.5399568034557236"; fc[4][7]="3280.839895013123"; fc[4][8]="39370.07874015748"; fc[4][9]="39370078.740157485"; fc[4][10]="1093.6132983377078"; fc[4][11]="198.83838614812265"; fc[4][12]="49.70959653703066"; fc[4][13]="10000000000000"; fc[4][14]="546.8066492"; fc[4][15]="1000000000000000000"; fc[4][16]="236220.4910409836"; fc[4][17]="237106.2790959043"; fc[4][18]="2834645.490730993"; fc[4][19]="2845275.619003937"; 

fc[5][0]="1609.344"; fc[5][1]="160934.4"; fc[5][2]="1609344"; fc[5][3]="1609344000"; fc[5][4]="1.609344"; fc[5][5]="1"; fc[5][6]="0.868976241900648"; fc[5][7]="5280"; fc[5][8]="63360"; fc[5][9]="63360000"; fc[5][10]="1760"; fc[5][11]="320"; fc[5][12]="80"; fc[5][13]="16093440000000"; fc[5][14]="880"; fc[5][15]="1609344000000000000"; fc[5][16]="380160.0299338607"; fc[5][17]="381585.567625319"; fc[5][18]="4561919.71263498"; fc[5][19]="4579027.245790272";

fc[6][0]="1852"; fc[6][1]="185200"; fc[6][2]="1852000"; fc[6][3]="1852000000"; fc[6][4]="1.852"; fc[6][5]="1.1507794480235424"; fc[6][6]="1"; fc[6][7]="6076.1154855643035"; fc[6][8]="72913.38582677165"; fc[6][9]="72913385.82677166"; fc[6][10]="2025.371828521435"; fc[6][11]="368.24869114632315"; fc[6][12]="92.06217278658079"; fc[6][13]="18520000000000"; fc[6][14]="1012.6859143184"; fc[6][15]="1852000000000000000"; fc[6][16]="437480.3494079016"; fc[6][17]="439120.82888561475"; fc[6][18]="5249763.448833799"; fc[6][19]="5269450.446395292";

fc[7][0]="0.3048"; fc[7][1]="30.48"; fc[7][2]="304.8"; fc[7][3]="304800"; fc[7][4]="0.0003048"; fc[7][5]="0.0001893939393939394"; fc[7][6]="0.00016457883369330454"; fc[7][7]="1"; fc[7][8]="12"; fc[7][9]="12000"; fc[7][10]="0.3333333333333333"; fc[7][11]="0.06060594009794779"; fc[7][12]="0.01515151515151515"; fc[7][13]="3048000000"; fc[7][14]="0.16666666666666666"; fc[7][15]="304800000000000"; fc[7][16]="72"; fc[7][17]="72.26999386843162"; fc[7][18]="864"; fc[7][19]="867.2400086724001";

fc[8][0]="0.0254"; fc[8][1]="2.54"; fc[8][2]="25.4"; fc[8][3]="25400"; fc[8][4]="0.0000254"; fc[8][5]="0.0000157828282828282"; fc[8][6]="0.000013714902807775377"; fc[8][7]="0.0833333333333333"; fc[8][8]="1"; fc[8][9]="1000"; fc[8][10]="0.02777777777777777"; fc[8][11]="0.005050505050505051"; fc[8][12]="0.001262626262626263"; fc[8][13]="254000000"; fc[8][14]="0.013888888888888888"; fc[8][15]="25400000000000"; fc[8][16]="6"; fc[8][17]="6.022499489035969"; fc[8][18]="72"; fc[8][19]="72.2700007227";

fc[9][0]="0.0000254"; fc[9][1]="0.00254"; fc[9][2]="0.0254"; fc[9][3]="25.4"; fc[9][4]="0.0000000254"; fc[9][5]="1.5782828282828203e-8"; fc[9][6]="1.3714902807775378e-8"; fc[9][7]="0.0000833333333333333"; fc[9][8]="0.001"; fc[9][9]="1"; fc[9][10]="0.00002777777777777777"; fc[9][11]="0.000005050505050505051"; fc[9][12]="0.0000012626262626262628"; fc[9][13]="254000"; fc[9][14]="0.000013888888888888888"; fc[9][15]="25400000000"; fc[9][16]="0.006"; fc[9][17]="0.006022499489035969"; fc[9][18]="0.072"; fc[9][19]="0.0722700007227"; 

fc[10][0]="0.9144"; fc[10][1]="91.44"; fc[10][2]="914.4"; fc[10][3]="914400"; fc[10][4]="0.0009144"; fc[10][5]="0.0005681818181818182"; fc[10][6]="0.0004937365010799136"; fc[10][7]="3"; fc[10][8]="36"; fc[10][9]="36000"; fc[10][10]="1"; fc[10][11]="0.18181818181818182"; fc[10][12]="0.045454545454545456"; fc[10][13]="9144000000"; fc[10][14]="0.5"; fc[10][15]="914400000000000"; fc[10][16]="216"; fc[10][17]="216.80998160529486"; fc[10][18]="2592"; fc[10][19]="2601.7200260172003";

fc[11][0]="5.02921"; fc[11][1]="502.921"; fc[11][2]="5029.21"; fc[11][3]="5029210"; fc[11][4]="0.00502921"; fc[11][5]="0.003125"; fc[11][6]="0.0027155561555075595"; fc[11][7]="16.5"; fc[11][8]="198"; fc[11][9]="198000"; fc[11][10]="5.5"; fc[11][11]="1"; fc[11][12]="0.25"; fc[11][13]="50292100000"; fc[11][14]="2.75"; fc[11][15]="5029210000000000"; fc[11][16]="1188"; fc[11][17]="1192.454898829122"; fc[11][18]="14256"; fc[11][19]="14309.4601430946";

fc[12][0]="20.11684"; fc[12][1]="2011.684"; fc[12][2]="20116.84"; fc[12][3]="20116840"; fc[12][4]="0.02011684"; fc[12][5]="0.0125"; fc[12][6]="0.0108622030237581"; fc[12][7]="66"; fc[12][8]="792"; fc[12][9]="792000"; fc[12][10]="22"; fc[12][11]="4"; fc[12][12]="1"; fc[12][13]="201168400000"; fc[12][14]="11"; fc[12][15]="20116840000000000"; fc[12][16]="4752"; fc[12][17]="4769.819595316488"; fc[12][18]="57024"; fc[12][19]="57237.84057237841";

fc[13][0]="1e-10"; fc[13][1]="1e-8"; fc[13][2]="1e-7"; fc[13][3]="0.0001"; fc[13][4]="1e-13"; fc[13][5]="6.213711922373339e-14"; fc[13][6]="5.399568034557236e-14"; fc[13][7]="3.280839895013123e-10"; fc[13][8]="3.937007874015748e-9"; fc[13][9]="0.000003937007874015749"; fc[13][10]="1.0936132983377078e-10"; fc[13][11]="1.9883838614812268e-11"; fc[13][12]="4.970959653703067e-12"; fc[13][13]="1"; fc[13][14]="5.4680664920000004e-11"; fc[13][15]="100000"; fc[13][16]="2.3622049104098358e-8"; fc[13][17]="2.371062790959043e-8"; fc[13][18]="2.834645490730993e-7"; fc[13][19]="2.845275619003937e-7";

fc[14][0]="1.828804"; fc[14][1]="182.8804"; fc[14][2]="1828.804"; fc[14][3]="1828804"; fc[14][4]="0.001828804"; fc[14][5]="0.0011363636363636363"; fc[14][6]="0.0009874730021598272"; fc[14][7]="6"; fc[14][8]="72"; fc[14][9]="72000"; fc[14][10]="2"; fc[14][11]="0.36363636363636364"; fc[14][12]="0.0909090909090909"; fc[14][13]="18288040000"; fc[14][14]="1"; fc[14][15]="1828804000000000"; fc[14][16]="432"; fc[14][17]="433.61996321058973"; fc[14][18]="5184"; fc[14][19]="5203.440052034401";

fc[15][0]="1e-15"; fc[15][1]="1e-13"; fc[15][2]="1e-12"; fc[15][3]="1e-9"; fc[15][4]="1e-18"; fc[15][5]="6.213711922373339e-19"; fc[15][6]="5.399568034557236e-19"; fc[15][7]="3.2808398950131233e-15"; fc[15][8]="3.9370078740157484e-14"; fc[15][9]="3.9370078740157485e-11"; fc[15][10]="1.093613298337708e-15"; fc[15][11]="1.9883838614812267e-16"; fc[15][12]="4.970959653703067e-17"; fc[15][13]="0.00001"; fc[15][14]="5.468066492e-16"; fc[15][15]="1"; fc[15][16]="2.362204910409836e-13"; fc[15][17]="2.371062790959043e-13"; fc[15][18]="2.834645490730993e-12"; fc[15][19]="2.8452756190039374e-12";

fc[16][0]="0.004233333"; fc[16][1]="0.4233333"; fc[16][2]="4.233333"; fc[16][3]="4233.333"; fc[16][4]="0.000004233333"; fc[16][5]="0.0000026304713804713806"; fc[16][6]="0.0000022858171346292293"; fc[16][7]="0.013888888888888888"; fc[16][8]="0.16666666666666666"; fc[16][9]="166.66666666666666"; fc[16][10]="0.004629629629629629"; fc[16][11]="0.0008417508417508418"; fc[16][12]="0.00021043771043771045"; fc[16][13]="42333333"; fc[16][14]="0.0023148148148148147"; fc[16][15]="4233333333333"; fc[16][16]="1"; fc[16][17]="1.0037498358039016"; fc[16][18]="12"; fc[16][19]="12.045000879190166";

fc[17][0]="0.004217518"; fc[17][1]="0.4217518"; fc[17][2]="4.217518"; fc[17][3]="4217.518"; fc[17][4]="0.000004217518"; fc[17][5]="0.000002620644394292369"; fc[17][6]="0.000002277277717110182"; fc[17][7]="0.013837002401863706"; fc[17][8]="0.16604402882236446"; fc[17][9]="166.04402882236448"; fc[17][10]="0.004612334133954569"; fc[17][11]="0.000838606206173558"; fc[17][12]="0.0002096515515433895"; fc[17][13]="42175180"; fc[17][14]="0.0023061670669772844"; fc[17][15]="4217518000000"; fc[17][16]="0.9962641729341869"; fc[17][17]="1"; fc[17][18]="11.955170075210242"; fc[17][19]="12.000002838897945"; 

fc[18][0]="0.0003527778"; fc[18][1]="0.03527778"; fc[18][2]="0.3527778"; fc[18][3]="352.7778"; fc[18][4]="3.527778e-7"; fc[18][5]="2.1920594837261504e-7"; fc[18][6]="1.9048476121910244e-7"; fc[18][7]="0.001157407407407407"; fc[18][8]="0.013888888888888888"; fc[18][9]="13.888888888888888"; fc[18][10]="0.00038580246913580245"; fc[18][11]="0.00007014590347923682"; fc[18][12]="0.000017536475869809204"; fc[18][13]="3527778"; fc[18][14]="0.00019290123456790122"; fc[18][15]="352777800000"; fc[18][16]="0.08333333333333333"; fc[18][17]="0.08364582623661067"; fc[18][18]="1"; fc[18][19]="1.0037500732658473"; 

fc[19][0]="0.0003514598"; fc[19][1]="0.03514598"; fc[19][2]="0.3514598"; fc[19][3]="351.4598"; fc[19][4]="3.514598e-7"; fc[19][5]="2.183869811928347e-7"; fc[19][6]="1.8977309819697693e-7"; fc[19][7]="0.0011530832606981666"; fc[19][8]="0.013836999128378005"; fc[19][9]="13.836999128378003"; fc[19][10]="0.000384361086899389"; fc[19][11]="0.00006988383398170711"; fc[19][12]="0.000017470958495426777"; fc[19][13]="3514598"; fc[19][14]="0.0001921805434496945"; fc[19][15]="351459800000"; fc[19][16]="0.08302199477026803"; fc[19][17]="0.08333332018044767"; fc[19][18]="0.9962639372432164"; 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
	
	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";
		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="-------------"
					form.elements[j].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[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.comp.elements.length
		
		for (i=0; i < n; i++){
		
			var valor3=document.comp.elements[i].value
			var nome3=document.comp.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.comp.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.comp.elements.length; i++){
		if (document.comp.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 = i;
				break
			}
		}		
		
		cpresult = eval("form.p"+i+".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", "cm", "mm", "µm", "km", "mi", "mi naut.", "ft", "in", "mil", "yd", "rod", "chain", "Å", "fathom", "fermi", "p (Comp)", "p (Imp)", "pt (Comp)", "pt (Imp)"];
			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("comprim_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
