// JavaScript Document

// Mixing Dry Chemicals - Total Chemical Application Weight
function calc_totalChemAppWeight( form )
{
	areaUnits = parseFloat( form.areaUnits.value );
	appRateUnits = parseFloat( form.appRateUnits.value );
	weightUnits = parseFloat( form.weightUnits.value );
	
	area = parseFloat( form.area.value ) / areaUnits;
	appRate = parseFloat( form.appRate.value ) / appRateUnits;
	concentration = parseFloat( form.concentration.value ) / 100;

	chemWeight = ( area * appRate ) / concentration;
	chemWeight = chemWeight / weightUnits;
	
	form.chemWeight.value = chemWeight;
	
}
// Mixing Dry Chemicals - Minimum Volume or minimum amt of water to use
function calc_minWaterVolume( form )
{
		weightUnits = parseFloat( form.weightUnits.value );
		solUnits = parseFloat( form.solUnits.value );
		volUnits = parseFloat( form.volUnits.value );
		
		chemWeight = parseFloat( form.chemWeight.value ) * weightUnits;
		solubility = parseFloat( form.solubility.value ) * solUnits;
		minVolume = chemWeight / solubility;
		minVolume = minVolume / volUnits;
		
		form.minVolume.value = minVolume;
}

// Chemical Injection Rate (Mass) 
function calc_injectRateMass( form )
{
	quantityUnits 			= parseFloat( form.quantityUnits.value );
	areaUnits 				= parseFloat( form.areaUnits.value );
	solConcentrationUnits 	= parseFloat( form.solConcentrationUnits.value );
	injectionTimeUnits 		= parseFloat( form.injectionTimeUnits.value );
	injectionRateUnits		= parseFloat( form.injectionRateUnits.value );
	
	quantity			= parseFloat( form.quantity.value ) / quantityUnits;
	area				= parseFloat( form.area.value ) / areaUnits;
	solConcentration	= parseFloat( form.solConcentration.value ) / solConcentrationUnits;
	injectionTime		= parseFloat( form.injectionTime.value ) / injectionTimeUnits;
	
	injectionRate = ( quantity * area ) / ( solConcentration * injectionTime );
	injectionRate = injectionRate / injectionRateUnits;
	form.injectionRate.value =  injectionRate;
}

// Chemical Injection Rate ( Water Chemistry Control )
function calc_injectRateWaterChemCtrl( form )
{
	flowRateUnits = parseFloat( form.flowRateUnits.value );
	injRateUnits = parseFloat( form.injRateUnits.value );
	
	flowRate = parseFloat( form.flowRate.value ) * flowRateUnits;
	chemConcentration = parseFloat( form.chemConcentration.value );
	solPercentage = parseFloat( form.solPercentage.value ) / 100;
	
	injectionRate = 0.006 * flowRate * chemConcentration;
	injectionRate = injectionRate / solPercentage;
	injectionRate = injectionRate / injRateUnits;
	
	form.injectionRate.value = injectionRate;
}

// Chemical Injection Rate for Batch or Bulk Applications
function injectionRateBatchBulk( form )
{
		quantityUnits		= parseFloat( form.quantityUnits.value );
		injectionTimeUnits	= parseFloat( form.injectionTimeUnits.value );
		injectionRateUnits	= parseFloat( form.injectionRateUnits.value );
		
		quantity		= parseFloat( form.quantity.value ) * quantityUnits;
		injectionTime	= parseFloat( form.injectionTime.value ) * injectionTimeUnits;
		
		injectionRate = quantity / injectionTime;
		injectionRate = injectionRate / injectionRateUnits;
		
		form.injectionRate.value = injectionRate;
}


// Set Sprinklers for fertilizers (lbs/acre)


function fertilizerAppQuantity( form )
{
	sprinklerUnits = parseFloat( form.sprinklerUnits.value );
	lineUnits = parseFloat( form.lineUnits.value );
	areaUnits = parseFloat( form.areaUnits.value );
	
	sprinklerSpacing = parseFloat( form.sprinklerSpacing.value ) / sprinklerUnits;
	lineSpacing = parseFloat( form.lineSpacing.value ) / lineUnits;
	sprinklerSet = parseFloat( form.sprinklerSet.value );
	
	irrigatedArea = sprinklerSpacing * lineSpacing * sprinklerSet;
	irrigatedArea = irrigatedArea / 43560;
	form.irrigatedArea.value = irrigatedArea * areaUnits;
	


	weightUnits = parseFloat( form.weightUnits.value );
	volUnits = parseFloat( form.volUnits.value );
	appRateUnits = parseFloat( form.appRateUnits.value );
	concentrationUnits = parseFloat( form.concentrationUnits.value );
	
	appRate = parseFloat( form.appRate.value ) / appRateUnits;
	concentration = parseFloat( form.concentration.value ) / concentrationUnits;
	
	fertilizerWeight = appRate * irrigatedArea;
	form.fertilizerWeight.value = fertilizerWeight / weightUnits;
	
	fertilizerVol = fertilizerWeight / concentration;
	form.fertilizerVol.value = fertilizerVol / volUnits;	
}

// set sprinklers for herbicides, etc. (pints/acre, quarts/acre)

