1function applyStyle() { 2 const reveal = document.getElementById('calc'); 3 4 reveal.classList.toggle('hide'); 5 document.getElementById('preQuestions').className = 'hide'; 6 if (document.getElementById('normal').checked) 7 document.getElementById('distanceId').value = 15; 8 else 9 document.getElementById('distanceId').value = 12; 10} 11 12function getValue(id, d = 6) { 13 const el = document.getElementById(id); 14 15 if (!el) return d; 16 17 return Number.parseInt(el.value, 10) || d; 18} 19 20function isArea() { 21 const el = document.getElementById('areatoggle'); 22 23 return el && el.checked; 24} 25 26function toggleArea() { 27 const length = document.getElementById('lengthcontainer'); 28 const width = document.getElementById('widthcontainer'); 29 const area = document.getElementById('areacontainer'); 30 31 if (isArea()) { 32 length.classList.add('hide'); 33 width.classList.add('hide'); 34 area.classList.remove('hide'); 35 } else { 36 length.classList.remove('hide'); 37 width.classList.remove('hide'); 38 area.classList.add('hide'); 39 } 40} 41 42// // Step 1 - Call main function 43function calculate1() { 44 const plantSpacing = getValue('distanceId', 15); 45 const width = getValue('fwidth', 1); 46 const length = getValue('flength', 1); 47 const plantingAreaSquareFeet = isArea() 48 ? getValue('farea', 1) 49 : width * length; 50 const squareFeetToInches = 144; // NOTE: 144 converts total square feet to inches 51 const plantingAreaSquareInches = plantingAreaSquareFeet * squareFeetToInches; 52 // Step 2 - Calculate Square planting needs 53 const squareDetails = calculateSquarePlanting(plantingAreaSquareFeet, plantingAreaSquareInches, plantSpacing); 54 // Step 3 - Update Square Display 55 56 updateSquarePlantingDisplay(squareDetails); 57 // Step 4 - Calculate Triangle planting needs 58 const triangleDetails = calculateTrianglePlanting(plantingAreaSquareFeet, plantingAreaSquareInches, plantSpacing); 59 // Step 5 - Update triangle display 60 61 updateTrianglePlantingDisplay(triangleDetails); 62} 63function roundUp(number) { 64 return Math.ceil(number); 65} 66function twoPlaces(number) { 67 return parseFloat(number).toFixed(2); 68} 69// Step 2 - Calculate Square planting needs 70function calculateSquarePlanting(totalAreaFeet, totalAreaInches, plantSpacing) { 71 const squareArea = plantSpacing * plantSpacing; 72 const totalPlants = totalAreaInches / squareArea; 73 const totalFlats = totalPlants / 72; 74 75 return { 76 totalAreaFeet, 77 totalAreaInches, 78 plantSpacing, 79 squareArea, 80 totalPlants, 81 totalFlats, 82 }; 83} 84// Step 4 - Calculate Triangle planting needs 85function calculateTrianglePlanting(totalAreaFeet, totalAreaInches, plantSpacing) { 86 const squareArea = plantSpacing * plantSpacing * 0.866; 87 const totalPlants = totalAreaInches / squareArea; 88 const totalFlats = totalPlants / 72; 89 90 return { 91 totalAreaFeet, 92 totalAreaInches, 93 plantSpacing, 94 squareArea, 95 totalPlants, 96 totalFlats, 97 }; 98} 99 100function getElement(id) { 101 return document.getElementById(id) || {}; 102} 103 104// Step 3 - Update Square Display 105function updateSquarePlantingDisplay({ 106 totalAreaFeet, 107 totalAreaInches, 108 plantSpacing, 109 squareArea, 110 totalPlants, 111 totalFlats, 112}) { 113/* eslint-disable id-match */ 114 getElement('sqf').innerHTML = totalAreaFeet; 115 getElement('X_inches').innerHTML = plantSpacing; 116 getElement('Y_inches').innerHTML = squareArea; 117 getElement('X_plants').innerHTML = roundUp(totalPlants); 118 getElement('result').innerHTML = roundUp(totalFlats); 119 const base_url = window.location.origin; 120 const squareAddtoCart = `${base_url}/cart/?add-to-cart=1203&quantity=${roundUp(totalFlats)}`; 121 122 getElement('squareLink').href = squareAddtoCart; 123} 124 125// Step 5 - Update triangle display 126function updateTrianglePlantingDisplay({ 127 totalAreaFeet, 128 totalAreaInches, 129 plantSpacing, 130 squareArea, 131 totalPlants, 132 totalFlats, 133}) { 134 /* eslint-disable id-match */ 135 getElement('sqf2').innerHTML = totalAreaFeet; 136 getElement('X_inches2').innerHTML = plantSpacing; 137 getElement('Y_inches2').innerHTML = twoPlaces(squareArea); 138 getElement('X_plants2').innerHTML = roundUp(totalPlants); 139 getElement('result2').innerHTML = roundUp(totalFlats); 140 const base_url_tri = window.location.origin; 141 const triangleLink = `${base_url_tri}/cart/?add-to-cart=1203&quantity=${roundUp(totalFlats)}`; 142 143 getElement('triangleLink').href = triangleLink; 144}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.