// calc.js
/// this file contains data and function used for calculating
//// the number of plants needed, depdent upon coverage area
///// and center spacing of plants.


var centerSpacing = new Array(4,6,8,10,12,15,18,24,36,48,60)
var multiplier = new Array(9,4,2.28,1.44,1,0.64,0.44,0.25,0.11,0.06,0)
var coverageArea = new Array(25,50,75,100,150,200,250,300,350,400,500,1000,1500,2000,2500,3000,3500,4000,4500,5000,7500,10000)
var numMatrix = new Array(coverageArea.length)

//25 sq ft
numMatrix[0] = new Array(225,100,57,36,25,16,11,6,0,0,0)
//50 sq ft
numMatrix[1] = new Array(450,200,114,72,50,32,22,12,0,0,0)
//75 sq ft
numMatrix[2] = new Array(675,300,171,108,75,48,33,18,0,0,0)
//100 sq ft
numMatrix[3] = new Array(900,400,228,144,100,64,44,24,0,0,0) 
//150 sq ft
numMatrix[4] = new Array(1350,600,342,216,150,96,66,36,0,0,0)
//200 sq ft
numMatrix[5] = new Array(1800,800,456,288,200,128,88,48,0,0,0)
//250 sq ft
numMatrix[6] = new Array(2250,1000,570,360,250,160,110,60,0,0,0)
//300 sq ft
numMatrix[7] = new Array(2700,1200,684,432,300,192,132,72,0,0,0)
//350 sq ft
numMatrix[8] = new Array(3150,4500,798,504,350,224,154,84,0,0,0)
//400 sq ft
numMatrix[9] = new Array(3600,1600,912,576,400,254,176,96,0,0,0)
//500 sq ft
numMatrix[10] = new Array(4500,2000,1140,720,500,320,220,120,0,0,0)
//1000 sq ft
numMatrix[11] = new Array(9000,4000,2280,1440,1000,640,440,240,0,0,0)
//1500 sq ft
numMatrix[12] = new Array(13500,6000,3420,2160,1500,960,660,360,0,0,0)
//2000 sq ft
numMatrix[13] = new Array(18000,8000,4560,2880,2000,1280,880,480,0,0,0)
//2500 sq ft
numMatrix[14] = new Array(22500,10000,5700,3600,2500,1600,1100,600,0,0,0)
//3000 sq ft
numMatrix[15] = new Array(27000,12000,6840,4320,3000,1920,1320,720,0,0,0)
//3500 sq ft
numMatrix[16] = new Array(31500,14000,7980,5040,3500,2240,1540,840,0,0,0)
//4000 sq ft
numMatrix[17] = new Array(36000,16000,9120,5760,4000,2560,1760,1080,0,0,0)
//4500 sq ft
numMatrix[18] = new Array(40500,18000,10260,6480,4500,2880,1980,1080,0,0,0)
//5000 sq ft
numMatrix[19] = new Array(45000,20000,11400,7200,5000,3200,2200,1200,0,0,0)
//7500 sq ft
numMatrix[20] = new Array(67500,3000,17100,10800,7500,4800,3300,1800,0,0,0)
//10000 sq ft
numMatrix[21] = new Array(90000,40000,22800,14400,10000,6400,4400,2400,0,0,0)

function getNumPlants(spacing,area)
{
	spacingMultiplier = 0;
	spacIdx = -1;
	areaIdx = -1;
	numPlants = -1;

	for(i=0;i<centerSpacing.length;i++){
		if(centerSpacing[i] == spacing)	spacIdx = i;
	}
	
	for(j=0;j<coverageArea.length;j++){
		if(coverageArea[j] == area)	areaIdx = j;
	}
	
	if(spacIdx >= 0 && areaIdx >= 0)
		numPlants = numMatrix[areaIdx][spacIdx];

	if(numPlants <= 0){
		spacingMultiplier = 0;
		if( spacIdx >= 0 ) spacingMultiplier = multiplier[spacIdx];
		if( spacingMultiplier == 0 ) spacingMultiplier = 144/(spacing*spacing);
		numPlants = area * spacingMultiplier;
	}
	return numPlants;
}

function calcValue()
{
	//get coverage area value...
	area = document.calculate.area1.value;
	if(area == 0)
		area = document.calculate.area2.value;
	if( isNaN(area) || area == 0)
	{
		document.calculate.area2.focus();
		alert("Please enter a valid number for Coverage Area");
		return (false);
	}
	
	//get center spacing value...
	spacing = document.calculate.spacing1.value;
	if(spacing == 0)
		spacing = document.calculate.spacing2.value;
	if( isNaN(spacing) || spacing == 0)
	{
		document.calculate.spacing2.focus();
		alert("Please enter a valid number for Center Spacing");
		return (false);
	}

	//get number of plants needed....
	numPlants = getNumPlants(spacing,area);
	
	//display number of plants
	document.calculate.numPlants.value = Math.round(numPlants);
	
	return (true);
}

