www/js/rec_edit.js

changeset 772
f9d266eb0ec6
parent 756
b702c25661e7
child 775
3f2f6e483a4e
equal deleted inserted replaced
771:9856238e9217 772:f9d266eb0ec6
42 MMCO3 = 60.01684, 42 MMCO3 = 60.01684,
43 MMHCO3 = 61.01684, 43 MMHCO3 = 61.01684,
44 MMCaSO4 = 172.171, 44 MMCaSO4 = 172.171,
45 MMCaCl2 = 147.015, 45 MMCaCl2 = 147.015,
46 MMCaCO3 = 100.087, 46 MMCaCO3 = 100.087,
47 MMMgCl2 = 95.211, /* Since 27-06-2021 */
47 MMMgSO4 = 246.475, 48 MMMgSO4 = 246.475,
48 MMNaHCO3 = 84.007, 49 MMNaHCO3 = 84.007,
49 MMNa2CO3 = 105.996, 50 MMNa2CO3 = 105.996,
50 MMNaCl = 58.443, 51 MMNaCl = 58.443,
51 MMCaOH2 = 74.06268, 52 MMCaOH2 = 74.06268,
160 $('#wa_caso4').jqxNumberInput({ spinButtons: rw, readOnly: ro, width: w100 }); 161 $('#wa_caso4').jqxNumberInput({ spinButtons: rw, readOnly: ro, width: w100 });
161 $('#wa_mgso4').jqxNumberInput({ spinButtons: rw, readOnly: ro, width: w100 }); 162 $('#wa_mgso4').jqxNumberInput({ spinButtons: rw, readOnly: ro, width: w100 });
162 $('#wa_nacl').jqxNumberInput({ spinButtons: rw, readOnly: ro, width: w100 }); 163 $('#wa_nacl').jqxNumberInput({ spinButtons: rw, readOnly: ro, width: w100 });
163 $('#mash_ph').jqxNumberInput({ spinButtons: rw, readOnly: ro, width: w100 }); 164 $('#mash_ph').jqxNumberInput({ spinButtons: rw, readOnly: ro, width: w100 });
164 $('#calc_acid').jqxCheckBox({ disabled: ro }); 165 $('#calc_acid').jqxCheckBox({ disabled: ro });
165 $('#wa_base_name').jqxDropDownList({ disabled: ro });
166 $('#wa_base').jqxNumberInput({ spinButtons: rw, readOnly: ro, width: w100 });
167 $('#wa_acid_name').jqxDropDownList({ disabled: ro }); 166 $('#wa_acid_name').jqxDropDownList({ disabled: ro });
168 $('#wa_acid').jqxNumberInput({ spinButtons: rw, readOnly: ro, width: w100 }); 167 $('#wa_acid').jqxNumberInput({ spinButtons: rw, readOnly: ro, width: w100 });
169 $('#wa_acid_perc').jqxNumberInput({ spinButtons: rw, readOnly: ro, width: w80 }); 168 $('#wa_acid_perc').jqxNumberInput({ spinButtons: rw, readOnly: ro, width: w80 });
170 $('#sparge_temp').jqxNumberInput({ spinButtons: rw, readOnly: ro, width: w100 }); 169 $('#sparge_temp').jqxNumberInput({ spinButtons: rw, readOnly: ro, width: w100 });
171 $('#sparge_volume').jqxNumberInput({ spinButtons: rw, readOnly: ro, width: w100 }); 170 $('#sparge_volume').jqxNumberInput({ spinButtons: rw, readOnly: ro, width: w100 });
500 switch (row.m_name) { 499 switch (row.m_name) {
501 case 'CaCl2': $('#wa_cacl2').val(row.m_amount * 1000); break; 500 case 'CaCl2': $('#wa_cacl2').val(row.m_amount * 1000); break;
502 case 'CaSO4': $('#wa_caso4').val(row.m_amount * 1000); break; 501 case 'CaSO4': $('#wa_caso4').val(row.m_amount * 1000); break;
503 case 'MgSO4': $('#wa_mgso4').val(row.m_amount * 1000); break; 502 case 'MgSO4': $('#wa_mgso4').val(row.m_amount * 1000); break;
504 case 'NaCl': $('#wa_nacl').val(row.m_amount * 1000); break; 503 case 'NaCl': $('#wa_nacl').val(row.m_amount * 1000); break;
504 case 'MgCl2': $('#wa_mgcl2').val(row.m_amount * 1000); break;
505 case 'NaHCO3': $('#wa_nahco3').val(row.m_amount * 1000); break;
506 case 'CaCO3': $('#wa_caco3').val(row.m_amount * 1000); break;
505 case 'Melkzuur': 507 case 'Melkzuur':
506 case 'Zoutzuur': 508 case 'Zoutzuur':
507 case 'Fosforzuur': 509 case 'Fosforzuur':
508 case 'Zwavelzuur': $('#wa_acid').val(row.m_amount * 1000); break; 510 case 'Zwavelzuur': $('#wa_acid').val(row.m_amount * 1000); break;
509 case 'NaHCO3':
510 case 'Na2CO3':
511 case 'CaCO3':
512 case 'Ca(OH)2': $('#wa_base').val(row.m_amount * 1000); break;
513 } 511 }
514 } 512 }
515 } 513 }
516 514
517 515
912 $('#wb_magnesium').val(dataRecord.wb_magnesium); 910 $('#wb_magnesium').val(dataRecord.wb_magnesium);
913 $('#wb_total_alkalinity').val(dataRecord.wb_total_alkalinity); 911 $('#wb_total_alkalinity').val(dataRecord.wb_total_alkalinity);
914 $('#wb_ph').val(dataRecord.wb_ph); 912 $('#wb_ph').val(dataRecord.wb_ph);
915 $('#wa_acid_name').val(dataRecord.wa_acid_name); 913 $('#wa_acid_name').val(dataRecord.wa_acid_name);
916 $('#wa_acid_perc').val(dataRecord.wa_acid_perc); 914 $('#wa_acid_perc').val(dataRecord.wa_acid_perc);
917 $('#wa_base_name').val(dataRecord.wa_base_name);
918 editFermentable(dataRecord); 915 editFermentable(dataRecord);
919 editHop(dataRecord); 916 editHop(dataRecord);
920 editMisc(dataRecord); 917 editMisc(dataRecord);
921 editYeast(dataRecord); 918 editYeast(dataRecord);
922 editMash(dataRecord); 919 editMash(dataRecord);
1172 source: hopAdapter, 1169 source: hopAdapter,
1173 theme: theme, 1170 theme: theme,
1174 selectionmode: 'singlerow', 1171 selectionmode: 'singlerow',
1175 showtoolbar: true, 1172 showtoolbar: true,
1176 rendertoolbar: function(toolbar) { 1173 rendertoolbar: function(toolbar) {
1177 //var me = this;
1178 var container = $('<div style="overflow: hidden; position: relative; margin: 5px;"></div>'); 1174 var container = $('<div style="overflow: hidden; position: relative; margin: 5px;"></div>');
1179 toolbar.append(container); 1175 toolbar.append(container);
1180 container.append('<div style="float: left; margin-left: 165px;" id="haddrowbutton"></div>'); 1176 container.append('<div style="float: left; margin-left: 165px;" id="haddrowbutton"></div>');
1181 container.append('<div style="float: left; margin-left: 10px; margin-top: 5px;">In voorraad:</div>'); 1177 container.append('<div style="float: left; margin-left: 10px; margin-top: 5px;">In voorraad:</div>');
1182 container.append('<div style="float: left; margin-left: 10px;" id="hinstockbutton"></div>'); 1178 container.append('<div style="float: left; margin-left: 10px;" id="hinstockbutton"></div>');
1192 height: 27, 1188 height: 27,
1193 dropDownWidth: 500, 1189 dropDownWidth: 500,
1194 dropDownHeight: 500, 1190 dropDownHeight: 500,
1195 renderer: function(index, label, value) { 1191 renderer: function(index, label, value) {
1196 var datarecord = hoplist.records[index]; 1192 var datarecord = hoplist.records[index];
1197 return datarecord.origin + ' / ' + datarecord.name + ' (' + datarecord.alpha + '% &alpha;)'; 1193 return datarecord.origin + ' - ' + datarecord.name + ' / ' + HopFormData[datarecord.form].nl + ' (' + datarecord.alpha + '% &alpha;)';
1198 } 1194 }
1199 }); 1195 });
1200 $('#haddrowbutton').on('select', function(event) { 1196 $('#haddrowbutton').on('select', function(event) {
1201 if (event.args) { 1197 if (event.args) {
1202 var datarecord, row = {}, index = event.args.index; 1198 var datarecord, row = {}, index = event.args.index;
1239 $('#hopGrid').jqxGrid('deleterow', id); 1235 $('#hopGrid').jqxGrid('deleterow', id);
1240 } 1236 }
1241 calcIBUs(); 1237 calcIBUs();
1242 }); 1238 });
1243 }, 1239 },
1244 ready: function() { 1240 ready: function() { $('#jqxTabs').jqxTabs('next'); },
1245 calcIBUs();
1246 $('#jqxTabs').jqxTabs('next');
1247 },
1248 columns: [ 1241 columns: [
1249 { text: 'Hop', datafield: 'h_name', 1242 { text: 'Hop', datafield: 'h_name',
1250 cellsrenderer: function(index, datafield, value, defaultvalue, column, rowdata) { 1243 cellsrenderer: function(index, datafield, value, defaultvalue, column, rowdata) {
1251 return '<span style="margin: 3px; margin-top: 6px; float: left;">' + rowdata.h_origin + ' / ' + rowdata.h_name + '</span>'; 1244 return '<span style="margin: 3px; margin-top: 6px; float: left;">' + rowdata.h_origin + ' / ' + rowdata.h_name + '</span>';
1252 } 1245 }
1277 return '<span style="margin: 4px; margin-top: 6px; float: right;">' + duration + '</span>'; 1270 return '<span style="margin: 4px; margin-top: 6px; float: right;">' + duration + '</span>';
1278 } 1271 }
1279 }, 1272 },
1280 { text: 'IBU', datafield: 'ibu', width: 80, align: 'right', 1273 { text: 'IBU', datafield: 'ibu', width: 80, align: 'right',
1281 cellsrenderer: function(index, datafield, value, defaultvalue, column, rowdata) { 1274 cellsrenderer: function(index, datafield, value, defaultvalue, column, rowdata) {
1282 var ibu = toIBU(rowdata.h_useat, rowdata.h_form, preboil_sg, parseFloat($('#batch_size').jqxNumberInput('decimal')), 1275 var ibu = toIBU(rowdata.h_useat, rowdata.h_form, preboil_sg, parseFloat(dataRecord.batch_size) /*parseFloat($('#batch_size').jqxNumberInput('decimal'))*/,
1283 parseFloat(rowdata.h_amount), parseFloat(rowdata.h_time), 1276 parseFloat(rowdata.h_amount), parseFloat(rowdata.h_time),
1284 parseFloat(rowdata.h_alpha), $('#ibu_method').val(), 0, parseFloat(rowdata.h_time), 0); 1277 parseFloat(rowdata.h_alpha), $('#ibu_method').val(), 0, parseFloat(rowdata.h_time), 0);
1285 return '<span style="margin: 4px; margin-top: 6px; float: right;">' + dataAdapter.formatNumber(ibu, 'f1') + '</span>'; 1278 return '<span style="margin: 4px; margin-top: 6px; float: right;">' + dataAdapter.formatNumber(ibu, 'f1') + '</span>';
1286 } 1279 }
1287 }, 1280 },
1369 $('#wa_mgso4').val(row.m_amount * 1000); 1362 $('#wa_mgso4').val(row.m_amount * 1000);
1370 break; 1363 break;
1371 case 'NaCl': 1364 case 'NaCl':
1372 $('#wa_nacl').val(row.m_amount * 1000); 1365 $('#wa_nacl').val(row.m_amount * 1000);
1373 break; 1366 break;
1367 case 'MgCl2':
1368 $('#wa_mgcl2').val(row.m_amount * 1000);
1369 break;
1370 case 'NaHCO3':
1371 $('#wa_nahco3').val(row.m_amount * 1000);
1372 break;
1373 case 'CaCO3':
1374 $('#wa_caco3').val(row.m_amount * 1000);
1375 break;
1374 case 'Melkzuur': 1376 case 'Melkzuur':
1375 $('#wa_acid_name').val(0); 1377 $('#wa_acid_name').val(0);
1376 $('#wa_acid').val(row.m_amount * 1000); 1378 $('#wa_acid').val(row.m_amount * 1000);
1377 $('#wa_acid_perc').val(80); 1379 $('#wa_acid_perc').val(AcidTypeData[0].AcidPrc); // TODO: this ignores changed percentages.
1378 last_acid = 'Melkzuur'; 1380 last_acid = 'Melkzuur';
1379 break; 1381 break;
1380 case 'Zoutzuur': 1382 case 'Zoutzuur':
1381 $('#wa_acid_name').val(1); 1383 $('#wa_acid_name').val(1);
1382 $('#wa_acid').val(row.m_amount * 1000); 1384 $('#wa_acid').val(row.m_amount * 1000);
1383 $('#wa_acid_perc').val(80); 1385 $('#wa_acid_perc').val(AcidTypeData[1].AcidPrc);
1384 last_acid = 'Zoutzuur'; 1386 last_acid = 'Zoutzuur';
1385 break; 1387 break;
1386 case 'Fosforzuur': 1388 case 'Fosforzuur':
1387 $('#wa_acid_name').val(2); 1389 $('#wa_acid_name').val(2);
1388 $('#wa_acid').val(row.m_amount * 1000); 1390 $('#wa_acid').val(row.m_amount * 1000);
1389 $('#wa_acid_perc').val(80); 1391 $('#wa_acid_perc').val(AcidTypeData[2].AcidPrc);
1390 last_acid = 'Fosforzuur'; 1392 last_acid = 'Fosforzuur';
1391 break; 1393 break;
1392 case 'Zwavelzuur': 1394 case 'Zwavelzuur':
1393 $('#wa_acid_name').val(3); 1395 $('#wa_acid_name').val(3);
1394 $('#wa_acid').val(row.m_amount * 1000); 1396 $('#wa_acid').val(row.m_amount * 1000);
1395 $('#wa_acid_perc').val(80); 1397 $('#wa_acid_perc').val(AcidTypeData[3].AcidPrc);
1396 last_acid = 'Zwavelzuur'; 1398 last_acid = 'Zwavelzuur';
1397 break;
1398 case 'NaHCO3':
1399 $('#wa_base_name').val(0);
1400 $('#wa_base').val(row.m_amount * 1000);
1401 last_base = 'NaHCO3';
1402 break;
1403 case 'Na2CO3':
1404 $('#wa_base_name').val(1);
1405 $('#wa_base').val(row.m_amount * 1000);
1406 last_base = 'Na2CO3';
1407 break;
1408 case 'CaCO3':
1409 $('#wa_base_name').val(2);
1410 $('#wa_base').val(row.m_amount * 1000);
1411 last_base = 'CaCO3';
1412 break;
1413 case 'Ca(OH)2':
1414 $('#wa_base_name').val(3);
1415 $('#wa_base').val(row.m_amount * 1000);
1416 last_base = 'Ca(OH)2';
1417 break; 1399 break;
1418 } 1400 }
1419 } 1401 }
1420 return data; 1402 return data;
1421 }, 1403 },
2062 var wg_chloride = chloride; 2044 var wg_chloride = chloride;
2063 var wg_sulfate = sulfate; 2045 var wg_sulfate = sulfate;
2064 var wg_bicarbonate = bicarbonate; 2046 var wg_bicarbonate = bicarbonate;
2065 2047
2066 $('#wg_amount').val(liters); 2048 $('#wg_amount').val(liters);
2067 $('#wg_calcium').val(Math.round(calcium * 10) / 10); 2049 $('#wg_calcium').val(Round(calcium, 1));
2068 $('#wg_magnesium').val(Math.round(magnesium * 10) / 10); 2050 $('#wg_magnesium').val(Round(magnesium, 1));
2069 $('#wg_sodium').val(Math.round(sodium * 10) / 10); 2051 $('#wg_sodium').val(Round(sodium, 1));
2070 $('#wg_total_alkalinity').val(Math.round(total_alkalinity * 10) / 10); 2052 $('#wg_bicarbonate').val(Round(bicarbonate, 1));
2071 $('#wg_chloride').val(Math.round(chloride * 10) / 10); 2053 $('#wg_total_alkalinity').val(Round(total_alkalinity, 1));
2072 $('#wg_sulfate').val(Math.round(sulfate * 10) / 10); 2054 $('#wg_chloride').val(Round(chloride, 1));
2073 $('#wg_ph').val(Round(ph, 1)); 2055 $('#wg_sulfate').val(Round(sulfate, 1));
2056 $('#wg_ph').val(Round(ph, 2));
2074 2057
2075 var mash_ph = Round(MashpH(), 3); 2058 var mash_ph = Round(MashpH(), 3);
2076 console.log('Distilled water mash pH: ' + mash_ph); 2059 console.log('Distilled water mash pH: ' + mash_ph);
2077 2060
2078 /* Calculate Salt additions */ 2061 /* Calculate Salt additions */
2079 if (liters > 0) { 2062 if (liters > 0) {
2080 calcium += (parseFloat($('#wa_cacl2').jqxNumberInput('decimal')) * MMCa / MMCaCl2 * 1000 + 2063 calcium += (parseFloat($('#wa_cacl2').jqxNumberInput('decimal')) * MMCa / MMCaCl2 * 1000 +
2081 parseFloat($('#wa_caso4').jqxNumberInput('decimal')) * MMCa / MMCaSO4 * 1000) / liters; 2064 parseFloat($('#wa_caso4').jqxNumberInput('decimal')) * MMCa / MMCaSO4 * 1000 +
2082 magnesium += (parseFloat($('#wa_mgso4').jqxNumberInput('decimal')) * MMMg / MMMgSO4 * 1000) / liters; 2065 parseFloat($('#wa_caco3').jqxNumberInput('decimal')) * MMCa / MMCaCO3 * 1000) / liters;
2066 magnesium += (parseFloat($('#wa_mgso4').jqxNumberInput('decimal')) * MMMg / MMMgSO4 * 1000 +
2067 parseFloat($('#wa_mgcl2').jqxNumberInput('decimal')) * MMMg / MMMgCl2 * 1000) / liters;
2083 sodium += (parseFloat($('#wa_nacl').jqxNumberInput('decimal')) * MMNa / MMNaCl * 1000 + 2068 sodium += (parseFloat($('#wa_nacl').jqxNumberInput('decimal')) * MMNa / MMNaCl * 1000 +
2084 parseFloat($('#wa_base').jqxNumberInput('decimal')) * MMNa / MMNaHCO3 * 1000) / liters; 2069 parseFloat($('#wa_nahco3').jqxNumberInput('decimal')) * MMNa / MMNaHCO3 * 1000) / liters;
2085 sulfate += (parseFloat($('#wa_caso4').jqxNumberInput('decimal')) * MMSO4 / MMCaSO4 * 1000 + 2070 sulfate += (parseFloat($('#wa_caso4').jqxNumberInput('decimal')) * MMSO4 / MMCaSO4 * 1000 +
2086 parseFloat($('#wa_mgso4').jqxNumberInput('decimal')) * MMSO4 / MMMgSO4 * 1000) / liters; 2071 parseFloat($('#wa_mgso4').jqxNumberInput('decimal')) * MMSO4 / MMMgSO4 * 1000) / liters;
2087 chloride += (2 * parseFloat($('#wa_cacl2').jqxNumberInput('decimal')) * MMCl / MMCaCl2 * 1000 + 2072 chloride += (2 * parseFloat($('#wa_cacl2').jqxNumberInput('decimal')) * MMCl / MMCaCl2 * 1000 +
2088 parseFloat($('#wa_nacl').jqxNumberInput('decimal')) * MMCl / MMNaCl * 1000) / liters; 2073 parseFloat($('#wa_nacl').jqxNumberInput('decimal')) * MMCl / MMNaCl * 1000 +
2074 parseFloat($('#wa_mgcl2').jqxNumberInput('decimal')) * MMCl / MMMgCl2 * 1000) / liters;
2075 bicarbonate += (parseFloat($('#wa_nahco3').jqxNumberInput('decimal')) * MMHCO3 / MMNaHCO3 * 1000 +
2076 parseFloat($('#wa_caco3').jqxNumberInput('decimal')) / 3 * MMHCO3 / MMCaCO3 * 1000) / liters;
2089 } 2077 }
2090 2078
2091 if (dataRecord.wa_acid_name < 0 || dataRecord,wa_acid_name >= AcidTypeData.length) { 2079 if (dataRecord.wa_acid_name < 0 || dataRecord,wa_acid_name >= AcidTypeData.length) {
2092 $('#wa_acid_name').val(0); 2080 $('#wa_acid_name').val(0);
2093 dataRecord.wa_acid_name = 0; 2081 dataRecord.wa_acid_name = 0;
2100 if (parseFloat(dataRecord.wa_acid_perc) == 0) { 2088 if (parseFloat(dataRecord.wa_acid_perc) == 0) {
2101 dataRecord.wa_acid_perc = AcidTypeData[AT].AcidPrc; 2089 dataRecord.wa_acid_perc = AcidTypeData[AT].AcidPrc;
2102 $('#wa_acid_perc').val(AcidTypeData[AT].AcidPrc); 2090 $('#wa_acid_perc').val(AcidTypeData[AT].AcidPrc);
2103 } 2091 }
2104 2092
2105 if (dataRecord.wa_base_name < 0 || dataRecord.wa_base_name > 3) {
2106 $('#wa_base_name').val(0);
2107 dataRecord.wa_base_name = 0;
2108 }
2109 if (last_base == '')
2110 last_base = BaseTypeData[dataRecord.wa_base_name].nl;
2111
2112 AT = dataRecord.wa_acid_name; 2093 AT = dataRecord.wa_acid_name;
2113 BT = dataRecord.wa_base_name;
2114 2094
2115 /* Note that the next calculations do not correct the pH change by the added salts. 2095 /* Note that the next calculations do not correct the pH change by the added salts.
2116 This pH change is at most 0.1 pH and is a minor difference in Acid amount. */ 2096 This pH change is at most 0.1 pH and is a minor difference in Acid amount. */
2117 2097
2118 if (dataRecord.calc_acid) { 2098 if (dataRecord.calc_acid) {
2120 /* Auto calculate pH */ 2100 /* Auto calculate pH */
2121 TpH = parseFloat(dataRecord.mash_ph); 2101 TpH = parseFloat(dataRecord.mash_ph);
2122 protonDeficit = ProtonDeficit(TpH); 2102 protonDeficit = ProtonDeficit(TpH);
2123 console.log('calc_acid tgt: ' + TpH + ' protonDeficit: ' + protonDeficit); 2103 console.log('calc_acid tgt: ' + TpH + ' protonDeficit: ' + protonDeficit);
2124 if (protonDeficit > 0) { // Add acid 2104 if (protonDeficit > 0) { // Add acid
2125 $('#wa_base').val(0);
2126 setWaterAgent(last_base, 0);
2127 frac = CalcFrac(TpH, AcidTypeData[AT].pK1, AcidTypeData[AT].pK2, AcidTypeData[AT].pK3); 2105 frac = CalcFrac(TpH, AcidTypeData[AT].pK1, AcidTypeData[AT].pK2, AcidTypeData[AT].pK3);
2128 Acid = protonDeficit / frac; 2106 Acid = protonDeficit / frac;
2129 Acid *= AcidTypeData[AT].MolWt; // mg 2107 Acid *= AcidTypeData[AT].MolWt; // mg
2130 Acidmg = Acid; 2108 Acidmg = Acid;
2131 Acid = Acid / AcidTypeData[AT].AcidSG; // ml 2109 Acid = Acid / AcidTypeData[AT].AcidSG; // ml
2134 $('#wa_acid').val(Acid); 2112 $('#wa_acid').val(Acid);
2135 setWaterAgent(AcidTypeData[AT].nl, Acid); 2113 setWaterAgent(AcidTypeData[AT].nl, Acid);
2136 2114
2137 bicarbonate = bicarbonate - protonDeficit * frac / liters; 2115 bicarbonate = bicarbonate - protonDeficit * frac / liters;
2138 total_alkalinity = bicarbonate * 50 / 61; 2116 total_alkalinity = bicarbonate * 50 / 61;
2139 } else if (protonDeficit < 0) { //Add base
2140 $('#wa_acid').val(0);
2141 setWaterAgent(last_acid, 0);
2142 r1d = Math.pow(10, (TpH - 6.35));
2143 r2d = Math.pow(10, (TpH - 10.33));
2144 f1d = 1 / (1 + r1d + r1d * r2d);
2145 f2d = f1d * r1d;
2146 f3d = f2d * r2d;
2147 switch (BT) {
2148 case 0:
2149 RA = -protonDeficit / (f1d - f3d); //Sodiumbicarbonate, mmol totaal
2150 RA = RA * MMNaHCO3 / 1000; //gram
2151 $('#wa_base').val(Round(RA, 2));
2152 setWaterAgent('NaHCO3', Round(RA, 2));
2153 if (liters > 0) {
2154 // Na
2155 RA = (parseFloat($('#wa_nacl').jqxNumberInput('decimal')) * MMNa / MMNaCl * 1000 +
2156 parseFloat($('#wa_base').jqxNumberInput('decimal')) * MMNa / MMNaHCO3 * 1000) / liters;
2157 sodium = wg_sodium + RA;
2158 // HCO3
2159 RA = (parseFloat($('#wa_base').jqxNumberInput('decimal')) * MMHCO3 / MMNaHCO3 * 1000) / liters;
2160 bicarbonate = wg_bicarbonate + RA;
2161 total_alkalinity = bicarbonate * 50 / 61;
2162 RA = ResidualAlkalinity(wb_total_alkalinity, wb_calcium, wb_magnesium);
2163 }
2164 break;
2165 case 1:
2166 RA = -protonDeficit / (2 * f1d + f2d); // Sodiumcarbonate, mmol totaal
2167 RA = RA * MMNa2CO3 / 1000; //gram
2168 $('#wa_base').val(Round(RA, 2));
2169 setWaterAgent('Na2CO3', Round(RA, 2));
2170 if (liters > 0) {
2171 RA = (parseFloat($('#wa_nacl').jqxNumberInput('decimal')) * MMNa / MMNaCl * 1000 +
2172 parseFloat($('#wa_base').jqxNumberInput('decimal')) * 2 * MMNa / MMNa2CO3 * 1000) / liters;
2173 sodium = wg_sodium + RA;
2174 // HCO3
2175 RA = (parseFloat($('#wa_base').jqxNumberInput('decimal')) * MMHCO3 / MMNa2CO3 * 1000) / liters;
2176 bicarbonate = wg_bicarbonate + RA;
2177 total_alkalinity = bicarbonate * 50 / 61;
2178 RA = ResidualAlkalinity(wb_total_alkalinity, wb_calcium, wb_magnesium);
2179 }
2180 break;
2181 case 2:
2182 RA = -protonDeficit * (f1d - f3d); // Calciumcarbonate, mmol totaal
2183 RA = RA * MMCaCO3 / 1000; //gram
2184 //but only 1/3 is effective, so add 3 times as much
2185 RA = 3 * RA;
2186 $('#wa_base').val(Round(RA, 2));
2187 setWaterAgent('CaCO3', Round(RA, 2));
2188 if (liters > 0) {
2189 //Bicarbonate
2190 RA = (parseFloat($('#wa_base').jqxNumberInput('decimal')) / 3 * MMHCO3 / MMCaCO3 * 1000) / liters;
2191 bicarbonate = wg_bicarbonate + RA;
2192 total_alkalinity = bicarbonate * 50 / 61;
2193 //Ca precipitates out as Ca10(PO4)6(OH)2
2194 RA = (parseFloat($('#wa_cacl2').jqxNumberInput('decimal')) * MMCa / MMCaCl2 * 1000 +
2195 parseFloat($('#wa_caso4').jqxNumberInput('decimal')) * MMCa / MMCaSO4 * 1000 +
2196 parseFloat($('#wa_base').jqxNumberInput('decimal')) * MMCa / MMCaCO3 * 1000) / liters;
2197 calcium = wg_calcium + RA;
2198 RA = ResidualAlkalinity(wb_total_alkalinity, wb_calcium, wb_magnesium);
2199 }
2200 break;
2201 case 3:
2202 RA = -protonDeficit / 19.3; // Calciumhydroxide
2203 $('#wa_base').val(Round(RA, 2));
2204 setWaterAgent('Ca(OH)2', Round(RA, 2));
2205 if (liters > 0) {
2206 // Bicarbonate
2207 RA = -protonDeficit / liters;
2208 total_alkalinity = wg_total_alkalinity + RA;
2209 bicarbonate = total_alkalinity * 61 / 50;
2210 // Calcium
2211 RA = (parseFloat($('#wa_cacl2').jqxNumberInput('decimal')) * MMCa / MMCaCl2 * 1000 +
2212 parseFloat($('#wa_caso4').jqxNumberInput('decimal')) * MMCa / MMCaSO4 * 1000 +
2213 parseFloat($('#wa_base').jqxNumberInput('decimal')) * MMCa / MMCaOH2 * 1000) / liters;
2214 calcium = wg_calcium + RA;
2215 RA = ResidualAlkalinity(wb_total_alkalinity, wb_calcium, wb_magnesium);
2216 }
2217 break;
2218 }
2219 } 2117 }
2220 ph = TpH; 2118 ph = TpH;
2221 $('#wb_ph').val(Round(ph, 2)); 2119 $('#wb_ph').val(Round(ph, 2));
2222 $('#est_mash_ph').val(Round(ph, 2)); 2120 $('#est_mash_ph').val(Round(ph, 2));
2223 } else { // Manual 2121 } else { // Manual
2224 /* Manual calculate pH */ 2122 /* Manual calculate pH */
2225 $('.c_mashph').hide(); 2123 $('.c_mashph').hide();
2226 console.log('calc_acid no'); 2124 console.log('calc_acid no');
2227 if (parseFloat($('#wa_base').jqxNumberInput('decimal')) > 0 && liters > 0) {
2228 /* First add the base salts */
2229 switch (BT) {
2230 case 0: // Sodiumbicarbonate, Na
2231 RA = (parseFloat($('#wa_nacl').jqxNumberInput('decimal')) * MMNa / MMNaCl * 1000 +
2232 parseFloat($('#wa_base').jqxNumberInput('decimal')) * MMNa / MMNaHCO3 * 1000) / liters;
2233 sodium = wg_sodium + RA;
2234 // HCO3
2235 RA = (parseFloat($('#wa_base').jqxNumberInput('decimal')) * MMHCO3 / MMNaHCO3 * 1000) / liters;
2236 bicarbonate = wg_bicarbonate + RA;
2237 total_alkalinity = bicarbonate * 50 / 61;
2238 RA = ResidualAlkalinity(wb_total_alkalinity, wb_calcium, wb_magnesium);
2239 break;
2240 case 1: // Sodiumcarbonate
2241 RA = (parseFloat($('#wa_nacl').jqxNumberInput('decimal')) * MMNa / MMNaCl * 1000 +
2242 parseFloat($('#wa_base').jqxNumberInput('decimal')) * 2 * MMNa / MMNa2CO3 * 1000) / liters;
2243 sodium = wg_sodium + RA;
2244 // HCO3
2245 RA = (parseFloat($('#wa_base').jqxNumberInput('decimal')) * MMHCO3 / MMNa2CO3 * 1000) / liters;
2246 bicarbonate = wg_bicarbonate + RA;
2247 total_alkalinity = bicarbonate * 50 / 61;
2248 RA = ResidualAlkalinity(wb_total_alkalinity, wb_calcium, wb_magnesium);
2249 break;
2250 case 2: // Calciumcarbonate: Bicarbonate
2251 RA = (parseFloat($('#wa_base').jqxNumberInput('decimal')) / 3 * MMHCO3 * 1000 / MMCaCO3) / liters;
2252 bicarbonate = wg_bicarbonate + RA;
2253 total_alkalinity = bicarbonate * 50 / 61;
2254 RA = ResidualAlkalinity(wb_total_alkalinity, wb_calcium, wb_magnesium);
2255 // Ca
2256 RA = (parseFloat($('#wa_cacl2').jqxNumberInput('decimal')) * MMCa * 1000 / MMCaCl2 +
2257 parseFloat($('#wa_caso4').jqxNumberInput('decimal')) * MMCa * 1000 / MMCaSO4 +
2258 parseFloat($('#wa_base').jqxNumberInput('decimal')) * MMCa * 1000 / MMCaCO3) / liters;
2259 calcium = wg_calcium + RA;
2260 break;
2261 }
2262 }
2263
2264 pHa = Round(ph, 3); // Adjusted water pH 2125 pHa = Round(ph, 3); // Adjusted water pH
2265 // Then calculate the new pH with added acids and malts 2126 // Then calculate the new pH with added acids and malts
2266 console.log('Mash pH: ' + pHa); 2127 console.log('Mash pH: ' + pHa);
2267 Acid = AcidTypeData[AT].AcidSG * (parseFloat(dataRecord.wa_acid_perc) / 100); // ml 2128 Acid = AcidTypeData[AT].AcidSG * (parseFloat(dataRecord.wa_acid_perc) / 100); // ml
2268 Acid *= parseFloat($('#wa_acid').jqxNumberInput('decimal')); 2129 Acid *= parseFloat($('#wa_acid').jqxNumberInput('decimal'));
2359 $('#wb_calcium').val(Round(calcium, 1)); 2220 $('#wb_calcium').val(Round(calcium, 1));
2360 $('#wb_magnesium').val(Round(magnesium, 1)); 2221 $('#wb_magnesium').val(Round(magnesium, 1));
2361 $('#wb_sodium').val(Round(sodium, 1)); 2222 $('#wb_sodium').val(Round(sodium, 1));
2362 $('#wb_sulfate').val(Round(sulfate, 1)); 2223 $('#wb_sulfate').val(Round(sulfate, 1));
2363 $('#wb_chloride').val(Round(chloride, 1)); 2224 $('#wb_chloride').val(Round(chloride, 1));
2225 $('#wb_bicarbonate').val(Round(bicarbonate, 1));
2364 $('#wb_total_alkalinity').val(Round(total_alkalinity, 1)); 2226 $('#wb_total_alkalinity').val(Round(total_alkalinity, 1));
2365 2227
2366 if (calcium < 40) { 2228 if (calcium < 40) {
2367 setRangeIndicator('calcium', 'laag'); 2229 setRangeIndicator('calcium', 'laag');
2368 } else if (calcium > 150) { 2230 } else if (calcium > 150) {
2369 setRangeIndicator('calcium', 'hoog'); 2231 setRangeIndicator('calcium', 'hoog');
2370 } else { 2232 } else {
2371 setRangeIndicator('calcium', 'normaal'); 2233 setRangeIndicator('calcium', 'normaal');
2372 } 2234 }
2373 if (magnesium >= 0 && magnesium <= 30) { 2235 if (magnesium < 5) {
2236 setRangeIndicator('magnesium', 'laag');
2237 } else if (magnesium > 40) {
2238 setRangeIndicator('magnesium', 'hoog');
2239 } else {
2374 setRangeIndicator('magnesium', 'normaal'); 2240 setRangeIndicator('magnesium', 'normaal');
2375 } else {
2376 setRangeIndicator('magnesium', 'hoog');
2377 } 2241 }
2378 if (sodium <= 150) { 2242 if (sodium <= 150) {
2379 setRangeIndicator('sodium', 'normaal'); 2243 setRangeIndicator('sodium', 'normaal');
2380 } else { 2244 } else {
2381 setRangeIndicator('sodium', 'hoog'); 2245 setRangeIndicator('sodium', 'hoog');
2382 } 2246 }
2383 // Both chloride and sulfate should be above 50 according to 2247 // Both chloride and sulfate should be above 50 according to
2384 // John Palmer. So the Cl/SO4 ratio calculation will work. 2248 // John Palmer. So the Cl/SO4 ratio calculation will work.
2385 if (chloride <= 50) { 2249 if (chloride <= 50) {
2386 setRangeIndicator('chloride', 'laag'); 2250 setRangeIndicator('chloride', 'laag');
2387 } else if (chloride <= 100) { 2251 } else if (chloride <= 150) {
2388 setRangeIndicator('chloride', 'normaal'); 2252 setRangeIndicator('chloride', 'normaal');
2389 } else { 2253 } else {
2390 setRangeIndicator('chloride', 'hoog'); 2254 setRangeIndicator('chloride', 'hoog');
2391 } 2255 }
2392 if (sulfate <= 50) { 2256 if (sulfate <= 50) {
2393 setRangeIndicator('sulfate', 'laag'); 2257 setRangeIndicator('sulfate', 'laag');
2394 } else if (sulfate <= 350) { 2258 } else if (sulfate <= 400) {
2395 setRangeIndicator('sulfate', 'normaal'); 2259 setRangeIndicator('sulfate', 'normaal');
2396 } else { 2260 } else {
2261 setRangeIndicator('sulfate', 'hoog');
2262 }
2263 // (cloride + sulfate) > 500 is too high
2264 if ((chloride + sulfate) > 500) {
2265 setRangeIndicator('chloride', 'hoog');
2397 setRangeIndicator('sulfate', 'hoog'); 2266 setRangeIndicator('sulfate', 'hoog');
2398 } 2267 }
2399 if (ph < 5.2) { 2268 if (ph < 5.2) {
2400 setRangeIndicator('ph', 'laag'); 2269 setRangeIndicator('ph', 'laag');
2401 } else if (ph > 5.6) { 2270 } else if (ph > 5.6) {
2402 setRangeIndicator('ph', 'hoog'); 2271 setRangeIndicator('ph', 'hoog');
2403 } else { 2272 } else {
2404 setRangeIndicator('ph', 'normaal'); 2273 setRangeIndicator('ph', 'normaal');
2274 }
2275 if (bicarbonate > 250) {
2276 setRangeIndicator('bicarbonate', 'hoog');
2277 } else {
2278 setRangeIndicator('bicarbonate', 'normaal');
2405 } 2279 }
2406 calcSparge(); 2280 calcSparge();
2407 } 2281 }
2408 2282
2409 2283
2580 setWaterAgent('NaCl', 0); 2454 setWaterAgent('NaCl', 0);
2581 setWaterAgent('NaCl', event.args.value); 2455 setWaterAgent('NaCl', event.args.value);
2582 calcWater(); 2456 calcWater();
2583 } 2457 }
2584 }); 2458 });
2585 $('#wa_base_name').on('select', function(event) { 2459 $('#wa_mgcl2').on('change', function(event) {
2586 if (event.args) { 2460 if (event.args) {
2587 var index = event.args.index; 2461 setWaterAgent('MgCl2', 0);
2588 setWaterAgent(last_base, 0); 2462 setWaterAgent('MgCl2', event.args.value);
2589 last_base = BaseTypeData[index].nl;
2590 setWaterAgent(last_base, parseFloat($('#wa_base').jqxNumberInput('decimal')));
2591 dataRecord.wa_base_name = index;
2592 calcWater(); 2463 calcWater();
2593 } 2464 }
2594 }); 2465 });
2595 $('#wa_base').on('change', function(event) { 2466 $('#wa_nahco3').on('change', function(event) {
2596 var name = BaseTypeData[$('#wa_base_name').val()].nl; 2467 if (event.args) {
2597 setWaterAgent(name, parseFloat(event.args.value)); 2468 setWaterAgent('NaHCO3', 0);
2598 calcWater(); 2469 setWaterAgent('NaHCO3', event.args.value);
2470 calcWater();
2471 }
2472 });
2473 $('#wa_caco3').on('change', function(event) {
2474 if (event.args) {
2475 setWaterAgent('CaCO3', 0);
2476 setWaterAgent('CaCO3', event.args.value);
2477 calcWater();
2478 }
2599 }); 2479 });
2600 $('#wa_acid_name').on('select', function(event) { 2480 $('#wa_acid_name').on('select', function(event) {
2601 if (event.args) { 2481 if (event.args) {
2602 var index = event.args.index; 2482 var index = event.args.index;
2603 setWaterAgent(last_acid, 0); 2483 setWaterAgent(last_acid, 0);
2604 last_acid = AcidTypeData[index].nl; 2484 last_acid = AcidTypeData[index].nl;
2485 dataRecord.wa_acid_name = index;
2486 dataRecord.wa_acid_perc = AcidTypeData[index].AcidPrc;
2487 $('#wa_acid_perc').val(dataRecord.wa_acid_perc);
2488 calcWater();
2605 setWaterAgent(last_acid, parseFloat($('#wa_acid').jqxNumberInput('decimal'))); 2489 setWaterAgent(last_acid, parseFloat($('#wa_acid').jqxNumberInput('decimal')));
2606 dataRecord.wa_acid_name = index;
2607 calcWater();
2608 } 2490 }
2609 }); 2491 });
2610 $('#wa_acid').on('change', function(event) { 2492 $('#wa_acid').on('change', function(event) {
2611 var name = AcidTypeData[$('#wa_acid_name').val()].nl; 2493 var name = AcidTypeData[$('#wa_acid_name').val()].nl;
2612 setWaterAgent(name, parseFloat(event.args.value)); 2494 setWaterAgent(name, parseFloat(event.args.value));
2613 calcWater(); 2495 calcWater();
2614 }); 2496 });
2615 $('#wa_acid_perc').on('change', function(event) { calcWater(); }); 2497 $('#wa_acid_perc').on('change', function(event) {
2498 dataRecord.wa_acid_perc = parseFloat(event.args.value);
2499 calcWater();
2500 });
2616 2501
2617 $('#color_method').on('select', function(event) { 2502 $('#color_method').on('select', function(event) {
2618 dataRecord.color_method = event.args.index; 2503 dataRecord.color_method = event.args.index;
2619 calcFermentables(); 2504 calcFermentables();
2620 }); 2505 });
2831 wb_chloride: parseFloat($('#wb_chloride').jqxNumberInput('decimal')), 2716 wb_chloride: parseFloat($('#wb_chloride').jqxNumberInput('decimal')),
2832 wb_sodium: parseFloat($('#wb_sodium').jqxNumberInput('decimal')), 2717 wb_sodium: parseFloat($('#wb_sodium').jqxNumberInput('decimal')),
2833 wb_magnesium: parseFloat($('#wb_magnesium').jqxNumberInput('decimal')), 2718 wb_magnesium: parseFloat($('#wb_magnesium').jqxNumberInput('decimal')),
2834 wb_total_alkalinity: parseFloat($('#wb_total_alkalinity').jqxNumberInput('decimal')), 2719 wb_total_alkalinity: parseFloat($('#wb_total_alkalinity').jqxNumberInput('decimal')),
2835 wb_ph: parseFloat($('#wb_ph').jqxNumberInput('decimal')), 2720 wb_ph: parseFloat($('#wb_ph').jqxNumberInput('decimal')),
2836 wa_acid_name: $('#wa_acid_name').val(), 2721 wa_acid_name: parseInt($('#wa_acid_name').val()),
2837 wa_acid_perc: parseFloat($('#wa_acid_perc').jqxNumberInput('decimal')), 2722 wa_acid_perc: parseFloat($('#wa_acid_perc').jqxNumberInput('decimal')),
2838 wa_base_name: $('#wa_base_name').val(), 2723 wa_base_name: 0,
2839 fermentables: $('#fermentableGrid').jqxGrid('getrows'), 2724 fermentables: $('#fermentableGrid').jqxGrid('getrows'),
2840 hops: $('#hopGrid').jqxGrid('getrows'), 2725 hops: $('#hopGrid').jqxGrid('getrows'),
2841 miscs: $('#miscGrid').jqxGrid('getrows'), 2726 miscs: $('#miscGrid').jqxGrid('getrows'),
2842 yeasts: $('#yeastGrid').jqxGrid('getrows'), 2727 yeasts: $('#yeastGrid').jqxGrid('getrows'),
2843 mashs: $('#mashGrid').jqxGrid('getrows') 2728 mashs: $('#mashGrid').jqxGrid('getrows')
3358 height: 23, 3243 height: 23,
3359 dropDownWidth: 500, 3244 dropDownWidth: 500,
3360 dropDownHeight: 500, 3245 dropDownHeight: 500,
3361 renderer: function(index, label, value) { 3246 renderer: function(index, label, value) {
3362 var datarecord = hoplist.records[index]; 3247 var datarecord = hoplist.records[index];
3363 return datarecord.origin + ' / ' + datarecord.name + ' (' + datarecord.alpha + ' % &alpha;)'; 3248 return datarecord.origin + ' - ' + datarecord.name + ' / ' + HopFormData[datarecord.form].nl + ' (' + datarecord.alpha + ' % &alpha;)';
3364 } 3249 }
3365 }); 3250 });
3366 $('#wh_select').on('select', function(event) { 3251 $('#wh_select').on('select', function(event) {
3367 if (event.args) { 3252 if (event.args) {
3368 var datarecord, index = event.args.index; 3253 var datarecord, index = event.args.index;
3913 $('#w1_name').jqxDropDownList({ 3798 $('#w1_name').jqxDropDownList({
3914 placeHolder: 'Kies hoofd water:', 3799 placeHolder: 'Kies hoofd water:',
3915 theme: theme, 3800 theme: theme,
3916 source: waterlist, 3801 source: waterlist,
3917 displayMember: 'name', 3802 displayMember: 'name',
3918 width: 250, 3803 width: 200,
3919 height: 27, 3804 height: 27,
3920 dropDownWidth: 400, 3805 dropDownWidth: 400,
3921 dropDownHeight: 400 3806 dropDownHeight: 400
3922 }); 3807 });
3923 $('#w1_name').on('select', function(event) { 3808 $('#w1_name').on('select', function(event) {
3934 $('#w1_sodium').val(datarecord.sodium); 3819 $('#w1_sodium').val(datarecord.sodium);
3935 dataRecord.w1_sodium = datarecord.sodium; 3820 dataRecord.w1_sodium = datarecord.sodium;
3936 $('#w1_magnesium').val(datarecord.magnesium); 3821 $('#w1_magnesium').val(datarecord.magnesium);
3937 dataRecord.w1_magnesium = datarecord.magnesium; 3822 dataRecord.w1_magnesium = datarecord.magnesium;
3938 $('#w1_total_alkalinity').val(datarecord.total_alkalinity); 3823 $('#w1_total_alkalinity').val(datarecord.total_alkalinity);
3824 $('#w1_bicarbonate').val(datarecord.total_alkalinity * 1.22);
3939 dataRecord.w1_total_alkalinity = datarecord.total_alkalinity; 3825 dataRecord.w1_total_alkalinity = datarecord.total_alkalinity;
3940 $('#w1_ph').val(datarecord.ph); 3826 $('#w1_ph').val(datarecord.ph);
3941 dataRecord.w1_ph = datarecord.ph; 3827 dataRecord.w1_ph = datarecord.ph;
3942 $('#w1_cost').val(datarecord.cost); 3828 $('#w1_cost').val(datarecord.cost);
3943 dataRecord.w1_cost = datarecord.cost; 3829 dataRecord.w1_cost = datarecord.cost;
3946 }); 3832 });
3947 $('#w1_amount').jqxNumberInput(Show1wat); 3833 $('#w1_amount').jqxNumberInput(Show1wat);
3948 $('#w1_calcium').jqxNumberInput(Show1wat); 3834 $('#w1_calcium').jqxNumberInput(Show1wat);
3949 $('#w1_magnesium').jqxNumberInput(Show1wat); 3835 $('#w1_magnesium').jqxNumberInput(Show1wat);
3950 $('#w1_sodium').jqxNumberInput(Show1wat); 3836 $('#w1_sodium').jqxNumberInput(Show1wat);
3837 $('#w1_bicarbonate').jqxNumberInput(Show1wat);
3951 $('#w1_total_alkalinity').jqxNumberInput(Show1wat); 3838 $('#w1_total_alkalinity').jqxNumberInput(Show1wat);
3952 $('#w1_chloride').jqxNumberInput(Show1wat); 3839 $('#w1_chloride').jqxNumberInput(Show1wat);
3953 $('#w1_sulfate').jqxNumberInput(Show1wat); 3840 $('#w1_sulfate').jqxNumberInput(Show1wat);
3954 $('#w1_ph').jqxNumberInput(Show2wat); 3841 $('#w1_ph').jqxNumberInput(Show2wat);
3955 // Water source 2 3842 // Water source 2
3956 $('#w2_name').jqxDropDownList({ 3843 $('#w2_name').jqxDropDownList({
3957 placeHolder: 'Kies meng water:', 3844 placeHolder: 'Kies meng water:',
3958 theme: theme, 3845 theme: theme,
3959 source: waterlist, 3846 source: waterlist,
3960 displayMember: 'name', 3847 displayMember: 'name',
3961 width: 250, 3848 width: 200,
3962 height: 27, 3849 height: 27,
3963 dropDownWidth: 400, 3850 dropDownWidth: 400,
3964 dropDownHeight: 400 3851 dropDownHeight: 400
3965 }); 3852 });
3966 $('#w2_name').on('select', function(event) { 3853 $('#w2_name').on('select', function(event) {
3977 $('#w2_sodium').val(datarecord.sodium); 3864 $('#w2_sodium').val(datarecord.sodium);
3978 dataRecord.w2_sodium = datarecord.sodium; 3865 dataRecord.w2_sodium = datarecord.sodium;
3979 $('#w2_magnesium').val(datarecord.magnesium); 3866 $('#w2_magnesium').val(datarecord.magnesium);
3980 dataRecord.w2_magnesium = datarecord.magnesium; 3867 dataRecord.w2_magnesium = datarecord.magnesium;
3981 $('#w2_total_alkalinity').val(datarecord.total_alkalinity); 3868 $('#w2_total_alkalinity').val(datarecord.total_alkalinity);
3869 $('#w2_bicarbonate').val(datarecord.total_alkalinity * 1.22);
3982 dataRecord.w2_total_alkalinity = datarecord.total_alkalinity; 3870 dataRecord.w2_total_alkalinity = datarecord.total_alkalinity;
3983 $('#w2_ph').val(datarecord.ph); 3871 $('#w2_ph').val(datarecord.ph);
3984 dataRecord.w2_ph = datarecord.ph; 3872 dataRecord.w2_ph = datarecord.ph;
3985 $('#w2_cost').val(datarecord.cost); 3873 $('#w2_cost').val(datarecord.cost);
3986 dataRecord.w2_cost = datarecord.cost; 3874 dataRecord.w2_cost = datarecord.cost;
3991 $('#w2_amount').jqxTooltip({ content: 'De verdeling van het hoofd en meng water. Het totale maisch water volume blijft gelijk.'}); 3879 $('#w2_amount').jqxTooltip({ content: 'De verdeling van het hoofd en meng water. Het totale maisch water volume blijft gelijk.'});
3992 $('#w2_amount').jqxNumberInput({ inputMode: 'simple', theme: theme, width: 94, height: 23, min: 0, decimalDigits: 1, spinButtons: true, readOnly: true }); 3880 $('#w2_amount').jqxNumberInput({ inputMode: 'simple', theme: theme, width: 94, height: 23, min: 0, decimalDigits: 1, spinButtons: true, readOnly: true });
3993 $('#w2_calcium').jqxNumberInput(Show1wat); 3881 $('#w2_calcium').jqxNumberInput(Show1wat);
3994 $('#w2_magnesium').jqxNumberInput(Show1wat); 3882 $('#w2_magnesium').jqxNumberInput(Show1wat);
3995 $('#w2_sodium').jqxNumberInput(Show1wat); 3883 $('#w2_sodium').jqxNumberInput(Show1wat);
3884 $('#w2_bicarbonate').jqxNumberInput(Show1wat);
3996 $('#w2_total_alkalinity').jqxNumberInput(Show1wat); 3885 $('#w2_total_alkalinity').jqxNumberInput(Show1wat);
3997 $('#w2_chloride').jqxNumberInput(Show1wat); 3886 $('#w2_chloride').jqxNumberInput(Show1wat);
3998 $('#w2_sulfate').jqxNumberInput(Show1wat); 3887 $('#w2_sulfate').jqxNumberInput(Show1wat);
3999 $('#w2_ph').jqxNumberInput(Show2wat); 3888 $('#w2_ph').jqxNumberInput(Show2wat);
4000 // Water mixed 3889 // Water mixed
4001 $('#wg_amount').jqxNumberInput(Show1wat); 3890 $('#wg_amount').jqxNumberInput(Show1wat);
4002 $('#wg_calcium').jqxNumberInput(Show1wat); 3891 $('#wg_calcium').jqxNumberInput(Show1wat);
4003 $('#wg_magnesium').jqxNumberInput(Show1wat); 3892 $('#wg_magnesium').jqxNumberInput(Show1wat);
4004 $('#wg_sodium').jqxNumberInput(Show1wat); 3893 $('#wg_sodium').jqxNumberInput(Show1wat);
3894 $('#wg_bicarbonate').jqxNumberInput(Show1wat);
4005 $('#wg_total_alkalinity').jqxNumberInput(Show1wat); 3895 $('#wg_total_alkalinity').jqxNumberInput(Show1wat);
4006 $('#wg_chloride').jqxNumberInput(Show1wat); 3896 $('#wg_chloride').jqxNumberInput(Show1wat);
4007 $('#wg_sulfate').jqxNumberInput(Show1wat); 3897 $('#wg_sulfate').jqxNumberInput(Show1wat);
4008 $('#wg_ph').jqxNumberInput(Show2wat); 3898 $('#wg_ph').jqxNumberInput(Show2wat);
4009 // Water treated 3899 // Water treated
4010 $('#wb_calcium').jqxTooltip({ content: 'De ideale hoeveelheid Calcium is tussen 40 en 150.'}); 3900 $('#wb_calcium').jqxTooltip({ content: 'De ideale hoeveelheid Calcium is tussen 40 en 150.'});
4011 $('#wb_calcium').jqxNumberInput(Show1wat); 3901 $('#wb_calcium').jqxNumberInput(Show1wat);
4012 $('#wb_magnesium').jqxTooltip({ content: 'De ideale hoeveelheid Magnesium is lager dan 30.'}); 3902 $('#wb_magnesium').jqxTooltip({ content: 'De ideale hoeveelheid Magnesium is tussen 5 en 40.'});
4013 $('#wb_magnesium').jqxNumberInput(Show1wat); 3903 $('#wb_magnesium').jqxNumberInput(Show1wat);
4014 $('#wb_sodium').jqxTooltip({ content: 'De ideale hoeveelheid Natrium is lager dan 150.'}); 3904 $('#wb_sodium').jqxTooltip({ content: 'De ideale hoeveelheid Natrium is lager dan 150.'});
4015 $('#wb_sodium').jqxNumberInput(Show1wat); 3905 $('#wb_sodium').jqxNumberInput(Show1wat);
4016 $('#wb_chloride').jqxTooltip({ content: 'De ideale hoeveelheid Chloride is tussen 50 en 100.'}); 3906 $('#wb_chloride').jqxTooltip({ content: 'De ideale hoeveelheid Chloride is tussen 50 en 150. Samen met Sulfaat minder dan 500.'});
4017 $('#wb_chloride').jqxNumberInput(Show1wat); 3907 $('#wb_chloride').jqxNumberInput(Show1wat);
4018 $('#wb_sulfate').jqxTooltip({ content: 'De ideale hoeveelheid Sulfaat is tussen 50 en 350.'}); 3908 $('#wb_sulfate').jqxTooltip({ content: 'De ideale hoeveelheid Sulfaat is tussen 50 en 400. Samen met Sulfaat minder dan 500.'});
4019 $('#wb_sulfate').jqxNumberInput(Show1wat); 3909 $('#wb_sulfate').jqxNumberInput(Show1wat);
3910 $('#wb_bicarbonate').jqxTooltip({ content: '0 tot 50 lichte bieren, 50 tot 150 amber bieren, 150 tot 250 donkere bieren.'});
3911 $('#wb_bicarbonate').jqxNumberInput(Show1wat);
4020 $('#wb_total_alkalinity').jqxNumberInput(Show1wat); 3912 $('#wb_total_alkalinity').jqxNumberInput(Show1wat);
4021 $('#wb_ph').jqxNumberInput(Show2wat); 3913 $('#wb_ph').jqxNumberInput(Show2wat);
4022 // Water target profile 3914 // Water target profile
4023 $('#pr_name').jqxDropDownList({ 3915 $('#pr_name').jqxDropDownList({
4024 placeHolder: 'Kies doel profiel:', 3916 placeHolder: 'Kies doel profiel:',
4025 theme: theme, 3917 theme: theme,
4026 source: waterprofiles, 3918 source: waterprofiles,
4027 displayMember: 'name', 3919 displayMember: 'name',
4028 width: 250, 3920 width: 200,
4029 height: 27, 3921 height: 27,
4030 dropDownWidth: 400, 3922 dropDownWidth: 400,
4031 dropDownHeight: 300 3923 dropDownHeight: 300
4032 }); 3924 });
4033 $('#pr_name').on('select', function(event) { 3925 $('#pr_name').on('select', function(event) {
4038 $('#pr_sulfate').val(datarecord.sulfate); 3930 $('#pr_sulfate').val(datarecord.sulfate);
4039 $('#pr_chloride').val(datarecord.chloride); 3931 $('#pr_chloride').val(datarecord.chloride);
4040 $('#pr_sodium').val(datarecord.sodium); 3932 $('#pr_sodium').val(datarecord.sodium);
4041 $('#pr_magnesium').val(datarecord.magnesium); 3933 $('#pr_magnesium').val(datarecord.magnesium);
4042 $('#pr_total_alkalinity').val(datarecord.total_alkalinity); 3934 $('#pr_total_alkalinity').val(datarecord.total_alkalinity);
3935 $('#pr_bicarbonate').val(datarecord.total_alkalinity * 1.22);
4043 calcWater(); 3936 calcWater();
4044 } 3937 }
4045 }); 3938 });
4046 $('#pr_calcium').jqxNumberInput(Show1wat); 3939 $('#pr_calcium').jqxNumberInput(Show1wat);
4047 $('#pr_magnesium').jqxNumberInput(Show1wat); 3940 $('#pr_magnesium').jqxNumberInput(Show1wat);
4048 $('#pr_sodium').jqxNumberInput(Show1wat); 3941 $('#pr_sodium').jqxNumberInput(Show1wat);
3942 $('#pr_bicarbonate').jqxNumberInput(Show1wat);
4049 $('#pr_total_alkalinity').jqxNumberInput(Show1wat); 3943 $('#pr_total_alkalinity').jqxNumberInput(Show1wat);
4050 $('#pr_chloride').jqxNumberInput(Show1wat); 3944 $('#pr_chloride').jqxNumberInput(Show1wat);
4051 $('#pr_sulfate').jqxNumberInput(Show1wat); 3945 $('#pr_sulfate').jqxNumberInput(Show1wat);
4052 3946
4053 // Water agents 3947 // Water agents
4064 'Voor het accentueren van zoetheid. Bij hoge dosering wordt het bier ziltig.' 3958 'Voor het accentueren van zoetheid. Bij hoge dosering wordt het bier ziltig.'
4065 }); 3959 });
4066 $('#wa_nacl').jqxNumberInput(Spin1dec); 3960 $('#wa_nacl').jqxNumberInput(Spin1dec);
4067 $('#mash_ph').jqxTooltip({ content: 'Maisch pH tussen 5.2 en 5.6. Gebruik 5.2 voor lichte en 5.5 voor donkere bieren.'}); 3961 $('#mash_ph').jqxTooltip({ content: 'Maisch pH tussen 5.2 en 5.6. Gebruik 5.2 voor lichte en 5.5 voor donkere bieren.'});
4068 $('#mash_ph').jqxNumberInput(SpinpH); 3962 $('#mash_ph').jqxNumberInput(SpinpH);
3963 $('#wa_mgcl2').jqxTooltip({ content: 'Magnesiumchloride'});
3964 $('#wa_nahco3').jqxTooltip({ content: 'Baksoda'});
3965 $('#wa_caco3').jqxTooltip({ content: 'Kalk'});
3966 $('#wa_mgcl2,#wa_nahco3,#wa_caco3').jqxNumberInput(Spin1dec);
4069 $('#calc_acid').jqxCheckBox({ theme: theme, width: 120, height: 23 }); 3967 $('#calc_acid').jqxCheckBox({ theme: theme, width: 120, height: 23 });
4070 $('#wa_base_name').jqxDropDownList({
4071 theme: theme,
4072 source: BaseTypeAdapter,
4073 valueMember: 'id',
4074 displayMember: 'nl',
4075 width: 170,
4076 height: 23,
4077 autoDropDownHeight: true
4078 });
4079 $('#wa_base').jqxNumberInput(Spin2dec);
4080 $('#wa_base').jqxNumberInput({ symbol: ' gr', symbolPosition: 'right' });
4081 $('#wa_acid_name').jqxDropDownList({ 3968 $('#wa_acid_name').jqxDropDownList({
4082 theme: theme, 3969 theme: theme,
4083 source: AcidTypeAdapter, 3970 source: AcidTypeAdapter,
4084 valueMember: 'id', 3971 valueMember: 'id',
4085 displayMember: 'nl', 3972 displayMember: 'nl',
4086 width: 170, 3973 width: 130,
4087 height: 23, 3974 height: 23,
4088 autoDropDownHeight: true 3975 autoDropDownHeight: true
4089 }); 3976 });
4090 $('#wa_acid').jqxNumberInput(Spin2dec); 3977 $('#wa_acid').jqxNumberInput(Spin2dec);
4091 $('#wa_acid').jqxNumberInput({ symbol: ' ml', symbolPosition: 'right' }); 3978 $('#wa_acid').jqxNumberInput({ symbol: ' ml', symbolPosition: 'right' });

mercurial