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 }); |
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; |
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') |
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) { |
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) { |
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' }); |