//wheatstone bridge calculator functions
//copyright Simon Carter 2002
//Please contact me via www.electronics2000.co.uk if you wish to use these
//and ensure this header block remains intact

function calculateR4 (obj) {
	if ((obj.R1Val_1.value=="") || (obj.R2Val_1.value=="") || (obj.R3Val_1.value=="") || (obj.R1Val_1.value=="-") || (obj.R2Val_1.value=="-") || (obj.R3Val_1.value=="-")){
		SetText("R4Val_1", "?");
		SetText("prefR4Val_1", "?");
	}
	else{
		with (Math) {
			R1=calculatemult1(obj.R1Mult_1.selectedIndex,abs(eval(obj.R1Val_1.value)));
			R2=calculatemult1(obj.R2Mult_1.selectedIndex,abs(eval(obj.R2Val_1.value)));
			R3=calculatemult1(obj.R3Mult_1.selectedIndex,abs(eval(obj.R3Val_1.value)));
		}
		R4=(R3*R2)/R1;
		prefR4 = format((GetPrefRes(R4, getCheckedValue(obj.prefseries))));
		SetText("R4Val_1", format(R4) + " Ohms");
		SetText("prefR4Val_1", format(prefR4) + " Ohms");
		}
}


function calculateVbridge (obj) {
	if ((obj.R1Val_2.value=="") || (obj.R2Val_2.value=="") || (obj.R3Val_2.value=="") || (obj.R4Val_2.value=="")
		|| (obj.V1Val_2.value=="") ||(obj.R1Val_2.value=="-") || (obj.R2Val_2.value=="-") || (obj.R3Val_2.value=="-")
		|| (obj.R4Val_2.value=="-")){
		SetText("VbridgeVal_2", "?");
	}
	else{
		with (Math) {
			R1=calculatemult1(obj.R1Mult_2.selectedIndex,abs(eval(obj.R1Val_2.value)));
			R2=calculatemult1(obj.R2Mult_2.selectedIndex,abs(eval(obj.R2Val_2.value)));
			R3=calculatemult1(obj.R3Mult_2.selectedIndex,abs(eval(obj.R3Val_2.value)));
			R4=calculatemult1(obj.R4Mult_2.selectedIndex,abs(eval(obj.R4Val_2.value)));
			V1=calculatemult2(obj.V1Mult_2.selectedIndex,eval(obj.V1Val_2.value));
		}
		R1 = (R2 / (R1 + R2)) * V1;
		R3 = (R4 / (R3 + R4)) * V1;
		Vbridge = R3 - R1;
		SetText("VbridgeVal_2", format(Vbridge) + " Volts");
	}
}

