//**************************************************************************
//**********   BEGIN AMP HOUR CALCULATOR FUNCTIONS   ***********************
//**************************************************************************

//----------THIS FUNCTION IS CALLED WHENEVER THE FOCUS LEAVES A DATA FIELD
//----------IT INSPECTS THE DATA ENTRY TO MAKE SURE IT IS A VALID NUMBER
//----------IF ANY INVALID CHARACTERS ARE DETECTED, IT ERASES THE FIELD AND
//----------DISPLAYS AN ERROR MESSAGE
//--------------------------------------------------------------------------




//----------THIS FUNCTION PERFORMS SEVERAL TESTS THAT ARE PERFORMED
//----------WHEN THE CALCULATE BUTTON IS PRESSED.
//--------------------------------------------------------------------------

function AmpHoursCalc(obj)
{
	with(Math)
	{
		//-----SET VARIABLES BASED ON DATA ENTERED BY USER
		//-----EVAL AND MATH ALLOW TEXT FIELDS TO BE CONVERTED TO NUMBERS
		hours=eval(obj.Hours1.value);
		amps=eval(obj.Amps1.value);
		amphours=eval(obj.AmpHours1.value);

		//-----DETERMINE WHICH AMPHOUR RADIO BUTTON IS SELECTED AND ASSIGN A
		//-----MULTIPLIER TO BE USED IN FINAL CALCULATION
			AmpHourMultiplier=1;

		//-----DETERMINE WHICH HOUR RADIO BUTTON IS SELECTED AND ASSIGN A
		//-----MULTIPLIER TO BE USED IN FINAL CALCULATION
		if (obj.HourGroup[0].checked)
			{
			HourMultiplier= 24;
			}
		else
			{
			HourMultiplier=1;
			}

		//-----DETERMINE WHICH AMP RADIO BUTTON IS SELECTED AND ASSIGN A
		//-----MULTIPLIER TO BE USED IN FINAL CALCULATION
		if (obj.AmpGroup[0].checked)
			{
			AmpMultiplier= 0.001;
			}
		else
			{
			AmpMultiplier=1;
			}

		//-----TEST TO SEE WHICH FIELDS CONTAIN DATA
		//-----THREE EMPTY FIELDS GENERATES ERROR
		if ((amphours == null) && (hours == null) && (amps == null))
			{
			obj.FeedbackMessage.value ="****** You must enter data first ********";
			msg="You must enter data first";
			alert(msg);
			obj.Amps1.focus();
			}
		//-----TWO EMPTY FIELDS GENERATES ERROR
		else if ((amphours == null) && (hours == null) && (amps != null))
			{
			obj.FeedbackMessage.value ="****** Please make one more data entry ********";
			msg="Please make one more data entry";
			alert(msg);
			obj.Hours1.focus();
			}
		//-----TWO EMPTY FIELDS GENERATES ERROR
		else if ((amphours == null) && (hours != null) && (amps == null))
			{
			obj.FeedbackMessage.value ="****** Please make one more data entry ********";
			msg="Please make one more data entry";
			alert(msg);
			obj.Amps1.focus();
			}
		//-----TWO EMPTY FIELDS GENERATES ERROR
		else if ((amphours != null) && (hours == null) && (amps == null))
			{
			obj.FeedbackMessage.value ="****** Please make one more data entry ********";
			msg="Please make one more data entry";
			alert(msg);
			obj.Amps1.focus();
			}
		//-----THREE FULL FIELDS GENERATES ERROR
		else if ((amphours != null) && (hours != null) && (amps != null))
			{
			obj.FeedbackMessage.value ="****** Empty one field or press Clear ********";
			msg="Empty one field or press Clear";
			alert(msg);
			}

		//-----TWO FULL FIELDS WILL INITIATE AMPHOURS CALCULATIONS
		//-----APPLY THE CORRECT FORMULA TO THE DATA
		//-----DETERMINE IF DATA SHOULD HAVE IT'S OWN MULTIPLIER APPLIED
		//-----AND SELECT THE APPROPRIATE RADIO BUTTON
		else if ((amphours == null) && (hours != null) && (amps != null))
			{
			if ((hours*HourMultiplier)*(amps*AmpMultiplier) == 1/0)
				{
				obj.FeedbackMessage.value ="****** Result was Infinity ********";
				msg="No negatives or zeros, please";
				alert(msg);
				}
			else if ((hours*HourMultiplier)*(amps*AmpMultiplier)  > 1)
				{
				x=(hours*HourMultiplier)*(amps*AmpMultiplier);
				obj.AmpHours1.value =x;
				obj.FeedbackMessage.value =round(x*1000)/1000 + " AmpHours";
				}
			else if ((hours*HourMultiplier)*(amps*AmpMultiplier)  == 1)
				{
				x=(hours*HourMultiplier)*(amps*AmpMultiplier);
				obj.AmpHours1.value =x;
				obj.FeedbackMessage.value =round(x*1000)/1000 + " AmpHour";
				}
			else if ((hours*HourMultiplier)*(amps*AmpMultiplier)  >= 0.001)
				{
				x=(hours*HourMultiplier)*(amps*AmpMultiplier);
				obj.AmpHours1.value =x;
				obj.FeedbackMessage.value =round(x*1000000)/1000000 + " AmpHours";
				}
			else if ((hours*HourMultiplier)*(amps*AmpMultiplier)  >= 0.000001)
				{
				x=(hours*HourMultiplier)*(amps*AmpMultiplier);
				obj.AmpHours1.value =x;
				obj.FeedbackMessage.value =round(x*1000000000)/1000000000 + " AmpHours";
				}
			else if ((hours*HourMultiplier)*(amps*AmpMultiplier)  >= 0)
				{
				x=(hours*HourMultiplier)*(amps*AmpMultiplier);
				obj.AmpHours1.value =x;
				obj.FeedbackMessage.value =" Dead";
				}
			else
				{
				obj.FeedbackMessage.value ="****** No negatives or zeros, please ********";
				msg="No negatives or zeros, please";
				alert(msg);
				}
			}


		//-----TWO FULL FIELDS WILL INITIATE HOURS CALCULATIONS
		else if ((hours == null) && (amps != null) && (amphours != null))
			{
			if ((amphours*AmpHourMultiplier)/(amps*AmpMultiplier) == 1/0)
				{
				obj.FeedbackMessage.value ="****** Result was Infinity ********";
				msg="No negatives or zeros, please";
				alert(msg);
				}
			else if ((amphours*AmpHourMultiplier)/(amps*AmpMultiplier)  >= 48)
				{
				x=(amphours*AmpHourMultiplier)/(amps*AmpMultiplier);
				obj.HourGroup[1].checked=true;
				obj.Hours1.value =x;
				obj.FeedbackMessage.value =round(x/24*100)/100 + " Days";
				}
			else if ((amphours*AmpHourMultiplier)/(amps*AmpMultiplier)  > 1)
				{
				x=(amphours*AmpHourMultiplier)/(amps*AmpMultiplier);
				obj.HourGroup[1].checked=true;
				obj.Hours1.value =x;
				obj.FeedbackMessage.value =round(x*1000)/1000 + " Hours";
				}
			else if ((amphours*AmpHourMultiplier)/(amps*AmpMultiplier)  == 1)
				{
				x=(amphours*AmpHourMultiplier)/(amps*AmpMultiplier);
				obj.HourGroup[1].checked=true;
				obj.Hours1.value =x;
				obj.FeedbackMessage.value =x + " Hour";
				}
			else if ((amphours*AmpHourMultiplier)/(amps*AmpMultiplier)  >= 1/60)
				{
				x=(amphours*AmpHourMultiplier)/(amps*AmpMultiplier);
				obj.HourGroup[1].checked=true;
				obj.Hours1.value =x;
				obj.FeedbackMessage.value =round(x*60*1000)/1000 + " Minutes";
				}
			else if ((amphours*AmpHourMultiplier)/(amps*AmpMultiplier)  >= 1/60/60)
				{
				x=(amphours*AmpHourMultiplier)/(amps*AmpMultiplier);
				obj.HourGroup[1].checked=true;
				obj.Hours1.value =x;
				obj.FeedbackMessage.value =round(x*60*60*1000)/1000 + " Seconds";
				}
			else if ((amphours*AmpHourMultiplier)/(amps*AmpMultiplier)  >= 0)
				{
				x=(amphours*AmpHourMultiplier)/(amps*AmpMultiplier);
				obj.HourGroup[1].checked=true;
				obj.Hours1.value =x;
				obj.FeedbackMessage.value ="Kaboom";
				}
			else
				{
				obj.FeedbackMessage.value ="****** No negatives or zeros, please ********";
				msg="No negatives or zeros, please";
				alert(msg);
				}
			}



		//-----TWO FULL FIELDS WILL INITIATE AMPS CALCULATIONS
		else if ((amps == null) && (hours != null) && (amphours != null))
			{
			if ((amphours*AmpHourMultiplier)/(hours*HourMultiplier) == 1/0)
				{
				obj.FeedbackMessage.value ="****** Result was Infinity ********";
				msg="No negatives or zeros, please";
				alert(msg);
				}			
			else if ((amphours*AmpHourMultiplier)/(hours*HourMultiplier)  > 1)
				{
				x=(amphours*AmpHourMultiplier)/(hours*HourMultiplier);
				obj.AmpGroup[1].checked=true;
				obj.Amps1.value =x;
				obj.FeedbackMessage.value =round(x*1000)/1000 + " Amps";
				}
			else if ((amphours*AmpHourMultiplier)/(hours*HourMultiplier)  == 1)
				{
				x=(amphours*AmpHourMultiplier)/(hours*HourMultiplier);
				obj.AmpGroup[1].checked=true;
				obj.Amps1.value =x;
				obj.FeedbackMessage.value =x + " Amp";
				}
			else if ((amphours*AmpHourMultiplier)/(hours*HourMultiplier)  >= 1/1000)
				{
				x=(amphours*AmpHourMultiplier)/(hours*HourMultiplier);
				obj.AmpGroup[1].checked=true;
				obj.Amps1.value =x;
				obj.FeedbackMessage.value =round(x*1000*1000)/1000 + " milliAmps";
				}
			else if ((amphours*AmpHourMultiplier)/(hours*HourMultiplier)  > 0)
				{
				x=(amphours*AmpHourMultiplier)/(hours*HourMultiplier);
				obj.AmpGroup[1].checked=true;
				obj.Amps1.value =x;
				obj.FeedbackMessage.value =round(x*1000000*1000)/1000 + " microAmps";
				}
			else
				{
				obj.FeedbackMessage.value ="****** No negatives or zeros, please ********";
				msg="No negatives or zeros, please";
				alert(msg);
				}
			}

	}
}


//----------EMPTY DATA FIELDS WHEN THE CLEAR BUTTON IS PRESSED
//----------RESET RADIO BUTTONS
//----------RESET MESSAGE FIELD
//--------------------------------------------------------------------------

function AmpHoursClear(obj)
{
	obj.Amps1.value="";
	obj.Hours1.value="";
	obj.AmpHours1.value="";
	obj.FeedbackMessage.value ="Enter data in any two of the fields above";
	obj.HourGroup[1].checked=true;
	obj.AmpGroup[1].checked=true;
	obj.Amps1.focus();
}




