function calc_parares(form, whichres)
{
if (form.r1.value!=""){r1=form.r1.value;r1=(1/r1)} else {r1=0;}
if (form.r2.value!=""){r2=form.r2.value;r2=(1/r2)} else {r2=0;}
if (form.r3.value!=""){r3=form.r3.value;r3=(1/r3)} else {r3=0;}
if (form.rres.value!=""){r0=form.rres.value;r0=(1/r0)} else {r0=0};
switch (whichres) {
	case 1: 
		r1 = r0-r2-r3; if (r1<0) r1=0; r1 = 1/r1; r1=Math.round(r1*1000)/1000;
		form.r1.value=r1;
		break;
	case 2: 
		r2 = r0-r1-r3; if (r2<0) r2=0; r2 = 1/r2; r2=Math.round(r2*1000)/1000;
		form.r2.value=r2;
		break;
	case 3: 
		r3 = r0-r1-r2; if (r3<0) r3=0; r3 = 1/r3; r3=Math.round(r3*1000)/1000;
		form.r3.value=r3;
		break;
	case 4: 
		r0 = r1+r2+r3; r0 = 1/r0; r0=Math.round(r0*1000)/1000;
		form.rres.value=r0;
		break;
	}
}
function clear_pot(form)
{
	form.potr1.value="";
	form.potr2.value="";
	form.pota.value="";
	form.potdba.value="";
}
function calc_pot(form)
{
	var potr1=0;
	var potr2=0;
	var pota=0;
	if (form.potr1.value!="") potr1=Number(form.potr1.value);
	if (form.potr2.value!="") potr2=Number(form.potr2.value);
	if (form.pota.value!="") pota=Number(form.pota.value);
	if (form.potdba.value!=""){potdba=Number(form.potdba.value);} else {potdba=-1000000000;}
	if (potr1>0 && potr2>0) {pota=potr2/(potr1+potr2); potdba=20*Math.log(pota)/Math.log(10);}
	else if (potr1>0 && pota>0) {potr2=potr1*(pota/(1-pota)); potdba=20*Math.log(pota)/Math.log(10);}
	else if (potr1>0 && potdba>-1000000000) {pota=Math.pow(10,potdba/20); potr2=potr1*(pota/(1-pota));}
	else if (potr2>0 && pota>0) {potr1=(potr2*(1-pota))/pota; potdba=20*Math.log(pota)/Math.log(10);}
	else if (potr2>0 && potdba>-1000000000) {pota=Math.pow(10,potdba/20); potr1=(potr2*(1-pota))/pota;}
	form.potr1.value=potr1.toFixed(0);
	form.potr2.value=potr2.toFixed(0);
	form.pota.value=pota.toFixed(3);
	form.potdba.value=potdba.toFixed(1);
}
function GetSelection(bgroup)
{
	result = 0;
	len = bgroup.length
	for (i = 0; i <len; i++)
		if (bgroup[i].checked) result = bgroup[i].value;
	return (result);
}
function clear_react(form)
{
	form.capa.value="";
	form.indu.value="";
	form.reac.value="";
	form.freq.value="";
}
function calc_react(form)
{
	if (form.capa.value!=""){c=form.capa.value/1000000;} else {c=0;}
	if (form.indu.value!=""){l=form.indu.value;} else {l=0;}
	if (form.reac.value!=""){r=form.reac.value;} else {r=0;}
	if (form.freq.value!=""){f=form.freq.value;} else {f=0;}

	uc = GetSelection(form.farads);	
	ul = GetSelection(form.henris);
	ur = GetSelection(form.ohms);
	uf = GetSelection(form.hertz);
	c = c/uc;
	l = l/ul;
	r = r*ur;
	f = f*uf;
	if (c>0 && l>0){x=Math.sqrt(c*l); f=(1/(2*Math.PI*x)); r=2*Math.PI*f*l; }
	else if (c>0 && r>0){f = 1/(2*Math.PI*r*c); l= r/(2*Math.PI*f);}
	else if (c>0 && f>0){r = (1/(2*Math.PI*f*c)); l=r/(2*Math.PI*f);}
	else if (l>0 && r>0){f = r/(2*Math.PI*l); c=1/(2*Math.PI*r*f);}
	else if (l>0 && f>0){r = (2*Math.PI*f*l); c=1/(2*Math.PI*r*f);}
	else if (r>0 && f>0){l = r/(2*Math.PI*f); c=1/(2*Math.PI*r*f);}
	c = c*uc*1000000;
	l = l*ul;
	r = r/ur;
	f = f/uf;
	form.capa.value=Math.round(c*1000)/1000;
	form.indu.value=Math.round(l*1000)/1000;
	form.reac.value=Math.round(r*1000)/1000;
	form.freq.value=Math.round(f*1000)/1000;
}
function clear_dbu(form)
{
	form.dbu.value="";
	form.vrms.value="";
	form.vpp.value="";
}
function calc_dbu(form)
{
	var dbu=0;
	var vrms=0;
	var vpp=0;
	if (form.dbu.value!=""){dbu=form.dbu.value;} else {dbu=-1000000000;}
	if (form.vrms.value!="") vrms=form.vrms.value;
	if (form.vpp.value!="") vpp=form.vpp.value;
	if (dbu>-1000000000)
	{
		vrms = 0.775*Math.pow(10,dbu/20); 
		vpp=vrms*Math.SQRT2;
	}
	else if (vrms>0)
	{
		dbu=20*Math.log(vrms/0.775)/Math.log(10);
		vpp=vrms*Math.SQRT2;
	}
	else if (vpp>0)
	{
		vrms=vpp/Math.SQRT2;
		dbu=20*Math.log(vrms/0.775)/Math.log(10);
	}
	form.vrms.value=Math.round(vrms*1000000)/1000000;
	form.vpp.value=Math.round(vpp*1000000)/1000000;
	form.dbu.value=Math.round(dbu*1000000)/1000000;
}
function clear_db(form)
{
	form.db.value="";
	form.gain.value="";
}
function calc_db(form)
{
	var db=0;
	var gain=0;
	if (form.db.value!=""){db=form.db.value;} else {db=-1000000000;}
	if (form.gain.value!="") gain=form.gain.value;
	if (db>-1000000000) gain = Math.pow(10,db/20); 
	else if (gain>0) db=20*Math.log(gain)/Math.log(10);
	form.db.value=Math.round(db*1000000)/1000000;
	form.gain.value=Math.round(gain*1000000)/1000000;
}
function clear_rct(form)
{
	form.rcres.value="";
	form.rccap.value="";
	form.rctime.value="";
}
function calc_rct(form)
{
	var r=0;
	var c=0;
	var t=0;
	if (form.rcres.value!="") r=form.rcres.value;
	if (form.rccap.value!="") c=form.rccap.value/1000000;
	if (form.rctime.value!="") t=form.rctime.value;

	uc = GetSelection(form.rcfarads);	
	ur = GetSelection(form.rcohms);
	ut = GetSelection(form.rcsec);
	c = c/uc;
	r = r*ur;
	t = t/ut;
	if (r>0 && c>0) t=r*c;
	else if (r>0 && t>0) c=t/r;
	else if (c>0 && t>0) r=t/c;
	c = c*uc*1000000;
	r = r/ur;
	t = t*ut;
	form.rcres.value=Math.round(r*1000)/1000;
	form.rccap.value=Math.round(c*1000)/1000;
	form.rctime.value=Math.round(t*1000)/1000;
}
function clear_awg(form)
{
	form.awg.value="";
	form.dinch.value="";
	form.dmm.value="";
	form.smm2.value="";
}
function calc_awg(form)
{
	var awg=0;
	var dinch=0;
	var dmm=0;
	var smm2=0;
	if (form.awg.value!="") awg=form.awg.value; else awg=-1000000000;
	if (awg=="00") awg=-1;
	else if (awg=="000") awg=-2;
	else if (awg=="0000") awg=-3;
	else if (awg=="00000") awg=-4;
	else if (awg=="000000") awg=-5;
	if (form.dinch.value!="") dinch=form.dinch.value;
	if (form.dmm.value!="") dmm=form.dmm.value;
	if (form.smm2.value!="") smm2=form.smm2.value;

	if (awg>-1000000000) {dinch=0.005*Math.pow(92, (36-awg)/39); dmm=dinch*25.4; smm2=Math.PI*Math.pow(dmm/2,2);}
	else if (dinch>0) {awg=36-(Math.log(dinch/0.005)/Math.log(92))*39; dmm=dinch*25.4; smm2=Math.PI*Math.pow(dmm/2,2);}
	else if (dmm>0) {dinch=dmm/25.4; awg=36-(Math.log(dinch/0.005)/Math.log(92))*39; smm2=Math.PI*Math.pow(dmm/2,2);}
	else if (smm2>0) {dmm=2*Math.sqrt(smm2/Math.PI); dinch=dmm/25.4; awg=36-(Math.log(dinch/0.005)/Math.log(92))*39;}
	awg=Math.round(awg);
	if (awg==-1) awg="00";
	else if (awg==-2) awg="000";
	else if (awg==-3) awg="0000";
	else if (awg==-4) awg="00000";
	else if (awg==-5) awg="000000";
	else if (awg<-5) awg="";
	form.awg.value=awg;
	form.dinch.value=Math.round(dinch*10000)/10000;
	form.dmm.value=Math.round(dmm*100)/100;
	form.smm2.value=Math.round(smm2*10000)/10000;
}
