PageSourceSearch

https://kurapia.com/wp-content/plugins/plant%20template//js/plant_calculation.js?ver=7.0.5

js kurapia.com collected 2026-09-26 09:45:19 UTC 4,197 bytes, 144 lines download raw bytes

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.