function CalculateFromToolUsage(obj)
{
with(Math)
{
	DetermineValues(obj)			//See function below
	DetermineMultipliers(obj)		//See function below
	CalculatePulses(obj)			//See function below
	FinalResult(obj)				//See function below
}
}

//****************************************************************
//****************************************************************
//     CALCULATE FINAL RESULTS
//****************************************************************
//****************************************************************

function FinalResult(obj)
{
b1=parseFloat(background);
p1=parseFloat(pulse1);
p2=parseFloat(pulse2);
p3=parseFloat(pulse3);
p4=parseFloat(pulse4);
p5=parseFloat(pulse5);
AmpHoursPerDay=b1+p1+p2+p3+p4+p5;

Days=(tu1*(tum1/86400));
amphours=(AmpHoursPerDay*Days);
sigdigits=amphours;
if(sigdigits || 0)
{ReduceToSigDigits()}
amphourstext=sigdigits;
obj.AmpHours.value=amphourstext;
}

//****************************************************************
//****************************************************************
//     CALCULATE PULSES
//****************************************************************
//****************************************************************

function CalculatePulses(obj)
{
	background=eval(ba1*bam1*24);
	sigdigits=background;
	if(sigdigits || 0)
	{ReduceToSigDigits()}
	if(sigdigits > 120)  //5Amp Continuous
		{sigdigits = "Dangerous";}
	backgroundtext=sigdigits;
	obj.BackgroundResult.value=backgroundtext;
	//---------------------------------------------------------------

	pulse1=eval((a1*am1)*(d1*dm1)/3600)*(f1)/(fm1/86400);
	sigdigits=pulse1;
	if(sigdigits || 0)
	{ReduceToSigDigits()}
	if(sigdigits > 120)  //5Amp Continuous
		{sigdigits = "Dangerous";}
	if((d1*dm1)*(f1)/(fm1)>1)     //Duration exceeds available time
		{
		sigdigits = "Impossible";
		alert("Please recheck values")
		obj.Pulse1DurationMultiplier.focus()
		}
	pulse1text=sigdigits;
	obj.Pulse1Result.value=pulse1text;
	//---------------------------------------------------------------

	pulse2=eval((a2*am2)*(d2*dm2)/3600)*(f2)/(fm2/86400);
	sigdigits=pulse2;
	if(sigdigits || 0)
	{ReduceToSigDigits()}
	if(sigdigits > 120)  //5Amp Continuous
		{sigdigits = "Dangerous";}
	if((d2*dm2)*(f2)/(fm2)>1)     //Duration exceeds available time
		{
		sigdigits = "Impossible";
		alert("Please recheck values")
		obj.Pulse2DurationMultiplier.focus()
		}
	pulse2text=sigdigits;
	obj.Pulse2Result.value=pulse2text;
	//---------------------------------------------------------------

	pulse3=eval((a3*am3)*(d3*dm3)/3600)*(f3)/(fm3/86400);
	sigdigits=pulse3;
	if(sigdigits || 0)
	{ReduceToSigDigits()}
	if(sigdigits > 120)  //5Amp Continuous
		{sigdigits = "Dangerous";}
	if((d3*dm3)*(f3)/(fm3)>1)     //Duration exceeds available time
		{
		sigdigits = "Impossible";
		alert("Please recheck values")
		obj.Pulse3DurationMultiplier.focus()
		}
	pulse3text=sigdigits;
	obj.Pulse3Result.value=pulse3text;
	//---------------------------------------------------------------

	pulse4=eval((a4*am4)*(d4*dm4)/3600)*(f4)/(fm4/86400);
	sigdigits=pulse4;
	if(sigdigits || 0)
	{ReduceToSigDigits()}
	if(sigdigits > 120)  //5Amp Continuous
		{sigdigits = "Dangerous";}
	if((d4*dm4)*(f4)/(fm4)>1)     //Duration exceeds available time
		{
		sigdigits = "Impossible";
		alert("Please recheck values")
		obj.Pulse4DurationMultiplier.focus()
		}
	pulse4text=sigdigits;
	obj.Pulse4Result.value=pulse4text;
	//---------------------------------------------------------------

	pulse5=eval((a5*am5)*(d5*dm5)/3600)*(f5)/(fm5/86400);
	sigdigits=pulse5;
	if(sigdigits || 0)
	{ReduceToSigDigits()}
	if(sigdigits > 120)  //5Amp Continuous
		{sigdigits = "Dangerous";}
	if((d5*dm5)*(f5)/(fm5)>1)     //Duration exceeds available time
		{
		sigdigits = "Impossible";
		alert("Please recheck values")
		obj.Pulse5DurationMultiplier.focus()
		}
	pulse5text=sigdigits;
	obj.Pulse5Result.value=pulse5text;
	//---------------------------------------------------------------

}




