www/js/rec_edit.js

changeset 810
1f2ca835fe9d
parent 809
8b30068497a9
child 811
4e3409cfd2b1
equal deleted inserted replaced
809:8b30068497a9 810:1f2ca835fe9d
424 return 0.5; 424 return 0.5;
425 } 425 }
426 426
427 427
428 function GetOptSO4Clratio() { 428 function GetOptSO4Clratio() {
429 if (parseFloat($('#pr_sulfate').jqxNumberInput('decimal')) > 0 && parseFloat($('#pr_chloride').jqxNumberInput('decimal'))) { 429 var BUGU = GetBUGU();
430 return (parseFloat($('#pr_sulfate').jqxNumberInput('decimal')) / parseFloat($('#pr_chloride').jqxNumberInput('decimal'))); 430 return (-1.2 * BUGU + 1.4);
431 } else {
432 var BUGU = GetBUGU();
433 return (-1.2 * BUGU + 1.4);
434 }
435 } 431 }
436 432
437 433
438 434
439 function setRangeIndicator(ion, rangeCode) { 435 function setRangeIndicator(ion, rangeCode) {
725 $('#est_carb').val(dataRecord.est_carb); 721 $('#est_carb').val(dataRecord.est_carb);
726 $('#st_carb_min').val(dataRecord.st_carb_min); 722 $('#st_carb_min').val(dataRecord.st_carb_min);
727 $('#st_carb_max').val(dataRecord.st_carb_max); 723 $('#st_carb_max').val(dataRecord.st_carb_max);
728 $('#mash_name').val(dataRecord.mash_name); 724 $('#mash_name').val(dataRecord.mash_name);
729 $('#mash_ph').val(dataRecord.mash_ph); 725 $('#mash_ph').val(dataRecord.mash_ph);
730 // $('#sparge_temp').val(dataRecord.sparge_temp); 726 // Hidden record sparge_temp
731 $('#sparge_ph').val(dataRecord.sparge_ph); 727 $('#sparge_ph').val(dataRecord.sparge_ph);
732 // $('#sparge_volume').val(dataRecord.sparge_volume); 728 $('#sw_amount').val(dataRecord.sparge_volume);
733 $('#sparge_source').val(dataRecord.sparge_source); 729 // Hidden record sparge_source
734 $('#sparge_acid_type').val(AcidTypeData[dataRecord.sparge_acid_type].nl); 730 $('#sparge_acid_type').val(AcidTypeData[dataRecord.sparge_acid_type].nl);
735 $('#sparge_acid_perc').val(dataRecord.sparge_acid_perc); 731 $('#sparge_acid_perc').val(dataRecord.sparge_acid_perc);
736 $('#sparge_acid_amount').val(dataRecord.sparge_acid_amount * 1000); 732 $('#sparge_acid_amount').val(dataRecord.sparge_acid_amount * 1000);
737 $('#calc_acid').val(dataRecord.calc_acid); 733 $('#calc_acid').val(dataRecord.calc_acid);
738 $('#w1_name').val(dataRecord.w1_name); 734 $('#w1_name').val(dataRecord.w1_name);
742 $('#w1_chloride').val(dataRecord.w1_chloride); 738 $('#w1_chloride').val(dataRecord.w1_chloride);
743 $('#w1_sodium').val(dataRecord.w1_sodium); 739 $('#w1_sodium').val(dataRecord.w1_sodium);
744 $('#w1_magnesium').val(dataRecord.w1_magnesium); 740 $('#w1_magnesium').val(dataRecord.w1_magnesium);
745 $('#w1_total_alkalinity').val(dataRecord.w1_total_alkalinity); 741 $('#w1_total_alkalinity').val(dataRecord.w1_total_alkalinity);
746 $('#w1_ph').val(dataRecord.w1_ph); 742 $('#w1_ph').val(dataRecord.w1_ph);
743 $('#w1_bicarbonate').val(Bicarbonate(dataRecord.w1_total_alkalinity, dataRecord.w1_ph));
747 $('#w1_cost').val(dataRecord.w1_cost); 744 $('#w1_cost').val(dataRecord.w1_cost);
748 $('#w2_name').val(dataRecord.w2_name); 745 $('#w2_name').val(dataRecord.w2_name);
749 $('#w2_amount').val(dataRecord.w2_amount); 746 $('#w2_amount').val(dataRecord.w2_amount);
750 $('#w2_calcium').val(dataRecord.w2_calcium); 747 $('#w2_calcium').val(dataRecord.w2_calcium);
751 $('#w2_sulfate').val(dataRecord.w2_sulfate); 748 $('#w2_sulfate').val(dataRecord.w2_sulfate);
752 $('#w2_chloride').val(dataRecord.w2_chloride); 749 $('#w2_chloride').val(dataRecord.w2_chloride);
753 $('#w2_sodium').val(dataRecord.w2_sodium); 750 $('#w2_sodium').val(dataRecord.w2_sodium);
754 $('#w2_magnesium').val(dataRecord.w2_magnesium); 751 $('#w2_magnesium').val(dataRecord.w2_magnesium);
755 $('#w2_total_alkalinity').val(dataRecord.w2_total_alkalinity); 752 $('#w2_total_alkalinity').val(dataRecord.w2_total_alkalinity);
756 $('#w2_ph').val(dataRecord.w2_ph); 753 $('#w2_ph').val(dataRecord.w2_ph);
754 $('#w2_bicarbonate').val(Bicarbonate(dataRecord.w2_total_alkalinity, dataRecord.w2_ph));
757 $('#w2_cost').val(dataRecord.w2_cost); 755 $('#w2_cost').val(dataRecord.w2_cost);
758 $('#wg_amount').val(dataRecord.wg_amount); 756 $('#wg_amount').val(dataRecord.wg_amount);
759 $('#wg_calcium').val(dataRecord.wg_calcium); 757 $('#wg_calcium').val(dataRecord.wg_calcium);
760 $('#wg_sulfate').val(dataRecord.wg_sulfate); 758 $('#wg_sulfate').val(dataRecord.wg_sulfate);
761 $('#wg_chloride').val(dataRecord.wg_chloride); 759 $('#wg_chloride').val(dataRecord.wg_chloride);
958 { name: 'm_time', type: 'float' }, 956 { name: 'm_time', type: 'float' },
959 { name: 'm_amount_is_weight', type: 'int' }, 957 { name: 'm_amount_is_weight', type: 'int' },
960 { name: 'm_inventory', type: 'float' }, 958 { name: 'm_inventory', type: 'float' },
961 { name: 'm_avail', type: 'int' } 959 { name: 'm_avail', type: 'int' }
962 ], 960 ],
963 // addrow: function(rowid, rowdata, position, commit) { commit(true); },
964 // deleterow: function(rowid, commit) { commit(true); },
965 // updaterow: function(rowid, rowdata, commit) { commit(true); }
966 }, 961 },
967 miscAdapter = new $.jqx.dataAdapter(miscSource, { 962 miscAdapter = new $.jqx.dataAdapter(miscSource, {
968 beforeLoadComplete: function(records) { 963 beforeLoadComplete: function(records) {
969 var i, row, data = new Array(); 964 var i, row, data = new Array();
970 for (i = 0; i < records.length; i++) { 965 for (i = 0; i < records.length; i++) {
1212 { name: 'step_time', type: 'float' }, 1207 { name: 'step_time', type: 'float' },
1213 { name: 'step_wg_ratio', type: 'float' }, 1208 { name: 'step_wg_ratio', type: 'float' },
1214 { name: 'ramp_time', type: 'float' }, 1209 { name: 'ramp_time', type: 'float' },
1215 { name: 'end_temp', type: 'float' } 1210 { name: 'end_temp', type: 'float' }
1216 ], 1211 ],
1217 // addrow: function(rowid, rowdata, position, commit) { commit(true); },
1218 // deleterow: function(rowid, commit) { commit(true); }
1219 }, 1212 },
1220 mashAdapter = new $.jqx.dataAdapter(mashSource, { 1213 mashAdapter = new $.jqx.dataAdapter(mashSource, {
1221 beforeLoadComplete: function(records) { 1214 beforeLoadComplete: function(records) {
1222 mash_infuse = 0; 1215 mash_infuse = 0;
1223 var row, i, data = new Array(); 1216 var row, i, data = new Array();
1372 1365
1373 if (dataRecord.w1_name == '') { 1366 if (dataRecord.w1_name == '') {
1374 return; 1367 return;
1375 } 1368 }
1376 1369
1370 $('#w1_hardness').val(Hardness(dataRecord.w1_calcium, dataRecord.w1_magnesium));
1371 $('#w1_ra').val(ResidualAlkalinity(dataRecord.w1_total_alkalinity, dataRecord.w1_calcium, dataRecord.w1_magnesium));
1372
1377 // If there is a dillute water source, mix the waters. 1373 // If there is a dillute water source, mix the waters.
1378 if (dataRecord.w2_name != '') { 1374 if (dataRecord.w2_name != '') {
1379 liters = dataRecord.w1_amount + dataRecord.w2_amount; 1375 liters = dataRecord.w1_amount + dataRecord.w2_amount;
1380 calcium = mix(dataRecord.w1_amount, dataRecord.w2_amount, dataRecord.w1_calcium, dataRecord.w2_calcium); 1376 calcium = mix(dataRecord.w1_amount, dataRecord.w2_amount, dataRecord.w1_calcium, dataRecord.w2_calcium);
1381 magnesium = mix(dataRecord.w1_amount, dataRecord.w2_amount, dataRecord.w1_magnesium, dataRecord.w2_magnesium); 1377 magnesium = mix(dataRecord.w1_amount, dataRecord.w2_amount, dataRecord.w1_magnesium, dataRecord.w2_magnesium);
1382 sodium = mix(dataRecord.w1_amount, dataRecord.w2_amount, dataRecord.w1_sodium, dataRecord.w2_sodium); 1378 sodium = mix(dataRecord.w1_amount, dataRecord.w2_amount, dataRecord.w1_sodium, dataRecord.w2_sodium);
1383 chloride = mix(dataRecord.w1_amount, dataRecord.w2_amount, dataRecord.w1_chloride, dataRecord.w2_chloride); 1379 chloride = mix(dataRecord.w1_amount, dataRecord.w2_amount, dataRecord.w1_chloride, dataRecord.w2_chloride);
1384 sulfate = mix(dataRecord.w1_amount, dataRecord.w2_amount, dataRecord.w1_sulfate, dataRecord.w2_sulfate); 1380 sulfate = mix(dataRecord.w1_amount, dataRecord.w2_amount, dataRecord.w1_sulfate, dataRecord.w2_sulfate);
1385 total_alkalinity = mix(dataRecord.w1_amount, dataRecord.w2_amount, dataRecord.w1_total_alkalinity, dataRecord.w2_total_alkalinity); 1381 total_alkalinity = mix(dataRecord.w1_amount, dataRecord.w2_amount, dataRecord.w1_total_alkalinity, dataRecord.w2_total_alkalinity);
1386 ph = -Math.log10(((Math.pow(10, -dataRecord.w1_ph) * dataRecord.w1_amount) + (Math.pow(10, -dataRecord.w2_ph) * dataRecord.w2_amount)) / liters); 1382 ph = -Math.log10(((Math.pow(10, -dataRecord.w1_ph) * dataRecord.w1_amount) + (Math.pow(10, -dataRecord.w2_ph) * dataRecord.w2_amount)) / liters);
1383 $('#w2_hardness').val(Hardness(dataRecord.w2_calcium, dataRecord.w2_magnesium));
1384 $('#w2_ra').val(ResidualAlkalinity(dataRecord.w2_total_alkalinity, dataRecord.w2_calcium, dataRecord.w2_magnesium));
1387 } else { 1385 } else {
1388 liters = dataRecord.w1_amount; 1386 liters = dataRecord.w1_amount;
1389 calcium = dataRecord.w1_calcium; 1387 calcium = dataRecord.w1_calcium;
1390 magnesium = dataRecord.w1_magnesium; 1388 magnesium = dataRecord.w1_magnesium;
1391 sodium = dataRecord.w1_sodium; 1389 sodium = dataRecord.w1_sodium;
1392 chloride = dataRecord.w1_chloride; 1390 chloride = dataRecord.w1_chloride;
1393 sulfate = dataRecord.w1_sulfate; 1391 sulfate = dataRecord.w1_sulfate;
1394 total_alkalinity = dataRecord.w1_total_alkalinity; 1392 total_alkalinity = dataRecord.w1_total_alkalinity;
1395 ph = dataRecord.w1_ph; 1393 ph = dataRecord.w1_ph;
1396 } 1394 }
1397 var bicarbonate = total_alkalinity * 1.22; 1395 var bicarbonate = Bicarbonate(total_alkalinity, ph);
1398 1396
1399 /* Save mixed water ions for later */ 1397 /* Save mixed water ions for later */
1400 var wg_calcium = calcium; 1398 var wg_calcium = calcium;
1401 var wg_sodium = sodium; 1399 var wg_sodium = sodium;
1402 var wg_total_alkalinity = total_alkalinity; 1400 var wg_total_alkalinity = total_alkalinity;
1403 var wg_chloride = chloride; 1401 var wg_chloride = chloride;
1404 var wg_sulfate = sulfate; 1402 var wg_sulfate = sulfate;
1405 var wg_bicarbonate = bicarbonate; 1403 var wg_bicarbonate = bicarbonate;
1404
1405 dataRecord.wg_amount = liters;
1406 dataRecord.wg_ph = ph;
1406 1407
1407 $('#wg_amount').val(liters); 1408 $('#wg_amount').val(liters);
1408 $('#wg_calcium').val(Round(calcium, 1)); 1409 $('#wg_calcium').val(Round(calcium, 1));
1409 $('#wg_magnesium').val(Round(magnesium, 1)); 1410 $('#wg_magnesium').val(Round(magnesium, 1));
1410 $('#wg_sodium').val(Round(sodium, 1)); 1411 $('#wg_sodium').val(Round(sodium, 1));
1411 $('#wg_bicarbonate').val(Round(bicarbonate, 1)); 1412 $('#wg_bicarbonate').val(Round(bicarbonate, 1));
1412 $('#wg_total_alkalinity').val(Round(total_alkalinity, 1)); 1413 $('#wg_total_alkalinity').val(Round(total_alkalinity, 1));
1413 $('#wg_chloride').val(Round(chloride, 1)); 1414 $('#wg_chloride').val(Round(chloride, 1));
1414 $('#wg_sulfate').val(Round(sulfate, 1)); 1415 $('#wg_sulfate').val(Round(sulfate, 1));
1415 $('#wg_ph').val(Round(ph, 2)); 1416 $('#wg_ph').val(Round(ph, 2));
1417 $('#wg_hardness').val(Round(Hardness(calcium, magnesium), 1));
1418 $('#wg_ra').val(Round(ResidualAlkalinity(total_alkalinity, calcium, magnesium), 1));
1416 1419
1417 var mash_ph = Round(MashpH(), 3); 1420 var mash_ph = Round(MashpH(), 3);
1418 console.log('Distilled water mash pH: ' + mash_ph); 1421 console.log('Distilled water mash pH: ' + mash_ph);
1419 1422
1420 /* Calculate Salt additions */ 1423 /* Calculate Salt additions */
1463 if (protonDeficit > 0) { // Add acid 1466 if (protonDeficit > 0) { // Add acid
1464 frac = CalcFrac(TpH, AcidTypeData[AT].pK1, AcidTypeData[AT].pK2, AcidTypeData[AT].pK3); 1467 frac = CalcFrac(TpH, AcidTypeData[AT].pK1, AcidTypeData[AT].pK2, AcidTypeData[AT].pK3);
1465 Acid = protonDeficit / frac; 1468 Acid = protonDeficit / frac;
1466 Acid *= AcidTypeData[AT].MolWt; // mg 1469 Acid *= AcidTypeData[AT].MolWt; // mg
1467 Acidmg = Acid; 1470 Acidmg = Acid;
1468 Acid = Acid / AcidTypeData[AT].AcidSG; // ml 1471 var RealSG = Round(((AcidTypeData[AT].AcidSG - 1000) * (parseFloat(dataRecord.wa_acid_perc) / 100)) + 1000, 2);
1469 Acid = Round(Acid / (parseFloat(dataRecord.wa_acid_perc) / 100), 2); // ml 1472 Acid /= RealSG;
1473 Acid /= AcidTypeData[AT].AcidPrc / 100;
1474 Acid = Round(Acid, 2);
1470 console.log('Mash auto Acid final ml: ' + Acid); 1475 console.log('Mash auto Acid final ml: ' + Acid);
1471 $('#wa_acid').val(Acid); 1476 $('#wa_acid').val(Acid);
1472 setWaterAgent(AcidTypeData[AT].nl, Acid); 1477 setWaterAgent(AcidTypeData[AT].nl, Acid);
1473 1478
1474 bicarbonate = bicarbonate - protonDeficit * frac / liters; 1479 bicarbonate = bicarbonate - protonDeficit * frac / liters;
1475 total_alkalinity = bicarbonate * 50 / 61; 1480 total_alkalinity = bicarbonate * 50 / 61;
1476 } 1481 }
1477 ph = TpH; 1482 ph = TpH;
1483 dataRecord.wb_ph = ph;
1478 $('#wb_ph').val(Round(ph, 2)); 1484 $('#wb_ph').val(Round(ph, 2));
1479 $('#est_mash_ph').val(Round(ph, 2)); 1485 $('#est_mash_ph').val(Round(ph, 2));
1480 } else { // Manual 1486 } else { // Manual
1481 /* Manual calculate pH */ 1487 /* Manual calculate pH */
1482 $('.c_mashph').hide(); 1488 $('.c_mashph').hide();
1507 frac = CalcFrac(pHa, AcidTypeData[AT].pK1, AcidTypeData[AT].pK2, AcidTypeData[AT].pK3); 1513 frac = CalcFrac(pHa, AcidTypeData[AT].pK1, AcidTypeData[AT].pK2, AcidTypeData[AT].pK3);
1508 protonDeficit = Acid * frac; 1514 protonDeficit = Acid * frac;
1509 pd = ProtonDeficit(pHa); 1515 pd = ProtonDeficit(pHa);
1510 } 1516 }
1511 //console.log('n: ' + n + ' pd: ' + pd + ' protonDeficit: ' + protonDeficit + ' frac: ' + frac + ' pHa: ' + pHa); 1517 //console.log('n: ' + n + ' pd: ' + pd + ' protonDeficit: ' + protonDeficit + ' frac: ' + frac + ' pHa: ' + pHa);
1512 RA = wg_bicarbonate - protonDeficit * frac / liters; 1518 bicarbonate = wg_bicarbonate - protonDeficit * frac / liters;
1513 bicarbonate = RA;
1514 total_alkalinity = RA * 50 / 61; 1519 total_alkalinity = RA * 50 / 61;
1515 ph = pHa; 1520 ph = pHa;
1516 $('#wb_ph').val(Round(ph, 2)); 1521 $('#wb_ph').val(Round(ph, 2));
1517 $('#est_mash_ph').val(Round(ph, 2)); 1522 $('#est_mash_ph').val(Round(ph, 2));
1518 } 1523 }
1581 $('#wb_sodium').val(Round(sodium, 1)); 1586 $('#wb_sodium').val(Round(sodium, 1));
1582 $('#wb_sulfate').val(Round(sulfate, 1)); 1587 $('#wb_sulfate').val(Round(sulfate, 1));
1583 $('#wb_chloride').val(Round(chloride, 1)); 1588 $('#wb_chloride').val(Round(chloride, 1));
1584 $('#wb_bicarbonate').val(Round(bicarbonate, 1)); 1589 $('#wb_bicarbonate').val(Round(bicarbonate, 1));
1585 $('#wb_total_alkalinity').val(Round(total_alkalinity, 1)); 1590 $('#wb_total_alkalinity').val(Round(total_alkalinity, 1));
1591 $('#wb_hardness').val(Hardness(calcium, magnesium));
1592 $('#wb_ra').val(ResidualAlkalinity(total_alkalinity, calcium, magnesium));
1586 1593
1587 if (calcium < 40) { 1594 if (calcium < 40) {
1588 setRangeIndicator('calcium', 'laag'); 1595 setRangeIndicator('calcium', 'laag');
1589 } else if (calcium > 150) { 1596 } else if (calcium > 150) {
1590 setRangeIndicator('calcium', 'hoog'); 1597 setRangeIndicator('calcium', 'hoog');
1641 1648
1642 1649
1643 function calcSparge() { 1650 function calcSparge() {
1644 1651
1645 /* Based on the work of ajDeLange. */ 1652 /* Based on the work of ajDeLange. */
1653 var ws_calcium, ws_magnesium, ws_total_alkalinity, ws_sodium, ws_chloride;
1654 var ws_sulfate, ws_ph, ws_hardness, ws_ra;
1646 var TargetpH = dataRecord.sparge_ph; 1655 var TargetpH = dataRecord.sparge_ph;
1647 var Source_pH = dataRecord.w1_ph; 1656 var Source_pH = 7.0;
1648 var Source_alkalinity = dataRecord.w1_total_alkalinity; 1657
1649 // Select watersource or fallback to the first source. 1658 // Select watersource or fallback to the first source.
1650 if (dataRecord.sparge_source == 1) { // Source 2 1659 if ((dataRecord.sparge_source == 1) && (dataRecord.w2_ph > 0.0)) { // Source 2
1651 if (dataRecord.w2_ph > 0.0) { 1660 ws_calcium = dataRecord.w2_calcium;
1661 ws_magnesium = dataRecord.w2_magnesium;
1662 ws_total_alkalinity = dataRecord.w2_total_alkalinity;
1663 ws_sodium = dataRecord.w2_sodium;
1664 ws_chloride = dataRecord.w2_chloride;
1665 ws_sulfate = dataRecord.w2_sulfate;
1652 Source_pH = dataRecord.w2_ph; 1666 Source_pH = dataRecord.w2_ph;
1653 Source_alkalinity = dataRecord.w2_total_alkalinity; 1667 $('#w2_button').jqxRadioButton({ checked: true });
1654 } else { 1668 } else if ((dataRecord.sparge_source == 2) && (dataRecord.w2_ph > 0.0)) { // Mixed
1655 dataRecord.sparge_source = 0; // Source 1 1669 ws_calcium = dataRecord.wg_calcium;
1656 $('#sparge_source').val(0); 1670 ws_magnesium = dataRecord.wg_magnesium;
1657 } 1671 ws_total_alkalinity = dataRecord.wg_total_alkalinity;
1658 } else if (dataRecord.sparge_source == 2) { // Mixed 1672 ws_sodium = dataRecord.wg_sodium;
1659 if (dataRecord.w2_ph > 0.0) { 1673 ws_chloride = dataRecord.wg_chloride;
1660 Source_pH = parseFloat($('#wg_ph').jqxNumberInput('decimal')); 1674 ws_sulfate = dataRecord.wg_sulfate;
1661 Source_alkalinity = parseFloat($('#wg_total_alkalinity').jqxNumberInput('decimal')); 1675 Source_pH = dataRecord.wg_ph;
1662 } else { 1676 $('#wg_button').jqxRadioButton({ checked: true });
1663 dataRecord.sparge_source = 0; 1677 } else {
1664 $('#sparge_source').val(0); 1678 ws_calcium = dataRecord.w1_calcium;
1665 } 1679 ws_magnesium = dataRecord.w1_magnesium;
1666 } 1680 ws_total_alkalinity = dataRecord.w1_total_alkalinity;
1667 1681 ws_sodium = dataRecord.w1_sodium;
1668 // Step 1: Compute the mole fractions of carbonic (f1o), bicarbonate (f2o) and carbonate(f3o) at the water pH 1682 ws_chloride = dataRecord.w1_chloride;
1669 var r1 = Math.pow(10, Source_pH - 6.35); 1683 ws_sulfate = dataRecord.w1_sulfate;
1670 var r2 = Math.pow(10, Source_pH - 10.33); 1684 Source_pH = dataRecord.w1_ph;
1671 var d = 1 + r1 + r1 * r2; 1685 $('#w1_button').jqxRadioButton({ checked: true });
1672 var f1 = 1 / d; 1686 }
1673 var f3 = r1 * r2 / d; 1687
1674 1688 if (dataRecord.sparge_volume > 0) {
1675 //Step 2. Compute the mole fractions at pH = 4.3 (the pH which defines alkalinity) 1689 ws_calcium += (parseFloat($('#ss_cacl2').jqxNumberInput('decimal')) * MMCa / MMCaCl2 * 1000 +
1676 var r143 = Math.pow(10, 4.3 - 6.35); 1690 parseFloat($('#ss_caso4').jqxNumberInput('decimal')) * MMCa / MMCaSO4 * 1000) / dataRecord.sparge_volume;
1677 var r243 = Math.pow(10, 4.3 - 10.33); 1691 ws_magnesium += (parseFloat($('#ss_mgso4').jqxNumberInput('decimal')) * MMMg / MMMgSO4 * 1000 +
1678 var d43 = 1 + r143 + r143 * r243; 1692 parseFloat($('#ss_mgcl2').jqxNumberInput('decimal')) * MMMg / MMMgCl2 * 1000) / dataRecord.sparge_volume;
1679 var f143 = 1 / d43; 1693 ws_sodium += (parseFloat($('#ss_nacl').jqxNumberInput('decimal')) * MMNa / MMNaCl * 1000) / dataRecord.sparge_volume;
1680 var f343 = r143 * r243 / d43; 1694 ws_sulfate += (parseFloat($('#ss_caso4').jqxNumberInput('decimal')) * MMSO4 / MMCaSO4 * 1000 +
1681 1695 parseFloat($('#ss_mgso4').jqxNumberInput('decimal')) * MMSO4 / MMMgSO4 * 1000) / dataRecord.sparge_volume;
1682 //Step 4. Solve 1696 ws_chloride += (2 * parseFloat($('#ss_cacl2').jqxNumberInput('decimal')) * MMCl / MMCaCl2 * 1000 +
1683 //var Ct = (alkalinity - 1000 * (Math.pow(10, -4.3) - Math.pow(10, -Source_pH))) / ((f143 - f1) + (f3 - f343)); 1697 parseFloat($('#ss_nacl').jqxNumberInput('decimal')) * MMCl / MMNaCl * 1000 +
1684 var Ct = Source_alkalinity / 50 / ((f143 - f1) + (f3 - f343)); 1698 parseFloat($('#ss_mgcl2').jqxNumberInput('decimal')) * MMCl / MMMgCl2 * 1000) / dataRecord.sparge_volume;
1685 1699 }
1686 //Step 5. Compute mole fractions at desired pH 1700
1687 var r1g = Math.pow(10, TargetpH - 6.35); 1701 /* Show the spargewate with salt additions */
1688 var r2g = Math.pow(10, TargetpH - 10.33); 1702 $('#sw_calcium').val(Round(ws_calcium, 1));
1689 var dg = 1 + r1g + r1g * r2g; 1703 $('#sw_magnesium').val(Round(ws_magnesium, 1));
1690 var f1g = 1 / dg; 1704 $('#sw_sodium').val(Round(ws_sodium, 1));
1691 var f3g = r1g * r2g / dg; 1705 $('#sw_sulfate').val(Round(ws_sulfate, 1));
1692 1706 $('#sw_chloride').val(Round(ws_chloride, 1));
1693 //Step 6. Use these to compute the milliequivalents acid required per liter (mEq/L) 1707 $('#sw_bicarbonate').val(Round(Bicarbonate(ws_total_alkalinity, Source_pH), 1));
1694 var Acid = Ct * ((f1g - f1) + (f3 - f3g)) + Math.pow(10, -TargetpH) - Math.pow(10, -Source_pH); //mEq/l 1708 $('#sw_total_alkalinity').val(Round(ws_total_alkalinity, 1));
1695 Acid += 0.01; // Add acid that would be required for distilled water. 1709 $('#sw_ph').val(dataRecord.sparge_ph);
1696 1710 $('#sw_hardness').val(Hardness(ws_calcium, ws_magnesium));
1697 //Step 8. Get the acid data. 1711 $('#sw_ra').val(ResidualAlkalinity(ws_total_alkalinity, ws_calcium, ws_magnesium));
1712
1698 AT = dataRecord.sparge_acid_type; 1713 AT = dataRecord.sparge_acid_type;
1699 if (AT < 0 || AT >= AcidTypeData.length) { 1714 if (AT < 0 || AT >= AcidTypeData.length) {
1700 AT = 0; 1715 AT = 0;
1701 dataRecord.sparge_acid_type = 0; 1716 dataRecord.sparge_acid_type = 0;
1702 $('#sparge_acid_type').val(AcidTypeData[0].nl); 1717 $('#sparge_acid_type').val(AcidTypeData[0].nl);
1703 dataRecord.sparge_acid_perc = AcidTypeData[0].AcidPrc; 1718 dataRecord.sparge_acid_perc = AcidTypeData[0].AcidPrc;
1704 $('#sparge_acid_perc').val(dataRecord.sparge_acid_perc); 1719 $('#sparge_acid_perc').val(dataRecord.sparge_acid_perc);
1705 } 1720 }
1706 var fract = CalcFrac(TargetpH, AcidTypeData[AT].pK1, AcidTypeData[AT].pK2, AcidTypeData[AT].pK3); 1721
1707 1722 /*
1708 //Step 9. Now divide the mEq required by the "fraction". This is the required number of moles of acid. 1723 * Auto calculate the required acid
1709 Acid /= fract; 1724 */
1710 1725 if (dataRecord.calc_acid) {
1711 //Step 10. Multiply by molecular weight of the acid 1726 // Step 1: Compute the mole fractions of carbonic (f1o), bicarbonate (f2o) and carbonate(f3o) at the water pH
1712 Acid *= AcidTypeData[AT].MolWt; //mg 1727 var r1 = Math.pow(10, Source_pH - 6.35);
1713 1728 var r2 = Math.pow(10, Source_pH - 10.33);
1714 //Step 11. Divide by Specific Gravity and Percentage to get the final ml. 1729 var d = 1 + r1 + r1 * r2;
1715 Acid = Acid / AcidTypeData[AT].AcidSG / (dataRecord.sparge_acid_perc / 100); //ml 1730 var f1 = 1 / d;
1716 Acid *= dataRecord.sparge_volume; //ml acid total 1731 var f3 = r1 * r2 / d;
1717 Acid = Round(Acid, 2); 1732
1718 dataRecord.sparge_acid_amount = Acid / 1000; 1733 //Step 2. Compute the mole fractions at pH = 4.3 (the pH which defines alkalinity)
1719 $('#sparge_acid_amount').val(Acid); 1734 var r143 = Math.pow(10, 4.3 - 6.35);
1735 var r243 = Math.pow(10, 4.3 - 10.33);
1736 var d43 = 1 + r143 + r143 * r243;
1737 var f143 = 1 / d43;
1738 var f343 = r143 * r243 / d43;
1739
1740 //Step 4. Solve
1741 var Ct = ws_total_alkalinity / 50 / ((f143 - f1) + (f3 - f343));
1742
1743 //Step 5. Compute mole fractions at desired pH
1744 var r1g = Math.pow(10, TargetpH - 6.35);
1745 var r2g = Math.pow(10, TargetpH - 10.33);
1746 var dg = 1 + r1g + r1g * r2g;
1747 var f1g = 1 / dg;
1748 var f3g = r1g * r2g / dg;
1749
1750 //Step 6. Use these to compute the milliequivalents acid required per liter (mEq/L)
1751 var Acid = Ct * ((f1g - f1) + (f3 - f3g)) + Math.pow(10, -TargetpH) - Math.pow(10, -Source_pH); //mEq/l
1752 Acid += 0.01; // Add acid that would be required for distilled water.
1753
1754 //Step 8. Get the acid data.
1755 var fract = CalcFrac(TargetpH, AcidTypeData[AT].pK1, AcidTypeData[AT].pK2, AcidTypeData[AT].pK3);
1756
1757 //Step 9. Now divide the mEq required by the "fraction". This is the required number of moles of acid.
1758 Acid /= fract;
1759
1760 //Step 10. Multiply by molecular weight of the acid
1761 Acid *= AcidTypeData[AT].MolWt; //mg
1762
1763 //Step 11. Divide by Specific Gravity and Percentage to get the final ml.
1764 var RealSG = Round(((AcidTypeData[AT].AcidSG - 1000) * (dataRecord.sparge_acid_perc / 100)) + 1000, 2);
1765 Acid = Acid / RealSG; //ml
1766 Acid *= dataRecord.sparge_volume; //ml acid total at 100%
1767 Acid /= AcidTypeData[AT].AcidPrc / 100; //ml acid at supplied strength
1768 Acid = Round(Acid, 2);
1769 dataRecord.sparge_acid_amount = Acid / 1000;
1770 $('#sparge_acid_amount').val(Acid);
1771 }
1772
1773 // Finally calculate the estimate preboil pH
1774 var ph = -Math.log10(((Math.pow(10, -dataRecord.wb_ph) * dataRecord.wg_amount) + (Math.pow(10, -dataRecord.sparge_ph) * dataRecord.sparge_volume)) /
1775 (dataRecord.wg_amount + dataRecord.sparge_volume));
1776 $('#preboil_ph').val(ph);
1720 } 1777 }
1721 1778
1722 function calcInit() { 1779 function calcInit() {
1723 console.log('calc.init()'); 1780 console.log('calc.init()');
1724 1781
1958 $('#mash_name').jqxInput({ theme: theme, width: 320, height: 23 }); 2015 $('#mash_name').jqxInput({ theme: theme, width: 320, height: 23 });
1959 2016
1960 // Tab 7, Water 2017 // Tab 7, Water
1961 $('#tgt_bu').jqxNumberInput(Show2wat); 2018 $('#tgt_bu').jqxNumberInput(Show2wat);
1962 $('#tgt_so4_cl,#got_so4_cl').jqxNumberInput(Show1wat); 2019 $('#tgt_so4_cl,#got_so4_cl').jqxNumberInput(Show1wat);
2020 $('#preboil_ph').jqxNumberInput(Show2wat);
1963 2021
1964 // Water source 1 2022 // Water source 1
1965 $('#w1_name').jqxDropDownList({ 2023 $('#w1_name').jqxInput({ theme: theme, width: 200, height: 23 });
1966 placeHolder: 'Kies hoofd water:', 2024 $('#w1_button').jqxRadioButton({ theme: theme, width: 50, height: 23, disabled: true });
1967 theme: theme,
1968 source: waterlist,
1969 displayMember: 'name',
1970 width: 200,
1971 height: 27,
1972 dropDownWidth: 400,
1973 dropDownHeight: 400
1974 });
1975 $('#w1_name').on('select', function(event) {
1976 if (event.args) {
1977 var datarecord, index = event.args.index;
1978 datarecord = waterlist.records[index];
1979 dataRecord.w1_name = datarecord.name;
1980 $('#w1_calcium').val(datarecord.calcium);
1981 dataRecord.w1_calcium = datarecord.calcium;
1982 $('#w1_sulfate').val(datarecord.sulfate);
1983 dataRecord.w1_sulfate = datarecord.sulfate;
1984 $('#w1_chloride').val(datarecord.chloride);
1985 dataRecord.w1_chloride = datarecord.chloride;
1986 $('#w1_sodium').val(datarecord.sodium);
1987 dataRecord.w1_sodium = datarecord.sodium;
1988 $('#w1_magnesium').val(datarecord.magnesium);
1989 dataRecord.w1_magnesium = datarecord.magnesium;
1990 $('#w1_total_alkalinity').val(datarecord.total_alkalinity);
1991 $('#w1_bicarbonate').val(datarecord.total_alkalinity * 1.22);
1992 dataRecord.w1_total_alkalinity = datarecord.total_alkalinity;
1993 $('#w1_ph').val(datarecord.ph);
1994 dataRecord.w1_ph = datarecord.ph;
1995 $('#w1_cost').val(datarecord.cost);
1996 dataRecord.w1_cost = datarecord.cost;
1997 calcWater();
1998 }
1999 });
2000 $('#w1_amount').jqxNumberInput(Show1wat); 2025 $('#w1_amount').jqxNumberInput(Show1wat);
2001 $('#w1_calcium').jqxNumberInput(Show1wat); 2026 $('#w1_calcium').jqxNumberInput(Show1wat);
2002 $('#w1_magnesium').jqxNumberInput(Show1wat); 2027 $('#w1_magnesium').jqxNumberInput(Show1wat);
2003 $('#w1_sodium').jqxNumberInput(Show1wat); 2028 $('#w1_sodium').jqxNumberInput(Show1wat);
2004 $('#w1_bicarbonate').jqxNumberInput(Show1wat); 2029 $('#w1_bicarbonate').jqxNumberInput(Show1wat);
2005 $('#w1_total_alkalinity').jqxNumberInput(Show1wat); 2030 $('#w1_total_alkalinity').jqxNumberInput(Show1wat);
2006 $('#w1_chloride').jqxNumberInput(Show1wat); 2031 $('#w1_chloride').jqxNumberInput(Show1wat);
2007 $('#w1_sulfate').jqxNumberInput(Show1wat); 2032 $('#w1_sulfate').jqxNumberInput(Show1wat);
2008 $('#w1_ph').jqxNumberInput(Show2wat); 2033 $('#w1_ph').jqxNumberInput(Show2wat);
2034 $('#w1_hardness').jqxNumberInput(Show1wat);
2035 $('#w1_ra').jqxNumberInput(Show1wat);
2009 // Water source 2 2036 // Water source 2
2010 $('#w2_name').jqxDropDownList({ 2037 $('#w2_name').jqxInput({ theme: theme, width: 200, height: 23 });
2011 placeHolder: 'Kies meng water:', 2038 $('#w2_button').jqxRadioButton({ theme: theme, width: 50, height: 23, disabled: true });
2012 theme: theme,
2013 source: waterlist,
2014 displayMember: 'name',
2015 width: 200,
2016 height: 27,
2017 dropDownWidth: 400,
2018 dropDownHeight: 400
2019 });
2020 $('#w2_name').on('select', function(event) {
2021 if (event.args) {
2022 var datarecord, index = event.args.index;
2023 datarecord = waterlist.records[index];
2024 dataRecord.w2_name = datarecord.name;
2025 $('#w2_calcium').val(datarecord.calcium);
2026 dataRecord.w2_calcium = datarecord.calcium;
2027 $('#w2_sulfate').val(datarecord.sulfate);
2028 dataRecord.w2_sulfate = datarecord.sulfate;
2029 $('#w2_chloride').val(datarecord.chloride);
2030 dataRecord.w2_chloride = datarecord.chloride;
2031 $('#w2_sodium').val(datarecord.sodium);
2032 dataRecord.w2_sodium = datarecord.sodium;
2033 $('#w2_magnesium').val(datarecord.magnesium);
2034 dataRecord.w2_magnesium = datarecord.magnesium;
2035 $('#w2_total_alkalinity').val(datarecord.total_alkalinity);
2036 $('#w2_bicarbonate').val(datarecord.total_alkalinity * 1.22);
2037 dataRecord.w2_total_alkalinity = datarecord.total_alkalinity;
2038 $('#w2_ph').val(datarecord.ph);
2039 dataRecord.w2_ph = datarecord.ph;
2040 $('#w2_cost').val(datarecord.cost);
2041 dataRecord.w2_cost = datarecord.cost;
2042 calcWater();
2043 }
2044 });
2045 $('#w2_amount').jqxNumberInput(Show1wat); 2039 $('#w2_amount').jqxNumberInput(Show1wat);
2046 $('#w2_calcium').jqxNumberInput(Show1wat); 2040 $('#w2_calcium').jqxNumberInput(Show1wat);
2047 $('#w2_magnesium').jqxNumberInput(Show1wat); 2041 $('#w2_magnesium').jqxNumberInput(Show1wat);
2048 $('#w2_sodium').jqxNumberInput(Show1wat); 2042 $('#w2_sodium').jqxNumberInput(Show1wat);
2049 $('#w2_bicarbonate').jqxNumberInput(Show1wat); 2043 $('#w2_bicarbonate').jqxNumberInput(Show1wat);
2050 $('#w2_total_alkalinity').jqxNumberInput(Show1wat); 2044 $('#w2_total_alkalinity').jqxNumberInput(Show1wat);
2051 $('#w2_chloride').jqxNumberInput(Show1wat); 2045 $('#w2_chloride').jqxNumberInput(Show1wat);
2052 $('#w2_sulfate').jqxNumberInput(Show1wat); 2046 $('#w2_sulfate').jqxNumberInput(Show1wat);
2053 $('#w2_ph').jqxNumberInput(Show2wat); 2047 $('#w2_ph').jqxNumberInput(Show2wat);
2048 $('#w2_hardness').jqxNumberInput(Show1wat);
2049 $('#w2_ra').jqxNumberInput(Show1wat);
2054 // Water mixed 2050 // Water mixed
2051 $('#wg_button').jqxRadioButton({ theme: theme, width: 50, height: 23, disabled: true });
2055 $('#wg_amount').jqxNumberInput(Show1wat); 2052 $('#wg_amount').jqxNumberInput(Show1wat);
2056 $('#wg_calcium').jqxNumberInput(Show1wat); 2053 $('#wg_calcium').jqxNumberInput(Show1wat);
2057 $('#wg_magnesium').jqxNumberInput(Show1wat); 2054 $('#wg_magnesium').jqxNumberInput(Show1wat);
2058 $('#wg_sodium').jqxNumberInput(Show1wat); 2055 $('#wg_sodium').jqxNumberInput(Show1wat);
2059 $('#wg_bicarbonate').jqxNumberInput(Show1wat); 2056 $('#wg_bicarbonate').jqxNumberInput(Show1wat);
2060 $('#wg_total_alkalinity').jqxNumberInput(Show1wat); 2057 $('#wg_total_alkalinity').jqxNumberInput(Show1wat);
2061 $('#wg_chloride').jqxNumberInput(Show1wat); 2058 $('#wg_chloride').jqxNumberInput(Show1wat);
2062 $('#wg_sulfate').jqxNumberInput(Show1wat); 2059 $('#wg_sulfate').jqxNumberInput(Show1wat);
2063 $('#wg_ph').jqxNumberInput(Show2wat); 2060 $('#wg_ph').jqxNumberInput(Show2wat);
2061 $('#wg_hardness').jqxNumberInput(Show1wat);
2062 $('#wg_ra').jqxNumberInput(Show1wat);
2064 // Water treated 2063 // Water treated
2065 $('#wb_calcium').jqxTooltip({ content: 'De ideale hoeveelheid Calcium is tussen 40 en 150.'}); 2064 $('#wb_calcium').jqxTooltip({ content: 'De ideale hoeveelheid Calcium is tussen 40 en 150.'});
2066 $('#wb_calcium').jqxNumberInput(Show1wat); 2065 $('#wb_calcium').jqxNumberInput(Show1wat);
2067 $('#wb_magnesium').jqxTooltip({ content: 'De ideale hoeveelheid Magnesium is tussen 5 en 40.'}); 2066 $('#wb_magnesium').jqxTooltip({ content: 'De ideale hoeveelheid Magnesium is tussen 5 en 40.'});
2068 $('#wb_magnesium').jqxNumberInput(Show1wat); 2067 $('#wb_magnesium').jqxNumberInput(Show1wat);
2074 $('#wb_sulfate').jqxNumberInput(Show1wat); 2073 $('#wb_sulfate').jqxNumberInput(Show1wat);
2075 $('#wb_bicarbonate').jqxTooltip({ content: '0 tot 50 lichte bieren, 50 tot 150 amber bieren, 150 tot 250 donkere bieren.'}); 2074 $('#wb_bicarbonate').jqxTooltip({ content: '0 tot 50 lichte bieren, 50 tot 150 amber bieren, 150 tot 250 donkere bieren.'});
2076 $('#wb_bicarbonate').jqxNumberInput(Show1wat); 2075 $('#wb_bicarbonate').jqxNumberInput(Show1wat);
2077 $('#wb_total_alkalinity').jqxNumberInput(Show1wat); 2076 $('#wb_total_alkalinity').jqxNumberInput(Show1wat);
2078 $('#wb_ph').jqxNumberInput(Show2wat); 2077 $('#wb_ph').jqxNumberInput(Show2wat);
2079 // Water target profile 2078 $('#wb_hardness').jqxNumberInput(Show1wat);
2080 $('#pr_name').jqxDropDownList({ 2079 $('#wb_ra').jqxNumberInput(Show1wat);
2081 placeHolder: 'Kies doel profiel:', 2080 // Sparge water
2082 theme: theme, 2081 $('#sw_amount').jqxNumberInput(Show1wat);
2083 source: waterprofiles, 2082 $('#sw_calcium').jqxNumberInput(Show1wat);
2084 displayMember: 'name', 2083 $('#sw_magnesium').jqxNumberInput(Show1wat);
2085 width: 200, 2084 $('#sw_sodium').jqxNumberInput(Show1wat);
2086 height: 27, 2085 $('#sw_bicarbonate').jqxNumberInput(Show1wat);
2087 dropDownWidth: 400, 2086 $('#sw_total_alkalinity').jqxNumberInput(Show1wat);
2088 dropDownHeight: 300 2087 $('#sw_chloride').jqxNumberInput(Show1wat);
2089 }); 2088 $('#sw_sulfate').jqxNumberInput(Show1wat);
2090 $('#pr_name').on('select', function(event) { 2089 $('#sw_ph').jqxNumberInput(Show2wat);
2091 if (event.args) { 2090 $('#sw_hardness').jqxNumberInput(Show1wat);
2092 var datarecord, index = event.args.index; 2091 $('#sw_ra').jqxNumberInput(Show1wat);
2093 datarecord = waterprofiles.records[index];
2094 $('#pr_calcium').val(datarecord.calcium);
2095 $('#pr_sulfate').val(datarecord.sulfate);
2096 $('#pr_chloride').val(datarecord.chloride);
2097 $('#pr_sodium').val(datarecord.sodium);
2098 $('#pr_magnesium').val(datarecord.magnesium);
2099 $('#pr_total_alkalinity').val(datarecord.total_alkalinity);
2100 $('#pr_bicarbonate').val(datarecord.total_alkalinity * 1.22);
2101 calcWater();
2102 }
2103 });
2104 $('#pr_calcium').jqxNumberInput(Show1wat);
2105 $('#pr_magnesium').jqxNumberInput(Show1wat);
2106 $('#pr_sodium').jqxNumberInput(Show1wat);
2107 $('#pr_bicarbonate').jqxNumberInput(Show1wat);
2108 $('#pr_total_alkalinity').jqxNumberInput(Show1wat);
2109 $('#pr_chloride').jqxNumberInput(Show1wat);
2110 $('#pr_sulfate').jqxNumberInput(Show1wat);
2111 2092
2112 // Water agents 2093 // Water agents
2113 $('#wa_cacl2').jqxTooltip({ content: 'Voor het maken van een ander waterprofiel. Voegt calcium en chloride toe. Voor het verbeteren van zoetere bieren.'}); 2094 $('#wa_cacl2').jqxTooltip({ content: 'Voor het maken van een ander waterprofiel. Voegt calcium en chloride toe. Voor het verbeteren van zoetere bieren.'});
2114 $('#wa_cacl2').jqxNumberInput(Show1wat); 2095 $('#wa_cacl2').jqxNumberInput(Show2wat);
2115 $('#ss_cacl2').jqxNumberInput(Show1wat); 2096 $('#ss_cacl2').jqxNumberInput(Show2wat);
2116 2097
2117 $('#wa_caso4').jqxTooltip({ 2098 $('#wa_caso4').jqxTooltip({
2118 content: 'Gips. Voor het maken van een ander waterprofiel. Voegt calcium en sulfaat toe. Voor het verbeteren van bittere bieren.' 2099 content: 'Gips. Voor het maken van een ander waterprofiel. Voegt calcium en sulfaat toe. Voor het verbeteren van bittere bieren.'
2119 }); 2100 });
2120 $('#wa_caso4').jqxNumberInput(Show1wat); 2101 $('#wa_caso4').jqxNumberInput(Show2wat);
2121 $('#ss_caso4').jqxNumberInput(Show1wat); 2102 $('#ss_caso4').jqxNumberInput(Show2wat);
2122 2103
2123 $('#wa_mgso4').jqxTooltip({ content: 'Epsom zout. Voor het maken van een ander waterprofiel. Voegt magnesium en sulfaat toe. Gebruik spaarzaam!'}); 2104 $('#wa_mgso4').jqxTooltip({ content: 'Epsom zout. Voor het maken van een ander waterprofiel. Voegt magnesium en sulfaat toe. Gebruik spaarzaam!'});
2124 $('#wa_mgso4').jqxNumberInput(Show1wat); 2105 $('#wa_mgso4').jqxNumberInput(Show2wat);
2125 $('#ss_mgso4').jqxNumberInput(Show1wat); 2106 $('#ss_mgso4').jqxNumberInput(Show2wat);
2126 2107
2127 $('#wa_nacl').jqxTooltip({ 2108 $('#wa_nacl').jqxTooltip({
2128 content: 'Keukenzout. Voor het maken van een ander waterprofiel. Voegt natrium en chloride toe. ' + 2109 content: 'Keukenzout. Voor het maken van een ander waterprofiel. Voegt natrium en chloride toe. ' +
2129 'Voor het accentueren van zoetheid. Bij hoge dosering wordt het bier ziltig.' 2110 'Voor het accentueren van zoetheid. Bij hoge dosering wordt het bier ziltig.'
2130 }); 2111 });
2131 $('#wa_nacl').jqxNumberInput(Show1wat); 2112 $('#wa_nacl').jqxNumberInput(Show2wat);
2132 $('#ss_nacl').jqxNumberInput(Show1wat); 2113 $('#ss_nacl').jqxNumberInput(Show2wat);
2133 2114
2134 $('#wa_mgcl2').jqxTooltip({ content: 'Magnesiumchloride'}); 2115 $('#wa_mgcl2').jqxTooltip({ content: 'Magnesiumchloride'});
2135 $('#wa_mgcl2').jqxNumberInput(Show1wat); 2116 $('#wa_mgcl2').jqxNumberInput(Show2wat);
2136 $('#ss_mgcl2').jqxNumberInput(Show1wat); 2117 $('#ss_mgcl2').jqxNumberInput(Show2wat);
2137 2118
2138 $('#wa_nahco3').jqxTooltip({ content: 'Baksoda'}); 2119 $('#wa_nahco3').jqxTooltip({ content: 'Baksoda'});
2139 $('#wa_caco3').jqxTooltip({ content: 'Kalk'}); 2120 $('#wa_caco3').jqxTooltip({ content: 'Kalk'});
2140 $('#wa_nahco3,#wa_caco3').jqxNumberInput(Show1wat); 2121 $('#wa_nahco3,#wa_caco3').jqxNumberInput(Show2wat);
2141 2122
2142 $('#mash_ph').jqxTooltip({ content: 'Maisch pH tussen 5.2 en 5.6. Gebruik 5.2 voor lichte en 5.5 voor donkere bieren.'}); 2123 $('#mash_ph').jqxTooltip({ content: 'Maisch pH tussen 5.2 en 5.6. Gebruik 5.2 voor lichte en 5.5 voor donkere bieren.'});
2143 $('#mash_ph').jqxNumberInput(Show2dec); 2124 $('#mash_ph').jqxNumberInput(Show2dec);
2144 2125
2145 $('#calc_acid').jqxCheckBox({ theme: theme, width: 120, height: 23, disabled: true }); 2126 $('#calc_acid').jqxCheckBox({ theme: theme, width: 120, height: 23, disabled: true });
2149 $('#wa_acid').jqxNumberInput({ symbol: ' ml', symbolPosition: 'right' }); 2130 $('#wa_acid').jqxNumberInput({ symbol: ' ml', symbolPosition: 'right' });
2150 $('#wa_acid_perc').jqxNumberInput(Show0dec); 2131 $('#wa_acid_perc').jqxNumberInput(Show0dec);
2151 $('#wa_acid_perc').jqxNumberInput({ symbol: '%', symbolPosition: 'right' }); 2132 $('#wa_acid_perc').jqxNumberInput({ symbol: '%', symbolPosition: 'right' });
2152 2133
2153 // Sparge water 2134 // Sparge water
2154 // $('#sparge_volume').jqxNumberInput(Spin1dec);
2155 $('#sparge_ph').jqxNumberInput(Show2dec); 2135 $('#sparge_ph').jqxNumberInput(Show2dec);
2156 $('#sparge_source').jqxDropDownList({
2157 theme: theme,
2158 source: SpargeSourceAdapter,
2159 valueMember: 'id',
2160 displayMember: 'nl',
2161 width: 110,
2162 height: 23,
2163 autoDropDownHeight: true
2164 });
2165 $('#sparge_acid_amount').jqxNumberInput(Show2dec); 2136 $('#sparge_acid_amount').jqxNumberInput(Show2dec);
2166 $('#sparge_acid_amount').jqxNumberInput({ symbol: ' ml', symbolPosition: 'right' }); 2137 $('#sparge_acid_amount').jqxNumberInput({ symbol: ' ml', symbolPosition: 'right' });
2167 $('#sparge_acid_type').jqxInput({ theme: theme, width: 130, height: 23 }); 2138 $('#sparge_acid_type').jqxInput({ theme: theme, width: 130, height: 23 });
2168 $('#sparge_acid_perc').jqxNumberInput(Show0dec); 2139 $('#sparge_acid_perc').jqxNumberInput(Show0dec);
2169 $('#sparge_acid_perc').jqxNumberInput({ symbol: '%', symbolPosition: 'right' }); 2140 $('#sparge_acid_perc').jqxNumberInput({ symbol: '%', symbolPosition: 'right' });

mercurial