function getOptValue(arr, index){
	return arr[index].choices[document.getElementById(arr[index].name).value];
}

function getPricePerSqft(ftage){
	var ret = 0;
	for(var i=0;i<area_prices.length;i++){
		var ptr = area_prices[i].choices[document.getElementById(area_prices[i].name).value];
		ret += ptr[getPricePoint(ptr.points,ftage)];
	}
	return ret;
}

function getPricePoint(points, ftage){
	for(var i=0;i<points.length;i++){
		if(ftage >= points[i]){
			return points[i];
		}
	}
	return 1;
}

function calculate(){
	var bupEl = document.getElementById("baseUnitPrice")
	if(bupEl){
		var basePrice = bupEl.value;
		var mult = 1;

		for(var i=0;i<multipliers.length;i++) mult *= getOptValue(multipliers, i);

		document.getElementById("ppu").value = (basePrice*1).toFixed(2);
		document.getElementById("subtotal").value = (basePrice*mult).toFixed(2);
	}
	else{
		var pricePerOutsideFt = 0;
		var mult = 1;

		for(var i=0;i<multipliers.length;i++) mult              *= getOptValue(multipliers, i);
		for(var i=0;i<linears.length;i++)     pricePerOutsideFt += getOptValue(linears, i);

		var qty   = (document.getElementById("quantity")) ? 1*document.getElementById("quantity").value :1;
		
		var width  = 1* document.getElementById("width").value;
		var height = 1* document.getElementById("height").value;

		var pricePerSqft = getPricePerSqft(width*height*qty);
		var perimeter = width+height+width+height;

		var total = pricePerSqft*width*height*mult; // we know quantity is in the multipliers array
		total += pricePerOutsideFt*perimeter;

		document.getElementById("ppsqft").value = pricePerSqft.toFixed(2);
		document.getElementById("ppu").value = (total/qty).toFixed(2);
		document.getElementById("subtotal").value = total.toFixed(2);
	}
}