function herbicideAppQuantity( form )
{
	sprinklerUnits = parseFloat( form.sprinklerUnits.value );
	lineUnits = parseFloat( form.lineUnits.value );
	areaUnits = parseFloat( form.areaUnits.value );
	chemicalUnits = parseFloat( form.chemicalUnits.value );
	appRateUnits = parseFloat( form.appRateUnits.value );
	
	sprinklerSpacing = parseFloat( form.sprinklerSpacing.value ) / sprinklerUnits;
	lineSpacing = parseFloat( form.lineSpacing.value ) / lineUnits;
	sprinklerSet = parseFloat( form.sprinklerSet.value );
	appRate = parseFloat( form.appRate.value ) * appRateUnits;
	
	irrigatedArea = sprinklerSpacing * lineSpacing * sprinklerSet / 43560;
	form.irrigatedArea.value = irrigatedArea * areaUnits;
	
	chemical = appRate * irrigatedArea;
	form.chemical.value = chemical / chemicalUnits;
}

// Calibration

function calibrateInjection( form )
{
	setRateUnits = parseFloat( form.setRateUnits.value );
	sizeUnits = parseFloat( form.sizeUnits.value );
	timeUnits = parseFloat( form.timeUnits.value );
	
	setRate = parseFloat( form.setRate.value ) * setRateUnits;
	size = parseFloat( form.size.value ) * sizeUnits;
	
	time = size / setRate;
	time = time / timeUnits;
	
	// rounding
	switch( timeUnits )
	{
		case 1: time = 	Math.round( time ); break;
		case 60: time = Math.round( time * 100 ) / 100; break;
		case 3600: time = Math.round( time * 100 ) / 100; break;
		default: time = Math.round( time * 100 ) / 100; break;		
	}
	form.time.value = time;
}


// chemical mass injection rate

function chemMassInjectionRate ( form )
{
	timeUnits = parseFloat( form.timeunits.value );
	appRateUnits = parseFloat( form.appRateUnits.value );
	areaUnits = parseFloat( form.areaUnits.value );
	injRateUnits = parseFloat( form.injRateUnits.value );
	
	appTime = parseFloat( form.appTime.value ) * timeUnits;
	appRate = parseFloat( form.appRate.value ) * appRateUnits;
	area = parseFloat( form.area.value ) * areaUnits;
	concentration = parseFloat( form.concentration.value ) / 100;
	
	injectionRate = appRate * area;
	injectionRate = injectionRate / ( appTime * concentration );
	injectionRate = injectionRate * injectionRateUnits;
	
	form.injectionRate.value = injectionRate;
}

// Checking Maximum Solution Concentration in Irrigation Lines

function calc_maxSolConcentration( form )
{
	injRateUnits = parseFloat( form.injRateUnits.value );
	flowRateUnits = parseFloat( form.flowRateUnits.value );
	
	injectionRate = parseFloat( form.injectionRate.value ) * injRateUnits;
	flowRate = parseFloat( form.flowRate.value ) * flowRateUnits;

	concentration = injectionRate / flowRate;
	concentration = concentration * 100;
	
	form.concentration.value = concentration;
	
}
// chemical Volume

function injRateByVolume( form )
{
	timeUnits = parseFloat( form.timeUnits.value );
	appQuantityUnits = parseFloat( form.appQuantityUnits.value );
	areaUnits = parseFloat( form.areaUnits.value );
	injRateUnits = parseFloat( form.injRateUnits.value );
	
	injectionTime = parseFloat( form.injectionTime.value ) * timeUnits;
	appQuantity = parseFloat( form.appQuantity.value ) * appQuantityUnits;
	area = parseFloat( form.area.value ) / areaUnits;
	
	injectionRate = appQuantity * area;
	injectionRate = injectionRate / injectionTime;
	injectionRate = injectionRate / injRateUnits;
	
	form.injectionRate.value = injectionRate;
}


function injRate( form )
{
	appTimeUnits = parseFloat( form.appTimeUnits.value );
	appRateUnits = parseFloat( form.appRate.value );
	areaUnits = parseFloat( form.areaUnits.value );
	injRateUnits = parseFloat( form.injRateUnits.value );
	
	appTime = parseFloat( form.appTime.value ) * appTimeUnits;
	appRate = parseFloat( form.appRate.value ) * appRateUnits;
	area = parseFloat( form.area.value ) * areaUnits;
	
	injectionRate = appRate * area;
	injectionRate = injectionRate / appTime;
	injectionRate = injectionRate * injRateUnits;
	
	form.injectionRate.value = injectionRate;
}

// min batch volume

function minBatchVolume( form )
{
	weightUnits = parseFloat( form.weightUnits.value );
	solubilityUnits = parseFloat( form.solubilityUnits.value );
	volUnits = parseFloat( form.volUnits.value );
	
	weight = parseFloat( form.weight.value ) * weightUnits;
	solubility = parseFloat( form.solubility.value ) * solubilityUnits;
	
	volume = weight / solubility;
	volume = volume / volUnits;
	
	form.volume.value = volume;
}

// maxLineConcentration

function maxLineConcentration( form )
{
	injectionUnits = parseFloat( form.injectionUnits.value );
	flowRateUnits = parseFloat( form.flowRateUnits.value );
	
	injectionRate = parseFloat( form.injectionRate.value ) * injectionUnits;
	flowRate = parseFloat( form.flowRate.value ) * flowRateUnits;
	
	concentration = injectionRate / flowRate;
	concentration = concentration * 100;
	
	form.concentration.value = concentration;
}