Concrete Footer Calculator
function calculateFooter() {
var length = parseFloat(document.getElementById('ftr_length').value);
var width = parseFloat(document.getElementById('ftr_width').value);
var depth = parseFloat(document.getElementById('ftr_depth').value);
var qty = parseFloat(document.getElementById('ftr_qty').value);
var waste = parseFloat(document.getElementById('ftr_waste').value);
var unitCost = parseFloat(document.getElementById('ftr_cost').value);
if (isNaN(length) || isNaN(width) || isNaN(depth) || isNaN(qty)) {
alert("Please enter all required dimensions.");
return;
}
// Convert inches to feet
var widthFt = width / 12;
var depthFt = depth / 12;
// Calculate basic volume in cubic feet
var baseCubicFeet = length * widthFt * depthFt * qty;
// Apply waste factor
var totalCubicFeet = baseCubicFeet * (1 + (waste / 100));
// Convert to Cubic Yards
var totalCubicYards = totalCubicFeet / 27;
// Bag Calculations (standard yields)
var bags80 = Math.ceil(totalCubicFeet / 0.60);
var bags60 = Math.ceil(totalCubicFeet / 0.45);
// Display Results
document.getElementById('res_yards').innerText = totalCubicYards.toFixed(2);
document.getElementById('res_feet').innerText = totalCubicFeet.toFixed(2);
document.getElementById('res_bags80').innerText = bags80.toLocaleString();
document.getElementById('res_bags60').innerText = bags60.toLocaleString();
// Cost logic
if (!isNaN(unitCost) && unitCost > 0) {
var totalCost = totalCubicYards * unitCost;
document.getElementById('res_total_cost').innerText = totalCost.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('cost_container').style.display = 'block';
} else {
document.getElementById('cost_container').style.display = 'none';
}
document.getElementById('ftr_results').style.display = 'block';
}