//****************************************************************
//****************************************************************
//     REDUCE TO SIGNIFICANT DIGITS
//****************************************************************
//****************************************************************

function ReduceToSigDigits()
{
with(Math)
{
	if(sigdigits >= pow(10,3))
		{sigdigits = (round(sigdigits));}

	if(sigdigits < pow(10,3) && sigdigits >= pow(10,0)) 
		{sigdigits = (round(sigdigits*pow(10,3)))/pow(10,3);}

	for (var i = -6; i <= 0; i++)
	{
	if(sigdigits < pow(10,i) && sigdigits >= pow(10,i-1)) 
		{sigdigits = (round(sigdigits*pow(10,-i+3)))/pow(10,-i+3);}
	}

	if(sigdigits <= pow(10,-7)) 
		{sigdigits = "negligable";}

}
}




//****************************************************************
//****************************************************************
//     DETERMINE VALUES
//****************************************************************
//****************************************************************

function DetermineValues(obj)
{
	tu1=0;
	ba1=0;

	a1=0;

	a2=0;
	a3=0;
	a4=0;
	a5=0;

	d1=0;
	d2=0;
	d3=0;
	d4=0;
	d5=0;

	f1=0;
	f2=0;
	f3=0;
	f4=0;
	f5=0;

	tu1=obj.ToolUsage.value;
	if(tu1==""){tu1=0}
	ba1=obj.BackgroundAmps.value;
	if(ba1==""){ba1=0}


	a1=obj.Pulse1Amps.value;
	if(a1==""){a1=0}
	a2=obj.Pulse2Amps.value;
	if(a2==""){a2=0}
	a3=obj.Pulse3Amps.value;
	if(a3==""){a3=0}
	a4=obj.Pulse4Amps.value;
	if(a4==""){a4=0}
	a5=obj.Pulse5Amps.value;
	if(a5==""){a5=0}

	d1=obj.Pulse1Duration.value;
	if(d1==""){d1=0}
	d2=obj.Pulse2Duration.value;
	if(d2==""){d2=0}
	d3=obj.Pulse3Duration.value;
	if(d3==""){d3=0}
	d4=obj.Pulse4Duration.value;
	if(d4==""){d4=0}
	d5=obj.Pulse5Duration.value;
	if(d5==""){d5=0}

	f1=obj.Pulse1Frequency.value;
	if(f1==""){f1=0}
	f2=obj.Pulse2Frequency.value;
	if(f2==""){f2=0}
	f3=obj.Pulse3Frequency.value;
	if(f3==""){f3=0}
	f4=obj.Pulse4Frequency.value;
	if(f4==""){f4=0}
	f5=obj.Pulse5Frequency.value;
	if(f5==""){f5=0}
}

//****************************************************************
//****************************************************************
//     DETERMINE MULTIPLIERS
//****************************************************************
//****************************************************************

