//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.massa.elements.length

		for (i=0; i < n; i++){
			if (document.massa.elements[i].type=="text" && document.massa.elements[i].value!="" && document.massa.elements[i].name!=campnome){
			document.massa.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]="1000"; fc[0][2]="0.001"; fc[0][3]="2.2046224760379584"; fc[0][4]="2.679229035769583"; fc[0][5]="35.27396583786957"; fc[0][6]="32.150743260882706"; fc[0][7]="0.0009842064392690495"; fc[0][8]="0.001102311359527999"; fc[0][9]="15432.358352941431"; fc[0][10]="1000000"; fc[0][11]="34.28571036734739"; fc[0][12]="0.06852177964766101"; fc[0][13]="5000"; fc[0][14]="643.014865217654"; fc[0][15]="0.01968412878538099"; fc[0][16]="0.022046224760379582"; fc[0][17]="0.1574730488813666";

fc[1][0]="0.001"; fc[1][1]="1"; fc[1][2]="0.000001"; fc[1][3]="0.0022046224760379584"; fc[1][4]="0.002679229035769583"; fc[1][5]="0.03527396583786957"; fc[1][6]="0.03215074326088271"; fc[1][7]="9.842064392690496e-7"; fc[1][8]="0.000001102311359527999"; fc[1][9]="15.432358352941431"; fc[1][10]="1000"; fc[1][11]="0.03428571036734739"; fc[1][12]="0.00006852177964766101"; fc[1][13]="5"; fc[1][14]="0.643014865217654"; fc[1][15]="0.000019684128785380993"; fc[1][16]="0.00002204622476037958"; fc[1][17]="0.0001574730488813666";

fc[2][0]="1000"; fc[2][1]="1000000"; fc[2][2]="1"; fc[2][3]="2204.6224760379587"; fc[2][4]="2679.2290357695833"; fc[2][5]="35273.96583786957"; fc[2][6]="32150.743260882707"; fc[2][7]="0.9842064392690496"; fc[2][8]="1.1023113595279992"; fc[2][9]="15432358.352941431"; fc[2][10]="1000000000"; fc[2][11]="34285.71036734739"; fc[2][12]="68.521779647661"; fc[2][13]="5000000"; fc[2][14]="643014.865217654"; fc[2][15]="19.68412878538099"; fc[2][16]="22.04622476037958"; fc[2][17]="157.4730488813666";

fc[3][0]="0.4535924"; fc[3][1]="453.5924"; fc[3][2]="0.0004535924"; fc[3][3]="1"; fc[3][4]="1.215277928484411"; fc[3][5]="16"; fc[3][6]="14.583332797487612"; fc[3][7]="0.0004464285608835025"; fc[3][8]="0.0005"; fc[3][9]="7000"; fc[3][10]="453592.4"; fc[3][11]="15.551737651229984"; fc[3][12]="0.031080958482653714"; fc[3][13]="2267.962"; fc[3][14]="291.666666666667"; fc[3][15]="0.008928571217670048"; fc[3][16]="0.01"; fc[3][17]="0.0714285781774164";

fc[4][0]="0.3732417"; fc[4][1]="373.2417"; fc[4][2]="0.0003732417"; fc[4][3]="0.8228570408146169"; fc[4][4]="1"; fc[4][5]="13.165714975068361"; fc[4][6]="12"; fc[4][7]="0.00036734688454372684"; fc[4][8]="0.00041142856575954157"; fc[4][9]="5760"; fc[4][10]="373241.7"; fc[4][11]="12.796856823216364"; fc[4][12]="0.025575185522718396"; fc[4][13]="1866.2085"; fc[4][14]="240"; fc[4][15]="0.007346937690874537"; fc[4][16]="0.008228570408146167"; fc[4][17]="0.05877550846866437"; 

fc[5][0]="0.02834952"; fc[5][1]="28.34952"; fc[5][2]="0.00002834952"; fc[5][3]="0.0625"; fc[5][4]="0.07595487053027569"; fc[5][5]="1"; fc[5][6]="0.9114582998429758"; fc[5][7]="0.000027901785055218904"; fc[5][8]="0.00003125"; fc[5][9]="437.5"; fc[5][10]="28349.52"; fc[5][11]="0.971983603201874"; fc[5][12]="0.0019425599051658571"; fc[5][13]="141.747625"; fc[5][14]="18.22916666666669"; fc[5][15]="0.000558035701104378"; fc[5][16]="0.000625"; fc[5][17]="0.004464286136088525"; 

fc[6][0]="0.03110348"; fc[6][1]="31.10348"; fc[6][2]="0.00003110348"; fc[6][3]="0.06857142006788473"; fc[6][4]="0.08333333333333333"; fc[6][5]="1.0971429145890301"; fc[6][6]="1"; fc[6][7]="0.0000306122403786439"; fc[6][8]="0.00003428571381329513"; fc[6][9]="480"; fc[6][10]="31103.48"; fc[6][11]="1.0664047352680303"; fc[6][12]="0.002131265460226533"; fc[6][13]="155.517375"; fc[6][14]="20"; fc[6][15]="0.000612244807572878"; fc[6][16]="0.0006857142006788473"; fc[6][17]="0.0048979590390553634"; 

fc[7][0]="1016.047"; fc[7][1]="1016047"; fc[7][2]="1.016047"; fc[7][3]="2240"; fc[7][4]="2722.222559805081"; fc[7][5]="35840"; fc[7][6]="32666.6666666667"; fc[7][7]="1"; fc[7][8]="1.12"; fc[7][9]="15680000"; fc[7][10]="1016047000"; fc[7][11]="34835.89233875516"; fc[7][12]="69.62134700114431"; fc[7][13]="5080234.88"; fc[7][14]="653333.3333333342"; fc[7][15]="20"; fc[7][16]="22.40"; fc[7][17]="160";

fc[8][0]="907.1847"; fc[8][1]="907184.7"; fc[8][2]="0.9071847"; fc[8][3]="2000"; fc[8][4]="2430.5558569688223"; fc[8][5]="32000"; fc[8][6]="29166.6666666667"; fc[8][7]="0.8928571217670049"; fc[8][8]="1"; fc[8][9]="14000000"; fc[8][10]="907184700"; fc[8][11]="31103.47530245997"; fc[8][12]="62.16191696530743"; fc[8][13]="4535924"; fc[8][14]="583333.333333333"; fc[8][15]="17.857142435340098"; fc[8][16]="20"; fc[8][17]="142.8571563548328"; 

fc[9][0]="0.00006479891"; fc[9][1]="0.06479891"; fc[9][2]="6.479891e-8"; fc[9][3]="0.00014285712514142652"; fc[9][4]="0.0001736111111111111"; fc[9][5]="0.0022857144053938126"; fc[9][6]="0.0020833333333333333"; fc[9][7]="6.377550078884145e-8"; fc[9][8]="7.142857044436485e-8"; fc[9][9]="1"; fc[9][10]="64.79891"; fc[9][11]="0.0022216765318083965"; fc[9][12]="0.0000044401363754719434"; fc[9][13]="0.32399453125"; fc[9][14]="0.0416666666666667"; fc[9][15]="0.000001275510015776829"; fc[9][16]="0.0000014285712514142651"; fc[9][17]="0.000010204081331365341"; 

fc[10][0]="0.000001"; fc[10][1]="0.001"; fc[10][2]="1e-9"; fc[10][3]="0.0000022046224760379584"; fc[10][4]="0.000002679229035769584"; fc[10][5]="0.00003527396583786957"; fc[10][6]="0.00003215074326088271"; fc[10][7]="9.842064392690495e-10"; fc[10][8]="1.1023113595279991e-9"; fc[10][9]="0.015432358352941431"; fc[10][10]="1"; fc[10][11]="0.00003428571036734739"; fc[10][12]="6.852177964766101e-8"; fc[10][13]="0.005"; fc[10][14]="0.000643014865217654"; fc[10][15]="1.968412878538099e-8"; fc[10][16]="2.204622476037958e-8"; fc[10][17]="1.574730488813666e-7"; 

fc[11][0]="0.02916667"; fc[11][1]="29.16667"; fc[11][2]="0.00002916667"; fc[11][3]="0.06430149623318204"; fc[11][4]="0.07814418914070963"; fc[11][5]="1.0288241211844151"; fc[11][6]="0.9377301189448898"; fc[11][7]="0.00002870602442603541"; fc[11][8]="0.0000321507516606045"; fc[11][9]="450.11050340198625"; fc[11][10]="29166.67"; fc[11][11]="1"; fc[11][12]="0.0019985521347960447"; fc[11][13]="145.83335"; fc[11][14]="18.754602378897793"; fc[11][15]="0.0005741204885207082"; fc[11][16]="0.0006430149623318203"; fc[11][17]="0.004592964450616689"; 

fc[12][0]="14.5939"; fc[12][1]="14593.9"; fc[12][2]="0.0145939"; fc[12][3]="32.1740"; fc[12][4]="39.10035207105744"; fc[12][5]="514.784"; fc[12][6]="469.2041494263664"; fc[12][7]="0.014363392517865808"; fc[12][8]="0.016087"; fc[12][9]="225218"; fc[12][10]="14593900"; fc[12][11]="500.3622285300311"; fc[12][12]="1"; fc[12][13]="72969.409388"; fc[12][14]="9384.08333333333"; fc[12][15]="0.2872678503573161"; fc[12][16]="0.32174"; fc[12][17]="2.298143074280195"; 

fc[13][0]="0.0002"; fc[13][1]="0.2"; fc[13][2]="2e-7"; fc[13][3]="0.0004409244952075917"; fc[13][4]="0.0005358458071539167"; fc[13][5]="0.007054793167573914"; fc[13][6]="0.006430148652176541"; fc[13][7]="1.9684128785380991e-7"; fc[13][8]="2.2046227190559983e-7"; fc[13][9]="3.0864716705882866"; fc[13][10]="200"; fc[13][11]="0.006857142073469479"; fc[13][12]="0.000013704355929532203"; fc[13][13]="1"; fc[13][14]="0.1286029730435308"; fc[13][15]="0.0000039368257570761985"; fc[13][16]="0.000004409244952075917"; fc[13][17]="0.00003149460977627332"; 

fc[14][0]="0.001555174"; fc[14][1]="1.555174"; fc[14][2]="0.000001555174"; fc[14][3]="0.0034285710033942363"; fc[14][4]="0.004166666666666666"; fc[14][5]="0.0548571457294515"; fc[14][6]="0.05"; fc[14][7]="0.0000015306120189321948"; fc[14][8]="0.0000017142856906647563"; fc[14][9]="24"; fc[14][10]="1555.174"; fc[14][11]="0.053320236763401516"; fc[14][12]="0.00010656327301132664"; fc[14][13]="7.77586875"; fc[14][14]="1"; fc[14][15]="0.000030612240378643894"; fc[14][16]="0.00003428571003394236"; fc[14][17]="0.0002448979519527682"; 

fc[15][0]="50.80235"; fc[15][1]="50802.35"; fc[15][2]="0.05080235"; fc[15][3]="112"; fc[15][4]="136.11112799025403"; fc[15][5]="1792"; fc[15][6]="1633.3332733186125"; fc[15][7]="0.05"; fc[15][8]="0.056"; fc[15][9]="784000"; fc[15][10]="50802350"; fc[15][11]="1741.7946169377583"; fc[15][12]="3.481067350057216"; fc[15][13]="254011.744"; fc[15][14]="32666.6666666667"; fc[15][15]="1"; fc[15][16]="1.12"; fc[15][17]="8"; 

fc[16][0]="45.35924"; fc[16][1]="45359.24"; fc[16][2]="0.04535924"; fc[16][3]="100"; fc[16][4]="121.52779284844111"; fc[16][5]="1600"; fc[16][6]="1458.3332797487612"; fc[16][7]="0.044642856088350245"; fc[16][8]="0.05"; fc[16][9]="700000"; fc[16][10]="45359240"; fc[16][11]="1555.1737651229984"; fc[16][12]="3.1080958482653714"; fc[16][13]="226796.2"; fc[16][14]="29166.6666666667"; fc[16][15]="0.8928571217670048"; fc[16][16]="1"; fc[16][17]="7.14285781774164";

fc[17][0]="6.350293"; fc[17][1]="6350.293"; fc[17][2]="0.006350293"; fc[17][3]="14"; fc[17][4]="17.013890998781754"; fc[17][5]="224"; fc[17][6]="204.16665916482657"; fc[17][7]="0.006249999852369035"; fc[17][8]="0.007"; fc[17][9]="98000"; fc[17][10]="6350293"; fc[17][11]="217.7243271172198"; fc[17][12]="0.435133418757152"; fc[17][13]="31751.468"; fc[17][14]="4083.33333333333"; fc[17][15]="0.125"; fc[17][16]="0.14"; 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
	
	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.massa.elements.length
		
		for (i=0; i < n; i++){
		
			var valor3=document.massa.elements[i].value
			var nome3=document.massa.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.massa.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.massa.elements.length; i++){
		if (document.massa.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", "g", "t", "lb", "lb (troy)", "oz", "oz (troy)", "ton (long)", "ton (short)", "gr", "mg", "AT", "slug", "quilate", "pennyweight", "hundredweight (L)", "hundredweight (S)", "stone"];
			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("massa_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
