FieldCalc
by Eric Miller
HTML
<script src="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.js"></script>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.css">
<div id="input" data-role="page">
<div data-role="header">
<h1>Field Coverage Calculator</h1>
</div>
<!-- /header -->
<div data-role="content">
<div class="input">
<div class="field" data-role="fieldcontain">
<label for="sel_containerSize">Container Size</label>
<select id="sel_containerSize">
<option value="qrt">Quart</option>
<option value="gal">Gallon</option>
<option value="gal_25">2 1/2 Gallon</option>
<option value="gal_5">5 Gallon</option>
<option value="gal_30">30 Gallon</option>
<option value="gat_55">55 Gallon</option>
<option value="gal_220">220 Gallon</option>
<option value="gal_250">250 Gallon</option>
</select>
</div>
<div class="field" data-role="fieldcontain">
<label for="txt_containerPrice">Cost (per Container)</label>
<input id="txt_containerPrice" type="number" pattern="[0-9.]*" step="0.01" min="0" />
</div>
<div class="field" data-role="fieldcontain">
<label for="txt_rate">Rate (per Acre)</label>
<input id="txt_rate" type="number" pattern="[0-9.]*" step="0.01" min="0" />
</div>
<div class="field" data-role="fieldcontain">
<label for="sel_rateMetric" class="">Rate Metric</label>
<select id="sel_rateMetric">
<option value="oz">Ounces</option>
<option value="pnt">Pints</option>
<option value="qrt">Quarts</option>
<option value="gal">Gallons</option>
</select>
...
JavaScript
$FCC = {
VolumeTypes: {
oz: 'oz',
pt: 'pnt',
qrt: 'qrt',
gal: 'gal'
},
ContainerSizes: {
qrt: 'qrt',
gal: 'gal',
gal_25: 'gal_25',
gal_5: 'gal_5',
gal_30: 'gal_30',
gat_55: 'gal_55',
gal_220: 'gal_220',
gal_250: 'gal_250'
},
Conversions: {
ptToOz: function (vol) {
return vol * 16;
},
qrtToOz: function (vol) {
return vol * 32;
},
galToOz: function (vol) {
return vol * 128;
},
ozToPt: function (vol) {
return vol / 16;
},
ozToQrt: function (vol) {
return vol / 32;
},
ozToGal: function (vol) {
return vol / 128;
}
},
// TPoz = A * Roz - Total Product (oz) = Acres * Rate Per Acre (oz)
GetTotalProductInOz: function (acres, roz) {
return acres * roz;
},
GetAmountOfProduct: function (tPoz, volumeType) {
var amount = 0;
switch (volumeType) {
case $FCC.VolumeTypes.oz:
amount = tPoz;
break;
case $FCC.VolumeTypes.pt:
amount = $FCC.Conversions.ozToPt(tPoz);
break;
case $FCC.VolumeTypes.qrt:
amount = $FCC.Conversions.ozToQrt(tPoz);
break;
case $FCC.VolumeTypes.gal:
amount = $FCC.Conversions.ozToGal(tPoz);
break;
}
return amount;
},
OzToContainerSize: function (oz, containerSize) {
var qty = 0;
switch (containerSize) {
case qrt:
qty = $FCC.Conversions.ozToQrt(oz);
break;
case gal:
qty = $FCC.Conversions.ozToGal(oz);
break;
case gal_25:
qty = oz / (128 * 2.5);
break;
case gal_5:
qty = oz /...