function DetermineMultipliers(obj)
{
	months=2592000;
	days=86400;
	hours=3600;
	minutes=60;
	seconds=1;
	milliseconds=0.001;
	amps=1;
	milliamps=0.001;
	microamps=0.000001;

	//**********************************************************
	//   tum1 ia a variable for ToolUsageMultiplier

	x=obj.ToolUsageMultiplier.selectedIndex
		if(x==0)
			{tum1=months;}
		else if(x==1)
			{tum1=days;}
		else if(x==2)
			{tum1=hours;}
		else if(x==3)
			{tum1=minutes;}

	//**********************************************************
	//   bam1 is a variable for BackgroundAmpMultiplier

	x=obj.BackgroundAmpsMultiplier.selectedIndex
		if(x==0)
			{bam1=amps;}
		else if(x==1)
			{bam1=milliamps;}
		else if(x==2)
			{bam1=microamps;}

	//**********************************************************
	//   am1, am2, am3 am4, am5 are variables for AmpMultipliers

	x=obj.Pulse1AmpsMultiplier.selectedIndex
		if(x==0)
			{am1=amps;}
		else if(x==1)
			{am1=milliamps;}
		else if(x==2)
			{am1=microamps;}

	x=obj.Pulse2AmpsMultiplier.selectedIndex
		if(x==0)
			{am2=amps;}
		else if(x==1)
			{am2=milliamps;}
		else if(x==2)
			{am2=microamps;}

	x=obj.Pulse3AmpsMultiplier.selectedIndex
		if(x==0)
			{am3=amps;}
		else if(x==1)
			{am3=milliamps;}
		else if(x==2)
			{am3=microamps;}

	x=obj.Pulse4AmpsMultiplier.selectedIndex
		if(x==0)
			{am4=amps;}
		else if(x==1)
			{am4=milliamps;}
		else if(x==2)
			{am4=microamps;}

	x=obj.Pulse5AmpsMultiplier.selectedIndex
		if(x==0)
			{am5=amps;}
		else if(x==1)
			{am5=milliamps;}
		else if(x==2)
			{am5=microamps;}

	//**********************************************************
	//   dm1, dm2, dm3 dm4, dm5 are variables 
	//   for DurationMultipliers

	x=obj.Pulse1DurationMultiplier.selectedIndex
		if(x==0)
			{dm1=days;}
		else if(x==1)
			{dm1=hours;}
		else if(x==2)
			{dm1=minutes;}
		else if(x==3)
			{dm1=seconds;}
		else if(x==4)
			{dm1=milliseconds;}

	x=obj.Pulse2DurationMultiplier.selectedIndex
		if(x==0)
			{dm2=days;}
		else if(x==1)
			{dm2=hours;}
		else if(x==2)
			{dm2=minutes;}
		else if(x==3)
			{dm2=seconds;}
		else if(x==4)
			{dm2=milliseconds;}

	x=obj.Pulse3DurationMultiplier.selectedIndex
		if(x==0)
			{dm3=days;}
		else if(x==1)
			{dm3=hours;}
		else if(x==2)
			{dm3=minutes;}
		else if(x==3)
			{dm3=seconds;}
		else if(x==4)
			{dm3=milliseconds;}

	x=obj.Pulse4DurationMultiplier.selectedIndex
		if(x==0)
			{dm4=days;}
		else if(x==1)
			{dm4=hours;}
		else if(x==2)
			{dm4=minutes;}
		else if(x==3)
			{dm4=seconds;}
		else if(x==4)
			{dm4=milliseconds;}

	x=obj.Pulse5DurationMultiplier.selectedIndex
		if(x==0)
			{dm5=days;}
		else if(x==1)
			{dm5=hours;}
		else if(x==2)
			{dm5=minutes;}
		else if(x==3)
			{dm5=seconds;}
		else if(x==4)
			{dm5=milliseconds;}

	//**********************************************************
	//   fm1, fm2, fm3 fm4, fm5 are variables 
	//   for FrequencyMultipliers

	x=obj.Pulse1FrequencyMultiplier.selectedIndex
		if(x==0)
			{fm1=months;}
		else if(x==1)
			{fm1=days;}
		else if(x==2)
			{fm1=hours;}
		else if(x==3)
			{fm1=minutes;}

	x=obj.Pulse2FrequencyMultiplier.selectedIndex
		if(x==0)
			{fm2=months;}
		else if(x==1)
			{fm2=days;}
		else if(x==2)
			{fm2=hours;}
		else if(x==3)
			{fm2=minutes;}

	x=obj.Pulse3FrequencyMultiplier.selectedIndex
		if(x==0)
			{fm3=months;}
		else if(x==1)
			{fm3=days;}
		else if(x==2)
			{fm3=hours;}
		else if(x==3)
			{fm3=minutes;}

	x=obj.Pulse4FrequencyMultiplier.selectedIndex
		if(x==0)
			{fm4=months;}
		else if(x==1)
			{fm4=days;}
		else if(x==2)
			{fm4=hours;}
		else if(x==3)
			{fm4=minutes;}

	x=obj.Pulse5FrequencyMultiplier.selectedIndex
		if(x==0)
			{fm5=months;}
		else if(x==1)
			{fm5=days;}
		else if(x==2)
			{fm5=hours;}
		else if(x==3)
			{fm5=minutes;}
}

