www/js/profile_water.js

changeset 662
4bb005694ce7
parent 522
35675eadc655
child 701
3ce3df681be0
--- 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 <mbroek at mbse dot eu>
  *
@@ -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("<img src='images/dialog-ok-apply.png'>");
+  else if (balance <= 0.5 && balance >= -0.5)
+   $('#wr_balance').html("<img src='images/dialog-ok.png'>");
+  else
+   $('#wr_balance').html("<img src='images/dialog-error.png'>");
+ }
+
+ $('#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.

mercurial