diff -r 74b442eae07b -r 4bb005694ce7 www/js/profile_water.js --- a/www/js/profile_water.js Sun Apr 26 10:36:38 2020 +0200 +++ b/www/js/profile_water.js Fri May 01 11:56:24 2020 +0200 @@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2014-2019 + * Copyright (C) 2014-2020 * * Michiel Broek * @@ -131,6 +131,7 @@ $('#magnesium').jqxTooltip({ content: 'Magnesium (Mg).' }); $('#ph').jqxTooltip({ content: 'De zuurgraad (pH).' }); $('#total_alkalinity').jqxTooltip({ content: 'Totale alkaliniteit. Berekend meteen de Bicarbonaat.' }); + $('#balance').jqxTooltip({ content: 'De ionen balans van het water. Ideaal minder dan 0.1 verschil tussen kationen en anionen. Meer dan 0.5 is een fout in het waterraport.' }); // initialize the input fields. $('#name').jqxInput({ theme: theme, width: 640, height: 23 }); @@ -143,6 +144,7 @@ $('#magnesium').jqxNumberInput(Spin1dec); $('#ph').jqxNumberInput(Spin2pH); $('#total_alkalinity').jqxNumberInput(Spin1dec); + $('#balance').jqxNumberInput(Show2dec); // initialize jqxGrid $('#jqxgrid').jqxGrid({ @@ -206,6 +208,7 @@ $('#ph').val(dataRecord.ph); $('#notes').val(dataRecord.notes); $('#total_alkalinity').val(dataRecord.total_alkalinity); + calcBalance(); // show the popup window. $('#popupWindow').jqxWindow('open'); } @@ -213,13 +216,50 @@ ] }); + function calcBalance() { + var cations = (dataRecord.calcium / 20.039) + (dataRecord.magnesium / 12.1525) + (dataRecord.sodium / 22.989); + var anions = (dataRecord.bicarbonate / 61.016) + (dataRecord.sulfate / 48.031) + (dataRecord.chloride / 35.4527); + var balance = Round(cations - anions, 2); + $('#balance').val(balance); + if (balance <= 0.1 && balance >= -0.1) + $('#wr_balance').html(""); + else if (balance <= 0.5 && balance >= -0.5) + $('#wr_balance').html(""); + else + $('#wr_balance').html(""); + } + + $('#calcium').on('change', function(event) { + dataRecord.calcium = parseFloat(event.args.value); + calcBalance(); + }); + $('#magnesium').on('change', function(event) { + dataRecord.magnesium = parseFloat(event.args.value); + calcBalance(); + }); + $('#sodium').on('change', function(event) { + dataRecord.sodium = parseFloat(event.args.value); + calcBalance(); + }); $('#total_alkalinity').on('change', function(event) { + dataRecord.total_alkalinity = parseFloat(event.args.value); dataRecord.bicarbonate = parseFloat(event.args.value) * 1.22; $('#bicarbonate').val(dataRecord.bicarbonate); + calcBalance(); }); $('#bicarbonate').on('change', function(event) { + dataRecord.bicarbonate = parseFloat(event.args.value); dataRecord.total_alkalinity = parseFloat(event.args.value) * 50 / 61; $('#total_alkalinity').val(dataRecord.total_alkalinity); + calcBalance(); + }); + $('#sulfate').on('change', function(event) { + dataRecord.sulfate = parseFloat(event.args.value); + calcBalance(); + }); + $('#chloride').on('change', function(event) { + dataRecord.chloride = parseFloat(event.args.value); + calcBalance(); }); // initialize the popup window and buttons.