//****************************************************************
//****************************************************************
//     CLEAR ENTRIES
//****************************************************************
//****************************************************************

function ClearForm(obj)
{
	obj.ToolUsage.value="";
	obj.ToolUsageMultiplier.selectedIndex=1;
	obj.AmpHours.value=0;
	ClearBackground(obj)
	ClearMode1(obj)
	ClearMode2(obj)
	ClearMode3(obj)
	ClearMode4(obj)
	ClearMode5(obj)
	obj.ToolUsage.focus();

}
//---------------------------------------------------------------------

function ClearMode1(obj)
{
	obj.Pulse1Amps.value="";
	obj.Pulse1Duration.value="";
	obj.Pulse1Frequency.value="";
	obj.Pulse1Result.value=0;
	obj.Pulse1AmpsMultiplier.selectedIndex=1;
	obj.Pulse1DurationMultiplier.selectedIndex=3;
	obj.Pulse1FrequencyMultiplier.selectedIndex=2;
	obj.Pulse1Amps.focus();
}
//---------------------------------------------------------------------

function ClearMode2(obj)
{
	obj.Pulse2Amps.value="";
	obj.Pulse2Duration.value="";
	obj.Pulse2Frequency.value="";
	obj.Pulse2Result.value=0;
	obj.Pulse2AmpsMultiplier.selectedIndex=1;
	obj.Pulse2DurationMultiplier.selectedIndex=3;
	obj.Pulse2FrequencyMultiplier.selectedIndex=2;
	obj.Pulse2Amps.focus();
}
//---------------------------------------------------------------------

function ClearMode3(obj)
{
	obj.Pulse3Amps.value="";
	obj.Pulse3Duration.value="";
	obj.Pulse3Frequency.value="";
	obj.Pulse3Result.value=0;
	obj.Pulse3AmpsMultiplier.selectedIndex=1;
	obj.Pulse3DurationMultiplier.selectedIndex=3;
	obj.Pulse3FrequencyMultiplier.selectedIndex=2;
	obj.Pulse3Amps.focus();
}
//---------------------------------------------------------------------

function ClearMode4(obj)
{
	obj.Pulse4Amps.value="";
	obj.Pulse4Duration.value="";
	obj.Pulse4Frequency.value="";
	obj.Pulse4Result.value=0;
	obj.Pulse4AmpsMultiplier.selectedIndex=1;
	obj.Pulse4DurationMultiplier.selectedIndex=3;
	obj.Pulse4FrequencyMultiplier.selectedIndex=2;
	obj.Pulse4Amps.focus();
}
//---------------------------------------------------------------------

function ClearMode5(obj)
{
	obj.Pulse5Amps.value="";
	obj.Pulse5Duration.value="";
	obj.Pulse5Frequency.value="";
	obj.Pulse5Result.value=0;
	obj.Pulse5AmpsMultiplier.selectedIndex=1;
	obj.Pulse5DurationMultiplier.selectedIndex=3;
	obj.Pulse5FrequencyMultiplier.selectedIndex=2;
	obj.Pulse5Amps.focus();
}
//---------------------------------------------------------------------

function ClearBackground(obj)
{
	obj.BackgroundAmps.value="";
	obj.BackgroundResult.value=0;
	obj.BackgroundAmpsMultiplier.selectedIndex=1;
	obj.BackgroundAmps.focus();
}
//---------------------------------------------------------------------

//****************************************************************
//****************************************************************
//     HELP FILE
//****************************************************************
//****************************************************************

function OpenHelp()
{
window.open("PulseHelpFile.htm", "Help", "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=yes,width=700,height=490");
}



